chrono-node 2.6.1 → 2.6.3

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.
Files changed (119) hide show
  1. package/README.md +32 -2
  2. package/dist/cjs/common/refiners/AbstractMergeDateRangeRefiner.js +15 -7
  3. package/dist/cjs/common/refiners/AbstractMergeDateRangeRefiner.js.map +1 -1
  4. package/dist/cjs/common/refiners/ExtractTimezoneAbbrRefiner.d.ts +3 -4
  5. package/dist/cjs/common/refiners/ExtractTimezoneAbbrRefiner.js +6 -196
  6. package/dist/cjs/common/refiners/ExtractTimezoneAbbrRefiner.js.map +1 -1
  7. package/dist/cjs/common/refiners/ForwardDateRefiner.js +14 -14
  8. package/dist/cjs/common/refiners/ForwardDateRefiner.js.map +1 -1
  9. package/dist/cjs/configurations.js +1 -1
  10. package/dist/cjs/configurations.js.map +1 -1
  11. package/dist/cjs/index.d.ts +26 -4
  12. package/dist/cjs/index.js +16 -1
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/locales/en/constants.d.ts +4 -0
  15. package/dist/cjs/locales/en/constants.js +5 -18
  16. package/dist/cjs/locales/en/constants.js.map +1 -1
  17. package/dist/cjs/locales/en/index.js +1 -1
  18. package/dist/cjs/locales/en/index.js.map +1 -1
  19. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +1 -1
  20. package/dist/cjs/locales/en/parsers/ENMonthNameParser.d.ts +1 -1
  21. package/dist/cjs/locales/en/parsers/ENTimeUnitAgoFormatParser.js +2 -2
  22. package/dist/cjs/locales/en/parsers/ENTimeUnitAgoFormatParser.js.map +1 -1
  23. package/dist/cjs/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.d.ts +2 -0
  24. package/dist/cjs/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js +6 -1
  25. package/dist/cjs/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js.map +1 -1
  26. package/dist/cjs/locales/en/parsers/ENTimeUnitLaterFormatParser.js +1 -1
  27. package/dist/cjs/locales/en/parsers/ENTimeUnitLaterFormatParser.js.map +1 -1
  28. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.d.ts +2 -0
  29. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js +10 -1
  30. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
  31. package/dist/cjs/locales/nl/parsers/NLMonthNameMiddleEndianParser.d.ts +1 -1
  32. package/dist/cjs/locales/ru/constants.js +4 -1
  33. package/dist/cjs/locales/ru/constants.js.map +1 -1
  34. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.d.ts +1 -1
  35. package/dist/cjs/locales/zh/hans/parsers/ZHHansDateParser.d.ts +1 -1
  36. package/dist/cjs/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.d.ts +1 -1
  37. package/dist/cjs/locales/zh/hans/parsers/ZHHansTimeExpressionParser.d.ts +1 -1
  38. package/dist/cjs/locales/zh/hant/parsers/ZHHantDateParser.d.ts +1 -1
  39. package/dist/cjs/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.d.ts +1 -1
  40. package/dist/cjs/locales/zh/hant/parsers/ZHHantTimeExpressionParser.d.ts +1 -1
  41. package/dist/cjs/package.json +1 -1
  42. package/dist/cjs/results.d.ts +1 -1
  43. package/dist/cjs/results.js +3 -3
  44. package/dist/cjs/results.js.map +1 -1
  45. package/dist/cjs/timezone.d.ts +5 -194
  46. package/dist/cjs/timezone.js +80 -7
  47. package/dist/cjs/timezone.js.map +1 -1
  48. package/dist/esm/common/refiners/AbstractMergeDateRangeRefiner.js +15 -7
  49. package/dist/esm/common/refiners/AbstractMergeDateRangeRefiner.js.map +1 -1
  50. package/dist/esm/common/refiners/ExtractTimezoneAbbrRefiner.d.ts +3 -4
  51. package/dist/esm/common/refiners/ExtractTimezoneAbbrRefiner.js +6 -196
  52. package/dist/esm/common/refiners/ExtractTimezoneAbbrRefiner.js.map +1 -1
  53. package/dist/esm/common/refiners/ForwardDateRefiner.js +14 -14
  54. package/dist/esm/common/refiners/ForwardDateRefiner.js.map +1 -1
  55. package/dist/esm/configurations.js +1 -1
  56. package/dist/esm/configurations.js.map +1 -1
  57. package/dist/esm/index.d.ts +26 -4
  58. package/dist/esm/index.js +15 -0
  59. package/dist/esm/index.js.map +1 -1
  60. package/dist/esm/locales/en/constants.d.ts +4 -0
  61. package/dist/esm/locales/en/constants.js +21 -0
  62. package/dist/esm/locales/en/constants.js.map +1 -1
  63. package/dist/esm/locales/en/index.js +1 -1
  64. package/dist/esm/locales/en/index.js.map +1 -1
  65. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +1 -1
  66. package/dist/esm/locales/en/parsers/ENMonthNameParser.d.ts +1 -1
  67. package/dist/esm/locales/en/parsers/ENTimeUnitAgoFormatParser.js +3 -3
  68. package/dist/esm/locales/en/parsers/ENTimeUnitAgoFormatParser.js.map +1 -1
  69. package/dist/esm/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.d.ts +2 -0
  70. package/dist/esm/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js +7 -2
  71. package/dist/esm/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js.map +1 -1
  72. package/dist/esm/locales/en/parsers/ENTimeUnitLaterFormatParser.js +2 -2
  73. package/dist/esm/locales/en/parsers/ENTimeUnitLaterFormatParser.js.map +1 -1
  74. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.d.ts +2 -0
  75. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js +11 -2
  76. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
  77. package/dist/esm/locales/nl/parsers/NLMonthNameMiddleEndianParser.d.ts +1 -1
  78. package/dist/esm/locales/ru/constants.js +4 -1
  79. package/dist/esm/locales/ru/constants.js.map +1 -1
  80. package/dist/esm/locales/ru/parsers/RUMonthNameParser.d.ts +1 -1
  81. package/dist/esm/locales/zh/hans/parsers/ZHHansDateParser.d.ts +1 -1
  82. package/dist/esm/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.d.ts +1 -1
  83. package/dist/esm/locales/zh/hans/parsers/ZHHansTimeExpressionParser.d.ts +1 -1
  84. package/dist/esm/locales/zh/hant/parsers/ZHHantDateParser.d.ts +1 -1
  85. package/dist/esm/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.d.ts +1 -1
  86. package/dist/esm/locales/zh/hant/parsers/ZHHantTimeExpressionParser.d.ts +1 -1
  87. package/dist/esm/package.json +1 -1
  88. package/dist/esm/results.d.ts +1 -1
  89. package/dist/esm/results.js +3 -3
  90. package/dist/esm/results.js.map +1 -1
  91. package/dist/esm/timezone.d.ts +5 -194
  92. package/dist/esm/timezone.js +74 -6
  93. package/dist/esm/timezone.js.map +1 -1
  94. package/package.json +6 -7
  95. package/src/common/refiners/AbstractMergeDateRangeRefiner.ts +13 -8
  96. package/src/common/refiners/ExtractTimezoneAbbrRefiner.ts +7 -201
  97. package/src/common/refiners/ForwardDateRefiner.ts +18 -16
  98. package/src/configurations.ts +3 -1
  99. package/src/index.ts +48 -3
  100. package/src/locales/en/constants.ts +30 -0
  101. package/src/locales/en/index.ts +1 -1
  102. package/src/locales/en/parsers/ENTimeUnitAgoFormatParser.ts +3 -3
  103. package/src/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.ts +10 -2
  104. package/src/locales/en/parsers/ENTimeUnitLaterFormatParser.ts +5 -2
  105. package/src/locales/en/parsers/ENTimeUnitWithinFormatParser.ts +16 -3
  106. package/src/locales/ru/constants.ts +4 -1
  107. package/src/results.ts +3 -3
  108. package/src/timezone.ts +124 -7
  109. package/test/de/de_time_exp.test.ts +7 -7
  110. package/test/en/en_month.test.ts +70 -0
  111. package/test/en/en_time_units_ago.test.ts +12 -0
  112. package/test/en/en_time_units_casual_relative.test.ts +18 -0
  113. package/test/en/en_time_units_later.test.ts +13 -10
  114. package/test/en/en_time_units_within.test.ts +12 -1
  115. package/test/en/en_timezone_exp.test.ts +142 -0
  116. package/test/en/en_weekday.test.ts +26 -0
  117. package/test/en/negative_cases.test.ts +2 -0
  118. package/test/fr/fr_time_exp.test.ts +2 -2
  119. package/test/system.test.ts +23 -1
@@ -1,194 +1,5 @@
1
- export declare const TIMEZONE_ABBR_MAP: {
2
- ACDT: number;
3
- ACST: number;
4
- ADT: number;
5
- AEDT: number;
6
- AEST: number;
7
- AFT: number;
8
- AKDT: number;
9
- AKST: number;
10
- ALMT: number;
11
- AMST: number;
12
- AMT: number;
13
- ANAST: number;
14
- ANAT: number;
15
- AQTT: number;
16
- ART: number;
17
- AST: number;
18
- AWDT: number;
19
- AWST: number;
20
- AZOST: number;
21
- AZOT: number;
22
- AZST: number;
23
- AZT: number;
24
- BNT: number;
25
- BOT: number;
26
- BRST: number;
27
- BRT: number;
28
- BST: number;
29
- BTT: number;
30
- CAST: number;
31
- CAT: number;
32
- CCT: number;
33
- CDT: number;
34
- CEST: number;
35
- CET: number;
36
- CHADT: number;
37
- CHAST: number;
38
- CKT: number;
39
- CLST: number;
40
- CLT: number;
41
- COT: number;
42
- CST: number;
43
- CVT: number;
44
- CXT: number;
45
- ChST: number;
46
- DAVT: number;
47
- EASST: number;
48
- EAST: number;
49
- EAT: number;
50
- ECT: number;
51
- EDT: number;
52
- EEST: number;
53
- EET: number;
54
- EGST: number;
55
- EGT: number;
56
- EST: number;
57
- ET: number;
58
- FJST: number;
59
- FJT: number;
60
- FKST: number;
61
- FKT: number;
62
- FNT: number;
63
- GALT: number;
64
- GAMT: number;
65
- GET: number;
66
- GFT: number;
67
- GILT: number;
68
- GMT: number;
69
- GST: number;
70
- GYT: number;
71
- HAA: number;
72
- HAC: number;
73
- HADT: number;
74
- HAE: number;
75
- HAP: number;
76
- HAR: number;
77
- HAST: number;
78
- HAT: number;
79
- HAY: number;
80
- HKT: number;
81
- HLV: number;
82
- HNA: number;
83
- HNC: number;
84
- HNE: number;
85
- HNP: number;
86
- HNR: number;
87
- HNT: number;
88
- HNY: number;
89
- HOVT: number;
90
- ICT: number;
91
- IDT: number;
92
- IOT: number;
93
- IRDT: number;
94
- IRKST: number;
95
- IRKT: number;
96
- IRST: number;
97
- IST: number;
98
- JST: number;
99
- KGT: number;
100
- KRAST: number;
101
- KRAT: number;
102
- KST: number;
103
- KUYT: number;
104
- LHDT: number;
105
- LHST: number;
106
- LINT: number;
107
- MAGST: number;
108
- MAGT: number;
109
- MART: number;
110
- MAWT: number;
111
- MDT: number;
112
- MESZ: number;
113
- MEZ: number;
114
- MHT: number;
115
- MMT: number;
116
- MSD: number;
117
- MSK: number;
118
- MST: number;
119
- MUT: number;
120
- MVT: number;
121
- MYT: number;
122
- NCT: number;
123
- NDT: number;
124
- NFT: number;
125
- NOVST: number;
126
- NOVT: number;
127
- NPT: number;
128
- NST: number;
129
- NUT: number;
130
- NZDT: number;
131
- NZST: number;
132
- OMSST: number;
133
- OMST: number;
134
- PDT: number;
135
- PET: number;
136
- PETST: number;
137
- PETT: number;
138
- PGT: number;
139
- PHOT: number;
140
- PHT: number;
141
- PKT: number;
142
- PMDT: number;
143
- PMST: number;
144
- PONT: number;
145
- PST: number;
146
- PT: number;
147
- PWT: number;
148
- PYST: number;
149
- PYT: number;
150
- RET: number;
151
- SAMT: number;
152
- SAST: number;
153
- SBT: number;
154
- SCT: number;
155
- SGT: number;
156
- SRT: number;
157
- SST: number;
158
- TAHT: number;
159
- TFT: number;
160
- TJT: number;
161
- TKT: number;
162
- TLT: number;
163
- TMT: number;
164
- TVT: number;
165
- ULAT: number;
166
- UTC: number;
167
- UYST: number;
168
- UYT: number;
169
- UZT: number;
170
- VET: number;
171
- VLAST: number;
172
- VLAT: number;
173
- VUT: number;
174
- WAST: number;
175
- WAT: number;
176
- WEST: number;
177
- WESZ: number;
178
- WET: number;
179
- WEZ: number;
180
- WFT: number;
181
- WGST: number;
182
- WGT: number;
183
- WIB: number;
184
- WIT: number;
185
- WITA: number;
186
- WST: number;
187
- WT: number;
188
- YAKST: number;
189
- YAKT: number;
190
- YAPT: number;
191
- YEKST: number;
192
- YEKT: number;
193
- };
194
- export declare function toTimezoneOffset(timezoneInput?: string | number): number | null;
1
+ import { TimezoneAbbrMap, Weekday, Month } from "./index.js";
2
+ export declare const TIMEZONE_ABBR_MAP: TimezoneAbbrMap;
3
+ export declare function getNthWeekdayOfMonth(year: number, month: Month, weekday: Weekday, n: 1 | 2 | 3 | 4, hour?: number): Date;
4
+ export declare function getLastWeekdayOfMonth(year: number, month: Month, weekday: Weekday, hour?: number): Date;
5
+ export declare function toTimezoneOffset(timezoneInput?: string | number, date?: Date, timezoneOverrides?: TimezoneAbbrMap): number | null;
@@ -1,3 +1,5 @@
1
+ import dayjs from "dayjs";
2
+ import { Weekday, Month } from "./index.js";
1
3
  export const TIMEZONE_ABBR_MAP = {
2
4
  ACDT: 630,
3
5
  ACST: 570,
@@ -32,7 +34,12 @@ export const TIMEZONE_ABBR_MAP = {
32
34
  CCT: 390,
33
35
  CDT: -300,
34
36
  CEST: 120,
35
- CET: 60,
37
+ CET: {
38
+ timezoneOffsetDuringDst: 2 * 60,
39
+ timezoneOffsetNonDst: 60,
40
+ dstStart: (year) => getLastWeekdayOfMonth(year, Month.MARCH, Weekday.SUNDAY, 2),
41
+ dstEnd: (year) => getLastWeekdayOfMonth(year, Month.OCTOBER, Weekday.SUNDAY, 3),
42
+ },
36
43
  CHADT: 825,
37
44
  CHAST: 765,
38
45
  CKT: -600,
@@ -40,6 +47,12 @@ export const TIMEZONE_ABBR_MAP = {
40
47
  CLT: -240,
41
48
  COT: -300,
42
49
  CST: -360,
50
+ CT: {
51
+ timezoneOffsetDuringDst: -5 * 60,
52
+ timezoneOffsetNonDst: -6 * 60,
53
+ dstStart: (year) => getNthWeekdayOfMonth(year, Month.MARCH, Weekday.SUNDAY, 2, 2),
54
+ dstEnd: (year) => getNthWeekdayOfMonth(year, Month.NOVEMBER, Weekday.SUNDAY, 1, 2),
55
+ },
43
56
  CVT: -60,
44
57
  CXT: 420,
45
58
  ChST: 600,
@@ -54,7 +67,12 @@ export const TIMEZONE_ABBR_MAP = {
54
67
  EGST: 0,
55
68
  EGT: -60,
56
69
  EST: -300,
57
- ET: -300,
70
+ ET: {
71
+ timezoneOffsetDuringDst: -4 * 60,
72
+ timezoneOffsetNonDst: -5 * 60,
73
+ dstStart: (year) => getNthWeekdayOfMonth(year, Month.MARCH, Weekday.SUNDAY, 2, 2),
74
+ dstEnd: (year) => getNthWeekdayOfMonth(year, Month.NOVEMBER, Weekday.SUNDAY, 1, 2),
75
+ },
58
76
  FJST: 780,
59
77
  FJT: 720,
60
78
  FKST: -180,
@@ -116,6 +134,12 @@ export const TIMEZONE_ABBR_MAP = {
116
134
  MSD: 240,
117
135
  MSK: 180,
118
136
  MST: -420,
137
+ MT: {
138
+ timezoneOffsetDuringDst: -6 * 60,
139
+ timezoneOffsetNonDst: -7 * 60,
140
+ dstStart: (year) => getNthWeekdayOfMonth(year, Month.MARCH, Weekday.SUNDAY, 2, 2),
141
+ dstEnd: (year) => getNthWeekdayOfMonth(year, Month.NOVEMBER, Weekday.SUNDAY, 1, 2),
142
+ },
119
143
  MUT: 240,
120
144
  MVT: 300,
121
145
  MYT: 480,
@@ -143,7 +167,12 @@ export const TIMEZONE_ABBR_MAP = {
143
167
  PMST: -180,
144
168
  PONT: 660,
145
169
  PST: -480,
146
- PT: -480,
170
+ PT: {
171
+ timezoneOffsetDuringDst: -7 * 60,
172
+ timezoneOffsetNonDst: -8 * 60,
173
+ dstStart: (year) => getNthWeekdayOfMonth(year, Month.MARCH, Weekday.SUNDAY, 2, 2),
174
+ dstEnd: (year) => getNthWeekdayOfMonth(year, Month.NOVEMBER, Weekday.SUNDAY, 1, 2),
175
+ },
147
176
  PWT: 540,
148
177
  PYST: -180,
149
178
  PYT: -240,
@@ -191,13 +220,52 @@ export const TIMEZONE_ABBR_MAP = {
191
220
  YEKST: 360,
192
221
  YEKT: 360,
193
222
  };
194
- export function toTimezoneOffset(timezoneInput) {
195
- if (timezoneInput === null || timezoneInput === undefined) {
223
+ export function getNthWeekdayOfMonth(year, month, weekday, n, hour = 0) {
224
+ let dayOfMonth = 0;
225
+ let i = 0;
226
+ while (i < n) {
227
+ dayOfMonth++;
228
+ const date = new Date(year, month - 1, dayOfMonth);
229
+ if (date.getDay() === weekday)
230
+ i++;
231
+ }
232
+ return new Date(year, month - 1, dayOfMonth, hour);
233
+ }
234
+ export function getLastWeekdayOfMonth(year, month, weekday, hour = 0) {
235
+ const oneIndexedWeekday = weekday === 0 ? 7 : weekday;
236
+ const date = new Date(year, month - 1 + 1, 1, 12);
237
+ const firstWeekdayNextMonth = date.getDay() === 0 ? 7 : date.getDay();
238
+ let dayDiff;
239
+ if (firstWeekdayNextMonth === oneIndexedWeekday)
240
+ dayDiff = 7;
241
+ else if (firstWeekdayNextMonth < oneIndexedWeekday)
242
+ dayDiff = 7 + firstWeekdayNextMonth - oneIndexedWeekday;
243
+ else
244
+ dayDiff = firstWeekdayNextMonth - oneIndexedWeekday;
245
+ date.setDate(date.getDate() - dayDiff);
246
+ return new Date(year, month - 1, date.getDate(), hour);
247
+ }
248
+ export function toTimezoneOffset(timezoneInput, date, timezoneOverrides = {}) {
249
+ if (timezoneInput == null) {
196
250
  return null;
197
251
  }
198
252
  if (typeof timezoneInput === "number") {
199
253
  return timezoneInput;
200
254
  }
201
- return TIMEZONE_ABBR_MAP[timezoneInput] ?? null;
255
+ const matchedTimezone = timezoneOverrides[timezoneInput] ?? TIMEZONE_ABBR_MAP[timezoneInput];
256
+ if (matchedTimezone == null) {
257
+ return null;
258
+ }
259
+ if (typeof matchedTimezone == "number") {
260
+ return matchedTimezone;
261
+ }
262
+ if (date == null) {
263
+ return null;
264
+ }
265
+ if (dayjs(date).isAfter(matchedTimezone.dstStart(date.getFullYear())) &&
266
+ !dayjs(date).isAfter(matchedTimezone.dstEnd(date.getFullYear()))) {
267
+ return matchedTimezone.timezoneOffsetDuringDst;
268
+ }
269
+ return matchedTimezone.timezoneOffsetNonDst;
202
270
  }
203
271
  //# sourceMappingURL=timezone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timezone.js","sourceRoot":"","sources":["../../src/timezone.ts"],"names":[],"mappings":"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CV,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,CAAC,GAAG;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,CAAC,GAAG;IACT,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,EAAE;IACR,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,CAAC,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,CAAC,GAAG;IACT,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,CAAC,GAAG;IACV,IAAI,EAAE,CAAC,GAAG;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,CAAC,GAAG;IACT,EAAE,EAAE,CAAC,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,CAAC,GAAG;IACV,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,CAAC,GAAG;IACT,IAAI,EAAE,CAAC,GAAG;IACV,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC,GAAG;IACV,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,GAAG;IACT,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,CAAC,GAAG;IACV,GAAG,EAAE,CAAC,GAAG;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,EAAE,EAAE,CAAC;IACL,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,aAA+B;IAC5D,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;QACvD,OAAO,IAAI,CAAC;KACf;IAED,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACnC,OAAO,aAAa,CAAC;KACxB;IAED,OAAO,iBAAiB,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"timezone.js","sourceRoot":"","sources":["../../src/timezone.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "preset": "ts-jest"
16
16
  },
17
17
  "license": "MIT",
18
- "version": "2.6.1",
18
+ "version": "2.6.3",
19
19
  "directories": {
20
20
  "source": "./src",
21
21
  "test": "./test"
@@ -43,12 +43,12 @@
43
43
  "husky": "^4.2.5",
44
44
  "jest": "^26.1.0",
45
45
  "prettier": "^2.0.5",
46
+ "rimraf": "^3.0.2",
46
47
  "run-script-os": "^1.1.6",
47
48
  "ts-jest": "^26.1.1",
48
49
  "tsc-esm-fix": "^2.12.4",
49
50
  "typedoc": "^0.20.36",
50
- "typescript": "~4.2.4",
51
- "rimraf": "^3.0.2"
51
+ "typescript": "~4.2.4"
52
52
  },
53
53
  "husky": {
54
54
  "hooks": {
@@ -60,8 +60,8 @@
60
60
  "build-cjs": "tsc -p tsconfig.build.json",
61
61
  "build-esm": "tsc -p tsconfig.build.esm.json && tsc-esm-fix --target=dist/esm",
62
62
  "add-package.json": "run-script-os",
63
- "add-package.json:nix": "echo '{\"type\":\"commonjs\",\"sideEffects\":\"false\"}' > dist/cjs/package.json && echo '{\"type\":\"module\",\"sideEffects\":\"false\"}' > dist/esm/package.json",
64
- "add-package.json:windows": "echo {\"type\":\"commonjs\",\"sideEffects\":\"false\"} > dist/cjs/package.json && echo {\"type\":\"module\",\"sideEffects\":\"false\"} > dist/esm/package.json",
63
+ "add-package.json:nix": "echo '{\"type\":\"commonjs\",\"sideEffects\":false}' > dist/cjs/package.json && echo '{\"type\":\"module\",\"sideEffects\":false}' > dist/esm/package.json",
64
+ "add-package.json:windows": "echo {\"type\":\"commonjs\",\"sideEffects\":false} > dist/cjs/package.json && echo {\"type\":\"module\",\"sideEffects\":false} > dist/esm/package.json",
65
65
  "benchmark": "npm run build && node ./benchmark/benchmark.js",
66
66
  "document": "typedoc",
67
67
  "prepare": "npm run build",
@@ -71,8 +71,7 @@
71
71
  "prettier:test": "prettier --write test --loglevel=warn",
72
72
  "watch": "jest --watch",
73
73
  "test": "jest --coverage",
74
- "test:silent": "jest --silent",
75
- "coveralls": "npm run test && cat coverage/lcov.info | coveralls"
74
+ "test:silent": "jest --silent"
76
75
  },
77
76
  "dependencies": {
78
77
  "dayjs": "^1.10.0"
@@ -16,13 +16,13 @@ export default abstract class AbstractMergeDateRangeRefiner extends MergingRefin
16
16
  if (!fromResult.start.isOnlyWeekdayComponent() && !toResult.start.isOnlyWeekdayComponent()) {
17
17
  toResult.start.getCertainComponents().forEach((key) => {
18
18
  if (!fromResult.start.isCertain(key)) {
19
- fromResult.start.assign(key, toResult.start.get(key));
19
+ fromResult.start.imply(key, toResult.start.get(key));
20
20
  }
21
21
  });
22
22
 
23
23
  fromResult.start.getCertainComponents().forEach((key) => {
24
24
  if (!toResult.start.isCertain(key)) {
25
- toResult.start.assign(key, fromResult.start.get(key));
25
+ toResult.start.imply(key, fromResult.start.get(key));
26
26
  }
27
27
  });
28
28
  }
@@ -30,17 +30,22 @@ export default abstract class AbstractMergeDateRangeRefiner extends MergingRefin
30
30
  if (fromResult.start.date().getTime() > toResult.start.date().getTime()) {
31
31
  let fromMoment = fromResult.start.dayjs();
32
32
  let toMoment = toResult.start.dayjs();
33
-
34
- if (fromResult.start.isOnlyWeekdayComponent() && fromMoment.add(-7, "days").isBefore(toMoment)) {
33
+ if (toResult.start.isOnlyWeekdayComponent() && toMoment.add(7, "days").isAfter(fromMoment)) {
34
+ toMoment = toMoment.add(7, "days");
35
+ toResult.start.imply("day", toMoment.date());
36
+ toResult.start.imply("month", toMoment.month() + 1);
37
+ toResult.start.imply("year", toMoment.year());
38
+ } else if (fromResult.start.isOnlyWeekdayComponent() && fromMoment.add(-7, "days").isBefore(toMoment)) {
35
39
  fromMoment = fromMoment.add(-7, "days");
36
40
  fromResult.start.imply("day", fromMoment.date());
37
41
  fromResult.start.imply("month", fromMoment.month() + 1);
38
42
  fromResult.start.imply("year", fromMoment.year());
39
- } else if (toResult.start.isOnlyWeekdayComponent() && toMoment.add(7, "days").isAfter(fromMoment)) {
40
- toMoment = toMoment.add(7, "days");
41
- toResult.start.imply("day", toMoment.date());
42
- toResult.start.imply("month", toMoment.month() + 1);
43
+ } else if (toResult.start.isDateWithUnknownYear() && toMoment.add(1, "years").isAfter(fromMoment)) {
44
+ toMoment = toMoment.add(1, "years");
43
45
  toResult.start.imply("year", toMoment.year());
46
+ } else if (fromResult.start.isDateWithUnknownYear() && fromMoment.add(-1, "years").isBefore(toMoment)) {
47
+ fromMoment = fromMoment.add(-1, "years");
48
+ fromResult.start.imply("year", fromMoment.year());
44
49
  } else {
45
50
  [toResult, fromResult] = [fromResult, toResult];
46
51
  }
@@ -1,208 +1,13 @@
1
1
  // Map ABBR -> Offset in minute
2
2
  import { ParsingContext, Refiner } from "../../chrono";
3
+ import { TimezoneAbbrMap } from "../../index";
3
4
  import { ParsingResult } from "../../results";
5
+ import { toTimezoneOffset } from "../../timezone";
4
6
 
5
7
  const TIMEZONE_NAME_PATTERN = new RegExp("^\\s*,?\\s*\\(?([A-Z]{2,4})\\)?(?=\\W|$)", "i");
6
- const DEFAULT_TIMEZONE_ABBR_MAP = {
7
- ACDT: 630,
8
- ACST: 570,
9
- ADT: -180,
10
- AEDT: 660,
11
- AEST: 600,
12
- AFT: 270,
13
- AKDT: -480,
14
- AKST: -540,
15
- ALMT: 360,
16
- AMST: -180,
17
- AMT: -240,
18
- ANAST: 720,
19
- ANAT: 720,
20
- AQTT: 300,
21
- ART: -180,
22
- AST: -240,
23
- AWDT: 540,
24
- AWST: 480,
25
- AZOST: 0,
26
- AZOT: -60,
27
- AZST: 300,
28
- AZT: 240,
29
- BNT: 480,
30
- BOT: -240,
31
- BRST: -120,
32
- BRT: -180,
33
- BST: 60,
34
- BTT: 360,
35
- CAST: 480,
36
- CAT: 120,
37
- CCT: 390,
38
- CDT: -300,
39
- CEST: 120,
40
- CET: 60,
41
- CHADT: 825,
42
- CHAST: 765,
43
- CKT: -600,
44
- CLST: -180,
45
- CLT: -240,
46
- COT: -300,
47
- CST: -360,
48
- CVT: -60,
49
- CXT: 420,
50
- ChST: 600,
51
- DAVT: 420,
52
- EASST: -300,
53
- EAST: -360,
54
- EAT: 180,
55
- ECT: -300,
56
- EDT: -240,
57
- EEST: 180,
58
- EET: 120,
59
- EGST: 0,
60
- EGT: -60,
61
- EST: -300,
62
- ET: -300,
63
- FJST: 780,
64
- FJT: 720,
65
- FKST: -180,
66
- FKT: -240,
67
- FNT: -120,
68
- GALT: -360,
69
- GAMT: -540,
70
- GET: 240,
71
- GFT: -180,
72
- GILT: 720,
73
- GMT: 0,
74
- GST: 240,
75
- GYT: -240,
76
- HAA: -180,
77
- HAC: -300,
78
- HADT: -540,
79
- HAE: -240,
80
- HAP: -420,
81
- HAR: -360,
82
- HAST: -600,
83
- HAT: -90,
84
- HAY: -480,
85
- HKT: 480,
86
- HLV: -210,
87
- HNA: -240,
88
- HNC: -360,
89
- HNE: -300,
90
- HNP: -480,
91
- HNR: -420,
92
- HNT: -150,
93
- HNY: -540,
94
- HOVT: 420,
95
- ICT: 420,
96
- IDT: 180,
97
- IOT: 360,
98
- IRDT: 270,
99
- IRKST: 540,
100
- IRKT: 540,
101
- IRST: 210,
102
- IST: 330,
103
- JST: 540,
104
- KGT: 360,
105
- KRAST: 480,
106
- KRAT: 480,
107
- KST: 540,
108
- KUYT: 240,
109
- LHDT: 660,
110
- LHST: 630,
111
- LINT: 840,
112
- MAGST: 720,
113
- MAGT: 720,
114
- MART: -510,
115
- MAWT: 300,
116
- MDT: -360,
117
- MESZ: 120,
118
- MEZ: 60,
119
- MHT: 720,
120
- MMT: 390,
121
- MSD: 240,
122
- MSK: 240,
123
- MST: -420,
124
- MUT: 240,
125
- MVT: 300,
126
- MYT: 480,
127
- NCT: 660,
128
- NDT: -90,
129
- NFT: 690,
130
- NOVST: 420,
131
- NOVT: 360,
132
- NPT: 345,
133
- NST: -150,
134
- NUT: -660,
135
- NZDT: 780,
136
- NZST: 720,
137
- OMSST: 420,
138
- OMST: 420,
139
- PDT: -420,
140
- PET: -300,
141
- PETST: 720,
142
- PETT: 720,
143
- PGT: 600,
144
- PHOT: 780,
145
- PHT: 480,
146
- PKT: 300,
147
- PMDT: -120,
148
- PMST: -180,
149
- PONT: 660,
150
- PST: -480,
151
- PT: -480,
152
- PWT: 540,
153
- PYST: -180,
154
- PYT: -240,
155
- RET: 240,
156
- SAMT: 240,
157
- SAST: 120,
158
- SBT: 660,
159
- SCT: 240,
160
- SGT: 480,
161
- SRT: -180,
162
- SST: -660,
163
- TAHT: -600,
164
- TFT: 300,
165
- TJT: 300,
166
- TKT: 780,
167
- TLT: 540,
168
- TMT: 300,
169
- TVT: 720,
170
- ULAT: 480,
171
- UTC: 0,
172
- UYST: -120,
173
- UYT: -180,
174
- UZT: 300,
175
- VET: -210,
176
- VLAST: 660,
177
- VLAT: 660,
178
- VUT: 660,
179
- WAST: 120,
180
- WAT: 60,
181
- WEST: 60,
182
- WESZ: 60,
183
- WET: 0,
184
- WEZ: 0,
185
- WFT: 720,
186
- WGST: -120,
187
- WGT: -180,
188
- WIB: 420,
189
- WIT: 540,
190
- WITA: 480,
191
- WST: 780,
192
- WT: 0,
193
- YAKST: 600,
194
- YAKT: 600,
195
- YAPT: 600,
196
- YEKST: 360,
197
- YEKT: 360,
198
- };
199
8
 
200
9
  export default class ExtractTimezoneAbbrRefiner implements Refiner {
201
- private readonly timezone: { string: number };
202
-
203
- constructor(timezoneOverrides?: { string: number }) {
204
- this.timezone = { ...DEFAULT_TIMEZONE_ABBR_MAP, ...timezoneOverrides };
205
- }
10
+ constructor(private readonly timezoneOverrides?: TimezoneAbbrMap) {}
206
11
 
207
12
  refine(context: ParsingContext, results: ParsingResult[]): ParsingResult[] {
208
13
  const timezoneOverrides = context.option.timezones ?? {};
@@ -215,11 +20,12 @@ export default class ExtractTimezoneAbbrRefiner implements Refiner {
215
20
  }
216
21
 
217
22
  const timezoneAbbr = match[1].toUpperCase();
218
- const extractedTimezoneOffset = timezoneOverrides[timezoneAbbr] ?? this.timezone[timezoneAbbr] ?? null;
219
- if (extractedTimezoneOffset === null) {
23
+ const refDate = result.start.date() ?? result.refDate ?? new Date();
24
+ const tzOverrides = { ...this.timezoneOverrides, ...timezoneOverrides };
25
+ const extractedTimezoneOffset = toTimezoneOffset(timezoneAbbr, refDate, tzOverrides);
26
+ if (extractedTimezoneOffset == null) {
220
27
  return;
221
28
  }
222
-
223
29
  context.debug(() => {
224
30
  console.log(
225
31
  `Extracting timezone: '${timezoneAbbr}' into: ${extractedTimezoneOffset} for: ${result.start}`