timezones-ical-library
Version:
Easy direct access to the most recent official timezone information for iCalendar files via JavaScript/TypeScript
344 lines (339 loc) • 42.1 kB
JavaScript
"use strict";
var tzlib_tmp_scope = (() => {
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/tzlib.ts
var tzlib_exports = {};
__export(tzlib_exports, {
tzlib_get_ical_block: () => tzlib_get_ical_block,
tzlib_get_offset: () => tzlib_get_offset,
tzlib_get_timezones: () => tzlib_get_timezones
});
// src/db/zonesdb.json
var zonesdb_default = { db: { Africa: { Abidjan: ["", 0], Accra: ["59/Abidjan", 0], Addis_Ababa: ["59/Nairobi", 1], Algiers: ["", 2], Asmara: ["59/Nairobi", 1], Asmera: ["59/Nairobi", 1], Bamako: ["59/Abidjan", 0], Bangui: ["59/Lagos", 3], Banjul: ["59/Abidjan", 0], Bissau: ["", 0], Blantyre: ["59/Maputo", 4], Brazzaville: ["59/Lagos", 3], Bujumbura: ["59/Maputo", 4], Cairo: ["", 5], Casablanca: ["", 6], Ceuta: ["", 7], Conakry: ["59/Abidjan", 0], Dakar: ["59/Abidjan", 0], Dar_es_Salaam: ["59/Nairobi", 1], Djibouti: ["59/Nairobi", 1], Douala: ["59/Lagos", 3], El_Aaiun: ["", 6], Freetown: ["59/Abidjan", 0], Gaborone: ["59/Maputo", 4], Harare: ["59/Maputo", 4], Johannesburg: ["", 8], Juba: ["", 4], Kampala: ["59/Nairobi", 1], Khartoum: ["", 4], Kigali: ["59/Maputo", 4], Kinshasa: ["59/Lagos", 3], Lagos: ["", 3], Libreville: ["59/Lagos", 3], Lome: ["59/Abidjan", 0], Luanda: ["59/Lagos", 3], Lubumbashi: ["59/Maputo", 4], Lusaka: ["59/Maputo", 4], Malabo: ["59/Lagos", 3], Maputo: ["", 4], Maseru: ["59/Johannesburg", 8], Mbabane: ["59/Johannesburg", 8], Mogadishu: ["59/Nairobi", 1], Monrovia: ["", 0], Nairobi: ["", 1], Ndjamena: ["", 3], Niamey: ["59/Lagos", 3], Nouakchott: ["59/Abidjan", 0], Ouagadougou: ["59/Abidjan", 0], "Porto-Novo": ["59/Lagos", 3], Sao_Tome: ["", 0], Timbuktu: ["59/Abidjan", 0], Tripoli: ["", 9], Tunis: ["", 2], Windhoek: ["", 4] }, America: { Adak: ["", 10], Anchorage: ["", 11], Anguilla: ["58/Puerto_Rico", 12], Antigua: ["58/Puerto_Rico", 12], Araguaina: ["", 13], Argentina: { Buenos_Aires: ["", 13], Catamarca: ["", 13], ComodRivadavia: ["58/Argentina/Catamarca", 13], Cordoba: ["", 13], Jujuy: ["", 13], La_Rioja: ["", 13], Mendoza: ["", 13], Rio_Gallegos: ["", 13], Salta: ["", 13], San_Juan: ["", 13], San_Luis: ["", 13], Tucuman: ["", 13], Ushuaia: ["", 13] }, Aruba: ["58/Puerto_Rico", 12], Asuncion: ["", 13], Atikokan: ["58/Panama", 14], Atka: ["58/Adak", 10], Bahia: ["", 13], Bahia_Banderas: ["", 15], Barbados: ["", 12], Belem: ["", 13], Belize: ["", 15], "Blanc-Sablon": ["58/Puerto_Rico", 12], Boa_Vista: ["", 16], Bogota: ["", 17], Boise: ["", 18], Buenos_Aires: ["58/Argentina/Buenos_Aires", 13], Cambridge_Bay: ["", 18], Campo_Grande: ["", 16], Cancun: ["", 14], Caracas: ["", 16], Catamarca: ["58/Argentina/Catamarca", 13], Cayenne: ["", 13], Cayman: ["58/Panama", 14], Chicago: ["", 19], Chihuahua: ["", 15], Ciudad_Juarez: ["", 18], Coral_Harbour: ["58/Panama", 14], Cordoba: ["58/Argentina/Cordoba", 13], Costa_Rica: ["", 15], Coyhaique: ["", 13], Creston: ["58/Phoenix", 20], Cuiaba: ["", 16], Curacao: ["58/Puerto_Rico", 12], Danmarkshavn: ["", 0], Dawson: ["", 20], Dawson_Creek: ["", 20], Denver: ["", 18], Detroit: ["", 21], Dominica: ["58/Puerto_Rico", 12], Edmonton: ["", 18], Eirunepe: ["", 17], El_Salvador: ["", 15], Ensenada: ["58/Tijuana", 22], Fort_Nelson: ["", 20], Fort_Wayne: ["58/Indiana/Indianapolis", 21], Fortaleza: ["", 13], Glace_Bay: ["", 23], Godthab: ["58/Nuuk", 24], Goose_Bay: ["", 25], Grand_Turk: ["", 26], Grenada: ["58/Puerto_Rico", 12], Guadeloupe: ["58/Puerto_Rico", 12], Guatemala: ["", 15], Guayaquil: ["", 17], Guyana: ["", 16], Halifax: ["", 23], Havana: ["", 27], Hermosillo: ["", 20], Indiana: { Indianapolis: ["", 21], Knox: ["", 19], Marengo: ["", 21], Petersburg: ["", 21], Tell_City: ["", 19], Vevay: ["", 21], Vincennes: ["", 21], Winamac: ["", 26] }, Indianapolis: ["58/Indiana/Indianapolis", 21], Inuvik: ["", 18], Iqaluit: ["", 21], Jamaica: ["", 14], Jujuy: ["58/Argentina/Jujuy", 13], Juneau: ["", 11], Kentucky: { Louisville: ["", 21], Monticello: ["", 21] }, Knox_IN: ["58/Indiana/Knox", 19], Kralendijk: ["58/Puerto_Rico", 12], La_Paz: ["", 16], Lima: ["", 17], Los_Angeles: ["", 22], Louisville: ["58/Kentucky/Louisville", 21], Lower_Princes: ["58/Puerto_Rico", 12], Maceio: ["", 13], Managua: ["", 15], Manaus: ["", 16], Marigot: ["58/Puerto_Rico", 12], Martinique: ["", 12], Matamoros: ["", 19], Mazatlan: ["", 20], Mendoza: ["58/Argentina/Mendoza", 13], Menominee: ["", 19], Merida: ["", 15], Metlakatla: ["", 11], Mexico_City: ["", 15], Miquelon: ["", 28], Moncton: ["", 23], Monterrey: ["", 15], Montevideo: ["", 13], Montreal: ["58/Toronto", 21], Montserrat: ["58/Puerto_Rico", 12], Nassau: ["58/Toronto", 21], New_York: ["", 21], Nipigon: ["58/Toronto", 21], Nome: ["", 11], Noronha: ["", 29], North_Dakota: { Beulah: ["", 19], Center: ["", 19], New_Salem: ["", 19] }, Nuuk: ["", 24], Ojinaga: ["", 19], Panama: ["", 14], Pangnirtung: ["58/Iqaluit", 21], Paramaribo: ["", 13], Phoenix: ["", 20], Port_of_Spain: ["58/Puerto_Rico", 12], "Port-au-Prince": ["", 21], Porto_Acre: ["58/Rio_Branco", 17], Porto_Velho: ["", 16], Puerto_Rico: ["", 12], Punta_Arenas: ["", 13], Rainy_River: ["58/Winnipeg", 19], Rankin_Inlet: ["", 19], Recife: ["", 13], Regina: ["", 15], Resolute: ["", 30], Rio_Branco: ["", 17], Rosario: ["58/Argentina/Cordoba", 13], Santa_Isabel: ["58/Tijuana", 22], Santarem: ["", 13], Santiago: ["", 31], Santo_Domingo: ["", 12], Sao_Paulo: ["", 13], Scoresbysund: ["", 32], Shiprock: ["58/Denver", 18], Sitka: ["", 11], St_Barthelemy: ["58/Puerto_Rico", 12], St_Johns: ["", 33], St_Kitts: ["58/Puerto_Rico", 12], St_Lucia: ["58/Puerto_Rico", 12], St_Thomas: ["58/Puerto_Rico", 12], St_Vincent: ["58/Puerto_Rico", 12], Swift_Current: ["", 15], Tegucigalpa: ["", 15], Thule: ["", 23], Thunder_Bay: ["58/Toronto", 21], Tijuana: ["", 22], Toronto: ["", 21], Tortola: ["58/Puerto_Rico", 12], Vancouver: ["", 20], Virgin: ["58/Puerto_Rico", 12], Whitehorse: ["", 20], Winnipeg: ["", 19], Yakutat: ["", 11], Yellowknife: ["58/Edmonton", 18] }, Antarctica: { Casey: ["", 34], Davis: ["", 35], DumontDUrville: ["Pacific/Port_Moresby", 36], Macquarie: ["", 37], Mawson: ["", 38], McMurdo: ["Pacific/Auckland", 39], Palmer: ["", 13], Rothera: ["", 13], South_Pole: ["Pacific/Auckland", 39], Syowa: ["Asia/Riyadh", 40], Troll: ["", 41], Vostok: ["", 38] }, Arctic: { Longyearbyen: ["Europe/Berlin", 7] }, Asia: { Aden: ["55/Riyadh", 40], Almaty: ["", 38], Amman: ["", 40], Anadyr: ["", 42], Aqtau: ["", 38], Aqtobe: ["", 38], Ashgabat: ["", 38], Ashkhabad: ["55/Ashgabat", 38], Atyrau: ["", 38], Baghdad: ["", 40], Bahrain: ["55/Qatar", 40], Baku: ["", 43], Bangkok: ["", 35], Barnaul: ["", 35], Beirut: ["", 44], Bishkek: ["", 45], Brunei: ["55/Kuching", 34], Calcutta: ["55/Kolkata", 46], Chita: ["", 47], Choibalsan: ["55/Ulaanbaatar", 34], Chongqing: ["55/Shanghai", 48], Chungking: ["55/Shanghai", 48], Colombo: ["", 49], Dacca: ["55/Dhaka", 45], Damascus: ["", 40], Dhaka: ["", 45], Dili: ["", 47], Dubai: ["", 43], Dushanbe: ["", 38], Famagusta: ["", 50], Gaza: ["", 51], Harbin: ["55/Shanghai", 48], Hebron: ["", 51], Ho_Chi_Minh: ["", 35], Hong_Kong: ["", 52], Hovd: ["", 35], Irkutsk: ["", 34], Istanbul: ["Europe/Istanbul", 40], Jakarta: ["", 53], Jayapura: ["", 54], Jerusalem: ["", 55], Kabul: ["", 56], Kamchatka: ["", 42], Karachi: ["", 57], Kashgar: ["55/Urumqi", 45], Kathmandu: ["", 58], Katmandu: ["55/Kathmandu", 58], Khandyga: ["", 47], Kolkata: ["", 46], Krasnoyarsk: ["", 35], Kuala_Lumpur: ["55/Singapore", 34], Kuching: ["", 34], Kuwait: ["55/Riyadh", 40], Macao: ["55/Macau", 48], Macau: ["", 48], Magadan: ["", 59], Makassar: ["", 60], Manila: ["", 61], Muscat: ["55/Dubai", 43], Nicosia: ["", 62], Novokuznetsk: ["", 35], Novosibirsk: ["", 35], Omsk: ["", 45], Oral: ["", 38], Phnom_Penh: ["55/Bangkok", 35], Pontianak: ["", 53], Pyongyang: ["", 63], Qatar: ["", 40], Qostanay: ["", 38], Qyzylorda: ["", 38], Rangoon: ["55/Yangon", 64], Riyadh: ["", 40], Saigon: ["55/Ho_Chi_Minh", 35], Sakhalin: ["", 59], Samarkand: ["", 38], Seoul: ["", 63], Shanghai: ["", 48], Singapore: ["", 34], Srednekolymsk: ["", 59], Taipei: ["", 48], Tashkent: ["", 38], Tbilisi: ["", 43], Tehran: ["", 65], Tel_Aviv: ["55/Jerusalem", 55], Thimbu: ["55/Thimphu", 45], Thimphu: ["", 45], Tokyo: ["", 66], Tomsk: ["", 35], Ujung_Pandang: ["55/Makassar", 60], Ulaanbaatar: ["", 34], Ulan_Bator: ["55/Ulaanbaatar", 34], Urumqi: ["", 45], "Ust-Nera": ["", 36], Vientiane: ["55/Bangkok", 35], Vladivostok: ["", 36], Yakutsk: ["", 47], Yangon: ["", 64], Yekaterinburg: ["", 38], Yerevan: ["", 43] }, Atlantic: { Azores: ["", 67], Bermuda: ["", 23], Canary: ["", 68], Cape_Verde: ["", 69], Faeroe: ["54/Faroe", 68], Faroe: ["", 68], Jan_Mayen: ["Europe/Berlin", 7], Madeira: ["", 68], Reykjavik: ["Africa/Abidjan", 0], South_Georgia: ["", 29], St_Helena: ["Africa/Abidjan", 0], Stanley: ["", 13] }, Australia: { ACT: ["53/Sydney", 37], Adelaide: ["", 70], Brisbane: ["", 71], Broken_Hill: ["", 70], Canberra: ["53/Sydney", 37], Currie: ["53/Hobart", 72], Darwin: ["", 73], Eucla: ["", 74], Hobart: ["", 72], LHI: ["53/Lord_Howe", 75], Lindeman: ["", 71], Lord_Howe: ["", 75], Melbourne: ["", 37], North: ["53/Darwin", 73], NSW: ["53/Sydney", 37], Perth: ["", 76], Queensland: ["53/Brisbane", 71], South: ["53/Adelaide", 70], Sydney: ["", 37], Tasmania: ["53/Hobart", 72], Victoria: ["53/Melbourne", 37], West: ["53/Perth", 76], Yancowinna: ["53/Broken_Hill", 70] }, Brazil: { Acre: ["America/Rio_Branco", 17], DeNoronha: ["America/Noronha", 29], East: ["America/Sao_Paulo", 13], West: ["America/Manaus", 16] }, Canada: { Atlantic: ["America/Halifax", 23], Central: ["America/Winnipeg", 19], Eastern: ["America/Toronto", 21], Mountain: ["America/Edmonton", 18], Newfoundland: ["America/St_Johns", 33], Pacific: ["America/Vancouver", 20], Saskatchewan: ["America/Regina", 15], Yukon: ["America/Whitehorse", 20] }, CET: ["Europe/Brussels", 7], Chile: { Continental: ["America/Santiago", 31], EasterIsland: ["Pacific/Easter", 77] }, CST6CDT: ["America/Chicago", 19], Cuba: ["America/Havana", 27], EET: ["Europe/Athens", 50], Egypt: ["Africa/Cairo", 5], Eire: ["Europe/Dublin", 78], EST: ["America/Panama", 14], EST5EDT: ["America/New_York", 21], Etc: { GMT: ["", 0], "GMT-0": ["49/GMT", 0], "GMT-1": ["", 6], "GMT-10": ["", 36], "GMT-11": ["", 59], "GMT-12": ["", 42], "GMT-13": ["", 79], "GMT-14": ["", 80], "GMT-2": ["", 81], "GMT-3": ["", 40], "GMT-4": ["", 43], "GMT-5": ["", 38], "GMT-6": ["", 45], "GMT-7": ["", 35], "GMT-8": ["", 34], "GMT-9": ["", 47], "GMT+0": ["49/GMT", 0], "GMT+1": ["", 69], "GMT+10": ["", 82], "GMT+11": ["", 83], "GMT+12": ["", 84], "GMT+2": ["", 29], "GMT+3": ["", 13], "GMT+4": ["", 16], "GMT+5": ["", 17], "GMT+6": ["", 85], "GMT+7": ["", 86], "GMT+8": ["", 87], "GMT+9": ["", 88], GMT0: ["49/GMT", 0], Greenwich: ["49/GMT", 0], UCT: ["49/UTC", 89], Universal: ["49/UTC", 89], UTC: ["", 89], Zulu: ["49/UTC", 89] }, Europe: { Amsterdam: ["48/Brussels", 7], Andorra: ["", 7], Astrakhan: ["", 43], Athens: ["", 50], Belfast: ["48/London", 90], Belgrade: ["", 7], Berlin: ["", 7], Bratislava: ["48/Prague", 7], Brussels: ["", 7], Bucharest: ["", 50], Budapest: ["", 7], Busingen: ["48/Zurich", 7], Chisinau: ["", 50], Copenhagen: ["48/Berlin", 7], Dublin: ["", 78], Gibraltar: ["", 7], Guernsey: ["48/London", 90], Helsinki: ["", 50], Isle_of_Man: ["48/London", 90], Istanbul: ["", 40], Jersey: ["48/London", 90], Kaliningrad: ["", 9], Kiev: ["48/Kyiv", 62], Kirov: ["", 91], Kyiv: ["", 62], Lisbon: ["", 92], Ljubljana: ["48/Belgrade", 7], London: ["", 90], Luxembourg: ["48/Brussels", 7], Madrid: ["", 7], Malta: ["", 7], Mariehamn: ["48/Helsinki", 50], Minsk: ["", 40], Monaco: ["48/Paris", 7], Moscow: ["", 91], Nicosia: ["Asia/Nicosia", 62], Oslo: ["48/Berlin", 7], Paris: ["", 7], Podgorica: ["48/Belgrade", 7], Prague: ["", 7], Riga: ["", 50], Rome: ["", 7], Samara: ["", 43], San_Marino: ["48/Rome", 7], Sarajevo: ["48/Belgrade", 7], Saratov: ["", 43], Simferopol: ["", 91], Skopje: ["48/Belgrade", 7], Sofia: ["", 50], Stockholm: ["48/Berlin", 7], Tallinn: ["", 50], Tirane: ["", 7], Tiraspol: ["48/Chisinau", 50], Ulyanovsk: ["", 43], Uzhgorod: ["48/Kyiv", 62], Vaduz: ["48/Zurich", 7], Vatican: ["48/Rome", 7], Vienna: ["", 7], Vilnius: ["", 50], Volgograd: ["", 91], Warsaw: ["", 7], Zagreb: ["48/Belgrade", 7], Zaporozhye: ["48/Kyiv", 62], Zurich: ["", 7] }, GB: ["Europe/London", 90], "GB-Eire": ["Europe/London", 90], GMT: ["Etc/GMT", 0], "GMT-0": ["Etc/GMT", 0], "GMT+0": ["Etc/GMT", 0], GMT0: ["Etc/GMT", 0], Greenwich: ["Etc/GMT", 0], Hongkong: ["Asia/Hong_Kong", 52], HST: ["Pacific/Honolulu", 93], Iceland: ["Africa/Abidjan", 0], Indian: { Antananarivo: ["Africa/Nairobi", 1], Chagos: ["", 45], Christmas: ["Asia/Bangkok", 35], Cocos: ["Asia/Yangon", 64], Comoro: ["Africa/Nairobi", 1], Kerguelen: ["47/Maldives", 38], Mahe: ["Asia/Dubai", 43], Maldives: ["", 38], Mauritius: ["", 43], Mayotte: ["Africa/Nairobi", 1], Reunion: ["Asia/Dubai", 43] }, Iran: ["Asia/Tehran", 65], Israel: ["Asia/Jerusalem", 55], Jamaica: ["America/Jamaica", 14], Japan: ["Asia/Tokyo", 66], Kwajalein: ["Pacific/Kwajalein", 42], Libya: ["Africa/Tripoli", 9], MET: ["Europe/Brussels", 7], Mexico: { BajaNorte: ["America/Tijuana", 22], BajaSur: ["America/Mazatlan", 20], General: ["America/Mexico_City", 15] }, MST: ["America/Phoenix", 20], MST7MDT: ["America/Denver", 18], Navajo: ["America/Denver", 18], NZ: ["Pacific/Auckland", 39], "NZ-CHAT": ["Pacific/Chatham", 94], Pacific: { Apia: ["", 79], Auckland: ["", 39], Bougainville: ["", 59], Chatham: ["", 94], Chuuk: ["45/Port_Moresby", 36], Easter: ["", 77], Efate: ["", 59], Enderbury: ["45/Kanton", 79], Fakaofo: ["", 79], Fiji: ["", 42], Funafuti: ["45/Tarawa", 42], Galapagos: ["", 85], Gambier: ["", 88], Guadalcanal: ["", 59], Guam: ["", 95], Honolulu: ["", 93], Johnston: ["45/Honolulu", 93], Kanton: ["", 79], Kiritimati: ["", 80], Kosrae: ["", 59], Kwajalein: ["", 42], Majuro: ["45/Tarawa", 42], Marquesas: ["", 96], Midway: ["45/Pago_Pago", 97], Nauru: ["", 42], Niue: ["", 83], Norfolk: ["", 98], Noumea: ["", 59], Pago_Pago: ["", 97], Palau: ["", 47], Pitcairn: ["", 87], Pohnpei: ["45/Guadalcanal", 59], Ponape: ["45/Guadalcanal", 59], Port_Moresby: ["", 36], Rarotonga: ["", 82], Saipan: ["45/Guam", 95], Samoa: ["45/Pago_Pago", 97], Tahiti: ["", 82], Tarawa: ["", 42], Tongatapu: ["", 79], Truk: ["45/Port_Moresby", 36], Wake: ["45/Tarawa", 42], Wallis: ["45/Tarawa", 42], Yap: ["45/Port_Moresby", 36] }, Poland: ["Europe/Warsaw", 7], Portugal: ["Europe/Lisbon", 92], PRC: ["Asia/Shanghai", 48], PST8PDT: ["America/Los_Angeles", 22], ROC: ["Asia/Taipei", 48], ROK: ["Asia/Seoul", 63], Singapore: ["Asia/Singapore", 34], Turkey: ["Europe/Istanbul", 40], UCT: ["Etc/UTC", 89], Universal: ["Etc/UTC", 89], US: { Alaska: ["America/Anchorage", 11], Aleutian: ["America/Adak", 10], Arizona: ["America/Phoenix", 20], Central: ["America/Chicago", 19], "East-Indiana": ["America/Indiana/Indianapolis", 21], Eastern: ["America/New_York", 21], Hawaii: ["Pacific/Honolulu", 93], "Indiana-Starke": ["America/Indiana/Knox", 19], Michigan: ["America/Detroit", 21], Mountain: ["America/Denver", 18], Pacific: ["America/Los_Angeles", 22], Samoa: ["Pacific/Pago_Pago", 97] }, UTC: ["Etc/UTC", 89], "W-SU": ["Europe/Moscow", 91], WET: ["Europe/Lisbon", 92], Zulu: ["Etc/UTC", 89] }, details: ["20260429T222214Z<n><bs><n><tz>GMT<n><of>+0000<n><ot>+0000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>EAT<n><of>+0300<n><ot>+0300<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>CET<n><of>+0100<n><ot>+0100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>WAT<n><of>+0100<n><ot>+0100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>CAT<n><of>+0200<n><ot>+0200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>EEST<n><of>+0200<n><ot>+0300<n><s>19700424T000000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=-1FR<n><ed><n><bs><n><tz>EET<n><of>+0300<n><ot>+0200<n><s>19701030T000000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR<n><es><n>", "20260429T222214Z<n><bs><n><tz>+01<n><of>+0100<n><ot>+0100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>CEST<n><of>+0100<n><ot>+0200<n><s>19700329T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>CET<n><of>+0200<n><ot>+0100<n><s>19701025T030000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>SAST<n><of>+0200<n><ot>+0200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>EET<n><of>+0200<n><ot>+0200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>HDT<n><of>-1000<n><ot>-0900<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>HST<n><of>-0900<n><ot>-1000<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>AKDT<n><of>-0900<n><ot>-0800<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>AKST<n><of>-0800<n><ot>-0900<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>AST<n><of>-0400<n><ot>-0400<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-03<n><of>-0300<n><ot>-0300<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>EST<n><of>-0500<n><ot>-0500<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>CST<n><of>-0600<n><ot>-0600<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-04<n><of>-0400<n><ot>-0400<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-05<n><of>-0500<n><ot>-0500<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>MDT<n><of>-0700<n><ot>-0600<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>MST<n><of>-0600<n><ot>-0700<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>CDT<n><of>-0600<n><ot>-0500<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>CST<n><of>-0500<n><ot>-0600<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>MST<n><of>-0700<n><ot>-0700<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>EDT<n><of>-0500<n><ot>-0400<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>EST<n><of>-0400<n><ot>-0500<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>PDT<n><of>-0800<n><ot>-0700<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>PST<n><of>-0700<n><ot>-0800<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>ADT<n><of>-0400<n><ot>-0300<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>AST<n><of>-0300<n><ot>-0400<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>-01<n><of>-0200<n><ot>-0100<n><s>19700328T230000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA<n><ed><n><bs><n><tz>-02<n><of>-0100<n><ot>-0200<n><s>19701025T000000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>AST<n><of>-0300<n><ot>-0400<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n><bd><n><tz>ADT<n><of>-0400<n><ot>-0300<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>EST<n><of>-0400<n><ot>-0500<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n><bd><n><tz>EDT<n><of>-0500<n><ot>-0400<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>CST<n><of>-0400<n><ot>-0500<n><s>19701101T010000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n><bd><n><tz>CDT<n><of>-0500<n><ot>-0400<n><s>19700308T000000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n>", "20260429T222214Z<n><bd><n><tz>-02<n><of>-0300<n><ot>-0200<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n><bs><n><tz>-03<n><of>-0200<n><ot>-0300<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>-02<n><of>-0200<n><ot>-0200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>CST<n><of>-0500<n><ot>-0600<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n><bd><n><tz>CDT<n><of>-0600<n><ot>-0500<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>-04<n><of>-0300<n><ot>-0400<n><s>19700405T000000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n><bd><n><tz>-03<n><of>-0400<n><ot>-0300<n><s>19700906T000000<n><r>FREQ=YEARLY;BYMONTH=9;BYDAY=1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>-02<n><of>-0100<n><ot>-0200<n><s>19701025T000000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n><bd><n><tz>-01<n><of>-0200<n><ot>-0100<n><s>19700328T230000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA<n><ed><n>", "20260429T222214Z<n><bs><n><tz>NST<n><of>-0230<n><ot>-0330<n><s>19701101T020000<n><r>FREQ=YEARLY;BYMONTH=11;BYDAY=1SU<n><es><n><bd><n><tz>NDT<n><of>-0330<n><ot>-0230<n><s>19700308T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=2SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>+08<n><of>+0800<n><ot>+0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+07<n><of>+0700<n><ot>+0700<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+10<n><of>+1000<n><ot>+1000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>AEST<n><of>+1100<n><ot>+1000<n><s>19700405T030000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n><bd><n><tz>AEDT<n><of>+1000<n><ot>+1100<n><s>19701004T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>+05<n><of>+0500<n><ot>+0500<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>NZDT<n><of>+1200<n><ot>+1300<n><s>19700927T020000<n><r>FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU<n><ed><n><bs><n><tz>NZST<n><of>+1300<n><ot>+1200<n><s>19700405T030000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>+03<n><of>+0300<n><ot>+0300<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>+02<n><of>+0000<n><ot>+0200<n><s>19700329T010000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>+00<n><of>+0200<n><ot>+0000<n><s>19701025T030000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>+12<n><of>+1200<n><ot>+1200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+04<n><of>+0400<n><ot>+0400<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>EEST<n><of>+0200<n><ot>+0300<n><s>19700329T000000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>EET<n><of>+0300<n><ot>+0200<n><s>19701025T000000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>+06<n><of>+0600<n><ot>+0600<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>IST<n><of>+0530<n><ot>+0530<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+09<n><of>+0900<n><ot>+0900<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>CST<n><of>+0800<n><ot>+0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+0530<n><of>+0530<n><ot>+0530<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>EEST<n><of>+0200<n><ot>+0300<n><s>19700329T030000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>EET<n><of>+0300<n><ot>+0200<n><s>19701025T040000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>EEST<n><of>+0200<n><ot>+0300<n><s>19700328T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA<n><ed><n><bs><n><tz>EET<n><of>+0300<n><ot>+0200<n><s>19701024T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA<n><es><n>", "20260429T222214Z<n><bs><n><tz>HKT<n><of>+0800<n><ot>+0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>WIB<n><of>+0700<n><ot>+0700<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>WIT<n><of>+0900<n><ot>+0900<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>IDT<n><of>+0200<n><ot>+0300<n><s>19700327T020000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR<n><ed><n><bs><n><tz>IST<n><of>+0300<n><ot>+0200<n><s>19701025T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>+0430<n><of>+0430<n><ot>+0430<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>PKT<n><of>+0500<n><ot>+0500<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+0545<n><of>+0545<n><ot>+0545<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+11<n><of>+1100<n><ot>+1100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>WITA<n><of>+0800<n><ot>+0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>PST<n><of>+0800<n><ot>+0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>EET<n><of>+0300<n><ot>+0200<n><s>19701025T040000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n><bd><n><tz>EEST<n><of>+0200<n><ot>+0300<n><s>19700329T030000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>KST<n><of>+0900<n><ot>+0900<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+0630<n><of>+0630<n><ot>+0630<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+0330<n><of>+0330<n><ot>+0330<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>JST<n><of>+0900<n><ot>+0900<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>+00<n><of>-0100<n><ot>+0000<n><s>19700329T000000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>-01<n><of>+0000<n><ot>-0100<n><s>19701025T010000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bd><n><tz>WEST<n><of>+0000<n><ot>+0100<n><s>19700329T010000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>WET<n><of>+0100<n><ot>+0000<n><s>19701025T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>-01<n><of>-0100<n><ot>-0100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>ACST<n><of>+1030<n><ot>+0930<n><s>19700405T030000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n><bd><n><tz>ACDT<n><of>+0930<n><ot>+1030<n><s>19701004T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>AEST<n><of>+1000<n><ot>+1000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>AEDT<n><of>+1000<n><ot>+1100<n><s>19701004T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=1SU<n><ed><n><bs><n><tz>AEST<n><of>+1100<n><ot>+1000<n><s>19700405T030000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>ACST<n><of>+0930<n><ot>+0930<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+0845<n><of>+0845<n><ot>+0845<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+1030<n><of>+1100<n><ot>+1030<n><s>19700405T020000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n><bd><n><tz>+11<n><of>+1030<n><ot>+1100<n><s>19701004T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>AWST<n><of>+0800<n><ot>+0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-06<n><of>-0500<n><ot>-0600<n><s>19700404T220000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SA<n><es><n><bd><n><tz>-05<n><of>-0600<n><ot>-0500<n><s>19700905T220000<n><r>FREQ=YEARLY;BYMONTH=9;BYDAY=1SA<n><ed><n>", "20260429T222214Z<n><bs><n><tz>IST<n><of>+0000<n><ot>+0100<n><s>19700329T010000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><es><n><bd><n><tz>GMT<n><of>+0100<n><ot>+0000<n><s>19701025T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>+13<n><of>+1300<n><ot>+1300<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+14<n><of>+1400<n><ot>+1400<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>+02<n><of>+0200<n><ot>+0200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-10<n><of>-1000<n><ot>-1000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-11<n><of>-1100<n><ot>-1100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-12<n><of>-1200<n><ot>-1200<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-06<n><of>-0600<n><ot>-0600<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-07<n><of>-0700<n><ot>-0700<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-08<n><of>-0800<n><ot>-0800<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-09<n><of>-0900<n><ot>-0900<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>UTC<n><of>+0000<n><ot>+0000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>BST<n><of>+0000<n><ot>+0100<n><s>19700329T010000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n><bs><n><tz>GMT<n><of>+0100<n><ot>+0000<n><s>19701025T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>MSK<n><of>+0300<n><ot>+0300<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>WET<n><of>+0100<n><ot>+0000<n><s>19701025T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<n><es><n><bd><n><tz>WEST<n><of>+0000<n><ot>+0100<n><s>19700329T010000<n><r>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<n><ed><n>", "20260429T222214Z<n><bs><n><tz>HST<n><of>-1000<n><ot>-1000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>+1345<n><of>+1245<n><ot>+1345<n><s>19700927T024500<n><r>FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU<n><ed><n><bs><n><tz>+1245<n><of>+1345<n><ot>+1245<n><s>19700405T034500<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n>", "20260429T222214Z<n><bs><n><tz>ChST<n><of>+1000<n><ot>+1000<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>-0930<n><of>-0930<n><ot>-0930<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bs><n><tz>SST<n><of>-1100<n><ot>-1100<n><s>19700101T000000<n><es><n>", "20260429T222214Z<n><bd><n><tz>+12<n><of>+1100<n><ot>+1200<n><s>19701004T020000<n><r>FREQ=YEARLY;BYMONTH=10;BYDAY=1SU<n><ed><n><bs><n><tz>+11<n><of>+1200<n><ot>+1100<n><s>19700405T030000<n><r>FREQ=YEARLY;BYMONTH=4;BYDAY=1SU<n><es><n>"], toplevel: ["Zulu", "WET", "W-SU", "Universal", "UTC", "UCT", "Turkey", "Singapore", "ROK", "ROC", "Portugal", "Poland", "PST8PDT", "PRC", "Navajo", "NZ", "NZ-CHAT", "MST7MDT", "MST", "MET", "Libya", "Kwajalein", "Japan", "Jamaica", "Israel", "Iran", "Iceland", "Hongkong", "HST", "Greenwich", "GMT0", "GMT", "GMT-0", "GMT+0", "GB", "GB-Eire", "Eire", "Egypt", "EST5EDT", "EST", "EET", "Cuba", "CST6CDT", "CET", "US", "Pacific", "Mexico", "Indian", "Europe", "Etc", "Chile", "Canada", "Brazil", "Australia", "Atlantic", "Asia", "Arctic", "Antarctica", "America", "Africa"] };
// src/utils.ts
var tzDb = zonesdb_default;
function escapeRegExp(string) {
return string.replace(/[^+\-\w]/g, "\\$&");
}
var shortenerMap = {
"<br>": "<n>",
"TZNAME:": "<tz>",
"TZOFFSETFROM:": "<of>",
"TZOFFSETTO:": "<ot>",
"DTSTART:": "<s>",
"RRULE:": "<r>",
"BEGIN:DAYLIGHT": "<bd>",
"END:DAYLIGHT": "<ed>",
"BEGIN:STANDARD": "<bs>",
"END:STANDARD": "<es>"
};
function enrich_details(string) {
for (const [key, value] of Object.entries(shortenerMap)) {
string = string.replaceAll(value, key);
}
return string;
}
function map_db_data(dbData) {
const raw = dbData.db;
const topLevelZones = dbData.toplevel;
const expandLocation = (location, fallbackPath) => {
if (location === "") {
return fallbackPath;
}
const match = location.match(/^(\d+)\/(.+)$/);
if (match) {
const zoneIndex = Number(match[1]);
const zonePrefix = topLevelZones.find((_, index) => index === zoneIndex);
if (zonePrefix != null) {
return `${zonePrefix}/${match[2]}`;
}
}
return location;
};
const mappedData = {};
for (const [key, value] of Object.entries(raw)) {
if (typeof value === "object" && !Array.isArray(value)) {
mappedData[`${key}`] = {};
const subLevel1 = value;
for (const [key2, value2] of Object.entries(subLevel1)) {
if (typeof value2 === "object" && !Array.isArray(value2)) {
mappedData[`${key}`][`${key2}`] = {};
const subLevel2 = value2;
for (const [key3, value3] of Object.entries(subLevel2)) {
const entry = value3;
const fallbackPath = `${key}/${key2}/${key3}`;
mappedData[`${key}`][`${key2}`][`${key3}`] = [
expandLocation(entry[0], fallbackPath),
entry[1]
];
}
} else {
const entry = value2;
const fallbackPath = `${key}/${key2}`;
mappedData[`${key}`][`${key2}`] = [expandLocation(entry[0], fallbackPath), entry[1]];
}
}
} else {
const entry = value;
mappedData[`${key}`] = [expandLocation(entry[0], key), entry[1]];
}
}
return mappedData;
}
function get_tz_content(tzName) {
const tzDbZones = map_db_data(tzDb);
const nameParts = tzName.split("/");
let dbData;
try {
if (nameParts.length === 3) {
const l1 = tzDbZones[`${nameParts[0]}`];
if (l1 && !Array.isArray(l1)) {
const l2 = l1[`${nameParts[1]}`];
if (l2 && !Array.isArray(l2)) {
dbData = l2[`${nameParts[2]}`];
}
}
} else if (nameParts.length === 2) {
const l1 = tzDbZones[`${nameParts[0]}`];
if (l1 && !Array.isArray(l1)) {
dbData = l1[`${nameParts[1]}`];
}
} else {
dbData = tzDbZones[`${nameParts[0]}`];
}
if (dbData == null || !Array.isArray(dbData) || dbData.length < 2) {
throw new Error("Given time zone not valid.");
}
const entry = dbData;
return [entry[0], enrich_details(tzDb.details[entry[1]])];
} catch {
console.error("Given time zone not valid.");
return "";
}
}
// src/tzlib.ts
/*!
* @preserve
*
* ++++++++++++++++++++++++++++++++++++++
* Add to Calendar Time Zones iCal Library
* ++++++++++++++++++++++++++++++++++++++
*
* Creator: Jens Kuerschner (https://jekuer.com)
* Project: https://github.com/add2cal/timezones-ical-library
* License: Apache-2.0
*
*/
var tzDb2 = zonesdb_default;
function tzlib_get_ical_block(tzName, jsonType = false) {
const tzBlock = get_tz_content(tzName);
if (typeof tzBlock === "string" || !tzBlock[1] || tzBlock[1] === "") {
return "";
}
const blockArray = tzBlock;
const location = (function() {
if (blockArray[0] == "") {
return tzName;
} else {
return blockArray[0];
}
})();
const tzidLine = "TZID=" + location;
const output = [
"BEGIN:VTIMEZONE\r\nTZID:" + location + "\r\nX-LIC-LOCATION:" + location + "\r\nLAST-MODIFIED:" + blockArray[1].replace(/[^\w\-:,;=+/<>]/g, "").replace(/<br>/g, "\r\n") + "END:VTIMEZONE",
tzidLine
];
if (jsonType) {
return JSON.stringify(output);
}
return output;
}
function tzlib_get_offset(tzName, isoDate, isoTime) {
const tzBlock = get_tz_content(tzName);
if (typeof tzBlock === "string" || tzBlock[1] == null || tzBlock[1] == "") {
return "";
}
const blockArray = tzBlock;
if (!isoDate.match(/^\d{4}-\d{2}-\d{2}$/)) {
console.error("offset calculation failed: date misspelled [-> YYYY-MM-DD]");
return "";
}
if (!isoTime.match(/^\d{2}:\d{2}$/)) {
console.error("offset calculation failed: time misspelled [-> hh:mm]");
return "";
}
if (!blockArray[1].match(/BEGIN:DAYLIGHT/i)) {
const match = blockArray[1].match(/TZOFFSETTO:([+|-]\d{4})/i);
return match ? match[1] : "";
}
const dateString = isoDate + "T" + isoTime + ":00";
const date = new Date(dateString);
const dateYear = date.getFullYear();
const dateMonth = date.getMonth() + 1;
const dateDay = date.getDate();
const dateHour = date.getHours();
const timezoneData = blockArray[1].replace(/[^\w\-:,;=+/<>]/g, "").split("<br>");
const tzBreakpoints = { 1: {}, 2: {} };
let breakpointCount = 0;
for (let i = 0; i < timezoneData.length; i++) {
const line = timezoneData[i];
if (line.startsWith("TZOFFSETTO")) {
breakpointCount++;
if (tzBreakpoints[`${breakpointCount}`]) {
tzBreakpoints[`${breakpointCount}`].offset = line.split(":")[1];
}
}
if (line.startsWith("DTSTART")) {
if (tzBreakpoints[`${breakpointCount}`]) {
tzBreakpoints[`${breakpointCount}`].hour = parseInt(line.substr(17, 2));
}
}
if (line.startsWith("RRULE")) {
const rruleParts = line.split(";");
const rruleMonthPart = rruleParts[1].split("=")[1];
const rruleMonth = parseInt(rruleMonthPart);
if (tzBreakpoints[`${breakpointCount}`]) {
tzBreakpoints[`${breakpointCount}`].month = rruleMonth;
tzBreakpoints[`${breakpointCount}`].day = rruleParts[2].split("=")[1];
}
}
}
if (tzBreakpoints["1"].month !== void 0 && tzBreakpoints["2"].month !== void 0 && tzBreakpoints["1"].month > tzBreakpoints["2"].month) {
[tzBreakpoints["1"], tzBreakpoints["2"]] = [tzBreakpoints["2"], tzBreakpoints["1"]];
}
const bp1 = tzBreakpoints["1"];
const bp2 = tzBreakpoints["2"];
if (bp1.month === void 0 || bp2.month === void 0 || bp1.offset === void 0 || bp2.offset === void 0) {
return "";
}
if (dateMonth != bp1.month && dateMonth != bp2.month) {
if (dateMonth < bp1.month || dateMonth > bp2.month) {
return bp2.offset;
} else {
return bp1.offset;
}
}
const theCase = (function() {
return Object.keys(tzBreakpoints).find((key) => tzBreakpoints[`${key}`].month == dateMonth);
})();
if (!theCase) return bp2.offset;
const currentBp = tzBreakpoints[`${theCase}`];
const helperArrayWeekdays = ["SU", "MO", "TU", "WE", "TH", "FR", "SA"];
const numberDays = new Date(dateYear, dateMonth, 0).getDate();
let weekdayCount = new Date(dateYear, dateMonth - 1, 1).getDay();
const weekdays = {
SU: {},
MO: {},
TU: {},
WE: {},
TH: {},
FR: {},
SA: {}
};
for (let d = 1; d <= numberDays; d++) {
const wcIndex = helperArrayWeekdays[weekdayCount];
const occurence = Object.keys(weekdays[`${wcIndex}`]).length + 1;
weekdays[`${wcIndex}`][`${occurence}`] = d;
weekdayCount++;
if (weekdayCount == 7) {
weekdayCount = 0;
}
}
const actualDay = (function() {
if (!currentBp.day) return 0;
if (currentBp.day[0] == "-") {
const breakpointWeekday = currentBp.day.substr(2, 2);
const dayIndex = Object.keys(weekdays[`${breakpointWeekday}`]).length + 1 - parseInt(currentBp.day[1]);
return weekdays[`${breakpointWeekday}`][`${dayIndex}`];
} else {
const breakpointWeekday = currentBp.day.substr(1, 2);
return weekdays[`${breakpointWeekday}`][currentBp.day[0]];
}
})();
if (dateDay > actualDay || dateDay == actualDay && dateHour >= (currentBp.hour || 0)) {
return currentBp.offset || "";
}
const fallbackCase = (function() {
if (theCase == "1") {
return "2";
} else {
return "1";
}
})();
return tzBreakpoints[`${fallbackCase}`].offset || "";
}
function tzlib_get_timezones(jsonType = false) {
const zoneNames = [];
const map_db_data2 = (raw) => {
const mappedData = {};
for (const [key, value] of Object.entries(raw)) {
if (typeof value === "object" && !Array.isArray(value)) {
mappedData[`${key}`] = {};
const subValue = value;
for (const [key2, value2] of Object.entries(subValue)) {
if (typeof value2 === "object" && !Array.isArray(value2)) {
mappedData[`${key}`][`${key2}`] = {};
const subValue2 = value2;
for (const [key3, value3] of Object.entries(subValue2)) {
const entry = value3;
const location = entry[0].replace(
new RegExp(`^${escapeRegExp(key)}/${escapeRegExp(key2)}/`),
`${tzDb2.toplevel.indexOf(key)}/${key2}/`
);
mappedData[`${key}`][`${key2}`][`${key3}`] = [location, entry[1]];
}
} else {
const entry = value2;
const location = entry[0].replace(
new RegExp(`^${escapeRegExp(key)}/`),
`${tzDb2.toplevel.indexOf(key)}/`
);
mappedData[`${key}`][`${key2}`] = [location, entry[1]];
}
}
} else {
const entry = value;
const location = entry[0].replace(
new RegExp(`^${escapeRegExp(key)}/`),
`${tzDb2.toplevel.indexOf(key)}/`
);
mappedData[`${key}`] = [location, entry[1]];
}
}
return mappedData;
};
const tzDbZones = map_db_data2(tzDb2.db);
const traverse_db = (obj, path = "") => {
for (const [key, value] of Object.entries(obj)) {
if (typeof value === "object" && !Array.isArray(value)) {
traverse_db(value, path + key + "/");
} else {
zoneNames.push(path + key);
}
}
};
traverse_db(tzDbZones);
if (jsonType) {
return JSON.stringify(zoneNames);
}
return zoneNames;
}
return __toCommonJS(tzlib_exports);
})();
if(typeof window !== "undefined"){ for(var k in tzlib_tmp_scope) window[k] = tzlib_tmp_scope[k]; }