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 +39 -6
- package/compatibility/baselines/0.1.0-rc.7.json +3386 -0
- package/compatibility/schemas/compatibility-report.schema.json +43 -3
- package/dist/index.cjs +55 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +55 -15
- package/dist/index.js.map +1 -1
- package/docs/api.md +14 -1
- package/docs/releasing.md +10 -7
- package/engine-abi.json +5 -0
- package/native/index.cjs +15 -11
- package/native/resolve-target.cjs +42 -13
- package/package.json +47 -5
- package/native/sheetom-native.d.ts +0 -63
- package/native/sheetom-native.darwin-arm64.node +0 -0
- package/native/sheetom-native.darwin-x64.node +0 -0
- package/native/sheetom-native.linux-arm64-gnu.node +0 -0
- package/native/sheetom-native.linux-arm64-musl.node +0 -0
- package/native/sheetom-native.linux-x64-gnu.node +0 -0
- package/native/sheetom-native.linux-x64-musl.node +0 -0
- package/native/sheetom-native.win32-arm64-msvc.node +0 -0
- package/native/sheetom-native.win32-x64-msvc.node +0 -0
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
|
|
24
|
-
|
|
25
|
-
|
|
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
|
|
30
|
-
|
|
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
|