{ "$schema": "https://raw.githubusercontent.com/fallow-rs/fallow/main/config-schema.json", "entry": [ "packages/producer/src/**/*.test.ts", "packages/aws-lambda/src/**/*.test.ts", "packages/producer/src/regression-harness.ts", "packages/producer/src/regression-harness-distributed.test.ts", "packages/producer/src/regression-harness-lambda-local.ts", "packages/producer/src/transparency-test.ts", "packages/producer/src/parity-harness.ts", "packages/producer/src/parity-fixtures.ts", "packages/producer/src/perf-gate.ts", "packages/producer/src/runtime-conformance.ts", "packages/producer/src/benchmark.ts", "packages/producer/scripts/generate-font-data.ts", "packages/cli/scripts/generate-font-data.ts", "packages/engine/scripts/test-fitTextFontSize-browser.ts", "packages/aws-lambda/scripts/*.ts", // Built as standalone IIFE for the browser-side sandbox runtime; // referenced by file path (not import) in build-hyperframes-runtime-artifact.ts. "packages/core/src/runtime/entry.ts", // Worker entry points loaded dynamically by their *Pool.ts companions. "packages/producer/src/services/pngDecodeBlitWorker.ts", "packages/producer/src/services/shaderTransitionWorker.ts", "scripts/*.{ts,mjs,js}", "scripts/*/run.mjs", ], "ignorePatterns": [ "docs/**", "packages/producer/tests/**", "packages/player/tests/**", "packages/engine/tests/**", "skills/**/test-corpus/**", "skills/**/scripts/**", "registry/**", "examples/**", ".github/workflows/fixtures/**", ], "ignoreExports": [ // CLI command files: every command exports a const `examples` per the // convention documented in CLAUDE.md. This is a namespace barrel, not a // collision. { "file": "packages/cli/src/commands/*.ts", "exports": ["examples"] }, // Independent ML model managers each declare their own DEFAULT_MODEL / // MODELS_DIR / ensureModel for their model namespace. { "file": "packages/cli/src/{background-removal,tts,whisper}/manager.ts", "exports": ["DEFAULT_MODEL", "MODELS_DIR", "ensureModel"], }, // `isPathInside` is documented as exported-for-tests only in fileServer.ts; // it has different semantics (symlink resolution) from utils/paths.ts. { "file": "packages/producer/src/services/fileServer.ts", "exports": ["isPathInside"], }, // Studio telemetry: `trackStudioRenderStart` is consumed by // useRenderQueue.ts (deep relative import) but fallow's static analyzer // doesn't trace it. `trackStudioSessionStart` from the same file resolves // fine via App.tsx, so this is a path-resolution quirk, not dead code. { "file": "packages/studio/src/telemetry/events.ts", "exports": ["trackStudioRenderStart"], }, // domEditingLayers: these exports are consumed via the browser iframe // runtime context (not traceable by static import analysis from the // studio entry point) or re-exported through the domEditing barrel but // have no downstream consumers yet. { "file": "packages/studio/src/components/editor/domEditingLayers.ts", "exports": [ "isEditableTextLeaf", "collectDomEditTextFields", "buildElementLabel", "refreshDomEditSelection", ], }, ], "ignoreDependencies": [ // Runtime/dynamic deps not visible to static analysis: tsup `external`, // dynamic require() resolution, peer/static-file consumption in tests, // and bun-hoisted workspace devDeps (e.g. happy-dom in root package.json // resolves for every workspace, so workspaces don't redeclare it). "puppeteer", "puppeteer-core", "esbuild", "giget", "gsap", "happy-dom", "ffmpeg-static", "ffprobe-static", "@hyperframes/core", "@hyperframes/studio", "@hyperframes/producer", "@fontsource/archivo-black", "@fontsource/eb-garamond", "@fontsource/ibm-plex-mono", "@fontsource/inter", "@fontsource/jetbrains-mono", "@fontsource/league-gothic", "@fontsource/montserrat", "@fontsource/nunito", "@fontsource/oswald", "@fontsource/outfit", "@fontsource/space-mono", "@fontsource/lato", "@fontsource/noto-sans-jp", "@fontsource/open-sans", "@fontsource/playfair-display", "@fontsource/poppins", "@fontsource/roboto", "@fontsource/source-code-pro", ], }