feat: implement RFC-20 Phase 1 variable CRUD operations
Add a complete variable system for json-cas that provides mutable named bindings to immutable CAS nodes. Features: - ULID-based variable identifiers (26-char Crockford Base32) - Hierarchical scope validation (must end with /) - Schema validation on update (prevents type mismatches) - SQLite persistence (~/.uncaged/json-cas/variables.db) - CLI commands: var create, get, update, delete Implementation: - Core types in variable.ts (Variable, VariableId) - VariableStore class with SQLite backend - Custom error types (VariableNotFoundError, SchemaMismatchError, etc.) - Comprehensive unit tests (16 tests) - CLI integration tests (12 tests) - All outputs use JSON format Test coverage: - Variable creation with scope validation - CRUD operations (create, read, update, delete) - Schema consistency enforcement - Error handling for all edge cases - Full lifecycle integration tests All tests pass (158 total), build clean, lint clean. Fixes #21 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -9,7 +9,8 @@
|
||||
"@changesets/changelog-github": "^0.7.0",
|
||||
"@changesets/cli": "^2.31.0",
|
||||
"bun-types": "^1.3.14",
|
||||
"typescript": "^5.8.0"
|
||||
"typescript": "^5.8.0",
|
||||
"ulidx": "^2.4.1"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc --build packages/json-cas packages/json-cas-fs",
|
||||
|
||||
Reference in New Issue
Block a user