{"_id":"@dr-nio/geo-service","_rev":"13-2c8fd78a0538d9f20a434baa37442e92","name":"@dr-nio/geo-service","dist-tags":{"latest":"3.2.4"},"versions":{"1.0.0":{"name":"@dr-nio/geo-service","version":"1.0.0","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@1.0.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"6c616d3b8fb190b7d144005371fd0b5da6254d14","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-1.0.0.tgz","fileCount":5,"integrity":"sha512-4t8HsnFTGduDRz6suz8HvVvVY2As6ygMdQr69KqcP0UgYSULo6jkLGhAcBugY8RP747UODsUzxpCUv31vPPbEQ==","signatures":[{"sig":"MEUCIQCyeaIDvmDmRl7u73Dsp/5YGBhIDu5htuGGvDRnojLqzwIgI2LsYr5YmNWP8qEGCFPmgUXJSDdtr1+A7avrHw769X0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31578},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"ca125332186b0a1b935c0aefbb4c7eafa777115a","scripts":{"test":"echo \"No tests specified\" && exit 0"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geo-service_1.0.0_1781826774914_0.4345243765212683","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dr-nio/geo-service","version":"1.1.0","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@1.1.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"de05a3f00f2c43dab2b0e5439d529f421405bc5f","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-1.1.0.tgz","fileCount":5,"integrity":"sha512-mEYfppRaYa1WV4vteg9b8QZcGMRj49YJI4k2NTfsqXyIWBro5uN9pWi8rLtKXcEgZR+/Ta+6iy9ZOzzG+1vOxw==","signatures":[{"sig":"MEQCIH9H+ooNNTO/fFdgfQe+22/XomWQ2Naz9YU0PhXzuaiMAiAu6cs8v5bo31ynOip2cEJpXcEtmPoDWj7IUYDmC1hanA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31509},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"ab2f4322163307d97f0924225fff889d2c0a1730","scripts":{"test":"echo \"No tests specified\" && exit 0"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geo-service_1.1.0_1781827043979_0.722584955531768","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@dr-nio/geo-service","version":"1.1.1","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@1.1.1","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"434cad23d864ea63be9820252bc1c8d814b89f37","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-1.1.1.tgz","fileCount":5,"integrity":"sha512-OlnRzo5dYbGIEt5EmWAhPESjxih/qNzqvA+GmVCseAQ8Qhj82Kb799mtui/zukYSg1CX8zhMVPHL0B7sRTdORA==","signatures":[{"sig":"MEUCICvldpTvFwNhxAiGp8Uu0ysfDuZ/GS/n7m+mmUn7c6VaAiEAgvzE0F18u2irAhIM5toWqSzoQ7LJBdRJkYsm1x0XqIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31509},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"7158418cbf90f4877ff74d674fd60ab4f3140663","scripts":{"test":"echo \"No tests specified\" && exit 0"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geo-service_1.1.1_1781827159669_0.8669158758029369","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@dr-nio/geo-service","version":"2.0.0","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@2.0.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"f81a201c162e0e632345f4de02394ee9a7ef16c5","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-2.0.0.tgz","fileCount":5,"integrity":"sha512-W6XWf+WFxGlDLKx9hu67klTe9+RTx6NpdqXIb6bTNmhDrgfikHNTEztKvqXRC3vIWD8sBJoNk57FFXrnhi4e2w==","signatures":[{"sig":"MEYCIQCmra7YaYU/pws65WnDQPhuf3g7nWVrpkr9KjxC1EMiDQIhAJ9ifIw0g8L8hMzNRHA9EQ5DHnrJnUQ0pXKwUHfpNw2C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31857},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7158418cbf90f4877ff74d674fd60ab4f3140663","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"node build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_2.0.0_1781827808596_0.172710473484744","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@dr-nio/geo-service","version":"2.1.0","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@2.1.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"2220bd12bb925abd0207577f37c86f9a7ef76c12","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-2.1.0.tgz","fileCount":5,"integrity":"sha512-Of2xUfdPEuu/I6EzrZffwVCDv1warCootKkr1MTqXBnuV6ihOlhGPFjegmavAx4MQwdSotYLOzoZac8cXpPo1Q==","signatures":[{"sig":"MEQCIE0SpUGHx/EEDB4+S9UmJuA0ESfB+sGTsNikEJlXeIQ/AiBlJYAgkiyXVilQZ2xXSruuPzvxm2yY9Q/e2/wZtVwIfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31857},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"25b9bf6af989355f7c390bc7aa867c47ef7e7fc4","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"node build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_2.1.0_1781828033503_0.8099421323269091","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@dr-nio/geo-service","version":"2.2.0","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@2.2.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"081cbebeebc80440446d29f4a45d35e4c158298c","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-2.2.0.tgz","fileCount":5,"integrity":"sha512-O81hgXKlb6vRgO4Bp6Bibl2M5gGM7AVgCg1b42u3EQ6jzsv+kP/9KmylKpqRZMF1mR+nArBxtlbNa1bonD11ig==","signatures":[{"sig":"MEUCIQCVFg1rLQDNRBgeQTDVByuWwUdEPqmyZV0YiXng/xTEKgIgW+gG/IE8rm+Vi5Npek8vFNNrCWoLGpiVLuVpo8enVvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31857},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"018be6383d19e70c8b124376057a31d0e3e1735b","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"node build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_2.2.0_1781828161343_0.7959003472077453","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@dr-nio/geo-service","version":"2.3.0","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@2.3.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"e470ab1bcac814510dc58b676a33e75fa788fa58","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-2.3.0.tgz","fileCount":5,"integrity":"sha512-UcIBCNw09HxXw18zCyWQAx4OdKZxdcKAo3kljXJIvTMj1e5IXiKemxvuaSXLg8kHbXsJJ4IkCtCsg+SCgw0nQA==","signatures":[{"sig":"MEUCIQCfm+3YWGrLbaV2MV7yuGhNTf/2MAVAnNR4udyp5H//4gIgI1dvKTCDow3PNsf9QyRp9prnt/wuQ1cXPMZSLO1oz2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32933},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"58b53f6cf679d97cc90956e50477f5ffed13e529","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"node build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Fully dynamic currency geolocation service with zero hard-coded values","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_2.3.0_1781829277200_0.43859278499663135","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@dr-nio/geo-service","version":"3.0.1","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@3.0.1","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"3106ea68f8b07c2082adc5b2af49c2ebd832d4f1","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-3.0.1.tgz","fileCount":6,"integrity":"sha512-+LN+H6HwXYIpMMcIkDu7mCW6BB0HplywlZcuabLdPvMBe/pADucaxb+axfzEvYBhZS45JC63rF7KqcYZ5sy5vw==","signatures":[{"sig":"MEQCICHZ4BN57TYm1BXFH6iFKwMYwrQprCCLgXFn1myTQgklAiBkgJ0YjCzNO1LjH/conCmcK36BFZFDFlGGPBbRAvghyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65324},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"5d4b3ebbc11b7bcabef01034da36efff53a41187","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"node build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_3.0.1_1782003223371_0.7757801747030055","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@dr-nio/geo-service","version":"3.0.2","keywords":["geolocation","ip","address","country","currency","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@3.0.2","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"84e823846a10ac91a24d39499446c57f5aea5f4e","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-3.0.2.tgz","fileCount":6,"integrity":"sha512-R/84NWuiFQ/5uSIcd4ciZjjOCr0qqTVWzWd1YEQfD0d/qtPO7rVwfZAlSM8Enjqaj1or6Q4bFwBz4hC/n7M2NA==","signatures":[{"sig":"MEYCIQDW/Zl+1ST53ZkyIhLpJgCVrhckYM8yoXEwSNRVvLGb4wIhAMH5TJ4fGvIw1xXKrk8ata/m5Po8+Njr6768wQJepKan","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65202},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"1cab86495e27052e9c21e9fa3060f2bfeaa05658","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"node build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_3.0.2_1782003750948_0.449315602491396","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@dr-nio/geo-service","version":"3.1.0","keywords":["geolocation","ip","address","country","currency","conversion","exchange-rate","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro","forex","finance","localization","i18n"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@3.1.0","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"7c0111e2292e4947040db65e6293029234ada430","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-3.1.0.tgz","fileCount":13,"integrity":"sha512-2AgpSdu/uJxfjT+sXzAQVsxtEnsB6CDk27fVIBVWHr+dY/5dz2G5xfqyRjRlvJNB1+a3jF/WiGxuMdugRaFk/Q==","signatures":[{"sig":"MEYCIQCQ6iDDLSMJyRPnsuxBE2kJEXnmXQLMCkVGJk9Rk3dGIwIhAKqzC4g5725fSEpnL+UDh+EUUg31EMPzhTjce9ORrhmh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253195},"main":"dist/index.js","types":"src/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"3e5fe350c9362407f8b3e4c27d81c06376418d40","scripts":{"test":"node test-simple.js","build":"node build.js","clean":"rm -rf dist","example":"node example.js","prebuild":"npm run clean","build:cjs":"node build.cjs.js","build:esm":"node build.esm.js","build:browser":"node build.browser.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_3.1.0_1782050017542_0.41869527678344665","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@dr-nio/geo-service","version":"3.2.1","keywords":["geolocation","ip","address","country","currency","conversion","exchange-rate","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro","forex","finance","localization","i18n"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@3.2.1","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"a43e497934aedad7e614c9015d091b889c3ba280","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-3.2.1.tgz","fileCount":14,"integrity":"sha512-+3i92aHZQYHJQWR4UVuqTqZ8IVO3Xi04GEppLMzNxdyqdvkJKS31Z0dGrW8E4G5DTy0WIVRS4oM0TPKORmiM9A==","signatures":[{"sig":"MEUCIH6IWej5e0Z1hMxUSS2pJtK7J80BSUaV3F53GgnutFYaAiEAjn3RYkczZLHSeGCHOENb7w/nZxF+pOAFSNt6QfRZ938=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258224},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"d1361a4fdf42812d68e8f9aa1665d966348a284b","scripts":{"test":"node test-simple.js","build":"node build.js","clean":"rm -rf dist","example":"node example.js","prebuild":"npm run clean","build:cjs":"node build.cjs.js","build:esm":"node build.esm.js","build:types":"node build.types.js","build:browser":"node build.browser.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"11.4.2","description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_3.2.1_1782050935816_0.5084596572415749","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@dr-nio/geo-service","version":"3.2.2","keywords":["geolocation","ip","address","country","currency","conversion","exchange-rate","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro","forex","finance","localization","i18n"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","_id":"@dr-nio/geo-service@3.2.2","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"homepage":"https://github.com/Dr-Nio/geo-service#readme","bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"dist":{"shasum":"9dcdce450f706b3fc9fe11eb755c9c376f1bf922","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-3.2.2.tgz","fileCount":14,"integrity":"sha512-GYgRP0/RkX3Zk1bZ7fbShIsuTlOmSqVyzddtgqynTeL++7Bwyt7BXTN5ztBvFBCMF17NmR3B6j5dUgQpJ9V51w==","signatures":[{"sig":"MEUCIQD70dSpf7uRiv0Y0loE2/4U2kFwRYGC0d/F6sRgjTYj1gIgEqPI7+sG24RSAyOncfkOYDiVcOEzJ2rsDmjXFHovrxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258224},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","browser":"dist/index.browser.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","browser":"./dist/index.browser.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"d1361a4fdf42812d68e8f9aa1665d966348a284b","scripts":{"test":"node test-simple.js","build":"node build.js","clean":"rm -rf dist","example":"node example.js","prebuild":"npm run clean","build:cjs":"node build.cjs.js","build:esm":"node build.esm.js","build:types":"node build.types.js","build:browser":"node build.browser.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"repository":{"url":"git+https://github.com/Dr-Nio/geo-service.git","type":"git"},"_npmVersion":"10.8.2","description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/geo-service_3.2.2_1782128910240_0.23276883373772228","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"@dr-nio/geo-service","version":"3.2.4","description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","main":"dist/index.js","module":"dist/index.mjs","browser":"dist/index.browser.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js","browser":"./dist/index.browser.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"node build.js","build:cjs":"node build.cjs.js","build:esm":"node build.esm.js","build:browser":"node build.browser.js","build:types":"node build.types.js","prepublishOnly":"npm run build","test":"node test-simple.js","example":"node example.js","clean":"rm -rf dist","prebuild":"npm run clean"},"keywords":["geolocation","ip","address","country","currency","conversion","exchange-rate","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro","forex","finance","localization","i18n"],"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Dr-Nio/geo-service.git"},"bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"homepage":"https://github.com/Dr-Nio/geo-service#readme","engines":{"node":">=14.0.0"},"devDependencies":{"esbuild":"^0.28.1"},"_id":"@dr-nio/geo-service@3.2.4","gitHead":"03a15c641e07b3858be378965378caa520b723d8","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XQA81XjLQqFhY+1fbzPNKejwGcHkOLeiYkQOhiA6sw3lBV335I3etL4CNOy3pHh8qf98KQZgoSuSbCJ1Qt/Tog==","shasum":"0701fabffee570c766fea9b7da8090bf1fd509b4","tarball":"https://registry.npmjs.org/@dr-nio/geo-service/-/geo-service-3.2.4.tgz","fileCount":14,"unpackedSize":258249,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHCyEXoErBPbiSwMhjVM2ngVEvLaMY5u+L8HXt1PHOlWAiAy+BDncQ1VCFBpVN8eQD5Lm+vRpITDINJ6+0rFtd/J6g=="}]},"_npmUser":{"name":"dr-nio","email":"nicky.oscar@yahoo.com"},"directories":{},"maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/geo-service_3.2.4_1782129591881_0.18083286606093218"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-18T23:52:54.703Z","modified":"2026-06-22T11:59:52.116Z","1.0.0":"2026-06-18T23:52:55.080Z","1.1.0":"2026-06-18T23:57:24.104Z","1.1.1":"2026-06-18T23:59:19.801Z","2.0.0":"2026-06-19T00:10:08.761Z","2.1.0":"2026-06-19T00:13:53.689Z","2.2.0":"2026-06-19T00:16:01.501Z","2.3.0":"2026-06-19T00:34:37.339Z","3.0.1":"2026-06-21T00:53:43.517Z","3.0.2":"2026-06-21T01:02:31.088Z","3.1.0":"2026-06-21T13:53:37.677Z","3.2.1":"2026-06-21T14:08:55.946Z","3.2.2":"2026-06-22T11:48:30.383Z","3.2.4":"2026-06-22T11:59:52.027Z"},"bugs":{"url":"https://github.com/Dr-Nio/geo-service/issues"},"author":{"name":"Nicholas Oscar Okechukwu"},"license":"MIT","homepage":"https://github.com/Dr-Nio/geo-service#readme","keywords":["geolocation","ip","address","country","currency","conversion","exchange-rate","locale","dynamic","browser","intl","zero-hardcode","rate","money","seo","dollar","pounds","euro","forex","finance","localization","i18n"],"repository":{"type":"git","url":"git+https://github.com/Dr-Nio/geo-service.git"},"description":"Zero-hardcode geolocation & currency service with dynamic API discovery, real-time conversion, and Intl-based localization","maintainers":[{"name":"dr-nio","email":"nicky.oscar@yahoo.com"}],"readme":"## Dynamic Geolocation & Currency Service\r\n\r\nA fully dynamic geolocation and currency service with zero hard-coded values. Automatically discovers and uses the best available APIs for geolocation, currency conversion, exchange rates, and country data.\r\n\r\n## Features\r\n\r\n- 🔍 **Dynamic API Discovery**: Automatically discovers and selects the best available APIs\r\n- 🌐 **Zero Hard-Coded Values**: No hard-coded URLs, cache durations, or locale data\r\n- 💱 **Currency Conversion**: Real-time currency conversion with dynamic exchange rate discovery\r\n- 💲 **Currency Information**: Dynamically discovers currency symbols, names, and formatting\r\n- 🌍 **Locale Detection**: Intelligently determines the best locale using multiple detection methods\r\n- 📊 **Multi-Currency Support**: Convert to multiple currencies simultaneously\r\n- ⏱️ **Historical Rates**: Support for historical exchange rate lookups\r\n- 🔄 **Browser & Node Support**: Works in both browser and Node.js environments\r\n- 🚀 **Smart Caching**: Automatic caching with configurable duration\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @dr-nio/geo-service\r\n```\r\n\r\n## Quick Start\r\n\r\n```javascript\r\nimport FullyDynamicGeolocationService from '@dr-nio/geo-service';\r\n\r\n// Create instance\r\nconst service = new FullyDynamicGeolocationService();\r\n\r\n// Get user location\r\nconst location = await service.getUserLocation();\r\nconsole.log(`Location: ${location.location}`);\r\nconsole.log(`Currency: ${location.currency.symbol} ${location.currency.code}`);\r\n\r\n// Convert currency\r\nconst conversion = await service.convertCurrency(100, 'USD', 'EUR');\r\nconsole.log(`100 USD = ${conversion.convertedAmount} EUR`);\r\n```\r\n\r\n## Usage Examples\r\n\r\n```html\r\n<a h>\r\n\r\n```\r\n\r\n### Basic Geolocation\r\n\r\n```javascript\r\nimport FullyDynamicGeolocationService from '@dr-nio/geo-service';\r\n\r\nconst service = new FullyDynamicGeolocationService();\r\n\r\n// Get location with auto-detection\r\nconst location = await service.getUserLocation();\r\nservice.displayLocationInfo(location);\r\n```\r\n\r\n### Currency Conversion\r\n\r\n```javascript\r\n// Simple conversion\r\nconst result = await service.convertCurrency(100, 'USD', 'EUR');\r\nconsole.log(`${result.amount} ${result.fromCurrency} = ${result.convertedAmount} ${result.toCurrency}`);\r\nconsole.log(`Rate: 1 ${result.fromCurrency} = ${result.rate} ${result.toCurrency}`);\r\n\r\n// Convert to multiple currencies\r\nconst conversions = await service.convertToMultiple(100, 'USD', ['EUR', 'GBP', 'JPY', 'CAD']);\r\nservice.displayMultipleConversions(conversions);\r\n\r\n// Get exchange rate\r\nconst rate = await service.getExchangeRate('USD', 'EUR');\r\nconsole.log(`1 USD = ${rate} EUR`);\r\n\r\n// Format currency\r\nconst formatted = await service.formatCurrency(1234.56, 'EUR', 'fr-FR');\r\nconsole.log(`Formatted: ${formatted}`); // 1 234,56 €\r\n```\r\n\r\n### Advanced Features\r\n\r\n```javascript\r\n// Get available currencies\r\nconst currencies = await service.getAvailableCurrencies();\r\nconsole.log(`Found ${currencies.length} currencies`);\r\n\r\n// Get historical exchange rate\r\nconst historical = await service.getHistoricalRate('USD', 'EUR', '2024-01-01');\r\nconsole.log(`Historical rate: ${historical.rate}`);\r\n\r\n// Get currency information\r\nconst info = await service.getCurrencyInfo('JPY', 'ja-JP');\r\nconsole.log(`Currency: ${info.name} (${info.symbol})`);\r\n\r\n// Get multiple exchange rates\r\nconst rates = await service.getMultipleRates('USD', ['EUR', 'GBP', 'JPY']);\r\nconsole.log(rates);\r\n```\r\n\r\n### Smart Integration\r\n\r\n```javascript\r\n// Automatically convert based on user's location\r\nconst location = await service.getUserLocation();\r\nconst amount = 100;\r\nconst conversion = await service.convertCurrency(amount, 'USD', location.currency.code);\r\n\r\nconsole.log(`${amount} USD = ${conversion.convertedAmount} ${location.currency.symbol}`);\r\nconsole.log(`Location: ${location.location}`);\r\nconsole.log(`Local currency: ${location.currency.name}`);\r\n```\r\n\r\n## API Reference\r\n\r\n### FullyDynamicGeolocationService\r\n\r\n#### Geolocation Methods\r\n\r\n| Method | Description | Returns |\r\n|--------|-------------|---------|\r\n| `getUserLocation()` | Gets user location with dynamic discovery | `Promise<LocationResult>` |\r\n| `getBrowserCapabilities()` | Returns detected browser capabilities | `Object` |\r\n| `displayLocationInfo(locationInfo)` | Displays location information | `void` |\r\n\r\n#### Currency Conversion Methods\r\n\r\n| Method | Description | Returns |\r\n|--------|-------------|---------|\r\n| `convertCurrency(amount, from, to, options)` | Converts currency with dynamic rate discovery | `Promise<ConversionResult>` |\r\n| `getExchangeRate(from, to, options)` | Gets exchange rate between two currencies | `Promise<number>` |\r\n| `getAvailableCurrencies()` | Gets list of all available currencies | `Promise<Array>` |\r\n| `formatCurrency(amount, currency, locale)` | Formats currency with proper symbol | `Promise<string>` |\r\n| `convertToMultiple(amount, from, targets, options)` | Converts to multiple currencies | `Promise<MultiConversionResult>` |\r\n| `getMultipleRates(base, targets, options)` | Gets multiple exchange rates | `Promise<Object>` |\r\n| `getHistoricalRate(from, to, date, options)` | Gets historical exchange rate | `Promise<HistoricalRateResult>` |\r\n| `getCurrencyInfo(currency, locale)` | Gets currency symbol and name | `Promise<CurrencyInfo>` |\r\n\r\n#### Utility Methods\r\n\r\n| Method | Description | Returns |\r\n|--------|-------------|---------|\r\n| `displayConversion(result)` | Displays conversion result | `Object` |\r\n| `displayMultipleConversions(results)` | Displays multiple conversions | `Object` |\r\n| `clearAllCaches()` | Clears all caches | `void` |\r\n| `getCurrencyCacheStats()` | Gets cache statistics | `Object` |\r\n\r\n## Configuration\r\n\r\n```javascript\r\nconst service = new FullyDynamicGeolocationService({\r\n  discoveryUrls: ['https://ipapi.co/json/', 'https://ipinfo.io/json'],\r\n  timeout: 5000,\r\n  cacheEnabled: true,\r\n  cacheDuration: 300000 // 5 minutes\r\n});\r\n```\r\n\r\n## Complete Example\r\n\r\n```javascript\r\nimport FullyDynamicGeolocationService from '@dr-nio/geo-service';\r\n\r\nasync function main() {\r\n  const service = new FullyDynamicGeolocationService();\r\n  \r\n  try {\r\n    // 1. Get location\r\n    console.log('📍 Getting location...');\r\n    const location = await service.getUserLocation();\r\n    service.displayLocationInfo(location);\r\n    \r\n    // 2. Convert currency based on location\r\n    console.log('\\n💱 Converting currency based on your location...');\r\n    const amount = 100;\r\n    const conversion = await service.convertCurrency(amount, 'USD', location.currency.code);\r\n    service.displayConversion(conversion);\r\n    \r\n    // 3. Get available currencies\r\n    console.log('\\n🌐 Available currencies:');\r\n    const currencies = await service.getAvailableCurrencies();\r\n    console.log(`Found ${currencies.length} currencies`);\r\n    console.log(`Sample: ${currencies.slice(0, 10).join(', ')}...`);\r\n    \r\n    // 4. Convert to multiple currencies\r\n    console.log('\\n💱 Converting to multiple currencies:');\r\n    const targets = ['EUR', 'GBP', 'JPY', 'CAD', 'AUD'];\r\n    const multi = await service.convertToMultiple(1000, 'USD', targets);\r\n    service.displayMultipleConversions(multi);\r\n    \r\n    // 5. Format currency\r\n    console.log('\\n💰 Formatted amounts:');\r\n    const formats = [\r\n      { amount: 1234.56, currency: 'USD', locale: 'en-US' },\r\n      { amount: 1234.56, currency: 'EUR', locale: 'fr-FR' },\r\n      { amount: 1234.56, currency: 'JPY', locale: 'ja-JP' }\r\n    ];\r\n    for (const f of formats) {\r\n      const formatted = await service.formatCurrency(f.amount, f.currency, f.locale);\r\n      console.log(`  ${f.locale} (${f.currency}): ${formatted}`);\r\n    }\r\n    \r\n    // 6. Cache stats\r\n    const stats = service.getCurrencyCacheStats();\r\n    console.log('\\n📊 Cache Statistics:');\r\n    console.log(`  ${stats.size} cached rates`);\r\n    \r\n  } catch (error) {\r\n    console.error('Error:', error.message);\r\n  }\r\n}\r\n\r\nmain();\r\n```\r\n\r\n## Browser Support\r\n\r\nAll modern browsers with:\r\n- Fetch API\r\n- Intl API (ECMAScript Internationalization API)\r\n- ES6+ features\r\n\r\n## Node.js Support\r\n\r\nRequires Node.js 14+ with:\r\n- Native fetch API (or node-fetch for older versions)\r\n- Intl API support\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please read our contributing guidelines before submitting pull requests.\r\n\r\n## Issues\r\n\r\nIf you find a bug or have a suggestion, please open an issue on GitHub.\r\n\r\n## Changelog\r\n\r\n### v3.0.0\r\n- Initial release\r\n- Dynamic geolocation discovery\r\n- Currency conversion with dynamic exchange rates\r\n- Multi-currency support\r\n- Historical rate lookup\r\n- Smart caching\r\n- Intl-based formatting\r\n\r\n\r\n## Key Updates Made:\r\n\r\n1. **Title**: Changed to \"Dynamic Geolocation & Currency Service\"\r\n2. **Features**: Added currency conversion, multi-currency, historical rates, and smart caching\r\n3. **Quick Start**: Added currency conversion example\r\n4. **Usage Examples**: Added comprehensive sections for:\r\n   - Basic geolocation\r\n   - Currency conversion\r\n   - Advanced features\r\n   - Smart integration\r\n5. **API Reference**: Organized into tables for easy reading with:\r\n   - Geolocation methods\r\n   - Currency conversion methods\r\n   - Utility methods\r\n6. **Complete Example**: A full working example showing all features\r\n7. **Browser/Node Support**: Detailed requirements\r\n8. **Changelog**: Added version tracking\r\n\r\nThe README now fully documents both the geolocation and currency conversion capabilities while maintaining the zero-hard-coded philosophy throughout!\r\n","readmeFilename":"README.md"}