diff --git a/.changeset/chilly-taxis-shop.md b/.changeset/chilly-taxis-shop.md
new file mode 100644
index 0000000000..9e2e73a5e3
--- /dev/null
+++ b/.changeset/chilly-taxis-shop.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-home': patch
+---
+
+Remove object-hash dependency
diff --git a/.changeset/cold-laws-turn.md b/.changeset/cold-laws-turn.md
new file mode 100644
index 0000000000..6220f088db
--- /dev/null
+++ b/.changeset/cold-laws-turn.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-aws-sqs': minor
+---
+
+Allow endpoint configuration for sqs, enabling use of localstack for testing.
diff --git a/.changeset/curly-rats-fold.md b/.changeset/curly-rats-fold.md
new file mode 100644
index 0000000000..c4cd8d514b
--- /dev/null
+++ b/.changeset/curly-rats-fold.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend': patch
+---
+
+Internal refactoring for performance in the service handlers
diff --git a/.changeset/fair-suits-warn.md b/.changeset/fair-suits-warn.md
new file mode 100644
index 0000000000..3edc2aa1ca
--- /dev/null
+++ b/.changeset/fair-suits-warn.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-tech-radar': patch
+---
+
+Fix description links when clicking entry in radar.
diff --git a/.changeset/ninety-mugs-sin.md b/.changeset/ninety-mugs-sin.md
new file mode 100644
index 0000000000..6b71a00667
--- /dev/null
+++ b/.changeset/ninety-mugs-sin.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-react': minor
+---
+
+ accepts InputProp property that can override keys from default
diff --git a/.changeset/wet-dolphins-love.md b/.changeset/wet-dolphins-love.md
new file mode 100644
index 0000000000..3aa7f776a7
--- /dev/null
+++ b/.changeset/wet-dolphins-love.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-github': major
+---
+
+Updated the `team.edited` event emitted from `GithubOrgEntityProvider` to also include teams description.
diff --git a/OWNERS.md b/OWNERS.md
index 0a567ee269..0d2040d770 100644
--- a/OWNERS.md
+++ b/OWNERS.md
@@ -92,6 +92,7 @@ Scope: The TechDocs plugin and related tooling
| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey#3739` |
| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `Ahhhndre#3095` |
| Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` |
+| Aramis Sennyey | | [sennyeya](https://github.com/sennyeya) | `Aramis#7984` |
| Brian Fletcher | Roadie.io | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` |
| Carlos Esteban Lopez Jaramillo | VMWare | [luchillo17](https://github.com/luchillo17) | `luchillo17#8777` |
| David Tuite | Roadie.io | [dtuite](https://github.com/dtuite) | `David Tuite (roadie.io)#1010` |
diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js
index e6137b572b..d0f6bb277f 100644
--- a/microsite/docusaurus.config.js
+++ b/microsite/docusaurus.config.js
@@ -241,7 +241,7 @@ module.exports = {
},
{
label: 'Subscribe to our newsletter',
- to: 'https://mailchi.mp/spotify/backstage-community',
+ to: 'https://info.backstage.spotify.com/newsletter_subscribe',
},
{
label: 'CNCF Incubation',
diff --git a/packages/app/src/components/home/HomePage.tsx b/packages/app/src/components/home/HomePage.tsx
index 26a7ab60f3..da1d0d425c 100644
--- a/packages/app/src/components/home/HomePage.tsx
+++ b/packages/app/src/components/home/HomePage.tsx
@@ -21,12 +21,15 @@ import {
ClockConfig,
HomePageStarredEntities,
CustomHomepageGrid,
+ HomePageToolkit,
+ HomePageCompanyLogo,
} from '@backstage/plugin-home';
import { Content, Header, Page } from '@backstage/core-components';
import { HomePageSearchBar } from '@backstage/plugin-search';
import { HomePageCalendar } from '@backstage/plugin-gcalendar';
import { MicrosoftCalendarCard } from '@backstage/plugin-microsoft-calendar';
import React from 'react';
+import HomeIcon from '@material-ui/icons/Home';
const clockConfigs: ClockConfig[] = [
{
@@ -55,12 +58,26 @@ const timeFormat: Intl.DateTimeFormatOptions = {
const defaultConfig = [
{
- component: 'HomePageSearchBar',
+ component: 'CompanyLogo',
x: 0,
y: 0,
width: 12,
height: 1,
},
+ {
+ component: 'WelcomeTitle',
+ x: 0,
+ y: 1,
+ width: 12,
+ height: 1,
+ },
+ {
+ component: 'HomePageSearchBar',
+ x: 0,
+ y: 2,
+ width: 12,
+ height: 1,
+ },
];
export const homePage = (
@@ -78,6 +95,17 @@ export const homePage = (
+
+
+ ,
+ },
+ ]}
+ />
diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts
index ff42e42718..3e58c1473f 100644
--- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts
@@ -833,6 +833,7 @@ describe('GithubOrgEntityProvider', () => {
'url:https://github.com/orgs/backstage/teams/mygroup-with-spaces',
},
name: 'mygroup-with-spaces',
+ description: 'description-from-the-new-team',
},
apiVersion: 'backstage.io/v1alpha1',
kind: 'Group',
diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts
index 02e225c938..c181510a67 100644
--- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts
+++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts
@@ -371,14 +371,21 @@ export class GithubOrgEntityProvider
assignGroupsToUsers(usersToRebuild, groups);
buildOrgHierarchy(groups);
- const oldName = event.changes.name?.from || '';
+ const oldName = event.changes.name?.from || event.team.name;
const oldSlug = oldName.toLowerCase().replaceAll(/\s/gi, '-');
+ const oldDescription =
+ event.changes.description?.from || event.team.description;
+ const oldDescriptionSlug = oldDescription
+ ?.toLowerCase()
+ .replaceAll(/\s/gi, '-');
+
const { removed } = createDeltaOperation(org, [
{
...group,
metadata: {
name: oldSlug,
+ description: oldDescriptionSlug,
},
},
]);
diff --git a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts
index 5fca950cac..7eef962e79 100644
--- a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts
+++ b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts
@@ -64,43 +64,47 @@ const defaultSortField: EntityOrder = {
const DEFAULT_LIMIT = 20;
-function parsePagination(input?: EntityPagination): {
- limit?: number;
- offset?: number;
-} {
+function parsePagination(input?: EntityPagination): EntityPagination {
if (!input) {
return {};
}
let { limit, offset } = input;
- if (input.after !== undefined) {
- let cursor;
- try {
- const json = Buffer.from(input.after, 'base64').toString('utf8');
- cursor = JSON.parse(json);
- } catch {
- throw new InputError('Malformed after cursor, could not be parsed');
+ if (input.after === undefined) {
+ return { limit, offset };
+ }
+
+ let cursor;
+ try {
+ const json = Buffer.from(input.after, 'base64').toString('utf8');
+ cursor = JSON.parse(json);
+ } catch {
+ throw new InputError('Malformed after cursor, could not be parsed');
+ }
+
+ if (cursor.limit !== undefined) {
+ if (!Number.isInteger(cursor.limit)) {
+ throw new InputError('Malformed after cursor, limit was not an number');
}
- if (cursor.limit !== undefined) {
- if (!Number.isInteger(cursor.limit)) {
- throw new InputError('Malformed after cursor, limit was not an number');
- }
- limit = cursor.limit;
- }
- if (cursor.offset !== undefined) {
- if (!Number.isInteger(cursor.offset)) {
- throw new InputError('Malformed after cursor, offset was not a number');
- }
- offset = cursor.offset;
+ limit = cursor.limit;
+ }
+
+ if (cursor.offset !== undefined) {
+ if (!Number.isInteger(cursor.offset)) {
+ throw new InputError('Malformed after cursor, offset was not a number');
}
+ offset = cursor.offset;
}
return { limit, offset };
}
-function stringifyPagination(input: { limit: number; offset: number }) {
- const json = JSON.stringify({ limit: input.limit, offset: input.offset });
+function stringifyPagination(
+ input: Required>,
+): string {
+ const { limit, offset } = input;
+ const json = JSON.stringify({ limit, offset });
const base64 = Buffer.from(json, 'utf8').toString('base64');
return base64;
}
@@ -111,24 +115,21 @@ function addCondition(
filter: EntitiesSearchFilter,
negate: boolean = false,
entityIdField = 'entity_id',
-) {
+): void {
+ const key = filter.key.toLowerCase();
+ const values = filter.values?.map(v => v.toLowerCase());
+
// NOTE(freben): This used to be a set of OUTER JOIN, which may seem to
// make a lot of sense. However, it had abysmal performance on sqlite
// when datasets grew large, so we're using IN instead.
const matchQuery = db('search')
.select('search.entity_id')
- .where({ key: filter.key.toLowerCase() })
+ .where({ key })
.andWhere(function keyFilter() {
- if (filter.values) {
- if (filter.values.length === 1) {
- this.where({ value: filter.values[0].toLowerCase() });
- } else {
- this.andWhere(
- 'value',
- 'in',
- filter.values.map(v => v.toLowerCase()),
- );
- }
+ if (values?.length === 1) {
+ this.where({ value: values.at(0) });
+ } else if (values) {
+ this.andWhere('value', 'in', values);
}
});
queryBuilder.andWhere(entityIdField, negate ? 'not in' : 'in', matchQuery);
@@ -159,16 +160,16 @@ function parseFilter(
negate: boolean = false,
entityIdField = 'entity_id',
): Knex.QueryBuilder {
+ if (isNegationEntityFilter(filter)) {
+ return parseFilter(filter.not, query, db, !negate, entityIdField);
+ }
+
if (isEntitiesSearchFilter(filter)) {
return query.andWhere(function filterFunction() {
addCondition(this, db, filter, negate, entityIdField);
});
}
- if (isNegationEntityFilter(filter)) {
- return parseFilter(filter.not, query, db, !negate, entityIdField);
- }
-
return query[negate ? 'andWhereNot' : 'andWhere'](function filterFunction() {
if (isOrEntityFilter(filter)) {
for (const subFilter of filter.anyOf ?? []) {
diff --git a/plugins/events-backend-module-aws-sqs/src/publisher/AwsSqsConsumingEventPublisher.ts b/plugins/events-backend-module-aws-sqs/src/publisher/AwsSqsConsumingEventPublisher.ts
index e649e2ee83..4f4e6ea55d 100644
--- a/plugins/events-backend-module-aws-sqs/src/publisher/AwsSqsConsumingEventPublisher.ts
+++ b/plugins/events-backend-module-aws-sqs/src/publisher/AwsSqsConsumingEventPublisher.ts
@@ -68,7 +68,11 @@ export class AwsSqsConsumingEventPublisher implements EventPublisher {
VisibilityTimeout: config.visibilityTimeout?.as('seconds'),
WaitTimeSeconds: config.pollingWaitTime.as('seconds'),
};
- this.sqs = new SQSClient({ region: config.region });
+
+ this.sqs = new SQSClient({
+ region: config.region,
+ endpoint: config.endpoint,
+ });
this.queueUrl = config.queueUrl;
this.taskTimeoutSeconds = config.timeout.as('seconds');
diff --git a/plugins/events-backend-module-aws-sqs/src/publisher/config.test.ts b/plugins/events-backend-module-aws-sqs/src/publisher/config.test.ts
index 1fa9df4ce3..6d7a08d7a7 100644
--- a/plugins/events-backend-module-aws-sqs/src/publisher/config.test.ts
+++ b/plugins/events-backend-module-aws-sqs/src/publisher/config.test.ts
@@ -79,6 +79,7 @@ describe('readConfig', () => {
url: 'https://fake1.queue.url',
visibilityTimeout: { minutes: 5 },
waitTime: { seconds: 10 },
+ endpoint: 'https://fake.endpoint.url',
},
timeout: { minutes: 5 },
waitTimeAfterEmptyReceive: { seconds: 30 },
@@ -97,6 +98,7 @@ describe('readConfig', () => {
expect(publisherConfigs[0].topic).toEqual('fake1');
expect(publisherConfigs[0].region).toEqual('eu-west-1');
expect(publisherConfigs[0].queueUrl).toEqual('https://fake1.queue.url');
+ expect(publisherConfigs[0].endpoint).toEqual('https://fake.endpoint.url');
expect(publisherConfigs[0].pollingWaitTime.as('seconds')).toBe(10);
expect(publisherConfigs[0].timeout.as('seconds')).toBe(300);
expect(publisherConfigs[0].waitTimeAfterEmptyReceive.as('seconds')).toBe(
diff --git a/plugins/events-backend-module-aws-sqs/src/publisher/config.ts b/plugins/events-backend-module-aws-sqs/src/publisher/config.ts
index c6b74ea8d3..eeb650ff6c 100644
--- a/plugins/events-backend-module-aws-sqs/src/publisher/config.ts
+++ b/plugins/events-backend-module-aws-sqs/src/publisher/config.ts
@@ -31,6 +31,7 @@ export interface AwsSqsEventSourceConfig {
topic: string;
visibilityTimeout?: Duration;
waitTimeAfterEmptyReceive: Duration;
+ endpoint?: string;
}
// TODO(pjungermann): validation could be improved similar to `convertToHumanDuration` at @backstage/backend-tasks
@@ -74,6 +75,7 @@ export function readConfig(config: Config): AwsSqsEventSourceConfig[] {
}
const queueUrl = topicConfig.getString('queue.url');
const region = topicConfig.getString('queue.region');
+ const endpoint = topicConfig.getOptionalString('queue.endpoint');
const visibilityTimeout = readOptionalDuration(
topicConfig,
'queue.visibilityTimeout',
@@ -106,6 +108,7 @@ export function readConfig(config: Config): AwsSqsEventSourceConfig[] {
return {
pollingWaitTime,
queueUrl,
+ endpoint,
region,
timeout,
topic,
diff --git a/plugins/home/package.json b/plugins/home/package.json
index ef9267234b..4cfdabcfe7 100644
--- a/plugins/home/package.json
+++ b/plugins/home/package.json
@@ -48,7 +48,6 @@
"@rjsf/validator-ajv8": "5.6.0",
"@types/react": "^16.13.1 || ^17.0.0",
"lodash": "^4.17.21",
- "object-hash": "^3.0.0",
"react-grid-layout": "^1.3.4",
"react-resizable": "^3.0.4",
"react-use": "^17.2.4",
diff --git a/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx b/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx
index 232fbd12c2..6af9044cbd 100644
--- a/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx
+++ b/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx
@@ -46,7 +46,6 @@ import { CardConfig } from '../../extensions';
// eslint-disable-next-line new-cap
const ResponsiveGrid = WidthProvider(Responsive);
-const hash = require('object-hash');
const useStyles = makeStyles((theme: Theme) =>
createStyles({
@@ -336,14 +335,14 @@ export const CustomHomepageGrid = (props: CustomHomepageGridProps) => {
...widget.component.props,
...(w.settings ?? {}),
};
- const propsHash = hash(widgetProps, {});
+
return (
-
+
{editMode && (
{
const classes = useStyles();
return (
-
+
);
};
diff --git a/plugins/search-react/src/components/SearchBar/SearchBar.tsx b/plugins/search-react/src/components/SearchBar/SearchBar.tsx
index 913f515aaa..cfd0538694 100644
--- a/plugins/search-react/src/components/SearchBar/SearchBar.tsx
+++ b/plugins/search-react/src/components/SearchBar/SearchBar.tsx
@@ -80,7 +80,8 @@ export const SearchBarBase: ForwardRefExoticComponent =
value: defaultValue,
label,
placeholder,
- inputProps: defaultInputProps = {},
+ inputProps = {},
+ InputProps = {},
endAdornment,
...rest
} = props;
@@ -168,10 +169,11 @@ export const SearchBarBase: ForwardRefExoticComponent =
endAdornment: clearButton
? clearButtonEndAdornment
: endAdornment,
+ ...InputProps,
}}
inputProps={{
'aria-label': ariaLabel,
- ...defaultInputProps,
+ ...inputProps,
}}
fullWidth={fullWidth}
onChange={handleChange}
diff --git a/plugins/tech-radar/src/components/RadarEntry/RadarEntry.tsx b/plugins/tech-radar/src/components/RadarEntry/RadarEntry.tsx
index af9e840ead..66940cd1d7 100644
--- a/plugins/tech-radar/src/components/RadarEntry/RadarEntry.tsx
+++ b/plugins/tech-radar/src/components/RadarEntry/RadarEntry.tsx
@@ -26,6 +26,7 @@ export type Props = {
value: number;
color: string;
url?: string;
+ links?: Array<{ title: string; url: string }>;
moved?: number;
description?: string;
timeline?: EntrySnapshot[];
@@ -73,6 +74,7 @@ const RadarEntry = (props: Props): JSX.Element => {
title,
color,
url,
+ links,
value,
x,
y,
@@ -112,6 +114,7 @@ const RadarEntry = (props: Props): JSX.Element => {
description={description ? description : 'no description'}
timeline={timeline ? timeline : []}
url={url}
+ links={links}
/>
)}
{description ? (
diff --git a/plugins/tech-radar/src/components/RadarPlot/RadarPlot.tsx b/plugins/tech-radar/src/components/RadarPlot/RadarPlot.tsx
index 957017692b..0fb6e3a36a 100644
--- a/plugins/tech-radar/src/components/RadarPlot/RadarPlot.tsx
+++ b/plugins/tech-radar/src/components/RadarPlot/RadarPlot.tsx
@@ -73,6 +73,7 @@ const RadarPlot = (props: Props): JSX.Element => {
color={entry.color || ''}
value={(entry?.index || 0) + 1}
url={entry.url}
+ links={entry.links}
description={entry.description}
moved={entry.moved}
title={entry.title}
diff --git a/yarn.lock b/yarn.lock
index d49bb7c31c..d0f5178c6f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7268,7 +7268,6 @@ __metadata:
cross-fetch: ^3.1.5
lodash: ^4.17.21
msw: ^1.0.0
- object-hash: ^3.0.0
react-grid-layout: ^1.3.4
react-resizable: ^3.0.4
react-use: ^17.2.4
@@ -12317,11 +12316,11 @@ __metadata:
linkType: hard
"@keyv/redis@npm:^2.5.3":
- version: 2.5.7
- resolution: "@keyv/redis@npm:2.5.7"
+ version: 2.5.8
+ resolution: "@keyv/redis@npm:2.5.8"
dependencies:
- ioredis: ^5.3.1
- checksum: e0ed1b6602afcc339bb2bf014d8801e6b7a3b6392d0f8e4ccfc59d919f59229b8787c50c48fc51636625ffdf55cf1ef6c450425a73bd88f9b866e74f1b3e25f8
+ ioredis: ^5.3.2
+ checksum: 1050c4997b62e701112b48e5375c4e53a5e49454c1621fbb00b1c2272e55a575f9ace49c5179800f73e6f07ce247a4cf6e1260a6713ad1392fd8f8825079771f
languageName: node
linkType: hard
@@ -16436,9 +16435,9 @@ __metadata:
linkType: hard
"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0":
- version: 20.0.0
- resolution: "@types/node@npm:20.0.0"
- checksum: 7dadc41081eee634fd0b19e46dfb0a74f8296ee562533118f7c2f2b54dcaba7124961d506db425fff74d8e8288610b93939cd06fa723f053c72b1a7e87aa4ddc
+ version: 20.1.0
+ resolution: "@types/node@npm:20.1.0"
+ checksum: c6d9afa9aa78b4b4348c69ece94975be70346b144c278f1395694a10ef919d7db300018101b6f9245e6bdd76674a5327d2d14829092f3d5295e858cff5f22a66
languageName: node
linkType: hard
@@ -16457,9 +16456,9 @@ __metadata:
linkType: hard
"@types/node@npm:^14.14.31":
- version: 14.18.44
- resolution: "@types/node@npm:14.18.44"
- checksum: 650527d288956649da15917512236815c3e00f8a72a8d4f316dac88180d0b074884eab944ef2d404f0b394ef56e62e7e5891c786c19f4474365672782a1923b0
+ version: 14.18.45
+ resolution: "@types/node@npm:14.18.45"
+ checksum: 2857cd1912d70f6a97b9d8085088b12ab80bcaa06e4ea20535020167bfcbc6bea9469fafc437acddd34b07e3d94b1d35bcbd51d960c8841ab1a675166e97d8b9
languageName: node
linkType: hard
@@ -16471,16 +16470,16 @@ __metadata:
linkType: hard
"@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2":
- version: 16.18.25
- resolution: "@types/node@npm:16.18.25"
- checksum: 181760ad6b54fcc498dfeb249e98bbf0be51d7c35e92e760e1a82004fa42b86e8c33a8f8dd7743b5ef872bda0753d9e6a5b8e3f0aed63e9eb79b4e65760c1fbe
+ version: 16.18.26
+ resolution: "@types/node@npm:16.18.26"
+ checksum: 2a746b3f9e97e00aa5d1d8cce36c5b75d5504df15e82647ad1fadbc3435ea4491203d044bbaa595edc2ab25a9ab820793f9d38dba753ad150929335fa21e24d4
languageName: node
linkType: hard
"@types/node@npm:^18.11.17":
- version: 18.16.4
- resolution: "@types/node@npm:18.16.4"
- checksum: 21d575391c88be9f3568675de59d571597cfc122efa32939ae2697c2218c6ccfb6ba0d4b5d9301905e6c4964f43add42569249b15d2e12d68b0aedaf891ec9a5
+ version: 18.16.5
+ resolution: "@types/node@npm:18.16.5"
+ checksum: b6df96a76a7655cd944794197cf63f5269e5034041bc355f4f243cb3f185ad3e1948011b6f0ac66c22434e50bc53a20ec3a9d95ad284f0e3819813d309d1650b
languageName: node
linkType: hard
@@ -26750,9 +26749,9 @@ __metadata:
languageName: node
linkType: hard
-"ioredis@npm:^5.3.1":
- version: 5.3.1
- resolution: "ioredis@npm:5.3.1"
+"ioredis@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "ioredis@npm:5.3.2"
dependencies:
"@ioredis/commands": ^1.1.1
cluster-key-slot: ^1.1.0
@@ -26763,7 +26762,7 @@ __metadata:
redis-errors: ^1.2.0
redis-parser: ^3.0.0
standard-as-callback: ^2.1.0
- checksum: 6c98cb8f8772ad4bb2b6b7a0a224e4a63f4759f9a28e84205f18788552f08221d51f391c10892dca01a1b10b2804d0a7e6082b0b7decd65538a5fb6b0f4f1f82
+ checksum: 9a23559133e862a768778301efb68ae8c2af3c33562174b54a4c2d6574b976e85c75a4c34857991af733e35c48faf4c356e7daa8fb0a3543d85ff1768c8754bc
languageName: node
linkType: hard
@@ -38464,14 +38463,14 @@ __metadata:
linkType: hard
"terser-webpack-plugin@npm:*, terser-webpack-plugin@npm:^5.1.3":
- version: 5.3.7
- resolution: "terser-webpack-plugin@npm:5.3.7"
+ version: 5.3.8
+ resolution: "terser-webpack-plugin@npm:5.3.8"
dependencies:
"@jridgewell/trace-mapping": ^0.3.17
jest-worker: ^27.4.5
schema-utils: ^3.1.1
serialize-javascript: ^6.0.1
- terser: ^5.16.5
+ terser: ^5.16.8
peerDependencies:
webpack: ^5.1.0
peerDependenciesMeta:
@@ -38481,13 +38480,13 @@ __metadata:
optional: true
uglify-js:
optional: true
- checksum: 095e699fdeeb553cdf2c6f75f983949271b396d9c201d7ae9fc633c45c1c1ad14c7257ef9d51ccc62213dd3e97f875870ba31550f6d4f1b6674f2615562da7f7
+ checksum: 0ffc2a1949b1fd60ef9c815c4629b9817656db612bb58c5db96e3b04204c86afd142b115392e48733364edc7bf95131f54c10174c05f046ba8f2adead6b06c3c
languageName: node
linkType: hard
-"terser@npm:^5.10.0, terser@npm:^5.16.5":
- version: 5.16.6
- resolution: "terser@npm:5.16.6"
+"terser@npm:^5.10.0, terser@npm:^5.16.8":
+ version: 5.17.1
+ resolution: "terser@npm:5.17.1"
dependencies:
"@jridgewell/source-map": ^0.3.2
acorn: ^8.5.0
@@ -38495,7 +38494,7 @@ __metadata:
source-map-support: ~0.5.20
bin:
terser: bin/terser
- checksum: f763a7bcc7b98cb2bfc41434f7b92bfe8a701a12c92ea6049377736c8e6de328240d654a20dfe15ce170fd783491b9873fad9f4cd8fee4f6c6fb8ca407859dee
+ checksum: 69b0e80e3c4084db2819de4d6ae8a2ba79f2fcd7ed6df40fe4b602ec7bfd8e889cc63c7d5268f30990ffecbf6eeda18f857adad9386fe2c2331b398d58ed855c
languageName: node
linkType: hard