date-vir 7.1.1 → 7.2.0

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.
@@ -116,7 +116,7 @@ export declare const datePositionCalculationShape: import("object-shape-tester")
116
116
  */
117
117
  export type DatePositionCalculation = typeof datePositionCalculationShape.runtimeType;
118
118
  /**
119
- * Calculate the position of the given date's day within the given date unit.
119
+ * Calculate the position of the given date's "get" unit within the given "in" unit.
120
120
  *
121
121
  * @category Calculation
122
122
  * @example
@@ -126,23 +126,42 @@ export type DatePositionCalculation = typeof datePositionCalculationShape.runtim
126
126
  *
127
127
  * calculateDatePosition(
128
128
  * {
129
- * day: 5,
130
- * month: 4,
131
129
  * year: 2020,
130
+ * month: 4,
131
+ * day: 5,
132
+ *
133
+ * hour: 0,
134
+ * minute: 0,
135
+ * second: 0,
136
+ * millisecond: 0,
137
+ *
138
+ * timezone: utcTimezone,
139
+ * },
140
+ * {
141
+ * get: DateUnit.Week,
142
+ * in: DateUnit.Year,
132
143
  * },
133
- * DateUnit.Month,
134
144
  * );
135
- * // result is 5
145
+ * // result is ~14.14 (always round up for week in the year numbers, thus yielding week 15)
136
146
  *
137
147
  * calculateDatePosition(
138
148
  * {
139
- * day: 5,
140
- * month: 4,
141
149
  * year: 2020,
150
+ * month: 4,
151
+ * day: 5,
152
+ *
153
+ * hour: 0,
154
+ * minute: 0,
155
+ * second: 0,
156
+ * millisecond: 0,
157
+ * timezone: utcTimezone,
158
+ * },
159
+ * {
160
+ * get: DateUnit.Day,
161
+ * in: DateUnit.Week,
142
162
  * },
143
- * DateUnit.Week,
144
163
  * );
145
- * // result is
164
+ * // result is 0 (Sunday)
146
165
  * ```
147
166
  */
148
167
  export declare function calculateDatePosition(date: Readonly<FullDate>, calculation: Readonly<DatePositionCalculation>): number;
@@ -4,6 +4,7 @@ import { DateUnit, oneIndexedDateUnits } from '@date-vir/duration';
4
4
  import { defineShape, exact, isValidShape, or } from 'object-shape-tester';
5
5
  import { createFullDate } from '../full-date/create-full-date.js';
6
6
  import { toLuxonDateTime } from '../full-date/luxon-date-time-conversion.js';
7
+ import { calculateRelativeDate } from './calculate-relative-date.js';
7
8
  import { diffDates } from './diff-dates.js';
8
9
  /**
9
10
  * Get the {@link DateUnit} value of a {@link FullDate}.
@@ -67,8 +68,18 @@ export function getDateUnit(date, unit) {
67
68
  * ```
68
69
  */
69
70
  export function getStartDate(date, unit) {
70
- const luxonInstance = toLuxonDateTime(date);
71
- return createFullDate(luxonInstance.startOf(unit), date.timezone);
71
+ /**
72
+ * This package treats Sunday as the first day of the week, but Luxon treats Monday as the first
73
+ * day of the week.
74
+ */
75
+ if (unit === DateUnit.Week) {
76
+ return calculateRelativeDate(createFullDate(toLuxonDateTime(calculateRelativeDate(date, { days: 1 })).startOf(unit), date.timezone), {
77
+ days: -1,
78
+ });
79
+ }
80
+ else {
81
+ return createFullDate(toLuxonDateTime(date).startOf(unit), date.timezone);
82
+ }
72
83
  }
73
84
  /**
74
85
  * Get the end date of a specific {@link DateUnit} based on a given {@link FullDate}.
@@ -97,8 +108,18 @@ export function getStartDate(date, unit) {
97
108
  * ```
98
109
  */
99
110
  export function getEndDate(date, unit) {
100
- const luxonInstance = toLuxonDateTime(date);
101
- return createFullDate(luxonInstance.endOf(unit), date.timezone);
111
+ /**
112
+ * This package treats Sunday as the first day of the week, but Luxon treats Monday as the first
113
+ * day of the week.
114
+ */
115
+ if (unit === DateUnit.Week) {
116
+ return calculateRelativeDate(createFullDate(toLuxonDateTime(calculateRelativeDate(date, { days: 1 })).endOf(unit), date.timezone), {
117
+ days: -1,
118
+ });
119
+ }
120
+ else {
121
+ return createFullDate(toLuxonDateTime(date).endOf(unit), date.timezone);
122
+ }
102
123
  }
103
124
  /**
104
125
  * Shape definition for all valid date position calculations. Used for {@link calculateDatePosition}.
@@ -128,7 +149,7 @@ export const datePositionCalculationShape = defineShape(or({
128
149
  in: or(exact(DateUnit.Year), exact(DateUnit.Quarter), exact(DateUnit.Month), exact(DateUnit.Week), exact(DateUnit.Day), exact(DateUnit.Hour), exact(DateUnit.Minute), exact(DateUnit.Second)),
129
150
  }));
130
151
  /**
131
- * Calculate the position of the given date's day within the given date unit.
152
+ * Calculate the position of the given date's "get" unit within the given "in" unit.
132
153
  *
133
154
  * @category Calculation
134
155
  * @example
@@ -138,23 +159,42 @@ export const datePositionCalculationShape = defineShape(or({
138
159
  *
139
160
  * calculateDatePosition(
140
161
  * {
141
- * day: 5,
142
- * month: 4,
143
162
  * year: 2020,
163
+ * month: 4,
164
+ * day: 5,
165
+ *
166
+ * hour: 0,
167
+ * minute: 0,
168
+ * second: 0,
169
+ * millisecond: 0,
170
+ *
171
+ * timezone: utcTimezone,
172
+ * },
173
+ * {
174
+ * get: DateUnit.Week,
175
+ * in: DateUnit.Year,
144
176
  * },
145
- * DateUnit.Month,
146
177
  * );
147
- * // result is 5
178
+ * // result is ~14.14 (always round up for week in the year numbers, thus yielding week 15)
148
179
  *
149
180
  * calculateDatePosition(
150
181
  * {
151
- * day: 5,
152
- * month: 4,
153
182
  * year: 2020,
183
+ * month: 4,
184
+ * day: 5,
185
+ *
186
+ * hour: 0,
187
+ * minute: 0,
188
+ * second: 0,
189
+ * millisecond: 0,
190
+ * timezone: utcTimezone,
191
+ * },
192
+ * {
193
+ * get: DateUnit.Day,
194
+ * in: DateUnit.Week,
154
195
  * },
155
- * DateUnit.Week,
156
196
  * );
157
- * // result is
197
+ * // result is 0 (Sunday)
158
198
  * ```
159
199
  */
160
200
  export function calculateDatePosition(date, calculation) {
@@ -162,10 +202,19 @@ export function calculateDatePosition(date, calculation) {
162
202
  throw new Error(`Invalid date position calculation for '${stringify(date)}': cannot get ${calculation.get} in ${calculation.in}.`);
163
203
  }
164
204
  const start = getStartDate(date, calculation.in);
205
+ const startWithOffset = calculation.get === DateUnit.Week
206
+ ? calculateRelativeDate(start, {
207
+ days: calculateDatePosition(start, {
208
+ get: DateUnit.Day,
209
+ in: DateUnit.Week,
210
+ }),
211
+ })
212
+ : start;
165
213
  const diffUnit = `${calculation.get}s`;
166
- const diff = diffDates({ start, end: date }, { [diffUnit]: true });
214
+ const diff = diffDates({ start: startWithOffset, end: date }, { [diffUnit]: true });
167
215
  const value = diff[diffUnit];
168
- if (check.isIn(calculation.get, oneIndexedDateUnits)) {
216
+ const isDayOfWeek = calculation.get === DateUnit.Day && calculation.in === DateUnit.Week;
217
+ if (!isDayOfWeek && check.isIn(calculation.get, oneIndexedDateUnits)) {
169
218
  return value + 1;
170
219
  }
171
220
  else {
@@ -103,7 +103,7 @@ export declare function clearParts<const SpecificTimezone extends Timezone>(inpu
103
103
  day: import("@date-vir/duration").DayOfMonth;
104
104
  hour: import("@date-vir/duration").Hour;
105
105
  minute: import("@date-vir/duration").Minute;
106
- second: import("@date-vir/duration").Minute;
107
106
  millisecond: number;
107
+ second: import("@date-vir/duration").Second;
108
108
  timezone: SpecificTimezone;
109
109
  };
@@ -1,7 +1,7 @@
1
1
  import { Overwrite, type SetRequired } from '@augment-vir/common';
2
- import { type DayOfMonth, type Hour, type Minute, type MonthNumber } from '@date-vir/duration';
2
+ import { type DayOfMonth, type Hour, type Minute, type MonthNumber, type Second } from '@date-vir/duration';
3
3
  import type { Simplify } from 'type-fest';
4
- import { type Timezone } from '../timezone/timezones.js';
4
+ import { Timezone } from '../timezone/timezones.js';
5
5
  /**
6
6
  * Time part of {@link FullDate} represented in a shape definition.
7
7
  *
@@ -17,7 +17,475 @@ export declare const timePartShape: import("object-shape-tester").ShapeDefinitio
17
17
  /** Millisecond of the second: 0-999 */
18
18
  millisecond: import("object-shape-tester").ShapeNumericRange<number>;
19
19
  /** The timezone that this date/time is meant for / originated from. */
20
- timezone: Timezone;
20
+ timezone: import("object-shape-tester").ShapeEnum<readonly [Readonly<{
21
+ "Africa/Abidjan": "Africa/Abidjan";
22
+ "Africa/Accra": "Africa/Accra";
23
+ "Africa/Addis_Ababa": "Africa/Addis_Ababa";
24
+ "Africa/Algiers": "Africa/Algiers";
25
+ "Africa/Asmara": "Africa/Asmara";
26
+ "Africa/Bamako": "Africa/Bamako";
27
+ "Africa/Bangui": "Africa/Bangui";
28
+ "Africa/Banjul": "Africa/Banjul";
29
+ "Africa/Bissau": "Africa/Bissau";
30
+ "Africa/Blantyre": "Africa/Blantyre";
31
+ "Africa/Brazzaville": "Africa/Brazzaville";
32
+ "Africa/Bujumbura": "Africa/Bujumbura";
33
+ "Africa/Cairo": "Africa/Cairo";
34
+ "Africa/Casablanca": "Africa/Casablanca";
35
+ "Africa/Ceuta": "Africa/Ceuta";
36
+ "Africa/Conakry": "Africa/Conakry";
37
+ "Africa/Dakar": "Africa/Dakar";
38
+ "Africa/Dar_es_Salaam": "Africa/Dar_es_Salaam";
39
+ "Africa/Djibouti": "Africa/Djibouti";
40
+ "Africa/Douala": "Africa/Douala";
41
+ "Africa/El_Aaiun": "Africa/El_Aaiun";
42
+ "Africa/Freetown": "Africa/Freetown";
43
+ "Africa/Gaborone": "Africa/Gaborone";
44
+ "Africa/Harare": "Africa/Harare";
45
+ "Africa/Johannesburg": "Africa/Johannesburg";
46
+ "Africa/Juba": "Africa/Juba";
47
+ "Africa/Kampala": "Africa/Kampala";
48
+ "Africa/Khartoum": "Africa/Khartoum";
49
+ "Africa/Kigali": "Africa/Kigali";
50
+ "Africa/Kinshasa": "Africa/Kinshasa";
51
+ "Africa/Lagos": "Africa/Lagos";
52
+ "Africa/Libreville": "Africa/Libreville";
53
+ "Africa/Lome": "Africa/Lome";
54
+ "Africa/Luanda": "Africa/Luanda";
55
+ "Africa/Lubumbashi": "Africa/Lubumbashi";
56
+ "Africa/Lusaka": "Africa/Lusaka";
57
+ "Africa/Malabo": "Africa/Malabo";
58
+ "Africa/Maputo": "Africa/Maputo";
59
+ "Africa/Maseru": "Africa/Maseru";
60
+ "Africa/Mbabane": "Africa/Mbabane";
61
+ "Africa/Mogadishu": "Africa/Mogadishu";
62
+ "Africa/Monrovia": "Africa/Monrovia";
63
+ "Africa/Nairobi": "Africa/Nairobi";
64
+ "Africa/Ndjamena": "Africa/Ndjamena";
65
+ "Africa/Niamey": "Africa/Niamey";
66
+ "Africa/Nouakchott": "Africa/Nouakchott";
67
+ "Africa/Ouagadougou": "Africa/Ouagadougou";
68
+ "Africa/Porto-Novo": "Africa/Porto-Novo";
69
+ "Africa/Sao_Tome": "Africa/Sao_Tome";
70
+ "Africa/Timbuktu": "Africa/Timbuktu";
71
+ "Africa/Tripoli": "Africa/Tripoli";
72
+ "Africa/Tunis": "Africa/Tunis";
73
+ "Africa/Windhoek": "Africa/Windhoek";
74
+ "America/Adak": "America/Adak";
75
+ "America/Anchorage": "America/Anchorage";
76
+ "America/Anguilla": "America/Anguilla";
77
+ "America/Antigua": "America/Antigua";
78
+ "America/Araguaina": "America/Araguaina";
79
+ "America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires";
80
+ "America/Argentina/Catamarca": "America/Argentina/Catamarca";
81
+ "America/Argentina/ComodRivadavia": "America/Argentina/ComodRivadavia";
82
+ "America/Argentina/Cordoba": "America/Argentina/Cordoba";
83
+ "America/Argentina/Jujuy": "America/Argentina/Jujuy";
84
+ "America/Argentina/La_Rioja": "America/Argentina/La_Rioja";
85
+ "America/Argentina/Mendoza": "America/Argentina/Mendoza";
86
+ "America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos";
87
+ "America/Argentina/Salta": "America/Argentina/Salta";
88
+ "America/Argentina/San_Juan": "America/Argentina/San_Juan";
89
+ "America/Argentina/San_Luis": "America/Argentina/San_Luis";
90
+ "America/Argentina/Tucuman": "America/Argentina/Tucuman";
91
+ "America/Argentina/Ushuaia": "America/Argentina/Ushuaia";
92
+ "America/Aruba": "America/Aruba";
93
+ "America/Asuncion": "America/Asuncion";
94
+ "America/Atikokan": "America/Atikokan";
95
+ "America/Bahia": "America/Bahia";
96
+ "America/Bahia_Banderas": "America/Bahia_Banderas";
97
+ "America/Barbados": "America/Barbados";
98
+ "America/Belem": "America/Belem";
99
+ "America/Belize": "America/Belize";
100
+ "America/Blanc-Sablon": "America/Blanc-Sablon";
101
+ "America/Boa_Vista": "America/Boa_Vista";
102
+ "America/Bogota": "America/Bogota";
103
+ "America/Boise": "America/Boise";
104
+ "America/Cambridge_Bay": "America/Cambridge_Bay";
105
+ "America/Campo_Grande": "America/Campo_Grande";
106
+ "America/Cancun": "America/Cancun";
107
+ "America/Caracas": "America/Caracas";
108
+ "America/Cayenne": "America/Cayenne";
109
+ "America/Cayman": "America/Cayman";
110
+ "America/Chicago": "America/Chicago";
111
+ "America/Chihuahua": "America/Chihuahua";
112
+ "America/Coral_Harbour": "America/Coral_Harbour";
113
+ "America/Costa_Rica": "America/Costa_Rica";
114
+ "America/Creston": "America/Creston";
115
+ "America/Cuiaba": "America/Cuiaba";
116
+ "America/Curacao": "America/Curacao";
117
+ "America/Danmarkshavn": "America/Danmarkshavn";
118
+ "America/Dawson": "America/Dawson";
119
+ "America/Dawson_Creek": "America/Dawson_Creek";
120
+ "America/Denver": "America/Denver";
121
+ "America/Detroit": "America/Detroit";
122
+ "America/Dominica": "America/Dominica";
123
+ "America/Edmonton": "America/Edmonton";
124
+ "America/Eirunepe": "America/Eirunepe";
125
+ "America/El_Salvador": "America/El_Salvador";
126
+ "America/Ensenada": "America/Ensenada";
127
+ "America/Fort_Nelson": "America/Fort_Nelson";
128
+ "America/Fortaleza": "America/Fortaleza";
129
+ "America/Glace_Bay": "America/Glace_Bay";
130
+ "America/Goose_Bay": "America/Goose_Bay";
131
+ "America/Grand_Turk": "America/Grand_Turk";
132
+ "America/Grenada": "America/Grenada";
133
+ "America/Guadeloupe": "America/Guadeloupe";
134
+ "America/Guatemala": "America/Guatemala";
135
+ "America/Guayaquil": "America/Guayaquil";
136
+ "America/Guyana": "America/Guyana";
137
+ "America/Halifax": "America/Halifax";
138
+ "America/Havana": "America/Havana";
139
+ "America/Hermosillo": "America/Hermosillo";
140
+ "America/Indiana/Indianapolis": "America/Indiana/Indianapolis";
141
+ "America/Indiana/Knox": "America/Indiana/Knox";
142
+ "America/Indiana/Marengo": "America/Indiana/Marengo";
143
+ "America/Indiana/Petersburg": "America/Indiana/Petersburg";
144
+ "America/Indiana/Tell_City": "America/Indiana/Tell_City";
145
+ "America/Indiana/Vevay": "America/Indiana/Vevay";
146
+ "America/Indiana/Vincennes": "America/Indiana/Vincennes";
147
+ "America/Indiana/Winamac": "America/Indiana/Winamac";
148
+ "America/Inuvik": "America/Inuvik";
149
+ "America/Iqaluit": "America/Iqaluit";
150
+ "America/Jamaica": "America/Jamaica";
151
+ "America/Juneau": "America/Juneau";
152
+ "America/Kentucky/Louisville": "America/Kentucky/Louisville";
153
+ "America/Kentucky/Monticello": "America/Kentucky/Monticello";
154
+ "America/La_Paz": "America/La_Paz";
155
+ "America/Lima": "America/Lima";
156
+ "America/Los_Angeles": "America/Los_Angeles";
157
+ "America/Maceio": "America/Maceio";
158
+ "America/Managua": "America/Managua";
159
+ "America/Manaus": "America/Manaus";
160
+ "America/Martinique": "America/Martinique";
161
+ "America/Matamoros": "America/Matamoros";
162
+ "America/Mazatlan": "America/Mazatlan";
163
+ "America/Menominee": "America/Menominee";
164
+ "America/Merida": "America/Merida";
165
+ "America/Metlakatla": "America/Metlakatla";
166
+ "America/Mexico_City": "America/Mexico_City";
167
+ "America/Miquelon": "America/Miquelon";
168
+ "America/Moncton": "America/Moncton";
169
+ "America/Monterrey": "America/Monterrey";
170
+ "America/Montevideo": "America/Montevideo";
171
+ "America/Montreal": "America/Montreal";
172
+ "America/Montserrat": "America/Montserrat";
173
+ "America/Nassau": "America/Nassau";
174
+ "America/New_York": "America/New_York";
175
+ "America/Nipigon": "America/Nipigon";
176
+ "America/Nome": "America/Nome";
177
+ "America/Noronha": "America/Noronha";
178
+ "America/North_Dakota/Beulah": "America/North_Dakota/Beulah";
179
+ "America/North_Dakota/Center": "America/North_Dakota/Center";
180
+ "America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem";
181
+ "America/Nuuk": "America/Nuuk";
182
+ "America/Ojinaga": "America/Ojinaga";
183
+ "America/Panama": "America/Panama";
184
+ "America/Pangnirtung": "America/Pangnirtung";
185
+ "America/Paramaribo": "America/Paramaribo";
186
+ "America/Phoenix": "America/Phoenix";
187
+ "America/Port-au-Prince": "America/Port-au-Prince";
188
+ "America/Port_of_Spain": "America/Port_of_Spain";
189
+ "America/Porto_Velho": "America/Porto_Velho";
190
+ "America/Puerto_Rico": "America/Puerto_Rico";
191
+ "America/Punta_Arenas": "America/Punta_Arenas";
192
+ "America/Rainy_River": "America/Rainy_River";
193
+ "America/Rankin_Inlet": "America/Rankin_Inlet";
194
+ "America/Recife": "America/Recife";
195
+ "America/Regina": "America/Regina";
196
+ "America/Resolute": "America/Resolute";
197
+ "America/Rio_Branco": "America/Rio_Branco";
198
+ "America/Rosario": "America/Rosario";
199
+ "America/Santarem": "America/Santarem";
200
+ "America/Santiago": "America/Santiago";
201
+ "America/Santo_Domingo": "America/Santo_Domingo";
202
+ "America/Sao_Paulo": "America/Sao_Paulo";
203
+ "America/Scoresbysund": "America/Scoresbysund";
204
+ "America/Sitka": "America/Sitka";
205
+ "America/St_Johns": "America/St_Johns";
206
+ "America/St_Kitts": "America/St_Kitts";
207
+ "America/St_Lucia": "America/St_Lucia";
208
+ "America/St_Thomas": "America/St_Thomas";
209
+ "America/St_Vincent": "America/St_Vincent";
210
+ "America/Swift_Current": "America/Swift_Current";
211
+ "America/Tegucigalpa": "America/Tegucigalpa";
212
+ "America/Thule": "America/Thule";
213
+ "America/Thunder_Bay": "America/Thunder_Bay";
214
+ "America/Tijuana": "America/Tijuana";
215
+ "America/Toronto": "America/Toronto";
216
+ "America/Tortola": "America/Tortola";
217
+ "America/Vancouver": "America/Vancouver";
218
+ "America/Whitehorse": "America/Whitehorse";
219
+ "America/Winnipeg": "America/Winnipeg";
220
+ "America/Yakutat": "America/Yakutat";
221
+ "America/Yellowknife": "America/Yellowknife";
222
+ "Antarctica/Casey": "Antarctica/Casey";
223
+ "Antarctica/Davis": "Antarctica/Davis";
224
+ "Antarctica/DumontDUrville": "Antarctica/DumontDUrville";
225
+ "Antarctica/Macquarie": "Antarctica/Macquarie";
226
+ "Antarctica/Mawson": "Antarctica/Mawson";
227
+ "Antarctica/McMurdo": "Antarctica/McMurdo";
228
+ "Antarctica/Palmer": "Antarctica/Palmer";
229
+ "Antarctica/Rothera": "Antarctica/Rothera";
230
+ "Antarctica/Syowa": "Antarctica/Syowa";
231
+ "Antarctica/Troll": "Antarctica/Troll";
232
+ "Antarctica/Vostok": "Antarctica/Vostok";
233
+ "Asia/Aden": "Asia/Aden";
234
+ "Asia/Almaty": "Asia/Almaty";
235
+ "Asia/Amman": "Asia/Amman";
236
+ "Asia/Anadyr": "Asia/Anadyr";
237
+ "Asia/Aqtau": "Asia/Aqtau";
238
+ "Asia/Aqtobe": "Asia/Aqtobe";
239
+ "Asia/Ashgabat": "Asia/Ashgabat";
240
+ "Asia/Atyrau": "Asia/Atyrau";
241
+ "Asia/Baghdad": "Asia/Baghdad";
242
+ "Asia/Bahrain": "Asia/Bahrain";
243
+ "Asia/Baku": "Asia/Baku";
244
+ "Asia/Bangkok": "Asia/Bangkok";
245
+ "Asia/Barnaul": "Asia/Barnaul";
246
+ "Asia/Beirut": "Asia/Beirut";
247
+ "Asia/Bishkek": "Asia/Bishkek";
248
+ "Asia/Brunei": "Asia/Brunei";
249
+ "Asia/Chita": "Asia/Chita";
250
+ "Asia/Choibalsan": "Asia/Choibalsan";
251
+ "Asia/Chongqing": "Asia/Chongqing";
252
+ "Asia/Colombo": "Asia/Colombo";
253
+ "Asia/Damascus": "Asia/Damascus";
254
+ "Asia/Dhaka": "Asia/Dhaka";
255
+ "Asia/Dili": "Asia/Dili";
256
+ "Asia/Dubai": "Asia/Dubai";
257
+ "Asia/Dushanbe": "Asia/Dushanbe";
258
+ "Asia/Famagusta": "Asia/Famagusta";
259
+ "Asia/Gaza": "Asia/Gaza";
260
+ "Asia/Harbin": "Asia/Harbin";
261
+ "Asia/Hebron": "Asia/Hebron";
262
+ "Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh";
263
+ "Asia/Hong_Kong": "Asia/Hong_Kong";
264
+ "Asia/Hovd": "Asia/Hovd";
265
+ "Asia/Irkutsk": "Asia/Irkutsk";
266
+ "Asia/Jakarta": "Asia/Jakarta";
267
+ "Asia/Jayapura": "Asia/Jayapura";
268
+ "Asia/Jerusalem": "Asia/Jerusalem";
269
+ "Asia/Kabul": "Asia/Kabul";
270
+ "Asia/Kamchatka": "Asia/Kamchatka";
271
+ "Asia/Karachi": "Asia/Karachi";
272
+ "Asia/Kashgar": "Asia/Kashgar";
273
+ "Asia/Kathmandu": "Asia/Kathmandu";
274
+ "Asia/Khandyga": "Asia/Khandyga";
275
+ "Asia/Kolkata": "Asia/Kolkata";
276
+ "Asia/Krasnoyarsk": "Asia/Krasnoyarsk";
277
+ "Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur";
278
+ "Asia/Kuching": "Asia/Kuching";
279
+ "Asia/Kuwait": "Asia/Kuwait";
280
+ "Asia/Macau": "Asia/Macau";
281
+ "Asia/Magadan": "Asia/Magadan";
282
+ "Asia/Makassar": "Asia/Makassar";
283
+ "Asia/Manila": "Asia/Manila";
284
+ "Asia/Muscat": "Asia/Muscat";
285
+ "Asia/Nicosia": "Asia/Nicosia";
286
+ "Asia/Novokuznetsk": "Asia/Novokuznetsk";
287
+ "Asia/Novosibirsk": "Asia/Novosibirsk";
288
+ "Asia/Omsk": "Asia/Omsk";
289
+ "Asia/Oral": "Asia/Oral";
290
+ "Asia/Phnom_Penh": "Asia/Phnom_Penh";
291
+ "Asia/Pontianak": "Asia/Pontianak";
292
+ "Asia/Pyongyang": "Asia/Pyongyang";
293
+ "Asia/Qatar": "Asia/Qatar";
294
+ "Asia/Qostanay": "Asia/Qostanay";
295
+ "Asia/Qyzylorda": "Asia/Qyzylorda";
296
+ "Asia/Riyadh": "Asia/Riyadh";
297
+ "Asia/Sakhalin": "Asia/Sakhalin";
298
+ "Asia/Samarkand": "Asia/Samarkand";
299
+ "Asia/Seoul": "Asia/Seoul";
300
+ "Asia/Shanghai": "Asia/Shanghai";
301
+ "Asia/Singapore": "Asia/Singapore";
302
+ "Asia/Srednekolymsk": "Asia/Srednekolymsk";
303
+ "Asia/Taipei": "Asia/Taipei";
304
+ "Asia/Tashkent": "Asia/Tashkent";
305
+ "Asia/Tbilisi": "Asia/Tbilisi";
306
+ "Asia/Tehran": "Asia/Tehran";
307
+ "Asia/Tel_Aviv": "Asia/Tel_Aviv";
308
+ "Asia/Thimphu": "Asia/Thimphu";
309
+ "Asia/Tokyo": "Asia/Tokyo";
310
+ "Asia/Tomsk": "Asia/Tomsk";
311
+ "Asia/Ulaanbaatar": "Asia/Ulaanbaatar";
312
+ "Asia/Urumqi": "Asia/Urumqi";
313
+ "Asia/Ust-Nera": "Asia/Ust-Nera";
314
+ "Asia/Vientiane": "Asia/Vientiane";
315
+ "Asia/Vladivostok": "Asia/Vladivostok";
316
+ "Asia/Yakutsk": "Asia/Yakutsk";
317
+ "Asia/Yangon": "Asia/Yangon";
318
+ "Asia/Yekaterinburg": "Asia/Yekaterinburg";
319
+ "Asia/Yerevan": "Asia/Yerevan";
320
+ "Atlantic/Azores": "Atlantic/Azores";
321
+ "Atlantic/Bermuda": "Atlantic/Bermuda";
322
+ "Atlantic/Canary": "Atlantic/Canary";
323
+ "Atlantic/Cape_Verde": "Atlantic/Cape_Verde";
324
+ "Atlantic/Faroe": "Atlantic/Faroe";
325
+ "Atlantic/Jan_Mayen": "Atlantic/Jan_Mayen";
326
+ "Atlantic/Madeira": "Atlantic/Madeira";
327
+ "Atlantic/Reykjavik": "Atlantic/Reykjavik";
328
+ "Atlantic/South_Georgia": "Atlantic/South_Georgia";
329
+ "Atlantic/St_Helena": "Atlantic/St_Helena";
330
+ "Atlantic/Stanley": "Atlantic/Stanley";
331
+ "Australia/Adelaide": "Australia/Adelaide";
332
+ "Australia/Brisbane": "Australia/Brisbane";
333
+ "Australia/Broken_Hill": "Australia/Broken_Hill";
334
+ "Australia/Currie": "Australia/Currie";
335
+ "Australia/Darwin": "Australia/Darwin";
336
+ "Australia/Eucla": "Australia/Eucla";
337
+ "Australia/Hobart": "Australia/Hobart";
338
+ "Australia/Lindeman": "Australia/Lindeman";
339
+ "Australia/Lord_Howe": "Australia/Lord_Howe";
340
+ "Australia/Melbourne": "Australia/Melbourne";
341
+ "Australia/Perth": "Australia/Perth";
342
+ "Australia/Sydney": "Australia/Sydney";
343
+ CET: "CET";
344
+ CST6CDT: "CST6CDT";
345
+ EET: "EET";
346
+ EST: "EST";
347
+ EST5EDT: "EST5EDT";
348
+ "Etc/GMT+1": "Etc/GMT+1";
349
+ "Etc/GMT+10": "Etc/GMT+10";
350
+ "Etc/GMT+11": "Etc/GMT+11";
351
+ "Etc/GMT+12": "Etc/GMT+12";
352
+ "Etc/GMT+2": "Etc/GMT+2";
353
+ "Etc/GMT+3": "Etc/GMT+3";
354
+ "Etc/GMT+4": "Etc/GMT+4";
355
+ "Etc/GMT+5": "Etc/GMT+5";
356
+ "Etc/GMT+6": "Etc/GMT+6";
357
+ "Etc/GMT+7": "Etc/GMT+7";
358
+ "Etc/GMT+8": "Etc/GMT+8";
359
+ "Etc/GMT+9": "Etc/GMT+9";
360
+ "Etc/GMT-1": "Etc/GMT-1";
361
+ "Etc/GMT-10": "Etc/GMT-10";
362
+ "Etc/GMT-11": "Etc/GMT-11";
363
+ "Etc/GMT-12": "Etc/GMT-12";
364
+ "Etc/GMT-13": "Etc/GMT-13";
365
+ "Etc/GMT-14": "Etc/GMT-14";
366
+ "Etc/GMT-2": "Etc/GMT-2";
367
+ "Etc/GMT-3": "Etc/GMT-3";
368
+ "Etc/GMT-4": "Etc/GMT-4";
369
+ "Etc/GMT-5": "Etc/GMT-5";
370
+ "Etc/GMT-6": "Etc/GMT-6";
371
+ "Etc/GMT-7": "Etc/GMT-7";
372
+ "Etc/GMT-8": "Etc/GMT-8";
373
+ "Etc/GMT-9": "Etc/GMT-9";
374
+ "Europe/Amsterdam": "Europe/Amsterdam";
375
+ "Europe/Andorra": "Europe/Andorra";
376
+ "Europe/Astrakhan": "Europe/Astrakhan";
377
+ "Europe/Athens": "Europe/Athens";
378
+ "Europe/Belfast": "Europe/Belfast";
379
+ "Europe/Belgrade": "Europe/Belgrade";
380
+ "Europe/Berlin": "Europe/Berlin";
381
+ "Europe/Brussels": "Europe/Brussels";
382
+ "Europe/Bucharest": "Europe/Bucharest";
383
+ "Europe/Budapest": "Europe/Budapest";
384
+ "Europe/Chisinau": "Europe/Chisinau";
385
+ "Europe/Copenhagen": "Europe/Copenhagen";
386
+ "Europe/Dublin": "Europe/Dublin";
387
+ "Europe/Gibraltar": "Europe/Gibraltar";
388
+ "Europe/Guernsey": "Europe/Guernsey";
389
+ "Europe/Helsinki": "Europe/Helsinki";
390
+ "Europe/Isle_of_Man": "Europe/Isle_of_Man";
391
+ "Europe/Istanbul": "Europe/Istanbul";
392
+ "Europe/Jersey": "Europe/Jersey";
393
+ "Europe/Kaliningrad": "Europe/Kaliningrad";
394
+ "Europe/Kirov": "Europe/Kirov";
395
+ "Europe/Kyiv": "Europe/Kyiv";
396
+ "Europe/Lisbon": "Europe/Lisbon";
397
+ "Europe/Ljubljana": "Europe/Ljubljana";
398
+ "Europe/London": "Europe/London";
399
+ "Europe/Luxembourg": "Europe/Luxembourg";
400
+ "Europe/Madrid": "Europe/Madrid";
401
+ "Europe/Malta": "Europe/Malta";
402
+ "Europe/Minsk": "Europe/Minsk";
403
+ "Europe/Monaco": "Europe/Monaco";
404
+ "Europe/Moscow": "Europe/Moscow";
405
+ "Europe/Oslo": "Europe/Oslo";
406
+ "Europe/Paris": "Europe/Paris";
407
+ "Europe/Prague": "Europe/Prague";
408
+ "Europe/Riga": "Europe/Riga";
409
+ "Europe/Rome": "Europe/Rome";
410
+ "Europe/Samara": "Europe/Samara";
411
+ "Europe/Sarajevo": "Europe/Sarajevo";
412
+ "Europe/Saratov": "Europe/Saratov";
413
+ "Europe/Simferopol": "Europe/Simferopol";
414
+ "Europe/Skopje": "Europe/Skopje";
415
+ "Europe/Sofia": "Europe/Sofia";
416
+ "Europe/Stockholm": "Europe/Stockholm";
417
+ "Europe/Tallinn": "Europe/Tallinn";
418
+ "Europe/Tirane": "Europe/Tirane";
419
+ "Europe/Tiraspol": "Europe/Tiraspol";
420
+ "Europe/Ulyanovsk": "Europe/Ulyanovsk";
421
+ "Europe/Uzhgorod": "Europe/Uzhgorod";
422
+ "Europe/Vaduz": "Europe/Vaduz";
423
+ "Europe/Vienna": "Europe/Vienna";
424
+ "Europe/Vilnius": "Europe/Vilnius";
425
+ "Europe/Volgograd": "Europe/Volgograd";
426
+ "Europe/Warsaw": "Europe/Warsaw";
427
+ "Europe/Zagreb": "Europe/Zagreb";
428
+ "Europe/Zaporozhye": "Europe/Zaporozhye";
429
+ "Europe/Zurich": "Europe/Zurich";
430
+ HST: "HST";
431
+ "Indian/Antananarivo": "Indian/Antananarivo";
432
+ "Indian/Chagos": "Indian/Chagos";
433
+ "Indian/Christmas": "Indian/Christmas";
434
+ "Indian/Cocos": "Indian/Cocos";
435
+ "Indian/Comoro": "Indian/Comoro";
436
+ "Indian/Kerguelen": "Indian/Kerguelen";
437
+ "Indian/Mahe": "Indian/Mahe";
438
+ "Indian/Maldives": "Indian/Maldives";
439
+ "Indian/Mauritius": "Indian/Mauritius";
440
+ "Indian/Mayotte": "Indian/Mayotte";
441
+ "Indian/Reunion": "Indian/Reunion";
442
+ MET: "MET";
443
+ MST: "MST";
444
+ MST7MDT: "MST7MDT";
445
+ PST8PDT: "PST8PDT";
446
+ "Pacific/Apia": "Pacific/Apia";
447
+ "Pacific/Auckland": "Pacific/Auckland";
448
+ "Pacific/Bougainville": "Pacific/Bougainville";
449
+ "Pacific/Chatham": "Pacific/Chatham";
450
+ "Pacific/Chuuk": "Pacific/Chuuk";
451
+ "Pacific/Easter": "Pacific/Easter";
452
+ "Pacific/Efate": "Pacific/Efate";
453
+ "Pacific/Enderbury": "Pacific/Enderbury";
454
+ "Pacific/Fakaofo": "Pacific/Fakaofo";
455
+ "Pacific/Fiji": "Pacific/Fiji";
456
+ "Pacific/Funafuti": "Pacific/Funafuti";
457
+ "Pacific/Galapagos": "Pacific/Galapagos";
458
+ "Pacific/Gambier": "Pacific/Gambier";
459
+ "Pacific/Guadalcanal": "Pacific/Guadalcanal";
460
+ "Pacific/Guam": "Pacific/Guam";
461
+ "Pacific/Honolulu": "Pacific/Honolulu";
462
+ "Pacific/Johnston": "Pacific/Johnston";
463
+ "Pacific/Kanton": "Pacific/Kanton";
464
+ "Pacific/Kiritimati": "Pacific/Kiritimati";
465
+ "Pacific/Kosrae": "Pacific/Kosrae";
466
+ "Pacific/Kwajalein": "Pacific/Kwajalein";
467
+ "Pacific/Majuro": "Pacific/Majuro";
468
+ "Pacific/Marquesas": "Pacific/Marquesas";
469
+ "Pacific/Midway": "Pacific/Midway";
470
+ "Pacific/Nauru": "Pacific/Nauru";
471
+ "Pacific/Niue": "Pacific/Niue";
472
+ "Pacific/Norfolk": "Pacific/Norfolk";
473
+ "Pacific/Noumea": "Pacific/Noumea";
474
+ "Pacific/Pago_Pago": "Pacific/Pago_Pago";
475
+ "Pacific/Palau": "Pacific/Palau";
476
+ "Pacific/Pitcairn": "Pacific/Pitcairn";
477
+ "Pacific/Pohnpei": "Pacific/Pohnpei";
478
+ "Pacific/Port_Moresby": "Pacific/Port_Moresby";
479
+ "Pacific/Rarotonga": "Pacific/Rarotonga";
480
+ "Pacific/Saipan": "Pacific/Saipan";
481
+ "Pacific/Tahiti": "Pacific/Tahiti";
482
+ "Pacific/Tarawa": "Pacific/Tarawa";
483
+ "Pacific/Tongatapu": "Pacific/Tongatapu";
484
+ "Pacific/Wake": "Pacific/Wake";
485
+ "Pacific/Wallis": "Pacific/Wallis";
486
+ UTC: "UTC";
487
+ WET: "WET";
488
+ }>, "UTC"]>;
21
489
  }, false>;
22
490
  /**
23
491
  * Time part of a {@link FullDate}.
@@ -78,7 +546,475 @@ export declare const fullDateShape: import("object-shape-tester").ShapeDefinitio
78
546
  /** Millisecond of the second: 0-999 */
79
547
  millisecond: import("object-shape-tester").ShapeNumericRange<number>;
80
548
  /** The timezone that this date/time is meant for / originated from. */
81
- timezone: Timezone;
549
+ timezone: import("object-shape-tester").ShapeEnum<readonly [Readonly<{
550
+ "Africa/Abidjan": "Africa/Abidjan";
551
+ "Africa/Accra": "Africa/Accra";
552
+ "Africa/Addis_Ababa": "Africa/Addis_Ababa";
553
+ "Africa/Algiers": "Africa/Algiers";
554
+ "Africa/Asmara": "Africa/Asmara";
555
+ "Africa/Bamako": "Africa/Bamako";
556
+ "Africa/Bangui": "Africa/Bangui";
557
+ "Africa/Banjul": "Africa/Banjul";
558
+ "Africa/Bissau": "Africa/Bissau";
559
+ "Africa/Blantyre": "Africa/Blantyre";
560
+ "Africa/Brazzaville": "Africa/Brazzaville";
561
+ "Africa/Bujumbura": "Africa/Bujumbura";
562
+ "Africa/Cairo": "Africa/Cairo";
563
+ "Africa/Casablanca": "Africa/Casablanca";
564
+ "Africa/Ceuta": "Africa/Ceuta";
565
+ "Africa/Conakry": "Africa/Conakry";
566
+ "Africa/Dakar": "Africa/Dakar";
567
+ "Africa/Dar_es_Salaam": "Africa/Dar_es_Salaam";
568
+ "Africa/Djibouti": "Africa/Djibouti";
569
+ "Africa/Douala": "Africa/Douala";
570
+ "Africa/El_Aaiun": "Africa/El_Aaiun";
571
+ "Africa/Freetown": "Africa/Freetown";
572
+ "Africa/Gaborone": "Africa/Gaborone";
573
+ "Africa/Harare": "Africa/Harare";
574
+ "Africa/Johannesburg": "Africa/Johannesburg";
575
+ "Africa/Juba": "Africa/Juba";
576
+ "Africa/Kampala": "Africa/Kampala";
577
+ "Africa/Khartoum": "Africa/Khartoum";
578
+ "Africa/Kigali": "Africa/Kigali";
579
+ "Africa/Kinshasa": "Africa/Kinshasa";
580
+ "Africa/Lagos": "Africa/Lagos";
581
+ "Africa/Libreville": "Africa/Libreville";
582
+ "Africa/Lome": "Africa/Lome";
583
+ "Africa/Luanda": "Africa/Luanda";
584
+ "Africa/Lubumbashi": "Africa/Lubumbashi";
585
+ "Africa/Lusaka": "Africa/Lusaka";
586
+ "Africa/Malabo": "Africa/Malabo";
587
+ "Africa/Maputo": "Africa/Maputo";
588
+ "Africa/Maseru": "Africa/Maseru";
589
+ "Africa/Mbabane": "Africa/Mbabane";
590
+ "Africa/Mogadishu": "Africa/Mogadishu";
591
+ "Africa/Monrovia": "Africa/Monrovia";
592
+ "Africa/Nairobi": "Africa/Nairobi";
593
+ "Africa/Ndjamena": "Africa/Ndjamena";
594
+ "Africa/Niamey": "Africa/Niamey";
595
+ "Africa/Nouakchott": "Africa/Nouakchott";
596
+ "Africa/Ouagadougou": "Africa/Ouagadougou";
597
+ "Africa/Porto-Novo": "Africa/Porto-Novo";
598
+ "Africa/Sao_Tome": "Africa/Sao_Tome";
599
+ "Africa/Timbuktu": "Africa/Timbuktu";
600
+ "Africa/Tripoli": "Africa/Tripoli";
601
+ "Africa/Tunis": "Africa/Tunis";
602
+ "Africa/Windhoek": "Africa/Windhoek";
603
+ "America/Adak": "America/Adak";
604
+ "America/Anchorage": "America/Anchorage";
605
+ "America/Anguilla": "America/Anguilla";
606
+ "America/Antigua": "America/Antigua";
607
+ "America/Araguaina": "America/Araguaina";
608
+ "America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires";
609
+ "America/Argentina/Catamarca": "America/Argentina/Catamarca";
610
+ "America/Argentina/ComodRivadavia": "America/Argentina/ComodRivadavia";
611
+ "America/Argentina/Cordoba": "America/Argentina/Cordoba";
612
+ "America/Argentina/Jujuy": "America/Argentina/Jujuy";
613
+ "America/Argentina/La_Rioja": "America/Argentina/La_Rioja";
614
+ "America/Argentina/Mendoza": "America/Argentina/Mendoza";
615
+ "America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos";
616
+ "America/Argentina/Salta": "America/Argentina/Salta";
617
+ "America/Argentina/San_Juan": "America/Argentina/San_Juan";
618
+ "America/Argentina/San_Luis": "America/Argentina/San_Luis";
619
+ "America/Argentina/Tucuman": "America/Argentina/Tucuman";
620
+ "America/Argentina/Ushuaia": "America/Argentina/Ushuaia";
621
+ "America/Aruba": "America/Aruba";
622
+ "America/Asuncion": "America/Asuncion";
623
+ "America/Atikokan": "America/Atikokan";
624
+ "America/Bahia": "America/Bahia";
625
+ "America/Bahia_Banderas": "America/Bahia_Banderas";
626
+ "America/Barbados": "America/Barbados";
627
+ "America/Belem": "America/Belem";
628
+ "America/Belize": "America/Belize";
629
+ "America/Blanc-Sablon": "America/Blanc-Sablon";
630
+ "America/Boa_Vista": "America/Boa_Vista";
631
+ "America/Bogota": "America/Bogota";
632
+ "America/Boise": "America/Boise";
633
+ "America/Cambridge_Bay": "America/Cambridge_Bay";
634
+ "America/Campo_Grande": "America/Campo_Grande";
635
+ "America/Cancun": "America/Cancun";
636
+ "America/Caracas": "America/Caracas";
637
+ "America/Cayenne": "America/Cayenne";
638
+ "America/Cayman": "America/Cayman";
639
+ "America/Chicago": "America/Chicago";
640
+ "America/Chihuahua": "America/Chihuahua";
641
+ "America/Coral_Harbour": "America/Coral_Harbour";
642
+ "America/Costa_Rica": "America/Costa_Rica";
643
+ "America/Creston": "America/Creston";
644
+ "America/Cuiaba": "America/Cuiaba";
645
+ "America/Curacao": "America/Curacao";
646
+ "America/Danmarkshavn": "America/Danmarkshavn";
647
+ "America/Dawson": "America/Dawson";
648
+ "America/Dawson_Creek": "America/Dawson_Creek";
649
+ "America/Denver": "America/Denver";
650
+ "America/Detroit": "America/Detroit";
651
+ "America/Dominica": "America/Dominica";
652
+ "America/Edmonton": "America/Edmonton";
653
+ "America/Eirunepe": "America/Eirunepe";
654
+ "America/El_Salvador": "America/El_Salvador";
655
+ "America/Ensenada": "America/Ensenada";
656
+ "America/Fort_Nelson": "America/Fort_Nelson";
657
+ "America/Fortaleza": "America/Fortaleza";
658
+ "America/Glace_Bay": "America/Glace_Bay";
659
+ "America/Goose_Bay": "America/Goose_Bay";
660
+ "America/Grand_Turk": "America/Grand_Turk";
661
+ "America/Grenada": "America/Grenada";
662
+ "America/Guadeloupe": "America/Guadeloupe";
663
+ "America/Guatemala": "America/Guatemala";
664
+ "America/Guayaquil": "America/Guayaquil";
665
+ "America/Guyana": "America/Guyana";
666
+ "America/Halifax": "America/Halifax";
667
+ "America/Havana": "America/Havana";
668
+ "America/Hermosillo": "America/Hermosillo";
669
+ "America/Indiana/Indianapolis": "America/Indiana/Indianapolis";
670
+ "America/Indiana/Knox": "America/Indiana/Knox";
671
+ "America/Indiana/Marengo": "America/Indiana/Marengo";
672
+ "America/Indiana/Petersburg": "America/Indiana/Petersburg";
673
+ "America/Indiana/Tell_City": "America/Indiana/Tell_City";
674
+ "America/Indiana/Vevay": "America/Indiana/Vevay";
675
+ "America/Indiana/Vincennes": "America/Indiana/Vincennes";
676
+ "America/Indiana/Winamac": "America/Indiana/Winamac";
677
+ "America/Inuvik": "America/Inuvik";
678
+ "America/Iqaluit": "America/Iqaluit";
679
+ "America/Jamaica": "America/Jamaica";
680
+ "America/Juneau": "America/Juneau";
681
+ "America/Kentucky/Louisville": "America/Kentucky/Louisville";
682
+ "America/Kentucky/Monticello": "America/Kentucky/Monticello";
683
+ "America/La_Paz": "America/La_Paz";
684
+ "America/Lima": "America/Lima";
685
+ "America/Los_Angeles": "America/Los_Angeles";
686
+ "America/Maceio": "America/Maceio";
687
+ "America/Managua": "America/Managua";
688
+ "America/Manaus": "America/Manaus";
689
+ "America/Martinique": "America/Martinique";
690
+ "America/Matamoros": "America/Matamoros";
691
+ "America/Mazatlan": "America/Mazatlan";
692
+ "America/Menominee": "America/Menominee";
693
+ "America/Merida": "America/Merida";
694
+ "America/Metlakatla": "America/Metlakatla";
695
+ "America/Mexico_City": "America/Mexico_City";
696
+ "America/Miquelon": "America/Miquelon";
697
+ "America/Moncton": "America/Moncton";
698
+ "America/Monterrey": "America/Monterrey";
699
+ "America/Montevideo": "America/Montevideo";
700
+ "America/Montreal": "America/Montreal";
701
+ "America/Montserrat": "America/Montserrat";
702
+ "America/Nassau": "America/Nassau";
703
+ "America/New_York": "America/New_York";
704
+ "America/Nipigon": "America/Nipigon";
705
+ "America/Nome": "America/Nome";
706
+ "America/Noronha": "America/Noronha";
707
+ "America/North_Dakota/Beulah": "America/North_Dakota/Beulah";
708
+ "America/North_Dakota/Center": "America/North_Dakota/Center";
709
+ "America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem";
710
+ "America/Nuuk": "America/Nuuk";
711
+ "America/Ojinaga": "America/Ojinaga";
712
+ "America/Panama": "America/Panama";
713
+ "America/Pangnirtung": "America/Pangnirtung";
714
+ "America/Paramaribo": "America/Paramaribo";
715
+ "America/Phoenix": "America/Phoenix";
716
+ "America/Port-au-Prince": "America/Port-au-Prince";
717
+ "America/Port_of_Spain": "America/Port_of_Spain";
718
+ "America/Porto_Velho": "America/Porto_Velho";
719
+ "America/Puerto_Rico": "America/Puerto_Rico";
720
+ "America/Punta_Arenas": "America/Punta_Arenas";
721
+ "America/Rainy_River": "America/Rainy_River";
722
+ "America/Rankin_Inlet": "America/Rankin_Inlet";
723
+ "America/Recife": "America/Recife";
724
+ "America/Regina": "America/Regina";
725
+ "America/Resolute": "America/Resolute";
726
+ "America/Rio_Branco": "America/Rio_Branco";
727
+ "America/Rosario": "America/Rosario";
728
+ "America/Santarem": "America/Santarem";
729
+ "America/Santiago": "America/Santiago";
730
+ "America/Santo_Domingo": "America/Santo_Domingo";
731
+ "America/Sao_Paulo": "America/Sao_Paulo";
732
+ "America/Scoresbysund": "America/Scoresbysund";
733
+ "America/Sitka": "America/Sitka";
734
+ "America/St_Johns": "America/St_Johns";
735
+ "America/St_Kitts": "America/St_Kitts";
736
+ "America/St_Lucia": "America/St_Lucia";
737
+ "America/St_Thomas": "America/St_Thomas";
738
+ "America/St_Vincent": "America/St_Vincent";
739
+ "America/Swift_Current": "America/Swift_Current";
740
+ "America/Tegucigalpa": "America/Tegucigalpa";
741
+ "America/Thule": "America/Thule";
742
+ "America/Thunder_Bay": "America/Thunder_Bay";
743
+ "America/Tijuana": "America/Tijuana";
744
+ "America/Toronto": "America/Toronto";
745
+ "America/Tortola": "America/Tortola";
746
+ "America/Vancouver": "America/Vancouver";
747
+ "America/Whitehorse": "America/Whitehorse";
748
+ "America/Winnipeg": "America/Winnipeg";
749
+ "America/Yakutat": "America/Yakutat";
750
+ "America/Yellowknife": "America/Yellowknife";
751
+ "Antarctica/Casey": "Antarctica/Casey";
752
+ "Antarctica/Davis": "Antarctica/Davis";
753
+ "Antarctica/DumontDUrville": "Antarctica/DumontDUrville";
754
+ "Antarctica/Macquarie": "Antarctica/Macquarie";
755
+ "Antarctica/Mawson": "Antarctica/Mawson";
756
+ "Antarctica/McMurdo": "Antarctica/McMurdo";
757
+ "Antarctica/Palmer": "Antarctica/Palmer";
758
+ "Antarctica/Rothera": "Antarctica/Rothera";
759
+ "Antarctica/Syowa": "Antarctica/Syowa";
760
+ "Antarctica/Troll": "Antarctica/Troll";
761
+ "Antarctica/Vostok": "Antarctica/Vostok";
762
+ "Asia/Aden": "Asia/Aden";
763
+ "Asia/Almaty": "Asia/Almaty";
764
+ "Asia/Amman": "Asia/Amman";
765
+ "Asia/Anadyr": "Asia/Anadyr";
766
+ "Asia/Aqtau": "Asia/Aqtau";
767
+ "Asia/Aqtobe": "Asia/Aqtobe";
768
+ "Asia/Ashgabat": "Asia/Ashgabat";
769
+ "Asia/Atyrau": "Asia/Atyrau";
770
+ "Asia/Baghdad": "Asia/Baghdad";
771
+ "Asia/Bahrain": "Asia/Bahrain";
772
+ "Asia/Baku": "Asia/Baku";
773
+ "Asia/Bangkok": "Asia/Bangkok";
774
+ "Asia/Barnaul": "Asia/Barnaul";
775
+ "Asia/Beirut": "Asia/Beirut";
776
+ "Asia/Bishkek": "Asia/Bishkek";
777
+ "Asia/Brunei": "Asia/Brunei";
778
+ "Asia/Chita": "Asia/Chita";
779
+ "Asia/Choibalsan": "Asia/Choibalsan";
780
+ "Asia/Chongqing": "Asia/Chongqing";
781
+ "Asia/Colombo": "Asia/Colombo";
782
+ "Asia/Damascus": "Asia/Damascus";
783
+ "Asia/Dhaka": "Asia/Dhaka";
784
+ "Asia/Dili": "Asia/Dili";
785
+ "Asia/Dubai": "Asia/Dubai";
786
+ "Asia/Dushanbe": "Asia/Dushanbe";
787
+ "Asia/Famagusta": "Asia/Famagusta";
788
+ "Asia/Gaza": "Asia/Gaza";
789
+ "Asia/Harbin": "Asia/Harbin";
790
+ "Asia/Hebron": "Asia/Hebron";
791
+ "Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh";
792
+ "Asia/Hong_Kong": "Asia/Hong_Kong";
793
+ "Asia/Hovd": "Asia/Hovd";
794
+ "Asia/Irkutsk": "Asia/Irkutsk";
795
+ "Asia/Jakarta": "Asia/Jakarta";
796
+ "Asia/Jayapura": "Asia/Jayapura";
797
+ "Asia/Jerusalem": "Asia/Jerusalem";
798
+ "Asia/Kabul": "Asia/Kabul";
799
+ "Asia/Kamchatka": "Asia/Kamchatka";
800
+ "Asia/Karachi": "Asia/Karachi";
801
+ "Asia/Kashgar": "Asia/Kashgar";
802
+ "Asia/Kathmandu": "Asia/Kathmandu";
803
+ "Asia/Khandyga": "Asia/Khandyga";
804
+ "Asia/Kolkata": "Asia/Kolkata";
805
+ "Asia/Krasnoyarsk": "Asia/Krasnoyarsk";
806
+ "Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur";
807
+ "Asia/Kuching": "Asia/Kuching";
808
+ "Asia/Kuwait": "Asia/Kuwait";
809
+ "Asia/Macau": "Asia/Macau";
810
+ "Asia/Magadan": "Asia/Magadan";
811
+ "Asia/Makassar": "Asia/Makassar";
812
+ "Asia/Manila": "Asia/Manila";
813
+ "Asia/Muscat": "Asia/Muscat";
814
+ "Asia/Nicosia": "Asia/Nicosia";
815
+ "Asia/Novokuznetsk": "Asia/Novokuznetsk";
816
+ "Asia/Novosibirsk": "Asia/Novosibirsk";
817
+ "Asia/Omsk": "Asia/Omsk";
818
+ "Asia/Oral": "Asia/Oral";
819
+ "Asia/Phnom_Penh": "Asia/Phnom_Penh";
820
+ "Asia/Pontianak": "Asia/Pontianak";
821
+ "Asia/Pyongyang": "Asia/Pyongyang";
822
+ "Asia/Qatar": "Asia/Qatar";
823
+ "Asia/Qostanay": "Asia/Qostanay";
824
+ "Asia/Qyzylorda": "Asia/Qyzylorda";
825
+ "Asia/Riyadh": "Asia/Riyadh";
826
+ "Asia/Sakhalin": "Asia/Sakhalin";
827
+ "Asia/Samarkand": "Asia/Samarkand";
828
+ "Asia/Seoul": "Asia/Seoul";
829
+ "Asia/Shanghai": "Asia/Shanghai";
830
+ "Asia/Singapore": "Asia/Singapore";
831
+ "Asia/Srednekolymsk": "Asia/Srednekolymsk";
832
+ "Asia/Taipei": "Asia/Taipei";
833
+ "Asia/Tashkent": "Asia/Tashkent";
834
+ "Asia/Tbilisi": "Asia/Tbilisi";
835
+ "Asia/Tehran": "Asia/Tehran";
836
+ "Asia/Tel_Aviv": "Asia/Tel_Aviv";
837
+ "Asia/Thimphu": "Asia/Thimphu";
838
+ "Asia/Tokyo": "Asia/Tokyo";
839
+ "Asia/Tomsk": "Asia/Tomsk";
840
+ "Asia/Ulaanbaatar": "Asia/Ulaanbaatar";
841
+ "Asia/Urumqi": "Asia/Urumqi";
842
+ "Asia/Ust-Nera": "Asia/Ust-Nera";
843
+ "Asia/Vientiane": "Asia/Vientiane";
844
+ "Asia/Vladivostok": "Asia/Vladivostok";
845
+ "Asia/Yakutsk": "Asia/Yakutsk";
846
+ "Asia/Yangon": "Asia/Yangon";
847
+ "Asia/Yekaterinburg": "Asia/Yekaterinburg";
848
+ "Asia/Yerevan": "Asia/Yerevan";
849
+ "Atlantic/Azores": "Atlantic/Azores";
850
+ "Atlantic/Bermuda": "Atlantic/Bermuda";
851
+ "Atlantic/Canary": "Atlantic/Canary";
852
+ "Atlantic/Cape_Verde": "Atlantic/Cape_Verde";
853
+ "Atlantic/Faroe": "Atlantic/Faroe";
854
+ "Atlantic/Jan_Mayen": "Atlantic/Jan_Mayen";
855
+ "Atlantic/Madeira": "Atlantic/Madeira";
856
+ "Atlantic/Reykjavik": "Atlantic/Reykjavik";
857
+ "Atlantic/South_Georgia": "Atlantic/South_Georgia";
858
+ "Atlantic/St_Helena": "Atlantic/St_Helena";
859
+ "Atlantic/Stanley": "Atlantic/Stanley";
860
+ "Australia/Adelaide": "Australia/Adelaide";
861
+ "Australia/Brisbane": "Australia/Brisbane";
862
+ "Australia/Broken_Hill": "Australia/Broken_Hill";
863
+ "Australia/Currie": "Australia/Currie";
864
+ "Australia/Darwin": "Australia/Darwin";
865
+ "Australia/Eucla": "Australia/Eucla";
866
+ "Australia/Hobart": "Australia/Hobart";
867
+ "Australia/Lindeman": "Australia/Lindeman";
868
+ "Australia/Lord_Howe": "Australia/Lord_Howe";
869
+ "Australia/Melbourne": "Australia/Melbourne";
870
+ "Australia/Perth": "Australia/Perth";
871
+ "Australia/Sydney": "Australia/Sydney";
872
+ CET: "CET";
873
+ CST6CDT: "CST6CDT";
874
+ EET: "EET";
875
+ EST: "EST";
876
+ EST5EDT: "EST5EDT";
877
+ "Etc/GMT+1": "Etc/GMT+1";
878
+ "Etc/GMT+10": "Etc/GMT+10";
879
+ "Etc/GMT+11": "Etc/GMT+11";
880
+ "Etc/GMT+12": "Etc/GMT+12";
881
+ "Etc/GMT+2": "Etc/GMT+2";
882
+ "Etc/GMT+3": "Etc/GMT+3";
883
+ "Etc/GMT+4": "Etc/GMT+4";
884
+ "Etc/GMT+5": "Etc/GMT+5";
885
+ "Etc/GMT+6": "Etc/GMT+6";
886
+ "Etc/GMT+7": "Etc/GMT+7";
887
+ "Etc/GMT+8": "Etc/GMT+8";
888
+ "Etc/GMT+9": "Etc/GMT+9";
889
+ "Etc/GMT-1": "Etc/GMT-1";
890
+ "Etc/GMT-10": "Etc/GMT-10";
891
+ "Etc/GMT-11": "Etc/GMT-11";
892
+ "Etc/GMT-12": "Etc/GMT-12";
893
+ "Etc/GMT-13": "Etc/GMT-13";
894
+ "Etc/GMT-14": "Etc/GMT-14";
895
+ "Etc/GMT-2": "Etc/GMT-2";
896
+ "Etc/GMT-3": "Etc/GMT-3";
897
+ "Etc/GMT-4": "Etc/GMT-4";
898
+ "Etc/GMT-5": "Etc/GMT-5";
899
+ "Etc/GMT-6": "Etc/GMT-6";
900
+ "Etc/GMT-7": "Etc/GMT-7";
901
+ "Etc/GMT-8": "Etc/GMT-8";
902
+ "Etc/GMT-9": "Etc/GMT-9";
903
+ "Europe/Amsterdam": "Europe/Amsterdam";
904
+ "Europe/Andorra": "Europe/Andorra";
905
+ "Europe/Astrakhan": "Europe/Astrakhan";
906
+ "Europe/Athens": "Europe/Athens";
907
+ "Europe/Belfast": "Europe/Belfast";
908
+ "Europe/Belgrade": "Europe/Belgrade";
909
+ "Europe/Berlin": "Europe/Berlin";
910
+ "Europe/Brussels": "Europe/Brussels";
911
+ "Europe/Bucharest": "Europe/Bucharest";
912
+ "Europe/Budapest": "Europe/Budapest";
913
+ "Europe/Chisinau": "Europe/Chisinau";
914
+ "Europe/Copenhagen": "Europe/Copenhagen";
915
+ "Europe/Dublin": "Europe/Dublin";
916
+ "Europe/Gibraltar": "Europe/Gibraltar";
917
+ "Europe/Guernsey": "Europe/Guernsey";
918
+ "Europe/Helsinki": "Europe/Helsinki";
919
+ "Europe/Isle_of_Man": "Europe/Isle_of_Man";
920
+ "Europe/Istanbul": "Europe/Istanbul";
921
+ "Europe/Jersey": "Europe/Jersey";
922
+ "Europe/Kaliningrad": "Europe/Kaliningrad";
923
+ "Europe/Kirov": "Europe/Kirov";
924
+ "Europe/Kyiv": "Europe/Kyiv";
925
+ "Europe/Lisbon": "Europe/Lisbon";
926
+ "Europe/Ljubljana": "Europe/Ljubljana";
927
+ "Europe/London": "Europe/London";
928
+ "Europe/Luxembourg": "Europe/Luxembourg";
929
+ "Europe/Madrid": "Europe/Madrid";
930
+ "Europe/Malta": "Europe/Malta";
931
+ "Europe/Minsk": "Europe/Minsk";
932
+ "Europe/Monaco": "Europe/Monaco";
933
+ "Europe/Moscow": "Europe/Moscow";
934
+ "Europe/Oslo": "Europe/Oslo";
935
+ "Europe/Paris": "Europe/Paris";
936
+ "Europe/Prague": "Europe/Prague";
937
+ "Europe/Riga": "Europe/Riga";
938
+ "Europe/Rome": "Europe/Rome";
939
+ "Europe/Samara": "Europe/Samara";
940
+ "Europe/Sarajevo": "Europe/Sarajevo";
941
+ "Europe/Saratov": "Europe/Saratov";
942
+ "Europe/Simferopol": "Europe/Simferopol";
943
+ "Europe/Skopje": "Europe/Skopje";
944
+ "Europe/Sofia": "Europe/Sofia";
945
+ "Europe/Stockholm": "Europe/Stockholm";
946
+ "Europe/Tallinn": "Europe/Tallinn";
947
+ "Europe/Tirane": "Europe/Tirane";
948
+ "Europe/Tiraspol": "Europe/Tiraspol";
949
+ "Europe/Ulyanovsk": "Europe/Ulyanovsk";
950
+ "Europe/Uzhgorod": "Europe/Uzhgorod";
951
+ "Europe/Vaduz": "Europe/Vaduz";
952
+ "Europe/Vienna": "Europe/Vienna";
953
+ "Europe/Vilnius": "Europe/Vilnius";
954
+ "Europe/Volgograd": "Europe/Volgograd";
955
+ "Europe/Warsaw": "Europe/Warsaw";
956
+ "Europe/Zagreb": "Europe/Zagreb";
957
+ "Europe/Zaporozhye": "Europe/Zaporozhye";
958
+ "Europe/Zurich": "Europe/Zurich";
959
+ HST: "HST";
960
+ "Indian/Antananarivo": "Indian/Antananarivo";
961
+ "Indian/Chagos": "Indian/Chagos";
962
+ "Indian/Christmas": "Indian/Christmas";
963
+ "Indian/Cocos": "Indian/Cocos";
964
+ "Indian/Comoro": "Indian/Comoro";
965
+ "Indian/Kerguelen": "Indian/Kerguelen";
966
+ "Indian/Mahe": "Indian/Mahe";
967
+ "Indian/Maldives": "Indian/Maldives";
968
+ "Indian/Mauritius": "Indian/Mauritius";
969
+ "Indian/Mayotte": "Indian/Mayotte";
970
+ "Indian/Reunion": "Indian/Reunion";
971
+ MET: "MET";
972
+ MST: "MST";
973
+ MST7MDT: "MST7MDT";
974
+ PST8PDT: "PST8PDT";
975
+ "Pacific/Apia": "Pacific/Apia";
976
+ "Pacific/Auckland": "Pacific/Auckland";
977
+ "Pacific/Bougainville": "Pacific/Bougainville";
978
+ "Pacific/Chatham": "Pacific/Chatham";
979
+ "Pacific/Chuuk": "Pacific/Chuuk";
980
+ "Pacific/Easter": "Pacific/Easter";
981
+ "Pacific/Efate": "Pacific/Efate";
982
+ "Pacific/Enderbury": "Pacific/Enderbury";
983
+ "Pacific/Fakaofo": "Pacific/Fakaofo";
984
+ "Pacific/Fiji": "Pacific/Fiji";
985
+ "Pacific/Funafuti": "Pacific/Funafuti";
986
+ "Pacific/Galapagos": "Pacific/Galapagos";
987
+ "Pacific/Gambier": "Pacific/Gambier";
988
+ "Pacific/Guadalcanal": "Pacific/Guadalcanal";
989
+ "Pacific/Guam": "Pacific/Guam";
990
+ "Pacific/Honolulu": "Pacific/Honolulu";
991
+ "Pacific/Johnston": "Pacific/Johnston";
992
+ "Pacific/Kanton": "Pacific/Kanton";
993
+ "Pacific/Kiritimati": "Pacific/Kiritimati";
994
+ "Pacific/Kosrae": "Pacific/Kosrae";
995
+ "Pacific/Kwajalein": "Pacific/Kwajalein";
996
+ "Pacific/Majuro": "Pacific/Majuro";
997
+ "Pacific/Marquesas": "Pacific/Marquesas";
998
+ "Pacific/Midway": "Pacific/Midway";
999
+ "Pacific/Nauru": "Pacific/Nauru";
1000
+ "Pacific/Niue": "Pacific/Niue";
1001
+ "Pacific/Norfolk": "Pacific/Norfolk";
1002
+ "Pacific/Noumea": "Pacific/Noumea";
1003
+ "Pacific/Pago_Pago": "Pacific/Pago_Pago";
1004
+ "Pacific/Palau": "Pacific/Palau";
1005
+ "Pacific/Pitcairn": "Pacific/Pitcairn";
1006
+ "Pacific/Pohnpei": "Pacific/Pohnpei";
1007
+ "Pacific/Port_Moresby": "Pacific/Port_Moresby";
1008
+ "Pacific/Rarotonga": "Pacific/Rarotonga";
1009
+ "Pacific/Saipan": "Pacific/Saipan";
1010
+ "Pacific/Tahiti": "Pacific/Tahiti";
1011
+ "Pacific/Tarawa": "Pacific/Tarawa";
1012
+ "Pacific/Tongatapu": "Pacific/Tongatapu";
1013
+ "Pacific/Wake": "Pacific/Wake";
1014
+ "Pacific/Wallis": "Pacific/Wallis";
1015
+ UTC: "UTC";
1016
+ WET: "WET";
1017
+ }>, "UTC"]>;
82
1018
  }, false>]>, false>;
83
1019
  /**
84
1020
  * A serializable object that completely specifies how any given date should be represented,
@@ -95,14 +1031,17 @@ export declare const fullDateShape: import("object-shape-tester").ShapeDefinitio
95
1031
  * year: 2024,
96
1032
  * month: 6,
97
1033
  * day: 2,
1034
+ *
98
1035
  * hour: 13,
99
1036
  * minute: 32,
100
1037
  * second: 12,
1038
+ *
101
1039
  * milliseconds: 94,
102
1040
  * timezone: timezones['Australia/Brisbane'],
103
1041
  * };
104
1042
  * ```
105
1043
  */
106
1044
  export type FullDate<SpecificTimezone extends Timezone = Timezone> = Simplify<Overwrite<(typeof fullDateShape)['runtimeType'], {
1045
+ second: Second;
107
1046
  timezone: SpecificTimezone;
108
1047
  }>>;
@@ -1,6 +1,6 @@
1
1
  import { dayOfMonthBounds, hourBounds, millisecondsBounds, minuteBounds, monthNumberBounds, secondBounds, } from '@date-vir/duration';
2
- import { and, defineShape, numericRange } from 'object-shape-tester';
3
- import { utcTimezone } from '../timezone/timezones.js';
2
+ import { and, defineShape, enumShape, numericRange } from 'object-shape-tester';
3
+ import { Timezone, utcTimezone } from '../timezone/timezones.js';
4
4
  /**
5
5
  * Time part of {@link FullDate} represented in a shape definition.
6
6
  *
@@ -16,7 +16,7 @@ export const timePartShape = defineShape({
16
16
  /** Millisecond of the second: 0-999 */
17
17
  millisecond: numericRange(millisecondsBounds.min, millisecondsBounds.max),
18
18
  /** The timezone that this date/time is meant for / originated from. */
19
- timezone: utcTimezone,
19
+ timezone: enumShape(Timezone, utcTimezone),
20
20
  });
21
21
  /**
22
22
  * Date part of {@link FullDate} represented in a shape definition.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "date-vir",
3
- "version": "7.1.1",
3
+ "version": "7.2.0",
4
4
  "description": "Easy and explicit dates and times.",
5
5
  "keywords": [
6
6
  "date",
@@ -34,25 +34,26 @@
34
34
  "test:docs": "virmator docs check"
35
35
  },
36
36
  "dependencies": {
37
- "@augment-vir/assert": "^31.1.0",
38
- "@augment-vir/common": "^31.0.1",
39
- "@date-vir/duration": "^7.1.1",
37
+ "@augment-vir/assert": "^31.9.1",
38
+ "@augment-vir/common": "^31.9.1",
39
+ "@date-vir/duration": "^7.2.0",
40
40
  "@types/luxon": "^3.4.2",
41
41
  "luxon": "^3.5.0",
42
- "object-shape-tester": "^3.1.4",
43
- "type-fest": "^4.30.0"
42
+ "object-shape-tester": "^4.1.0",
43
+ "type-fest": "^4.33.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@augment-vir/test": "^31.1.0",
46
+ "@augment-vir/test": "^31.9.1",
47
47
  "@web/dev-server-esbuild": "^1.0.3",
48
48
  "@web/test-runner": "^0.19.0",
49
49
  "@web/test-runner-commands": "^0.9.0",
50
50
  "@web/test-runner-playwright": "^0.11.0",
51
51
  "@web/test-runner-visual-regression": "^0.10.0",
52
- "element-vir": "^23.1.0",
52
+ "element-vir": "^23.1.1",
53
53
  "istanbul-smart-text-reporter": "^1.1.5",
54
54
  "markdown-code-example-inserter": "^3.0.3",
55
- "typedoc": "^0.27.4"
55
+ "typedoc": "^0.27.6",
56
+ "typescript": "^5.7.3"
56
57
  },
57
58
  "engines": {
58
59
  "node": ">=22"