@hyperframes/core 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +2 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/types.d.ts +115 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +41 -0
- package/dist/registry/types.js.map +1 -0
- package/package.json +9 -2
- package/schemas/registry-item.json +141 -0
- package/schemas/registry.json +45 -0
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,6 @@ export type { GSAPTimelineLike, CreateGSAPFrameAdapterOptions } from "./adapters
|
|
|
23
23
|
export { createGSAPFrameAdapter } from "./adapters/gsap";
|
|
24
24
|
export { fitTextFontSize } from "./text/index.js";
|
|
25
25
|
export type { FitTextOptions, FitTextResult } from "./text/index.js";
|
|
26
|
+
export type { ItemType, FileType, FileTarget, RegistryItemDimensions, RegistryItemPreview, RegistryItem, ExampleItem, BlockItem, ComponentItem, RegistryManifestEntry, RegistryManifest, } from "./registry/index.js";
|
|
27
|
+
export { ITEM_TYPES, FILE_TYPES, ITEM_TYPE_DIRS, isExampleItem, isBlockItem, isComponentItem, } from "./registry/index.js";
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,4 +16,5 @@ export { MEDIA_VISUAL_STYLE_PROPERTIES, copyMediaVisualStyles, quantizeTimeToFra
|
|
|
16
16
|
export { createGSAPFrameAdapter } from "./adapters/gsap";
|
|
17
17
|
// Text measurement
|
|
18
18
|
export { fitTextFontSize } from "./text/index.js";
|
|
19
|
+
export { ITEM_TYPES, FILE_TYPES, ITEM_TYPE_DIRS, isExampleItem, isBlockItem, isComponentItem, } from "./registry/index.js";
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAC;AASnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,iBAAiB;AACjB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,GAE9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAC;AASnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,iBAAiB;AACjB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,GAE9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBlD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ItemType, FileType, FileTarget, RegistryItemDimensions, RegistryItemPreview, RegistryItem, ExampleItem, BlockItem, ComponentItem, RegistryManifestEntry, RegistryManifest, } from "./types.js";
|
|
2
|
+
export { ITEM_TYPES, FILE_TYPES, ITEM_TYPE_DIRS, isExampleItem, isBlockItem, isComponentItem, } from "./types.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/** Top-level classification for a registry item. */
|
|
2
|
+
export type ItemType = "hyperframes:example" | "hyperframes:block" | "hyperframes:component";
|
|
3
|
+
/** File-level classification, drives installer behavior. */
|
|
4
|
+
export type FileType = "hyperframes:composition" | "hyperframes:asset" | "hyperframes:snippet" | "hyperframes:style" | "hyperframes:timeline";
|
|
5
|
+
/** A single file to install as part of a registry item. */
|
|
6
|
+
export interface FileTarget {
|
|
7
|
+
/** Path to the source file, relative to the item's `registry-item.json`. */
|
|
8
|
+
path: string;
|
|
9
|
+
/** Destination path in the user's project, relative to the project root. */
|
|
10
|
+
target: string;
|
|
11
|
+
/** File type — controls how the installer treats this file. */
|
|
12
|
+
type: FileType;
|
|
13
|
+
}
|
|
14
|
+
export interface RegistryItemDimensions {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
export interface RegistryItemPreview {
|
|
19
|
+
/** Path or URL to the preview video (looping mp4). */
|
|
20
|
+
video?: string;
|
|
21
|
+
/** Path or URL to the preview poster image. */
|
|
22
|
+
poster?: string;
|
|
23
|
+
}
|
|
24
|
+
/** Fields common to every registry item, regardless of type. */
|
|
25
|
+
interface RegistryItemBase {
|
|
26
|
+
/** JSON Schema URL — `https://hyperframes.heygen.com/schema/registry-item.json`. */
|
|
27
|
+
$schema?: string;
|
|
28
|
+
/** Item name in kebab-case, unique within a registry. */
|
|
29
|
+
name: string;
|
|
30
|
+
/** Short human-readable title. */
|
|
31
|
+
title: string;
|
|
32
|
+
/** One-line description. */
|
|
33
|
+
description: string;
|
|
34
|
+
/** Filter tags (e.g. `["social", "portrait", "card"]`). */
|
|
35
|
+
tags?: string[];
|
|
36
|
+
/** Item author / maintainer. */
|
|
37
|
+
author?: string;
|
|
38
|
+
/** SPDX license identifier. */
|
|
39
|
+
license?: string;
|
|
40
|
+
/** Minimum `hyperframes` CLI version required to install this item (semver). */
|
|
41
|
+
minCliVersion?: string;
|
|
42
|
+
/** If set, the item is deprecated; the value is the reason or migration note. */
|
|
43
|
+
deprecated?: string;
|
|
44
|
+
/** Names of other registry items this item depends on. */
|
|
45
|
+
registryDependencies?: string[];
|
|
46
|
+
/** Files to install. Must be non-empty. */
|
|
47
|
+
files: FileTarget[];
|
|
48
|
+
/** Optional preview media. */
|
|
49
|
+
preview?: RegistryItemPreview;
|
|
50
|
+
/** Related skill slug (e.g. `hyperframes-captions`) — shown in docs. */
|
|
51
|
+
relatedSkill?: string;
|
|
52
|
+
}
|
|
53
|
+
/** Full-project example — scaffolded by `hyperframes init --example <name>`. */
|
|
54
|
+
export interface ExampleItem extends RegistryItemBase {
|
|
55
|
+
type: "hyperframes:example";
|
|
56
|
+
/** Canvas dimensions (required for examples). */
|
|
57
|
+
dimensions: RegistryItemDimensions;
|
|
58
|
+
/** Duration in seconds (required for examples). */
|
|
59
|
+
duration: number;
|
|
60
|
+
}
|
|
61
|
+
/** Sub-composition block — installed by `hyperframes add <name>`. */
|
|
62
|
+
export interface BlockItem extends RegistryItemBase {
|
|
63
|
+
type: "hyperframes:block";
|
|
64
|
+
/** Canvas dimensions (required for blocks — they are standalone compositions). */
|
|
65
|
+
dimensions: RegistryItemDimensions;
|
|
66
|
+
/** Duration in seconds (required for blocks). */
|
|
67
|
+
duration: number;
|
|
68
|
+
}
|
|
69
|
+
/** Effect / snippet — merged into an existing composition. */
|
|
70
|
+
export interface ComponentItem extends RegistryItemBase {
|
|
71
|
+
type: "hyperframes:component";
|
|
72
|
+
/** Components have no intrinsic dimensions — they inherit from the host composition. */
|
|
73
|
+
dimensions?: never;
|
|
74
|
+
/** Components have no intrinsic duration — they inherit from the host composition. */
|
|
75
|
+
duration?: never;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A registry item — the unit of distribution. Stored on disk as
|
|
79
|
+
* `registry/<examples|blocks|components>/<name>/registry-item.json`.
|
|
80
|
+
*/
|
|
81
|
+
export type RegistryItem = ExampleItem | BlockItem | ComponentItem;
|
|
82
|
+
/** Shorthand reference used in the top-level `registry.json` items array. */
|
|
83
|
+
export interface RegistryManifestEntry {
|
|
84
|
+
name: string;
|
|
85
|
+
type: ItemType;
|
|
86
|
+
}
|
|
87
|
+
/** The top-level `registry.json` manifest. */
|
|
88
|
+
export interface RegistryManifest {
|
|
89
|
+
/** JSON Schema URL — `https://hyperframes.heygen.com/schema/registry.json`. */
|
|
90
|
+
$schema?: string;
|
|
91
|
+
/** Registry name (e.g. `hyperframes`). */
|
|
92
|
+
name: string;
|
|
93
|
+
/** Registry homepage URL. */
|
|
94
|
+
homepage: string;
|
|
95
|
+
/** Items in this registry. */
|
|
96
|
+
items: RegistryManifestEntry[];
|
|
97
|
+
}
|
|
98
|
+
export declare const ITEM_TYPES: readonly ["hyperframes:example", "hyperframes:block", "hyperframes:component"];
|
|
99
|
+
export declare const FILE_TYPES: readonly ["hyperframes:composition", "hyperframes:asset", "hyperframes:snippet", "hyperframes:style", "hyperframes:timeline"];
|
|
100
|
+
/**
|
|
101
|
+
* Directory segment where each item type lives under a registry root — both
|
|
102
|
+
* on disk (`registry/examples/…`) and in URL construction
|
|
103
|
+
* (`<baseUrl>/examples/<name>/registry-item.json`). Shared so CLIs, docs
|
|
104
|
+
* tooling, and codegen scripts all agree.
|
|
105
|
+
*/
|
|
106
|
+
export declare const ITEM_TYPE_DIRS: {
|
|
107
|
+
readonly "hyperframes:example": "examples";
|
|
108
|
+
readonly "hyperframes:block": "blocks";
|
|
109
|
+
readonly "hyperframes:component": "components";
|
|
110
|
+
};
|
|
111
|
+
export declare function isExampleItem(item: RegistryItem): item is ExampleItem;
|
|
112
|
+
export declare function isBlockItem(item: RegistryItem): item is BlockItem;
|
|
113
|
+
export declare function isComponentItem(item: RegistryItem): item is ComponentItem;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// The `enum` arrays in `packages/core/schemas/registry*.json` must match
|
|
2
|
+
// `ITEM_TYPES` / `FILE_TYPES` below — `types.test.ts` is the drift guard.
|
|
3
|
+
// ── Constants (kept in sync with JSON Schema enums) ─────────────────────────
|
|
4
|
+
export const ITEM_TYPES = [
|
|
5
|
+
"hyperframes:example",
|
|
6
|
+
"hyperframes:block",
|
|
7
|
+
"hyperframes:component",
|
|
8
|
+
];
|
|
9
|
+
export const FILE_TYPES = [
|
|
10
|
+
"hyperframes:composition",
|
|
11
|
+
"hyperframes:asset",
|
|
12
|
+
"hyperframes:snippet",
|
|
13
|
+
"hyperframes:style",
|
|
14
|
+
"hyperframes:timeline",
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* Directory segment where each item type lives under a registry root — both
|
|
18
|
+
* on disk (`registry/examples/…`) and in URL construction
|
|
19
|
+
* (`<baseUrl>/examples/<name>/registry-item.json`). Shared so CLIs, docs
|
|
20
|
+
* tooling, and codegen scripts all agree.
|
|
21
|
+
*/
|
|
22
|
+
export const ITEM_TYPE_DIRS = {
|
|
23
|
+
"hyperframes:example": "examples",
|
|
24
|
+
"hyperframes:block": "blocks",
|
|
25
|
+
"hyperframes:component": "components",
|
|
26
|
+
};
|
|
27
|
+
const _itemTypesExhaustive = true;
|
|
28
|
+
const _fileTypesExhaustive = true;
|
|
29
|
+
void _itemTypesExhaustive;
|
|
30
|
+
void _fileTypesExhaustive;
|
|
31
|
+
// ── Type guards ─────────────────────────────────────────────────────────────
|
|
32
|
+
export function isExampleItem(item) {
|
|
33
|
+
return item.type === "hyperframes:example";
|
|
34
|
+
}
|
|
35
|
+
export function isBlockItem(item) {
|
|
36
|
+
return item.type === "hyperframes:block";
|
|
37
|
+
}
|
|
38
|
+
export function isComponentItem(item) {
|
|
39
|
+
return item.type === "hyperframes:component";
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAoH1E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qBAAqB;IACrB,mBAAmB;IACnB,uBAAuB;CACe,CAAC;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,yBAAyB;IACzB,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;CACgB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,qBAAqB,EAAE,UAAU;IACjC,mBAAmB,EAAE,QAAQ;IAC7B,uBAAuB,EAAE,YAAY;CACM,CAAC;AAS9C,MAAM,oBAAoB,GAA+B,IAAI,CAAC;AAC9D,MAAM,oBAAoB,GAA+B,IAAI,CAAC;AAC9D,KAAK,oBAAoB,CAAC;AAC1B,KAAK,oBAAoB,CAAC;AAE1B,+EAA+E;AAE/E,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,OAAO,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,OAAO,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"dist",
|
|
12
12
|
"docs",
|
|
13
|
+
"schemas",
|
|
13
14
|
"README.md"
|
|
14
15
|
],
|
|
15
16
|
"type": "module",
|
|
@@ -36,7 +37,13 @@
|
|
|
36
37
|
"./text": {
|
|
37
38
|
"import": "./dist/text/index.js",
|
|
38
39
|
"types": "./dist/text/index.d.ts"
|
|
39
|
-
}
|
|
40
|
+
},
|
|
41
|
+
"./registry": {
|
|
42
|
+
"import": "./dist/registry/index.js",
|
|
43
|
+
"types": "./dist/registry/index.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./schemas/registry.json": "./schemas/registry.json",
|
|
46
|
+
"./schemas/registry-item.json": "./schemas/registry-item.json"
|
|
40
47
|
},
|
|
41
48
|
"publishConfig": {
|
|
42
49
|
"access": "public"
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://hyperframes.heygen.com/schema/registry-item.json",
|
|
4
|
+
"title": "Hyperframes Registry Item",
|
|
5
|
+
"description": "Manifest for a single distributable item (example, block, or component).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "type", "title", "description", "files"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"format": "uri"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$",
|
|
16
|
+
"description": "Item name in kebab-case, must start and end with alphanumeric."
|
|
17
|
+
},
|
|
18
|
+
"type": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["hyperframes:example", "hyperframes:block", "hyperframes:component"]
|
|
21
|
+
},
|
|
22
|
+
"title": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1
|
|
25
|
+
},
|
|
26
|
+
"description": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"tags": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": { "type": "string", "minLength": 1 }
|
|
33
|
+
},
|
|
34
|
+
"author": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 1
|
|
37
|
+
},
|
|
38
|
+
"license": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1,
|
|
41
|
+
"description": "SPDX license identifier (e.g. \"Apache-2.0\", \"MIT\")."
|
|
42
|
+
},
|
|
43
|
+
"minCliVersion": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$",
|
|
46
|
+
"description": "Minimum `hyperframes` CLI version required to install this item."
|
|
47
|
+
},
|
|
48
|
+
"deprecated": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"minLength": 1,
|
|
51
|
+
"description": "If set, the item is deprecated; the value is the reason or migration note."
|
|
52
|
+
},
|
|
53
|
+
"dimensions": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"required": ["width", "height"],
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"properties": {
|
|
58
|
+
"width": { "type": "integer", "minimum": 1 },
|
|
59
|
+
"height": { "type": "integer", "minimum": 1 }
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"duration": {
|
|
63
|
+
"type": "number",
|
|
64
|
+
"exclusiveMinimum": 0,
|
|
65
|
+
"description": "Duration in seconds. Must be > 0."
|
|
66
|
+
},
|
|
67
|
+
"registryDependencies": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"files": {
|
|
75
|
+
"type": "array",
|
|
76
|
+
"minItems": 1,
|
|
77
|
+
"items": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"required": ["path", "target", "type"],
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"properties": {
|
|
82
|
+
"path": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 1,
|
|
85
|
+
"description": "Source path, relative to registry-item.json."
|
|
86
|
+
},
|
|
87
|
+
"target": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"minLength": 1,
|
|
90
|
+
"description": "Destination path in the user's project, relative to project root. Must not traverse outside the project (no `..` segments, no absolute paths).",
|
|
91
|
+
"not": {
|
|
92
|
+
"anyOf": [
|
|
93
|
+
{ "pattern": "(^|[/\\\\])\\.\\.([/\\\\]|$)" },
|
|
94
|
+
{ "pattern": "^[/\\\\]" },
|
|
95
|
+
{ "pattern": "^[A-Za-z]:[/\\\\]" }
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"type": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"enum": [
|
|
102
|
+
"hyperframes:composition",
|
|
103
|
+
"hyperframes:asset",
|
|
104
|
+
"hyperframes:snippet",
|
|
105
|
+
"hyperframes:style",
|
|
106
|
+
"hyperframes:timeline"
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"preview": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"additionalProperties": false,
|
|
115
|
+
"properties": {
|
|
116
|
+
"video": { "type": "string" },
|
|
117
|
+
"poster": { "type": "string" }
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"relatedSkill": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"minLength": 1
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"allOf": [
|
|
126
|
+
{
|
|
127
|
+
"if": {
|
|
128
|
+
"required": ["type"],
|
|
129
|
+
"properties": { "type": { "const": "hyperframes:component" } }
|
|
130
|
+
},
|
|
131
|
+
"then": {
|
|
132
|
+
"not": {
|
|
133
|
+
"anyOf": [{ "required": ["dimensions"] }, { "required": ["duration"] }]
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"else": {
|
|
137
|
+
"required": ["dimensions", "duration"]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://hyperframes.heygen.com/schema/registry.json",
|
|
4
|
+
"title": "Hyperframes Registry Manifest",
|
|
5
|
+
"description": "Top-level manifest describing all items in a Hyperframes registry.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "homepage", "items"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"format": "uri"
|
|
13
|
+
},
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1,
|
|
17
|
+
"description": "Registry name (e.g. \"hyperframes\")."
|
|
18
|
+
},
|
|
19
|
+
"homepage": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"format": "uri",
|
|
22
|
+
"description": "Registry homepage URL."
|
|
23
|
+
},
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"description": "Items in this registry. Each entry is a shorthand reference; the full item manifest lives at <type-dir>/<name>/registry-item.json.",
|
|
27
|
+
"items": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"required": ["name", "type"],
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"properties": {
|
|
32
|
+
"name": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$",
|
|
35
|
+
"description": "Item name in kebab-case, must start and end with alphanumeric."
|
|
36
|
+
},
|
|
37
|
+
"type": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"enum": ["hyperframes:example", "hyperframes:block", "hyperframes:component"]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|