Package Exports
- @memizy/oqse
Readme
OQSE SDK
Official TypeScript SDK for the Open Quiz & Study Exchange ecosystem, published as @memizy/oqse.
🚀 OQSE Web Validator - Online tool for easy testing and debugging of OQSE JSON structures in the browser.
This repository contains:
- The human-readable specifications split into four standalone documents:
- Runtime validators built with Zod.
- Manually authored TypeScript types for developer ergonomics.
- Auto-generated JSON Schemas distributed with the package.
Package
- Name: @memizy/oqse
- Purpose: validate, parse, and type OQSE, OQSEM (Application Manifest), and OQSEP (User Progress) data.
Schemas
The auto-generated JSON Schemas are published with this repository and are available at the following URLs:
- Core OQSE Schema: https://cdn.jsdelivr.net/gh/memizy/oqse-specification@main/schemas/oqse-v0.1.json
- Manifest Schema: https://cdn.jsdelivr.net/gh/memizy/oqse-specification@main/schemas/oqse-manifest-v0.1.json
- Progress Schema: https://cdn.jsdelivr.net/gh/memizy/oqse-specification@main/schemas/oqse-progress-v0.1.json
- Header Schema: https://cdn.jsdelivr.net/gh/memizy/oqse-specification@main/schemas/oqse-header-v0.1.json
Architecture & Single Source of Truth
The human-readable Markdown specifications are the absolute single source of truth for the OQSE ecosystem.
The Specifications The four Markdown files (oqse.md, oqse-manifest.md, oqse-progress.md, and oqse-header.md) constitute the normative documentation for concepts, rules, and semantics.
Zod Schemas Runtime validators (
*Validation.ts) are implementations. They MUST match the rules defined in the Markdown specs. They are not the source of truth; if they disagree with the text spec, the code is considered a bug.TypeScript Types TypeScript types (
oqse.ts,manifest.ts,progress.ts) manually mirror the Zod schemas for better Developer Experience. They must also strictly adhere to the Markdown specifications.JSON schemas are strictly auto-generated using npm run generate:schemas and contributors MUST NOT edit them manually. If validation behavior changes, update the Zod schemas first, then regenerate.
Development
Install dependencies:
npm installBuild and regenerate schemas:
npm run buildGenerate only JSON schemas:
npm run generate:schemasRun tests:
npm testContributing Rule
Never edit files in schemas/ by hand. Always regenerate via npm run generate:schemas.