Skip to content

Releases: dwekat/tooner

v0.1.4

19 Nov 23:45
v0.1.4
b9b2b83

Choose a tag to compare

tooner

0.1.4

Patch Changes

  • Update repository URLs to dwekat organization

0.1.3

Patch Changes

  • c030721: Chore: Update dependencies and migrate to ESLint v9 flat config.

    • Updated @types/node, @typescript-eslint/*, @vitest/coverage-v8, commander, eslint, eslint-config-prettier, vitest to latest versions
    • Migrated from .eslintrc.cjs to eslint.config.js (ESLint v9 flat config format)
  • 42cc922: Security: Fix glob CLI command injection vulnerability (CVE-2025-64756).

    • Added pnpm override to force glob@>=10.5.0
    • Upgraded transitive dependency glob 10.4.5 → 13.0.0
  • 6afc99e: Fix: Resolve 5 additional ReDoS vulnerabilities in decoder.

    • Removed [ \t]* before (.*)$ in regex patterns to prevent catastrophic backtracking
    • Added .trimStart() calls to handle whitespace in JavaScript instead
  • 320a772: Security & Bug Fixes - 100% Test Pass Rate Achieved

    Security Fixes

    • Fixed 5 ReDoS (Regular Expression Denial of Service) vulnerabilities in decoder
    • Replaced vulnerable \s* patterns with [ \t]* to prevent exponential backtracking on malicious input

    Bug Fixes

    1. Array length validation: Fixed parseArray to correctly track consumed lines when delegating to parseListFormat
    2. Path expansion conflicts: Non-dotted keys now properly check for conflicts during path expansion in strict mode
    3. Array overflow detection: Added validation to detect extra list items beyond declared array count
    4. Missing colon detection: Fixed nested context tracking to properly throw errors for missing colons in key-value pairs

    Test Coverage

    • All 363/363 official TOON specification tests now passing (100%)
    • Up from 358/363 (98.6%)

    Details

    • Added depth parameter throughout parsing functions to track nested contexts
    • Improved error messages with accurate line numbers
    • Enhanced validation for strict mode compliance

v0.1.3

19 Nov 21:54
v0.1.3
d458ff0

Choose a tag to compare

tooner

0.1.3

Patch Changes

  • c030721: Chore: Update dependencies and migrate to ESLint v9 flat config.

    • Updated @types/node, @typescript-eslint/*, @vitest/coverage-v8, commander, eslint, eslint-config-prettier, vitest to latest versions
    • Migrated from .eslintrc.cjs to eslint.config.js (ESLint v9 flat config format)
  • 42cc922: Security: Fix glob CLI command injection vulnerability (CVE-2025-64756).

    • Added pnpm override to force glob@>=10.5.0
    • Upgraded transitive dependency glob 10.4.5 → 13.0.0
  • 6afc99e: Fix: Resolve 5 additional ReDoS vulnerabilities in decoder.

    • Removed [ \t]* before (.*)$ in regex patterns to prevent catastrophic backtracking
    • Added .trimStart() calls to handle whitespace in JavaScript instead
  • 320a772: Security & Bug Fixes - 100% Test Pass Rate Achieved

    Security Fixes

    • Fixed 5 ReDoS (Regular Expression Denial of Service) vulnerabilities in decoder
    • Replaced vulnerable \s* patterns with [ \t]* to prevent exponential backtracking on malicious input

    Bug Fixes

    1. Array length validation: Fixed parseArray to correctly track consumed lines when delegating to parseListFormat
    2. Path expansion conflicts: Non-dotted keys now properly check for conflicts during path expansion in strict mode
    3. Array overflow detection: Added validation to detect extra list items beyond declared array count
    4. Missing colon detection: Fixed nested context tracking to properly throw errors for missing colons in key-value pairs

    Test Coverage

    • All 363/363 official TOON specification tests now passing (100%)
    • Up from 358/363 (98.6%)

    Details

    • Added depth parameter throughout parsing functions to track nested contexts
    • Improved error messages with accurate line numbers
    • Enhanced validation for strict mode compliance

v0.1.2

19 Nov 21:06
v0.1.2
1fd3496

Choose a tag to compare

Changes

  • Dependencies: Updated all dependencies to latest versions
    • Updated devDependencies (TypeScript, ESLint, Prettier, tsup, etc.)
    • Updated runtime dependencies (yaml@2.8.1)

Package Info

  • Size: 927 KB unpacked, 179.5 KB tarball
  • Tests: 358/363 passing (98.6%)

v0.1.1 - Critical Bug Fix: Decoder Now Works!

14 Nov 21:45
v0.1.1
408f6b8

Choose a tag to compare

🚨 Critical Bug Fix

The Issue

v0.1.0 had a critical bug where the decode() function was completely broken! It was importing from a placeholder in encoder.ts that threw errors. The actual working decoder in decoder.ts was never being used.

What's Fixed

Decoder now works! All entry points properly import from decoder.ts
Minified builds for better performance (~15 KB per bundle)
Externalized dependencies (yaml, @iarna/toml, commander)
Source maps included for production debugging

Package Size

  • Unpacked: 927 KB (was 453 KB but broken)
    • Code: 124 KB minified (was 107 KB unminified encoder-only)
    • Source maps: 760 KB (for production debugging)
  • Compressed: 179.5 KB

Test Coverage

358/363 tests passing (98.6%)

Breaking Changes

None - this is a bug fix that makes the decoder actually work as advertised.

Recommendation

All v0.1.0 users should upgrade immediately as the decoder was non-functional in that release.

npm install tooner@latest

v0.1.0 - Complete Decoder Implementation

14 Nov 20:33
v0.1.0
c938fae

Choose a tag to compare

🎉 First Production Release

Highlights

  • Complete TOON Encoder & Decoder with 358/363 tests passing (98.6% coverage)
  • Full support for all TOON formats: inline arrays, list format, tabular arrays
  • Path expansion with expandPaths: 'safe' option
  • Strict mode with indentation validation
  • Support for custom indent sizes and all delimiters (comma, tab, pipe)
  • Comprehensive escape sequence handling
  • Tree-shakable exports for minimal bundle size

Features

✅ Encode/Decode TOON format
✅ Convert from/to JSON, YAML, TOML
✅ CLI tool for command-line usage
✅ TypeScript with full type definitions
✅ ESM + CJS dual package support

Known Limitations

  • 5 advanced edge cases (expansion conflicts, nested arrays validation) planned for v0.2.0

Installation

npm install tooner

See the README for full documentation and examples.

v0.1.0-alpha.1

14 Nov 19:31
v0.1.0-alpha.1
990b9df

Choose a tag to compare

v0.1.0-alpha.1 Pre-release
Pre-release

Minor Update

  • Move Buy Me a Coffee button to top of README for better visibility
  • Updated README now shows on npm package page

No code changes from v0.1.0-alpha.0.

v0.1.0-alpha.0 - Initial Alpha Release

14 Nov 19:27
9f71ef0

Choose a tag to compare

Pre-release

🚀 First Alpha Release

tooner - Token-efficient serialization for LLMs

This is an experimental alpha release with basic functionality. The encoder and decoder are still under active development.

⚠️ Alpha Warning

This release is NOT production-ready:

  • ✅ Basic TOON encoder works for simple cases
  • ❌ Encoder incomplete (217/363 tests failing)
  • ❌ Decoder not implemented (throws error)
  • ❌ Missing TOON spec features (list format, tabular arrays, delimiters, key folding)

📦 Installation

npm install tooner@alpha
# or
pnpm add tooner@alpha

✨ What Works

Tree-Shakable Package Structure:

  • tooner - Core encoder/decoder
  • tooner/json - JSON ↔ TOON converter
  • tooner/yaml - YAML ↔ TOON converter
  • tooner/toml - TOML ↔ TOON converter

CLI Tool:

npx tooner@alpha encode input.json -o output.toon
npx tooner@alpha encode input.yaml -f yaml -o output.toon

Basic Encoding:

import { encode } from 'tooner';

const data = {
  name: 'Alice',
  age: 30,
  tags: ['reading', 'gaming']
};

const toon = encode(data);
// Output:
// name: Alice
// age: 30
// tags[2]: reading,gaming

🎯 Architecture Highlights

  • Dual Package: ESM + CJS support
  • Tree-Shakable: Only bundle what you import
  • TypeScript: Fully typed with strict mode
  • Zero Core Dependencies: Core has no runtime deps
  • Format Dependencies: YAML/TOML only bundled when imported

📚 Resources

🔜 Coming Soon

To reach stable v1.0.0, we need to complete:

  • Complete TOON encoder implementation (all spec features)
  • Implement TOON decoder
  • Pass all 363 official test fixtures
  • Performance benchmarks
  • API documentation

🤝 Contributing

Contributions welcome! The project follows the official TOON specification.


Note: This alpha release is for early testing and feedback. Use at your own risk in production environments.