{"_id":"@adocweave/wasm","_rev":"2-217ab53b9862fb175ae49dfa15805fc1","name":"@adocweave/wasm","dist-tags":{"latest":"0.54.1"},"versions":{"0.48.0":{"name":"@adocweave/wasm","version":"0.48.0","keywords":["asciidoc","browser","webassembly","web-worker"],"license":"MIT OR Apache-2.0","_id":"@adocweave/wasm@0.48.0","maintainers":[{"name":"keishisando","email":"sando.keishi.sp@alumni.tsukuba.ac.jp"}],"homepage":"https://github.com/KeishiS/adocweave","bugs":{"url":"https://github.com/KeishiS/adocweave/issues"},"dist":{"shasum":"110ee57c9081d487608d2735d4da8d2208282973","tarball":"https://registry.npmjs.org/@adocweave/wasm/-/wasm-0.48.0.tgz","fileCount":20,"integrity":"sha512-vhBf35ClNB6J1pW2tNr6gr8IqeqhaRCko+sRf3RKzJjk38oPBtZNIfxw7gksrhAdh28BJhCRlFF2E613UeJUhg==","signatures":[{"sig":"MEYCIQDO9OAayC3f5ICEqFPYAuEXnDzRb4ENdqWHdhdpKKZWggIhAJDe6OsLS3wdBEnCqQ97aRG++aODPXEwd3xb48EL7G6b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1150902},"type":"module","_from":"file:adocweave-wasm-0.48.0.tgz","types":"./worker/index.d.mts","exports":{".":{"types":"./worker/index.d.mts","import":"./worker/index.mjs"},"./direct":{"types":"./worker/direct.d.mts","import":"./worker/direct.mjs"}},"scripts":{"test":"node --test worker.test.mjs release-manifest.test.mjs package-api.test.mjs direct.test.mjs","test:cross-runtime":"node --test cross-runtime.test.mjs"},"_npmUser":{"name":"keishisando","email":"sando.keishi.sp@alumni.tsukuba.ac.jp"},"_resolved":"/users/c64b20a5-79ae-424d-8c45-8df151e97b7d/Gits/adocweave/adocweave-wasm-0.48.0.tgz","_integrity":"sha512-vhBf35ClNB6J1pW2tNr6gr8IqeqhaRCko+sRf3RKzJjk38oPBtZNIfxw7gksrhAdh28BJhCRlFF2E613UeJUhg==","repository":{"url":"git+https://github.com/KeishiS/adocweave.git","type":"git","directory":"web-worker"},"_npmVersion":"11.17.0","description":"AsciiDoc analysis and HTML rendering for browsers, powered by AdocWeave WebAssembly","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wasm_0.48.0_1787548554070_0.04448301995719506","host":"s3://npm-registry-packages-npm-production"}},"0.54.1":{"name":"@adocweave/wasm","version":"0.54.1","publishConfig":{"access":"public"},"description":"AsciiDoc analysis and HTML rendering for browsers and Node.js, powered by AdocWeave WebAssembly","type":"module","exports":{".":{"types":"./worker/index.d.mts","import":"./worker/index.mjs"},"./direct":{"types":"./worker/direct.d.mts","import":"./worker/direct.mjs"}},"types":"./worker/index.d.mts","keywords":["asciidoc","browser","webassembly","web-worker"],"license":"MIT OR Apache-2.0","homepage":"https://github.com/KeishiS/adocweave","bugs":{"url":"https://github.com/KeishiS/adocweave/issues"},"repository":{"type":"git","url":"git+https://github.com/KeishiS/adocweave.git","directory":"packages/wasm"},"scripts":{"test":"node --test worker.test.mjs package-manifest.test.mjs package-api.test.mjs direct.test.mjs","test:cross-runtime":"node --test cross-runtime.test.mjs"},"_id":"@adocweave/wasm@0.54.1","_integrity":"sha512-q210AFD+FRWQ0okbn29lrOR05Vn5d4ILhHjYfAOrYTLCL3C6FHKdDJW9TA6VQtwNVwGTK5hKUtcdy5O6ABRKBw==","_resolved":"/home/runner/work/adocweave/adocweave/target/distrib/adocweave-wasm-0.54.1.tgz","_from":"file:/home/runner/work/adocweave/adocweave/target/distrib/adocweave-wasm-0.54.1.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-q210AFD+FRWQ0okbn29lrOR05Vn5d4ILhHjYfAOrYTLCL3C6FHKdDJW9TA6VQtwNVwGTK5hKUtcdy5O6ABRKBw==","shasum":"2c465b0ac7b13fc57fdcc8f5b7d9cb80d901223a","tarball":"https://registry.npmjs.org/@adocweave/wasm/-/wasm-0.54.1.tgz","fileCount":20,"unpackedSize":1140627,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adocweave%2fwasm@0.54.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDCjTgQhh20oBsmS/iQtf17Q4tmSMXRKeGetB5fgDCNhQIhAIjcTtc/vgWk18lPgsNXIWtLAC+AwJMijfsPgiSuFkm3"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fa4a209f-77bc-4bd9-a9ee-f3104af299c5"}},"directories":{},"maintainers":[{"name":"keishisando","email":"sando.keishi.sp@alumni.tsukuba.ac.jp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wasm_0.54.1_1788115934632_0.3845691977937864"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-24T05:15:53.839Z","modified":"2026-08-30T18:52:15.104Z","0.48.0":"2026-08-24T05:15:54.237Z","0.54.1":"2026-08-30T18:52:14.772Z"},"bugs":{"url":"https://github.com/KeishiS/adocweave/issues"},"license":"MIT OR Apache-2.0","homepage":"https://github.com/KeishiS/adocweave","keywords":["asciidoc","browser","webassembly","web-worker"],"repository":{"type":"git","url":"git+https://github.com/KeishiS/adocweave.git","directory":"packages/wasm"},"description":"AsciiDoc analysis and HTML rendering for browsers and Node.js, powered by AdocWeave WebAssembly","maintainers":[{"name":"keishisando","email":"sando.keishi.sp@alumni.tsukuba.ac.jp"}],"readme":"# AdocWeave WebAssembly package\n\n`@adocweave/wasm` は、AdocWeaveのWebAssembly moduleとWeb Worker clientを一組として提供します。\n\n## 導入\n\n```console\nnpm install @adocweave/wasm@X.Y.Z\n```\n\nnpm Trusted Publishingでnpm Registryへ直接公開します。パッケージの版と変更内容は、このディレクトリの `package.json` と `CHANGELOG.md` を基準とします。\n\n## 入口の選び方\n\n用途によって2つの入口があります。要求と応答の形式はどちらも同じです。\n\n| 入口 | 実行環境 | 取消し | WASM trapの分離 |\n|---|---|---|---|\n| `@adocweave/wasm` | ブラウザー | あり（`AbortSignal`） | あり（Workerを終了） |\n| `@adocweave/wasm/direct` | Node | なし | なし |\n\nブラウザーで文書を編集しながら結果を更新する場合は、既定の入口を使います。Web Workerで実行するため、入力の続く間もUIが止まらず、前の解析を取り消せます。\n\n静的サイト生成のようにビルド時へ組み込む場合は `direct` を使います。同じNode.jsプロセスで同期的に実行し、Web Workerを必要としません。処理を1つずつ順に実行する用途に限ります。\n\n## ビルド時の利用\n\n```javascript\nimport { analyze } from \"@adocweave/wasm/direct\";\n\nconst result = await analyze({\n  source: { id: \"docs/example.adoc\", text: source },\n  products: { html: true },\n});\n```\n\n同梱WebAssemblyの位置はpackage内部から求めるため、pathを渡す必要はありません。初期化は最初の呼び出しで一度だけ行います。明示的に持ちたい場合は `createDirectAnalyzer()` を使います。\n\n利用側で画像やリンク先を解決する場合は、2回に分けて実行します。1回目で問い合わせを受け取り、解決した結果を2回目へ渡します。\n\n```javascript\nimport { analyze } from \"@adocweave/wasm/direct\";\n\n// 1. 問い合わせと診断を受け取る\nconst queried = await analyze({\n  source: { id: sourceId, text: source },\n  products: { resourceQueries: true, diagnostics: true, document: true },\n});\n\n// 2. 利用側が解決する。存在確認、配置先の決定、公開URLの組み立ては利用側の責務\nconst resources = queried.resourceQueries.map((query) => resolve(query));\n\n// 3. 解決済みresourceでHTMLへ変換する\nconst rendered = await analyze({\n  source: { id: sourceId, text: source },\n  products: {\n    html: { activeUrls: { allowedSchemes: [\"http\", \"https\"] } },\n  },\n  resources: { assets: resources },\n});\n```\n\nWASMがtrapした場合、`direct` は同じNode.jsプロセスで実行しているため以降の結果を保証しません。`createDirectAnalyzer()` で新しいanalyzerを作り直してください。\n\n## 内容\n\n- `wasm/adocweave_wasm.js` と `wasm/adocweave_wasm_bg.wasm` — `wasm-bindgen` のweb向け成果物\n- `wasm/adocweave_wasm.d.ts` — 生成された場合のTypeScript declaration\n- `worker/index.mjs` と `worker/index.d.mts` — frontend向けの公開ES module入口と型定義\n- `worker/client.mjs` と `worker/worker.mjs` — 一つの要求をWeb Workerで実行する内部実装\n- `worker/protocol.d.mts` — WebAssemblyとやり取りするJSONの型。Rustのwire定義から生成します\n- `worker/worker-protocol.mjs` — clientとWorkerが交換する内部封筒\n- `THIRD_PARTY_NOTICES.adoc` — rootとZedのlockfileから生成したthird-party package一覧\n\n## 最小例\n\n```javascript\nimport { AdocWeaveClient, defaultAssetUrls } from \"@adocweave/wasm\";\n\nconst entryUrl = new URL(\"./worker/index.mjs\", import.meta.url);\nconst client = new AdocWeaveClient(defaultAssetUrls(entryUrl));\nconst controller = new AbortController();\n\nconst result = await client.analyze({\n  source: { text: \"= Title\\n\\nAsciiDoc text\" },\n  products: { html: true },\n}, { signal: controller.signal });\n\n// HTMLの信頼方針はホストが決めます。この例では文字列として表示します。\npreview.textContent = result.html;\n```\n\n公開する解析入口は `analyze(request, { signal })` だけです。この関数は解析結果をPromiseで返します。一つのclientは同時に一つの解析だけを実行します。異なる文書を並行して解析する場合はclientを分けます。\n\n入力欄などの連続更新をまとめる待ち時間、文書の版および古い結果を採用するかどうかは、入力を持つ利用側アプリが管理します。利用側は処理ごとに `AbortController` を作り、前の処理が不要になったときは `abort()` を呼びます。取消しを含む全ての失敗では、`code`と英語の`message`を持つ`AdocWeaveError`でPromiseをrejectします。取消しまたはWASMのtrapが発生するとclientはそのWorkerを終了し、同じWorkerとWASM instanceを次の解析に再利用しません。\n\nclientとWorkerの要求番号は内部実装であり、結果へ公開しません。JavaScriptとWASMの組合せはWASM protocolのschema handshakeで検査します。Worker内部の封筒やpackageのバージョンを、利用側の互換性判定には使用しません。\n\n## 配備\n\n`defaultAssetUrls(baseUrl)` の `baseUrl` には、配備後の公開entryである `worker/index.mjs` のURLを必ず渡します。省略した `import.meta.url` やbundle後のchunk URLを基準にしません。Worker、WASMのJavaScript補助fileおよびWASM binaryは、返されたURLで取得できる同一originへ配置します。\n\nViteまたはWebpackではpackageの `worker` と `wasm` を同じ公開ディレクトリへ資産としてコピーし、そのディレクトリに配備した `worker/index.mjs` のURLを `defaultAssetUrls` へ渡します。WorkerとWASMをJavaScript bundleへinline化したり、生成されたchunkの相対位置に依存したりしません。content hash付きの公開base URLを使う場合も、`worker` と `wasm` の相対関係を維持します。\n\n静的serverは `.mjs` と `.js` を `text/javascript`、`.wasm` を `application/wasm` として返します。main document、公開entry、WorkerおよびWASMを同一originから配信します。CSPは少なくとも `script-src 'self' 'wasm-unsafe-eval'`、`worker-src 'self'` および `connect-src 'self'` を許可します。inline scriptと `unsafe-eval` は不要です。\n\n動作する例は `example/index.html` に含まれます。公開前には実パッケージをesbuildでbundleしたbrowser smoke、CSP、WASM sizeおよびURL解決を検証します。\n\n## ライセンス\n\nMIT OR Apache-2.0\n","readmeFilename":"README.md"}