@rom-weaver/cli 0.6.7 → 0.7.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 CHANGED
@@ -1,11 +1,18 @@
1
1
  <h1 align="center"><img src="packages/rom-weaver-webapp/src/assets/app/root/logo.svg" alt="rom-weaver logo" width="64" height="64" align="middle"> rom-weaver</h1>
2
2
 
3
3
  <p align="center">
4
- A local-first offline toolkit for ROMs and ROM hack patches. Inspect, extract, checksum, compress, trim, apply patches, create patches, or bundle shareable patch manifests at native speed. In your browser or terminal.
4
+ Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- <a href="https://github.com/brandonocasey/rom-weaver/tags"><img alt="Latest tag" src="https://img.shields.io/github/v/tag/brandonocasey/rom-weaver?sort=semver&amp;label=version&amp;color=d9690f"></a>
8
+ <a href="https://www.npmjs.com/package/rom-weaver"><img alt="npm version" src="https://img.shields.io/npm/v/rom-weaver?logo=npm&amp;logoColor=white&amp;label=npm&amp;color=d9690f"></a>
9
+ <a href="https://crates.io/crates/rom-weaver-cli"><img alt="crates.io version" src="https://img.shields.io/crates/v/rom-weaver-cli?logo=rust&amp;logoColor=white&amp;label=crates.io&amp;color=d9690f"></a>
10
+ <a href="https://github.com/brandonocasey/rom-weaver/pkgs/container/rom-weaver-cli"><img alt="Container images on GitHub Container Registry" src="https://img.shields.io/badge/ghcr.io-rom--weaver-d9690f?logo=docker&amp;logoColor=white"></a>
11
+ <a href="https://github.com/brandonocasey/homebrew-tap"><img alt="Homebrew tap" src="https://img.shields.io/badge/homebrew-brandonocasey%2Ftap-d9690f?logo=homebrew&amp;logoColor=white"></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://github.com/brandonocasey/rom-weaver/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/brandonocasey/rom-weaver/ci.yml?branch=main&amp;logo=githubactions&amp;logoColor=white&amp;label=CI&amp;color=4a6d63"></a>
9
16
  <a href="package.json"><img alt="Node.js 22 or newer" src="https://img.shields.io/badge/Node.js-22%2B-4a6d63?logo=nodedotjs&logoColor=white"></a>
10
17
  <a href=".mise.toml"><img alt="Rust 1.95" src="https://img.shields.io/badge/Rust-1.95-2c323b?logo=rust&logoColor=white"></a>
11
18
  <a href="LICENSE.md"><img alt="AGPL-3.0-or-later license" src="https://img.shields.io/badge/license-AGPL--3.0--or--later-4a6d63"></a>
@@ -77,12 +84,14 @@ libraries elsewhere is not supported.
77
84
 
78
85
  ### First public release
79
86
 
80
- v0.6.7 is the first public release available to install. The changelog and the
81
- git history go back further, but v0.6.0 through v0.6.6 failed partway through
82
- the release pipeline or were only partially published. v0.6.7 is the first
83
- release with a complete set of artifacts across npm, Homebrew, and the
84
- container registry. Earlier version numbers describe development history or
85
- incomplete releases only.
87
+ v0.7.2 is the first public version to install. The changelog and the git
88
+ history go back further, but v0.6.0 through v0.7.1 failed partway through the
89
+ release pipeline or were only partially published. v0.7.1 completed most of
90
+ the pipeline, but it still missed the crates.io CLI package, shipped a broken
91
+ unscoped npm launcher, and built the static webapp archive with mismatched
92
+ release metadata. v0.7.2 is the first release intended to have all public
93
+ install methods working together. Earlier version numbers describe development
94
+ history or incomplete releases only.
86
95
 
87
96
  ### LLM-assisted development
88
97
 
@@ -105,27 +114,135 @@ leave the device. Install it as a PWA from the browser menu to use it offline.
105
114
  New here? [Try the sample weave](https://rom-weaver.com/?bundle=first-weave.zip#/weave)
106
115
  with tiny synthetic files.
107
116
 
108
- To run the webapp on your own infrastructure, see
109
- [Self-host the webapp](#self-host-the-webapp) below.
117
+ <a name="self-host-the-webapp"></a>
118
+
119
+ <details>
120
+ <summary>Self-host the webapp</summary>
121
+
122
+ The Docker source build serves the full webapp — WASM build, cross-origin
123
+ isolation headers, SPA fallback, and precompressed assets included. The
124
+ [self-hosting guide](docs/self-hosting.md) covers reverse proxies, subpath
125
+ routing, HTTPS certificates, service-worker scope, and the required COOP/COEP
126
+ headers.
127
+
128
+ Build and start it with Docker Compose:
129
+
130
+ ```bash
131
+ git clone https://github.com/brandonocasey/rom-weaver.git
132
+ cd rom-weaver
133
+ docker compose up --build --detach
134
+ curl --fail --silent --show-error http://localhost:8080/health
135
+ ```
136
+
137
+ Only Docker with Compose is required; the image installs its own build
138
+ toolchains. Set `PORT` to change the host port, for example
139
+ `PORT=3000 docker compose up --build --detach`.
140
+ For standalone TLS, mount a trusted certificate as described in the guide and
141
+ set `HTTPS_PORT` instead.
142
+
143
+ </details>
110
144
 
111
145
  ### CLI
112
146
 
113
- Prebuilt installers will become available with the first GitHub Release.
147
+ Every method below installs the same prebuilt binary from the GitHub release.
148
+ The release covers macOS arm64 and x86-64; Linux x86-64 GNU plus x86-64,
149
+ arm64, and i686 musl; and Windows arm64, x86-64, and x86.
114
150
 
115
- Install with Homebrew on macOS or x86-64 Linux:
151
+ <details>
152
+ <summary>Homebrew (macOS arm64/Intel, Linux arm64/x86-64)</summary>
116
153
 
117
154
  ```bash
118
155
  brew install brandonocasey/tap/rom-weaver
119
156
  ```
120
157
 
121
- Or download the latest release to `~/.local/bin`:
158
+ </details>
159
+
160
+ <details>
161
+ <summary>Scoop (Windows)</summary>
162
+
163
+ ```powershell
164
+ scoop bucket add brandonocasey https://github.com/brandonocasey/scoop-bucket
165
+ scoop install rom-weaver
166
+ ```
167
+
168
+ </details>
169
+
170
+ <details>
171
+ <summary>Install script (macOS, Linux)</summary>
172
+
173
+ Downloads the latest release to `~/.local/bin` and verifies its checksum.
174
+ Override with `ROM_WEAVER_INSTALL_DIR` or pin with `ROM_WEAVER_VERSION`.
122
175
 
123
176
  ```bash
124
177
  curl --proto '=https' --tlsv1.2 -LsSf \
125
178
  https://raw.githubusercontent.com/brandonocasey/rom-weaver/main/install.sh | sh
126
179
  ```
127
180
 
128
- Or run it from the published Linux image, without installing anything:
181
+ </details>
182
+
183
+ <details>
184
+ <summary>Install script (Windows)</summary>
185
+
186
+ The same thing for PowerShell, installing to `%LOCALAPPDATA%\rom-weaver\bin`.
187
+
188
+ ```powershell
189
+ irm https://raw.githubusercontent.com/brandonocasey/rom-weaver/main/install.ps1 | iex
190
+ ```
191
+
192
+ </details>
193
+
194
+ <details>
195
+ <summary>npm</summary>
196
+
197
+ Cross-platform, and the only channel that covers every supported target at
198
+ once. Needs Node.js 22+. The package is a launcher that pulls the right
199
+ prebuilt binary through platform-specific optional dependencies, so only your
200
+ platform's binary is downloaded.
201
+
202
+ ```bash
203
+ npm install --global rom-weaver
204
+ ```
205
+
206
+ For a one-off run, or to add the scoped launcher for a repository's scripts,
207
+ use the scoped package directly:
208
+
209
+ ```bash
210
+ npx @rom-weaver/cli probe --input game.iso
211
+ npm install --save-dev @rom-weaver/cli
212
+ ```
213
+
214
+ </details>
215
+
216
+ <details>
217
+ <summary>cargo-binstall</summary>
218
+
219
+ Downloads the same release binary rather than compiling the workspace, so it is
220
+ minutes faster than `cargo install`:
221
+
222
+ ```bash
223
+ cargo binstall rom-weaver-cli
224
+ ```
225
+
226
+ </details>
227
+
228
+ <details>
229
+ <summary>mise</summary>
230
+
231
+ Useful when you want the CLI managed per project in `mise.toml`. mise verifies
232
+ the release's GitHub artifact attestations on install. The
233
+ `minimum_release_age=0s` option lets new releases resolve immediately on release
234
+ day; omit it if you prefer mise's default release-age delay.
235
+
236
+ ```bash
237
+ mise use 'github:brandonocasey/rom-weaver[minimum_release_age=0s]'
238
+ ```
239
+
240
+ </details>
241
+
242
+ <details>
243
+ <summary>Docker</summary>
244
+
245
+ Runs from the published Linux image without installing anything:
129
246
 
130
247
  ```bash
131
248
  docker run --rm \
@@ -140,7 +257,12 @@ bind-mounted files keep their host ownership, so without it the container cannot
140
257
  read files it does not own and leaves anything it writes owned by an unknown uid.
141
258
  See [Run in Docker](docs/cli.md#run-in-docker).
142
259
 
143
- To install the current source build instead:
260
+ </details>
261
+
262
+ <a name="build-from-source"></a>
263
+
264
+ <details>
265
+ <summary>Build from source</summary>
144
266
 
145
267
  ```bash
146
268
  git clone https://github.com/brandonocasey/rom-weaver.git
@@ -152,32 +274,14 @@ rom-weaver --help
152
274
  The source build requires Rust 1.95+, CMake, Clang, and a native compiler
153
275
  toolchain.
154
276
 
277
+ </details>
278
+
155
279
  Hitting `Permission denied`? See
156
280
  [File permissions](docs/cli.md#file-permissions).
157
281
 
158
282
  The [development guide](docs/development.md) covers the full toolchain setup,
159
283
  webapp builds, and tests.
160
284
 
161
- ### Self-host the webapp
162
-
163
- The Docker source build serves the full webapp — WASM build, cross-origin
164
- isolation headers, SPA fallback, and precompressed assets included. The
165
- [self-hosting guide](docs/self-hosting.md) covers reverse proxies, subpath
166
- routing, service-worker scope, and the required COOP/COEP headers.
167
-
168
- Build and start it with Docker Compose:
169
-
170
- ```bash
171
- git clone https://github.com/brandonocasey/rom-weaver.git
172
- cd rom-weaver
173
- docker compose up --build --detach
174
- curl --fail --silent --show-error http://localhost:8080/health
175
- ```
176
-
177
- Only Docker with Compose is required; the image installs its own build
178
- toolchains. Set `PORT` to change the host port, for example
179
- `PORT=3000 docker compose up --build --detach`.
180
-
181
285
  ## Screenshots
182
286
 
183
287
  [View every screenshot at full size.](docs/screenshots.md)
@@ -17,8 +17,10 @@ const linuxLibc = () => {
17
17
  const platformPackage = (() => {
18
18
  if (process.platform === "darwin") return `@rom-weaver/darwin-${process.arch}`;
19
19
  if (process.platform === "win32") return `@rom-weaver/win32-${process.arch}-msvc`;
20
- if (process.platform === "linux" && process.arch === "x64" && linuxLibc() === "gnu")
21
- return "@rom-weaver/linux-x64-gnu";
20
+ if (process.platform === "linux" && ["arm64", "ia32", "x64"].includes(process.arch)) {
21
+ const libc = process.arch === "x64" ? linuxLibc() : "musl";
22
+ return `@rom-weaver/linux-${process.arch}-${libc}`;
23
+ }
22
24
  return null;
23
25
  })();
24
26
 
package/package.json CHANGED
@@ -1,9 +1,21 @@
1
1
  {
2
2
  "name": "@rom-weaver/cli",
3
- "version": "0.6.7",
3
+ "version": "0.7.2",
4
4
  "author": "Brandon Casey",
5
5
  "license": "AGPL-3.0-or-later",
6
- "description": "A local-first offline toolkit for ROMs and ROM hack patches. Inspect, extract, checksum, compress, trim, apply patches, create patches, or bundle shareable patch manifests at native speed. In your browser or terminal.",
6
+ "description": "Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.",
7
+ "keywords": [
8
+ "rom",
9
+ "rom-hack",
10
+ "patch",
11
+ "ips",
12
+ "bps",
13
+ "chd",
14
+ "rvz",
15
+ "z3ds",
16
+ "disc-image",
17
+ "cli"
18
+ ],
7
19
  "homepage": "https://rom-weaver.com",
8
20
  "funding": "https://ko-fi.com/brandonocasey",
9
21
  "repository": {
@@ -48,10 +60,15 @@
48
60
  "node": ">=22"
49
61
  },
50
62
  "optionalDependencies": {
51
- "@rom-weaver/darwin-arm64": "0.6.7",
52
- "@rom-weaver/darwin-x64": "0.6.7",
53
- "@rom-weaver/linux-x64-gnu": "0.6.7",
54
- "@rom-weaver/win32-x64-msvc": "0.6.7"
63
+ "@rom-weaver/darwin-arm64": "0.7.2",
64
+ "@rom-weaver/darwin-x64": "0.7.2",
65
+ "@rom-weaver/linux-arm64-musl": "0.7.2",
66
+ "@rom-weaver/linux-ia32-musl": "0.7.2",
67
+ "@rom-weaver/linux-x64-gnu": "0.7.2",
68
+ "@rom-weaver/linux-x64-musl": "0.7.2",
69
+ "@rom-weaver/win32-arm64-msvc": "0.7.2",
70
+ "@rom-weaver/win32-ia32-msvc": "0.7.2",
71
+ "@rom-weaver/win32-x64-msvc": "0.7.2"
55
72
  },
56
73
  "scripts": {
57
74
  "docs:toc": "bash scripts/update-markdown-toc.sh",