
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
fs-fe-utils
Advanced tools
Frontend utilities for various development activities including translation management
A comprehensive Node.js utility toolkit for frontend development activities, specializing in advanced translation management, delta verification, path mapping, and YAML/JSON processing with git integration.
npm install -g fs-fe-utils
npm install fs-fe-utils
npx fs-fe-utils --help
git clone <repository-url>
cd fs-fe-utils
npm install
npm link # Makes the command available globally during development
fs-fe-utils trans <command> [options]
verify-delta - Verify delta files against target language filesmap-paths - Apply path mappings to restructure translation keysextract-delta - Extract differences between git branchesextract-delta-by-file - Extract differences between two specific filesi18n-merge - Merge translation deltas into target directoriesserve-ui - Start web interface for all utilitiesverify-delta)Verify delta files against target language files for key existence, type compatibility, and structural integrity.
fs-fe-utils trans verify-delta [deltaFilePath] [options]
[deltaFilePath] - Path to delta file (optional, will prompt if not provided)-b, --base-file <path> - Base/target file path to verify against-s, --source <path> - Source directory (default: current directory)-d, --delta <path> - Translation delta file path-t, --target-lang <language> - Target language to verify against (default: en)-r, --report-missing - Generate missing keys report file for path mapping--ignore-root-key - Ignore root language keys during verification--report-type <type> - Report type: leaf, all, or both (default: leaf)--include-mismatches-delete - Mark type mismatches for deletion in reportfs-fe-utils trans verify-delta translations-delta.yml --base-file en.json
fs-fe-utils trans verify-delta delta.json --base-file en.yml --report-missing
fs-fe-utils trans verify-delta
# Will prompt for delta file and target file paths
# Asks about root key handling preference
fs-fe-utils trans verify-delta -d delta.json -b en.yml -r --ignore-root-key --report-type leaf --include-mismatches-delete
fs-fe-utils trans verify-delta delta.json --base-file en.yml --report-missing --report-type all
📊 Delta Verification Report
================================
✅ Total matched keys: 45
⚠️ Total missing keys: 12 (8 leaf-level keys)
❌ Total type mismatches: 3
📋 Translation work needed: 8 leaf-level keys require translation
📄 Missing keys report generated: missing-keys-report-2024-01-15T10-30-45.txt
📋 Ready-to-use command (copy and paste):
fs-fe-utils trans map-paths "missing-keys-report-2024-01-15T10-30-45.txt"
map-paths)Apply path mappings to restructure translation keys safely across multiple language files.
fs-fe-utils trans map-paths [mappingFile] [options]
[mappingFile] - Path to mapping file (optional, will prompt if not provided)-m, --mapping <file> - Mapping file path (alternative to positional argument)-s, --source <path> - Source directory containing translation files-o, --output <path> - Output directory for mapped files# Format: actualpath:newpath
user.name:profile.fullName
user.email:profile.contactEmail
settings.theme:preferences.colorScheme
deprecated.oldKey:DELETE
temp.data:
user.name:profile.fullName - Moves key to new locationdeprecated.key:DELETE - Removes key from all language filestemp.data: - Ignores key (empty mapping)fs-fe-utils trans map-paths mappings.txt
fs-fe-utils trans map-paths -m mappings.txt -s ./locales -o ./locales-restructured
# After running verify-delta --report-missing
fs-fe-utils trans map-paths "missing-keys-report-2024-01-15T10-30-45.txt"
🗺️ Path Mapper Setup:
Mapping File: missing-keys-report-2024-01-15T10-30-45.txt
Source Directory: ./locales
Output Directory: ./locales-mapped
✅ Loaded 15 mapping(s) from file
🔄 Rename/Move operations: 12
🗑️ Delete operations: 3
🔧 Processing: en/translations.json
📝 user.name → profile.fullName
🗑️ deprecated.oldKey → DELETED
✅ Applied 8 mapping(s)
🔧 Processing: es/translations.json
📝 user.name → profile.fullName
🗑️ deprecated.oldKey → DELETED
✅ Applied 8 mapping(s)
🎉 Path mapping completed successfully!
extract-delta)Compare translation files between git branches and extract differences for delta processing.
fs-fe-utils trans extract-delta [fileName] [options]
[fileName] - Target file name (optional, will auto-detect)-s, --source <path> - Source directory (default: current directory)-b, --base-branch <branch> - Base branch to compare against (default: 'prestaging')-f, --file <fileName> - Target file name (alternative to positional argument)fs-fe-utils trans extract-delta
# Auto-detects translation files and compares against prestaging
fs-fe-utils trans extract-delta en.json -b main
fs-fe-utils trans extract-delta -s ./src/locales -f translations.yml
🔍 Starting file delta extraction...
📋 Current branch: feature/new-translations
📋 Base branch: prestaging
📄 Target file: en.json
📊 Current file has 156 key(s)
📊 Base branch file has 142 key(s)
🔍 Comparing files for differences...
📝 Analyzing differences:
➕ New key: user.profile.settings
➕ New key: dashboard.widgets.new
🔄 Changed key: welcome.message
✓ Unchanged: login.title
✅ Delta extraction completed successfully!
📁 Delta file created: feature-new-translations-to-prestaging-en-delta-2024-01-15.json
🔢 Found 14 difference(s)
extract-delta-by-file)Extract differences between two specific translation files without using git branches. Perfect for comparing files from different sources or when you need more control over which files to compare.
fs-fe-utils trans extract-delta-by-file [options]
-s, --source-path <path> - Directory to save delta file (default: current directory)-b, --base-file-path <path> - Base file path to compare against-c, --current-file-path <path> - Current file path to compare--blame - Include git blame information for each key--show-unchanged - Show unchanged keys in logsfs-fe-utils trans extract-delta-by-file
# Will prompt for both base and current file paths
fs-fe-utils trans extract-delta-by-file --base-file-path ./old/en.json --current-file-path ./new/en.json
fs-fe-utils trans extract-delta-by-file --blame --base-file-path ./v1/config.yml --current-file-path ./v2/config.yml
fs-fe-utils trans extract-delta-by-file --show-unchanged --base-file-path ./before.json --current-file-path ./after.json
fs-fe-utils trans extract-delta-by-file --source-path ./output --base-file-path ./file1.yml --current-file-path ./file2.yml
🔍 Starting file-to-file delta extraction...
📄 Base file: ./translations/en-old.json
📄 Current file: ./translations/en-new.json
📊 Base file has 45 key(s)
📊 Current file has 52 key(s)
🔍 Comparing files for differences...
📝 Analyzing differences:
➕ New key: user.welcome.title @john
🔄 Changed key: user.profile.bio @sarah
Old: "Tell us about yourself"
New: "Share your story with us"
➕ New key: dashboard.stats.revenue
🔍 Nested changes in: settings.notifications
✅ Delta extraction completed successfully!
📁 Delta file created: en-new-vs-en-old-delta-2024-01-15.json
🔢 Found 3 difference(s)
serve-ui)Launch a beautiful web interface that provides GUI access to all fs-fe-utils functionality. Perfect for teams who prefer visual interfaces or need to share the tools with non-technical users.
fs-fe-utils serve-ui [options]
-p, --port <port> - Port to run the server on (default: 9900)fs-fe-utils serve-ui
# Starts server on http://localhost:9900
fs-fe-utils serve-ui --port 8080
# Starts server on http://localhost:8080
Start the server:
fs-fe-utils serve-ui
Open your browser to http://localhost:9900
Upload files using drag-and-drop or file selector
Choose a utility from the main dashboard
Configure options in the modal dialogs
Execute operations and view real-time output
Download results using the provided download links
# Start server
fs-fe-utils serve-ui
# Start on custom port
fs-fe-utils serve-ui --port 8080
# Stop server
# Press Ctrl+C in the terminal
The server includes:
i18n-merge)Merge translation delta files into target language directories with advanced YAML/JSON processing.
fs-fe-utils trans i18n-merge [deltaPath] [options]
ko delta to both ko and ko-KR files--limit option[deltaPath] - Path to translation delta directory (optional, will prompt)-s, --source <path> - Source directory (default: current directory)-t, --target <path> - Target translation directory (default: current directory)-d, --delta <path> - Translation delta directory path (alternative to positional argument)-l, --limit <languages> - Limit processing to specific languages (comma-separated)Built-in mappings for common language code variations:
cy-GB ↔ cyes ↔ es-ESes-LA ↔ es-MXja-JP ↔ jalv-LV ↔ lvnb-NO ↔ noru-RU ↔ rufs-fe-utils trans i18n-merge /path/to/translation-delta
fs-fe-utils trans i18n-merge --limit "en,es,fr" /path/to/delta
fs-fe-utils trans i18n-merge -s ./src -t ./src/locales -d /path/to/delta
fs-fe-utils trans i18n-merge
# Will prompt for delta path and confirm source directory
📁 Current configuration:
Source Directory (translation files): ./src/locales
Delta Directory: /path/to/translation-delta
🌐 Found 5 language(s): en, es, fr, de, ja
🔄 Language mappings in effect:
es (delta) → es-ES (local file)
🔄 Processing language: en
📄 Processing: translations.json → en.json
➕ Added new key: user.profile.settings
🔄 Updated key: dashboard.title
⏭️ Skipped (same value): login.button
✅ Merged 45 translation key(s) to en.json
🔄 Processing language: es
📄 Processing: translations.json (es → es-ES) → es-ES.json
✅ Merged 45 translation key(s) to es-ES.json
✅ All local translation files have corresponding deltas
Advanced YAML handling with formatting preservation, powered by the yaml-document-merger utility.
DEBUG=true - Enable detailed debug logging for troubleshooting.json files with standard JSON formatting.yml and .yaml files with full YAML 1.1 support# Extract differences from your feature branch
fs-fe-utils trans extract-delta en.json -b main
# Creates: feature-branch-to-main-en-delta-2024-01-15.json
# OR compare two specific files directly
fs-fe-utils trans extract-delta-by-file --base-file-path ./main-branch/en.json --current-file-path ./current/en.json
# Creates: current-vs-main-branch-delta-2024-01-15.json
# Verify the delta and generate mapping report
fs-fe-utils trans verify-delta feature-branch-to-main-en-delta-2024-01-15.json --report-missing
# Creates: missing-keys-report-2024-01-15T10-30-45.txt
# Edit the generated report file
# Add path mappings: user.name:profile.fullName
# Mark deprecated keys: old.key:DELETE
# Leave unwanted keys empty: temp.data:
# Apply the mappings to restructure translation files
fs-fe-utils trans map-paths "missing-keys-report-2024-01-15T10-30-45.txt"
# Creates: ./locales-mapped/ directory with restructured files
# Merge the delta into all language files
fs-fe-utils trans i18n-merge /path/to/translation-delta --limit "en,es,fr"
--report-missing flag to preview changes--limit option# Before making changes
git checkout -b translation-updates
# Extract and verify changes
fs-fe-utils trans extract-delta
fs-fe-utils trans verify-delta delta-file.json --report-missing
# Apply restructuring if needed
fs-fe-utils trans map-paths mapping-report.txt
# Merge translations
fs-fe-utils trans i18n-merge /path/to/delta
# Review changes and commit
git add .
git commit -m "Update translations with restructuring"
--report-missing to identify and handle conflictsDEBUG=true fs-fe-utils trans verify-delta delta.json
Enables detailed logging for troubleshooting complex issues.
git clone <repository-url>
cd fs-fe-utils
npm install
npm link
fs-fe-utils/
├── bin/
│ └── cli.js # CLI entry point
├── src/
│ ├── delta-verifier.js # Delta verification with type checking
│ ├── path-mapper.js # Path restructuring and key mapping
│ ├── delta-extractor.js # Git branch comparison and delta extraction
│ ├── translation-merger.js # Translation merging with language mapping
│ └── yaml-document-merger.js # Advanced YAML processing
├── package.json
└── README.md
MIT License - see LICENSE file for details
FAQs
Frontend utilities for various development activities including translation management
We found that fs-fe-utils demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.