{"_id":"@arkv/timezones","_rev":"4-4cabed3d5f3f36f57f11a8ba8e696d01","name":"@arkv/timezones","dist-tags":{"bootstrap":"0.0.0","latest":"0.0.3"},"versions":{"0.0.0":{"name":"@arkv/timezones","version":"0.0.0","keywords":["date","datetime","db","gmt","iana","json","list","no deps","offset","static data","time","timezone","timezone offset","timezones","typescript","tz","tzdb","utc"],"author":{"url":"https://github.com/petarzarkov","name":"Petar Zarkov","email":"pzarko1@gmail.com"},"license":"MIT","_id":"@arkv/timezones@0.0.0","maintainers":[{"name":"p.zarkov","email":"pzarko1@gmail.com"}],"homepage":"https://github.com/petarzarkov/arkv/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/petarzarkov/arkv/issues"},"dist":{"shasum":"f9cc447b0941becd9f39cca457bd036d8a4d1999","tarball":"https://registry.npmjs.org/@arkv/timezones/-/timezones-0.0.0.tgz","fileCount":14,"integrity":"sha512-xDy4UcdjvqvSBuEUtzlnhL/ZGnVW5eDP/8E2EFVmI1sQhm7l/3QnkOTr4DH34wBC++WxO2oTL+8E1V4QBwsvBQ==","signatures":[{"sig":"MEUCICsB1WT1O/BuiKo6LQeq6ZqwI3CHMypMy1AltP0sEeJVAiEAvOpvSRa9kpc2InPXhCJOvyOB3habtQrw2gdq9CnCdoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363673},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"e562bc8cbe8cfe59ee17cfe772a1d58fa4c30289","scripts":{"test":"bun test --bail","build":"bun run --parallel build:esm build:cjs build:types","generate":"bun ./scripts/generate.ts","prebuild":"rm -rf dist","test:cov":"bun test --coverage","build:cjs":"tsc -p tsconfig.build.cjs.json","build:esm":"tsc -p tsconfig.build.esm.json","postbuild":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json","typecheck":"tsc --noEmit","build:types":"tsc -p tsconfig.build.types.json"},"_npmUser":{"name":"p.zarkov","email":"pzarko1@gmail.com"},"repository":{"url":"git+https://github.com/petarzarkov/arkv.git","type":"git","directory":"packages/timezones"},"_npmVersion":"11.10.1","description":"Auto-generated IANA timezone data with rich metadata, no dependencies, full TypeScript support, and Node/browser compatibility.","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"csv-parse":"6.2.1","tar-stream":"3.2.0","@types/tar-stream":"3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/timezones_0.0.0_1785062112997_0.8632377781516143","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@arkv/timezones","version":"0.0.1","keywords":["date","datetime","db","gmt","iana","json","list","no deps","offset","static data","time","timezone","timezone offset","timezones","typescript","tz","tzdb","utc"],"author":{"url":"https://github.com/petarzarkov","name":"Petar Zarkov","email":"pzarko1@gmail.com"},"license":"MIT","_id":"@arkv/timezones@0.0.1","maintainers":[{"name":"p.zarkov","email":"pzarko1@gmail.com"}],"homepage":"https://github.com/petarzarkov/arkv/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/petarzarkov/arkv/issues"},"dist":{"shasum":"84d4c7277c0afb20761881e5014c032a9108dd09","tarball":"https://registry.npmjs.org/@arkv/timezones/-/timezones-0.0.1.tgz","fileCount":14,"integrity":"sha512-QBAi0f6Mp1txx9GjPZejKnePc0Wgd5J/rOmdrrUTcCzSN3oVRB4ci2AUhHpf014Gz3hn3TaCQxpgepR1PNpYEw==","signatures":[{"sig":"MEUCIQCZig1KHMdOO+AzmQubpChpN1Da7QRbU7uFVMgMDiHOeQIgBWv3UCrtMQ2P9j+BEB3BWLUs3CEJhZ7K+Zx6vlLXtcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arkv%2ftimezones@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363792},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"07d24fb62dbcb1bf04f3cfba8583027eb1b1cef3","scripts":{"test":"bun test --bail","build":"bun run --parallel build:esm build:cjs build:types","generate":"bun ./scripts/generate.ts","prebuild":"rm -rf dist","test:cov":"bun test --coverage","build:cjs":"tsc -p tsconfig.build.cjs.json","build:esm":"tsc -p tsconfig.build.esm.json","postbuild":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json","typecheck":"tsc --noEmit","build:types":"tsc -p tsconfig.build.types.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591ef91f-516a-478d-994f-c076b22cb0bf"}},"repository":{"url":"git+https://github.com/petarzarkov/arkv.git","type":"git","directory":"packages/timezones"},"_npmVersion":"11.10.1","description":"Auto-generated IANA timezone data with rich metadata, no dependencies, full TypeScript support, and Node/browser compatibility.","directories":{},"_nodeVersion":"22.23.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"csv-parse":"6.2.1","tar-stream":"3.2.0","@types/tar-stream":"3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/timezones_0.0.1_1785064886054_0.12284705625380377","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@arkv/timezones","version":"0.0.2","keywords":["date","datetime","db","gmt","iana","json","list","no deps","offset","static data","time","timezone","timezone offset","timezones","typescript","tz","tzdb","utc"],"author":{"url":"https://github.com/petarzarkov","name":"Petar Zarkov","email":"pzarko1@gmail.com"},"license":"MIT","_id":"@arkv/timezones@0.0.2","maintainers":[{"name":"p.zarkov","email":"pzarko1@gmail.com"}],"homepage":"https://github.com/petarzarkov/arkv/tree/main/packages/timezones#readme","bugs":{"url":"https://github.com/petarzarkov/arkv/issues"},"dist":{"shasum":"cba7a28b12212d38ec3e6bd12d26ad3e1ef4e77b","tarball":"https://registry.npmjs.org/@arkv/timezones/-/timezones-0.0.2.tgz","fileCount":14,"integrity":"sha512-ILbV8qUeaUpBDjWNzeqSab5a26Ui9xFxksMhx0pXow5jSIZGSbDsZAhd7bNTrxCs4bb7kJ1/xT2kG/2TL3MtwQ==","signatures":[{"sig":"MEYCIQCwE9d4lEqKmklFOMa4ec9C+oMWKQRxOXDa8+sbUco/aQIhAJylONGunSYUiP/ZodeEwXfz8FwPyZVJ0WvSAbkCcUvC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arkv%2ftimezones@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363673},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"a229d13d332246317039420f61689cdcfbeef72e","scripts":{"test":"bun test --bail","build":"bun run --parallel build:esm build:cjs build:types","generate":"bun ./scripts/generate.ts","prebuild":"rm -rf dist","test:cov":"bun test --coverage","build:cjs":"tsc -p tsconfig.build.cjs.json","build:esm":"tsc -p tsconfig.build.esm.json","postbuild":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json","typecheck":"tsc --noEmit","build:types":"tsc -p tsconfig.build.types.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591ef91f-516a-478d-994f-c076b22cb0bf"}},"repository":{"url":"git+https://github.com/petarzarkov/arkv.git","type":"git","directory":"packages/timezones"},"_npmVersion":"11.10.1","description":"Auto-generated IANA timezone data with rich metadata, no dependencies, full TypeScript support, and Node/browser compatibility.","directories":{},"_nodeVersion":"22.23.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"csv-parse":"6.2.1","tar-stream":"3.2.0","@types/tar-stream":"3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/timezones_0.0.2_1785066118630_0.3681760532013729","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"_id":"@arkv/timezones@0.0.3","bugs":{"url":"https://github.com/petarzarkov/arkv/issues"},"dist":{"shasum":"966cad42f88b4514845207ab06212c7b7799497e","tarball":"https://registry.npmjs.org/@arkv/timezones/-/timezones-0.0.3.tgz","fileCount":14,"integrity":"sha512-5NWR7xx/1V9b02SO6SMsozHzoQJO9JCsa/8qYcnQsmZ/Dq3OkvNoN32E4p1eXF6hyUaQoNQboY7h9Y19iy0lLA==","signatures":[{"sig":"MEUCIQCn/VNc72xBH9zxbOuaRcyoOBtFMgbWzYUsoF58+yPVRAIgAW9+khfeyM9kqv2XK7j1EjXpd2swhT2wLYPhMA7igTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHvMpPhzCBCL46vFWrRkkkeLG/1+NVo2XeT32QFp67zbAiEAzSRnzNfKyBG1cXLDKKH3rfufldqRlxOSNuWme1KlPxk="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arkv%2ftimezones@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":361803},"main":"dist/cjs/index.js","name":"@arkv/timezones","types":"dist/types/index.d.ts","author":{"url":"https://github.com/petarzarkov","name":"Petar Zarkov","email":"pzarko1@gmail.com"},"module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"d17ca0484bfc0a9dd8dc28fc2c54693bfdd51b14","license":"MIT","scripts":{"test":"bun test --bail","build":"bun run --parallel build:esm build:cjs build:types","generate":"bun ./scripts/generate.ts","prebuild":"rm -rf dist","test:cov":"bun test --coverage","build:cjs":"tsc -p tsconfig.build.cjs.json","build:esm":"tsc -p tsconfig.build.esm.json","postbuild":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json","typecheck":"tsc --noEmit","build:types":"tsc -p tsconfig.build.types.json"},"version":"0.0.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591ef91f-516a-478d-994f-c076b22cb0bf"}},"homepage":"https://github.com/petarzarkov/arkv/tree/main/packages/timezones#readme","keywords":["date","datetime","db","gmt","iana","json","list","no deps","offset","static data","time","timezone","timezone offset","timezones","typescript","tz","tzdb","utc"],"repository":{"url":"git+https://github.com/petarzarkov/arkv.git","type":"git","directory":"packages/timezones"},"_npmVersion":"11.10.1","description":"Auto-generated IANA timezone data with rich metadata, no dependencies, full TypeScript support, and Node/browser compatibility.","directories":{},"maintainers":[{"name":"p.zarkov","email":"pzarko1@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"csv-parse":"6.2.1","tar-stream":"3.2.0","@types/tar-stream":"3.1.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/timezones_0.0.3_1789447219971_0.5327868999747456"}}},"time":{"created":"2026-07-26T10:35:12.800Z","modified":"2026-09-15T04:40:20.413Z","0.0.0":"2026-07-26T10:35:13.159Z","0.0.1":"2026-07-26T11:21:26.188Z","0.0.2":"2026-07-26T11:41:58.779Z","0.0.3":"2026-09-15T04:40:20.082Z"},"bugs":{"url":"https://github.com/petarzarkov/arkv/issues"},"author":{"url":"https://github.com/petarzarkov","name":"Petar Zarkov","email":"pzarko1@gmail.com"},"license":"MIT","homepage":"https://github.com/petarzarkov/arkv/tree/main/packages/timezones#readme","keywords":["date","datetime","db","gmt","iana","json","list","no deps","offset","static data","time","timezone","timezone offset","timezones","typescript","tz","tzdb","utc"],"repository":{"url":"git+https://github.com/petarzarkov/arkv.git","type":"git","directory":"packages/timezones"},"description":"Auto-generated IANA timezone data with rich metadata, no dependencies, full TypeScript support, and Node/browser compatibility.","maintainers":[{"name":"p.zarkov","email":"pzarko1@gmail.com"}],"readme":"# @arkv/timezones\n\n[![npm](https://img.shields.io/npm/v/%40arkv%2Ftimezones)](https://www.npmjs.com/package/%40arkv%2Ftimezones)\n[![size](https://img.shields.io/npm/unpacked-size/%40arkv%2Ftimezones?label=size)](https://www.npmjs.com/package/%40arkv%2Ftimezones)\n[![license](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE)\n\n******\n\nAutomatically generated timezones from IANA DB [tzdata-latest.tar.gz](https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz)\n\n- No runtime dependencies\n- Weekly cron job to check for new IANA timezone data\n- Works in both Node.js and the browser\n- If you just need the json data - [timezones.json](https://github.com/petarzarkov/arkv/blob/main/packages/timezones/timezones.json)\n\nThe fields for each timezone object are as follows:\n\n| Field Name       | Description                                                                                                    | Example Value             |\n| ---------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------- |\n| `tzCode`         | The standard IANA Time Zone Database identifier (tz tzCode).                                                     | `Europe/Sofia` |\n| `label`          | A display string combining the `tzCode` and the recorded UTC offset.                                             | `Europe/Sofia (GMT+03:00)` |\n| `utc`            | The UTC offset in `+HH:MM` or `-HH:MM` format, as recorded when the data was generated.                          | `+03:00` |\n| `locationLabel`  | A human-readable name for the primary city or location associated with the timezone.                             | `Sofia` |\n| `countryCodes`   | An array of `ISO 3166-1 alpha-2` country codes associated with this timezone.                                    | `['KI', ...]` |\n| `geographicArea` | The continent or ocean region the timezone is located in.                                                       | `Europe` |\n| `type`           | Indicates if the entry is a `Canonical` timezone or a `Link` (an alias) to another timezone.                     | `Canonical` or `Link` |\n| `parent`         | (Present for `Link` types) The `tzCode` of the canonical timezone that this link points to.                      | `Europe/London` |\n| `comments`       | (Optional) Additional notes from the IANA database.                                                            | `'Mountain (most areas)'` |\n| `children`       | (Present for `Canonical` types) An array of `tzCode` values for the zones that are links pointing to this.       | `['EST5EDT', ...]` |\n| `location`       | The raw location name used in the IANA database (e.g., the last part of the `tzCode` before underscores).         | `Sofia` |\n\nInspired by: [list of tz database in wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\n\n- **IANA DB Version**: 2026d\n- **Updated**: Tue, 15 Sep 2026 04:35:09 GMT\n- **Last Modified**: Fri, 11 Sep 2026 22:36:31 GMT\n- **Number of zones**: 593\n- **Zones**: [TIMEZONES.md](https://github.com/petarzarkov/arkv/blob/main/packages/timezones/TIMEZONES.md)\n- **Files used from IANA DB**: `zone.tab, zone1970.tab, etcetera, backward`\n\n******\n\n## Overview\n\n`@arkv/timezones` provides up-to-date information about timezones based on the IANA Time Zone Database. It carries richer detail per zone than most alternatives: type (`Canonical` or `Link`), children/parent, UTC offset, associated country codes, geographic area, location and label.\n\nWhenever new IANA data is available, a new version of this package is automatically generated, tested and published to npm.\n\nThe package ships CommonJS, ES Modules and TypeScript definitions.\n\n> Replaces the standalone [`iana-db-timezones`](https://www.npmjs.com/package/iana-db-timezones) package, which is deprecated. The API is unchanged — only the package name differs.\n\n## Install\n\n```bash\nbun add @arkv/timezones\n# or\nnpm install @arkv/timezones\n```\n\n## Usage\n\n### Accessing the raw data\n\nThe raw timezone data is available as an object and as an ES6 `Map`.\n\n```typescript\nimport tzdb from '@arkv/timezones';\n\nconsole.log(tzdb.zones['Europe/Sofia']);\n/*\n// => {\n//   tzCode: 'Europe/Sofia',\n//   type: 'Canonical',\n//   label: 'Europe/Sofia (GMT+03:00)',\n//   countryCodes: [ 'BG' ],\n//   location: 'Sofia',\n//   locationLabel: 'Sofia',\n//   geographicArea: 'Europe',\n//   utc: '+03:00'\n// }\n*/\n\nconsole.log(tzdb.map.get('America/New_York'));\n/*\n// => {\n//   children: [ 'EST5EDT', 'US/Eastern' ],\n//   comments: 'Eastern (most areas)',\n//   countryCodes: [ 'US' ],\n//   geographicArea: 'America',\n//   label: 'America/New_York (GMT-04:00)',\n//   location: 'New_York',\n//   locationLabel: 'New York',\n//   tzCode: 'America/New_York',\n//   type: 'Canonical',\n//   utc: '-04:00'\n// }\n*/\n```\n\n### Utility functions\n\nAvailable both as named exports and on the default export.\n\n#### `getZone(tzCode: TimezoneCode): Timezone | null`\n\nReturns the timezone object for a given tzCode, or `null` if not found.\n\n```typescript\nimport { getZone } from '@arkv/timezones';\n\ngetZone('Europe/Sofia'); // => { ... detailed zone object ... }\ngetZone('Invalid/Timezone'); // => null\n```\n\n#### `getZoneUTC(tzCode: TimezoneCode): string | null`\n\nReturns the recorded UTC offset for a timezone in `+HH:MM` or `-HH:MM` format, or `null` if the zone or offset is not available.\n\n```typescript\nimport { getZoneUTC } from '@arkv/timezones';\n\ngetZoneUTC('Europe/Sofia'); // => '+03:00'\ngetZoneUTC('Invalid/Timezone'); // => null\n```\n\nThe offset is a snapshot taken when the data was generated, so for zones observing DST it reflects whichever side of the DST boundary the last generation ran on.\n\n#### `getZoneISODate(tzCode: TimezoneCode): string | null`\n\nReturns the ISO 8601 date-time string adjusted to the zone's recorded offset, or `null` if the zone or offset is not available. The format is `YYYY-MM-DDTHH:mm:ss.sss+HH:MM` or `YYYY-MM-DDTHH:mm:ss.sss-HH:MM`.\n\n```typescript\nimport { getZoneISODate } from '@arkv/timezones';\n\ngetZoneISODate('Europe/Sofia'); // => '2025-05-12T08:25:49.322+03:00'\ngetZoneISODate('Invalid/Timezone'); // => null\n```\n\n### TypeScript\n\n```typescript\nimport type {\n  CanonicalTimezone,\n  LinkTimezone,\n  Timezone,\n  TimezoneCode,\n} from '@arkv/timezones';\nimport { getZone, IANA_TZDB_VERSION } from '@arkv/timezones';\n\nconsole.log(IANA_TZDB_VERSION); // => '2026c'\n\nconst zone: Timezone | null = getZone('Europe/London');\n\n// Narrow the zone and TypeScript will help you from here\nif (zone?.type === 'Canonical') {\n  console.log(zone.children);\n}\n```\n\n`TimezoneCode` is a union of every zone identifier in the data, so lookups are checked at compile time.\n\n## Regenerating the data\n\n```bash\nbun run --filter '@arkv/timezones' generate\n```\n\nThe generator asks IANA for the archive with an `If-Modified-Since` header taken from `previous.json` and exits without writing anything when nothing changed. Set `FORCE_REVALIDATE=true` to skip that check.\n\n## Full timezone list\n\nEvery supported timezone, grouped by geographic area: [TIMEZONES.md](https://github.com/petarzarkov/arkv/blob/main/packages/timezones/TIMEZONES.md).\n","readmeFilename":"README.md"}