Registry / devops / accent-cli

accent-cli

JSON →
library0.17.0jsnpmunverified

The `accent-cli` package provides a robust command-line interface for seamless interaction with an Accent localization instance. It empowers developers to automate critical localization workflows, including synchronizing translation files, managing project configurations, and executing custom hooks directly from the terminal or within CI/CD pipelines. The current stable version is 0.17.0, and it follows a semantic versioning approach, with updates released to introduce new features, improve stability, and address bug fixes in alignment with the Accent platform's development. A key differentiator is its deep integration with the Accent platform, supporting various localization file formats such as JSON and `.strings`. It offers highly flexible configuration via a dedicated `accent.json` file, which supports powerful glob-pattern matching for file paths, and environment variables for sensitive data like API keys and URLs, providing secure and adaptable deployment options.

npm install accent-cli
INSTALL
IMPORT
SIG · ACCENT-CLI
A
accent-cli
devopsjavascriptv0.17.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AccentCommand
This package is primarily a CLI tool and not intended for direct programmatic import of its internal commands or modules. Interaction is via the 'accent' binary.
import { AccentCommand } from 'accent-cli'
accent-cli is built using the oclif framework for command-line interfaces. Its primary use is by executing the 'accent' binary in a shell environment, not as a JavaScript library. Attempting to import internal components directly is an anti-pattern and unsupported for stable API usage.
AccentConfiguration
Configuration for accent-cli is managed externally through `accent.json` files or environment variables.
import { AccentConfiguration } from 'accent-cli'
The internal configuration schema or types used by accent-cli are not explicitly exported for programmatic consumption. Developers should define their project's localization settings in `accent.json` or via `ACCENT_` prefixed environment variables, as documented.
run
To interact with accent-cli programmatically from Node.js, execute the 'accent' command using Node's `child_process` module.
import { run } from 'accent-cli'
There is no `run` function or similar public entry point exported for direct library usage. If you need to trigger `accent-cli` commands from a Node.js script, use `child_process.exec` or `child_process.spawn` to invoke the command-line binary.

This quickstart demonstrates how to execute `accent-cli` commands programmatically from a Node.js application using the `child_process.exec` function. It includes the creation of a temporary `accent.json` configuration file and a dummy localization file to simulate a project setup, runs the `accent sync` command, and then cleans up the generated temporary files and directories.

import { exec } from 'child_process'; import * as path from 'path'; import * as fs from 'fs'; // Define paths for dummy files const configPath = path.join(process.cwd(), 'accent.json'); const dummyLocaleDir = path.join(process.cwd(), 'localization_test'); const dummyLocaleFilePath = path.join(dummyLocaleDir, 'en.json'); // Create a dummy accent.json for demonstration const dummyConfig = { "apiUrl": process.env.ACCENT_API_URL ?? "http://localhost:3000", "apiKey": process.env.ACCENT_API_KEY ?? "sk_exampleapikey123", // Replace with a real key or env var in production "project": process.env.ACCENT_PROJECT ?? "a1b2c3d4-e5f6-7890-1234-567890abcdef", "files": [ { "format": "json", "source": "localization_test/en.json", "target": "localization_test/%slug%/%document_path%.json" } ] }; fs.writeFileSync(configPath, JSON.stringify(dummyConfig, null, 2)); console.log(`Created dummy accent.json at ${configPath}`); // Create a dummy localization file if (!fs.existsSync(dummyLocaleDir)) { fs.mkdirSync(dummyLocaleDir); } fs.writeFileSync(dummyLocaleFilePath, JSON.stringify({ "hello": "Hello from accent-cli!" }, null, 2)); console.log(`Created dummy localization/en.json at ${dummyLocaleFilePath}`); console.log('Running accent-cli programmatically with `accent sync`...'); exec('accent sync', (error, stdout, stderr) => { if (error) { console.error(`Error executing accent sync: ${error.message}`); console.error(`stderr: ${stderr}`); return; } console.log(`stdout: ${stdout}`); if (stderr) { console.warn(`stderr (warnings/info): ${stderr}`); } console.log('accent-cli sync command executed successfully.'); // Clean up dummy files and directory try { fs.unlinkSync(configPath); fs.unlinkSync(dummyLocaleFilePath); fs.rmdirSync(dummyLocaleDir, { recursive: true }); console.log('Cleaned up dummy files and directory.'); } catch (cleanupError) { console.error(`Error during cleanup: ${cleanupError}`); } });
accent --version
Debug
Known issues
gotchaEnvironment variables (e.g., `ACCENT_API_KEY`, `ACCENT_API_URL`, `ACCENT_PROJECT`) override corresponding values defined in the `accent.json` configuration file. This precedence can lead to unexpected behavior if not understood.
fix
Always check your active environment variables if the configuration specified in `accent.json` appears to be ignored. Explicitly unset environment variables if you intend for `accent.json` values to take effect, or consistently manage configuration through a single source.
affects: >=0.1.0
breakingAs an active CLI tool, the syntax, arguments, or flags for specific commands can undergo changes between minor or even patch versions. Relying on undocumented or experimental flags may lead to breakage upon upgrade.
fix
Before upgrading `accent-cli`, review the official documentation for any breaking changes related to command arguments or configuration. For automated scripts, consider pinning to a specific minor version (e.g., `^0.17.x`) and thoroughly testing upgrades in a staging environment.
affects: >=0.x.0
gotchaIncorrectly formatted glob patterns in the `source` or `target` properties within `accent.json` can cause files to be missed during synchronization or incorrectly written to unintended locations. `accent-cli` uses the `node-glob` library, which has specific syntax rules.
fix
Thoroughly test your glob patterns, especially for complex file structures. Consult the `node-glob` library documentation for advanced pattern matching. Use `accent --help [command]` for command-specific options that might assist in debugging file paths or dry runs if available.
affects: >=0.1.0
gotchaThe `hooks` feature allows executing arbitrary shell commands, which can introduce security vulnerabilities if the commands are not trusted or if they process untrusted input. Malicious commands could lead to data exposure or system compromise.
fix
Carefully review all commands defined within the `hooks` section of your `accent.json`. Ensure that any commands are from trusted sources, do not process untrusted user input, and are executed with the minimum necessary permissions. Consider running `accent-cli` in a sandboxed or containerized environment for critical workflows.
affects: >=0.1.0
Errors
Common errors & fixes
Error: Missing Accent API Key. Please set ACCENT_API_KEY environment variable or 'apiKey' in accent.json
The Accent API key required for authentication is not provided, either as an environment variable or in the configuration file.
fix
Ensure that the `ACCENT_API_KEY` environment variable is set to your valid Accent API key, or add an `"apiKey": "YOUR_API_KEY"` entry to your `accent.json` file.
Error: Command 'xyz' not found.
The command executed (e.g., `accent xyz`) is not a recognized or supported subcommand of `accent-cli` for the installed version.
fix
Verify the command name is spelled correctly. Use `accent --help` to list all available commands and their usage. If the command should exist, ensure you have the latest stable version of `accent-cli` or a version where the command is supported.
Error: Invalid accent.json: Unexpected token [token] in JSON at position [position]
The `accent.json` configuration file contains a syntax error (e.g., missing comma, unclosed quote, invalid character) that prevents it from being parsed as valid JSON.
fix
Open your `accent.json` file and meticulously review its JSON syntax. Pay close attention to commas between properties, correctly balanced brackets and braces, and properly quoted string values. Utilize a JSON linter or an IDE with JSON validation to quickly identify and correct the syntax error.
Upgrade
Version history
0.17.0latest on npm
Audit
Dependencies
node-globrequiredUsed for matching source file paths with glob patterns as specified in the `accent.json` configuration, enabling flexible file selection.
Agent activity
64 hits · last 30 days
node
54
Perplexity
1
OpenAI (training)
1
Resources