@editframe/api 0.7.0-beta.8 → 0.8.0-beta.1

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.
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const zod = require("zod");
4
- const debug = require("debug");
5
- const assets = require("@editframe/assets");
6
- const log = debug("ef:api:isobmff-track");
7
- const CreateISOBMFFTrackPayload = zod.z.discriminatedUnion("type", [
8
- zod.z.object({
9
- file_id: zod.z.string(),
10
- track_id: zod.z.number().int(),
11
- type: zod.z.literal("audio"),
12
- probe_info: assets.AudioStreamSchema,
13
- duration_ms: zod.z.number().int(),
14
- codec_name: zod.z.string(),
15
- byte_size: zod.z.number().int()
16
- }),
17
- zod.z.object({
18
- file_id: zod.z.string(),
19
- track_id: zod.z.number().int(),
20
- type: zod.z.literal("video"),
21
- probe_info: assets.VideoStreamSchema,
22
- duration_ms: zod.z.number().int(),
23
- codec_name: zod.z.string(),
24
- byte_size: zod.z.number().int()
25
- })
26
- ]);
27
- const createISOBMFFTrack = async (client, payload) => {
28
- log("Creating isobmff track", payload);
29
- const response = await client.authenticatedFetch(
30
- "/api/video2/isobmff_tracks",
31
- {
32
- method: "POST",
33
- body: JSON.stringify(payload)
34
- }
35
- );
36
- log("ISOBMFF track created", response);
37
- switch (response.status) {
38
- case 200: {
39
- return await response.json();
40
- }
41
- default: {
42
- console.error("Failed to create track");
43
- console.error(await response.json());
44
- return;
45
- }
46
- }
47
- };
48
- const uploadISOBMFFTrack = async (client, fileId, trackId, fileStream) => {
49
- log("Uploading isobmff track", fileId, trackId);
50
- const trackIndex = await client.authenticatedFetch(
51
- `/api/video2/isobmff_tracks/${fileId}/${trackId}/upload`,
52
- {
53
- method: "POST",
54
- body: fileStream
55
- }
56
- );
57
- log("ISOBMFF track uploaded", trackIndex);
58
- switch (trackIndex.status) {
59
- case 200: {
60
- return trackIndex.json();
61
- }
62
- default: {
63
- console.error("Failed to upload track");
64
- console.error(trackIndex.status, trackIndex.statusText);
65
- return;
66
- }
67
- }
68
- };
69
- exports.CreateISOBMFFTrackPayload = CreateISOBMFFTrackPayload;
70
- exports.createISOBMFFTrack = createISOBMFFTrack;
71
- exports.uploadISOBMFFTrack = uploadISOBMFFTrack;
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const zod = require("zod");
4
- const debug = require("debug");
5
- const log = debug("ef:api:renders");
6
- const CreateRenderPayload = zod.z.object({
7
- id: zod.z.string().uuid(),
8
- fps: zod.z.number(),
9
- width: zod.z.number().int(),
10
- height: zod.z.number().int(),
11
- work_slice_ms: zod.z.number().int(),
12
- duration_ms: zod.z.number().int(),
13
- strategy: zod.z.enum(["v1", "v2"])
14
- });
15
- const createRender = async (client, payload) => {
16
- log("Creating render", payload);
17
- const response = await client.authenticatedFetch("/api/video2/renders", {
18
- method: "POST",
19
- body: JSON.stringify(payload)
20
- });
21
- log("Render created", response);
22
- switch (response.status) {
23
- case 200: {
24
- return await response.json();
25
- }
26
- default: {
27
- console.error("Failed to create render");
28
- console.error(await response.json());
29
- return;
30
- }
31
- }
32
- };
33
- const uploadRender = async (client, fileId, fileStream) => {
34
- log("Uploading render", fileId);
35
- const fileIndex = await client.authenticatedFetch(
36
- `/api/video2/renders/${fileId}/upload`,
37
- {
38
- method: "POST",
39
- body: fileStream
40
- }
41
- );
42
- log("Render uploaded", fileIndex);
43
- switch (fileIndex.status) {
44
- case 200: {
45
- return fileIndex.json();
46
- }
47
- default: {
48
- console.error("Failed to upload render");
49
- console.error(fileIndex.status, fileIndex.statusText);
50
- return;
51
- }
52
- }
53
- };
54
- exports.CreateRenderPayload = CreateRenderPayload;
55
- exports.createRender = createRender;
56
- exports.uploadRender = uploadRender;
@@ -1,20 +0,0 @@
1
- import type { Readable } from "node:stream";
2
-
3
- export const nodeStreamToWebStream = (nodeStream: Readable): BodyInit => {
4
- return new ReadableStream({
5
- start(controller) {
6
- nodeStream.on("data", (chunk) => {
7
- controller.enqueue(chunk);
8
- });
9
- nodeStream.on("end", () => {
10
- controller.close();
11
- });
12
- nodeStream.on("error", (err) => {
13
- controller.error(err);
14
- });
15
- },
16
- cancel() {
17
- nodeStream.destroy();
18
- },
19
- });
20
- };