@feugene/granularity-test-kit

  • Without components
  • releases: 23
  • v2.4.0

Releases of @feugene/granularity-test-kit from its CHANGELOG: the latest 8 in full, the earlier ones as a list of versions.

core tag v3.7.2

On this page

v2.4.02026-10-28

Added

  • componentSheet и lookElement в ./vue — каскад листа компонента без браузера: тесты читают вид компонента из его <style>, а не строку классов. Жили в тестах ядра; спутнику, который переносит вид в лист, они нужны так же. Лист файлом (GrRichText/styles.css) читается целиком.

v2.3.02026-10-22

Added

  • defineThemeGate({ onlyTargets }) — сверять только разделы пакетов из targets: тема каталога несёт разделы многих пакетов, и каждый пакет сверяет свой. Пакет темы флаг не включает — раздел пакета вне targets для него опечатка.
  • packageComponentTokens() — реестр токенов пакета из его tokens.json в форме targets гейта тем: для спутника, который не экспортирует реестр.

v2.2.02026-10-21

Added

  • defineThemeGate — гейт пакета темы: тема собирается сборкой дизайн-системы (loadTheme), значения компонентов полны по реестрам целевых пакетов, в разделах — только токены вида theme своих компонентов, пакет раздела — в targets.
  • Флаги defineComponentTokensGate, по умолчанию выключены — пакет включает их на своём переводе: themeSources (вид токенов в разделах тем пакета токенов), themeTokenFallback (токен темы читается без запасного значения), hookLiterals (литерал хука — с причиной literal в реестре), themesDirAbsent (у компонентов нет themesDir), themeKindOnly (в папке тем компонента — только вид theme, без допуска хуков 2.1.0).

v2.1.02026-10-21

Added

  • withRegistryHookTokens(provider, srcDir) в корневой точке входа: хуки реестра (kind: "hook" в tokens.json компонента и его группы) — в hookTokens дескрипторов на сборке пакета, перед granumProvider. granum 3.7 называет токен, который читается только через var(--x, запасное), находкой token-fallback-only, если дескриптор не объявил его хуком; природу токена знает только реестр, и второй список в config.ts не нужен.

Changed

  • componentTokens: в файлах тем допустимы и хуки. Ключ в themes/<тема>/… обязан быть токеном реестра вида theme или hook: тема вправе задать значение точке кастомизации (--gr-button-neutral-bg у «Глины»), и это не поломка реестра. Токены css и inline в теме по-прежнему ошибка — их значение пишет сам компонент.

v2.0.02026-10-19

Changed

  • Peer @feugene/granum — >=3.0.0 <4.0.0. Ядро @feugene/granularity теперь провайдер granum 3 (манифест формата 3, контракт версии 2), и спутник объявляет тот же мажор.
  • componentTokens читает токены тем по раскладке themesDir granum 3 — <Компонент>/themes/<тема>/root.{json,css} и modes/<режим>.{json,css} вместо themes/*.css. JSON-ключи сверяются с реестром (requireThemeKind), ссылки из значений — с объявленными токенами, а сами объявления считаются употреблением. Новые экспорты — readThemeSources, readComponentThemeSources.

v1.2.02026-10-16

Changed

  • Необязательный peer @feugene/granum — >=2.0.0 <3.0.0. Гейт реестров берёт части составных компонентов из @feugene/granum/codegen granum 2.0, с которым собраны ядро и спутники; сообщение о недостающем пакете называет ту же версию.

v1.1.02026-10-06

Added

  • defineSafelistGate — гейт safelist-контракта, общий для ядра и спутников. Safelist компонента — только классы, собранные в рантайме из частей; запись, которая лежит в коде компонента целым литералом, гейт называет лишней: granum извлечёт её и так. Код компонента обходится так же, как его обходит сборка: от файлов компонента по относительным импортам — сквозь shared/, internal/ и общие директории группы, — но не в директорию другого компонента. Наружу выставлены и части гейта: componentCodeFiles, parseRelativeImports, redundantSafelistEntries.

Changed

  • defineSafelistGate входит в REQUIRED_GATES: пакет, который его не подключил, краснеет на defineGateCoverage.

v1.0.02026-09-28

Переезд на @feugene/granum 1.0 и первый мажор пакета.

Публичная поверхность не менялась — ломающий тут сам конвейер: peer-зависимость уезжает с @feugene/unocss-preset-granular на @feugene/granum (>=1.0.0 <2.0.0), а приложение переходит с uno.config.ts на granum.config.ts. Версия выровнена с ядром: @feugene/granularity 1.0.0.

Перед обновлением стоит прочитать руководство по переезду в granum — в частности про каскадные слои и сброс браузерных стилей, который теперь нужно импортировать в слой.

Changed

  • The optional peer is @feugene/granum >=0.4.0 <1.0.0. The kit’s gates do not depend on the engine vocabulary, but the range moved with the others: diverged ranges would leave a consumer with an uninstallable set.
  • The optional peer changed: @feugene/granum >=0.2.0 <1.0.0 instead of @feugene/unocss-preset-granular. The registry gate learns the parts of a composite component from @feugene/granum/codegen (collectGranumSubcomponents); it is still imported lazily and only inside defineRegistryGate, so the other eight factories work without it.
  • defineRegistryGate checks the granum shape of a package. Instead of assertions about a generated block of vite entries there are three new ones: component entries are not maintained by hand in vite.config.ts (granumProvider({, engine: miniEngine(), not a single component-entry marker), the manifest is exported as ./granum.manifest.json right after ".", and the provider registry arrives as componentConfigs.
  • defineComponentTokensGate also looks into src/components/shared/. Helpers shared by several components live there, and without this their tokens would look declared into the void.

Earlier versions

The bodies of these releases are not shown: the full feed weighs more than a page is allowed to. The file in the repository is always complete.

  • v0.10.02026-08-31
  • v0.9.02026-08-31
  • v0.8.12026-08-27
  • v0.8.02026-08-27
  • v0.7.42026-08-25
  • v0.7.32026-08-23
  • v0.7.22026-08-23
  • v0.7.12026-08-23
  • v0.7.02026-08-23
  • v0.6.02026-08-22
  • v0.5.02026-08-22
  • v0.4.02026-08-20
  • v0.3.02026-08-19
  • v0.2.02026-08-19
  • v0.1.02026-08-15

The package CHANGELOG in full