html-react-parser 6.0.1 → 6.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dom-to-react.d.ts","sourceRoot":"","sources":["../src/dom-to-react.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAetD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,sBAA2B,GACnC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAqHtC"}
1
+ {"version":3,"file":"dom-to-react.d.ts","sourceRoot":"","sources":["../src/dom-to-react.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAetD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,sBAA2B,GACnC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAuHtC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.default = domToReact;
8
+ const domhandler_1 = require("domhandler");
8
9
  const react_1 = require("react");
9
10
  const attributes_to_props_1 = __importDefault(require("./attributes-to-props"));
10
11
  const utilities_1 = require("./utilities");
@@ -27,6 +28,7 @@ function domToReact(nodes, options = {}) {
27
28
  const transform = (_a = options.transform) !== null && _a !== void 0 ? _a : utilities_1.returnFirstArg;
28
29
  const { cloneElement, createElement, isValidElement } = (_b = options.library) !== null && _b !== void 0 ? _b : React;
29
30
  const nodesLength = nodes.length;
31
+ normalizeDOMNodes(nodes);
30
32
  for (let index = 0; index < nodesLength; index++) {
31
33
  const node = nodes[index];
32
34
  // replace with custom React element (if present)
@@ -110,6 +112,16 @@ function domToReact(nodes, options = {}) {
110
112
  }
111
113
  return reactElements.length === 1 ? reactElements[0] : reactElements;
112
114
  }
115
+ function normalizeDOMNodes(nodes) {
116
+ for (const node of nodes) {
117
+ if (node.type === 'tag' ||
118
+ node.type === 'script' ||
119
+ node.type === 'style') {
120
+ Object.setPrototypeOf(node, domhandler_1.Element.prototype);
121
+ normalizeDOMNodes(node.children);
122
+ }
123
+ }
124
+ }
113
125
  /**
114
126
  * Determines whether DOM element attributes should be transformed to props.
115
127
  * Web Components should not have their attributes transformed except for `style`.
@@ -1 +1 @@
1
- {"version":3,"file":"dom-to-react.js","sourceRoot":"","sources":["../src/dom-to-react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom-to-react.js","sourceRoot":"","sources":["../src/dom-to-react.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC3E,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAIpD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,sBAAsB,GAC/B,UAAU,CAAC,OAAO,UAAU,CAAC,CAa/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC3E,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAIpD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,sBAAsB,GAC/B,UAAU,CAAC,OAAO,UAAU,CAAC,CAe/B"}
package/lib/index.js CHANGED
@@ -32,6 +32,7 @@ function HTMLReactParser(html, options) {
32
32
  if (!html) {
33
33
  return [];
34
34
  }
35
- return (0, dom_to_react_1.default)((0, html_dom_parser_1.default)(html, (_a = options === null || options === void 0 ? void 0 : options.htmlparser2) !== null && _a !== void 0 ? _a : domParserOptions), options);
35
+ const htmlToDOMOptions = Object.assign(Object.assign({}, ((_a = options === null || options === void 0 ? void 0 : options.htmlparser2) !== null && _a !== void 0 ? _a : domParserOptions)), { trustedTypePolicy: options === null || options === void 0 ? void 0 : options.trustedTypePolicy });
36
+ return (0, dom_to_react_1.default)((0, html_dom_parser_1.default)(html, htmlToDOMOptions), options);
36
37
  }
37
38
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAqBA,kCAgBC;AArCD,sEAAwC;AAUA,oBAVjC,yBAAS,CAUiC;AARjD,gFAAsD;AAQ7C,4BARF,6BAAiB,CAQE;AAP1B,kEAAwC;AAOZ,qBAPrB,sBAAU,CAOqB;AAJtC,yCAA2E;AAAlE,qGAAA,OAAO,OAAA;AAAE,qGAAA,OAAO,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,kGAAA,IAAI,OAAA;AAMtD,MAAM,gBAAgB,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAW,CAAC;AAErE;;;;;;GAMG;AACH,SAAwB,eAAe,CACrC,IAAY,EACZ,OAAgC;;IAEhC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAA,sBAAU,EACf,IAAA,yBAAS,EAAC,IAAI,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,gBAAgB,CAAC,EACzD,OAAO,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAqBA,kCAkBC;AAvCD,sEAAwC;AAUA,oBAVjC,yBAAS,CAUiC;AARjD,gFAAsD;AAQ7C,4BARF,6BAAiB,CAQE;AAP1B,kEAAwC;AAOZ,qBAPrB,sBAAU,CAOqB;AAJtC,yCAA2E;AAAlE,qGAAA,OAAO,OAAA;AAAE,qGAAA,OAAO,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,kGAAA,IAAI,OAAA;AAMtD,MAAM,gBAAgB,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAW,CAAC;AAErE;;;;;;GAMG;AACH,SAAwB,eAAe,CACrC,IAAY,EACZ,OAAgC;;IAEhC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,gBAAgB,mCACjB,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,gBAAgB,CAAC,KAC7C,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,GAC9C,CAAC;IAEF,OAAO,IAAA,sBAAU,EAAC,IAAA,yBAAS,EAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC"}
package/lib/types.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import type { DomHandlerOptions } from 'domhandler';
2
- import type { DOMNode } from 'html-dom-parser';
2
+ import type { DOMNode, TrustedTypePolicy } from 'html-dom-parser';
3
3
  import type { ParserOptions } from 'htmlparser2';
4
4
  import type { JSX, ReactNode } from 'react';
5
5
  export interface HTMLReactParserOptions {
6
6
  htmlparser2?: ParserOptions & DomHandlerOptions;
7
+ trustedTypePolicy?: TrustedTypePolicy;
7
8
  library?: {
8
9
  cloneElement: (element: JSX.Element, props?: object, ...children: any[]) => JSX.Element;
9
10
  createElement: (type: any, props?: object, ...children: any[]) => JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAEhD,OAAO,CAAC,EAAE;QAER,YAAY,EAAE,CACZ,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,QAAQ,EAAE,GAAG,EAAE,KACf,GAAG,CAAC,OAAO,CAAC;QAEjB,aAAa,EAAE,CACb,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,QAAQ,EAAE,GAAG,EAAE,KACf,GAAG,CAAC,OAAO,CAAC;QAEjB,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC;QAE1C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAEpB,CAAC;IAEF,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,KAEV,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3D,SAAS,CAAC,EAAE,CACV,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,KAEV,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAChD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC,OAAO,CAAC,EAAE;QAER,YAAY,EAAE,CACZ,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,QAAQ,EAAE,GAAG,EAAE,KACf,GAAG,CAAC,OAAO,CAAC;QAEjB,aAAa,EAAE,CACb,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,QAAQ,EAAE,GAAG,EAAE,KACf,GAAG,CAAC,OAAO,CAAC;QAEjB,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC;QAE1C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAEpB,CAAC;IAEF,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,KAEV,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3D,SAAS,CAAC,EAAE,CACV,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,KAEV,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "html-react-parser",
3
- "version": "6.0.1",
3
+ "version": "6.1.1",
4
4
  "description": "HTML to React parser.",
5
5
  "author": "Mark <mark@remarkablemark.org> (https://remarkabl.org)",
6
6
  "funding": [
@@ -61,47 +61,47 @@
61
61
  ],
62
62
  "dependencies": {
63
63
  "domhandler": "6.0.1",
64
- "html-dom-parser": "7.0.1",
64
+ "html-dom-parser": "7.1.0",
65
65
  "react-property": "2.0.2",
66
66
  "style-to-js": "1.1.21"
67
67
  },
68
68
  "devDependencies": {
69
- "@commitlint/cli": "20.5.0",
70
- "@commitlint/config-conventional": "20.5.0",
71
- "@eslint/compat": "2.0.4",
69
+ "@arethetypeswrong/cli": "0.18.2",
70
+ "@commitlint/cli": "21.0.1",
71
+ "@commitlint/config-conventional": "21.0.1",
72
72
  "@eslint/eslintrc": "3.3.5",
73
73
  "@eslint/js": "10.0.1",
74
74
  "@rollup/plugin-commonjs": "29.0.2",
75
75
  "@rollup/plugin-node-resolve": "16.0.3",
76
76
  "@rollup/plugin-terser": "1.0.0",
77
77
  "@rollup/plugin-typescript": "12.3.0",
78
- "@size-limit/preset-big-lib": "12.0.1",
78
+ "@size-limit/preset-big-lib": "12.1.0",
79
79
  "@types/benchmark": "2.1.5",
80
- "@types/node": "25.5.2",
80
+ "@types/node": "25.8.0",
81
81
  "@types/react": "19.2.14",
82
82
  "@types/react-dom": "19.2.3",
83
- "@vitest/browser": "4.1.3",
84
- "@vitest/browser-playwright": "4.1.3",
85
- "@vitest/coverage-v8": "4.1.3",
83
+ "@vitest/browser": "4.1.6",
84
+ "@vitest/browser-playwright": "4.1.6",
85
+ "@vitest/coverage-v8": "4.1.6",
86
86
  "benchmark": "2.1.4",
87
- "eslint": "10.2.0",
87
+ "eslint": "10.4.0",
88
88
  "eslint-plugin-prettier": "5.5.5",
89
89
  "eslint-plugin-simple-import-sort": "13.0.0",
90
90
  "eslint-plugin-tsdoc": "0.5.2",
91
- "globals": "17.4.0",
91
+ "globals": "17.6.0",
92
92
  "husky": "9.1.7",
93
- "lint-staged": "16.4.0",
94
- "playwright": "1.59.1",
93
+ "lint-staged": "17.0.4",
94
+ "playwright": "1.60.0",
95
95
  "preact": "10.29.1",
96
- "publint": "0.3.18",
97
- "react": "19.2.4",
98
- "react-dom": "19.2.4",
99
- "rollup": "4.60.1",
100
- "size-limit": "12.0.1",
96
+ "publint": "0.3.21",
97
+ "react": "19.2.6",
98
+ "react-dom": "19.2.6",
99
+ "rollup": "4.60.4",
100
+ "size-limit": "12.1.0",
101
101
  "ts-node": "10.9.2",
102
- "typescript": "6.0.2",
103
- "typescript-eslint": "8.58.1",
104
- "vitest": "4.1.3"
102
+ "typescript": "6.0.3",
103
+ "typescript-eslint": "8.59.3",
104
+ "vitest": "4.1.6"
105
105
  },
106
106
  "peerDependencies": {
107
107
  "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19",
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */
2
2
 
3
+ import { Element as DomHandlerElement } from 'domhandler';
3
4
  import type { DOMNode, Element, Text } from 'html-dom-parser';
4
5
  import type { JSX } from 'react';
5
6
  import { cloneElement, createElement, isValidElement } from 'react';
@@ -41,6 +42,8 @@ export default function domToReact(
41
42
 
42
43
  const nodesLength = nodes.length;
43
44
 
45
+ normalizeDOMNodes(nodes);
46
+
44
47
  for (let index = 0; index < nodesLength; index++) {
45
48
  const node = nodes[index];
46
49
 
@@ -150,6 +153,19 @@ export default function domToReact(
150
153
  return reactElements.length === 1 ? reactElements[0] : reactElements;
151
154
  }
152
155
 
156
+ function normalizeDOMNodes(nodes: DOMNode[]): void {
157
+ for (const node of nodes) {
158
+ if (
159
+ node.type === 'tag' ||
160
+ node.type === 'script' ||
161
+ node.type === 'style'
162
+ ) {
163
+ Object.setPrototypeOf(node, DomHandlerElement.prototype);
164
+ normalizeDOMNodes(node.children as DOMNode[]);
165
+ }
166
+ }
167
+ }
168
+
153
169
  /**
154
170
  * Determines whether DOM element attributes should be transformed to props.
155
171
  * Web Components should not have their attributes transformed except for `style`.
package/src/index.ts CHANGED
@@ -31,8 +31,10 @@ export default function HTMLReactParser(
31
31
  return [];
32
32
  }
33
33
 
34
- return domToReact(
35
- htmlToDOM(html, options?.htmlparser2 ?? domParserOptions),
36
- options,
37
- );
34
+ const htmlToDOMOptions = {
35
+ ...(options?.htmlparser2 ?? domParserOptions),
36
+ trustedTypePolicy: options?.trustedTypePolicy,
37
+ };
38
+
39
+ return domToReact(htmlToDOM(html, htmlToDOMOptions), options);
38
40
  }
package/src/types.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import type { DomHandlerOptions } from 'domhandler';
2
- import type { DOMNode } from 'html-dom-parser';
2
+ import type { DOMNode, TrustedTypePolicy } from 'html-dom-parser';
3
3
  import type { ParserOptions } from 'htmlparser2';
4
4
  import type { JSX, ReactNode } from 'react';
5
5
 
6
6
  export interface HTMLReactParserOptions {
7
7
  htmlparser2?: ParserOptions & DomHandlerOptions;
8
+ trustedTypePolicy?: TrustedTypePolicy;
8
9
 
9
10
  library?: {
10
11
  /* eslint-disable @typescript-eslint/no-explicit-any */