@revideo/create 0.1.3 → 0.1.4-alpha.874
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 +12 -60
- package/package.json +2 -2
- package/template-2d-ts/package.json +3 -2
- package/template-2d-ts/src/render.ts +3 -0
- package/template-2d-ts/src/scenes/example.tsx +52 -6
- package/template-2d-ts/tsconfig.json +5 -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/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-video',
|
|
67
67
|
validate: value =>
|
|
68
68
|
isValidPackageName(value)
|
|
69
69
|
? true
|
|
@@ -95,75 +95,30 @@ 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 = ['core', 'ffmpeg'];
|
|
106
|
+
const language = 'ts';
|
|
107
|
+
|
|
153
108
|
const templateDir = path.resolve(
|
|
154
109
|
fileURLToPath(import.meta.url),
|
|
155
110
|
'..',
|
|
156
|
-
`template-2d-${
|
|
111
|
+
`template-2d-${language}`,
|
|
157
112
|
);
|
|
158
113
|
copyDirectory(templateDir, response.path);
|
|
159
|
-
createConfig(response);
|
|
114
|
+
createConfig(response, language);
|
|
160
115
|
|
|
161
116
|
const manifest = JSON.parse(
|
|
162
117
|
fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8'),
|
|
163
118
|
);
|
|
164
119
|
manifest.name = response.name;
|
|
165
120
|
manifest.dependencies ??= {};
|
|
166
|
-
for (const plugin of
|
|
121
|
+
for (const plugin of plugins) {
|
|
167
122
|
const data = PLUGINS[plugin];
|
|
168
123
|
if (data.version) {
|
|
169
124
|
manifest.dependencies[data.package] = data.version;
|
|
@@ -226,19 +181,16 @@ function copy(src, dest) {
|
|
|
226
181
|
}
|
|
227
182
|
}
|
|
228
183
|
|
|
229
|
-
function createConfig(response) {
|
|
184
|
+
function createConfig(response, language) {
|
|
230
185
|
const imports = [];
|
|
231
186
|
const plugins = [];
|
|
232
|
-
for (const plugin of
|
|
187
|
+
for (const plugin of plugins) {
|
|
233
188
|
const data = PLUGINS[plugin];
|
|
234
189
|
imports.push(`import ${data.variable} from '${data.package}';\n`);
|
|
235
190
|
plugins.push(`${data.variable}(${data.options?.(response) ?? ''}),`);
|
|
236
191
|
}
|
|
237
192
|
|
|
238
|
-
const configFile = path.resolve(
|
|
239
|
-
response.path,
|
|
240
|
-
`vite.config.${response.language}`,
|
|
241
|
-
);
|
|
193
|
+
const configFile = path.resolve(response.path, `vite.config.${language}`);
|
|
242
194
|
|
|
243
195
|
fs.writeFileSync(
|
|
244
196
|
configFile,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revideo/create",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4-alpha.874+6fcd2b2",
|
|
4
4
|
"description": "Quickly scaffold revideo projects",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "revideo",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"minimist": "^1.2.8",
|
|
30
30
|
"prompts": "^2.4.2"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "6fcd2b24de817a208b9253d99c2d03f783b158d8"
|
|
33
33
|
}
|
|
@@ -5,7 +5,8 @@
|
|
|
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
12
|
"@revideo/core": "*",
|
|
@@ -17,4 +18,4 @@
|
|
|
17
18
|
"typescript": "^5.2.2",
|
|
18
19
|
"vite": "^4.5"
|
|
19
20
|
}
|
|
20
|
-
}
|
|
21
|
+
}
|
|
@@ -1,12 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {createRef} from '@revideo/core';
|
|
1
|
+
import {Audio, Img, Layout, Rect, Txt, 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 upperBox = createRef<Rect>();
|
|
6
|
+
const logoRef = createRef<Img>();
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
view.add(
|
|
9
|
+
<>
|
|
10
|
+
<Layout direction={'column'} size={[1024, 1792]} layout={true}>
|
|
11
|
+
<Rect
|
|
12
|
+
fill={'#FFFFFF'}
|
|
13
|
+
size={['100%', '40%']}
|
|
14
|
+
direction={'column'}
|
|
15
|
+
gap={'20%'}
|
|
16
|
+
ref={upperBox}
|
|
17
|
+
justifyContent={'center'}
|
|
18
|
+
alignItems={'center'}
|
|
19
|
+
layout={true}
|
|
20
|
+
/>
|
|
21
|
+
<Video
|
|
22
|
+
src={
|
|
23
|
+
'https://revideo-example-assets.s3.amazonaws.com/aurora-borealis.mp4'
|
|
24
|
+
}
|
|
25
|
+
size={['100%', '60%']}
|
|
26
|
+
play={true}
|
|
27
|
+
/>
|
|
28
|
+
</Layout>
|
|
29
|
+
<Audio
|
|
30
|
+
src={
|
|
31
|
+
'https://revideo-example-assets.s3.amazonaws.com/heart-on-my-sleeve.mp3'
|
|
32
|
+
}
|
|
33
|
+
play={true}
|
|
34
|
+
time={6.6}
|
|
35
|
+
/>
|
|
36
|
+
</>,
|
|
37
|
+
);
|
|
8
38
|
|
|
9
|
-
|
|
39
|
+
yield* waitFor(0.5);
|
|
10
40
|
|
|
11
|
-
|
|
41
|
+
upperBox().add(
|
|
42
|
+
<Txt fontWeight={700} fontSize={70}>
|
|
43
|
+
Hello! Welcome to
|
|
44
|
+
</Txt>,
|
|
45
|
+
);
|
|
46
|
+
upperBox().add(
|
|
47
|
+
<Img
|
|
48
|
+
width={'1%'}
|
|
49
|
+
ref={logoRef}
|
|
50
|
+
src={'https://revideo-example-assets.s3.amazonaws.com/revideo-banner.png'}
|
|
51
|
+
/>,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
yield* chain(
|
|
55
|
+
all(logoRef().scale(30, 2), logoRef().rotation(360, 2)),
|
|
56
|
+
logoRef().scale(40, 2),
|
|
57
|
+
);
|
|
12
58
|
});
|
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
|
-
});
|