@js-joda/timezone 3.0.0 → 3.1.1

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 (42) hide show
  1. package/README.md +26 -8
  2. package/dist/js-joda-timezone-10-year-range.esm.js +214 -150
  3. package/dist/js-joda-timezone-10-year-range.esm.js.map +1 -1
  4. package/dist/js-joda-timezone-10-year-range.js +213 -149
  5. package/dist/js-joda-timezone-10-year-range.js.map +1 -1
  6. package/dist/js-joda-timezone-10-year-range.min.js +2 -2
  7. package/dist/js-joda-timezone-300-year-range.esm.js +445 -381
  8. package/dist/js-joda-timezone-300-year-range.esm.js.map +1 -1
  9. package/dist/js-joda-timezone-300-year-range.js +444 -380
  10. package/dist/js-joda-timezone-300-year-range.js.map +1 -1
  11. package/dist/js-joda-timezone-300-year-range.min.js +2 -2
  12. package/dist/js-joda-timezone-4-year-range.esm.js +201 -137
  13. package/dist/js-joda-timezone-4-year-range.esm.js.map +1 -1
  14. package/dist/js-joda-timezone-4-year-range.js +200 -136
  15. package/dist/js-joda-timezone-4-year-range.js.map +1 -1
  16. package/dist/js-joda-timezone-4-year-range.min.js +2 -2
  17. package/dist/js-joda-timezone-60-year-range.esm.js +330 -266
  18. package/dist/js-joda-timezone-60-year-range.esm.js.map +1 -1
  19. package/dist/js-joda-timezone-60-year-range.js +329 -265
  20. package/dist/js-joda-timezone-60-year-range.js.map +1 -1
  21. package/dist/js-joda-timezone-60-year-range.min.js +2 -2
  22. package/dist/js-joda-timezone-empty.esm.js +100 -36
  23. package/dist/js-joda-timezone-empty.esm.js.map +1 -1
  24. package/dist/js-joda-timezone-empty.js +99 -35
  25. package/dist/js-joda-timezone-empty.js.map +1 -1
  26. package/dist/js-joda-timezone-empty.min.js +2 -2
  27. package/dist/js-joda-timezone-lifetime-range.esm.js +441 -377
  28. package/dist/js-joda-timezone-lifetime-range.esm.js.map +1 -1
  29. package/dist/js-joda-timezone-lifetime-range.js +440 -376
  30. package/dist/js-joda-timezone-lifetime-range.js.map +1 -1
  31. package/dist/js-joda-timezone-lifetime-range.min.js +2 -2
  32. package/dist/js-joda-timezone.esm.js +445 -381
  33. package/dist/js-joda-timezone.esm.js.map +1 -1
  34. package/dist/js-joda-timezone.js +444 -380
  35. package/dist/js-joda-timezone.js.map +1 -1
  36. package/dist/js-joda-timezone.min.js +2 -2
  37. package/package.json +3 -3
  38. package/src/{MomentZoneRules.js → TzdbZoneRules.js} +116 -46
  39. package/src/{MomentZoneRulesProvider.js → TzdbZoneRulesProvider.js} +3 -3
  40. package/src/js-joda-timezone.js +2 -2
  41. package/src/plug.js +5 -5
  42. package/src/unpack.js +15 -3
package/README.md CHANGED
@@ -83,12 +83,12 @@ The years below are for the data generated in 2026; the sizes are of the minifie
83
83
 
84
84
  | Bundle | Covers | Years (2026 data) | Size (min / gzip) |
85
85
  |---|---|---|---|
86
- | `js-joda-timezone` | all years | all | 708 KB / 35 KB |
87
- | `js-joda-timezone-300-year-range` | ± 150 years | 1876 to 2176 | 331 KB / 29 KB |
88
- | `js-joda-timezone-lifetime-range` | - 120 / + 15 years | 1906 to 2041 | 170 KB / 24 KB |
89
- | `js-joda-timezone-60-year-range` | ± 30 years | 1996 to 2056 | 83 KB / 12 KB |
90
- | `js-joda-timezone-10-year-range` | ± 5 years | 2021 to 2031 | 30 KB / 8 KB |
91
- | `js-joda-timezone-4-year-range` | ± 2 years | 2024 to 2028 | 27 KB / 8 KB |
86
+ | `js-joda-timezone` | all years | all | 715 KB / 37 KB |
87
+ | `js-joda-timezone-300-year-range` | ± 150 years | 1876 to 2176 | 339 KB / 31 KB |
88
+ | `js-joda-timezone-lifetime-range` | - 120 / + 15 years | 1906 to 2041 | 177 KB / 25 KB |
89
+ | `js-joda-timezone-60-year-range` | ± 30 years | 1996 to 2056 | 87 KB / 13 KB |
90
+ | `js-joda-timezone-10-year-range` | ± 5 years | 2021 to 2031 | 32 KB / 9 KB |
91
+ | `js-joda-timezone-4-year-range` | ± 2 years | 2024 to 2028 | 29 KB / 8 KB |
92
92
 
93
93
  The `-lifetime-range` bundle covers the birth dates of all living people plus 15 years ahead, e.g. for websites that
94
94
  handle birth dates. Note that a birth date stored as a `LocalDate` needs no time zone data at all; the bundle is only
@@ -118,8 +118,26 @@ use the `-lifetime-range` or `-300-year-range` bundle (with the 2026 data, both
118
118
 
119
119
  ## Implementation details
120
120
 
121
- * This ZoneRulesProvider implemantion supplies all functionality that is required by the js-joda package.
122
- * Additional [ZoneRules](https://js-joda.github.io/js-joda/esdoc/class/src/zone/ZoneRules.js~ZoneRules.html) functionality like [transitions(), etc.](https://github.com/js-joda/js-joda-timezone/blob/5288c41433133c248f66c271be59878356db9ea8/test/MomentZoneRulesTest.js#L310-L322) is not implemented.
121
+ * This ZoneRulesProvider implementation supplies all functionality that is required by the js-joda package.
122
+ * The [ZoneRules](https://js-joda.github.io/js-joda/esdoc/class/src/zone/ZoneRules.js~ZoneRules.html) of a zone also
123
+ answer `standardOffset()`, `daylightSavings()`, `isDaylightSavings()`, `nextTransition()` and
124
+ `previousTransition()` with the same results as java.time. The data uses the rearguard tzdb format, as
125
+ ThreeTen-Backport does, so daylight saving is never negative:
126
+
127
+ const rules = ZoneId.of('Europe/Berlin').rules();
128
+ const summer = Instant.parse('2026-07-01T00:00:00Z');
129
+ rules.standardOffset(summer).toString(); // '+01:00'
130
+ rules.daylightSavings(summer).toString(); // 'PT1H'
131
+ rules.isDaylightSavings(summer); // true
132
+ rules.nextTransition(summer).toString(); // 'Transition[Overlap at 2026-10-25T03:00+02:00 to +01:00]'
133
+
134
+ * `transitions()` and `transitionRules()` are not implemented and throw. In java.time they return the historic
135
+ transitions and the recurring rules for the later years; the data of this package has explicit transitions
136
+ through 2499 instead. Iterate with `nextTransition()` or `previousTransition()`.
137
+ * A reduced bundle answers these methods correctly only inside its range, like the offsets.
138
+ * `standardOffset()`, `daylightSavings()` and `isDaylightSavings()` need tz data with standard offsets, which the
139
+ bundled data has. With older or custom data loaded with `ZoneRulesProvider.loadTzdbData()`, for example the
140
+ versioned files `data/packed/2026d.json` and older, they throw; offsets and transitions still work.
123
141
 
124
142
  ## License
125
143
 
@@ -1,125 +1,125 @@
1
- //! @version @js-joda/timezone - 3.0.0-2026e-10-year-range
1
+ //! @version @js-joda/timezone - 3.1.1-2026e-10-year-range
2
2
  //! @copyright (c) 2015-present, Philipp Thürwächter, Pattrick Hüper & js-joda contributors
3
3
  //! @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
4
4
  //! @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
5
5
 
6
- import { ZoneOffset, ZoneOffsetTransition, ZoneRules, LocalDateTime, Instant, DateTimeException, ZoneRulesProvider, use } from '@js-joda/core';
6
+ import { ZoneOffset, ZoneOffsetTransition, Duration, Instant, LocalDateTime, ZoneRules, DateTimeException, ZoneRulesProvider, use } from '@js-joda/core';
7
7
 
8
8
  var version = "2026e";
9
9
  var zones$1 = [
10
- "Africa/Abidjan|GMT|0|0|||0",
11
- "Africa/Algiers|CET|-10|0|||0",
12
- "Africa/Cairo|EET EEST|-20 -30|0101010101010101010|29NW0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0||01",
13
- "Africa/Casablanca|+01 +00|-10 0|01010101010101|24Pe0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 1cL0||10",
14
- "Africa/Ceuta|CET CEST|-10 -20|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
15
- "Africa/Johannesburg|SAST|-20|0|||0",
16
- "Africa/Juba|EAT CAT|-30 -20|01|24nx0||00",
17
- "Africa/Khartoum|CAT|-20|0|||0",
18
- "Africa/Lagos|WAT|-10|0|||0",
19
- "Africa/Nairobi|EAT|-30|0|||0",
20
- "Africa/Tripoli|EET|-20|0|||0",
21
- "America/Adak|HST HDT|a0 90|01010101010101010101010|24Ec0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
22
- "America/Anchorage|AKST AKDT|90 80|01010101010101010101010|24Eb0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
23
- "America/Araguaina|-03|30|0|||0",
24
- "America/Asuncion|-03 -04 -03|30 40 30|0101010102|24JD0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 3z0||100",
25
- "America/Bahia_Banderas|CST CDT|60 50|01010|24Mw0 1nX0 11B0 1nX0||01",
26
- "America/Barbados|AST|40|0|||0",
27
- "America/Belize|CST|60|0|||0",
28
- "America/Boa_Vista|-04|40|0|||0",
29
- "America/Bogota|-05|50|0|||0",
30
- "America/Boise|MST MDT|70 60|01010101010101010101010|24E90 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
31
- "America/Cancun|EST|50|0|||0",
32
- "America/Chicago|CST CDT|60 50|01010101010101010101010|24E80 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
33
- "America/Chihuahua|MST MDT CST|70 60 60|01012|24Mx0 1nX0 11B0 1nX0||010",
34
- "America/Ciudad_Juarez|MST MDT CST|70 60 60|010120101010101010101010|24E90 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010",
35
- "America/Coyhaique|-03 -04 -03|30 40 30|0101010102|24Mr0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1hb0||100",
36
- "America/Dawson|MST|70|0|||0",
37
- "America/Detroit|EST EDT|50 40|01010101010101010101010|24E70 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
38
- "America/Edmonton|MST MDT CST|70 60 60|0101010101012|24E90 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010",
39
- "America/Glace_Bay|AST ADT|40 30|01010101010101010101010|24E60 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
40
- "America/Havana|CST CDT|50 40|01010101010101010101010|24E50 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0||01",
41
- "America/Los_Angeles|PST PDT|80 70|01010101010101010101010|24Ea0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
42
- "America/Mazatlan|MST MDT|70 60|01010|24Mx0 1nX0 11B0 1nX0||01",
43
- "America/Miquelon|-03 -02|30 20|01010101010101010101010|24E50 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
44
- "America/Noronha|-02|20|0|||0",
45
- "America/Nuuk|-03 -02 -02 -01|30 20 20 10|0101023232323232323232|24JB0 1qM0 WM0 1qM0 WM0 2so0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||0101",
46
- "America/Ojinaga|MST MDT CST CDT|70 60 60 50|01012323232323232323232|24E90 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||0101",
47
- "America/Santiago|-03 -04|30 40|01010101010101010101010|24Mr0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0||10",
48
- "America/Scoresbysund|-01 +00 -01 -02|10 0 10 20|01010102323232323232323|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||0110",
49
- "America/St_Johns|NST NDT|3u 2u|01010101010101010101010|24E5u 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01",
50
- "America/Vancouver|PST PDT MST|80 70 70|0101010101012|24Ea0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010",
51
- "America/Winnipeg|CST CDT EST|60 50 50|0101010101012|24E80 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010",
52
- "Antarctica/Casey|+11 +08|-b0 -80|010101|24DN0 1lf1 14kX 1lf1 13bX||00",
53
- "Antarctica/Davis|+07|-70|0|||0",
54
- "Antarctica/Macquarie|AEDT AEST|-b0 -a0|01010101010101010101010|24Mg0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0||10",
55
- "Antarctica/Mawson|+05|-50|0|||0",
56
- "Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
57
- "Antarctica/Vostok|+07 +05|-70 -50|01|2bnv0||00",
58
- "Asia/Almaty|+06 +05|-60 -50|01|2bR60||00",
59
- "Asia/Amman|EET EEST +03|-20 -30 -30|01012|24IK0 1qM0 LA0 1C00||010",
60
- "Asia/Anadyr|+12|-c0|0|||0",
61
- "Asia/Baghdad|+03|-30|0|||0",
62
- "Asia/Baku|+04|-40|0|||0",
63
- "Asia/Beirut|EET EEST|-20 -30|01010101010101010101010|24Jy0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0||01",
64
- "Asia/Bishkek|+06|-60|0|||0",
65
- "Asia/Chita|+09|-90|0|||0",
66
- "Asia/Colombo|+0530|-5u|0|||0",
67
- "Asia/Damascus|EET EEST +03|-20 -30 -30|01012|24IK0 1qL0 WN0 1qL0||010",
68
- "Asia/Famagusta|EET EEST|-20 -30|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
69
- "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|24Ja0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0||01",
70
- "Asia/Hong_Kong|HKT|-80|0|||0",
71
- "Asia/Irkutsk|+08|-80|0|||0",
72
- "Asia/Jakarta|WIB|-70|0|||0",
73
- "Asia/Jayapura|WIT|-90|0|||0",
74
- "Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010|24IM0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0||01",
75
- "Asia/Kabul|+0430|-4u|0|||0",
76
- "Asia/Karachi|PKT|-50|0|||0",
77
- "Asia/Kathmandu|+0545|-5J|0|||0",
78
- "Asia/Kolkata|IST|-5u|0|||0",
79
- "Asia/Macau|CST|-80|0|||0",
80
- "Asia/Magadan|+11|-b0|0|||0",
81
- "Asia/Makassar|WITA|-80|0|||0",
82
- "Asia/Manila|PST|-80|0|||0",
83
- "Asia/Pyongyang|KST|-90|0|||0",
84
- "Asia/Tehran|+0330 +0430|-3u -4u|01010|24H8u 1dz0 1cp0 1dz0||01",
85
- "Asia/Tokyo|JST|-90|0|||0",
86
- "Asia/Ust-Nera|+10|-a0|0|||0",
87
- "Asia/Yangon|+0630|-6u|0|||0",
88
- "Atlantic/Azores|-01 +00|10 0|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
89
- "Atlantic/Canary|WET WEST|0 -10|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
90
- "Atlantic/Cape_Verde|-01|10|0|||0",
91
- "Australia/Adelaide|ACDT ACST|-au -9u|01010101010101010101010|24Mgu 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0||10",
92
- "Australia/Brisbane|AEST|-a0|0|||0",
93
- "Australia/Darwin|ACST|-9u|0|||0",
94
- "Australia/Eucla|+0845|-8J|0|||0",
95
- "Australia/Lord_Howe|+11 +1030|-b0 -au|01010101010101010101010|24Mf0 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu||10",
96
- "Australia/Perth|AWST|-80|0|||0",
97
- "Etc/GMT+10|-10|a0|0|||0",
98
- "Etc/GMT+11|-11|b0|0|||0",
99
- "Etc/GMT+12|-12|c0|0|||0",
100
- "Etc/GMT+6|-06|60|0|||0",
101
- "Etc/GMT+7|-07|70|0|||0",
102
- "Etc/GMT+8|-08|80|0|||0",
103
- "Etc/GMT+9|-09|90|0|||0",
104
- "Etc/GMT-1|+01|-10|0|||0",
105
- "Etc/GMT-13|+13|-d0|0|||0",
106
- "Etc/GMT-14|+14|-e0|0|||0",
107
- "Etc/GMT-2|+02|-20|0|||0",
108
- "Etc/UTC|UTC|0|0|||0",
109
- "Europe/Chisinau|EET EEST|-20 -30|01010101010101010101010|24JA0 1qM0 WN0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
110
- "Europe/Dublin|GMT IST|0 -10|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
111
- "Europe/Kirov|MSK|-30|0|||0",
112
- "Europe/London|GMT BST|0 -10|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01",
113
- "Pacific/Apia|+14 +13|-e0 -d0|01|24Me0||10",
114
- "Pacific/Auckland|NZDT NZST|-d0 -c0|01010101010101010101010|24Me0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00||10",
115
- "Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|24Me0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00||10",
116
- "Pacific/Easter|-05 -06|50 60|01010101010101010101010|24Mr0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0||10",
117
- "Pacific/Fiji|+13 +12|-d0 -c0|01|24hq0||10",
118
- "Pacific/Guam|ChST|-a0|0|||0",
119
- "Pacific/Honolulu|HST|a0|0|||0",
120
- "Pacific/Marquesas|-0930|9u|0|||0",
121
- "Pacific/Norfolk|+12 +11|-c0 -b0|01010101010101010101010|24Mf0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0||10",
122
- "Pacific/Pago_Pago|SST|b0|0|||0"
10
+ "Africa/Abidjan|GMT|0|0|||0|0",
11
+ "Africa/Algiers|CET|-10|0|||0|-10",
12
+ "Africa/Cairo|EET EEST|-20 -30|0101010101010101010|29NW0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0||01|-20 -20",
13
+ "Africa/Casablanca|+01 +00|-10 0|01010101010101|24Pe0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 1cL0||10|0 0",
14
+ "Africa/Ceuta|CET CEST|-10 -20|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|-10 -10",
15
+ "Africa/Johannesburg|SAST|-20|0|||0|-20",
16
+ "Africa/Juba|EAT CAT|-30 -20|01|24nx0||00|-30 -20",
17
+ "Africa/Khartoum|CAT|-20|0|||0|-20",
18
+ "Africa/Lagos|WAT|-10|0|||0|-10",
19
+ "Africa/Nairobi|EAT|-30|0|||0|-30",
20
+ "Africa/Tripoli|EET|-20|0|||0|-20",
21
+ "America/Adak|HST HDT|a0 90|01010101010101010101010|24Ec0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|a0 a0",
22
+ "America/Anchorage|AKST AKDT|90 80|01010101010101010101010|24Eb0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|90 90",
23
+ "America/Araguaina|-03|30|0|||0|30",
24
+ "America/Asuncion|-03 -04 -03|30 40 30|0101010102|24JD0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 3z0||100|40 40 30",
25
+ "America/Bahia_Banderas|CST CDT|60 50|01010|24Mw0 1nX0 11B0 1nX0||01|60 60",
26
+ "America/Barbados|AST|40|0|||0|40",
27
+ "America/Belize|CST|60|0|||0|60",
28
+ "America/Boa_Vista|-04|40|0|||0|40",
29
+ "America/Bogota|-05|50|0|||0|50",
30
+ "America/Boise|MST MDT|70 60|01010101010101010101010|24E90 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|70 70",
31
+ "America/Cancun|EST|50|0|||0|50",
32
+ "America/Chicago|CST CDT|60 50|01010101010101010101010|24E80 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|60 60",
33
+ "America/Chihuahua|MST MDT CST|70 60 60|01012|24Mx0 1nX0 11B0 1nX0||010|70 70 60",
34
+ "America/Ciudad_Juarez|MST MDT CST|70 60 60|010120101010101010101010|24E90 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010|70 70 60",
35
+ "America/Coyhaique|-03 -04 -03|30 40 30|0101010102|24Mr0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1hb0||100|40 40 30",
36
+ "America/Dawson|MST|70|0|||0|70",
37
+ "America/Detroit|EST EDT|50 40|01010101010101010101010|24E70 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|50 50",
38
+ "America/Edmonton|MST MDT CST|70 60 60|0101010101012|24E90 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010|70 70 60",
39
+ "America/Glace_Bay|AST ADT|40 30|01010101010101010101010|24E60 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|40 40",
40
+ "America/Havana|CST CDT|50 40|01010101010101010101010|24E50 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0||01|50 50",
41
+ "America/Los_Angeles|PST PDT|80 70|01010101010101010101010|24Ea0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|80 80",
42
+ "America/Mazatlan|MST MDT|70 60|01010|24Mx0 1nX0 11B0 1nX0||01|70 70",
43
+ "America/Miquelon|-03 -02|30 20|01010101010101010101010|24E50 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|30 30",
44
+ "America/Noronha|-02|20|0|||0|20",
45
+ "America/Nuuk|-03 -02 -02 -01|30 20 20 10|0101023232323232323232|24JB0 1qM0 WM0 1qM0 WM0 2so0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||0101|30 30 20 20",
46
+ "America/Ojinaga|MST MDT CST CDT|70 60 60 50|01012323232323232323232|24E90 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||0101|70 70 60 60",
47
+ "America/Santiago|-03 -04|30 40|01010101010101010101010|24Mr0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0||10|40 40",
48
+ "America/Scoresbysund|-01 +00 -01 -02|10 0 10 20|01010102323232323232323|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||0110|10 10 20 20",
49
+ "America/St_Johns|NST NDT|3u 2u|01010101010101010101010|24E5u 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||01|3u 3u",
50
+ "America/Vancouver|PST PDT MST|80 70 70|0101010101012|24Ea0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010|80 80 70",
51
+ "America/Winnipeg|CST CDT EST|60 50 50|0101010101012|24E80 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0||010|60 60 50",
52
+ "Antarctica/Casey|+11 +08|-b0 -80|010101|24DN0 1lf1 14kX 1lf1 13bX||00|-b0 -80",
53
+ "Antarctica/Davis|+07|-70|0|||0|-70",
54
+ "Antarctica/Macquarie|AEDT AEST|-b0 -a0|01010101010101010101010|24Mg0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0||10|-a0 -a0",
55
+ "Antarctica/Mawson|+05|-50|0|||0|-50",
56
+ "Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|0 0",
57
+ "Antarctica/Vostok|+07 +05|-70 -50|01|2bnv0||00|-70 -50",
58
+ "Asia/Almaty|+06 +05|-60 -50|01|2bR60||00|-60 -50",
59
+ "Asia/Amman|EET EEST +03|-20 -30 -30|01012|24IK0 1qM0 LA0 1C00||010|-20 -20 -30",
60
+ "Asia/Anadyr|+12|-c0|0|||0|-c0",
61
+ "Asia/Baghdad|+03|-30|0|||0|-30",
62
+ "Asia/Baku|+04|-40|0|||0|-40",
63
+ "Asia/Beirut|EET EEST|-20 -30|01010101010101010101010|24Jy0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0||01|-20 -20",
64
+ "Asia/Bishkek|+06|-60|0|||0|-60",
65
+ "Asia/Chita|+09|-90|0|||0|-90",
66
+ "Asia/Colombo|+0530|-5u|0|||0|-5u",
67
+ "Asia/Damascus|EET EEST +03|-20 -30 -30|01012|24IK0 1qL0 WN0 1qL0||010|-20 -20 -30",
68
+ "Asia/Famagusta|EET EEST|-20 -30|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|-20 -20",
69
+ "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|24Ja0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0||01|-20 -20",
70
+ "Asia/Hong_Kong|HKT|-80|0|||0|-80",
71
+ "Asia/Irkutsk|+08|-80|0|||0|-80",
72
+ "Asia/Jakarta|WIB|-70|0|||0|-70",
73
+ "Asia/Jayapura|WIT|-90|0|||0|-90",
74
+ "Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010|24IM0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0||01|-20 -20",
75
+ "Asia/Kabul|+0430|-4u|0|||0|-4u",
76
+ "Asia/Karachi|PKT|-50|0|||0|-50",
77
+ "Asia/Kathmandu|+0545|-5J|0|||0|-5J",
78
+ "Asia/Kolkata|IST|-5u|0|||0|-5u",
79
+ "Asia/Macau|CST|-80|0|||0|-80",
80
+ "Asia/Magadan|+11|-b0|0|||0|-b0",
81
+ "Asia/Makassar|WITA|-80|0|||0|-80",
82
+ "Asia/Manila|PST|-80|0|||0|-80",
83
+ "Asia/Pyongyang|KST|-90|0|||0|-90",
84
+ "Asia/Tehran|+0330 +0430|-3u -4u|01010|24H8u 1dz0 1cp0 1dz0||01|-3u -3u",
85
+ "Asia/Tokyo|JST|-90|0|||0|-90",
86
+ "Asia/Ust-Nera|+10|-a0|0|||0|-a0",
87
+ "Asia/Yangon|+0630|-6u|0|||0|-6u",
88
+ "Atlantic/Azores|-01 +00|10 0|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|10 10",
89
+ "Atlantic/Canary|WET WEST|0 -10|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|0 0",
90
+ "Atlantic/Cape_Verde|-01|10|0|||0|10",
91
+ "Australia/Adelaide|ACDT ACST|-au -9u|01010101010101010101010|24Mgu 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0||10|-9u -9u",
92
+ "Australia/Brisbane|AEST|-a0|0|||0|-a0",
93
+ "Australia/Darwin|ACST|-9u|0|||0|-9u",
94
+ "Australia/Eucla|+0845|-8J|0|||0|-8J",
95
+ "Australia/Lord_Howe|+11 +1030|-b0 -au|01010101010101010101010|24Mf0 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu||10|-au -au",
96
+ "Australia/Perth|AWST|-80|0|||0|-80",
97
+ "Etc/GMT+10|-10|a0|0|||0|a0",
98
+ "Etc/GMT+11|-11|b0|0|||0|b0",
99
+ "Etc/GMT+12|-12|c0|0|||0|c0",
100
+ "Etc/GMT+6|-06|60|0|||0|60",
101
+ "Etc/GMT+7|-07|70|0|||0|70",
102
+ "Etc/GMT+8|-08|80|0|||0|80",
103
+ "Etc/GMT+9|-09|90|0|||0|90",
104
+ "Etc/GMT-1|+01|-10|0|||0|-10",
105
+ "Etc/GMT-13|+13|-d0|0|||0|-d0",
106
+ "Etc/GMT-14|+14|-e0|0|||0|-e0",
107
+ "Etc/GMT-2|+02|-20|0|||0|-20",
108
+ "Etc/UTC|UTC|0|0|||0|0",
109
+ "Europe/Chisinau|EET EEST|-20 -30|01010101010101010101010|24JA0 1qM0 WN0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|-20 -20",
110
+ "Europe/Dublin|GMT IST|0 -10|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|0 0",
111
+ "Europe/Kirov|MSK|-30|0|||0|-30",
112
+ "Europe/London|GMT BST|0 -10|01010101010101010101010|24JB0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00||01|0 0",
113
+ "Pacific/Apia|+14 +13|-e0 -d0|01|24Me0||10|-d0 -d0",
114
+ "Pacific/Auckland|NZDT NZST|-d0 -c0|01010101010101010101010|24Me0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00||10|-c0 -c0",
115
+ "Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|24Me0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00||10|-cJ -cJ",
116
+ "Pacific/Easter|-05 -06|50 60|01010101010101010101010|24Mr0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0||10|60 60",
117
+ "Pacific/Fiji|+13 +12|-d0 -c0|01|24hq0||10|-c0 -c0",
118
+ "Pacific/Guam|ChST|-a0|0|||0|-a0",
119
+ "Pacific/Honolulu|HST|a0|0|||0|a0",
120
+ "Pacific/Marquesas|-0930|9u|0|||0|9u",
121
+ "Pacific/Norfolk|+12 +11|-c0 -b0|01010101010101010101010|24Mf0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0||10|-b0 -b0",
122
+ "Pacific/Pago_Pago|SST|b0|0|||0|b0"
123
123
  ];
124
124
  var links$1 = [
125
125
  "Africa/Abidjan|Africa/Accra",
@@ -651,21 +651,21 @@ function _unsupportedIterableToArray(r, a) {
651
651
  }
652
652
  }
653
653
 
654
- var MomentZoneRules = function (_ZoneRules) {
655
- function MomentZoneRules(tzdbInfo) {
654
+ var TzdbZoneRules = function (_ZoneRules) {
655
+ function TzdbZoneRules(tzdbInfo) {
656
656
  var _this;
657
657
  _this = _ZoneRules.call(this) || this;
658
658
  _this._tzdbInfo = tzdbInfo;
659
659
  _this._ldtUntils = new LDTUntils(_this._tzdbInfo.untils, _this._tzdbInfo.offsets);
660
660
  return _this;
661
661
  }
662
- _inheritsLoose(MomentZoneRules, _ZoneRules);
663
- var _proto = MomentZoneRules.prototype;
662
+ _inheritsLoose(TzdbZoneRules, _ZoneRules);
663
+ var _proto = TzdbZoneRules.prototype;
664
664
  _proto.isFixedOffset = function isFixedOffset() {
665
665
  return this._tzdbInfo.offsets.length === 1;
666
666
  };
667
667
  _proto.offsetOfInstant = function offsetOfInstant(instant) {
668
- var epochMilli = instant.toEpochMilli();
668
+ var epochMilli = epochMilliOf(instant);
669
669
  return this.offsetOfEpochMilli(epochMilli);
670
670
  };
671
671
  _proto.offsetOfEpochMilli = function offsetOfEpochMilli(epochMilli) {
@@ -713,13 +713,22 @@ var MomentZoneRules = function (_ZoneRules) {
713
713
  return null;
714
714
  };
715
715
  _proto.standardOffset = function standardOffset(instant) {
716
- notSupported('ZoneRules.standardOffset');
716
+ return ZoneOffset.ofTotalSeconds(this._standardOffsetInSeconds(epochMilliOf(instant)));
717
+ };
718
+ _proto._standardOffsetInSeconds = function _standardOffsetInSeconds(epochMilli) {
719
+ var stdOffsets = this._tzdbInfo.stdOffsets;
720
+ if (stdOffsets == null) {
721
+ throw new Error("The tz data of zone " + this._tzdbInfo.name + " has no standard offsets, " + 'load tz data with standard offsets (packed field 7) for standardOffset, daylightSavings and isDaylightSavings');
722
+ }
723
+ return -offsetInSeconds(stdOffsets[binarySearch(this._tzdbInfo.untils, epochMilli)]);
717
724
  };
718
725
  _proto.daylightSavings = function daylightSavings(instant) {
719
- notSupported('ZoneRules.daylightSavings');
726
+ var epochMilli = epochMilliOf(instant);
727
+ var index = binarySearch(this._tzdbInfo.untils, epochMilli);
728
+ return Duration.ofSeconds(this._offsetByIndexInSeconds(index) - this._standardOffsetInSeconds(epochMilli));
720
729
  };
721
730
  _proto.isDaylightSavings = function isDaylightSavings(instant) {
722
- notSupported('ZoneRules.isDaylightSavings');
731
+ return !this.daylightSavings(instant).isZero();
723
732
  };
724
733
  _proto.isValidOffset = function isValidOffset(localDateTime, offset) {
725
734
  return this.validOffsets(localDateTime).some(function (o) {
@@ -727,10 +736,41 @@ var MomentZoneRules = function (_ZoneRules) {
727
736
  });
728
737
  };
729
738
  _proto.nextTransition = function nextTransition(instant) {
730
- notSupported('ZoneRules.nextTransition');
739
+ var indices = this._transitionIndices();
740
+ var untils = this._tzdbInfo.untils;
741
+ var epochMilli = epochMilliOf(instant);
742
+ var k = firstIndexWhere(indices, function (i) {
743
+ return untils[i] > epochMilli;
744
+ });
745
+ return k < indices.length ? this._createTransition(indices[k]) : null;
731
746
  };
732
747
  _proto.previousTransition = function previousTransition(instant) {
733
- notSupported('ZoneRules.previousTransition');
748
+ var indices = this._transitionIndices();
749
+ var untils = this._tzdbInfo.untils;
750
+ var epochMilli = epochMilliOf(instant) + (instant.nano() % 1000000 > 0 ? 1 : 0);
751
+ var k = firstIndexWhere(indices, function (i) {
752
+ return untils[i] >= epochMilli;
753
+ });
754
+ return k > 0 ? this._createTransition(indices[k - 1]) : null;
755
+ };
756
+ _proto._transitionIndices = function _transitionIndices() {
757
+ var tzdbInfo = this._tzdbInfo;
758
+ if (tzdbInfo._transitionIndices == null) {
759
+ var indices = [];
760
+ for (var i = 0; i < tzdbInfo.offsets.length - 1; i++) {
761
+ if (this._offsetByIndexInSeconds(i) !== this._offsetByIndexInSeconds(i + 1)) {
762
+ indices.push(i);
763
+ }
764
+ }
765
+ tzdbInfo._transitionIndices = indices;
766
+ }
767
+ return tzdbInfo._transitionIndices;
768
+ };
769
+ _proto._createTransition = function _createTransition(index) {
770
+ var offsetBefore = ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(index));
771
+ var offsetAfter = ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(index + 1));
772
+ var instant = Instant.ofEpochMilli(this._tzdbInfo.untils[index]);
773
+ return ZoneOffsetTransition.of(LocalDateTime.ofInstant(instant, offsetBefore), offsetBefore, offsetAfter);
734
774
  };
735
775
  _proto.transitions = function transitions() {
736
776
  notSupported('ZoneRules.transitions');
@@ -742,7 +782,7 @@ var MomentZoneRules = function (_ZoneRules) {
742
782
  if (this === other) {
743
783
  return true;
744
784
  }
745
- if (other instanceof MomentZoneRules) {
785
+ if (other instanceof TzdbZoneRules) {
746
786
  return this._tzdbInfo === other._tzdbInfo;
747
787
  }
748
788
  return false;
@@ -750,7 +790,7 @@ var MomentZoneRules = function (_ZoneRules) {
750
790
  _proto.toString = function toString() {
751
791
  return this._tzdbInfo.name;
752
792
  };
753
- return MomentZoneRules;
793
+ return TzdbZoneRules;
754
794
  }(ZoneRules);
755
795
  var LDTUntils = function () {
756
796
  function LDTUntils(_tzdbUntils, tzdbOffsets) {
@@ -805,14 +845,18 @@ function ldtBinarySearch(array, value) {
805
845
  return hi;
806
846
  }
807
847
  function offsetInSeconds(tzdbOffset) {
808
- return roundDown(+tzdbOffset * 60);
848
+ return Math.round(+tzdbOffset * 60);
809
849
  }
810
- function roundDown(r) {
811
- if (r < 0) {
812
- return Math.ceil(r);
813
- } else {
814
- return Math.floor(r);
850
+ var MAX_EPOCH_SECOND_FOR_MILLIS = Math.floor(Number.MAX_SAFE_INTEGER / 1000) - 1;
851
+ function epochMilliOf(instant) {
852
+ var epochSecond = instant.epochSecond();
853
+ if (epochSecond > MAX_EPOCH_SECOND_FOR_MILLIS) {
854
+ return Infinity;
855
+ }
856
+ if (epochSecond < -MAX_EPOCH_SECOND_FOR_MILLIS) {
857
+ return -Infinity;
815
858
  }
859
+ return instant.toEpochMilli();
816
860
  }
817
861
  function binarySearch(array, value) {
818
862
  var hi = array.length - 1,
@@ -827,6 +871,19 @@ function binarySearch(array, value) {
827
871
  }
828
872
  return hi;
829
873
  }
874
+ function firstIndexWhere(array, predicate) {
875
+ var lo = 0,
876
+ hi = array.length;
877
+ while (lo < hi) {
878
+ var mid = lo + hi >> 1;
879
+ if (predicate(array[mid])) {
880
+ hi = mid;
881
+ } else {
882
+ lo = mid + 1;
883
+ }
884
+ }
885
+ return lo;
886
+ }
830
887
  function notSupported(msg) {
831
888
  throw new Error("not supported: " + msg);
832
889
  }
@@ -886,18 +943,25 @@ function unpack(string) {
886
943
  var data = string.split('|'),
887
944
  offsets = data[2].split(' '),
888
945
  indices = data[3].split(''),
889
- untils = data[4].split(' ');
946
+ untils = data[4].split(' '),
947
+ stdOffsets = data[7] ? data[7].split(' ') : null,
948
+ result;
890
949
  arrayToInt(offsets);
891
950
  arrayToInt(indices);
892
951
  arrayToInt(untils);
893
952
  intToUntil(untils, indices.length);
894
- return {
953
+ result = {
895
954
  name: data[0],
896
955
  abbrs: mapIndices(data[1].split(' '), indices),
897
956
  offsets: mapIndices(offsets, indices),
898
957
  untils: untils,
899
958
  population: data[5] | 0
900
959
  };
960
+ if (stdOffsets) {
961
+ arrayToInt(stdOffsets);
962
+ result.stdOffsets = mapIndices(stdOffsets, indices);
963
+ }
964
+ return result;
901
965
  }
902
966
 
903
967
  var TZDB_DATA;
@@ -905,28 +969,28 @@ var TZDB_VERSION;
905
969
  var AVAILABLE_ZONE_IDS = [];
906
970
  var zones = {};
907
971
  var links = {};
908
- var MomentZoneRulesProvider = function (_ZoneRulesProvider) {
909
- function MomentZoneRulesProvider() {
972
+ var TzdbZoneRulesProvider = function (_ZoneRulesProvider) {
973
+ function TzdbZoneRulesProvider() {
910
974
  return _ZoneRulesProvider.apply(this, arguments) || this;
911
975
  }
912
- _inheritsLoose(MomentZoneRulesProvider, _ZoneRulesProvider);
913
- MomentZoneRulesProvider.getRules = function getRules(zoneId) {
976
+ _inheritsLoose(TzdbZoneRulesProvider, _ZoneRulesProvider);
977
+ TzdbZoneRulesProvider.getRules = function getRules(zoneId) {
914
978
  var tzdbZoneInfo = zones[links[zoneId]];
915
979
  if (tzdbZoneInfo == null) {
916
980
  throw new DateTimeException("Unknown time-zone ID: " + zoneId);
917
981
  }
918
- return new MomentZoneRules(tzdbZoneInfo);
982
+ return new TzdbZoneRules(tzdbZoneInfo);
919
983
  };
920
- MomentZoneRulesProvider.getAvailableZoneIds = function getAvailableZoneIds() {
984
+ TzdbZoneRulesProvider.getAvailableZoneIds = function getAvailableZoneIds() {
921
985
  return AVAILABLE_ZONE_IDS;
922
986
  };
923
- MomentZoneRulesProvider.getVersion = function getVersion() {
987
+ TzdbZoneRulesProvider.getVersion = function getVersion() {
924
988
  return TZDB_VERSION;
925
989
  };
926
- MomentZoneRulesProvider.getTzdbData = function getTzdbData() {
990
+ TzdbZoneRulesProvider.getTzdbData = function getTzdbData() {
927
991
  return TZDB_DATA;
928
992
  };
929
- MomentZoneRulesProvider.loadTzdbData = function loadTzdbData(packedJson) {
993
+ TzdbZoneRulesProvider.loadTzdbData = function loadTzdbData(packedJson) {
930
994
  TZDB_DATA = packedJson;
931
995
  TZDB_VERSION = packedJson.version;
932
996
  for (var _iterator = _createForOfIteratorHelperLoose(packedJson.zones), _step; !(_step = _iterator()).done;) {
@@ -943,7 +1007,7 @@ var MomentZoneRulesProvider = function (_ZoneRulesProvider) {
943
1007
  links[link[1]] = link[0];
944
1008
  }
945
1009
  };
946
- return MomentZoneRulesProvider;
1010
+ return TzdbZoneRulesProvider;
947
1011
  }(ZoneRulesProvider);
948
1012
 
949
1013
  function getResolvedZoneId(ZoneId) {
@@ -969,10 +1033,10 @@ function extendSystemDefaultZoneId(ZoneId) {
969
1033
  */
970
1034
 
971
1035
  function plug (jsJoda) {
972
- jsJoda.ZoneRulesProvider.getRules = MomentZoneRulesProvider.getRules;
973
- jsJoda.ZoneRulesProvider.getAvailableZoneIds = MomentZoneRulesProvider.getAvailableZoneIds;
974
- jsJoda.ZoneRulesProvider.getTzdbData = MomentZoneRulesProvider.getTzdbData;
975
- jsJoda.ZoneRulesProvider.loadTzdbData = MomentZoneRulesProvider.loadTzdbData;
1036
+ jsJoda.ZoneRulesProvider.getRules = TzdbZoneRulesProvider.getRules;
1037
+ jsJoda.ZoneRulesProvider.getAvailableZoneIds = TzdbZoneRulesProvider.getAvailableZoneIds;
1038
+ jsJoda.ZoneRulesProvider.getTzdbData = TzdbZoneRulesProvider.getTzdbData;
1039
+ jsJoda.ZoneRulesProvider.loadTzdbData = TzdbZoneRulesProvider.loadTzdbData;
976
1040
  extendSystemDefaultZoneId(jsJoda.ZoneId);
977
1041
  return jsJoda;
978
1042
  }
@@ -991,6 +1055,6 @@ function autoPlug() {
991
1055
  * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
992
1056
  */
993
1057
 
994
- MomentZoneRulesProvider.loadTzdbData(latest);
1058
+ TzdbZoneRulesProvider.loadTzdbData(latest);
995
1059
  autoPlug();
996
1060
  //# sourceMappingURL=js-joda-timezone-10-year-range.esm.js.map