frameyard 0.2.0 → 0.4.0
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/CHANGELOG.md +102 -0
- package/GLOSSARY.md +58 -2
- package/README.md +185 -95
- package/dist/bindings.d.ts +42 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +144 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cli.js +37 -14
- package/dist/cli.js.map +1 -1
- package/dist/contracts.d.ts +73 -47
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +14 -159
- package/dist/contracts.js.map +1 -1
- package/dist/errors.d.ts +15 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +8 -0
- package/dist/errors.js.map +1 -1
- package/dist/html/index.d.ts +5 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +3 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/parse.d.ts +30 -0
- package/dist/html/parse.d.ts.map +1 -0
- package/dist/html/parse.js +80 -0
- package/dist/html/parse.js.map +1 -0
- package/dist/html/validate.d.ts +14 -0
- package/dist/html/validate.d.ts.map +1 -0
- package/dist/html/validate.js +931 -0
- package/dist/html/validate.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/preview/main.d.ts +12 -3
- package/dist/preview/main.d.ts.map +1 -1
- package/dist/preview/main.js +208 -85
- package/dist/preview/main.js.map +1 -1
- package/dist/project.d.ts +2 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +4 -0
- package/dist/project.js.map +1 -1
- package/dist/renderer/audio.d.ts +5 -1
- package/dist/renderer/audio.d.ts.map +1 -1
- package/dist/renderer/audio.js +4 -0
- package/dist/renderer/audio.js.map +1 -1
- package/dist/renderer/browser.d.ts +12 -1
- package/dist/renderer/browser.d.ts.map +1 -1
- package/dist/renderer/browser.js +69 -11
- package/dist/renderer/browser.js.map +1 -1
- package/dist/renderer/index.d.ts +30 -5
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +204 -26
- package/dist/renderer/index.js.map +1 -1
- package/dist/runtime/bindings.d.ts +11 -0
- package/dist/runtime/bindings.d.ts.map +1 -0
- package/dist/runtime/bindings.js +164 -0
- package/dist/runtime/bindings.js.map +1 -0
- package/dist/runtime/diagnostics.d.ts +4 -0
- package/dist/runtime/diagnostics.d.ts.map +1 -0
- package/dist/runtime/diagnostics.js +107 -0
- package/dist/runtime/diagnostics.js.map +1 -0
- package/dist/runtime/host.d.ts +12 -0
- package/dist/runtime/host.d.ts.map +1 -0
- package/dist/runtime/host.js +701 -0
- package/dist/runtime/host.js.map +1 -0
- package/dist/runtime/index.d.ts +0 -26
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +0 -286
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/media.d.ts +16 -0
- package/dist/runtime/media.d.ts.map +1 -0
- package/dist/runtime/media.js +307 -0
- package/dist/runtime/media.js.map +1 -0
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +169 -78
- package/dist/scaffold.js.map +1 -1
- package/dist/server/composition-html.d.ts +20 -0
- package/dist/server/composition-html.d.ts.map +1 -0
- package/dist/server/composition-html.js +45 -0
- package/dist/server/composition-html.js.map +1 -0
- package/dist/server/preview-html.d.ts.map +1 -1
- package/dist/server/preview-html.js +19 -14
- package/dist/server/preview-html.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +94 -6
- package/dist/server/server.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/adr/0001-keep-composition-authoring-web-native.md +2 -0
- package/docs/adr/0003-render-browser-frames-offline.md +2 -0
- package/docs/adr/0005-keep-parallel-rendering-opt-in-and-frame-ordered.md +3 -0
- package/docs/adr/0006-seek-embedded-media-from-the-frame-clock.md +11 -0
- package/docs/adr/0007-make-html-documents-the-composition-unit.md +31 -0
- package/docs/migration-0.4.md +279 -0
- package/docs/v0.1-design.md +82 -57
- package/examples/demo/README.md +7 -3
- package/examples/demo/compositions/demo.controller.js +120 -0
- package/examples/demo/compositions/demo.html +253 -0
- package/examples/demo/video.config.js +1 -1
- package/package.json +9 -3
- package/skills/frameyard/README.md +4 -0
- package/skills/frameyard/SKILL.md +41 -11
- package/skills/frameyard/references/audio-assets.md +25 -14
- package/skills/frameyard/references/bindings.md +73 -0
- package/skills/frameyard/references/common-mistakes.md +59 -0
- package/skills/frameyard/references/controllers.md +126 -0
- package/skills/frameyard/references/deterministic-authoring.md +160 -41
- package/skills/frameyard/references/diagnostics.md +90 -0
- package/skills/frameyard/references/failure-recovery.md +38 -12
- package/skills/frameyard/references/json-results.md +43 -8
- package/skills/frameyard/references/subtitles-karaoke.md +10 -18
- package/examples/demo/compositions/demo.js +0 -206
package/dist/contracts.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type FrameyardErrorCode } from "./errors.js";
|
|
1
2
|
export type JsonPrimitive = string | number | boolean | null;
|
|
2
3
|
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
3
4
|
[key: string]: JsonValue;
|
|
@@ -44,63 +45,88 @@ export interface ResolvedTranscriptClip {
|
|
|
44
45
|
src: string;
|
|
45
46
|
words: boolean;
|
|
46
47
|
}
|
|
47
|
-
export
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
export type DiagnosticSeverity = "error" | "warning";
|
|
49
|
+
export interface CompositionDiagnosticDetails {
|
|
50
|
+
/** Project-relative source path. */
|
|
51
|
+
path?: string;
|
|
52
|
+
/** One-based source line. */
|
|
53
|
+
line?: number;
|
|
54
|
+
/** One-based source column. */
|
|
55
|
+
column?: number;
|
|
56
|
+
endLine?: number;
|
|
57
|
+
endColumn?: number;
|
|
58
|
+
element?: string;
|
|
59
|
+
attribute?: string;
|
|
60
|
+
value?: string;
|
|
61
|
+
suggestion?: string;
|
|
62
|
+
frame?: number;
|
|
63
|
+
controller?: {
|
|
64
|
+
kind: "inline" | "external";
|
|
65
|
+
line?: number;
|
|
66
|
+
column?: number;
|
|
67
|
+
};
|
|
50
68
|
}
|
|
51
|
-
export interface
|
|
52
|
-
|
|
53
|
-
|
|
69
|
+
export interface CompositionDiagnostic {
|
|
70
|
+
severity: DiagnosticSeverity;
|
|
71
|
+
code: FrameyardErrorCode;
|
|
72
|
+
message: string;
|
|
73
|
+
details?: CompositionDiagnosticDetails;
|
|
54
74
|
}
|
|
55
|
-
export interface
|
|
56
|
-
|
|
75
|
+
export interface ControllerDeclaration {
|
|
76
|
+
kind: "inline" | "external";
|
|
77
|
+
/** Project-relative path for external controllers. */
|
|
78
|
+
src?: string;
|
|
79
|
+
/** Inline source for inline controllers. */
|
|
80
|
+
source?: string;
|
|
81
|
+
/** One-based line of the controller block in the composition document. */
|
|
82
|
+
line?: number;
|
|
83
|
+
/** One-based column of the controller block in the composition document. */
|
|
84
|
+
column?: number;
|
|
57
85
|
}
|
|
58
|
-
export interface
|
|
59
|
-
|
|
60
|
-
defaultProps
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/** Releases resources after the last frame. */
|
|
66
|
-
dispose?(): void | Promise<void>;
|
|
67
|
-
/** Optional domain validation. Return an array of human-readable errors. */
|
|
68
|
-
validateProps?(props: Readonly<P>): void | string[];
|
|
69
|
-
/** Declarative audio timeline, or a function deriving one from props. */
|
|
70
|
-
audio?: AudioClip[] | ((context: AudioContext<P>) => AudioClip[]);
|
|
71
|
-
/** Transcript assets required by the composition, or a function deriving them from props. */
|
|
72
|
-
transcripts?: TranscriptClip[] | ((context: AudioContext<P>) => TranscriptClip[]);
|
|
86
|
+
export interface CompositionSourceInfo {
|
|
87
|
+
metadata: CompositionMetadata;
|
|
88
|
+
defaultProps: Readonly<Props>;
|
|
89
|
+
controller: ControllerDeclaration | null;
|
|
90
|
+
audioClips: readonly ResolvedAudioClip[];
|
|
91
|
+
embeddedAudioClips: readonly ResolvedAudioClip[];
|
|
92
|
+
transcriptClips: readonly ResolvedTranscriptClip[];
|
|
73
93
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
/** The browser host API exposed as window.__fy. */
|
|
95
|
+
export interface FrameyardHost {
|
|
96
|
+
readonly ready: Promise<void>;
|
|
97
|
+
readonly metadata: CompositionMetadata;
|
|
98
|
+
readonly defaultProps: Readonly<Props>;
|
|
99
|
+
readonly props: Readonly<Props>;
|
|
100
|
+
readonly controller: {
|
|
101
|
+
kind: "inline";
|
|
102
|
+
} | {
|
|
103
|
+
kind: "external";
|
|
104
|
+
src: string;
|
|
105
|
+
} | null;
|
|
106
|
+
readonly audioClips: readonly ResolvedAudioClip[];
|
|
107
|
+
readonly embeddedAudioClips: readonly ResolvedAudioClip[];
|
|
108
|
+
readonly transcriptClips: readonly ResolvedTranscriptClip[];
|
|
109
|
+
readonly diagnostics: readonly CompositionDiagnostic[];
|
|
110
|
+
readonly frame: number;
|
|
111
|
+
load(options?: {
|
|
112
|
+
props?: unknown;
|
|
113
|
+
}): Promise<void>;
|
|
114
|
+
seek(frame: number): void;
|
|
115
|
+
settle(): Promise<void>;
|
|
116
|
+
dispose(): Promise<void>;
|
|
82
117
|
}
|
|
83
|
-
declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
84
|
-
/**
|
|
85
|
-
* Validates and returns a composition definition. Composition modules can use
|
|
86
|
-
* this helper for early feedback, but plain exported objects are normalized by
|
|
87
|
-
* the runtime as well.
|
|
88
|
-
*/
|
|
89
|
-
export declare function defineComposition<P extends Props = Props>(definition: CompositionDefinition<P>): Composition<P>;
|
|
90
|
-
export declare function normalizeComposition(value: unknown): Composition;
|
|
118
|
+
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
91
119
|
/**
|
|
92
120
|
* Checks that a value survives a JSON round trip without losing information.
|
|
93
121
|
* Returns the same value for convenient inline use.
|
|
94
122
|
*/
|
|
95
123
|
export declare function assertJsonSerializable<T>(value: T, label?: string): T;
|
|
96
124
|
/**
|
|
97
|
-
* Merges a render's prop overrides over
|
|
98
|
-
*
|
|
125
|
+
* Merges a render's prop overrides over defaults, validates the result as JSON,
|
|
126
|
+
* and deep-freezes it. The HTML static validator and host use this before a
|
|
127
|
+
* controller's validateProps hook runs.
|
|
99
128
|
*/
|
|
100
|
-
export declare function
|
|
101
|
-
|
|
102
|
-
export declare function
|
|
103
|
-
/** Resolves and validates a composition's declarative transcript requirements. */
|
|
104
|
-
export declare function resolveTranscriptClips<P extends Props>(composition: Composition<P>, props: Readonly<P>): readonly ResolvedTranscriptClip[];
|
|
105
|
-
export { isPlainObject };
|
|
129
|
+
export declare function mergeProps<P extends Props>(defaults: P | undefined, overrides?: unknown): Readonly<P>;
|
|
130
|
+
export declare function normalizeAudioClip(value: unknown, index: number): ResolvedAudioClip;
|
|
131
|
+
export declare function normalizeTranscriptClip(value: unknown, index: number): ResolvedTranscriptClip;
|
|
106
132
|
//# sourceMappingURL=contracts.d.ts.map
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACnF,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,4BAA4B;IAC3C,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACzC,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,eAAe,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACpD;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnF,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM9E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAU,GAAG,CAAC,CAmEtE;AAgCD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAErG;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CA6CnF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAoB7F"}
|
package/dist/contracts.js
CHANGED
|
@@ -1,102 +1,11 @@
|
|
|
1
1
|
import { FrameyardError } from "./errors.js";
|
|
2
|
-
function
|
|
3
|
-
throw new FrameyardError("COMPOSITION_INVALID", message);
|
|
4
|
-
}
|
|
5
|
-
function isPlainObject(value) {
|
|
2
|
+
export function isPlainObject(value) {
|
|
6
3
|
if (typeof value !== "object" || value === null) {
|
|
7
4
|
return false;
|
|
8
5
|
}
|
|
9
6
|
const prototype = Object.getPrototypeOf(value);
|
|
10
7
|
return prototype === Object.prototype || prototype === null;
|
|
11
8
|
}
|
|
12
|
-
function isAsyncFunction(value) {
|
|
13
|
-
return typeof value === "function" && Object.prototype.toString.call(value) === "[object AsyncFunction]";
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Validates and returns a composition definition. Composition modules can use
|
|
17
|
-
* this helper for early feedback, but plain exported objects are normalized by
|
|
18
|
-
* the runtime as well.
|
|
19
|
-
*/
|
|
20
|
-
export function defineComposition(definition) {
|
|
21
|
-
return normalizeComposition(definition);
|
|
22
|
-
}
|
|
23
|
-
export function normalizeComposition(value) {
|
|
24
|
-
if (!isPlainObject(value)) {
|
|
25
|
-
invalid("A composition must be a plain object.");
|
|
26
|
-
}
|
|
27
|
-
const width = value.width;
|
|
28
|
-
const height = value.height;
|
|
29
|
-
const fps = value.fps;
|
|
30
|
-
const durationInFrames = value.durationInFrames;
|
|
31
|
-
if (typeof width !== "number" || !Number.isInteger(width) || width <= 0) {
|
|
32
|
-
invalid("Composition width must be a positive integer.");
|
|
33
|
-
}
|
|
34
|
-
if (typeof height !== "number" || !Number.isInteger(height) || height <= 0) {
|
|
35
|
-
invalid("Composition height must be a positive integer.");
|
|
36
|
-
}
|
|
37
|
-
if (typeof fps !== "number" || !Number.isFinite(fps) || fps <= 0) {
|
|
38
|
-
invalid("Composition fps must be a positive finite number.");
|
|
39
|
-
}
|
|
40
|
-
if (typeof durationInFrames !== "number" || !Number.isInteger(durationInFrames) || durationInFrames <= 0) {
|
|
41
|
-
invalid("Composition durationInFrames must be a positive integer.");
|
|
42
|
-
}
|
|
43
|
-
if (typeof value.mount !== "function") {
|
|
44
|
-
invalid("Composition mount must be a function.");
|
|
45
|
-
}
|
|
46
|
-
if (typeof value.update !== "function") {
|
|
47
|
-
invalid("Composition update must be a function.");
|
|
48
|
-
}
|
|
49
|
-
if (isAsyncFunction(value.update)) {
|
|
50
|
-
invalid("Composition update must be synchronous; finish asynchronous work in mount().");
|
|
51
|
-
}
|
|
52
|
-
if (value.dispose !== undefined && typeof value.dispose !== "function") {
|
|
53
|
-
invalid("Composition dispose must be a function when provided.");
|
|
54
|
-
}
|
|
55
|
-
if (value.validateProps !== undefined && typeof value.validateProps !== "function") {
|
|
56
|
-
invalid("Composition validateProps must be a function when provided.");
|
|
57
|
-
}
|
|
58
|
-
if (value.audio !== undefined && typeof value.audio !== "function" && !Array.isArray(value.audio)) {
|
|
59
|
-
invalid("Composition audio must be an array or a function returning an array.");
|
|
60
|
-
}
|
|
61
|
-
if (value.transcripts !== undefined && typeof value.transcripts !== "function" && !Array.isArray(value.transcripts)) {
|
|
62
|
-
invalid("Composition transcripts must be an array or a function returning an array.");
|
|
63
|
-
}
|
|
64
|
-
if (value.defaultProps !== undefined) {
|
|
65
|
-
if (!isPlainObject(value.defaultProps)) {
|
|
66
|
-
invalid("Composition defaultProps must be a plain object.");
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
assertJsonSerializable(value.defaultProps, "defaultProps");
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
invalid(`Composition defaultProps must be JSON-serializable: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
const composition = {
|
|
76
|
-
width,
|
|
77
|
-
height,
|
|
78
|
-
fps,
|
|
79
|
-
durationInFrames,
|
|
80
|
-
mount: value.mount,
|
|
81
|
-
update: value.update,
|
|
82
|
-
};
|
|
83
|
-
if (value.defaultProps !== undefined) {
|
|
84
|
-
composition.defaultProps = value.defaultProps;
|
|
85
|
-
}
|
|
86
|
-
if (value.dispose !== undefined) {
|
|
87
|
-
composition.dispose = value.dispose;
|
|
88
|
-
}
|
|
89
|
-
if (value.validateProps !== undefined) {
|
|
90
|
-
composition.validateProps = value.validateProps;
|
|
91
|
-
}
|
|
92
|
-
if (value.audio !== undefined) {
|
|
93
|
-
composition.audio = value.audio;
|
|
94
|
-
}
|
|
95
|
-
if (value.transcripts !== undefined) {
|
|
96
|
-
composition.transcripts = value.transcripts;
|
|
97
|
-
}
|
|
98
|
-
return Object.freeze(composition);
|
|
99
|
-
}
|
|
100
9
|
/**
|
|
101
10
|
* Checks that a value survives a JSON round trip without losing information.
|
|
102
11
|
* Returns the same value for convenient inline use.
|
|
@@ -169,42 +78,27 @@ function deepFreeze(value) {
|
|
|
169
78
|
}
|
|
170
79
|
return value;
|
|
171
80
|
}
|
|
172
|
-
|
|
173
|
-
* Merges a render's prop overrides over composition defaults, validates the
|
|
174
|
-
* result as JSON, runs the composition's optional validator, and deep-freezes it.
|
|
175
|
-
*/
|
|
176
|
-
export function resolveProps(composition, overrides) {
|
|
81
|
+
function mergePropsUnfrozen(defaults, overrides) {
|
|
177
82
|
if (overrides !== undefined && !isPlainObject(overrides)) {
|
|
178
83
|
throw new FrameyardError("PROPS_INVALID", "Props must be a plain JSON object.");
|
|
179
84
|
}
|
|
180
85
|
const merged = {
|
|
181
|
-
...
|
|
86
|
+
...defaults,
|
|
182
87
|
...overrides,
|
|
183
88
|
};
|
|
184
89
|
assertJsonSerializable(merged, "props");
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
if (errors !== undefined) {
|
|
196
|
-
if (!Array.isArray(errors) || errors.some((item) => typeof item !== "string")) {
|
|
197
|
-
throw new FrameyardError("PROPS_INVALID", "validateProps() must return void or an array of strings.");
|
|
198
|
-
}
|
|
199
|
-
if (errors.length > 0) {
|
|
200
|
-
throw new FrameyardError("PROPS_INVALID", `Invalid props: ${errors.join("; ")}`);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return deepFreeze(merged);
|
|
90
|
+
return merged;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Merges a render's prop overrides over defaults, validates the result as JSON,
|
|
94
|
+
* and deep-freezes it. The HTML static validator and host use this before a
|
|
95
|
+
* controller's validateProps hook runs.
|
|
96
|
+
*/
|
|
97
|
+
export function mergeProps(defaults, overrides) {
|
|
98
|
+
return deepFreeze(mergePropsUnfrozen(defaults, overrides));
|
|
205
99
|
}
|
|
206
100
|
const SCHEME = /^[a-zA-Z][a-zA-Z0-9+.-]*:/;
|
|
207
|
-
function normalizeAudioClip(value, index) {
|
|
101
|
+
export function normalizeAudioClip(value, index) {
|
|
208
102
|
if (!isPlainObject(value)) {
|
|
209
103
|
throw new FrameyardError("AUDIO_INVALID", `Audio clip ${index} must be a plain object.`);
|
|
210
104
|
}
|
|
@@ -239,26 +133,7 @@ function normalizeAudioClip(value, index) {
|
|
|
239
133
|
}
|
|
240
134
|
return Object.freeze(clip);
|
|
241
135
|
}
|
|
242
|
-
|
|
243
|
-
export function resolveAudioClips(composition, props) {
|
|
244
|
-
let clips = composition.audio;
|
|
245
|
-
if (typeof composition.audio === "function") {
|
|
246
|
-
try {
|
|
247
|
-
clips = composition.audio({ props });
|
|
248
|
-
}
|
|
249
|
-
catch (error) {
|
|
250
|
-
throw new FrameyardError("AUDIO_INVALID", `Could not resolve the audio timeline: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
if (clips === undefined) {
|
|
254
|
-
return Object.freeze([]);
|
|
255
|
-
}
|
|
256
|
-
if (!Array.isArray(clips)) {
|
|
257
|
-
throw new FrameyardError("AUDIO_INVALID", "Composition audio must resolve to an array of clips.");
|
|
258
|
-
}
|
|
259
|
-
return Object.freeze(clips.map((clip, index) => normalizeAudioClip(clip, index)));
|
|
260
|
-
}
|
|
261
|
-
function normalizeTranscriptClip(value, index) {
|
|
136
|
+
export function normalizeTranscriptClip(value, index) {
|
|
262
137
|
if (!isPlainObject(value)) {
|
|
263
138
|
throw new FrameyardError("TRANSCRIPT_INVALID", `Transcript ${index} must be a plain object.`);
|
|
264
139
|
}
|
|
@@ -274,24 +149,4 @@ function normalizeTranscriptClip(value, index) {
|
|
|
274
149
|
}
|
|
275
150
|
return Object.freeze({ src, words: words === true });
|
|
276
151
|
}
|
|
277
|
-
/** Resolves and validates a composition's declarative transcript requirements. */
|
|
278
|
-
export function resolveTranscriptClips(composition, props) {
|
|
279
|
-
let clips = composition.transcripts;
|
|
280
|
-
if (typeof composition.transcripts === "function") {
|
|
281
|
-
try {
|
|
282
|
-
clips = composition.transcripts({ props });
|
|
283
|
-
}
|
|
284
|
-
catch (error) {
|
|
285
|
-
throw new FrameyardError("TRANSCRIPT_INVALID", `Could not resolve transcript requirements: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
if (clips === undefined) {
|
|
289
|
-
return Object.freeze([]);
|
|
290
|
-
}
|
|
291
|
-
if (!Array.isArray(clips)) {
|
|
292
|
-
throw new FrameyardError("TRANSCRIPT_INVALID", "Composition transcripts must resolve to an array of assets.");
|
|
293
|
-
}
|
|
294
|
-
return Object.freeze(clips.map((clip, index) => normalizeTranscriptClip(clip, index)));
|
|
295
|
-
}
|
|
296
|
-
export { isPlainObject };
|
|
297
152
|
//# sourceMappingURL=contracts.js.map
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
export type FrameyardErrorCode = "USAGE" | "CONFIG_NOT_FOUND" | "CONFIG_INVALID" | "COMPOSITION_NOT_FOUND" | "COMPOSITION_INVALID" | "COMPOSITION_UPDATE_ASYNC" | "COMPOSITION_ERROR" | "PROPS_INVALID" | "FRAME_OUT_OF_RANGE" | "AUDIO_INVALID" | "ASSET_NOT_FOUND" | "OUTPUT_EXISTS" | "OUTPUT_FAILED" | "FFMPEG_FAILED" | "FFPROBE_FAILED" | "BROWSER_FAILED" | "RENDER_FAILED" | "EXECUTABLE_NOT_FOUND" | "TTS_FAILED" | "TRANSCRIBE_FAILED" | "TRANSCRIPT_INVALID" | "TRANSCRIPT_WORDS_UNAVAILABLE" | "MANIFEST_INVALID" | "CANCELLED" | "INTERNAL";
|
|
1
|
+
export type FrameyardErrorCode = "USAGE" | "CONFIG_NOT_FOUND" | "CONFIG_INVALID" | "COMPOSITION_NOT_FOUND" | "COMPOSITION_INVALID" | "COMPOSITION_UPDATE_ASYNC" | "COMPOSITION_ERROR" | "COMPOSITION_NOT_READY" | "COMPOSITION_DISPOSED" | "CONTROLLER_INVALID" | "BINDING_INVALID" | "BINDING_PATH_MISSING" | "BINDING_VALUE_INVALID" | "BINDING_REPEAT_INVALID" | "BINDING_REPEAT_NESTED" | "BINDING_TARGET_INVALID" | "ANIMATION_INVALID" | "ANIMATION_NOT_FOUND" | "ANIMATION_MULTIPLE" | "DETERMINISM_WARNING" | "SCRIPT_NOT_ALLOWED" | "EVENT_HANDLER_NOT_ALLOWED" | "URL_NOT_ALLOWED" | "ELEMENT_NOT_SUPPORTED" | "ELEMENT_UNKNOWN" | "CONTENT_OUTSIDE_ROOT" | "PROPS_INVALID" | "FRAME_OUT_OF_RANGE" | "AUDIO_INVALID" | "AUDIO_WARNING" | "MEDIA_INVALID" | "MEDIA_SEEK_FAILED" | "ASSET_NOT_FOUND" | "OUTPUT_EXISTS" | "OUTPUT_FAILED" | "FFMPEG_FAILED" | "FFPROBE_FAILED" | "BROWSER_FAILED" | "RENDER_FAILED" | "EXECUTABLE_NOT_FOUND" | "TTS_FAILED" | "TRANSCRIBE_FAILED" | "TRANSCRIPT_INVALID" | "TRANSCRIPT_WORDS_UNAVAILABLE" | "TRANSCRIPT_WARNING" | "MANIFEST_INVALID" | "CANCELLED" | "INTERNAL";
|
|
2
|
+
export interface FrameyardDiagnostic {
|
|
3
|
+
severity: "error" | "warning";
|
|
4
|
+
code: string;
|
|
5
|
+
message: string;
|
|
6
|
+
details?: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface FrameyardErrorOptions {
|
|
9
|
+
cause?: unknown;
|
|
10
|
+
details?: unknown;
|
|
11
|
+
diagnostics?: FrameyardDiagnostic[];
|
|
12
|
+
}
|
|
2
13
|
export declare class FrameyardError extends Error {
|
|
3
14
|
readonly code: FrameyardErrorCode;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
15
|
+
readonly details?: unknown;
|
|
16
|
+
readonly diagnostics?: FrameyardDiagnostic[];
|
|
17
|
+
constructor(code: FrameyardErrorCode, message: string, options?: FrameyardErrorOptions);
|
|
7
18
|
}
|
|
8
19
|
export declare function isFrameyardError(error: unknown): error is FrameyardError;
|
|
9
20
|
export declare function errorMessage(error: unknown): string;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,kBAAkB,GAClB,gBAAgB,GAChB,uBAAuB,GACvB,qBAAqB,GACrB,0BAA0B,GAC1B,mBAAmB,GACnB,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,sBAAsB,GACtB,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,8BAA8B,GAC9B,kBAAkB,GAClB,WAAW,GACX,UAAU,CAAC;AAEf,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,kBAAkB,GAClB,gBAAgB,GAChB,uBAAuB,GACvB,qBAAqB,GACrB,0BAA0B,GAC1B,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,oBAAoB,GACpB,iBAAiB,GACjB,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,wBAAwB,GACxB,mBAAmB,GACnB,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,oBAAoB,GACpB,2BAA2B,GAC3B,iBAAiB,GACjB,uBAAuB,GACvB,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,sBAAsB,GACtB,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,8BAA8B,GAC9B,oBAAoB,GACpB,kBAAkB,GAClB,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;gBAEjC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;CAWvF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKnD"}
|
package/dist/errors.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
export class FrameyardError extends Error {
|
|
2
2
|
code;
|
|
3
|
+
details;
|
|
4
|
+
diagnostics;
|
|
3
5
|
constructor(code, message, options) {
|
|
4
6
|
super(message, options);
|
|
5
7
|
this.name = "FrameyardError";
|
|
6
8
|
this.code = code;
|
|
9
|
+
if (options?.details !== undefined) {
|
|
10
|
+
this.details = options.details;
|
|
11
|
+
}
|
|
12
|
+
if (options?.diagnostics !== undefined) {
|
|
13
|
+
this.diagnostics = options.diagnostics;
|
|
14
|
+
}
|
|
7
15
|
}
|
|
8
16
|
}
|
|
9
17
|
export function isFrameyardError(error) {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AA+DA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAqB;IACzB,OAAO,CAAW;IAClB,WAAW,CAAyB;IAE7C,YAAY,IAAwB,EAAE,OAAe,EAAE,OAA+B;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACzC,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,KAAK,YAAY,cAAc,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { validateHtmlComposition } from "./validate.js";
|
|
2
|
+
export type { StaticValidationResult, ValidateHtmlCompositionOptions } from "./validate.js";
|
|
3
|
+
export { parseHtml } from "./parse.js";
|
|
4
|
+
export type { HtmlDocument, HtmlElement, HtmlNode, SourceLocation } from "./parse.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DefaultTreeAdapterTypes } from "parse5";
|
|
2
|
+
export type HtmlDocument = DefaultTreeAdapterTypes.Document;
|
|
3
|
+
export type HtmlElement = DefaultTreeAdapterTypes.Element;
|
|
4
|
+
export type HtmlTemplate = DefaultTreeAdapterTypes.Template;
|
|
5
|
+
export type HtmlNode = DefaultTreeAdapterTypes.Node;
|
|
6
|
+
export type HtmlParentNode = DefaultTreeAdapterTypes.ParentNode;
|
|
7
|
+
export type HtmlTextNode = DefaultTreeAdapterTypes.TextNode;
|
|
8
|
+
export type HtmlDocumentType = DefaultTreeAdapterTypes.DocumentType;
|
|
9
|
+
export interface SourceLocation {
|
|
10
|
+
startLine: number;
|
|
11
|
+
startCol: number;
|
|
12
|
+
endLine: number;
|
|
13
|
+
endCol: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function parseHtml(html: string): HtmlDocument;
|
|
16
|
+
export declare function isElement(node: HtmlNode): node is HtmlElement;
|
|
17
|
+
export declare function isTemplate(node: HtmlNode): node is HtmlTemplate;
|
|
18
|
+
export declare function isTextNode(node: HtmlNode): node is HtmlTextNode;
|
|
19
|
+
export declare function getAttribute(element: HtmlElement, name: string): string | undefined;
|
|
20
|
+
export declare function hasAttribute(element: HtmlElement, name: string): boolean;
|
|
21
|
+
export declare function getAttributeLocation(element: HtmlElement, name: string): SourceLocation | undefined;
|
|
22
|
+
export declare function getElementLocation(element: HtmlElement): SourceLocation | undefined;
|
|
23
|
+
export declare function getNodeLocation(node: HtmlNode): SourceLocation | undefined;
|
|
24
|
+
export declare function getTextContent(node: HtmlNode): string;
|
|
25
|
+
export declare function walk(node: HtmlNode, visit: (node: HtmlNode) => void): void;
|
|
26
|
+
export declare function findElements(document: HtmlDocument, predicate: (element: HtmlElement) => boolean): HtmlElement[];
|
|
27
|
+
export declare function getDocumentDoctype(document: HtmlDocument): HtmlDocumentType | undefined;
|
|
28
|
+
export declare function getElementByTagName(document: HtmlDocument, tagName: string): HtmlElement | undefined;
|
|
29
|
+
export declare function isDescendantOf(node: HtmlNode, ancestor: HtmlElement): boolean;
|
|
30
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/html/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,YAAY,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEpD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,WAAW,CAE7D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,YAAY,CAE/D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,YAAY,CAE/D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEnG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAEnF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAWrD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAa1E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,GAAG,WAAW,EAAE,CAQhH;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAEvF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAS7E"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { parse } from "parse5";
|
|
2
|
+
export function parseHtml(html) {
|
|
3
|
+
return parse(html, { sourceCodeLocationInfo: true });
|
|
4
|
+
}
|
|
5
|
+
export function isElement(node) {
|
|
6
|
+
return "tagName" in node;
|
|
7
|
+
}
|
|
8
|
+
export function isTemplate(node) {
|
|
9
|
+
return isElement(node) && node.tagName === "template" && "content" in node;
|
|
10
|
+
}
|
|
11
|
+
export function isTextNode(node) {
|
|
12
|
+
return node.nodeName === "#text";
|
|
13
|
+
}
|
|
14
|
+
export function getAttribute(element, name) {
|
|
15
|
+
return element.attrs.find((attribute) => attribute.name === name)?.value;
|
|
16
|
+
}
|
|
17
|
+
export function hasAttribute(element, name) {
|
|
18
|
+
return element.attrs.some((attribute) => attribute.name === name);
|
|
19
|
+
}
|
|
20
|
+
export function getAttributeLocation(element, name) {
|
|
21
|
+
return element.sourceCodeLocation?.attrs?.[name] ?? undefined;
|
|
22
|
+
}
|
|
23
|
+
export function getElementLocation(element) {
|
|
24
|
+
return element.sourceCodeLocation ?? undefined;
|
|
25
|
+
}
|
|
26
|
+
export function getNodeLocation(node) {
|
|
27
|
+
return node.sourceCodeLocation ?? undefined;
|
|
28
|
+
}
|
|
29
|
+
export function getTextContent(node) {
|
|
30
|
+
if (isTextNode(node)) {
|
|
31
|
+
return node.value;
|
|
32
|
+
}
|
|
33
|
+
if (isTemplate(node)) {
|
|
34
|
+
return node.content.childNodes.map((child) => getTextContent(child)).join("");
|
|
35
|
+
}
|
|
36
|
+
if (isElement(node)) {
|
|
37
|
+
return node.childNodes.map((child) => getTextContent(child)).join("");
|
|
38
|
+
}
|
|
39
|
+
return "";
|
|
40
|
+
}
|
|
41
|
+
export function walk(node, visit) {
|
|
42
|
+
visit(node);
|
|
43
|
+
if (isTemplate(node)) {
|
|
44
|
+
for (const child of node.content.childNodes) {
|
|
45
|
+
walk(child, visit);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if ("childNodes" in node) {
|
|
50
|
+
for (const child of node.childNodes) {
|
|
51
|
+
walk(child, visit);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export function findElements(document, predicate) {
|
|
56
|
+
const elements = [];
|
|
57
|
+
walk(document, (node) => {
|
|
58
|
+
if (isElement(node) && predicate(node)) {
|
|
59
|
+
elements.push(node);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return elements;
|
|
63
|
+
}
|
|
64
|
+
export function getDocumentDoctype(document) {
|
|
65
|
+
return document.childNodes.find((node) => node.nodeName === "#documentType");
|
|
66
|
+
}
|
|
67
|
+
export function getElementByTagName(document, tagName) {
|
|
68
|
+
return findElements(document, (element) => element.tagName === tagName)[0];
|
|
69
|
+
}
|
|
70
|
+
export function isDescendantOf(node, ancestor) {
|
|
71
|
+
let current = "parentNode" in node ? node.parentNode : null;
|
|
72
|
+
while (current) {
|
|
73
|
+
if (current === ancestor) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
current = "parentNode" in current ? current.parentNode : null;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/html/parse.ts"],"names":[],"mappings":"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"}
|