netscape-bookmark-parser 1.1.4 → 1.2.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.
Files changed (122) hide show
  1. package/LICENSE +2 -2
  2. package/README-ja.md +108 -98
  3. package/README.md +108 -98
  4. package/dist/index.d.ts +240 -0
  5. package/dist/index.js +333 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/web.d.ts +241 -0
  8. package/dist/web.js +330 -0
  9. package/dist/web.js.map +1 -0
  10. package/package.json +58 -15
  11. package/esm/_dnt.polyfills.d.ts +0 -101
  12. package/esm/_dnt.polyfills.d.ts.map +0 -1
  13. package/esm/_dnt.polyfills.js +0 -127
  14. package/esm/_dnt.shims.d.ts +0 -6
  15. package/esm/_dnt.shims.d.ts.map +0 -1
  16. package/esm/_dnt.shims.js +0 -61
  17. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/build/deno-wasm/deno-wasm.d.ts +0 -14
  18. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/build/deno-wasm/deno-wasm.d.ts.map +0 -1
  19. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/build/deno-wasm/deno-wasm.js +0 -151
  20. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/deno-dom-wasm.d.ts +0 -23
  21. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/deno-dom-wasm.d.ts.map +0 -1
  22. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/deno-dom-wasm.js +0 -26
  23. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/api.d.ts +0 -24
  24. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/api.d.ts.map +0 -1
  25. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/api.js +0 -48
  26. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/constructor-lock.d.ts +0 -5
  27. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/constructor-lock.d.ts.map +0 -1
  28. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/constructor-lock.js +0 -4
  29. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/deserialize.d.ts +0 -4
  30. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/deserialize.d.ts.map +0 -1
  31. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/deserialize.js +0 -61
  32. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document-fragment.d.ts +0 -19
  33. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document-fragment.d.ts.map +0 -1
  34. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document-fragment.js +0 -110
  35. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document.d.ts +0 -68
  36. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document.d.ts.map +0 -1
  37. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document.js +0 -322
  38. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/dom-parser.d.ts +0 -6
  39. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/dom-parser.d.ts.map +0 -1
  40. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/dom-parser.js +0 -46
  41. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/element.d.ts +0 -127
  42. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/element.d.ts.map +0 -1
  43. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/element.js +0 -1068
  44. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/elements/html-template-element.d.ts +0 -29
  45. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/elements/html-template-element.d.ts.map +0 -1
  46. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/elements/html-template-element.js +0 -94
  47. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/html-collection.d.ts +0 -21
  48. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/html-collection.d.ts.map +0 -1
  49. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/html-collection.js +0 -80
  50. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node-list.d.ts +0 -23
  51. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node-list.d.ts.map +0 -1
  52. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node-list.js +0 -159
  53. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node.d.ts +0 -127
  54. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node.d.ts.map +0 -1
  55. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node.js +0 -629
  56. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/custom-api.d.ts +0 -6
  57. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/custom-api.d.ts.map +0 -1
  58. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/custom-api.js +0 -5
  59. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi-types.d.ts +0 -12
  60. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi-types.d.ts.map +0 -1
  61. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi-types.js +0 -2
  62. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi.d.ts +0 -90
  63. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi.d.ts.map +0 -1
  64. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi.js +0 -1611
  65. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/selectors.d.ts +0 -16
  66. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/selectors.d.ts.map +0 -1
  67. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/selectors.js +0 -28
  68. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle-types.d.ts +0 -8
  69. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle-types.d.ts.map +0 -1
  70. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle-types.js +0 -2
  71. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle.d.ts +0 -7
  72. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle.d.ts.map +0 -1
  73. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle.js +0 -2061
  74. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.d.ts +0 -3
  75. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.d.ts.map +0 -1
  76. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.js +0 -10
  77. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.d.ts +0 -13
  78. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.d.ts.map +0 -1
  79. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.js +0 -8
  80. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.d.ts +0 -31
  81. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.d.ts.map +0 -1
  82. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.js +0 -239
  83. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.d.ts +0 -5
  84. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.d.ts.map +0 -1
  85. package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.js +0 -20
  86. package/esm/mod.d.ts +0 -10
  87. package/esm/mod.d.ts.map +0 -1
  88. package/esm/mod.js +0 -9
  89. package/esm/mod_web.d.ts +0 -9
  90. package/esm/mod_web.d.ts.map +0 -1
  91. package/esm/mod_web.js +0 -8
  92. package/esm/package.json +0 -3
  93. package/esm/src/BookmarksParser/BookmarksParser.d.ts +0 -130
  94. package/esm/src/BookmarksParser/BookmarksParser.d.ts.map +0 -1
  95. package/esm/src/BookmarksParser/BookmarksParser.js +0 -142
  96. package/esm/src/BookmarksParser/index.d.ts +0 -8
  97. package/esm/src/BookmarksParser/index.d.ts.map +0 -1
  98. package/esm/src/BookmarksParser/index.js +0 -7
  99. package/esm/src/BookmarksTree/BookmarksTree.d.ts +0 -118
  100. package/esm/src/BookmarksTree/BookmarksTree.d.ts.map +0 -1
  101. package/esm/src/BookmarksTree/BookmarksTree.js +0 -225
  102. package/esm/src/BookmarksTree/index.d.ts +0 -8
  103. package/esm/src/BookmarksTree/index.d.ts.map +0 -1
  104. package/esm/src/BookmarksTree/index.js +0 -7
  105. package/esm/src/deps.d.ts +0 -9
  106. package/esm/src/deps.d.ts.map +0 -1
  107. package/esm/src/deps.js +0 -7
  108. package/esm/src/web/BookmarksParser/BookmarksParser.d.ts +0 -130
  109. package/esm/src/web/BookmarksParser/BookmarksParser.d.ts.map +0 -1
  110. package/esm/src/web/BookmarksParser/BookmarksParser.js +0 -142
  111. package/esm/src/web/BookmarksParser/index.d.ts +0 -8
  112. package/esm/src/web/BookmarksParser/index.d.ts.map +0 -1
  113. package/esm/src/web/BookmarksParser/index.js +0 -7
  114. package/esm/src/web/BookmarksTree/BookmarksTree.d.ts +0 -118
  115. package/esm/src/web/BookmarksTree/BookmarksTree.d.ts.map +0 -1
  116. package/esm/src/web/BookmarksTree/BookmarksTree.js +0 -225
  117. package/esm/src/web/BookmarksTree/index.d.ts +0 -8
  118. package/esm/src/web/BookmarksTree/index.d.ts.map +0 -1
  119. package/esm/src/web/BookmarksTree/index.js +0 -7
  120. package/esm/src/web/deps.d.ts +0 -10
  121. package/esm/src/web/deps.d.ts.map +0 -1
  122. package/esm/src/web/deps.js +0 -9
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 grakeice
3
+ Copyright (c) 2025-2026 kurage(@umitsukidev)
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
package/README-ja.md CHANGED
@@ -4,7 +4,8 @@
4
4
 
5
5
  > **注意:**
6
6
  > この README は AI による自動生成です。内容はほぼ正確ですが、不正確な説明が含まれる場合があります。
7
- > 英語版ドキュメント: [`./README.md`](./README.md)
7
+
8
+ 英語版ドキュメント: [`./README.md`](./README.md)
8
9
 
9
10
  ## 特徴
10
11
 
@@ -30,13 +31,10 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser";
30
31
  ### Deno
31
32
 
32
33
  ```typescript
33
- import {
34
- BookmarksParser,
35
- BookmarksTree,
36
- } from "jsr:@grakeice/netscape-bookmark-parser";
34
+ import { BookmarksParser, BookmarksTree } from "jsr:@grakeice/netscape-bookmark-parser";
37
35
  ```
38
36
 
39
- > **注意:** JSR 版は Node.js/Deno ランタイムのみ対応です。ブラウザで利用する場合は npm パッケージをご利用ください。
37
+ > **注意:** JSR 版は Node.js/Deno 用のエントリです。ブラウザでは npm の依存関係ゼロの `./web` エントリをご利用ください。
40
38
 
41
39
  ### ブラウザ
42
40
 
@@ -50,16 +48,16 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
50
48
 
51
49
  // 例: アップロードされたブックマークファイルの解析
52
50
  function handleFileUpload(event: Event) {
53
- const file = (event.target as HTMLInputElement).files?.[0];
54
- if (file) {
55
- const reader = new FileReader();
56
- reader.onload = (e) => {
57
- const htmlContent = e.target?.result as string;
58
- const bookmarksTree = BookmarksParser.parse(htmlContent);
59
- console.log(bookmarksTree.toJSON());
60
- };
61
- reader.readAsText(file);
62
- }
51
+ const file = (event.target as HTMLInputElement).files?.[0];
52
+ if (file) {
53
+ const reader = new FileReader();
54
+ reader.onload = (e) => {
55
+ const htmlContent = e.target?.result as string;
56
+ const bookmarksTree = BookmarksParser.parse(htmlContent);
57
+ console.log(bookmarksTree.toJSON());
58
+ };
59
+ reader.readAsText(file);
60
+ }
63
61
  }
64
62
  ```
65
63
 
@@ -67,15 +65,15 @@ function handleFileUpload(event: Event) {
67
65
 
68
66
  ```html
69
67
  <script type="importmap">
70
- {
71
- "imports": {
72
- "netscape-bookmark-parser/web": "https://cdn.jsdelivr.net/npm/netscape-bookmark-parser@1.1.4/esm/mod_web.js"
73
- }
74
- }
68
+ {
69
+ "imports": {
70
+ "netscape-bookmark-parser/web": "https://cdn.jsdelivr.net/npm/netscape-bookmark-parser@1.1.4/dist/web.js"
71
+ }
72
+ }
75
73
  </script>
76
74
  <script type="module">
77
- import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
78
- const tree = BookmarksParser.parse(htmlContent);
75
+ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
76
+ const tree = BookmarksParser.parse(htmlContent);
79
77
  </script>
80
78
  ```
81
79
 
@@ -83,14 +81,14 @@ function handleFileUpload(event: Event) {
83
81
 
84
82
  ```html
85
83
  <script type="module">
86
- import {
87
- BookmarksParser,
88
- BookmarksTree,
89
- } from "https://cdn.jsdelivr.net/npm/netscape-bookmark-parser@1.1.4/esm/mod_web.js";
84
+ import {
85
+ BookmarksParser,
86
+ BookmarksTree,
87
+ } from "https://cdn.jsdelivr.net/npm/netscape-bookmark-parser@1.1.4/dist/web.js";
90
88
  </script>
91
89
  ```
92
90
 
93
- > **ブラウザサポート:** ブラウザ互換は npm パッケージ経由のみ。JSR パッケージには web 最適化版は含まれません。
91
+ > **ブラウザサポート:** web 最適化版は npm `./web` エントリから利用できます。ネイティブブラウザ API を使用し、DOM ライブラリへの依存はありません。
94
92
 
95
93
  > **注意:** web 最適化版は DOMParser 等のネイティブ API を利用し、Node.js 用ポリフィルを含まないため、ブラウザで軽量かつ高速です。
96
94
 
@@ -198,12 +196,12 @@ console.log(devFolder.get("GitHub")); // "https://github.com"
198
196
 
199
197
  ### Web 最適化版
200
198
 
201
- > **重要:** ブラウザサポートは npm インストールのみ。JSR 版にはブラウザ互換ビルドは含まれません。
199
+ > **重要:** ブラウザサポートは npm `./web` エントリから利用できます。
202
200
 
203
201
  このライブラリは Node.js 依存を排除し、ネイティブブラウザ API を利用する web 最適化版を提供します:
204
202
 
205
203
  ```typescript
206
- // npmのみで利用可能なweb最適化版
204
+ // web最適化版
207
205
  import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
208
206
  ```
209
207
 
@@ -215,49 +213,49 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
215
213
 
216
214
  - [`static parse(htmlString: string): BookmarksTree`](#static-parsehtmlstring-string-bookmarkstree)
217
215
 
218
- - Netscape Bookmark 形式の HTML 文字列を解析し、`BookmarksTree`を返します。
219
- - [`parseFromHTMLString`](#static-parsefromhtmlstringhtmlstring-string-bookmarkstree)のエイリアス。
216
+ - Netscape Bookmark 形式の HTML 文字列を解析し、`BookmarksTree`を返します。
217
+ - [`parseFromHTMLString`](#static-parsefromhtmlstringhtmlstring-string-bookmarkstree)のエイリアス。
220
218
 
221
- **例:**
219
+ **例:**
222
220
 
223
- ```typescript
224
- const html = `<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<HTML><BODY><DL><p>\n <DT><A HREF=\"https://example.com\">Example</A>\n</DL><p></BODY></HTML>`;
225
- const tree = BookmarksParser.parse(html);
226
- console.log(tree.toJSON());
227
- ```
221
+ ```typescript
222
+ const html = `<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<HTML><BODY><DL><p>\n <DT><A HREF=\"https://example.com\">Example</A>\n</DL><p></BODY></HTML>`;
223
+ const tree = BookmarksParser.parse(html);
224
+ console.log(tree.toJSON());
225
+ ```
228
226
 
229
227
  - [`static parseFromHTMLString(htmlString: string): BookmarksTree`](#static-parsefromhtmlstringhtmlstring-string-bookmarkstree)
230
228
 
231
- - HTML 文字列を解析し、`BookmarksTree`を返します。
229
+ - HTML 文字列を解析し、`BookmarksTree`を返します。
232
230
 
233
- **例:**
231
+ **例:**
234
232
 
235
- ```typescript
236
- const html = `<!DOCTYPE NETSCAPE-Bookmark-file-1>...`;
237
- const tree = BookmarksParser.parseFromHTMLString(html);
238
- ```
233
+ ```typescript
234
+ const html = `<!DOCTYPE NETSCAPE-Bookmark-file-1>...`;
235
+ const tree = BookmarksParser.parseFromHTMLString(html);
236
+ ```
239
237
 
240
238
  - [`static parseFromDOM(dom: HTMLDocument): BookmarksTree`](#static-parsefromdomdom-htmldocument-bookmarkstree)
241
239
 
242
- - 既存の`HTMLDocument`から`BookmarksTree`を生成します。
240
+ - 既存の`HTMLDocument`から`BookmarksTree`を生成します。
243
241
 
244
- **例:**
242
+ **例:**
245
243
 
246
- ```typescript
247
- const dom = new DOMParser().parseFromString(html, "text/html");
248
- const tree = BookmarksParser.parseFromDOM(dom);
249
- ```
244
+ ```typescript
245
+ const dom = new DOMParser().parseFromString(html, "text/html");
246
+ const tree = BookmarksParser.parseFromDOM(dom);
247
+ ```
250
248
 
251
249
  - [`static parseFromJSON(jsonString: string): BookmarksTree`](#static-parsefromjsonjsonstring-string-bookmarkstree)
252
250
 
253
- - JSON 文字列を解析し、`BookmarksTree`を返します。
251
+ - JSON 文字列を解析し、`BookmarksTree`を返します。
254
252
 
255
- **例:**
253
+ **例:**
256
254
 
257
- ```typescript
258
- const json = '{"Google": "https://google.com"}';
259
- const tree = BookmarksParser.parseFromJSON(json);
260
- ```
255
+ ```typescript
256
+ const json = '{"Google": "https://google.com"}';
257
+ const tree = BookmarksParser.parseFromJSON(json);
258
+ ```
261
259
 
262
260
  ---
263
261
 
@@ -269,73 +267,73 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
269
267
 
270
268
  - [`new BookmarksTree()`](#constructor)
271
269
 
272
- **例:**
270
+ **例:**
273
271
 
274
- ```typescript
275
- const tree = new BookmarksTree();
276
- tree.set("Google", "https://google.com");
277
- ```
272
+ ```typescript
273
+ const tree = new BookmarksTree();
274
+ tree.set("Google", "https://google.com");
275
+ ```
278
276
 
279
277
  #### インスタンスメソッド
280
278
 
281
279
  - [`toJSON(): Record<string, unknown>`](#tojson-recordstring-unknown)
282
280
 
283
- - ツリーを JSON オブジェクトに変換します。
281
+ - ツリーを JSON オブジェクトに変換します。
284
282
 
285
- **例:**
283
+ **例:**
286
284
 
287
- ```typescript
288
- const json = tree.toJSON();
289
- console.log(json);
290
- ```
285
+ ```typescript
286
+ const json = tree.toJSON();
287
+ console.log(json);
288
+ ```
291
289
 
292
290
  - [`toDOM(): HTMLDocument`](#todom-htmldocument)
293
291
 
294
- - ツリーを Netscape Bookmark 形式の HTML ドキュメントに変換します。
292
+ - ツリーを Netscape Bookmark 形式の HTML ドキュメントに変換します。
295
293
 
296
- **例:**
294
+ **例:**
297
295
 
298
- ```typescript
299
- const dom = tree.toDOM();
300
- ```
296
+ ```typescript
297
+ const dom = tree.toDOM();
298
+ ```
301
299
 
302
300
  - [`get HTMLString(): string`](#get-htmlstring-string)
303
301
 
304
- - Netscape Bookmark 形式の完全な HTML 文字列を取得します。
302
+ - Netscape Bookmark 形式の完全な HTML 文字列を取得します。
305
303
 
306
- **例:**
304
+ **例:**
307
305
 
308
- ```typescript
309
- const html = tree.HTMLString;
310
- console.log(html);
311
- ```
306
+ ```typescript
307
+ const html = tree.HTMLString;
308
+ console.log(html);
309
+ ```
312
310
 
313
311
  - [`get HTMLText(): string`](#get-htmltext-string)
314
- - `HTMLString`のエイリアス(非推奨)。
312
+ - `HTMLString`のエイリアス(非推奨)。
315
313
 
316
314
  #### 静的メソッド
317
315
 
318
316
  - [`static fromJSON(json: Record<string, unknown>): BookmarksTree`](#static-fromjsonjson-recordstring-unknown-bookmarkstree)
319
317
 
320
- - JSON オブジェクトからツリーを生成します。
318
+ - JSON オブジェクトからツリーを生成します。
321
319
 
322
- **例:**
320
+ **例:**
323
321
 
324
- ```typescript
325
- const json = { Google: "https://google.com" };
326
- const tree = BookmarksTree.fromJSON(json);
327
- ```
322
+ ```typescript
323
+ const json = { Google: "https://google.com" };
324
+ const tree = BookmarksTree.fromJSON(json);
325
+ ```
328
326
 
329
327
  - [`static fromDOM(dom: HTMLDocument): BookmarksTree`](#static-fromdomdom-htmldocument-bookmarkstree)
330
328
 
331
- - HTML ドキュメントからツリーを生成します。
329
+ - HTML ドキュメントからツリーを生成します。
332
330
 
333
- **例:**
331
+ **例:**
334
332
 
335
- ```typescript
336
- const dom = new DOMParser().parseFromString(html, "text/html");
337
- const tree = BookmarksTree.fromDOM(dom);
338
- ```
333
+ ```typescript
334
+ const dom = new DOMParser().parseFromString(html, "text/html");
335
+ const tree = BookmarksTree.fromDOM(dom);
336
+ ```
339
337
 
340
338
  ## プロジェクト構成
341
339
 
@@ -350,16 +348,28 @@ src/
350
348
  ├── BookmarksParser.test.ts # パーサーテスト
351
349
  └── index.ts # エクスポート定義
352
350
  scripts/
353
- └── build_npm.ts # NPMビルドスクリプト
351
+ └── sync-jsr-version.mjs # package.jsonとJSRバージョンの同期
354
352
  .github/
355
353
  └── workflows/
356
- └── release.yml # CI/CDパイプライン
357
- npm/ # Node.jsビルド成果物
358
- ├── esm/ # ESモジュール
359
- ├── package.json
360
- └── README.md
354
+ ├── changesets.yml # ChangesetsによるバージョンPR
355
+ ├── ci.yml # テスト・型検査・ビルド
356
+ └── release.yml # NPM/JSR公開とGitHub Release
357
+ dist/ # 生成されるパッケージファイル(コミット対象外)
361
358
  ```
362
359
 
360
+ ## 開発とリリース
361
+
362
+ pnpmで依存関係をインストールし、ローカル検証を実行します。
363
+
364
+ ```bash
365
+ pnpm install
366
+ pnpm test
367
+ pnpm typecheck
368
+ pnpm build
369
+ ```
370
+
371
+ ユーザー向け変更には `pnpm changeset` でリリースノートを追加します。`main` へのpushでChangesetsがバージョンPRを作成し、マージ時に `package.json` の変更と `jsr.json` のバージョン同期が行われます。その後の `main` へのpushでNPM/JSRへ公開し、対応する `v<version>` GitタグとGitHub Releaseを作成します。
372
+
363
373
  ## サポート形式
364
374
 
365
375
  ### 入力形式
@@ -471,7 +481,7 @@ MIT License - 詳細は[LICENSE](LICENSE)を参照してください。
471
481
  ### v1.1.0
472
482
 
473
483
  - 🌐 **ブラウザサポート**: ブラウザ用 web 最適化版を追加
474
- - 📦 **デュアルエントリーポイント**: Node.js/Deno 用(`./mod.ts`)とブラウザ用(`./mod_web.ts`)を分離
484
+ - 📦 **デュアルエントリーポイント**: Node.js/Deno 用(`src/index.ts`)とブラウザ用(`src/web.ts`)を分離
475
485
  - ⚡ **ネイティブ DOM API**: ブラウザ版は DOMParser 等のネイティブ API で高速化
476
486
  - 🔧 **ビルド最適化**: ポリフィル除去等によるビルド強化
477
487
  - 📚 **ドキュメント更新**: ブラウザ利用例・API リファレンス追加