Skip to content

Commit 1edea8a

Browse files
authored
Merge pull request #938 from heygen-com/chore/fallow-config-and-cleanup
chore: add fallow config and fix high-signal findings
2 parents cc7622c + 030a2b3 commit 1edea8a

14 files changed

Lines changed: 138 additions & 76 deletions

File tree

.fallowrc.jsonc

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/fallow-rs/fallow/main/config-schema.json",
3+
"entry": [
4+
"packages/producer/src/**/*.test.ts",
5+
"packages/aws-lambda/src/**/*.test.ts",
6+
"packages/producer/src/regression-harness.ts",
7+
"packages/producer/src/regression-harness-distributed.test.ts",
8+
"packages/producer/src/regression-harness-lambda-local.ts",
9+
"packages/producer/src/transparency-test.ts",
10+
"packages/producer/src/parity-harness.ts",
11+
"packages/producer/src/parity-fixtures.ts",
12+
"packages/producer/src/perf-gate.ts",
13+
"packages/producer/src/runtime-conformance.ts",
14+
"packages/producer/src/benchmark.ts",
15+
"packages/producer/scripts/generate-font-data.ts",
16+
"packages/cli/scripts/generate-font-data.ts",
17+
"packages/engine/scripts/test-fitTextFontSize-browser.ts",
18+
"packages/aws-lambda/scripts/*.ts",
19+
// Built as standalone IIFE for the browser-side sandbox runtime;
20+
// referenced by file path (not import) in build-hyperframes-runtime-artifact.ts.
21+
"packages/core/src/runtime/entry.ts",
22+
// Worker entry points loaded dynamically by their *Pool.ts companions.
23+
"packages/producer/src/services/pngDecodeBlitWorker.ts",
24+
"packages/producer/src/services/shaderTransitionWorker.ts",
25+
"scripts/*.{ts,mjs,js}",
26+
"scripts/*/run.mjs",
27+
],
28+
"ignorePatterns": [
29+
"docs/**",
30+
"packages/producer/tests/**",
31+
"packages/player/tests/**",
32+
"packages/engine/tests/**",
33+
"skills/**/test-corpus/**",
34+
"skills/**/scripts/**",
35+
"registry/**",
36+
"examples/**",
37+
".github/workflows/fixtures/**",
38+
],
39+
"ignoreExports": [
40+
// CLI command files: every command exports a const `examples` per the
41+
// convention documented in CLAUDE.md. This is a namespace barrel, not a
42+
// collision.
43+
{ "file": "packages/cli/src/commands/*.ts", "exports": ["examples"] },
44+
// Independent ML model managers each declare their own DEFAULT_MODEL /
45+
// MODELS_DIR / ensureModel for their model namespace.
46+
{
47+
"file": "packages/cli/src/{background-removal,tts,whisper}/manager.ts",
48+
"exports": ["DEFAULT_MODEL", "MODELS_DIR", "ensureModel"],
49+
},
50+
// `isPathInside` is documented as exported-for-tests only in fileServer.ts;
51+
// it has different semantics (symlink resolution) from utils/paths.ts.
52+
{
53+
"file": "packages/producer/src/services/fileServer.ts",
54+
"exports": ["isPathInside"],
55+
},
56+
],
57+
"ignoreDependencies": [
58+
// Runtime/dynamic deps not visible to static analysis: tsup `external`,
59+
// dynamic require() resolution, peer/static-file consumption in tests,
60+
// and bun-hoisted workspace devDeps (e.g. happy-dom in root package.json
61+
// resolves for every workspace, so workspaces don't redeclare it).
62+
"puppeteer",
63+
"puppeteer-core",
64+
"esbuild",
65+
"giget",
66+
"gsap",
67+
"happy-dom",
68+
"ffmpeg-static",
69+
"ffprobe-static",
70+
"@hyperframes/core",
71+
"@hyperframes/studio",
72+
"@hyperframes/producer",
73+
"@fontsource/archivo-black",
74+
"@fontsource/eb-garamond",
75+
"@fontsource/ibm-plex-mono",
76+
"@fontsource/inter",
77+
"@fontsource/jetbrains-mono",
78+
"@fontsource/league-gothic",
79+
"@fontsource/montserrat",
80+
"@fontsource/nunito",
81+
"@fontsource/oswald",
82+
"@fontsource/outfit",
83+
"@fontsource/space-mono",
84+
"@fontsource/lato",
85+
"@fontsource/noto-sans-jp",
86+
"@fontsource/open-sans",
87+
"@fontsource/playfair-display",
88+
"@fontsource/poppins",
89+
"@fontsource/roboto",
90+
"@fontsource/source-code-pro",
91+
],
92+
}

bun.lock

Lines changed: 10 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/cli/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"test": "vitest run",
1919
"dev": "tsx src/cli.ts",
2020
"build": "bun run build:fonts && tsup && bun run build:runtime && bun run build:copy",
21-
"build:fonts": "node -e \"const fs=require('fs');if(!fs.existsSync('../producer/src/services/fontData.generated.ts')){const {execSync}=require('child_process');execSync('cd ../producer && tsx scripts/generate-font-data.ts',{stdio:'inherit'})}else{console.log('[build:fonts] skipped — fontData.generated.ts already exists')}\"",
21+
"build:fonts": "node scripts/build-fonts.mjs",
2222
"build:runtime": "tsx scripts/build-runtime.ts",
2323
"build:copy": "node scripts/build-copy.mjs",
2424
"typecheck": "tsc --noEmit"
@@ -32,7 +32,6 @@
3232
"esbuild": "^0.25.12",
3333
"giget": "^3.2.0",
3434
"hono": "^4.0.0",
35-
"mime-types": "^3.0.2",
3635
"onnxruntime-node": "^1.20.0",
3736
"open": "^10.0.0",
3837
"postcss": "^8.5.8",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env node
2+
import { existsSync } from "node:fs";
3+
import { execSync } from "node:child_process";
4+
5+
const target = "../producer/src/services/fontData.generated.ts";
6+
7+
if (existsSync(target)) {
8+
console.log("[build:fonts] skipped — fontData.generated.ts already exists");
9+
process.exit(0);
10+
}
11+
12+
execSync("cd ../producer && tsx scripts/generate-font-data.ts", {
13+
stdio: "inherit",
14+
});

packages/cli/src/utils/mime.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

packages/cli/tsup.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ var __dirname = __hf_dirname(__filename);`,
4747
"hono",
4848
"hono/*",
4949
"@hono/node-server",
50-
"mime-types",
5150
"adm-zip",
5251
"esbuild",
5352
"giget",

packages/core/src/parsers/gsapParser.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Keyframe, KeyframeProperties } from "../core.types";
1+
import type { Keyframe, KeyframeProperties, ValidationResult } from "../core.types";
22

33
export type GsapMethod = "set" | "to" | "from" | "fromTo";
44

@@ -344,12 +344,6 @@ export function getAnimationsForElement(
344344
return animations.filter((a) => a.targetSelector === selector);
345345
}
346346

347-
export interface ValidationResult {
348-
valid: boolean;
349-
errors: string[];
350-
warnings: string[];
351-
}
352-
353347
const FORBIDDEN_GSAP_PATTERNS: Array<{ pattern: RegExp; message: string }> = [
354348
{ pattern: /\.call\s*\(/, message: "call() method not allowed" },
355349
{

packages/core/src/parsers/htmlParser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
gsapAnimationsToKeyframes,
1818
getAnimationsForElement,
1919
} from "./gsapParser";
20-
import type { ValidationResult } from "./gsapParser";
20+
import type { ValidationResult } from "../core.types";
2121

2222
const MEDIA_TYPES = new Set<string>(["video", "image", "audio"]);
2323

packages/producer/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
},
3333
"scripts": {
3434
"build": "bun run build:fonts && bun run --cwd ../.. build:hyperframes-runtime:modular && node build.mjs",
35-
"build:fonts": "node -e \"const fs=require('fs');if(!fs.existsSync('src/services/fontData.generated.ts')){const {execSync}=require('child_process');execSync('node --experimental-strip-types scripts/generate-font-data.ts',{stdio:'inherit'})}else{console.log('[build:fonts] skipped — fontData.generated.ts already exists')}\"",
35+
"build:fonts": "node scripts/build-fonts.mjs",
3636
"typecheck": "tsc --noEmit",
3737
"parity:check": "tsx src/parity-harness.ts",
3838
"parity:fixtures": "tsx src/parity-fixtures.ts",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env node
2+
import { existsSync } from "node:fs";
3+
import { execSync } from "node:child_process";
4+
5+
const target = "src/services/fontData.generated.ts";
6+
7+
if (existsSync(target)) {
8+
console.log("[build:fonts] skipped — fontData.generated.ts already exists");
9+
process.exit(0);
10+
}
11+
12+
execSync("node --experimental-strip-types scripts/generate-font-data.ts", {
13+
stdio: "inherit",
14+
});

0 commit comments

Comments
 (0)