A static developer tool for vCon standards - similar to JWT.io for OAUTH/JOSE. This tool allows developers to decode, inspect, and validate vCon (Virtual Conversation) data structures with support for unsigned, JWS signed, and JWE encrypted formats.
- π Decode & Inspect: Parse and visualize vCon data structures with interactive inspector view
- β Real-time Validation: Status indicator shows vCon format validation
- π Tabbed Interface: Inspector and Timeline views for different data perspectives
- β‘ Interactive UI: Collapsible sections and clickable elements for better navigation
- π Client-Side Only: All processing happens in your browser - your data never leaves your device
- π± Responsive Design: Works on desktop and mobile devices
- π Zero Dependencies: Pure vanilla JavaScript for fast performance and reliability
# Clone the repository
git clone https://github.com/quartzjer/vcon-info.git
cd vcon-info
# Install dependencies for testing (optional)
bun install
# Start development server
bun run serve
# or use any static file server:
# python3 -m http.server 8080 --directory docs/
# npx serve docs/
# Open http://localhost:8080 in your browser
- Modern Web Browser: Chrome, Firefox, Safari, or Edge
- Bun: For running the development server and tests (or any static file server)
- Git: For version control
- Start Development:
bun run serve
to serve thedocs/
directory - Make Changes: Edit files in the
docs/
directory - Refresh Browser: Changes are reflected immediately on page refresh
- Test: Run
bun test
for integration tests or manual testing in browser - Deploy: Push changes to main branch for automatic GitHub Pages deployment
vcon-info/
βββ .github/
β βββ workflows/
β βββ deploy.yml # GitHub Actions deployment workflow
βββ docs/ # Production site files (served by GitHub Pages)
β βββ index.html # Main HTML structure and content
β βββ scripts.js # Application JavaScript logic
β βββ style.css # Custom CSS styles
β βββ CNAME # GitHub Pages domain configuration
βββ tests/ # Test suite
β βββ integration/
β β βββ app-integration.test.js # Puppeteer integration tests
β βββ setup/
β βββ test-helpers.js # Test utilities
βββ package.json # Project dependencies and scripts
βββ serve.js # Bun development server
βββ CLAUDE.md # Development guidelines for AI assistants
βββ README.md # This file
- Frontend: Pure vanilla JavaScript (single-file application)
- Styling: Custom CSS with responsive design
- Testing: Bun test runner with Puppeteer for browser automation
- Development: Bun for development server and package management
- Deployment: GitHub Pages with GitHub Actions
- Dependencies: Zero runtime dependencies (Puppeteer for testing only)
Single JavaScript file containing all application functionality:
Key Features:
- Tab Management: Switch between Inspector and Timeline tabs
- Collapsible UI: Expandable/collapsible sections for better navigation
- Input Handling: Basic input change detection with validation stubs
- Sample Data: Built-in sample vCon data for testing
- State Objects: Simple state management for testing compatibility
Main Functions:
parseVcon(input)
: Basic JSON parsing with error handlingupdateInspector(vcon)
: Placeholder for inspector updates (stub)updateValidationStatus(isValid, message)
: Validation status updates (stub)updateTimeline(vcon)
: Timeline visualization updates (stub)
Global Objects:
vconApp
: Main application object withloadSample()
methodstateManager
: Basic state management for testing compatibility
The project includes comprehensive integration testing using Bun and Puppeteer.
# Install test dependencies
bun install
# Run all tests
bun test
# Run tests with coverage
bun test:ci
# Run tests in watch mode
bun test:watch
- Page Load: Verifies main page loads with required elements
- Input Validation: Tests basic validation and error handling
- Tab Navigation: Ensures tab switching works correctly
- Inspector Tree: Validates tree structure and interactivity
- Sample Data: Tests sample data loading functionality
- Error Handling: Ensures graceful error handling
- Screenshot Testing: Generates visual snapshots for regression testing
tests/integration/app-integration.test.js
: Main integration test suitetests/setup/test-helpers.js
: Test utilities and helperstests/snapshot.png
: Generated screenshot for visual testing
The project automatically deploys to GitHub Pages on push to main branch.
Workflow:
- Trigger: Push to main branch
- Deploy:
docs/
directory deployed directly to GitHub Pages - No Build: Static files deployed as-is
# Serve locally
bun run serve
# Or use any static file server
python3 -m http.server 8080 --directory docs/
npx serve docs/
- Fork the repository on GitHub
- Clone your fork locally
- Install dependencies:
bun install
- Create a feature branch:
git checkout -b feature/your-feature-name
- Start development server:
bun run serve
- Make changes to files in
docs/
directory - Test your changes:
bun test
- Commit and push your changes
- Create a pull request
- JavaScript: Use vanilla JavaScript with clear, readable functions
- HTML: Semantic HTML5 with accessibility considerations
- CSS: Custom CSS with responsive design principles
- Testing: Add integration tests for new functionality
- Documentation: Update README.md and CLAUDE.md for significant changes
- Update
docs/index.html
with new HTML structure - Add styling in
docs/style.css
- Add JavaScript functionality in
docs/scripts.js
- Add integration tests in
tests/integration/
- Update validation logic in
parseVcon()
function - Add new UI elements for additional vCon properties
- Update sample data in
vconApp.loadSample()
- Add tests for new functionality
MIT License - see LICENSE file for details
- vCon Specification: IETF vCon Working Group
- JWT.io: JWT.io - Inspiration for this tool
- Bun: Bun.sh - JavaScript runtime and package manager
- Puppeteer: Puppeteer - Browser automation for testing