@revideo/create 0.1.5 → 0.1.8
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/index.js +15 -63
- package/package.json +7 -6
- package/template-2d-ts/node_modules/.vite/deps_temp_1df31ee2/package.json +3 -0
- package/template-2d-ts/package.json +7 -5
- package/template-2d-ts/src/project.meta +31 -0
- package/template-2d-ts/src/render.ts +3 -0
- package/template-2d-ts/src/scenes/example.tsx +32 -6
- package/template-2d-ts/tsconfig.json +6 -1
- package/template-2d-js/gitignore +0 -15
- package/template-2d-js/package.json +0 -19
- package/template-2d-js/public/.gitkeep +0 -0
- package/template-2d-js/src/project.js +0 -7
- package/template-2d-js/src/scenes/example.jsx +0 -12
- package/template-2d-ts/gitignore +0 -15
package/index.js
CHANGED
|
@@ -29,7 +29,7 @@ const PLUGINS = {
|
|
|
29
29
|
ffmpeg: {
|
|
30
30
|
package: '@revideo/ffmpeg',
|
|
31
31
|
variable: 'ffmpeg',
|
|
32
|
-
version: '^0.1.
|
|
32
|
+
version: '^0.1.5',
|
|
33
33
|
},
|
|
34
34
|
};
|
|
35
35
|
|
|
@@ -63,7 +63,7 @@ const PLUGINS = {
|
|
|
63
63
|
type: 'text',
|
|
64
64
|
name: 'name',
|
|
65
65
|
message: 'Project name',
|
|
66
|
-
initial: 'my-
|
|
66
|
+
initial: 'my-revideo-project',
|
|
67
67
|
validate: value =>
|
|
68
68
|
isValidPackageName(value)
|
|
69
69
|
? true
|
|
@@ -95,76 +95,28 @@ const PLUGINS = {
|
|
|
95
95
|
},
|
|
96
96
|
format: value => path.resolve(value),
|
|
97
97
|
},
|
|
98
|
-
{
|
|
99
|
-
type: 'select',
|
|
100
|
-
name: 'language',
|
|
101
|
-
message: 'Language',
|
|
102
|
-
choices: [
|
|
103
|
-
{
|
|
104
|
-
title: 'TypeScript (Recommended)',
|
|
105
|
-
value: 'ts',
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
title: 'JavaScript',
|
|
109
|
-
value: 'js',
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
type: 'multiselect',
|
|
115
|
-
name: 'plugins',
|
|
116
|
-
message: 'How would you like to render your animation?',
|
|
117
|
-
choices: [
|
|
118
|
-
{
|
|
119
|
-
title: 'Image sequence',
|
|
120
|
-
value: 'core',
|
|
121
|
-
disabled: true,
|
|
122
|
-
selected: true,
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
title: 'Video (FFmpeg)',
|
|
126
|
-
value: 'ffmpeg',
|
|
127
|
-
selected: true,
|
|
128
|
-
},
|
|
129
|
-
],
|
|
130
|
-
warn: 'This option is always included.',
|
|
131
|
-
onRender() {
|
|
132
|
-
this.value[0].selected = true;
|
|
133
|
-
},
|
|
134
|
-
validate: value => {
|
|
135
|
-
if (!Array.isArray(value)) {
|
|
136
|
-
return '"plugins" option must be an array.';
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
if (!value.includes('core')) {
|
|
140
|
-
return 'Image sequence is required.';
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return true;
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
98
|
]);
|
|
147
99
|
|
|
148
|
-
if (!response.
|
|
100
|
+
if (!response.path) {
|
|
149
101
|
console.log(kleur.red('× Scaffolding aborted by the user.\n'));
|
|
150
102
|
return;
|
|
151
103
|
}
|
|
152
104
|
|
|
105
|
+
const plugins = [PLUGINS.core, PLUGINS.ffmpeg];
|
|
153
106
|
const templateDir = path.resolve(
|
|
154
107
|
fileURLToPath(import.meta.url),
|
|
155
108
|
'..',
|
|
156
|
-
`template-2d
|
|
109
|
+
`template-2d-ts`,
|
|
157
110
|
);
|
|
158
111
|
copyDirectory(templateDir, response.path);
|
|
159
|
-
createConfig(response);
|
|
112
|
+
createConfig(response, plugins);
|
|
160
113
|
|
|
161
114
|
const manifest = JSON.parse(
|
|
162
115
|
fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8'),
|
|
163
116
|
);
|
|
164
117
|
manifest.name = response.name;
|
|
165
118
|
manifest.dependencies ??= {};
|
|
166
|
-
for (const
|
|
167
|
-
const data = PLUGINS[plugin];
|
|
119
|
+
for (const data of plugins) {
|
|
168
120
|
if (data.version) {
|
|
169
121
|
manifest.dependencies[data.package] = data.version;
|
|
170
122
|
}
|
|
@@ -226,27 +178,27 @@ function copy(src, dest) {
|
|
|
226
178
|
}
|
|
227
179
|
}
|
|
228
180
|
|
|
229
|
-
function createConfig(response) {
|
|
181
|
+
function createConfig(response, selectedPlugins) {
|
|
230
182
|
const imports = [];
|
|
231
183
|
const plugins = [];
|
|
232
|
-
for (const
|
|
233
|
-
const data = PLUGINS[plugin];
|
|
184
|
+
for (const data of selectedPlugins) {
|
|
234
185
|
imports.push(`import ${data.variable} from '${data.package}';\n`);
|
|
235
186
|
plugins.push(`${data.variable}(${data.options?.(response) ?? ''}),`);
|
|
236
187
|
}
|
|
237
188
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
);
|
|
189
|
+
imports.push("import { rendererPlugin } from 'revideo/renderer';");
|
|
190
|
+
plugins.push('rendererPlugin()');
|
|
191
|
+
|
|
192
|
+
const configFile = path.resolve(response.path, `vite.config.ts`);
|
|
242
193
|
|
|
243
194
|
fs.writeFileSync(
|
|
244
195
|
configFile,
|
|
245
196
|
`import {defineConfig} from 'vite';
|
|
246
197
|
${imports.join('')}
|
|
198
|
+
import { rendererPlugin } from '@revideo/renderer';
|
|
247
199
|
export default defineConfig({
|
|
248
200
|
plugins: [
|
|
249
|
-
${plugins.join('\n ')}
|
|
201
|
+
${plugins.join('\n ')},
|
|
250
202
|
],
|
|
251
203
|
});
|
|
252
204
|
`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revideo/create",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Quickly scaffold revideo projects",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "revideo",
|
|
@@ -20,14 +20,15 @@
|
|
|
20
20
|
"url": "https://github.com/havenhq/revideo.git"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@revideo/2d": "^0.1.
|
|
24
|
-
"@revideo/core": "^0.1.
|
|
25
|
-
"@revideo/
|
|
26
|
-
"@revideo/
|
|
23
|
+
"@revideo/2d": "^0.1.8",
|
|
24
|
+
"@revideo/core": "^0.1.8",
|
|
25
|
+
"@revideo/renderer": "^0.1.8",
|
|
26
|
+
"@revideo/ui": "^0.1.8",
|
|
27
|
+
"@revideo/vite-plugin": "^0.1.8"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
30
|
"minimist": "^1.2.8",
|
|
30
31
|
"prompts": "^2.4.2"
|
|
31
32
|
},
|
|
32
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "308ff0a4c35544fe0182d1037914f5ee02639f0b"
|
|
33
34
|
}
|
|
@@ -5,15 +5,17 @@
|
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "vite",
|
|
7
7
|
"serve": "vite",
|
|
8
|
-
"build": "tsc && vite build"
|
|
8
|
+
"build": "tsc && vite build",
|
|
9
|
+
"render": "tsc && node dist/render.js"
|
|
9
10
|
},
|
|
10
11
|
"dependencies": {
|
|
11
|
-
"@revideo/core": "
|
|
12
|
-
"@revideo/2d": "
|
|
12
|
+
"@revideo/core": "^0.1.7",
|
|
13
|
+
"@revideo/2d": "^0.1.7",
|
|
14
|
+
"@revideo/renderer": "^0.1.7"
|
|
13
15
|
},
|
|
14
16
|
"devDependencies": {
|
|
15
|
-
"@revideo/ui": "
|
|
16
|
-
"@revideo/vite-plugin": "
|
|
17
|
+
"@revideo/ui": "^0.1.7",
|
|
18
|
+
"@revideo/vite-plugin": "^0.1.7",
|
|
17
19
|
"typescript": "^5.2.2",
|
|
18
20
|
"vite": "^4.5"
|
|
19
21
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 0,
|
|
3
|
+
"shared": {
|
|
4
|
+
"background": null,
|
|
5
|
+
"range": [
|
|
6
|
+
0,
|
|
7
|
+
null
|
|
8
|
+
],
|
|
9
|
+
"size": {
|
|
10
|
+
"x": 1920,
|
|
11
|
+
"y": 1080
|
|
12
|
+
},
|
|
13
|
+
"audioOffset": 0
|
|
14
|
+
},
|
|
15
|
+
"preview": {
|
|
16
|
+
"fps": 30,
|
|
17
|
+
"resolutionScale": 1
|
|
18
|
+
},
|
|
19
|
+
"rendering": {
|
|
20
|
+
"fps": 30,
|
|
21
|
+
"resolutionScale": 1,
|
|
22
|
+
"colorSpace": "srgb",
|
|
23
|
+
"exporter": {
|
|
24
|
+
"name": "@revideo/ffmpeg",
|
|
25
|
+
"options": {
|
|
26
|
+
"fastStart": true,
|
|
27
|
+
"includeAudio": true
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,12 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {createRef} from '@revideo/core';
|
|
1
|
+
import {Audio, Img, Video, makeScene2D} from '@revideo/2d';
|
|
2
|
+
import {all, chain, createRef, waitFor} from '@revideo/core';
|
|
3
3
|
|
|
4
4
|
export default makeScene2D(function* (view) {
|
|
5
|
-
|
|
5
|
+
const logoRef = createRef<Img>();
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
yield view.add(
|
|
8
|
+
<>
|
|
9
|
+
<Video
|
|
10
|
+
src={'https://revideo-example-assets.s3.amazonaws.com/stars.mp4'}
|
|
11
|
+
size={['100%', '100%']}
|
|
12
|
+
play={true}
|
|
13
|
+
/>
|
|
14
|
+
<Audio
|
|
15
|
+
src={'https://revideo-example-assets.s3.amazonaws.com/chill-beat.mp3'}
|
|
16
|
+
play={true}
|
|
17
|
+
time={17.0}
|
|
18
|
+
/>
|
|
19
|
+
</>,
|
|
20
|
+
);
|
|
8
21
|
|
|
9
|
-
|
|
22
|
+
yield* waitFor(1);
|
|
10
23
|
|
|
11
|
-
|
|
24
|
+
view.add(
|
|
25
|
+
<Img
|
|
26
|
+
width={'1%'}
|
|
27
|
+
ref={logoRef}
|
|
28
|
+
src={
|
|
29
|
+
'https://revideo-example-assets.s3.amazonaws.com/revideo-logo-white.png'
|
|
30
|
+
}
|
|
31
|
+
/>,
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
yield* chain(
|
|
35
|
+
all(logoRef().scale(40, 2), logoRef().rotation(360, 2)),
|
|
36
|
+
logoRef().scale(60, 1),
|
|
37
|
+
);
|
|
12
38
|
});
|
package/template-2d-js/gitignore
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "2d-starter",
|
|
3
|
-
"private": true,
|
|
4
|
-
"version": "0.0.0",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"start": "vite",
|
|
7
|
-
"serve": "vite",
|
|
8
|
-
"build": "vite build"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@revideo/core": "*",
|
|
12
|
-
"@revideo/2d": "*"
|
|
13
|
-
},
|
|
14
|
-
"devDependencies": {
|
|
15
|
-
"@revideo/ui": "*",
|
|
16
|
-
"@revideo/vite-plugin": "*",
|
|
17
|
-
"vite": "^4.5"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
File without changes
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {Circle, makeScene2D} from '@revideo/2d';
|
|
2
|
-
import {createRef} from '@revideo/core';
|
|
3
|
-
|
|
4
|
-
export default makeScene2D(function* (view) {
|
|
5
|
-
// Create your animations here
|
|
6
|
-
|
|
7
|
-
const circle = createRef();
|
|
8
|
-
|
|
9
|
-
view.add(<Circle ref={circle} size={320} fill={'lightseagreen'} />);
|
|
10
|
-
|
|
11
|
-
yield* circle().scale(2, 2).to(1, 2);
|
|
12
|
-
});
|