@@ -193,6 +193,9 @@ export class Timezone {
193193 private static countriesForZone : Record < string , Set < string > > = { } ;
194194 private static zonesForCountry : Record < string , Set < string > > = { } ;
195195 private static populationForZone : Record < string , number > = { } ;
196+ private static _version : string = 'unspecified' ;
197+
198+ static get version ( ) : string { return this . _version ; }
196199
197200 static OS_ZONE = new Timezone ( { zoneName : 'OS' , currentUtcOffset : osProbableStdOffset , usesDst : osUsesDst ,
198201 dstOffset : osDstOffset , transitions : osTransitions } ) ;
@@ -208,7 +211,7 @@ export class Timezone {
208211
209212 private static offsetsAndZones : OffsetsAndZones [ ] ;
210213 private static regionAndSubzones : RegionAndSubzones [ ] ;
211- private static zoneLookup : { [ id : string ] : Timezone } = { } ;
214+ private static zoneLookup : Record < string , Timezone > = { } ;
212215
213216 private readonly _zoneName : string ;
214217 private readonly _utcOffset : number ;
@@ -229,6 +232,11 @@ export class Timezone {
229232 static defineTimezones ( encodedTimezones : Record < string , string > ) : boolean {
230233 const changed = ! isEqual ( this . encodedTimezones , encodedTimezones ) ;
231234
235+ if ( encodedTimezones . version )
236+ this . _version = encodedTimezones . version ;
237+ else
238+ this . _version = 'unspecified' ;
239+
232240 this . encodedTimezones = Object . assign ( { } , encodedTimezones ?? { } ) ;
233241 this . extractZoneInfo ( ) ;
234242
@@ -797,6 +805,9 @@ export class Timezone {
797805 last ( insertTransitions ) . transitionTime >= transitions [ 1 ] . transitionTime )
798806 insertTransitions . splice ( insertTransitions . length - 1 , 1 ) ;
799807
808+ if ( insertTransitions [ 0 ] . transitionTime === transitions [ 0 ] . transitionTime )
809+ insertTransitions . splice ( 0 , 1 ) ;
810+
800811 transitions . splice ( 1 , 0 , ...insertTransitions ) ;
801812 }
802813 }
0 commit comments