diff --git a/build_and_push_custom_image_to_dockerhub.sh b/build_and_push_custom_image_to_dockerhub.sh
new file mode 100644
index 0000000..d2fe68e
--- /dev/null
+++ b/build_and_push_custom_image_to_dockerhub.sh
@@ -0,0 +1,16 @@
+echo "Building and push The TIBCO DeveloperHub custom docker image to DockerHub"
+
+# ---- Configuration ---
+# Local AWS profile to use
+AWS_PROFILE="mleijdek"
+# AWS Region of ECR
+AWS_REGION="local"
+# AWS Account number
+AWS_ACCOUNT_NR="mleijdek"
+# Name of the container image repository (in ECR)
+CONTAINER_NAME="custdevhub"
+
+
+# Do the build & push to ECR
+cd ./platform-scripts
+./local_build_and_push_devhub_container_to_docker.sh "$AWS_PROFILE" "$AWS_REGION" "$AWS_ACCOUNT_NR" "$CONTAINER_NAME"
\ No newline at end of file
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
index ac8a03d..0b73185 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -245,6 +245,7 @@ const routes = (
{settingsPage}
} />
+
);
export default app.createRoot(
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
index 3a2c6c2..7c056fd 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -202,9 +202,15 @@ const SidebarCustom = () => {
to="import-flow"
text="Import..."
/>
+ }
+ to="catalog-import"
+ text="Register..."
+ />
{/* End global nav */}
+
}
to="/settings"
diff --git a/packages/backend/package.json b/packages/backend/package.json
index b4cce5c..d8a94c1 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -51,6 +51,7 @@
"@internal/backstage-plugin-scaffolder-backend-module-import-flow": "^1.3.0",
"@octokit/request-error": "^3.0.3",
"app": "link:../app",
+ "@internal/backstage-plugin-scaffolder-backend-module-mft-actions-backend": "^0.1.0",
"better-sqlite3": "^9.0.0",
"dockerode": "^3.3.1",
"express": "^4.19.2",
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
index ad95680..950606a 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -1,6 +1,6 @@
import { createBackend } from '@backstage/backend-defaults';
import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha';
-import { createBackendModule } from '@backstage/backend-plugin-api';
+import {coreServices, createBackendModule} from '@backstage/backend-plugin-api';
import {
ExtractParametersAction,
createYamlAction,
@@ -8,6 +8,8 @@ import {
import { rootHttpRouterServiceFactory } from '@backstage/backend-defaults/rootHttpRouter';
import { NextFunction, Request, Response, Router } from 'express';
+import {callMftApi} from '@internal/backstage-plugin-scaffolder-backend-module-mft-actions-backend'
+
const backend = createBackend();
backend.add(
@@ -44,10 +46,12 @@ const scaffolderModuleCustomExtensions = createBackendModule({
env.registerInit({
deps: {
scaffolder: scaffolderActionsExtensionPoint,
+ config: coreServices.rootConfig,
},
- async init({ scaffolder }) {
+ async init({ scaffolder, config }) {
scaffolder.addActions(new (ExtractParametersAction as any)());
scaffolder.addActions(new (createYamlAction as any)());
+ scaffolder.addActions(new (callMftApi as any)(config));
},
});
},
@@ -82,4 +86,5 @@ backend.add(import('@backstage/plugin-search-backend/alpha'));
backend.add(import('@backstage/plugin-search-backend-module-catalog/alpha'));
backend.add(import('@backstage/plugin-search-backend-module-techdocs/alpha'));
+// backend.add(import('backstage-plugin-scaffolder-backend-module-mft-actions-backend'));
backend.start();
diff --git a/platform-scripts/local_build_and_push_devhub_container_to_docker.sh b/platform-scripts/local_build_and_push_devhub_container_to_docker.sh
new file mode 100644
index 0000000..7b88a42
--- /dev/null
+++ b/platform-scripts/local_build_and_push_devhub_container_to_docker.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+set -e
+echo "----------------------- Build & push TIBCO Developer Hub container To DockerHub------------------------------";
+start_deploy=$(date +%s)
+version=v$(date +%s)
+# version=v1679073350
+# https://hub.docker.com/repository/docker/mleijdek/tibco-dh-custom
+
+# Get Other variables
+aws_profile=${1}
+aws_region=${2}
+aws_account_nr=${3}
+container_name=${4}
+
+echo " aws_account_nr: |$aws_account_nr|";
+echo " aws_profile: |$aws_profile|";
+echo " aws_region: |$aws_region|";
+echo "container image repository: |$container_name|"
+echo " version: |$version|"
+
+# Step 1] Build the code
+cd ./../
+
+#Step 2] Login to docker:
+docker login -u mleijdek -p Tcoa4b4b*oct docker.io
+#Step 3] Build container
+echo "Building container: |mleijdek/$container_name:$version|"
+docker build -f ./Dockerfile -t "mleijdek/$container_name:$version" .
+cd ./platform-scripts
+#Step 4] Tag container
+echo " Tag container: |$version|"
+docker tag "mleijdek/$container_name:$version" "mleijdek/$container_name:latest"
+
+#Step 5] Push container
+##docker push "mleijdek/tibco-dh-custom/$container_name:$version"
+echo " Push container: |$version|"
+docker push "docker.io/mleijdek/$container_name:$version"
+
+# Command to SSH into the pod
+# kubectl exec -n --stdin --tty -- /bin/bash
+
+# Command to tail the logs of the pod
+# kubectl logs -n
+
+
+# Timing
+end_deploy=$(date +%s)
+runtime_deploy=$((end_deploy-start_deploy))
+
+convertsecs() {
+ ((h=${1}/3600))
+ ((m=(${1}%3600)/60))
+ ((s=${1}%60))
+ printf "%02d Hour(s), %02d Minute(s) and %02d Second(s)\n" $h $m $s
+}
+# Calculate minutes
+echo "-------------------------------------------------------------------------";
+echo " ------ DOCKER CONTAINER IMAGE UPLOADED !! ------";
+echo "-------------------------------------------------------------------------";
+echo "-- It took $(convertsecs $runtime_deploy) for the building of the TIBCO Developer Hub custom docker image and pushing it to ECR..."
+echo "-------------------------------------------------------------------------";
+echo "Now install the custom version of the TIBCO Developer Hub in the control plane, using the following container URL..."
+echo "Container Image URL: |$aws_account_nr.dkr.ecr.$aws_region.docker.com/$container_name:$version|"
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/.eslintrc.js b/plugins/scaffolder-backend-module-mft-actions-backend/.eslintrc.js
new file mode 100644
index 0000000..e2a53a6
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/.eslintrc.js
@@ -0,0 +1 @@
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/README.md b/plugins/scaffolder-backend-module-mft-actions-backend/README.md
new file mode 100644
index 0000000..5c5fa5f
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/README.md
@@ -0,0 +1,14 @@
+# scaffolder-backend-module-mft-actions
+
+Welcome to the scaffolder-backend-module-mft-actions backend plugin!
+
+_This plugin was created through the Backstage CLI_
+
+## Getting started
+
+Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn
+start` in the root directory, and then navigating to [/scaffolder-backend-module-mft-actions/health](http://localhost:7007/api/scaffolder-backend-module-mft-actions/health).
+
+You can also serve the plugin in isolation by running `yarn start` in the plugin directory.
+This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads.
+It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory.
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/dev/index.ts b/plugins/scaffolder-backend-module-mft-actions-backend/dev/index.ts
new file mode 100644
index 0000000..504e0c8
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/dev/index.ts
@@ -0,0 +1,8 @@
+import { createBackend } from '@backstage/backend-defaults';
+
+const backend = createBackend();
+
+backend.add(import('@backstage/plugin-auth-backend'));
+backend.add(import('@backstage/plugin-auth-backend-module-guest-provider'));
+
+backend.start();
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/package.json b/plugins/scaffolder-backend-module-mft-actions-backend/package.json
new file mode 100644
index 0000000..563dc7f
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/package.json
@@ -0,0 +1,49 @@
+{
+ "name": "@internal/backstage-plugin-scaffolder-backend-module-mft-actions-backend",
+ "version": "0.1.0",
+ "main": "src/index.ts",
+ "types": "src/index.ts",
+ "license": "Apache-2.0",
+ "private": true,
+ "publishConfig": {
+ "access": "public",
+ "main": "dist/index.cjs.js",
+ "types": "dist/index.d.ts"
+ },
+ "backstage": {
+ "role": "backend-plugin"
+ },
+ "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": "^0.23.3",
+ "@backstage/backend-defaults": "^0.4.0",
+ "@backstage/backend-plugin-api": "^0.7.0",
+ "@backstage/config": "^1.2.0",
+ "@backstage/plugin-scaffolder-node": "^0.6.2",
+ "axios": "^1.7.9",
+ "express": "^4.17.1",
+ "express-promise-router": "^4.1.0",
+ "node-fetch": "^2.6.7"
+ },
+ "devDependencies": {
+ "@backstage/backend-test-utils": "^0.4.4",
+ "@backstage/cli": "^0.26.10",
+ "@backstage/plugin-auth-backend": "^0.22.8",
+ "@backstage/plugin-auth-backend-module-guest-provider": "^0.1.7",
+ "@types/express": "*",
+ "@types/supertest": "^2.0.12",
+ "msw": "^2.3.1",
+ "supertest": "^6.2.4"
+ },
+ "files": [
+ "dist"
+ ]
+}
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/src/actions/mft/call-mft-api.ts b/plugins/scaffolder-backend-module-mft-actions-backend/src/actions/mft/call-mft-api.ts
new file mode 100644
index 0000000..1d598a0
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/src/actions/mft/call-mft-api.ts
@@ -0,0 +1,147 @@
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
+import axios from 'axios';
+import { Config } from '@backstage/config';
+import https from "node:https";
+
+const DIV = '-------------------------------------------------------------------------------------------'
+
+export interface MFTConfig {
+ logger: any;
+ baseUrl: string;
+ username: string;
+ password: string;
+}
+
+export async function callMFT(config: MFTConfig, endpoint: string, method = 'get', data?: any) {
+ let mRes;
+
+ try {
+ mRes = await axios({
+ method,
+ url: config.baseUrl + endpoint,
+ data,
+ httpsAgent: new https.Agent({
+ // This is because they use a self-signed certificate TODO: Remove this in production
+ rejectUnauthorized: false
+ }),
+ auth: {
+ username: config.username,
+ password: config.password
+ }
+ })
+ } catch (error: any) {
+ config.logger.error('Error calling MFT API...');
+ config.logger.error(`Status: ${ error.status}`);
+ if(error.response?.data) {
+ let eMes = error.response.data
+ if(typeof error.response.data === 'object'){
+ eMes = JSON.stringify(error.response.data, null, 2);
+ config.logger.error(`Error Data: ${ JSON.stringify(error.response.data, null, 2)}`);
+ }
+ config.logger.error(`Error Data: ${ eMes}`);
+ throw new Error(eMes);
+ }
+
+ // config.logger.error('Error:' , error);
+ throw error;
+ }
+
+ // if(mRes.data) {
+ return mRes.data;
+ // } else {
+ // return
+ // }
+
+}
+
+
+export function callMftApi(config: Config) {
+ // Get from config
+ const mftBaseUrl = config.getString('mft.baseUrl');
+ const mftUser = config.getString('mft.username');
+ const mftPass = config.getString('mft.password');
+
+ if (
+ !(
+ mftBaseUrl &&
+ mftUser &&
+ mftPass
+ )
+ ) {
+ throw new Error(
+ 'Invalid configuration in app-config, missing one of the following property in mft object, baseUrl, username or password',
+ );
+ }
+
+ return createTemplateAction<{
+ endpoint: string;
+ method?: string;
+ mftInput?: any;
+ }>({
+ id: 'tibco:call-mft-api',
+ schema: {
+ input: {
+ required: ['endpoint'],
+ type: 'object',
+ properties: {
+ endpoint: {
+ type: 'string',
+ title: 'endpoint',
+ description: 'The MFT endpoint to call',
+ },
+ method: {
+ type: 'string',
+ title: 'method',
+ description: 'method (GET, POST, PUT, DELETE) to use; default is GET',
+ },
+ mftInput: {
+ type: 'object',
+ title: 'mftInput',
+ description: 'If method is POST or PUT, this is the data to send',
+ },
+
+ },
+ },
+ output: {
+ required: ['mftResult'],
+ type: 'object',
+ properties: {
+ name: {
+ type: 'object',
+ title: 'mftResult',
+ description: 'The result from MFT',
+ },
+ },
+ },
+ },
+ async handler(ctx) {
+
+ ctx.logger.info(DIV);
+ ctx.logger.info('--- CALLING MFT API');
+ ctx.logger.info(DIV);
+
+
+ ctx.logger.info(`--- MFT Username: ${mftUser}`);
+ ctx.logger.info(`--- MFT BASE URL: ${mftBaseUrl}`);
+ ctx.logger.info(`--- MFT Endpoint: ${ctx.input.endpoint}`);
+ // TODO: Add method and input data
+ ctx.logger.info(`--- MFT Method: ${ctx.input.method}`);
+ ctx.logger.info(`--- MFT Input: \n${ JSON.stringify(ctx.input.mftInput, null, 2)}`);
+
+ ctx.logger.info(DIV);
+ ctx.logger.info('--- Calling MFT API...');
+ const mftResult = await callMFT({
+ logger: ctx.logger,
+ baseUrl: mftBaseUrl,
+ username: mftUser,
+ password: mftPass
+ }, ctx.input.endpoint, ctx.input.method, ctx.input.mftInput);
+ ctx.logger.info(DIV);
+ ctx.logger.info('--- MFT API Result:');
+ ctx.logger.info(JSON.stringify(mftResult, null, 2));
+ ctx.logger.info(DIV);
+
+ ctx.output('mftResult', mftResult);
+ },
+ });
+}
\ No newline at end of file
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/src/actions/mft/index.ts b/plugins/scaffolder-backend-module-mft-actions-backend/src/actions/mft/index.ts
new file mode 100644
index 0000000..fe5fdc6
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/src/actions/mft/index.ts
@@ -0,0 +1 @@
+export { callMftApi } from './call-mft-api';
\ No newline at end of file
diff --git a/plugins/scaffolder-backend-module-mft-actions-backend/src/index.ts b/plugins/scaffolder-backend-module-mft-actions-backend/src/index.ts
new file mode 100644
index 0000000..0dcfc45
--- /dev/null
+++ b/plugins/scaffolder-backend-module-mft-actions-backend/src/index.ts
@@ -0,0 +1 @@
+export * from './actions/mft';
diff --git a/tibco-developer-hub-fork.code-workspace b/tibco-developer-hub-fork.code-workspace
new file mode 100644
index 0000000..8641361
--- /dev/null
+++ b/tibco-developer-hub-fork.code-workspace
@@ -0,0 +1,9 @@
+{
+ "folders": [
+ {
+ "name": "tibco-developer-hub-fork",
+ "path": "."
+ }
+ ],
+ "settings": {}
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index c7880e2..49110af 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2210,6 +2210,47 @@
winston "^3.2.1"
winston-transport "^4.5.0"
+"@backstage/backend-app-api@^0.9.3":
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/@backstage/backend-app-api/-/backend-app-api-0.9.3.tgz#5d5c82cbd4e5354089af17e2655963884549e7e6"
+ integrity sha512-K4M5Wl3Bu7+4xRpaGdQtEi2iVFqQH766zl+R7lK1n4q/NVWEpulJpmwzPxP45xsJUCJeFkjL+dJn2pw+iS2wHQ==
+ dependencies:
+ "@backstage/backend-common" "^0.24.1"
+ "@backstage/backend-plugin-api" "^0.8.1"
+ "@backstage/cli-common" "^0.1.14"
+ "@backstage/cli-node" "^0.2.7"
+ "@backstage/config" "^1.2.0"
+ "@backstage/config-loader" "^1.9.0"
+ "@backstage/errors" "^1.2.4"
+ "@backstage/plugin-auth-node" "^0.5.1"
+ "@backstage/plugin-permission-node" "^0.8.2"
+ "@backstage/types" "^1.1.1"
+ "@manypkg/get-packages" "^1.1.3"
+ compression "^1.7.4"
+ cookie "^0.6.0"
+ cors "^2.8.5"
+ express "^4.17.1"
+ express-promise-router "^4.1.0"
+ fs-extra "^11.2.0"
+ helmet "^6.0.0"
+ jose "^5.0.0"
+ knex "^3.0.0"
+ lodash "^4.17.21"
+ logform "^2.3.2"
+ luxon "^3.0.0"
+ minimatch "^9.0.0"
+ minimist "^1.2.5"
+ morgan "^1.10.0"
+ node-fetch "^2.7.0"
+ node-forge "^1.3.1"
+ path-to-regexp "^6.2.1"
+ selfsigned "^2.0.0"
+ stoppable "^1.1.0"
+ triple-beam "^1.4.1"
+ uuid "^9.0.0"
+ winston "^3.2.1"
+ winston-transport "^4.5.0"
+
"@backstage/backend-app-api@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@backstage/backend-app-api/-/backend-app-api-1.0.2.tgz#9cf6246ea11c147dff66e3f4c79f1c233a438444"
@@ -2655,6 +2696,81 @@
yn "^4.0.0"
zod "^3.22.4"
+"@backstage/backend-defaults@^0.4.0":
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/@backstage/backend-defaults/-/backend-defaults-0.4.4.tgz#c41c64f4fa69abab604539d6a0e5a18fa38daa03"
+ integrity sha512-wQmLNxpQPykzdvVcKNUbS0VMJZCRHYYHY/0cLJ/npg8Gpq+pb85Dh+dLV61HhzF+cbig5aRgM2lql7wheyVGlw==
+ dependencies:
+ "@aws-sdk/abort-controller" "^3.347.0"
+ "@aws-sdk/client-codecommit" "^3.350.0"
+ "@aws-sdk/client-s3" "^3.350.0"
+ "@aws-sdk/credential-providers" "^3.350.0"
+ "@aws-sdk/types" "^3.347.0"
+ "@backstage/backend-app-api" "^0.9.3"
+ "@backstage/backend-common" "^0.24.1"
+ "@backstage/backend-dev-utils" "^0.1.5"
+ "@backstage/backend-plugin-api" "^0.8.1"
+ "@backstage/cli-common" "^0.1.14"
+ "@backstage/config" "^1.2.0"
+ "@backstage/config-loader" "^1.9.0"
+ "@backstage/errors" "^1.2.4"
+ "@backstage/integration" "^1.14.0"
+ "@backstage/integration-aws-node" "^0.1.12"
+ "@backstage/plugin-auth-node" "^0.5.1"
+ "@backstage/plugin-events-node" "^0.3.10"
+ "@backstage/plugin-permission-node" "^0.8.2"
+ "@backstage/types" "^1.1.1"
+ "@google-cloud/storage" "^7.0.0"
+ "@keyv/memcache" "^1.3.5"
+ "@keyv/redis" "^2.5.3"
+ "@manypkg/get-packages" "^1.1.3"
+ "@octokit/rest" "^19.0.3"
+ "@opentelemetry/api" "^1.3.0"
+ "@types/cors" "^2.8.6"
+ "@types/express" "^4.17.6"
+ archiver "^6.0.0"
+ base64-stream "^1.0.0"
+ better-sqlite3 "^11.0.0"
+ compression "^1.7.4"
+ concat-stream "^2.0.0"
+ cookie "^0.6.0"
+ cors "^2.8.5"
+ cron "^3.0.0"
+ express "^4.17.1"
+ express-promise-router "^4.1.0"
+ fs-extra "^11.2.0"
+ git-url-parse "^14.0.0"
+ helmet "^6.0.0"
+ isomorphic-git "^1.23.0"
+ jose "^5.0.0"
+ keyv "^4.5.2"
+ knex "^3.0.0"
+ lodash "^4.17.21"
+ logform "^2.3.2"
+ luxon "^3.0.0"
+ minimatch "^9.0.0"
+ minimist "^1.2.5"
+ morgan "^1.10.0"
+ mysql2 "^3.0.0"
+ node-fetch "^2.7.0"
+ node-forge "^1.3.1"
+ p-limit "^3.1.0"
+ path-to-regexp "^6.2.1"
+ pg "^8.11.3"
+ pg-connection-string "^2.3.0"
+ pg-format "^1.0.4"
+ raw-body "^2.4.1"
+ selfsigned "^2.0.0"
+ stoppable "^1.1.0"
+ tar "^6.1.12"
+ triple-beam "^1.4.1"
+ uuid "^9.0.0"
+ winston "^3.2.1"
+ winston-transport "^4.5.0"
+ yauzl "^3.0.0"
+ yn "^4.0.0"
+ zod "^3.22.4"
+
"@backstage/backend-defaults@^0.5.2", "@backstage/backend-defaults@^0.5.3":
version "0.5.3"
resolved "https://registry.yarnpkg.com/@backstage/backend-defaults/-/backend-defaults-0.5.3.tgz#7e562d394ba4c9eac651e7b54593a4b4aefafe74"
@@ -2825,6 +2941,22 @@
knex "^3.0.0"
luxon "^3.0.0"
+"@backstage/backend-plugin-api@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@backstage/backend-plugin-api/-/backend-plugin-api-1.1.0.tgz#bf9d99f24e9164e62ce8b907ed5d5604b520805b"
+ integrity sha512-JlbiRg9oGSEHZol9f0puJDhiD1C2dNjp3xdR3S6AhHP3o1J9jVkN7tCpyaiyzkapr1bzPjcxwK3LpCDCjLzMdw==
+ dependencies:
+ "@backstage/cli-common" "^0.1.15"
+ "@backstage/config" "^1.3.1"
+ "@backstage/errors" "^1.2.6"
+ "@backstage/plugin-auth-node" "^0.5.5"
+ "@backstage/plugin-permission-common" "^0.8.3"
+ "@backstage/types" "^1.2.0"
+ "@types/express" "^4.17.6"
+ "@types/luxon" "^3.0.0"
+ knex "^3.0.0"
+ luxon "^3.0.0"
+
"@backstage/backend-tasks@^0.5.18", "@backstage/backend-tasks@^0.5.26", "@backstage/backend-tasks@^0.5.27":
version "0.5.27"
resolved "https://registry.yarnpkg.com/@backstage/backend-tasks/-/backend-tasks-0.5.27.tgz#e79517412135ddc2716152decf8e3fd6296c3a88"
@@ -2844,6 +2976,37 @@
uuid "^9.0.0"
zod "^3.22.4"
+"@backstage/backend-test-utils@^0.4.4":
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/@backstage/backend-test-utils/-/backend-test-utils-0.4.4.tgz#530fb02ecb104447a8ef109e601710192efa0929"
+ integrity sha512-3etGdwBwa4d1P7QeLVfn1Q3gPNFarjB3713DY5bXJ7Sdm6mduFSlZE0eET2EPZvQSIMX7B07N70eWtv8eSDf8Q==
+ dependencies:
+ "@backstage/backend-app-api" "^0.8.0"
+ "@backstage/backend-defaults" "^0.4.0"
+ "@backstage/backend-plugin-api" "^0.7.0"
+ "@backstage/config" "^1.2.0"
+ "@backstage/errors" "^1.2.4"
+ "@backstage/plugin-auth-node" "^0.4.17"
+ "@backstage/plugin-events-node" "^0.3.8"
+ "@backstage/types" "^1.1.1"
+ "@keyv/memcache" "^1.3.5"
+ "@keyv/redis" "^2.5.3"
+ "@types/keyv" "^4.2.0"
+ better-sqlite3 "^11.0.0"
+ cookie "^0.6.0"
+ express "^4.17.1"
+ fs-extra "^11.0.0"
+ keyv "^4.5.2"
+ knex "^3.0.0"
+ msw "^1.0.0"
+ mysql2 "^3.0.0"
+ pg "^8.11.3"
+ pg-connection-string "^2.3.0"
+ testcontainers "^10.0.0"
+ textextensions "^5.16.0"
+ uuid "^9.0.0"
+ yn "^4.0.0"
+
"@backstage/catalog-client@^1.6.5", "@backstage/catalog-client@^1.6.6", "@backstage/catalog-client@^1.7.0", "@backstage/catalog-client@^1.7.1", "@backstage/catalog-client@^1.8.0":
version "1.8.0"
resolved "https://registry.yarnpkg.com/@backstage/catalog-client/-/catalog-client-1.8.0.tgz#a618569abc552cadade18e29ce24e57ed0502fdc"
@@ -2854,6 +3017,16 @@
cross-fetch "^4.0.0"
uri-template "^2.0.0"
+"@backstage/catalog-client@^1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@backstage/catalog-client/-/catalog-client-1.9.0.tgz#01ea350488f2f116fc223f7e78ab742e559b733c"
+ integrity sha512-c7nns3Qju97CNZZCxHZmQr2W8bJmLbLi2axVjtI12J4nrb3T3wCgByjyuAF6hPmUPyYvZLL812X5+SDqMOX5uQ==
+ dependencies:
+ "@backstage/catalog-model" "^1.7.2"
+ "@backstage/errors" "^1.2.6"
+ cross-fetch "^4.0.0"
+ uri-template "^2.0.0"
+
"@backstage/catalog-model@^1.4.4", "@backstage/catalog-model@^1.5.0", "@backstage/catalog-model@^1.6.0", "@backstage/catalog-model@^1.7.0", "@backstage/catalog-model@^1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.7.1.tgz#ac158f9e66f559614ea5546f01a66bb03090663b"
@@ -2864,6 +3037,16 @@
ajv "^8.10.0"
lodash "^4.17.21"
+"@backstage/catalog-model@^1.7.2":
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.7.2.tgz#728ef1a338db72be6f20eb15683bf8f68fe487c6"
+ integrity sha512-/qyU3hyRakv+tNDMFp5bRpGUYPgJs1xwM+vDN1NIzSTqtJNU3K4heBL1hDlBNlthQ3BgNZVInUEMk589XN/PWA==
+ dependencies:
+ "@backstage/errors" "^1.2.6"
+ "@backstage/types" "^1.2.0"
+ ajv "^8.10.0"
+ lodash "^4.17.21"
+
"@backstage/cli-common@^0.1.13", "@backstage/cli-common@^0.1.14", "@backstage/cli-common@^0.1.15":
version "0.1.15"
resolved "https://registry.yarnpkg.com/@backstage/cli-common/-/cli-common-0.1.15.tgz#20ea69cdee5025bdbdba38492ec174b1d8d470e3"
@@ -3148,6 +3331,15 @@
"@backstage/types" "^1.2.0"
ms "^2.1.3"
+"@backstage/config@^1.3.1":
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/@backstage/config/-/config-1.3.1.tgz#19669d1c7c923e6f612aa02446226e7f2f71ff0a"
+ integrity sha512-2WcfyfE06zqhVxuKRj6vrKXBk9iIqLuAMCcu4EZdyW6vmsiPo8t7Y54CB8ma1u3+GJf5hct9p/xiqIjeObyOFA==
+ dependencies:
+ "@backstage/errors" "^1.2.6"
+ "@backstage/types" "^1.2.0"
+ ms "^2.1.3"
+
"@backstage/core-app-api@^1.13.0", "@backstage/core-app-api@^1.15.0", "@backstage/core-app-api@^1.15.2":
version "1.15.2"
resolved "https://registry.yarnpkg.com/@backstage/core-app-api/-/core-app-api-1.15.2.tgz#a31aae0e7a1cfcb2eab163b75b4141a31cff1982"
@@ -3348,6 +3540,14 @@
"@backstage/types" "^1.2.0"
serialize-error "^8.0.1"
+"@backstage/errors@^1.2.6":
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/@backstage/errors/-/errors-1.2.6.tgz#843a73d03433089f0a3b8a4530a53be013c34c6c"
+ integrity sha512-Zmpet5DS5670RHXIFUY/fcJbUxRbS1D/l+Ai7V9k3qGQw7TfCrtu5hiGaBAi1EjjJ0xdA8L9Y3Smyc7nDWB/YQ==
+ dependencies:
+ "@backstage/types" "^1.2.0"
+ serialize-error "^8.0.1"
+
"@backstage/eslint-plugin@^0.1.5", "@backstage/eslint-plugin@^0.1.8":
version "0.1.10"
resolved "https://registry.yarnpkg.com/@backstage/eslint-plugin/-/eslint-plugin-0.1.10.tgz#8f786ccc3c315dfe9b1cd3aa6d8435fd266a0574"
@@ -3466,6 +3666,22 @@
lodash "^4.17.21"
luxon "^3.0.0"
+"@backstage/integration@^1.16.0":
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/@backstage/integration/-/integration-1.16.0.tgz#b9acb765e0522d679d211f2b3b55acfae4ba214c"
+ integrity sha512-YGWOQOC338b9OFGbXbZcnNAjIArUy1YSgUrOxo/L8cPkRhEnIJ7F67PkWl+0V0eSrRiC4Gq/DbE/gB0N/1M4oQ==
+ dependencies:
+ "@azure/identity" "^4.0.0"
+ "@azure/storage-blob" "^12.5.0"
+ "@backstage/config" "^1.3.1"
+ "@backstage/errors" "^1.2.6"
+ "@octokit/auth-app" "^4.0.0"
+ "@octokit/rest" "^19.0.3"
+ cross-fetch "^4.0.0"
+ git-url-parse "^15.0.0"
+ lodash "^4.17.21"
+ luxon "^3.0.0"
+
"@backstage/plugin-api-docs@^0.11.6":
version "0.11.11"
resolved "https://registry.yarnpkg.com/@backstage/plugin-api-docs/-/plugin-api-docs-0.11.11.tgz#a2e8bdcad7955397b1792ab49ea08c10ef92bf23"
@@ -3835,6 +4051,29 @@
zod-to-json-schema "^3.21.4"
zod-validation-error "^3.4.0"
+"@backstage/plugin-auth-node@^0.5.5":
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.5.5.tgz#7c0ecea2eb5768aba85889abfe1f5e28bd51ef93"
+ integrity sha512-unTNpTgYk2OZ73fYkxwyKSj2jreGauNiSB70DYS+vOMLMplc3yv3hlYbEpeczDPwXu1v3ytU19zOWBRN3bPW8A==
+ dependencies:
+ "@backstage/backend-common" "^0.25.0"
+ "@backstage/backend-plugin-api" "^1.1.0"
+ "@backstage/catalog-client" "^1.9.0"
+ "@backstage/catalog-model" "^1.7.2"
+ "@backstage/config" "^1.3.1"
+ "@backstage/errors" "^1.2.6"
+ "@backstage/types" "^1.2.0"
+ "@types/express" "^4.17.6"
+ "@types/passport" "^1.0.3"
+ express "^4.17.1"
+ jose "^5.0.0"
+ lodash "^4.17.21"
+ passport "^0.7.0"
+ winston "^3.2.1"
+ zod "^3.22.4"
+ zod-to-json-schema "^3.21.4"
+ zod-validation-error "^3.4.0"
+
"@backstage/plugin-auth-react@^0.1.9":
version "0.1.9"
resolved "https://registry.yarnpkg.com/@backstage/plugin-auth-react/-/plugin-auth-react-0.1.9.tgz#6f420e82a1f6d2719e3685fe462349e0cedefa9e"
@@ -4090,7 +4329,7 @@
react-use "^17.2.4"
zen-observable "^0.10.0"
-"@backstage/plugin-events-node@^0.3.7", "@backstage/plugin-events-node@^0.3.8":
+"@backstage/plugin-events-node@^0.3.10", "@backstage/plugin-events-node@^0.3.7", "@backstage/plugin-events-node@^0.3.8":
version "0.3.10"
resolved "https://registry.yarnpkg.com/@backstage/plugin-events-node/-/plugin-events-node-0.3.10.tgz#253f46c588dfa69dfec783d96fbb22b71184aa61"
integrity sha512-A+x674f5VrrwkIxm3LskvnMC7Cw2HibYLvf89jIJFDLsimktOiKwKqv6o11yhqJjoUhaul+z/sDJeQsCMg+Dmg==
@@ -4227,6 +4466,19 @@
zod "^3.22.4"
zod-to-json-schema "^3.20.4"
+"@backstage/plugin-permission-common@^0.8.3":
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-common/-/plugin-permission-common-0.8.3.tgz#6fae02c69af677373c5565e6f2e768b3c1fc63b5"
+ integrity sha512-tZiREfcUyHRRxrl3yNOTGSAzv7boocmC9BsTh2uSPuVZfR54cFo3DhW0e2cEMzjQMPerfozvwC7aNPjTKPUfKw==
+ dependencies:
+ "@backstage/config" "^1.3.1"
+ "@backstage/errors" "^1.2.6"
+ "@backstage/types" "^1.2.0"
+ cross-fetch "^4.0.0"
+ uuid "^11.0.0"
+ zod "^3.22.4"
+ zod-to-json-schema "^3.20.4"
+
"@backstage/plugin-permission-node@^0.7.24", "@backstage/plugin-permission-node@^0.7.32":
version "0.7.32"
resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.32.tgz#e462a4c8d6d8021ae5d8ff64bec84e176641fd77"
@@ -4515,6 +4767,15 @@
"@backstage/plugin-permission-common" "^0.8.2"
"@backstage/types" "^1.2.0"
+"@backstage/plugin-scaffolder-common@^1.5.8":
+ version "1.5.8"
+ resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-common/-/plugin-scaffolder-common-1.5.8.tgz#4d55d0c72f7e4a7cf943260d0bd1d36cfcc48c9e"
+ integrity sha512-LXgzQXqbBKaMf9Ya7IXnE6YEAxNyOCeY931fbXPxEhkjRfmToODITGRCvM4dBDMWTjWwgrWBcFLwd8FIW9S+PA==
+ dependencies:
+ "@backstage/catalog-model" "^1.7.2"
+ "@backstage/plugin-permission-common" "^0.8.3"
+ "@backstage/types" "^1.2.0"
+
"@backstage/plugin-scaffolder-node@^0.3.3":
version "0.3.3"
resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.3.3.tgz#debce42879e6e8bc0235a856d3dbdbedb0108296"
@@ -4604,6 +4865,29 @@
zod "^3.22.4"
zod-to-json-schema "^3.20.4"
+"@backstage/plugin-scaffolder-node@^0.6.2":
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.6.2.tgz#fe8354bb8fd7655762a806dda6691b72eb820b50"
+ integrity sha512-Q8v2EN3Ze58Hlnghq+MFVB10tfHqRGgyQlwpZh/XfF8e/l/x5ML80vRImhT2OOPWX8fYmhmBR97WE0Hcx5HFdQ==
+ dependencies:
+ "@backstage/backend-common" "^0.25.0"
+ "@backstage/backend-plugin-api" "^1.1.0"
+ "@backstage/catalog-model" "^1.7.2"
+ "@backstage/errors" "^1.2.6"
+ "@backstage/integration" "^1.16.0"
+ "@backstage/plugin-scaffolder-common" "^1.5.8"
+ "@backstage/types" "^1.2.0"
+ concat-stream "^2.0.0"
+ fs-extra "^11.2.0"
+ globby "^11.0.0"
+ isomorphic-git "^1.23.0"
+ jsonschema "^1.2.6"
+ p-limit "^3.1.0"
+ tar "^6.1.12"
+ winston "^3.2.1"
+ zod "^3.22.4"
+ zod-to-json-schema "^3.20.4"
+
"@backstage/plugin-scaffolder-react@^1.10.0", "@backstage/plugin-scaffolder-react@^1.14.1":
version "1.14.1"
resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-react/-/plugin-scaffolder-react-1.14.1.tgz#f2ba72cd28b2dc42c4daeaf1fad20cf9b70f7d61"
@@ -5112,6 +5396,28 @@
resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.0.4.tgz#a7ddd6d55dfb89e341f5684c9717ee24fef62301"
integrity sha512-hPYRrKFoI+nuckPgDJfyYAkybFvheo4usS0Vw0HNAe+fmGBQA5Az37b/yStO284atBoqqdOUhKJ3d9Zw3PQkcQ==
+"@bundled-es-modules/cookie@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz#b41376af6a06b3e32a15241d927b840a9b4de507"
+ integrity sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==
+ dependencies:
+ cookie "^0.7.2"
+
+"@bundled-es-modules/statuses@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872"
+ integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==
+ dependencies:
+ statuses "^2.0.1"
+
+"@bundled-es-modules/tough-cookie@^0.1.6":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz#fa9cd3cedfeecd6783e8b0d378b4a99e52bde5d3"
+ integrity sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==
+ dependencies:
+ "@types/tough-cookie" "^4.0.5"
+ tough-cookie "^4.1.4"
+
"@changesets/types@^4.0.1":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0"
@@ -5749,6 +6055,11 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
+"@fastify/busboy@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
+ integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==
+
"@floating-ui/core@^1.6.0":
version "1.6.8"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12"
@@ -6232,6 +6543,39 @@
resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==
+"@inquirer/confirm@^5.0.0":
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.1.tgz#18385064b8275eb79fdba505ce527801804eea04"
+ integrity sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==
+ dependencies:
+ "@inquirer/core" "^10.1.2"
+ "@inquirer/type" "^3.0.2"
+
+"@inquirer/core@^10.1.2":
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.2.tgz#a9c5b9ed814a636e99b5c0a8ca4f1626d99fd75d"
+ integrity sha512-bHd96F3ezHg1mf/J0Rb4CV8ndCN0v28kUlrHqP7+ECm1C/A+paB7Xh2lbMk6x+kweQC+rZOxM/YeKikzxco8bQ==
+ dependencies:
+ "@inquirer/figures" "^1.0.9"
+ "@inquirer/type" "^3.0.2"
+ ansi-escapes "^4.3.2"
+ cli-width "^4.1.0"
+ mute-stream "^2.0.0"
+ signal-exit "^4.1.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/figures@^1.0.9":
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.9.tgz#9d8128f8274cde4ca009ca8547337cab3f37a4a3"
+ integrity sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==
+
+"@inquirer/type@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.2.tgz#baff9f8d70947181deb36772cd9a5b6876d3e60c"
+ integrity sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==
+
"@ioredis/commands@^1.1.1":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11"
@@ -6582,6 +6926,13 @@
dependencies:
ioredis "^5.4.1"
+"@keyv/serialize@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@keyv/serialize/-/serialize-1.0.2.tgz#72507c4be94d8914434a4aa80661f8ac6131967f"
+ integrity sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==
+ dependencies:
+ buffer "^6.0.3"
+
"@kubernetes/client-node@0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.20.0.tgz#4447ae27fd6eef3d4830a5a039f3b84ffd5c5913"
@@ -7034,6 +7385,18 @@
strict-event-emitter "^0.2.4"
web-encoding "^1.1.5"
+"@mswjs/interceptors@^0.37.0":
+ version "0.37.5"
+ resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.37.5.tgz#9ce40c56be02b43fcbdb51b63f47e69fc4aaabe6"
+ integrity sha512-AAwRb5vXFcY4L+FvZ7LZusDuZ0vEe0Zm8ohn1FM6/X7A3bj4mqmkAcGRWuvC2JwSygNwHAAmMnAI73vPHeqsHA==
+ dependencies:
+ "@open-draft/deferred-promise" "^2.2.0"
+ "@open-draft/logger" "^0.3.0"
+ "@open-draft/until" "^2.0.0"
+ is-node-process "^1.2.0"
+ outvariant "^1.4.3"
+ strict-event-emitter "^0.5.1"
+
"@mui/core-downloads-tracker@^5.16.11":
version "5.16.11"
resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.11.tgz#0295ae13eeb449a87939fadf029e3382b0b9a802"
@@ -7834,11 +8197,29 @@
"@octokit/webhooks-types" "7.6.1"
aggregate-error "^3.1.0"
+"@open-draft/deferred-promise@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd"
+ integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==
+
+"@open-draft/logger@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954"
+ integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==
+ dependencies:
+ is-node-process "^1.2.0"
+ outvariant "^1.4.0"
+
"@open-draft/until@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca"
integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==
+"@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda"
+ integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==
+
"@openapi-contrib/openapi-schema-to-json-schema@~3.2.0":
version "3.2.0"
resolved "https://registry.yarnpkg.com/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.2.0.tgz#c4c92edd4478b5ecb3d99c29ecb355118259dccc"
@@ -10127,6 +10508,11 @@
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
+"@types/cookie@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
+ integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
+
"@types/cookiejar@^2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78"
@@ -10163,6 +10549,15 @@
"@types/node" "*"
"@types/ssh2" "*"
+"@types/dockerode@^3.3.29":
+ version "3.3.34"
+ resolved "https://registry.yarnpkg.com/@types/dockerode/-/dockerode-3.3.34.tgz#1cef62f1b98f80bd4460961dd8aac99b95a0fb6e"
+ integrity sha512-mH9SuIb8NuTDsMus5epcbTzSbEo52fKLBMo0zapzYIAIyfDqoIFn7L3trekHLKC8qmxGV++pPUP4YqQ9n5v2Zg==
+ dependencies:
+ "@types/docker-modem" "*"
+ "@types/node" "*"
+ "@types/ssh2" "*"
+
"@types/dompurify@^2.1.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.4.0.tgz#fd9706392a88e0e0e6d367f3588482d817df0ab9"
@@ -10370,6 +10765,13 @@
dependencies:
"@types/node" "*"
+"@types/keyv@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-4.2.0.tgz#65b97868ab757906f2dbb653590d7167ad023fa0"
+ integrity sha512-xoBtGl5R9jeKUhc8ZqeYaRDx04qqJ10yhhXYGmJ4Jr8qKpvMsDQQrNUvF/wUJ4klOtmJeJM+p2Xo3zp9uaC3tw==
+ dependencies:
+ keyv "*"
+
"@types/long@^4.0.0":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
@@ -10642,6 +11044,13 @@
dependencies:
"@types/node" "*"
+"@types/ssh2-streams@*":
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.12.tgz#e68795ba2bf01c76b93f9c9809e1f42f0eaaec5f"
+ integrity sha512-Sy8tpEmCce4Tq0oSOYdfqaBpA3hDM8SoxoFh5vzFsu2oL+znzGz8oVWW7xb4K920yYMUY+PIG31qZnFMfPWNCg==
+ dependencies:
+ "@types/node" "*"
+
"@types/ssh2@*":
version "1.15.1"
resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-1.15.1.tgz#4db4b6864abca09eb299fe5354fa591add412223"
@@ -10649,11 +11058,24 @@
dependencies:
"@types/node" "^18.11.18"
+"@types/ssh2@^0.5.48":
+ version "0.5.52"
+ resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-0.5.52.tgz#9dbd8084e2a976e551d5e5e70b978ed8b5965741"
+ integrity sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==
+ dependencies:
+ "@types/node" "*"
+ "@types/ssh2-streams" "*"
+
"@types/stack-utils@^2.0.0":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
+"@types/statuses@^2.0.4":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.5.tgz#f61ab46d5352fd73c863a1ea4e1cef3b0b51ae63"
+ integrity sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==
+
"@types/styled-jsx@^2.2.8":
version "2.2.9"
resolved "https://registry.yarnpkg.com/@types/styled-jsx/-/styled-jsx-2.2.9.tgz#e50b3f868c055bcbf9bc353eca6c10fdad32a53f"
@@ -10685,7 +11107,7 @@
dependencies:
"@types/estree" "*"
-"@types/tough-cookie@*":
+"@types/tough-cookie@*", "@types/tough-cookie@^4.0.5":
version "4.0.5"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304"
integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==
@@ -11307,7 +11729,7 @@ ansi-colors@^4.1.1, ansi-colors@^4.1.3:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
-ansi-escapes@^4.2.1:
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
@@ -11472,7 +11894,7 @@ archiver@^6.0.0:
tar-stream "^3.0.0"
zip-stream "^5.0.1"
-archiver@^7.0.0:
+archiver@^7.0.0, archiver@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/archiver/-/archiver-7.0.1.tgz#c9d91c350362040b8927379c7aa69c0655122f61"
integrity sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==
@@ -11814,7 +12236,7 @@ axios-cached-dns-resolve@0.5.2:
pino "^5.12.2"
pino-pretty "^2.6.0"
-axios@^1.0.0, axios@^1.6.0, axios@^1.6.7, axios@^1.7.4:
+axios@^1.0.0, axios@^1.6.0, axios@^1.6.7, axios@^1.7.4, axios@^1.7.9:
version "1.7.9"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a"
integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==
@@ -11969,11 +12391,44 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+bare-events@^2.0.0:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.3.tgz#899d7e4b2598a7978ef7ca315ce67eff0a16a727"
+ integrity sha512-pCO3aoRJ0MBiRMu8B7vUga0qL3L7gO1+SW7ku6qlSsMLwuhaawnuvZDyzJY/kyC63Un0XAB0OPUcfF1eTO/V+Q==
+
bare-events@^2.2.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.0.tgz#305b511e262ffd8b9d5616b056464f8e1b3329cc"
integrity sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==
+bare-fs@^2.1.1:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.5.tgz#05daa8e8206aeb46d13c2fe25a2cd3797b0d284a"
+ integrity sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==
+ dependencies:
+ bare-events "^2.0.0"
+ bare-path "^2.0.0"
+ bare-stream "^2.0.0"
+
+bare-os@^2.1.0:
+ version "2.4.4"
+ resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.4.4.tgz#01243392eb0a6e947177bb7c8a45123d45c9b1a9"
+ integrity sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==
+
+bare-path@^2.0.0, bare-path@^2.1.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e"
+ integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==
+ dependencies:
+ bare-os "^2.1.0"
+
+bare-stream@^2.0.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.6.1.tgz#b3b9874fab05b662c9aea2706a12fb0698c46836"
+ integrity sha512-eVZbtKM+4uehzrsj49KtCy3Pbg7kO1pJ3SKZ1SFrIH/0pnj9scuGGgUlNDf/7qS8WKtGdiJY5Kyhs/ivYPTB/g==
+ dependencies:
+ streamx "^2.21.0"
+
base64-arraybuffer@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
@@ -12704,6 +13159,11 @@ cli-width@^3.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+cli-width@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
+ integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
+
client-only@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
@@ -13241,7 +13701,7 @@ cookie@0.7.1:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
-cookie@0.7.2, cookie@^0.7.0, cookie@~0.7.2:
+cookie@0.7.2, cookie@^0.7.0, cookie@^0.7.2, cookie@~0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
@@ -13876,7 +14336,7 @@ debug@2.6.9, debug@^2.6.0:
dependencies:
ms "2.0.0"
-debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
+debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5:
version "4.4.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
@@ -14218,6 +14678,13 @@ dns-packet@^5.2.2:
dependencies:
"@leichtgewicht/ip-codec" "^2.0.1"
+docker-compose@^0.24.8:
+ version "0.24.8"
+ resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.24.8.tgz#6c125e6b9e04cf68ced47e2596ef2bb93ee9694e"
+ integrity sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==
+ dependencies:
+ yaml "^2.2.2"
+
docker-modem@^3.0.0:
version "3.0.8"
resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-3.0.8.tgz#ef62c8bdff6e8a7d12f0160988c295ea8705e77a"
@@ -14238,7 +14705,7 @@ docker-modem@^5.0.3:
split-ca "^1.0.1"
ssh2 "^1.15.0"
-dockerode@^3.3.1:
+dockerode@^3.3.1, dockerode@^3.3.5:
version "3.3.5"
resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-3.3.5.tgz#7ae3f40f2bec53ae5e9a741ce655fff459745629"
integrity sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==
@@ -16636,6 +17103,11 @@ headers-polyfill@3.2.5:
resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-3.2.5.tgz#6e67d392c9d113d37448fe45014e0afdd168faed"
integrity sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==
+headers-polyfill@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.3.tgz#922a0155de30ecc1f785bcf04be77844ca95ad07"
+ integrity sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==
+
helmet@^6.0.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/helmet/-/helmet-6.2.0.tgz#c29d62014be4c70b8ef092c9c5e54c8c26b8e16e"
@@ -18708,6 +19180,13 @@ keygrip@~1.1.0:
dependencies:
tsscmp "1.0.6"
+keyv@*:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-5.2.3.tgz#32db1a4aa8d05e2b8ab82688a57ddc5d2184a25c"
+ integrity sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==
+ dependencies:
+ "@keyv/serialize" "^1.0.2"
+
keyv@^4.0.0, keyv@^4.5.2, keyv@^4.5.3:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
@@ -20411,6 +20890,30 @@ msw@^1.0.0:
type-fest "^2.19.0"
yargs "^17.3.1"
+msw@^2.3.1:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/msw/-/msw-2.7.0.tgz#d13ff87f7e018fc4c359800ff72ba5017033fb56"
+ integrity sha512-BIodwZ19RWfCbYTxWTUfTXc+sg4OwjCAgxU1ZsgmggX/7S3LdUifsbUPJs61j0rWb19CZRGY5if77duhc0uXzw==
+ dependencies:
+ "@bundled-es-modules/cookie" "^2.0.1"
+ "@bundled-es-modules/statuses" "^1.0.1"
+ "@bundled-es-modules/tough-cookie" "^0.1.6"
+ "@inquirer/confirm" "^5.0.0"
+ "@mswjs/interceptors" "^0.37.0"
+ "@open-draft/deferred-promise" "^2.2.0"
+ "@open-draft/until" "^2.1.0"
+ "@types/cookie" "^0.6.0"
+ "@types/statuses" "^2.0.4"
+ graphql "^16.8.1"
+ headers-polyfill "^4.0.2"
+ is-node-process "^1.2.0"
+ outvariant "^1.4.3"
+ path-to-regexp "^6.3.0"
+ picocolors "^1.1.1"
+ strict-event-emitter "^0.5.1"
+ type-fest "^4.26.1"
+ yargs "^17.7.2"
+
multer@^1.4.5-lts.1:
version "1.4.5-lts.1"
resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac"
@@ -20453,6 +20956,11 @@ mute-stream@^1.0.0, mute-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
+mute-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b"
+ integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==
+
mysql2@^2.2.5:
version "2.3.3"
resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.3.tgz#944f3deca4b16629052ff8614fbf89d5552545a0"
@@ -21314,7 +21822,7 @@ os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
-outvariant@^1.2.1, outvariant@^1.4.0:
+outvariant@^1.2.1, outvariant@^1.4.0, outvariant@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873"
integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==
@@ -22497,6 +23005,22 @@ prop-types@15.x, prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.6.2, pr
object-assign "^4.1.1"
react-is "^16.13.1"
+proper-lockfile@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
+ integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
+ dependencies:
+ graceful-fs "^4.2.4"
+ retry "^0.12.0"
+ signal-exit "^3.0.2"
+
+properties-reader@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/properties-reader/-/properties-reader-2.3.0.tgz#f3ab84224c9535a7a36e011ae489a79a13b472b2"
+ integrity sha512-z597WicA7nDZxK12kZqHr2TcvwNU1GCfA5UwfDY/HDp3hXPoPlb5rlEx9bwGTiJnc0OqbBTkU975jDToth8Gxw==
+ dependencies:
+ mkdirp "^1.0.4"
+
property-expr@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8"
@@ -24195,7 +24719,7 @@ signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-signal-exit@^4.0.1:
+signal-exit@^4.0.1, signal-exit@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
@@ -24475,7 +24999,15 @@ sqlstring@^2.3.2:
resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c"
integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==
-ssh2@^1.11.0, ssh2@^1.15.0:
+ssh-remote-port-forward@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/ssh-remote-port-forward/-/ssh-remote-port-forward-1.0.4.tgz#72b0c5df8ec27ca300c75805cc6b266dee07e298"
+ integrity sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==
+ dependencies:
+ "@types/ssh2" "^0.5.48"
+ ssh2 "^1.4.0"
+
+ssh2@^1.11.0, ssh2@^1.15.0, ssh2@^1.4.0:
version "1.16.0"
resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.16.0.tgz#79221d40cbf4d03d07fe881149de0a9de928c9f0"
integrity sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==
@@ -24573,7 +25105,7 @@ static-eval@2.0.2:
dependencies:
escodegen "^1.8.1"
-statuses@2.0.1:
+statuses@2.0.1, statuses@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
@@ -24653,7 +25185,7 @@ streamsearch@^1.1.0:
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-streamx@^2.15.0:
+streamx@^2.15.0, streamx@^2.21.0:
version "2.21.1"
resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.21.1.tgz#f02979d8395b6b637d08a589fb514498bed55845"
integrity sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==
@@ -24676,6 +25208,11 @@ strict-event-emitter@^0.4.3:
resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz#ff347c8162b3e931e3ff5f02cfce6772c3b07eb3"
integrity sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==
+strict-event-emitter@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93"
+ integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==
+
strict-uri-encode@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
@@ -25132,6 +25669,17 @@ tar-fs@^2.0.0:
pump "^3.0.0"
tar-stream "^2.1.4"
+tar-fs@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.6.tgz#eaccd3a67d5672f09ca8e8f9c3d2b89fa173f217"
+ integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==
+ dependencies:
+ pump "^3.0.0"
+ tar-stream "^3.1.5"
+ optionalDependencies:
+ bare-fs "^2.1.1"
+ bare-path "^2.1.0"
+
tar-fs@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2"
@@ -25153,7 +25701,7 @@ tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@~2.2.0:
inherits "^2.0.3"
readable-stream "^3.1.1"
-tar-stream@^3.0.0:
+tar-stream@^3.0.0, tar-stream@^3.1.5:
version "3.1.7"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b"
integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==
@@ -25244,6 +25792,27 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
+testcontainers@^10.0.0:
+ version "10.16.0"
+ resolved "https://registry.yarnpkg.com/testcontainers/-/testcontainers-10.16.0.tgz#8a7e69ada5cd2c6cce1c6db72b3a3e8e412fcaf6"
+ integrity sha512-oxPLuOtrRWS11A+Yn0+zXB7GkmNarflWqmy6CQJk8KJ75LZs2/zlUXDpizTbPpCGtk4kE2EQYwFZjrE967F8Wg==
+ dependencies:
+ "@balena/dockerignore" "^1.0.2"
+ "@types/dockerode" "^3.3.29"
+ archiver "^7.0.1"
+ async-lock "^1.4.1"
+ byline "^5.0.0"
+ debug "^4.3.5"
+ docker-compose "^0.24.8"
+ dockerode "^3.3.5"
+ get-port "^5.1.1"
+ proper-lockfile "^4.1.2"
+ properties-reader "^2.3.0"
+ ssh-remote-port-forward "^1.0.4"
+ tar-fs "^3.0.6"
+ tmp "^0.2.3"
+ undici "^5.28.4"
+
text-decoder@^1.1.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.2.tgz#63dd2401c43895cecb292e2407db184b50ad60ac"
@@ -25266,6 +25835,11 @@ text-table@0.2.0, text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+textextensions@^5.16.0:
+ version "5.16.0"
+ resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-5.16.0.tgz#57dd60c305019bba321e848b1fdf0f99bfa59ec1"
+ integrity sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==
+
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -25349,7 +25923,7 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
-tmp@~0.2.1:
+tmp@^0.2.3, tmp@~0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
@@ -25399,7 +25973,7 @@ tosource@^2.0.0-alpha.3:
resolved "https://registry.yarnpkg.com/tosource/-/tosource-2.0.0-alpha.3.tgz#ef385dac9092e009bf25c018838ddaae436daeb6"
integrity sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==
-tough-cookie@^4.0.0, tough-cookie@^4.1.2:
+tough-cookie@^4.0.0, tough-cookie@^4.1.2, tough-cookie@^4.1.4:
version "4.1.4"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
@@ -25682,6 +26256,11 @@ type-fest@^2.19.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
+type-fest@^4.26.1:
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.31.0.tgz#a3de630c96eb77c281b6ba2affa5dae5fb3c326c"
+ integrity sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==
+
type-is@^1.6.16, type-is@^1.6.4, type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -25864,6 +26443,13 @@ undici-types@~6.20.0:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
+undici@^5.28.4:
+ version "5.28.4"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
+ integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
+ dependencies:
+ "@fastify/busboy" "^2.0.0"
+
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2"
@@ -26739,7 +27325,7 @@ wordwrap@^1.0.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^6.0.1:
+wrap-ansi@^6.0.1, wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
@@ -26944,6 +27530,11 @@ yaml@^2.0.0, yaml@^2.2.1:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773"
integrity sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==
+yaml@^2.2.2:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98"
+ integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
+
yargs-parser@20.2.4:
version "20.2.4"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
@@ -27029,6 +27620,11 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+yoctocolors-cjs@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242"
+ integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==
+
yup@^1.0.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/yup/-/yup-1.5.0.tgz#1aaa5e453f04424094b9c8a0e5292e0ac2d97246"