@backstage/plugin-techdocs 0.0.0-nightly-20250908023925 → 0.0.0-nightly-20250910023713

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.
package/CHANGELOG.md CHANGED
@@ -1,28 +1,41 @@
1
1
  # @backstage/plugin-techdocs
2
2
 
3
- ## 0.0.0-nightly-20250908023925
3
+ ## 0.0.0-nightly-20250910023713
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - 1dfee19: Reverts a change in CSS layout that shifted the content of the Techdocs too far to the left.
8
- - Updated dependencies
9
- - @backstage/plugin-catalog-react@0.0.0-nightly-20250908023925
10
- - @backstage/frontend-plugin-api@0.0.0-nightly-20250908023925
11
- - @backstage/integration@0.0.0-nightly-20250908023925
12
- - @backstage/catalog-client@0.0.0-nightly-20250908023925
13
- - @backstage/core-compat-api@0.0.0-nightly-20250908023925
14
- - @backstage/core-components@0.0.0-nightly-20250908023925
8
+ - 4ce5831: Support Techdocs redirect with dompurify 3.2.6+
9
+ - Updated dependencies
10
+ - @backstage/plugin-catalog-react@0.0.0-nightly-20250910023713
11
+ - @backstage/frontend-plugin-api@0.0.0-nightly-20250910023713
12
+ - @backstage/plugin-auth-react@0.0.0-nightly-20250910023713
13
+ - @backstage/core-plugin-api@0.0.0-nightly-20250910023713
14
+ - @backstage/integration@0.0.0-nightly-20250910023713
15
+ - @backstage/catalog-client@0.0.0-nightly-20250910023713
16
+ - @backstage/core-components@0.0.0-nightly-20250910023713
17
+ - @backstage/core-compat-api@0.0.0-nightly-20250910023713
15
18
  - @backstage/catalog-model@1.7.5
16
19
  - @backstage/config@1.3.3
17
- - @backstage/core-plugin-api@1.10.9
18
20
  - @backstage/errors@1.2.7
19
- - @backstage/integration-react@0.0.0-nightly-20250908023925
21
+ - @backstage/integration-react@0.0.0-nightly-20250910023713
20
22
  - @backstage/theme@0.6.8
21
- - @backstage/plugin-auth-react@0.0.0-nightly-20250908023925
22
23
  - @backstage/plugin-search-common@1.2.19
23
- - @backstage/plugin-search-react@0.0.0-nightly-20250908023925
24
+ - @backstage/plugin-search-react@0.0.0-nightly-20250910023713
24
25
  - @backstage/plugin-techdocs-common@0.1.1
25
- - @backstage/plugin-techdocs-react@0.0.0-nightly-20250908023925
26
+ - @backstage/plugin-techdocs-react@0.0.0-nightly-20250910023713
27
+
28
+ ## 1.14.2-next.2
29
+
30
+ ### Patch Changes
31
+
32
+ - Updated dependencies
33
+ - @backstage/plugin-auth-react@0.1.19-next.1
34
+ - @backstage/catalog-client@1.12.0-next.0
35
+ - @backstage/plugin-catalog-react@1.21.0-next.2
36
+ - @backstage/core-components@0.17.6-next.1
37
+ - @backstage/integration@1.18.0-next.0
38
+ - @backstage/core-compat-api@0.5.2-next.2
26
39
 
27
40
  ## 1.14.2-next.1
28
41
 
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-techdocs";
2
- var version = "0.0.0-nightly-20250908023925";
2
+ var version = "0.0.0-nightly-20250910023713";
3
3
  var description = "The Backstage plugin that renders technical documentation for your components";
4
4
  var backstage = {
5
5
  role: "frontend-plugin",
@@ -30,7 +30,7 @@ const useSanitizerTransformer = () => {
30
30
  }
31
31
  });
32
32
  DOMPurify.addHook("uponSanitizeAttribute", (currNode, data) => {
33
- if (currNode.tagName !== "meta") {
33
+ if (currNode.tagName !== "META") {
34
34
  if (data.attrName === "http-equiv" || data.attrName === "content") {
35
35
  currNode.removeAttribute(data.attrName);
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.esm.js","sources":["../../../../src/reader/transformers/html/transformer.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport DOMPurify from 'dompurify';\nimport { useCallback, useMemo } from 'react';\n\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\n\nimport { Transformer } from '../transformer';\nimport { removeUnsafeIframes, removeUnsafeLinks } from './hooks';\n\n/**\n * Returns html sanitizer configuration\n */\nconst useSanitizerConfig = () => {\n const configApi = useApi(configApiRef);\n\n return useMemo(() => {\n return configApi.getOptionalConfig('techdocs.sanitizer');\n }, [configApi]);\n};\n\n/**\n * Returns a transformer that sanitizes the dom\n */\nexport const useSanitizerTransformer = (): Transformer => {\n const config = useSanitizerConfig();\n\n return useCallback(\n async (dom: Element) => {\n const hosts = config?.getOptionalStringArray('allowedIframeHosts');\n\n DOMPurify.addHook('beforeSanitizeElements', removeUnsafeLinks);\n const tags = ['link', 'meta'];\n\n if (hosts) {\n tags.push('iframe');\n DOMPurify.addHook('beforeSanitizeElements', removeUnsafeIframes(hosts));\n }\n\n // Only allow meta tags if they are used for refreshing the page. They are required for the redirect feature.\n DOMPurify.addHook('uponSanitizeElement', (currNode, data) => {\n if (data.tagName === 'meta') {\n const isMetaRefreshTag =\n currNode.getAttribute('http-equiv') === 'refresh' &&\n currNode.getAttribute('content')?.includes('url=');\n if (!isMetaRefreshTag) {\n currNode.parentNode?.removeChild(currNode);\n }\n }\n });\n\n // Only allow http-equiv and content attributes on meta tags. They are required for the redirect feature.\n DOMPurify.addHook('uponSanitizeAttribute', (currNode, data) => {\n if (currNode.tagName !== 'meta') {\n if (data.attrName === 'http-equiv' || data.attrName === 'content') {\n currNode.removeAttribute(data.attrName);\n }\n }\n });\n\n const tagNameCheck = config?.getOptionalString(\n 'allowedCustomElementTagNameRegExp',\n );\n const attributeNameCheck = config?.getOptionalString(\n 'allowedCustomElementAttributeNameRegExp',\n );\n const additionalAllowedURIProtocols =\n config?.getOptionalStringArray('additionalAllowedURIProtocols') || [];\n\n // Define allowed URI protocols, including any additional ones from the config.\n // The default protocols are based on the DOMPurify defaults.\n const allowedURIProtocols = [\n 'callto',\n 'cid',\n 'ftp',\n 'ftps',\n 'http',\n 'https',\n 'mailto',\n 'matrix',\n 'sms',\n 'tel',\n 'xmpp',\n ...additionalAllowedURIProtocols,\n ].filter(Boolean);\n\n const allowedURIRegExp = new RegExp(\n // This regex is not exposed by DOMPurify, so we need to define it ourselves.\n // It is possible for this to drift from the default in future versions of DOMPurify.\n // See: https://raw.githubusercontent.com/cure53/DOMPurify/master/src/regexp.ts\n `^(?:${allowedURIProtocols.join(\n '|',\n )}:|[^a-z]|[a-z+.-]+(?:[^a-z+.\\\\-:]|$))`,\n 'i',\n );\n\n // using outerHTML as we want to preserve the html tag attributes (lang)\n return DOMPurify.sanitize(dom.outerHTML, {\n ADD_TAGS: tags,\n FORBID_TAGS: ['style'],\n ADD_ATTR: ['http-equiv', 'content', 'dominant-baseline'],\n WHOLE_DOCUMENT: true,\n RETURN_DOM: true,\n ALLOWED_URI_REGEXP: allowedURIRegExp,\n CUSTOM_ELEMENT_HANDLING: {\n tagNameCheck: tagNameCheck ? new RegExp(tagNameCheck) : undefined,\n attributeNameCheck: attributeNameCheck\n ? new RegExp(attributeNameCheck)\n : undefined,\n },\n });\n },\n [config],\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformer.esm.js","sources":["../../../../src/reader/transformers/html/transformer.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport DOMPurify from 'dompurify';\nimport { useCallback, useMemo } from 'react';\n\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\n\nimport { Transformer } from '../transformer';\nimport { removeUnsafeIframes, removeUnsafeLinks } from './hooks';\n\n/**\n * Returns html sanitizer configuration\n */\nconst useSanitizerConfig = () => {\n const configApi = useApi(configApiRef);\n\n return useMemo(() => {\n return configApi.getOptionalConfig('techdocs.sanitizer');\n }, [configApi]);\n};\n\n/**\n * Returns a transformer that sanitizes the dom\n */\nexport const useSanitizerTransformer = (): Transformer => {\n const config = useSanitizerConfig();\n\n return useCallback(\n async (dom: Element) => {\n const hosts = config?.getOptionalStringArray('allowedIframeHosts');\n\n DOMPurify.addHook('beforeSanitizeElements', removeUnsafeLinks);\n const tags = ['link', 'meta'];\n\n if (hosts) {\n tags.push('iframe');\n DOMPurify.addHook('beforeSanitizeElements', removeUnsafeIframes(hosts));\n }\n\n // Only allow meta tags if they are used for refreshing the page. They are required for the redirect feature.\n DOMPurify.addHook('uponSanitizeElement', (currNode, data) => {\n if (data.tagName === 'meta') {\n const isMetaRefreshTag =\n currNode.getAttribute('http-equiv') === 'refresh' &&\n currNode.getAttribute('content')?.includes('url=');\n if (!isMetaRefreshTag) {\n currNode.parentNode?.removeChild(currNode);\n }\n }\n });\n\n // Only allow http-equiv and content attributes on meta tags. They are required for the redirect feature.\n DOMPurify.addHook('uponSanitizeAttribute', (currNode, data) => {\n if (currNode.tagName !== 'META') {\n if (data.attrName === 'http-equiv' || data.attrName === 'content') {\n currNode.removeAttribute(data.attrName);\n }\n }\n });\n\n const tagNameCheck = config?.getOptionalString(\n 'allowedCustomElementTagNameRegExp',\n );\n const attributeNameCheck = config?.getOptionalString(\n 'allowedCustomElementAttributeNameRegExp',\n );\n const additionalAllowedURIProtocols =\n config?.getOptionalStringArray('additionalAllowedURIProtocols') || [];\n\n // Define allowed URI protocols, including any additional ones from the config.\n // The default protocols are based on the DOMPurify defaults.\n const allowedURIProtocols = [\n 'callto',\n 'cid',\n 'ftp',\n 'ftps',\n 'http',\n 'https',\n 'mailto',\n 'matrix',\n 'sms',\n 'tel',\n 'xmpp',\n ...additionalAllowedURIProtocols,\n ].filter(Boolean);\n\n const allowedURIRegExp = new RegExp(\n // This regex is not exposed by DOMPurify, so we need to define it ourselves.\n // It is possible for this to drift from the default in future versions of DOMPurify.\n // See: https://raw.githubusercontent.com/cure53/DOMPurify/master/src/regexp.ts\n `^(?:${allowedURIProtocols.join(\n '|',\n )}:|[^a-z]|[a-z+.-]+(?:[^a-z+.\\\\-:]|$))`,\n 'i',\n );\n\n // using outerHTML as we want to preserve the html tag attributes (lang)\n return DOMPurify.sanitize(dom.outerHTML, {\n ADD_TAGS: tags,\n FORBID_TAGS: ['style'],\n ADD_ATTR: ['http-equiv', 'content', 'dominant-baseline'],\n WHOLE_DOCUMENT: true,\n RETURN_DOM: true,\n ALLOWED_URI_REGEXP: allowedURIRegExp,\n CUSTOM_ELEMENT_HANDLING: {\n tagNameCheck: tagNameCheck ? new RegExp(tagNameCheck) : undefined,\n attributeNameCheck: attributeNameCheck\n ? new RegExp(attributeNameCheck)\n : undefined,\n },\n });\n },\n [config],\n );\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-techdocs",
3
- "version": "0.0.0-nightly-20250908023925",
3
+ "version": "0.0.0-nightly-20250910023713",
4
4
  "description": "The Backstage plugin that renders technical documentation for your components",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -71,22 +71,22 @@
71
71
  "test": "backstage-cli package test"
72
72
  },
73
73
  "dependencies": {
74
- "@backstage/catalog-client": "0.0.0-nightly-20250908023925",
74
+ "@backstage/catalog-client": "0.0.0-nightly-20250910023713",
75
75
  "@backstage/catalog-model": "1.7.5",
76
76
  "@backstage/config": "1.3.3",
77
- "@backstage/core-compat-api": "0.0.0-nightly-20250908023925",
78
- "@backstage/core-components": "0.0.0-nightly-20250908023925",
79
- "@backstage/core-plugin-api": "1.10.9",
77
+ "@backstage/core-compat-api": "0.0.0-nightly-20250910023713",
78
+ "@backstage/core-components": "0.0.0-nightly-20250910023713",
79
+ "@backstage/core-plugin-api": "0.0.0-nightly-20250910023713",
80
80
  "@backstage/errors": "1.2.7",
81
- "@backstage/frontend-plugin-api": "0.0.0-nightly-20250908023925",
82
- "@backstage/integration": "0.0.0-nightly-20250908023925",
83
- "@backstage/integration-react": "0.0.0-nightly-20250908023925",
84
- "@backstage/plugin-auth-react": "0.0.0-nightly-20250908023925",
85
- "@backstage/plugin-catalog-react": "0.0.0-nightly-20250908023925",
81
+ "@backstage/frontend-plugin-api": "0.0.0-nightly-20250910023713",
82
+ "@backstage/integration": "0.0.0-nightly-20250910023713",
83
+ "@backstage/integration-react": "0.0.0-nightly-20250910023713",
84
+ "@backstage/plugin-auth-react": "0.0.0-nightly-20250910023713",
85
+ "@backstage/plugin-catalog-react": "0.0.0-nightly-20250910023713",
86
86
  "@backstage/plugin-search-common": "1.2.19",
87
- "@backstage/plugin-search-react": "0.0.0-nightly-20250908023925",
87
+ "@backstage/plugin-search-react": "0.0.0-nightly-20250910023713",
88
88
  "@backstage/plugin-techdocs-common": "0.1.1",
89
- "@backstage/plugin-techdocs-react": "0.0.0-nightly-20250908023925",
89
+ "@backstage/plugin-techdocs-react": "0.0.0-nightly-20250910023713",
90
90
  "@backstage/theme": "0.6.8",
91
91
  "@material-ui/core": "^4.12.2",
92
92
  "@material-ui/icons": "^4.9.1",
@@ -101,12 +101,12 @@
101
101
  "react-use": "^17.2.4"
102
102
  },
103
103
  "devDependencies": {
104
- "@backstage/cli": "0.0.0-nightly-20250908023925",
105
- "@backstage/core-app-api": "1.18.0",
106
- "@backstage/dev-utils": "0.0.0-nightly-20250908023925",
107
- "@backstage/plugin-catalog": "0.0.0-nightly-20250908023925",
108
- "@backstage/plugin-techdocs-module-addons-contrib": "0.0.0-nightly-20250908023925",
109
- "@backstage/test-utils": "1.7.11",
104
+ "@backstage/cli": "0.0.0-nightly-20250910023713",
105
+ "@backstage/core-app-api": "0.0.0-nightly-20250910023713",
106
+ "@backstage/dev-utils": "0.0.0-nightly-20250910023713",
107
+ "@backstage/plugin-catalog": "0.0.0-nightly-20250910023713",
108
+ "@backstage/plugin-techdocs-module-addons-contrib": "0.0.0-nightly-20250910023713",
109
+ "@backstage/test-utils": "0.0.0-nightly-20250910023713",
110
110
  "@testing-library/dom": "^10.0.0",
111
111
  "@testing-library/jest-dom": "^6.0.0",
112
112
  "@testing-library/react": "^16.0.0",