@editframe/dev-server 0.51.0 → 0.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +92 -0
  2. package/package.json +3 -3
package/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # @editframe/dev-server
2
+
3
+ Framework-agnostic Editframe dev media server. Handles JIT video transcoding, asset serving, local file APIs, and URL signing for local development — without requiring cloud API calls.
4
+
5
+ Used internally by `@editframe/vite-plugin` and `@editframe/nextjs-plugin`. Use this package directly when integrating Editframe into other build tools (Webpack, Rspack, custom Node.js servers, etc.).
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install --save-dev @editframe/dev-server
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ### Mounting onto a Connect/Express server
16
+
17
+ ```ts
18
+ import connect from "connect";
19
+ import { createServer } from "http";
20
+ import {
21
+ createEditframeRouter,
22
+ createProdEfHandlers,
23
+ } from "@editframe/dev-server";
24
+ import {
25
+ generateTrack,
26
+ generateScrubTrack,
27
+ generateTrackFragmentIndex,
28
+ cacheImage,
29
+ findOrCreateCaptions,
30
+ md5FilePath,
31
+ } from "@editframe/assets";
32
+ import { Client, createURLToken } from "@editframe/api";
33
+
34
+ const app = connect();
35
+
36
+ app.use(
37
+ createEditframeRouter(
38
+ { root: "./src", cacheRoot: "./cache", handleRemoteUrls: true },
39
+ { generateTrack, generateScrubTrack, generateTrackFragmentIndex, cacheImage, findOrCreateCaptions, md5FilePath },
40
+ createProdEfHandlers({
41
+ createURLToken,
42
+ getClient: () => new Client(process.env.EF_TOKEN),
43
+ }),
44
+ ),
45
+ );
46
+
47
+ createServer(app).listen(3001);
48
+ ```
49
+
50
+ ### Standalone sidecar server
51
+
52
+ ```ts
53
+ import { createEditframeDevServer, createProdEfHandlers } from "@editframe/dev-server";
54
+ import { generateTrack, generateScrubTrack, generateTrackFragmentIndex, cacheImage, findOrCreateCaptions, md5FilePath } from "@editframe/assets";
55
+ import { Client, createURLToken } from "@editframe/api";
56
+
57
+ const server = createEditframeDevServer(
58
+ { root: "./src", cacheRoot: "./cache", handleRemoteUrls: true },
59
+ { generateTrack, generateScrubTrack, generateTrackFragmentIndex, cacheImage, findOrCreateCaptions, md5FilePath },
60
+ createProdEfHandlers({
61
+ createURLToken,
62
+ getClient: () => new Client(process.env.EF_TOKEN),
63
+ }),
64
+ );
65
+
66
+ server.listen(3001, () => {
67
+ console.log("Editframe dev server running on http://localhost:3001");
68
+ });
69
+ ```
70
+
71
+ ### HTML injection helper
72
+
73
+ ```ts
74
+ import { injectApiHostScript } from "@editframe/dev-server";
75
+
76
+ const html = injectApiHostScript(originalHtml, "http://localhost:3001");
77
+ ```
78
+
79
+ ## API Routes
80
+
81
+ | Route | Description |
82
+ |---|---|
83
+ | `GET /api/v1/transcode/manifest.json?url=` | JIT transcode manifest |
84
+ | `GET /api/v1/transcode/{rendition}/init.m4s?url=` | Init segment |
85
+ | `GET /api/v1/transcode/{rendition}/{segmentId}.m4s?url=` | Media segment |
86
+ | `GET /api/v1/assets/image?src=` | Image proxy/cache |
87
+ | `GET /api/v1/assets/captions?src=` | Whisper caption generation |
88
+ | `GET /api/v1/files/index?src=` | Fragment index |
89
+ | `GET /api/v1/files/md5?src=` | MD5 of a local file |
90
+ | `GET /api/v1/files/track?src=&trackId=` | Raw track file |
91
+ | `DELETE /@ef-clear-cache` | Clear transcoding cache |
92
+ | `POST /@ef-sign-url` | Sign a playback URL |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@editframe/dev-server",
3
- "version": "0.51.0",
3
+ "version": "0.51.2",
4
4
  "description": "Framework-agnostic Editframe dev media server",
5
5
  "exports": {
6
6
  ".": {
@@ -20,8 +20,8 @@
20
20
  "author": "",
21
21
  "license": "SEE LICENSE IN LICENSE-FULL.md",
22
22
  "dependencies": {
23
- "@editframe/api": "0.51.0",
24
- "@editframe/assets": "0.51.0",
23
+ "@editframe/api": "0.51.2",
24
+ "@editframe/assets": "0.51.2",
25
25
  "connect": "^3.7.0",
26
26
  "debug": "^4.3.5",
27
27
  "mime": "^4.0.3",