sheetom 0.1.0-rc.6 → 0.1.0-rc.7

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
@@ -20,14 +20,21 @@ After the first stable release, use `npm install sheetom@next` to opt into an
20
20
  active prerelease. Until then, the `latest` and `next` dist-tags both identify
21
21
  the active release candidate.
22
22
 
23
- The package has no JavaScript runtime or peer dependencies. Its native engine
24
- includes a pinned, locally maintained Lightning CSS source snapshot; consumers
25
- do not install a second parser, provide globals, or select a fallback engine.
23
+ The root package has no JavaScript runtime or peer dependencies and contains no
24
+ native addon. It pins one matching `@sheetom/native-*` implementation as an
25
+ optional dependency, so npm installs only the binary for the current operating
26
+ system, CPU, and Linux libc. Installing with `--omit=optional` is unsupported
27
+ and produces an explicit missing-binding error rather than a behavioral
28
+ fallback. The native engine includes a pinned, locally maintained Lightning CSS
29
+ source snapshot; consumers do not install a second parser, provide globals, or
30
+ select a fallback engine.
26
31
  SheetOM owns observable-value serialization and shorthand expansion rather
27
32
  than delegating CSSOM state to a browser-DOM emulation package.
28
33
 
29
- Node.js 22 and 24 are tested on Linux x64, Windows x64, and macOS arm64. Bun
30
- 1.3.1 and Deno 2.9.5 are tested on Linux x64. Deno must use a local
34
+ Node.js 22 executes the exact published package on macOS arm64/x64, Windows
35
+ arm64/x64/x86, Linux glibc arm64/ARMv7/x64/ppc64le/s390x, and Linux musl
36
+ arm64/ARMv7/x64. Node.js 24 is additionally tested on Linux x64, Windows x64,
37
+ and macOS arm64. Bun 1.3.1 and Deno 2.9.5 are tested on Linux x64. Deno must use a local
31
38
  `node_modules` directory and grant SheetOM's native binding FFI and
32
39
  system-information permissions:
33
40
 
@@ -37,6 +44,29 @@ deno run --node-modules-dir=manual --allow-ffi --allow-sys app.ts
37
44
 
38
45
  SheetOM exports browser-named classes but never modifies `globalThis`.
39
46
 
47
+ Browser applications can install the separate, ESM-only WebAssembly backend:
48
+
49
+ ```sh
50
+ npm install @sheetom/wasm
51
+ ```
52
+
53
+ ```ts
54
+ import { createSheetOM } from "@sheetom/wasm";
55
+
56
+ const { CSSStyleSheet } = await createSheetOM();
57
+ const sheet = new CSSStyleSheet();
58
+ sheet.replaceSync(".card { color: red; }");
59
+ ```
60
+
61
+ `createSheetOM()` resolves the `.wasm` file relative to its own module and
62
+ shares concurrent default initialization within one JavaScript realm. Passing
63
+ an explicit `URL`, `Response`, `ArrayBuffer`, or `WebAssembly.Module` creates
64
+ an independent facade with distinct class identity. The WASM backend uses the
65
+ same Rust parser, Engine ABI Identity, Resource Budget, and CSSOM facade as the
66
+ native package; it is never an automatic fallback for a missing native addon.
67
+ See [`@sheetom/wasm` usage](./packages/wasm/README.md) for server and worker
68
+ requirements.
69
+
40
70
  ## Use
41
71
 
42
72
  ```ts
@@ -159,7 +189,10 @@ SheetOM targets standards and shared browser behavior first, with Chromium
159
189
  behavior used only as the final measured divergence fallback. Versioned JSON
160
190
  Operation Fixtures execute through SheetOM and native browser adapters;
161
191
  applicable WPT subtests retain their pinned source path, title, and blob SHA.
162
- Every release ships its machine-readable Compatibility Report.
192
+ Every release ships its machine-readable Compatibility Report. RC7-or-later
193
+ reports distinguish native and WebAssembly backend evidence; the WASM dimension
194
+ records direct HTTP, worker, bundler, memory-soak, and Publisher-shaped browser
195
+ results instead of inferring them from the shared Rust engine.
163
196
 
164
197
  Modern or implementation-dependent value grammar is bounded by the checked-in
165
198
  [`Value Capability Corpus`](./compatibility/value-capabilities.json). Each