Skip to content

kafk3d/crapify

Repository files navigation

crapify.me

A toolkit of oddly specific CLI utilities for developers and vibecoders

Installation

npm install -g crapifyme

# or use it without installation:
npx crapifyme

Quick Start

# Base64 encoding (data URL + CSS formats)
crapifyme base64 image.png

# Unicode character detection and cleanup
crapifyme chars --fix src/

# Comment cleanup with preservation rules
crapifyme comments src/

# Console log cleanup
crapifyme logs src/

# Import optimization
crapifyme imports src/

# SVG optimization
crapifyme svg assets/

# Dependency analysis
crapifyme deps

How It Works

Smart CLI tools with rule-based preservation systems, AST analysis, and multi-pass optimization. Each tool uses professional-grade libraries and includes safety features like version control detection and dry-run modes.

Configuration & Options

Global Options

Option Description Default
--dry-run Preview changes without file modification false
--force Bypass version control requirement false
--verbose Detailed processing information false
--quiet Suppress all output except errors false
--json Machine-readable JSON output false

Base64 Tool

Image encoding and decoding with multiple output formats

Option Description Default
--css-only Output only CSS background-image format false
--data-url-only Output only data URL format false
--raw Output raw base64 string without data URL wrapper false
--size-info Show detailed size analysis (original, base64, overhead) false
-o, --output <path> Output file path for decode command auto-generated

Supported formats: PNG, JPG, JPEG, SVG, GIF, WebP, BMP, ICO, TIFF, AVIF

Chars Tool

Unicode-to-ASCII transliteration and character detection

Option Description Default
--fix Automatically fix detected characters with ASCII replacements false
--strict Enable strict mode (flag all non-ASCII characters) false
--interactive Prompt for each replacement (requires --fix) false
--severity <level> Minimum severity to report (low/medium/high/critical) low
--show-context <number> Number of characters to show around each issue 40
--ignore-strings Ignore characters inside string literals false
--ignore-comments Ignore characters inside comments false
-e, --extensions <ext> File extensions to process js,ts,jsx,tsx,vue,py
-x, --exclude <patterns> Glob exclusion patterns none

Comments Tool

Rule-based comment preservation and cleanup

Option Description Default
-k, --keep <patterns> Custom preservation patterns (comma-separated) none
-e, --extensions <ext> Target file extensions js,ts,jsx,tsx,vue,svelte,astro,html,css,scss,less,sass
-x, --exclude <patterns> Glob exclusion patterns none
--no-preserve-framework Disable framework directive preservation false
--no-preserve-development Disable development keyword preservation false
--no-preserve-tooling Disable tooling directive preservation false
--no-preserve-documentation Disable JSDoc preservation false

Preserved patterns: TODO, FIXME, HACK, NOTE, @ts-ignore, eslint-disable, JSDoc, framework directives

Logs Tool

Console log cleanup with selective preservation

Option Description Default
-k, --keep <patterns> Custom preservation patterns none
-e, --extensions <ext> Target file extensions js,ts,jsx,tsx,vue,svelte,astro
-x, --exclude <patterns> Glob exclusion patterns none
--no-preserve-debug Remove console.debug statements false
--no-preserve-error Remove console.error statements false
--no-preserve-warn Remove console.warn statements false

Removed by default: console.log(), console.info()
Preserved by default: console.error(), console.warn(), console.debug(), console.assert(), console.trace(), console.time()

Imports Tool

AST-based import optimization and organization

Option Description Default
--sort / --no-sort Sort imports alphabetically within groups true
--group / --no-group Group imports by type (external → internal → relative) true
--remove-unused / --no-remove-unused Remove unused imports via AST analysis true
--merge-duplicates / --no-merge-duplicates Merge duplicate imports from same source true
--style <type> Import path style (absolute/relative/mixed) mixed
--alias <mapping> Path alias configuration (e.g., "@/:./src/") auto-detect
--framework <name> Framework optimizations (nextjs/vite/svelte/vue/react/angular/nuxt) auto-detect
--multiline-threshold <n> Threshold for multiline imports 3
-e, --extensions <ext> File extensions to process js,ts,jsx,tsx,vue,svelte
-x, --exclude <patterns> Glob exclusion patterns none
--no-preserve-comments Remove comments from import statements false

SVG Tool

SVGO-powered SVG optimization with presets and advanced options

Core Options

Option Description Default
--preset <preset> Optimization preset (minimal/balanced/aggressive) balanced
--config <path> Path to custom SVGO configuration file none
--plugins <plugins> Comma-separated list of SVGO plugins to enable preset-default
--precision <number> Floating point precision for coordinates 2
--multipass Run optimization multiple times for better results false

File Processing

Option Description Default
--glob <pattern> Glob pattern for files (e.g., "**/*.svg") none
-e, --extensions <ext> File extensions to process svg
-x, --exclude <patterns> Comma-separated exclusion patterns none
--parallel Process files in parallel true
--max-concurrency <number> Maximum number of concurrent operations 4

Output Modes

Option Description Default
--in-place Overwrite original files (with confirmation) true
--copy Create optimized copies with .optimized.svg suffix false
--backup Create .original.svg backup before optimizing false
--stdout Output optimized SVG to console (single files only) false
--output-dir <dir> Save optimized files to different directory none

Advanced Features

Option Description Default
--keep-ids Preserve ID attributes false
--keep-titles Preserve title and desc elements for accessibility false
--watch Watch mode for continuous optimization during development false
--size-info / --no-size-info Show detailed size analysis and compression ratios true
--report <format> Export report (json, csv) none
--validate-input Validate SVG structure before optimization true
--validate-output Validate SVG structure after optimization true

Deps Tool

Comprehensive dependency analysis for security, size, and maintenance

Analysis Types

Option Description Default
--security-only Only perform security vulnerability analysis false
--size-only Only perform bundle size analysis false
--outdated-only Only check for outdated dependencies false
--unused-only Only check for unused dependencies false
--duplicates-only Only check for duplicate dependencies false

Scope & Dependencies

Option Description Default
--include-gzip / --no-include-gzip Include gzipped size information true
--include-dev / --no-include-dev Include development dependencies in analysis true
--include-peer Include peer dependencies in analysis false
--include-optional Include optional dependencies in analysis false
--workspaces Analyze workspaces if available false

Output & Performance

Option Description Default
--pm <manager> Package manager to use (npm/yarn/pnpm/auto) auto
--timeout <ms> Request timeout in milliseconds 120000
--output <format> Output format (table/json/tree/summary) table
--no-security Skip security vulnerability checks false
--no-bundle-size Skip bundle size analysis false

Usage Examples

Production Optimization

# Prepare assets for deployment
crapifyme base64 logo.png --css-only
crapifyme svg --preset=aggressive assets/
crapifyme chars --fix --strict src/
crapifyme comments --no-preserve-development src/
crapifyme logs src/
crapifyme imports src/
crapifyme deps --security-only --output=json

Development Workflow

# Quick SVG optimization from clipboard
crapifyme svg '<svg>...</svg>'

# Watch mode for continuous optimization
crapifyme svg --watch src/icons/

# Interactive character fixing
crapifyme chars --fix --interactive src/

# Import organization with framework settings
crapifyme imports --framework=nextjs --alias="@/*:./src/*" src/

Security & Maintenance

# Security audit
crapifyme deps --security-only

# Bundle size analysis
crapifyme deps --size-only --include-gzip

# Find unused dependencies
crapifyme deps --unused-only

# Legacy cleanup
crapifyme chars --fix legacy/
crapifyme comments --keep "@author,@copyright" legacy/

CI/CD Integration

# Pipeline-friendly commands
crapifyme chars --severity=high --json --quiet src/
crapifyme deps --security-only --output=json --quiet
crapifyme svg --report=json --quiet build/assets/

License

MIT