@tmlmobilidade/dates 20260411.1248.30 → 20260418.947.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,10 +19,12 @@ export function manualRuleMatchesContext(rule, ctx) {
19
19
  if (rule.event_id) {
20
20
  // Event-exception rules: date matching already done by filteredManualRules in computeActiveRules.
21
21
  // If weekdays is non-empty, the user narrowed the event to specific days — check it.
22
- if (rule.weekdays.length > 0 && !rule.weekdays.includes(ctx.weekday))
22
+ const weekdays = rule.weekdays ?? [];
23
+ const yearPeriodIds = rule.year_period_ids ?? [];
24
+ if (weekdays.length > 0 && !weekdays.includes(ctx.weekday))
23
25
  return false;
24
26
  // If year_period_ids is non-empty, the user narrowed the event to specific periods — check it.
25
- if (rule.year_period_ids.length > 0 && !rule.year_period_ids.includes(ctx.yearPeriodId))
27
+ if (yearPeriodIds.length > 0 && !yearPeriodIds.includes(ctx.yearPeriodId))
26
28
  return false;
27
29
  return true;
28
30
  }
@@ -38,7 +40,7 @@ export function manualRuleMatchesContext(rule, ctx) {
38
40
  * @returns True if arrays have any common elements
39
41
  */
40
42
  function intersects(a, b) {
41
- if (!a.length || !b.length)
43
+ if (!a?.length || !b?.length)
42
44
  return false;
43
45
  const setA = new Set(a);
44
46
  for (const x of b)
@@ -23,3 +23,17 @@ export declare function buildRuleSummary(rule: ScheduleRule, options: {
23
23
  events?: Event[];
24
24
  periods?: YearPeriod[];
25
25
  }): RuleSummary;
26
+ /**
27
+ * GTFS-oriented rule token:
28
+ * - FER_DU
29
+ * - VER_SAB
30
+ * - ESC_DOM
31
+ * - ALL
32
+ * - ALL_DU
33
+ * - VER-FER_SAB-DOM
34
+ * - Rock in Rio_VER_DU
35
+ */
36
+ export declare function buildRuleSummaryGtfs(rule: ScheduleRule, options: {
37
+ events?: Event[];
38
+ periods?: YearPeriod[];
39
+ }): string;
@@ -1,6 +1,6 @@
1
1
  import { Dates } from '../../../dates.js';
2
- import { FORMATS } from '../../../format.js';
3
- import { WEEKDAY_OPTIONS, } from '@tmlmobilidade/types';
2
+ import { FORMATS } from '../../../lib/date-format.js';
3
+ import { MONTH_OPTIONS, WEEKDAY_OPTIONS, } from '@tmlmobilidade/types';
4
4
  import { buildMonthsPart, buildWeekdaysPart, buildYearPeriodsPart } from './common.js';
5
5
  /**
6
6
  * Builds human-readable summaries of a scheduling rule.
@@ -181,3 +181,112 @@ function buildRuleSummaryTooltip(rule, options) {
181
181
  }
182
182
  return '';
183
183
  }
184
+ /**
185
+ * TEMP:
186
+ * Maps year period ids/names into GTFS abbreviations.
187
+ * Replace with a persisted abbreviation/code field when available.
188
+ */
189
+ function mapPeriodsToGtfsAbbreviation(periodIds) {
190
+ if (!periodIds?.length)
191
+ return 'ALL';
192
+ const map = {
193
+ '2KIUJ': 'FER',
194
+ '99H2R': 'ESC',
195
+ 'UW2U0': 'VER',
196
+ };
197
+ const abbreviations = periodIds.map((id) => {
198
+ const abbr = map[id];
199
+ if (!abbr)
200
+ throw new Error(`Unknown period id: ${id}`);
201
+ return abbr;
202
+ });
203
+ const unique = [...new Set(abbreviations)];
204
+ const allSet = new Set(['ESC', 'FER', 'VER']);
205
+ // If all three are present, return 'ALL'
206
+ if (unique.length === 3 && unique.every(x => allSet.has(x))) {
207
+ return 'ALL';
208
+ }
209
+ return unique.sort((a, b) => a.localeCompare(b)).join('-');
210
+ }
211
+ function mapWeekdaysToGtfsAbbreviation(weekdays) {
212
+ if (!weekdays?.length)
213
+ return 'ALL';
214
+ const sorted = [...new Set(weekdays)].sort((a, b) => a - b);
215
+ if (sorted.length === 7)
216
+ return 'ALL';
217
+ const map = {
218
+ 1: 'SEG',
219
+ 2: 'TER',
220
+ 3: 'QUA',
221
+ 4: 'QUI',
222
+ 5: 'SEX',
223
+ 6: 'SAB',
224
+ 7: 'DOM',
225
+ };
226
+ // Collapse weekdays 1-5 into DU when all present
227
+ const hasDU = [1, 2, 3, 4, 5].every(d => sorted.includes(d));
228
+ if (hasDU) {
229
+ const weekend = sorted.filter(d => d > 5).map(d => map[d]);
230
+ return ['DU', ...weekend].join('-');
231
+ }
232
+ return sorted.map(day => map[day] || String(day)).join('-');
233
+ }
234
+ function mapMonthsToGtfsAbbreviation(months) {
235
+ if (!months?.length)
236
+ return null;
237
+ const sorted = [...months].sort((a, b) => a - b);
238
+ return sorted
239
+ .map(m => MONTH_OPTIONS.find(o => o.value === m)?.label.toUpperCase() ?? String(m))
240
+ .join('-');
241
+ }
242
+ /**
243
+ * GTFS-oriented rule token:
244
+ * - FER_DU
245
+ * - VER_SAB
246
+ * - ESC_DOM
247
+ * - ALL
248
+ * - ALL_DU
249
+ * - VER-FER_SAB-DOM
250
+ * - Rock in Rio_VER_DU
251
+ */
252
+ export function buildRuleSummaryGtfs(rule, options) {
253
+ if (isEventRestriction(rule)) {
254
+ const eventCode = options.events?.find(e => e._id === rule.event.id)?.code;
255
+ const base = eventCode ?? rule.name ?? rule._id;
256
+ if (rule.all_day)
257
+ return `${base}_ALLDAY`;
258
+ if (rule.start_time && rule.end_time)
259
+ return `${base}_${rule.start_time.replace(':', '')}${rule.end_time.replace(':', '')}`;
260
+ return base;
261
+ }
262
+ if (isEventReplacement(rule)) {
263
+ const eventCode = options.events?.find(e => e._id === rule.event.id)?.code;
264
+ return eventCode ?? rule.name ?? rule._id;
265
+ }
266
+ const periodIds = rule.year_period_ids ?? [];
267
+ const weekdays = rule.weekdays ?? [];
268
+ const periodPart = mapPeriodsToGtfsAbbreviation(periodIds);
269
+ const weekdayPart = mapWeekdaysToGtfsAbbreviation(weekdays);
270
+ const monthsPart = mapMonthsToGtfsAbbreviation(rule.months);
271
+ if (rule.kind === 'manual' && rule.event_id) {
272
+ const title = getEventForManualRule(rule, options?.events)?.code ?? rule.name ?? rule._id;
273
+ const tokenParts = [];
274
+ if (periodPart !== 'ALL')
275
+ tokenParts.push(periodPart);
276
+ if (monthsPart)
277
+ tokenParts.push(monthsPart);
278
+ if (weekdayPart !== 'ALL')
279
+ tokenParts.push(weekdayPart);
280
+ if (!tokenParts.length)
281
+ return title;
282
+ return `${title}_${tokenParts.join('_')}`;
283
+ }
284
+ const tokenParts = [periodPart];
285
+ if (monthsPart)
286
+ tokenParts.push(monthsPart);
287
+ if (weekdayPart !== 'ALL')
288
+ tokenParts.push(weekdayPart);
289
+ if (tokenParts.length === 1 && tokenParts[0] === 'ALL')
290
+ return 'ALL';
291
+ return tokenParts.join('_');
292
+ }
@@ -65,6 +65,17 @@ export function getManualRuleAffectedDates(rule, ctx) {
65
65
  if (!rule.weekdays.includes(weekday))
66
66
  continue;
67
67
  }
68
+ // If year periods are specified, narrow event dates to matching periods only
69
+ if (rule.year_period_ids?.length) {
70
+ if (!isInPeriod(rule, key, ctx))
71
+ continue;
72
+ }
73
+ // If months are specified, narrow event dates to matching months only
74
+ if (rule.months?.length) {
75
+ const month = Number(key.slice(5, 7));
76
+ if (!rule.months.includes(month))
77
+ continue;
78
+ }
68
79
  affected.push(key);
69
80
  }
70
81
  }
@@ -1,5 +1,5 @@
1
1
  import { Dates } from '../../dates.js';
2
- import { TimezoneIdentified } from '../../types.js';
2
+ import { TimezoneIdentified } from '../../lib/timezone-identified.js';
3
3
  import { Holiday, IsoWeekday } from '@tmlmobilidade/types';
4
4
  export declare const DEFAULT_CAL_TZ = "Europe/Lisbon";
5
5
  export type CalendarKey = `${number}-${number}-${number}`;
package/dist/dates.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { type DatesFormat } from './format.js';
2
- import { type TimezoneIdentified } from './types.js';
1
+ import { type DatesFormat } from './lib/date-format.js';
2
+ import { type TimezoneIdentified } from './lib/timezone-identified.js';
3
3
  import { type OperationalDate, type UnixTimestamp } from '@tmlmobilidade/types';
4
4
  import { type DateObjectUnits, type DateTimeUnit, type DurationObjectUnits } from 'luxon';
5
5
  interface DatesConstructor {
package/dist/dates.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* * */
2
- import { FORMATS, OPERATIONAL_DATE_FORMAT } from './format.js';
3
- import { timezoneList, timezoneListSchema } from './types.js';
2
+ import { FORMATS, OPERATIONAL_DATE_FORMAT } from './lib/date-format.js';
3
+ import { TimezoneIdentifiedSchema, TimezoneIdentifiedValues } from './lib/timezone-identified.js';
4
4
  import { DateTime } from 'luxon';
5
5
  /* * */
6
6
  export class Dates {
@@ -9,8 +9,8 @@ export class Dates {
9
9
  // Static properties
10
10
  static STANDARD_WINDOW_HOURS = 10;
11
11
  static get FORMATS() { return FORMATS; }
12
- static get TIMEZONE_LIST() { return timezoneList; }
13
- static get TIMEZONE_LIST_VALUES() { return timezoneListSchema.Values; }
12
+ static get TIMEZONE_LIST() { return TimezoneIdentifiedValues; }
13
+ static get TIMEZONE_LIST_VALUES() { return TimezoneIdentifiedSchema.Values; }
14
14
  //
15
15
  // Instance properties
16
16
  iso;
@@ -365,19 +365,19 @@ export class Dates {
365
365
  //
366
366
  // Check if the time is between 00:00 and 03:59.
367
367
  // The operational date is between 04:00 and 03:59 of the following day.
368
- let operational_date;
368
+ let operationalDate;
369
369
  if (dateObject.hour < 4) {
370
370
  // If true, return the previous day in the yyyyLLdd format
371
371
  const previousDay = dateObject.minus({ days: 1 });
372
- operational_date = previousDay.toFormat(OPERATIONAL_DATE_FORMAT);
372
+ operationalDate = previousDay.toFormat(OPERATIONAL_DATE_FORMAT);
373
373
  }
374
374
  else {
375
375
  // Else, return the current day in the yyyyLLdd format
376
- operational_date = dateObject.toFormat(OPERATIONAL_DATE_FORMAT);
376
+ operationalDate = dateObject.toFormat(OPERATIONAL_DATE_FORMAT);
377
377
  }
378
378
  //
379
379
  // Validate the operational date and return it
380
- return operational_date;
380
+ return operationalDate;
381
381
  //
382
382
  }
383
383
  /**
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './calendar/index.js';
2
2
  export * from './dates.js';
3
3
  export * from './day-periods.js';
4
- export * from './format.js';
5
- export * from './types.js';
4
+ export * from './lib/date-format.js';
5
+ export * from './lib/time-slot.js';
6
+ export * from './lib/timezone-identified.js';
6
7
  export * from './utils/index.js';
package/dist/index.js CHANGED
@@ -1,12 +1,7 @@
1
- // Calendar utilities (grid generation, day helpers, offer rules etc.)
2
1
  export * from './calendar/index.js';
3
- // Core date functionality
4
2
  export * from './dates.js';
5
- // Day periods helpers
6
3
  export * from './day-periods.js';
7
- // Date formatting constants and types
8
- export * from './format.js';
9
- // Types
10
- export * from './types.js';
11
- // Utility functions
4
+ export * from './lib/date-format.js';
5
+ export * from './lib/time-slot.js';
6
+ export * from './lib/timezone-identified.js';
12
7
  export * from './utils/index.js';
@@ -1,3 +1,4 @@
1
+ /* * */
1
2
  const l = 'long', n = 'numeric', s = 'short';
2
3
  const DATE_SHORT = {
3
4
  day: n,
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export declare const TimeSlotValues: readonly ["1s", "5s", "10s", "30s", "1m", "5m", "10m", "15m", "30m", "1h", "2h", "3h", "6h", "12h", "24h"];
3
+ export declare const TimeSlotSchema: z.ZodEnum<["1s", "5s", "10s", "30s", "1m", "5m", "10m", "15m", "30m", "1h", "2h", "3h", "6h", "12h", "24h"]>;
4
+ export type TimeSlot = z.infer<typeof TimeSlotSchema>;
5
+ export declare const TimeSlotMap: Record<TimeSlot, number>;
@@ -0,0 +1,39 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const TimeSlotValues = [
5
+ '1s',
6
+ '5s',
7
+ '10s',
8
+ '30s',
9
+ '1m',
10
+ '5m',
11
+ '10m',
12
+ '15m',
13
+ '30m',
14
+ '1h',
15
+ '2h',
16
+ '3h',
17
+ '6h',
18
+ '12h',
19
+ '24h',
20
+ ];
21
+ export const TimeSlotSchema = z.enum(TimeSlotValues);
22
+ /* * */
23
+ export const TimeSlotMap = {
24
+ '10m': 600_000,
25
+ '10s': 10_000,
26
+ '12h': 43_200_000,
27
+ '15m': 900_000,
28
+ '1h': 3_600_000,
29
+ '1m': 60_000,
30
+ '1s': 1_000,
31
+ '24h': 86_400_000,
32
+ '2h': 7_200_000,
33
+ '30m': 1_800_000,
34
+ '30s': 30_000,
35
+ '3h': 10_800_000,
36
+ '5m': 300_000,
37
+ '5s': 5_000,
38
+ '6h': 21_600_000,
39
+ };
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const TimezoneIdentifiedValues: readonly ["Africa/Abidjan", "Africa/Accra", "Africa/Algiers", "Africa/Bissau", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Johannesburg", "Africa/Juba", "Africa/Khartoum", "Africa/Lagos", "Africa/Maputo", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Asuncion", "America/Atikokan", "America/Bahia_Banderas", "America/Bahia", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Dawson", "America/Denver", "America/Detroit", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Maceio", "America/Managua", "America/Manaus", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port_of_Spain", "America/Port-au-Prince", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/Saratov", "Europe/Simferopol", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"];
3
+ export declare const TimezoneIdentifiedSchema: z.ZodEnum<["Africa/Abidjan", "Africa/Accra", "Africa/Algiers", "Africa/Bissau", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Johannesburg", "Africa/Juba", "Africa/Khartoum", "Africa/Lagos", "Africa/Maputo", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Asuncion", "America/Atikokan", "America/Bahia_Banderas", "America/Bahia", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Dawson", "America/Denver", "America/Detroit", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Maceio", "America/Managua", "America/Manaus", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port_of_Spain", "America/Port-au-Prince", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/Saratov", "Europe/Simferopol", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"]>;
4
+ export type TimezoneIdentified = z.infer<typeof TimezoneIdentifiedSchema>;
@@ -1,5 +1,7 @@
1
+ /* * */
1
2
  import { z } from 'zod';
2
- export const timezoneList = [
3
+ /* * */
4
+ export const TimezoneIdentifiedValues = [
3
5
  'Africa/Abidjan',
4
6
  'Africa/Accra',
5
7
  'Africa/Algiers',
@@ -335,4 +337,4 @@ export const timezoneList = [
335
337
  'Pacific/Wake',
336
338
  'Pacific/Wallis',
337
339
  ];
338
- export const timezoneListSchema = z.enum(timezoneList);
340
+ export const TimezoneIdentifiedSchema = z.enum(TimezoneIdentifiedValues);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmlmobilidade/dates",
3
- "version": "20260411.1248.30",
3
+ "version": "20260418.947.46",
4
4
  "author": {
5
5
  "email": "iso@tmlmobilidade.pt",
6
6
  "name": "TML-ISO"
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@tmlmobilidade/tsconfig": "*",
45
- "@types/node": "25.5.2",
45
+ "@types/node": "25.6.0",
46
46
  "resolve-tspaths": "0.8.23",
47
47
  "tsc-watch": "7.2.0",
48
48
  "typescript": "5.9.3"
package/dist/types.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const timezoneList: readonly ["Africa/Abidjan", "Africa/Accra", "Africa/Algiers", "Africa/Bissau", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Johannesburg", "Africa/Juba", "Africa/Khartoum", "Africa/Lagos", "Africa/Maputo", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Asuncion", "America/Atikokan", "America/Bahia_Banderas", "America/Bahia", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Dawson", "America/Denver", "America/Detroit", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Maceio", "America/Managua", "America/Manaus", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port_of_Spain", "America/Port-au-Prince", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/Saratov", "Europe/Simferopol", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"];
3
- export declare const timezoneListSchema: z.ZodEnum<["Africa/Abidjan", "Africa/Accra", "Africa/Algiers", "Africa/Bissau", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Johannesburg", "Africa/Juba", "Africa/Khartoum", "Africa/Lagos", "Africa/Maputo", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Asuncion", "America/Atikokan", "America/Bahia_Banderas", "America/Bahia", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Dawson", "America/Denver", "America/Detroit", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Maceio", "America/Managua", "America/Manaus", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port_of_Spain", "America/Port-au-Prince", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/Saratov", "Europe/Simferopol", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"]>;
4
- export type TimezoneIdentified = z.infer<typeof timezoneListSchema>;
File without changes