Native Shell
Native Shell:AI 生成的 UI,在你的應用中原生呈現,涵蓋每個平台。iOS、Android、macOS、Windows 與 Linux 上的應用、GPUI 應用與網頁在執行時載入已簽名、沙箱隔離的 TSX 模組並繪製 th
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
RESO Tools - a toolkit for working with RESO servers and clients
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Open-source toolkit for building and testing RESO-compliant OData servers. This repository holds the reference server, the certification test runner (reso-cert), an MCP server for AI agents and the shared libraries for OData parsing, metadata processing and validation. Seven of the eight packages publish to npm, so any project can consume them without the monorepo. The MCP server is not published and runs from this repository. The desktop certification app (which bundles a reference server and a local test-data UI) is built separately and distributed here as a downloadable release.
| Package | Description | Tests |
|---|---|---|
reso-common/ | Universal (browser + Node) RESO metadata model and projections – the shared ResoMetadata shape, pure helpers and EDMX generator (zero runtime dependencies) | 41 |
reso-metadata-utils/ | RESO OData metadata processing – CSDL parse + validate (CSDL/XSD), EDMX → metadata-report serialization, live metadata fetching (the deps-requiring side of the metadata split) | 160 |
reso-client/ | OData 4.01 client SDK – URI builder, CRUD helpers, CSDL metadata parsing, OAuth2 Client Credentials | 211 |
odata-expression-parser/ | Zero-dependency $filter and $expand expression parser | 180 |
reso-validation/ | Isomorphic field and business-rule validation for RESO Data Dictionary records | 98 |
reso-reference-server/ | Metadata-driven OData reference server (PostgreSQL, MongoDB, SQLite) | 295 |
reso-certification/ | RESO Certification CLI + SDK – Add/Edit (RCP-010), EntityEvent (RCP-027), Web API Core and Data Dictionary, plus per-step utilities for metadata, schema, replication and variations (docs) | 2241 |
reso-mcp-server/ | MCP server – exposes OData query, write, validation, certification tools for AI agents (guide) | 114 |
Build everything from a fresh clone with a single command:
npm run bootstrap
This installs dependencies and builds all 8 packages in the correct order. Takes about 30 seconds on a warm cache.
cd reso-reference-server
docker compose up -d
docker compose --profile seed up seed
# Server: http://localhost:8080
A cross-platform desktop app (macOS, Windows, Linux) runs the full certification suite – Data Dictionary, Web API Core, Add/Edit, EntityEvent – against any OData server, with a bundled reference server and browser UI for local test data. It is built separately, consuming the public packages above from npm, and published here as a downloadable build.
| Platform | Download | Roll back one version | Notes |
|---|---|---|---|
| macOS (Apple Silicon) | .dmg · .zip | .dmg | Signed and notarized |
| Windows (x64) | .exe | .exe | Authenticode signed |
| Linux | .AppImage · .deb | .AppImage · .deb | chmod +x the AppImage before first run |
Every link above is a permalink. The asset names carry no version, so they keep resolving to the newest release without the README going stale. The roll back column is the version immediately before it, carried forward into each release so a bad update has a one-click way out. For anything further back, see all releases.
The app updates itself, so a manual download is only needed for a first install or a deliberate rollback.
The repo is an npm workspace. npm install at the root installs every package's dependencies once and links the inter-package deps locally; npm run build builds all packages in dependency order.
npm install # install + link all workspaces
npm run build # build all (topological order)
npm run build -w reso-certification # or build just one
Each package still builds and tests independently (cd reso-certification && npm run build) – the workspace linking resolves its inter-package deps from the local packages. The public packages publish to npm with ^ version ranges, so a consumer installs them from the registry without the monorepo.
# Lint (Biome)
npm run lint
# Typecheck every package
npm run typecheck
# Run all tests
npm test
# Run tests for a single package
npm run test:common
npm run test:metadata-utils
npm run test:client
npm run test:validation
npm run test:filter-parser
npm run test:server
npm run test:certification
npm run test:mcp
# Lint + typecheck + tests – run before every commit
npm run precommit
The root package.json provides convenience scripts for linting, typechecking and testing. Each package manages its own dependencies and build.
Test any RESO OData server from the command line:
# Add/Edit (the reference server, so the tool writes the payloads; elsewhere give yours with --payloads)
reso-cert add-edit --url http://localhost:8080 --auth-token TOKEN --auto-payloads --actions create --create-formats minimal
# EntityEvent
reso-cert entity-event --url http://localhost:8080 --auth-token TOKEN
# Web API Core
reso-cert core --url http://localhost:8080 --auth-token TOKEN
# Data Dictionary
reso-cert dd --url http://localhost:8080 --auth-token TOKEN
Or run compliance suites against the reference server via Docker:
cd reso-reference-server
docker compose up -d --build --wait db server
# Data Dictionary 2.0 – the version the reference server serves
docker compose --profile compliance-dd up --build --exit-code-from compliance-dd
# Web API Core 2.1.0
docker compose --profile compliance-core up --build --exit-code-from compliance-core
# Add/Edit RCP-010
docker compose --profile compliance-addedit up --build --exit-code-from compliance-addedit
# EntityEvent RCP-027
docker compose --profile compliance-entity-event up --build --exit-code-from compliance-entity-event
# MCP server smoke test
docker compose --profile compliance-mcp up --build --exit-code-from compliance-mcp
See reso-certification/ for full documentation.
See LICENSE.