packages/ribltcontains the core TypeScript RIBLT library.packages/orpcontains the Operation Reconciliation Protocol interfaces and validators.examples/orp-democontains the runnable ORP demonstration app.- Package-local
dist/folders are generated build output and should not be edited by hand. - Root config files provide shared workspace defaults; each package owns its local build and test config.
pnpm installinstalls dependencies.pnpm buildbuilds the workspace packages and the ORP demo example.pnpm testruns the Vitest suites in workspace packages.pnpm lintrunstsc --noEmitacross packages and the example app.pnpm examplestarts the built ORP demo fromexamples/orp-demo.
- Use 2-space indentation, double quotes, and semicolons (match existing files).
- Keep modules small and focused; prefer named exports from each package
src/index.ts. - Name tests as
*.test.tsunder each package'stest/directory. - TypeScript is in
strictmode; avoidanyunless justified.
- Test framework: Vitest (Node environment, globals enabled).
- Place new tests under the relevant package
test/directory and follow thetest/**/*.test.tspattern. - Run
pnpm testbefore opening a PR; add coverage where behavior changes.
- Git history is minimal and does not show a formal commit convention.
- Use short, imperative commit subjects (e.g., "Add RIBLT encoder").
- PRs should include a brief description, testing notes (
pnpm testoutput), and any relevant context or links to issues.
ribltis the low-level reconciliation engine;orpis a higher-level document and operation reconciliation protocol.- Keep the demo in
examples/orp-demothin and focused on showing the protocol flow.