{"_id":"@adnanghani07/iana-timezone-utils","_rev":"4-ff3e45882788fec8ad07fd361b892978","name":"@adnanghani07/iana-timezone-utils","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@adnanghani07/iana-timezone-utils","version":"1.0.0","keywords":["timezone","iana","dst","canonical","tz"],"author":{"name":"Adnan Ghani","email":"agadnanrocks07@gmail.com"},"license":"MIT","_id":"@adnanghani07/iana-timezone-utils@1.0.0","maintainers":[{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"}],"homepage":"https://github.com/AdnanGhani07/iana-timezone-utils#readme","bugs":{"url":"https://github.com/AdnanGhani07/iana-timezone-utils/issues"},"dist":{"shasum":"9ace96dfe014154697aac509cf4891843d6c7d47","tarball":"https://registry.npmjs.org/@adnanghani07/iana-timezone-utils/-/iana-timezone-utils-1.0.0.tgz","fileCount":6,"integrity":"sha512-ypXCavemJAixT3pcQaXB3/yiHhNUZrfLezT7vBvKg+H9gnuiDfAKakkm1QQoUFT8qr1RnmtcUal8nADTyELZGg==","signatures":[{"sig":"MEQCIBHNHabBg/kT6JOxOdOed/3Xeso4lMCgsVM7AzODo2V5AiBqheQaSf+HpGFF6X1jJ5BEmB+wB5i/+EtLKiPMeUVx1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125106},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"39f4177c9a560c499a655f8622842e0cf3ae4e4c","scripts":{"build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"},"repository":{"url":"git+https://github.com/AdnanGhani07/iana-timezone-utils.git","type":"git"},"_npmVersion":"10.9.3","description":"Canonical IANA timezone utilities with legacy mapping, DST helpers, and abbreviations","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/iana-timezone-utils_1.0.0_1768836478889_0.687683578965909","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adnanghani07/iana-timezone-utils","version":"1.0.1","keywords":["timezone","iana","dst","canonical","tz"],"author":{"name":"Adnan Ghani","email":"agadnanrocks07@gmail.com"},"license":"MIT","_id":"@adnanghani07/iana-timezone-utils@1.0.1","maintainers":[{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"}],"homepage":"https://github.com/AdnanGhani07/iana-timezone-utils#readme","bugs":{"url":"https://github.com/AdnanGhani07/iana-timezone-utils/issues"},"dist":{"shasum":"6103980fcdb260057932c5e8546e64d917649213","tarball":"https://registry.npmjs.org/@adnanghani07/iana-timezone-utils/-/iana-timezone-utils-1.0.1.tgz","fileCount":6,"integrity":"sha512-96+aUkvbzWWxZ4vK4iH/vqP3tEDiMZCQA/8XjZXjiPHD0OP8aH8YCaw4bRVotoht/ac6qj+IU1pyvyvwHRP2Bg==","signatures":[{"sig":"MEUCIAInypC5i6y64g8XBT//RmaHlu60VYii0hiZKdSDl8P6AiEAo2OOkr+8TLm1onGlz6MCj7gWkjcGN/5ghZHwiOMp/jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159810},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"50d32e0d9db7184d5018cc121ac6bc754b5b61ab","scripts":{"build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"},"repository":{"url":"git+https://github.com/AdnanGhani07/iana-timezone-utils.git","type":"git"},"_npmVersion":"10.9.3","description":"Canonical IANA timezone utilities with legacy mapping, DST helpers, and abbreviations","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/iana-timezone-utils_1.0.1_1768839708325_0.1110112397827907","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adnanghani07/iana-timezone-utils","version":"1.0.2","keywords":["timezone","iana","dst","canonical","tz"],"author":{"name":"Adnan Ghani","email":"agadnanrocks07@gmail.com"},"license":"MIT","_id":"@adnanghani07/iana-timezone-utils@1.0.2","maintainers":[{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"}],"homepage":"https://github.com/AdnanGhani07/iana-timezone-utils#readme","bugs":{"url":"https://github.com/AdnanGhani07/iana-timezone-utils/issues"},"dist":{"shasum":"ea19478e6e9c8f403c933d186c5c08e626944576","tarball":"https://registry.npmjs.org/@adnanghani07/iana-timezone-utils/-/iana-timezone-utils-1.0.2.tgz","fileCount":6,"integrity":"sha512-HepYe/eZwKL7p0u9rssgbOX1hteVZBwFISFThsWq/9NrkoBRY1gR6B14jgYTxRbM66JVtwC2jOWW8FHocATI9w==","signatures":[{"sig":"MEUCIQCV1aABClyLW8K0Dp4AGhNIwT++1k/IFJ8gGZDEsITujAIgF8Z1PaF89lgN7O+mW3xl/XQfmMg5xAaJvBVs/q3SCJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149724},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"955b9f080c9168f323fbbe35eb89962b9009d6fe","scripts":{"build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"},"repository":{"url":"git+https://github.com/AdnanGhani07/iana-timezone-utils.git","type":"git"},"_npmVersion":"10.9.3","description":"Canonical IANA timezone utilities with legacy mapping, DST helpers, and abbreviations","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/iana-timezone-utils_1.0.2_1768846127637_0.13276236077650583","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@adnanghani07/iana-timezone-utils","version":"1.0.3","description":"Canonical IANA timezone utilities with legacy mapping, DST helpers, and abbreviations","keywords":["timezone","iana","dst","canonical","tz"],"author":{"name":"Adnan Ghani","email":"agadnanrocks07@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/AdnanGhani07/iana-timezone-utils.git"},"bugs":{"url":"https://github.com/AdnanGhani07/iana-timezone-utils/issues"},"homepage":"https://github.com/AdnanGhani07/iana-timezone-utils#readme","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts"},"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_id":"@adnanghani07/iana-timezone-utils@1.0.3","gitHead":"b601801302be3302be94fb7911cd11965e1cdb07","_nodeVersion":"22.21.1","_npmVersion":"10.9.3","dist":{"integrity":"sha512-8aRDpmlbBc6SIVlhkNR92Gv97SvCdfW5vUrrYdA8F6+MI9hLfZjdM4hy8SBCu+EniRtsQ3NaZNDDYitBhH03EQ==","shasum":"bdc4b3a7ac0a2d9261401514479edd6df4c2c376","tarball":"https://registry.npmjs.org/@adnanghani07/iana-timezone-utils/-/iana-timezone-utils-1.0.3.tgz","fileCount":6,"unpackedSize":149724,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC5TU7XY38pOBW9t2c/LYAJaHNQCgqf6ExEHfYKj7jk1wIhAKer5QtqQpUjgT0ZnbGVdl2VsJbPIFqw4C+hP2g3w7Yo"}]},"_npmUser":{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"},"directories":{},"maintainers":[{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iana-timezone-utils_1.0.3_1768846345757_0.647656370042466"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-19T15:27:58.829Z","modified":"2026-01-19T18:12:25.998Z","1.0.0":"2026-01-19T15:27:59.049Z","1.0.1":"2026-01-19T16:21:48.477Z","1.0.2":"2026-01-19T18:08:47.772Z","1.0.3":"2026-01-19T18:12:25.888Z"},"bugs":{"url":"https://github.com/AdnanGhani07/iana-timezone-utils/issues"},"author":{"name":"Adnan Ghani","email":"agadnanrocks07@gmail.com"},"license":"MIT","homepage":"https://github.com/AdnanGhani07/iana-timezone-utils#readme","keywords":["timezone","iana","dst","canonical","tz"],"repository":{"type":"git","url":"git+https://github.com/AdnanGhani07/iana-timezone-utils.git"},"description":"Canonical IANA timezone utilities with legacy mapping, DST helpers, and abbreviations","maintainers":[{"name":"adnanghani07","email":"agadnanrocks07@gmail.com"}],"readme":"# @adnanghani07/iana-timezone-utils\r\n\r\nA lightweight, zero-dependency utility library for working with IANA timezones. It provides canonicalization of legacy timezone names, DST detection, and timezone abbreviations using native `Intl` APIs.\r\n\r\n![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)\r\n![npm version](https://img.shields.io/npm/v/@adnanghani07/iana-timezone-utils.svg)\r\n![TypeScript](https://img.shields.io/badge/types-included-blue)\r\n\r\n## Features\r\n\r\n- 🌍 **Canonicalization**: Convert legacy or alias timezones (e.g., `Asia/Calcutta`) to their modern IANA canonical map (e.g., `Asia/Kolkata`).\r\n- 🕒 **DST Detection**: robustly check if a specific date is currently in Daylight Saving Time for any given timezone.\r\n- 📝 **Abbreviations**: Extract standard timezone abbreviations (e.g., `EST`, `IST`, `GMT+5`) using native browser APIs.\r\n- 📋 **Listing**: Get a complete list of all distinct canonical timezones supported by the library.\r\n- ⚡ **Zero Dependencies**: Built on top of `Intl` and standard generic data.\r\n- 🔷 **TypeScript**: First-class type definitions included.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @adnanghani07/iana-timezone-utils\r\n# or\r\nyarn add @adnanghani07/iana-timezone-utils\r\n# or\r\npnpm add @adnanghani07/iana-timezone-utils\r\n```\r\n\r\n## Usage\r\n\r\n### 1. Canonicalize Timezones\r\n\r\nNormalize legacy or aliased timezone identifiers to their primary IANA canonical ID.\r\n\r\n```typescript\r\nimport { canonicalizeTimezone } from \"@adnanghani07/iana-timezone-utils\";\r\n\r\nconsole.log(canonicalizeTimezone(\"Asia/Calcutta\")); // \"Asia/Kolkata\"\r\nconsole.log(canonicalizeTimezone(\"US/Eastern\")); // \"America/New_York\"\r\nconsole.log(canonicalizeTimezone(\"UTC\")); // \"Etc/UTC\"\r\n```\r\n\r\n### 2. Check for Daylight Saving Time (DST)\r\n\r\nDetermine if a specific timezone is observing Daylight Saving Time for a given date.\r\n\r\n```typescript\r\nimport { isDST } from \"@adnanghani07/iana-timezone-utils\";\r\n\r\n// Check for current time\r\nconst isNewYorkDST = isDST(\"America/New_York\");\r\nconsole.log(`Is New York in DST? ${isNewYorkDST}`);\r\n\r\n// Check for a specific date (e.g., Winter in NY)\r\nconst winterDate = new Date(\"2023-01-15T12:00:00Z\");\r\nconsole.log(isDST(\"America/New_York\", winterDate)); // false\r\n\r\n// Check for a specific date (e.g., Summer in NY)\r\nconst summerDate = new Date(\"2023-07-15T12:00:00Z\");\r\nconsole.log(isDST(\"America/New_York\", summerDate)); // true\r\n```\r\n\r\n### 3. Get Timezone Abbreviation\r\n\r\nGet the display abbreviation for a timezone at a specific point in time.\r\n\r\n```typescript\r\nimport { getTimezoneAbbreviation } from \"@adnanghani07/iana-timezone-utils\";\r\n\r\nconst abbr = getTimezoneAbbreviation(\"America/Los_Angeles\");\r\nconsole.log(abbr); // e.g., \"PST\" or \"PDT\" depending on current date\r\n```\r\n\r\n### 4. List All Canonical Timezones\r\n\r\nRetrieve an array of all unique canonical timezone identifiers derived from the IANA database aliases.\r\n\r\n```typescript\r\nimport { listCanonicalTimezones } from \"@adnanghani07/iana-timezone-utils\";\r\n\r\nconst allZones = listCanonicalTimezones();\r\nconsole.log(allZones);\r\n// [\"Africa/Abidjan\", \"Africa/Algiers\", ..., \"America/New_York\", ...]\r\n```\r\n\r\n## API Reference\r\n\r\n### `canonicalizeTimezone(tz: string): string`\r\n\r\nReturns the canonical IANA ID for the given timezone string. If the timezone is already canonical or not found in the alias map, it returns the input key.\r\n\r\n### `isDST(timezone: string, date?: Date): boolean`\r\n\r\nReturns `true` if the timezone is in Daylight Saving Time for the provided `date`. Defaults to `new Date()` if no date is provided.\r\n\r\n### `getTimezoneAbbreviation(timezone: string, date?: Date): string`\r\n\r\nReturns the short abbreviation (e.g., \"EST\", \"GMT+5:30\") for the timezone at the given date.\r\n\r\n### `listCanonicalTimezones(): string[]`\r\n\r\nReturns a sorted array of all canonical string identifiers.\r\n\r\n## License\r\n\r\nMIT © [Adnan Ghani](https://github.com/AdnanGhani07)\r\n","readmeFilename":"README.md"}