sheetom 0.1.0-rc.0

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.
@@ -0,0 +1,56 @@
1
+ # Releasing SheetOM
2
+
3
+ Changesets prepares versions and changelogs but never publishes. Publishing is
4
+ a separate maintainer operation from an exact reviewed commit.
5
+
6
+ ## First release candidate
7
+
8
+ 1. From a clean `main`, enter Changesets prerelease mode with `npm exec
9
+ changeset pre enter rc`, then run `npm exec changeset version`. Review the
10
+ resulting `0.1.0-rc.0` version, changelog, lockfile, and consumed Changeset.
11
+ 2. Run every local gate: `npm run check`, `npm run test:browser:matrix`,
12
+ `SHEETOM_FUZZ_RUNS=1000 npm run fuzz`, `npm run conformance:drift`, and
13
+ `npm run benchmark`.
14
+ 3. Download the stable native-WPT artifacts and record the immutable evidence
15
+ from that version with `SHEETOM_RECORD_BASELINE=1 npm run
16
+ conformance:record -- --wpt-report=chrome=reports/chrome.json
17
+ --wpt-report=firefox=reports/firefox.json`. Move the reviewed
18
+ draft to `compatibility/baselines/0.1.0-rc.0.json`, rerun
19
+ `npm run conformance:validate`, and commit the release preparation through a
20
+ deliberately created pull request with an empty body.
21
+ 4. Require green CI plus a manual `Native browser oracles` run. Download and
22
+ review the stable Chrome and Firefox WPT reports.
23
+ 5. On the exact clean merge commit, run `npm run release:verify`, then `npm
24
+ pack`. Preserve the resulting tarball; this is the artifact that is tested,
25
+ published, and attached to GitHub.
26
+ 6. Authenticate locally with `npm login --auth-type=web`. Publish only the
27
+ verified tarball with `npm publish ./sheetom-0.1.0-rc.0.tgz --tag next`.
28
+ The first RC intentionally has no npm provenance because local web auth is
29
+ the approved bootstrap path.
30
+ 7. Verify `npm view sheetom@0.1.0-rc.0 dist.integrity` and install the public
31
+ version in a fresh directory before creating the GitHub Release.
32
+ 8. Create a draft GitHub prerelease for tag `v0.1.0-rc.0`, attach the exact npm
33
+ tarball and matching Compatibility Report, verify both downloads, then
34
+ publish the prerelease without marking it latest.
35
+
36
+ After the first verified release, enable immutable GitHub Releases. Do not
37
+ enable immutability earlier: it would prevent correcting a bootstrap draft
38
+ before its first publication.
39
+
40
+ Native Safari WPT is deferred until a compatible no-cost runner is available.
41
+ Pinned Playwright WebKit remains part of the browser differential matrix, but
42
+ it is not presented as evidence from actual Safari.
43
+
44
+ ## Stable release
45
+
46
+ Exit prerelease mode with `npm exec changeset pre exit`, prepare and review the
47
+ stable Changesets release, repeat every gate, then publish the exact tarball
48
+ with `--tag latest`. Mark the GitHub Release latest only after npm serves that
49
+ same version and integrity.
50
+
51
+ ## Later trusted publishing
52
+
53
+ OIDC trusted publishing is deliberately staged after package ownership exists
54
+ on npm. Adding it requires a separate reviewed workflow and npm trusted-publisher
55
+ configuration. The workflow must publish an already-built and tested artifact;
56
+ it must not combine version preparation with publication.
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "sheetom",
3
+ "version": "0.1.0-rc.0",
4
+ "description": "A browser-compatible authoring CSSOM for server-side JavaScript runtimes",
5
+ "keywords": [
6
+ "css",
7
+ "cssom",
8
+ "stylesheet",
9
+ "lightningcss"
10
+ ],
11
+ "license": "MIT",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/leo91000/sheetom.git"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/leo91000/sheetom/issues"
18
+ },
19
+ "homepage": "https://github.com/leo91000/sheetom#readme",
20
+ "packageManager": "npm@11.16.0",
21
+ "type": "module",
22
+ "sideEffects": false,
23
+ "main": "./dist/index.cjs",
24
+ "module": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js",
30
+ "require": "./dist/index.cjs"
31
+ }
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "compatibility/baselines",
36
+ "compatibility/schemas",
37
+ "compatibility/WPT-LICENSE.md",
38
+ "docs/api.md",
39
+ "docs/releasing.md",
40
+ "LICENSE",
41
+ "README.md",
42
+ "SECURITY.md"
43
+ ],
44
+ "scripts": {
45
+ "build": "tsdown",
46
+ "changeset": "changeset",
47
+ "changeset:check": "node scripts/check-changeset.mjs",
48
+ "check": "npm run typecheck && npm run test:unit && npm run conformance:validate && npm run docs:check && npm run build && npm run pack:test",
49
+ "conformance:validate": "node scripts/validate-conformance.mjs",
50
+ "conformance:drift": "node scripts/check-wpt-drift.mjs",
51
+ "conformance:record": "node scripts/record-compatibility.mjs",
52
+ "docs:build": "typedoc",
53
+ "docs:check": "typedoc --emit none",
54
+ "fuzz": "vitest run --project fuzz",
55
+ "generate:properties": "node scripts/generate-chromium-properties.mjs",
56
+ "wpt:paths": "node scripts/list-wpt-paths.mjs",
57
+ "benchmark": "npm run build && node scripts/benchmark.mjs",
58
+ "pack:test": "node scripts/test-package.mjs",
59
+ "release:verify": "node scripts/verify-release.mjs",
60
+ "test": "vitest run",
61
+ "test:unit": "vitest run --project unit",
62
+ "test:browser": "vitest run --project browser",
63
+ "test:browser:matrix": "SHEETOM_BROWSER_MATRIX=1 vitest run --project browser",
64
+ "typecheck": "tsc --noEmit"
65
+ },
66
+ "dependencies": {
67
+ "@csstools/css-tokenizer": "^4.0.0",
68
+ "css-tree": "^3.2.1",
69
+ "cssstyle": "^6.2.0",
70
+ "lightningcss": "^1.33.0"
71
+ },
72
+ "devDependencies": {
73
+ "@changesets/cli": "^2.31.1",
74
+ "@types/css-tree": "^2.3.10",
75
+ "@types/node": "^24.0.0",
76
+ "@vitest/browser-playwright": "^4.1.10",
77
+ "ajv": "^8.20.0",
78
+ "fast-check": "^4.9.0",
79
+ "playwright": "^1.62.1",
80
+ "tsdown": "^0.22.14",
81
+ "typedoc": "^0.28.20",
82
+ "typescript": "^5.9.0",
83
+ "vitest": "^4.1.10"
84
+ },
85
+ "engines": {
86
+ "node": ">=22"
87
+ },
88
+ "publishConfig": {
89
+ "access": "public"
90
+ }
91
+ }