@editframe/api 0.14.0-beta.3 → 0.15.0-beta.3
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/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/node.js +2 -1
- package/dist/resources/renders.bundle.js +3 -5
- package/dist/resources/renders.d.ts +1 -0
- package/dist/resources/renders.js +11 -1
- package/package.json +2 -2
- package/src/resources/renders.bundle.ts +3 -8
- package/src/resources/renders.ts +13 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { createCaptionFile, CreateCaptionFilePayload, type CreateCaptionFileResu
|
|
|
2
2
|
export { createImageFile, CreateImageFilePayload, type CreateImageFileResult, uploadImageFile, type LookupImageFileByMd5Result, lookupImageFileByMd5, } from './resources/image-file.js';
|
|
3
3
|
export { createISOBMFFFile, CreateISOBMFFFilePayload, type CreateISOBMFFFileResult, uploadFragmentIndex, type LookupISOBMFFFileByMd5Result, lookupISOBMFFFileByMd5, type GetISOBMFFFileTranscriptionResult, getISOBMFFFileTranscription, type TranscribeISOBMFFFileResult, transcribeISOBMFFFile, TranscribeISOBMFFFilePayload, } from './resources/isobmff-file.js';
|
|
4
4
|
export { createISOBMFFTrack, CreateISOBMFFTrackPayload, type CreateISOBMFFTrackResult, uploadISOBMFFTrack, AudioTrackPayload, type AudioStreamSchema, VideoTrackPayload, type VideoStreamSchema, } from './resources/isobmff-track.js';
|
|
5
|
-
export { createRender, CreateRenderPayload, type CreateRenderResult, uploadRender, type LookupRenderByMd5Result, lookupRenderByMd5, getRenderProgress, getRenderInfo, } from './resources/renders.js';
|
|
5
|
+
export { createRender, CreateRenderPayload, type CreateRenderResult, uploadRender, type LookupRenderByMd5Result, lookupRenderByMd5, getRenderProgress, getRenderInfo, downloadRender, } from './resources/renders.js';
|
|
6
6
|
export { createTranscription, CreateTranscriptionPayload, type CreateTranscriptionResult, getTranscriptionInfo, getTranscriptionProgress, type TranscriptionInfoResult, } from './resources/transcriptions.js';
|
|
7
7
|
export { createURLToken, type URLTokenResult, } from './resources/url-token.js';
|
|
8
8
|
export { createUnprocessedFile, CreateUnprocessedFilePayload, type CreateUnprocessedFileResult, uploadUnprocessedReadableStream, type LookupUnprocessedFileByMd5Result, lookupUnprocessedFileByMd5, processIsobmffFile, type ProcessIsobmffFileResult, type UnprocessedFileUploadDetails, type UnprocessedFile, } from './resources/unprocessed-file.js';
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { CreateCaptionFilePayload, createCaptionFile, lookupCaptionFileByMd5, up
|
|
|
2
2
|
import { CreateImageFilePayload, createImageFile, lookupImageFileByMd5, uploadImageFile } from "./resources/image-file.js";
|
|
3
3
|
import { CreateISOBMFFFilePayload, TranscribeISOBMFFFilePayload, createISOBMFFFile, getISOBMFFFileTranscription, lookupISOBMFFFileByMd5, transcribeISOBMFFFile, uploadFragmentIndex } from "./resources/isobmff-file.js";
|
|
4
4
|
import { AudioTrackPayload, CreateISOBMFFTrackPayload, VideoTrackPayload, createISOBMFFTrack, uploadISOBMFFTrack } from "./resources/isobmff-track.js";
|
|
5
|
-
import { CreateRenderPayload, createRender, getRenderInfo, getRenderProgress, lookupRenderByMd5, uploadRender } from "./resources/renders.js";
|
|
5
|
+
import { CreateRenderPayload, createRender, downloadRender, getRenderInfo, getRenderProgress, lookupRenderByMd5, uploadRender } from "./resources/renders.js";
|
|
6
6
|
import { CreateTranscriptionPayload, createTranscription, getTranscriptionInfo, getTranscriptionProgress } from "./resources/transcriptions.js";
|
|
7
7
|
import { createURLToken } from "./resources/url-token.js";
|
|
8
8
|
import { CreateUnprocessedFilePayload, createUnprocessedFile, lookupUnprocessedFileByMd5, processIsobmffFile, uploadUnprocessedReadableStream } from "./resources/unprocessed-file.js";
|
|
@@ -28,6 +28,7 @@ export {
|
|
|
28
28
|
createTranscription,
|
|
29
29
|
createURLToken,
|
|
30
30
|
createUnprocessedFile,
|
|
31
|
+
downloadRender,
|
|
31
32
|
getISOBMFFFileTranscription,
|
|
32
33
|
getIsobmffProcessInfo,
|
|
33
34
|
getIsobmffProcessProgress,
|
package/dist/node.js
CHANGED
|
@@ -10,7 +10,7 @@ import { createReadableStreamFromReadable } from "./utils/createReadableStreamFr
|
|
|
10
10
|
import { CreateCaptionFilePayload, createCaptionFile, lookupCaptionFileByMd5, uploadCaptionFile } from "./resources/caption-file.js";
|
|
11
11
|
import { CreateISOBMFFFilePayload, TranscribeISOBMFFFilePayload, createISOBMFFFile, getISOBMFFFileTranscription, lookupISOBMFFFileByMd5, transcribeISOBMFFFile, uploadFragmentIndex } from "./resources/isobmff-file.js";
|
|
12
12
|
import { AudioTrackPayload, CreateISOBMFFTrackPayload, VideoTrackPayload, createISOBMFFTrack, uploadISOBMFFTrack } from "./resources/isobmff-track.js";
|
|
13
|
-
import { CreateRenderPayload, createRender, getRenderInfo, getRenderProgress, lookupRenderByMd5, uploadRender } from "./resources/renders.js";
|
|
13
|
+
import { CreateRenderPayload, createRender, downloadRender, getRenderInfo, getRenderProgress, lookupRenderByMd5, uploadRender } from "./resources/renders.js";
|
|
14
14
|
import { CreateTranscriptionPayload, createTranscription, getTranscriptionInfo, getTranscriptionProgress } from "./resources/transcriptions.js";
|
|
15
15
|
import { createURLToken } from "./resources/url-token.js";
|
|
16
16
|
import { getIsobmffProcessInfo, getIsobmffProcessProgress } from "./resources/process-isobmff.js";
|
|
@@ -74,6 +74,7 @@ export {
|
|
|
74
74
|
createURLToken,
|
|
75
75
|
createUnprocessedFile,
|
|
76
76
|
createUnprocessedFileFromPath,
|
|
77
|
+
downloadRender,
|
|
77
78
|
getISOBMFFFileTranscription,
|
|
78
79
|
getIsobmffProcessInfo,
|
|
79
80
|
getIsobmffProcessProgress,
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
import react from "@vitejs/plugin-react";
|
|
4
|
+
import * as tar from "tar";
|
|
4
5
|
import { build } from "vite";
|
|
5
6
|
import { viteSingleFile } from "vite-plugin-singlefile";
|
|
6
|
-
import
|
|
7
|
-
import * as tar from "tar";
|
|
7
|
+
import tsconfigPathsPlugin from "vite-tsconfig-paths";
|
|
8
8
|
import { randomUUID } from "node:crypto";
|
|
9
9
|
import { createReadableStreamFromReadable } from "../utils/createReadableStreamFromReadable.js";
|
|
10
10
|
const bundleRender = async (options) => {
|
|
11
11
|
const outDir = path.join(process.cwd(), "renders", randomUUID());
|
|
12
|
-
console.log("outDir", outDir);
|
|
13
12
|
await build({
|
|
14
13
|
root: options.root,
|
|
15
14
|
define: {
|
|
@@ -22,7 +21,7 @@ const bundleRender = async (options) => {
|
|
|
22
21
|
}
|
|
23
22
|
},
|
|
24
23
|
plugins: [
|
|
25
|
-
|
|
24
|
+
tsconfigPathsPlugin(),
|
|
26
25
|
react({
|
|
27
26
|
include: "**/*.{jsx,js,tsx,ts}",
|
|
28
27
|
jsxRuntime: "automatic"
|
|
@@ -37,7 +36,6 @@ const bundleRender = async (options) => {
|
|
|
37
36
|
},
|
|
38
37
|
["."]
|
|
39
38
|
);
|
|
40
|
-
console.log("outDir", outDir);
|
|
41
39
|
const passthrough = new PassThrough();
|
|
42
40
|
tarStream.pipe(passthrough);
|
|
43
41
|
const tarReadStream = createReadableStreamFromReadable(passthrough);
|
|
@@ -50,3 +50,4 @@ export declare const uploadRender: (client: Client, renderId: string, fileStream
|
|
|
50
50
|
export declare const getRenderInfo: (client: Client, id: string) => Promise<LookupRenderByMd5Result>;
|
|
51
51
|
export declare const lookupRenderByMd5: (client: Client, md5: string) => Promise<LookupRenderByMd5Result | null>;
|
|
52
52
|
export declare const getRenderProgress: (client: Client, id: string) => Promise<CompletionIterator>;
|
|
53
|
+
export declare const downloadRender: (client: Client, id: string) => Promise<Response>;
|
|
@@ -14,7 +14,7 @@ const CreateRenderPayload = z.object({
|
|
|
14
14
|
const createRender = async (client, payload) => {
|
|
15
15
|
log("Creating render", payload);
|
|
16
16
|
payload.strategy ??= "v1";
|
|
17
|
-
payload.work_slice_ms ??=
|
|
17
|
+
payload.work_slice_ms ??= 2e3;
|
|
18
18
|
const response = await client.authenticatedFetch("/api/v1/renders", {
|
|
19
19
|
method: "POST",
|
|
20
20
|
body: JSON.stringify(payload)
|
|
@@ -71,9 +71,19 @@ const getRenderProgress = async (client, id) => {
|
|
|
71
71
|
);
|
|
72
72
|
return new CompletionIterator(eventSource);
|
|
73
73
|
};
|
|
74
|
+
const downloadRender = async (client, id) => {
|
|
75
|
+
const response = await client.authenticatedFetch(`/api/v1/renders/${id}.mp4`);
|
|
76
|
+
if (response.ok) {
|
|
77
|
+
return response;
|
|
78
|
+
}
|
|
79
|
+
throw new Error(
|
|
80
|
+
`Failed to download render ${id} ${response.status} ${response.statusText}`
|
|
81
|
+
);
|
|
82
|
+
};
|
|
74
83
|
export {
|
|
75
84
|
CreateRenderPayload,
|
|
76
85
|
createRender,
|
|
86
|
+
downloadRender,
|
|
77
87
|
getRenderInfo,
|
|
78
88
|
getRenderProgress,
|
|
79
89
|
lookupRenderByMd5,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@editframe/api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0-beta.3",
|
|
4
4
|
"description": "API functions for EditFrame",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"vite-plugin-dts": "^4.0.3"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@editframe/assets": "0.
|
|
42
|
+
"@editframe/assets": "0.15.0-beta.3",
|
|
43
43
|
"@vitejs/plugin-react": "^4.3.4",
|
|
44
44
|
"vite-tsconfig-paths": "^4.3.2",
|
|
45
45
|
"vite": "^5.4.11",
|
|
@@ -2,11 +2,10 @@ import path from "node:path";
|
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
|
|
4
4
|
import react from "@vitejs/plugin-react";
|
|
5
|
+
import * as tar from "tar";
|
|
5
6
|
import { build } from "vite";
|
|
6
7
|
import { viteSingleFile } from "vite-plugin-singlefile";
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
import * as tar from "tar";
|
|
8
|
+
import tsconfigPathsPlugin from "vite-tsconfig-paths";
|
|
10
9
|
|
|
11
10
|
import { randomUUID } from "node:crypto";
|
|
12
11
|
import { createReadableStreamFromReadable } from "../utils/createReadableStreamFromReadable.ts";
|
|
@@ -19,8 +18,6 @@ interface BundlerOptions {
|
|
|
19
18
|
export const bundleRender = async (options: BundlerOptions) => {
|
|
20
19
|
const outDir = path.join(process.cwd(), "renders", randomUUID());
|
|
21
20
|
|
|
22
|
-
console.log("outDir", outDir);
|
|
23
|
-
|
|
24
21
|
await build({
|
|
25
22
|
root: options.root,
|
|
26
23
|
define: {
|
|
@@ -33,7 +30,7 @@ export const bundleRender = async (options: BundlerOptions) => {
|
|
|
33
30
|
},
|
|
34
31
|
},
|
|
35
32
|
plugins: [
|
|
36
|
-
|
|
33
|
+
tsconfigPathsPlugin(),
|
|
37
34
|
react({
|
|
38
35
|
include: "**/*.{jsx,js,tsx,ts}",
|
|
39
36
|
jsxRuntime: "automatic",
|
|
@@ -50,8 +47,6 @@ export const bundleRender = async (options: BundlerOptions) => {
|
|
|
50
47
|
["."],
|
|
51
48
|
);
|
|
52
49
|
|
|
53
|
-
console.log("outDir", outDir);
|
|
54
|
-
|
|
55
50
|
const passthrough = new PassThrough();
|
|
56
51
|
tarStream.pipe(passthrough);
|
|
57
52
|
const tarReadStream = createReadableStreamFromReadable(passthrough);
|
package/src/resources/renders.ts
CHANGED
|
@@ -58,7 +58,7 @@ export const createRender = async (
|
|
|
58
58
|
// And if we set the default last, the type is not inferred correctly
|
|
59
59
|
// Manually applying defaults here is a hack
|
|
60
60
|
payload.strategy ??= "v1";
|
|
61
|
-
payload.work_slice_ms ??=
|
|
61
|
+
payload.work_slice_ms ??= 2_000;
|
|
62
62
|
const response = await client.authenticatedFetch("/api/v1/renders", {
|
|
63
63
|
method: "POST",
|
|
64
64
|
body: JSON.stringify(payload),
|
|
@@ -134,3 +134,15 @@ export const getRenderProgress = async (client: Client, id: string) => {
|
|
|
134
134
|
|
|
135
135
|
return new CompletionIterator(eventSource);
|
|
136
136
|
};
|
|
137
|
+
|
|
138
|
+
export const downloadRender = async (client: Client, id: string) => {
|
|
139
|
+
const response = await client.authenticatedFetch(`/api/v1/renders/${id}.mp4`);
|
|
140
|
+
|
|
141
|
+
if (response.ok) {
|
|
142
|
+
return response;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
throw new Error(
|
|
146
|
+
`Failed to download render ${id} ${response.status} ${response.statusText}`,
|
|
147
|
+
);
|
|
148
|
+
};
|