create-odori 0.0.14 → 0.0.15

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/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # create-odori
2
+
3
+ Scaffold an [Odori](https://odori.dev) video project.
4
+
5
+ ```bash
6
+ npm create odori@latest my-videos
7
+ cd my-videos
8
+ npm install
9
+ npx odori dev
10
+ ```
11
+
12
+ The directory has to be empty, except for a `.git` — cloning a fresh
13
+ repository and scaffolding into the clone is the expected path.
14
+
15
+ What you get:
16
+
17
+ ```text
18
+ my-videos/
19
+ ├── videos/
20
+ │ ├── layout.tsx # format, fps, and the brand every video inherits
21
+ │ └── launch/
22
+ │ └── video.tsx # a first composition, ready to render
23
+ ├── odori.config.ts
24
+ ├── package.json
25
+ └── tsconfig.json
26
+ ```
27
+
28
+ Then `odori add component <component>` installs editable component source,
29
+ `odori add template <id>` installs a whole video to remix, and
30
+ `odori export launch` renders it. Requires Node.js 22+.
31
+
32
+ MIT, see `LICENSE`.
package/package.json CHANGED
@@ -1,9 +1,28 @@
1
1
  {
2
2
  "name": "create-odori",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "type": "module",
5
- "description": "Scaffold a odori video project.",
6
- "license": "Apache-2.0",
5
+ "description": "Scaffold an Odori video project.",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/allenzhou101/odori.git",
10
+ "directory": "packages/create-odori"
11
+ },
12
+ "homepage": "https://odori.dev",
13
+ "bugs": {
14
+ "url": "https://github.com/allenzhou101/odori/issues"
15
+ },
16
+ "keywords": [
17
+ "video",
18
+ "react",
19
+ "create",
20
+ "scaffold",
21
+ "template"
22
+ ],
23
+ "engines": {
24
+ "node": ">=22"
25
+ },
7
26
  "bin": {
8
27
  "create-odori": "./bin/create-odori.mjs"
9
28
  },
@@ -21,7 +40,7 @@
21
40
  "devDependencies": {
22
41
  "@types/node": "22.19.0",
23
42
  "typescript": "5.9.3",
24
- "@odori/registry": "0.0.14"
43
+ "@odori/registry": "0.0.15"
25
44
  },
26
45
  "scripts": {
27
46
  "typecheck": "tsc --noEmit",
@@ -12,10 +12,10 @@
12
12
  "dependencies": {
13
13
  "react": "19.2.3",
14
14
  "react-dom": "19.2.3",
15
- "odori": "^0.0.14"
15
+ "odori": "^0.0.15"
16
16
  },
17
17
  "devDependencies": {
18
- "@odori/cli": "^0.0.14",
18
+ "@odori/cli": "^0.0.15",
19
19
  "@types/react": "19.2.7",
20
20
  "typescript": "5.9.3"
21
21
  }
@@ -12,7 +12,7 @@ export const productBrand = defineBrand({
12
12
  },
13
13
  /**
14
14
  * Sounds are named here, not in a composition, so re-scoring every video is
15
- * one edit. The block starts empty on purpose: `odori add bed-pulse`
15
+ * one edit. The block starts empty on purpose: `odori add audio bed-pulse`
16
16
  * writes into it, and without somewhere to write it can only print the two
17
17
  * lines and ask you to paste them.
18
18
  */