create-video 4.0.527 → 4.0.528

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.
@@ -207,52 +207,6 @@ var FEATURED_TEMPLATES = [
207
207
  showStackblitz: false,
208
208
  previewLabel: "Live Demo"
209
209
  },
210
- {
211
- homePageLabel: "Next.js (No Tailwind)",
212
- shortName: "Next.js (No Tailwind)",
213
- org: "remotion-dev",
214
- repoName: "template-next-app-dir",
215
- description: "SaaS template for video generation apps",
216
- longerDescription: "A SaaS starter kit which has the Remotion Player and rendering via Remotion Lambda built-in. Our recommended choice for people who want to build an app that can generate videos.",
217
- promoVideo: {
218
- width: 1280,
219
- height: 720,
220
- muxId: "RufnZIJZh6L1MAaeG02jnXuM9pK96tNuHRxmXHbWqCBI"
221
- },
222
- cliId: "next-no-tailwind",
223
- type: "video",
224
- defaultBranch: "main",
225
- featuredOnHomePage: null,
226
- previewURL: "https://next.remotion.dev",
227
- templateInMonorepo: "template-next-app",
228
- previewLabel: "Live Demo",
229
- allowEnableTailwind: false,
230
- contributedBy: null,
231
- showStackblitz: true
232
- },
233
- {
234
- homePageLabel: "Next.js (Pages dir)",
235
- shortName: "Next.js (Pages dir)",
236
- org: "remotion-dev",
237
- repoName: "template-next-pages-dir",
238
- description: "SaaS template for video generation apps",
239
- longerDescription: "A SaaS starter kit which has the Remotion Player and rendering via Remotion Lambda built-in. Our recommended choice for people who want to build an app that can generate videos.",
240
- promoVideo: {
241
- width: 1280,
242
- height: 720,
243
- muxId: "RufnZIJZh6L1MAaeG02jnXuM9pK96tNuHRxmXHbWqCBI"
244
- },
245
- cliId: "next-pages-dir",
246
- type: "video",
247
- defaultBranch: "main",
248
- featuredOnHomePage: null,
249
- previewURL: "https://next.remotion.dev",
250
- previewLabel: "Live Demo",
251
- templateInMonorepo: "template-next-pages",
252
- allowEnableTailwind: false,
253
- contributedBy: null,
254
- showStackblitz: true
255
- },
256
210
  {
257
211
  homePageLabel: "Recorder",
258
212
  shortName: "Recorder",
@@ -299,29 +253,6 @@ var FEATURED_TEMPLATES = [
299
253
  contributedBy: "ASchwad",
300
254
  showStackblitz: false
301
255
  },
302
- {
303
- homePageLabel: "JavaScript",
304
- shortName: "Hello World (JavaScript)",
305
- org: "remotion-dev",
306
- repoName: "template-helloworld-javascript",
307
- description: "The default starter template in plain JS",
308
- longerDescription: "The Hello World template, but in plain JavaScript. Recommended for people who detest TypeScript.",
309
- promoVideo: {
310
- muxId: "dRIuc00f8QWnKedM8GBGPqXJWqU01DPJFgPTHpJgixxas",
311
- width: 1920,
312
- height: 1080
313
- },
314
- cliId: "javascript",
315
- type: "video",
316
- defaultBranch: "main",
317
- featuredOnHomePage: null,
318
- previewURL: "https://template-helloworld-javascript.vercel.app/?/HelloWorld",
319
- previewLabel: null,
320
- templateInMonorepo: "template-javascript",
321
- allowEnableTailwind: true,
322
- contributedBy: null,
323
- showStackblitz: true
324
- },
325
256
  {
326
257
  homePageLabel: "Render Server (Express.js)",
327
258
  shortName: "Render Server",
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.openInEditorFlow = void 0;
7
- const node_path_1 = __importDefault(require("node:path"));
8
7
  const log_1 = require("./log");
9
8
  const open_in_editor_1 = require("./open-in-editor");
9
+ const patch_readme_1 = require("./patch-readme");
10
10
  const prompts_1 = __importDefault(require("./prompts"));
11
11
  const openInEditorFlow = async (projectRoot) => {
12
12
  const editors = await (0, open_in_editor_1.guessEditor)();
@@ -31,14 +31,15 @@ const openInEditorFlow = async (projectRoot) => {
31
31
  vsCodeNewWindow: true,
32
32
  lineNumber: 1,
33
33
  });
34
- if ((0, open_in_editor_1.isVsCodeDerivative)(guiEditor.command)) {
34
+ const readme = (0, patch_readme_1.findReadme)(projectRoot);
35
+ if (readme !== null && (0, open_in_editor_1.isVsCodeDerivative)(guiEditor.command)) {
35
36
  await new Promise((resolve) => {
36
37
  setTimeout(resolve, 1000);
37
38
  });
38
39
  await (0, open_in_editor_1.launchEditor)({
39
40
  colNumber: 1,
40
41
  editor: guiEditor,
41
- fileName: node_path_1.default.join(projectRoot, 'README.md'),
42
+ fileName: readme,
42
43
  vsCodeNewWindow: false,
43
44
  lineNumber: 1,
44
45
  });
@@ -1,3 +1,4 @@
1
1
  import type { PackageManager } from './pkg-managers';
2
2
  import type { Template } from './templates';
3
+ export declare const findReadme: (projectRoot: string) => string | null;
3
4
  export declare const patchReadmeMd: (projectRoot: string, packageManager: PackageManager, template: Template) => void;
@@ -3,12 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.patchReadmeMd = void 0;
6
+ exports.patchReadmeMd = exports.findReadme = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const pkg_managers_1 = require("./pkg-managers");
10
+ // Templates name it README.md or readme.md; only case-insensitive filesystems treat those as the same file
11
+ const findReadme = (projectRoot) => {
12
+ const readme = node_fs_1.default
13
+ .readdirSync(projectRoot)
14
+ .find((f) => f.toLowerCase() === 'readme.md');
15
+ return readme === undefined ? null : node_path_1.default.join(projectRoot, readme);
16
+ };
17
+ exports.findReadme = findReadme;
10
18
  const patchReadmeMd = (projectRoot, packageManager, template) => {
11
- const fileName = node_path_1.default.join(projectRoot, 'README.md');
19
+ const fileName = (0, exports.findReadme)(projectRoot);
20
+ if (fileName === null) {
21
+ return;
22
+ }
12
23
  const contents = node_fs_1.default.readFileSync(fileName, 'utf8');
13
24
  const newContents = contents
14
25
  .split('\n')
@@ -145,10 +145,7 @@ const getUpgradeCommand = (manager) => {
145
145
  };
146
146
  exports.getUpgradeCommand = getUpgradeCommand;
147
147
  const getDevCommand = (manager, template) => {
148
- if (template.cliId === 'react-router' ||
149
- template.cliId === 'next' ||
150
- template.cliId === 'next-no-tailwind' ||
151
- template.cliId === 'next-pages-dir') {
148
+ if (template.cliId === 'react-router' || template.cliId === 'next') {
152
149
  return `${(0, exports.getRunCommand)(manager)} dev`;
153
150
  }
154
151
  return getStartCommand(manager);
@@ -20,7 +20,7 @@ export type Template = {
20
20
  repoName: string;
21
21
  homePageLabel: string;
22
22
  longerDescription: string;
23
- cliId: 'hello-world' | 'javascript' | 'blank' | 'next' | 'next-no-tailwind' | 'next-pages-dir' | 'react-router' | 'three' | 'still' | 'audiogram' | 'music-visualization' | 'prompt-to-video' | 'skia' | 'overlay' | 'stargazer' | 'tiktok' | 'code-hike' | 'render-server' | 'recorder' | 'prompt-to-motion-graphics' | 'electron' | 'vercel';
23
+ cliId: 'hello-world' | 'blank' | 'next' | 'react-router' | 'three' | 'still' | 'audiogram' | 'music-visualization' | 'prompt-to-video' | 'skia' | 'overlay' | 'stargazer' | 'tiktok' | 'code-hike' | 'render-server' | 'recorder' | 'prompt-to-motion-graphics' | 'electron' | 'vercel';
24
24
  defaultBranch: string;
25
25
  featuredOnHomePage: string | null;
26
26
  previewURL: string | null;
package/dist/templates.js CHANGED
@@ -97,52 +97,6 @@ exports.FEATURED_TEMPLATES = [
97
97
  showStackblitz: false,
98
98
  previewLabel: 'Live Demo',
99
99
  },
100
- {
101
- homePageLabel: 'Next.js (No Tailwind)',
102
- shortName: 'Next.js (No Tailwind)',
103
- org: 'remotion-dev',
104
- repoName: 'template-next-app-dir',
105
- description: 'SaaS template for video generation apps',
106
- longerDescription: 'A SaaS starter kit which has the Remotion Player and rendering via Remotion Lambda built-in. Our recommended choice for people who want to build an app that can generate videos.',
107
- promoVideo: {
108
- width: 1280,
109
- height: 720,
110
- muxId: 'RufnZIJZh6L1MAaeG02jnXuM9pK96tNuHRxmXHbWqCBI',
111
- },
112
- cliId: 'next-no-tailwind',
113
- type: 'video',
114
- defaultBranch: 'main',
115
- featuredOnHomePage: null,
116
- previewURL: 'https://next.remotion.dev',
117
- templateInMonorepo: 'template-next-app',
118
- previewLabel: 'Live Demo',
119
- allowEnableTailwind: false,
120
- contributedBy: null,
121
- showStackblitz: true,
122
- },
123
- {
124
- homePageLabel: 'Next.js (Pages dir)',
125
- shortName: 'Next.js (Pages dir)',
126
- org: 'remotion-dev',
127
- repoName: 'template-next-pages-dir',
128
- description: 'SaaS template for video generation apps',
129
- longerDescription: 'A SaaS starter kit which has the Remotion Player and rendering via Remotion Lambda built-in. Our recommended choice for people who want to build an app that can generate videos.',
130
- promoVideo: {
131
- width: 1280,
132
- height: 720,
133
- muxId: 'RufnZIJZh6L1MAaeG02jnXuM9pK96tNuHRxmXHbWqCBI',
134
- },
135
- cliId: 'next-pages-dir',
136
- type: 'video',
137
- defaultBranch: 'main',
138
- featuredOnHomePage: null,
139
- previewURL: 'https://next.remotion.dev',
140
- previewLabel: 'Live Demo',
141
- templateInMonorepo: 'template-next-pages',
142
- allowEnableTailwind: false,
143
- contributedBy: null,
144
- showStackblitz: true,
145
- },
146
100
  {
147
101
  homePageLabel: 'Recorder',
148
102
  shortName: 'Recorder',
@@ -189,29 +143,6 @@ exports.FEATURED_TEMPLATES = [
189
143
  contributedBy: 'ASchwad',
190
144
  showStackblitz: false,
191
145
  },
192
- {
193
- homePageLabel: 'JavaScript',
194
- shortName: 'Hello World (JavaScript)',
195
- org: 'remotion-dev',
196
- repoName: 'template-helloworld-javascript',
197
- description: 'The default starter template in plain JS',
198
- longerDescription: 'The Hello World template, but in plain JavaScript. Recommended for people who detest TypeScript.',
199
- promoVideo: {
200
- muxId: 'dRIuc00f8QWnKedM8GBGPqXJWqU01DPJFgPTHpJgixxas',
201
- width: 1920,
202
- height: 1080,
203
- },
204
- cliId: 'javascript',
205
- type: 'video',
206
- defaultBranch: 'main',
207
- featuredOnHomePage: null,
208
- previewURL: 'https://template-helloworld-javascript.vercel.app/?/HelloWorld',
209
- previewLabel: null,
210
- templateInMonorepo: 'template-javascript',
211
- allowEnableTailwind: true,
212
- contributedBy: null,
213
- showStackblitz: true,
214
- },
215
146
  {
216
147
  homePageLabel: 'Render Server (Express.js)',
217
148
  shortName: 'Render Server',
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/create-video"
4
4
  },
5
5
  "name": "create-video",
6
- "version": "4.0.527",
6
+ "version": "4.0.528",
7
7
  "description": "Create a new Remotion project",
8
8
  "main": "dist/index.js",
9
9
  "bin": {
@@ -29,7 +29,7 @@
29
29
  "@types/minimist": "1.2.2",
30
30
  "@types/prompts": "2.4.9",
31
31
  "react": "19.2.3",
32
- "@remotion/eslint-config-internal": "4.0.527",
32
+ "@remotion/eslint-config-internal": "4.0.528",
33
33
  "eslint": "9.19.0",
34
34
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
35
35
  },