Latest Threat ResearchGlassWorm Loader Hits Open VSX via Developer Account Compromise.Details
Socket
Book a DemoInstallSign in
Socket

@meframe/server

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@meframe/server

Server-side exporter for @meframe/core (browser-driven, multipart upload via injected store)

latest
Source
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

@meframe/server

@meframe/server is a Node.js package that runs @meframe/core export inside a real Chromium instance (via browser automation) and uploads the output using an injected multipart store interface.

Status

Experimental, but functional.

Current capabilities:

  • Runs @meframe/core export in a real Chromium instance (via puppeteer-core)
  • Streams mux output into multipart parts (no full MP4 Blob in Node memory)
  • Supports cancellation (AbortSignal) and progress callback (onProgress)

See:

  • packages/server/examples/README.md for example usage (local + S3)
  • packages/server/docs/INTEGRATION.md for a complete integration guide (Chinese)
  • packages/server/docs/ARCHITECTURE.md for architecture and constraints

Design goals

  • No cloud SDK dependency: upload is abstracted via MultipartObjectStore.
  • Low memory: avoid returning a full MP4 Blob to Node; stream mux output into multipart parts.
  • Works with existing web pipeline: reuse @meframe/core export flow (OPFS + WebCodecs + workers).

Public API

  • ServerExporter
    • exportToStore({ model, exportOptions, pageUrl?, key?, metadata?, abortSignal? })

Types are exported from @meframe/server root entry.

Notes / requirements

  • Chromium is not bundled: this package depends on puppeteer-core internally, so production must provide a Chromium/Chrome binary and pass browser.executablePath when creating ServerExporter (or load it from your own config system).
  • Secure context is required for WebCodecs: the exporter should navigate to a trustworthy origin (e.g. http://127.0.0.1 or https://...) via pageUrl before running the runner.
  • Worker files must be accessible to the page at /<workerPath>/... (default /meframe-workers/...). If you do not pass workerPath, @meframe/server will start a temporary local server that serves @meframe/core/dist/workers and inject its base URL.

Run examples

Local end-to-end (writes packages/server/examples/local/out.mp4):

pnpm --filter @meframe/core build
pnpm --filter @meframe/adapter-medeo build
pnpm --filter @meframe/server build

MEFRAME_CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  pnpm --filter @meframe/server dev

S3 example (reference; requires AWS creds + bucket CORS exposing ETag):

MEFRAME_CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  MEFRAME_RUNNER_PAGE_URL="https://your-domain.example/meframe-runner.html" \
  S3_BUCKET="your-bucket" \
  MEDEO_PUBLIC_BASE_URL="https://cdn.example.com" \
  node packages/server/examples/s3/export-to-s3.mjs

Keywords

meframe

FAQs

Package last updated on 20 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts