Skip to content

v0.7.1

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Oct 06:36
9b37e2a

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, formatCurrency and formatRelativeTime are now exported, alongside the LocaleSource type, from @comvi/vue, @comvi/react, @comvi/svelte, @comvi/solid, @comvi/next (root, /client and /server) and @comvi/nuxt/i18n. Nuxt also auto-imports the four functions at a low priority, so an app's own formatDate keeps winning. Code that formats outside a component, such as a store or a utility module, no longer needs @comvi/core as 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/svelte re-exports T.svelte, so plain Node (a Playwright test, a script) cannot import it. The new @comvi/svelte/format entry exports only the formatters and LocaleSource, and loads in plain Node without a Svelte loader.
  • The fallback chain reaches Intl. Without an explicit locale argument, the formatters now pass [locale, ...fallbackLocales] to Intl, 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 explicit locale argument is still passed alone.
  • LocaleSource gains an optional fallbackLocales, and the instance exposes i18n.fallbackLocales, a read-only array that stays the same until setFallbackLocale() replaces it. The bound formatters in every binding re-render on setFallbackLocale(). In React, useFormatters() returns the same functions until the locale or the fallback chain changes.

CLI

  • comvi translate and comvi pull keep 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 that translate rewrites a file with two-space indentation no longer holds.

@comvi/vite-plugin

  • A fileTemplate without {namespace} ({languageTag}.json, {languageTag}/messages.json) generated keys like "undefined:hello", so the typed keys never matched. Its keys now land in defaultNs (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 I18nProvider and ComviClientProvider declarations now spell their return type import('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 explicit locale argument 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 fallback Intl rejects as a tag (a catalog key such as en_US) is skipped, never thrown on. An explicit locale argument is still passed alone. LocaleSource gains an optional fallbackLocales, and the instance exposes i18n.fallbackLocales, a read-only array that setFallbackLocale() replaces rather than changes. The bound formatters in every binding follow the same chain and re-render on setFallbackLocale(); 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 I18nProvider and ComviClientProvider declarations spell their return type import('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 translate and comvi pull 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. 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 (pull uses sourceLocale from .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 I18nProvider and ComviClientProvider declarations spell their return type import('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, formatCurrency and formatRelativeTime are now exported from every binding, so code outside a component no longer needs @comvi/core as its own dependency. @comvi/svelte also exports them from @comvi/svelte/format, which imports nothing but @comvi/core, for code reached by plain Node (tests, scripts), where the root's T.svelte cannot load. @comvi/next has them on the root, /client and /server; @comvi/nuxt exports them from @comvi/nuxt/i18n and registers them as auto-imports at a low priority, so an app's own formatDate and 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 I18nProvider and ComviClientProvider declarations spell their return type import('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, formatCurrency and formatRelativeTime are now exported from every binding, so code outside a component no longer needs @comvi/core as its own dependency. @comvi/svelte also exports them from @comvi/svelte/format, which imports nothing but @comvi/core, for code reached by plain Node (tests, scripts), where the root's T.svelte cannot load. @comvi/next has them on the root, /client and /server; @comvi/nuxt exports them from @comvi/nuxt/i18n and registers them as auto-imports at a low priority, so an app's own formatDate and 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 I18nProvider and ComviClientProvider declarations spell their return type import('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 I18nProvider and ComviClientProvider declarations spell their return type import('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 I18nProvider and ComviClientProvider declarations spell their return type import('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 I18nProvider and ComviClientProvider declarations spell their return type import('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, formatCurrency and formatRelativeTime are now exported from every binding, so code outside a component no longer needs @comvi/core as its own dependency. @comvi/svelte also exports them from @comvi/svelte/format, which imports nothing but @comvi/core, for code reached by plain Node (tests, scripts), where the root's T.svelte cannot load. @comvi/next has them on the root, /client and /server; @comvi/nuxt exports them from @comvi/nuxt/i18n and registers them as auto-imports at a low priority, so an app's own formatDate and 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 explicit locale argument 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 fallback Intl rejects as a tag (a catalog key such as en_US) is skipped, never thrown on. An explicit locale argument is still passed alone. LocaleSource gains an optional fallbackLocales, and the instance exposes i18n.fallbackLocales, a read-only array that setFallbackLocale() replaces rather than changes. The bound formatters in every binding follow the same chain and re-render on setFallbackLocale(); 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 I18nProvider and ComviClientProvider declarations spell their return type import('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, formatCurrency and formatRelativeTime are now exported from every binding, so code outside a component no longer needs @comvi/core as its own dependency. @comvi/svelte also exports them from @comvi/svelte/format, which imports nothing but @comvi/core, for code reached by plain Node (tests, scripts), where the root's T.svelte cannot load. @comvi/next has them on the root, /client and /server; @comvi/nuxt exports them from @comvi/nuxt/i18n and registers them as auto-imports at a low priority, so an app's own formatDate and 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 explicit locale argument 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 fallback Intl rejects as a tag (a catalog key such as en_US) is skipped, never thrown on. An explicit locale argument is still passed alone. LocaleSource gains an optional fallbackLocales, and the instance exposes i18n.fallbackLocales, a read-only array that setFallbackLocale() replaces rather than changes. The bound formatters in every binding follow the same chain and re-render on setFallbackLocale(); 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 I18nProvider and ComviClientProvider declarations spell their return type import('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, formatCurrency and formatRelativeTime are now exported from every binding, so code outside a component no longer needs @comvi/core as its own dependency. @comvi/svelte also exports them from @comvi/svelte/format, which imports nothing but @comvi/core, for code reached by plain Node (tests, scripts), where the root's T.svelte cannot load. @comvi/next has them on the root, /client and /server; @comvi/nuxt exports them from @comvi/nuxt/i18n and registers them as auto-imports at a low priority, so an app's own formatDate and 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 explicit locale argument 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 fallback Intl rejects as a tag (a catalog key such as en_US) is skipped, never thrown on. An explicit locale argument is still passed alone. LocaleSource gains an optional fallbackLocales, and the instance exposes i18n.fallbackLocales, a read-only array that setFallbackLocale() replaces rather than changes. The bound formatters in every binding follow the same chain and re-render on setFallbackLocale(); 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 I18nProvider and ComviClientProvider declarations spell their return type import('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 fileTemplate without {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 in defaultNs (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 I18nProvider and ComviClientProvider declarations spell their return type import('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, formatCurrency and formatRelativeTime are now exported from every binding, so code outside a component no longer needs @comvi/core as its own dependency. @comvi/svelte also exports them from @comvi/svelte/format, which imports nothing but @comvi/core, for code reached by plain Node (tests, scripts), where the root's T.svelte cannot load. @comvi/next has them on the root, /client and /server; @comvi/nuxt exports them from @comvi/nuxt/i18n and registers them as auto-imports at a low priority, so an app's own formatDate and 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 explicit locale argument 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 fallback Intl rejects as a tag (a catalog key such as en_US) is skipped, never thrown on. An explicit locale argument is still passed alone. LocaleSource gains an optional fallbackLocales, and the instance exposes i18n.fallbackLocales, a read-only array that setFallbackLocale() replaces rather than changes. The bound formatters in every binding follow the same chain and re-render on setFallbackLocale(); 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 I18nProvider and ComviClientProvider declarations spell their return type import('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