Files
hyperframes/docs/schema/hyperframes.json
T
Miguel Ángel b0071311ed docs: serve hyperframes.json / registry JSON schemas (#304)
The three /schema/*.json URLs baked into every Hyperframes project as
\$schema references were all 404ing on the live docs site — blocking
editor autocomplete and validation for hyperframes.json, registry.json,
and registry-item.json.

Adds docs/schema/ so Mintlify serves the three expected URLs:
- /schema/hyperframes.json       (new — authored from ProjectConfig)
- /schema/registry.json          (mirrored from packages/core/schemas/)
- /schema/registry-item.json     (mirrored from packages/core/schemas/)

The registry schemas stay authoritative in packages/core/schemas/ where
they're npm-exported for @hyperframes/core consumers. scripts/sync-schemas.ts
mirrors them into docs/schema/ and a new --check mode fails the Docs
workflow if the two drift, so the npm copy and the docs copy can't
diverge silently.

Validated against the factory-series-c-video config + a default config
generated by hyperframes init; negative cases (missing registry,
extra top-level keys, empty required strings) reject as expected.
2026-04-17 17:26:22 +02:00

46 lines
1.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://hyperframes.heygen.com/schema/hyperframes.json",
"title": "Hyperframes Project Config",
"description": "Per-project configuration for a Hyperframes project (hyperframes.json). Tells `hyperframes add` which registry to pull items from and where to drop them in the project tree. Created by `hyperframes init`; users may edit it to point at custom registries or reshape their project layout.",
"type": "object",
"required": ["registry", "paths"],
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"format": "uri",
"description": "JSON Schema URL — https://hyperframes.heygen.com/schema/hyperframes.json."
},
"registry": {
"type": "string",
"format": "uri",
"minLength": 1,
"description": "Base URL of the registry to pull items from. Point at the official Hyperframes registry or a custom one."
},
"paths": {
"type": "object",
"description": "Target paths for each item type, relative to the project root.",
"required": ["blocks", "components", "assets"],
"additionalProperties": false,
"properties": {
"blocks": {
"type": "string",
"minLength": 1,
"description": "Where `hyperframes:block` items land. Defaults to `compositions`."
},
"components": {
"type": "string",
"minLength": 1,
"description": "Where `hyperframes:component` items land. Defaults to `compositions/components`."
},
"assets": {
"type": "string",
"minLength": 1,
"description": "Where asset files (images, fonts, videos) land. Defaults to `assets`."
}
}
}
}
}