Files
Pranay Prakash 2bc368c424 fix(compression): address PR review on codec read paths, cross-deployment safety, and web zstd decode
- decompress() now gates only on DecompressionStream (read path), not
  CompressionStream — reads work in decompress-only runtimes (Copilot).
- Cross-deployment writes (start({deploymentId}), resumeHook) restrict to
  the portable gzip codec via a new compressionPortableOnly flag. zstd
  decode needs node:zlib >= 22.15, a property of the reader's runtime that
  the SDK (engines: Node 18+) can't guarantee for a different deployment;
  same-deployment writes still use zstd since reader == writer (vercel bot).
- Browser zstd WASM is now vendored into web-shared dist and referenced via
  a relative new URL('./zstd.wasm', import.meta.url) — a bare package
  specifier was left unrewritten by Vite and 404'd. Verified the Vite build
  emits the asset (karthikscale3).
- hydrateResourceIOWithKey accepts an optional key and always registers the
  zstd decoder, so unencrypted compressed payloads (e.g. local world) are
  inflated; web no-key hydration paths now route through it (karthikscale3).
- Clarify the sync-decompress doc contract (best-effort via
  process.getBuiltinModule, not "always on Node") (Copilot).

Tests: cross-deployment gzip fallback, unencrypted compressed web
hydration, and zstd WASM ↔ node:zlib compatibility.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-16 16:36:38 -07:00

84 lines
2.4 KiB
JSON

{
"name": "@workflow/web-shared",
"description": "Shared components for Workflow Observability UI",
"version": "5.0.0-beta.17",
"private": false,
"files": [
"dist",
"src"
],
"publishConfig": {
"access": "public"
},
"license": "Apache-2.0",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"./components": {
"types": "./dist/components/index.d.ts",
"default": "./dist/components/index.js"
},
"./styles.css": "./dist/styles.css"
},
"typesVersions": {
"*": {
"components": [
"dist/components/index.d.ts"
]
}
},
"repository": {
"type": "git",
"url": "https://github.com/vercel/workflow.git",
"directory": "packages/web-shared"
},
"scripts": {
"build": "tsc && cp -r src/components/trace-viewer/*.css dist/components/trace-viewer/ && cp src/components/new-trace-viewer/components/*.module.css dist/components/new-trace-viewer/components/ && cp src/styles.css dist/styles.css && cp \"$(node -p \"require.resolve('@tootallnate/zstd-wasm/zstd.wasm')\")\" dist/lib/zstd.wasm",
"dev": "tsc --watch",
"clean": "tsc --build --clean && rm -r dist ||:",
"test": "vitest run",
"typecheck": "tsc --noEmit",
"lint": "biome check",
"format": "biome format --write"
},
"dependencies": {
"@radix-ui/react-slot": "1.1.1",
"@radix-ui/react-tooltip": "1.2.8",
"@tailwindcss/postcss": "4",
"@tootallnate/zstd-wasm": "0.0.2",
"@workflow/core": "workspace:*",
"@workflow/utils": "workspace:*",
"@workflow/world": "workspace:*",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
"date-fns": "4.1.0",
"lucide-react": "0.575.0",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-inspector": "9.0.0",
"react-use-measure": "2.1.1",
"react-virtuoso": "4.18.1",
"shiki": "4.0.0",
"sonner": "2.0.7",
"streamdown": "2.3.0",
"tailwind-merge": "3.5.0",
"tailwindcss": "4"
},
"devDependencies": {
"@biomejs/biome": "catalog:",
"@types/node": "catalog:",
"@types/react": "19",
"@types/react-dom": "19",
"@workflow/errors": "workspace:*",
"@workflow/tsconfig": "workspace:*",
"ai": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}
}