diff --git a/package-lock.json b/package-lock.json
index fab4e016c..31c55c025 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,7 @@
"@redocly/openapi-core": "^1.4.0",
"classnames": "^2.3.2",
"decko": "^1.2.0",
- "dompurify": "^3.0.6",
+ "dompurify": "^3.3.0",
"eventemitter3": "^5.0.1",
"json-pointer": "^0.6.2",
"lunr": "^2.3.9",
@@ -24,7 +24,7 @@
"path-browserify": "^1.0.1",
"perfect-scrollbar": "^1.5.5",
"polished": "^4.2.2",
- "prismjs": "^1.29.0",
+ "prismjs": "^1.30.0",
"prop-types": "^15.8.1",
"react-tabs": "^6.0.2",
"slugify": "~1.4.7",
@@ -4121,10 +4121,11 @@
"dev": true
},
"node_modules/@types/trusted-types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.0.tgz",
- "integrity": "sha512-I8MnZqNXsOLHsU111oHbn3khtvKMi5Bn4qVFsIWSJcCP1KKDiXX5AEw8UPk0nSopeC+Hvxt6yAy1/a5PailFqg==",
- "dev": true
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "devOptional": true,
+ "license": "MIT"
},
"node_modules/@types/webpack": {
"version": "5.28.0",
@@ -7535,9 +7536,13 @@
}
},
"node_modules/dompurify": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.3.tgz",
- "integrity": "sha512-5sOWYSNPaxz6o2MUPvtyxTTqR4D3L77pr5rUQoWgD5ROQtVIZQgJkXbo1DLlK3vj11YGw5+LnF4SYti4gZmwng=="
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz",
+ "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==",
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
},
"node_modules/domutils": {
"version": "2.7.0",
@@ -15451,9 +15456,10 @@
}
},
"node_modules/prismjs": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
- "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
+ "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -22240,10 +22246,10 @@
"dev": true
},
"@types/trusted-types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.0.tgz",
- "integrity": "sha512-I8MnZqNXsOLHsU111oHbn3khtvKMi5Bn4qVFsIWSJcCP1KKDiXX5AEw8UPk0nSopeC+Hvxt6yAy1/a5PailFqg==",
- "dev": true
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "devOptional": true
},
"@types/webpack": {
"version": "5.28.0",
@@ -24757,9 +24763,12 @@
}
},
"dompurify": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.3.tgz",
- "integrity": "sha512-5sOWYSNPaxz6o2MUPvtyxTTqR4D3L77pr5rUQoWgD5ROQtVIZQgJkXbo1DLlK3vj11YGw5+LnF4SYti4gZmwng=="
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz",
+ "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==",
+ "requires": {
+ "@types/trusted-types": "^2.0.7"
+ }
},
"domutils": {
"version": "2.7.0",
@@ -25731,7 +25740,10 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
}
}
},
@@ -30604,9 +30616,9 @@
}
},
"prismjs": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
- "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
+ "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="
},
"process": {
"version": "0.11.10",
diff --git a/package.json b/package.json
index 551d6aaa1..09903bb3b 100644
--- a/package.json
+++ b/package.json
@@ -141,7 +141,7 @@
"@redocly/openapi-core": "^1.4.0",
"classnames": "^2.3.2",
"decko": "^1.2.0",
- "dompurify": "^3.0.6",
+ "dompurify": "^3.3.0",
"eventemitter3": "^5.0.1",
"json-pointer": "^0.6.2",
"lunr": "^2.3.9",
@@ -152,7 +152,7 @@
"path-browserify": "^1.0.1",
"perfect-scrollbar": "^1.5.5",
"polished": "^4.2.2",
- "prismjs": "^1.29.0",
+ "prismjs": "^1.30.0",
"prop-types": "^15.8.1",
"react-tabs": "^6.0.2",
"slugify": "~1.4.7",
diff --git a/src/components/Operation/Operation.tsx b/src/components/Operation/Operation.tsx
index 9ce0aab1f..27ff24c70 100644
--- a/src/components/Operation/Operation.tsx
+++ b/src/components/Operation/Operation.tsx
@@ -56,7 +56,7 @@ export const Operation = observer(({ operation }: OperationProps): JSX.Element =
))}
{summary} {deprecated && Deprecated }
{isWebhook && (
-
+
{' '}
Webhook {showWebhookVerb && httpVerb && '| ' + httpVerb.toUpperCase()}
diff --git a/src/components/SideMenu/MenuItem.tsx b/src/components/SideMenu/MenuItem.tsx
index 4c72cc440..7ef6e4be6 100644
--- a/src/components/SideMenu/MenuItem.tsx
+++ b/src/components/SideMenu/MenuItem.tsx
@@ -86,7 +86,7 @@ export interface OperationMenuItemContentProps {
export const OperationMenuItemContent = observer((props: OperationMenuItemContentProps) => {
const { item } = props;
const ref = React.createRef();
- const { showWebhookVerb } = React.useContext(OptionsContext);
+ const { showWebhookVerb, webhookBadgeColor } = React.useContext(OptionsContext);
React.useEffect(() => {
if (props.item.active && ref.current) {
@@ -108,7 +108,7 @@ export const OperationMenuItemContent = observer((props: OperationMenuItemConten
))}
{item.isWebhook ? (
-
+
{showWebhookVerb ? item.httpVerb : l('webhook')}
) : (
diff --git a/src/components/__tests__/__snapshots__/DiscriminatorDropdown.test.tsx.snap b/src/components/__tests__/__snapshots__/DiscriminatorDropdown.test.tsx.snap
index adad16913..5614b0af3 100644
--- a/src/components/__tests__/__snapshots__/DiscriminatorDropdown.test.tsx.snap
+++ b/src/components/__tests__/__snapshots__/DiscriminatorDropdown.test.tsx.snap
@@ -294,6 +294,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Dog/properties/packSize",
@@ -567,6 +568,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Dog/properties/type",
@@ -827,6 +829,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Dog",
@@ -1149,6 +1152,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Cat/properties/type",
@@ -1434,6 +1438,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Cat/properties/packSize",
@@ -1690,6 +1695,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Cat",
@@ -1971,6 +1977,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Pet",
@@ -2282,6 +2289,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Dog/properties/packSize",
@@ -2555,6 +2563,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Dog/properties/type",
@@ -2815,6 +2824,7 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
},
"unstable_ignoreMimeParameters": false,
"untrustedSpec": false,
+ "webhookBadgeColor": undefined,
},
"pattern": undefined,
"pointer": "#/components/schemas/Dog",
diff --git a/src/components/__tests__/__snapshots__/FieldDetails.test.tsx.snap b/src/components/__tests__/__snapshots__/FieldDetails.test.tsx.snap
index 90cb6c356..4eabd3442 100644
--- a/src/components/__tests__/__snapshots__/FieldDetails.test.tsx.snap
+++ b/src/components/__tests__/__snapshots__/FieldDetails.test.tsx.snap
@@ -174,10 +174,12 @@ exports[`FieldDetailsComponent renders correctly when field items have string ty
class="sc-kpDqfm sc-dAlyuH sc-gvZAcH cGRfjn gHomYR eXivNJ"
>
[ items
-
+
<= 128 characters
diff --git a/src/services/RedocNormalizedOptions.ts b/src/services/RedocNormalizedOptions.ts
index fd162b91d..ec60b94d5 100644
--- a/src/services/RedocNormalizedOptions.ts
+++ b/src/services/RedocNormalizedOptions.ts
@@ -39,6 +39,7 @@ export interface RedocRawOptions {
showObjectSchemaExamples?: boolean | string;
showSecuritySchemeType?: boolean;
hideSecuritySection?: boolean;
+ webhookBadgeColor?: string;
unstable_ignoreMimeParameters?: boolean;
@@ -244,6 +245,7 @@ export class RedocNormalizedOptions {
showObjectSchemaExamples: boolean;
showSecuritySchemeType?: boolean;
hideSecuritySection?: boolean;
+ webhookBadgeColor?: string;
/* tslint:disable-next-line */
unstable_ignoreMimeParameters: boolean;
@@ -318,6 +320,7 @@ export class RedocNormalizedOptions {
this.showObjectSchemaExamples = argValueToBoolean(raw.showObjectSchemaExamples);
this.showSecuritySchemeType = argValueToBoolean(raw.showSecuritySchemeType);
this.hideSecuritySection = argValueToBoolean(raw.hideSecuritySection);
+ this.webhookBadgeColor = raw.webhookBadgeColor;
this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);