meliorence / react-native-render-html

iOS/Android pure javascript react-native component that renders your HTML into 100% native views
https://meliorence.github.io/react-native-render-html/
BSD 2-Clause "Simplified" License
3.48k stars 589 forks source link

Error thrown when rendering html with '&' sign #625

Open MarcK98 opened 1 year ago

MarcK98 commented 1 year ago

Decision Table

Good Faith Declaration

Description

RenderHTMLSource breaks whenever passing & in the source.html prop

Screenshot

Screenshot 2023-03-11 at 1 33 32 AM

React Native Information

├─ @babel/plugin-proposal-private-property-in-object@npm:7.21.0
│  ├─ Instances: 1
│  ├─ Version: 7.21.0
│  │
│  └─ Dependencies
│     ├─ @babel/helper-annotate-as-pure@npm:^7.18.6 → npm:7.18.6
│     ├─ @babel/helper-create-class-features-plugin@npm:^7.21.0 → npm:7.21.0
│     ├─ @babel/helper-plugin-utils@npm:^7.20.2 → npm:7.20.2
│     └─ @babel/plugin-syntax-private-property-in-object@npm:^7.14.5 → npm:7.14.5
│
├─ @babel/runtime@npm:7.21.0
│  ├─ Version: 7.21.0
│  │
│  └─ Dependencies
│     └─ regenerator-runtime@npm:^0.13.11 → npm:0.13.11
│
├─ @gorhom/bottom-sheet@npm:4.4.5
│  ├─ Instances: 1
│  ├─ Version: 4.4.5
│  │
│  └─ Dependencies
│     ├─ @gorhom/portal@npm:1.0.14 → npm:1.0.14
│     └─ invariant@npm:^2.2.4 → npm:2.2.4
│
├─ @graphql-eslint/eslint-plugin@npm:3.14.3
│  ├─ Instances: 1
│  ├─ Version: 3.14.3
│  │
│  └─ Dependencies
│     ├─ @babel/code-frame@npm:^7.18.6 → npm:7.18.6
│     ├─ @graphql-tools/code-file-loader@npm:^7.3.6 → npm:7.3.15
│     ├─ @graphql-tools/graphql-tag-pluck@npm:^7.3.6 → npm:7.4.2
│     ├─ @graphql-tools/utils@npm:^9.0.0 → npm:9.1.3
│     ├─ chalk@npm:^4.1.2 → npm:4.1.2
│     ├─ debug@npm:^4.3.4 → npm:4.3.4
│     ├─ fast-glob@npm:^3.2.12 → npm:3.2.12
│     ├─ graphql-config@npm:^4.4.0 → npm:4.4.0
│     ├─ graphql-depth-limit@npm:^1.1.0 → npm:1.1.0
│     ├─ lodash.lowercase@npm:^4.3.0 → npm:4.3.0
│     └─ tslib@npm:^2.4.1 → npm:2.4.1
│
├─ @react-hook/merged-ref@npm:1.3.2
│  ├─ Instances: 1
│  └─ Version: 1.3.2
│
├─ @react-native-async-storage/async-storage@npm:1.16.2
│  ├─ Instances: 1
│  ├─ Version: 1.16.2
│  │
│  └─ Dependencies
│     └─ merge-options@npm:^3.0.4 → npm:3.0.4
│
├─ @react-native-community/eslint-config@npm:3.2.0
│  ├─ Instances: 1
│  ├─ Version: 3.2.0
│  │
│  └─ Dependencies
│     ├─ @babel/core@npm:^7.14.0 → npm:7.20.12
│     ├─ @babel/eslint-parser@npm:^7.18.2 → npm:7.19.1
│     ├─ @react-native-community/eslint-plugin@npm:^1.1.0 → npm:1.3.0
│     ├─ @typescript-eslint/eslint-plugin@npm:^5.30.5 → npm:5.48.1
│     ├─ @typescript-eslint/parser@npm:^5.30.5 → npm:5.48.1
│     ├─ eslint-config-prettier@npm:^8.5.0 → npm:8.6.0
│     ├─ eslint-plugin-eslint-comments@npm:^3.2.0 → npm:3.2.0
│     ├─ eslint-plugin-ft-flow@npm:^2.0.1 → npm:2.0.3
│     ├─ eslint-plugin-jest@npm:^26.5.3 → npm:26.9.0
│     ├─ eslint-plugin-prettier@npm:^4.2.1 → npm:4.2.1
│     ├─ eslint-plugin-react-hooks@npm:^4.6.0 → npm:4.6.0
│     ├─ eslint-plugin-react-native@npm:^4.0.0 → npm:4.0.0
│     └─ eslint-plugin-react@npm:^7.30.1 → npm:7.31.11
│
├─ @react-navigation/bottom-tabs@npm:6.2.0
│  ├─ Instances: 1
│  ├─ Version: 6.2.0
│  │
│  └─ Dependencies
│     ├─ @react-navigation/elements@npm:^1.3.1 → npm:1.3.13
│     ├─ color@npm:^3.1.3 → npm:3.2.1
│     └─ warn-once@npm:^0.1.0 → npm:0.1.1
│
├─ @react-navigation/drawer@npm:6.5.7
│  ├─ Instances: 1
│  ├─ Version: 6.5.7
│  │
│  └─ Dependencies
│     ├─ @react-navigation/elements@npm:^1.3.13 → npm:1.3.13
│     ├─ color@npm:^4.2.3 → npm:4.2.3
│     └─ warn-once@npm:^0.1.0 → npm:0.1.1
│
├─ @react-navigation/native-stack@npm:6.5.0
│  ├─ Instances: 1
│  ├─ Version: 6.5.0
│  │
│  └─ Dependencies
│     ├─ @react-navigation/elements@npm:^1.3.1 → npm:1.3.13
│     └─ warn-once@npm:^0.1.0 → npm:0.1.1
│
├─ @react-navigation/native@npm:6.0.8
│  ├─ Instances: 1
│  ├─ Version: 6.0.8
│  │
│  └─ Dependencies
│     ├─ @react-navigation/core@npm:^6.1.1 → npm:6.4.6
│     ├─ escape-string-regexp@npm:^4.0.0 → npm:4.0.0
│     ├─ fast-deep-equal@npm:^3.1.3 → npm:3.1.3
│     └─ nanoid@npm:^3.1.23 → npm:3.3.4
│
├─ @sentry/react-native@npm:4.14.0
│  ├─ Instances: 1
│  ├─ Version: 4.14.0
│  │
│  └─ Dependencies
│     ├─ @sentry/browser@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/cli@npm:1.74.4 → npm:1.74.4
│     ├─ @sentry/core@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/hub@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/integrations@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/react@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/tracing@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/types@npm:7.32.1 → npm:7.32.1
│     ├─ @sentry/utils@npm:7.32.1 → npm:7.32.1
│     └─ @sentry/wizard@npm:1.4.0 → npm:1.4.0
│
├─ @shopify/flash-list@npm:1.4.1
│  ├─ Instances: 1
│  ├─ Version: 1.4.1
│  │
│  └─ Dependencies
│     ├─ recyclerlistview@npm:4.2.0 → npm:4.2.0
│     └─ tslib@npm:2.4.0 → npm:2.4.0
│
├─ @types/pluralize@npm:0.0.29
│  └─ Version: 0.0.29
│
├─ @types/react-native-dotenv@npm:0.2.0
│  └─ Version: 0.2.0
│
├─ @types/react-native@npm:0.67.17
│  ├─ Version: 0.67.17
│  │
│  └─ Dependencies
│     └─ @types/react@npm:^17 → npm:17.0.53
│
├─ @types/react-test-renderer@npm:17.0.2
│  ├─ Version: 17.0.2
│  │
│  └─ Dependencies
│     └─ @types/react@npm:^17 → npm:17.0.53
│
├─ @types/react@npm:17.0.53
│  ├─ Version: 17.0.53
│  │
│  └─ Dependencies
│     ├─ @types/prop-types@npm:* → npm:15.7.5
│     ├─ @types/scheduler@npm:* → npm:0.16.2
│     └─ csstype@npm:^3.0.2 → npm:3.1.1
│
├─ @types/validator@npm:13.7.12
│  └─ Version: 13.7.12
│
├─ @typescript-eslint/eslint-plugin@npm:5.48.1
│  ├─ Instances: 1
│  ├─ Version: 5.48.1
│  │
│  └─ Dependencies
│     ├─ @typescript-eslint/scope-manager@npm:5.48.1 → npm:5.48.1
│     ├─ @typescript-eslint/type-utils@npm:5.48.1 → npm:5.48.1
│     ├─ @typescript-eslint/utils@npm:5.48.1 → npm:5.48.1
│     ├─ debug@npm:^4.3.4 → npm:4.3.4
│     ├─ ignore@npm:^5.2.0 → npm:5.2.4
│     ├─ natural-compare-lite@npm:^1.4.0 → npm:1.4.0
│     ├─ regexpp@npm:^3.2.0 → npm:3.2.0
│     ├─ semver@npm:^7.3.7 → npm:7.3.8
│     └─ tsutils@npm:^3.21.0 → npm:3.21.0
│
├─ @typescript-eslint/parser@npm:5.48.1
│  ├─ Instances: 1
│  ├─ Version: 5.48.1
│  │
│  └─ Dependencies
│     ├─ @typescript-eslint/scope-manager@npm:5.48.1 → npm:5.48.1
│     ├─ @typescript-eslint/types@npm:5.48.1 → npm:5.48.1
│     ├─ @typescript-eslint/typescript-estree@npm:5.48.1 → npm:5.48.1
│     └─ debug@npm:^4.3.4 → npm:4.3.4
│
├─ @project/mobile@workspace:@project/mobile
│  ├─ Version: 0.0.1
│  │
│  └─ Dependencies
│     ├─ @babel/runtime@npm:^7.21.0 → npm:7.21.0
│     ├─ @types/pluralize@npm:^0.0.29 → npm:0.0.29
│     ├─ @types/react-native-dotenv@npm:0.2.0 → npm:0.2.0
│     ├─ @types/react-native@npm:^0.67.3 → npm:0.67.17
│     ├─ @types/react-test-renderer@npm:^17.0.2 → npm:17.0.2
│     ├─ @types/react@npm:^17.0.37 → npm:17.0.53
│     ├─ @types/validator@npm:^13 → npm:13.7.12
│     ├─ babel-plugin-module-resolver@npm:^4.1.0 → npm:4.1.0
│     ├─ concurrently@npm:^6.4.0 → npm:6.5.1
│     ├─ depcheck@npm:^1.4.3 → npm:1.4.3
│     ├─ eslint@npm:* → npm:8.31.0
│     ├─ graphql@npm:15.x → npm:15.8.0
│     ├─ lodash.kebabcase@npm:4.1.1 → npm:4.1.1
│     ├─ metro-config@npm:0.66.2 → npm:0.66.2
│     ├─ pluralize@npm:^8.0.0 → npm:8.0.0
│     ├─ postcss@npm:^8.4.5 → npm:8.4.21
│     ├─ react-native-dotenv@npm:3.3.1 → npm:3.3.1
│     ├─ react-native-sha256@npm:1.4.7 → npm:1.4.7
│     ├─ react@npm:17.0.2 → npm:17.0.2
│     ├─ validator@npm:^13.9.0 → npm:13.9.0
│     ├─ @babel/plugin-proposal-private-property-in-object@npm:^7.21.0 → npm:7.21.0 [c9f69]
│     ├─ @gorhom/bottom-sheet@npm:^4.4.5 → npm:4.4.5 [c9f69]
│     ├─ @graphql-eslint/eslint-plugin@npm:^3.13.1 → npm:3.14.3 [b9713]
│     ├─ @react-hook/merged-ref@npm:1.3.2 → npm:1.3.2 [c9f69]
│     ├─ @react-native-async-storage/async-storage@npm:1.16.2 → npm:1.16.2 [c9f69]
│     ├─ @react-native-community/eslint-config@npm:* → npm:3.2.0 [c9f69]
│     ├─ @react-navigation/bottom-tabs@npm:6.2.0 → npm:6.2.0 [c9f69]
│     ├─ @react-navigation/drawer@npm:^6.5.4 → npm:6.5.7 [c9f69]
│     ├─ @react-navigation/native-stack@npm:6.5.0 → npm:6.5.0 [c9f69]
│     ├─ @react-navigation/native@npm:6.0.8 → npm:6.0.8 [c9f69]
│     ├─ @sentry/react-native@npm:^4.14.0 → npm:4.14.0 [c9f69]
│     ├─ @shopify/flash-list@npm:^1.4.0 → npm:1.4.1 [c9f69]
│     ├─ @typescript-eslint/eslint-plugin@npm:^5.30.5 → npm:5.48.1 [cc907]
│     ├─ @typescript-eslint/parser@npm:^5.30.5 → npm:5.48.1 [cc907]
│     ├─ eslint-config-prettier@npm:^8.5.0 → npm:8.6.0 [b9713]
│     ├─ eslint-plugin-graphql@npm:^4.0.0 → npm:4.0.0 [b9713]
│     ├─ eslint-plugin-jest@npm:^27.2.1 → npm:27.2.1 [c9f69]
│     ├─ eslint-plugin-react-hooks@npm:^4.6.0 → npm:4.6.0 [b9713]
│     ├─ eslint-plugin-react@npm:^7.31.11 → npm:7.31.11 [b9713]
│     ├─ eslint-plugin-simple-import-sort@npm:^8.0.0 → npm:8.0.0 [b9713]
│     ├─ eslint-plugin-storybook@npm:^0.6.10 → npm:0.6.10 [b9713]
│     ├─ metro-react-native-babel-preset@npm:^0.67.0 → npm:0.67.0 [c9f69]
│     ├─ react-native-gesture-handler@npm:2.3.2 → npm:2.3.2 [c9f69]
│     ├─ react-native-get-random-values@npm:^1.8.0 → npm:1.8.0 [c9f69]
│     ├─ react-native-inappbrowser-reborn@npm:3.6.3 → npm:3.6.3 [c9f69]
│     ├─ react-native-linear-gradient@npm:2.5.6 → npm:2.5.6 [c9f69]
│     ├─ react-native-notifications@npm:^4.2.4 → npm:4.3.3 [c9f69]
│     ├─ react-native-reanimated@npm:2.4.1 → npm:2.4.1 [c9f69]
│     ├─ react-native-render-html@npm:6.3.4 → npm:6.3.4 [c9f69]
│     ├─ react-native-safe-area-context@npm:4.1.4 → npm:4.1.4 [c9f69]
│     ├─ react-native-screens@npm:3.13.1 → npm:3.13.1 [c9f69]
│     ├─ react-native-snap-carousel@npm:^3.9.1 → npm:3.9.1 [c9f69]
│     ├─ react-native-svg-transformer@npm:^1.0.0 → npm:1.0.0 [c9f69]
│     ├─ react-native-svg@npm:12.3.0 → npm:12.3.0 [c9f69]
│     ├─ react-native-url-polyfill@npm:1.3.0 → npm:1.3.0 [c9f69]
│     ├─ react-native@npm:0.67.3 → npm:0.67.3 [c9f69]
│     ├─ react-test-renderer@npm:17.0.2 → npm:17.0.2 [c9f69]
│     ├─ tailwind-rn@npm:4.2.0 → npm:4.2.0 [c9f69]
│     ├─ tailwindcss@npm:^3.2.4 → npm:3.2.4 [34b87]
│     └─ use-error-boundary@npm:^2.0.6 → npm:2.0.6 [c9f69]
│
├─ babel-plugin-module-resolver@npm:4.1.0
│  ├─ Version: 4.1.0
│  │
│  └─ Dependencies
│     ├─ find-babel-config@npm:^1.2.0 → npm:1.2.0
│     ├─ glob@npm:^7.1.6 → npm:7.2.3
│     ├─ pkg-up@npm:^3.1.0 → npm:3.1.0
│     ├─ reselect@npm:^4.0.0 → npm:4.1.7
│     └─ resolve@patch:resolve@^1.13.1#~builtin<compat/resolve> → patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b
│
├─ concurrently@npm:6.5.1
│  ├─ Version: 6.5.1
│  │
│  ├─ Exported Binaries
│  │  └─ concurrently
│  │
│  └─ Dependencies
│     ├─ chalk@npm:^4.1.0 → npm:4.1.2
│     ├─ date-fns@npm:^2.16.1 → npm:2.29.3
│     ├─ lodash@npm:^4.17.21 → npm:4.17.21
│     ├─ rxjs@npm:^6.6.3 → npm:6.6.7
│     ├─ spawn-command@npm:^0.0.2-1 → npm:0.0.2
│     ├─ supports-color@npm:^8.1.0 → npm:8.1.1
│     ├─ tree-kill@npm:^1.2.2 → npm:1.2.2
│     └─ yargs@npm:^16.2.0 → npm:16.2.0
│
├─ depcheck@npm:1.4.3
│  ├─ Version: 1.4.3
│  │
│  ├─ Exported Binaries
│  │  └─ depcheck
│  │
│  └─ Dependencies
│     ├─ @babel/parser@npm:7.16.4 → npm:7.16.4
│     ├─ @babel/traverse@npm:^7.12.5 → npm:7.20.12
│     ├─ @vue/compiler-sfc@npm:^3.0.5 → npm:3.2.45
│     ├─ camelcase@npm:^6.2.0 → npm:6.3.0
│     ├─ cosmiconfig@npm:^7.0.0 → npm:7.1.0
│     ├─ deps-regex@npm:^0.1.4 → npm:0.1.4
│     ├─ ignore@npm:^5.1.8 → npm:5.2.4
│     ├─ is-core-module@npm:^2.4.0 → npm:2.11.0
│     ├─ js-yaml@npm:^3.14.0 → npm:3.14.1
│     ├─ json5@npm:^2.1.3 → npm:2.2.3
│     ├─ lodash@npm:^4.17.20 → npm:4.17.21
│     ├─ minimatch@npm:^3.0.4 → npm:3.1.2
│     ├─ multimatch@npm:^5.0.0 → npm:5.0.0
│     ├─ please-upgrade-node@npm:^3.2.0 → npm:3.2.0
│     ├─ query-ast@npm:^1.0.3 → npm:1.0.5
│     ├─ readdirp@npm:^3.5.0 → npm:3.6.0
│     ├─ require-package-name@npm:^2.0.1 → npm:2.0.1
│     ├─ resolve@patch:resolve@^1.18.1#~builtin<compat/resolve> → patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b
│     ├─ sass@npm:^1.29.0 → npm:1.57.1
│     ├─ scss-parser@npm:^1.0.4 → npm:1.0.6
│     ├─ semver@npm:^7.3.2 → npm:7.3.8
│     ├─ yargs@npm:^16.1.0 → npm:16.2.0
│     └─ debug@npm:^4.1.0 → npm:4.3.4 [29474]
│
├─ eslint-config-prettier@npm:8.6.0
│  ├─ Instances: 1
│  ├─ Version: 8.6.0
│  │
│  └─ Exported Binaries
│     └─ eslint-config-prettier
│
├─ eslint-plugin-graphql@npm:4.0.0
│  ├─ Instances: 1
│  ├─ Version: 4.0.0
│  │
│  └─ Dependencies
│     ├─ @babel/runtime@npm:^7.10.0 → npm:7.20.7
│     ├─ graphql-config@npm:^3.0.2 → npm:3.4.1
│     ├─ lodash.flatten@npm:^4.4.0 → npm:4.4.0
│     └─ lodash.without@npm:^4.4.0 → npm:4.4.0
│
├─ eslint-plugin-jest@npm:27.2.1
│  ├─ Instances: 1
│  ├─ Version: 27.2.1
│  │
│  └─ Dependencies
│     └─ @typescript-eslint/utils@npm:^5.10.0 → npm:5.48.1
│
├─ eslint-plugin-react-hooks@npm:4.6.0
│  ├─ Instances: 1
│  └─ Version: 4.6.0
│
├─ eslint-plugin-react@npm:7.31.11
│  ├─ Instances: 1
│  ├─ Version: 7.31.11
│  │
│  └─ Dependencies
│     ├─ array-includes@npm:^3.1.6 → npm:3.1.6
│     ├─ array.prototype.flatmap@npm:^1.3.1 → npm:1.3.1
│     ├─ array.prototype.tosorted@npm:^1.1.1 → npm:1.1.1
│     ├─ doctrine@npm:^2.1.0 → npm:2.1.0
│     ├─ estraverse@npm:^5.3.0 → npm:5.3.0
│     ├─ jsx-ast-utils@npm:^2.4.1 || ^3.0.0 → npm:3.3.3
│     ├─ minimatch@npm:^3.1.2 → npm:3.1.2
│     ├─ object.entries@npm:^1.1.6 → npm:1.1.6
│     ├─ object.fromentries@npm:^2.0.6 → npm:2.0.6
│     ├─ object.hasown@npm:^1.1.2 → npm:1.1.2
│     ├─ object.values@npm:^1.1.6 → npm:1.1.6
│     ├─ prop-types@npm:^15.8.1 → npm:15.8.1
│     ├─ resolve@patch:resolve@^2.0.0-next.3#~builtin<compat/resolve> → patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=07638b
│     ├─ semver@npm:^6.3.0 → npm:6.3.0
│     └─ string.prototype.matchall@npm:^4.0.8 → npm:4.0.8
│
├─ eslint-plugin-simple-import-sort@npm:8.0.0
│  ├─ Instances: 1
│  └─ Version: 8.0.0
│
├─ eslint-plugin-storybook@npm:0.6.10
│  ├─ Instances: 1
│  ├─ Version: 0.6.10
│  │
│  └─ Dependencies
│     ├─ @storybook/csf@npm:^0.0.1 → npm:0.0.1
│     ├─ @typescript-eslint/utils@npm:^5.45.0 → npm:5.48.1
│     ├─ requireindex@npm:^1.1.0 → npm:1.2.0
│     └─ ts-dedent@npm:^2.2.0 → npm:2.2.0
│
├─ eslint@npm:8.31.0
│  ├─ Version: 8.31.0
│  │
│  ├─ Exported Binaries
│  │  └─ eslint
│  │
│  └─ Dependencies
│     ├─ @eslint/eslintrc@npm:^1.4.1 → npm:1.4.1
│     ├─ @humanwhocodes/config-array@npm:^0.11.8 → npm:0.11.8
│     ├─ @humanwhocodes/module-importer@npm:^1.0.1 → npm:1.0.1
│     ├─ @nodelib/fs.walk@npm:^1.2.8 → npm:1.2.8
│     ├─ ajv@npm:^6.10.0 → npm:6.12.6
│     ├─ chalk@npm:^4.0.0 → npm:4.1.2
│     ├─ cross-spawn@npm:^7.0.2 → npm:7.0.3
│     ├─ doctrine@npm:^3.0.0 → npm:3.0.0
│     ├─ escape-string-regexp@npm:^4.0.0 → npm:4.0.0
│     ├─ eslint-scope@npm:^7.1.1 → npm:7.1.1
│     ├─ eslint-visitor-keys@npm:^3.3.0 → npm:3.3.0
│     ├─ espree@npm:^9.4.0 → npm:9.4.1
│     ├─ esquery@npm:^1.4.0 → npm:1.4.0
│     ├─ esutils@npm:^2.0.2 → npm:2.0.3
│     ├─ fast-deep-equal@npm:^3.1.3 → npm:3.1.3
│     ├─ file-entry-cache@npm:^6.0.1 → npm:6.0.1
│     ├─ find-up@npm:^5.0.0 → npm:5.0.0
│     ├─ glob-parent@npm:^6.0.2 → npm:6.0.2
│     ├─ globals@npm:^13.19.0 → npm:13.19.0
│     ├─ grapheme-splitter@npm:^1.0.4 → npm:1.0.4
│     ├─ ignore@npm:^5.2.0 → npm:5.2.4
│     ├─ import-fresh@npm:^3.0.0 → npm:3.3.0
│     ├─ imurmurhash@npm:^0.1.4 → npm:0.1.4
│     ├─ is-glob@npm:^4.0.0 → npm:4.0.3
│     ├─ is-path-inside@npm:^3.0.3 → npm:3.0.3
│     ├─ js-sdsl@npm:^4.1.4 → npm:4.2.0
│     ├─ js-yaml@npm:^4.1.0 → npm:4.1.0
│     ├─ json-stable-stringify-without-jsonify@npm:^1.0.1 → npm:1.0.1
│     ├─ levn@npm:^0.4.1 → npm:0.4.1
│     ├─ lodash.merge@npm:^4.6.2 → npm:4.6.2
│     ├─ minimatch@npm:^3.1.2 → npm:3.1.2
│     ├─ natural-compare@npm:^1.4.0 → npm:1.4.0
│     ├─ optionator@npm:^0.9.1 → npm:0.9.1
│     ├─ regexpp@npm:^3.2.0 → npm:3.2.0
│     ├─ strip-ansi@npm:^6.0.1 → npm:6.0.1
│     ├─ strip-json-comments@npm:^3.1.0 → npm:3.1.1
│     ├─ text-table@npm:^0.2.0 → npm:0.2.0
│     ├─ debug@npm:^4.1.0 → npm:4.3.4 [29474]
│     └─ eslint-utils@npm:^3.0.0 → npm:3.0.0 [da99c]
│
├─ graphql@npm:15.8.0
│  └─ Version: 15.8.0
│
├─ lodash.kebabcase@npm:4.1.1
│  └─ Version: 4.1.1
│
├─ metro-config@npm:0.66.2
│  ├─ Version: 0.66.2
│  │
│  └─ Dependencies
│     ├─ cosmiconfig@npm:^5.0.5 → npm:5.2.1
│     ├─ jest-validate@npm:^26.5.2 → npm:26.6.2
│     ├─ metro-cache@npm:0.66.2 → npm:0.66.2
│     ├─ metro-core@npm:0.66.2 → npm:0.66.2
│     ├─ metro-runtime@npm:0.66.2 → npm:0.66.2
│     └─ metro@npm:0.66.2 → npm:0.66.2
│
├─ metro-react-native-babel-preset@npm:0.67.0
│  ├─ Instances: 1
│  ├─ Version: 0.67.0
│  │
│  └─ Dependencies
│     ├─ @babel/core@npm:^7.14.0 → npm:7.20.12
│     ├─ @babel/plugin-proposal-class-properties@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-proposal-export-default-from@npm:^7.0.0 → npm:7.18.10
│     ├─ @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-proposal-object-rest-spread@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-proposal-optional-catch-binding@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-proposal-optional-chaining@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-syntax-dynamic-import@npm:^7.0.0 → npm:7.8.3
│     ├─ @babel/plugin-syntax-export-default-from@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-syntax-flow@npm:^7.2.0 → npm:7.18.6
│     ├─ @babel/plugin-syntax-nullish-coalescing-operator@npm:^7.0.0 → npm:7.8.3
│     ├─ @babel/plugin-syntax-optional-chaining@npm:^7.0.0 → npm:7.8.3
│     ├─ @babel/plugin-transform-arrow-functions@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-async-to-generator@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-block-scoping@npm:^7.0.0 → npm:7.20.11
│     ├─ @babel/plugin-transform-classes@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-computed-properties@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-destructuring@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-exponentiation-operator@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-transform-flow-strip-types@npm:^7.0.0 → npm:7.19.0
│     ├─ @babel/plugin-transform-for-of@npm:^7.0.0 → npm:7.18.8
│     ├─ @babel/plugin-transform-function-name@npm:^7.0.0 → npm:7.18.9
│     ├─ @babel/plugin-transform-literals@npm:^7.0.0 → npm:7.18.9
│     ├─ @babel/plugin-transform-modules-commonjs@npm:^7.0.0 → npm:7.20.11
│     ├─ @babel/plugin-transform-object-assign@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-transform-parameters@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-react-display-name@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-transform-react-jsx-self@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-transform-react-jsx-source@npm:^7.0.0 → npm:7.19.6
│     ├─ @babel/plugin-transform-react-jsx@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-regenerator@npm:^7.0.0 → npm:7.20.5
│     ├─ @babel/plugin-transform-runtime@npm:^7.0.0 → npm:7.19.6
│     ├─ @babel/plugin-transform-shorthand-properties@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-transform-spread@npm:^7.0.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-sticky-regex@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/plugin-transform-template-literals@npm:^7.0.0 → npm:7.18.9
│     ├─ @babel/plugin-transform-typescript@npm:^7.5.0 → npm:7.20.7
│     ├─ @babel/plugin-transform-unicode-regex@npm:^7.0.0 → npm:7.18.6
│     ├─ @babel/template@npm:^7.0.0 → npm:7.20.7
│     └─ react-refresh@npm:^0.4.0 → npm:0.4.3
│
├─ pluralize@npm:8.0.0
│  └─ Version: 8.0.0
│
├─ postcss@npm:8.4.21
│  ├─ Version: 8.4.21
│  │
│  └─ Dependencies
│     ├─ nanoid@npm:^3.3.4 → npm:3.3.4
│     ├─ picocolors@npm:^1.0.0 → npm:1.0.0
│     └─ source-map-js@npm:^1.0.2 → npm:1.0.2
│
├─ react-native-dotenv@npm:3.3.1
│  ├─ Version: 3.3.1
│  │
│  └─ Dependencies
│     └─ dotenv@npm:^10.0.0 → npm:10.0.0
│
├─ react-native-gesture-handler@npm:2.3.2
│  ├─ Instances: 1
│  ├─ Version: 2.3.2
│  │
│  └─ Dependencies
│     ├─ @egjs/hammerjs@npm:^2.0.17 → npm:2.0.17
│     ├─ hoist-non-react-statics@npm:^3.3.0 → npm:3.3.2
│     ├─ invariant@npm:^2.2.4 → npm:2.2.4
│     ├─ lodash@npm:^4.17.21 → npm:4.17.21
│     └─ prop-types@npm:^15.7.2 → npm:15.8.1
│
├─ react-native-get-random-values@npm:1.8.0
│  ├─ Instances: 1
│  ├─ Version: 1.8.0
│  │
│  └─ Dependencies
│     └─ fast-base64-decode@npm:^1.0.0 → npm:1.0.0
│
├─ react-native-inappbrowser-reborn@npm:3.6.3
│  ├─ Instances: 1
│  ├─ Version: 3.6.3
│  │
│  └─ Dependencies
│     ├─ invariant@npm:^2.2.4 → npm:2.2.4
│     └─ opencollective-postinstall@npm:^2.0.2 → npm:2.0.3
│
├─ react-native-linear-gradient@npm:2.5.6
│  ├─ Instances: 1
│  └─ Version: 2.5.6
│
├─ react-native-notifications@npm:4.3.3
│  ├─ Instances: 1
│  └─ Version: 4.3.3
│
├─ react-native-reanimated@npm:2.4.1
│  ├─ Instances: 1
│  ├─ Version: 2.4.1
│  │
│  └─ Dependencies
│     ├─ @babel/plugin-transform-object-assign@npm:^7.10.4 → npm:7.18.6
│     ├─ @types/invariant@npm:^2.2.35 → npm:2.2.35
│     ├─ invariant@npm:^2.2.4 → npm:2.2.4
│     ├─ lodash.isequal@npm:^4.5.0 → npm:4.5.0
│     ├─ mockdate@npm:^3.0.2 → npm:3.0.5
│     ├─ react-native-screens@npm:^3.4.0 → npm:3.18.2
│     └─ string-hash-64@npm:^1.0.3 → npm:1.0.3
│
├─ react-native-render-html@npm:6.3.4
│  ├─ Instances: 1
│  ├─ Version: 6.3.4
│  │
│  └─ Dependencies
│     ├─ @jsamr/counter-style@npm:^2.0.1 → npm:2.0.2
│     ├─ @jsamr/react-native-li@npm:^2.3.0 → npm:2.3.1
│     ├─ @native-html/transient-render-engine@npm:11.2.3 → npm:11.2.3
│     ├─ @types/ramda@npm:^0.27.40 → npm:0.27.66
│     ├─ @types/urijs@npm:^1.19.15 → npm:1.19.19
│     ├─ prop-types@npm:^15.5.7 → npm:15.8.1
│     ├─ ramda@npm:^0.27.2 → npm:0.27.2
│     ├─ stringify-entities@npm:^3.1.0 → npm:3.1.0
│     └─ urijs@npm:^1.19.6 → npm:1.19.11
│
├─ react-native-safe-area-context@npm:4.1.4
│  ├─ Instances: 1
│  └─ Version: 4.1.4
│
├─ react-native-screens@npm:3.13.1
│  ├─ Instances: 1
│  ├─ Version: 3.13.1
│  │
│  └─ Dependencies
│     ├─ react-freeze@npm:^1.0.0 → npm:1.0.3
│     └─ warn-once@npm:^0.1.0 → npm:0.1.1
│
├─ react-native-sha256@npm:1.4.7
│  └─ Version: 1.4.7
│
├─ react-native-snap-carousel@npm:3.9.1
│  ├─ Instances: 1
│  ├─ Version: 3.9.1
│  │
│  └─ Dependencies
│     ├─ prop-types@npm:^15.6.1 → npm:15.8.1
│     └─ react-addons-shallow-compare@npm:15.6.2 → npm:15.6.2
│
├─ react-native-svg-transformer@npm:1.0.0
│  ├─ Instances: 1
│  ├─ Version: 1.0.0
│  │
│  └─ Dependencies
│     ├─ @svgr/core@npm:^6.1.2 → npm:6.5.1
│     ├─ @svgr/plugin-svgo@npm:^6.1.2 → npm:6.5.1
│     └─ path-dirname@npm:^1.0.2 → npm:1.0.2
│
├─ react-native-svg@npm:12.3.0
│  ├─ Instances: 1
│  ├─ Version: 12.3.0
│  │
│  └─ Dependencies
│     ├─ css-select@npm:^4.2.1 → npm:4.3.0
│     └─ css-tree@npm:^1.0.0-alpha.39 → npm:1.1.3
│
├─ react-native-url-polyfill@npm:1.3.0
│  ├─ Instances: 1
│  ├─ Version: 1.3.0
│  │
│  └─ Dependencies
│     └─ whatwg-url-without-unicode@npm:8.0.0-3 → npm:8.0.0-3
│
├─ react-native@npm:0.67.3
│  ├─ Instances: 1
│  ├─ Version: 0.67.3
│  │
│  ├─ Exported Binaries
│  │  └─ react-native
│  │
│  └─ Dependencies
│     ├─ @jest/create-cache-key-function@npm:^27.0.1 → npm:27.5.1
│     ├─ @react-native-community/cli-platform-android@npm:^6.0.0 → npm:6.3.1
│     ├─ @react-native-community/cli-platform-ios@npm:^6.0.0 → npm:6.2.1
│     ├─ @react-native-community/cli@npm:^6.0.0 → npm:6.4.0
│     ├─ @react-native/assets@npm:1.0.0 → npm:1.0.0
│     ├─ @react-native/normalize-color@npm:2.0.0 → npm:2.0.0
│     ├─ @react-native/polyfills@npm:2.0.0 → npm:2.0.0
│     ├─ abort-controller@npm:^3.0.0 → npm:3.0.0
│     ├─ anser@npm:^1.4.9 → npm:1.4.10
│     ├─ base64-js@npm:^1.1.2 → npm:1.5.1
│     ├─ event-target-shim@npm:^5.0.1 → npm:5.0.1
│     ├─ hermes-engine@npm:~0.9.0 → npm:0.9.0
│     ├─ invariant@npm:^2.2.4 → npm:2.2.4
│     ├─ jsc-android@npm:^250230.2.1 → npm:250230.2.1
│     ├─ metro-react-native-babel-transformer@npm:0.66.2 → npm:0.66.2
│     ├─ metro-runtime@npm:0.66.2 → npm:0.66.2
│     ├─ metro-source-map@npm:0.66.2 → npm:0.66.2
│     ├─ nullthrows@npm:^1.1.1 → npm:1.1.1
│     ├─ pretty-format@npm:^26.5.2 → npm:26.6.2
│     ├─ promise@npm:^8.0.3 → npm:8.3.0
│     ├─ prop-types@npm:^15.7.2 → npm:15.8.1
│     ├─ react-devtools-core@npm:4.19.1 → npm:4.19.1
│     ├─ react-native-codegen@npm:^0.0.8 → npm:0.0.8
│     ├─ react-refresh@npm:^0.4.0 → npm:0.4.3
│     ├─ regenerator-runtime@npm:^0.13.2 → npm:0.13.11
│     ├─ scheduler@npm:^0.20.2 → npm:0.20.2
│     ├─ stacktrace-parser@npm:^0.1.3 → npm:0.1.10
│     ├─ use-subscription@npm:^1.0.0 → npm:1.8.0
│     ├─ whatwg-fetch@npm:^3.0.0 → npm:3.6.2
│     └─ ws@npm:^6.1.4 → npm:6.2.2
│
├─ react-test-renderer@npm:17.0.2
│  ├─ Instances: 1
│  ├─ Version: 17.0.2
│  │
│  └─ Dependencies
│     ├─ object-assign@npm:^4.1.1 → npm:4.1.1
│     ├─ react-is@npm:^17.0.2 → npm:17.0.2
│     ├─ react-shallow-renderer@npm:^16.13.1 → npm:16.15.0
│     └─ scheduler@npm:^0.20.2 → npm:0.20.2
│
├─ react@npm:17.0.2
│  ├─ Version: 17.0.2
│  │
│  └─ Dependencies
│     ├─ loose-envify@npm:^1.1.0 → npm:1.4.0
│     └─ object-assign@npm:^4.1.1 → npm:4.1.1
│
├─ tailwind-rn@npm:4.2.0
│  ├─ Instances: 1
│  ├─ Version: 4.2.0
│  │
│  ├─ Exported Binaries
│  │  └─ tailwind-rn
│  │
│  └─ Dependencies
│     ├─ @react-native-community/hooks@npm:^2.8.1 → npm:2.8.1
│     ├─ chokidar@npm:^3.5.2 → npm:3.5.3
│     ├─ color-string@npm:^1.9.0 → npm:1.9.1
│     ├─ css-mediaquery@npm:^0.1.2 → npm:0.1.2
│     ├─ css-to-react-native@npm:^3.0.0 → npm:3.0.0
│     ├─ css@npm:^3.0.0 → npm:3.0.0
│     └─ meow@npm:^7.0.1 → npm:7.1.1
│
├─ tailwindcss@npm:3.2.4
│  ├─ Instances: 1
│  ├─ Version: 3.2.4
│  │
│  ├─ Exported Binaries
│  │  ├─ tailwind
│  │  └─ tailwindcss
│  │
│  └─ Dependencies
│     ├─ arg@npm:^5.0.2 → npm:5.0.2
│     ├─ chokidar@npm:^3.5.3 → npm:3.5.3
│     ├─ color-name@npm:^1.1.4 → npm:1.1.4
│     ├─ detective@npm:^5.2.1 → npm:5.2.1
│     ├─ didyoumean@npm:^1.2.2 → npm:1.2.2
│     ├─ dlv@npm:^1.1.3 → npm:1.1.3
│     ├─ fast-glob@npm:^3.2.12 → npm:3.2.12
│     ├─ glob-parent@npm:^6.0.2 → npm:6.0.2
│     ├─ is-glob@npm:^4.0.3 → npm:4.0.3
│     ├─ lilconfig@npm:^2.0.6 → npm:2.0.6
│     ├─ micromatch@npm:^4.0.5 → npm:4.0.5
│     ├─ normalize-path@npm:^3.0.0 → npm:3.0.0
│     ├─ object-hash@npm:^3.0.0 → npm:3.0.0
│     ├─ picocolors@npm:^1.0.0 → npm:1.0.0
│     ├─ postcss-import@npm:^14.1.0 → npm:14.1.0
│     ├─ postcss-js@npm:^4.0.0 → npm:4.0.0
│     ├─ postcss-load-config@npm:^3.1.4 → npm:3.1.4
│     ├─ postcss-nested@npm:6.0.0 → npm:6.0.0
│     ├─ postcss-selector-parser@npm:^6.0.10 → npm:6.0.11
│     ├─ postcss-value-parser@npm:^4.2.0 → npm:4.2.0
│     ├─ postcss@npm:^8.4.18 → npm:8.4.21
│     ├─ quick-lru@npm:^5.1.1 → npm:5.1.1
│     └─ resolve@patch:resolve@^1.22.1#~builtin<compat/resolve> → patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b
│
├─ use-error-boundary@npm:2.0.6
│  ├─ Instances: 1
│  └─ Version: 2.0.6
│
└─ validator@npm:13.9.0
   └─ Version: 13.9.0

RNRH Version

6.3.4

Tested Platforms

Reproduction Platforms

Minimal, Reproducible Example

<RenderHTMLSource
  source={{ html: '<p>&</p>' }}
  contentWidth={contentWidth}
/>

Additional Notes

No response

lalmachado commented 1 year ago

I have the same issue, any solution?

jsamr commented 1 year ago

Most certainly a bug in https://github.com/fb55/htmlparser2 ; will try to upgrade to latest version available when I have the time, hoping this is fixed. If you have the time, you may try to parse directly with htmlparser2 and see if an error is raised. That would help with narrowing-down the culprit.

maartenschumacher commented 1 year ago

It seems htmlparser2 has an issue with decoding entities. The following workaround fixes the issue: <RenderHTMLSource htmlParserOptions={{ decodeEntities: false }} source={{ html: '<p>&</p>' }} contentWidth={contentWidth} /> But obviously this will leave stuff like &lt; undecoded

warrenmcquinn commented 1 year ago

I'm also encountering this issue. I've ended up adding the decodeEntities: false parser option, and then using a separate lib (he) to decode my source html.