{"_id":"@balasanthosh01/geolookup","_rev":"3-f7bcc5bb128bbe93a46ce31ed409acdb","name":"@balasanthosh01/geolookup","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@balasanthosh01/geolookup","version":"1.0.0","keywords":["geocoding","country-codes","phone-formatting","flags","iso-codes","react","vue","angular","typescript","geolocation"],"author":{"name":"Balasanthosh"},"license":"MIT","_id":"@balasanthosh01/geolookup@1.0.0","maintainers":[{"name":"balasanthosh01","email":"santhos01ac@gmail.com"}],"homepage":"https://github.com/BALASANTHOSH01/GeoCode#readme","bugs":{"url":"https://github.com/BALASANTHOSH01/GeoCode/issues"},"dist":{"shasum":"d856bd2fc2601bd1014108b2ecbfbbea846d5c5a","tarball":"https://registry.npmjs.org/@balasanthosh01/geolookup/-/geolookup-1.0.0.tgz","fileCount":26,"integrity":"sha512-ARuKcmxrh/3cx5rQdMW/1BSeP+vh3KD3IfVBZwaIBpAtqhCXAjjs85aNkZFd7IPlqw9d6CCnbjMFRw8HtfIScw==","signatures":[{"sig":"MEUCIADhS5qr96/SNr7iHTZaxcX+Th4t93f2HOrNoqkWfC3KAiEAugYsABFLU54FoImQBJJ5CBjYhdzTUygLS7nmG9MZ9IE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81925},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./vue":{"import":"./dist/adapters/vue.esm.js","require":"./dist/adapters/vue.cjs.js"},"./react":{"import":"./dist/adapters/react.esm.js","require":"./dist/adapters/react.cjs.js"},"./angular":{"import":"./dist/adapters/angular.esm.js","require":"./dist/adapters/angular.cjs.js"}},"gitHead":"f7e20304482ac5cc8f85cf22276a6be3391ea5fa","scripts":{"dev":"vite","lint":"eslint src --ext .ts,.tsx","test":"vitest","build":"npm run clean && npm run build:lib","clean":"rimraf dist","preview":"vite preview","build:lib":"vite build","test:coverage":"vitest --coverage","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"balasanthosh01","email":"santhos01ac@gmail.com"},"repository":{"url":"git+https://github.com/BALASANTHOSH01/GeoCode.git","type":"git"},"_npmVersion":"10.9.3","description":"Universal geocoding library with country data, phone formatting, and flag utilities for JavaScript/TypeScript","directories":{},"_nodeVersion":"22.19.0","typesVersions":{"*":{"vue":["dist/adapters/vue.d.ts"],"react":["dist/adapters/react.d.ts"],"angular":["dist/adapters/angular.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","rxjs":"^7.8.2","vite":"^7.1.7","react":"^19.1.1","rimraf":"^5.0.10","vitest":"^3.2.4","typescript":"~5.8.3","@types/react":"^19.1.13","@angular/core":"^20.3.1","@angular/common":"^20.3.1","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^1.6.1","@angular/platform-browser":"^20.3.1"},"peerDependencies":{"vue":">=3.0.0","rxjs":">=7.0.0","react":">=16.8.0","@angular/core":">=12.0.0","@angular/common":">=12.0.0"},"peerDependenciesMeta":{"vue":{"optional":true},"rxjs":{"optional":true},"react":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geolookup_1.0.0_1758683896779_0.7995198245108628","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@balasanthosh01/geolookup","version":"1.0.1","keywords":["geocoding","country-codes","phone-formatting","flags","iso-codes","react","vue","angular","typescript","geolocation"],"author":{"name":"Balasanthosh"},"license":"MIT","_id":"@balasanthosh01/geolookup@1.0.1","maintainers":[{"name":"balasanthosh01","email":"santhos01ac@gmail.com"}],"homepage":"https://github.com/BALASANTHOSH01/GeoCode#readme","bugs":{"url":"https://github.com/BALASANTHOSH01/GeoCode/issues"},"dist":{"shasum":"bbfd35c0c87cf06b34dc3b5c422e27d286d65493","tarball":"https://registry.npmjs.org/@balasanthosh01/geolookup/-/geolookup-1.0.1.tgz","fileCount":26,"integrity":"sha512-Q3OJzf+Lwb0ykC9Z4gSJIJB3AiLeTlLDmoS6G9kYOCUJ32xsElhy69XOuxD6jzvYVnpF2aoqmck42s84pWoB3g==","signatures":[{"sig":"MEUCIQCDs03HMJTYCBfsc/m19h05j8lomH4ffutoLDX+VH7jfwIgPKAbE/Ie3N4tg75Wn9m62ppzrmL5KKV8Bs8hpUDBSj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81888},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./vue":{"import":"./dist/adapters/vue.esm.js","require":"./dist/adapters/vue.cjs.js"},"./react":{"import":"./dist/adapters/react.esm.js","require":"./dist/adapters/react.cjs.js"},"./angular":{"import":"./dist/adapters/angular.esm.js","require":"./dist/adapters/angular.cjs.js"}},"gitHead":"f3f1b5bbdfbc6842865758fc910a3a28a549f4cb","scripts":{"dev":"vite","lint":"eslint src --ext .ts,.tsx","test":"vitest","build":"npm run clean && npm run build:lib","clean":"rimraf dist","preview":"vite preview","build:lib":"vite build","test:coverage":"vitest --coverage","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"balasanthosh01","email":"santhos01ac@gmail.com"},"repository":{"url":"git+https://github.com/BALASANTHOSH01/GeoCode.git","type":"git"},"_npmVersion":"10.9.3","description":"Universal geocoding library with country data, phone formatting, and flag utilities for JavaScript/TypeScript","directories":{},"_nodeVersion":"22.19.0","typesVersions":{"*":{"vue":["dist/adapters/vue.d.ts"],"react":["dist/adapters/react.d.ts"],"angular":["dist/adapters/angular.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","rxjs":"^7.8.2","vite":"^7.1.7","react":"^19.1.1","rimraf":"^5.0.10","vitest":"^3.2.4","typescript":"~5.8.3","@types/react":"^19.1.13","@angular/core":"^20.3.1","@angular/common":"^20.3.1","vite-plugin-dts":"^4.5.4","@angular/platform-browser":"^20.3.1"},"peerDependencies":{"vue":">=3.0.0","rxjs":">=7.0.0","react":">=16.8.0","@angular/core":">=12.0.0","@angular/common":">=12.0.0"},"peerDependenciesMeta":{"vue":{"optional":true},"rxjs":{"optional":true},"react":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geolookup_1.0.1_1758684274450_0.9568229217839326","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@balasanthosh01/geolookup","version":"1.0.3","description":"Universal geocoding library with country data, phone formatting, and flag utilities for JavaScript/TypeScript","main":"dist/index.cjs.js","module":"dist/index.esm.js","type":"module","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./react":{"import":"./dist/adapters/react.esm.js","require":"./dist/adapters/react.cjs.js"},"./vue":{"import":"./dist/adapters/vue.esm.js","require":"./dist/adapters/vue.cjs.js"},"./angular":{"import":"./dist/adapters/angular.esm.js","require":"./dist/adapters/angular.cjs.js"}},"typesVersions":{"*":{"react":["dist/adapters/react.d.ts"],"vue":["dist/adapters/vue.d.ts"],"angular":["dist/adapters/angular.d.ts"]}},"keywords":["geocoding","country-codes","phone-formatting","flags","iso-codes","react","vue","angular","typescript","geolocation"],"author":{"name":"Balasanthosh"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BALASANTHOSH01/GeoCode.git"},"bugs":{"url":"https://github.com/BALASANTHOSH01/GeoCode/issues"},"homepage":"https://github.com/BALASANTHOSH01/GeoCode#readme","scripts":{"dev":"vite","build":"npm run clean && npm run build:lib","build:lib":"vite build","clean":"rimraf dist","test":"vitest","test:coverage":"vitest --coverage","lint":"eslint src --ext .ts,.tsx","prepublishOnly":"npm run test && npm run build","preview":"vite preview"},"peerDependencies":{"@angular/common":">=12.0.0","@angular/core":">=12.0.0","react":">=16.8.0","rxjs":">=7.0.0","vue":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"vue":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"rxjs":{"optional":true}},"devDependencies":{"@angular/common":"^20.3.1","@angular/core":"^20.3.1","@angular/platform-browser":"^20.3.1","@types/react":"^19.1.13","react":"^19.1.1","rimraf":"^5.0.10","rxjs":"^7.8.2","typescript":"~5.8.3","vite":"^7.1.7","vite-plugin-dts":"^4.5.4","vitest":"^3.2.4","vue":"^3.5.21"},"dependencies":{"@balasanthosh01/geolookup":"^1.0.1"},"_id":"@balasanthosh01/geolookup@1.0.3","gitHead":"a60bdd02bf3084ba71c187b64838d639e9283988","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-FrXt/JjEWRe1cQuWR4Y4O6yWje+jcahAn7iN9KUseeES70wwJn9FLqlKpOZVhZSYpk4eBagmMnicj7lj4K+Esw==","shasum":"76397dfe12ce43099ac772309572e9adc87e5ebb","tarball":"https://registry.npmjs.org/@balasanthosh01/geolookup/-/geolookup-1.0.3.tgz","fileCount":26,"unpackedSize":86162,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEc+FwOdbxE0D9rPuF9t2swU3QtM6bP4fX4CdSIlBL/bAiAUHsdu+mXujsgd0kYECe/uxmU1L+RxU7TGWVbU5M40gQ=="}]},"_npmUser":{"name":"balasanthosh01","email":"santhos01ac@gmail.com"},"directories":{},"maintainers":[{"name":"balasanthosh01","email":"santhos01ac@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/geolookup_1.0.3_1758688671321_0.6363107392342788"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-24T03:18:16.703Z","modified":"2025-09-24T04:37:52.259Z","1.0.0":"2025-09-24T03:18:16.969Z","1.0.1":"2025-09-24T03:24:34.660Z","1.0.3":"2025-09-24T04:37:51.562Z"},"bugs":{"url":"https://github.com/BALASANTHOSH01/GeoCode/issues"},"author":{"name":"Balasanthosh"},"license":"MIT","homepage":"https://github.com/BALASANTHOSH01/GeoCode#readme","keywords":["geocoding","country-codes","phone-formatting","flags","iso-codes","react","vue","angular","typescript","geolocation"],"repository":{"type":"git","url":"git+https://github.com/BALASANTHOSH01/GeoCode.git"},"description":"Universal geocoding library with country data, phone formatting, and flag utilities for JavaScript/TypeScript","maintainers":[{"name":"balasanthosh01","email":"santhos01ac@gmail.com"}],"readme":"# @balasanthosh01/geolookup\r\n\r\nUniversal geocoding library for JavaScript/TypeScript with country data, phone formatting, and flag utilities.\r\n\r\n[![npm version](https://img.shields.io/npm/v/@balasanthosh01/geolookup.svg)](https://www.npmjs.com/package/@balasanthosh01/geolookup)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n---\r\n\r\n## Features\r\n\r\n- Get country data by **ISO code**\r\n- Get **all countries** with details\r\n- Search countries by **name or partial name**\r\n- Get countries by **phone code**\r\n- Phone number **formatting and validation**\r\n- Country **flag utilities** (with URLs or inline SVG)\r\n- Detect user country and set defaults\r\n- Works with **React, Vue, Angular**, and plain JS/TS\r\n\r\n---\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @balasanthosh01/geolookup\r\n```\r\n\r\nor using Yarn:\r\n\r\n```bash\r\nyarn add @balasanthosh01/geolookup\r\n```\r\n\r\n---\r\n\r\n## Core Methods\r\n\r\n```ts\r\nimport { geolookup } from '@balasanthosh01/geolookup';\r\n\r\n// Search countries by name or ISO code\r\ngeolookup.searchCountries(\"India\");\r\n\r\n// Get country by ISO code\r\ngeolookup.getCountryByIsoCode(\"IN\");\r\n\r\n// Parse and validate phone number\r\ngeolookup.parsePhoneNumber(\"+911234567890\");\r\n\r\n// Get country with flag SVG\r\nawait geolookup.getCountryWithFlag(\"IN\");\r\n\r\n// Detect user's country via IP\r\nawait geolookup.detectUserCountry();\r\n\r\n// Get user's selected country\r\ngeolookup.getUserCountry();\r\n\r\n// Set user's country manually\r\ngeolookup.setUserCountry({ isoCode: \"US\", name: \"United States\", phoneCode: \"+1\", flag: \"us.svg\" });\r\n```\r\n\r\n---\r\n\r\n## Usage Examples\r\n\r\n### 1️⃣ React\r\n\r\n```tsx\r\nimport React, { useEffect, useState } from 'react';\r\nimport { geolookup } from '@balasanthosh01/geolookup';\r\n\r\nconst App = () => {\r\n  const [countries, setCountries] = useState([]);\r\n  const [countryFlag, setCountryFlag] = useState('');\r\n\r\n  useEffect(() => {\r\n    const fetchData = async () => {\r\n      const result = geolookup.searchCountries(\"India\");\r\n      setCountries(result);\r\n\r\n      const country = await geolookup.getCountryWithFlag(\"IN\");\r\n      setCountryFlag(country?.flagUrl || '');\r\n    };\r\n\r\n    fetchData();\r\n  }, []);\r\n\r\n  return (\r\n    <div>\r\n      <h1>Countries</h1>\r\n      <pre>{JSON.stringify(countries, null, 2)}</pre>\r\n      {countryFlag && <img src={countryFlag} alt=\"India Flag\" width=\"50\" />}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default App;\r\n```\r\n\r\n---\r\n\r\n### 2️⃣ Angular\r\n\r\n```ts\r\n// app.component.ts\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { geolookup } from '@balasanthosh01/geolookup';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  template: `\r\n    <h1>Countries</h1>\r\n    <pre>{{ countries | json }}</pre>\r\n    <img *ngIf=\"flagUrl\" [src]=\"flagUrl\" alt=\"Flag\" width=\"50\">\r\n  `\r\n})\r\nexport class AppComponent implements OnInit {\r\n  countries = [];\r\n  flagUrl = '';\r\n\r\n  async ngOnInit() {\r\n    this.countries = geolookup.searchCountries(\"India\");\r\n    const country = await geolookup.getCountryWithFlag(\"IN\");\r\n    this.flagUrl = country?.flagUrl || '';\r\n  }\r\n}\r\n```\r\n\r\n---\r\n\r\n### 3️⃣ Vue 3\r\n\r\n```vue\r\n<template>\r\n  <div>\r\n    <h1>Countries</h1>\r\n    <pre>{{ countries }}</pre>\r\n    <img v-if=\"flagUrl\" :src=\"flagUrl\" alt=\"Flag\" width=\"50\">\r\n  </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, onMounted } from 'vue';\r\nimport { geolookup } from '@balasanthosh01/geolookup';\r\n\r\nconst countries = ref([]);\r\nconst flagUrl = ref('');\r\n\r\nonMounted(async () => {\r\n  countries.value = geolookup.searchCountries(\"India\");\r\n  const country = await geolookup.getCountryWithFlag(\"IN\");\r\n  flagUrl.value = country?.flagUrl || '';\r\n});\r\n</script>\r\n```\r\n\r\n---\r\n\r\n### 4️⃣ Plain HTML (Browser)\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<title>Geolookup Demo</title>\r\n</head>\r\n<body>\r\n<h1>Geolookup Demo</h1>\r\n<pre id=\"output\"></pre>\r\n<img id=\"flag\" width=\"50\" />\r\n\r\n<script type=\"module\">\r\n  import { geolookup } from 'https://unpkg.com/@balasanthosh01/geolookup?module';\r\n\r\n  async function runDemo() {\r\n    const countries = geolookup.searchCountries(\"India\");\r\n    document.getElementById('output').textContent = JSON.stringify(countries, null, 2);\r\n\r\n    const country = await geolookup.getCountryWithFlag(\"IN\");\r\n    document.getElementById('flag').src = country.flagUrl;\r\n  }\r\n\r\n  runDemo();\r\n</script>\r\n</body>\r\n</html>\r\n```\r\n\r\n---\r\n\r\n## Available Fields\r\n\r\n* `COUNTRY_DATA` – All countries data.\r\n* `PHONE_FORMATS` – Phone number formatting per country.\r\n* `ALTERNATIVE_NAMES` – Alternative country names for search.\r\n\r\n---\r\n\r\n## Notes\r\n\r\n* All methods are **async-safe**, use `await` for methods returning promises (`getCountryWithFlag`, `detectUserCountry`).\r\n* Works in **modern browsers** using ES modules.\r\n* Supports **phone parsing, validation, and formatting**.\r\n\r\n---\r\n\r\n## License\r\n\r\nMIT\r\n\r\n---\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n---\r\n\r\n## Support\r\n\r\nIf you encounter any issues or have questions, please file an issue on the GitHub repository.","readmeFilename":"readme.md"}