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.
- package/build.mjs +25 -0
- package/dist/index.js +109367 -22
- package/dist/index.js.map +7 -1
- package/package.json +10 -6
- package/dist/commands/audit.d.ts +0 -3
- package/dist/commands/audit.d.ts.map +0 -1
- package/dist/commands/audit.js +0 -180
- package/dist/commands/audit.js.map +0 -1
- package/dist/commands/backup.d.ts +0 -6
- package/dist/commands/backup.d.ts.map +0 -1
- package/dist/commands/backup.js +0 -85
- package/dist/commands/backup.js.map +0 -1
- package/dist/commands/check.d.ts +0 -3
- package/dist/commands/check.d.ts.map +0 -1
- package/dist/commands/check.js +0 -151
- package/dist/commands/check.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -235
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/debug-patterns.d.ts +0 -3
- package/dist/commands/debug-patterns.d.ts.map +0 -1
- package/dist/commands/debug-patterns.js +0 -192
- package/dist/commands/debug-patterns.js.map +0 -1
- package/dist/commands/debug-patterns.test.d.ts +0 -2
- package/dist/commands/debug-patterns.test.d.ts.map +0 -1
- package/dist/commands/debug-patterns.test.js +0 -109
- package/dist/commands/debug-patterns.test.js.map +0 -1
- package/dist/commands/diagnose.d.ts +0 -3
- package/dist/commands/diagnose.d.ts.map +0 -1
- package/dist/commands/diagnose.js +0 -117
- package/dist/commands/diagnose.js.map +0 -1
- package/dist/commands/init.d.ts +0 -8
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -450
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/init.test.d.ts +0 -2
- package/dist/commands/init.test.d.ts.map +0 -1
- package/dist/commands/init.test.js +0 -74
- package/dist/commands/init.test.js.map +0 -1
- package/dist/commands/install-hooks.d.ts +0 -3
- package/dist/commands/install-hooks.d.ts.map +0 -1
- package/dist/commands/install-hooks.js +0 -52
- package/dist/commands/install-hooks.js.map +0 -1
- package/dist/commands/preflight.d.ts +0 -7
- package/dist/commands/preflight.d.ts.map +0 -1
- package/dist/commands/preflight.js +0 -417
- package/dist/commands/preflight.js.map +0 -1
- package/dist/commands/preflight.test.d.ts +0 -5
- package/dist/commands/preflight.test.d.ts.map +0 -1
- package/dist/commands/preflight.test.js +0 -108
- package/dist/commands/preflight.test.js.map +0 -1
- package/dist/commands/rename.d.ts +0 -6
- package/dist/commands/rename.d.ts.map +0 -1
- package/dist/commands/rename.js +0 -204
- package/dist/commands/rename.js.map +0 -1
- package/dist/commands/scaffold-adapter.d.ts +0 -3
- package/dist/commands/scaffold-adapter.d.ts.map +0 -1
- package/dist/commands/scaffold-adapter.js +0 -204
- package/dist/commands/scaffold-adapter.js.map +0 -1
- package/dist/commands/scaffold-adapter.test.d.ts +0 -2
- package/dist/commands/scaffold-adapter.test.d.ts.map +0 -1
- package/dist/commands/scaffold-adapter.test.js +0 -102
- package/dist/commands/scaffold-adapter.test.js.map +0 -1
- package/dist/commands/scan.d.ts +0 -3
- package/dist/commands/scan.d.ts.map +0 -1
- package/dist/commands/scan.js +0 -93
- package/dist/commands/scan.js.map +0 -1
- package/dist/commands/sync-seed.test.d.ts +0 -2
- package/dist/commands/sync-seed.test.d.ts.map +0 -1
- package/dist/commands/sync-seed.test.js +0 -86
- package/dist/commands/sync-seed.test.js.map +0 -1
- package/dist/commands/sync.d.ts +0 -3
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js +0 -590
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/transform.d.ts +0 -3
- package/dist/commands/transform.d.ts.map +0 -1
- package/dist/commands/transform.js +0 -114
- package/dist/commands/transform.js.map +0 -1
- package/dist/commands/translate/csv-handler.d.ts +0 -21
- package/dist/commands/translate/csv-handler.d.ts.map +0 -1
- package/dist/commands/translate/csv-handler.js +0 -270
- package/dist/commands/translate/csv-handler.js.map +0 -1
- package/dist/commands/translate/executor.d.ts +0 -31
- package/dist/commands/translate/executor.d.ts.map +0 -1
- package/dist/commands/translate/executor.js +0 -117
- package/dist/commands/translate/executor.js.map +0 -1
- package/dist/commands/translate/index.d.ts +0 -10
- package/dist/commands/translate/index.d.ts.map +0 -1
- package/dist/commands/translate/index.js +0 -170
- package/dist/commands/translate/index.js.map +0 -1
- package/dist/commands/translate/reporter.d.ts +0 -29
- package/dist/commands/translate/reporter.d.ts.map +0 -1
- package/dist/commands/translate/reporter.js +0 -103
- package/dist/commands/translate/reporter.js.map +0 -1
- package/dist/commands/translate/types.d.ts +0 -50
- package/dist/commands/translate/types.d.ts.map +0 -1
- package/dist/commands/translate/types.js +0 -5
- package/dist/commands/translate/types.js.map +0 -1
- package/dist/commands/translate.d.ts +0 -7
- package/dist/commands/translate.d.ts.map +0 -1
- package/dist/commands/translate.js +0 -7
- package/dist/commands/translate.js.map +0 -1
- package/dist/commands/translate.test.d.ts +0 -2
- package/dist/commands/translate.test.d.ts.map +0 -1
- package/dist/commands/translate.test.js +0 -118
- package/dist/commands/translate.test.js.map +0 -1
- package/dist/e2e.test.d.ts +0 -6
- package/dist/e2e.test.d.ts.map +0 -1
- package/dist/e2e.test.js +0 -376
- package/dist/e2e.test.js.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/integration.test.d.ts +0 -6
- package/dist/integration.test.d.ts.map +0 -1
- package/dist/integration.test.js +0 -320
- package/dist/integration.test.js.map +0 -1
- package/dist/utils/diagnostics-exit.d.ts +0 -12
- package/dist/utils/diagnostics-exit.d.ts.map +0 -1
- package/dist/utils/diagnostics-exit.js +0 -49
- package/dist/utils/diagnostics-exit.js.map +0 -1
- package/dist/utils/diagnostics-exit.test.d.ts +0 -2
- package/dist/utils/diagnostics-exit.test.d.ts.map +0 -1
- package/dist/utils/diagnostics-exit.test.js +0 -40
- package/dist/utils/diagnostics-exit.test.js.map +0 -1
- package/dist/utils/diff-utils.d.ts +0 -4
- package/dist/utils/diff-utils.d.ts.map +0 -1
- package/dist/utils/diff-utils.js +0 -30
- package/dist/utils/diff-utils.js.map +0 -1
- package/dist/utils/diff-utils.test.d.ts +0 -2
- package/dist/utils/diff-utils.test.d.ts.map +0 -1
- package/dist/utils/diff-utils.test.js +0 -30
- package/dist/utils/diff-utils.test.js.map +0 -1
- package/dist/utils/exit-codes.d.ts +0 -142
- package/dist/utils/exit-codes.d.ts.map +0 -1
- package/dist/utils/exit-codes.js +0 -168
- package/dist/utils/exit-codes.js.map +0 -1
- package/dist/utils/package-manager.d.ts +0 -4
- package/dist/utils/package-manager.d.ts.map +0 -1
- package/dist/utils/package-manager.js +0 -40
- package/dist/utils/package-manager.js.map +0 -1
- package/dist/utils/pkg.d.ts +0 -3
- package/dist/utils/pkg.d.ts.map +0 -1
- package/dist/utils/pkg.js +0 -24
- package/dist/utils/pkg.js.map +0 -1
- package/dist/utils/provider-injector.d.ts +0 -36
- package/dist/utils/provider-injector.d.ts.map +0 -1
- package/dist/utils/provider-injector.js +0 -223
- package/dist/utils/provider-injector.js.map +0 -1
- package/dist/utils/provider-injector.test.d.ts +0 -2
- package/dist/utils/provider-injector.test.d.ts.map +0 -1
- package/dist/utils/provider-injector.test.js +0 -67
- package/dist/utils/provider-injector.test.js.map +0 -1
- package/dist/utils/scaffold.d.ts +0 -20
- package/dist/utils/scaffold.d.ts.map +0 -1
- package/dist/utils/scaffold.js +0 -197
- 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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.test.d.ts","sourceRoot":"","sources":["../../src/commands/preflight.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|