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.
- package/LICENSE +21 -0
- package/README.md +154 -0
- package/SECURITY.md +13 -0
- package/compatibility/WPT-LICENSE.md +15 -0
- package/compatibility/baselines/0.1.0-rc.0.json +70 -0
- package/compatibility/baselines/README.md +3 -0
- package/compatibility/schemas/compatibility-report.schema.json +68 -0
- package/compatibility/schemas/compatibility-resolutions.schema.json +28 -0
- package/compatibility/schemas/operation-fixture.schema.json +87 -0
- package/compatibility/schemas/wpt-mappings.schema.json +47 -0
- package/dist/index.cjs +3644 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +325 -0
- package/dist/index.d.ts +325 -0
- package/dist/index.js +3595 -0
- package/dist/index.js.map +1 -0
- package/docs/api.md +80 -0
- package/docs/releasing.md +56 -0
- package/package.json +91 -0
|
@@ -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
|
+
}
|