@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.
- package/README.md +92 -0
- 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.
|
|
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.
|
|
24
|
-
"@editframe/assets": "0.51.
|
|
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",
|