Status: โ
Production Ready
Packages: omniscript-parser@1.1.0, omniscript-cli@1.1.0,
omniscript-converters@1.1.0
This release brings enhanced formatting capabilities, security improvements, and better developer experience while maintaining 100% backward compatibility with v1.0.
- โ
Strikethrough -
~~text~~syntax for strikethrough formatting - โ
Unicode Escapes -
\uXXXXand\xXXsupport in strings - โ Round-trip support for all unicode characters
- โ Position Tracking - Errors now show precise line:column (e.g., "Error at 5:12")
- โ String Validation - Detect unterminated strings with clear messages
- โ Better Debugging - Enhanced error context for faster problem resolution
- โ Extended HTML - Ordered lists, blockquotes, code blocks, images, links
- โ Enhanced Markdown - Full formatting preservation in exports
- โ Working Converters - PDF/DOCX/PPTX/XLSX rendering fully functional
- โ XSS Prevention - All HTML output properly escaped
- โ Input Validation - Enhanced parser safety checks
- 88 tests passing (31 new tests for v1.1 features)
- 100% backward compatible with v1.0
- Zero breaking changes
npm install omniscript-parser@1.1.0
npm install omniscript-cli@1.1.0
npm install omniscript-converters@1.1.0No code changes needed - drop-in replacement for v1.0!
Status: โ
Production Ready
Packages: omniscript-parser@1.0.0, omniscript-converters@1.0.0,
omniscript-cli@1.0.0
OmniScript Format v1.0 is a major milestone representing months of development, testing, and refinement. This release marks the official production release with all core features implemented, tested, and ready for use.
Create interactive charts with multiple types and styling options.
@chart {
type: "bar";
title: "Sales by Quarter";
data: [
{ label: "Q1"; values: [100, 120, 90]; },
{ label: "Q2"; values: [150, 140, 160]; },
{ label: "Q3"; values: [200, 180, 220]; }
];
options: {
xAxis: "Quarter";
yAxis: "Revenue ($K)";
legend: true;
colors: ["#3B82F6", "#10B981", "#F59E0B"];
};
}
Supported Chart Types:
- Bar charts
- Line charts
- Pie charts
- Scatter plots
- Area charts
Rendering:
- PDF: Chart.js with full interactivity
- DOCX: Data tables with labels
- PPTX: Native PowerPoint charts
Create flowcharts, sequence diagrams, Gantt charts, and mind maps.
@diagram {
type: "flowchart";
engine: "mermaid";
title: "User Authentication Flow";
code: "
graph TD
A[User Login] --> B{Valid?}
B -->|Yes| C[Dashboard]
B -->|No| D[Error]
D --> A
";
}
Supported Diagram Types:
- Flowcharts
- Sequence diagrams
- Gantt charts
- Mind maps
Rendering Engines:
- Mermaid (default)
- Graphviz
Display code with line numbers and syntax highlighting.
@code {
language: "typescript";
caption: "Express Server Example";
lineNumbers: true;
highlight: [3, 4, 5];
code: "
import express from 'express';
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(3000);
";
}
Features:
- 50+ language support (via Prism.js)
- Line numbers
- Line highlighting
- Optional captions
- Proper indentation preservation
- Chart types validated (defaults to 'bar' if invalid)
- Diagram engines validated (defaults to 'mermaid' if invalid)
- Code languages validated
- Graceful error handling
const doc = parse(osfString);
const serialized = serialize(doc);
// serialized === osfString (preserves structure)import {
ChartBlock,
DiagramBlock,
OSFCodeBlock,
ChartDataSeries,
ChartOptions,
} from 'omniscript-parser';- โ Chart.js integration for charts
- โ Mermaid rendering for diagrams
- โ Prism.js syntax highlighting for code
- โ XSS protection with proper escaping
- โ Unique chart IDs (no collisions)
- โ Chart data as formatted tables
- โ Diagram code as preformatted text
- โ Code blocks with monospace font
- โ Improved formatting
- โ Native PowerPoint charts
- โ Diagram slides with code display
- โ Code slides with formatting
- โ Better layout options
All new block types work seamlessly with existing CLI commands:
# Parse v1.0 documents
osf parse document.osf
# Export with charts and diagrams
osf export document.osf --format pdf
# Validate v1.0 blocks
osf lint document.osf- Syntax highlighting for @chart, @diagram, @code blocks
- IntelliSense for v1.0 properties
- Snippets for new block types
- Hover documentation
- โ Zero-dependency parser
- โ 7 block types (@meta, @doc, @slide, @sheet, @chart, @diagram, @code)
- โ 4 export formats (PDF, DOCX, PPTX, XLSX)
- โ 10+ professional themes
- โ Full TypeScript type safety
- โ Backward compatibility with v0.5
- โ 5 chart types
- โ 4 diagram types
- โ 2 diagram engines
- โ 50+ code languages
- โ Line highlighting
- โ Custom styling options
- โ 152 tests (100% passing)
- โ Code review complete (all P0/P1 issues fixed)
- โ Security hardened
- โ Performance optimized
- โ Production-ready quality
v1.0 is fully backward compatible with v0.5. All existing OSF documents continue to work without modification.
None. All v0.5 features remain supported.
| Package | Tests | Pass | Coverage |
|---|---|---|---|
| Parser | 26 | โ 26 | 100% |
| Converters (v0.5) | 46 | โ 46 | 100% |
| Converters (v1.0) | 27 | โ 27 | 100% |
| CLI | 29 | โ 29 | 100% |
| Total | 128 | โ 128 | 100% |
- โ Parser โ Converters integration
- โ Parser โ CLI integration
- โ End-to-end document workflow
- โ Multi-format export validation
- โ v1.0 feature rendering
Total Verifications: 152/152 (100% success rate)
P0-1: XSS Protection in PDF Converter
- Issue: escapeHtml used DOM APIs in Node.js environment
- Fix: Implemented string-based escaping
- Impact: Security vulnerability eliminated
- Status: โ Fixed and tested
P1-1: Chart Canvas ID Collisions
- Issue: Random IDs could theoretically collide
- Fix: Sequential counter-based IDs
- Impact: No rendering failures
- Status: โ Fixed and tested
P1-2: Unsafe Chart Type Casting
- Issue: No validation of chart types from input
- Fix: Explicit validation with safe defaults
- Impact: Invalid input handled gracefully
- Status: โ Fixed and tested
P1-3: Missing Diagram Engine Validation
- Issue: No validation of diagram engines
- Fix: Explicit validation with safe defaults
- Impact: Invalid engines handled safely
- Status: โ Fixed and tested
View Full Code Quality Report โ
Size: ~30KB minified
Dependencies: 0 runtime, 5 dev
Exports: parse, serialize, all TypeScript types
Size: ~250KB (with dependencies)
Dependencies: 6 runtime (puppeteer, docx, pptxgenjs, exceljs, etc.)
Exports: PDFConverter, DOCXConverter, PPTXConverter, XLSXConverter
Size: ~15KB (without deps)
Dependencies: 4 runtime (commander, chalk, omniscript-parser,
omniscript-converters)
Commands: parse, lint, render, export, format
Good news: No migration needed! v1.0 is fully backward compatible.
All existing v0.5 documents work without changes. You can start using v1.0 features immediately:
// Existing v0.5 blocks still work
@doc {
# My Document
Content here
}
// New v1.0 blocks can be added
@chart {
type: "bar";
title: "New Chart";
data: [...];
}
While not required, consider:
- Update
@metaversion: Addversion: "1.0";to metadata - Use new blocks: Leverage @chart, @diagram, @code for richer content
- Update dependencies: Upgrade to latest package versions
npm update omniscript-parser omniscript-converters omniscript-cli- v1.0 Specification - Complete spec
- Chart Block Guide - Chart usage
- Diagram Block Guide - Diagram usage
- Code Block Guide - Code usage
- Parser README - v1.0 API
- Converter README - v1.0 rendering
- CLI README - Updated examples
16 professional examples covering all use cases:
- Business reports
- Technical documentation
- Classroom materials
- Project proposals
- And more!
These issues do not block v1.0 release but are tracked for v1.0.1:
- Chart Color Array Bounds - No validation if colors array is shorter than data series
- Code Language Validation - Language names not validated against Prism support
- Sheet Data Optional Chaining - Some edge cases not handled with optional chaining
- CDN Dependencies - Chart.js and Mermaid loaded from CDN (consider bundling)
- @table block - Markdown-style tables
- @include directive - Import external files
- @variables - Template variables
- @loops - Repeat blocks dynamically
- Conditional rendering - Show/hide based on conditions
- Custom themes - User-defined theme system
- Plugin system - Extensible architecture
- More export formats - HTML, Markdown, LaTeX
Thanks to:
- All contributors and early adopters
- The TypeScript community
- Open-source library authors (Puppeteer, PptxGenJS, etc.)
- Testing and feedback from beta users
- Documentation: https://omniscript.dev/docs
- GitHub Issues: Report bugs and request features
- GitHub Discussions: Ask questions and share ideas
- Examples: Learn from 16 professional examples
Found a bug? Report it on GitHub
- Search existing issues first
- Include OSF code sample
- Include error messages
- Specify package version
MIT License - Free for personal and commercial use.
Thank you for using OmniScript Format! We're excited to see what you build with v1.0.
Happy documenting! ๐
OmniScript Format v1.0
โญ Star on GitHub โข ๐ Read the Docs โข ๐งช Try the Playground
Released with โค๏ธ by the OmniScript team