Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions .fallowrc.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,23 @@
"packages/parsers/src/gsapWriterParity.acorn.test.ts",
"packages/parsers/src/htmlParser.roundtrip.test.ts",
"packages/parsers/src/htmlParser.test.ts",
// @hyperframes/studio-server test files: parallel arrange/act/assert test cases
// (pre-existing structure from when studio-api lived in packages/core/src/studio-api/).
"packages/studio-server/src/routes/files.test.ts",
"packages/studio-server/src/routes/render.test.ts",
"packages/studio-server/src/routes/lint.test.ts",
"packages/studio-server/src/routes/preview.test.ts",
"packages/studio-server/src/routes/projects.test.ts",
"packages/studio-server/src/helpers/backupJournal.test.ts",
"packages/studio-server/src/helpers/finiteMutation.test.ts",
"packages/studio-server/src/helpers/hfIdPersist.test.ts",
"packages/studio-server/src/helpers/manualEditsRenderScript.test.ts",
"packages/studio-server/src/helpers/mediaValidation.test.ts",
"packages/studio-server/src/helpers/previewAdapter.test.ts",
"packages/studio-server/src/helpers/safePath.test.ts",
"packages/studio-server/src/helpers/sourceMutation.test.ts",
"packages/studio-server/src/helpers/studioMotionRenderScript.test.ts",
"packages/studio-server/src/helpers/subComposition.test.ts",
// @hyperframes/lint rule test files: parallel arrange/act/assert test cases
// (pre-existing structure from when lint lived in packages/core/src/lint/).
"packages/lint/src/rules/adapters.test.ts",
Expand Down Expand Up @@ -321,8 +338,15 @@
"packages/parsers/src/gsapParser.ts",
// htmlParser.ts has pre-existing complexity (moved from packages/core).
"packages/parsers/src/htmlParser.ts",
// executeGsapMutation (CRITICAL) pre-dates this PR; studio-api still lives in core.
"packages/core/src/studio-api/routes/files.ts",
// studio-server files: pre-existing complexity (moved from packages/core/src/studio-api/).
// files.ts: executeGsapMutationRecast/Acorn are CRITICAL; excluded as files.ts
// was already in health.ignore at the old path (packages/core/src/studio-api/routes/files.ts).
"packages/studio-server/src/routes/files.ts",
"packages/studio-server/src/routes/render.ts",
"packages/studio-server/src/routes/thumbnail.ts",
"packages/studio-server/src/helpers/manualEditsRenderScript.ts",
"packages/studio-server/src/helpers/studioMotionRenderScript.ts",
"packages/studio-server/src/helpers/subComposition.ts",
// lint rule implementations and project linter: pre-existing complexity
// (moved from packages/core/src/lint/). File-level exemption avoids the
// line-shift fingerprint problem for inherited findings.
Expand Down Expand Up @@ -351,12 +375,15 @@
// from @hyperframes/core/* subpaths to the new packages). Their complexity
// is pre-existing; the line-shift fingerprint problem makes fallow treat
// the violations as new even though no logic changed.
"packages/cli/src/server/studioServer.ts",
"packages/core/src/core.types.ts",
"packages/core/src/generators/hyperframes.ts",
"packages/producer/src/services/htmlCompiler.ts",
"packages/studio/src/hooks/gsapRuntimeBridge.ts",
"packages/studio/src/hooks/gsapShared.ts",
"packages/studio/src/hooks/gsapDragPositionCommit.ts",
"packages/studio/src/hooks/gsapKeyframeCacheHelpers.ts",
"packages/studio/vite.config.ts",
"packages/cli/src/commands/lint.ts",
"packages/cli/src/commands/preview.ts",
"packages/cli/src/commands/publish.ts",
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ jobs:
- run: bun install --frozen-lockfile
- run: bun run test:scripts
- run: bun run --filter '@hyperframes/parsers' build
- run: bun run --filter '@hyperframes/studio-server' build
- run: bun run --cwd packages/core build
- run: bun run --cwd packages/core build:hyperframes-runtime
- run: bun run --filter '!@hyperframes/producer' test
Expand Down Expand Up @@ -358,8 +359,10 @@ jobs:
- uses: ./.github/actions/prepare-ffmpeg-bin
- run: bun install --frozen-lockfile
# Build workspace deps so the studio vite.config.ts (loaded by Node) can
# resolve @hyperframes/core via the "node" export condition (dist).
# resolve @hyperframes/core and @hyperframes/studio-server via the "node"
# export condition (dist).
- run: bun run --filter '@hyperframes/parsers' build
- run: bun run --filter '@hyperframes/studio-server' build
- run: bun run --cwd packages/core build
- run: bun run --cwd packages/core build:hyperframes-runtime
- name: Start studio and check for runtime errors
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/preview-regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
preview:
- "packages/core/**"
- "packages/parsers/**"
- "packages/studio-server/**"
- "packages/lint/**"
- "packages/player/**"
- "packages/studio/**"
Expand Down Expand Up @@ -77,13 +78,13 @@ jobs:

- name: Build workspace packages (required for vite config loading)
run: |
bun run --filter '@hyperframes/{parsers,lint}' build
bun run --filter '@hyperframes/{parsers,lint,studio-server}' build
bun run --cwd packages/core build

- name: Run Studio preview routing regression
run: |
bun run --cwd packages/studio test -- vite.thumbnail.test.ts src/utils/projectRouting.test.ts src/utils/frameCapture.test.ts
bun run --cwd packages/core test -- src/studio-api/routes/thumbnail.test.ts
bun run --cwd packages/studio-server test -- src/routes/thumbnail.test.ts

- name: Build preview runtime
run: bun run --cwd packages/core build:hyperframes-runtime
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ jobs:

publish_pkg "@hyperframes/parsers" "@hyperframes/parsers"
publish_pkg "@hyperframes/lint" "@hyperframes/lint"
publish_pkg "@hyperframes/studio-server" "@hyperframes/studio-server"
publish_pkg "@hyperframes/core" "@hyperframes/core"
publish_pkg "@hyperframes/sdk" "@hyperframes/sdk"
publish_pkg "@hyperframes/engine" "@hyperframes/engine"
Expand Down
4 changes: 3 additions & 1 deletion Dockerfile.test
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ ENV PATH="/root/.bun/bin:$PATH"
COPY package.json bun.lock ./
COPY packages/parsers/package.json packages/parsers/package.json
COPY packages/lint/package.json packages/lint/package.json
COPY packages/studio-server/package.json packages/studio-server/package.json
COPY packages/core/package.json packages/core/package.json
COPY packages/engine/package.json packages/engine/package.json
COPY packages/player/package.json packages/player/package.json
Expand All @@ -92,12 +93,13 @@ RUN bun install --frozen-lockfile
# Copy source
COPY packages/parsers/ packages/parsers/
COPY packages/lint/ packages/lint/
COPY packages/studio-server/ packages/studio-server/
COPY packages/core/ packages/core/
COPY packages/engine/ packages/engine/
COPY packages/producer/ packages/producer/

# Build workspace packages so "node" export conditions resolve to built dist
RUN bun run --filter '@hyperframes/{parsers,lint}' build \
RUN bun run --filter '@hyperframes/{parsers,lint,studio-server}' build \
&& bun run --cwd packages/core build

# Build core runtime artifacts (needed by renderer)
Expand Down
52 changes: 35 additions & 17 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"type": "module",
"scripts": {
"dev": "bun run studio",
"build": "bun run --filter '@hyperframes/{parsers,lint}' build && bun run --filter @hyperframes/core build && bun run --filter '@hyperframes/{core,engine,producer,player,studio,shader-transitions,aws-lambda,gcp-cloud-run,sdk}' build && bun run --filter @hyperframes/cli build",
"build": "bun run --filter '@hyperframes/{parsers,lint,studio-server}' build && bun run --filter @hyperframes/core build && bun run --filter '@hyperframes/{core,engine,producer,player,studio,shader-transitions,aws-lambda,gcp-cloud-run,sdk}' build && bun run --filter @hyperframes/cli build",
"build:producer": "bun run --filter @hyperframes/producer build",
"studio": "bun run --filter @hyperframes/studio dev",
"build:hyperframes-runtime": "bun run --filter @hyperframes/core build:hyperframes-runtime",
Expand Down
1 change: 1 addition & 0 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"@hyperframes/lint": "workspace:*",
"@hyperframes/producer": "workspace:*",
"@hyperframes/studio": "workspace:*",
"@hyperframes/studio-server": "workspace:*",
"@types/adm-zip": "^0.5.7",
"@types/fontkit": "^2.0.9",
"@types/mime-types": "^3.0.1",
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/src/server/studioServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import {
type StudioApiAdapter,
type ResolvedProject,
type RenderJobState,
} from "@hyperframes/core/studio-api";
import { getElementScreenshotClip } from "@hyperframes/core/studio-api/screenshot-clip";
import type { ScreenshotClip } from "@hyperframes/core/studio-api/screenshot-clip";
} from "@hyperframes/studio-server";
import { getElementScreenshotClip } from "@hyperframes/studio-server/screenshot-clip";
import type { ScreenshotClip } from "@hyperframes/studio-server/screenshot-clip";
import type { RenderJob } from "@hyperframes/producer";

const STUDIO_MANUAL_EDITS_PATH = ".hyperframes/studio-manual-edits.json";
Expand Down
1 change: 1 addition & 0 deletions packages/cli/tsup.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ var __dirname = __hf_dirname(__filename);`,
noExternal: [
"@hyperframes/core",
"@hyperframes/parsers",
"@hyperframes/studio-server",
"@hyperframes/lint",
"@hyperframes/producer",
"@hyperframes/engine",
Expand Down
12 changes: 2 additions & 10 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -355,10 +355,10 @@
"@chenglou/pretext": "^0.0.5",
"@hyperframes/lint": "workspace:*",
"@hyperframes/parsers": "workspace:*",
"@hyperframes/studio-server": "workspace:*",
"bpm-detective": "^2.0.5",
"linkedom": "^0.18.12",
"postcss": "^8.5.8",
"postcss-selector-parser": "^7.1.2"
"postcss": "^8.5.8"
},
"devDependencies": {
"@types/jsdom": "^28.0.0",
Expand All @@ -369,14 +369,6 @@
"typescript": "^5.0.0",
"vitest": "^3.2.4"
},
"peerDependencies": {
"hono": "^4.0.0"
},
"peerDependenciesMeta": {
"hono": {
"optional": true
}
},
"optionalDependencies": {
"esbuild": "^0.25.12"
}
Expand Down
12 changes: 2 additions & 10 deletions packages/core/src/studio-api/helpers/draftMarkers.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
/**
* Draft-marker constants shared between core's PreviewAdapter and Studio's
* manual-edits code. CSS custom properties written during a drag gesture, plus
* the gesture marker attribute. Exported from @hyperframes/core/studio-api/draft-markers.
*/
export const STUDIO_OFFSET_X_PROP = "--hf-studio-offset-x";
export const STUDIO_OFFSET_Y_PROP = "--hf-studio-offset-y";
export const STUDIO_WIDTH_PROP = "--hf-studio-width";
export const STUDIO_HEIGHT_PROP = "--hf-studio-height";
export const STUDIO_MANUAL_EDIT_GESTURE_ATTR = "data-hf-studio-manual-edit-gesture";
/** @deprecated Import from @hyperframes/studio-server/draft-markers */
export * from "@hyperframes/studio-server/draft-markers";
Loading
Loading