Files
hyperframes/.gitignore
Miguel Ángel b501dc4e1b feat(cli): lambda deploy works from the npm install, no repo checkout (#5866)
* feat(cli): lambda deploy works from the npm install, no repo checkout

Each release builds the Lambda handler zip on Linux, attaches it to the
GitHub release, and pins its URL and sha256 (plus the SAM template) in
@hyperframes/aws-lambda before npm publish. Outside a checkout, lambda
deploy downloads that zip, refuses it on a sha256 mismatch, and deploys
it with the packaged template. With neither a checkout nor a pinned zip
it fails up front with one message naming every way out.

* fix(cli): lambda deploy test mocks the pinned-handler reader, comments fit the checks

* test(cli): sam tests deploy from a SAM directory, not the repo root

* chore(aws-lambda): raise the package size budget for the pinned handler template

Measured with pnpm@10.17.1 pack on Linux. Release state (prebuilt/ written by pin-handler-zip): 77,307 packed / 285,654 unpacked. CI state (no prebuilt/): 70,104 / 253,390. Packed is the check's 5% headroom over the release size. Unpacked is 292,000 (2.2% over release) because a 5% budget would put the CI pack under the 85% ratchet.

* test(cli): anchor the docs link check in the lambda deploy fallback test

* fix(cli): lambda deploy logs the verified handler sha256 and keeps a presigned query out of errors

* fix(cli): a redirect-limit download error keeps a signed query out of its message

* test(cli): the redirect-limit leak test types its rejection

* docs(aws-lambda): header comments cut to what the code cannot say

* chore(aws-lambda): size budget fits both the CI and the release package
2026-10-19 21:41:50 +00:00

199 lines
5.3 KiB
Plaintext

# Dependencies
node_modules/
# Build output
dist/
packages/aws-lambda/prebuilt/
*.tsbuildinfo
# Environment
.env
.env.local
.env.*.local
# Lefthook per-developer overrides (not shared; see lefthook.yml for shared hooks)
lefthook-local.yml
# OS
.DS_Store
Thumbs.db
# Docs media — served from CDN, not committed.
# Regenerate with scripts/generate-{catalog,template}-previews.ts then upload
# with `bun run upload:docs-images`. Add explicit negations below for any
# non-generated assets (logos, svgs) that should stay in the repo.
docs/images/
videos/
# IDE
.vscode/
.idea/
*.swp
*.swo
# Test
coverage/
.debug/
# Producer regression test failures (generated debugging artifacts).
# RECURSIVE (`**`) so a failures/ dump at ANY fixture depth is ignored — the
# old non-recursive `tests/*/failures/` + `tests/distributed/*/failures/` rules
# only matched one level deep, so a nested fixture like
# `tests/hdr-regression/hdr-pq/failures/` could still get committed.
packages/producer/tests/**/failures/
packages/producer/tests/parity/fixtures/hyperframe.runtime.iife.js
# Player perf test results (generated each run, attached as CI artifact)
packages/player/tests/perf/results/
# Rendered output (not test fixtures — those use git LFS)
output/
renders/
!packages/producer/tests/*/output/
!packages/producer/tests/distributed/*/output/
# Source dir that the renders/ output rule accidentally shadows (its files are
# tracked; without this, pre-commit's format re-stage fails on them).
!packages/studio/src/components/renders/
# Composition source media (large binaries)
compositions/**/*.mp4
compositions/**/*.mov
compositions/**/*.MOV
# npm pack artifacts
*.tgz
# Logs
*.log
npm-debug.log*
# Temporary
tmp/
.tmp/
# Generated files
packages/core/src/generated/*
!packages/core/src/generated/position-edits-render-inline.ts
!packages/core/src/generated/position-edits-render-inline.test.ts
!packages/core/src/generated/svg-selector-aliases-inline.ts
!packages/core/src/generated/svg-selector-aliases-inline.test.ts
packages/core/src/fonts/fontData.generated.ts
# Plan and contract documents (working artifacts, not committed)
docs/plans/
docs/contracts/
# Local proof / test artifacts
qa-artifacts/
my-video/
# Studio project state (hf-id backups, per-file state) — always runtime-generated,
# never committed. Broadened from .hyperframes/backup/ after preview-generated state
# leaked into a fixture commit.
.hyperframes/
# Studio authoring proxies are generated locally and can grow to multiple GB.
.transcode-cache/
examples/*
# Tracked OSS examples — negations override the blanket `examples/*` ignore.
!examples/aws-lambda
!examples/aws-lambda/**
!examples/k8s-jobs
!examples/k8s-jobs/**
!examples/gcp-cloud-run
!examples/gcp-cloud-run/**
!examples/docs-reference-project
!examples/docs-reference-project/**
# …but never the local smoke run's build/render artifacts.
examples/gcp-cloud-run/scripts/gcp-smoke-artifacts/
packages/studio/data/
.desloppify/
.worktrees/
# Playwright MCP browser cache
.playwright-mcp/
# Installed skills (user-specific — agent-installed during sessions).
# .claude/ = Claude Code, .agents/ = Codex CLI (both auto-discover their project skills
# from these dirs). The two mirror each other and both need the same "ignore agent-installed
# skills; keep the six repo-native ones" recipe. See .claude/skills/README.md for the
# packaging notes.
.claude/*
!.claude/settings.json
!.claude/skills
.claude/skills/*
!.claude/skills/README.md
!.claude/skills/changelog-video
!.claude/skills/motion-doctrine
!.claude/skills/cut-the-curve
!.claude/skills/seam-craft
!.claude/skills/captions-overlay
!.claude/skills/oversized-cursor
.agents/*
!.agents/skills
.agents/skills/*
!.agents/skills/README.md
!.agents/skills/changelog-video
!.agents/skills/motion-doctrine
!.agents/skills/cut-the-curve
!.agents/skills/seam-craft
!.agents/skills/captions-overlay
!.agents/skills/oversized-cursor
skills-lock.json
# Skills from other PRs (not managed here)
skills/hyperframes-animation-map/
skills/hyperframes-contrast/
# Capture outputs
captures/
# Legacy test captures at repo root (use captures/ instead)
*-capture/
*-demo/
*-ad/
!registry/blocks/slack-notification-ad/
!registry/blocks/slack-notification-ad/**
*-tour/
*-brand/
# Local regression-test and video project scratch directories.
# These hold per-site captures, compositions, narration audio, rendered MP4s.
cursor-tests/
basecamp-video/
launch-video*/
!skills/launch-video/
ab-test/
compositions/
video-6-2-patched/
claude-design-hyperframes-video/
# Per-site video work at the repo root (huly-*, raycast-*, etc.)
# Anything under videos/ is already covered above, but agents sometimes write
# project dirs to the repo root when iterating. Catch the common per-brand
# patterns and any *-demo-N variants the *-demo/ rule above misses.
huly-*/
raycast-*/
*-demo-*/
test-runs/
test-outputs/
# Superpowers docs (Claude Code worktrees + local state are handled above by
# the blanket .claude/ rule and its re-inclusions)
docs/superpowers/
.worktrees
hyperframes-bench/
tmp/
# Studio-generated preview thumbnails
.thumbnails/
# Local editor settings
.zed/
# Local Chrome-for-Testing downloads (large binaries, never commit)
chrome/
# Hosted catalog item files are generated output the docs host serves; the rules above match their folder names
!docs/public/catalog/items/**/compositions/
!docs/public/catalog/items/*-ad/