From 3fed5f4e8ba7302a0cefbcdf0bf602007fbff614 Mon Sep 17 00:00:00 2001 From: longlho Date: Mon, 18 Nov 2024 01:45:58 -0500 Subject: [PATCH 1/3] fix(@formatjs/cli): remove @formatjs/ecma402-abstract, use native TS Intl typdefs --- packages/intl/BUILD | 1 - packages/intl/package.json | 1 - packages/intl/src/create-intl.ts | 2 -- packages/intl/src/dateTime.ts | 7 +++---- packages/intl/src/message.ts | 3 +-- packages/intl/src/number.ts | 11 +++++++---- packages/intl/src/plural.ts | 9 ++++----- packages/intl/src/types.ts | 16 +++++++++------- packages/intl/src/utils.ts | 23 ++++++++++++++++------- packages/intl/tests/formatTime.test.ts | 3 +-- 10 files changed, 41 insertions(+), 35 deletions(-) diff --git a/packages/intl/BUILD b/packages/intl/BUILD index 20a75cb03a9..e65693da292 100644 --- a/packages/intl/BUILD +++ b/packages/intl/BUILD @@ -27,7 +27,6 @@ npm_package( SRCS = glob(["src/**/*.ts*"]) + ["index.ts"] SRC_DEPS = [ - ":node_modules/@formatjs/ecma402-abstract", ":node_modules/@formatjs/fast-memoize", ":node_modules/@formatjs/icu-messageformat-parser", ":node_modules/intl-messageformat", diff --git a/packages/intl/package.json b/packages/intl/package.json index 6df36fcdaf7..2c4fd394672 100644 --- a/packages/intl/package.json +++ b/packages/intl/package.json @@ -29,7 +29,6 @@ "module": "lib/index.js", "sideEffects": false, "dependencies": { - "@formatjs/ecma402-abstract": "workspace:*", "@formatjs/fast-memoize": "workspace:*", "@formatjs/icu-messageformat-parser": "workspace:*", "intl-messageformat": "workspace:*", diff --git a/packages/intl/src/create-intl.ts b/packages/intl/src/create-intl.ts index 528d78c5e9e..b79fd5f5e16 100644 --- a/packages/intl/src/create-intl.ts +++ b/packages/intl/src/create-intl.ts @@ -140,9 +140,7 @@ export function createIntl( resolvedConfig, formatters.getPluralRules ), - // @ts-expect-error TODO: will get to this later formatMessage: formatMessage.bind(null, resolvedConfig, formatters), - // @ts-expect-error TODO: will get to this later $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind( diff --git a/packages/intl/src/dateTime.ts b/packages/intl/src/dateTime.ts index 55768731b64..951f88e538b 100644 --- a/packages/intl/src/dateTime.ts +++ b/packages/intl/src/dateTime.ts @@ -1,8 +1,7 @@ -import {Formatters, IntlFormatters, CustomFormats, OnErrorFn} from './types' +import {CustomFormats, Formatters, IntlFormatters, OnErrorFn} from './types' -import {filterProps, getNamedFormat} from './utils' import {IntlFormatError} from './error' -import {DateTimeFormat} from '@formatjs/ecma402-abstract' +import {filterProps, getNamedFormat} from './utils' const DATE_TIME_FORMAT_OPTIONS: Array = [ 'formatMatcher', @@ -43,7 +42,7 @@ export function getFormatter( type: 'date' | 'time', getDateTimeFormat: Formatters['getDateTimeFormat'], options: Parameters[1] = {} -): DateTimeFormat { +): Intl.DateTimeFormat { const {format} = options const defaults = { ...(timeZone && {timeZone}), diff --git a/packages/intl/src/message.ts b/packages/intl/src/message.ts index 8736e4a6f04..c0c78cd6a7f 100644 --- a/packages/intl/src/message.ts +++ b/packages/intl/src/message.ts @@ -1,5 +1,3 @@ -import {invariant} from '@formatjs/ecma402-abstract' - import {CustomFormats, Formatters, MessageDescriptor, OnErrorFn} from './types' import {MessageFormatElement, TYPE} from '@formatjs/icu-messageformat-parser' @@ -11,6 +9,7 @@ import { PrimitiveType, } from 'intl-messageformat' import {MessageFormatError, MissingTranslationError} from './error' +import {invariant} from './utils' function setTimeZoneInOptions( opts: Record, diff --git a/packages/intl/src/number.ts b/packages/intl/src/number.ts index 88660f2925a..2ed98d5fae4 100644 --- a/packages/intl/src/number.ts +++ b/packages/intl/src/number.ts @@ -1,9 +1,8 @@ -import {NumberFormatOptions} from '@formatjs/ecma402-abstract' import {IntlFormatError} from './error' import {CustomFormats, Formatters, IntlFormatters, OnErrorFn} from './types' import {filterProps, getNamedFormat} from './utils' -const NUMBER_FORMAT_OPTIONS: Array = [ +const NUMBER_FORMAT_OPTIONS: Array = [ 'style', 'currency', 'unit', @@ -27,9 +26,13 @@ const NUMBER_FORMAT_OPTIONS: Array = [ 'numberingSystem', // ES2023 NumberFormat + // @ts-expect-error: TypeScript doesn't know about this yet 'trailingZeroDisplay', + // @ts-expect-error: TypeScript doesn't know about this yet 'roundingPriority', + // @ts-expect-error: TypeScript doesn't know about this yet 'roundingIncrement', + // @ts-expect-error: TypeScript doesn't know about this yet 'roundingMode', ] @@ -50,12 +53,12 @@ export function getFormatter( const {format} = options const defaults = ((format && getNamedFormat(formats!, 'number', format, onError)) || - {}) as NumberFormatOptions + {}) as Intl.NumberFormatOptions const filteredOptions = filterProps( options, NUMBER_FORMAT_OPTIONS, defaults - ) as NumberFormatOptions + ) as Intl.NumberFormatOptions return getNumberFormat(locale, filteredOptions) } diff --git a/packages/intl/src/plural.ts b/packages/intl/src/plural.ts index 6d3e5036de4..b4e15bbfbf2 100644 --- a/packages/intl/src/plural.ts +++ b/packages/intl/src/plural.ts @@ -1,8 +1,7 @@ +import {ErrorCode, FormatError} from 'intl-messageformat' +import {IntlFormatError} from './error' import {Formatters, IntlFormatters, OnErrorFn} from './types' import {filterProps} from './utils' -import {IntlFormatError} from './error' -import {ErrorCode, FormatError} from 'intl-messageformat' -import {LDMLPluralRule} from '@formatjs/ecma402-abstract' const PLURAL_FORMAT_OPTIONS: Array = ['type'] @@ -17,7 +16,7 @@ export function formatPlural( getPluralRules: Formatters['getPluralRules'], value: Parameters[0], options: Parameters[1] = {} -): LDMLPluralRule { +): Intl.LDMLPluralRule { if (!Intl.PluralRules) { onError( new FormatError( @@ -36,7 +35,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" try { return getPluralRules(locale, filteredOptions).select( value - ) as LDMLPluralRule + ) as Intl.LDMLPluralRule } catch (e) { onError(new IntlFormatError('Error formatting plural.', locale, e)) } diff --git a/packages/intl/src/types.ts b/packages/intl/src/types.ts index 1c8f705adfb..8d951da32e2 100644 --- a/packages/intl/src/types.ts +++ b/packages/intl/src/types.ts @@ -1,4 +1,3 @@ -import {DateTimeFormat, NumberFormatOptions} from '@formatjs/ecma402-abstract' import {MessageFormatElement} from '@formatjs/icu-messageformat-parser' import { @@ -93,7 +92,10 @@ export type FormatDateOptions = Omit< 'localeMatcher' > & CustomFormatConfig<'date'> -export type FormatNumberOptions = Omit & +export type FormatNumberOptions = Omit< + Intl.NumberFormatOptions, + 'localeMatcher' +> & CustomFormatConfig<'number'> export type FormatRelativeTimeOptions = Omit< Intl.RelativeTimeFormatOptions, @@ -120,8 +122,8 @@ export type FormatDisplayNameOptions = Omit< export interface IntlFormatters { formatDateTimeRange( this: void, - from: Parameters[0], - to: Parameters[1], + from: Parameters[0], + to: Parameters[1], opts?: FormatDateOptions ): string formatDate( @@ -215,11 +217,11 @@ export interface Formatters { getDateTimeFormat( this: void, ...args: ConstructorParameters - ): DateTimeFormat + ): Intl.DateTimeFormat getNumberFormat( this: void, locales?: string | string[], - opts?: NumberFormatOptions + opts?: Intl.NumberFormatOptions ): Intl.NumberFormat getMessageFormat( this: void, @@ -250,7 +252,7 @@ export interface IntlShape } export interface IntlCache { - dateTime: Record + dateTime: Record number: Record message: Record relativeTime: Record diff --git a/packages/intl/src/utils.ts b/packages/intl/src/utils.ts index d580149fd20..1c973ae8651 100644 --- a/packages/intl/src/utils.ts +++ b/packages/intl/src/utils.ts @@ -1,15 +1,24 @@ +import {Cache, memoize, strategies} from '@formatjs/fast-memoize' +import {IntlMessageFormat} from 'intl-messageformat' +import {UnsupportedFormatterError} from './error' import { - IntlCache, CustomFormats, Formatters, + IntlCache, OnErrorFn, OnWarnFn, ResolvedIntlConfig, } from './types' -import {IntlMessageFormat} from 'intl-messageformat' -import {memoize, Cache, strategies} from '@formatjs/fast-memoize' -import {UnsupportedFormatterError} from './error' -import {DateTimeFormat, NumberFormatOptions} from '@formatjs/ecma402-abstract' + +export function invariant( + condition: boolean, + message: string, + Err: any = Error +): asserts condition { + if (!condition) { + throw new Err(message) + } +} export function filterProps, K extends string>( props: T, @@ -108,7 +117,7 @@ export function createFormatters( const ListFormat = (Intl as any).ListFormat const DisplayNames = (Intl as any).DisplayNames const getDateTimeFormat = memoize( - (...args) => new Intl.DateTimeFormat(...args) as DateTimeFormat, + (...args) => new Intl.DateTimeFormat(...args), { cache: createFastMemoizeCache(cache.dateTime), strategy: strategies.variadic, @@ -165,7 +174,7 @@ export function getNamedFormat( name: string, onError: OnErrorFn ): - | NumberFormatOptions + | Intl.NumberFormatOptions | Intl.DateTimeFormatOptions | Intl.RelativeTimeFormatOptions | undefined { diff --git a/packages/intl/tests/formatTime.test.ts b/packages/intl/tests/formatTime.test.ts index 8c5d841b875..6e3f09342c8 100644 --- a/packages/intl/tests/formatTime.test.ts +++ b/packages/intl/tests/formatTime.test.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/camelcase */ -import {DateTimeFormat} from '@formatjs/ecma402-abstract' import {formatTime as formatTimeFn} from '../src/dateTime' import {Formatters, IntlConfig, IntlFormatters} from '../src/types' @@ -10,7 +9,7 @@ describe('format API', () => { let getDateTimeFormat: Formatters['getDateTimeFormat'] = ( ...args: ConstructorParameters - ) => new Intl.DateTimeFormat(...args) as DateTimeFormat + ) => new Intl.DateTimeFormat(...args) beforeEach(() => { config = { locale: 'en', From 289aa9142e4ee06ddc25e61d7b9a771486cdd8b3 Mon Sep 17 00:00:00 2001 From: longlho Date: Mon, 18 Nov 2024 01:46:17 -0500 Subject: [PATCH 2/3] fix(react-intl): remove @formatjs/ecma402-abstract, use native TS Intl typdefs --- packages/react-intl/BUILD | 1 - packages/react-intl/index.ts | 3 +-- packages/react-intl/package.json | 1 - .../react-intl/src/components/createIntl.ts | 8 +++---- .../src/components/dateTimeRange.tsx | 7 +++--- .../react-intl/src/components/relative.tsx | 22 ++++++++----------- packages/react-intl/src/utils.ts | 15 ++++++++++--- .../tests/unit/components/number.test.tsx | 5 ++--- .../tests/unit/components/plural.test.tsx | 9 ++++---- 9 files changed, 34 insertions(+), 37 deletions(-) diff --git a/packages/react-intl/BUILD b/packages/react-intl/BUILD index d10e39b8cd8..5f01f370245 100644 --- a/packages/react-intl/BUILD +++ b/packages/react-intl/BUILD @@ -27,7 +27,6 @@ npm_package( SRCS = glob(["src/**/*.ts*"]) + ["index.ts"] SRC_DEPS = [ - ":node_modules/@formatjs/ecma402-abstract", ":node_modules/@formatjs/icu-messageformat-parser", ":node_modules/@formatjs/intl", ":node_modules/intl-messageformat", diff --git a/packages/react-intl/index.ts b/packages/react-intl/index.ts index 0ea4785bee7..6ffbc489698 100644 --- a/packages/react-intl/index.ts +++ b/packages/react-intl/index.ts @@ -3,7 +3,6 @@ * Copyrights licensed under the New BSD License. * See the accompanying LICENSE file for terms. */ -import {NumberFormatOptions} from '@formatjs/ecma402-abstract' import { CustomFormatConfig, FormatDateOptions, @@ -92,7 +91,7 @@ export const FormattedTime: React.FC< } > = createFormattedComponent('formatTime') export const FormattedNumber: React.FC< - Omit & + Omit & CustomFormatConfig<'number'> & { value: number children?(formattedNumber: string): React.ReactElement | null diff --git a/packages/react-intl/package.json b/packages/react-intl/package.json index 1834b95de3d..1cde18caf00 100644 --- a/packages/react-intl/package.json +++ b/packages/react-intl/package.json @@ -128,7 +128,6 @@ "types": "index.d.ts", "sideEffects": false, "dependencies": { - "@formatjs/ecma402-abstract": "workspace:*", "@formatjs/icu-messageformat-parser": "workspace:*", "@formatjs/intl": "workspace:*", "@types/hoist-non-react-statics": "3", diff --git a/packages/react-intl/src/components/createIntl.ts b/packages/react-intl/src/components/createIntl.ts index 07782350027..f9c6d76254e 100644 --- a/packages/react-intl/src/components/createIntl.ts +++ b/packages/react-intl/src/components/createIntl.ts @@ -10,14 +10,14 @@ import { createIntl as coreCreateIntl, formatMessage as coreFormatMessage, } from '@formatjs/intl' -import * as React from 'react' -import type {IntlConfig, IntlShape, ResolvedIntlConfig} from '../types' -import {DEFAULT_INTL_CONFIG, assignUniqueKeysToParts} from '../utils' import { FormatXMLElementFn, PrimitiveType, isFormatXMLElementFn, } from 'intl-messageformat' +import * as React from 'react' +import type {IntlConfig, IntlShape, ResolvedIntlConfig} from '../types' +import {DEFAULT_INTL_CONFIG, assignUniqueKeysToParts} from '../utils' function assignUniqueKeysToFormatXMLElementFnArgument< T extends Record< @@ -107,10 +107,8 @@ export const createIntl: CreateIntlFn< formatMessage: formatMessage.bind( null, resolvedConfig, - // @ts-expect-error fix this coreIntl.formatters ), - // @ts-expect-error fix this $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters), } as any } diff --git a/packages/react-intl/src/components/dateTimeRange.tsx b/packages/react-intl/src/components/dateTimeRange.tsx index f859e8fe02d..c612837e8ae 100644 --- a/packages/react-intl/src/components/dateTimeRange.tsx +++ b/packages/react-intl/src/components/dateTimeRange.tsx @@ -1,11 +1,10 @@ -import * as React from 'react' import {FormatDateOptions} from '@formatjs/intl' -import {DateTimeFormat} from '@formatjs/ecma402-abstract' +import * as React from 'react' import useIntl from './useIntl' interface Props extends FormatDateOptions { - from: Parameters[0] - to: Parameters[1] + from: Parameters[0] + to: Parameters[1] children?(value: React.ReactNode): React.ReactElement | null } diff --git a/packages/react-intl/src/components/relative.tsx b/packages/react-intl/src/components/relative.tsx index e6249d1cac6..0829fadb240 100644 --- a/packages/react-intl/src/components/relative.tsx +++ b/packages/react-intl/src/components/relative.tsx @@ -4,18 +4,16 @@ * See the accompanying LICENSE file for terms. */ import * as React from 'react' -import { - invariant, - RelativeTimeFormatSingularUnit, -} from '@formatjs/ecma402-abstract' + import {FormatRelativeTimeOptions} from '@formatjs/intl' +import {invariant} from '../utils' import useIntl from './useIntl' const MINUTE = 60 const HOUR = 60 * 60 const DAY = 60 * 60 * 24 -function selectUnit(seconds: number): RelativeTimeFormatSingularUnit { +function selectUnit(seconds: number): Intl.RelativeTimeFormatUnit { const absValue = Math.abs(seconds) if (absValue < MINUTE) { @@ -33,7 +31,7 @@ function selectUnit(seconds: number): RelativeTimeFormatSingularUnit { return 'day' } -function getDurationInSeconds(unit?: RelativeTimeFormatSingularUnit): number { +function getDurationInSeconds(unit?: Intl.RelativeTimeFormatUnit): number { switch (unit) { case 'second': return 1 @@ -48,7 +46,7 @@ function getDurationInSeconds(unit?: RelativeTimeFormatSingularUnit): number { function valueToSeconds( value?: number, - unit?: RelativeTimeFormatSingularUnit + unit?: Intl.RelativeTimeFormatUnit ): number { if (!value) { return 0 @@ -65,19 +63,17 @@ function valueToSeconds( export interface Props extends FormatRelativeTimeOptions { value?: number - unit?: RelativeTimeFormatSingularUnit + unit?: Intl.RelativeTimeFormatUnit updateIntervalInSeconds?: number children?(value: string): React.ReactElement | null } -const INCREMENTABLE_UNITS: RelativeTimeFormatSingularUnit[] = [ +const INCREMENTABLE_UNITS: Intl.RelativeTimeFormatUnit[] = [ 'second', 'minute', 'hour', ] -function canIncrement( - unit: RelativeTimeFormatSingularUnit = 'second' -): boolean { +function canIncrement(unit: Intl.RelativeTimeFormatUnit = 'second'): boolean { return INCREMENTABLE_UNITS.indexOf(unit) > -1 } @@ -110,7 +106,7 @@ const FormattedRelativeTime: React.FC = ({ 'Cannot schedule update with unit longer than hour' ) const [prevUnit, setPrevUnit] = React.useState< - RelativeTimeFormatSingularUnit | undefined + Intl.RelativeTimeFormatUnit | undefined >() const [prevValue, setPrevValue] = React.useState(0) const [currentValueInSeconds, setCurrentValueInSeconds] = diff --git a/packages/react-intl/src/utils.ts b/packages/react-intl/src/utils.ts index aaad7261974..94cfcafc9cf 100644 --- a/packages/react-intl/src/utils.ts +++ b/packages/react-intl/src/utils.ts @@ -1,10 +1,19 @@ -import {ResolvedIntlConfig} from './types' -import * as React from 'react' import {FormatXMLElementFn} from 'intl-messageformat' -import {invariant} from '@formatjs/ecma402-abstract' +import * as React from 'react' +import {ResolvedIntlConfig} from './types' import {DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG} from '@formatjs/intl' +export function invariant( + condition: boolean, + message: string, + Err: any = Error +): asserts condition { + if (!condition) { + throw new Err(message) + } +} + export function invariantIntlContext(intl?: any): asserts intl { invariant( intl, diff --git a/packages/react-intl/tests/unit/components/number.test.tsx b/packages/react-intl/tests/unit/components/number.test.tsx index cf7ca7af8a9..3ae8ee60115 100644 --- a/packages/react-intl/tests/unit/components/number.test.tsx +++ b/packages/react-intl/tests/unit/components/number.test.tsx @@ -1,4 +1,3 @@ -import {NumberFormatOptions} from '@formatjs/ecma402-abstract' import {IntlShape} from '@formatjs/intl' import {render} from '@testing-library/react' import * as React from 'react' @@ -67,7 +66,7 @@ describe('', () => { it('accepts valid Intl.NumberFormat options as props', () => { const num = 0.5 - const options = {style: 'percent' as NumberFormatOptions['style']} + const options = {style: 'percent' as Intl.NumberFormatOptions['style']} const {getByTestId} = mountWithProvider({value: num, ...options}, intl) @@ -162,7 +161,7 @@ describe('', function () { it('accepts valid Intl.NumberFormat options as props', () => { const num = 0.5 const options = { - style: 'percent' as NumberFormatOptions['style'], + style: 'percent' as Intl.NumberFormatOptions['style'], children, } diff --git a/packages/react-intl/tests/unit/components/plural.test.tsx b/packages/react-intl/tests/unit/components/plural.test.tsx index 32bc7ecf352..1475bce175a 100644 --- a/packages/react-intl/tests/unit/components/plural.test.tsx +++ b/packages/react-intl/tests/unit/components/plural.test.tsx @@ -1,10 +1,9 @@ +import {IntlShape} from '@formatjs/intl' +import {render} from '@testing-library/react' import * as React from 'react' +import {createIntl} from '../../../src/components/createIntl' import FormattedPlural from '../../../src/components/plural' import {mountFormattedComponentWithProvider} from '../testUtils' -import {createIntl} from '../../../src/components/createIntl' -import {IntlShape} from '@formatjs/intl' -import {render} from '@testing-library/react' -import {LDMLPluralRule} from '@formatjs/ecma402-abstract' const mountWithProvider = mountFormattedComponentWithProvider(FormattedPlural) @@ -98,7 +97,7 @@ describe('', () => { }) it('supports function-as-child pattern', () => { - const props = {one: 'foo'} as Record + const props = {one: 'foo'} as Record const num = 1 const spy = jest.fn().mockImplementation(() => Jest) From c286d10f8f6eb0b4e25bbf4063d8a1603e5fddbc Mon Sep 17 00:00:00 2001 From: longlho Date: Mon, 18 Nov 2024 01:47:00 -0500 Subject: [PATCH 3/3] build: publish - @formatjs/editor@2.0.62 - @formatjs/intl@3.0.1 - react-intl@7.0.1 - vue-intl@6.5.15 --- packages/editor/CHANGELOG.md | 4 ++++ packages/editor/package.json | 2 +- packages/intl/CHANGELOG.md | 6 ++++++ packages/intl/package.json | 2 +- packages/react-intl/CHANGELOG.md | 6 ++++++ packages/react-intl/package.json | 2 +- packages/vue-intl/CHANGELOG.md | 4 ++++ packages/vue-intl/package.json | 2 +- 8 files changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/editor/CHANGELOG.md b/packages/editor/CHANGELOG.md index 83a898f45c2..80bc4935c48 100644 --- a/packages/editor/CHANGELOG.md +++ b/packages/editor/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.62](https://github.com/formatjs/formatjs/compare/@formatjs/editor@2.0.61...@formatjs/editor@2.0.62) (2024-11-18) + +**Note:** Version bump only for package @formatjs/editor + ## [2.0.61](https://github.com/formatjs/formatjs/compare/@formatjs/editor@2.0.60...@formatjs/editor@2.0.61) (2024-11-18) **Note:** Version bump only for package @formatjs/editor diff --git a/packages/editor/package.json b/packages/editor/package.json index 89708c2088e..cc915957f8b 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@formatjs/editor", - "version": "2.0.61", + "version": "2.0.62", "description": "A ICU MessageFormat Editor UI", "keywords": [ "intl", diff --git a/packages/intl/CHANGELOG.md b/packages/intl/CHANGELOG.md index 0247528e281..32c4a5bb367 100644 --- a/packages/intl/CHANGELOG.md +++ b/packages/intl/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.1](https://github.com/formatjs/formatjs/compare/@formatjs/intl@3.0.0...@formatjs/intl@3.0.1) (2024-11-18) + +### Bug Fixes + +* **@formatjs/cli:** remove @formatjs/ecma402-abstract, use native TS Intl typdefs ([3fed5f4](https://github.com/formatjs/formatjs/commit/3fed5f4e8ba7302a0cefbcdf0bf602007fbff614)) - by @longlho + # [3.0.0](https://github.com/formatjs/formatjs/compare/@formatjs/intl@2.10.15...@formatjs/intl@3.0.0) (2024-11-18) ### Features diff --git a/packages/intl/package.json b/packages/intl/package.json index 2c4fd394672..5edbc90ec49 100644 --- a/packages/intl/package.json +++ b/packages/intl/package.json @@ -1,6 +1,6 @@ { "name": "@formatjs/intl", - "version": "3.0.0", + "version": "3.0.1", "description": "Internationalize JS apps. This library provides an API to format dates, numbers, and strings, including pluralization and handling translations.", "keywords": [ "intl", diff --git a/packages/react-intl/CHANGELOG.md b/packages/react-intl/CHANGELOG.md index b19925b48e9..67a55ee7768 100644 --- a/packages/react-intl/CHANGELOG.md +++ b/packages/react-intl/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.1](https://github.com/formatjs/formatjs/compare/react-intl@7.0.0...react-intl@7.0.1) (2024-11-18) + +### Bug Fixes + +* **react-intl:** remove @formatjs/ecma402-abstract, use native TS Intl typdefs ([289aa91](https://github.com/formatjs/formatjs/commit/289aa9142e4ee06ddc25e61d7b9a771486cdd8b3)) - by @longlho + # [7.0.0](https://github.com/formatjs/formatjs/compare/react-intl@6.8.9...react-intl@7.0.0) (2024-11-18) ### Features diff --git a/packages/react-intl/package.json b/packages/react-intl/package.json index 1cde18caf00..3209cf66962 100644 --- a/packages/react-intl/package.json +++ b/packages/react-intl/package.json @@ -1,6 +1,6 @@ { "name": "react-intl", - "version": "7.0.0", + "version": "7.0.1", "description": "Internationalize React apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.", "keywords": [ "intl", diff --git a/packages/vue-intl/CHANGELOG.md b/packages/vue-intl/CHANGELOG.md index dfaf1dc6db2..9c30dc33881 100644 --- a/packages/vue-intl/CHANGELOG.md +++ b/packages/vue-intl/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.5.15](https://github.com/formatjs/formatjs/compare/vue-intl@6.5.14...vue-intl@6.5.15) (2024-11-18) + +**Note:** Version bump only for package vue-intl + ## [6.5.14](https://github.com/formatjs/formatjs/compare/vue-intl@6.5.13...vue-intl@6.5.14) (2024-11-18) **Note:** Version bump only for package vue-intl diff --git a/packages/vue-intl/package.json b/packages/vue-intl/package.json index b165718d83b..f8f94f783a4 100644 --- a/packages/vue-intl/package.json +++ b/packages/vue-intl/package.json @@ -1,6 +1,6 @@ { "name": "vue-intl", - "version": "6.5.14", + "version": "6.5.15", "description": "formatjs intl binding for vue", "main": "index.js", "repository": { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy