i18ntk 1.10.2 → 2.0.3
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/LICENSE +1 -1
- package/README.md +141 -1191
- package/main/i18ntk-analyze.js +65 -84
- package/main/i18ntk-backup-class.js +420 -0
- package/main/i18ntk-backup.js +3 -3
- package/main/i18ntk-complete.js +90 -65
- package/main/i18ntk-doctor.js +123 -103
- package/main/i18ntk-fixer.js +61 -725
- package/main/i18ntk-go.js +14 -15
- package/main/i18ntk-init.js +77 -26
- package/main/i18ntk-java.js +27 -32
- package/main/i18ntk-js.js +70 -68
- package/main/i18ntk-manage.js +129 -30
- package/main/i18ntk-php.js +75 -75
- package/main/i18ntk-py.js +55 -56
- package/main/i18ntk-scanner.js +59 -57
- package/main/i18ntk-setup.js +9 -404
- package/main/i18ntk-sizing.js +6 -6
- package/main/i18ntk-summary.js +21 -18
- package/main/i18ntk-ui.js +11 -10
- package/main/i18ntk-usage.js +54 -18
- package/main/i18ntk-validate.js +13 -13
- package/main/manage/commands/AnalyzeCommand.js +1124 -0
- package/main/manage/commands/BackupCommand.js +62 -0
- package/main/manage/commands/CommandRouter.js +295 -0
- package/main/manage/commands/CompleteCommand.js +61 -0
- package/main/manage/commands/DoctorCommand.js +60 -0
- package/main/manage/commands/FixerCommand.js +624 -0
- package/main/manage/commands/InitCommand.js +62 -0
- package/main/manage/commands/ScannerCommand.js +654 -0
- package/main/manage/commands/SizingCommand.js +60 -0
- package/main/manage/commands/SummaryCommand.js +61 -0
- package/main/manage/commands/UsageCommand.js +60 -0
- package/main/manage/commands/ValidateCommand.js +978 -0
- package/main/manage/index-fixed.js +1447 -0
- package/main/manage/index.js +1462 -0
- package/main/manage/managers/DebugMenu.js +140 -0
- package/main/manage/managers/InteractiveMenu.js +177 -0
- package/main/manage/managers/LanguageMenu.js +62 -0
- package/main/manage/managers/SettingsMenu.js +53 -0
- package/main/manage/services/AuthenticationService.js +263 -0
- package/main/manage/services/ConfigurationService-fixed.js +449 -0
- package/main/manage/services/ConfigurationService.js +449 -0
- package/main/manage/services/FileManagementService.js +368 -0
- package/main/manage/services/FrameworkDetectionService.js +458 -0
- package/main/manage/services/InitService.js +1051 -0
- package/main/manage/services/SetupService.js +462 -0
- package/main/manage/services/SummaryService.js +450 -0
- package/main/manage/services/UsageService.js +1502 -0
- package/package.json +32 -29
- package/runtime/enhanced.d.ts +221 -221
- package/runtime/index.d.ts +29 -29
- package/runtime/index.full.d.ts +331 -331
- package/runtime/index.js +7 -6
- package/scripts/build-lite.js +17 -17
- package/scripts/deprecate-versions.js +23 -6
- package/scripts/export-translations.js +5 -5
- package/scripts/fix-all-i18n.js +3 -3
- package/scripts/fix-and-purify-i18n.js +3 -2
- package/scripts/fix-locale-control-chars.js +110 -0
- package/scripts/lint-locales.js +80 -0
- package/scripts/locale-optimizer.js +8 -8
- package/scripts/prepublish.js +21 -21
- package/scripts/security-check.js +117 -117
- package/scripts/sync-translations.js +4 -4
- package/scripts/sync-ui-locales.js +9 -8
- package/scripts/validate-all-translations.js +8 -7
- package/scripts/verify-deprecations.js +157 -161
- package/scripts/verify-translations.js +6 -5
- package/settings/i18ntk-config.json +282 -282
- package/settings/language-config.json +5 -5
- package/settings/settings-cli.js +9 -9
- package/settings/settings-manager.js +18 -18
- package/ui-locales/de.json +2417 -2348
- package/ui-locales/en.json +2415 -2352
- package/ui-locales/es.json +2425 -2353
- package/ui-locales/fr.json +2418 -2348
- package/ui-locales/ja.json +2463 -2361
- package/ui-locales/ru.json +2463 -2359
- package/ui-locales/zh.json +2418 -2351
- package/utils/admin-auth.js +2 -2
- package/utils/admin-cli.js +297 -297
- package/utils/admin-pin.js +9 -9
- package/utils/cli-helper.js +9 -9
- package/utils/config-helper.js +73 -104
- package/utils/config-manager.js +204 -171
- package/utils/config.js +5 -4
- package/utils/env-manager.js +249 -263
- package/utils/framework-detector.js +27 -24
- package/utils/i18n-helper.js +85 -41
- package/utils/init-helper.js +152 -94
- package/utils/json-output.js +98 -98
- package/utils/mini-commander.js +179 -0
- package/utils/missing-key-validator.js +5 -5
- package/utils/plugin-loader.js +40 -29
- package/utils/prompt.js +14 -44
- package/utils/safe-json.js +40 -0
- package/utils/secure-errors.js +3 -3
- package/utils/security-check-improved.js +390 -0
- package/utils/security-config.js +5 -5
- package/utils/security-fixed.js +607 -0
- package/utils/security.js +652 -602
- package/utils/setup-enforcer.js +136 -44
- package/utils/setup-validator.js +33 -32
- package/utils/ultra-performance-optimizer.js +11 -9
- package/utils/watch-locales.js +2 -1
- package/utils/prompt-fixed.js +0 -55
- package/utils/security-check.js +0 -454
|
@@ -6,10 +6,10 @@ const SecurityUtils = require('../utils/security');
|
|
|
6
6
|
|
|
7
7
|
class SettingsManager {
|
|
8
8
|
constructor() {
|
|
9
|
-
// Use
|
|
10
|
-
this.configDir = path.resolve(__dirname, '..'
|
|
11
|
-
this.configFile = path.join(
|
|
12
|
-
this.backupDir = path.join(
|
|
9
|
+
// Use centralized .i18ntk-settings file as single source of truth
|
|
10
|
+
this.configDir = path.resolve(__dirname, '..');
|
|
11
|
+
this.configFile = path.join(process.cwd(), '.i18ntk-settings');
|
|
12
|
+
this.backupDir = path.join(process.cwd(), 'backups');
|
|
13
13
|
this.saveTimeout = null;
|
|
14
14
|
|
|
15
15
|
this.defaultConfig = {
|
|
@@ -317,8 +317,8 @@ class SettingsManager {
|
|
|
317
317
|
*/
|
|
318
318
|
loadSettings() {
|
|
319
319
|
try {
|
|
320
|
-
if (
|
|
321
|
-
const content =
|
|
320
|
+
if (SecurityUtils.safeExistsSync(this.configFile)) {
|
|
321
|
+
const content = SecurityUtils.safeReadFileSync(this.configFile, process.cwd(), 'utf8');
|
|
322
322
|
const loadedSettings = JSON.parse(content);
|
|
323
323
|
// Merge with defaults to ensure all properties exist
|
|
324
324
|
this.settings = this.mergeWithDefaults(loadedSettings);
|
|
@@ -431,12 +431,12 @@ class SettingsManager {
|
|
|
431
431
|
*/
|
|
432
432
|
_saveImmediately() {
|
|
433
433
|
try {
|
|
434
|
-
if (!
|
|
434
|
+
if (!SecurityUtils.safeExistsSync(this.configDir)) {
|
|
435
435
|
fs.mkdirSync(this.configDir, { recursive: true });
|
|
436
436
|
}
|
|
437
437
|
|
|
438
438
|
const content = JSON.stringify(this.settings, null, 4);
|
|
439
|
-
|
|
439
|
+
SecurityUtils.safeWriteFileSync(this.configFile, content, path.dirname(this.configFile), 'utf8');
|
|
440
440
|
|
|
441
441
|
// Create backup if enabled
|
|
442
442
|
if (this.settings.backup?.enabled) {
|
|
@@ -456,7 +456,7 @@ class SettingsManager {
|
|
|
456
456
|
*/
|
|
457
457
|
createBackup() {
|
|
458
458
|
try {
|
|
459
|
-
if (!
|
|
459
|
+
if (!SecurityUtils.safeExistsSync(this.backupDir)) {
|
|
460
460
|
fs.mkdirSync(this.backupDir, { recursive: true });
|
|
461
461
|
}
|
|
462
462
|
|
|
@@ -535,28 +535,28 @@ class SettingsManager {
|
|
|
535
535
|
|
|
536
536
|
// Main configuration file
|
|
537
537
|
const mainConfigPath = path.join(settingsDir, 'i18ntk-config.json');
|
|
538
|
-
if (
|
|
538
|
+
if (SecurityUtils.safeExistsSync(mainConfigPath)) {
|
|
539
539
|
fs.unlinkSync(mainConfigPath);
|
|
540
540
|
console.log('✅ Main configuration file removed');
|
|
541
541
|
}
|
|
542
542
|
|
|
543
543
|
// Project configuration file
|
|
544
544
|
const projectConfigPath = path.join(settingsDir, 'project-config.json');
|
|
545
|
-
if (
|
|
545
|
+
if (SecurityUtils.safeExistsSync(projectConfigPath)) {
|
|
546
546
|
fs.unlinkSync(projectConfigPath);
|
|
547
547
|
console.log('✅ Project configuration removed');
|
|
548
548
|
}
|
|
549
549
|
|
|
550
550
|
// Setup tracking file
|
|
551
551
|
const setupFile = path.join(settingsDir, 'setup.json');
|
|
552
|
-
if (
|
|
552
|
+
if (SecurityUtils.safeExistsSync(setupFile)) {
|
|
553
553
|
fs.unlinkSync(setupFile);
|
|
554
554
|
console.log('✅ Setup tracking cleared');
|
|
555
555
|
}
|
|
556
556
|
|
|
557
557
|
// 3. Clear all backup files from backups directory
|
|
558
558
|
const backupsDir = path.join(packageDir, 'backups');
|
|
559
|
-
if (
|
|
559
|
+
if (SecurityUtils.safeExistsSync(backupsDir)) {
|
|
560
560
|
const backupFiles = fs.readdirSync(backupsDir);
|
|
561
561
|
for (const file of backupFiles) {
|
|
562
562
|
if (file.endsWith('.json') || file.endsWith('.bak')) {
|
|
@@ -575,7 +575,7 @@ class SettingsManager {
|
|
|
575
575
|
];
|
|
576
576
|
|
|
577
577
|
for (const adminConfigPath of adminConfigPaths) {
|
|
578
|
-
if (
|
|
578
|
+
if (SecurityUtils.safeExistsSync(adminConfigPath)) {
|
|
579
579
|
fs.unlinkSync(adminConfigPath);
|
|
580
580
|
console.log('✅ Admin PIN configuration cleared');
|
|
581
581
|
}
|
|
@@ -588,7 +588,7 @@ class SettingsManager {
|
|
|
588
588
|
];
|
|
589
589
|
|
|
590
590
|
for (const initFile of initFiles) {
|
|
591
|
-
if (
|
|
591
|
+
if (SecurityUtils.safeExistsSync(initFile)) {
|
|
592
592
|
fs.unlinkSync(initFile);
|
|
593
593
|
console.log('✅ Initialization tracking cleared');
|
|
594
594
|
}
|
|
@@ -601,7 +601,7 @@ class SettingsManager {
|
|
|
601
601
|
];
|
|
602
602
|
|
|
603
603
|
for (const cacheDir of cacheDirs) {
|
|
604
|
-
if (
|
|
604
|
+
if (SecurityUtils.safeExistsSync(cacheDir)) {
|
|
605
605
|
const cacheFiles = fs.readdirSync(cacheDir);
|
|
606
606
|
for (const file of cacheFiles) {
|
|
607
607
|
fs.unlinkSync(path.join(cacheDir, file));
|
|
@@ -624,7 +624,7 @@ class SettingsManager {
|
|
|
624
624
|
];
|
|
625
625
|
|
|
626
626
|
for (const tempFile of tempFiles) {
|
|
627
|
-
if (
|
|
627
|
+
if (SecurityUtils.safeExistsSync(tempFile)) {
|
|
628
628
|
fs.unlinkSync(tempFile);
|
|
629
629
|
}
|
|
630
630
|
}
|
|
@@ -641,7 +641,7 @@ class SettingsManager {
|
|
|
641
641
|
];
|
|
642
642
|
|
|
643
643
|
for (const file of additionalFiles) {
|
|
644
|
-
if (
|
|
644
|
+
if (SecurityUtils.safeExistsSync(file)) {
|
|
645
645
|
fs.unlinkSync(file);
|
|
646
646
|
console.log(`✅ Removed ${path.basename(file)}`);
|
|
647
647
|
}
|