@looop-games/cli 0.1.3 → 0.1.4

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/lib/create.mjs CHANGED
@@ -35,7 +35,11 @@ const NAME_OK = /^[a-z0-9][a-z0-9-]{0,40}$/;
35
35
  // esbuild/workerd pins between releases, and a version-pinned approval would
36
36
  // quietly stop covering them on the next bump — the same silent breakage,
37
37
  // later. Caught by our first Windows creator, 2026-07-11.
38
- const ALLOW_SCRIPTS = { esbuild: true, workerd: true };
38
+ // fsevents is macOS-only (an optional dep of the file watchers) — it never
39
+ // installs on Windows, so the entry is simply unused there. Approving it
40
+ // keeps a Mac creator's first install warning-free, and under npm 12 keeps
41
+ // the watcher on native FSEvents instead of silently degrading to polling.
42
+ const ALLOW_SCRIPTS = { esbuild: true, workerd: true, fsevents: true };
39
43
 
40
44
  // Smokes drive a real browser, so playwright ships in every scaffold's
41
45
  // devDependencies and the Chromium binary is fetched at create time — a
@@ -94,6 +94,10 @@ test('scaffolds a complete standalone game folder', async () => {
94
94
  // strict npm, 2026-07-11.
95
95
  assert.equal(pkg.allowScripts.esbuild, true, 'esbuild postinstall pre-approved (native binary)');
96
96
  assert.equal(pkg.allowScripts.workerd, true, 'workerd postinstall pre-approved (native binary)');
97
+ // macOS-only optional dep of the watchers; unused on Windows. Verified
98
+ // against a real npm 11 install of the published scaffold: with these three
99
+ // the install is warning-free on every platform.
100
+ assert.equal(pkg.allowScripts.fsevents, true, 'fsevents postinstall pre-approved (mac watcher)');
97
101
 
98
102
  // The agent-facing surface: instructions + a pointer at the practices docs
99
103
  // that ship inside the installed engine bundle.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@looop-games/cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Looop game development CLI — dev server, login, and publishing for standalone Looop games.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -28,13 +28,19 @@ applies. This table routes only what has no skill:
28
28
  - `npx looop dev` — the full local stack: the game at
29
29
  http://localhost:8000/games/{{name}}/index.html, multiplayer on :1999,
30
30
  platform services (LLM etc.) on :8788. Leave it running; edits hot-reload.
31
+ **On a new machine the first `dev` signs the creator in: a browser window
32
+ opens, they log in and click Approve (~30 seconds, once per machine). Tell
33
+ them it's coming BEFORE you run it** — an unexplained browser popup mid-build
34
+ reads as something going wrong.
31
35
  - `npx looop test` — the per-change gate: runs every `*.test.mjs` (unit, under
32
36
  node) and every `*.smoke.mjs` (against a real dev stack it boots itself on
33
37
  free ports) in this folder.
34
38
  - `npx looop login` — connect this machine to the creator's Looop account
35
39
  (once per machine; the first `looop dev` runs it automatically).
36
40
  - `npx looop publish` — ship to https://play.looop.games/g/{{name}}.
37
- `--slug <alt>` publishes an A/B copy without touching the live game.
41
+ **The first publish permanently claims the name `{{name}}` for the creator's
42
+ account** — from then on only they can update it. `--slug <alt>` publishes an
43
+ A/B copy without touching the live game.
38
44
 
39
45
  ## The rules that are physics (not preference)
40
46