mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-09 20:46:13 +00:00
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.
46 lines
1.8 KiB
JSON
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`."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|