
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@siener/visualizer
Advanced tools
Generate and visualize Fibonacci sequences in the terminal with both numeric values and curved line representation.
npm install -g @jasons/visualizer
npm install @jasons/visualizer
Generate the first N Fibonacci numbers:
# Using global installation
fibonacci 10
# Or with Node.js directly
node visualizer.js 10
$ fibonacci 8
F(0) = 0
F(1) = 1 ****
F(2) = 1 ****
F(3) = 2 *********
F(4) = 3 *************
F(5) = 5 ***********************
F(6) = 8 ************************************
F(7) = 13 ************************************************************
You can also use the Visualizer as a Node.js module:
const Visualizer = require('@jasons/visualizer');
// Create instance
const viz = new Visualizer();
// Generate Fibonacci sequence
const sequence = viz.generate(10);
console.log(sequence);
// Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
// Visualize the sequence
const output = viz.visualize(sequence);
console.log(output);
const Visualizer = require('@jasons/visualizer');
const viz = new Visualizer();
// 1. Validate input
const validation = viz.validate('10');
if (!validation.valid) {
console.error(validation.error);
process.exit(1);
}
// 2. Generate sequence
const sequence = viz.generate(validation.value);
// 3. Visualize
const output = viz.visualize(sequence);
console.log(output);
const Visualizer = require('@jasons/visualizer');
const viz = new Visualizer();
// Customize display width (default: 60)
viz.maxDisplayWidth = 40;
// Customize curve character (default: '*')
viz.curveChar = '█';
const sequence = viz.generate(10);
const output = viz.visualize(sequence);
console.log(output);
new Visualizer()Creates a new Visualizer instance with default configuration.
Returns: Visualizer instance
validate(input)Validates user input for Fibonacci sequence generation.
Parameters:
input (String|Number|undefined) - User-provided count valueReturns: ValidationResult object
{
valid: Boolean, // true if valid, false otherwise
value: Number | null, // parsed number or null
error: String | null // error message or null
}
Example:
const result = viz.validate('10');
// → { valid: true, value: 10, error: null }
generate(count)Generates a Fibonacci sequence of specified length.
Parameters:
count (Number) - Number of Fibonacci numbers to generate (must be positive)Returns: Array<Number> - Fibonacci sequence starting from 0
Example:
const sequence = viz.generate(5);
// → [0, 1, 1, 2, 3]
visualize(sequence)Creates a visual representation of a Fibonacci sequence.
Parameters:
sequence (Array) - Array of Fibonacci numbers to visualizeReturns: String - Multi-line formatted visualization
Example:
const output = viz.visualize([0, 1, 1, 2, 3]);
// Returns formatted string with asterisk visualization
fibonacci(input)Main execution method that orchestrates validation, generation, and visualization.
Parameters:
input (String) - Command-line argument (count value)Returns: void (outputs to console and may exit process)
Example:
viz.fibonacci('10');
// Outputs visualization to console
maxDisplayWidthMaximum width for asterisk visualization (default: 60).
Type: Number
curveCharCharacter used for visualization curve (default: '*').
Type: String
The tool validates all inputs and provides clear error messages:
| Input | Result |
|---|---|
| No input | Shows usage instructions |
| Non-numeric (e.g., "abc") | Error: Input must be a number |
| Negative number (e.g., "-5") | Error: Must be positive integer |
| Zero | Error: Must be positive integer |
| Decimal (e.g., "5.5") | Converted to integer (5) |
| Large number (> 50) | Warning but processes |
# Small sequence
$ fibonacci 3
F(0) = 0
F(1) = 1 ************************************************************
F(2) = 1 ************************************************************
# Medium sequence
$ fibonacci 10
[Output shows first 10 Fibonacci numbers with visualization]
# Edge case: single number
$ fibonacci 1
F(0) = 0
# No input
$ fibonacci
Usage: node visualizer.js <count>
Example: node visualizer.js 10
# Invalid input
$ fibonacci abc
Error: Input must be a number
# Negative number
$ fibonacci -5
Error: Input must be a positive integer (greater than 0)
The implementation uses an iterative algorithm for optimal performance:
Fibonacci sequence definition:
Run the test suite:
npm test
The test suite includes:
Total: 21 tests, 100% passing
The implementation follows the IIFE (Immediately Invoked Function Expression) pattern with prototype-based design:
visualizer.js)MIT
Contributions are welcome! Please follow these guidelines:
npm test)For issues, questions, or suggestions, please open an issue on GitHub.
Jason Sie
FAQs
terminal visualization
We found that @siener/visualizer 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
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.