netscape-bookmark-parser 1.1.3 → 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 +233 -386
  3. package/README.md +152 -302
  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 -66
  94. package/esm/src/BookmarksParser/BookmarksParser.d.ts.map +0 -1
  95. package/esm/src/BookmarksParser/BookmarksParser.js +0 -70
  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 -112
  100. package/esm/src/BookmarksTree/BookmarksTree.d.ts.map +0 -1
  101. package/esm/src/BookmarksTree/BookmarksTree.js +0 -217
  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 -66
  109. package/esm/src/web/BookmarksParser/BookmarksParser.d.ts.map +0 -1
  110. package/esm/src/web/BookmarksParser/BookmarksParser.js +0 -70
  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 -112
  115. package/esm/src/web/BookmarksTree/BookmarksTree.d.ts.map +0 -1
  116. package/esm/src/web/BookmarksTree/BookmarksTree.js +0 -217
  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
@@ -1,3 +0,0 @@
1
- export declare function getUpperCase(string: string): string;
2
- export declare function getLowerCase(string: string): string;
3
- //# sourceMappingURL=string-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string-cache.d.ts","sourceRoot":"","sources":["../../../../../../../../src/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD"}
@@ -1,10 +0,0 @@
1
- const upperCasedStringCache = new Map();
2
- const lowerCasedStringCache = new Map();
3
- export function getUpperCase(string) {
4
- return upperCasedStringCache.get(string) ??
5
- upperCasedStringCache.set(string, string.toUpperCase()).get(string);
6
- }
7
- export function getLowerCase(string) {
8
- return lowerCasedStringCache.get(string) ??
9
- lowerCasedStringCache.set(string, string.toLowerCase()).get(string);
10
- }
@@ -1,13 +0,0 @@
1
- import type { Element } from "./element.js";
2
- import type { Document } from "./document.js";
3
- import type { DocumentFragment } from "./document-fragment.js";
4
- /**
5
- * Ugly solution to circular imports... FIXME: Make this better
6
- */
7
- declare const _default: {
8
- Element: typeof Element;
9
- Document: typeof Document;
10
- DocumentFragment: typeof DocumentFragment;
11
- };
12
- export default _default;
13
- //# sourceMappingURL=utils-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;GAEG;;aAEuB,OAAO,OAAO;cACb,OAAO,QAAQ;sBACP,OAAO,gBAAgB;;AAH1D,wBAIE"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Ugly solution to circular imports... FIXME: Make this better
3
- */
4
- export default {
5
- Element: null,
6
- Document: null,
7
- DocumentFragment: null,
8
- };
@@ -1,31 +0,0 @@
1
- import { Node } from "./node.js";
2
- import type { Element } from "./element.js";
3
- import type { DocumentFragment } from "./document-fragment.js";
4
- export declare const upperCaseCharRe: RegExp;
5
- export declare const lowerCaseCharRe: RegExp;
6
- /**
7
- * Convert JS property name to dataset attribute name without
8
- * validation
9
- */
10
- export declare function getDatasetHtmlAttrName(name: string): `data-${string}`;
11
- export declare function getDatasetJavascriptName(name: string): string;
12
- export declare function getElementsByClassName(element: any, classNames: string[], search: Node[]): Node[];
13
- /**
14
- * .innerHTML/.outerHTML implementation without recursion to avoid stack
15
- * overflows
16
- */
17
- export declare function getOuterOrInnerHtml(parentElement: Element, asOuterHtml: boolean): string;
18
- export declare function getElementAttributesString(element: Element): string;
19
- export declare function insertBeforeAfter(node: Node, nodes: (Node | string)[], before: boolean): void;
20
- export declare function isDocumentFragment(node: Node): node is DocumentFragment;
21
- /**
22
- * Sets the new parent for the children via _setParent() on all
23
- * the child nodes and removes them from the DocumentFragment's
24
- * childNode list.
25
- *
26
- * A helper function for appendChild, etc. It should be called
27
- * _after_ the children are already pushed onto the new parent's
28
- * childNodes.
29
- */
30
- export declare function moveDocumentFragmentChildren(fragment: DocumentFragment, newParent: Node): void;
31
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../../src/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAAqC,MAAM,WAAW,CAAC;AAI7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,eAAe,QAAU,CAAC;AACvC,eAAO,MAAM,eAAe,QAAU,CAAC;AACvC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,MAAM,EAAE,CAWrE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,IAAI,EAAE,GACb,IAAI,EAAE,CAqBR;AAwBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,OAAO,GACnB,MAAM,CAkGR;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,GACf,MAAM,CAiBR;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,EACxB,MAAM,EAAE,OAAO,QA6BhB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,gBAAgB,CA2BvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,IAAI,QAUhB"}
@@ -1,239 +0,0 @@
1
- import { Node, nodesAndTextNodes, NodeType } from "./node.js";
2
- import UtilTypes from "./utils-types.js";
3
- export const upperCaseCharRe = /[A-Z]/;
4
- export const lowerCaseCharRe = /[a-z]/;
5
- /**
6
- * Convert JS property name to dataset attribute name without
7
- * validation
8
- */
9
- export function getDatasetHtmlAttrName(name) {
10
- let attributeName = "data-";
11
- for (const char of name) {
12
- if (upperCaseCharRe.test(char)) {
13
- attributeName += "-" + char.toLowerCase();
14
- }
15
- else {
16
- attributeName += char;
17
- }
18
- }
19
- return attributeName;
20
- }
21
- export function getDatasetJavascriptName(name) {
22
- let javascriptName = "";
23
- let prevChar = "";
24
- for (const char of name.slice("data-".length)) {
25
- if (prevChar === "-" && lowerCaseCharRe.test(char)) {
26
- javascriptName += char.toUpperCase();
27
- prevChar = "";
28
- }
29
- else {
30
- javascriptName += prevChar;
31
- prevChar = char;
32
- }
33
- }
34
- return javascriptName + prevChar;
35
- }
36
- export function getElementsByClassName(element, classNames, search) {
37
- for (const child of element.childNodes) {
38
- if (child.nodeType === NodeType.ELEMENT_NODE) {
39
- let matchesCount = 0;
40
- for (const singleClassName of classNames) {
41
- if (child.classList.contains(singleClassName)) {
42
- matchesCount++;
43
- }
44
- }
45
- // ensure that all class names are present
46
- if (matchesCount === classNames.length) {
47
- search.push(child);
48
- }
49
- getElementsByClassName(child, classNames, search);
50
- }
51
- }
52
- return search;
53
- }
54
- function getOuterHTMLOpeningTag(parentElement) {
55
- return "<" + parentElement.localName +
56
- getElementAttributesString(parentElement) + ">";
57
- }
58
- const voidElements = new Set([
59
- "area",
60
- "base",
61
- "br",
62
- "col",
63
- "embed",
64
- "hr",
65
- "img",
66
- "input",
67
- "link",
68
- "meta",
69
- "param",
70
- "source",
71
- "track",
72
- "wbr",
73
- ]);
74
- /**
75
- * .innerHTML/.outerHTML implementation without recursion to avoid stack
76
- * overflows
77
- */
78
- export function getOuterOrInnerHtml(parentElement, asOuterHtml) {
79
- let outerHTMLOpeningTag = "";
80
- let outerHTMLClosingTag = "";
81
- let innerHTML = "";
82
- if (asOuterHtml) {
83
- outerHTMLOpeningTag = getOuterHTMLOpeningTag(parentElement);
84
- outerHTMLClosingTag = `</${parentElement.localName}>`;
85
- if (voidElements.has(parentElement.localName)) {
86
- return outerHTMLOpeningTag;
87
- }
88
- }
89
- const initialChildNodes = parentElement.localName === "template"
90
- ? parentElement.content.childNodes
91
- : parentElement.childNodes;
92
- const childNodeDepth = [initialChildNodes];
93
- const indexDepth = [0];
94
- const closingTagDepth = [outerHTMLClosingTag];
95
- let depth = 0;
96
- depthLoop: while (depth > -1) {
97
- const child = childNodeDepth[depth][indexDepth[depth]];
98
- if (child) {
99
- switch (child.nodeType) {
100
- case NodeType.ELEMENT_NODE: {
101
- innerHTML += getOuterHTMLOpeningTag(child);
102
- const childLocalName = child.localName;
103
- // Void elements don't have a closing tag nor print innerHTML
104
- if (!voidElements.has(childLocalName)) {
105
- if (childLocalName === "template") {
106
- childNodeDepth.push(child.content.childNodes);
107
- }
108
- else {
109
- childNodeDepth.push(child.childNodes);
110
- }
111
- indexDepth.push(0);
112
- closingTagDepth.push(`</${childLocalName}>`);
113
- depth++;
114
- continue depthLoop;
115
- }
116
- break;
117
- }
118
- case NodeType.COMMENT_NODE:
119
- innerHTML += `<!--${child.data}-->`;
120
- break;
121
- case NodeType.TEXT_NODE:
122
- // Special handling for rawtext-like elements.
123
- switch (child.parentNode.localName) {
124
- case "style":
125
- case "script":
126
- case "xmp":
127
- case "iframe":
128
- case "noembed":
129
- case "noframes":
130
- case "plaintext": {
131
- innerHTML += child.data;
132
- break;
133
- }
134
- case "noscript": {
135
- innerHTML += child.data;
136
- break;
137
- }
138
- default: {
139
- // escaping: https://html.spec.whatwg.org/multipage/parsing.html#escapingString
140
- innerHTML += child.data
141
- .replace(/&/g, "&amp;")
142
- .replace(/\xA0/g, "&nbsp;")
143
- .replace(/</g, "&lt;")
144
- .replace(/>/g, "&gt;");
145
- break;
146
- }
147
- }
148
- break;
149
- }
150
- }
151
- else {
152
- depth--;
153
- indexDepth.pop();
154
- childNodeDepth.pop();
155
- innerHTML += closingTagDepth.pop();
156
- }
157
- // Go to next child
158
- indexDepth[depth]++;
159
- }
160
- // If innerHTML is requested then the opening tag should be an empty string
161
- return outerHTMLOpeningTag + innerHTML;
162
- }
163
- export function getElementAttributesString(element) {
164
- let out = "";
165
- for (const attribute of element.getAttributeNames()) {
166
- // attribute names should already all be lower-case
167
- out += ` ${attribute}`;
168
- // escaping: https://html.spec.whatwg.org/multipage/parsing.html#escapingString
169
- out += `="${element.getAttribute(attribute)
170
- .replace(/&/g, "&amp;")
171
- .replace(/\xA0/g, "&nbsp;")
172
- .replace(/"/g, "&quot;")}"`;
173
- }
174
- return out;
175
- }
176
- export function insertBeforeAfter(node, nodes, before) {
177
- const parentNode = node.parentNode;
178
- const mutator = parentNode._getChildNodesMutator();
179
- // Find the previous/next sibling to `node` that isn't in `nodes` before the
180
- // nodes in `nodes` are removed from their parents.
181
- let viablePrevNextSibling = null;
182
- {
183
- const difference = before ? -1 : +1;
184
- for (let i = mutator.indexOf(node) + difference; 0 <= i && i < parentNode.childNodes.length; i += difference) {
185
- if (!nodes.includes(parentNode.childNodes[i])) {
186
- viablePrevNextSibling = parentNode.childNodes[i];
187
- break;
188
- }
189
- }
190
- }
191
- nodes = nodesAndTextNodes(nodes, parentNode);
192
- let index;
193
- if (viablePrevNextSibling) {
194
- index = mutator.indexOf(viablePrevNextSibling) + (before ? 1 : 0);
195
- }
196
- else {
197
- index = before ? 0 : parentNode.childNodes.length;
198
- }
199
- mutator.splice(index, 0, ...nodes);
200
- }
201
- export function isDocumentFragment(node) {
202
- let obj = node;
203
- if (!(obj && typeof obj === "object")) {
204
- return false;
205
- }
206
- while (true) {
207
- switch (obj.constructor) {
208
- case UtilTypes.DocumentFragment:
209
- return true;
210
- case Node:
211
- case UtilTypes.Element:
212
- return false;
213
- // FIXME: We should probably throw here?
214
- case Object:
215
- case null:
216
- case undefined:
217
- return false;
218
- default:
219
- obj = Reflect.getPrototypeOf(obj);
220
- }
221
- }
222
- }
223
- /**
224
- * Sets the new parent for the children via _setParent() on all
225
- * the child nodes and removes them from the DocumentFragment's
226
- * childNode list.
227
- *
228
- * A helper function for appendChild, etc. It should be called
229
- * _after_ the children are already pushed onto the new parent's
230
- * childNodes.
231
- */
232
- export function moveDocumentFragmentChildren(fragment, newParent) {
233
- const childCount = fragment.childNodes.length;
234
- for (const child of fragment.childNodes) {
235
- child._setParent(newParent);
236
- }
237
- const mutator = fragment._getChildNodesMutator();
238
- mutator.splice(0, childCount);
239
- }
@@ -1,5 +0,0 @@
1
- export type Parser = (html: string, contextLocalName?: string) => string;
2
- export declare let parse: Parser;
3
- export declare let parseFrag: Parser;
4
- export declare function register(func: Parser, fragFunc: Parser): void;
5
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AACzE,eAAO,IAAI,KAAK,EAAE,MAGjB,CAAC;AAEF,eAAO,IAAI,SAAS,EAAE,MAGrB,CAAC;AAGF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAOtD"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Parser interface
3
- */
4
- import * as dntShim from "../../../../../../_dnt.shims.js";
5
- export let parse = (_html) => {
6
- console.error("Error: deno-dom: No parser registered");
7
- dntShim.Deno.exit(1);
8
- };
9
- export let parseFrag = (_html, _contextLocalName) => {
10
- console.error("Error: deno-dom: No parser registered");
11
- dntShim.Deno.exit(1);
12
- };
13
- const originalParse = parse;
14
- export function register(func, fragFunc) {
15
- if (parse !== originalParse) {
16
- return;
17
- }
18
- parse = func;
19
- parseFrag = fragFunc;
20
- }
package/esm/mod.d.ts DELETED
@@ -1,10 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- import "./_dnt.polyfills.js";
8
- export { BookmarksTree } from "./src/BookmarksTree/index.js";
9
- export { BookmarksParser } from "./src/BookmarksParser/index.js";
10
- //# sourceMappingURL=mod.d.ts.map
package/esm/mod.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC"}
package/esm/mod.js DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- import "./_dnt.polyfills.js";
8
- export { BookmarksTree } from "./src/BookmarksTree/index.js";
9
- export { BookmarksParser } from "./src/BookmarksParser/index.js";
package/esm/mod_web.d.ts DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- export { BookmarksTree } from "./src/web/BookmarksTree/index.js";
8
- export { BookmarksParser } from "./src/web/BookmarksParser/index.js";
9
- //# sourceMappingURL=mod_web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mod_web.d.ts","sourceRoot":"","sources":["../src/mod_web.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC"}
package/esm/mod_web.js DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- export { BookmarksTree } from "./src/web/BookmarksTree/index.js";
8
- export { BookmarksParser } from "./src/web/BookmarksParser/index.js";
package/esm/package.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- import { BookmarksTree } from "../BookmarksTree/index.js";
8
- /**
9
- * A parser for Netscape Bookmark format files
10
- *
11
- * This class provides static methods to parse Netscape Bookmark format HTML strings
12
- * and convert them into BookmarksTree instances for easier manipulation.
13
- *
14
- * @example
15
- * ```typescript
16
- * const bookmarkHtml = `<!DOCTYPE NETSCAPE-Bookmark-file-1>
17
- * <HTML>
18
- * <BODY>
19
- * <DL><p>
20
- * <DT><A HREF="https://google.com">Google</A>
21
- * <DT><H3>Development</H3>
22
- * <DL><p>
23
- * <DT><A HREF="https://github.com">GitHub</A>
24
- * </DL><p>
25
- * </DL>
26
- * </BODY>
27
- * </HTML>`;
28
- *
29
- * const tree = BookmarksParser.parse(bookmarkHtml);
30
- * ```
31
- */
32
- export declare class BookmarksParser {
33
- /**
34
- * Parses a Netscape Bookmark format HTML string into a BookmarksTree
35
- *
36
- * Takes an HTML string in Netscape Bookmark format and converts it into a structured
37
- * BookmarksTree that preserves the hierarchical organization of folders and bookmarks.
38
- *
39
- * @param data The HTML string in Netscape Bookmark format to parse
40
- * @returns A BookmarksTree representing the parsed bookmark structure
41
- *
42
- * @example
43
- * ```typescript
44
- * const bookmarkHtml = `<!DOCTYPE NETSCAPE-Bookmark-file-1>
45
- * <HTML>
46
- * <BODY>
47
- * <DL><p>
48
- * <DT><A HREF="https://google.com">Google</A>
49
- * <DT><H3>Development</H3>
50
- * <DL><p>
51
- * <DT><A HREF="https://github.com">GitHub</A>
52
- * </DL><p>
53
- * </DL>
54
- * </BODY>
55
- * </HTML>`;
56
- *
57
- * const tree = BookmarksParser.parse(bookmarkHtml);
58
- * console.log(tree.get("Google")); // "https://google.com"
59
- *
60
- * const folder = tree.get("Development");
61
- * console.log(folder.get("GitHub")); // "https://github.com"
62
- * ```
63
- */
64
- static parse(data: string): BookmarksTree;
65
- }
66
- //# sourceMappingURL=BookmarksParser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BookmarksParser.d.ts","sourceRoot":"","sources":["../../../src/src/BookmarksParser/BookmarksParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;CAKzC"}
@@ -1,70 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- import { DOMParser } from "../deps.js";
8
- import { BookmarksTree } from "../BookmarksTree/index.js";
9
- /**
10
- * A parser for Netscape Bookmark format files
11
- *
12
- * This class provides static methods to parse Netscape Bookmark format HTML strings
13
- * and convert them into BookmarksTree instances for easier manipulation.
14
- *
15
- * @example
16
- * ```typescript
17
- * const bookmarkHtml = `<!DOCTYPE NETSCAPE-Bookmark-file-1>
18
- * <HTML>
19
- * <BODY>
20
- * <DL><p>
21
- * <DT><A HREF="https://google.com">Google</A>
22
- * <DT><H3>Development</H3>
23
- * <DL><p>
24
- * <DT><A HREF="https://github.com">GitHub</A>
25
- * </DL><p>
26
- * </DL>
27
- * </BODY>
28
- * </HTML>`;
29
- *
30
- * const tree = BookmarksParser.parse(bookmarkHtml);
31
- * ```
32
- */
33
- export class BookmarksParser {
34
- /**
35
- * Parses a Netscape Bookmark format HTML string into a BookmarksTree
36
- *
37
- * Takes an HTML string in Netscape Bookmark format and converts it into a structured
38
- * BookmarksTree that preserves the hierarchical organization of folders and bookmarks.
39
- *
40
- * @param data The HTML string in Netscape Bookmark format to parse
41
- * @returns A BookmarksTree representing the parsed bookmark structure
42
- *
43
- * @example
44
- * ```typescript
45
- * const bookmarkHtml = `<!DOCTYPE NETSCAPE-Bookmark-file-1>
46
- * <HTML>
47
- * <BODY>
48
- * <DL><p>
49
- * <DT><A HREF="https://google.com">Google</A>
50
- * <DT><H3>Development</H3>
51
- * <DL><p>
52
- * <DT><A HREF="https://github.com">GitHub</A>
53
- * </DL><p>
54
- * </DL>
55
- * </BODY>
56
- * </HTML>`;
57
- *
58
- * const tree = BookmarksParser.parse(bookmarkHtml);
59
- * console.log(tree.get("Google")); // "https://google.com"
60
- *
61
- * const folder = tree.get("Development");
62
- * console.log(folder.get("GitHub")); // "https://github.com"
63
- * ```
64
- */
65
- static parse(data) {
66
- const dom = new DOMParser().parseFromString(data, "text/html");
67
- const tree = BookmarksTree.fromDOM(dom);
68
- return tree;
69
- }
70
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- export { BookmarksParser } from "./BookmarksParser.js";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/BookmarksParser/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright (c) 2025 grakeice
3
- *
4
- * This software is released under the MIT License.
5
- * https://opensource.org/licenses/MIT
6
- */
7
- export { BookmarksParser } from "./BookmarksParser.js";