diff --git a/.changeset/silent-waves-pretend.md b/.changeset/silent-waves-pretend.md
new file mode 100644
index 0000000000..5986579fe6
--- /dev/null
+++ b/.changeset/silent-waves-pretend.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-auth-backend-module-aws-alb-provider': minor
+'@backstage/plugin-auth-backend': patch
+---
+
+Migrated the AWS ALB auth provider to new `@backstage/plugin-auth-backend-module-aws-alb-provider` module package.
diff --git a/package.json b/package.json
index c19dea9d3b..7530e1aa82 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
]
},
"resolutions": {
+ "csstype": ">=3.0.2 <=3.1.2",
"@types/react": "^18",
"@types/react-dom": "^18",
"jest-haste-map@^29.7.0": "patch:jest-haste-map@npm%3A29.7.0#./.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch",
diff --git a/packages/backend/package.json b/packages/backend/package.json
index fe072cf11a..6e5494f162 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -35,6 +35,7 @@
"@backstage/plugin-adr-backend": "workspace:^",
"@backstage/plugin-app-backend": "workspace:^",
"@backstage/plugin-auth-backend": "workspace:^",
+ "@backstage/plugin-auth-backend-module-aws-alb-provider": "workspace:^",
"@backstage/plugin-auth-node": "workspace:^",
"@backstage/plugin-azure-devops-backend": "workspace:^",
"@backstage/plugin-azure-sites-backend": "workspace:^",
diff --git a/plugins/auth-backend-module-aws-alb-provider/.eslintrc.js b/plugins/auth-backend-module-aws-alb-provider/.eslintrc.js
new file mode 100644
index 0000000000..e2a53a6ad2
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/.eslintrc.js
@@ -0,0 +1 @@
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/plugins/auth-backend-module-aws-alb-provider/README.md b/plugins/auth-backend-module-aws-alb-provider/README.md
new file mode 100644
index 0000000000..dd92ae7ba2
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/README.md
@@ -0,0 +1,8 @@
+# Auth Module: AWS ALB Provider
+
+This module provides an GitHub auth provider implementation for `@backstage/plugin-auth-backend`.
+
+## Links
+
+- [Backstage](https://backstage.io)
+- [Repository](https://github.com/backstage/backstage/tree/master/plugins/auth-backend-module-github-provider)
diff --git a/plugins/auth-backend-module-aws-alb-provider/api-report.md b/plugins/auth-backend-module-aws-alb-provider/api-report.md
new file mode 100644
index 0000000000..88e00d87c1
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/api-report.md
@@ -0,0 +1,47 @@
+## API Report File for "@backstage/plugin-auth-backend-module-aws-alb-provider"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+///
+
+import { BackendFeature } from '@backstage/backend-plugin-api';
+import { JWTHeaderParameters } from 'jose';
+import { KeyObject } from 'crypto';
+import passport from 'passport';
+import { ProxyAuthenticator } from '@backstage/plugin-auth-node';
+import { SignInResolverFactory } from '@backstage/plugin-auth-node';
+
+// @public (undocumented)
+export const authModuleAwsAlbProvider: () => BackendFeature;
+
+// @public (undocumented)
+export const awsAlbAuthenticator: ProxyAuthenticator<
+ {
+ issuer: string;
+ getKey: (header: JWTHeaderParameters) => Promise;
+ },
+ AwsAlbResult
+>;
+
+// @public
+export type AwsAlbResult = {
+ fullProfile: PassportProfile;
+ expiresInSeconds?: number;
+ accessToken: string;
+};
+
+// @public
+export namespace awsAlbSignInResolvers {
+ const // (undocumented)
+ emailMatchingUserEntityProfileEmail: SignInResolverFactory<
+ AwsAlbResult,
+ unknown
+ >;
+}
+
+// @public (undocumented)
+export type PassportProfile = passport.Profile & {
+ avatarUrl?: string;
+};
+```
diff --git a/plugins/auth-backend-module-aws-alb-provider/catalog-info.yaml b/plugins/auth-backend-module-aws-alb-provider/catalog-info.yaml
new file mode 100644
index 0000000000..b3ced6b59d
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/catalog-info.yaml
@@ -0,0 +1,10 @@
+apiVersion: backstage.io/v1alpha1
+kind: Component
+metadata:
+ name: backstage-plugin-auth-backend-module-aws-alb-provider
+ title: '@backstage/plugin-auth-backend-module-aws-alb-provider'
+ description: The aws-alb provider module for the Backstage auth backend.
+spec:
+ lifecycle: experimental
+ type: backstage-backend-plugin-module
+ owner: maintainers
diff --git a/plugins/auth-backend-module-aws-alb-provider/package.json b/plugins/auth-backend-module-aws-alb-provider/package.json
new file mode 100644
index 0000000000..41e3e409e2
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/package.json
@@ -0,0 +1,55 @@
+{
+ "name": "@backstage/plugin-auth-backend-module-aws-alb-provider",
+ "description": "The aws-alb provider module for the Backstage auth backend.",
+ "version": "0.0.0",
+ "main": "src/index.ts",
+ "types": "src/index.ts",
+ "license": "Apache-2.0",
+ "publishConfig": {
+ "access": "public",
+ "main": "dist/index.cjs.js",
+ "types": "dist/index.d.ts"
+ },
+ "backstage": {
+ "role": "backend-plugin-module"
+ },
+ "homepage": "https://backstage.io",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/backstage/backstage",
+ "directory": "plugins/auth-backend-module-aws-alb-provider"
+ },
+ "keywords": [
+ "backstage"
+ ],
+ "scripts": {
+ "start": "backstage-cli package start",
+ "build": "backstage-cli package build",
+ "lint": "backstage-cli package lint",
+ "test": "backstage-cli package test",
+ "clean": "backstage-cli package clean",
+ "prepack": "backstage-cli package prepack",
+ "postpack": "backstage-cli package postpack"
+ },
+ "dependencies": {
+ "@backstage/backend-common": "workspace:^",
+ "@backstage/backend-plugin-api": "workspace:^",
+ "@backstage/errors": "workspace:^",
+ "@backstage/plugin-auth-backend": "workspace:^",
+ "@backstage/plugin-auth-node": "workspace:^",
+ "@types/passport": "^1.0.3",
+ "jose": "^4.6.0",
+ "jwt-decode": "^3.1.0",
+ "node-cache": "^5.1.2",
+ "passport": "^0.7.0"
+ },
+ "devDependencies": {
+ "@backstage/backend-test-utils": "workspace:^",
+ "@backstage/cli": "workspace:^",
+ "@backstage/config": "workspace:^",
+ "express": "^4.18.2"
+ },
+ "files": [
+ "dist"
+ ]
+}
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/authenticator.test.ts b/plugins/auth-backend-module-aws-alb-provider/src/authenticator.test.ts
new file mode 100644
index 0000000000..bfcbfce622
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/authenticator.test.ts
@@ -0,0 +1,181 @@
+/*
+ * Copyright 2020 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ ALB_ACCESS_TOKEN_HEADER,
+ ALB_JWT_HEADER,
+ awsAlbAuthenticator,
+} from './authenticator';
+import { jwtVerify } from 'jose';
+import express from 'express';
+import { AuthenticationError } from '@backstage/errors';
+import { Config } from '@backstage/config';
+
+const jwtMock = jwtVerify as jest.Mocked;
+const mockJwt =
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IktFWV9JRCIsImlzcyI6IklTU1VFUl9VUkwifQ.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IlVzZXIgTmFtZSIsImlhdCI6MTUxNjIzOTAyMn0.uMCSBGhij1xn5pnot8XgD-huQuTIBOFGs6kkW_p_X94';
+const mockAccessToken = 'ACCESS_TOKEN';
+const mockClaims = {
+ sub: '1234567890',
+ name: 'User Name',
+ family_name: 'Name',
+ given_name: 'User',
+ picture: 'PICTURE_URL',
+ email: 'user.name@email.test',
+ exp: 1632833763,
+ iss: 'ISSUER_URL',
+};
+jest.mock('jose');
+
+beforeEach(() => {
+ jest.clearAllMocks();
+});
+describe('AwsAlbProvider', () => {
+ const mockRequest = {
+ header: jest.fn(name => {
+ if (name === ALB_JWT_HEADER) {
+ return mockJwt;
+ } else if (name === ALB_ACCESS_TOKEN_HEADER) {
+ return mockAccessToken;
+ }
+ return undefined;
+ }),
+ } as unknown as express.Request;
+ const mockRequestWithoutJwt = {
+ header: jest.fn(name => {
+ if (name === ALB_ACCESS_TOKEN_HEADER) {
+ return mockAccessToken;
+ }
+ return undefined;
+ }),
+ } as unknown as express.Request;
+ const mockRequestWithoutAccessToken = {
+ header: jest.fn(name => {
+ if (name === ALB_JWT_HEADER) {
+ return mockJwt;
+ }
+ return undefined;
+ }),
+ } as unknown as express.Request;
+
+ describe('should transform to type AwsAlbResponse', () => {
+ it('when JWT is valid and identity is resolved successfully', async () => {
+ jwtMock.mockReturnValueOnce(Promise.resolve({ payload: mockClaims }));
+
+ const response = await awsAlbAuthenticator.authenticate(
+ { req: mockRequest },
+ { issuer: 'ISSUER_URL', getKey: jest.fn() },
+ );
+ expect(response).toEqual({
+ result: {
+ fullProfile: {
+ provider: 'unknown',
+ id: mockClaims.sub,
+ displayName: mockClaims.name,
+ username: mockClaims.email.split('@')[0].toLowerCase(),
+ name: {
+ familyName: mockClaims.family_name,
+ givenName: mockClaims.given_name,
+ },
+ emails: [{ value: mockClaims.email.toLowerCase() }],
+ photos: [{ value: mockClaims.picture }],
+ },
+ expiresInSeconds: mockClaims.exp,
+ accessToken: mockAccessToken,
+ },
+ });
+ });
+ });
+ describe('should fail when', () => {
+ it('Access token is missing', async () => {
+ await expect(
+ awsAlbAuthenticator.authenticate(
+ { req: mockRequestWithoutAccessToken },
+ { issuer: 'ISSUER_URL', getKey: jest.fn() },
+ ),
+ ).rejects.toThrow(AuthenticationError);
+ });
+
+ it('JWT is missing', async () => {
+ await expect(
+ awsAlbAuthenticator.authenticate(
+ { req: mockRequestWithoutJwt },
+ { issuer: 'ISSUER_URL', getKey: jest.fn() },
+ ),
+ ).rejects.toThrow(AuthenticationError);
+ });
+
+ it('JWT is invalid', async () => {
+ jwtMock.mockImplementationOnce(() => {
+ throw new Error('bad JWT');
+ });
+
+ await expect(
+ awsAlbAuthenticator.authenticate(
+ { req: mockRequest },
+ { issuer: 'ISSUER_URL', getKey: jest.fn() },
+ ),
+ ).rejects.toThrow(
+ 'Exception occurred during JWT processing: Error: bad JWT',
+ );
+ });
+
+ it('issuer is missing', async () => {
+ jwtMock.mockReturnValueOnce({});
+
+ await expect(
+ awsAlbAuthenticator.authenticate(
+ { req: mockRequest },
+ { issuer: 'ISSUER_URL', getKey: jest.fn() },
+ ),
+ ).rejects.toThrow(
+ 'Exception occurred during JWT processing: AuthenticationError: Issuer mismatch on JWT token',
+ );
+ });
+
+ it('issuer is invalid', async () => {
+ jwtMock.mockReturnValueOnce({
+ iss: 'INVALID_ISSUE_URL',
+ });
+
+ await expect(
+ awsAlbAuthenticator.authenticate(
+ { req: mockRequest },
+ { issuer: 'ISSUER_URL', getKey: jest.fn() },
+ ),
+ ).rejects.toThrow(
+ 'Exception occurred during JWT processing: AuthenticationError: Issuer mismatch on JWT token',
+ );
+ });
+ });
+ describe('should initialize', () => {
+ it('with default options', async () => {
+ const config = {
+ config: {
+ getString: jest
+ .fn()
+ .mockReturnValueOnce('ISSUER_URL')
+ .mockReturnValueOnce('TEST_REGION'),
+ } as unknown as Config,
+ };
+
+ expect(awsAlbAuthenticator.initialize(config)).toEqual({
+ issuer: 'ISSUER_URL',
+ getKey: expect.any(Function),
+ });
+ });
+ });
+});
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts b/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts
new file mode 100644
index 0000000000..1da92e43e4
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { AuthenticationError } from '@backstage/errors';
+import { AwsAlbClaims, AwsAlbResult, PassportProfile } from './types';
+import { jwtVerify } from 'jose';
+import { createProxyAuthenticator } from '@backstage/plugin-auth-node';
+import NodeCache from 'node-cache';
+import { makeProfileInfo, provisionKeyCache } from './helpers';
+
+export const ALB_JWT_HEADER = 'x-amzn-oidc-data';
+export const ALB_ACCESS_TOKEN_HEADER = 'x-amzn-oidc-accesstoken';
+
+/** @public */
+export const awsAlbAuthenticator = createProxyAuthenticator({
+ defaultProfileTransform: async (result: AwsAlbResult) => {
+ return {
+ profile: makeProfileInfo(result.fullProfile, result.accessToken),
+ };
+ },
+ initialize({ config }) {
+ const issuer = config.getString('issuer');
+ const region = config.getString('region');
+ const keyCache = new NodeCache({ stdTTL: 3600 });
+ const getKey = provisionKeyCache(region, keyCache);
+ return { issuer, getKey };
+ },
+ async authenticate({ req }, { issuer, getKey }) {
+ const jwt = req.header(ALB_JWT_HEADER);
+ const accessToken = req.header(ALB_ACCESS_TOKEN_HEADER);
+
+ if (jwt === undefined) {
+ throw new AuthenticationError(
+ `Missing ALB OIDC header: ${ALB_JWT_HEADER}`,
+ );
+ }
+
+ if (accessToken === undefined) {
+ throw new AuthenticationError(
+ `Missing ALB OIDC header: ${ALB_ACCESS_TOKEN_HEADER}`,
+ );
+ }
+
+ try {
+ const verifyResult = await jwtVerify(jwt, getKey);
+ const claims = verifyResult.payload as AwsAlbClaims;
+
+ if (issuer && claims?.iss !== issuer) {
+ throw new AuthenticationError('Issuer mismatch on JWT token');
+ }
+
+ const fullProfile: PassportProfile = {
+ provider: 'unknown',
+ id: claims.sub,
+ displayName: claims.name,
+ username: claims.email.split('@')[0].toLowerCase(),
+ name: {
+ familyName: claims.family_name,
+ givenName: claims.given_name,
+ },
+ emails: [{ value: claims.email.toLowerCase() }],
+ photos: [{ value: claims.picture }],
+ };
+
+ return {
+ result: {
+ fullProfile,
+ expiresInSeconds: claims.exp,
+ accessToken,
+ },
+ };
+ } catch (e) {
+ throw new Error(`Exception occurred during JWT processing: ${e}`);
+ }
+ },
+});
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/helpers.test.ts b/plugins/auth-backend-module-aws-alb-provider/src/helpers.test.ts
new file mode 100644
index 0000000000..07ad118cea
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/helpers.test.ts
@@ -0,0 +1,142 @@
+import NodeCache from 'node-cache';
+import { makeProfileInfo, provisionKeyCache } from './helpers';
+import * as crypto from 'crypto';
+import { JWTHeaderParameters } from 'jose';
+import { PassportProfile } from '@backstage/plugin-auth-node';
+import jwtDecoder from 'jwt-decode';
+
+/*
+ * Copyright 2020 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const mockKey = async () => {
+ return `-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnuN4LlaJhaUpx+qZFTzYCrSBLk0I
+yOlxJ2VW88mLAQGJ7HPAvOdylxZsItMnzCuqNzZvie8m/NJsOjhDncVkrw==
+-----END PUBLIC KEY-----
+`;
+};
+jest.mock('crypto');
+const cryptoMock = crypto as jest.Mocked;
+jest.mock('node-fetch', () => ({
+ __esModule: true,
+ default: async () => {
+ return {
+ text: async () => {
+ return mockKey();
+ },
+ };
+ },
+}));
+
+const jwtMock = jwtDecoder as jest.Mocked;
+jest.mock('jwt-decode');
+
+describe('helpers', () => {
+ const nodeCache = jest.fn() as unknown as NodeCache;
+ nodeCache.set = jest.fn();
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+ it('should create a key', () => {
+ const getKey = provisionKeyCache('eu-west-1', nodeCache);
+ expect(getKey).toBeDefined();
+ });
+ it('should return a key from cache', async () => {
+ const getKey = provisionKeyCache('eu-west-1', nodeCache);
+
+ cryptoMock.createPublicKey.mockReturnValueOnce('key');
+ nodeCache.get = jest.fn().mockReturnValue('key');
+
+ const key = await getKey({ kid: 'kid' } as unknown as JWTHeaderParameters);
+
+ expect(key).toBe('key');
+ });
+ it('should update cache if key is not found', async () => {
+ const getKey = provisionKeyCache('eu-west-1', nodeCache);
+
+ nodeCache.get = jest.fn().mockReturnValue(undefined);
+ jest.spyOn(nodeCache, 'set');
+ cryptoMock.createPublicKey.mockReturnValue({
+ export: jest.fn().mockReturnValue('key'),
+ });
+
+ await getKey({ kid: 'kid' } as unknown as JWTHeaderParameters);
+ expect(nodeCache.set).toHaveBeenCalledWith('kid', 'key');
+ });
+ it('should throw error if key is not found', async () => {
+ const getKey = provisionKeyCache('eu-west-1', nodeCache);
+
+ nodeCache.get = jest.fn().mockReturnValue(undefined);
+ cryptoMock.createPublicKey.mockReturnValue(undefined);
+
+ await expect(
+ getKey({ kid: 'kid' } as unknown as JWTHeaderParameters),
+ ).rejects.toThrow();
+ });
+ it('should throw if key is not present in request header', async () => {
+ const getKey = provisionKeyCache('eu-west-1', nodeCache);
+
+ nodeCache.get = jest.fn().mockReturnValue(undefined);
+
+ await expect(getKey({} as unknown as JWTHeaderParameters)).rejects.toThrow(
+ 'No key id was specified in header',
+ );
+ });
+});
+
+describe('makeProfileInfo', () => {
+ it('should return profile info', () => {
+ const profile = {
+ id: 'id',
+ displayName: 'displayName',
+ username: 'username',
+ name: {
+ familyName: 'familyName',
+ givenName: 'givenName',
+ },
+ emails: [{ value: 'email' }],
+ photos: [{ value: 'picture' }],
+ } as PassportProfile;
+ const accessToken = 'accessToken';
+ const result = {
+ email: 'email',
+ picture: 'picture',
+ displayName: 'displayName',
+ };
+ expect(makeProfileInfo(profile, accessToken)).toEqual(result);
+ });
+ it('should return profile info from id token', () => {
+ jwtMock.mockReturnValueOnce({
+ email: 'email',
+ picture: 'picture',
+ name: 'displayName',
+ });
+ const profile = {
+ name: {
+ familyName: 'familyName',
+ givenName: 'givenName',
+ },
+ } as PassportProfile;
+ const idToken = 'idToken';
+ const result = {
+ email: 'email',
+ picture: 'picture',
+ displayName: 'displayName',
+ };
+ expect(makeProfileInfo(profile, idToken)).toEqual(result);
+ });
+});
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/helpers.ts b/plugins/auth-backend-module-aws-alb-provider/src/helpers.ts
new file mode 100644
index 0000000000..cdc19174ea
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/helpers.ts
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { PassportProfile } from './types';
+import { ProfileInfo } from '@backstage/plugin-auth-node';
+import { KeyObject } from 'crypto';
+import jwtDecoder from 'jwt-decode';
+import NodeCache from 'node-cache';
+import * as crypto from 'crypto';
+import { JWTHeaderParameters } from 'jose';
+import { AuthenticationError } from '@backstage/errors';
+
+export const makeProfileInfo = (
+ profile: PassportProfile,
+ idToken?: string,
+): ProfileInfo => {
+ let email: string | undefined = undefined;
+ if (profile.emails && profile.emails.length > 0) {
+ const [firstEmail] = profile.emails;
+ email = firstEmail.value;
+ }
+
+ let picture: string | undefined = undefined;
+ if (profile.avatarUrl) {
+ picture = profile.avatarUrl;
+ } else if (profile.photos && profile.photos.length > 0) {
+ const [firstPhoto] = profile.photos;
+ picture = firstPhoto.value;
+ }
+
+ let displayName: string | undefined =
+ profile.displayName ?? profile.username ?? profile.id;
+
+ if ((!email || !picture || !displayName) && idToken) {
+ try {
+ const decoded: Record = jwtDecoder(idToken);
+ if (!email && decoded.email) {
+ email = decoded.email;
+ }
+ if (!picture && decoded.picture) {
+ picture = decoded.picture;
+ }
+ if (!displayName && decoded.name) {
+ displayName = decoded.name;
+ }
+ } catch (e) {
+ throw new Error(`Failed to parse id token and get profile info, ${e}`);
+ }
+ }
+
+ return {
+ email,
+ picture,
+ displayName,
+ };
+};
+
+export const provisionKeyCache = (region: string, keyCache: NodeCache) => {
+ return async (header: JWTHeaderParameters): Promise => {
+ if (!header.kid) {
+ throw new AuthenticationError('No key id was specified in header');
+ }
+ const optionalCacheKey = keyCache.get(header.kid);
+ if (optionalCacheKey) {
+ return crypto.createPublicKey(optionalCacheKey);
+ }
+ const keyText: string = await fetch(
+ `https://public-keys.auth.elb.${encodeURIComponent(
+ region,
+ )}.amazonaws.com/${encodeURIComponent(header.kid)}`,
+ ).then(response => response.text());
+ const keyValue = crypto.createPublicKey(keyText);
+ keyCache.set(header.kid, keyValue.export());
+ return keyValue;
+ };
+};
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/index.d.ts b/plugins/auth-backend-module-aws-alb-provider/src/index.d.ts
new file mode 100644
index 0000000000..e000bc66e7
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/index.d.ts
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export { type PassportProfile } from './types';
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/index.ts b/plugins/auth-backend-module-aws-alb-provider/src/index.ts
new file mode 100644
index 0000000000..f84a1bc842
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/index.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * The auth-backend-module-aws-alb-provider backend module for the auth-backend plugin.
+ *
+ * @packageDocumentation
+ */
+
+export { awsAlbAuthenticator } from './authenticator';
+export { authModuleAwsAlbProvider } from './module';
+export { awsAlbSignInResolvers } from './resolvers';
+export { type AwsAlbResult } from './types';
+export { type PassportProfile } from './types';
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/module.ts b/plugins/auth-backend-module-aws-alb-provider/src/module.ts
new file mode 100644
index 0000000000..14e35252af
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/module.ts
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { createBackendModule } from '@backstage/backend-plugin-api';
+import {
+ authProvidersExtensionPoint,
+ commonSignInResolvers,
+ createProxyAuthProviderFactory,
+} from '@backstage/plugin-auth-node';
+import { awsAlbAuthenticator } from './authenticator';
+import { awsAlbSignInResolvers } from './resolvers';
+
+/** @public */
+export const authModuleAwsAlbProvider = createBackendModule({
+ pluginId: 'auth',
+ moduleId: 'awsAlbProvider',
+ register(reg) {
+ reg.registerInit({
+ deps: {
+ providers: authProvidersExtensionPoint,
+ },
+ async init({ providers }) {
+ providers.registerProvider({
+ providerId: 'awsAlb',
+ factory: createProxyAuthProviderFactory({
+ authenticator: awsAlbAuthenticator,
+ signInResolverFactories: {
+ ...commonSignInResolvers,
+ ...awsAlbSignInResolvers,
+ },
+ }),
+ });
+ },
+ });
+ },
+});
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/resolvers.ts b/plugins/auth-backend-module-aws-alb-provider/src/resolvers.ts
new file mode 100644
index 0000000000..602498ed57
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/resolvers.ts
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ createSignInResolverFactory,
+ SignInInfo,
+} from '@backstage/plugin-auth-node';
+import { AwsAlbResult } from './types';
+/**
+ * Available sign-in resolvers for the Google auth provider.
+ *
+ * @public
+ */
+export namespace awsAlbSignInResolvers {
+ export const emailMatchingUserEntityProfileEmail =
+ createSignInResolverFactory({
+ create() {
+ return async (info: SignInInfo, ctx) => {
+ if (!info.result.fullProfile.emails) {
+ throw new Error(
+ 'Login failed, user profile does not contain an email',
+ );
+ }
+ return ctx.signInWithCatalogUser({
+ filter: {
+ kind: ['User'],
+ 'spec.profile.email': info.result.fullProfile.emails[0].value,
+ },
+ });
+ };
+ },
+ });
+}
diff --git a/plugins/auth-backend-module-aws-alb-provider/src/types.ts b/plugins/auth-backend-module-aws-alb-provider/src/types.ts
new file mode 100644
index 0000000000..0bd3f9e74f
--- /dev/null
+++ b/plugins/auth-backend-module-aws-alb-provider/src/types.ts
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import passport from 'passport';
+
+/**
+ * JWT header extraction result, containing the raw value and the parsed JWT
+ * payload.
+ *
+ * @public
+ */
+export type AwsAlbResult = {
+ fullProfile: PassportProfile;
+ expiresInSeconds?: number;
+ accessToken: string;
+};
+/**
+ * @public
+ */
+export type PassportProfile = passport.Profile & {
+ avatarUrl?: string;
+};
+
+export type AwsAlbClaims = {
+ sub: string;
+ name: string;
+ family_name: string;
+ given_name: string;
+ picture: string;
+ email: string;
+ exp: number;
+ iss: string;
+};
diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md
index c269a09d2c..72dfac3186 100644
--- a/plugins/auth-backend/api-report.md
+++ b/plugins/auth-backend/api-report.md
@@ -8,6 +8,7 @@ import { AuthProviderFactory as AuthProviderFactory_2 } from '@backstage/plugin-
import { AuthProviderRouteHandlers as AuthProviderRouteHandlers_2 } from '@backstage/plugin-auth-node';
import { AuthResolverCatalogUserQuery as AuthResolverCatalogUserQuery_2 } from '@backstage/plugin-auth-node';
import { AuthResolverContext as AuthResolverContext_2 } from '@backstage/plugin-auth-node';
+import { AwsAlbResult as AwsAlbResult_2 } from '@backstage/plugin-auth-backend-module-aws-alb-provider';
import { BackendFeature } from '@backstage/backend-plugin-api';
import { BackstageSignInResult } from '@backstage/plugin-auth-node';
import { CacheService } from '@backstage/backend-plugin-api';
@@ -72,12 +73,8 @@ export type AuthResolverContext = AuthResolverContext_2;
// @public @deprecated (undocumented)
export type AuthResponse = ClientAuthResponse;
-// @public (undocumented)
-export type AwsAlbResult = {
- fullProfile: Profile;
- expiresInSeconds?: number;
- accessToken: string;
-};
+// @public @deprecated
+export type AwsAlbResult = AwsAlbResult_2;
// @public (undocumented)
export type BitbucketOAuthResult = {
@@ -400,9 +397,9 @@ export const providers: Readonly<{
create: (
options?:
| {
- authHandler?: AuthHandler | undefined;
+ authHandler?: AuthHandler | undefined;
signIn: {
- resolver: SignInResolver;
+ resolver: SignInResolver;
};
}
| undefined,
diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json
index af5bd43f44..1ffa65c055 100644
--- a/plugins/auth-backend/package.json
+++ b/plugins/auth-backend/package.json
@@ -39,6 +39,7 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/plugin-auth-backend-module-atlassian-provider": "workspace:^",
+ "@backstage/plugin-auth-backend-module-aws-alb-provider": "workspace:^",
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "workspace:^",
"@backstage/plugin-auth-backend-module-github-provider": "workspace:^",
"@backstage/plugin-auth-backend-module-gitlab-provider": "workspace:^",
diff --git a/plugins/auth-backend/src/providers/aws-alb/index.ts b/plugins/auth-backend/src/providers/aws-alb/index.ts
index 9b3e8920ac..6784888b1f 100644
--- a/plugins/auth-backend/src/providers/aws-alb/index.ts
+++ b/plugins/auth-backend/src/providers/aws-alb/index.ts
@@ -15,4 +15,4 @@
*/
export { awsAlb } from './provider';
-export type { AwsAlbResult } from './provider';
+export type { AwsAlbResult } from './types';
diff --git a/plugins/auth-backend/src/providers/aws-alb/provider.test.ts b/plugins/auth-backend/src/providers/aws-alb/provider.test.ts
deleted file mode 100644
index 6ba545191b..0000000000
--- a/plugins/auth-backend/src/providers/aws-alb/provider.test.ts
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Copyright 2020 The Backstage Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import express from 'express';
-import { jwtVerify } from 'jose';
-import {
- ALB_ACCESS_TOKEN_HEADER,
- ALB_JWT_HEADER,
- AwsAlbAuthProvider,
-} from './provider';
-import { makeProfileInfo } from '../../lib/passport';
-import { AuthResolverContext } from '../types';
-import { AuthenticationError } from '@backstage/errors';
-
-const jwtMock = jwtVerify as jest.Mocked;
-
-const mockKey = async () => {
- return `-----BEGIN PUBLIC KEY-----
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnuN4LlaJhaUpx+qZFTzYCrSBLk0I
-yOlxJ2VW88mLAQGJ7HPAvOdylxZsItMnzCuqNzZvie8m/NJsOjhDncVkrw==
------END PUBLIC KEY-----
-`;
-};
-const mockJwt =
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IktFWV9JRCIsImlzcyI6IklTU1VFUl9VUkwifQ.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IlVzZXIgTmFtZSIsImlhdCI6MTUxNjIzOTAyMn0.uMCSBGhij1xn5pnot8XgD-huQuTIBOFGs6kkW_p_X94';
-const mockAccessToken = 'ACCESS_TOKEN';
-const mockClaims = {
- sub: '1234567890',
- name: 'User Name',
- family_name: 'Name',
- given_name: 'User',
- picture: 'PICTURE_URL',
- email: 'user.name@email.test',
- exp: 1632833763,
- iss: 'ISSUER_URL',
-};
-
-jest.mock('jose');
-jest.mock('node-fetch', () => ({
- __esModule: true,
- default: async () => {
- return {
- text: async () => {
- return mockKey();
- },
- };
- },
-}));
-
-beforeEach(() => {
- jest.clearAllMocks();
-});
-
-describe('AwsAlbAuthProvider', () => {
- const mockRequest = {
- header: jest.fn(name => {
- if (name === ALB_JWT_HEADER) {
- return mockJwt;
- } else if (name === ALB_ACCESS_TOKEN_HEADER) {
- return mockAccessToken;
- }
- return undefined;
- }),
- } as unknown as express.Request;
- const mockRequestWithoutJwt = {
- header: jest.fn(name => {
- if (name === ALB_ACCESS_TOKEN_HEADER) {
- return mockAccessToken;
- }
- return undefined;
- }),
- } as unknown as express.Request;
- const mockRequestWithoutAccessToken = {
- header: jest.fn(name => {
- if (name === ALB_JWT_HEADER) {
- return mockJwt;
- }
- return undefined;
- }),
- } as unknown as express.Request;
-
- const mockResponse = {
- end: jest.fn(),
- header: () => jest.fn(),
- json: jest.fn().mockReturnThis(),
- status: jest.fn(),
- } as unknown as express.Response;
-
- describe('should transform to type AwsAlbResponse', () => {
- it('when JWT is valid and identity is resolved successfully', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- return {
- token:
- 'eyblob.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvamltbXltYXJrdW0iLCJlbnQiOlsidXNlcjpkZWZhdWx0L2ppbW15bWFya3VtIl19.eyblob',
- };
- },
- });
-
- jwtMock.mockReturnValueOnce(Promise.resolve({ payload: mockClaims }));
-
- await provider.refresh(mockRequest, mockResponse);
-
- expect(mockResponse.json).toHaveBeenCalledWith({
- backstageIdentity: {
- token:
- 'eyblob.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvamltbXltYXJrdW0iLCJlbnQiOlsidXNlcjpkZWZhdWx0L2ppbW15bWFya3VtIl19.eyblob',
- identity: {
- ownershipEntityRefs: ['user:default/jimmymarkum'],
- type: 'user',
- userEntityRef: 'user:default/jimmymarkum',
- },
- },
- profile: {
- displayName: 'User Name',
- email: 'user.name@email.test',
- picture: 'PICTURE_URL',
- },
- providerInfo: {
- accessToken: mockAccessToken,
- expiresInSeconds: mockClaims.exp,
- },
- });
- });
- });
-
- describe('should fail when', () => {
- it('Access token is missing', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- return { id: 'user.name', token: 'TOKEN' };
- },
- });
-
- await expect(
- provider.refresh(mockRequestWithoutAccessToken, mockResponse),
- ).rejects.toThrow(AuthenticationError);
- });
-
- it('JWT is missing', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- return { id: 'user.name', token: 'TOKEN' };
- },
- });
-
- await expect(
- provider.refresh(mockRequestWithoutJwt, mockResponse),
- ).rejects.toThrow(AuthenticationError);
- });
-
- it('JWT is invalid', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- return { id: 'user.name', token: 'TOKEN' };
- },
- });
-
- jwtMock.mockImplementationOnce(() => {
- throw new Error('bad JWT');
- });
-
- await expect(provider.refresh(mockRequest, mockResponse)).rejects.toThrow(
- AuthenticationError,
- );
- });
-
- it('issuer is missing', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- return { id: 'user.name', token: 'TOKEN' };
- },
- });
-
- jwtMock.mockReturnValueOnce({});
-
- await expect(provider.refresh(mockRequest, mockResponse)).rejects.toThrow(
- AuthenticationError,
- );
- });
-
- it('issuer is invalid', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- return { id: 'user.name', token: 'TOKEN' };
- },
- });
-
- jwtMock.mockReturnValueOnce({
- iss: 'INVALID_ISSUE_URL',
- });
-
- await expect(provider.refresh(mockRequest, mockResponse)).rejects.toThrow(
- AuthenticationError,
- );
- });
-
- it('SignInResolver rejects', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- }),
- signInResolver: async () => {
- throw new Error();
- },
- });
-
- jwtMock.mockReturnValueOnce(mockClaims);
-
- await expect(provider.refresh(mockRequest, mockResponse)).rejects.toThrow(
- AuthenticationError,
- );
- });
-
- it('AuthHandler rejects', async () => {
- const provider = new AwsAlbAuthProvider({
- region: 'eu-west-1',
- issuer: 'ISSUER_URL',
- resolverContext: {} as AuthResolverContext,
- authHandler: async () => {
- throw new Error();
- },
- signInResolver: async () => {
- return { id: 'user.name', token: 'TOKEN' };
- },
- });
-
- jwtMock.mockReturnValueOnce(mockClaims);
-
- await expect(provider.refresh(mockRequest, mockResponse)).rejects.toThrow(
- AuthenticationError,
- );
- });
- });
-});
diff --git a/plugins/auth-backend/src/providers/aws-alb/provider.ts b/plugins/auth-backend/src/providers/aws-alb/provider.ts
index 5af606539e..3883bbc88c 100644
--- a/plugins/auth-backend/src/providers/aws-alb/provider.ts
+++ b/plugins/auth-backend/src/providers/aws-alb/provider.ts
@@ -15,202 +15,13 @@
*/
import {
- AuthHandler,
- AuthProviderRouteHandlers,
- AuthResolverContext,
- AuthResponse,
- SignInResolver,
-} from '../types';
-import express from 'express';
-import fetch from 'node-fetch';
-import * as crypto from 'crypto';
-import { KeyObject } from 'crypto';
-import NodeCache from 'node-cache';
-import { JWTHeaderParameters, jwtVerify } from 'jose';
-import { Profile as PassportProfile } from 'passport';
-import { makeProfileInfo } from '../../lib/passport';
-import { AuthenticationError } from '@backstage/errors';
-import { prepareBackstageIdentityResponse } from '../prepareBackstageIdentityResponse';
+ AwsAlbResult,
+ awsAlbAuthenticator,
+} from '@backstage/plugin-auth-backend-module-aws-alb-provider';
+import { createProxyAuthProviderFactory } from '@backstage/plugin-auth-node';
+import { AuthHandler, SignInResolver } from '../types';
import { createAuthProviderIntegration } from '../createAuthProviderIntegration';
-export const ALB_JWT_HEADER = 'x-amzn-oidc-data';
-export const ALB_ACCESS_TOKEN_HEADER = 'x-amzn-oidc-accesstoken';
-
-type Options = {
- region: string;
- issuer?: string;
- authHandler: AuthHandler;
- signInResolver: SignInResolver;
- resolverContext: AuthResolverContext;
-};
-
-export type AwsAlbHeaders = {
- alg: string;
- kid: string;
- signer: string;
- iss: string;
- client: string;
- exp: number;
-};
-
-export type AwsAlbClaims = {
- sub: string;
- name: string;
- family_name: string;
- given_name: string;
- picture: string;
- email: string;
- exp: number;
- iss: string;
-};
-
-/** @public */
-export type AwsAlbResult = {
- fullProfile: PassportProfile;
- expiresInSeconds?: number;
- accessToken: string;
-};
-
-export type AwsAlbProviderInfo = {
- /**
- * An access token issued for the signed in user.
- */
- accessToken: string;
- /**
- * Expiry of the access token in seconds.
- */
- expiresInSeconds?: number;
-};
-
-export type AwsAlbResponse = AuthResponse;
-
-export class AwsAlbAuthProvider implements AuthProviderRouteHandlers {
- private readonly region: string;
- private readonly issuer?: string;
- private readonly resolverContext: AuthResolverContext;
- private readonly keyCache: NodeCache;
- private readonly authHandler: AuthHandler;
- private readonly signInResolver: SignInResolver;
-
- constructor(options: Options) {
- this.region = options.region;
- this.issuer = options.issuer;
- this.authHandler = options.authHandler;
- this.signInResolver = options.signInResolver;
- this.resolverContext = options.resolverContext;
- this.keyCache = new NodeCache({ stdTTL: 3600 });
- }
-
- frameHandler(): Promise {
- return Promise.resolve(undefined);
- }
-
- async refresh(req: express.Request, res: express.Response): Promise {
- try {
- const result = await this.getResult(req);
- const response = await this.handleResult(result);
- res.json(response);
- } catch (e) {
- throw new AuthenticationError(
- 'Exception occurred during AWS ALB token refresh',
- e,
- );
- }
- }
-
- start(): Promise {
- return Promise.resolve(undefined);
- }
-
- private async getResult(req: express.Request): Promise {
- const jwt = req.header(ALB_JWT_HEADER);
- const accessToken = req.header(ALB_ACCESS_TOKEN_HEADER);
-
- if (jwt === undefined) {
- throw new AuthenticationError(
- `Missing ALB OIDC header: ${ALB_JWT_HEADER}`,
- );
- }
-
- if (accessToken === undefined) {
- throw new AuthenticationError(
- `Missing ALB OIDC header: ${ALB_ACCESS_TOKEN_HEADER}`,
- );
- }
-
- try {
- const verifyResult = await jwtVerify(jwt, this.getKey);
- const claims = verifyResult.payload as AwsAlbClaims;
-
- if (this.issuer && claims.iss !== this.issuer) {
- throw new AuthenticationError('Issuer mismatch on JWT token');
- }
-
- const fullProfile: PassportProfile = {
- provider: 'unknown',
- id: claims.sub,
- displayName: claims.name,
- username: claims.email.split('@')[0].toLowerCase(),
- name: {
- familyName: claims.family_name,
- givenName: claims.given_name,
- },
- emails: [{ value: claims.email.toLowerCase() }],
- photos: [{ value: claims.picture }],
- };
-
- return {
- fullProfile,
- expiresInSeconds: claims.exp,
- accessToken,
- };
- } catch (e) {
- throw new Error(`Exception occurred during JWT processing: ${e}`);
- }
- }
-
- private async handleResult(result: AwsAlbResult): Promise {
- const { profile } = await this.authHandler(result, this.resolverContext);
- const backstageIdentity = await this.signInResolver(
- {
- result,
- profile,
- },
- this.resolverContext,
- );
-
- return {
- providerInfo: {
- accessToken: result.accessToken,
- expiresInSeconds: result.expiresInSeconds,
- },
- backstageIdentity: prepareBackstageIdentityResponse(backstageIdentity),
- profile,
- };
- }
-
- getKey = async (header: JWTHeaderParameters): Promise => {
- if (!header.kid) {
- throw new AuthenticationError('No key id was specified in header');
- }
- const optionalCacheKey = this.keyCache.get(header.kid);
- if (optionalCacheKey) {
- return crypto.createPublicKey(optionalCacheKey);
- }
- const keyText: string = await fetch(
- `https://public-keys.auth.elb.${encodeURIComponent(
- this.region,
- )}.amazonaws.com/${encodeURIComponent(header.kid)}`,
- ).then(response => response.text());
- const keyValue = crypto.createPublicKey(keyText);
- this.keyCache.set(
- header.kid,
- keyValue.export({ format: 'pem', type: 'spki' }),
- );
- return keyValue;
- };
-}
-
/**
* Auth provider integration for AWS ALB auth
*
@@ -219,13 +30,14 @@ export class AwsAlbAuthProvider implements AuthProviderRouteHandlers {
export const awsAlb = createAuthProviderIntegration({
create(options?: {
/**
- * The profile transformation function used to verify and convert the auth response
- * into the profile that will be presented to the user.
+ * The profile transformation function used to verify and convert the auth
+ * response into the profile that will be presented to the user. The default
+ * implementation just provides the authenticated email that the IAP
+ * presented.
*/
authHandler?: AuthHandler;
-
/**
- * Configure sign-in for this provider, without it the provider can not be used to sign users in.
+ * Configures sign-in for this provider.
*/
signIn: {
/**
@@ -234,29 +46,10 @@ export const awsAlb = createAuthProviderIntegration({
resolver: SignInResolver;
};
}) {
- return ({ config, resolverContext }) => {
- const region = config.getString('region');
- const issuer = config.getOptionalString('iss');
-
- if (options?.signIn.resolver === undefined) {
- throw new Error(
- 'SignInResolver is required to use this authentication provider',
- );
- }
-
- const authHandler: AuthHandler = options?.authHandler
- ? options.authHandler
- : async ({ fullProfile }) => ({
- profile: makeProfileInfo(fullProfile),
- });
-
- return new AwsAlbAuthProvider({
- region,
- issuer,
- signInResolver: options?.signIn.resolver,
- authHandler,
- resolverContext,
- });
- };
+ return createProxyAuthProviderFactory({
+ authenticator: awsAlbAuthenticator,
+ profileTransform: options?.authHandler,
+ signInResolver: options?.signIn?.resolver,
+ });
},
});
diff --git a/plugins/auth-backend/src/providers/aws-alb/types.ts b/plugins/auth-backend/src/providers/aws-alb/types.ts
new file mode 100644
index 0000000000..2640a4a7be
--- /dev/null
+++ b/plugins/auth-backend/src/providers/aws-alb/types.ts
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2021 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { AwsAlbResult as _AwsAlbResult } from '@backstage/plugin-auth-backend-module-aws-alb-provider';
+
+/**
+ * The result of the initial auth challenge. This is the input to the auth
+ * callbacks.
+ *
+ * @public
+ * @deprecated import from `@backstage/plugin-auth-backend-module-aws-alb-provider` instead
+ */
+export type AwsAlbResult = _AwsAlbResult;
diff --git a/yarn.lock b/yarn.lock
index fd0650d51c..ef06cce840 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,7 +12,7 @@ __metadata:
languageName: node
linkType: hard
-"@adobe/css-tools@npm:^4.3.1":
+"@adobe/css-tools@npm:^4.3.2":
version: 4.3.2
resolution: "@adobe/css-tools@npm:4.3.2"
checksum: 9667d61d55dc3b0a315c530ae84e016ce5267c4dd8ac00abb40108dc98e07b98e3090ce8b87acd51a41a68d9e84dcccb08cdf21c902572a9cf9dcaf830da4ae3
@@ -1535,7 +1535,7 @@ __metadata:
languageName: node
linkType: hard
-"@azure/core-util@npm:^1.0.0, @azure/core-util@npm:^1.1.0, @azure/core-util@npm:^1.1.1, @azure/core-util@npm:^1.2.0, @azure/core-util@npm:^1.3.0, @azure/core-util@npm:^1.6.1":
+"@azure/core-util@npm:^1.0.0, @azure/core-util@npm:^1.1.0, @azure/core-util@npm:^1.1.1, @azure/core-util@npm:^1.2.0, @azure/core-util@npm:^1.3.0":
version: 1.6.1
resolution: "@azure/core-util@npm:1.6.1"
dependencies:
@@ -1545,28 +1545,6 @@ __metadata:
languageName: node
linkType: hard
-"@azure/identity@npm:^3.2.1":
- version: 3.4.1
- resolution: "@azure/identity@npm:3.4.1"
- dependencies:
- "@azure/abort-controller": ^1.0.0
- "@azure/core-auth": ^1.5.0
- "@azure/core-client": ^1.4.0
- "@azure/core-rest-pipeline": ^1.1.0
- "@azure/core-tracing": ^1.0.0
- "@azure/core-util": ^1.6.1
- "@azure/logger": ^1.0.0
- "@azure/msal-browser": ^3.5.0
- "@azure/msal-node": ^2.5.1
- events: ^3.0.0
- jws: ^4.0.0
- open: ^8.0.0
- stoppable: ^1.1.0
- tslib: ^2.2.0
- checksum: dedb09a5073503fda3e5bf23a76e4839627ee6724967e2a26fd536322c3907e19ff04bf9c3ad2716a4eecc2f602e03be3be1230271a572fc3f44879c737014c4
- languageName: node
- linkType: hard
-
"@azure/identity@npm:^4.0.0":
version: 4.0.0
resolution: "@azure/identity@npm:4.0.0"
@@ -1677,13 +1655,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.8.3":
- version: 7.22.13
- resolution: "@babel/code-frame@npm:7.22.13"
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.8.3":
+ version: 7.23.5
+ resolution: "@babel/code-frame@npm:7.23.5"
dependencies:
- "@babel/highlight": ^7.22.13
+ "@babel/highlight": ^7.23.4
chalk: ^2.4.2
- checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058
+ checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a
languageName: node
linkType: hard
@@ -1694,38 +1672,38 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.3":
- version: 7.23.3
- resolution: "@babel/core@npm:7.23.3"
+"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.5":
+ version: 7.23.5
+ resolution: "@babel/core@npm:7.23.5"
dependencies:
"@ampproject/remapping": ^2.2.0
- "@babel/code-frame": ^7.22.13
- "@babel/generator": ^7.23.3
+ "@babel/code-frame": ^7.23.5
+ "@babel/generator": ^7.23.5
"@babel/helper-compilation-targets": ^7.22.15
"@babel/helper-module-transforms": ^7.23.3
- "@babel/helpers": ^7.23.2
- "@babel/parser": ^7.23.3
+ "@babel/helpers": ^7.23.5
+ "@babel/parser": ^7.23.5
"@babel/template": ^7.22.15
- "@babel/traverse": ^7.23.3
- "@babel/types": ^7.23.3
+ "@babel/traverse": ^7.23.5
+ "@babel/types": ^7.23.5
convert-source-map: ^2.0.0
debug: ^4.1.0
gensync: ^1.0.0-beta.2
json5: ^2.2.3
semver: ^6.3.1
- checksum: d306c1fa68972f4e085e9e7ad165aee80eb801ef331f6f07808c86309f03534d638b82ad00a3bc08f4d3de4860ccd38512b2790a39e6acc2caf9ea21e526afe7
+ checksum: 5e5dfb1e61f298676f1fca18c646dbf6fb164ca1056b0169b8d42b7f5c35e026d81823582ccb2358e93a61b035e22b3ad37e2abaae4bf43f1ffb93b6ce19466e
languageName: node
linkType: hard
-"@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.7.2":
- version: 7.23.3
- resolution: "@babel/generator@npm:7.23.3"
+"@babel/generator@npm:^7.23.5, @babel/generator@npm:^7.7.2":
+ version: 7.23.5
+ resolution: "@babel/generator@npm:7.23.5"
dependencies:
- "@babel/types": ^7.23.3
+ "@babel/types": ^7.23.5
"@jridgewell/gen-mapping": ^0.3.2
"@jridgewell/trace-mapping": ^0.3.17
jsesc: ^2.5.1
- checksum: b6e71cca852d4e1aa01a28a30b8c74ffc3b8d56ccb7ae3ee783028ee015f63ad861a2e386c3eb490a9a8634db485a503a33521680f4af510151e90346c46da17
+ checksum: 845ddda7cf38a3edf4be221cc8a439dee9ea6031355146a1a74047aa8007bc030305b27d8c68ec9e311722c910610bde38c0e13a9ce55225251e7cb7e7f3edc8
languageName: node
linkType: hard
@@ -1935,10 +1913,10 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-string-parser@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-string-parser@npm:7.22.5"
- checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467
+"@babel/helper-string-parser@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/helper-string-parser@npm:7.23.4"
+ checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90
languageName: node
linkType: hard
@@ -1967,34 +1945,34 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.23.2":
- version: 7.23.2
- resolution: "@babel/helpers@npm:7.23.2"
+"@babel/helpers@npm:^7.23.5":
+ version: 7.23.5
+ resolution: "@babel/helpers@npm:7.23.5"
dependencies:
"@babel/template": ^7.22.15
- "@babel/traverse": ^7.23.2
- "@babel/types": ^7.23.0
- checksum: aaf4828df75ec460eaa70e5c9f66e6dadc28dae3728ddb7f6c13187dbf38030e142194b83d81aa8a31bbc35a5529a5d7d3f3cf59d5d0b595f5dd7f9d8f1ced8e
+ "@babel/traverse": ^7.23.5
+ "@babel/types": ^7.23.5
+ checksum: c16dc8a3bb3d0e02c7ee1222d9d0865ed4b92de44fb8db43ff5afd37a0fc9ea5e2906efa31542c95b30c1a3a9540d66314663c9a23b5bb9b5ec76e8ebc896064
languageName: node
linkType: hard
-"@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.22.13":
- version: 7.22.20
- resolution: "@babel/highlight@npm:7.22.20"
+"@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/highlight@npm:7.23.4"
dependencies:
"@babel/helper-validator-identifier": ^7.22.20
chalk: ^2.4.2
js-tokens: ^4.0.0
- checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134
+ checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89
languageName: node
linkType: hard
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.3":
- version: 7.23.3
- resolution: "@babel/parser@npm:7.23.3"
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5":
+ version: 7.23.5
+ resolution: "@babel/parser@npm:7.23.5"
bin:
parser: ./bin/babel-parser.js
- checksum: 4aa7366e401b5467192c1dbf2bef99ac0958c45ef69ed6704abbae68f98fab6409a527b417d1528fddc49d7664450670528adc7f45abb04db5fafca7ed766d57
+ checksum: ea763629310f71580c4a3ea9d3705195b7ba994ada2cc98f9a584ebfdacf54e92b2735d351672824c2c2b03c7f19206899f4d95650d85ce514a822b19a8734c7
languageName: node
linkType: hard
@@ -3131,22 +3109,22 @@ __metadata:
languageName: node
linkType: hard
-"@babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.15, @babel/runtime-corejs3@npm:^7.23.2":
- version: 7.23.2
- resolution: "@babel/runtime-corejs3@npm:7.23.2"
+"@babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.15, @babel/runtime-corejs3@npm:^7.23.5":
+ version: 7.23.6
+ resolution: "@babel/runtime-corejs3@npm:7.23.6"
dependencies:
core-js-pure: ^3.30.2
regenerator-runtime: ^0.14.0
- checksum: 922f25c47996a8af604cea82441e41be8b11910e96c662511e54120078f4c64258c045a28a311467a8f14a0c17f46a1f057f7c0501e567869a4343a6ce017962
+ checksum: 92576ea17ff674025aa3cd208bfb8301e4bde432cfa404b56f94242948cbd40125c1a4c9c54a99134e08ded8bcde305633a22b1f4c676687c3b868557d23b762
languageName: node
linkType: hard
-"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.4, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
- version: 7.23.5
- resolution: "@babel/runtime@npm:7.23.5"
+"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
+ version: 7.23.6
+ resolution: "@babel/runtime@npm:7.23.6"
dependencies:
regenerator-runtime: ^0.14.0
- checksum: 164d9802424f06908e62d29b8fd3a87db55accf82f46f964ac481dcead11ff7df8391e3696e5fa91a8ca10ea8845bf650acd730fa88cf13f8026cd8d5eec6936
+ checksum: 1a8eaf3d3a103ef5227b60ca7ab5c589118c36ca65ef2d64e65380b32a98a3f3b5b3ef96660fa0471b079a18b619a8317f3e7f03ab2b930c45282a8b69ed9a16
languageName: node
linkType: hard
@@ -3161,32 +3139,32 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3, @babel/traverse@npm:^7.4.5":
- version: 7.23.3
- resolution: "@babel/traverse@npm:7.23.3"
+"@babel/traverse@npm:^7.23.5, @babel/traverse@npm:^7.4.5":
+ version: 7.23.5
+ resolution: "@babel/traverse@npm:7.23.5"
dependencies:
- "@babel/code-frame": ^7.22.13
- "@babel/generator": ^7.23.3
+ "@babel/code-frame": ^7.23.5
+ "@babel/generator": ^7.23.5
"@babel/helper-environment-visitor": ^7.22.20
"@babel/helper-function-name": ^7.23.0
"@babel/helper-hoist-variables": ^7.22.5
"@babel/helper-split-export-declaration": ^7.22.6
- "@babel/parser": ^7.23.3
- "@babel/types": ^7.23.3
+ "@babel/parser": ^7.23.5
+ "@babel/types": ^7.23.5
debug: ^4.1.0
globals: ^11.1.0
- checksum: f4e0c05f2f82368b9be7e1fed38cfcc2e1074967a8b76ac837b89661adbd391e99d0b1fd8c31215ffc3a04d2d5d7ee5e627914a09082db84ec5606769409fe2b
+ checksum: 0558b05360850c3ad6384e85bd55092126a8d5f93e29a8e227dd58fa1f9e1a4c25fd337c07c7ae509f0983e7a2b1e761ffdcfaa77a1e1bedbc867058e1de5a7d
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
- version: 7.23.3
- resolution: "@babel/types@npm:7.23.3"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.5, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
+ version: 7.23.5
+ resolution: "@babel/types@npm:7.23.5"
dependencies:
- "@babel/helper-string-parser": ^7.22.5
+ "@babel/helper-string-parser": ^7.23.4
"@babel/helper-validator-identifier": ^7.22.20
to-fast-properties: ^2.0.0
- checksum: b96f1ec495351aeb2a5f98dd494aafa17df02a351548ae96999460f35c933261c839002a34c1e83552ff0d9f5e94d0b5b8e105d38131c7c9b0f5a6588676f35d
+ checksum: 3d21774480a459ef13b41c2e32700d927af649e04b70c5d164814d8e04ab584af66a93330602c2925e1a6925c2b829cc153418a613a4e7d79d011be1f29ad4b2
languageName: node
linkType: hard
@@ -3490,14 +3468,15 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/catalog-client@npm:^1.4.6":
- version: 1.4.6
- resolution: "@backstage/catalog-client@npm:1.4.6"
+"@backstage/catalog-client@npm:^1.5.0":
+ version: 1.5.1
+ resolution: "@backstage/catalog-client@npm:1.5.1"
dependencies:
"@backstage/catalog-model": ^1.4.3
"@backstage/errors": ^1.2.3
cross-fetch: ^4.0.0
- checksum: c62b479ea8865c23046f742d75db5fb36827627e78cfdff64e713eb72abd11fef071b8150c07e695e5e6d879d257a8a9dc85ec132b7c64229c6a0bd2ef821200
+ uri-template: ^2.0.0
+ checksum: 786fa1bafba3d44d88855d8479879577e33816f1f9d2e110b275fc22ca4348f8dce0ebe789d580786a38e9986989c98172f7a07c1e2145b8da689608a2aa4ec2
languageName: node
linkType: hard
@@ -3886,21 +3865,21 @@ __metadata:
languageName: node
linkType: hard
-"@backstage/core-components@npm:^0.13.8":
- version: 0.13.8
- resolution: "@backstage/core-components@npm:0.13.8"
+"@backstage/core-components@npm:^0.13.8, @backstage/core-components@npm:^0.13.9":
+ version: 0.13.9
+ resolution: "@backstage/core-components@npm:0.13.9"
dependencies:
"@backstage/config": ^1.1.1
- "@backstage/core-plugin-api": ^1.8.0
+ "@backstage/core-plugin-api": ^1.8.1
"@backstage/errors": ^1.2.3
- "@backstage/theme": ^0.4.4
+ "@backstage/theme": ^0.5.0
"@backstage/version-bridge": ^1.0.7
"@date-io/core": ^1.3.13
"@material-table/core": ^3.1.0
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
"@material-ui/lab": 4.0.0-alpha.61
- "@react-hookz/web": ^20.0.0
+ "@react-hookz/web": ^23.0.0
"@types/react": ^16.13.1 || ^17.0.0
"@types/react-sparklines": ^1.7.0
"@types/react-text-truncate": ^0.14.0
@@ -3912,8 +3891,8 @@ __metadata:
dagre: ^0.8.5
history: ^5.0.0
immer: ^9.0.1
- linkify-react: 4.1.2
- linkifyjs: 4.1.2
+ linkify-react: 4.1.3
+ linkifyjs: 4.1.3
lodash: ^4.17.21
pluralize: ^8.0.0
qs: ^6.9.4
@@ -3930,12 +3909,12 @@ __metadata:
react-window: ^1.8.6
remark-gfm: ^3.0.1
zen-observable: ^0.10.0
- zod: ^3.21.4
+ zod: ^3.22.4
peerDependencies:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 45bbf5af46837611c8c7fecde2afba49b2f958f9a8f047fe956b382a9a420a7e80c29f56ac2a5ecc8aa43e87c3b7a8446256d42aa642171f3439b5dd2a84bb0b
+ checksum: 6674d70f5043cf2a6bca0097ce5fa2d1cb6594a4870c3c64e357ac9cc54b85e33502e9257918c9eebb3e87249d798ee9e223eacc5b02014b4196bd0f9804c2ac
languageName: node
linkType: hard
@@ -4012,9 +3991,9 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/core-plugin-api@npm:^1.3.0, @backstage/core-plugin-api@npm:^1.5.0, @backstage/core-plugin-api@npm:^1.8.0":
- version: 1.8.0
- resolution: "@backstage/core-plugin-api@npm:1.8.0"
+"@backstage/core-plugin-api@npm:^1.3.0, @backstage/core-plugin-api@npm:^1.5.0, @backstage/core-plugin-api@npm:^1.8.0, @backstage/core-plugin-api@npm:^1.8.1":
+ version: 1.8.1
+ resolution: "@backstage/core-plugin-api@npm:1.8.1"
dependencies:
"@backstage/config": ^1.1.1
"@backstage/types": ^1.1.1
@@ -4026,7 +4005,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 1f78c4737c0e30682a3169d967943698cb95b3dccea1e60bd72e82dd14847192f5180db658b8d0b6811d6fb13830085ca3ecc6ea0be58771d0b517f877c97bbb
+ checksum: 8fa85beb719f65b2dc2ab69df7e7354d280ce63ca163ce820dec43ac7ffe95ce1c3ae1175774f034ea3787cb997e0bc630f42b644b166b7f9929f6166e7c2607
languageName: node
linkType: hard
@@ -4175,23 +4154,24 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/frontend-plugin-api@npm:^0.3.0":
- version: 0.3.0
- resolution: "@backstage/frontend-plugin-api@npm:0.3.0"
+"@backstage/frontend-plugin-api@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "@backstage/frontend-plugin-api@npm:0.4.0"
dependencies:
- "@backstage/core-components": ^0.13.8
- "@backstage/core-plugin-api": ^1.8.0
+ "@backstage/config": ^1.1.1
+ "@backstage/core-components": ^0.13.9
+ "@backstage/core-plugin-api": ^1.8.1
"@backstage/types": ^1.1.1
"@backstage/version-bridge": ^1.0.7
"@material-ui/core": ^4.12.4
"@types/react": ^16.13.1 || ^17.0.0
lodash: ^4.17.21
- zod: ^3.21.4
+ zod: ^3.22.4
zod-to-json-schema: ^3.21.4
peerDependencies:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 195b0cd480839ff54a07aa37eb3bc644c321ecd6bce258159ba457f63dc79486b59c73180aaf6f7e824d0dbf8dfd9cb96fe8d5843d5e64467e44551f78419dc2
+ checksum: 6b19944a070b8e0c0d9a33c39d50f0bf1a3dfb5884833bd96286508573528a4b254660f0044eeeeecf4f7d392b71a95e3b9665903d83cb27aa04625155284b2b
languageName: node
linkType: hard
@@ -4257,13 +4237,13 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/integration-react@npm:^1.1.21":
- version: 1.1.21
- resolution: "@backstage/integration-react@npm:1.1.21"
+"@backstage/integration-react@npm:^1.1.21, @backstage/integration-react@npm:^1.1.22":
+ version: 1.1.22
+ resolution: "@backstage/integration-react@npm:1.1.22"
dependencies:
"@backstage/config": ^1.1.1
- "@backstage/core-plugin-api": ^1.8.0
- "@backstage/integration": ^1.7.2
+ "@backstage/core-plugin-api": ^1.8.1
+ "@backstage/integration": ^1.8.0
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
"@types/react": ^16.13.1 || ^17.0.0
@@ -4271,7 +4251,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 5acbd36910954fd640eb586281436a579c08a5de8f1b226c86aab5028dcb3746190e740f5631d647e717f2c8aacde4a3efcd54fced7a75a8dcf5827c15213ab7
+ checksum: 76fb82f1f947574259d393406bdc30919636e451dbbab357b640f70b2b8b869564fad10da74088f12b497996b84b8e3f55ddea355a9ee61c27f549a2805773a5
languageName: node
linkType: hard
@@ -4299,11 +4279,11 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/integration@npm:^1.7.2":
- version: 1.7.2
- resolution: "@backstage/integration@npm:1.7.2"
+"@backstage/integration@npm:^1.8.0":
+ version: 1.8.0
+ resolution: "@backstage/integration@npm:1.8.0"
dependencies:
- "@azure/identity": ^3.2.1
+ "@azure/identity": ^4.0.0
"@backstage/config": ^1.1.1
"@octokit/auth-app": ^4.0.0
"@octokit/rest": ^19.0.3
@@ -4311,7 +4291,7 @@ __metadata:
git-url-parse: ^13.0.0
lodash: ^4.17.21
luxon: ^3.0.0
- checksum: 6e9c63ea9da6d8769eb8cd05db01f91be70dc13d86a09c7be9835b1f57dac4fb64a3089be3b84b5329b9bacc887cda1dec3860bb04c9f58f78c458f96c942384
+ checksum: 2cf2956cf2d37e7e0a1c21e60e5bb2e435c4d1a70f63fe915932ee618f3b673c3907e0dc5832a8221a1592e3c8338f333768a9f9693b7ed3bd8e7af1d7ebb2cb
languageName: node
linkType: hard
@@ -4751,6 +4731,27 @@ __metadata:
languageName: unknown
linkType: soft
+"@backstage/plugin-auth-backend-module-aws-alb-provider@workspace:^, @backstage/plugin-auth-backend-module-aws-alb-provider@workspace:plugins/auth-backend-module-aws-alb-provider":
+ version: 0.0.0-use.local
+ resolution: "@backstage/plugin-auth-backend-module-aws-alb-provider@workspace:plugins/auth-backend-module-aws-alb-provider"
+ dependencies:
+ "@backstage/backend-common": "workspace:^"
+ "@backstage/backend-plugin-api": "workspace:^"
+ "@backstage/backend-test-utils": "workspace:^"
+ "@backstage/cli": "workspace:^"
+ "@backstage/config": "workspace:^"
+ "@backstage/errors": "workspace:^"
+ "@backstage/plugin-auth-backend": "workspace:^"
+ "@backstage/plugin-auth-node": "workspace:^"
+ "@types/passport": ^1.0.3
+ express: ^4.18.2
+ jose: ^4.6.0
+ jwt-decode: ^3.1.0
+ node-cache: ^5.1.2
+ passport: ^0.7.0
+ languageName: unknown
+ linkType: soft
+
"@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:^, @backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider":
version: 0.0.0-use.local
resolution: "@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider"
@@ -4953,6 +4954,7 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/plugin-auth-backend-module-atlassian-provider": "workspace:^"
+ "@backstage/plugin-auth-backend-module-aws-alb-provider": "workspace:^"
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "workspace:^"
"@backstage/plugin-auth-backend-module-github-provider": "workspace:^"
"@backstage/plugin-auth-backend-module-gitlab-provider": "workspace:^"
@@ -5812,7 +5814,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-catalog-common@^1.0.10, @backstage/plugin-catalog-common@^1.0.18, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common":
+"@backstage/plugin-catalog-common@^1.0.10, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common":
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-common@workspace:plugins/catalog-common"
dependencies:
@@ -5823,6 +5825,17 @@ __metadata:
languageName: unknown
linkType: soft
+"@backstage/plugin-catalog-common@npm:^1.0.19":
+ version: 1.0.19
+ resolution: "@backstage/plugin-catalog-common@npm:1.0.19"
+ dependencies:
+ "@backstage/catalog-model": ^1.4.3
+ "@backstage/plugin-permission-common": ^0.7.11
+ "@backstage/plugin-search-common": ^1.2.9
+ checksum: 692085592f9e4635069bad43deb4ade0ee707c4c1997966c8c90d5a282fc578ecd8674c5d0ee21d8e27ef9595f8019827e9ccab756f62a293c7855fc9a15abee
+ languageName: node
+ linkType: hard
+
"@backstage/plugin-catalog-graph@workspace:^, @backstage/plugin-catalog-graph@workspace:plugins/catalog-graph":
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-graph@workspace:plugins/catalog-graph"
@@ -5921,20 +5934,20 @@ __metadata:
linkType: soft
"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.9.1":
- version: 1.9.1
- resolution: "@backstage/plugin-catalog-react@npm:1.9.1"
+ version: 1.9.2
+ resolution: "@backstage/plugin-catalog-react@npm:1.9.2"
dependencies:
- "@backstage/catalog-client": ^1.4.6
+ "@backstage/catalog-client": ^1.5.0
"@backstage/catalog-model": ^1.4.3
- "@backstage/core-components": ^0.13.8
- "@backstage/core-plugin-api": ^1.8.0
+ "@backstage/core-components": ^0.13.9
+ "@backstage/core-plugin-api": ^1.8.1
"@backstage/errors": ^1.2.3
- "@backstage/frontend-plugin-api": ^0.3.0
- "@backstage/integration-react": ^1.1.21
- "@backstage/plugin-catalog-common": ^1.0.18
- "@backstage/plugin-permission-common": ^0.7.10
- "@backstage/plugin-permission-react": ^0.4.17
- "@backstage/theme": ^0.4.4
+ "@backstage/frontend-plugin-api": ^0.4.0
+ "@backstage/integration-react": ^1.1.22
+ "@backstage/plugin-catalog-common": ^1.0.19
+ "@backstage/plugin-permission-common": ^0.7.11
+ "@backstage/plugin-permission-react": ^0.4.18
+ "@backstage/theme": ^0.5.0
"@backstage/types": ^1.1.1
"@backstage/version-bridge": ^1.0.7
"@material-ui/core": ^4.12.2
@@ -5953,7 +5966,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: aa57e828a161db545353d06460ec62f13fa6ca9e44d378e903a8ce9bbbc24fb22dfe9ab264f4e8150ef7543afe26ee887afe7a305670b79e0818b9d8d098550e
+ checksum: e363db83bb85a6dac23616104aa52b019c4f32341fb757c40cf0321ad12427ffcad647b54b38d2d47a7299571e95c2cd226e01c6f9dde585d5377a4dc95a1df6
languageName: node
linkType: hard
@@ -7296,20 +7309,20 @@ __metadata:
linkType: soft
"@backstage/plugin-home-react@npm:^0.1.5":
- version: 0.1.5
- resolution: "@backstage/plugin-home-react@npm:0.1.5"
+ version: 0.1.6
+ resolution: "@backstage/plugin-home-react@npm:0.1.6"
dependencies:
- "@backstage/core-components": ^0.13.8
- "@backstage/core-plugin-api": ^1.8.0
+ "@backstage/core-components": ^0.13.9
+ "@backstage/core-plugin-api": ^1.8.1
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
- "@rjsf/utils": 5.13.6
+ "@rjsf/utils": 5.15.0
"@types/react": ^16.13.1 || ^17.0.0
peerDependencies:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 9ea922ec0ade7f12721552266a5e0513778a42594039a05819ca6ab7c253b84bd281c302c0a56e5c49f895dbba8ac404ab8521b8493b5908fe8af01cbbda31d6
+ checksum: ecd2d6d6b2f0793bb0180b07ec7559230361eb3174d7a962bc08fabc2c29bf21f9705ae5b9a6977005ecac4009dc5806b0d8ecac67eecb6507141764a96d1def
languageName: node
linkType: hard
@@ -8304,7 +8317,21 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-permission-common@^0.7.10, @backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common":
+"@backstage/plugin-permission-common@npm:^0.7.11":
+ version: 0.7.11
+ resolution: "@backstage/plugin-permission-common@npm:0.7.11"
+ dependencies:
+ "@backstage/config": ^1.1.1
+ "@backstage/errors": ^1.2.3
+ "@backstage/types": ^1.1.1
+ cross-fetch: ^4.0.0
+ uuid: ^8.0.0
+ zod: ^3.22.4
+ checksum: 79bb7d3d6ceba80701331d4d0cca32640183dc8466e82c04bd5307048a19c1fb044917b1e6047ff171f377b34c2d34662db65591a24ab468bdc19065f13942ce
+ languageName: node
+ linkType: hard
+
+"@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common":
version: 0.0.0-use.local
resolution: "@backstage/plugin-permission-common@workspace:plugins/permission-common"
dependencies:
@@ -8342,13 +8369,13 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-permission-react@npm:^0.4.17":
- version: 0.4.17
- resolution: "@backstage/plugin-permission-react@npm:0.4.17"
+"@backstage/plugin-permission-react@npm:^0.4.18":
+ version: 0.4.18
+ resolution: "@backstage/plugin-permission-react@npm:0.4.18"
dependencies:
"@backstage/config": ^1.1.1
- "@backstage/core-plugin-api": ^1.8.0
- "@backstage/plugin-permission-common": ^0.7.10
+ "@backstage/core-plugin-api": ^1.8.1
+ "@backstage/plugin-permission-common": ^0.7.11
"@types/react": ^16.13.1 || ^17.0.0
cross-fetch: ^4.0.0
react-use: ^17.2.4
@@ -8357,7 +8384,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 6baa30e83b68d27fc06411453100cc5fe98895021fe5a3db88c677e68430a8561744bc4581205e20f8326394e749b5e2ff19bb8037ecc86af6cae75124498111
+ checksum: da1386b814fcb0b7350cebc1975d88cdf4c97a474f292a56d4e15ce63bb25a54d34d17067865363fa051983d9fa5170afce6a38299bc7c3ab82f1e44c708b13b
languageName: node
linkType: hard
@@ -9102,6 +9129,16 @@ __metadata:
languageName: unknown
linkType: soft
+"@backstage/plugin-search-common@npm:^1.2.9":
+ version: 1.2.9
+ resolution: "@backstage/plugin-search-common@npm:1.2.9"
+ dependencies:
+ "@backstage/plugin-permission-common": ^0.7.11
+ "@backstage/types": ^1.1.1
+ checksum: 5dc4db9870ae0ba816526b5c2531a52af2e2bc5c94adf0636948ed20a9f913937283db6e59a9bdbfa9e62a6da77db9013dcc8ddcfb66132321ad86d3cdf70446
+ languageName: node
+ linkType: hard
+
"@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common":
version: 0.0.0-use.local
resolution: "@backstage/plugin-search-common@workspace:plugins/search-common"
@@ -10161,6 +10198,22 @@ __metadata:
languageName: node
linkType: hard
+"@backstage/theme@npm:^0.5.0":
+ version: 0.5.0
+ resolution: "@backstage/theme@npm:0.5.0"
+ dependencies:
+ "@emotion/react": ^11.10.5
+ "@emotion/styled": ^11.10.5
+ "@mui/material": ^5.12.2
+ peerDependencies:
+ "@material-ui/core": ^4.12.2
+ "@types/react": ^16.13.1 || ^17.0.0
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ checksum: b3f7ebb3d37daa72ea41ff2cd2bc01df2fcdacf411576e28c8a8b8c9c656c3c2f7e1ce6e82d00add10aecbcaf58f6024cc87a47986618d61eb8b95ec85464d37
+ languageName: node
+ linkType: hard
+
"@backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme":
version: 0.0.0-use.local
resolution: "@backstage/theme@workspace:packages/theme"
@@ -10546,16 +10599,16 @@ __metadata:
linkType: hard
"@codemirror/language@npm:^6.0.0":
- version: 6.9.3
- resolution: "@codemirror/language@npm:6.9.3"
+ version: 6.10.0
+ resolution: "@codemirror/language@npm:6.10.0"
dependencies:
"@codemirror/state": ^6.0.0
- "@codemirror/view": ^6.0.0
+ "@codemirror/view": ^6.23.0
"@lezer/common": ^1.1.0
"@lezer/highlight": ^1.0.0
"@lezer/lr": ^1.0.0
style-mod: ^4.0.0
- checksum: 774a40bc91c748d418a9a774161a5b083061124e4439bb753072bc657ec4c4784f595161c10c7c3935154b22291bf6dc74c9abe827033db32e217ac3963478f3
+ checksum: 3bfd9968f5a34ce22434489a5b226db5f3bc454a1ae7c4381587ff4270ac6af61b10f93df560cb73e9a77cc13d4843722a7a7b94dbed02a3ab1971dd329b9e81
languageName: node
linkType: hard
@@ -10590,10 +10643,10 @@ __metadata:
languageName: node
linkType: hard
-"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.1.4":
- version: 6.1.4
- resolution: "@codemirror/state@npm:6.1.4"
- checksum: ef6bc495d3b89d2f0202b6b1c0fc3e3610f8d815f4ca91f86153d6093c9b93ddbe2cfb787802d07514a7114f0b200cf2eeb54c1cd34d7e00eff774ecea97d845
+"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.4.0":
+ version: 6.4.0
+ resolution: "@codemirror/state@npm:6.4.0"
+ checksum: c5236fe5786f1b85d17273a5c17fa8aeb063658c1404ab18caeb6e7591663ec96b65d453ab8162f75839c3801b04cd55ba4bc48f44cb61ebfeeee383f89553c7
languageName: node
linkType: hard
@@ -10609,14 +10662,14 @@ __metadata:
languageName: node
linkType: hard
-"@codemirror/view@npm:^6.0.0":
- version: 6.22.1
- resolution: "@codemirror/view@npm:6.22.1"
+"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.23.0":
+ version: 6.23.0
+ resolution: "@codemirror/view@npm:6.23.0"
dependencies:
- "@codemirror/state": ^6.1.4
+ "@codemirror/state": ^6.4.0
style-mod: ^4.1.0
w3c-keyname: ^2.2.4
- checksum: 8643d86cf8c34433a410b28b1339c9a333c519e815890bf6494ca35a47d6ed38b51a13480cf4f6bea319ab2a17991e1ba47cd1b4a2c5a99fb76bad014682925a
+ checksum: 6e5f2314a3da2c724dc6a525654d949d3f2fcf7009f4d85f980d52ddc885c8969717e903ca1d9132afbe7c524af5d19bff8285fd394106282a965ae83aa47db4
languageName: node
linkType: hard
@@ -10797,13 +10850,13 @@ __metadata:
linkType: hard
"@emotion/react@npm:^11.10.5":
- version: 11.11.1
- resolution: "@emotion/react@npm:11.11.1"
+ version: 11.11.3
+ resolution: "@emotion/react@npm:11.11.3"
dependencies:
"@babel/runtime": ^7.18.3
"@emotion/babel-plugin": ^11.11.0
"@emotion/cache": ^11.11.0
- "@emotion/serialize": ^1.1.2
+ "@emotion/serialize": ^1.1.3
"@emotion/use-insertion-effect-with-fallbacks": ^1.0.1
"@emotion/utils": ^1.2.1
"@emotion/weak-memoize": ^0.3.1
@@ -10813,20 +10866,20 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: aec3c36650f5f0d3d4445ff44d73dd88712b1609645b6af3e6d08049cfbc51f1785fe13dea1a1d4ab1b0800d68f2339ab11e459687180362b1ef98863155aae5
+ checksum: 2e4b223591569f0a41686d5bd72dc8778629b7be33267e4a09582979e6faee4d7218de84e76294ed827058d4384d75557b5d71724756539c1f235e9a69e62b2e
languageName: node
linkType: hard
-"@emotion/serialize@npm:^1.1.2":
- version: 1.1.2
- resolution: "@emotion/serialize@npm:1.1.2"
+"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "@emotion/serialize@npm:1.1.3"
dependencies:
"@emotion/hash": ^0.9.1
"@emotion/memoize": ^0.8.1
"@emotion/unitless": ^0.8.1
"@emotion/utils": ^1.2.1
csstype: ^3.0.2
- checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986
+ checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063
languageName: node
linkType: hard
@@ -10901,6 +10954,13 @@ __metadata:
languageName: node
linkType: hard
+"@esbuild/aix-ppc64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/aix-ppc64@npm:0.19.10"
+ conditions: os=aix & cpu=ppc64
+ languageName: node
+ linkType: hard
+
"@esbuild/android-arm64@npm:0.16.17":
version: 0.16.17
resolution: "@esbuild/android-arm64@npm:0.16.17"
@@ -10915,9 +10975,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/android-arm64@npm:0.19.8"
+"@esbuild/android-arm64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/android-arm64@npm:0.19.10"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
@@ -10936,9 +10996,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/android-arm@npm:0.19.8"
+"@esbuild/android-arm@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/android-arm@npm:0.19.10"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
@@ -10957,9 +11017,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/android-x64@npm:0.19.8"
+"@esbuild/android-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/android-x64@npm:0.19.10"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
@@ -10978,9 +11038,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-arm64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/darwin-arm64@npm:0.19.8"
+"@esbuild/darwin-arm64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/darwin-arm64@npm:0.19.10"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -10999,9 +11059,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/darwin-x64@npm:0.19.8"
+"@esbuild/darwin-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/darwin-x64@npm:0.19.10"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -11020,9 +11080,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-arm64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/freebsd-arm64@npm:0.19.8"
+"@esbuild/freebsd-arm64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/freebsd-arm64@npm:0.19.10"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
@@ -11041,9 +11101,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/freebsd-x64@npm:0.19.8"
+"@esbuild/freebsd-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/freebsd-x64@npm:0.19.10"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
@@ -11062,9 +11122,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-arm64@npm:0.19.8"
+"@esbuild/linux-arm64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-arm64@npm:0.19.10"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
@@ -11083,9 +11143,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-arm@npm:0.19.8"
+"@esbuild/linux-arm@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-arm@npm:0.19.10"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
@@ -11104,9 +11164,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ia32@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-ia32@npm:0.19.8"
+"@esbuild/linux-ia32@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-ia32@npm:0.19.10"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
@@ -11125,9 +11185,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-loong64@npm:0.19.8"
+"@esbuild/linux-loong64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-loong64@npm:0.19.10"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
@@ -11146,9 +11206,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-mips64el@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-mips64el@npm:0.19.8"
+"@esbuild/linux-mips64el@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-mips64el@npm:0.19.10"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
@@ -11167,9 +11227,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ppc64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-ppc64@npm:0.19.8"
+"@esbuild/linux-ppc64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-ppc64@npm:0.19.10"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
@@ -11188,9 +11248,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-riscv64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-riscv64@npm:0.19.8"
+"@esbuild/linux-riscv64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-riscv64@npm:0.19.10"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
@@ -11209,9 +11269,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-s390x@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-s390x@npm:0.19.8"
+"@esbuild/linux-s390x@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-s390x@npm:0.19.10"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
@@ -11230,9 +11290,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/linux-x64@npm:0.19.8"
+"@esbuild/linux-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/linux-x64@npm:0.19.10"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
@@ -11251,9 +11311,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/netbsd-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/netbsd-x64@npm:0.19.8"
+"@esbuild/netbsd-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/netbsd-x64@npm:0.19.10"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
@@ -11272,9 +11332,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openbsd-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/openbsd-x64@npm:0.19.8"
+"@esbuild/openbsd-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/openbsd-x64@npm:0.19.10"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
@@ -11293,9 +11353,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/sunos-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/sunos-x64@npm:0.19.8"
+"@esbuild/sunos-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/sunos-x64@npm:0.19.10"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
@@ -11314,9 +11374,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-arm64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/win32-arm64@npm:0.19.8"
+"@esbuild/win32-arm64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/win32-arm64@npm:0.19.10"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -11335,9 +11395,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-ia32@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/win32-ia32@npm:0.19.8"
+"@esbuild/win32-ia32@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/win32-ia32@npm:0.19.10"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
@@ -11356,9 +11416,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-x64@npm:0.19.8":
- version: 0.19.8
- resolution: "@esbuild/win32-x64@npm:0.19.8"
+"@esbuild/win32-x64@npm:0.19.10":
+ version: 0.19.10
+ resolution: "@esbuild/win32-x64@npm:0.19.10"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -12514,13 +12574,13 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/source-map@npm:^0.3.2":
- version: 0.3.2
- resolution: "@jridgewell/source-map@npm:0.3.2"
+"@jridgewell/source-map@npm:^0.3.3":
+ version: 0.3.5
+ resolution: "@jridgewell/source-map@npm:0.3.5"
dependencies:
"@jridgewell/gen-mapping": ^0.3.0
"@jridgewell/trace-mapping": ^0.3.9
- checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482
+ checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f
languageName: node
linkType: hard
@@ -12541,7 +12601,7 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9":
+"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.20
resolution: "@jridgewell/trace-mapping@npm:0.3.20"
dependencies:
@@ -13269,14 +13329,14 @@ __metadata:
languageName: node
linkType: hard
-"@mui/base@npm:5.0.0-beta.25":
- version: 5.0.0-beta.25
- resolution: "@mui/base@npm:5.0.0-beta.25"
+"@mui/base@npm:5.0.0-beta.29":
+ version: 5.0.0-beta.29
+ resolution: "@mui/base@npm:5.0.0-beta.29"
dependencies:
- "@babel/runtime": ^7.23.4
+ "@babel/runtime": ^7.23.6
"@floating-ui/react-dom": ^2.0.4
- "@mui/types": ^7.2.10
- "@mui/utils": ^5.14.19
+ "@mui/types": ^7.2.11
+ "@mui/utils": ^5.15.2
"@popperjs/core": ^2.11.8
clsx: ^2.0.0
prop-types: ^15.8.1
@@ -13287,28 +13347,28 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: ce22c38593db1bbbb162574bd297bc3f2f5040ed6e304965e17aff55e4d15782e813196bd67c9b82757ee67675ad6d557e22541f84e4d7a4b6f3349dc83741f3
+ checksum: 40481f18d5b4c560e0f9868876727203af76954b5b8b208bfc01da666229f8eef45852b5d87403aa42b4c8515a5b9d2e99d4ae40446289d7456c56310fce72c7
languageName: node
linkType: hard
-"@mui/core-downloads-tracker@npm:^5.14.19":
- version: 5.14.19
- resolution: "@mui/core-downloads-tracker@npm:5.14.19"
- checksum: e71c886f12bbd83791638545017c0b8439c3c6b51125979fea105f938f2f5b109629d4deddd38448c05b8be10b3249334324f1505c1306c52a2b8d315a1005c3
+"@mui/core-downloads-tracker@npm:^5.15.2":
+ version: 5.15.2
+ resolution: "@mui/core-downloads-tracker@npm:5.15.2"
+ checksum: 8c88ac73a1d87c8ce565f6295dcd084c643580848e8f59159402e9db89975263da06305a0e605d3744479e917c2d297319496534bca9df8338e203162f1e7c33
languageName: node
linkType: hard
"@mui/material@npm:^5.12.2":
- version: 5.14.19
- resolution: "@mui/material@npm:5.14.19"
+ version: 5.15.2
+ resolution: "@mui/material@npm:5.15.2"
dependencies:
- "@babel/runtime": ^7.23.4
- "@mui/base": 5.0.0-beta.25
- "@mui/core-downloads-tracker": ^5.14.19
- "@mui/system": ^5.14.19
- "@mui/types": ^7.2.10
- "@mui/utils": ^5.14.19
- "@types/react-transition-group": ^4.4.9
+ "@babel/runtime": ^7.23.6
+ "@mui/base": 5.0.0-beta.29
+ "@mui/core-downloads-tracker": ^5.15.2
+ "@mui/system": ^5.15.2
+ "@mui/types": ^7.2.11
+ "@mui/utils": ^5.15.2
+ "@types/react-transition-group": ^4.4.10
clsx: ^2.0.0
csstype: ^3.1.2
prop-types: ^15.8.1
@@ -13327,16 +13387,16 @@ __metadata:
optional: true
"@types/react":
optional: true
- checksum: 8fc63b7ecb98c5eb8f67190cde096f83100af9271fe2113e1d3edb13a08650f611e7ff186b04c66695958cc88480011ab31dc950cf0fd6e0fbb6c727ec834cbd
+ checksum: 7586b0160c686214c4d3a6f8af76306413bfe13286a4679ca7696b764615f511b5d5b27a8129e15ae81856492317e7f139f4bd075f6b2dfe6e60de46755d7dbc
languageName: node
linkType: hard
-"@mui/private-theming@npm:^5.14.19":
- version: 5.14.19
- resolution: "@mui/private-theming@npm:5.14.19"
+"@mui/private-theming@npm:^5.15.2":
+ version: 5.15.2
+ resolution: "@mui/private-theming@npm:5.15.2"
dependencies:
- "@babel/runtime": ^7.23.4
- "@mui/utils": ^5.14.19
+ "@babel/runtime": ^7.23.6
+ "@mui/utils": ^5.15.2
prop-types: ^15.8.1
peerDependencies:
"@types/react": ^17.0.0 || ^18.0.0
@@ -13344,15 +13404,15 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: ee17fa123ae671fcfb6e59787e9a5b6d650d4a53ea575f5d5519dd187c9b04fbb50f12f2da5a663d3ba3a82d503086faa18bf3b68923237de78f44e401e04935
+ checksum: 63cc69adc3eca03533dd72296aac6449abe133522f6f5c62c8497e57dbd092c131cba3488ee8d97dfb76c31a194df014f4da3b2d30027614e987ed72581a4acf
languageName: node
linkType: hard
-"@mui/styled-engine@npm:^5.14.19":
- version: 5.14.19
- resolution: "@mui/styled-engine@npm:5.14.19"
+"@mui/styled-engine@npm:^5.15.2":
+ version: 5.15.2
+ resolution: "@mui/styled-engine@npm:5.15.2"
dependencies:
- "@babel/runtime": ^7.23.4
+ "@babel/runtime": ^7.23.6
"@emotion/cache": ^11.11.0
csstype: ^3.1.2
prop-types: ^15.8.1
@@ -13365,19 +13425,19 @@ __metadata:
optional: true
"@emotion/styled":
optional: true
- checksum: 2b8dc8e08e47e18ad6345d25539d5978ef153cb23abff3d98c3cf2795f836e446279021392c2071142ffbae17e19906235acfb3e73dc0f14440b138f919a26a4
+ checksum: daa15b61be2e785c9719e091047a5900aa5aa0b6a9dfbc2ea373f6718f6ec3485f44e05596cd9506a90a7c55d8d372233a80cbeca4d81ceb8d5e6a10ce0f8292
languageName: node
linkType: hard
"@mui/styles@npm:^5.14.18":
- version: 5.14.19
- resolution: "@mui/styles@npm:5.14.19"
+ version: 5.15.2
+ resolution: "@mui/styles@npm:5.15.2"
dependencies:
- "@babel/runtime": ^7.23.4
+ "@babel/runtime": ^7.23.6
"@emotion/hash": ^0.9.1
- "@mui/private-theming": ^5.14.19
- "@mui/types": ^7.2.10
- "@mui/utils": ^5.14.19
+ "@mui/private-theming": ^5.15.2
+ "@mui/types": ^7.2.11
+ "@mui/utils": ^5.15.2
clsx: ^2.0.0
csstype: ^3.1.2
hoist-non-react-statics: ^3.3.2
@@ -13396,19 +13456,19 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: 03780cba63ee5dca4bd3f81aa8634039e6a18291eb2f89cdcee236669e4b05a2593a3e5e74c21378950cc34a790163d2d3b80d2b649fd368a5b09439f198489e
+ checksum: 53ee6fb6c1114469dfeacbf5d26fc6ef7bc897428258301515012fcea95f5abcc73d5b70d1ea1da9382f7742aa7da7a9749a7594331e78f85b6b4cd8f8216d11
languageName: node
linkType: hard
-"@mui/system@npm:^5.14.19":
- version: 5.14.19
- resolution: "@mui/system@npm:5.14.19"
+"@mui/system@npm:^5.15.2":
+ version: 5.15.2
+ resolution: "@mui/system@npm:5.15.2"
dependencies:
- "@babel/runtime": ^7.23.4
- "@mui/private-theming": ^5.14.19
- "@mui/styled-engine": ^5.14.19
- "@mui/types": ^7.2.10
- "@mui/utils": ^5.14.19
+ "@babel/runtime": ^7.23.6
+ "@mui/private-theming": ^5.15.2
+ "@mui/styled-engine": ^5.15.2
+ "@mui/types": ^7.2.11
+ "@mui/utils": ^5.15.2
clsx: ^2.0.0
csstype: ^3.1.2
prop-types: ^15.8.1
@@ -13424,27 +13484,27 @@ __metadata:
optional: true
"@types/react":
optional: true
- checksum: aea4935cf72a7c4fe3d03eb040491204b0c20fbae19fc73173ec925c9025375601f6b7007e53b5ab6ea44a4dd74b94e9acc9ada85461db1deae9062f8506a99a
+ checksum: ce6297a4cfa6f91891fa84679e05e40e12c4a27fe4fb34d78cbcbae172da293c05fa6f07c24fec66c864eac64179aeec1f7a70358e376b8c16ffc8e91f93a904
languageName: node
linkType: hard
-"@mui/types@npm:^7.2.10":
- version: 7.2.10
- resolution: "@mui/types@npm:7.2.10"
+"@mui/types@npm:^7.2.11":
+ version: 7.2.11
+ resolution: "@mui/types@npm:7.2.11"
peerDependencies:
"@types/react": ^17.0.0 || ^18.0.0
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: b9c4629929450e243015d79cf6b102824336db07b852e55f114aca85dbad0b39f831e9c65ad94b028a65c08d33be9f7de1afb530a4e6a80be5702b396ccb90b1
+ checksum: ce6bbe8ba963af218bf86797f4c8adbf0f294047adeaf6596d3bb4a96f1b01701f1b1ae7dcfe2f7972f6e23c85eee4187e496fb481541713ed8bf12e96f3c34f
languageName: node
linkType: hard
-"@mui/utils@npm:^5.14.15, @mui/utils@npm:^5.14.19":
- version: 5.14.19
- resolution: "@mui/utils@npm:5.14.19"
+"@mui/utils@npm:^5.14.15, @mui/utils@npm:^5.15.2":
+ version: 5.15.2
+ resolution: "@mui/utils@npm:5.15.2"
dependencies:
- "@babel/runtime": ^7.23.4
+ "@babel/runtime": ^7.23.6
"@types/prop-types": ^15.7.11
prop-types: ^15.8.1
react-is: ^18.2.0
@@ -13454,7 +13514,7 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: f53f746eb33bc5d700b9f2b454e211ca17f5aa320cd30f54a82a347e4da0c61b872f323f01ff4b5247d3f992ac4f72a69ac79974300a6dedf01ff6b8f6d75b49
+ checksum: c78ad9fb1a5fa1dc5955cada77227c605f1e5bf45503bf2bb0080bc92cf28bdcf1cbb83322d19162c5424ec245a66cef849603c7681fa1ec89093e0b1922dc58
languageName: node
linkType: hard
@@ -13783,8 +13843,8 @@ __metadata:
linkType: hard
"@octokit/app@npm:^13.1.5":
- version: 13.1.5
- resolution: "@octokit/app@npm:13.1.5"
+ version: 13.1.8
+ resolution: "@octokit/app@npm:13.1.8"
dependencies:
"@octokit/auth-app": ^4.0.13
"@octokit/auth-unauthenticated": ^3.0.0
@@ -13793,7 +13853,7 @@ __metadata:
"@octokit/plugin-paginate-rest": ^6.0.0
"@octokit/types": ^9.0.0
"@octokit/webhooks": ^10.0.0
- checksum: bc1b348c2b80d701d68672455e6f3d6ae7dbed09e2b5ba323fb941316d7055d101d20d1a803b0b5b98d60a6e7bd9907da4a1cca4445263e2180270aab783c3a4
+ checksum: c51c23dc8f439da09c14c834551891d1e11a137935e036340e81bab428925027cb936737e5d43169149f13ae0a7ccd266edb7a0bc6735e3cd1ff106a690a48de
languageName: node
linkType: hard
@@ -14015,10 +14075,10 @@ __metadata:
languageName: node
linkType: hard
-"@octokit/openapi-types@npm:^17.2.0":
- version: 17.2.0
- resolution: "@octokit/openapi-types@npm:17.2.0"
- checksum: 29995e34f98d9d64ba234d64a7ae9486c66d2bb6ac0d30d9a42decdbb4b03b13e811769b1e1505a1748ff20c22d35724985e6c128cd11a3f14f8322201520093
+"@octokit/openapi-types@npm:^18.0.0":
+ version: 18.1.1
+ resolution: "@octokit/openapi-types@npm:18.1.1"
+ checksum: 94f42977fd2fcb9983c781fd199bc11218885a1226d492680bfb1268524a1b2af48a768eef90c63b80a2874437de641d59b3b7f640a5afa93e7c21fe1a79069a
languageName: node
linkType: hard
@@ -14044,26 +14104,25 @@ __metadata:
linkType: hard
"@octokit/plugin-rest-endpoint-methods@npm:^7.1.1, @octokit/plugin-rest-endpoint-methods@npm:^7.1.2":
- version: 7.1.2
- resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.1.2"
+ version: 7.2.3
+ resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3"
dependencies:
- "@octokit/types": ^9.2.3
- deprecation: ^2.3.1
+ "@octokit/types": ^10.0.0
peerDependencies:
"@octokit/core": ">=3"
- checksum: 159d29bf28d7aecbe39f08c25cf376d39b6c90ce17e50a55eafb44f3e4b9e1053a300c1edd72f308ae386146a17cbad46c410c1cfd000b048adf9c21d6922a1a
+ checksum: 21dfb98514dbe900c29cddb13b335bbce43d613800c6b17eba3c1fd31d17e69c1960f3067f7bf864bb38fdd5043391f4a23edee42729d8c7fbabd00569a80336
languageName: node
linkType: hard
"@octokit/plugin-retry@npm:^4.1.3":
- version: 4.1.3
- resolution: "@octokit/plugin-retry@npm:4.1.3"
+ version: 4.1.6
+ resolution: "@octokit/plugin-retry@npm:4.1.6"
dependencies:
"@octokit/types": ^9.0.0
bottleneck: ^2.15.3
peerDependencies:
"@octokit/core": ">=3"
- checksum: f9ed5869be23dddcf1ee896ce996e46a412a586259b55612ba44c82cdeed91436102e6e3ec57db879bd91a4446dcafbaa94632e4e059c6af56d9cca9b163eacb
+ checksum: 9bebaf7fc9c34683d7e97c0398ab9f5a164ce8770e92e8b8a65ed8e85ee3b0fddc5c72dfb18da112e2f643434d217ec7092f57496808c4ae6c2a824f42ae1ccf
languageName: node
linkType: hard
@@ -14148,6 +14207,15 @@ __metadata:
languageName: node
linkType: hard
+"@octokit/types@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "@octokit/types@npm:10.0.0"
+ dependencies:
+ "@octokit/openapi-types": ^18.0.0
+ checksum: 8aafba2ff0cd2435fb70c291bf75ed071c0fa8a865cf6169648732068a35dec7b85a345851f18920ec5f3e94ee0e954988485caac0da09ec3f6781cc44fe153a
+ languageName: node
+ linkType: hard
+
"@octokit/types@npm:^6.0.3, @octokit/types@npm:^6.10.0, @octokit/types@npm:^6.12.2, @octokit/types@npm:^6.16.1, @octokit/types@npm:^6.8.2":
version: 6.41.0
resolution: "@octokit/types@npm:6.41.0"
@@ -14167,11 +14235,11 @@ __metadata:
linkType: hard
"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.2, @octokit/types@npm:^9.2.3":
- version: 9.2.3
- resolution: "@octokit/types@npm:9.2.3"
+ version: 9.3.2
+ resolution: "@octokit/types@npm:9.3.2"
dependencies:
- "@octokit/openapi-types": ^17.2.0
- checksum: 6806413089f20a8302237ef85aa2e83bace7499e95fdc3db2d304f9e6dc6e87fb6766452f92e08ddf475046b69753e11beabaeff6733c38bdaf3e21dfd7d3341
+ "@octokit/openapi-types": ^18.0.0
+ checksum: f55d096aaed3e04b8308d4422104fb888f355988056ba7b7ef0a4c397b8a3e54290d7827b06774dbe0c9ce55280b00db486286954f9c265aa6b03091026d9da8
languageName: node
linkType: hard
@@ -14344,8 +14412,8 @@ __metadata:
linkType: hard
"@oriflame/backstage-plugin-score-card@npm:^0.7.0":
- version: 0.7.0
- resolution: "@oriflame/backstage-plugin-score-card@npm:0.7.0"
+ version: 0.7.1
+ resolution: "@oriflame/backstage-plugin-score-card@npm:0.7.1"
dependencies:
"@backstage/catalog-model": ^1.1.5
"@backstage/config": ^1.0.6
@@ -14363,7 +14431,7 @@ __metadata:
peerDependencies:
react: ^16.13.1 || ^17.0.0
react-dom: ^16.13.1 || ^17.0.0
- checksum: 72ce56c8df0cc4611a0a66c7d22659f911ac8d265b3b2802cd4c35b7b0415a70d6c448eb681fd77bd4ab9167ffa560e8facc0b06301fc55ac933bdaf0d9e336d
+ checksum: f1526eb239354a070180f6a30b3fc14b4b3835de37e05720bda8e79f169e862730eb124e2a85a8fd38e8310a0b32bd60b4f36344e780169fcfc1d0332621eac8
languageName: node
linkType: hard
@@ -15151,21 +15219,6 @@ __metadata:
languageName: node
linkType: hard
-"@rjsf/utils@npm:5.13.6":
- version: 5.13.6
- resolution: "@rjsf/utils@npm:5.13.6"
- dependencies:
- json-schema-merge-allof: ^0.8.1
- jsonpointer: ^5.0.1
- lodash: ^4.17.21
- lodash-es: ^4.17.21
- react-is: ^18.2.0
- peerDependencies:
- react: ^16.14.0 || >=17
- checksum: 1e6cdca9f547db4b96561752150c0aa4255426fa32ae84ea017b221e5816e7eb9ed985e9dbb73f1d83baaae36f892f1d10e2bf81d8a53f7e42b2bfc7df52d8e4
- languageName: node
- linkType: hard
-
"@rjsf/utils@npm:5.15.0":
version: 5.15.0
resolution: "@rjsf/utils@npm:5.15.0"
@@ -15592,15 +15645,6 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/commons@npm:^1.7.0":
- version: 1.8.3
- resolution: "@sinonjs/commons@npm:1.8.3"
- dependencies:
- type-detect: 4.0.8
- checksum: 6159726db5ce6bf9f2297f8427f7ca5b3dff45b31e5cee23496f1fa6ef0bb4eab878b23fb2c5e6446381f6a66aba4968ef2fc255c1180d753d4b8c271636a2e5
- languageName: node
- linkType: hard
-
"@sinonjs/commons@npm:^2.0.0":
version: 2.0.0
resolution: "@sinonjs/commons@npm:2.0.0"
@@ -15610,41 +15654,32 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/fake-timers@npm:^10.0.2":
- version: 10.0.2
- resolution: "@sinonjs/fake-timers@npm:10.0.2"
+"@sinonjs/commons@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@sinonjs/commons@npm:3.0.0"
dependencies:
- "@sinonjs/commons": ^2.0.0
- checksum: c62aa98e7cefda8dedc101ce227abc888dc46b8ff9706c5f0a8dfd9c3ada97d0a5611384738d9ba0b26b59f99c2ba24efece8e779bb08329e9e87358fa309824
+ type-detect: 4.0.8
+ checksum: b4b5b73d4df4560fb8c0c7b38c7ad4aeabedd362f3373859d804c988c725889cde33550e4bcc7cd316a30f5152a2d1d43db71b6d0c38f5feef71fd8d016763f8
languageName: node
linkType: hard
-"@sinonjs/fake-timers@npm:^7.0.4":
- version: 7.1.2
- resolution: "@sinonjs/fake-timers@npm:7.1.2"
+"@sinonjs/fake-timers@npm:^10.0.2, @sinonjs/fake-timers@npm:^10.3.0":
+ version: 10.3.0
+ resolution: "@sinonjs/fake-timers@npm:10.3.0"
dependencies:
- "@sinonjs/commons": ^1.7.0
- checksum: c84773d7973edad5511a31d2cc75023447b5cf714a84de9bb50eda45dda88a0d3bd2c30bf6e6e936da50a048d5352e2151c694e13e59b97d187ba1f329e9a00c
+ "@sinonjs/commons": ^3.0.0
+ checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148
languageName: node
linkType: hard
-"@sinonjs/fake-timers@npm:^9.1.2":
- version: 9.1.2
- resolution: "@sinonjs/fake-timers@npm:9.1.2"
- dependencies:
- "@sinonjs/commons": ^1.7.0
- checksum: 7d3aef54e17c1073101cb64d953157c19d62a40e261a30923fa1ee337b049c5f29cc47b1f0c477880f42b5659848ba9ab897607ac8ea4acd5c30ddcfac57fca6
- languageName: node
- linkType: hard
-
-"@sinonjs/samsam@npm:^7.0.1":
- version: 7.0.1
- resolution: "@sinonjs/samsam@npm:7.0.1"
+"@sinonjs/samsam@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "@sinonjs/samsam@npm:8.0.0"
dependencies:
"@sinonjs/commons": ^2.0.0
lodash.get: ^4.4.2
type-detect: ^4.0.8
- checksum: 291efb158d54c67dee23ddabcb28873d22063449b692aaa3b2a4f1826d2f79d38695574063c92e9c17573cc805cd6acbf0ab0c66c9f3aed7afd0f12a2b905615
+ checksum: 95e40d0bb9f7288e27c379bee1b03c3dc51e7e78b9d5ea6aef66a690da7e81efc4715145b561b449cefc5361a171791e3ce30fb1a46ab247d4c0766024c60a60
languageName: node
linkType: hard
@@ -16433,8 +16468,8 @@ __metadata:
linkType: hard
"@stoplight/spectral-rulesets@npm:^1.14.1, @stoplight/spectral-rulesets@npm:^1.18.0":
- version: 1.18.0
- resolution: "@stoplight/spectral-rulesets@npm:1.18.0"
+ version: 1.18.1
+ resolution: "@stoplight/spectral-rulesets@npm:1.18.1"
dependencies:
"@asyncapi/specs": ^4.1.0
"@stoplight/better-ajv-errors": 1.0.3
@@ -16450,7 +16485,7 @@ __metadata:
json-schema-traverse: ^1.0.0
lodash: ~4.17.21
tslib: ^2.3.0
- checksum: 7abdc837acf64f1408bd71bf98169af6dad9b9adcdb7758ab705599989bf7f5c3e5739bd409f959f21e2d9e06919c6cbfff2500fd3180f45b2f4e1dbf2c62129
+ checksum: 2eeff0fb3ffb7a2f3fca8c92c4d766925f62fabdc92b1899d3bc620a29e4ff8e68aacc63b8a77ede4030ee9127a12022e94117773ba5fd278acd7ba15c0fe5a0
languageName: node
linkType: hard
@@ -17155,82 +17190,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-darwin-arm64@npm:1.3.100"
+"@swc/core-darwin-arm64@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-darwin-arm64@npm:1.3.102"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-darwin-x64@npm:1.3.100"
+"@swc/core-darwin-x64@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-darwin-x64@npm:1.3.102"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.100"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.102"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@swc/core-linux-arm64-gnu@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.102"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.100"
+"@swc/core-linux-arm64-musl@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.102"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.100"
+"@swc/core-linux-x64-gnu@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.102"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-linux-x64-musl@npm:1.3.100"
+"@swc/core-linux-x64-musl@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.102"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.100"
+"@swc/core-win32-arm64-msvc@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.102"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.100"
+"@swc/core-win32-ia32-msvc@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.102"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.100":
- version: 1.3.100
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.100"
+"@swc/core-win32-x64-msvc@npm:1.3.102":
+ version: 1.3.102
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.102"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.46":
- version: 1.3.100
- resolution: "@swc/core@npm:1.3.100"
+ version: 1.3.102
+ resolution: "@swc/core@npm:1.3.102"
dependencies:
- "@swc/core-darwin-arm64": 1.3.100
- "@swc/core-darwin-x64": 1.3.100
- "@swc/core-linux-arm64-gnu": 1.3.100
- "@swc/core-linux-arm64-musl": 1.3.100
- "@swc/core-linux-x64-gnu": 1.3.100
- "@swc/core-linux-x64-musl": 1.3.100
- "@swc/core-win32-arm64-msvc": 1.3.100
- "@swc/core-win32-ia32-msvc": 1.3.100
- "@swc/core-win32-x64-msvc": 1.3.100
+ "@swc/core-darwin-arm64": 1.3.102
+ "@swc/core-darwin-x64": 1.3.102
+ "@swc/core-linux-arm-gnueabihf": 1.3.102
+ "@swc/core-linux-arm64-gnu": 1.3.102
+ "@swc/core-linux-arm64-musl": 1.3.102
+ "@swc/core-linux-x64-gnu": 1.3.102
+ "@swc/core-linux-x64-musl": 1.3.102
+ "@swc/core-win32-arm64-msvc": 1.3.102
+ "@swc/core-win32-ia32-msvc": 1.3.102
+ "@swc/core-win32-x64-msvc": 1.3.102
"@swc/counter": ^0.1.1
"@swc/types": ^0.1.5
peerDependencies:
@@ -17240,6 +17283,8 @@ __metadata:
optional: true
"@swc/core-darwin-x64":
optional: true
+ "@swc/core-linux-arm-gnueabihf":
+ optional: true
"@swc/core-linux-arm64-gnu":
optional: true
"@swc/core-linux-arm64-musl":
@@ -17257,7 +17302,7 @@ __metadata:
peerDependenciesMeta:
"@swc/helpers":
optional: true
- checksum: b68553db388c36b1859f0e8b5231a608277e17ae7fd7a928ea8b448432532176914f84675426d40aa9710617b2e7fb626aaa8358b6b2506b3c43f82db725c41e
+ checksum: 45c0edb06f87a811e28fb3ed587fbe6b7ca67ff2440fe15666d43729788903a4af61e3b57842aecc0b2b70e3c9981b698d8233746ba94dfb5a19e1c62eea33ad
languageName: node
linkType: hard
@@ -17391,10 +17436,10 @@ __metadata:
linkType: hard
"@testing-library/jest-dom@npm:^6.0.0":
- version: 6.1.5
- resolution: "@testing-library/jest-dom@npm:6.1.5"
+ version: 6.1.6
+ resolution: "@testing-library/jest-dom@npm:6.1.6"
dependencies:
- "@adobe/css-tools": ^4.3.1
+ "@adobe/css-tools": ^4.3.2
"@babel/runtime": ^7.9.2
aria-query: ^5.0.0
chalk: ^3.0.0
@@ -17416,7 +17461,7 @@ __metadata:
optional: true
vitest:
optional: true
- checksum: 67f1433c7eb8649db6676df97d1144cf288e2d94c61e89531c05c587b56f2277454c558c97bcca567d5060ebd39caba5ba01d49dc57b3f005837477a401ad113
+ checksum: 8d1a80678027915228b483a116fb9e358d25e2faffcd9a2c40b371752fbd53b5cb87351215866a43dd09393e7d364c46fc43923566b00ef63bbf3576d47da940
languageName: node
linkType: hard
@@ -17457,11 +17502,11 @@ __metadata:
linkType: hard
"@testing-library/user-event@npm:^14.0.0":
- version: 14.5.1
- resolution: "@testing-library/user-event@npm:14.5.1"
+ version: 14.5.2
+ resolution: "@testing-library/user-event@npm:14.5.2"
peerDependencies:
"@testing-library/dom": ">=7.21.4"
- checksum: 3e6bc9fd53dfe2f3648190193ed2fd4bca2a1bfb47f68810df3b33f05412526e5fd5c4ef9dc5375635e0f4cdf1859916867b597eed22bda1321e04242ea6c519
+ checksum: d76937dffcf0082fbf3bb89eb2b81a31bf5448048dd61c33928c5f10e33a58e035321d39145cefd469bb5a499c68a5b4086b22f1a44e3e7c7e817dc5f6782867
languageName: node
linkType: hard
@@ -17609,16 +17654,16 @@ __metadata:
languageName: node
linkType: hard
-"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.4":
- version: 7.20.4
- resolution: "@types/babel__core@npm:7.20.4"
+"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5":
+ version: 7.20.5
+ resolution: "@types/babel__core@npm:7.20.5"
dependencies:
"@babel/parser": ^7.20.7
"@babel/types": ^7.20.7
"@types/babel__generator": "*"
"@types/babel__template": "*"
"@types/babel__traverse": "*"
- checksum: 75ed6072213423d2b827740d68bbf96f5a7050ce8bd842dde0ceec8d352d06e847166bac757df4beba55525b65f8727c0432adeb5cb4f83aa42e155ac555767e
+ checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845
languageName: node
linkType: hard
@@ -18500,9 +18545,9 @@ __metadata:
linkType: hard
"@types/luxon@npm:*, @types/luxon@npm:^3.0.0, @types/luxon@npm:~3.3.0":
- version: 3.3.6
- resolution: "@types/luxon@npm:3.3.6"
- checksum: 44fd3e617fb5d9e370a8d5529de3e703b295bfe225936e786e0b5e7fce662ef82012a6ec29cd2763afbd59bf9a9ab43186bad5c51aa552d963cd5e8c8f4e1d4f
+ version: 3.3.7
+ resolution: "@types/luxon@npm:3.3.7"
+ checksum: 97026557e92bcba308a5592f981591cd200d493fc8997874d79acecf6a2ec41debeded3ac5cd80c371ef7f6f56cc0d1be0a5aca846e03d3e6b4a2be37256fe2f
languageName: node
linkType: hard
@@ -18609,30 +18654,30 @@ __metadata:
linkType: hard
"@types/node-fetch@npm:^2.5.0, @types/node-fetch@npm:^2.5.12, @types/node-fetch@npm:^2.5.7":
- version: 2.6.9
- resolution: "@types/node-fetch@npm:2.6.9"
+ version: 2.6.10
+ resolution: "@types/node-fetch@npm:2.6.10"
dependencies:
"@types/node": "*"
form-data: ^4.0.0
- checksum: 212269aff4b251477c13c33cee6cea23e4fd630be6c0bfa3714968cce7efd7055b52f2f82aab3394596d8c758335cc802e7c5fa3f775e7f2a472fa914c90dc15
+ checksum: e0c9a6023752ff6c744a33a3045b9adb11fd1882997ef891bf7ce91f937ddab91c0acee4c8e806a8a5aec0e8d8c132709141e8512fec28030d7cc9ef92c7ff1e
languageName: node
linkType: hard
"@types/node-forge@npm:^1.3.0":
- version: 1.3.10
- resolution: "@types/node-forge@npm:1.3.10"
+ version: 1.3.11
+ resolution: "@types/node-forge@npm:1.3.11"
dependencies:
"@types/node": "*"
- checksum: 363af42c83956c7e2483a71e398a02101ef6a55b4d86386c276315ca98bad02d6050b99fdbe13debcd1bcda250086b4a5b5c15a6fb2953d32420d269865ca7f8
+ checksum: 1e86bd55b92a492eaafd75f6d01f31e7d86a5cdadd0c6bcdc0b1df4103b7f99bb75b832efd5217c7ddda5c781095dc086a868e20b9de00f5a427ddad4c296cd5
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^20.1.1":
- version: 20.10.4
- resolution: "@types/node@npm:20.10.4"
+ version: 20.10.6
+ resolution: "@types/node@npm:20.10.6"
dependencies:
undici-types: ~5.26.4
- checksum: 054b296417e771ab524bea63cf3289559c6bdf290d45428f7cc68e9b00030ff7a0ece47b8c99a26b4f47a443919813bcf42beadff2f0bea7d8125fa541d92eb0
+ checksum: ada40e4ccbda3697dca88f8d13f4c996c493be6fbc15f5f5d3b91096d56bd700786a2c148a92a2b4c5d1f133379e63f754a786b3aebfc6a7d09fc7ea16dc017b
languageName: node
linkType: hard
@@ -18651,9 +18696,9 @@ __metadata:
linkType: hard
"@types/node@npm:^16.11.26, @types/node@npm:^16.7.10, @types/node@npm:^16.9.2":
- version: 16.18.68
- resolution: "@types/node@npm:16.18.68"
- checksum: 094ae9ed80eed2af4bd34d551467e307f2ecb6efb0f8b872feebfb9da5ea4b446c5883c9abe2349f8ea2b78bdacd8726a946c27c2a246676c4c330e41ccb9284
+ version: 16.18.69
+ resolution: "@types/node@npm:16.18.69"
+ checksum: ac7076062e59169ac1907e9347d939ed5f79c6a3ec2a531fe7186caf2fcf8d66de9b87ad42d92c4dfa6cb44b1018ab89fef1e054a82af36deea04ba32a5a670a
languageName: node
linkType: hard
@@ -18665,11 +18710,11 @@ __metadata:
linkType: hard
"@types/node@npm:^18.17.8":
- version: 18.19.3
- resolution: "@types/node@npm:18.19.3"
+ version: 18.19.4
+ resolution: "@types/node@npm:18.19.4"
dependencies:
undici-types: ~5.26.4
- checksum: 58c4fa45a78fcec75c78182a4b266395905957633654eb0311c5f9c30ac15c179ea2287ab1af034e46c2db7bb0589ef0000ee64c1de8f568a0aad29eaadb100c
+ checksum: 3a32a31b2df85d4bebb5e3c91ec1a0908d587a2a2fd31ab4eeebd609d1c04bbcc9ba97e290e3230f843c9f43f17efb9f5cde56412b4b0f5acbfe5577179b23c8
languageName: node
linkType: hard
@@ -18879,11 +18924,11 @@ __metadata:
linkType: hard
"@types/react-dom@npm:^18":
- version: 18.2.17
- resolution: "@types/react-dom@npm:18.2.17"
+ version: 18.2.18
+ resolution: "@types/react-dom@npm:18.2.18"
dependencies:
"@types/react": "*"
- checksum: 7a4e704ed4be6e0c3ccd8a22ff69386fe548304bf4db090513f42e059ff4c65f7a427790320051524d6578a2e4c9667bb7a80a4c989b72361c019fbe851d9385
+ checksum: 8e3da404c980e2b2a76da3852f812ea6d8b9d0e7f5923fbaf3bfbbbfa1d59116ff91c129de8f68e9b7668a67ae34484fe9df74d5a7518cf8591ec07a0c4dad57
languageName: node
linkType: hard
@@ -18953,12 +18998,12 @@ __metadata:
languageName: node
linkType: hard
-"@types/react-transition-group@npm:^4.2.0, @types/react-transition-group@npm:^4.4.9":
- version: 4.4.9
- resolution: "@types/react-transition-group@npm:4.4.9"
+"@types/react-transition-group@npm:^4.2.0, @types/react-transition-group@npm:^4.4.10":
+ version: 4.4.10
+ resolution: "@types/react-transition-group@npm:4.4.10"
dependencies:
"@types/react": "*"
- checksum: be9e256e53919a7cf3b4a075f6d01c0a2dd3a67911dd28276aa6158be4beade4ca5327cbf1f096c28b413e04989f069122319b02e5a09c280d903a0accea9ead
+ checksum: fe2ea11f70251e9f79f368e198c18fd469b1d4f1e1d44e4365845b44e15974b0ec925100036f449b023b0ca3480a82725c5f0a73040e282ad32ec7b0def9b57c
languageName: node
linkType: hard
@@ -18981,13 +19026,13 @@ __metadata:
linkType: hard
"@types/react@npm:^18":
- version: 18.2.42
- resolution: "@types/react@npm:18.2.42"
+ version: 18.2.46
+ resolution: "@types/react@npm:18.2.46"
dependencies:
"@types/prop-types": "*"
"@types/scheduler": "*"
csstype: ^3.0.2
- checksum: d2019afdf48303a3a598a97cc9dd2284e3c04b369e791f6ba3c33232b7f8645daff97b093a19f8b3ce75ac8a261b47552cb4513226ab16d843eb9443b0f91844
+ checksum: cb0e4dc7f41988a059e1246a19ec377101f5b16097ec4bf7000ef3c431ec0c8c873f40e95075821f908db1f4e3352775f0f18cea53dcad14dce67c0f5110f2bd
languageName: node
linkType: hard
@@ -19490,14 +19535,14 @@ __metadata:
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^6.12.0":
- version: 6.13.1
- resolution: "@typescript-eslint/eslint-plugin@npm:6.13.1"
+ version: 6.14.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:6.14.0"
dependencies:
"@eslint-community/regexpp": ^4.5.1
- "@typescript-eslint/scope-manager": 6.13.1
- "@typescript-eslint/type-utils": 6.13.1
- "@typescript-eslint/utils": 6.13.1
- "@typescript-eslint/visitor-keys": 6.13.1
+ "@typescript-eslint/scope-manager": 6.14.0
+ "@typescript-eslint/type-utils": 6.14.0
+ "@typescript-eslint/utils": 6.14.0
+ "@typescript-eslint/visitor-keys": 6.14.0
debug: ^4.3.4
graphemer: ^1.4.0
ignore: ^5.2.4
@@ -19510,25 +19555,25 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 568093d76c200a8502047d74f29300110a59b9f2a5cbf995a6cbe419c803a7ec22220e9592a884401d2dde72c79346b4cc0ee393e7b422924ad4a8a2040af3b0
+ checksum: ec688fd71b21576bfe0e4176889fddf3c13d8b07792461b84017d689ed11a9bffbf4d2ab61e9bdb254e43d2c1e159d5c2fc21bdfa6a6c2d64f9e1956a668fbe8
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^6.7.2":
- version: 6.13.1
- resolution: "@typescript-eslint/parser@npm:6.13.1"
+ version: 6.14.0
+ resolution: "@typescript-eslint/parser@npm:6.14.0"
dependencies:
- "@typescript-eslint/scope-manager": 6.13.1
- "@typescript-eslint/types": 6.13.1
- "@typescript-eslint/typescript-estree": 6.13.1
- "@typescript-eslint/visitor-keys": 6.13.1
+ "@typescript-eslint/scope-manager": 6.14.0
+ "@typescript-eslint/types": 6.14.0
+ "@typescript-eslint/typescript-estree": 6.14.0
+ "@typescript-eslint/visitor-keys": 6.14.0
debug: ^4.3.4
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 58b7fef6f2d02c8f4737f9908a8d335a20bee20dba648233a69f28e7b39237791d2b9fbb818e628dcc053ddf16507b161ace7f1139e093d72365f1270c426de3
+ checksum: 5fbe8d7431654c14ba6c9782d3728026ad5c90e02c9c4319f45df972e653cf5c15ba320dce70cdffa9fb7ce4c4263c37585e7bc1c909d1252d0a599880963063
languageName: node
linkType: hard
@@ -19542,22 +19587,22 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:6.13.1":
- version: 6.13.1
- resolution: "@typescript-eslint/scope-manager@npm:6.13.1"
+"@typescript-eslint/scope-manager@npm:6.14.0":
+ version: 6.14.0
+ resolution: "@typescript-eslint/scope-manager@npm:6.14.0"
dependencies:
- "@typescript-eslint/types": 6.13.1
- "@typescript-eslint/visitor-keys": 6.13.1
- checksum: 109a213f82719e10f8c6a0168f2e105dc1369c7e0c075c1f30af137030fc866a3a585a77ff78a9a3538afc213061c8aedbb4462a91f26cbd90eefbab8b89ea10
+ "@typescript-eslint/types": 6.14.0
+ "@typescript-eslint/visitor-keys": 6.14.0
+ checksum: 0b577d42db925426a9838fe61703c226e18b697374fbe20cf9b93ba30fe58bf4a7f7f42491a4d24b7f3cc12d9a189fe3524c0e9b7708727e710d95b908250a14
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:6.13.1":
- version: 6.13.1
- resolution: "@typescript-eslint/type-utils@npm:6.13.1"
+"@typescript-eslint/type-utils@npm:6.14.0":
+ version: 6.14.0
+ resolution: "@typescript-eslint/type-utils@npm:6.14.0"
dependencies:
- "@typescript-eslint/typescript-estree": 6.13.1
- "@typescript-eslint/utils": 6.13.1
+ "@typescript-eslint/typescript-estree": 6.14.0
+ "@typescript-eslint/utils": 6.14.0
debug: ^4.3.4
ts-api-utils: ^1.0.1
peerDependencies:
@@ -19565,7 +19610,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: e39d28dd2f3b47a26b4f6aa2c7a301bdd769ce9148d734be93441a813c3d1111eba1d655677355bba5519f3d4dbe93e4ff4e46830216b0302df0070bf7a80057
+ checksum: 09988f25279598840673c41ba44b03756f2dfb31284ab72af97c170711a0f31e5c53d6b120aa83f31438565e82aae1a1ca4d1ed0de4890654dd6a6a33d88202c
languageName: node
linkType: hard
@@ -19576,10 +19621,10 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:6.13.1":
- version: 6.13.1
- resolution: "@typescript-eslint/types@npm:6.13.1"
- checksum: bb1d52f1646bab9acd3ec874567ffbaaaf7fe4a5f79845bdacbfea46d15698e58d45797da05b08c23f9496a17229b7f2c1363d000fd89ce4e79874fd57ba1d4a
+"@typescript-eslint/types@npm:6.14.0":
+ version: 6.14.0
+ resolution: "@typescript-eslint/types@npm:6.14.0"
+ checksum: 624e6c5227f596dcc9757348d09c5a09b846a62938b8b4409614cf8108013b64ed8b270c32e87ea8890dd09ed896b82e92872c3574dbf07dcda11a168d69dd1f
languageName: node
linkType: hard
@@ -19601,12 +19646,12 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:6.13.1":
- version: 6.13.1
- resolution: "@typescript-eslint/typescript-estree@npm:6.13.1"
+"@typescript-eslint/typescript-estree@npm:6.14.0":
+ version: 6.14.0
+ resolution: "@typescript-eslint/typescript-estree@npm:6.14.0"
dependencies:
- "@typescript-eslint/types": 6.13.1
- "@typescript-eslint/visitor-keys": 6.13.1
+ "@typescript-eslint/types": 6.14.0
+ "@typescript-eslint/visitor-keys": 6.14.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
@@ -19615,24 +19660,24 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 09aa0f5cbd60e84df4f58f3d479be352549600b24dbefe75c686ea89252526c52c1c06ce1ae56c0405dd7337002e741c2ba02b71fb1caa3b94a740a70fcc8699
+ checksum: 495d7616463685bfd8138ffa9fbc0a7f9130ff8a3f6f85775960b4f0a3fdc259ae53b104cdfe562b60310860b5a6c8387307790734555084aa087e3bb9c28a69
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:6.13.1":
- version: 6.13.1
- resolution: "@typescript-eslint/utils@npm:6.13.1"
+"@typescript-eslint/utils@npm:6.14.0":
+ version: 6.14.0
+ resolution: "@typescript-eslint/utils@npm:6.14.0"
dependencies:
"@eslint-community/eslint-utils": ^4.4.0
"@types/json-schema": ^7.0.12
"@types/semver": ^7.5.0
- "@typescript-eslint/scope-manager": 6.13.1
- "@typescript-eslint/types": 6.13.1
- "@typescript-eslint/typescript-estree": 6.13.1
+ "@typescript-eslint/scope-manager": 6.14.0
+ "@typescript-eslint/types": 6.14.0
+ "@typescript-eslint/typescript-estree": 6.14.0
semver: ^7.5.4
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
- checksum: 14f64840869c8755af4d287cfc74abc424dc139559e87ca1a8b0e850f4fa56311d99dfb61a43dd4433eae5914be12b4b3390e55de1f236dce6701830d17e31c9
+ checksum: 36e8501cb85647947189f31017c36d6f6ac7ef0399fa0e18eb64f1b83e00f1e8ace1d9ac5015ef4d9c1b820179f1def8d61d7ea9e5d61433eb848cf5c49dc8b0
languageName: node
linkType: hard
@@ -19664,13 +19709,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:6.13.1":
- version: 6.13.1
- resolution: "@typescript-eslint/visitor-keys@npm:6.13.1"
+"@typescript-eslint/visitor-keys@npm:6.14.0":
+ version: 6.14.0
+ resolution: "@typescript-eslint/visitor-keys@npm:6.14.0"
dependencies:
- "@typescript-eslint/types": 6.13.1
+ "@typescript-eslint/types": 6.14.0
eslint-visitor-keys: ^3.4.1
- checksum: d15d362203a2fe995ea62a59d5b44c15c8fb1fb30ff59dd1542a980f75b3b62035303dfb781d83709921613f6ac8cc5bf57b70f6e20d820aec8b7911f07152e9
+ checksum: fc593c4e94d5739be7bd88e42313a301bc9806fad758b6a0a1bafd296ff41522be602caf4976beec84e363b0f56585bb98df3c157f70de984de721798501fd8a
languageName: node
linkType: hard
@@ -19898,17 +19943,17 @@ __metadata:
linkType: hard
"@vitejs/plugin-react@npm:^4.0.4":
- version: 4.2.0
- resolution: "@vitejs/plugin-react@npm:4.2.0"
+ version: 4.2.1
+ resolution: "@vitejs/plugin-react@npm:4.2.1"
dependencies:
- "@babel/core": ^7.23.3
+ "@babel/core": ^7.23.5
"@babel/plugin-transform-react-jsx-self": ^7.23.3
"@babel/plugin-transform-react-jsx-source": ^7.23.3
- "@types/babel__core": ^7.20.4
+ "@types/babel__core": ^7.20.5
react-refresh: ^0.14.0
peerDependencies:
vite: ^4.2.0 || ^5.0.0
- checksum: 515dc270dc433d9d80806501221d152f627aabc342916e9dc0d1d840fec76bc00daf3e41738f9aad286de89ee9325fd423372298bd04a3bfd618601ae62d515d
+ checksum: 08d227d27ff2304e395e746bd2d4b5fee40587f69d7e2fcd6beb7d91163c1f1dc26d843bc48e2ffb8f38c6b8a1b9445fb07840e3dcc841f97b56bbb8205346aa
languageName: node
linkType: hard
@@ -20264,12 +20309,12 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.9.0":
- version: 8.10.0
- resolution: "acorn@npm:8.10.0"
+"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
+ version: 8.11.3
+ resolution: "acorn@npm:8.11.3"
bin:
acorn: bin/acorn
- checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d
+ checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c
languageName: node
linkType: hard
@@ -21108,13 +21153,13 @@ __metadata:
linkType: hard
"aws-sdk-client-mock@npm:^3.0.0":
- version: 3.0.0
- resolution: "aws-sdk-client-mock@npm:3.0.0"
+ version: 3.0.1
+ resolution: "aws-sdk-client-mock@npm:3.0.1"
dependencies:
"@types/sinon": ^10.0.10
- sinon: ^14.0.2
+ sinon: ^16.1.3
tslib: ^2.1.0
- checksum: 6298de923260bc824d0c2788196f8839a20da8d64ed82e662913f19417ab872c6cb4c029c5f8f2782da0a4c16e37a8ac077da0bdb19c4e0c82707cf286f7c5d3
+ checksum: e875af24a765d7883059c101a629a58bbb2ec3a055443562f9410ebd96823691dfae25d69b962dc3c22ad5867971c37b378d05f3c8344bbb992b1a624a0fb836
languageName: node
linkType: hard
@@ -21189,13 +21234,13 @@ __metadata:
linkType: hard
"axios@npm:^1.4.0, axios@npm:^1.6.0":
- version: 1.6.2
- resolution: "axios@npm:1.6.2"
+ version: 1.6.3
+ resolution: "axios@npm:1.6.3"
dependencies:
follow-redirects: ^1.15.0
form-data: ^4.0.0
proxy-from-env: ^1.1.0
- checksum: 4a7429e2b784be0f2902ca2680964391eae7236faa3967715f30ea45464b98ae3f1c6f631303b13dfe721b17126b01f486c7644b9ef276bfc63112db9fd379f8
+ checksum: 07ef3bb83fc2dacc1ae2c97f2bbd04ef7701f5655f9037789d79ee78b698ffa50eaa8465c2017d4d3e9ce7d94cb779f730acaab32ce9036d0a4933c1e89df4da
languageName: node
linkType: hard
@@ -22525,9 +22570,9 @@ __metadata:
linkType: hard
"classnames@npm:*, classnames@npm:^2.2.5, classnames@npm:^2.2.6, classnames@npm:^2.3.1":
- version: 2.3.2
- resolution: "classnames@npm:2.3.2"
- checksum: 2c62199789618d95545c872787137262e741f9db13328e216b093eea91c85ef2bfb152c1f9e63027204e2559a006a92eb74147d46c800a9f96297ae1d9f96f4e
+ version: 2.3.3
+ resolution: "classnames@npm:2.3.3"
+ checksum: 0cb4db9cc3b8d2363c81f857f85b30351605fe683c89d140939aed4e06895a9570be737494ef3907e7069e2b98ed25ba3960fbf087b33309a18707fc38565e95
languageName: node
linkType: hard
@@ -23456,13 +23501,20 @@ __metadata:
languageName: node
linkType: hard
-"cookie@npm:0.5.0, cookie@npm:^0.5.0, cookie@npm:~0.5.0":
+"cookie@npm:0.5.0, cookie@npm:^0.5.0":
version: 0.5.0
resolution: "cookie@npm:0.5.0"
checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180
languageName: node
linkType: hard
+"cookie@npm:~0.6.0":
+ version: 0.6.0
+ resolution: "cookie@npm:0.6.0"
+ checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410
+ languageName: node
+ linkType: hard
+
"cookiejar@npm:^2.1.4":
version: 2.1.4
resolution: "cookiejar@npm:2.1.4"
@@ -24090,17 +24142,10 @@ __metadata:
languageName: node
linkType: hard
-"csstype@npm:^2.0.0, csstype@npm:^2.5.2, csstype@npm:^2.6.7":
- version: 2.6.21
- resolution: "csstype@npm:2.6.21"
- checksum: 2ce8bc832375146eccdf6115a1f8565a27015b74cce197c35103b4494955e9516b246140425ad24103864076aa3e1257ac9bab25a06c8d931dd87a6428c9dccf
- languageName: node
- linkType: hard
-
-"csstype@npm:^3.0.2, csstype@npm:^3.1.2":
- version: 3.0.9
- resolution: "csstype@npm:3.0.9"
- checksum: 199f9af7e673f9f188525c3102a329d637ff46c52f6385a4427ff5cb17adcb736189150170a7af7c5701d18d7704bdad130273f4aa7e44c6c4f9967e6115dc93
+"csstype@npm:>=3.0.2 <=3.1.2":
+ version: 3.1.2
+ resolution: "csstype@npm:3.1.2"
+ checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5
languageName: node
linkType: hard
@@ -24864,7 +24909,7 @@ __metadata:
languageName: node
linkType: hard
-"diff@npm:^5.0.0":
+"diff@npm:^5.0.0, diff@npm:^5.1.0":
version: 5.1.0
resolution: "diff@npm:5.1.0"
checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90
@@ -25881,32 +25926,35 @@ __metadata:
linkType: hard
"esbuild@npm:^0.19.0":
- version: 0.19.8
- resolution: "esbuild@npm:0.19.8"
+ version: 0.19.10
+ resolution: "esbuild@npm:0.19.10"
dependencies:
- "@esbuild/android-arm": 0.19.8
- "@esbuild/android-arm64": 0.19.8
- "@esbuild/android-x64": 0.19.8
- "@esbuild/darwin-arm64": 0.19.8
- "@esbuild/darwin-x64": 0.19.8
- "@esbuild/freebsd-arm64": 0.19.8
- "@esbuild/freebsd-x64": 0.19.8
- "@esbuild/linux-arm": 0.19.8
- "@esbuild/linux-arm64": 0.19.8
- "@esbuild/linux-ia32": 0.19.8
- "@esbuild/linux-loong64": 0.19.8
- "@esbuild/linux-mips64el": 0.19.8
- "@esbuild/linux-ppc64": 0.19.8
- "@esbuild/linux-riscv64": 0.19.8
- "@esbuild/linux-s390x": 0.19.8
- "@esbuild/linux-x64": 0.19.8
- "@esbuild/netbsd-x64": 0.19.8
- "@esbuild/openbsd-x64": 0.19.8
- "@esbuild/sunos-x64": 0.19.8
- "@esbuild/win32-arm64": 0.19.8
- "@esbuild/win32-ia32": 0.19.8
- "@esbuild/win32-x64": 0.19.8
+ "@esbuild/aix-ppc64": 0.19.10
+ "@esbuild/android-arm": 0.19.10
+ "@esbuild/android-arm64": 0.19.10
+ "@esbuild/android-x64": 0.19.10
+ "@esbuild/darwin-arm64": 0.19.10
+ "@esbuild/darwin-x64": 0.19.10
+ "@esbuild/freebsd-arm64": 0.19.10
+ "@esbuild/freebsd-x64": 0.19.10
+ "@esbuild/linux-arm": 0.19.10
+ "@esbuild/linux-arm64": 0.19.10
+ "@esbuild/linux-ia32": 0.19.10
+ "@esbuild/linux-loong64": 0.19.10
+ "@esbuild/linux-mips64el": 0.19.10
+ "@esbuild/linux-ppc64": 0.19.10
+ "@esbuild/linux-riscv64": 0.19.10
+ "@esbuild/linux-s390x": 0.19.10
+ "@esbuild/linux-x64": 0.19.10
+ "@esbuild/netbsd-x64": 0.19.10
+ "@esbuild/openbsd-x64": 0.19.10
+ "@esbuild/sunos-x64": 0.19.10
+ "@esbuild/win32-arm64": 0.19.10
+ "@esbuild/win32-ia32": 0.19.10
+ "@esbuild/win32-x64": 0.19.10
dependenciesMeta:
+ "@esbuild/aix-ppc64":
+ optional: true
"@esbuild/android-arm":
optional: true
"@esbuild/android-arm64":
@@ -25953,7 +26001,7 @@ __metadata:
optional: true
bin:
esbuild: bin/esbuild
- checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba
+ checksum: b97f2f837c931e065839fe9adebba44b80aaa81c6b32dca4e1e77c068a0afb045d08a94d86abdacb29daef783ec092f0db688a31f3d463e2e42ac17e5a478265
languageName: node
linkType: hard
@@ -26105,8 +26153,8 @@ __metadata:
linkType: hard
"eslint-plugin-import@npm:^2.25.4":
- version: 2.29.0
- resolution: "eslint-plugin-import@npm:2.29.0"
+ version: 2.29.1
+ resolution: "eslint-plugin-import@npm:2.29.1"
dependencies:
array-includes: ^3.1.7
array.prototype.findlastindex: ^1.2.3
@@ -26124,10 +26172,10 @@ __metadata:
object.groupby: ^1.0.1
object.values: ^1.1.7
semver: ^6.3.1
- tsconfig-paths: ^3.14.2
+ tsconfig-paths: ^3.15.0
peerDependencies:
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
- checksum: 19ee541fb95eb7a796f3daebe42387b8d8262bbbcc4fd8a6e92f63a12035f3d2c6cb8bc0b6a70864fa14b1b50ed6b8e6eed5833e625e16cb6bb98b665beff269
+ checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c
languageName: node
linkType: hard
@@ -26799,6 +26847,7 @@ __metadata:
"@backstage/plugin-adr-backend": "workspace:^"
"@backstage/plugin-app-backend": "workspace:^"
"@backstage/plugin-auth-backend": "workspace:^"
+ "@backstage/plugin-auth-backend-module-aws-alb-provider": "workspace:^"
"@backstage/plugin-auth-node": "workspace:^"
"@backstage/plugin-azure-devops-backend": "workspace:^"
"@backstage/plugin-azure-sites-backend": "workspace:^"
@@ -26986,8 +27035,8 @@ __metadata:
linkType: hard
"express-openapi-validator@npm:^5.0.4":
- version: 5.1.1
- resolution: "express-openapi-validator@npm:5.1.1"
+ version: 5.1.2
+ resolution: "express-openapi-validator@npm:5.1.2"
dependencies:
"@apidevtools/json-schema-ref-parser": ^9.1.2
"@types/multer": ^1.4.7
@@ -27004,7 +27053,7 @@ __metadata:
multer: ^1.4.5-lts.1
ono: ^7.1.3
path-to-regexp: ^6.2.0
- checksum: 33392d9f08c477f582675c3a747792380c6b87270cabd26ceea62cb683299cbb6ec4493e8a88ab1a91ba68657876006dc165697b733b8fcba0555c52841d3a39
+ checksum: e02eaad8549893f874916cfc52a9d81f1ef15c553e726876e6b73cc93469a21e28e42d1d25449aa04c764f8d024b1ea664b7ce6083abdd8513168ece7929ee20
languageName: node
linkType: hard
@@ -27673,12 +27722,12 @@ __metadata:
linkType: hard
"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.0":
- version: 1.15.2
- resolution: "follow-redirects@npm:1.15.2"
+ version: 1.15.4
+ resolution: "follow-redirects@npm:1.15.4"
peerDependenciesMeta:
debug:
optional: true
- checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190
+ checksum: e178d1deff8b23d5d24ec3f7a94cde6e47d74d0dc649c35fc9857041267c12ec5d44650a0c5597ef83056ada9ea6ca0c30e7c4f97dbf07d035086be9e6a5b7b6
languageName: node
linkType: hard
@@ -28775,11 +28824,11 @@ __metadata:
linkType: hard
"graphql-ws@npm:^5.14.0, graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0":
- version: 5.14.2
- resolution: "graphql-ws@npm:5.14.2"
+ version: 5.14.3
+ resolution: "graphql-ws@npm:5.14.3"
peerDependencies:
graphql: ">=0.11 <=16"
- checksum: ee9affa2478b9d262405986f07616267b4db10ae45cf32fffb551572fb5bf5e1e3aa6652375511b3ff640d382c74c1327ce75ff1ee2fa8b964b3ef3d55d97f75
+ checksum: c5bfdeb6d06f528e2222e71bf830b2f4f3e5b95419453d3b650cef9fe012e0126f121e4858d950edf3db1fb209a056b592643751624d1bc1fc71ecbe546d53d5
languageName: node
linkType: hard
@@ -30707,8 +30756,8 @@ __metadata:
linkType: hard
"isomorphic-git@npm:^1.23.0":
- version: 1.25.0
- resolution: "isomorphic-git@npm:1.25.0"
+ version: 1.25.2
+ resolution: "isomorphic-git@npm:1.25.2"
dependencies:
async-lock: ^1.1.0
clean-git-ref: ^2.0.1
@@ -30723,7 +30772,7 @@ __metadata:
simple-get: ^4.0.1
bin:
isogit: cli.cjs
- checksum: d7f97cc3a7c7deb45077e3308c72aadd20a4a2ecf1c4ba929edb4e658356453bfe10daa38dcb5a34de0432e0a98ad91cfc540e62a8604aec9fd07ab5e7197299
+ checksum: b8e7a1b66c393ac1ab30fd0deb561b97e4ca249aad97367f11be8ed18b20132460bec89451752e3533e64a5a8c47b3509dc5a7dee2eea266c812b45df633b441
languageName: node
linkType: hard
@@ -31512,7 +31561,7 @@ __metadata:
languageName: node
linkType: hard
-"jose@npm:^4.14.6, jose@npm:^4.15.1, jose@npm:^4.6.0":
+"jose@npm:^4.14.6, jose@npm:^4.15.4, jose@npm:^4.6.0":
version: 4.15.4
resolution: "jose@npm:4.15.4"
checksum: dccad91cb3357f36423774a0b89ad830dd84b31090de65cd139b85488439f16a00f8c59c0773825e8a1adb0dd9d13ad725ad66e6ea33880ecb3959bb99e1ea5b
@@ -32638,16 +32687,6 @@ __metadata:
languageName: node
linkType: hard
-"linkify-react@npm:4.1.2":
- version: 4.1.2
- resolution: "linkify-react@npm:4.1.2"
- peerDependencies:
- linkifyjs: ^4.0.0
- react: ">= 15.0.0"
- checksum: c262e5aeb95cce014256ef417756c405bffd88e4cbe133185bc031113728e982025f8fa6f0ee76f67c84e030bcc093b50fa833724612c09762244d9efe22d192
- languageName: node
- linkType: hard
-
"linkify-react@npm:4.1.3":
version: 4.1.3
resolution: "linkify-react@npm:4.1.3"
@@ -32658,13 +32697,6 @@ __metadata:
languageName: node
linkType: hard
-"linkifyjs@npm:4.1.2":
- version: 4.1.2
- resolution: "linkifyjs@npm:4.1.2"
- checksum: 42d594fdf5347e0b35ab9b9a46d0eb290f1a39f092a4e883e0dfa97bb8c3ff5dde57d6ff80d1580f2b6d0b4620269b49bf865c2013b341f1ce084038e9abab01
- languageName: node
- linkType: hard
-
"linkifyjs@npm:4.1.3":
version: 4.1.3
resolution: "linkifyjs@npm:4.1.3"
@@ -33177,9 +33209,9 @@ __metadata:
linkType: hard
"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0":
- version: 10.0.1
- resolution: "lru-cache@npm:10.0.1"
- checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181
+ version: 10.1.0
+ resolution: "lru-cache@npm:10.1.0"
+ checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab
languageName: node
linkType: hard
@@ -34773,8 +34805,8 @@ __metadata:
linkType: hard
"msw@npm:^2.0.0, msw@npm:^2.0.8":
- version: 2.0.10
- resolution: "msw@npm:2.0.10"
+ version: 2.0.11
+ resolution: "msw@npm:2.0.11"
dependencies:
"@bundled-es-modules/cookie": ^2.0.0
"@bundled-es-modules/js-levenshtein": ^2.0.1
@@ -34804,7 +34836,7 @@ __metadata:
optional: true
bin:
msw: cli/index.js
- checksum: 1f18c835019a0c7c24280777885a9e8878bba0de3be2e7dcc2362c0850e69b18198fb9774ac1cf39690ca7e82b9e59b318b753f79761a91ce55d6659c2289d61
+ checksum: a87175f53e3b510dfdfb16e11f2b0d399a9859ce1f249a70741045ce6325b3512075878921d4bd30ad6cb0789cd6fc4f9eac5db68ae425777e96ad208285242d
languageName: node
linkType: hard
@@ -35042,16 +35074,16 @@ __metadata:
languageName: node
linkType: hard
-"nise@npm:^5.1.2":
- version: 5.1.2
- resolution: "nise@npm:5.1.2"
+"nise@npm:^5.1.4":
+ version: 5.1.5
+ resolution: "nise@npm:5.1.5"
dependencies:
"@sinonjs/commons": ^2.0.0
- "@sinonjs/fake-timers": ^7.0.4
+ "@sinonjs/fake-timers": ^10.0.2
"@sinonjs/text-encoding": ^0.7.1
just-extend: ^4.0.2
path-to-regexp: ^1.7.0
- checksum: 688c557333dcbc5b41f4f1f1b0ea32fb0f8b424541a8958140bc61074980362c954b2aeb027c282de26b9ddcb4b230656f68ac4206777499e405dd7e716ec1f8
+ checksum: c763dc62c5796cafa5c9268e14a5b34db6e6fa2f1dbc57a891fe5d7ea632a87868e22b5bb34965006f984630793ea11368351e94971163228d9e20b2e88edce8
languageName: node
linkType: hard
@@ -35922,14 +35954,14 @@ __metadata:
linkType: hard
"openid-client@npm:^5.2.1, openid-client@npm:^5.3.0, openid-client@npm:^5.4.3":
- version: 5.6.1
- resolution: "openid-client@npm:5.6.1"
+ version: 5.6.2
+ resolution: "openid-client@npm:5.6.2"
dependencies:
- jose: ^4.15.1
+ jose: ^4.15.4
lru-cache: ^6.0.0
object-hash: ^2.2.0
oidc-token-hash: ^5.0.3
- checksum: 9d939cec57540e6dd3f67e9a248ec5ecec3b439b7ab5bd2e9fb4481bd03e8d030deedd87a447348194be7f3e93e84085841b0414033caf86479870f526cdbc2f
+ checksum: e61bc7170bb53d9b50098476b68b72e07f93769caae8ae12ffb885c2dac5fb2fdf6de437a9eb29c5501f52b296f01c083de8d6f3500f2999fc863c9f9f5142fa
languageName: node
linkType: hard
@@ -40836,17 +40868,17 @@ __metadata:
languageName: node
linkType: hard
-"sinon@npm:^14.0.2":
- version: 14.0.2
- resolution: "sinon@npm:14.0.2"
+"sinon@npm:^16.1.3":
+ version: 16.1.3
+ resolution: "sinon@npm:16.1.3"
dependencies:
- "@sinonjs/commons": ^2.0.0
- "@sinonjs/fake-timers": ^9.1.2
- "@sinonjs/samsam": ^7.0.1
- diff: ^5.0.0
- nise: ^5.1.2
+ "@sinonjs/commons": ^3.0.0
+ "@sinonjs/fake-timers": ^10.3.0
+ "@sinonjs/samsam": ^8.0.0
+ diff: ^5.1.0
+ nise: ^5.1.4
supports-color: ^7.2.0
- checksum: de7730cd7785a457e42f9a93e955780c870296036a13816e3c0c5648360afae82fdc748e36c854cf26fb8abd117855a7211aee49265c334fa61439aae17a1b72
+ checksum: 83e5ccd724efdb5d1471e41b2cfaf4a46d9fe2cc76c15a23dedfbd741f7d448e6aec3d34a8253a79bdf8ddcc5bd889c5277ae71879e4709c621cb41094fbcdab
languageName: node
linkType: hard
@@ -42033,9 +42065,9 @@ __metadata:
languageName: node
linkType: hard
-"swagger-client@npm:^3.24.5":
- version: 3.24.5
- resolution: "swagger-client@npm:3.24.5"
+"swagger-client@npm:^3.24.6":
+ version: 3.24.6
+ resolution: "swagger-client@npm:3.24.6"
dependencies:
"@babel/runtime-corejs3": ^7.22.15
"@swagger-api/apidom-core": ">=0.83.0 <1.0.0"
@@ -42043,7 +42075,7 @@ __metadata:
"@swagger-api/apidom-json-pointer": ">=0.83.0 <1.0.0"
"@swagger-api/apidom-ns-openapi-3-1": ">=0.83.0 <1.0.0"
"@swagger-api/apidom-reference": ">=0.83.0 <1.0.0"
- cookie: ~0.5.0
+ cookie: ~0.6.0
deepmerge: ~4.3.0
fast-json-patch: ^3.0.0-1
is-plain-object: ^5.0.0
@@ -42053,15 +42085,15 @@ __metadata:
qs: ^6.10.2
traverse: ~0.6.6
undici: ^5.24.0
- checksum: d41ff94f9a506b99e7b30334c96a5011b14acf2af5204648b70e5b8e1902f3bf62ca2297b4e5f7536a3f0bb0a9cd4aa83d439b9352d0f1e3a110409201cae0bc
+ checksum: 8bb1aeea4576fdd88543c4e011b1f087c52b34e5a069d560937a5c32a6e1e6c7eda243810886f8b09e4e12062e8f2768edaa5e6193140a28f9604bac42b18104
languageName: node
linkType: hard
"swagger-ui-react@npm:^5.0.0":
- version: 5.10.3
- resolution: "swagger-ui-react@npm:5.10.3"
+ version: 5.10.5
+ resolution: "swagger-ui-react@npm:5.10.5"
dependencies:
- "@babel/runtime-corejs3": ^7.23.2
+ "@babel/runtime-corejs3": ^7.23.5
"@braintree/sanitize-url": =6.0.4
base64-js: ^1.5.1
classnames: ^2.3.1
@@ -42090,7 +42122,7 @@ __metadata:
reselect: ^4.1.8
serialize-error: ^8.1.0
sha.js: ^2.4.11
- swagger-client: ^3.24.5
+ swagger-client: ^3.24.6
url-parse: ^1.5.10
xml: =1.0.1
xml-but-prettier: ^1.0.1
@@ -42098,7 +42130,7 @@ __metadata:
peerDependencies:
react: ">=17.0.0"
react-dom: ">=17.0.0"
- checksum: 505dfb7b6f09b75bd637ac89796a6c4c8f3833b3907463f6824c37732cb4d19d045408fd92070dd1d93416996063bd97749de4397b2fca978df8025f2243b60c
+ checksum: 79256d68d56389d089a953f7d6c3a95a67c0b4e2794ae3992ba60adc0312aeb4446d8ba1e20687fcd7708d562e7c15fa733dbcb54cd8f99948ebf4c4513fa042
languageName: node
linkType: hard
@@ -42300,14 +42332,14 @@ __metadata:
linkType: hard
"terser-webpack-plugin@npm:*, terser-webpack-plugin@npm:^5.1.3, terser-webpack-plugin@npm:^5.3.7":
- version: 5.3.9
- resolution: "terser-webpack-plugin@npm:5.3.9"
+ version: 5.3.10
+ resolution: "terser-webpack-plugin@npm:5.3.10"
dependencies:
- "@jridgewell/trace-mapping": ^0.3.17
+ "@jridgewell/trace-mapping": ^0.3.20
jest-worker: ^27.4.5
schema-utils: ^3.1.1
serialize-javascript: ^6.0.1
- terser: ^5.16.8
+ terser: ^5.26.0
peerDependencies:
webpack: ^5.1.0
peerDependenciesMeta:
@@ -42317,21 +42349,21 @@ __metadata:
optional: true
uglify-js:
optional: true
- checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f
+ checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea
languageName: node
linkType: hard
-"terser@npm:^5.10.0, terser@npm:^5.16.8":
- version: 5.17.1
- resolution: "terser@npm:5.17.1"
+"terser@npm:^5.10.0, terser@npm:^5.26.0":
+ version: 5.26.0
+ resolution: "terser@npm:5.26.0"
dependencies:
- "@jridgewell/source-map": ^0.3.2
- acorn: ^8.5.0
+ "@jridgewell/source-map": ^0.3.3
+ acorn: ^8.8.2
commander: ^2.20.0
source-map-support: ~0.5.20
bin:
terser: bin/terser
- checksum: 69b0e80e3c4084db2819de4d6ae8a2ba79f2fcd7ed6df40fe4b602ec7bfd8e889cc63c7d5268f30990ffecbf6eeda18f857adad9386fe2c2331b398d58ed855c
+ checksum: 02a9bb896f04df828025af8f0eced36c315d25d310b6c2418e7dad2bed19ddeb34a9cea9b34e7c24789830fa51e1b6a9be26679980987a9c817a7e6d9cd4154b
languageName: node
linkType: hard
@@ -42777,8 +42809,8 @@ __metadata:
linkType: hard
"ts-node@npm:^10.0.0, ts-node@npm:^10.4.0, ts-node@npm:^10.9.1":
- version: 10.9.1
- resolution: "ts-node@npm:10.9.1"
+ version: 10.9.2
+ resolution: "ts-node@npm:10.9.2"
dependencies:
"@cspotcode/source-map-support": ^0.8.0
"@tsconfig/node10": ^1.0.7
@@ -42810,7 +42842,7 @@ __metadata:
ts-node-script: dist/bin-script.js
ts-node-transpile-only: dist/bin-transpile.js
ts-script: dist/bin-script-deprecated.js
- checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35
+ checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac
languageName: node
linkType: hard
@@ -42828,15 +42860,15 @@ __metadata:
languageName: node
linkType: hard
-"tsconfig-paths@npm:^3.14.2":
- version: 3.14.2
- resolution: "tsconfig-paths@npm:3.14.2"
+"tsconfig-paths@npm:^3.15.0":
+ version: 3.15.0
+ resolution: "tsconfig-paths@npm:3.15.0"
dependencies:
"@types/json5": ^0.0.29
json5: ^1.0.2
minimist: ^1.2.6
strip-bom: ^3.0.0
- checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447
+ checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201
languageName: node
linkType: hard
@@ -44108,8 +44140,8 @@ __metadata:
linkType: hard
"vite-plugin-html@npm:^3.2.0":
- version: 3.2.0
- resolution: "vite-plugin-html@npm:3.2.0"
+ version: 3.2.1
+ resolution: "vite-plugin-html@npm:3.2.1"
dependencies:
"@rollup/pluginutils": ^4.2.0
colorette: ^2.0.16
@@ -44125,7 +44157,7 @@ __metadata:
pathe: ^0.2.0
peerDependencies:
vite: ">=2.0.0"
- checksum: f5222247b65da1c36215f0b2f509fd3975a7426b8d44546beb49f3ba51ee87b3a6b6e6afc9e7567a0d8bd1016631f2db3f934808f62a7c8f7f83fa83d8561d2d
+ checksum: 6add7cd7a8f9e83b0c58b20cde2d4da7e132ef56db6a60f3d4cc7022c944896236aeca6bde4c6dc2da3d506f756f63de56251adc47f0ae359c07485b24dd64db
languageName: node
linkType: hard
@@ -45339,15 +45371,15 @@ __metadata:
linkType: hard
"zod-to-json-schema@npm:^3.20.4, zod-to-json-schema@npm:^3.21.4":
- version: 3.22.1
- resolution: "zod-to-json-schema@npm:3.22.1"
+ version: 3.22.3
+ resolution: "zod-to-json-schema@npm:3.22.3"
peerDependencies:
zod: ^3.22.4
- checksum: 7c0cdcf0acac81a9b69b26e44bc45e43aefacd5759e12f89856f0a4b957b66be27560671473ef7ab4a5883a871b6990a7f61fce3cee96ecad3823c5b7e524fa5
+ checksum: 2747a3d1514f579006939c0edd6a420acae65ad016df223b09c4a542cbc8c0ae61b4d7b391228a211cde973635ed49c47b1449791982f3b32d799319bb174f42
languageName: node
linkType: hard
-"zod@npm:^3.21.4":
+"zod@npm:^3.21.4, zod@npm:^3.22.4":
version: 3.22.4
resolution: "zod@npm:3.22.4"
checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f