@stll/anonymize-wasm 1.5.0 → 2.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/LICENSE +1 -2
- package/README.md +93 -4
- package/dist/native/index.wasi-browser.js +12002 -0
- package/dist/native/index.wasi.cjs +122 -0
- package/dist/native/index.wasm32-wasi.wasm +0 -0
- package/dist/native/native-pipeline.cs.stlanonpkg +0 -0
- package/dist/native/native-pipeline.de.stlanonpkg +0 -0
- package/dist/native/native-pipeline.en.stlanonpkg +0 -0
- package/dist/native/native-pipeline.stlanonpkg +0 -0
- package/dist/native/wasi-worker-browser.mjs +10766 -0
- package/dist/native/wasi-worker.mjs +63 -0
- package/dist/vite.d.mts +18 -2
- package/dist/vite.mjs +89 -12
- package/dist/vite.mjs.map +1 -1
- package/dist/wasm.d.mts +553 -1102
- package/dist/wasm.mjs +359 -16223
- package/dist/wasm.mjs.map +1 -1
- package/package.json +15 -9
- package/dist/address-boundaries.mjs +0 -195
- package/dist/address-boundaries.mjs.map +0 -1
- package/dist/address-prepositions.mjs +0 -182
- package/dist/address-prepositions.mjs.map +0 -1
- package/dist/address-stop-keywords.mjs +0 -137
- package/dist/address-stop-keywords.mjs.map +0 -1
- package/dist/address-stopwords.mjs +0 -84
- package/dist/address-stopwords.mjs.map +0 -1
- package/dist/allow-list.mjs +0 -196
- package/dist/allow-list.mjs.map +0 -1
- package/dist/clause-noun-heads.mjs +0 -75
- package/dist/clause-noun-heads.mjs.map +0 -1
- package/dist/common-words-en.mjs +0 -9887
- package/dist/common-words-en.mjs.map +0 -1
- package/dist/coreference.cs.mjs +0 -14
- package/dist/coreference.cs.mjs.map +0 -1
- package/dist/coreference.de.mjs +0 -14
- package/dist/coreference.de.mjs.map +0 -1
- package/dist/coreference.en.mjs +0 -14
- package/dist/coreference.en.mjs.map +0 -1
- package/dist/coreference.es.mjs +0 -22
- package/dist/coreference.es.mjs.map +0 -1
- package/dist/coreference.fr.mjs +0 -32
- package/dist/coreference.fr.mjs.map +0 -1
- package/dist/coreference.it.mjs +0 -27
- package/dist/coreference.it.mjs.map +0 -1
- package/dist/coreference.pl.mjs +0 -27
- package/dist/coreference.pl.mjs.map +0 -1
- package/dist/coreference.pt-br.mjs +0 -14
- package/dist/coreference.pt-br.mjs.map +0 -1
- package/dist/coreference.sk.mjs +0 -27
- package/dist/coreference.sk.mjs.map +0 -1
- package/dist/currencies.mjs +0 -231
- package/dist/currencies.mjs.map +0 -1
- package/dist/date-months.mjs +0 -618
- package/dist/date-months.mjs.map +0 -1
- package/dist/document-structure-headings.mjs +0 -90
- package/dist/document-structure-headings.mjs.map +0 -1
- package/dist/generic-roles.mjs +0 -244
- package/dist/generic-roles.mjs.map +0 -1
- package/dist/hotword-rules.mjs +0 -149
- package/dist/hotword-rules.mjs.map +0 -1
- package/dist/legal-form-leading-clauses.mjs +0 -23
- package/dist/legal-form-leading-clauses.mjs.map +0 -1
- package/dist/legal-forms.mjs +0 -2115
- package/dist/legal-forms.mjs.map +0 -1
- package/dist/legal-role-heads.cs.mjs +0 -42
- package/dist/legal-role-heads.cs.mjs.map +0 -1
- package/dist/legal-role-heads.de.mjs +0 -33
- package/dist/legal-role-heads.de.mjs.map +0 -1
- package/dist/legal-role-heads.en.mjs +0 -37
- package/dist/legal-role-heads.en.mjs.map +0 -1
- package/dist/legal-role-heads.es.mjs +0 -54
- package/dist/legal-role-heads.es.mjs.map +0 -1
- package/dist/legal-role-heads.fr.mjs +0 -72
- package/dist/legal-role-heads.fr.mjs.map +0 -1
- package/dist/legal-role-heads.it.mjs +0 -68
- package/dist/legal-role-heads.it.mjs.map +0 -1
- package/dist/legal-role-heads.pl.mjs +0 -84
- package/dist/legal-role-heads.pl.mjs.map +0 -1
- package/dist/legal-role-heads.pt-br.mjs +0 -63
- package/dist/legal-role-heads.pt-br.mjs.map +0 -1
- package/dist/legal-role-heads.sk.mjs +0 -80
- package/dist/legal-role-heads.sk.mjs.map +0 -1
- package/dist/manifest.mjs +0 -69
- package/dist/manifest.mjs.map +0 -1
- package/dist/names-exclusions.mjs +0 -223
- package/dist/names-exclusions.mjs.map +0 -1
- package/dist/names-first.mjs +0 -418
- package/dist/names-first.mjs.map +0 -1
- package/dist/names-nw-ar.mjs +0 -202
- package/dist/names-nw-ar.mjs.map +0 -1
- package/dist/names-nw-excluded-allcaps.mjs +0 -112
- package/dist/names-nw-excluded-allcaps.mjs.map +0 -1
- package/dist/names-nw-fil.mjs +0 -202
- package/dist/names-nw-fil.mjs.map +0 -1
- package/dist/names-nw-id.mjs +0 -210
- package/dist/names-nw-id.mjs.map +0 -1
- package/dist/names-nw-in.mjs +0 -526
- package/dist/names-nw-in.mjs.map +0 -1
- package/dist/names-nw-ja-latn.mjs +0 -260
- package/dist/names-nw-ja-latn.mjs.map +0 -1
- package/dist/names-nw-ko.mjs +0 -162
- package/dist/names-nw-ko.mjs.map +0 -1
- package/dist/names-nw-th.mjs +0 -188
- package/dist/names-nw-th.mjs.map +0 -1
- package/dist/names-nw-vi.mjs +0 -151
- package/dist/names-nw-vi.mjs.map +0 -1
- package/dist/names-nw-zh-latn.mjs +0 -197
- package/dist/names-nw-zh-latn.mjs.map +0 -1
- package/dist/names-surnames.mjs +0 -113
- package/dist/names-surnames.mjs.map +0 -1
- package/dist/names-title-tokens.mjs +0 -40
- package/dist/names-title-tokens.mjs.map +0 -1
- package/dist/person-stopwords.mjs +0 -205
- package/dist/person-stopwords.mjs.map +0 -1
- package/dist/section-headings.mjs +0 -64
- package/dist/section-headings.mjs.map +0 -1
- package/dist/sentence-verb-indicators.mjs +0 -232
- package/dist/sentence-verb-indicators.mjs.map +0 -1
- package/dist/signing-clauses.mjs +0 -78
- package/dist/signing-clauses.mjs.map +0 -1
- package/dist/stopwords.mjs +0 -9915
- package/dist/stopwords.mjs.map +0 -1
- package/dist/structural-single-cap-prefixes.mjs +0 -99
- package/dist/structural-single-cap-prefixes.mjs.map +0 -1
- package/dist/triggers.cs.mjs +0 -569
- package/dist/triggers.cs.mjs.map +0 -1
- package/dist/triggers.de.mjs +0 -139
- package/dist/triggers.de.mjs.map +0 -1
- package/dist/triggers.en.mjs +0 -119
- package/dist/triggers.en.mjs.map +0 -1
- package/dist/triggers.es.mjs +0 -96
- package/dist/triggers.es.mjs.map +0 -1
- package/dist/triggers.fr.mjs +0 -275
- package/dist/triggers.fr.mjs.map +0 -1
- package/dist/triggers.global.mjs +0 -79
- package/dist/triggers.global.mjs.map +0 -1
- package/dist/triggers.hu.mjs +0 -41
- package/dist/triggers.hu.mjs.map +0 -1
- package/dist/triggers.it.mjs +0 -74
- package/dist/triggers.it.mjs.map +0 -1
- package/dist/triggers.pl.mjs +0 -271
- package/dist/triggers.pl.mjs.map +0 -1
- package/dist/triggers.pt-br.mjs +0 -193
- package/dist/triggers.pt-br.mjs.map +0 -1
- package/dist/triggers.ro.mjs +0 -59
- package/dist/triggers.ro.mjs.map +0 -1
- package/dist/triggers.sk.mjs +0 -555
- package/dist/triggers.sk.mjs.map +0 -1
- package/dist/triggers.sv.mjs +0 -58
- package/dist/triggers.sv.mjs.map +0 -1
- package/dist/year-words.mjs +0 -62
- package/dist/year-words.mjs.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026
|
|
3
|
+
Copyright (c) 2026 stella
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any
|
|
6
6
|
person obtaining a copy of this software and associated
|
|
@@ -25,4 +25,3 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
|
25
25
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
26
26
|
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
27
27
|
DEALINGS IN THE SOFTWARE.
|
|
28
|
-
|
package/README.md
CHANGED
|
@@ -12,12 +12,101 @@ bun add @stll/anonymize-wasm
|
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
|
+
Same native-SDK surface as `@stll/anonymize/native`, backed by the WebAssembly
|
|
16
|
+
binding. Browsers load prebuilt prepared packages (there is no in-browser config
|
|
17
|
+
building). The wasm binding is instantiated lazily on first use.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { loadDefaultPipeline } from "@stll/anonymize-wasm";
|
|
21
|
+
|
|
22
|
+
// Loads the compressed default package bundled in the tarball.
|
|
23
|
+
const pipeline = await loadDefaultPipeline();
|
|
24
|
+
const { redaction } = pipeline.redactText("A contract signed by Jan Novak.");
|
|
25
|
+
console.log(redaction.redactedText);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Bring your own prepared package (bytes, an `ArrayBuffer`, or a URL to fetch):
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import { loadPipeline } from "@stll/anonymize-wasm";
|
|
32
|
+
|
|
33
|
+
const pipeline = await loadPipeline(
|
|
34
|
+
new URL("./my-package.stlanonpkg", import.meta.url),
|
|
35
|
+
);
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
With Vite, register the helper plugin so the wasm binary, WASI worker, and
|
|
39
|
+
`.stlanonpkg` assets survive both dependency pre-bundling (dev) and a
|
|
40
|
+
production `vite build` (the plugin emits the `native/` assets and rewrites the
|
|
41
|
+
runtime asset base to point at them):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import stllAnonymizeWasm from "@stll/anonymize-wasm/vite";
|
|
45
|
+
// vite.config: plugins: [stllAnonymizeWasm()]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
By default the plugin emits every bundled prepared package into your build. The
|
|
49
|
+
full-dictionary default package alone is large (~20 MB), plus the per-language
|
|
50
|
+
`cs`, `de`, and `en` variants. If your app only needs some of them, restrict the
|
|
51
|
+
emitted packages with the `packages` option (the wasm binary, glue, and workers
|
|
52
|
+
are always emitted):
|
|
53
|
+
|
|
15
54
|
```ts
|
|
16
|
-
|
|
17
|
-
|
|
55
|
+
// Emit only the Czech scoped package.
|
|
56
|
+
stllAnonymizeWasm({ packages: ["cs"] });
|
|
57
|
+
|
|
58
|
+
// Emit the full-dictionary default plus English.
|
|
59
|
+
stllAnonymizeWasm({ packages: ["default", "en"] });
|
|
60
|
+
|
|
61
|
+
// Emit no prepared packages; the app supplies its own to loadPipeline().
|
|
62
|
+
stllAnonymizeWasm({ packages: "none" });
|
|
63
|
+
|
|
64
|
+
// Emit everything (the default).
|
|
65
|
+
stllAnonymizeWasm({ packages: "all" });
|
|
18
66
|
```
|
|
19
67
|
|
|
68
|
+
`"default"` selects the full-dictionary package that `loadDefaultPipeline()`
|
|
69
|
+
(no argument) loads; a language code selects the scoped package that
|
|
70
|
+
`loadDefaultPipeline("cs")` loads. Requesting a package that is not bundled
|
|
71
|
+
fails the build.
|
|
72
|
+
|
|
73
|
+
Interplay with the runtime loaders: the plugin only controls which assets ship,
|
|
74
|
+
not which the code asks for. Calling `loadDefaultPipeline(language)` for a
|
|
75
|
+
package you did not emit resolves to a missing asset URL and rejects with a
|
|
76
|
+
fetch error at runtime. Keep the `packages` list aligned with the languages your
|
|
77
|
+
app actually loads, or load your own package bytes through `loadPipeline`.
|
|
78
|
+
|
|
20
79
|
## Notes
|
|
21
80
|
|
|
22
|
-
-
|
|
23
|
-
-
|
|
81
|
+
- Same redaction core as `@stll/anonymize`, running in WebAssembly.
|
|
82
|
+
- The binding targets `wasm32-wasip1-threads` (shared memory), so it needs a
|
|
83
|
+
cross-origin-isolated context (`SharedArrayBuffer`) in the browser.
|
|
84
|
+
|
|
85
|
+
## Third-party licenses
|
|
86
|
+
|
|
87
|
+
The shipped browser WASI glue (`dist/native/index.wasi-browser.js` and
|
|
88
|
+
`dist/native/wasi-worker-browser.mjs`) is bundled at build time and inlines the
|
|
89
|
+
following MIT-licensed runtime so it is self-contained for consumer bundlers:
|
|
90
|
+
|
|
91
|
+
- `@napi-rs/wasm-runtime` (MIT) — Copyright (c) napi-rs authors —
|
|
92
|
+
https://github.com/napi-rs/napi-rs
|
|
93
|
+
- `@tybys/wasm-util` (MIT) — Copyright (c) toyobayashi —
|
|
94
|
+
https://github.com/toyobayashi/wasm-util
|
|
95
|
+
|
|
96
|
+
Both are distributed under the MIT License; the full license text is available
|
|
97
|
+
in each project's repository.
|
|
98
|
+
|
|
99
|
+
## Building from source
|
|
100
|
+
|
|
101
|
+
The wasm binding is generated by napi-rs and is not checked in:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cd packages/anonymize
|
|
105
|
+
bun run build:native-wasm # needs the wasm32-wasip1-threads Rust target
|
|
106
|
+
bun run build # tsdown + native node binding
|
|
107
|
+
bun run build:wasm-assets # copy glue + build compressed packages into wasm/dist/native
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The `wasm32-wasip1-threads` target is pinned in `rust-toolchain.toml`, so
|
|
111
|
+
`rustup` installs it automatically; with a non-rustup toolchain run
|
|
112
|
+
`rustup target add wasm32-wasip1-threads` first.
|