@formatjs/ecma402-abstract
Advanced tools
| /** | ||
| * CanonicalizeTimeZoneName ( timeZone ) | ||
| * https://tc39.es/ecma402/#sec-canonicalizetimezonename | ||
| * @param tz | ||
| * | ||
| * Extended to support UTC offset time zones per ECMA-402 PR #788 (ES2026). | ||
| * Returns the canonical and case-regularized form of a timezone identifier. | ||
| * | ||
| * @param tz - The timezone identifier to canonicalize | ||
| * @param implDetails - Implementation details containing timezone data | ||
| * @returns The canonical timezone identifier | ||
| */ | ||
@@ -5,0 +12,0 @@ export declare function CanonicalizeTimeZoneName(tz: string, { zoneNames, uppercaseLinks, }: { |
@@ -0,7 +1,79 @@ | ||
| // Cached regex patterns for performance | ||
| var OFFSET_TIMEZONE_PREFIX_REGEX = /^[+-]/; | ||
| var OFFSET_TIMEZONE_FORMAT_REGEX = /^([+-])(\d{2})(?::?(\d{2}))?(?::?(\d{2}))?(?:\.(\d{1,9}))?$/; | ||
| var TRAILING_ZEROS_REGEX = /0+$/; | ||
| /** | ||
| * IsTimeZoneOffsetString ( offsetString ) | ||
| * https://tc39.es/ecma262/#sec-istimezoneoffsetstring | ||
| * | ||
| * Simplified check to determine if a string is a UTC offset identifier. | ||
| * | ||
| * @param offsetString - The string to check | ||
| * @returns true if offsetString starts with '+' or '-' | ||
| */ | ||
| function IsTimeZoneOffsetString(offsetString) { | ||
| // 1. If offsetString does not start with '+' or '-', return false | ||
| return OFFSET_TIMEZONE_PREFIX_REGEX.test(offsetString); | ||
| } | ||
| /** | ||
| * ParseTimeZoneOffsetString ( offsetString ) | ||
| * https://tc39.es/ecma262/#sec-parsetimezoneoffsetstring | ||
| * | ||
| * Parses a UTC offset string and returns its canonical representation. | ||
| * Normalizes various formats (±HH, ±HHMM, ±HH:MM, etc.) to ±HH:MM format. | ||
| * | ||
| * @param offsetString - The UTC offset string to parse | ||
| * @returns The canonical offset string in ±HH:MM format (with :SS.sss if non-zero) | ||
| */ | ||
| function ParseTimeZoneOffsetString(offsetString) { | ||
| // 1. Let parseResult be ParseText(offsetString, UTCOffset) | ||
| var match = OFFSET_TIMEZONE_FORMAT_REGEX.exec(offsetString); | ||
| // 2. Assert: parseResult is not a List of errors (validated by IsValidTimeZoneName) | ||
| if (!match) { | ||
| return offsetString; | ||
| } | ||
| // 3. Extract components from parseResult | ||
| var sign = match[1]; | ||
| var hours = match[2]; | ||
| var minutes = match[3] ? match[3] : '00'; | ||
| var seconds = match[4]; | ||
| var fractional = match[5]; | ||
| // 4. Build canonical format: ±HH:MM | ||
| var canonical = "".concat(sign).concat(hours, ":").concat(minutes); | ||
| // 5. If seconds are present and non-zero (or fractional present), include them | ||
| if (seconds && (parseInt(seconds, 10) !== 0 || fractional)) { | ||
| canonical += ":".concat(seconds); | ||
| // 6. If fractional seconds present, include them (trim trailing zeros) | ||
| if (fractional) { | ||
| var trimmedFractional = fractional.replace(TRAILING_ZEROS_REGEX, ''); | ||
| if (trimmedFractional) { | ||
| canonical += ".".concat(trimmedFractional); | ||
| } | ||
| } | ||
| } | ||
| // 7. Return canonical representation | ||
| return canonical; | ||
| } | ||
| /** | ||
| * CanonicalizeTimeZoneName ( timeZone ) | ||
| * https://tc39.es/ecma402/#sec-canonicalizetimezonename | ||
| * @param tz | ||
| * | ||
| * Extended to support UTC offset time zones per ECMA-402 PR #788 (ES2026). | ||
| * Returns the canonical and case-regularized form of a timezone identifier. | ||
| * | ||
| * @param tz - The timezone identifier to canonicalize | ||
| * @param implDetails - Implementation details containing timezone data | ||
| * @returns The canonical timezone identifier | ||
| */ | ||
| export function CanonicalizeTimeZoneName(tz, _a) { | ||
| var zoneNames = _a.zoneNames, uppercaseLinks = _a.uppercaseLinks; | ||
| // 1. If IsTimeZoneOffsetString(timeZone) is true, then | ||
| // a. Return ParseTimeZoneOffsetString(timeZone) | ||
| // Per ECMA-402 PR #788, UTC offset identifiers are canonicalized | ||
| if (IsTimeZoneOffsetString(tz)) { | ||
| return ParseTimeZoneOffsetString(tz); | ||
| } | ||
| // 2. Let ianaTimeZone be the String value of the Zone or Link name | ||
| // in the IANA Time Zone Database that is an ASCII-case-insensitive | ||
| // match of timeZone | ||
| var uppercasedTz = tz.toUpperCase(); | ||
@@ -13,6 +85,8 @@ var uppercasedZones = zoneNames.reduce(function (all, z) { | ||
| var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz]; | ||
| // 3. If ianaTimeZone is "Etc/UTC" or "Etc/GMT", return "UTC" | ||
| if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') { | ||
| return 'UTC'; | ||
| } | ||
| // 4. Return ianaTimeZone | ||
| return ianaTimeZone; | ||
| } |
| /** | ||
| * IsValidTimeZoneName ( timeZone ) | ||
| * https://tc39.es/ecma402/#sec-isvalidtimezonename | ||
| * @param tz | ||
| * @param implDetails implementation details | ||
| * | ||
| * Extended to support UTC offset time zones per ECMA-402 PR #788 (ES2026). | ||
| * The abstract operation validates both: | ||
| * 1. UTC offset identifiers (e.g., "+01:00", "-05:30") | ||
| * 2. Available named time zone identifiers from IANA Time Zone Database | ||
| * | ||
| * @param tz - The timezone identifier to validate | ||
| * @param implDetails - Implementation details containing timezone data | ||
| * @returns true if timeZone is a valid identifier | ||
| */ | ||
@@ -6,0 +14,0 @@ export declare function IsValidTimeZoneName(tz: string, { zoneNamesFromData, uppercaseLinks, }: { |
@@ -0,8 +1,59 @@ | ||
| // Cached regex patterns for performance | ||
| var OFFSET_TIMEZONE_PREFIX_REGEX = /^[+-]/; | ||
| var OFFSET_TIMEZONE_FORMAT_REGEX = /^([+-])(\d{2})(?::?(\d{2}))?(?::?(\d{2}))?(?:\.(\d{1,9}))?$/; | ||
| /** | ||
| * IsTimeZoneOffsetString ( offsetString ) | ||
| * https://tc39.es/ecma262/#sec-istimezoneoffsetstring | ||
| * | ||
| * Validates whether a string represents a valid UTC offset timezone. | ||
| * Supports formats: ±HH, ±HHMM, ±HH:MM, ±HH:MM:SS, ±HH:MM:SS.sss | ||
| * | ||
| * @param offsetString - The string to validate as a timezone offset | ||
| * @returns true if offsetString is a valid UTC offset format | ||
| */ | ||
| function IsTimeZoneOffsetString(offsetString) { | ||
| // 1. If offsetString does not start with '+' or '-', return false | ||
| if (!OFFSET_TIMEZONE_PREFIX_REGEX.test(offsetString)) { | ||
| return false; | ||
| } | ||
| // 2. Let parseResult be ParseText(offsetString, UTCOffset) | ||
| var match = OFFSET_TIMEZONE_FORMAT_REGEX.exec(offsetString); | ||
| // 3. If parseResult is a List of errors, return false | ||
| if (!match) { | ||
| return false; | ||
| } | ||
| // 4. Validate component ranges per ECMA-262 grammar | ||
| // Hour must be 0-23, Minute must be 0-59, Second must be 0-59 | ||
| var hours = parseInt(match[2], 10); | ||
| var minutes = match[3] ? parseInt(match[3], 10) : 0; | ||
| var seconds = match[4] ? parseInt(match[4], 10) : 0; | ||
| if (hours > 23 || minutes > 59 || seconds > 59) { | ||
| return false; | ||
| } | ||
| // 5. Return true | ||
| return true; | ||
| } | ||
| /** | ||
| * IsValidTimeZoneName ( timeZone ) | ||
| * https://tc39.es/ecma402/#sec-isvalidtimezonename | ||
| * @param tz | ||
| * @param implDetails implementation details | ||
| * | ||
| * Extended to support UTC offset time zones per ECMA-402 PR #788 (ES2026). | ||
| * The abstract operation validates both: | ||
| * 1. UTC offset identifiers (e.g., "+01:00", "-05:30") | ||
| * 2. Available named time zone identifiers from IANA Time Zone Database | ||
| * | ||
| * @param tz - The timezone identifier to validate | ||
| * @param implDetails - Implementation details containing timezone data | ||
| * @returns true if timeZone is a valid identifier | ||
| */ | ||
| export function IsValidTimeZoneName(tz, _a) { | ||
| var zoneNamesFromData = _a.zoneNamesFromData, uppercaseLinks = _a.uppercaseLinks; | ||
| // 1. If IsTimeZoneOffsetString(timeZone) is true, return true | ||
| // Per ECMA-402 PR #788, UTC offset identifiers are valid | ||
| if (IsTimeZoneOffsetString(tz)) { | ||
| return true; | ||
| } | ||
| // 2. Let timeZones be AvailableNamedTimeZoneIdentifiers() | ||
| // 3. If timeZones contains an element equal to timeZone, return true | ||
| // NOTE: Implementation uses case-insensitive comparison per spec note | ||
| var uppercasedTz = tz.toUpperCase(); | ||
@@ -16,3 +67,7 @@ var zoneNames = new Set(); | ||
| }); | ||
| return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz); | ||
| if (zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz)) { | ||
| return true; | ||
| } | ||
| // 4. Return false | ||
| return false; | ||
| } |
@@ -47,3 +47,12 @@ import { Decimal } from 'decimal.js'; | ||
| if (num > thresholds[thresholds.length - 1]) { | ||
| return thresholds[thresholds.length - 1].length - 1; | ||
| // GH #4236: When number exceeds max threshold, use the exponent | ||
| // corresponding to the largest available threshold in locale data. | ||
| // Calculate exponent the same way as for normal thresholds (lines 70-73). | ||
| var magnitudeKey_1 = thresholds[thresholds.length - 1]; | ||
| var compactPattern_1 = thresholdMap[magnitudeKey_1].other; | ||
| if (compactPattern_1 === '0') { | ||
| return 0; | ||
| } | ||
| return (magnitudeKey_1.length - | ||
| thresholdMap[magnitudeKey_1].other.match(/0+/)[0].length); | ||
| } | ||
@@ -50,0 +59,0 @@ var i = thresholds.indexOf(num); |
| export var digitMapping = { | ||
| "adlm": [ | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„" | ||
| ], | ||
| "ahom": [ | ||
| "š°", | ||
| "š±", | ||
| "š²", | ||
| "š³", | ||
| "š“", | ||
| "šµ", | ||
| "š¶", | ||
| "š·", | ||
| "šø", | ||
| "š¹" | ||
| ], | ||
| "arab": [ | ||
| "Ł ", | ||
| "Ł”", | ||
| "Ł¢", | ||
| "Ł£", | ||
| "٤", | ||
| "Ł„", | ||
| "٦", | ||
| "٧", | ||
| "ŁØ", | ||
| "Ł©" | ||
| ], | ||
| "arabext": [ | ||
| "Ū°", | ||
| "Ū±", | ||
| "Ū²", | ||
| "Ū³", | ||
| "Ū“", | ||
| "Ūµ", | ||
| "Ū¶", | ||
| "Ū·", | ||
| "Ūø", | ||
| "Ū¹" | ||
| ], | ||
| "bali": [ | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į" | ||
| ], | ||
| "beng": [ | ||
| "০", | ||
| "ą§§", | ||
| "ą§Ø", | ||
| "ą§©", | ||
| "ą§Ŗ", | ||
| "ą§«", | ||
| "৬", | ||
| "ą§", | ||
| "ą§®", | ||
| "ą§Æ" | ||
| ], | ||
| "bhks": [ | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±", | ||
| "š±" | ||
| ], | ||
| "brah": [ | ||
| "š¦", | ||
| "š§", | ||
| "šØ", | ||
| "š©", | ||
| "šŖ", | ||
| "š«", | ||
| "š¬", | ||
| "š", | ||
| "š®", | ||
| "šÆ" | ||
| ], | ||
| "cakm": [ | ||
| "š¶", | ||
| "š·", | ||
| "šø", | ||
| "š¹", | ||
| "šŗ", | ||
| "š»", | ||
| "š¼", | ||
| "š½", | ||
| "š¾", | ||
| "šæ" | ||
| ], | ||
| "cham": [ | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©", | ||
| "ź©" | ||
| ], | ||
| "deva": [ | ||
| "ą„¦", | ||
| "ą„§", | ||
| "ą„Ø", | ||
| "ą„©", | ||
| "ą„Ŗ", | ||
| "ą„«", | ||
| "ą„¬", | ||
| "ą„", | ||
| "ą„®", | ||
| "ą„Æ" | ||
| ], | ||
| "diak": [ | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„", | ||
| "š„" | ||
| ], | ||
| "fullwide": [ | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼", | ||
| "ļ¼" | ||
| ], | ||
| "gong": [ | ||
| "š¶ ", | ||
| "š¶”", | ||
| "š¶¢", | ||
| "š¶£", | ||
| "š¶¤", | ||
| "š¶„", | ||
| "š¶¦", | ||
| "š¶§", | ||
| "š¶Ø", | ||
| "š¶©" | ||
| ], | ||
| "gonm": [ | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ", | ||
| "šµ" | ||
| ], | ||
| "gujr": [ | ||
| "૦", | ||
| "ą«§", | ||
| "૨", | ||
| "ą«©", | ||
| "૪", | ||
| "ą««", | ||
| "૬", | ||
| "ą«", | ||
| "ą«®", | ||
| "૯" | ||
| ], | ||
| "guru": [ | ||
| "੦", | ||
| "ą©§", | ||
| "੨", | ||
| "ą©©", | ||
| "੪", | ||
| "ą©«", | ||
| "੬", | ||
| "ą©", | ||
| "ą©®", | ||
| "੯" | ||
| ], | ||
| "hanidec": [ | ||
| "ć", | ||
| "äø", | ||
| "äŗ", | ||
| "äø", | ||
| "å", | ||
| "äŗ", | ||
| "å ", | ||
| "äø", | ||
| "å «", | ||
| "ä¹" | ||
| ], | ||
| "hmng": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "hmnp": [ | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š ", | ||
| "š " | ||
| ], | ||
| "java": [ | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§", | ||
| "ź§" | ||
| ], | ||
| "kali": [ | ||
| "ź¤", | ||
| "ź¤", | ||
| "ź¤", | ||
| "ź¤", | ||
| "ź¤", | ||
| "ź¤ ", | ||
| "ź¤", | ||
| "ź¤", | ||
| "ź¤", | ||
| "ź¤" | ||
| ], | ||
| "khmr": [ | ||
| "į ", | ||
| "į”", | ||
| "į¢", | ||
| "į£", | ||
| "į¤", | ||
| "į„", | ||
| "į¦", | ||
| "į§", | ||
| "įØ", | ||
| "į©" | ||
| ], | ||
| "knda": [ | ||
| "೦", | ||
| "ą³§", | ||
| "೨", | ||
| "೩", | ||
| "ą³Ŗ", | ||
| "೫", | ||
| "೬", | ||
| "ą³", | ||
| "ą³®", | ||
| "೯" | ||
| ], | ||
| "lana": [ | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ" | ||
| ], | ||
| "lanatham": [ | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ" | ||
| ], | ||
| "laoo": [ | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»", | ||
| "ą»" | ||
| ], | ||
| "lepc": [ | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ", | ||
| "įŖ" | ||
| ], | ||
| "limb": [ | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„", | ||
| "į„" | ||
| ], | ||
| "mathbold": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "mathdbl": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š ", | ||
| "š”" | ||
| ], | ||
| "mathmono": [ | ||
| "š¶", | ||
| "š·", | ||
| "šø", | ||
| "š¹", | ||
| "šŗ", | ||
| "š»", | ||
| "š¼", | ||
| "š½", | ||
| "š¾", | ||
| "šæ" | ||
| ], | ||
| "mathsanb": [ | ||
| "š¬", | ||
| "š", | ||
| "š®", | ||
| "šÆ", | ||
| "š°", | ||
| "š±", | ||
| "š²", | ||
| "š³", | ||
| "š“", | ||
| "šµ" | ||
| ], | ||
| "mathsans": [ | ||
| "š¢", | ||
| "š£", | ||
| "š¤", | ||
| "š„", | ||
| "š¦", | ||
| "š§", | ||
| "šØ", | ||
| "š©", | ||
| "šŖ", | ||
| "š«" | ||
| ], | ||
| "mlym": [ | ||
| "൦", | ||
| "ąµ§", | ||
| "൨", | ||
| "൩", | ||
| "ąµŖ", | ||
| "൫", | ||
| "൬", | ||
| "ąµ", | ||
| "ąµ®", | ||
| "൯" | ||
| ], | ||
| "modi": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "mong": [ | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į ", | ||
| "į " | ||
| ], | ||
| "mroo": [ | ||
| "š© ", | ||
| "š©”", | ||
| "š©¢", | ||
| "š©£", | ||
| "š©¤", | ||
| "š©„", | ||
| "š©¦", | ||
| "š©§", | ||
| "š©Ø", | ||
| "š©©" | ||
| ], | ||
| "mtei": [ | ||
| "꯰", | ||
| "꯱", | ||
| "꯲", | ||
| "꯳", | ||
| "ꯓ", | ||
| "꯵", | ||
| "꯶", | ||
| "꯷", | ||
| "꯸", | ||
| "꯹" | ||
| ], | ||
| "mymr": [ | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į ", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į" | ||
| ], | ||
| "mymrshan": [ | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į", | ||
| "į" | ||
| ], | ||
| "mymrtlng": [ | ||
| "ź§°", | ||
| "ź§±", | ||
| "ź§²", | ||
| "ź§³", | ||
| "ź§“", | ||
| "ź§µ", | ||
| "ź§¶", | ||
| "ź§·", | ||
| "ź§ø", | ||
| "ź§¹" | ||
| ], | ||
| "newa": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "nkoo": [ | ||
| "ß", | ||
| "ß", | ||
| "ß", | ||
| "ß", | ||
| "ß", | ||
| "ß ", | ||
| "ß", | ||
| "ß", | ||
| "ß", | ||
| "ß" | ||
| ], | ||
| "olck": [ | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±", | ||
| "į±" | ||
| ], | ||
| "orya": [ | ||
| "ą¦", | ||
| "ą§", | ||
| "ąØ", | ||
| "ą©", | ||
| "ąŖ", | ||
| "ą«", | ||
| "ą¬", | ||
| "ą", | ||
| "ą®", | ||
| "ąÆ" | ||
| ], | ||
| "osma": [ | ||
| "š ", | ||
| "š”", | ||
| "š¢", | ||
| "š£", | ||
| "š¤", | ||
| "š„", | ||
| "š¦", | ||
| "š§", | ||
| "šØ", | ||
| "š©" | ||
| ], | ||
| "rohg": [ | ||
| "š“°", | ||
| "š“±", | ||
| "š“²", | ||
| "š“³", | ||
| "š““", | ||
| "š“µ", | ||
| "š“¶", | ||
| "š“·", | ||
| "š“ø", | ||
| "š“¹" | ||
| ], | ||
| "saur": [ | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£", | ||
| "ź£" | ||
| ], | ||
| "segment": [ | ||
| "šÆ°", | ||
| "šÆ±", | ||
| "šÆ²", | ||
| "šÆ³", | ||
| "šÆ“", | ||
| "šÆµ", | ||
| "šÆ¶", | ||
| "šÆ·", | ||
| "šÆø", | ||
| "šÆ¹" | ||
| ], | ||
| "shrd": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "sind": [ | ||
| "š°", | ||
| "š±", | ||
| "š²", | ||
| "š³", | ||
| "š“", | ||
| "šµ", | ||
| "š¶", | ||
| "š·", | ||
| "šø", | ||
| "š¹" | ||
| ], | ||
| "sinh": [ | ||
| "ą·¦", | ||
| "ą·§", | ||
| "ą·Ø", | ||
| "ą·©", | ||
| "ą·Ŗ", | ||
| "ą·«", | ||
| "ą·¬", | ||
| "ą·", | ||
| "ą·®", | ||
| "ą·Æ" | ||
| ], | ||
| "sora": [ | ||
| "š°", | ||
| "š±", | ||
| "š²", | ||
| "š³", | ||
| "š“", | ||
| "šµ", | ||
| "š¶", | ||
| "š·", | ||
| "šø", | ||
| "š¹" | ||
| ], | ||
| "sund": [ | ||
| "į®°", | ||
| "į®±", | ||
| "᮲", | ||
| "᮳", | ||
| "ᮓ", | ||
| "᮵", | ||
| "į®¶", | ||
| "į®·", | ||
| "᮸", | ||
| "᮹" | ||
| ], | ||
| "takr": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š ", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "talu": [ | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§", | ||
| "į§" | ||
| ], | ||
| "tamldec": [ | ||
| "௦", | ||
| "௧", | ||
| "௨", | ||
| "௩", | ||
| "௪", | ||
| "௫", | ||
| "௬", | ||
| "ąÆ", | ||
| "௮", | ||
| "௯" | ||
| ], | ||
| "telu": [ | ||
| "౦", | ||
| "ą±§", | ||
| "౨", | ||
| "౩", | ||
| "ą±Ŗ", | ||
| "౫", | ||
| "౬", | ||
| "ą±", | ||
| "ą±®", | ||
| "౯" | ||
| ], | ||
| "thai": [ | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹", | ||
| "ą¹" | ||
| ], | ||
| "tibt": [ | ||
| "ą¼ ", | ||
| "ą¼”", | ||
| "ą¼¢", | ||
| "ą¼£", | ||
| "༤", | ||
| "༄", | ||
| "༦", | ||
| "ą¼§", | ||
| "༨", | ||
| "༩" | ||
| ], | ||
| "tirh": [ | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š", | ||
| "š" | ||
| ], | ||
| "vaii": [ | ||
| "į ", | ||
| "į”", | ||
| "į¢", | ||
| "į£", | ||
| "į¤", | ||
| "į„", | ||
| "į¦", | ||
| "į§", | ||
| "įØ", | ||
| "į©" | ||
| ], | ||
| "wara": [ | ||
| "š£ ", | ||
| "š£”", | ||
| "š£¢", | ||
| "š££", | ||
| "š£¤", | ||
| "š£„", | ||
| "š£¦", | ||
| "š£§", | ||
| "š£Ø", | ||
| "š£©" | ||
| ], | ||
| "wcho": [ | ||
| "š°", | ||
| "š±", | ||
| "š²", | ||
| "š³", | ||
| "š“", | ||
| "šµ", | ||
| "š¶", | ||
| "š·", | ||
| "šø", | ||
| "š¹" | ||
| ] | ||
| adlm: ['š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„'], | ||
| ahom: ['š°', 'š±', 'š²', 'š³', 'š“', 'šµ', 'š¶', 'š·', 'šø', 'š¹'], | ||
| arab: ['٠', 'ٔ', '٢', '٣', '٤', 'ل', '٦', '٧', '٨', '٩'], | ||
| arabext: ['Ū°', 'Ū±', 'Ū²', 'Ū³', 'Ū“', 'Ūµ', 'Ū¶', 'Ū·', 'Ūø', 'Ū¹'], | ||
| bali: ['į', 'į', 'į', 'į', 'į', 'į', 'į', 'į', 'į', 'į'], | ||
| beng: ['০', 'ą§§', 'ą§Ø', 'ą§©', 'ą§Ŗ', 'ą§«', '৬', 'ą§', 'ą§®', 'ą§Æ'], | ||
| bhks: ['š±', 'š±', 'š±', 'š±', 'š±', 'š±', 'š±', 'š±', 'š±', 'š±'], | ||
| brah: ['š¦', 'š§', 'šØ', 'š©', 'šŖ', 'š«', 'š¬', 'š', 'š®', 'šÆ'], | ||
| cakm: ['š¶', 'š·', 'šø', 'š¹', 'šŗ', 'š»', 'š¼', 'š½', 'š¾', 'šæ'], | ||
| cham: ['ź©', 'ź©', 'ź©', 'ź©', 'ź©', 'ź©', 'ź©', 'ź©', 'ź©', 'ź©'], | ||
| deva: ['ą„¦', 'ą„§', 'ą„Ø', 'ą„©', 'ą„Ŗ', 'ą„«', 'ą„¬', 'ą„', 'ą„®', 'ą„Æ'], | ||
| diak: ['š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„', 'š„'], | ||
| fullwide: ['ļ¼', 'ļ¼', 'ļ¼', 'ļ¼', 'ļ¼', 'ļ¼', 'ļ¼', 'ļ¼', 'ļ¼', 'ļ¼'], | ||
| gong: ['š¶ ', 'š¶”', 'š¶¢', 'š¶£', 'š¶¤', 'š¶„', 'š¶¦', 'š¶§', 'š¶Ø', 'š¶©'], | ||
| gonm: ['šµ', 'šµ', 'šµ', 'šµ', 'šµ', 'šµ', 'šµ', 'šµ', 'šµ', 'šµ'], | ||
| gujr: ['૦', 'ą«§', '૨', 'ą«©', '૪', 'ą««', '૬', 'ą«', 'ą«®', '૯'], | ||
| guru: ['੦', 'ą©§', '੨', 'ą©©', '੪', 'ą©«', '੬', 'ą©', 'ą©®', '੯'], | ||
| hanidec: ['ć', 'äø', 'äŗ', 'äø', 'å', 'äŗ', 'å ', 'äø', 'å «', 'ä¹'], | ||
| hmng: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š'], | ||
| hmnp: ['š ', 'š ', 'š ', 'š ', 'š ', 'š ', 'š ', 'š ', 'š ', 'š '], | ||
| java: ['ź§', 'ź§', 'ź§', 'ź§', 'ź§', 'ź§', 'ź§', 'ź§', 'ź§', 'ź§'], | ||
| kali: ['ź¤', 'ź¤', 'ź¤', 'ź¤', 'ź¤', 'ź¤ ', 'ź¤', 'ź¤', 'ź¤', 'ź¤'], | ||
| khmr: ['į ', 'į”', 'į¢', 'į£', 'į¤', 'į„', 'į¦', 'į§', 'įØ', 'į©'], | ||
| knda: ['೦', 'ą³§', '೨', '೩', 'ą³Ŗ', '೫', '೬', 'ą³', 'ą³®', '೯'], | ||
| lana: ['įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ ', 'įŖ', 'įŖ', 'įŖ', 'įŖ'], | ||
| lanatham: ['įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ'], | ||
| laoo: ['ą»', 'ą»', 'ą»', 'ą»', 'ą»', 'ą»', 'ą»', 'ą»', 'ą»', 'ą»'], | ||
| lepc: ['įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ', 'įŖ'], | ||
| limb: ['į„', 'į„', 'į„', 'į„', 'į„', 'į„', 'į„', 'į„', 'į„', 'į„'], | ||
| mathbold: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š'], | ||
| mathdbl: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š ', 'š”'], | ||
| mathmono: ['š¶', 'š·', 'šø', 'š¹', 'šŗ', 'š»', 'š¼', 'š½', 'š¾', 'šæ'], | ||
| mathsanb: ['š¬', 'š', 'š®', 'šÆ', 'š°', 'š±', 'š²', 'š³', 'š“', 'šµ'], | ||
| mathsans: ['š¢', 'š£', 'š¤', 'š„', 'š¦', 'š§', 'šØ', 'š©', 'šŖ', 'š«'], | ||
| mlym: ['൦', 'ąµ§', '൨', '൩', 'ąµŖ', '൫', '൬', 'ąµ', 'ąµ®', '൯'], | ||
| modi: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š'], | ||
| mong: ['į ', 'į ', 'į ', 'į ', 'į ', 'į ', 'į ', 'į ', 'į ', 'į '], | ||
| mroo: ['š© ', 'š©”', 'š©¢', 'š©£', 'š©¤', 'š©„', 'š©¦', 'š©§', 'š©Ø', 'š©©'], | ||
| mtei: ['꯰', '꯱', '꯲', '꯳', 'ꯓ', '꯵', '꯶', '꯷', '꯸', '꯹'], | ||
| mymr: ['į', 'į', 'į', 'į', 'į', 'į ', 'į', 'į', 'į', 'į'], | ||
| mymrshan: ['į', 'į', 'į', 'į', 'į', 'į', 'į', 'į', 'į', 'į'], | ||
| mymrtlng: ['ź§°', 'ź§±', 'ź§²', 'ź§³', 'ź§“', 'ź§µ', 'ź§¶', 'ź§·', 'ź§ø', 'ź§¹'], | ||
| newa: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š'], | ||
| nkoo: ['ß', 'ß', 'ß', 'ß', 'ß', 'ß ', 'ß', 'ß', 'ß', 'ß'], | ||
| olck: ['į±', 'į±', 'į±', 'į±', 'į±', 'į±', 'į±', 'į±', 'į±', 'į±'], | ||
| orya: ['ą¦', 'ą§', 'ąØ', 'ą©', 'ąŖ', 'ą«', 'ą¬', 'ą', 'ą®', 'ąÆ'], | ||
| osma: ['š ', 'š”', 'š¢', 'š£', 'š¤', 'š„', 'š¦', 'š§', 'šØ', 'š©'], | ||
| rohg: ['š“°', 'š“±', 'š“²', 'š“³', 'š““', 'š“µ', 'š“¶', 'š“·', 'š“ø', 'š“¹'], | ||
| saur: ['ź£', 'ź£', 'ź£', 'ź£', 'ź£', 'ź£', 'ź£', 'ź£', 'ź£', 'ź£'], | ||
| segment: ['šÆ°', 'šÆ±', 'šÆ²', 'šÆ³', 'šÆ“', 'šÆµ', 'šÆ¶', 'šÆ·', 'šÆø', 'šÆ¹'], | ||
| shrd: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š'], | ||
| sind: ['š°', 'š±', 'š²', 'š³', 'š“', 'šµ', 'š¶', 'š·', 'šø', 'š¹'], | ||
| sinh: ['ą·¦', 'ą·§', 'ą·Ø', 'ą·©', 'ą·Ŗ', 'ą·«', 'ą·¬', 'ą·', 'ą·®', 'ą·Æ'], | ||
| sora: ['š°', 'š±', 'š²', 'š³', 'š“', 'šµ', 'š¶', 'š·', 'šø', 'š¹'], | ||
| sund: ['᮰', '᮱', '᮲', '᮳', 'ᮓ', '᮵', '᮶', '᮷', '᮸', '᮹'], | ||
| takr: ['š', 'š', 'š', 'š', 'š', 'š ', 'š', 'š', 'š', 'š'], | ||
| talu: ['į§', 'į§', 'į§', 'į§', 'į§', 'į§', 'į§', 'į§', 'į§', 'į§'], | ||
| tamldec: ['௦', '௧', '௨', '௩', '௪', '௫', '௬', 'ąÆ', '௮', '௯'], | ||
| telu: ['౦', 'ą±§', '౨', '౩', 'ą±Ŗ', '౫', '౬', 'ą±', 'ą±®', '౯'], | ||
| thai: ['ą¹', 'ą¹', 'ą¹', 'ą¹', 'ą¹', 'ą¹', 'ą¹', 'ą¹', 'ą¹', 'ą¹'], | ||
| tibt: ['༠', '༔', '༢', '༣', '༤', '༄', '༦', '༧', '༨', '༩'], | ||
| tirh: ['š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š', 'š'], | ||
| vaii: ['į ', 'į”', 'į¢', 'į£', 'į¤', 'į„', 'į¦', 'į§', 'įØ', 'į©'], | ||
| wara: ['š£ ', 'š£”', 'š£¢', 'š££', 'š£¤', 'š£„', 'š£¦', 'š£§', 'š£Ø', 'š£©'], | ||
| wcho: ['š°', 'š±', 'š²', 'š³', 'š“', 'šµ', 'š¶', 'š·', 'šø', 'š¹'], | ||
| }; |
@@ -401,3 +401,3 @@ import { Decimal } from 'decimal.js'; | ||
| function getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) { | ||
| var _a; | ||
| var _a, _b; | ||
| var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude; | ||
@@ -413,3 +413,12 @@ var magnitudeKey = String(Math.pow(10, magnitude)); | ||
| var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey]; | ||
| // GH #4236: If magnitude exceeds available patterns, use the largest available | ||
| if (!compactPluralRules) { | ||
| var thresholds = Object.keys(currencyData.short || {}); | ||
| if (thresholds.length > 0 && | ||
| magnitudeKey > thresholds[thresholds.length - 1]) { | ||
| magnitudeKey = thresholds[thresholds.length - 1]; | ||
| compactPluralRules = (_b = currencyData.short) === null || _b === void 0 ? void 0 : _b[magnitudeKey]; | ||
| } | ||
| } | ||
| if (!compactPluralRules) { | ||
| return null; | ||
@@ -424,3 +433,12 @@ } | ||
| var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey]; | ||
| // GH #4236: If magnitude exceeds available patterns, use the largest available | ||
| if (!compactPlaralRule) { | ||
| var thresholds = Object.keys(byCompactDisplay[compactDisplay]); | ||
| if (thresholds.length > 0 && | ||
| magnitudeKey > thresholds[thresholds.length - 1]) { | ||
| magnitudeKey = thresholds[thresholds.length - 1]; | ||
| compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey]; | ||
| } | ||
| } | ||
| if (!compactPlaralRule) { | ||
| return null; | ||
@@ -427,0 +445,0 @@ } |
+3
-3
| { | ||
| "name": "@formatjs/ecma402-abstract", | ||
| "description": "A collection of implementation for ECMAScript abstract operations", | ||
| "version": "3.0.6", | ||
| "version": "3.0.7", | ||
| "license": "MIT", | ||
@@ -16,4 +16,4 @@ "author": "Long Ho <holevietlong@gmail.com", | ||
| "tslib": "^2.8.0", | ||
| "@formatjs/fast-memoize": "3.0.1", | ||
| "@formatjs/intl-localematcher": "0.7.3" | ||
| "@formatjs/intl-localematcher": "0.7.4", | ||
| "@formatjs/fast-memoize": "3.0.2" | ||
| }, | ||
@@ -20,0 +20,0 @@ "bugs": "https://github.com/formatjs/formatjs/issues", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
157857
1.35%3784
-12.57%+ Added
+ Added
- Removed
- Removed
Updated