{"_id":"@countrystatecity/timezones","_rev":"6-c3416cce3b47484f6c89bdb3fa777c9c","name":"@countrystatecity/timezones","dist-tags":{"latest":"1.0.9"},"versions":{"1.0.0":{"name":"@countrystatecity/timezones","version":"1.0.0","keywords":["timezone","timezones","iana","timezone-conversion","utc","gmt","dst","daylight-saving","time-conversion","typescript","ios-compatible","lazy-loading"],"author":{"name":"dr5hn"},"license":"ODbL-1.0","_id":"@countrystatecity/timezones@1.0.0","maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"homepage":"https://github.com/dr5hn/countrystatecity/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/dr5hn/countrystatecity/issues"},"dist":{"shasum":"7c206801194dfab3c9df61bfc53a72a2055bb5d3","tarball":"https://registry.npmjs.org/@countrystatecity/timezones/-/timezones-1.0.0.tgz","fileCount":233,"integrity":"sha512-r5BYAgNaBvzd+Mn070Gqv0l8ymlR7yOw21tAmhycz5gOpzJX7BLdz7nmM+nhD93oWW1HuNL0VmuFZQwvNKQ9+A==","signatures":[{"sig":"MEYCIQDcwdw8v1t1QCNmRgaOQdkmH1T1F7AoF/ANSUGteB6ifwIhALxhar4ZykxsNNTjMYUiGym5t3jxtiZU5LZpwphS/SSx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270750},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./data/*":"./dist/data/*"},"gitHead":"11f637b9342eed33542a433e943f100e22b01279","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup","test:ios":"vitest run compatibility","typecheck":"tsc --noEmit","test:watch":"vitest","generate-data":"node scripts/generate-data.cjs"},"_npmUser":{"name":"dr5hn","email":"gadadarshan@gmail.com"},"repository":{"url":"git+https://github.com/dr5hn/countrystatecity.git","type":"git","directory":"packages/timezones"},"_npmVersion":"10.8.2","description":"Comprehensive timezone data with conversion utilities - iOS/Safari compatible with minimal bundle size","directories":{},"_nodeVersion":"20.19.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","ts-node":"^10.9.2","typescript":"^5.3.0","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/timezones_1.0.0_1760793190430_0.151240350396602","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@countrystatecity/timezones","version":"1.0.5","keywords":["country-state-city","countries states cities","countries states cities database","country state city","country state city database","geolocation","country","state","city","location","geography","iso","typescript","ios-compatible","timezone","translations","lazy-loading"],"author":{"name":"dr5hn"},"license":"ODbL-1.0","_id":"@countrystatecity/timezones@1.0.5","maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"homepage":"https://github.com/dr5hn/countrystatecity-timezones#readme","bugs":{"url":"https://github.com/dr5hn/countrystatecity-timezones/issues"},"dist":{"shasum":"0f381ec3d372d033828abb0796232c7d4643b5f3","tarball":"https://registry.npmjs.org/@countrystatecity/timezones/-/timezones-1.0.5.tgz","fileCount":261,"integrity":"sha512-jtOTk/KCJ/Rn+lhvM5+ASpDJ1cMcBU/D7bP5ymEf8Ib/gpJOFfHGE9Djfur+8DxZteBp3lGuhzfpak1SQPnMQg==","signatures":[{"sig":"MEQCICG+Fl/nLqer+bUDEdE1mlfOWHTGFVMNifGqTqqzu2uUAiArxdphJSgZxZmwV7S4sgri4rovYQaNBLzN6jtB/s3y6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297804},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./data/*":"./dist/data/*"},"gitHead":"13ae4ff64c8edcb54f5443a65cb6f3a83c9f4f63","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup","test:ios":"vitest run compatibility","typecheck":"tsc --noEmit","test:watch":"vitest","generate-data":"node scripts/generate-data.cjs"},"_npmUser":{"name":"dr5hn","email":"gadadarshan@gmail.com"},"repository":{"url":"git+https://github.com/dr5hn/countrystatecity-timezones.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive timezone data with conversion utilities and iOS/Safari support","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.16","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/timezones_1.0.5_1766323479115_0.9790786142774897","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@countrystatecity/timezones","version":"1.0.6","keywords":["country-state-city","countries states cities","countries states cities database","country state city","country state city database","geolocation","country","state","city","location","geography","iso","typescript","ios-compatible","timezone","translations","lazy-loading"],"author":{"name":"dr5hn"},"license":"ODbL-1.0","_id":"@countrystatecity/timezones@1.0.6","maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"homepage":"https://github.com/dr5hn/countrystatecity-timezones#readme","bugs":{"url":"https://github.com/dr5hn/countrystatecity-timezones/issues"},"dist":{"shasum":"f106fc695e0ed68a19d85773c0b1686a5a3a5e2f","tarball":"https://registry.npmjs.org/@countrystatecity/timezones/-/timezones-1.0.6.tgz","fileCount":261,"integrity":"sha512-KhnW3TXLDsyJSFQ8Wx0uaxXeb+0oKwTk1pOGRF67BPCunM5fB6iT/rvx8qbzNqnhgBg66LxNutYz04k1Bonb2Q==","signatures":[{"sig":"MEYCIQDSoDWtKJ+PGfVR6Dr0qW4uMjD/nQQGFzyvHv3Q/4ZctgIhAM+7c3yuiKKvdsxOUQbC05t1VoxQq1Cc+iM1AKPGsjN0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301122},"main":"./dist/index.cjs","type":"module","_from":"file:countrystatecity-timezones-1.0.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./data/*":"./dist/data/*"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup","test:ios":"vitest run compatibility","typecheck":"tsc --noEmit","test:watch":"vitest","generate-data":"node scripts/generate-data.cjs"},"_npmUser":{"name":"dr5hn","email":"gadadarshan@gmail.com"},"_resolved":"/tmp/aef7b9c38d2ba1a931030b4ea0b0eed1/countrystatecity-timezones-1.0.6.tgz","_integrity":"sha512-KhnW3TXLDsyJSFQ8Wx0uaxXeb+0oKwTk1pOGRF67BPCunM5fB6iT/rvx8qbzNqnhgBg66LxNutYz04k1Bonb2Q==","repository":{"url":"git+https://github.com/dr5hn/countrystatecity-timezones.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive timezone data with conversion utilities and iOS/Safari support","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.16","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/timezones_1.0.6_1781168797500_0.8017796042304659","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@countrystatecity/timezones","version":"1.0.7","keywords":["country-state-city","countries states cities","countries states cities database","country state city","country state city database","geolocation","country","state","city","location","geography","iso","typescript","ios-compatible","timezone","translations","lazy-loading"],"author":{"name":"dr5hn"},"license":"ODbL-1.0","_id":"@countrystatecity/timezones@1.0.7","maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"homepage":"https://github.com/dr5hn/countrystatecity-npm/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/dr5hn/countrystatecity-npm/issues"},"dist":{"shasum":"1dac3a2425563af9dd2bb463706838d699847a7f","tarball":"https://registry.npmjs.org/@countrystatecity/timezones/-/timezones-1.0.7.tgz","fileCount":261,"integrity":"sha512-neNi4DXMOq+q32+gUXvFVcyIktfc5WPwXpWkzbxNNQmian+dnWu0LzbBMkxwwg17hmEdVF+NyDsmUT8B3KEwjg==","signatures":[{"sig":"MEUCIAJvRojkmgr5rX38fxJBcMKDgHZSWFhJIcHHpv4wQsQaAiEAuJq+tuzjWuj4D6vfs84AxZG8gt99RHGk1ek9CNzVeno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301138},"main":"./dist/index.cjs","type":"module","_from":"file:countrystatecity-timezones-1.0.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./data/*":"./dist/data/*"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup","test:ios":"vitest run compatibility","typecheck":"tsc --noEmit","test:watch":"vitest","generate-data":"node scripts/generate-data.cjs"},"_npmUser":{"name":"dr5hn","email":"gadadarshan@gmail.com"},"_resolved":"/tmp/9f029f4e81de305338d42f1769dc4871/countrystatecity-timezones-1.0.7.tgz","_integrity":"sha512-neNi4DXMOq+q32+gUXvFVcyIktfc5WPwXpWkzbxNNQmian+dnWu0LzbBMkxwwg17hmEdVF+NyDsmUT8B3KEwjg==","repository":{"url":"git+https://github.com/dr5hn/countrystatecity-npm.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive timezone data with conversion utilities and iOS/Safari support","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.16","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/timezones_1.0.7_1781173088943_0.4806915144333834","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@countrystatecity/timezones","version":"1.0.8","keywords":["country-state-city","countries states cities","countries states cities database","country state city","country state city database","geolocation","country","state","city","location","geography","iso","typescript","ios-compatible","timezone","translations","lazy-loading"],"author":{"name":"dr5hn"},"license":"ODbL-1.0","_id":"@countrystatecity/timezones@1.0.8","maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"homepage":"https://github.com/dr5hn/countrystatecity-npm/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/dr5hn/countrystatecity-npm/issues"},"dist":{"shasum":"abbb7bd7ad4ed3c8c5b09d5acb340efc3d5030e3","tarball":"https://registry.npmjs.org/@countrystatecity/timezones/-/timezones-1.0.8.tgz","fileCount":261,"integrity":"sha512-MVvCYcjnSS/tgnw/DavtU6hcogF7jchFjUhbWGcwNCzU6N7u6wiNpC5Fop79KDS6xBbIJ/eToQPNzYGJ3zqinw==","signatures":[{"sig":"MEUCIHYN5PfkkViOpxvg/QZnDgN7J2OXytlRrGt6XScxpk7KAiEArQFOmqnh7yfmBh5unoG1dm3GU5165hY+19tHiCy2MOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301307},"main":"./dist/index.cjs","type":"module","_from":"file:countrystatecity-timezones-1.0.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./data/*":"./dist/data/*"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup","test:ios":"vitest run compatibility","typecheck":"tsc --noEmit","test:watch":"vitest","generate-data":"node scripts/generate-data.cjs"},"_npmUser":{"name":"dr5hn","email":"gadadarshan@gmail.com"},"_resolved":"/tmp/a668bcb7e59cf144081a68f224c6356c/countrystatecity-timezones-1.0.8.tgz","_integrity":"sha512-MVvCYcjnSS/tgnw/DavtU6hcogF7jchFjUhbWGcwNCzU6N7u6wiNpC5Fop79KDS6xBbIJ/eToQPNzYGJ3zqinw==","repository":{"url":"git+https://github.com/dr5hn/countrystatecity-npm.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive timezone data with conversion utilities and iOS/Safari support","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.16","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/timezones_1.0.8_1786169490690_0.4004840975340498","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@countrystatecity/timezones","version":"1.0.9","description":"Comprehensive timezone data with conversion utilities and iOS/Safari support","keywords":["country-state-city","countries states cities","countries states cities database","country state city","country state city database","geolocation","country","state","city","location","geography","iso","typescript","ios-compatible","timezone","translations","lazy-loading"],"author":{"name":"dr5hn"},"license":"ODbL-1.0","repository":{"type":"git","url":"git+https://github.com/dr5hn/countrystatecity-npm.git"},"homepage":"https://github.com/dr5hn/countrystatecity-npm/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/dr5hn/countrystatecity-npm/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./data/*":"./dist/data/*"},"devDependencies":{"@types/node":"^20.19.19","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^4.0.16"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:ios":"vitest run compatibility","lint":"eslint src --ext .ts","typecheck":"tsc --noEmit","generate-data":"node scripts/generate-data.cjs"},"_id":"@countrystatecity/timezones@1.0.9","_integrity":"sha512-rihRHZrEpoHumDQcJFDUf0pvpxmafNZNreGkylPX5XikHrM+04MuOVQmrOTP0+gOTw4FLd4sIPAyZ6TWzmHIKg==","_resolved":"/tmp/916cb1902f4256b1cd5d095269a99ab3/countrystatecity-timezones-1.0.9.tgz","_from":"file:countrystatecity-timezones-1.0.9.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-rihRHZrEpoHumDQcJFDUf0pvpxmafNZNreGkylPX5XikHrM+04MuOVQmrOTP0+gOTw4FLd4sIPAyZ6TWzmHIKg==","shasum":"a27026ab8a9b547596c01e63ed0fc1711d1fb4b6","tarball":"https://registry.npmjs.org/@countrystatecity/timezones/-/timezones-1.0.9.tgz","fileCount":261,"unpackedSize":301307,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICeHeZ8iwGDiuiiAO6QU+pNBXcirmVE2D2Kiv2yK7yCRAiEApd783yJ1eh7oW1tW8qp2vkKawAOHZ8PD4GDNdJAf6/c="}]},"_npmUser":{"name":"dr5hn","email":"gadadarshan@gmail.com"},"directories":{},"maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/timezones_1.0.9_1786188774343_0.691759627975024"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-18T13:13:10.314Z","modified":"2026-08-08T11:32:54.834Z","1.0.0":"2025-10-18T13:13:10.627Z","1.0.5":"2025-12-21T13:24:39.258Z","1.0.6":"2026-06-11T09:06:37.663Z","1.0.7":"2026-06-11T10:18:09.178Z","1.0.8":"2026-08-08T06:11:30.825Z","1.0.9":"2026-08-08T11:32:54.668Z"},"bugs":{"url":"https://github.com/dr5hn/countrystatecity-npm/issues"},"author":{"name":"dr5hn"},"license":"ODbL-1.0","homepage":"https://github.com/dr5hn/countrystatecity-npm/tree/main/packages/timezones#readme","keywords":["country-state-city","countries states cities","countries states cities database","country state city","country state city database","geolocation","country","state","city","location","geography","iso","typescript","ios-compatible","timezone","translations","lazy-loading"],"repository":{"type":"git","url":"git+https://github.com/dr5hn/countrystatecity-npm.git"},"description":"Comprehensive timezone data with conversion utilities and iOS/Safari support","maintainers":[{"name":"dr5hn","email":"gadadarshan@gmail.com"}],"readme":"# @countrystatecity/timezones\n\n[![npm](https://img.shields.io/npm/v/@countrystatecity/timezones)](https://www.npmjs.com/package/@countrystatecity/timezones)\n[![CI](https://github.com/dr5hn/countrystatecity-npm/workflows/Pipeline/badge.svg)](https://github.com/dr5hn/countrystatecity-npm/actions/workflows/ci.yml)\n[![npm downloads](https://img.shields.io/npm/dm/@countrystatecity/timezones?label=timezones)](https://www.npmjs.com/package/@countrystatecity/timezones)\n[![npm downloads](https://img.shields.io/npm/dw/@countrystatecity/timezones?label=timezones)](https://www.npmjs.com/package/@countrystatecity/timezones)\n\nComprehensive timezone data with conversion utilities and iOS/Safari support.\n\n**Environment:** 🖥️ **Server-side only** (Node.js, Next.js API routes, Express, etc.)\n\n## ✨ Features\n\n- 🌐 **392 IANA Timezones**: Complete timezone database\n- 🗺️ **223 Countries**: Timezones organized by country\n- 🔄 **Time Conversion**: Convert between timezones easily\n- ⏰ **Current Time**: Get current time in any timezone\n- 📅 **DST Support**: Detect daylight saving time\n- 📱 **iOS Compatible**: No stack overflow errors on Safari/iOS\n- 🚀 **Minimal Bundle**: <20KB initial load with lazy loading\n- 📝 **TypeScript**: Full type definitions included\n- 🔧 **Tree-Shakeable**: Only bundle what you use\n\n## 📦 Installation\n\n```bash\nnpm install @countrystatecity/timezones\n# or\nyarn add @countrystatecity/timezones\n# or\npnpm add @countrystatecity/timezones\n```\n\n## 🚀 Quick Start\n\n```typescript\nimport {\n  getTimezones,\n  getTimezonesByCountry,\n  convertTime,\n  getCurrentTime\n} from '@countrystatecity/timezones';\n\n// Get all timezones (~74KB - lazy loaded)\nconst timezones = await getTimezones();\nconsole.log(timezones.length); // 392\n\n// Get timezones for a specific country (~0.3KB per country)\nconst usTimezones = await getTimezonesByCountry('US');\nconsole.log(usTimezones);\n// [\n//   { zoneName: 'America/New_York', abbreviation: 'EST', ... },\n//   { zoneName: 'America/Chicago', abbreviation: 'CST', ... },\n//   ...\n// ]\n\n// Get current time in a timezone\nconst currentTime = await getCurrentTime('America/New_York');\nconsole.log(currentTime); // \"2025-10-18T08:30:00.000Z\"\n\n// Convert time between timezones\nconst converted = await convertTime(\n  '2025-10-18 14:00',\n  'America/New_York',\n  'Asia/Tokyo'\n);\nconsole.log(converted);\n// {\n//   originalTime: \"2025-10-18T14:00:00.000Z\",\n//   fromTimezone: \"America/New_York\",\n//   convertedTime: \"2025-10-19T04:00:00.000Z\",\n//   toTimezone: \"Asia/Tokyo\",\n//   timeDifference: 14\n// }\n```\n\n## 📖 API Reference\n\n### Core Functions\n\n#### `getTimezones()`\n\nGet all available timezones.\n\n```typescript\nconst timezones = await getTimezones();\n// Returns: ITimezone[]\n```\n\n**Bundle Impact**: ~74KB\n\n#### `getTimezonesByCountry(countryCode: string)`\n\nGet timezones for a specific country.\n\n```typescript\nconst timezones = await getTimezonesByCountry('US');\n// Returns: ITimezone[]\n```\n\n**Parameters:**\n- `countryCode` - ISO 3166-1 alpha-2 country code (e.g., 'US', 'IN')\n\n**Bundle Impact**: ~0.3KB per country\n\n#### `getTimezoneInfo(timezoneName: string)`\n\nGet detailed information about a timezone including current time.\n\n```typescript\nconst info = await getTimezoneInfo('America/New_York');\n// Returns: ITimezoneInfo | null\n```\n\n**Returns:**\n```typescript\n{\n  timezone: \"America/New_York\",\n  currentTime: \"2025-10-18T08:30:00.000Z\",\n  utcOffset: \"UTC-05:00\",\n  isDST: false,\n  gmtOffset: -18000\n}\n```\n\n#### `getTimezoneAbbreviations()`\n\nGet all timezone abbreviations (PST, EST, etc.).\n\n```typescript\nconst abbreviations = await getTimezoneAbbreviations();\n// Returns: ITimezoneAbbreviation[]\n```\n\n**Bundle Impact**: ~5KB\n\n#### `getTimezonesByAbbreviation(abbreviation: string)`\n\nFind timezones by abbreviation.\n\n```typescript\nconst timezones = await getTimezonesByAbbreviation('EST');\n// Returns: ITimezone[]\n```\n\n### Utility Functions\n\n#### `convertTime(time, fromTimezone, toTimezone)`\n\nConvert time from one timezone to another.\n\n```typescript\nconst result = await convertTime(\n  '2025-10-18 14:00',\n  'America/New_York',\n  'Europe/London'\n);\n// Returns: IConvertedTime\n```\n\n**Parameters:**\n- `time` - Time to convert (ISO string or Date object)\n- `fromTimezone` - Source timezone (IANA name)\n- `toTimezone` - Target timezone (IANA name)\n\n#### `getCurrentTime(timezoneName: string)`\n\nGet current time in a specific timezone.\n\n```typescript\nconst time = await getCurrentTime('Asia/Tokyo');\n// Returns: string (ISO format)\n```\n\n#### `isDaylightSaving(timezoneName: string, date?: Date)`\n\nCheck if daylight saving time is active.\n\n```typescript\nconst isDST = await isDaylightSaving('America/New_York');\n// Returns: boolean\n```\n\n**Parameters:**\n- `timezoneName` - IANA timezone name\n- `date` - Optional date to check (defaults to now)\n\n#### `getGMTOffset(timezoneName: string)`\n\nGet GMT/UTC offset in seconds.\n\n```typescript\nconst offset = await getGMTOffset('America/New_York');\n// Returns: number (e.g., -18000 for UTC-05:00)\n```\n\n#### `formatGMTOffset(offsetSeconds: number)`\n\nFormat GMT offset from seconds to string.\n\n```typescript\nconst formatted = formatGMTOffset(-18000);\n// Returns: \"UTC-05:00\"\n```\n\n#### `isValidTimezone(timezoneName: string)`\n\nValidate if a timezone name is valid.\n\n```typescript\nconst isValid = await isValidTimezone('America/New_York');\n// Returns: boolean\n```\n\n#### `searchTimezones(searchTerm: string)`\n\nSearch timezones by name (partial match).\n\n```typescript\nconst results = await searchTimezones('america');\n// Returns: ITimezone[]\n```\n\n#### `getUniqueAbbreviations()`\n\nGet all unique timezone abbreviations.\n\n```typescript\nconst abbreviations = await getUniqueAbbreviations();\n// Returns: string[] (e.g., ['EST', 'PST', 'CST', ...])\n```\n\n#### `getTimezonesByOffset(offsetSeconds: number)`\n\nGet timezones by GMT offset.\n\n```typescript\nconst timezones = await getTimezonesByOffset(-18000); // UTC-05:00\n// Returns: ITimezone[]\n```\n\n## 🌍 Real-World Examples\n\n### Meeting Scheduler\n\n```typescript\nimport { convertTime, getTimezonesByCountry } from '@countrystatecity/timezones';\n\nasync function scheduleMeeting(localTime: string, attendeeCountries: string[]) {\n  const meetingTimes = [];\n\n  for (const countryCode of attendeeCountries) {\n    const timezones = await getTimezonesByCountry(countryCode);\n    const primaryTz = timezones[0];\n\n    const converted = await convertTime(\n      localTime,\n      'America/New_York',\n      primaryTz.zoneName\n    );\n\n    meetingTimes.push({\n      country: countryCode,\n      timezone: primaryTz.zoneName,\n      time: converted.convertedTime\n    });\n  }\n\n  return meetingTimes;\n}\n\n// Schedule 2 PM EST meeting for US, UK, and Japan\nconst times = await scheduleMeeting('2025-10-18 14:00', ['US', 'GB', 'JP']);\n```\n\n### World Clock\n\n```typescript\nimport { getTimezonesByCountry, getCurrentTime } from '@countrystatecity/timezones';\n\nasync function createWorldClock(countryCodes: string[]) {\n  const clocks = [];\n\n  for (const code of countryCodes) {\n    const timezones = await getTimezonesByCountry(code);\n    for (const tz of timezones) {\n      const currentTime = await getCurrentTime(tz.zoneName);\n      clocks.push({\n        location: tz.tzName,\n        timezone: tz.zoneName,\n        currentTime,\n        offset: tz.gmtOffsetName\n      });\n    }\n  }\n\n  return clocks;\n}\n\nconst worldClock = await createWorldClock(['US', 'GB', 'IN', 'AU', 'JP']);\n```\n\n### DST Reminder\n\n```typescript\nimport { isDaylightSaving, getTimezonesByCountry } from '@countrystatecity/timezones';\n\nasync function checkDSTStatus(countryCode: string) {\n  const timezones = await getTimezonesByCountry(countryCode);\n\n  const dstStatus = [];\n  for (const tz of timezones) {\n    const isDST = await isDaylightSaving(tz.zoneName);\n    dstStatus.push({\n      timezone: tz.tzName,\n      isDST,\n      message: isDST\n        ? 'Daylight Saving Time is active'\n        : 'Standard Time'\n    });\n  }\n\n  return dstStatus;\n}\n```\n\n## 🔧 TypeScript Types\n\n```typescript\ninterface ITimezone {\n  zoneName: string;        // \"America/New_York\"\n  countryCode: string;     // \"US\"\n  abbreviation: string;    // \"EST\"\n  gmtOffset: number;       // -18000 (seconds)\n  gmtOffsetName: string;   // \"UTC-05:00\"\n  tzName: string;          // \"Eastern Standard Time\"\n}\n\ninterface ITimezoneInfo {\n  timezone: string;\n  currentTime: string;     // ISO string\n  utcOffset: string;       // \"UTC-05:00\"\n  isDST: boolean;\n  gmtOffset: number;\n}\n\ninterface ITimezoneAbbreviation {\n  abbreviation: string;    // \"EST\"\n  name: string;            // \"Eastern Standard Time\"\n  timezones: string[];     // [\"America/New_York\", ...]\n}\n\ninterface IConvertedTime {\n  originalTime: string;\n  fromTimezone: string;\n  convertedTime: string;\n  toTimezone: string;\n  timeDifference: number;  // hours\n}\n```\n\n## 📊 Bundle Size\n\n| Action | Bundle Size |\n|--------|-------------|\n| Install package + import function | ~5KB |\n| Load all timezones | ~74KB |\n| Load timezones for one country | ~0.3KB |\n| Load abbreviations | ~5KB |\n| **Typical usage** | **~10KB** |\n\n### Data Coverage\n\n- **390 IANA Timezones**: Covers 90.7% of canonical IANA timezones\n- **223 Countries**: All countries with complete metadata\n- **99%+ Population Coverage**: Includes all major populated regions\n\nWhat is included: all major countries and territories, all business and residential timezones, complete DST information, and historical timezone data.\n\nWhat is not included: Antarctica research station timezones (11), some small dependent territories (16), and some disputed/unrecognized territories (12).\n\nSee [TIMEZONE_COVERAGE.md](./TIMEZONE_COVERAGE.md) for detailed analysis.\n\n**Note**: Timezone data is automatically sourced from the [Countries States Cities Database](https://github.com/dr5hn/countries-states-cities-database) and updates weekly.\n\n## 🧪 Testing\n\n```bash\n# Run all tests\nnpm test\n\n# Watch mode\nnpm run test:watch\n```\n\nAll packages include comprehensive tests:\n- ✅ Unit tests\n- ✅ Integration tests\n- ✅ iOS/Safari compatibility tests\n\n## 🔄 CI/CD & Automation\n\n### Continuous Integration\nEvery push and PR automatically:\n- ✅ Runs type checking with TypeScript\n- ✅ Executes comprehensive test suite\n- ✅ Builds the package\n- ✅ Validates bundle sizes\n- ✅ Tests iOS/Safari compatibility\n\n### Automated Data Updates\nWeekly automated updates (Sundays at 00:00 UTC):\n- 📥 Downloads latest timezone data from authoritative sources\n- 🔄 Transforms into optimized structure\n- 🧪 Runs full test suite\n- 📝 Creates PR for review if changes detected\n\nThis ensures your application always has access to the most current timezone information without manual intervention.\n\n### Automated Publishing\nAutomated publishing to NPM on version changes:\n- 🔍 Detects version bumps in package.json\n- 📦 Builds and tests before publishing\n- 🚀 Publishes to NPM registry\n- 🏷️ Creates GitHub release with changelog\n\n## 📄 License\n\n[ODbL-1.0](https://github.com/dr5hn/countrystatecity/blob/main/LICENSE) © [dr5hn](https://github.com/dr5hn)\n\nThis package and its data are licensed under the Open Database License (ODbL) v1.0. The data is sourced from the [Countries States Cities Database](https://github.com/dr5hn/countries-states-cities-database) which is also licensed under ODbL-1.0.\n\nYou are free to share, create, and adapt this database as long as you attribute the original sources, distribute adaptations under the same license, and don't use technical restrictions to lock down the data.\n\n## 🤝 Contributing\n\nContributions are welcome! Please open an issue or PR.\n\n**For data-related issues** (incorrect timezone data, missing timezones, wrong offsets, etc.), please report them to the [Countries States Cities Database](https://github.com/dr5hn/countries-states-cities-database/issues) repository, which is the authoritative source of data for this package.\n\n## 📦 Package Ecosystem\n\nThis package is part of the [@countrystatecity package ecosystem](https://github.com/dr5hn/countrystatecity-npm):\n\n- **[@countrystatecity/countries](https://www.npmjs.com/package/@countrystatecity/countries)** — Server-side countries, states, and cities database. Environment: Node.js, Next.js API routes, Express. Bundle: <10KB initial load.\n\n- **[@countrystatecity/countries-browser](https://www.npmjs.com/package/@countrystatecity/countries-browser)** — Browser-native version with jsDelivr CDN and lazy loading. Environment: React, Vue, Svelte, Vite, any browser. Same API as the server package — zero config, just import and use.\n\n- **[@countrystatecity/timezones](https://www.npmjs.com/package/@countrystatecity/timezones)** (This package) — Comprehensive timezone data with conversion utilities. Environment: Server-side only. Bundle: <20KB initial load.\n\n## 🔗 Links\n\n- [GitHub Repository](https://github.com/dr5hn/countrystatecity-npm/tree/main/packages/timezones)\n- [Issues](https://github.com/dr5hn/countrystatecity-npm/issues)\n- [NPM Package](https://www.npmjs.com/package/@countrystatecity/timezones)\n- [NPM Organization](https://www.npmjs.com/org/countrystatecity)\n","readmeFilename":"README.md"}