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