lecodes-cli 0.16.1 → 0.16.2
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 +27 -4
- package/dist/index.js +170706 -72
- package/package.json +11 -6
- package/runtime/sdk/compile/bundler.ts +10 -2
- package/runtime/sdk/compile/compileProject.ts +10 -2
- package/runtime/sdk/compile/detectEntry.ts +5 -2
- package/runtime/sdk/compile/index.ts +17 -1
- package/runtime/sdk/compile/serverSplit.ts +233 -0
- package/runtime/sdk/compile/serverTypes.ts +227 -0
- package/runtime/sdk/gl/AnimationClip.ts +174 -0
- package/runtime/sdk/gl/Animator.ts +634 -0
- package/runtime/sdk/gl/CharacterController.ts +6 -1
- package/runtime/sdk/gl/IK.ts +170 -0
- package/runtime/sdk/gl/Material.ts +1 -1
- package/runtime/sdk/gl/ModelAnimation.ts +34 -3
- package/runtime/sdk/gl/Node.ts +21 -0
- package/runtime/sdk/inject.ts +10 -0
- package/runtime/sdk/plugins/oauth.ts +61 -0
- package/runtime/sdk/runtime/rpc.ts +218 -0
- package/runtime/sdk/server/auth/appConfig.ts +12 -0
- package/runtime/sdk/server/auth/global.ts +80 -0
- package/runtime/sdk/server/auth/host.ts +318 -0
- package/runtime/sdk/server/auth/models.ts +83 -0
- package/runtime/sdk/server/auth/types.ts +50 -0
- package/runtime/sdk/server/channel.ts +56 -0
- package/runtime/sdk/server/context.ts +36 -0
- package/runtime/sdk/server/db/defineDb.ts +237 -0
- package/runtime/sdk/server/db/fields.ts +132 -0
- package/runtime/sdk/server/db/httpTransport.ts +93 -0
- package/runtime/sdk/server/db/index.ts +7 -0
- package/runtime/sdk/server/db/marci/query.ts +412 -0
- package/runtime/sdk/server/db/types.ts +202 -0
- package/runtime/sdk/server/errors.ts +12 -0
- package/runtime/sdk/server/host.ts +74 -0
- package/runtime/sdk/server/inject.ts +13 -0
- package/runtime/sdk/server/runtime.ts +133 -0
- package/runtime/sdk/server/validate.ts +87 -0
- package/runtime/sdk-types.json +1 -1
package/README.md
CHANGED
|
@@ -8,17 +8,40 @@ The package is `lecodes-cli`; the command it installs is **`lecodes`**.
|
|
|
8
8
|
## Install
|
|
9
9
|
|
|
10
10
|
```sh
|
|
11
|
-
npm
|
|
11
|
+
npm install -g lecodes-cli # then run: lecodes <command>
|
|
12
12
|
# or without installing:
|
|
13
13
|
npx lecodes-cli <command>
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
### Optional peers
|
|
17
|
+
|
|
18
|
+
Some commands live in separate packages the CLI loads on demand:
|
|
19
|
+
|
|
20
|
+
| Package | Needed by |
|
|
21
|
+
|---|---|
|
|
22
|
+
| [`lecodes-renderer`](https://www.npmjs.com/package/lecodes-renderer) (`>= 0.2.0`) + `@napi-rs/canvas` for PNG | `render`, `test`, `design`'s screen previews |
|
|
23
|
+
| [`lecodes-design`](https://www.npmjs.com/package/lecodes-design) | `design` |
|
|
24
|
+
| [`lecodes-3d-editor`](https://www.npmjs.com/package/lecodes-3d-editor) | `scene` |
|
|
25
|
+
| `lecodes-assets` | `assets` (FBX → GLB, doctor, retarget) |
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
npm install -g lecodes-renderer @napi-rs/canvas
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Install them the same way you installed the CLI.** A peer is loaded by a bare `import`, which
|
|
32
|
+
resolves upward from the CLI's own file — so a globally installed `lecodes` sees only *globally*
|
|
33
|
+
installed peers, and a `npm i -D` copy in your project is invisible to it. If instead you keep
|
|
34
|
+
`lecodes-cli` in a project's `devDependencies`, install the peers there too.
|
|
35
|
+
|
|
36
|
+
Under `npx` neither placement is visible; name every package in one invocation:
|
|
17
37
|
|
|
18
38
|
```sh
|
|
19
|
-
|
|
39
|
+
npx -p lecodes-cli -p lecodes-assets lecodes assets convert hero.fbx -o hero.glb
|
|
20
40
|
```
|
|
21
41
|
|
|
42
|
+
The **standalone build** below resolves nothing outside its own bundle, so `render` / `design` /
|
|
43
|
+
`scene` / `assets` need the npm install of the CLI.
|
|
44
|
+
|
|
22
45
|
**Standalone build** (the release archive, no Node/Bun needed): unpack it and run `./lecodes install`
|
|
23
46
|
to copy the bundle to a library folder and put `lecodes` on your PATH — per-user by default, or
|
|
24
47
|
`--system` for all users on Linux/macOS. (This archive ships the `lecodes` binary alongside the
|
|
@@ -65,7 +88,7 @@ lecodes push -m "Tweak the menu" # push as a new checkpoint
|
|
|
65
88
|
| `design init` | Scaffold the design folder: `screens/`, `shared/`, `meta.json`, and a `CLAUDE.md` documenting the conventions for AI assistants. |
|
|
66
89
|
| `design snapshot [screen…]` | Render design screens headless (needs `lecodes-renderer`). One screen → semantic JSON to stdout; otherwise JSON files in `design/.snapshots/`; `--png` also rasterizes PNGs (needs `@napi-rs/canvas`); `--out-dir <dir>`, `--logs`. |
|
|
67
90
|
| `scene [path]` | **LeCodes Scene Editor** — visually edit a `.scene.ts` 3D scene (needs the optional `lecodes-3d-editor` package). Works inside a cloned project **or standalone in any folder**. Starts a local editor server + browser app: a scene tree, a per-node inspector, and a move/rotate/scale gizmo; add mesh/light/camera/model/aspect nodes; edits are written straight back to the `.scene.ts`, and external (IDE) edits hot-reload over SSE. Registers an MCP server in `.mcp.json` so Claude Code can call `scene_state` (scenes + models + aspect classes with field hints) and `check_scene` (compile status) — `--no-mcp` to skip. `path` is a folder or a `.scene.ts` to host (default: the current folder / enclosing project). `--port <n>` (default 4488), `--no-open`. |
|
|
68
|
-
| `render` | Render the local project (**UI + 2D**). By default emits a semantic JSON description (great for AI/automated checks) to stdout or `-o`/`--out <file>`; `--png [file]` rasterizes a PNG (default `screenshot.png`, `--scale <n>` for DPR). A creator-2d scene is composited **under** the UI; `--time <ms>` advances its physics/animation. `asset('./x.png')` resources (images, sprite textures) load from the local working tree by default — use `--remote-assets` (or an explicit `--public-url`) to fetch them from the server instead (which then needs `--wait-network`). `--width`/`--height` set the viewport (default 390×844). Requires the optional `lecodes-renderer` package (`npm
|
|
91
|
+
| `render` | Render the local project (**UI + 2D**). By default emits a semantic JSON description (great for AI/automated checks) to stdout or `-o`/`--out <file>`; `--png [file]` rasterizes a PNG (default `screenshot.png`, `--scale <n>` for DPR). A creator-2d scene is composited **under** the UI; `--time <ms>` advances its physics/animation. `asset('./x.png')` resources (images, sprite textures) load from the local working tree by default — use `--remote-assets` (or an explicit `--public-url`) to fetch them from the server instead (which then needs `--wait-network`). `--width`/`--height` set the viewport (default 390×844). Requires the optional `lecodes-renderer` package (`npm install -g lecodes-renderer@^0.2.0`); PNG also needs `@napi-rs/canvas`. 3D scenes aren't rendered. |
|
|
69
92
|
| `pn` | **Push notifications** for the project (`pn send` / `pn devices` / `pn keys`). `pn send --title "Order shipped" --user u42` sends through the le.codes relay **on your login — no push key needed to test** (`--to <pa_…>` targets addresses instead; `--body`, `--url`, `--badge`, `--data '{…}'` fill the payload; comma-separate multiple targets). `pn devices` lists the devices that actually called `Push.register()` — the first thing to check when a notification doesn't arrive (`--user <id>` to filter). `pn keys` manages the `lecodes_pk_…` keys you deploy in **your own server's** env: the server generates them, so `pn keys new [name]` prints the value exactly once — `--env` writes it straight into `.env` as `LECODES_PUSH_KEY` and gitignores the file. `pn keys revoke <id>` deletes one (owner only for both). |
|
|
70
93
|
| `types [dir]` | Re-materialize the IDE type surface (`.lecodes/types/` + `tsconfig.json`). Fetches `GET /api/types` from the server by default — so a project scaffolded offline by `init` picks up the SDK the platform actually runs — falling back to the copy bundled in this CLI when the server is unreachable. `--local` to use that bundled copy outright (fully offline), `--check` to report drift without writing (exits non-zero when stale — handy in CI), `--api <url>` for the server. IDE-only: the compiler always uses the SDK vendored in the CLI, and the command warns when the two disagree. |
|
|
71
94
|
|