mmntjs-timezone 0.0.1 → 0.0.2

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/logic.ts","../src/install.ts"],"sourcesContent":["import * as mmntjs from \"mmntjs\";\nimport { installTimezone, type MomentLike, type MomentTz } from \"./install\";\n\nconst momentFactory = ((mmntjs as unknown as Record<string, unknown>).moment ??\n (mmntjs as unknown as Record<string, unknown>).default ??\n mmntjs) as unknown as MomentLike;\n\ninstallTimezone(momentFactory);\n\nexport default momentFactory;\nexport const tz: MomentTz = momentFactory.tz!;\n","/* oxlint-disable no-explicit-any, no-unnecessary-type-assertion, no-unnecessary-condition, prefer-nullish-coalescing, prefer-optional-chain, prefer-string-replace-all, no-new-array, no-useless-spread, prefer-function-type, curly */\n\ninterface MomentFnProps {\n tz: (this: unknown, tz?: string, keepTime?: boolean) => unknown;\n zoneName?: (this: unknown) => string;\n zoneAbbr?: (this: unknown) => string;\n isDST?: (this: unknown) => boolean;\n [key: string]: unknown;\n}\n\ninterface MomentTzZone {\n name: string;\n abbr: (ts: number) => string;\n offset: (ts: number) => number;\n utcOffset: (ts: number) => number;\n parse: (ts: number) => number;\n countries?: () => string[];\n}\n\ninterface CountryWithOffset {\n name: string;\n offset: number;\n}\n\ninterface TimezoneDataBundle {\n version?: string;\n zones?: unknown;\n links?: unknown;\n countries?: unknown;\n}\n\nexport interface MomentTz {\n (\n input?: unknown,\n formatOrZone?: unknown,\n zoneOrStrict?: unknown,\n fourth?: unknown,\n ): MomentInstance;\n guess: (preferCache?: boolean) => string;\n names: () => string[];\n zone: (name: string) => MomentTzZone | null;\n zoneExists?: (name: string) => boolean;\n add: (data: unknown) => void;\n link: (links: unknown) => void;\n load?: (data: TimezoneDataBundle) => void;\n setDefault: (tz?: string) => MomentLike;\n countries: () => string[];\n zonesForCountry: (code: string, withOffset?: boolean) => string[] | CountryWithOffset[] | null;\n unpack?: (data: string) => UnpackedZone;\n unpackBase60?: (input: string) => number;\n version?: string;\n dataVersion?: string;\n Zone?: new (packedString?: string) => MomentTzZone;\n _zones?: Record<string, string | PrebuiltZonePayload | DecodedZonePayload>;\n _links?: Record<string, string>;\n _names?: Record<string, string>;\n _countries?: Record<string, { name: string; zones: string[] }>;\n moveInvalidForward?: boolean;\n moveAmbiguousForward?: boolean;\n}\n\ntype MomentInstance = MomentLike & {\n tz(tz?: string, keepTime?: boolean): MomentInstance | string;\n _z?: MomentTzZone | null;\n utcOffset(offset?: number | string, keepLocalTime?: boolean): number | MomentInstance;\n isValid(): boolean;\n year(): number;\n month(): number;\n date(): number;\n hour(): number;\n minute(): number;\n second(): number;\n millisecond(): number;\n clone(): MomentInstance;\n valueOf(): number;\n utc(): MomentInstance;\n};\n\nexport type MomentLike = {\n fn: MomentFnProps;\n momentProperties: string[];\n defaultZone?: string | null;\n tz?: MomentTz;\n updateOffset?: ((m: MomentInstance, keepTime?: boolean) => void) | undefined;\n (...args: unknown[]): MomentInstance;\n};\n\ninterface UnpackedZone {\n name: string;\n abbrs: string[];\n offsets: number[];\n untils: number[];\n population: number;\n}\n\ninterface DecodedZonePayload {\n abbrs: string[];\n offsets: Int16Array | Int32Array;\n untils: Float64Array;\n population: number;\n}\n\ninterface PrebuiltZonePayload {\n abbrs: string[];\n offsets: number[];\n ut: number;\n ud: number[];\n pop: number;\n}\n\nconst offsetCache = new Map<string, Map<number, number>>();\nconst MAX_DOMAIN_CACHE_SIZE = 1000;\n\nconst ABBR_LOCALES = [\n \"en-US\",\n \"en-GB\",\n \"ja-JP\",\n \"en-AU\",\n \"en-SG\",\n \"en-HK\",\n \"af-ZA\",\n \"es-AR\",\n \"pt-BR\",\n \"ko-KR\",\n \"en-IN\",\n \"zh-CN\",\n];\n\nconst ZONE_ALIAS: Record<string, string> = {\n \"Asia/Calcutta\": \"Asia/Kolkata\",\n};\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase().replace(/\\//g, \"_\");\n}\n\nfunction normalizeTz(tz: string): string {\n const u = tz.toUpperCase();\n if (u === \"UTC\" || u === \"GMT\") {\n return u;\n }\n return ZONE_ALIAS[tz] ?? tz;\n}\n\nfunction charCodeToInt(charCode: number): number {\n if (charCode > 96) {\n return charCode - 87;\n }\n if (charCode > 64) {\n return charCode - 29;\n }\n return charCode - 48;\n}\n\nfunction unpackBase60(input: string): number {\n let i = 0;\n const parts = input.split(\".\");\n const whole = parts[0] ?? \"\";\n const fractional = parts[1] ?? \"\";\n let multiplier = 1;\n let out = 0;\n let sign = 1;\n\n if (input.charCodeAt(0) === 45) {\n i = 1;\n sign = -1;\n }\n\n for (; i < whole.length; i++) {\n out = 60 * out + charCodeToInt(whole.charCodeAt(i));\n }\n\n for (i = 0; i < fractional.length; i++) {\n multiplier /= 60;\n out += charCodeToInt(fractional.charCodeAt(i)) * multiplier;\n }\n\n return out * sign;\n}\n\nfunction arrayToInt(values: string[]): number[] {\n return values.map((value) => unpackBase60(value));\n}\n\nfunction mapIndices<T>(source: T[], indices: number[]): T[] {\n const out: T[] = new Array(indices.length) as T[];\n for (let i = 0; i < indices.length; i++) {\n out[i] = source[indices[i]];\n }\n return out;\n}\n\n/**\n * Decode a compact run-encoded index string back to numeric indices.\n * Handles both plain format (base-62 chars) and codec format (!-prefixed).\n */\nfunction decodeIndicesCodec(encoded: string): number[] {\n if (encoded[0] !== \"!\") {\n return arrayToInt(encoded.split(\"\"));\n }\n const indices: number[] = [];\n let pos = 1;\n const len = encoded.length;\n while (pos < len) {\n const ch = encoded[pos]!;\n if (ch === \"^\" && pos + 4 <= len) {\n const a = charCodeToInt(encoded.charCodeAt(pos + 1));\n const b = charCodeToInt(encoded.charCodeAt(pos + 2));\n const count = charCodeToInt(encoded.charCodeAt(pos + 3)) + 1;\n for (let i = 0; i < count; i++) {\n indices.push(a, b);\n }\n pos += 4;\n } else if (ch === \"~\" && pos + 3 <= len) {\n const a = charCodeToInt(encoded.charCodeAt(pos + 1));\n const count = charCodeToInt(encoded.charCodeAt(pos + 2)) + 1;\n for (let i = 0; i < count; i++) {\n indices.push(a);\n }\n pos += 3;\n } else if (ch === \"@\" && pos + 3 <= len) {\n const start = charCodeToInt(encoded.charCodeAt(pos + 1));\n const count = charCodeToInt(encoded.charCodeAt(pos + 2)) + 1;\n const abbrCount = 62;\n for (let i = 0; i < count; i++) {\n indices.push((start + i) % abbrCount);\n }\n pos += 3;\n } else {\n indices.push(charCodeToInt(encoded.charCodeAt(pos)));\n pos++;\n }\n }\n return indices;\n}\n\n/** Parse raw delta string, expanding dictionary IDs when needed */\nfunction parseDeltas(raw: string): number[] {\n const tokens = raw.split(\" \");\n if (_deltaDict.length > 0 && tokens.length > 0) {\n return tokens.map((t) => {\n if (t === \"\") return 0;\n return _deltaDict[unpackBase60(t)] ?? 0;\n });\n }\n return arrayToInt(tokens);\n}\n\nfunction unpack(packed: string): UnpackedZone {\n const data = packed.split(\"|\");\n const offsets = arrayToInt((data[2] ?? \"\").split(\" \"));\n const indices = decodeIndicesCodec(data[3] ?? \"\");\n const untils = parseDeltas(data[4] ?? \"\");\n\n for (let i = 0; i < indices.length; i++) {\n untils[i] = Math.round((untils[i - 1] || 0) + untils[i] * 60000);\n }\n untils[indices.length - 1] = Number.POSITIVE_INFINITY;\n\n return {\n name: data[0] ?? \"\",\n abbrs: mapIndices((data[1] ?? \"\").split(\" \"), indices),\n offsets: mapIndices(offsets, indices),\n untils,\n population: Number(data[5] ?? 0) | 0,\n };\n}\n\nfunction closest(num: number, arr: ArrayLike<number>): number {\n const len = arr.length;\n if (len === 0) {\n return -1;\n }\n if (num < arr[0]) {\n return 0;\n }\n if (len > 1 && arr[len - 1] === Number.POSITIVE_INFINITY && num >= (arr[len - 2] ?? 0)) {\n return len - 1;\n }\n if (num >= (arr[len - 1] ?? 0)) {\n return -1;\n }\n\n let lo = 0;\n let hi = len - 1;\n while (hi - lo > 1) {\n const mid = Math.floor((lo + hi) / 2);\n if ((arr[mid] ?? 0) <= num) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return hi;\n}\n\nclass InternalZone implements MomentTzZone {\n name: string;\n private readonly canonicalKey: string;\n private lastIndex = -1;\n private lastStart = Number.NEGATIVE_INFINITY;\n private lastEnd = Number.POSITIVE_INFINITY;\n\n constructor(name: string, canonicalKey: string) {\n this.name = name;\n this.canonicalKey = canonicalKey;\n }\n\n _index(timestamp: number): number {\n const target = +timestamp;\n if (this.lastIndex >= 0 && target >= this.lastStart && target < this.lastEnd) {\n return this.lastIndex;\n }\n const untils = getDecodedZonePayload(this.canonicalKey).untils;\n const idx = closest(target, untils);\n if (idx >= 0) {\n this.lastIndex = idx;\n this.lastStart =\n idx > 0 ? (untils[idx - 1] ?? Number.NEGATIVE_INFINITY) : Number.NEGATIVE_INFINITY;\n this.lastEnd = untils[idx] ?? Number.POSITIVE_INFINITY;\n }\n return idx;\n }\n\n countries(): string[] {\n const out: string[] = [];\n for (const [code, country] of Object.entries(countryStore)) {\n if (country.zones.includes(this.name)) {\n out.push(code);\n }\n }\n return out;\n }\n\n parse(timestamp: number): number {\n const payload = getDecodedZonePayload(this.canonicalKey);\n const target = +timestamp;\n const max = payload.untils.length - 1;\n for (let i = 0; i < max; i++) {\n let offset = payload.offsets[i] ?? 0;\n const offsetNext = payload.offsets[i + 1] ?? offset;\n const offsetPrev = payload.offsets[i ? i - 1 : i] ?? offset;\n\n if (offset < offsetNext && timezoneFlags.moveAmbiguousForward) {\n offset = offsetNext;\n } else if (offset > offsetPrev && timezoneFlags.moveInvalidForward) {\n offset = offsetPrev;\n }\n\n if (target < (payload.untils[i] ?? Number.POSITIVE_INFINITY) - offset * 60000) {\n return payload.offsets[i] ?? 0;\n }\n }\n return payload.offsets[max] ?? 0;\n }\n\n abbr(ts: number): string {\n const idx = this._index(ts);\n const payload = getDecodedZonePayload(this.canonicalKey);\n return idx >= 0 ? (payload.abbrs[idx] ?? \"\") : \"\";\n }\n\n offset(ts: number): number {\n return this.utcOffset(ts);\n }\n\n utcOffset(ts: number): number {\n const idx = this._index(ts);\n const payload = getDecodedZonePayload(this.canonicalKey);\n return idx >= 0 ? (payload.offsets[idx] ?? 0) : 0;\n }\n}\n\nclass CompatZone implements MomentTzZone {\n name: string;\n private readonly p: DecodedZonePayload;\n private li = -1;\n private ls = Number.NEGATIVE_INFINITY;\n private le = Number.POSITIVE_INFINITY;\n\n constructor(packedString?: string) {\n const u = unpack(packedString ?? \"||0|0||0\");\n this.name = u.name;\n this.p = createDecodedZonePayload(u);\n }\n\n private _i(ts: number): number {\n const t = +ts;\n if (this.li >= 0 && t >= this.ls && t < this.le) {\n return this.li;\n }\n const idx = closest(t, this.p.untils);\n if (idx >= 0) {\n this.li = idx;\n this.ls = idx > 0 ? this.p.untils[idx - 1]! : Number.NEGATIVE_INFINITY;\n this.le = this.p.untils[idx]!;\n }\n return idx;\n }\n\n countries() {\n return [];\n }\n abbr(ts: number) {\n const i = this._i(ts);\n return i >= 0 ? this.p.abbrs[i]! : \"\";\n }\n offset(ts: number) {\n return this.utcOffset(ts);\n }\n utcOffset(ts: number) {\n const i = this._i(ts);\n return i >= 0 ? this.p.offsets[i]! : 0;\n }\n parse(ts: number): number {\n const target = +ts;\n const max = this.p.untils.length - 1;\n for (let i = 0; i < max; i++) {\n let off = this.p.offsets[i]!;\n const nxt = this.p.offsets[i + 1] ?? off;\n const prv = this.p.offsets[i ? i - 1 : i] ?? off;\n if (off < nxt && timezoneFlags.moveAmbiguousForward) {\n off = nxt;\n } else if (off > prv && timezoneFlags.moveInvalidForward) {\n off = prv;\n }\n if (target < this.p.untils[i]! - off * 60000) {\n return this.p.offsets[i]!;\n }\n }\n return this.p.offsets[max]!;\n }\n}\n\n/* delta dictionary (parsed from !D| header line in zonesBlob) */\nlet _deltaDict: number[] = [];\n\nconst zoneStore: Record<string, string | PrebuiltZonePayload | DecodedZonePayload> = Object.create(\n null,\n) as Record<string, string | PrebuiltZonePayload | DecodedZonePayload>;\nconst linkStore: Record<string, string> = Object.create(null) as Record<string, string>;\nconst nameStore: Record<string, string> = Object.create(null) as Record<string, string>;\nconst countryStore: Record<string, { name: string; zones: string[] }> = Object.create(\n null,\n) as Record<string, { name: string; zones: string[] }>;\nconst zoneWrapperCache = new Map<string, MomentTzZone>();\nconst decodedZonePayloadCache = new Map<string, DecodedZonePayload>();\nconst abbrInternPool = new Map<string, string>();\nconst timezoneFlags = {\n moveInvalidForward: true,\n moveAmbiguousForward: false,\n};\n\nlet builtinZoneDataLoaded = false;\nlet indexBuilt = false;\nlet sortedZoneNamesCache: string[] | null = null;\n\n/* lazy blob data */\nlet _zonesBlob = \"\";\nlet _linksBlob = \"\";\nlet _countriesBlob = \"\";\n\n/* name table: index → full zone name */\nlet _nameTable: string[] = [];\n\n/* lightweight indexes */\nconst _zoneIdx = new Map<string, { name: string; start: number; end: number }>();\nconst _linkIdx = new Map<string, string>();\nconst _linkNameIdx = new Map<string, string>();\nconst _countryIdx = new Map<string, string[]>();\n\nfunction internString(value: string): string {\n const cached = abbrInternPool.get(value);\n if (cached) {\n return cached;\n }\n abbrInternPool.set(value, value);\n return value;\n}\n\nfunction createDecodedZonePayload(unpacked: UnpackedZone): DecodedZonePayload {\n const offsets = unpacked.offsets.some((value) => value > 32767 || value < -32768)\n ? Int32Array.from(unpacked.offsets)\n : Int16Array.from(unpacked.offsets);\n return {\n abbrs: unpacked.abbrs.map((abbr) => internString(abbr)),\n offsets,\n untils: Float64Array.from(unpacked.untils),\n population: unpacked.population,\n };\n}\n\nfunction getDecodedZonePayload(canonicalKey: string): DecodedZonePayload {\n const cached = decodedZonePayloadCache.get(canonicalKey);\n if (cached) {\n return cached;\n }\n const source = zoneStore[canonicalKey];\n if (!source) {\n throw new Error(`Missing timezone payload for ${canonicalKey}`);\n }\n let payload: DecodedZonePayload;\n if (typeof source === \"string\") {\n payload = createDecodedZonePayload(unpack(source));\n } else if (\"ut\" in source) {\n const prebuilt = source as PrebuiltZonePayload;\n const untils: number[] = [prebuilt.ut];\n for (let i = 0; i < prebuilt.ud.length; i++) {\n untils.push(untils[i] + prebuilt.ud[i]);\n }\n untils[untils.length - 1] = Number.POSITIVE_INFINITY;\n payload = createDecodedZonePayload({\n name: \"\",\n abbrs: prebuilt.abbrs,\n offsets: prebuilt.offsets,\n untils,\n population: prebuilt.pop,\n });\n } else {\n payload = source;\n }\n zoneStore[canonicalKey] = payload;\n decodedZonePayloadCache.set(canonicalKey, payload);\n return payload;\n}\n\nfunction addPackedZoneEntry(\n name: string,\n value: string | PrebuiltZonePayload | DecodedZonePayload,\n): void {\n const normalized = normalizeName(name);\n zoneStore[normalized] = value;\n nameStore[normalized] = name;\n zoneWrapperCache.delete(name);\n decodedZonePayloadCache.delete(normalized);\n sortedZoneNamesCache = null;\n}\n\nfunction addZone(packed: unknown): void {\n if (typeof packed === \"string\") {\n const split = packed.split(\"|\");\n addPackedZoneEntry(split[0] ?? \"\", packed);\n return;\n }\n if (Array.isArray(packed)) {\n for (const item of packed) {\n addZone(item);\n }\n return;\n }\n if (packed && typeof packed === \"object\") {\n for (const [name, value] of Object.entries(packed as Record<string, unknown>)) {\n if (typeof value === \"string\") {\n addZone(value);\n continue;\n }\n if (value && typeof value === \"object\") {\n if (\"ut\" in (value as Record<string, unknown>)) {\n addPackedZoneEntry(name, value as PrebuiltZonePayload);\n } else {\n const entry = value as Partial<UnpackedZone>;\n addPackedZoneEntry(\n name,\n createDecodedZonePayload({\n name,\n abbrs: [...(entry.abbrs ?? [])],\n offsets: [...(entry.offsets ?? [])],\n untils: [...(entry.untils ?? [])],\n population: entry.population ?? 0,\n }),\n );\n }\n }\n }\n }\n}\n\nfunction addLink(links: unknown): void {\n const linkList: string[] = [];\n if (typeof links === \"string\") {\n linkList.push(links);\n } else if (Array.isArray(links)) {\n for (const entry of links) {\n if (typeof entry === \"string\") {\n linkList.push(entry);\n }\n }\n } else if (links && typeof links === \"object\") {\n for (const [alias, target] of Object.entries(links as Record<string, unknown>)) {\n if (typeof target === \"string\") {\n linkList.push(`${alias}|${target}`);\n }\n }\n }\n\n for (const aliasEntry of linkList) {\n const alias = aliasEntry.split(\"|\");\n const name0 = alias[0];\n const name1 = alias[1];\n if (!name0 || !name1) {\n continue;\n }\n const normal0 = normalizeName(name0);\n const normal1 = normalizeName(name1);\n linkStore[normal0] = normal1;\n nameStore[normal0] = name0;\n linkStore[normal1] = normal0;\n nameStore[normal1] = name1;\n sortedZoneNamesCache = null;\n }\n}\n\nfunction addCountries(data: unknown): void {\n if (Array.isArray(data)) {\n for (const item of data) {\n if (typeof item !== \"string\") {\n continue;\n }\n const split = item.split(\"|\");\n const code = (split[0] ?? \"\").toUpperCase();\n const zones = (split[1] ?? \"\").split(\" \").filter(Boolean);\n if (code) {\n countryStore[code] = { name: code, zones };\n }\n }\n return;\n }\n\n if (data && typeof data === \"object\") {\n for (const [codeKey, value] of Object.entries(data as Record<string, unknown>)) {\n const code = codeKey.toUpperCase();\n if (Array.isArray(value)) {\n countryStore[code] = {\n name: code,\n zones: value.filter((v): v is string => typeof v === \"string\"),\n };\n continue;\n }\n if (value && typeof value === \"object\") {\n const zones = (value as { zones?: unknown }).zones;\n if (Array.isArray(zones)) {\n countryStore[code] = {\n name: code,\n zones: zones.filter((v): v is string => typeof v === \"string\"),\n };\n }\n }\n }\n }\n}\n\nfunction getZoneRecord(name: string, caller?: typeof getZoneRecord): InternalZone | null {\n ensureIndexBuilt();\n const normalized = normalizeName(normalizeTz(name));\n const cached = zoneWrapperCache.get(name);\n if (cached instanceof InternalZone) return cached;\n if (normalized in zoneStore || materializeZone(normalized)) {\n const r = new InternalZone(nameStore[normalized] ?? name, normalized);\n zoneWrapperCache.set(name, r);\n return r;\n }\n const linkTarget = resolveLink(normalized);\n if (linkTarget && caller !== getZoneRecord) {\n const target = getZoneRecord(linkTarget, getZoneRecord);\n if (target) {\n const alias = new InternalZone(nameStore[normalized] ?? name, normalizeName(target.name));\n zoneWrapperCache.set(name, alias);\n return alias;\n }\n }\n return null;\n}\n\nfunction getZone(name: string): MomentTzZone | null {\n return getZoneRecord(name);\n}\n\nfunction getAbbr(tz: string, ts: number): string {\n if (tz === \"UTC\") {\n return \"UTC\";\n }\n if (tz === \"GMT\") {\n return \"GMT\";\n }\n const d = new Date(ts);\n for (const loc of ABBR_LOCALES) {\n try {\n const full = d.toLocaleString(loc, { timeZone: tz, timeZoneName: \"short\" });\n const m = full.match(/\\s(\\S+)$/);\n if (m) {\n const abbr = m[1] ?? \"\";\n if (/^[A-Z]{2,5}$/.test(abbr) && abbr !== \"Time\") {\n return abbr;\n }\n }\n } catch {\n // skip\n }\n }\n const offset = getOffset(tz, ts);\n const abs = Math.abs(offset);\n const hrs = Math.floor(abs / 60);\n const min = abs % 60;\n const sign = offset >= 0 ? \"+\" : \"-\";\n return `${sign}${String(hrs).padStart(2, \"0\")}${min ? String(min).padStart(2, \"0\") : \"00\"}`;\n}\n\nfunction getOffset(tz: string, timestamp: number): number {\n tz = normalizeTz(tz);\n let domain = offsetCache.get(tz);\n if (!domain) {\n domain = new Map();\n offsetCache.set(tz, domain);\n }\n\n const cached = domain.get(timestamp);\n if (cached !== undefined) {\n return cached;\n }\n\n if (domain.size >= MAX_DOMAIN_CACHE_SIZE) {\n const first = domain.keys().next().value;\n if (first !== undefined) {\n domain.delete(first);\n }\n }\n\n const d = new Date(timestamp);\n const parts = d.toLocaleString(\"en-US\", {\n timeZone: tz,\n timeZoneName: \"longOffset\",\n });\n\n const m = parts.match(/GMT([+-]\\d{1,2})(?::(\\d{2}))?/);\n let offset = 0;\n if (m) {\n const hrs = parseInt(m[1] ?? \"0\", 10);\n const min = m[2] ? parseInt(m[2], 10) : 0;\n const s = hrs >= 0 ? 1 : -1;\n offset = hrs * 60 + s * min;\n }\n\n domain.set(timestamp, offset);\n return offset;\n}\n\nfunction hasExplicitOffset(input: string): boolean {\n return /(Z|[+-]\\d{2}:?\\d{2})\\s*$/.test(input.trim());\n}\n\nfunction getNames(): string[] {\n ensureIndexBuilt();\n if (sortedZoneNamesCache) return [...sortedZoneNamesCache];\n const out = new Set<string>();\n for (const [, entry] of _zoneIdx) out.add(entry.name);\n for (const [, name] of _linkNameIdx) out.add(name);\n for (const key of Object.keys(nameStore)) {\n if (nameStore[key] && (zoneStore[key] || resolveLink(key))) out.add(nameStore[key]);\n }\n for (const name of Object.keys(ZONE_ALIAS)) {\n out.add(name);\n out.add(ZONE_ALIAS[name]);\n }\n sortedZoneNamesCache = [...out].sort();\n return [...sortedZoneNamesCache];\n}\n\nfunction getCountryNames(): string[] {\n ensureIndexBuilt();\n const out = new Set([..._countryIdx.keys()]);\n for (const key of Object.keys(countryStore)) out.add(key);\n return [...out].sort();\n}\n\nfunction zonesForCountry(\n code: string,\n withOffset?: boolean,\n): string[] | CountryWithOffset[] | null {\n ensureIndexBuilt();\n const upper = code.toUpperCase();\n let zones = countryStore[upper]?.zones ?? _countryIdx.get(upper);\n if (!zones) return null;\n const sorted = [...zones].sort();\n if (withOffset) {\n const now = Date.now();\n return sorted\n .map((name) => {\n const z = getZone(name);\n return z ? { name, offset: z.utcOffset(now) } : null;\n })\n .filter((e): e is CountryWithOffset => e !== null);\n }\n return sorted;\n}\n\nfunction isZoneName(s: string): boolean {\n const u = s.toUpperCase();\n if (u === \"UTC\" || u === \"GMT\") return true;\n ensureIndexBuilt();\n const n = normalizeName(normalizeTz(s));\n return n in zoneStore || _zoneIdx.has(n) || !!resolveLink(n);\n}\n\nfunction ensureIndexBuilt(): void {\n if (indexBuilt || !builtinZoneDataLoaded) return;\n indexBuilt = true;\n\n const nt = _nameTable;\n\n // Check for delta dictionary header line (!D|...)\n let pos = 0;\n if (\n _zonesBlob.charCodeAt(0) === 33 &&\n _zonesBlob.charCodeAt(1) === 68 &&\n _zonesBlob.charCodeAt(2) === 124\n ) {\n const nl = _zonesBlob.indexOf(\"\\n\", 0);\n if (nl >= 0) {\n const header = _zonesBlob.slice(0, nl);\n const dp = header.split(\"|\");\n if (dp[0] === \"!D\") {\n _deltaDict = (dp[1] ?? \"\").split(\" \").filter(Boolean).map(unpackBase60);\n }\n pos = nl + 1;\n }\n }\n\n // Build zone index from ID-based blob\n while (pos < _zonesBlob.length) {\n const start = pos;\n const nl = _zonesBlob.indexOf(\"\\n\", pos);\n const end = nl >= 0 ? nl : _zonesBlob.length;\n pos = nl >= 0 ? nl + 1 : _zonesBlob.length;\n if (start === end) continue;\n const pipe = _zonesBlob.indexOf(\"|\", start);\n if (pipe < 0 || pipe >= end) continue;\n const idStr = _zonesBlob.slice(start, pipe);\n const id = charCodeToInt(idStr.charCodeAt(0)) * 60 + charCodeToInt(idStr.charCodeAt(1));\n const name = nt[id] ?? \"\";\n if (name) _zoneIdx.set(normalizeName(name), { name, start, end });\n }\n\n // Build link index from ID-based blob\n pos = 0;\n while (pos < _linksBlob.length) {\n const nl = _linksBlob.indexOf(\"\\n\", pos);\n const line = nl >= 0 ? _linksBlob.slice(pos, nl) : _linksBlob.slice(pos);\n pos = nl >= 0 ? nl + 1 : _linksBlob.length;\n if (!line) continue;\n const pipe = line.indexOf(\"|\");\n if (pipe < 0) continue;\n const fromId = line.slice(0, pipe),\n toId = line.slice(pipe + 1);\n if (fromId && toId) {\n const fi = charCodeToInt(fromId.charCodeAt(0)) * 60 + charCodeToInt(fromId.charCodeAt(1));\n const ti = charCodeToInt(toId.charCodeAt(0)) * 60 + charCodeToInt(toId.charCodeAt(1));\n const from = nt[fi] ?? \"\",\n to = nt[ti] ?? \"\";\n if (from && to) {\n const nf = normalizeName(from),\n ntNorm = normalizeName(to);\n _linkIdx.set(nf, ntNorm);\n _linkIdx.set(ntNorm, nf);\n _linkNameIdx.set(nf, from);\n _linkNameIdx.set(ntNorm, to);\n }\n }\n }\n\n // Build country index from ID-based blob\n pos = 0;\n while (pos < _countriesBlob.length) {\n const nl = _countriesBlob.indexOf(\"\\n\", pos);\n const line = nl >= 0 ? _countriesBlob.slice(pos, nl) : _countriesBlob.slice(pos);\n pos = nl >= 0 ? nl + 1 : _countriesBlob.length;\n if (!line) continue;\n const pipe = line.indexOf(\"|\");\n if (pipe < 0) continue;\n const code = line.slice(0, pipe).toUpperCase();\n const zones = line\n .slice(pipe + 1)\n .split(\" \")\n .filter(Boolean)\n .map((idStr) => nt[parseInt(idStr, 10)] ?? \"\")\n .filter(Boolean);\n if (code && zones.length > 0) _countryIdx.set(code, zones);\n }\n}\n\nfunction materializeZone(normalized: string): boolean {\n const entry = _zoneIdx.get(normalized);\n if (!entry) return false;\n if (normalized in zoneStore) return true;\n const line = _zonesBlob.slice(entry.start, entry.end);\n const pipe = line.indexOf(\"|\");\n addPackedZoneEntry(entry.name, entry.name + line.slice(pipe));\n getDecodedZonePayload(normalized);\n return true;\n}\n\nfunction resolveLink(normalized: string): string | undefined {\n return linkStore[normalized] ?? _linkIdx.get(normalized);\n}\n\nfunction loadData(data: TimezoneDataBundle): void {\n addZone(data.zones);\n addLink(data.links);\n addCountries(data.countries);\n}\n\nfunction ensureBuiltinZoneData(\n moment?: MomentLike,\n data?: {\n version: string;\n tzVersion: string;\n zonesBlob: string;\n linksBlob: string;\n countriesBlob: string;\n namesBlob?: string;\n },\n): void {\n if (builtinZoneDataLoaded || !data) {\n return;\n }\n _zonesBlob = data.zonesBlob;\n _linksBlob = data.linksBlob;\n _countriesBlob = data.countriesBlob;\n if (data.namesBlob) _nameTable = data.namesBlob.split(\"\\n\");\n if (moment?.tz) {\n moment.tz.dataVersion = data.version;\n if (data.tzVersion) {\n moment.tz.version = data.tzVersion;\n }\n }\n builtinZoneDataLoaded = true;\n}\n\nexport function installTimezone(\n moment: MomentLike,\n data?: {\n version: string;\n tzVersion: string;\n zonesBlob: string;\n linksBlob: string;\n countriesBlob: string;\n namesBlob?: string;\n },\n): MomentLike {\n if (moment.tz) {\n return moment;\n }\n\n ensureBuiltinZoneData(moment, data);\n\n moment.momentProperties.push(\"_z\");\n\n function parseInZone(input: string, zone: string, format?: string): MomentInstance {\n const parsed = format ? (moment as any).utc(input, format) : (moment as any).utc(input);\n if (!parsed.isValid()) {\n return parsed;\n }\n const y = parsed.year(),\n M = parsed.month(),\n d = parsed.date();\n const h = parsed.hour(),\n min = parsed.minute(),\n s = parsed.second(),\n ms = parsed.millisecond();\n const zoneInfo = getZone(zone);\n\n if (zoneInfo instanceof InternalZone) {\n const base = Date.UTC(y, M, d, h, min, s, ms);\n const offset = zoneInfo.parse(base);\n const result = moment(base + offset * 60000);\n const ro = zoneInfo.utcOffset(result.valueOf());\n result.utcOffset(ro ? -ro : 0, false);\n result._z = zoneInfo;\n return result;\n }\n\n const guess = Date.UTC(y, M, d, h, min, s, ms);\n const offsets = new Set<number>(\n [guess, Date.UTC(y, M, d), Date.UTC(y, M, d, 12), Date.UTC(y, M, d - 1, 12)].map((r) =>\n getOffset(zone, r),\n ),\n );\n for (const o of [...offsets]) {\n offsets.add(o + 30);\n offsets.add(o - 30);\n }\n const sorted = [...offsets].sort((a, b) => b - a);\n let bestTs = guess,\n bestOff = sorted[0] ?? 0,\n found = false;\n for (const off of sorted) {\n const ct = guess - off * 60000;\n if (getOffset(zone, ct) !== off) {\n continue;\n }\n try {\n const wp = new Date(ct).toLocaleString(\"en-US\", {\n timeZone: zone,\n hour12: false,\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n const p = wp.match(/^(\\d{2}):(\\d{2}):(\\d{2})$/);\n if (p && +p[1] === h && +p[2] === min && +p[3] === s) {\n bestTs = ct;\n bestOff = off;\n found = true;\n break;\n }\n } catch {}\n }\n if (!found) {\n const offA = getOffset(zone, guess);\n const offB = getOffset(zone, guess - offA * 60000);\n bestOff = Math.max(offA, offB);\n bestTs = guess + Math.abs(offB - offA) * 60000 - bestOff * 60000;\n }\n\n const result = moment(bestTs);\n result.utcOffset(bestOff, false);\n result._z = zoneInfo ?? {\n name: zone,\n abbr: (t: number) => getAbbr(zone, t),\n offset: () => -bestOff,\n utcOffset: () => -bestOff,\n parse: () => -bestOff,\n };\n return result;\n }\n\n function momentTz(\n input?: unknown,\n foz?: unknown,\n zos?: unknown,\n fourth?: unknown,\n ): MomentInstance {\n if (typeof foz === \"string\") {\n if (isZoneName(foz)) {\n const tz = normalizeTz(foz);\n if (input == null) {\n return moment().tz(tz);\n }\n if (typeof input === \"string\" && !hasExplicitOffset(input)) {\n return parseInZone(input, tz);\n }\n return moment(input).tz(tz);\n }\n if (typeof input === \"string\") {\n if (typeof zos === \"string\" && isZoneName(zos)) {\n return parseInZone(input, normalizeTz(zos), foz);\n }\n if (typeof zos === \"boolean\" && typeof fourth === \"string\" && isZoneName(fourth)) {\n return parseInZone(input, normalizeTz(fourth), foz);\n }\n return moment(input, foz);\n }\n }\n if (typeof input === \"string\") {\n return moment().tz(input);\n }\n return input != null ? moment(input) : moment();\n }\n\n function fnTz(this: MomentInstance, tz?: string, keepTime?: boolean): MomentInstance | string {\n if (tz === undefined) {\n return this._z ? this._z.name : Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n const zi = getZone(normalizeTz(tz));\n if (!zi) {\n return this.clone();\n }\n const m = this.clone();\n m._z = zi;\n const to = -zi.utcOffset(m.valueOf());\n m.utcOffset(to ? to : 0, keepTime);\n return m;\n }\n\n moment.tz = momentTz as MomentTz;\n moment.fn.tz = fnTz as unknown as (this: unknown, tz?: string, keepTime?: boolean) => unknown;\n moment.defaultZone = null;\n\n moment.tz.version = data?.tzVersion || \"0.6.2\";\n moment.tz.dataVersion = data?.version || \"\";\n moment.tz.Zone = CompatZone;\n moment.tz._zones = zoneStore;\n moment.tz._links = linkStore;\n moment.tz._names = nameStore;\n moment.tz._countries = countryStore;\n moment.tz.unpack = unpack;\n moment.tz.unpackBase60 = unpackBase60;\n moment.tz.load = function (bundle: TimezoneDataBundle): void {\n loadData(bundle);\n moment.tz!.dataVersion = bundle.version ?? \"\";\n };\n moment.tz.add = function (zoneData: unknown): void {\n addZone(zoneData);\n };\n moment.tz.link = function (links: unknown): void {\n addLink(links);\n };\n moment.tz.zone = function (name: string): MomentTzZone | null {\n return getZone(name);\n };\n moment.tz.zoneExists = function (name: string): boolean {\n return !!getZone(name);\n };\n moment.tz.guess = function (_preferCache?: boolean): string {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || \"UTC\";\n };\n moment.tz.names = function (): string[] {\n return getNames();\n };\n moment.tz.countries = function (): string[] {\n return getCountryNames();\n };\n moment.tz.zonesForCountry = function (\n code: string,\n withOffset?: boolean,\n ): string[] | CountryWithOffset[] | null {\n return zonesForCountry(code, withOffset);\n };\n moment.tz.setDefault = function (tz?: string): MomentLike {\n moment.defaultZone = tz ? normalizeTz(tz) : undefined;\n return moment;\n };\n Object.defineProperty(moment.tz, \"moveInvalidForward\", {\n get() {\n return timezoneFlags.moveInvalidForward;\n },\n set(value: boolean) {\n timezoneFlags.moveInvalidForward = !!value;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(moment.tz, \"moveAmbiguousForward\", {\n get() {\n return timezoneFlags.moveAmbiguousForward;\n },\n set(value: boolean) {\n timezoneFlags.moveAmbiguousForward = !!value;\n },\n enumerable: true,\n configurable: true,\n });\n\n const _zn = moment.fn.zoneName;\n const _za = moment.fn.zoneAbbr;\n\n moment.fn.isDST = function (this: { _z?: MomentTzZone | null; valueOf(): number }): boolean {\n const z = this._z;\n if (!z) {\n return false;\n }\n const ts = this.valueOf();\n const y = new Date(ts).getUTCFullYear();\n const jan = Date.UTC(y, 0, 1);\n const jul = Date.UTC(y, 6, 1);\n if (z instanceof InternalZone) {\n return z.utcOffset(ts) !== Math.max(z.utcOffset(jan), z.utcOffset(jul));\n }\n return getOffset(z.name, ts) !== Math.min(getOffset(z.name, jan), getOffset(z.name, jul));\n } as unknown as (this: unknown) => boolean;\n moment.fn.zoneName = function (this: { _z?: MomentTzZone | null; valueOf(): number }): string {\n return this._z ? this._z.abbr(this.valueOf()) : _zn ? _zn.call(this) : \"\";\n } as unknown as (this: unknown) => string;\n moment.fn.zoneAbbr = function (this: { _z?: MomentTzZone | null; valueOf(): number }): string {\n return this._z ? this._z.abbr(this.valueOf()) : _za ? _za.call(this) : \"\";\n } as unknown as (this: unknown) => string;\n\n return moment;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAwB;;;AC8GxB,IAAM,cAAc,oBAAI,IAAiC;AACzD,IAAM,wBAAwB;AAE9B,IAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,aAAqC;AAAA,EACzC,iBAAiB;AACnB;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,YAAY,EAAE,QAAQ,OAAO,GAAG;AAC9C;AAEA,SAAS,YAAYA,KAAoB;AACvC,QAAM,IAAIA,IAAG,YAAY;AACzB,MAAI,MAAM,SAAS,MAAM,OAAO;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,WAAWA,GAAE,KAAKA;AAC3B;AAEA,SAAS,cAAc,UAA0B;AAC/C,MAAI,WAAW,IAAI;AACjB,WAAO,WAAW;AAAA,EACpB;AACA,MAAI,WAAW,IAAI;AACjB,WAAO,WAAW;AAAA,EACpB;AACA,SAAO,WAAW;AACpB;AAEA,SAAS,aAAa,OAAuB;AAC3C,MAAI,IAAI;AACR,QAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,QAAM,QAAQ,MAAM,CAAC,KAAK;AAC1B,QAAM,aAAa,MAAM,CAAC,KAAK;AAC/B,MAAI,aAAa;AACjB,MAAI,MAAM;AACV,MAAI,OAAO;AAEX,MAAI,MAAM,WAAW,CAAC,MAAM,IAAI;AAC9B,QAAI;AACJ,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,QAAQ,KAAK;AAC5B,UAAM,KAAK,MAAM,cAAc,MAAM,WAAW,CAAC,CAAC;AAAA,EACpD;AAEA,OAAK,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AACtC,kBAAc;AACd,WAAO,cAAc,WAAW,WAAW,CAAC,CAAC,IAAI;AAAA,EACnD;AAEA,SAAO,MAAM;AACf;AAEA,SAAS,WAAW,QAA4B;AAC9C,SAAO,OAAO,IAAI,CAAC,UAAU,aAAa,KAAK,CAAC;AAClD;AAEA,SAAS,WAAc,QAAa,SAAwB;AAC1D,QAAM,MAAW,IAAI,MAAM,QAAQ,MAAM;AACzC,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,QAAI,CAAC,IAAI,OAAO,QAAQ,CAAC,CAAC;AAAA,EAC5B;AACA,SAAO;AACT;AAMA,SAAS,mBAAmB,SAA2B;AACrD,MAAI,QAAQ,CAAC,MAAM,KAAK;AACtB,WAAO,WAAW,QAAQ,MAAM,EAAE,CAAC;AAAA,EACrC;AACA,QAAM,UAAoB,CAAC;AAC3B,MAAI,MAAM;AACV,QAAM,MAAM,QAAQ;AACpB,SAAO,MAAM,KAAK;AAChB,UAAM,KAAK,QAAQ,GAAG;AACtB,QAAI,OAAO,OAAO,MAAM,KAAK,KAAK;AAChC,YAAM,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AACnD,YAAM,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AACnD,YAAM,QAAQ,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC,IAAI;AAC3D,eAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,gBAAQ,KAAK,GAAG,CAAC;AAAA,MACnB;AACA,aAAO;AAAA,IACT,WAAW,OAAO,OAAO,MAAM,KAAK,KAAK;AACvC,YAAM,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AACnD,YAAM,QAAQ,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC,IAAI;AAC3D,eAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,aAAO;AAAA,IACT,WAAW,OAAO,OAAO,MAAM,KAAK,KAAK;AACvC,YAAM,QAAQ,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AACvD,YAAM,QAAQ,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC,IAAI;AAC3D,YAAM,YAAY;AAClB,eAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,gBAAQ,MAAM,QAAQ,KAAK,SAAS;AAAA,MACtC;AACA,aAAO;AAAA,IACT,OAAO;AACL,cAAQ,KAAK,cAAc,QAAQ,WAAW,GAAG,CAAC,CAAC;AACnD;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAGA,SAAS,YAAY,KAAuB;AAC1C,QAAM,SAAS,IAAI,MAAM,GAAG;AAC5B,MAAI,WAAW,SAAS,KAAK,OAAO,SAAS,GAAG;AAC9C,WAAO,OAAO,IAAI,CAAC,MAAM;AACvB,UAAI,MAAM,GAAI,QAAO;AACrB,aAAO,WAAW,aAAa,CAAC,CAAC,KAAK;AAAA,IACxC,CAAC;AAAA,EACH;AACA,SAAO,WAAW,MAAM;AAC1B;AAEA,SAAS,OAAO,QAA8B;AAC5C,QAAM,OAAO,OAAO,MAAM,GAAG;AAC7B,QAAM,UAAU,YAAY,KAAK,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC;AACrD,QAAM,UAAU,mBAAmB,KAAK,CAAC,KAAK,EAAE;AAChD,QAAM,SAAS,YAAY,KAAK,CAAC,KAAK,EAAE;AAExC,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,WAAO,CAAC,IAAI,KAAK,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,GAAK;AAAA,EACjE;AACA,SAAO,QAAQ,SAAS,CAAC,IAAI,OAAO;AAEpC,SAAO;AAAA,IACL,MAAM,KAAK,CAAC,KAAK;AAAA,IACjB,OAAO,YAAY,KAAK,CAAC,KAAK,IAAI,MAAM,GAAG,GAAG,OAAO;AAAA,IACrD,SAAS,WAAW,SAAS,OAAO;AAAA,IACpC;AAAA,IACA,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI;AAAA,EACrC;AACF;AAEA,SAAS,QAAQ,KAAa,KAAgC;AAC5D,QAAM,MAAM,IAAI;AAChB,MAAI,QAAQ,GAAG;AACb,WAAO;AAAA,EACT;AACA,MAAI,MAAM,IAAI,CAAC,GAAG;AAChB,WAAO;AAAA,EACT;AACA,MAAI,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,OAAO,qBAAqB,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI;AACtF,WAAO,MAAM;AAAA,EACf;AACA,MAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI;AAC9B,WAAO;AAAA,EACT;AAEA,MAAI,KAAK;AACT,MAAI,KAAK,MAAM;AACf,SAAO,KAAK,KAAK,GAAG;AAClB,UAAM,MAAM,KAAK,OAAO,KAAK,MAAM,CAAC;AACpC,SAAK,IAAI,GAAG,KAAK,MAAM,KAAK;AAC1B,WAAK;AAAA,IACP,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,eAAN,MAA2C;AAAA,EAOzC,YAAY,MAAc,cAAsB;AAJhD,SAAQ,YAAY;AACpB,SAAQ,YAAY,OAAO;AAC3B,SAAQ,UAAU,OAAO;AAGvB,SAAK,OAAO;AACZ,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,OAAO,WAA2B;AAChC,UAAM,SAAS,CAAC;AAChB,QAAI,KAAK,aAAa,KAAK,UAAU,KAAK,aAAa,SAAS,KAAK,SAAS;AAC5E,aAAO,KAAK;AAAA,IACd;AACA,UAAM,SAAS,sBAAsB,KAAK,YAAY,EAAE;AACxD,UAAM,MAAM,QAAQ,QAAQ,MAAM;AAClC,QAAI,OAAO,GAAG;AACZ,WAAK,YAAY;AACjB,WAAK,YACH,MAAM,IAAK,OAAO,MAAM,CAAC,KAAK,OAAO,oBAAqB,OAAO;AACnE,WAAK,UAAU,OAAO,GAAG,KAAK,OAAO;AAAA,IACvC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,YAAsB;AACpB,UAAM,MAAgB,CAAC;AACvB,eAAW,CAAC,MAAM,OAAO,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC1D,UAAI,QAAQ,MAAM,SAAS,KAAK,IAAI,GAAG;AACrC,YAAI,KAAK,IAAI;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAA2B;AAC/B,UAAM,UAAU,sBAAsB,KAAK,YAAY;AACvD,UAAM,SAAS,CAAC;AAChB,UAAM,MAAM,QAAQ,OAAO,SAAS;AACpC,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,UAAI,SAAS,QAAQ,QAAQ,CAAC,KAAK;AACnC,YAAM,aAAa,QAAQ,QAAQ,IAAI,CAAC,KAAK;AAC7C,YAAM,aAAa,QAAQ,QAAQ,IAAI,IAAI,IAAI,CAAC,KAAK;AAErD,UAAI,SAAS,cAAc,cAAc,sBAAsB;AAC7D,iBAAS;AAAA,MACX,WAAW,SAAS,cAAc,cAAc,oBAAoB;AAClE,iBAAS;AAAA,MACX;AAEA,UAAI,UAAU,QAAQ,OAAO,CAAC,KAAK,OAAO,qBAAqB,SAAS,KAAO;AAC7E,eAAO,QAAQ,QAAQ,CAAC,KAAK;AAAA,MAC/B;AAAA,IACF;AACA,WAAO,QAAQ,QAAQ,GAAG,KAAK;AAAA,EACjC;AAAA,EAEA,KAAK,IAAoB;AACvB,UAAM,MAAM,KAAK,OAAO,EAAE;AAC1B,UAAM,UAAU,sBAAsB,KAAK,YAAY;AACvD,WAAO,OAAO,IAAK,QAAQ,MAAM,GAAG,KAAK,KAAM;AAAA,EACjD;AAAA,EAEA,OAAO,IAAoB;AACzB,WAAO,KAAK,UAAU,EAAE;AAAA,EAC1B;AAAA,EAEA,UAAU,IAAoB;AAC5B,UAAM,MAAM,KAAK,OAAO,EAAE;AAC1B,UAAM,UAAU,sBAAsB,KAAK,YAAY;AACvD,WAAO,OAAO,IAAK,QAAQ,QAAQ,GAAG,KAAK,IAAK;AAAA,EAClD;AACF;AAEA,IAAM,aAAN,MAAyC;AAAA,EAOvC,YAAY,cAAuB;AAJnC,SAAQ,KAAK;AACb,SAAQ,KAAK,OAAO;AACpB,SAAQ,KAAK,OAAO;AAGlB,UAAM,IAAI,OAAO,gBAAgB,UAAU;AAC3C,SAAK,OAAO,EAAE;AACd,SAAK,IAAI,yBAAyB,CAAC;AAAA,EACrC;AAAA,EAEQ,GAAG,IAAoB;AAC7B,UAAM,IAAI,CAAC;AACX,QAAI,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,IAAI,KAAK,IAAI;AAC/C,aAAO,KAAK;AAAA,IACd;AACA,UAAM,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAM;AACpC,QAAI,OAAO,GAAG;AACZ,WAAK,KAAK;AACV,WAAK,KAAK,MAAM,IAAI,KAAK,EAAE,OAAO,MAAM,CAAC,IAAK,OAAO;AACrD,WAAK,KAAK,KAAK,EAAE,OAAO,GAAG;AAAA,IAC7B;AACA,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,WAAO,CAAC;AAAA,EACV;AAAA,EACA,KAAK,IAAY;AACf,UAAM,IAAI,KAAK,GAAG,EAAE;AACpB,WAAO,KAAK,IAAI,KAAK,EAAE,MAAM,CAAC,IAAK;AAAA,EACrC;AAAA,EACA,OAAO,IAAY;AACjB,WAAO,KAAK,UAAU,EAAE;AAAA,EAC1B;AAAA,EACA,UAAU,IAAY;AACpB,UAAM,IAAI,KAAK,GAAG,EAAE;AACpB,WAAO,KAAK,IAAI,KAAK,EAAE,QAAQ,CAAC,IAAK;AAAA,EACvC;AAAA,EACA,MAAM,IAAoB;AACxB,UAAM,SAAS,CAAC;AAChB,UAAM,MAAM,KAAK,EAAE,OAAO,SAAS;AACnC,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,UAAI,MAAM,KAAK,EAAE,QAAQ,CAAC;AAC1B,YAAM,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,KAAK;AACrC,YAAM,MAAM,KAAK,EAAE,QAAQ,IAAI,IAAI,IAAI,CAAC,KAAK;AAC7C,UAAI,MAAM,OAAO,cAAc,sBAAsB;AACnD,cAAM;AAAA,MACR,WAAW,MAAM,OAAO,cAAc,oBAAoB;AACxD,cAAM;AAAA,MACR;AACA,UAAI,SAAS,KAAK,EAAE,OAAO,CAAC,IAAK,MAAM,KAAO;AAC5C,eAAO,KAAK,EAAE,QAAQ,CAAC;AAAA,MACzB;AAAA,IACF;AACA,WAAO,KAAK,EAAE,QAAQ,GAAG;AAAA,EAC3B;AACF;AAGA,IAAI,aAAuB,CAAC;AAE5B,IAAM,YAA+E,uBAAO;AAAA,EAC1F;AACF;AACA,IAAM,YAAoC,uBAAO,OAAO,IAAI;AAC5D,IAAM,YAAoC,uBAAO,OAAO,IAAI;AAC5D,IAAM,eAAkE,uBAAO;AAAA,EAC7E;AACF;AACA,IAAM,mBAAmB,oBAAI,IAA0B;AACvD,IAAM,0BAA0B,oBAAI,IAAgC;AACpE,IAAM,iBAAiB,oBAAI,IAAoB;AAC/C,IAAM,gBAAgB;AAAA,EACpB,oBAAoB;AAAA,EACpB,sBAAsB;AACxB;AAEA,IAAI,wBAAwB;AAC5B,IAAI,aAAa;AACjB,IAAI,uBAAwC;AAG5C,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,iBAAiB;AAGrB,IAAI,aAAuB,CAAC;AAG5B,IAAM,WAAW,oBAAI,IAA0D;AAC/E,IAAM,WAAW,oBAAI,IAAoB;AACzC,IAAM,eAAe,oBAAI,IAAoB;AAC7C,IAAM,cAAc,oBAAI,IAAsB;AAE9C,SAAS,aAAa,OAAuB;AAC3C,QAAM,SAAS,eAAe,IAAI,KAAK;AACvC,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AACA,iBAAe,IAAI,OAAO,KAAK;AAC/B,SAAO;AACT;AAEA,SAAS,yBAAyB,UAA4C;AAC5E,QAAM,UAAU,SAAS,QAAQ,KAAK,CAAC,UAAU,QAAQ,SAAS,QAAQ,MAAM,IAC5E,WAAW,KAAK,SAAS,OAAO,IAChC,WAAW,KAAK,SAAS,OAAO;AACpC,SAAO;AAAA,IACL,OAAO,SAAS,MAAM,IAAI,CAAC,SAAS,aAAa,IAAI,CAAC;AAAA,IACtD;AAAA,IACA,QAAQ,aAAa,KAAK,SAAS,MAAM;AAAA,IACzC,YAAY,SAAS;AAAA,EACvB;AACF;AAEA,SAAS,sBAAsB,cAA0C;AACvE,QAAM,SAAS,wBAAwB,IAAI,YAAY;AACvD,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AACA,QAAM,SAAS,UAAU,YAAY;AACrC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,gCAAgC,YAAY,EAAE;AAAA,EAChE;AACA,MAAI;AACJ,MAAI,OAAO,WAAW,UAAU;AAC9B,cAAU,yBAAyB,OAAO,MAAM,CAAC;AAAA,EACnD,WAAW,QAAQ,QAAQ;AACzB,UAAM,WAAW;AACjB,UAAM,SAAmB,CAAC,SAAS,EAAE;AACrC,aAAS,IAAI,GAAG,IAAI,SAAS,GAAG,QAAQ,KAAK;AAC3C,aAAO,KAAK,OAAO,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;AAAA,IACxC;AACA,WAAO,OAAO,SAAS,CAAC,IAAI,OAAO;AACnC,cAAU,yBAAyB;AAAA,MACjC,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,MAClB;AAAA,MACA,YAAY,SAAS;AAAA,IACvB,CAAC;AAAA,EACH,OAAO;AACL,cAAU;AAAA,EACZ;AACA,YAAU,YAAY,IAAI;AAC1B,0BAAwB,IAAI,cAAc,OAAO;AACjD,SAAO;AACT;AAEA,SAAS,mBACP,MACA,OACM;AACN,QAAM,aAAa,cAAc,IAAI;AACrC,YAAU,UAAU,IAAI;AACxB,YAAU,UAAU,IAAI;AACxB,mBAAiB,OAAO,IAAI;AAC5B,0BAAwB,OAAO,UAAU;AACzC,yBAAuB;AACzB;AAEA,SAAS,QAAQ,QAAuB;AACtC,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,uBAAmB,MAAM,CAAC,KAAK,IAAI,MAAM;AACzC;AAAA,EACF;AACA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,eAAW,QAAQ,QAAQ;AACzB,cAAQ,IAAI;AAAA,IACd;AACA;AAAA,EACF;AACA,MAAI,UAAU,OAAO,WAAW,UAAU;AACxC,eAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,MAAiC,GAAG;AAC7E,UAAI,OAAO,UAAU,UAAU;AAC7B,gBAAQ,KAAK;AACb;AAAA,MACF;AACA,UAAI,SAAS,OAAO,UAAU,UAAU;AACtC,YAAI,QAAS,OAAmC;AAC9C,6BAAmB,MAAM,KAA4B;AAAA,QACvD,OAAO;AACL,gBAAM,QAAQ;AACd;AAAA,YACE;AAAA,YACA,yBAAyB;AAAA,cACvB;AAAA,cACA,OAAO,CAAC,GAAI,MAAM,SAAS,CAAC,CAAE;AAAA,cAC9B,SAAS,CAAC,GAAI,MAAM,WAAW,CAAC,CAAE;AAAA,cAClC,QAAQ,CAAC,GAAI,MAAM,UAAU,CAAC,CAAE;AAAA,cAChC,YAAY,MAAM,cAAc;AAAA,YAClC,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,QAAQ,OAAsB;AACrC,QAAM,WAAqB,CAAC;AAC5B,MAAI,OAAO,UAAU,UAAU;AAC7B,aAAS,KAAK,KAAK;AAAA,EACrB,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,eAAW,SAAS,OAAO;AACzB,UAAI,OAAO,UAAU,UAAU;AAC7B,iBAAS,KAAK,KAAK;AAAA,MACrB;AAAA,IACF;AAAA,EACF,WAAW,SAAS,OAAO,UAAU,UAAU;AAC7C,eAAW,CAAC,OAAO,MAAM,KAAK,OAAO,QAAQ,KAAgC,GAAG;AAC9E,UAAI,OAAO,WAAW,UAAU;AAC9B,iBAAS,KAAK,GAAG,KAAK,IAAI,MAAM,EAAE;AAAA,MACpC;AAAA,IACF;AAAA,EACF;AAEA,aAAW,cAAc,UAAU;AACjC,UAAM,QAAQ,WAAW,MAAM,GAAG;AAClC,UAAM,QAAQ,MAAM,CAAC;AACrB,UAAM,QAAQ,MAAM,CAAC;AACrB,QAAI,CAAC,SAAS,CAAC,OAAO;AACpB;AAAA,IACF;AACA,UAAM,UAAU,cAAc,KAAK;AACnC,UAAM,UAAU,cAAc,KAAK;AACnC,cAAU,OAAO,IAAI;AACrB,cAAU,OAAO,IAAI;AACrB,cAAU,OAAO,IAAI;AACrB,cAAU,OAAO,IAAI;AACrB,2BAAuB;AAAA,EACzB;AACF;AAEA,SAAS,aAAa,MAAqB;AACzC,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,eAAW,QAAQ,MAAM;AACvB,UAAI,OAAO,SAAS,UAAU;AAC5B;AAAA,MACF;AACA,YAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,YAAM,QAAQ,MAAM,CAAC,KAAK,IAAI,YAAY;AAC1C,YAAM,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO;AACxD,UAAI,MAAM;AACR,qBAAa,IAAI,IAAI,EAAE,MAAM,MAAM,MAAM;AAAA,MAC3C;AAAA,IACF;AACA;AAAA,EACF;AAEA,MAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,eAAW,CAAC,SAAS,KAAK,KAAK,OAAO,QAAQ,IAA+B,GAAG;AAC9E,YAAM,OAAO,QAAQ,YAAY;AACjC,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,qBAAa,IAAI,IAAI;AAAA,UACnB,MAAM;AAAA,UACN,OAAO,MAAM,OAAO,CAAC,MAAmB,OAAO,MAAM,QAAQ;AAAA,QAC/D;AACA;AAAA,MACF;AACA,UAAI,SAAS,OAAO,UAAU,UAAU;AACtC,cAAM,QAAS,MAA8B;AAC7C,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,uBAAa,IAAI,IAAI;AAAA,YACnB,MAAM;AAAA,YACN,OAAO,MAAM,OAAO,CAAC,MAAmB,OAAO,MAAM,QAAQ;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,cAAc,MAAc,QAAoD;AACvF,mBAAiB;AACjB,QAAM,aAAa,cAAc,YAAY,IAAI,CAAC;AAClD,QAAM,SAAS,iBAAiB,IAAI,IAAI;AACxC,MAAI,kBAAkB,aAAc,QAAO;AAC3C,MAAI,cAAc,aAAa,gBAAgB,UAAU,GAAG;AAC1D,UAAM,IAAI,IAAI,aAAa,UAAU,UAAU,KAAK,MAAM,UAAU;AACpE,qBAAiB,IAAI,MAAM,CAAC;AAC5B,WAAO;AAAA,EACT;AACA,QAAM,aAAa,YAAY,UAAU;AACzC,MAAI,cAAc,WAAW,eAAe;AAC1C,UAAM,SAAS,cAAc,YAAY,aAAa;AACtD,QAAI,QAAQ;AACV,YAAM,QAAQ,IAAI,aAAa,UAAU,UAAU,KAAK,MAAM,cAAc,OAAO,IAAI,CAAC;AACxF,uBAAiB,IAAI,MAAM,KAAK;AAChC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,QAAQ,MAAmC;AAClD,SAAO,cAAc,IAAI;AAC3B;AAEA,SAAS,QAAQA,KAAY,IAAoB;AAC/C,MAAIA,QAAO,OAAO;AAChB,WAAO;AAAA,EACT;AACA,MAAIA,QAAO,OAAO;AAChB,WAAO;AAAA,EACT;AACA,QAAM,IAAI,IAAI,KAAK,EAAE;AACrB,aAAW,OAAO,cAAc;AAC9B,QAAI;AACF,YAAM,OAAO,EAAE,eAAe,KAAK,EAAE,UAAUA,KAAI,cAAc,QAAQ,CAAC;AAC1E,YAAM,IAAI,KAAK,MAAM,UAAU;AAC/B,UAAI,GAAG;AACL,cAAM,OAAO,EAAE,CAAC,KAAK;AACrB,YAAI,eAAe,KAAK,IAAI,KAAK,SAAS,QAAQ;AAChD,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,QAAQ;AAAA,IAER;AAAA,EACF;AACA,QAAM,SAAS,UAAUA,KAAI,EAAE;AAC/B,QAAM,MAAM,KAAK,IAAI,MAAM;AAC3B,QAAM,MAAM,KAAK,MAAM,MAAM,EAAE;AAC/B,QAAM,MAAM,MAAM;AAClB,QAAM,OAAO,UAAU,IAAI,MAAM;AACjC,SAAO,GAAG,IAAI,GAAG,OAAO,GAAG,EAAE,SAAS,GAAG,GAAG,CAAC,GAAG,MAAM,OAAO,GAAG,EAAE,SAAS,GAAG,GAAG,IAAI,IAAI;AAC3F;AAEA,SAAS,UAAUA,KAAY,WAA2B;AACxD,EAAAA,MAAK,YAAYA,GAAE;AACnB,MAAI,SAAS,YAAY,IAAIA,GAAE;AAC/B,MAAI,CAAC,QAAQ;AACX,aAAS,oBAAI,IAAI;AACjB,gBAAY,IAAIA,KAAI,MAAM;AAAA,EAC5B;AAEA,QAAM,SAAS,OAAO,IAAI,SAAS;AACnC,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ,uBAAuB;AACxC,UAAM,QAAQ,OAAO,KAAK,EAAE,KAAK,EAAE;AACnC,QAAI,UAAU,QAAW;AACvB,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,QAAM,IAAI,IAAI,KAAK,SAAS;AAC5B,QAAM,QAAQ,EAAE,eAAe,SAAS;AAAA,IACtC,UAAUA;AAAA,IACV,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,IAAI,MAAM,MAAM,+BAA+B;AACrD,MAAI,SAAS;AACb,MAAI,GAAG;AACL,UAAM,MAAM,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE;AACpC,UAAM,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI;AACxC,UAAM,IAAI,OAAO,IAAI,IAAI;AACzB,aAAS,MAAM,KAAK,IAAI;AAAA,EAC1B;AAEA,SAAO,IAAI,WAAW,MAAM;AAC5B,SAAO;AACT;AAEA,SAAS,kBAAkB,OAAwB;AACjD,SAAO,2BAA2B,KAAK,MAAM,KAAK,CAAC;AACrD;AAEA,SAAS,WAAqB;AAC5B,mBAAiB;AACjB,MAAI,qBAAsB,QAAO,CAAC,GAAG,oBAAoB;AACzD,QAAM,MAAM,oBAAI,IAAY;AAC5B,aAAW,CAAC,EAAE,KAAK,KAAK,SAAU,KAAI,IAAI,MAAM,IAAI;AACpD,aAAW,CAAC,EAAE,IAAI,KAAK,aAAc,KAAI,IAAI,IAAI;AACjD,aAAW,OAAO,OAAO,KAAK,SAAS,GAAG;AACxC,QAAI,UAAU,GAAG,MAAM,UAAU,GAAG,KAAK,YAAY,GAAG,GAAI,KAAI,IAAI,UAAU,GAAG,CAAC;AAAA,EACpF;AACA,aAAW,QAAQ,OAAO,KAAK,UAAU,GAAG;AAC1C,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,WAAW,IAAI,CAAC;AAAA,EAC1B;AACA,yBAAuB,CAAC,GAAG,GAAG,EAAE,KAAK;AACrC,SAAO,CAAC,GAAG,oBAAoB;AACjC;AAEA,SAAS,kBAA4B;AACnC,mBAAiB;AACjB,QAAM,MAAM,oBAAI,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC;AAC3C,aAAW,OAAO,OAAO,KAAK,YAAY,EAAG,KAAI,IAAI,GAAG;AACxD,SAAO,CAAC,GAAG,GAAG,EAAE,KAAK;AACvB;AAEA,SAAS,gBACP,MACA,YACuC;AAzwBzC;AA0wBE,mBAAiB;AACjB,QAAM,QAAQ,KAAK,YAAY;AAC/B,MAAI,UAAQ,kBAAa,KAAK,MAAlB,mBAAqB,UAAS,YAAY,IAAI,KAAK;AAC/D,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,SAAS,CAAC,GAAG,KAAK,EAAE,KAAK;AAC/B,MAAI,YAAY;AACd,UAAM,MAAM,KAAK,IAAI;AACrB,WAAO,OACJ,IAAI,CAAC,SAAS;AACb,YAAM,IAAI,QAAQ,IAAI;AACtB,aAAO,IAAI,EAAE,MAAM,QAAQ,EAAE,UAAU,GAAG,EAAE,IAAI;AAAA,IAClD,CAAC,EACA,OAAO,CAAC,MAA8B,MAAM,IAAI;AAAA,EACrD;AACA,SAAO;AACT;AAEA,SAAS,WAAW,GAAoB;AACtC,QAAM,IAAI,EAAE,YAAY;AACxB,MAAI,MAAM,SAAS,MAAM,MAAO,QAAO;AACvC,mBAAiB;AACjB,QAAM,IAAI,cAAc,YAAY,CAAC,CAAC;AACtC,SAAO,KAAK,aAAa,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC7D;AAEA,SAAS,mBAAyB;AAChC,MAAI,cAAc,CAAC,sBAAuB;AAC1C,eAAa;AAEb,QAAM,KAAK;AAGX,MAAI,MAAM;AACV,MACE,WAAW,WAAW,CAAC,MAAM,MAC7B,WAAW,WAAW,CAAC,MAAM,MAC7B,WAAW,WAAW,CAAC,MAAM,KAC7B;AACA,UAAM,KAAK,WAAW,QAAQ,MAAM,CAAC;AACrC,QAAI,MAAM,GAAG;AACX,YAAM,SAAS,WAAW,MAAM,GAAG,EAAE;AACrC,YAAM,KAAK,OAAO,MAAM,GAAG;AAC3B,UAAI,GAAG,CAAC,MAAM,MAAM;AAClB,sBAAc,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,IAAI,YAAY;AAAA,MACxE;AACA,YAAM,KAAK;AAAA,IACb;AAAA,EACF;AAGA,SAAO,MAAM,WAAW,QAAQ;AAC9B,UAAM,QAAQ;AACd,UAAM,KAAK,WAAW,QAAQ,MAAM,GAAG;AACvC,UAAM,MAAM,MAAM,IAAI,KAAK,WAAW;AACtC,UAAM,MAAM,IAAI,KAAK,IAAI,WAAW;AACpC,QAAI,UAAU,IAAK;AACnB,UAAM,OAAO,WAAW,QAAQ,KAAK,KAAK;AAC1C,QAAI,OAAO,KAAK,QAAQ,IAAK;AAC7B,UAAM,QAAQ,WAAW,MAAM,OAAO,IAAI;AAC1C,UAAM,KAAK,cAAc,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,cAAc,MAAM,WAAW,CAAC,CAAC;AACtF,UAAM,OAAO,GAAG,EAAE,KAAK;AACvB,QAAI,KAAM,UAAS,IAAI,cAAc,IAAI,GAAG,EAAE,MAAM,OAAO,IAAI,CAAC;AAAA,EAClE;AAGA,QAAM;AACN,SAAO,MAAM,WAAW,QAAQ;AAC9B,UAAM,KAAK,WAAW,QAAQ,MAAM,GAAG;AACvC,UAAM,OAAO,MAAM,IAAI,WAAW,MAAM,KAAK,EAAE,IAAI,WAAW,MAAM,GAAG;AACvE,UAAM,MAAM,IAAI,KAAK,IAAI,WAAW;AACpC,QAAI,CAAC,KAAM;AACX,UAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,QAAI,OAAO,EAAG;AACd,UAAM,SAAS,KAAK,MAAM,GAAG,IAAI,GAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC5B,QAAI,UAAU,MAAM;AAClB,YAAM,KAAK,cAAc,OAAO,WAAW,CAAC,CAAC,IAAI,KAAK,cAAc,OAAO,WAAW,CAAC,CAAC;AACxF,YAAM,KAAK,cAAc,KAAK,WAAW,CAAC,CAAC,IAAI,KAAK,cAAc,KAAK,WAAW,CAAC,CAAC;AACpF,YAAM,OAAO,GAAG,EAAE,KAAK,IACrB,KAAK,GAAG,EAAE,KAAK;AACjB,UAAI,QAAQ,IAAI;AACd,cAAM,KAAK,cAAc,IAAI,GAC3B,SAAS,cAAc,EAAE;AAC3B,iBAAS,IAAI,IAAI,MAAM;AACvB,iBAAS,IAAI,QAAQ,EAAE;AACvB,qBAAa,IAAI,IAAI,IAAI;AACzB,qBAAa,IAAI,QAAQ,EAAE;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAGA,QAAM;AACN,SAAO,MAAM,eAAe,QAAQ;AAClC,UAAM,KAAK,eAAe,QAAQ,MAAM,GAAG;AAC3C,UAAM,OAAO,MAAM,IAAI,eAAe,MAAM,KAAK,EAAE,IAAI,eAAe,MAAM,GAAG;AAC/E,UAAM,MAAM,IAAI,KAAK,IAAI,eAAe;AACxC,QAAI,CAAC,KAAM;AACX,UAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,QAAI,OAAO,EAAG;AACd,UAAM,OAAO,KAAK,MAAM,GAAG,IAAI,EAAE,YAAY;AAC7C,UAAM,QAAQ,KACX,MAAM,OAAO,CAAC,EACd,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAI,CAAC,UAAU,GAAG,SAAS,OAAO,EAAE,CAAC,KAAK,EAAE,EAC5C,OAAO,OAAO;AACjB,QAAI,QAAQ,MAAM,SAAS,EAAG,aAAY,IAAI,MAAM,KAAK;AAAA,EAC3D;AACF;AAEA,SAAS,gBAAgB,YAA6B;AACpD,QAAM,QAAQ,SAAS,IAAI,UAAU;AACrC,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,cAAc,UAAW,QAAO;AACpC,QAAM,OAAO,WAAW,MAAM,MAAM,OAAO,MAAM,GAAG;AACpD,QAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,qBAAmB,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,IAAI,CAAC;AAC5D,wBAAsB,UAAU;AAChC,SAAO;AACT;AAEA,SAAS,YAAY,YAAwC;AAC3D,SAAO,UAAU,UAAU,KAAK,SAAS,IAAI,UAAU;AACzD;AAEA,SAAS,SAAS,MAAgC;AAChD,UAAQ,KAAK,KAAK;AAClB,UAAQ,KAAK,KAAK;AAClB,eAAa,KAAK,SAAS;AAC7B;AAEA,SAAS,sBACPC,SACA,MAQM;AACN,MAAI,yBAAyB,CAAC,MAAM;AAClC;AAAA,EACF;AACA,eAAa,KAAK;AAClB,eAAa,KAAK;AAClB,mBAAiB,KAAK;AACtB,MAAI,KAAK,UAAW,cAAa,KAAK,UAAU,MAAM,IAAI;AAC1D,MAAIA,WAAA,gBAAAA,QAAQ,IAAI;AACd,IAAAA,QAAO,GAAG,cAAc,KAAK;AAC7B,QAAI,KAAK,WAAW;AAClB,MAAAA,QAAO,GAAG,UAAU,KAAK;AAAA,IAC3B;AAAA,EACF;AACA,0BAAwB;AAC1B;AAEO,SAAS,gBACdA,SACA,MAQY;AACZ,MAAIA,QAAO,IAAI;AACb,WAAOA;AAAA,EACT;AAEA,wBAAsBA,SAAQ,IAAI;AAElC,EAAAA,QAAO,iBAAiB,KAAK,IAAI;AAEjC,WAAS,YAAY,OAAe,MAAc,QAAiC;AACjF,UAAM,SAAS,SAAUA,QAAe,IAAI,OAAO,MAAM,IAAKA,QAAe,IAAI,KAAK;AACtF,QAAI,CAAC,OAAO,QAAQ,GAAG;AACrB,aAAO;AAAA,IACT;AACA,UAAM,IAAI,OAAO,KAAK,GACpB,IAAI,OAAO,MAAM,GACjB,IAAI,OAAO,KAAK;AAClB,UAAM,IAAI,OAAO,KAAK,GACpB,MAAM,OAAO,OAAO,GACpB,IAAI,OAAO,OAAO,GAClB,KAAK,OAAO,YAAY;AAC1B,UAAM,WAAW,QAAQ,IAAI;AAE7B,QAAI,oBAAoB,cAAc;AACpC,YAAM,OAAO,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE;AAC5C,YAAM,SAAS,SAAS,MAAM,IAAI;AAClC,YAAMC,UAASD,QAAO,OAAO,SAAS,GAAK;AAC3C,YAAM,KAAK,SAAS,UAAUC,QAAO,QAAQ,CAAC;AAC9C,MAAAA,QAAO,UAAU,KAAK,CAAC,KAAK,GAAG,KAAK;AACpC,MAAAA,QAAO,KAAK;AACZ,aAAOA;AAAA,IACT;AAEA,UAAM,QAAQ,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE;AAC7C,UAAM,UAAU,IAAI;AAAA,MAClB,CAAC,OAAO,KAAK,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE;AAAA,QAAI,CAAC,MAChF,UAAU,MAAM,CAAC;AAAA,MACnB;AAAA,IACF;AACA,eAAW,KAAK,CAAC,GAAG,OAAO,GAAG;AAC5B,cAAQ,IAAI,IAAI,EAAE;AAClB,cAAQ,IAAI,IAAI,EAAE;AAAA,IACpB;AACA,UAAM,SAAS,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAChD,QAAI,SAAS,OACX,UAAU,OAAO,CAAC,KAAK,GACvB,QAAQ;AACV,eAAW,OAAO,QAAQ;AACxB,YAAM,KAAK,QAAQ,MAAM;AACzB,UAAI,UAAU,MAAM,EAAE,MAAM,KAAK;AAC/B;AAAA,MACF;AACA,UAAI;AACF,cAAM,KAAK,IAAI,KAAK,EAAE,EAAE,eAAe,SAAS;AAAA,UAC9C,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV,CAAC;AACD,cAAM,IAAI,GAAG,MAAM,2BAA2B;AAC9C,YAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG;AACpD,mBAAS;AACT,oBAAU;AACV,kBAAQ;AACR;AAAA,QACF;AAAA,MACF,QAAQ;AAAA,MAAC;AAAA,IACX;AACA,QAAI,CAAC,OAAO;AACV,YAAM,OAAO,UAAU,MAAM,KAAK;AAClC,YAAM,OAAO,UAAU,MAAM,QAAQ,OAAO,GAAK;AACjD,gBAAU,KAAK,IAAI,MAAM,IAAI;AAC7B,eAAS,QAAQ,KAAK,IAAI,OAAO,IAAI,IAAI,MAAQ,UAAU;AAAA,IAC7D;AAEA,UAAM,SAASD,QAAO,MAAM;AAC5B,WAAO,UAAU,SAAS,KAAK;AAC/B,WAAO,KAAK,YAAY;AAAA,MACtB,MAAM;AAAA,MACN,MAAM,CAAC,MAAc,QAAQ,MAAM,CAAC;AAAA,MACpC,QAAQ,MAAM,CAAC;AAAA,MACf,WAAW,MAAM,CAAC;AAAA,MAClB,OAAO,MAAM,CAAC;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AAEA,WAAS,SACP,OACA,KACA,KACA,QACgB;AAChB,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,WAAW,GAAG,GAAG;AACnB,cAAMD,MAAK,YAAY,GAAG;AAC1B,YAAI,SAAS,MAAM;AACjB,iBAAOC,QAAO,EAAE,GAAGD,GAAE;AAAA,QACvB;AACA,YAAI,OAAO,UAAU,YAAY,CAAC,kBAAkB,KAAK,GAAG;AAC1D,iBAAO,YAAY,OAAOA,GAAE;AAAA,QAC9B;AACA,eAAOC,QAAO,KAAK,EAAE,GAAGD,GAAE;AAAA,MAC5B;AACA,UAAI,OAAO,UAAU,UAAU;AAC7B,YAAI,OAAO,QAAQ,YAAY,WAAW,GAAG,GAAG;AAC9C,iBAAO,YAAY,OAAO,YAAY,GAAG,GAAG,GAAG;AAAA,QACjD;AACA,YAAI,OAAO,QAAQ,aAAa,OAAO,WAAW,YAAY,WAAW,MAAM,GAAG;AAChF,iBAAO,YAAY,OAAO,YAAY,MAAM,GAAG,GAAG;AAAA,QACpD;AACA,eAAOC,QAAO,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AACA,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAOA,QAAO,EAAE,GAAG,KAAK;AAAA,IAC1B;AACA,WAAO,SAAS,OAAOA,QAAO,KAAK,IAAIA,QAAO;AAAA,EAChD;AAEA,WAAS,KAA2BD,KAAa,UAA6C;AAC5F,QAAIA,QAAO,QAAW;AACpB,aAAO,KAAK,KAAK,KAAK,GAAG,OAAO,KAAK,eAAe,EAAE,gBAAgB,EAAE;AAAA,IAC1E;AACA,UAAM,KAAK,QAAQ,YAAYA,GAAE,CAAC;AAClC,QAAI,CAAC,IAAI;AACP,aAAO,KAAK,MAAM;AAAA,IACpB;AACA,UAAM,IAAI,KAAK,MAAM;AACrB,MAAE,KAAK;AACP,UAAM,KAAK,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC;AACpC,MAAE,UAAU,KAAK,KAAK,GAAG,QAAQ;AACjC,WAAO;AAAA,EACT;AAEA,EAAAC,QAAO,KAAK;AACZ,EAAAA,QAAO,GAAG,KAAK;AACf,EAAAA,QAAO,cAAc;AAErB,EAAAA,QAAO,GAAG,WAAU,6BAAM,cAAa;AACvC,EAAAA,QAAO,GAAG,eAAc,6BAAM,YAAW;AACzC,EAAAA,QAAO,GAAG,OAAO;AACjB,EAAAA,QAAO,GAAG,SAAS;AACnB,EAAAA,QAAO,GAAG,SAAS;AACnB,EAAAA,QAAO,GAAG,SAAS;AACnB,EAAAA,QAAO,GAAG,aAAa;AACvB,EAAAA,QAAO,GAAG,SAAS;AACnB,EAAAA,QAAO,GAAG,eAAe;AACzB,EAAAA,QAAO,GAAG,OAAO,SAAU,QAAkC;AAC3D,aAAS,MAAM;AACf,IAAAA,QAAO,GAAI,cAAc,OAAO,WAAW;AAAA,EAC7C;AACA,EAAAA,QAAO,GAAG,MAAM,SAAU,UAAyB;AACjD,YAAQ,QAAQ;AAAA,EAClB;AACA,EAAAA,QAAO,GAAG,OAAO,SAAU,OAAsB;AAC/C,YAAQ,KAAK;AAAA,EACf;AACA,EAAAA,QAAO,GAAG,OAAO,SAAU,MAAmC;AAC5D,WAAO,QAAQ,IAAI;AAAA,EACrB;AACA,EAAAA,QAAO,GAAG,aAAa,SAAU,MAAuB;AACtD,WAAO,CAAC,CAAC,QAAQ,IAAI;AAAA,EACvB;AACA,EAAAA,QAAO,GAAG,QAAQ,SAAU,cAAgC;AAC1D,WAAO,KAAK,eAAe,EAAE,gBAAgB,EAAE,YAAY;AAAA,EAC7D;AACA,EAAAA,QAAO,GAAG,QAAQ,WAAsB;AACtC,WAAO,SAAS;AAAA,EAClB;AACA,EAAAA,QAAO,GAAG,YAAY,WAAsB;AAC1C,WAAO,gBAAgB;AAAA,EACzB;AACA,EAAAA,QAAO,GAAG,kBAAkB,SAC1B,MACA,YACuC;AACvC,WAAO,gBAAgB,MAAM,UAAU;AAAA,EACzC;AACA,EAAAA,QAAO,GAAG,aAAa,SAAUD,KAAyB;AACxD,IAAAC,QAAO,cAAcD,MAAK,YAAYA,GAAE,IAAI;AAC5C,WAAOC;AAAA,EACT;AACA,SAAO,eAAeA,QAAO,IAAI,sBAAsB;AAAA,IACrD,MAAM;AACJ,aAAO,cAAc;AAAA,IACvB;AAAA,IACA,IAAI,OAAgB;AAClB,oBAAc,qBAAqB,CAAC,CAAC;AAAA,IACvC;AAAA,IACA,YAAY;AAAA,IACZ,cAAc;AAAA,EAChB,CAAC;AACD,SAAO,eAAeA,QAAO,IAAI,wBAAwB;AAAA,IACvD,MAAM;AACJ,aAAO,cAAc;AAAA,IACvB;AAAA,IACA,IAAI,OAAgB;AAClB,oBAAc,uBAAuB,CAAC,CAAC;AAAA,IACzC;AAAA,IACA,YAAY;AAAA,IACZ,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,MAAMA,QAAO,GAAG;AACtB,QAAM,MAAMA,QAAO,GAAG;AAEtB,EAAAA,QAAO,GAAG,QAAQ,WAA0E;AAC1F,UAAM,IAAI,KAAK;AACf,QAAI,CAAC,GAAG;AACN,aAAO;AAAA,IACT;AACA,UAAM,KAAK,KAAK,QAAQ;AACxB,UAAM,IAAI,IAAI,KAAK,EAAE,EAAE,eAAe;AACtC,UAAM,MAAM,KAAK,IAAI,GAAG,GAAG,CAAC;AAC5B,UAAM,MAAM,KAAK,IAAI,GAAG,GAAG,CAAC;AAC5B,QAAI,aAAa,cAAc;AAC7B,aAAO,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,UAAU,GAAG,CAAC;AAAA,IACxE;AACA,WAAO,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,UAAU,EAAE,MAAM,GAAG,GAAG,UAAU,EAAE,MAAM,GAAG,CAAC;AAAA,EAC1F;AACA,EAAAA,QAAO,GAAG,WAAW,WAAyE;AAC5F,WAAO,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI;AAAA,EACzE;AACA,EAAAA,QAAO,GAAG,WAAW,WAAyE;AAC5F,WAAO,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI;AAAA,EACzE;AAEA,SAAOA;AACT;;;ADtpCA,IAAM,gBAAgE,iBACrB,kBAC/C;AAEF,gBAAgB,aAAa;AAE7B,IAAO,gBAAQ;AACR,IAAM,KAAe,cAAc;","names":["tz","moment","result"]}
package/dist/logic.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/logic.ts","../src/install.ts"],"sourcesContent":["import * as mmntjs from \"mmntjs\";\nimport { installTimezone, type MomentLike, type MomentTz } from \"./install\";\n\nconst momentFactory = ((mmntjs as unknown as Record<string, unknown>).moment ??\n (mmntjs as unknown as Record<string, unknown>).default ??\n mmntjs) as unknown as MomentLike;\n\ninstallTimezone(momentFactory);\n\nexport default momentFactory;\nexport const tz: MomentTz = momentFactory.tz!;\n","/* oxlint-disable no-explicit-any, no-unnecessary-type-assertion, no-unnecessary-condition, prefer-nullish-coalescing, prefer-optional-chain, prefer-string-replace-all, no-new-array, no-useless-spread, prefer-function-type, curly */\n\ninterface MomentFnProps {\n tz: (this: unknown, tz?: string, keepTime?: boolean) => unknown;\n zoneName?: (this: unknown) => string;\n zoneAbbr?: (this: unknown) => string;\n isDST?: (this: unknown) => boolean;\n [key: string]: unknown;\n}\n\ninterface MomentTzZone {\n name: string;\n abbr: (ts: number) => string;\n offset: (ts: number) => number;\n utcOffset: (ts: number) => number;\n parse: (ts: number) => number;\n countries?: () => string[];\n}\n\ninterface CountryWithOffset {\n name: string;\n offset: number;\n}\n\ninterface TimezoneDataBundle {\n version?: string;\n zones?: unknown;\n links?: unknown;\n countries?: unknown;\n}\n\nexport interface MomentTz {\n (\n input?: unknown,\n formatOrZone?: unknown,\n zoneOrStrict?: unknown,\n fourth?: unknown,\n ): MomentInstance;\n guess: (preferCache?: boolean) => string;\n names: () => string[];\n zone: (name: string) => MomentTzZone | null;\n zoneExists?: (name: string) => boolean;\n add: (data: unknown) => void;\n link: (links: unknown) => void;\n load?: (data: TimezoneDataBundle) => void;\n setDefault: (tz?: string) => MomentLike;\n countries: () => string[];\n zonesForCountry: (code: string, withOffset?: boolean) => string[] | CountryWithOffset[] | null;\n unpack?: (data: string) => UnpackedZone;\n unpackBase60?: (input: string) => number;\n version?: string;\n dataVersion?: string;\n Zone?: new (packedString?: string) => MomentTzZone;\n _zones?: Record<string, string | PrebuiltZonePayload | DecodedZonePayload>;\n _links?: Record<string, string>;\n _names?: Record<string, string>;\n _countries?: Record<string, { name: string; zones: string[] }>;\n moveInvalidForward?: boolean;\n moveAmbiguousForward?: boolean;\n}\n\ntype MomentInstance = MomentLike & {\n tz(tz?: string, keepTime?: boolean): MomentInstance | string;\n _z?: MomentTzZone | null;\n utcOffset(offset?: number | string, keepLocalTime?: boolean): number | MomentInstance;\n isValid(): boolean;\n year(): number;\n month(): number;\n date(): number;\n hour(): number;\n minute(): number;\n second(): number;\n millisecond(): number;\n clone(): MomentInstance;\n valueOf(): number;\n utc(): MomentInstance;\n};\n\nexport type MomentLike = {\n fn: MomentFnProps;\n momentProperties: string[];\n defaultZone?: string | null;\n tz?: MomentTz;\n updateOffset?: ((m: MomentInstance, keepTime?: boolean) => void) | undefined;\n (...args: unknown[]): MomentInstance;\n};\n\ninterface UnpackedZone {\n name: string;\n abbrs: string[];\n offsets: number[];\n untils: number[];\n population: number;\n}\n\ninterface DecodedZonePayload {\n abbrs: string[];\n offsets: Int16Array | Int32Array;\n untils: Float64Array;\n population: number;\n}\n\ninterface PrebuiltZonePayload {\n abbrs: string[];\n offsets: number[];\n ut: number;\n ud: number[];\n pop: number;\n}\n\nconst offsetCache = new Map<string, Map<number, number>>();\nconst MAX_DOMAIN_CACHE_SIZE = 1000;\n\nconst ABBR_LOCALES = [\n \"en-US\",\n \"en-GB\",\n \"ja-JP\",\n \"en-AU\",\n \"en-SG\",\n \"en-HK\",\n \"af-ZA\",\n \"es-AR\",\n \"pt-BR\",\n \"ko-KR\",\n \"en-IN\",\n \"zh-CN\",\n];\n\nconst ZONE_ALIAS: Record<string, string> = {\n \"Asia/Calcutta\": \"Asia/Kolkata\",\n};\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase().replace(/\\//g, \"_\");\n}\n\nfunction normalizeTz(tz: string): string {\n const u = tz.toUpperCase();\n if (u === \"UTC\" || u === \"GMT\") {\n return u;\n }\n return ZONE_ALIAS[tz] ?? tz;\n}\n\nfunction charCodeToInt(charCode: number): number {\n if (charCode > 96) {\n return charCode - 87;\n }\n if (charCode > 64) {\n return charCode - 29;\n }\n return charCode - 48;\n}\n\nfunction unpackBase60(input: string): number {\n let i = 0;\n const parts = input.split(\".\");\n const whole = parts[0] ?? \"\";\n const fractional = parts[1] ?? \"\";\n let multiplier = 1;\n let out = 0;\n let sign = 1;\n\n if (input.charCodeAt(0) === 45) {\n i = 1;\n sign = -1;\n }\n\n for (; i < whole.length; i++) {\n out = 60 * out + charCodeToInt(whole.charCodeAt(i));\n }\n\n for (i = 0; i < fractional.length; i++) {\n multiplier /= 60;\n out += charCodeToInt(fractional.charCodeAt(i)) * multiplier;\n }\n\n return out * sign;\n}\n\nfunction arrayToInt(values: string[]): number[] {\n return values.map((value) => unpackBase60(value));\n}\n\nfunction mapIndices<T>(source: T[], indices: number[]): T[] {\n const out: T[] = new Array(indices.length) as T[];\n for (let i = 0; i < indices.length; i++) {\n out[i] = source[indices[i]];\n }\n return out;\n}\n\n/**\n * Decode a compact run-encoded index string back to numeric indices.\n * Handles both plain format (base-62 chars) and codec format (!-prefixed).\n */\nfunction decodeIndicesCodec(encoded: string): number[] {\n if (encoded[0] !== \"!\") {\n return arrayToInt(encoded.split(\"\"));\n }\n const indices: number[] = [];\n let pos = 1;\n const len = encoded.length;\n while (pos < len) {\n const ch = encoded[pos]!;\n if (ch === \"^\" && pos + 4 <= len) {\n const a = charCodeToInt(encoded.charCodeAt(pos + 1));\n const b = charCodeToInt(encoded.charCodeAt(pos + 2));\n const count = charCodeToInt(encoded.charCodeAt(pos + 3)) + 1;\n for (let i = 0; i < count; i++) {\n indices.push(a, b);\n }\n pos += 4;\n } else if (ch === \"~\" && pos + 3 <= len) {\n const a = charCodeToInt(encoded.charCodeAt(pos + 1));\n const count = charCodeToInt(encoded.charCodeAt(pos + 2)) + 1;\n for (let i = 0; i < count; i++) {\n indices.push(a);\n }\n pos += 3;\n } else if (ch === \"@\" && pos + 3 <= len) {\n const start = charCodeToInt(encoded.charCodeAt(pos + 1));\n const count = charCodeToInt(encoded.charCodeAt(pos + 2)) + 1;\n const abbrCount = 62;\n for (let i = 0; i < count; i++) {\n indices.push((start + i) % abbrCount);\n }\n pos += 3;\n } else {\n indices.push(charCodeToInt(encoded.charCodeAt(pos)));\n pos++;\n }\n }\n return indices;\n}\n\n/** Parse raw delta string, expanding dictionary IDs when needed */\nfunction parseDeltas(raw: string): number[] {\n const tokens = raw.split(\" \");\n if (_deltaDict.length > 0 && tokens.length > 0) {\n return tokens.map((t) => {\n if (t === \"\") return 0;\n return _deltaDict[unpackBase60(t)] ?? 0;\n });\n }\n return arrayToInt(tokens);\n}\n\nfunction unpack(packed: string): UnpackedZone {\n const data = packed.split(\"|\");\n const offsets = arrayToInt((data[2] ?? \"\").split(\" \"));\n const indices = decodeIndicesCodec(data[3] ?? \"\");\n const untils = parseDeltas(data[4] ?? \"\");\n\n for (let i = 0; i < indices.length; i++) {\n untils[i] = Math.round((untils[i - 1] || 0) + untils[i] * 60000);\n }\n untils[indices.length - 1] = Number.POSITIVE_INFINITY;\n\n return {\n name: data[0] ?? \"\",\n abbrs: mapIndices((data[1] ?? \"\").split(\" \"), indices),\n offsets: mapIndices(offsets, indices),\n untils,\n population: Number(data[5] ?? 0) | 0,\n };\n}\n\nfunction closest(num: number, arr: ArrayLike<number>): number {\n const len = arr.length;\n if (len === 0) {\n return -1;\n }\n if (num < arr[0]) {\n return 0;\n }\n if (len > 1 && arr[len - 1] === Number.POSITIVE_INFINITY && num >= (arr[len - 2] ?? 0)) {\n return len - 1;\n }\n if (num >= (arr[len - 1] ?? 0)) {\n return -1;\n }\n\n let lo = 0;\n let hi = len - 1;\n while (hi - lo > 1) {\n const mid = Math.floor((lo + hi) / 2);\n if ((arr[mid] ?? 0) <= num) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return hi;\n}\n\nclass InternalZone implements MomentTzZone {\n name: string;\n private readonly canonicalKey: string;\n private lastIndex = -1;\n private lastStart = Number.NEGATIVE_INFINITY;\n private lastEnd = Number.POSITIVE_INFINITY;\n\n constructor(name: string, canonicalKey: string) {\n this.name = name;\n this.canonicalKey = canonicalKey;\n }\n\n _index(timestamp: number): number {\n const target = +timestamp;\n if (this.lastIndex >= 0 && target >= this.lastStart && target < this.lastEnd) {\n return this.lastIndex;\n }\n const untils = getDecodedZonePayload(this.canonicalKey).untils;\n const idx = closest(target, untils);\n if (idx >= 0) {\n this.lastIndex = idx;\n this.lastStart =\n idx > 0 ? (untils[idx - 1] ?? Number.NEGATIVE_INFINITY) : Number.NEGATIVE_INFINITY;\n this.lastEnd = untils[idx] ?? Number.POSITIVE_INFINITY;\n }\n return idx;\n }\n\n countries(): string[] {\n const out: string[] = [];\n for (const [code, country] of Object.entries(countryStore)) {\n if (country.zones.includes(this.name)) {\n out.push(code);\n }\n }\n return out;\n }\n\n parse(timestamp: number): number {\n const payload = getDecodedZonePayload(this.canonicalKey);\n const target = +timestamp;\n const max = payload.untils.length - 1;\n for (let i = 0; i < max; i++) {\n let offset = payload.offsets[i] ?? 0;\n const offsetNext = payload.offsets[i + 1] ?? offset;\n const offsetPrev = payload.offsets[i ? i - 1 : i] ?? offset;\n\n if (offset < offsetNext && timezoneFlags.moveAmbiguousForward) {\n offset = offsetNext;\n } else if (offset > offsetPrev && timezoneFlags.moveInvalidForward) {\n offset = offsetPrev;\n }\n\n if (target < (payload.untils[i] ?? Number.POSITIVE_INFINITY) - offset * 60000) {\n return payload.offsets[i] ?? 0;\n }\n }\n return payload.offsets[max] ?? 0;\n }\n\n abbr(ts: number): string {\n const idx = this._index(ts);\n const payload = getDecodedZonePayload(this.canonicalKey);\n return idx >= 0 ? (payload.abbrs[idx] ?? \"\") : \"\";\n }\n\n offset(ts: number): number {\n return this.utcOffset(ts);\n }\n\n utcOffset(ts: number): number {\n const idx = this._index(ts);\n const payload = getDecodedZonePayload(this.canonicalKey);\n return idx >= 0 ? (payload.offsets[idx] ?? 0) : 0;\n }\n}\n\nclass CompatZone implements MomentTzZone {\n name: string;\n private readonly p: DecodedZonePayload;\n private li = -1;\n private ls = Number.NEGATIVE_INFINITY;\n private le = Number.POSITIVE_INFINITY;\n\n constructor(packedString?: string) {\n const u = unpack(packedString ?? \"||0|0||0\");\n this.name = u.name;\n this.p = createDecodedZonePayload(u);\n }\n\n private _i(ts: number): number {\n const t = +ts;\n if (this.li >= 0 && t >= this.ls && t < this.le) {\n return this.li;\n }\n const idx = closest(t, this.p.untils);\n if (idx >= 0) {\n this.li = idx;\n this.ls = idx > 0 ? this.p.untils[idx - 1]! : Number.NEGATIVE_INFINITY;\n this.le = this.p.untils[idx]!;\n }\n return idx;\n }\n\n countries() {\n return [];\n }\n abbr(ts: number) {\n const i = this._i(ts);\n return i >= 0 ? this.p.abbrs[i]! : \"\";\n }\n offset(ts: number) {\n return this.utcOffset(ts);\n }\n utcOffset(ts: number) {\n const i = this._i(ts);\n return i >= 0 ? this.p.offsets[i]! : 0;\n }\n parse(ts: number): number {\n const target = +ts;\n const max = this.p.untils.length - 1;\n for (let i = 0; i < max; i++) {\n let off = this.p.offsets[i]!;\n const nxt = this.p.offsets[i + 1] ?? off;\n const prv = this.p.offsets[i ? i - 1 : i] ?? off;\n if (off < nxt && timezoneFlags.moveAmbiguousForward) {\n off = nxt;\n } else if (off > prv && timezoneFlags.moveInvalidForward) {\n off = prv;\n }\n if (target < this.p.untils[i]! - off * 60000) {\n return this.p.offsets[i]!;\n }\n }\n return this.p.offsets[max]!;\n }\n}\n\n/* delta dictionary (parsed from !D| header line in zonesBlob) */\nlet _deltaDict: number[] = [];\n\nconst zoneStore: Record<string, string | PrebuiltZonePayload | DecodedZonePayload> = Object.create(\n null,\n) as Record<string, string | PrebuiltZonePayload | DecodedZonePayload>;\nconst linkStore: Record<string, string> = Object.create(null) as Record<string, string>;\nconst nameStore: Record<string, string> = Object.create(null) as Record<string, string>;\nconst countryStore: Record<string, { name: string; zones: string[] }> = Object.create(\n null,\n) as Record<string, { name: string; zones: string[] }>;\nconst zoneWrapperCache = new Map<string, MomentTzZone>();\nconst decodedZonePayloadCache = new Map<string, DecodedZonePayload>();\nconst abbrInternPool = new Map<string, string>();\nconst timezoneFlags = {\n moveInvalidForward: true,\n moveAmbiguousForward: false,\n};\n\nlet builtinZoneDataLoaded = false;\nlet indexBuilt = false;\nlet sortedZoneNamesCache: string[] | null = null;\n\n/* lazy blob data */\nlet _zonesBlob = \"\";\nlet _linksBlob = \"\";\nlet _countriesBlob = \"\";\n\n/* name table: index → full zone name */\nlet _nameTable: string[] = [];\n\n/* lightweight indexes */\nconst _zoneIdx = new Map<string, { name: string; start: number; end: number }>();\nconst _linkIdx = new Map<string, string>();\nconst _linkNameIdx = new Map<string, string>();\nconst _countryIdx = new Map<string, string[]>();\n\nfunction internString(value: string): string {\n const cached = abbrInternPool.get(value);\n if (cached) {\n return cached;\n }\n abbrInternPool.set(value, value);\n return value;\n}\n\nfunction createDecodedZonePayload(unpacked: UnpackedZone): DecodedZonePayload {\n const offsets = unpacked.offsets.some((value) => value > 32767 || value < -32768)\n ? Int32Array.from(unpacked.offsets)\n : Int16Array.from(unpacked.offsets);\n return {\n abbrs: unpacked.abbrs.map((abbr) => internString(abbr)),\n offsets,\n untils: Float64Array.from(unpacked.untils),\n population: unpacked.population,\n };\n}\n\nfunction getDecodedZonePayload(canonicalKey: string): DecodedZonePayload {\n const cached = decodedZonePayloadCache.get(canonicalKey);\n if (cached) {\n return cached;\n }\n const source = zoneStore[canonicalKey];\n if (!source) {\n throw new Error(`Missing timezone payload for ${canonicalKey}`);\n }\n let payload: DecodedZonePayload;\n if (typeof source === \"string\") {\n payload = createDecodedZonePayload(unpack(source));\n } else if (\"ut\" in source) {\n const prebuilt = source as PrebuiltZonePayload;\n const untils: number[] = [prebuilt.ut];\n for (let i = 0; i < prebuilt.ud.length; i++) {\n untils.push(untils[i] + prebuilt.ud[i]);\n }\n untils[untils.length - 1] = Number.POSITIVE_INFINITY;\n payload = createDecodedZonePayload({\n name: \"\",\n abbrs: prebuilt.abbrs,\n offsets: prebuilt.offsets,\n untils,\n population: prebuilt.pop,\n });\n } else {\n payload = source;\n }\n zoneStore[canonicalKey] = payload;\n decodedZonePayloadCache.set(canonicalKey, payload);\n return payload;\n}\n\nfunction addPackedZoneEntry(\n name: string,\n value: string | PrebuiltZonePayload | DecodedZonePayload,\n): void {\n const normalized = normalizeName(name);\n zoneStore[normalized] = value;\n nameStore[normalized] = name;\n zoneWrapperCache.delete(name);\n decodedZonePayloadCache.delete(normalized);\n sortedZoneNamesCache = null;\n}\n\nfunction addZone(packed: unknown): void {\n if (typeof packed === \"string\") {\n const split = packed.split(\"|\");\n addPackedZoneEntry(split[0] ?? \"\", packed);\n return;\n }\n if (Array.isArray(packed)) {\n for (const item of packed) {\n addZone(item);\n }\n return;\n }\n if (packed && typeof packed === \"object\") {\n for (const [name, value] of Object.entries(packed as Record<string, unknown>)) {\n if (typeof value === \"string\") {\n addZone(value);\n continue;\n }\n if (value && typeof value === \"object\") {\n if (\"ut\" in (value as Record<string, unknown>)) {\n addPackedZoneEntry(name, value as PrebuiltZonePayload);\n } else {\n const entry = value as Partial<UnpackedZone>;\n addPackedZoneEntry(\n name,\n createDecodedZonePayload({\n name,\n abbrs: [...(entry.abbrs ?? [])],\n offsets: [...(entry.offsets ?? [])],\n untils: [...(entry.untils ?? [])],\n population: entry.population ?? 0,\n }),\n );\n }\n }\n }\n }\n}\n\nfunction addLink(links: unknown): void {\n const linkList: string[] = [];\n if (typeof links === \"string\") {\n linkList.push(links);\n } else if (Array.isArray(links)) {\n for (const entry of links) {\n if (typeof entry === \"string\") {\n linkList.push(entry);\n }\n }\n } else if (links && typeof links === \"object\") {\n for (const [alias, target] of Object.entries(links as Record<string, unknown>)) {\n if (typeof target === \"string\") {\n linkList.push(`${alias}|${target}`);\n }\n }\n }\n\n for (const aliasEntry of linkList) {\n const alias = aliasEntry.split(\"|\");\n const name0 = alias[0];\n const name1 = alias[1];\n if (!name0 || !name1) {\n continue;\n }\n const normal0 = normalizeName(name0);\n const normal1 = normalizeName(name1);\n linkStore[normal0] = normal1;\n nameStore[normal0] = name0;\n linkStore[normal1] = normal0;\n nameStore[normal1] = name1;\n sortedZoneNamesCache = null;\n }\n}\n\nfunction addCountries(data: unknown): void {\n if (Array.isArray(data)) {\n for (const item of data) {\n if (typeof item !== \"string\") {\n continue;\n }\n const split = item.split(\"|\");\n const code = (split[0] ?? \"\").toUpperCase();\n const zones = (split[1] ?? \"\").split(\" \").filter(Boolean);\n if (code) {\n countryStore[code] = { name: code, zones };\n }\n }\n return;\n }\n\n if (data && typeof data === \"object\") {\n for (const [codeKey, value] of Object.entries(data as Record<string, unknown>)) {\n const code = codeKey.toUpperCase();\n if (Array.isArray(value)) {\n countryStore[code] = {\n name: code,\n zones: value.filter((v): v is string => typeof v === \"string\"),\n };\n continue;\n }\n if (value && typeof value === \"object\") {\n const zones = (value as { zones?: unknown }).zones;\n if (Array.isArray(zones)) {\n countryStore[code] = {\n name: code,\n zones: zones.filter((v): v is string => typeof v === \"string\"),\n };\n }\n }\n }\n }\n}\n\nfunction getZoneRecord(name: string, caller?: typeof getZoneRecord): InternalZone | null {\n ensureIndexBuilt();\n const normalized = normalizeName(normalizeTz(name));\n const cached = zoneWrapperCache.get(name);\n if (cached instanceof InternalZone) return cached;\n if (normalized in zoneStore || materializeZone(normalized)) {\n const r = new InternalZone(nameStore[normalized] ?? name, normalized);\n zoneWrapperCache.set(name, r);\n return r;\n }\n const linkTarget = resolveLink(normalized);\n if (linkTarget && caller !== getZoneRecord) {\n const target = getZoneRecord(linkTarget, getZoneRecord);\n if (target) {\n const alias = new InternalZone(nameStore[normalized] ?? name, normalizeName(target.name));\n zoneWrapperCache.set(name, alias);\n return alias;\n }\n }\n return null;\n}\n\nfunction getZone(name: string): MomentTzZone | null {\n return getZoneRecord(name);\n}\n\nfunction getAbbr(tz: string, ts: number): string {\n if (tz === \"UTC\") {\n return \"UTC\";\n }\n if (tz === \"GMT\") {\n return \"GMT\";\n }\n const d = new Date(ts);\n for (const loc of ABBR_LOCALES) {\n try {\n const full = d.toLocaleString(loc, { timeZone: tz, timeZoneName: \"short\" });\n const m = full.match(/\\s(\\S+)$/);\n if (m) {\n const abbr = m[1] ?? \"\";\n if (/^[A-Z]{2,5}$/.test(abbr) && abbr !== \"Time\") {\n return abbr;\n }\n }\n } catch {\n // skip\n }\n }\n const offset = getOffset(tz, ts);\n const abs = Math.abs(offset);\n const hrs = Math.floor(abs / 60);\n const min = abs % 60;\n const sign = offset >= 0 ? \"+\" : \"-\";\n return `${sign}${String(hrs).padStart(2, \"0\")}${min ? String(min).padStart(2, \"0\") : \"00\"}`;\n}\n\nfunction getOffset(tz: string, timestamp: number): number {\n tz = normalizeTz(tz);\n let domain = offsetCache.get(tz);\n if (!domain) {\n domain = new Map();\n offsetCache.set(tz, domain);\n }\n\n const cached = domain.get(timestamp);\n if (cached !== undefined) {\n return cached;\n }\n\n if (domain.size >= MAX_DOMAIN_CACHE_SIZE) {\n const first = domain.keys().next().value;\n if (first !== undefined) {\n domain.delete(first);\n }\n }\n\n const d = new Date(timestamp);\n const parts = d.toLocaleString(\"en-US\", {\n timeZone: tz,\n timeZoneName: \"longOffset\",\n });\n\n const m = parts.match(/GMT([+-]\\d{1,2})(?::(\\d{2}))?/);\n let offset = 0;\n if (m) {\n const hrs = parseInt(m[1] ?? \"0\", 10);\n const min = m[2] ? parseInt(m[2], 10) : 0;\n const s = hrs >= 0 ? 1 : -1;\n offset = hrs * 60 + s * min;\n }\n\n domain.set(timestamp, offset);\n return offset;\n}\n\nfunction hasExplicitOffset(input: string): boolean {\n return /(Z|[+-]\\d{2}:?\\d{2})\\s*$/.test(input.trim());\n}\n\nfunction getNames(): string[] {\n ensureIndexBuilt();\n if (sortedZoneNamesCache) return [...sortedZoneNamesCache];\n const out = new Set<string>();\n for (const [, entry] of _zoneIdx) out.add(entry.name);\n for (const [, name] of _linkNameIdx) out.add(name);\n for (const key of Object.keys(nameStore)) {\n if (nameStore[key] && (zoneStore[key] || resolveLink(key))) out.add(nameStore[key]);\n }\n for (const name of Object.keys(ZONE_ALIAS)) {\n out.add(name);\n out.add(ZONE_ALIAS[name]);\n }\n sortedZoneNamesCache = [...out].sort();\n return [...sortedZoneNamesCache];\n}\n\nfunction getCountryNames(): string[] {\n ensureIndexBuilt();\n const out = new Set([..._countryIdx.keys()]);\n for (const key of Object.keys(countryStore)) out.add(key);\n return [...out].sort();\n}\n\nfunction zonesForCountry(\n code: string,\n withOffset?: boolean,\n): string[] | CountryWithOffset[] | null {\n ensureIndexBuilt();\n const upper = code.toUpperCase();\n let zones = countryStore[upper]?.zones ?? _countryIdx.get(upper);\n if (!zones) return null;\n const sorted = [...zones].sort();\n if (withOffset) {\n const now = Date.now();\n return sorted\n .map((name) => {\n const z = getZone(name);\n return z ? { name, offset: z.utcOffset(now) } : null;\n })\n .filter((e): e is CountryWithOffset => e !== null);\n }\n return sorted;\n}\n\nfunction isZoneName(s: string): boolean {\n const u = s.toUpperCase();\n if (u === \"UTC\" || u === \"GMT\") return true;\n ensureIndexBuilt();\n const n = normalizeName(normalizeTz(s));\n return n in zoneStore || _zoneIdx.has(n) || !!resolveLink(n);\n}\n\nfunction ensureIndexBuilt(): void {\n if (indexBuilt || !builtinZoneDataLoaded) return;\n indexBuilt = true;\n\n const nt = _nameTable;\n\n // Check for delta dictionary header line (!D|...)\n let pos = 0;\n if (\n _zonesBlob.charCodeAt(0) === 33 &&\n _zonesBlob.charCodeAt(1) === 68 &&\n _zonesBlob.charCodeAt(2) === 124\n ) {\n const nl = _zonesBlob.indexOf(\"\\n\", 0);\n if (nl >= 0) {\n const header = _zonesBlob.slice(0, nl);\n const dp = header.split(\"|\");\n if (dp[0] === \"!D\") {\n _deltaDict = (dp[1] ?? \"\").split(\" \").filter(Boolean).map(unpackBase60);\n }\n pos = nl + 1;\n }\n }\n\n // Build zone index from ID-based blob\n while (pos < _zonesBlob.length) {\n const start = pos;\n const nl = _zonesBlob.indexOf(\"\\n\", pos);\n const end = nl >= 0 ? nl : _zonesBlob.length;\n pos = nl >= 0 ? nl + 1 : _zonesBlob.length;\n if (start === end) continue;\n const pipe = _zonesBlob.indexOf(\"|\", start);\n if (pipe < 0 || pipe >= end) continue;\n const idStr = _zonesBlob.slice(start, pipe);\n const id = charCodeToInt(idStr.charCodeAt(0)) * 60 + charCodeToInt(idStr.charCodeAt(1));\n const name = nt[id] ?? \"\";\n if (name) _zoneIdx.set(normalizeName(name), { name, start, end });\n }\n\n // Build link index from ID-based blob\n pos = 0;\n while (pos < _linksBlob.length) {\n const nl = _linksBlob.indexOf(\"\\n\", pos);\n const line = nl >= 0 ? _linksBlob.slice(pos, nl) : _linksBlob.slice(pos);\n pos = nl >= 0 ? nl + 1 : _linksBlob.length;\n if (!line) continue;\n const pipe = line.indexOf(\"|\");\n if (pipe < 0) continue;\n const fromId = line.slice(0, pipe),\n toId = line.slice(pipe + 1);\n if (fromId && toId) {\n const fi = charCodeToInt(fromId.charCodeAt(0)) * 60 + charCodeToInt(fromId.charCodeAt(1));\n const ti = charCodeToInt(toId.charCodeAt(0)) * 60 + charCodeToInt(toId.charCodeAt(1));\n const from = nt[fi] ?? \"\",\n to = nt[ti] ?? \"\";\n if (from && to) {\n const nf = normalizeName(from),\n ntNorm = normalizeName(to);\n _linkIdx.set(nf, ntNorm);\n _linkIdx.set(ntNorm, nf);\n _linkNameIdx.set(nf, from);\n _linkNameIdx.set(ntNorm, to);\n }\n }\n }\n\n // Build country index from ID-based blob\n pos = 0;\n while (pos < _countriesBlob.length) {\n const nl = _countriesBlob.indexOf(\"\\n\", pos);\n const line = nl >= 0 ? _countriesBlob.slice(pos, nl) : _countriesBlob.slice(pos);\n pos = nl >= 0 ? nl + 1 : _countriesBlob.length;\n if (!line) continue;\n const pipe = line.indexOf(\"|\");\n if (pipe < 0) continue;\n const code = line.slice(0, pipe).toUpperCase();\n const zones = line\n .slice(pipe + 1)\n .split(\" \")\n .filter(Boolean)\n .map((idStr) => nt[parseInt(idStr, 10)] ?? \"\")\n .filter(Boolean);\n if (code && zones.length > 0) _countryIdx.set(code, zones);\n }\n}\n\nfunction materializeZone(normalized: string): boolean {\n const entry = _zoneIdx.get(normalized);\n if (!entry) return false;\n if (normalized in zoneStore) return true;\n const line = _zonesBlob.slice(entry.start, entry.end);\n const pipe = line.indexOf(\"|\");\n addPackedZoneEntry(entry.name, entry.name + line.slice(pipe));\n getDecodedZonePayload(normalized);\n return true;\n}\n\nfunction resolveLink(normalized: string): string | undefined {\n return linkStore[normalized] ?? _linkIdx.get(normalized);\n}\n\nfunction loadData(data: TimezoneDataBundle): void {\n addZone(data.zones);\n addLink(data.links);\n addCountries(data.countries);\n}\n\nfunction ensureBuiltinZoneData(\n moment?: MomentLike,\n data?: {\n version: string;\n tzVersion: string;\n zonesBlob: string;\n linksBlob: string;\n countriesBlob: string;\n namesBlob?: string;\n },\n): void {\n if (builtinZoneDataLoaded || !data) {\n return;\n }\n _zonesBlob = data.zonesBlob;\n _linksBlob = data.linksBlob;\n _countriesBlob = data.countriesBlob;\n if (data.namesBlob) _nameTable = data.namesBlob.split(\"\\n\");\n if (moment?.tz) {\n moment.tz.dataVersion = data.version;\n if (data.tzVersion) {\n moment.tz.version = data.tzVersion;\n }\n }\n builtinZoneDataLoaded = true;\n}\n\nexport function installTimezone(\n moment: MomentLike,\n data?: {\n version: string;\n tzVersion: string;\n zonesBlob: string;\n linksBlob: string;\n countriesBlob: string;\n namesBlob?: string;\n },\n): MomentLike {\n if (moment.tz) {\n return moment;\n }\n\n ensureBuiltinZoneData(moment, data);\n\n moment.momentProperties.push(\"_z\");\n\n function parseInZone(input: string, zone: string, format?: string): MomentInstance {\n const parsed = format ? (moment as any).utc(input, format) : (moment as any).utc(input);\n if (!parsed.isValid()) {\n return parsed;\n }\n const y = parsed.year(),\n M = parsed.month(),\n d = parsed.date();\n const h = parsed.hour(),\n min = parsed.minute(),\n s = parsed.second(),\n ms = parsed.millisecond();\n const zoneInfo = getZone(zone);\n\n if (zoneInfo instanceof InternalZone) {\n const base = Date.UTC(y, M, d, h, min, s, ms);\n const offset = zoneInfo.parse(base);\n const result = moment(base + offset * 60000);\n const ro = zoneInfo.utcOffset(result.valueOf());\n result.utcOffset(ro ? -ro : 0, false);\n result._z = zoneInfo;\n return result;\n }\n\n const guess = Date.UTC(y, M, d, h, min, s, ms);\n const offsets = new Set<number>(\n [guess, Date.UTC(y, M, d), Date.UTC(y, M, d, 12), Date.UTC(y, M, d - 1, 12)].map((r) =>\n getOffset(zone, r),\n ),\n );\n for (const o of [...offsets]) {\n offsets.add(o + 30);\n offsets.add(o - 30);\n }\n const sorted = [...offsets].sort((a, b) => b - a);\n let bestTs = guess,\n bestOff = sorted[0] ?? 0,\n found = false;\n for (const off of sorted) {\n const ct = guess - off * 60000;\n if (getOffset(zone, ct) !== off) {\n continue;\n }\n try {\n const wp = new Date(ct).toLocaleString(\"en-US\", {\n timeZone: zone,\n hour12: false,\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n const p = wp.match(/^(\\d{2}):(\\d{2}):(\\d{2})$/);\n if (p && +p[1] === h && +p[2] === min && +p[3] === s) {\n bestTs = ct;\n bestOff = off;\n found = true;\n break;\n }\n } catch {}\n }\n if (!found) {\n const offA = getOffset(zone, guess);\n const offB = getOffset(zone, guess - offA * 60000);\n bestOff = Math.max(offA, offB);\n bestTs = guess + Math.abs(offB - offA) * 60000 - bestOff * 60000;\n }\n\n const result = moment(bestTs);\n result.utcOffset(bestOff, false);\n result._z = zoneInfo ?? {\n name: zone,\n abbr: (t: number) => getAbbr(zone, t),\n offset: () => -bestOff,\n utcOffset: () => -bestOff,\n parse: () => -bestOff,\n };\n return result;\n }\n\n function momentTz(\n input?: unknown,\n foz?: unknown,\n zos?: unknown,\n fourth?: unknown,\n ): MomentInstance {\n if (typeof foz === \"string\") {\n if (isZoneName(foz)) {\n const tz = normalizeTz(foz);\n if (input == null) {\n return moment().tz(tz);\n }\n if (typeof input === \"string\" && !hasExplicitOffset(input)) {\n return parseInZone(input, tz);\n }\n return moment(input).tz(tz);\n }\n if (typeof input === \"string\") {\n if (typeof zos === \"string\" && isZoneName(zos)) {\n return parseInZone(input, normalizeTz(zos), foz);\n }\n if (typeof zos === \"boolean\" && typeof fourth === \"string\" && isZoneName(fourth)) {\n return parseInZone(input, normalizeTz(fourth), foz);\n }\n return moment(input, foz);\n }\n }\n if (typeof input === \"string\") {\n return moment().tz(input);\n }\n return input != null ? moment(input) : moment();\n }\n\n function fnTz(this: MomentInstance, tz?: string, keepTime?: boolean): MomentInstance | string {\n if (tz === undefined) {\n return this._z ? this._z.name : Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n const zi = getZone(normalizeTz(tz));\n if (!zi) {\n return this.clone();\n }\n const m = this.clone();\n m._z = zi;\n const to = -zi.utcOffset(m.valueOf());\n m.utcOffset(to ? to : 0, keepTime);\n return m;\n }\n\n moment.tz = momentTz as MomentTz;\n moment.fn.tz = fnTz as unknown as (this: unknown, tz?: string, keepTime?: boolean) => unknown;\n moment.defaultZone = null;\n\n moment.tz.version = data?.tzVersion || \"0.6.2\";\n moment.tz.dataVersion = data?.version || \"\";\n moment.tz.Zone = CompatZone;\n moment.tz._zones = zoneStore;\n moment.tz._links = linkStore;\n moment.tz._names = nameStore;\n moment.tz._countries = countryStore;\n moment.tz.unpack = unpack;\n moment.tz.unpackBase60 = unpackBase60;\n moment.tz.load = function (bundle: TimezoneDataBundle): void {\n loadData(bundle);\n moment.tz!.dataVersion = bundle.version ?? \"\";\n };\n moment.tz.add = function (zoneData: unknown): void {\n addZone(zoneData);\n };\n moment.tz.link = function (links: unknown): void {\n addLink(links);\n };\n moment.tz.zone = function (name: string): MomentTzZone | null {\n return getZone(name);\n };\n moment.tz.zoneExists = function (name: string): boolean {\n return !!getZone(name);\n };\n moment.tz.guess = function (_preferCache?: boolean): string {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || \"UTC\";\n };\n moment.tz.names = function (): string[] {\n return getNames();\n };\n moment.tz.countries = function (): string[] {\n return getCountryNames();\n };\n moment.tz.zonesForCountry = function (\n code: string,\n withOffset?: boolean,\n ): string[] | CountryWithOffset[] | null {\n return zonesForCountry(code, withOffset);\n };\n moment.tz.setDefault = function (tz?: string): MomentLike {\n moment.defaultZone = tz ? normalizeTz(tz) : undefined;\n return moment;\n };\n Object.defineProperty(moment.tz, \"moveInvalidForward\", {\n get() {\n return timezoneFlags.moveInvalidForward;\n },\n set(value: boolean) {\n timezoneFlags.moveInvalidForward = !!value;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(moment.tz, \"moveAmbiguousForward\", {\n get() {\n return timezoneFlags.moveAmbiguousForward;\n },\n set(value: boolean) {\n timezoneFlags.moveAmbiguousForward = !!value;\n },\n enumerable: true,\n configurable: true,\n });\n\n const _zn = moment.fn.zoneName;\n const _za = moment.fn.zoneAbbr;\n\n moment.fn.isDST = function (this: { _z?: MomentTzZone | null; valueOf(): number }): boolean {\n const z = this._z;\n if (!z) {\n return false;\n }\n const ts = this.valueOf();\n const y = new Date(ts).getUTCFullYear();\n const jan = Date.UTC(y, 0, 1);\n const jul = Date.UTC(y, 6, 1);\n if (z instanceof InternalZone) {\n return z.utcOffset(ts) !== Math.max(z.utcOffset(jan), z.utcOffset(jul));\n }\n return getOffset(z.name, ts) !== Math.min(getOffset(z.name, jan), getOffset(z.name, jul));\n } as unknown as (this: unknown) => boolean;\n moment.fn.zoneName = function (this: { _z?: MomentTzZone | null; valueOf(): number }): string {\n return this._z ? this._z.abbr(this.valueOf()) : _zn ? _zn.call(this) : \"\";\n } as unknown as (this: unknown) => string;\n moment.fn.zoneAbbr = function (this: { _z?: MomentTzZone | null; valueOf(): number }): string {\n return this._z ? this._z.abbr(this.valueOf()) : _za ? _za.call(this) : \"\";\n } as unknown as (this: unknown) => string;\n\n return moment;\n}\n"],"mappings":"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","names":["tz","moment","result"]}