@revideo/renderer 0.2.2 → 0.2.4-alpha.894
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/client/render.d.ts +5 -4
- package/dist/client/render.js +13 -13
- package/dist/index.js +35 -19
- package/dist/main.d.ts +5 -1
- package/dist/main.js +42 -33
- package/dist/plugin.d.ts +5 -2
- package/dist/plugin.js +23 -21
- package/package.json +3 -3
package/dist/client/render.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {Project} from '@revideo/core';
|
|
2
2
|
declare global {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
interface Window {
|
|
4
|
+
onRenderComplete: () => void;
|
|
5
|
+
onRenderFailed: (msg: string) => void;
|
|
6
|
+
}
|
|
6
7
|
}
|
|
7
8
|
export declare const render: (project: Project) => Promise<void>;
|
package/dist/client/render.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const render = async
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import {Renderer} from '@revideo/core';
|
|
2
|
+
export const render = async project => {
|
|
3
|
+
try {
|
|
4
|
+
const renderer = new Renderer(project);
|
|
5
|
+
await renderer.render({
|
|
6
|
+
...project.meta.getFullRenderingSettings(),
|
|
7
|
+
name: project.name,
|
|
8
|
+
});
|
|
9
|
+
window.onRenderComplete();
|
|
10
|
+
} catch (e) {
|
|
11
|
+
window.onRenderFailed(e.message); // Pass the error message to the failure handler
|
|
12
|
+
}
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpZW50L3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBU3ZDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQy9DLElBQUksQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDMUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0RBQWdEO0lBQ3BGLENBQUM7QUFDSCxDQUFDLENBQUMifQ==
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding =
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
var __createBinding =
|
|
3
|
+
(this && this.__createBinding) ||
|
|
4
|
+
(Object.create
|
|
5
|
+
? function (o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (
|
|
9
|
+
!desc ||
|
|
10
|
+
('get' in desc ? !m.__esModule : desc.writable || desc.configurable)
|
|
11
|
+
) {
|
|
12
|
+
desc = {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return m[k];
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}
|
|
21
|
+
: function (o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
});
|
|
25
|
+
var __exportStar =
|
|
26
|
+
(this && this.__exportStar) ||
|
|
27
|
+
function (m, exports) {
|
|
28
|
+
for (var p in m)
|
|
29
|
+
if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p))
|
|
30
|
+
__createBinding(exports, m, p);
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, '__esModule', {value: true});
|
|
33
|
+
__exportStar(require('./main'), exports);
|
|
34
|
+
__exportStar(require('./plugin'), exports);
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zZXJ2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2QiwyQ0FBeUIifQ==
|
package/dist/main.d.ts
CHANGED
package/dist/main.js
CHANGED
|
@@ -1,37 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', {value: true});
|
|
3
3
|
exports.renderVideo = void 0;
|
|
4
|
-
const path = require(
|
|
5
|
-
const puppeteer_1 = require(
|
|
6
|
-
const vite_1 = require(
|
|
7
|
-
const plugin_1 = require(
|
|
8
|
-
const renderVideo = async (configFile, params) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const puppeteer_1 = require('puppeteer');
|
|
6
|
+
const vite_1 = require('vite');
|
|
7
|
+
const plugin_1 = require('./plugin');
|
|
8
|
+
const renderVideo = async (configFile, params, outName = 'project') => {
|
|
9
|
+
console.log('Rendering...');
|
|
10
|
+
const resolvedConfigPath = path.resolve(process.cwd(), configFile);
|
|
11
|
+
const [browser, server] = await Promise.all([
|
|
12
|
+
puppeteer_1.default.launch({headless: true}),
|
|
13
|
+
(0, vite_1.createServer)({
|
|
14
|
+
configFile: resolvedConfigPath,
|
|
15
|
+
server: {
|
|
16
|
+
port: 9000,
|
|
17
|
+
},
|
|
18
|
+
plugins: [(0, plugin_1.rendererPlugin)(params, outName)],
|
|
19
|
+
}).then(server => server.listen()),
|
|
20
|
+
]);
|
|
21
|
+
const page = await browser.newPage();
|
|
22
|
+
if (!server.httpServer) {
|
|
23
|
+
throw new Error('HTTP server is not initialized');
|
|
24
|
+
}
|
|
25
|
+
const address = server.httpServer.address();
|
|
26
|
+
const port = address && typeof address === 'object' ? address.port : null;
|
|
27
|
+
if (port === null) {
|
|
28
|
+
throw new Error('Server address is null');
|
|
29
|
+
}
|
|
30
|
+
const renderingComplete = new Promise((resolve, reject) => {
|
|
31
|
+
page.exposeFunction('onRenderComplete', async () => {
|
|
32
|
+
await Promise.all([browser.close(), server.close()]);
|
|
33
|
+
console.log('Rendering complete.');
|
|
34
|
+
resolve(); // Resolve the promise when rendering is complete
|
|
34
35
|
});
|
|
36
|
+
page.exposeFunction('onRenderFailed', async errorMessage => {
|
|
37
|
+
await Promise.all([browser.close(), server.close()]);
|
|
38
|
+
console.error('Rendering failed:', errorMessage);
|
|
39
|
+
reject(new Error(errorMessage)); // Reject the promise when rendering fails
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
await page.goto(`http://localhost:${port}/render`);
|
|
43
|
+
await renderingComplete;
|
|
35
44
|
};
|
|
36
45
|
exports.renderVideo = renderVideo;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NlcnZlci9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3Qix5Q0FBa0M7QUFDbEMsK0JBQWtDO0FBQ2xDLHFDQUF3QztBQUVqQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQzlCLFVBQWtCLEVBQ2xCLE1BQWdDLEVBQ2hDLFVBQW1CLFNBQVMsRUFDNUIsRUFBRTtJQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFNUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVuRSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMxQyxtQkFBUyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztRQUNsQyxJQUFBLG1CQUFZLEVBQUM7WUFDWCxVQUFVLEVBQUUsa0JBQWtCO1lBQzlCLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsSUFBSTthQUNYO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBQSx1QkFBYyxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ25DLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLE1BQU0sSUFBSSxHQUFHLE9BQU8sSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUMsQ0FBQyxpREFBaUQ7UUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBRSxZQUFvQixFQUFFLEVBQUU7WUFDbkUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckQsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztRQUM3RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBRW5ELE1BQU0saUJBQWlCLENBQUM7QUFDMUIsQ0FBQyxDQUFBO0FBL0NZLFFBQUEsV0FBVyxlQStDdkIifQ==
|
package/dist/plugin.d.ts
CHANGED
package/dist/plugin.js
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', {value: true});
|
|
3
3
|
exports.rendererPlugin = void 0;
|
|
4
|
-
const fs = require(
|
|
5
|
-
const path = require(
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
6
|
const RendererPath = path.resolve(__dirname, 'renderer.html');
|
|
7
7
|
const Content = fs.readFileSync(RendererPath, 'utf-8');
|
|
8
8
|
const HtmlParts = Content.toString().split('{{source}}');
|
|
9
9
|
function createHtml(src) {
|
|
10
|
-
|
|
10
|
+
return HtmlParts[0] + src + HtmlParts[1];
|
|
11
11
|
}
|
|
12
|
-
function rendererPlugin(params) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
function rendererPlugin(params, outName) {
|
|
13
|
+
console.log('outName', outName);
|
|
14
|
+
return {
|
|
15
|
+
name: 'revideo-renderer-plugin',
|
|
16
|
+
async load(id) {
|
|
17
|
+
if (id.startsWith('\x00virtual:renderer')) {
|
|
18
|
+
return `\
|
|
18
19
|
import {render} from '@revideo/renderer/dist/client/render';
|
|
19
20
|
import project from './src/project.ts?project';
|
|
20
21
|
|
|
22
|
+
project.name = '${outName}'; // ensures that we save file to outName.mp4
|
|
21
23
|
project.variables = ${params ? `JSON.parse(\`${JSON.stringify(params)}\`)` : 'project.variables'};
|
|
22
24
|
render(project);
|
|
23
25
|
`;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
configureServer(server) {
|
|
29
|
+
server.middlewares.use('/render', (_req, res) => {
|
|
30
|
+
res.setHeader('Content-Type', 'text/html');
|
|
31
|
+
res.end(createHtml(`/@id/__x00__virtual:renderer`));
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
};
|
|
33
35
|
}
|
|
34
36
|
exports.rendererPlugin = rendererPlugin;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc2VydmVyL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQzlELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFekQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsTUFBZ0MsRUFBRSxPQUFnQjtJQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVoQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLHlCQUF5QjtRQUUvQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxPQUFPOzs7OzhCQUllLE9BQU87a0NBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7O2FBRS9GLENBQUM7WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUVELGVBQWUsQ0FBQyxNQUFNO1lBQ3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDOUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzNDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTFCRCx3Q0EwQkMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revideo/renderer",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4-alpha.894+1d33331",
|
|
4
4
|
"description": "A headless renderer for revideo",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"author": "revideo",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"puppeteer": "^22.6.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@revideo/core": "^0.2.
|
|
26
|
+
"@revideo/core": "^0.2.4-alpha.894+1d33331",
|
|
27
27
|
"ncp": "^2.0.0"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "1d33331ab697434bac6acb926243f641e4106b18"
|
|
30
30
|
}
|