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
@@ -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,130 +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 type { HTMLDocument } 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 declare class BookmarksParser {
34
- /**
35
- * Alias for the {@link parseFromHTMLString} method.
36
- *
37
- * @param htmlString HTML string in Netscape Bookmark format
38
- * @returns The parsed BookmarksTree
39
- *
40
- * @example
41
- * ```typescript
42
- * const bookmarkHtml = `<!DOCTYPE NETSCAPE-Bookmark-file-1>
43
- * <HTML>
44
- * <BODY>
45
- * <DL><p>
46
- * <DT><A HREF="https://google.com">Google</A>
47
- * <DT><H3>Development</H3>
48
- * <DL><p>
49
- * <DT><A HREF="https://github.com">GitHub</A>
50
- * </DL><p>
51
- * </DL>
52
- * </BODY>
53
- * </HTML>`;
54
- *
55
- * const tree = BookmarksParser.parse(bookmarkHtml);
56
- * ```
57
- */
58
- static parse(htmlString: string): BookmarksTree;
59
- /**
60
- * Parses a Netscape Bookmark format HTML string and returns a BookmarksTree.
61
- *
62
- * @param htmlString HTML string in Netscape Bookmark format
63
- * @returns The parsed BookmarksTree
64
- *
65
- * @example
66
- * ```typescript
67
- * const bookmarkHtml = `<!DOCTYPE NETSCAPE-Bookmark-file-1>
68
- * <HTML>
69
- * <BODY>
70
- * <DL><p>
71
- * <DT><A HREF="https://google.com">Google</A>
72
- * <DT><H3>Development</H3>
73
- * <DL><p>
74
- * <DT><A HREF="https://github.com">GitHub</A>
75
- * </DL><p>
76
- * </DL>
77
- * </BODY>
78
- * </HTML>`;
79
- *
80
- * const tree = BookmarksParser.parseFromHTMLString(bookmarkHtml);
81
- * ```
82
- */
83
- static parseFromHTMLString(htmlString: string): BookmarksTree;
84
- /**
85
- * Creates a BookmarksTree from an existing HTMLDocument.
86
- *
87
- * This is an alias for {@link BookmarksTree.fromDOM}.
88
- *
89
- * Use this when you already have a parsed HTMLDocument and want to convert it to a BookmarksTree.
90
- *
91
- * @param dom An HTMLDocument instance
92
- * @returns The parsed BookmarksTree
93
- *
94
- * @example
95
- * ```typescript
96
- * const dom = new DOMParser().parseFromString(bookmarkHtml, "text/html");
97
- * const tree = BookmarksParser.parseFromDOM(dom);
98
- * ```
99
- */
100
- static parseFromDOM(dom: HTMLDocument): BookmarksTree;
101
- /**
102
- * Parses a JSON string and returns a BookmarksTree.
103
- *
104
- * @param jsonString JSON string representing the bookmark structure
105
- * @returns The parsed BookmarksTree
106
- *
107
- * @example
108
- * ```typescript
109
- * const json = '{"Google":"https://google.com","Development":{"GitHub":"https://github.com"}}';
110
- * const tree = BookmarksParser.parseFromJSONString(json);
111
- * ```
112
- */
113
- static parseFromJSONString(jsonString: string): BookmarksTree;
114
- /**
115
- * Parses a JSON object and returns a BookmarksTree.
116
- *
117
- * This is an alias for {@link BookmarksTree.fromJSON}.
118
- *
119
- * @param jsonObj JSON object representing the bookmark structure
120
- * @returns The parsed BookmarksTree
121
- *
122
- * @example
123
- * ```typescript
124
- * const obj = { "Google": "https://google.com", "Development": { "GitHub": "https://github.com" } };
125
- * const tree = BookmarksParser.parseFromJSON(obj);
126
- * ```
127
- */
128
- static parseFromJSON(jsonObj: Record<string, unknown>): BookmarksTree;
129
- }
130
- //# 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,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe;IAC3B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAI/C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAM7D;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa;IAIrD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAK7D;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa;CAGrE"}