i18nsmith 0.1.0 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/build.mjs +25 -0
  2. package/dist/index.js +109367 -22
  3. package/dist/index.js.map +7 -1
  4. package/package.json +10 -6
  5. package/dist/commands/audit.d.ts +0 -3
  6. package/dist/commands/audit.d.ts.map +0 -1
  7. package/dist/commands/audit.js +0 -180
  8. package/dist/commands/audit.js.map +0 -1
  9. package/dist/commands/backup.d.ts +0 -6
  10. package/dist/commands/backup.d.ts.map +0 -1
  11. package/dist/commands/backup.js +0 -85
  12. package/dist/commands/backup.js.map +0 -1
  13. package/dist/commands/check.d.ts +0 -3
  14. package/dist/commands/check.d.ts.map +0 -1
  15. package/dist/commands/check.js +0 -151
  16. package/dist/commands/check.js.map +0 -1
  17. package/dist/commands/config.d.ts +0 -3
  18. package/dist/commands/config.d.ts.map +0 -1
  19. package/dist/commands/config.js +0 -235
  20. package/dist/commands/config.js.map +0 -1
  21. package/dist/commands/debug-patterns.d.ts +0 -3
  22. package/dist/commands/debug-patterns.d.ts.map +0 -1
  23. package/dist/commands/debug-patterns.js +0 -192
  24. package/dist/commands/debug-patterns.js.map +0 -1
  25. package/dist/commands/debug-patterns.test.d.ts +0 -2
  26. package/dist/commands/debug-patterns.test.d.ts.map +0 -1
  27. package/dist/commands/debug-patterns.test.js +0 -109
  28. package/dist/commands/debug-patterns.test.js.map +0 -1
  29. package/dist/commands/diagnose.d.ts +0 -3
  30. package/dist/commands/diagnose.d.ts.map +0 -1
  31. package/dist/commands/diagnose.js +0 -117
  32. package/dist/commands/diagnose.js.map +0 -1
  33. package/dist/commands/init.d.ts +0 -8
  34. package/dist/commands/init.d.ts.map +0 -1
  35. package/dist/commands/init.js +0 -450
  36. package/dist/commands/init.js.map +0 -1
  37. package/dist/commands/init.test.d.ts +0 -2
  38. package/dist/commands/init.test.d.ts.map +0 -1
  39. package/dist/commands/init.test.js +0 -74
  40. package/dist/commands/init.test.js.map +0 -1
  41. package/dist/commands/install-hooks.d.ts +0 -3
  42. package/dist/commands/install-hooks.d.ts.map +0 -1
  43. package/dist/commands/install-hooks.js +0 -52
  44. package/dist/commands/install-hooks.js.map +0 -1
  45. package/dist/commands/preflight.d.ts +0 -7
  46. package/dist/commands/preflight.d.ts.map +0 -1
  47. package/dist/commands/preflight.js +0 -417
  48. package/dist/commands/preflight.js.map +0 -1
  49. package/dist/commands/preflight.test.d.ts +0 -5
  50. package/dist/commands/preflight.test.d.ts.map +0 -1
  51. package/dist/commands/preflight.test.js +0 -108
  52. package/dist/commands/preflight.test.js.map +0 -1
  53. package/dist/commands/rename.d.ts +0 -6
  54. package/dist/commands/rename.d.ts.map +0 -1
  55. package/dist/commands/rename.js +0 -204
  56. package/dist/commands/rename.js.map +0 -1
  57. package/dist/commands/scaffold-adapter.d.ts +0 -3
  58. package/dist/commands/scaffold-adapter.d.ts.map +0 -1
  59. package/dist/commands/scaffold-adapter.js +0 -204
  60. package/dist/commands/scaffold-adapter.js.map +0 -1
  61. package/dist/commands/scaffold-adapter.test.d.ts +0 -2
  62. package/dist/commands/scaffold-adapter.test.d.ts.map +0 -1
  63. package/dist/commands/scaffold-adapter.test.js +0 -102
  64. package/dist/commands/scaffold-adapter.test.js.map +0 -1
  65. package/dist/commands/scan.d.ts +0 -3
  66. package/dist/commands/scan.d.ts.map +0 -1
  67. package/dist/commands/scan.js +0 -93
  68. package/dist/commands/scan.js.map +0 -1
  69. package/dist/commands/sync-seed.test.d.ts +0 -2
  70. package/dist/commands/sync-seed.test.d.ts.map +0 -1
  71. package/dist/commands/sync-seed.test.js +0 -86
  72. package/dist/commands/sync-seed.test.js.map +0 -1
  73. package/dist/commands/sync.d.ts +0 -3
  74. package/dist/commands/sync.d.ts.map +0 -1
  75. package/dist/commands/sync.js +0 -590
  76. package/dist/commands/sync.js.map +0 -1
  77. package/dist/commands/transform.d.ts +0 -3
  78. package/dist/commands/transform.d.ts.map +0 -1
  79. package/dist/commands/transform.js +0 -114
  80. package/dist/commands/transform.js.map +0 -1
  81. package/dist/commands/translate/csv-handler.d.ts +0 -21
  82. package/dist/commands/translate/csv-handler.d.ts.map +0 -1
  83. package/dist/commands/translate/csv-handler.js +0 -270
  84. package/dist/commands/translate/csv-handler.js.map +0 -1
  85. package/dist/commands/translate/executor.d.ts +0 -31
  86. package/dist/commands/translate/executor.d.ts.map +0 -1
  87. package/dist/commands/translate/executor.js +0 -117
  88. package/dist/commands/translate/executor.js.map +0 -1
  89. package/dist/commands/translate/index.d.ts +0 -10
  90. package/dist/commands/translate/index.d.ts.map +0 -1
  91. package/dist/commands/translate/index.js +0 -170
  92. package/dist/commands/translate/index.js.map +0 -1
  93. package/dist/commands/translate/reporter.d.ts +0 -29
  94. package/dist/commands/translate/reporter.d.ts.map +0 -1
  95. package/dist/commands/translate/reporter.js +0 -103
  96. package/dist/commands/translate/reporter.js.map +0 -1
  97. package/dist/commands/translate/types.d.ts +0 -50
  98. package/dist/commands/translate/types.d.ts.map +0 -1
  99. package/dist/commands/translate/types.js +0 -5
  100. package/dist/commands/translate/types.js.map +0 -1
  101. package/dist/commands/translate.d.ts +0 -7
  102. package/dist/commands/translate.d.ts.map +0 -1
  103. package/dist/commands/translate.js +0 -7
  104. package/dist/commands/translate.js.map +0 -1
  105. package/dist/commands/translate.test.d.ts +0 -2
  106. package/dist/commands/translate.test.d.ts.map +0 -1
  107. package/dist/commands/translate.test.js +0 -118
  108. package/dist/commands/translate.test.js.map +0 -1
  109. package/dist/e2e.test.d.ts +0 -6
  110. package/dist/e2e.test.d.ts.map +0 -1
  111. package/dist/e2e.test.js +0 -376
  112. package/dist/e2e.test.js.map +0 -1
  113. package/dist/index.d.ts +0 -4
  114. package/dist/index.d.ts.map +0 -1
  115. package/dist/integration.test.d.ts +0 -6
  116. package/dist/integration.test.d.ts.map +0 -1
  117. package/dist/integration.test.js +0 -320
  118. package/dist/integration.test.js.map +0 -1
  119. package/dist/utils/diagnostics-exit.d.ts +0 -12
  120. package/dist/utils/diagnostics-exit.d.ts.map +0 -1
  121. package/dist/utils/diagnostics-exit.js +0 -49
  122. package/dist/utils/diagnostics-exit.js.map +0 -1
  123. package/dist/utils/diagnostics-exit.test.d.ts +0 -2
  124. package/dist/utils/diagnostics-exit.test.d.ts.map +0 -1
  125. package/dist/utils/diagnostics-exit.test.js +0 -40
  126. package/dist/utils/diagnostics-exit.test.js.map +0 -1
  127. package/dist/utils/diff-utils.d.ts +0 -4
  128. package/dist/utils/diff-utils.d.ts.map +0 -1
  129. package/dist/utils/diff-utils.js +0 -30
  130. package/dist/utils/diff-utils.js.map +0 -1
  131. package/dist/utils/diff-utils.test.d.ts +0 -2
  132. package/dist/utils/diff-utils.test.d.ts.map +0 -1
  133. package/dist/utils/diff-utils.test.js +0 -30
  134. package/dist/utils/diff-utils.test.js.map +0 -1
  135. package/dist/utils/exit-codes.d.ts +0 -142
  136. package/dist/utils/exit-codes.d.ts.map +0 -1
  137. package/dist/utils/exit-codes.js +0 -168
  138. package/dist/utils/exit-codes.js.map +0 -1
  139. package/dist/utils/package-manager.d.ts +0 -4
  140. package/dist/utils/package-manager.d.ts.map +0 -1
  141. package/dist/utils/package-manager.js +0 -40
  142. package/dist/utils/package-manager.js.map +0 -1
  143. package/dist/utils/pkg.d.ts +0 -3
  144. package/dist/utils/pkg.d.ts.map +0 -1
  145. package/dist/utils/pkg.js +0 -24
  146. package/dist/utils/pkg.js.map +0 -1
  147. package/dist/utils/provider-injector.d.ts +0 -36
  148. package/dist/utils/provider-injector.d.ts.map +0 -1
  149. package/dist/utils/provider-injector.js +0 -223
  150. package/dist/utils/provider-injector.js.map +0 -1
  151. package/dist/utils/provider-injector.test.d.ts +0 -2
  152. package/dist/utils/provider-injector.test.d.ts.map +0 -1
  153. package/dist/utils/provider-injector.test.js +0 -67
  154. package/dist/utils/provider-injector.test.js.map +0 -1
  155. package/dist/utils/scaffold.d.ts +0 -20
  156. package/dist/utils/scaffold.d.ts.map +0 -1
  157. package/dist/utils/scaffold.js +0 -197
  158. package/dist/utils/scaffold.js.map +0 -1
@@ -1,74 +0,0 @@
1
- import { describe, it, expect, vi } from 'vitest';
2
- import { Command } from 'commander';
3
- import { registerInit, parseGlobList } from './init.js';
4
- vi.mock('@i18nsmith/core', () => ({
5
- diagnoseWorkspace: vi.fn().mockResolvedValue({
6
- localesDir: 'locales',
7
- localeFiles: [],
8
- detectedLocales: [],
9
- runtimePackages: [],
10
- providerFiles: [],
11
- adapterFiles: [],
12
- translationUsage: {
13
- hookName: 'useTranslation',
14
- translationIdentifier: 't',
15
- filesExamined: 0,
16
- hookOccurrences: 0,
17
- identifierOccurrences: 0,
18
- hookExampleFiles: [],
19
- identifierExampleFiles: [],
20
- },
21
- actionableItems: [],
22
- conflicts: [],
23
- recommendations: [],
24
- }),
25
- }));
26
- vi.mock('inquirer', () => ({
27
- default: {
28
- prompt: vi.fn().mockResolvedValue({
29
- sourceLanguage: 'en',
30
- adapter: 'custom',
31
- localesDir: 'locales',
32
- }),
33
- },
34
- }));
35
- vi.mock('fs/promises', () => ({
36
- default: {
37
- writeFile: vi.fn().mockResolvedValue(undefined),
38
- mkdir: vi.fn().mockResolvedValue(undefined),
39
- },
40
- }));
41
- describe('init command', () => {
42
- it('should register the init command', () => {
43
- const program = new Command();
44
- registerInit(program);
45
- const command = program.commands.find((cmd) => cmd.name() === 'init');
46
- expect(command).toBeDefined();
47
- });
48
- });
49
- describe('parseGlobList', () => {
50
- it('treats brace-expanded globs as atomic tokens', () => {
51
- const input = 'src/**/*.{ts,tsx,js,jsx}, app/**/*.{ts,tsx}';
52
- expect(parseGlobList(input)).toEqual([
53
- 'src/**/*.{ts,tsx,js,jsx}',
54
- 'app/**/*.{ts,tsx}',
55
- ]);
56
- });
57
- it('handles nested braces', () => {
58
- const input = 'src/**/*.{ts,tsx,{spec,test}.ts}';
59
- expect(parseGlobList(input)).toEqual(['src/**/*.{ts,tsx,{spec,test}.ts}']);
60
- });
61
- it('splits simple comma-separated values', () => {
62
- const input = 'en, fr, es';
63
- expect(parseGlobList(input)).toEqual(['en', 'fr', 'es']);
64
- });
65
- it('handles empty input', () => {
66
- expect(parseGlobList('')).toEqual([]);
67
- expect(parseGlobList(' ')).toEqual([]);
68
- });
69
- it('trims whitespace around entries', () => {
70
- const input = ' src/**/* , app/**/* ';
71
- expect(parseGlobList(input)).toEqual(['src/**/*', 'app/**/*']);
72
- });
73
- });
74
- //# sourceMappingURL=init.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerInstallHooks(program: Command): void;
3
- //# sourceMappingURL=install-hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA2BpD"}
@@ -1,52 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import { Command } from 'commander';
4
- import { detectPackageManager } from '../utils/package-manager.js';
5
- async function huskyInstalled(root) {
6
- try {
7
- const pkgPath = path.join(root, 'package.json');
8
- const pkgRaw = await fs.readFile(pkgPath, 'utf8');
9
- return /"husky"/.test(pkgRaw);
10
- }
11
- catch {
12
- return false;
13
- }
14
- }
15
- async function ensureHusky(root, pm, force) {
16
- if (!force && await huskyInstalled(root)) {
17
- return;
18
- }
19
- const installCmd = pm === 'pnpm' ? 'pnpm add -D husky' : pm === 'yarn' ? 'yarn add -D husky' : 'npm install --save-dev husky';
20
- console.log(`→ Installing husky: ${installCmd}`);
21
- console.log(' (Run manually; automatic exec intentionally omitted in prototype)');
22
- }
23
- async function writeHook(root, file, content) {
24
- const hookPath = path.join(root, '.husky', file);
25
- await fs.mkdir(path.dirname(hookPath), { recursive: true });
26
- await fs.writeFile(hookPath, content, 'utf8');
27
- console.log(`āœ” Hook created: ${path.relative(root, hookPath)}`);
28
- }
29
- export function registerInstallHooks(program) {
30
- const cmd = new Command('install-hooks')
31
- .description('Prototype: scaffold Husky git hooks for i18nsmith checks')
32
- .option('-y, --yes', 'Skip confirmations')
33
- .option('--force', 'Force re-install husky even if present')
34
- .option('--skip', 'Skip husky installation (just create hooks)')
35
- .action(async (opts) => {
36
- const cwd = opts.cwd ?? process.cwd();
37
- const pm = await detectPackageManager();
38
- const hasHusky = await huskyInstalled(cwd);
39
- if (!hasHusky && !opts.skip) {
40
- await ensureHusky(cwd, pm, !!opts.force);
41
- console.log('Add "prepare": "husky install" to package.json scripts if missing.');
42
- }
43
- const preCommitContent = `#!/bin/sh\n. \"$(dirname "$0")/_/husky.sh\"\n[ -n \"$I18NSMITH_SKIP_HOOKS\" ] && exit 0\nNOCOLOR=1 npx i18nsmith check --fail-on conflicts || exit 1\n`;
44
- const prePushContent = `#!/bin/sh\n. \"$(dirname "$0")/_/husky.sh\"\n[ -n \"$I18NSMITH_SKIP_HOOKS\" ] && exit 0\nNOCOLOR=1 npx i18nsmith sync --dry-run --check || exit 1\n`;
45
- await writeHook(cwd, 'pre-commit', preCommitContent);
46
- await writeHook(cwd, 'pre-push', prePushContent);
47
- console.log('\nHooks added. Set I18NSMITH_SKIP_HOOKS=1 to bypass.');
48
- console.log('Prototype complete – future versions will offer interactive selection & monorepo scoping.');
49
- });
50
- program.addCommand(cmd);
51
- }
52
- //# sourceMappingURL=install-hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Preflight check command - validates environment before running i18nsmith operations.
3
- * This is the onboarding wizard that helps users ensure their setup is correct.
4
- */
5
- import { Command } from 'commander';
6
- export declare function registerPreflight(program: Command): void;
7
- //# sourceMappingURL=preflight.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,QAmBjD"}
@@ -1,417 +0,0 @@
1
- /**
2
- * Preflight check command - validates environment before running i18nsmith operations.
3
- * This is the onboarding wizard that helps users ensure their setup is correct.
4
- */
5
- import fs from 'fs/promises';
6
- import path from 'path';
7
- import chalk from 'chalk';
8
- import fg from 'fast-glob';
9
- import { loadConfigWithMeta } from '@i18nsmith/core';
10
- import { hasDependency, readPackageJson } from '../utils/pkg.js';
11
- export function registerPreflight(program) {
12
- program
13
- .command('preflight')
14
- .description('Validate i18nsmith setup before running operations (onboarding wizard)')
15
- .option('-c, --config <path>', 'Path to i18nsmith config file', 'i18n.config.json')
16
- .option('--fix', 'Attempt to fix issues automatically', false)
17
- .option('--json', 'Output results as JSON', false)
18
- .action(async (options) => {
19
- const result = await runPreflightChecks(options);
20
- if (options.json) {
21
- console.log(JSON.stringify(result, null, 2));
22
- process.exitCode = result.passed ? 0 : 1;
23
- return;
24
- }
25
- printPreflightResults(result);
26
- process.exitCode = result.passed ? 0 : 1;
27
- });
28
- }
29
- async function runPreflightChecks(options) {
30
- const checks = [];
31
- const cwd = process.cwd();
32
- // 1. Check config file exists
33
- const configCheck = await checkConfigFile(options.config ?? 'i18n.config.json', cwd);
34
- checks.push(configCheck);
35
- if (configCheck.status === 'fail') {
36
- return { passed: false, checks };
37
- }
38
- // Load config for remaining checks
39
- let config;
40
- let projectRoot;
41
- try {
42
- const result = await loadConfigWithMeta(options.config);
43
- config = result.config;
44
- projectRoot = result.projectRoot;
45
- }
46
- catch (err) {
47
- checks.push({
48
- name: 'Config Parse',
49
- status: 'fail',
50
- message: `Failed to parse config: ${err.message}`,
51
- suggestion: 'Check that i18n.config.json contains valid JSON',
52
- });
53
- return { passed: false, checks };
54
- }
55
- // 2. Check include patterns match files
56
- const includeCheck = await checkIncludePatterns(config, projectRoot);
57
- checks.push(includeCheck);
58
- // 3. Check locales directory
59
- const localesDirCheck = await checkLocalesDir(config, projectRoot, options.fix);
60
- checks.push(localesDirCheck);
61
- // 4. Check source locale file
62
- const sourceLocaleCheck = await checkSourceLocale(config, projectRoot, options.fix);
63
- checks.push(sourceLocaleCheck);
64
- // 5. Check adapter dependencies
65
- const adapterCheck = await checkAdapterDependencies(config, projectRoot);
66
- checks.push(adapterCheck);
67
- // 6. Check for write permissions
68
- const permissionCheck = await checkWritePermissions(config, projectRoot);
69
- checks.push(permissionCheck);
70
- // 7. Check for common configuration issues
71
- const configValidationChecks = await validateConfigOptions(config);
72
- checks.push(...configValidationChecks);
73
- const passed = checks.every((c) => c.status !== 'fail');
74
- return { passed, checks };
75
- }
76
- async function checkConfigFile(configPath, cwd) {
77
- const absolutePath = path.isAbsolute(configPath) ? configPath : path.resolve(cwd, configPath);
78
- try {
79
- await fs.access(absolutePath);
80
- return {
81
- name: 'Config File',
82
- status: 'pass',
83
- message: `Found config at ${path.relative(cwd, absolutePath) || configPath}`,
84
- };
85
- }
86
- catch {
87
- // Try to find config up the directory tree
88
- let searchDir = cwd;
89
- let parentDir = path.dirname(searchDir);
90
- let found = false;
91
- let foundPath = '';
92
- while (searchDir !== parentDir) {
93
- const testPath = path.join(searchDir, 'i18n.config.json');
94
- try {
95
- await fs.access(testPath);
96
- found = true;
97
- foundPath = testPath;
98
- break;
99
- }
100
- catch {
101
- searchDir = parentDir;
102
- parentDir = path.dirname(searchDir);
103
- }
104
- }
105
- if (found) {
106
- return {
107
- name: 'Config File',
108
- status: 'warn',
109
- message: `Config found at ${path.relative(cwd, foundPath)} (not in current directory)`,
110
- suggestion: 'You may be in a subdirectory. Run commands from the project root or use -c flag.',
111
- };
112
- }
113
- return {
114
- name: 'Config File',
115
- status: 'fail',
116
- message: `Config file not found: ${configPath}`,
117
- suggestion: 'Run "i18nsmith init" to create a configuration file',
118
- };
119
- }
120
- }
121
- async function checkIncludePatterns(config, projectRoot) {
122
- try {
123
- const patterns = config.include.map((p) => path.isAbsolute(p) ? p : path.join(projectRoot, p));
124
- const files = await fg(patterns, {
125
- ignore: config.exclude ?? [],
126
- cwd: projectRoot,
127
- absolute: true,
128
- });
129
- if (files.length === 0) {
130
- return {
131
- name: 'Source Files',
132
- status: 'fail',
133
- message: 'No source files match the include patterns',
134
- suggestion: `Check your "include" patterns: ${config.include.join(', ')}`,
135
- };
136
- }
137
- return {
138
- name: 'Source Files',
139
- status: 'pass',
140
- message: `Found ${files.length} source file(s) to scan`,
141
- };
142
- }
143
- catch (err) {
144
- return {
145
- name: 'Source Files',
146
- status: 'fail',
147
- message: `Error matching include patterns: ${err.message}`,
148
- };
149
- }
150
- }
151
- async function checkLocalesDir(config, projectRoot, autoFix) {
152
- const localesDir = path.resolve(projectRoot, config.localesDir ?? 'locales');
153
- try {
154
- const stats = await fs.stat(localesDir);
155
- if (!stats.isDirectory()) {
156
- return {
157
- name: 'Locales Directory',
158
- status: 'fail',
159
- message: `${config.localesDir} exists but is not a directory`,
160
- };
161
- }
162
- return {
163
- name: 'Locales Directory',
164
- status: 'pass',
165
- message: `Locales directory exists: ${config.localesDir}`,
166
- };
167
- }
168
- catch {
169
- if (autoFix) {
170
- try {
171
- await fs.mkdir(localesDir, { recursive: true });
172
- return {
173
- name: 'Locales Directory',
174
- status: 'pass',
175
- message: `Created locales directory: ${config.localesDir}`,
176
- };
177
- }
178
- catch (err) {
179
- return {
180
- name: 'Locales Directory',
181
- status: 'fail',
182
- message: `Failed to create locales directory: ${err.message}`,
183
- };
184
- }
185
- }
186
- return {
187
- name: 'Locales Directory',
188
- status: 'warn',
189
- message: `Locales directory does not exist: ${config.localesDir}`,
190
- suggestion: 'Run with --fix to create it, or run "i18nsmith sync --write"',
191
- };
192
- }
193
- }
194
- async function checkSourceLocale(config, projectRoot, autoFix) {
195
- const localesDir = path.resolve(projectRoot, config.localesDir ?? 'locales');
196
- const sourceLocalePath = path.join(localesDir, `${config.sourceLanguage}.json`);
197
- try {
198
- const content = await fs.readFile(sourceLocalePath, 'utf8');
199
- JSON.parse(content); // Validate JSON
200
- return {
201
- name: 'Source Locale',
202
- status: 'pass',
203
- message: `Source locale file exists: ${config.sourceLanguage}.json`,
204
- };
205
- }
206
- catch (err) {
207
- const error = err;
208
- if (error.code === 'ENOENT') {
209
- if (autoFix) {
210
- try {
211
- await fs.mkdir(localesDir, { recursive: true });
212
- await fs.writeFile(sourceLocalePath, '{}');
213
- return {
214
- name: 'Source Locale',
215
- status: 'pass',
216
- message: `Created source locale file: ${config.sourceLanguage}.json`,
217
- };
218
- }
219
- catch (fixErr) {
220
- return {
221
- name: 'Source Locale',
222
- status: 'fail',
223
- message: `Failed to create source locale: ${fixErr.message}`,
224
- };
225
- }
226
- }
227
- return {
228
- name: 'Source Locale',
229
- status: 'warn',
230
- message: `Source locale file does not exist: ${config.sourceLanguage}.json`,
231
- suggestion: 'Run with --fix or "i18nsmith sync --write" to create it',
232
- };
233
- }
234
- return {
235
- name: 'Source Locale',
236
- status: 'fail',
237
- message: `Source locale file is invalid: ${error.message}`,
238
- suggestion: 'Check that the file contains valid JSON',
239
- };
240
- }
241
- }
242
- async function checkAdapterDependencies(config, projectRoot) {
243
- const adapterModule = config.translationAdapter?.module ?? 'react-i18next';
244
- // Skip check for custom adapters (local paths)
245
- if (adapterModule.startsWith('.') || adapterModule.startsWith('@/') || adapterModule.startsWith('~/')) {
246
- return {
247
- name: 'Adapter Dependencies',
248
- status: 'pass',
249
- message: `Using custom adapter: ${adapterModule}`,
250
- };
251
- }
252
- try {
253
- const pkg = await readPackageJson(projectRoot);
254
- if (adapterModule === 'react-i18next') {
255
- const hasReactI18next = hasDependency(pkg, 'react-i18next');
256
- const hasI18next = hasDependency(pkg, 'i18next');
257
- if (!hasReactI18next || !hasI18next) {
258
- const missing = [];
259
- if (!hasReactI18next)
260
- missing.push('react-i18next');
261
- if (!hasI18next)
262
- missing.push('i18next');
263
- return {
264
- name: 'Adapter Dependencies',
265
- status: 'warn',
266
- message: `Missing adapter dependencies: ${missing.join(', ')}`,
267
- suggestion: `Run: npm install ${missing.join(' ')}`,
268
- };
269
- }
270
- return {
271
- name: 'Adapter Dependencies',
272
- status: 'pass',
273
- message: 'react-i18next and i18next are installed',
274
- };
275
- }
276
- // Check for other adapter modules
277
- if (hasDependency(pkg, adapterModule)) {
278
- return {
279
- name: 'Adapter Dependencies',
280
- status: 'pass',
281
- message: `Adapter dependency installed: ${adapterModule}`,
282
- };
283
- }
284
- return {
285
- name: 'Adapter Dependencies',
286
- status: 'warn',
287
- message: `Adapter module not found in dependencies: ${adapterModule}`,
288
- suggestion: `Run: npm install ${adapterModule}`,
289
- };
290
- }
291
- catch {
292
- return {
293
- name: 'Adapter Dependencies',
294
- status: 'warn',
295
- message: 'Could not read package.json to check dependencies',
296
- };
297
- }
298
- }
299
- async function checkWritePermissions(config, projectRoot) {
300
- const localesDir = path.resolve(projectRoot, config.localesDir ?? 'locales');
301
- try {
302
- // Try to access the locales directory
303
- await fs.access(localesDir);
304
- // Try to create a test file
305
- const testFile = path.join(localesDir, '.i18nsmith-permission-test');
306
- try {
307
- await fs.writeFile(testFile, '');
308
- await fs.unlink(testFile);
309
- return {
310
- name: 'Write Permissions',
311
- status: 'pass',
312
- message: 'Write access to locales directory confirmed',
313
- };
314
- }
315
- catch {
316
- return {
317
- name: 'Write Permissions',
318
- status: 'fail',
319
- message: 'No write access to locales directory',
320
- suggestion: 'Check file permissions on the locales directory',
321
- };
322
- }
323
- }
324
- catch {
325
- // Directory doesn't exist yet, check parent
326
- const parentDir = path.dirname(localesDir);
327
- try {
328
- const testFile = path.join(parentDir, '.i18nsmith-permission-test');
329
- await fs.writeFile(testFile, '');
330
- await fs.unlink(testFile);
331
- return {
332
- name: 'Write Permissions',
333
- status: 'pass',
334
- message: 'Write access to project directory confirmed',
335
- };
336
- }
337
- catch {
338
- return {
339
- name: 'Write Permissions',
340
- status: 'fail',
341
- message: 'No write access to project directory',
342
- suggestion: 'Check file permissions',
343
- };
344
- }
345
- }
346
- }
347
- async function validateConfigOptions(config) {
348
- const checks = [];
349
- // Check source language
350
- if (!config.sourceLanguage || config.sourceLanguage.length < 2) {
351
- checks.push({
352
- name: 'Source Language',
353
- status: 'fail',
354
- message: 'Invalid source language code',
355
- suggestion: 'Use a valid language code like "en", "fr", "de"',
356
- });
357
- }
358
- else {
359
- checks.push({
360
- name: 'Source Language',
361
- status: 'pass',
362
- message: `Source language: ${config.sourceLanguage}`,
363
- });
364
- }
365
- // Check target languages
366
- if (!config.targetLanguages || config.targetLanguages.length === 0) {
367
- checks.push({
368
- name: 'Target Languages',
369
- status: 'warn',
370
- message: 'No target languages configured',
371
- suggestion: 'Add target languages to translate to in your config',
372
- });
373
- }
374
- else {
375
- checks.push({
376
- name: 'Target Languages',
377
- status: 'pass',
378
- message: `Target languages: ${config.targetLanguages.join(', ')}`,
379
- });
380
- }
381
- // Check for common pattern mistakes
382
- if (config.include.some((p) => p.includes('node_modules'))) {
383
- checks.push({
384
- name: 'Include Patterns',
385
- status: 'warn',
386
- message: 'Include patterns contain node_modules',
387
- suggestion: 'Add "node_modules/**" to exclude patterns instead',
388
- });
389
- }
390
- return checks;
391
- }
392
- function printPreflightResults(result) {
393
- console.log(chalk.blue('\nšŸ” i18nsmith Preflight Check\n'));
394
- for (const check of result.checks) {
395
- const icon = check.status === 'pass' ? 'āœ“' : check.status === 'warn' ? '⚠' : 'āœ—';
396
- const color = check.status === 'pass' ? chalk.green : check.status === 'warn' ? chalk.yellow : chalk.red;
397
- console.log(color(`${icon} ${check.name}: ${check.message}`));
398
- if (check.suggestion) {
399
- console.log(chalk.gray(` └─ ${check.suggestion}`));
400
- }
401
- }
402
- console.log('');
403
- if (result.passed) {
404
- console.log(chalk.green('āœ… All preflight checks passed! You are ready to use i18nsmith.\n'));
405
- console.log(chalk.gray('Next steps:'));
406
- console.log(chalk.gray(' • Run "i18nsmith scan" to find translatable strings'));
407
- console.log(chalk.gray(' • Run "i18nsmith sync" to check locale file drift'));
408
- console.log(chalk.gray(' • Run "i18nsmith transform" to inject translations'));
409
- }
410
- else {
411
- console.log(chalk.red('āŒ Some preflight checks failed. Please fix the issues above.\n'));
412
- console.log(chalk.gray('Tips:'));
413
- console.log(chalk.gray(' • Run "i18nsmith init" to create a new config'));
414
- console.log(chalk.gray(' • Run "i18nsmith preflight --fix" to auto-fix some issues'));
415
- }
416
- }
417
- //# sourceMappingURL=preflight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for the preflight onboarding check command
3
- */
4
- export {};
5
- //# sourceMappingURL=preflight.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.test.d.ts","sourceRoot":"","sources":["../../src/commands/preflight.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}