rusteerio 0.1.0 → 1.0.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/Cargo.lock CHANGED
@@ -686,7 +686,7 @@ dependencies = [
686
686
 
687
687
  [[package]]
688
688
  name = "rusteerio"
689
- version = "0.1.0"
689
+ version = "1.0.0"
690
690
  dependencies = [
691
691
  "ego-tree",
692
692
  "html5ever",
package/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rusteerio"
3
- version = "0.1.0"
3
+ version = "1.0.0"
4
4
  edition = "2021"
5
5
  description = "Rust HTML5 parser and CSS selector engine for the rusteerio Node.js package"
6
6
  license = "MIT"
package/README.md CHANGED
@@ -147,6 +147,13 @@ Fresh Rust-backed nodes have Rusteerio's constructors: an `instanceof` check
147
147
  against an independently installed `domhandler.Element` requires importing those
148
148
  nodes or supplying a tree adapter that creates that class.
149
149
 
150
+ Each document reports its approximate native size to V8, so the garbage
151
+ collector reclaims unreachable documents under native memory pressure. Node.js
152
+ frees native memory after the current task completes. A long synchronous loop,
153
+ or a chain of already-resolved `await`s, that loads many large documents should
154
+ yield to the event loop periodically, for example with `await setImmediate()`
155
+ from `node:timers/promises`.
156
+
150
157
  ## Benchmarks
151
158
 
152
159
  These measurements compare **Cheerio 1.2.0** against rusteerio on a Linux x64
package/RELEASING.md CHANGED
@@ -5,44 +5,14 @@ team. Releases include all eight native binaries, self-contained TypeScript
5
5
  declarations, source files and license notices. Consumers install no additional
6
6
  npm packages and need no Rust toolchain on supported platforms.
7
7
 
8
- ## First release setup
8
+ ## Trusted publishing
9
9
 
10
10
  The repository must be publicly visible for the publishing workflow's
11
- provenance checks. The package name was unpublished when this release setup was
12
- prepared; a registry lookup does not reserve ownership.
11
+ provenance checks. The workflow publishes exclusively through npm trusted
12
+ publishing with OIDC; it has no token-authentication or bootstrap path.
13
13
 
14
- For the first release, use the workflow's explicit bootstrap mode to establish
15
- ownership of `rusteerio@0.1.0`. It requires the package to be absent from the npm
16
- registry before any builds start. The default mode uses OIDC and remains token
17
- free.
18
-
19
- Create a granular npm token with **Read and write (publish and stage)** access,
20
- **Bypass two-factor authentication**, and a one-day expiration. Select only
21
- `rusteerio` if npm permits it; an unpublished package may require temporary
22
- **All Packages** access. Organization-management access is unnecessary. Store
23
- the value only in the GitHub `npm` environment's `NPM_BOOTSTRAP_TOKEN` secret. Never commit the
24
- token or put its value in commands or logs. See [npm's token
25
- documentation](https://docs.npmjs.com/creating-and-viewing-access-tokens/).
26
-
27
- Prepare and tag the exact release commit as described below, then dispatch:
28
-
29
- ```sh
30
- gh workflow run publish.yml \
31
- --repo context-dot-dev/rusteerio \
32
- --ref main \
33
- -f version=0.1.0 \
34
- -f npm_tag=latest \
35
- -f bootstrap=true
36
- ```
37
-
38
- Bootstrap mode runs the same fresh eight-platform matrix, manifest/source
39
- checks and clean-consumer tests as OIDC mode. Only its final publish step
40
- receives the token. Both modes publish the exact tested tarball with GitHub
41
- Actions provenance. A locally built tarball may contain only one platform's
42
- binary and is not the release artifact.
43
-
44
- After the package exists, configure its GitHub Actions trusted publisher in npm
45
- package settings:
14
+ Configure the GitHub Actions trusted publisher in the existing npm package's
15
+ settings:
46
16
 
47
17
  | Field | Value |
48
18
  | --- | --- |
@@ -52,17 +22,23 @@ package settings:
52
22
  | Environment | `npm` |
53
23
  | Allowed action | Direct publishing with `npm publish` |
54
24
 
55
- After configuring the trusted publisher, revoke the bootstrap token in npm and
56
- delete `NPM_BOOTSTRAP_TOKEN` from the GitHub environment. Leave `bootstrap` false
57
- for subsequent releases; the registry-existence guard prevents its reuse.
58
-
59
25
  Configure the GitHub `npm` environment for maintainers and permit releases from
60
26
  `main`. The workflow uses GitHub-hosted runners, Node 24, npm 11.5.1 or newer,
61
- and OIDC authentication. A new trusted-publisher configuration must complete
62
- its first publish within two days. See [npm's trusted-publishing
27
+ and OIDC authentication. It requires no stored npm token.
28
+
29
+ A new trusted-publisher configuration must complete its first successful
30
+ publication within two days. Prepare and publish a new version within that
31
+ window; an existing npm version cannot be republished to validate the
32
+ configuration. If it expires, delete and recreate it when the next release is
33
+ ready. See [npm's trusted-publishing
63
34
  documentation](https://docs.npmjs.com/trusted-publishers/) for configuration and
64
35
  expiry details.
65
36
 
37
+ After the first successful OIDC release, revoke the obsolete bootstrap token
38
+ in npm and delete `NPM_BOOTSTRAP_TOKEN` from the GitHub `npm` environment. That
39
+ credential was used only to establish initial package ownership and is not
40
+ needed by this workflow.
41
+
66
42
  ## Prepare a version
67
43
 
68
44
  Update `package.json`, `package-lock.json`, `Cargo.toml` and `Cargo.lock` to the
@@ -75,15 +51,15 @@ Create a version tag on the current `main` commit:
75
51
  ```sh
76
52
  git switch main
77
53
  git pull --ff-only
78
- git tag v0.1.0
79
- git push origin v0.1.0
54
+ git tag v0.1.1
55
+ git push origin v0.1.1
80
56
  ```
81
57
 
82
- Replace `0.1.0` with the intended version. Dispatch publication before making
58
+ Replace `0.1.1` with the intended version. Dispatch publication before making
83
59
  another commit to `main`: the tag, package version, Cargo version and the
84
60
  workflow's `main` commit must identify the same release.
85
61
 
86
- ## Publish a subsequent release
62
+ ## Publish a release
87
63
 
88
64
  Run the **Publish to npm** workflow from `main`, with the exact package version
89
65
  and npm dist-tag:
@@ -92,7 +68,7 @@ and npm dist-tag:
92
68
  gh workflow run publish.yml \
93
69
  --repo context-dot-dev/rusteerio \
94
70
  --ref main \
95
- -f version=0.1.0 \
71
+ -f version=0.1.1 \
96
72
  -f npm_tag=latest
97
73
  ```
98
74
 
@@ -4,7 +4,7 @@ This file preserves third-party license and attribution notices for the Rust nat
4
4
 
5
5
  Generated by `node scripts/generate-notices.mjs` from `cargo metadata --locked`, crate license files, and the pinned supplemental sources recorded in `scripts/notices/sources.json`. It includes build dependencies and dependencies for all target platforms; a particular binary may use a subset. Identical notice texts are reproduced once and referenced below. The html5ever, markup5ever and html5gum crates contain local observer-hook and opt-in UTF-16 transport patches; their complete patched source and original notices are included in `native/vendor`. Other dependency source files are unmodified.
6
6
 
7
- Cargo.lock SHA-256: `40e06a68078b531dc581ee78ebed58095cc69a2c632e02c05a31bbd5f347571a`.
7
+ Cargo.lock SHA-256: `972c2efc036e05a48803d6631cfd4f6026989898043bbd9aaf68bb52449c1716`.
8
8
 
9
9
  ## Source availability
10
10
 
@@ -3182,4 +3182,4 @@ export {
3182
3182
  loadAll,
3183
3183
  extractAll
3184
3184
  };
3185
- //# sourceMappingURL=chunk-DKULX6VO.mjs.map
3185
+ //# sourceMappingURL=chunk-DMRD3FGC.mjs.map