{"_id":"@aak.lear/i18n-layer-registry","_rev":"2-5294e1e8d0e890201c41f333f724c8b4","name":"@aak.lear/i18n-layer-registry","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aak.lear/i18n-layer-registry","version":"0.1.0","keywords":["i18n","vite","fsd","generator","typescript"],"license":"MIT","_id":"@aak.lear/i18n-layer-registry@0.1.0","maintainers":[{"name":"aak.lear","email":"mgk.lear@gmail.com"}],"bin":{"i18n-layer-registry":"dist/cli.js"},"dist":{"shasum":"25f7d5ff4c55b9b5382cf6359946bb5708b5e55c","tarball":"https://registry.npmjs.org/@aak.lear/i18n-layer-registry/-/i18n-layer-registry-0.1.0.tgz","fileCount":12,"integrity":"sha512-YB8hzskvK/1pinzfTUzmdlkZ1tT8XGeRdf6zqqmpBL/2ZX1LX70j5KFXNw49DJgiNnUpiqCKZN0Kw3Ze46aBXg==","signatures":[{"sig":"MEUCIQDYZhYNaSd6iV5MG9k6RbDPIPYaHz5FA1U1L3VEQRVw8AIgKiOK2hp4zlaZfKZzmwxwBclVeCR+0xUjR8PtvAj6Tzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269490},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vite":{"types":"./dist/vite.d.ts","import":"./dist/vite.js"},"./package.json":"./package.json"},"gitHead":"6f824cc02149258773e86994629233508ac59cfd","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm run build && npm run test"},"_npmUser":{"name":"aak.lear","email":"mgk.lear@gmail.com"},"_npmVersion":"10.9.2","description":"Генератор registry-слоёв i18n для FSD-проектов с Vite-плагином и CLI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"esbuild":"^0.25.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^7.0.0","vitest":"^3.1.2","typescript":"^5.8.3","@types/node":"^22.15.3"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-layer-registry_0.1.0_1776168379030_0.16333390150856664","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aak.lear/i18n-layer-registry","version":"0.1.1","description":"Генератор registry-слоёв i18n для FSD-проектов с Vite-плагином и CLI","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vite":{"types":"./dist/vite.d.ts","import":"./dist/vite.js"},"./package.json":"./package.json"},"bin":{"i18n-layer-registry":"dist/cli.js"},"engines":{"node":">=22"},"publishConfig":{"access":"public"},"keywords":["i18n","vite","fsd","generator","typescript"],"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"vitest run","prepublishOnly":"npm run typecheck && npm run build && npm run test"},"dependencies":{"esbuild":"^0.25.3"},"peerDependencies":{"vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"},"devDependencies":{"@types/node":"^22.15.3","tsup":"^8.5.0","typescript":"^5.8.3","vite":"^7.0.0","vitest":"^3.1.2"},"_id":"@aak.lear/i18n-layer-registry@0.1.1","gitHead":"22c9f148e2d733b94926fc4f5c9e468ed803ec78","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-29ybTGrttzV0eSUpAHnifLetRb1Q1Mt4Th6DNeVSUjoNX5oCIAcup2ZmAgu+uTg7Co/CcyD35QKg2Eq5AV9ioQ==","shasum":"75694c2849caa1a7e6a1a52a0d3132ce809c37cd","tarball":"https://registry.npmjs.org/@aak.lear/i18n-layer-registry/-/i18n-layer-registry-0.1.1.tgz","fileCount":12,"unpackedSize":269500,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEg98Iapta0ToPssRgT3DfCLXq6UHFnEq1eYdm9fPG7JAiEA5qE/gO/NMVS51Sa4Z6hVnCiASnbBTfw7AjGw36fpabU="}]},"_npmUser":{"name":"aak.lear","email":"mgk.lear@gmail.com"},"directories":{},"maintainers":[{"name":"aak.lear","email":"mgk.lear@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n-layer-registry_0.1.1_1776169073722_0.7488486159840779"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-14T12:06:18.846Z","modified":"2026-04-14T12:17:54.016Z","0.1.0":"2026-04-14T12:06:19.202Z","0.1.1":"2026-04-14T12:17:53.899Z"},"license":"MIT","keywords":["i18n","vite","fsd","generator","typescript"],"description":"Генератор registry-слоёв i18n для FSD-проектов с Vite-плагином и CLI","maintainers":[{"name":"aak.lear","email":"mgk.lear@gmail.com"}],"readme":"# `@aak.lear/i18n-layer-registry`\n\nГенератор i18n-registry для FSD-слоёв. Пакет умеет:\n\n- собирать registry-файлы по переводам из `src/*/config/i18n`\n- работать через programmatic API\n- подключаться как Vite-плагин\n- запускаться через CLI\n\n## Установка\n\n```bash\nnpm install @aak.lear/i18n-layer-registry\n```\n\nДля Vite-проекта установите `vite` отдельно, если он ещё не добавлен.\n\n## Быстрый старт\n\nСоздайте `i18n-layer-registry.config.ts`:\n\n```ts\nimport { defineConfig } from '@aak.lear/i18n-layer-registry';\n\nexport default defineConfig({\n  sourcePrefix: 'src',\n  outputBaseDir: 'src/shared/config/i18n',\n  supportedLayers: ['pages', 'widgets', 'features', 'entities'],\n  generatedFileHeader: [\n    '// AUTO-GENERATED. DO NOT EDIT.',\n    '// Source: i18n-layer-registry',\n  ],\n});\n```\n\nОжидаемая структура исходных переводов:\n\n```text\nsrc/\n  features/\n    auth/\n      config/\n        i18n/\n          ru.json\n          en.json\n  entities/\n    profile/\n      config/\n        i18n/\n          ru.json\n```\n\nПосле генерации для каждой локали будут созданы файлы вида:\n\n```text\nsrc/shared/config/i18n/\n  ru/\n    pages.gen.ts\n    widgets.gen.ts\n    features.gen.ts\n    entities.gen.ts\n```\n\nNamespace в generated registry строится как `<layer>/<slicePath>`, например `features/auth` или `entities/profile`.\n\n## Programmatic API\n\n```ts\nimport { generate } from '@aak.lear/i18n-layer-registry';\n\nawait generate({\n  rootDir: process.cwd(),\n  sourcePrefix: 'src',\n  outputBaseDir: 'src/shared/config/i18n',\n  generatedFileHeader: '// AUTO-GENERATED. DO NOT EDIT.',\n});\n```\n\nОсновные экспорты:\n\n- `defineConfig`\n- `generate`\n- `createRegistryEngine`\n- `loadConfigFromFile`\n- `getDefaultConfigFilePath`\n- `I18nLayerRegistryError`\n- `generatedFileHeader` принимает `string` или `string[]` и вставляется в начало каждого generated-файла\n\n## Vite Plugin\n\n```ts\nimport { defineConfig } from 'vite';\nimport { i18nLayerRegistryPlugin } from '@aak.lear/i18n-layer-registry/vite';\n\nexport default defineConfig({\n  plugins: [i18nLayerRegistryPlugin()],\n});\n```\n\nПлагин следит за изменениями переводов и регенерирует registry-файлы во время dev/build.\n\n## CLI\n\n```bash\nnpx i18n-layer-registry --config ./i18n-layer-registry.config.ts\n```\n\nЕсли `--config` не указан, используется `./i18n-layer-registry.config.ts`.\n\n## Ограничения и правила\n\n- пакет рассчитан на Node.js `>=22`\n- для `matchMode: 'locale_in_suffix'` шаблон `inputSuffixPattern` должен содержать ровно один `<locale>`\n- для `matchMode: 'fixed_suffix'` шаблон `inputSuffixPattern` не должен содержать `<locale>`, а `fixedLocale` обязателен\n- поддерживаемые слои по умолчанию: `pages`, `widgets`, `features`, `entities`\n- generated filename pattern должен содержать ровно один placeholder `<layer>`\n","readmeFilename":"README.md"}