Repository navigation
Released 0.7.1 across the coordinated @comvi/* release train.
The GitHub Release asset comvi-v0.7.1.tar.gz is the single archive for this release. It contains the packed npm tarballs plus manifest.json and SHA256SUMS.
Comvi i18n 0.7.1 is a patch release: the formatters are exported from every binding and fall back through the app's fallback locales, comvi translate and comvi pull keep a catalog's indentation and line endings, and @comvi/vite-plugin types a fileTemplate without {namespace} correctly. Twelve packages ship at one version, with no breaking change.
Formatters
- Every binding exports the formatters.
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported, alongside theLocaleSourcetype, from@comvi/vue,@comvi/react,@comvi/svelte,@comvi/solid,@comvi/next(root,/clientand/server) and@comvi/nuxt/i18n. Nuxt also auto-imports the four functions at a low priority, so an app's ownformatDatekeeps winning. Code that formats outside a component, such as a store or a utility module, no longer needs@comvi/coreas its own dependency to import them. They are core's own functions re-exported by name, so a formatter an app does not use is tree-shaken. @comvi/svelte/format. The root of@comvi/sveltere-exportsT.svelte, so plain Node (a Playwright test, a script) cannot import it. The new@comvi/svelte/formatentry exports only the formatters andLocaleSource, and loads in plain Node without a Svelte loader.- The fallback chain reaches
Intl. Without an explicitlocaleargument, the formatters now pass[locale, ...fallbackLocales]toIntl, skipping a fallback that is not a valid language tag. A locale the runtime has no data for now formats in the first fallback it does have, instead of in the runtime's default language. Which locales have data depends on the runtime. An explicitlocaleargument is still passed alone. LocaleSourcegains an optionalfallbackLocales, and the instance exposesi18n.fallbackLocales, a read-only array that stays the same untilsetFallbackLocale()replaces it. The bound formatters in every binding re-render onsetFallbackLocale(). In React,useFormatters()returns the same functions until the locale or the fallback chain changes.
CLI
comvi translateandcomvi pullkeep a file's indentation and line endings. Both wrote every catalog with two-space indentation, LF and a final newline, so a repository formatted with tabs, four spaces or CRLF failed its formatter check after each run. Each file is now written with the indentation, line endings and final newline it already has. A new file takes those of the source locale's file for the same namespace, else two spaces, LF and a final newline as before. 0.7.0's note thattranslaterewrites a file with two-space indentation no longer holds.
@comvi/vite-plugin
- A
fileTemplatewithout{namespace}({languageTag}.json,{languageTag}/messages.json) generated keys like"undefined:hello", so the typed keys never matched. Its keys now land indefaultNs(default"default"), the same as root files under the default template.
Dependencies
- Development dependencies were updated, including major versions of the build and test tooling, and the Next.js (15 and 16) and Nuxt (3 and 4) majors the bindings are smoke-tested against. Declared runtime dependency and peer ranges are unchanged. The in-context editor's stylesheet is regenerated by Tailwind CSS 4.3, and the
I18nProviderandComviClientProviderdeclarations now spell their return typeimport('react').JSX.Element, the same type as before. The in-context editor's interface is built with reka-ui 2.11, @lucide/vue 1.61 and tailwind-merge 3.7, bundled into the editor's files as before, so there is nothing new to install.
@comvi/core
Patch Changes
- e7d5fad: The formatters now pass the fallback-locale chain to
Intl: without an explicitlocaleargument they format with[locale, ...fallbackLocales], so a locale the runtime has no data for formats in the first fallback it does have instead of the runtime default. A fallbackIntlrejects as a tag (a catalog key such asen_US) is skipped, never thrown on. An explicitlocaleargument is still passed alone.LocaleSourcegains an optionalfallbackLocales, and the instance exposesi18n.fallbackLocales, a read-only array thatsetFallbackLocale()replaces rather than changes. The bound formatters in every binding follow the same chain and re-render onsetFallbackLocale();useFormatters()identity is now stable per locale and fallback chain. - e7d5fad: The format helpers no longer rebuild an I18n instance's fallback-locale chain on every call.
- e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3.
@comvi/cli
Patch Changes
- e7d5fad:
comvi translateandcomvi pullwrote every catalog with two-space indentation, LF and a final newline, so a repository formatted with tabs, four spaces or CRLF failed its formatter check after each run. Both now write a file in its own indentation, line endings and final newline. A new file takes those of the source locale's file for the same namespace (pullusessourceLocalefrom.comvirc.json), else two spaces and LF as before. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3.
@comvi/next
Patch Changes
- e7d5fad:
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported from every binding, so code outside a component no longer needs@comvi/coreas its own dependency.@comvi/sveltealso exports them from@comvi/svelte/format, which imports nothing but@comvi/core, for code reached by plain Node (tests, scripts), where the root'sT.sveltecannot load.@comvi/nexthas them on the root,/clientand/server;@comvi/nuxtexports them from@comvi/nuxt/i18nand registers them as auto-imports at a low priority, so an app's ownformatDateand the like keep winning. Each is core's own function, re-exported by name, so an app that does not format pays nothing. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- @comvi/react@0.7.1
- @comvi/core@0.7.1
@comvi/nuxt
Patch Changes
- e7d5fad:
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported from every binding, so code outside a component no longer needs@comvi/coreas its own dependency.@comvi/sveltealso exports them from@comvi/svelte/format, which imports nothing but@comvi/core, for code reached by plain Node (tests, scripts), where the root'sT.sveltecannot load.@comvi/nexthas them on the root,/clientand/server;@comvi/nuxtexports them from@comvi/nuxt/i18nand registers them as auto-imports at a low priority, so an app's ownformatDateand the like keep winning. Each is core's own function, re-exported by name, so an app that does not format pays nothing. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- @comvi/vue@0.7.1
- @comvi/core@0.7.1
@comvi/plugin-fetch-loader
Patch Changes
- e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3.
@comvi/plugin-in-context-editor
Patch Changes
- e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - e7d5fad: The editor's interface is now built with reka-ui 2.11, @lucide/vue 1.61 and tailwind-merge 3.7. They are bundled into the editor's files as before, so there is nothing new to install, and the editor's API and options are unchanged.
@comvi/plugin-locale-detector
Patch Changes
- e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3.
@comvi/react
Patch Changes
- e7d5fad:
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported from every binding, so code outside a component no longer needs@comvi/coreas its own dependency.@comvi/sveltealso exports them from@comvi/svelte/format, which imports nothing but@comvi/core, for code reached by plain Node (tests, scripts), where the root'sT.sveltecannot load.@comvi/nexthas them on the root,/clientand/server;@comvi/nuxtexports them from@comvi/nuxt/i18nand registers them as auto-imports at a low priority, so an app's ownformatDateand the like keep winning. Each is core's own function, re-exported by name, so an app that does not format pays nothing. - e7d5fad: The formatters now pass the fallback-locale chain to
Intl: without an explicitlocaleargument they format with[locale, ...fallbackLocales], so a locale the runtime has no data for formats in the first fallback it does have instead of the runtime default. A fallbackIntlrejects as a tag (a catalog key such asen_US) is skipped, never thrown on. An explicitlocaleargument is still passed alone.LocaleSourcegains an optionalfallbackLocales, and the instance exposesi18n.fallbackLocales, a read-only array thatsetFallbackLocale()replaces rather than changes. The bound formatters in every binding follow the same chain and re-render onsetFallbackLocale();useFormatters()identity is now stable per locale and fallback chain. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- @comvi/core@0.7.1
@comvi/solid
Patch Changes
- e7d5fad:
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported from every binding, so code outside a component no longer needs@comvi/coreas its own dependency.@comvi/sveltealso exports them from@comvi/svelte/format, which imports nothing but@comvi/core, for code reached by plain Node (tests, scripts), where the root'sT.sveltecannot load.@comvi/nexthas them on the root,/clientand/server;@comvi/nuxtexports them from@comvi/nuxt/i18nand registers them as auto-imports at a low priority, so an app's ownformatDateand the like keep winning. Each is core's own function, re-exported by name, so an app that does not format pays nothing. - e7d5fad: The formatters now pass the fallback-locale chain to
Intl: without an explicitlocaleargument they format with[locale, ...fallbackLocales], so a locale the runtime has no data for formats in the first fallback it does have instead of the runtime default. A fallbackIntlrejects as a tag (a catalog key such asen_US) is skipped, never thrown on. An explicitlocaleargument is still passed alone.LocaleSourcegains an optionalfallbackLocales, and the instance exposesi18n.fallbackLocales, a read-only array thatsetFallbackLocale()replaces rather than changes. The bound formatters in every binding follow the same chain and re-render onsetFallbackLocale();useFormatters()identity is now stable per locale and fallback chain. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- @comvi/core@0.7.1
@comvi/svelte
Patch Changes
- e7d5fad:
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported from every binding, so code outside a component no longer needs@comvi/coreas its own dependency.@comvi/sveltealso exports them from@comvi/svelte/format, which imports nothing but@comvi/core, for code reached by plain Node (tests, scripts), where the root'sT.sveltecannot load.@comvi/nexthas them on the root,/clientand/server;@comvi/nuxtexports them from@comvi/nuxt/i18nand registers them as auto-imports at a low priority, so an app's ownformatDateand the like keep winning. Each is core's own function, re-exported by name, so an app that does not format pays nothing. - e7d5fad: The formatters now pass the fallback-locale chain to
Intl: without an explicitlocaleargument they format with[locale, ...fallbackLocales], so a locale the runtime has no data for formats in the first fallback it does have instead of the runtime default. A fallbackIntlrejects as a tag (a catalog key such asen_US) is skipped, never thrown on. An explicitlocaleargument is still passed alone.LocaleSourcegains an optionalfallbackLocales, and the instance exposesi18n.fallbackLocales, a read-only array thatsetFallbackLocale()replaces rather than changes. The bound formatters in every binding follow the same chain and re-render onsetFallbackLocale();useFormatters()identity is now stable per locale and fallback chain. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- @comvi/core@0.7.1
@comvi/vite-plugin
Patch Changes
- e7d5fad: A
fileTemplatewithout{namespace}({languageTag}.json,{languageTag}/messages.json) generated keys like"undefined:hello", so the typed keys never matched. Such a template is one catalog per locale: its keys now land indefaultNs(default"default"), the same as root files under the default template. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3.
@comvi/vue
Patch Changes
- e7d5fad:
formatNumber,formatDate,formatCurrencyandformatRelativeTimeare now exported from every binding, so code outside a component no longer needs@comvi/coreas its own dependency.@comvi/sveltealso exports them from@comvi/svelte/format, which imports nothing but@comvi/core, for code reached by plain Node (tests, scripts), where the root'sT.sveltecannot load.@comvi/nexthas them on the root,/clientand/server;@comvi/nuxtexports them from@comvi/nuxt/i18nand registers them as auto-imports at a low priority, so an app's ownformatDateand the like keep winning. Each is core's own function, re-exported by name, so an app that does not format pays nothing. - e7d5fad: The formatters now pass the fallback-locale chain to
Intl: without an explicitlocaleargument they format with[locale, ...fallbackLocales], so a locale the runtime has no data for formats in the first fallback it does have instead of the runtime default. A fallbackIntlrejects as a tag (a catalog key such asen_US) is skipped, never thrown on. An explicitlocaleargument is still passed alone.LocaleSourcegains an optionalfallbackLocales, and the instance exposesi18n.fallbackLocales, a read-only array thatsetFallbackLocale()replaces rather than changes. The bound formatters in every binding follow the same chain and re-render onsetFallbackLocale();useFormatters()identity is now stable per locale and fallback chain. - e7d5fad: Development and build dependencies were updated to close security advisories in the build and test toolchain. Runtime and peer dependency ranges, the API and the type declarations are unchanged.
- e7d5fad: Built and tested with updated development tooling (Vitest 5, vite-plugin-dts 5, Prettier 3.9, Tailwind CSS 4.3, @types/react 19.3). No runtime, API or dependency-range changes. The
I18nProviderandComviClientProviderdeclarations spell their return typeimport('react').JSX.Element(the same type), and the in-context editor's stylesheet is regenerated by Tailwind CSS 4.3. - Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- Updated dependencies [e7d5fad]
- @comvi/core@0.7.1