wani 0.1.8

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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +262 -0
  4. data/assets/bootstrap.rb +9 -0
  5. data/assets/build.json +6 -0
  6. data/assets/fonts/IBMPlexSansJP-Bold.woff2 +0 -0
  7. data/assets/fonts/IBMPlexSansJP-Regular.woff2 +0 -0
  8. data/assets/highlight.css +117 -0
  9. data/assets/index.html +39 -0
  10. data/assets/rabbit.svg +1 -0
  11. data/assets/rouge.LICENSE +187 -0
  12. data/assets/runtime.LICENSE +21 -0
  13. data/assets/runtime.NOTICE +1292 -0
  14. data/assets/runtime.pr672.js +3143 -0
  15. data/assets/shark.svg +1 -0
  16. data/assets/speaker.html +2 -0
  17. data/assets/style.css +103 -0
  18. data/assets/time-expired.png +0 -0
  19. data/assets/wani.wasm +4 -0
  20. data/exe/wani +3 -0
  21. data/lib/wani/browser/application.rb +189 -0
  22. data/lib/wani/browser/bridge_progress.rb +19 -0
  23. data/lib/wani/browser/fonts.rb +60 -0
  24. data/lib/wani/browser/layout.rb +107 -0
  25. data/lib/wani/browser/presentation_timer.rb +66 -0
  26. data/lib/wani/browser/renderer.rb +80 -0
  27. data/lib/wani/cli.rb +134 -0
  28. data/lib/wani/core/fonts.rb +49 -0
  29. data/lib/wani/core/parser.rb +127 -0
  30. data/lib/wani/core/presentation.rb +15 -0
  31. data/lib/wani/core/safe_html.rb +74 -0
  32. data/lib/wani/core/validator.rb +31 -0
  33. data/lib/wani/fonts/http.rb +45 -0
  34. data/lib/wani/fonts/manager.rb +190 -0
  35. data/lib/wani/server/application.rb +92 -0
  36. data/lib/wani/server/http_server.rb +34 -0
  37. data/lib/wani/version.rb +3 -0
  38. data/lib/wani.rb +4 -0
  39. data/templates/images/workflow.svg +36 -0
  40. data/templates/slides.md +182 -0
  41. data/third_party/gems/kramdown-LICENSE +30 -0
  42. data/third_party/gems/kramdown-parser-gfm-LICENSE +21 -0
  43. data/third_party/gems/rexml-LICENSE +22 -0
  44. data/third_party/ibm-plex-sans-jp/LICENSE.txt +93 -0
  45. data/third_party/ibm-plex-sans-jp/README.md +39 -0
  46. data/third_party/ibm-plex-sans-jp/provenance.json +20 -0
  47. data/third_party/ruby-wasm-loader/LICENSE +21 -0
  48. data/third_party/ruby-wasm-loader/NOTICE +1292 -0
  49. data/third_party/ruby-wasm-loader/README.md +35 -0
  50. data/third_party/ruby-wasm-loader/browser.script.iife.js +3143 -0
  51. data/third_party/ruby-wasm-loader/provenance.json +10 -0
  52. metadata +159 -0
@@ -0,0 +1,35 @@
1
+ # ruby.wasm PR #672 ローダーの一時同梱
2
+
3
+ この `browser.script.iife.js` は公式 npm リリースではない。
4
+ [ruby/ruby.wasm#672](https://github.com/ruby/ruby.wasm/pull/672) の
5
+ [`dc6b0ffd5800ed9bfc49268ed8021d456f10ddf8`](https://github.com/ledsun/ruby.wasm/tree/dc6b0ffd5800ed9bfc49268ed8021d456f10ddf8)
6
+ から、既存の npm ビルド手順で生成したファイルを変更せずに同梱している。
7
+ `LICENSE` / `NOTICE` も同コミットから取得した。
8
+
9
+ ## 再ビルド
10
+
11
+ リポジトリのルートから次を実行する。curl、tar、Ruby、Node.js / npm とネットワーク接続が必要。
12
+ 再現確認に使用した Node.js は24.22.1。
13
+
14
+ ```sh
15
+ npm run build:loader
16
+ ```
17
+
18
+ `scripts/build_loader.rb` が一時ディレクトリで以下を実行する。
19
+
20
+ 1. 固定コミットのアーカイブを取得し、`provenance.json` の SHA-256 と照合する。
21
+ 2. アーカイブ内の package-lock.json に従い、必要なワークスペースへ `npm ci --ignore-scripts` を実行する。
22
+ 3. 共通バインディングの `build:tsc` と Ruby 4.0 パッケージの `build:rollup` を実行する。
23
+ 4. 成果物の SHA-256 が記録値と同じであることを確認して同梱ファイルを更新する。
24
+
25
+ ソースの追加修正や JS の文字列置換は行わない。通常の `npm run build` は、この同梱ファイルの
26
+ チェックサムを確認して `assets/runtime.pr672.js` にコピーするだけなので、上流ソースの再取得は不要。
27
+ wasm 本体は npm の `@ruby/4.0-wasm-wasi@2.10.1` を基に Wani の Ruby / gem を pack する。
28
+ JS バインディングと公開版 wasm の組み合わせはこのリポジトリのブラウザーテストで検証する。
29
+
30
+ ## 公式リリースへの移行
31
+
32
+ PR のマージだけでなく、機能を含む公式 npm パッケージの公開を待つ。
33
+ 公開後は採用するバージョンを固定し、ビルドスクリプトのコピー元を公式パッケージへ変更する。
34
+ HTML の `data-ruby-wasm-url` は維持し、同梱ファイル・再ビルドスクリプト・出所情報を削除する。
35
+ 起動・属性省略時の CDN 取得・失敗時の非フォールバックを含む回帰テストを実行する。