From b166e96fcbb67e03051412c661b0b54e78588e15 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 12:49:55 -0500 Subject: [PATCH 01/42] Add ADR for initial deployment choices. --- .../adr/0002-generate-dependency-diagram.md | 2 +- .../adr/0003-initial-deployment-choices.md | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 documents/adr/0003-initial-deployment-choices.md diff --git a/documents/adr/0002-generate-dependency-diagram.md b/documents/adr/0002-generate-dependency-diagram.md index fa5583b9..f7866997 100644 --- a/documents/adr/0002-generate-dependency-diagram.md +++ b/documents/adr/0002-generate-dependency-diagram.md @@ -1,4 +1,4 @@ -# 1. Generate dependency diagram +# 2. Generate dependency diagram Date: 2023-09-13 diff --git a/documents/adr/0003-initial-deployment-choices.md b/documents/adr/0003-initial-deployment-choices.md new file mode 100644 index 00000000..8df892dc --- /dev/null +++ b/documents/adr/0003-initial-deployment-choices.md @@ -0,0 +1,19 @@ +# 3. Initial deployment choices + +Date: 2023-09-20 + +## Status + +Accepted + +## Context + +The project team has a need to share our solution with our collaborators, as well as communicate project information such as the current status of work. The 10x team has access to TTS hosting options that do not require immediate approval. + +## Decision + +We will deploy server-side components to a 10x [Cloud.gov](https://www.cloud.gov) sandbox account. Initially, this will include a docassemble server. We will deploy client-side components to [Cloud.gov Pages](https://cloud.gov/pages/). Automation will be created for deployments, but it will initially be kept lightweight. + +## Consequences + +The project team will have a place to quickly test and share its work. From 0be81f5d3d01645ac0abee06af25f75409ee1bdd Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:20:08 -0500 Subject: [PATCH 02/42] Add cloud.gov pages build (I don't expect it to work with pnpm) --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 3c774f10..425f6c13 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,9 @@ "license": "CC0", "scripts": { "build": "pnpm --recursive --parallel build", + "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", + "link": "ln -sf ./src/frontend/dist _site", + "pages": "pnpm build && pnpm link", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, From 07d5d1ee11e0e4eb945fb8dab3f2bc97b0f42173 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:21:41 -0500 Subject: [PATCH 03/42] Try to install pnpm in the container --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 425f6c13..cedc14d2 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build": "pnpm --recursive --parallel build", "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", "link": "ln -sf ./src/frontend/dist _site", - "pages": "pnpm build && pnpm link", + "pages": "npm i -g pnpm && pnpm build && pnpm link", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, From 853d368f9027a919d3fc118f7e0fab192fb6ecf5 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:23:38 -0500 Subject: [PATCH 04/42] Install dependencies with pnpm after the cloud.gov pages initialization --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cedc14d2..ed37afa6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build": "pnpm --recursive --parallel build", "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", "link": "ln -sf ./src/frontend/dist _site", - "pages": "npm i -g pnpm && pnpm build && pnpm link", + "pages": "npm i -g pnpm && pnpm ci && pnpm build && pnpm link", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, From 5b5d5e04b5ea1b3b714c70d7c3bc27f43b61e521 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:24:59 -0500 Subject: [PATCH 05/42] Use "pnpm i" instead of "pnpm ci" (which isn't implemented in pnpm) in the Pages build. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ed37afa6..b012406d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build": "pnpm --recursive --parallel build", "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", "link": "ln -sf ./src/frontend/dist _site", - "pages": "npm i -g pnpm && pnpm ci && pnpm build && pnpm link", + "pages": "npm i -g pnpm && pnpm i && pnpm build && pnpm link", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, From f8b545ac176f2a88ba90bbcc3d9d8ab8d9e9e982 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:31:57 -0500 Subject: [PATCH 06/42] Tweak pnpm / Cloud.gov Pages hack --- .gitignore | 3 +++ package.json | 3 +-- packages/docassemble/.gitignore | 1 + pnpm-lock.yaml | 6 ++++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b509c88b..9715d6ce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ +*.code-workspace +_site +.vscode/ coverage/ node_modules/ diff --git a/package.json b/package.json index b012406d..88f9e11f 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ "scripts": { "build": "pnpm --recursive --parallel build", "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", - "link": "ln -sf ./src/frontend/dist _site", - "pages": "npm i -g pnpm && pnpm i && pnpm build && pnpm link", + "pages": "npm i -g pnpm && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, diff --git a/packages/docassemble/.gitignore b/packages/docassemble/.gitignore index 4c49bd78..c6a0d566 100644 --- a/packages/docassemble/.gitignore +++ b/packages/docassemble/.gitignore @@ -1 +1,2 @@ .env +dist/ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e534529..897d5f08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,6 +50,9 @@ importers: apps/frontend: dependencies: + '@atj/docassemble': + specifier: workspace:* + version: link:../../packages/docassemble '@atj/documents': specifier: workspace:* version: link:../../packages/documents @@ -118,6 +121,9 @@ importers: packages/docassemble: dependencies: + '@atj/documents': + specifier: workspace:* + version: link:../documents '@atj/interviews': specifier: workspace:* version: link:../interviews From b76ba2360dfbc35eb39e93179c9afcc76c9d93c9 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:39:11 -0500 Subject: [PATCH 07/42] Try wiping out the Cloud.gov dependencies before manually installing. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 88f9e11f..2c1dcb51 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "build": "pnpm --recursive --parallel build", "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", - "pages": "npm i -g pnpm && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", + "pages": "rm -rf node_modules && npm i -g pnpm && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, From ff053d7b9dc57795caaa7ceeba806b9847c8626d Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 13:56:57 -0500 Subject: [PATCH 08/42] Update Vite config to handle a BASEURL. --- apps/frontend/vite.config.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/apps/frontend/vite.config.ts b/apps/frontend/vite.config.ts index e07e1d82..9ba579c7 100644 --- a/apps/frontend/vite.config.ts +++ b/apps/frontend/vite.config.ts @@ -1,9 +1,25 @@ +import { execSync } from 'child_process'; + import { defineConfig } from 'vite'; import { configDefaults } from 'vitest/config'; import react from '@vitejs/plugin-react-swc'; +const BASEURL = process.env.BASEURL || '/'; +const GITHUB = { + owner: process.env.OWNER || 'gsa-tts', + repository: process.env.REPOSITORY || 'atj-platform', + branch: process.env.BRANCH || 'main', + commit: execSync('git rev-parse HEAD').toString().trim(), +}; + +const DEPLOYMENT_ID = + process.env.NODE_ENV === 'development' + ? 'local' + : `${GITHUB.owner}:${GITHUB.branch}`; + // https://vitejs.dev/config/ export default defineConfig({ + base: BASEURL, css: { preprocessorOptions: { scss: { @@ -15,6 +31,10 @@ export default defineConfig({ }, }, }, + define: { + 'import.meta.env.DEPLOYMENT_ID': JSON.stringify(DEPLOYMENT_ID), + 'import.meta.env.GITHUB': JSON.stringify(GITHUB), + }, plugins: [react()], test: { exclude: [...configDefaults.exclude, '**/tests/**'], From 23050aa2c842cbc9c8d23a0b926edc25682929e8 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 14:24:22 -0500 Subject: [PATCH 09/42] Remove unused script --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 2c1dcb51..c5d22aeb 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "license": "CC0", "scripts": { "build": "pnpm --recursive --parallel build", - "build:validation-ui": "cd src/web && npm install && npm run build && cd ../..", "pages": "rm -rf node_modules && npm i -g pnpm && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", "test": "pnpm --recursive --no-bail --parallel --if-present test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" From 3af9082578b0dc08a896c024e1465763ce3f68d3 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 14:27:04 -0500 Subject: [PATCH 10/42] Turn off Cloud.gov Pages build container caching. --- pages.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 pages.json diff --git a/pages.json b/pages.json new file mode 100644 index 00000000..b39113d0 --- /dev/null +++ b/pages.json @@ -0,0 +1,3 @@ +{ + "cache": false +} From 4aa1c9dfd74a69e9b4b4452645f65917ef939646 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 20 Sep 2023 15:16:50 -0500 Subject: [PATCH 11/42] Add a footer and links to the Github repository --- apps/frontend/src/app.tsx | 17 ++++++ .../components/document-assembler.tsx | 0 apps/frontend/src/components/footer.tsx | 53 +++++++++++++++++++ .../src/{views => }/components/header.tsx | 0 .../src/{views => }/components/usa-banner.tsx | 0 apps/frontend/src/{views => }/context.tsx | 3 ++ apps/frontend/src/{views => }/index.scss | 0 apps/frontend/src/index.ts | 3 +- apps/frontend/src/lib/github.ts | 27 ++++++++++ apps/frontend/src/{views => }/main.tsx | 0 .../src/{views/pages => routes}/index.tsx | 0 apps/frontend/src/views/app.tsx | 15 ------ apps/frontend/src/{views => }/vite-env.d.ts | 0 13 files changed, 102 insertions(+), 16 deletions(-) create mode 100644 apps/frontend/src/app.tsx rename apps/frontend/src/{views => }/components/document-assembler.tsx (100%) create mode 100644 apps/frontend/src/components/footer.tsx rename apps/frontend/src/{views => }/components/header.tsx (100%) rename apps/frontend/src/{views => }/components/usa-banner.tsx (100%) rename apps/frontend/src/{views => }/context.tsx (82%) rename apps/frontend/src/{views => }/index.scss (100%) create mode 100644 apps/frontend/src/lib/github.ts rename apps/frontend/src/{views => }/main.tsx (100%) rename apps/frontend/src/{views/pages => routes}/index.tsx (100%) delete mode 100644 apps/frontend/src/views/app.tsx rename apps/frontend/src/{views => }/vite-env.d.ts (100%) diff --git a/apps/frontend/src/app.tsx b/apps/frontend/src/app.tsx new file mode 100644 index 00000000..0cc8d130 --- /dev/null +++ b/apps/frontend/src/app.tsx @@ -0,0 +1,17 @@ +import { Header } from './components/header'; +import { Footer } from './components/footer'; +import { UsaBanner } from './components/usa-banner'; +import { HomePage } from './routes'; +import { useAppContext } from './context'; + +export const App = () => { + const context = useAppContext(); + return ( +
+ +
+ +
+
+ ); +}; diff --git a/apps/frontend/src/views/components/document-assembler.tsx b/apps/frontend/src/components/document-assembler.tsx similarity index 100% rename from apps/frontend/src/views/components/document-assembler.tsx rename to apps/frontend/src/components/document-assembler.tsx diff --git a/apps/frontend/src/components/footer.tsx b/apps/frontend/src/components/footer.tsx new file mode 100644 index 00000000..d3d26d67 --- /dev/null +++ b/apps/frontend/src/components/footer.tsx @@ -0,0 +1,53 @@ +import { type GithubRepository, getBranchTreeUrl } from '../lib/github'; + +type FooterProps = { + github: GithubRepository; +}; + +export const Footer = (props: FooterProps) => { + return ( + + ); +}; diff --git a/apps/frontend/src/views/components/header.tsx b/apps/frontend/src/components/header.tsx similarity index 100% rename from apps/frontend/src/views/components/header.tsx rename to apps/frontend/src/components/header.tsx diff --git a/apps/frontend/src/views/components/usa-banner.tsx b/apps/frontend/src/components/usa-banner.tsx similarity index 100% rename from apps/frontend/src/views/components/usa-banner.tsx rename to apps/frontend/src/components/usa-banner.tsx diff --git a/apps/frontend/src/views/context.tsx b/apps/frontend/src/context.tsx similarity index 82% rename from apps/frontend/src/views/context.tsx rename to apps/frontend/src/context.tsx index 7c691138..75cc61b2 100644 --- a/apps/frontend/src/views/context.tsx +++ b/apps/frontend/src/context.tsx @@ -1,4 +1,5 @@ import { createContext, useContext } from 'react'; +import { GithubRepository } from './lib/github'; export interface Backend { helloWorld(echoValue: string): string; @@ -6,10 +7,12 @@ export interface Backend { export interface Context { backend: Backend; + github: GithubRepository; } export const AppContext = createContext({ backend: {} as Backend, + github: {} as GithubRepository, }); export const useAppContext = () => { diff --git a/apps/frontend/src/views/index.scss b/apps/frontend/src/index.scss similarity index 100% rename from apps/frontend/src/views/index.scss rename to apps/frontend/src/index.scss diff --git a/apps/frontend/src/index.ts b/apps/frontend/src/index.ts index 323fd4b2..cccef888 100644 --- a/apps/frontend/src/index.ts +++ b/apps/frontend/src/index.ts @@ -1,7 +1,8 @@ -import { createAppRoot } from './views/main'; +import { createAppRoot } from './main'; createAppRoot(document.getElementById('root') as HTMLElement, { backend: { helloWorld: (str: string) => str, }, + github: import.meta.env.GITHUB, }); diff --git a/apps/frontend/src/lib/github.ts b/apps/frontend/src/lib/github.ts new file mode 100644 index 00000000..0347ae4d --- /dev/null +++ b/apps/frontend/src/lib/github.ts @@ -0,0 +1,27 @@ +export type GithubRepository = { + owner: string; + repository: string; + branch: string; + commit: string; +}; + +export const DEFAULT_REPOSITORY: GithubRepository = { + owner: 'gsa-tts', + repository: 'atj-platform', + branch: 'main', + commit: 'main', +}; + +export const getBranchTreeUrl = ( + github: GithubRepository, + useDefaultShortForm = true +) => { + if (useDefaultShortForm && github.branch === DEFAULT_REPOSITORY.branch) { + return `https://github.com/${github.owner}/${github.repository}`; + } + return `https://github.com/${github.owner}/${github.repository}/tree/${github.branch}`; +}; + +export const getNewIssueUrl = (github: GithubRepository) => { + return `https://github.com/${github.owner}/${github.repository}/issues/new/choose`; +}; diff --git a/apps/frontend/src/views/main.tsx b/apps/frontend/src/main.tsx similarity index 100% rename from apps/frontend/src/views/main.tsx rename to apps/frontend/src/main.tsx diff --git a/apps/frontend/src/views/pages/index.tsx b/apps/frontend/src/routes/index.tsx similarity index 100% rename from apps/frontend/src/views/pages/index.tsx rename to apps/frontend/src/routes/index.tsx diff --git a/apps/frontend/src/views/app.tsx b/apps/frontend/src/views/app.tsx deleted file mode 100644 index 72159c7e..00000000 --- a/apps/frontend/src/views/app.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Header } from './components/header'; -import { UsaBanner } from './components/usa-banner'; -import { HomePage } from './pages'; - -export const App = () => { - return ( -
- -
- <> - - -
- ); -}; diff --git a/apps/frontend/src/views/vite-env.d.ts b/apps/frontend/src/vite-env.d.ts similarity index 100% rename from apps/frontend/src/views/vite-env.d.ts rename to apps/frontend/src/vite-env.d.ts From dcd134e7841821080e4c5ec24861590cc33b174f Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 21 Sep 2023 09:11:05 -0500 Subject: [PATCH 12/42] Remove unused "infra" package reference. --- pnpm-workspace.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a3dd82a0..44665b75 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,3 @@ packages: - 'apps/**' - - 'infra' - 'packages/**' From 260b657a1c6f6abb360e0b58be1a380011d2ce91 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 21 Sep 2023 09:15:39 -0500 Subject: [PATCH 13/42] Initial cloud.gov docassemble configuration. NOTE: This is failing to deploy, because the available space in the 10x sandbox account doesn't accomodate docassemble. --- packages-python/docassemble-server/README.md | 23 +++ packages-python/docassemble-server/cloud.sh | 180 ++++++++++++++++++ .../docassemble-server/manifest.yml | 8 + 3 files changed, 211 insertions(+) create mode 100644 packages-python/docassemble-server/README.md create mode 100755 packages-python/docassemble-server/cloud.sh create mode 100644 packages-python/docassemble-server/manifest.yml diff --git a/packages-python/docassemble-server/README.md b/packages-python/docassemble-server/README.md new file mode 100644 index 00000000..50f3bd1a --- /dev/null +++ b/packages-python/docassemble-server/README.md @@ -0,0 +1,23 @@ +# atj-platform docassemble server + +This is a docassemble server for the ATJ Platform that may be run locally for development purposes or deployed to cloud.gov. + +## Local development + +```bash +docker-compose up +``` + +## Cloud.gov deployment + +To login with the Cloudfoundry CLI: + +```bash +cf login -a api.fr.cloud.gov --sso +``` + +Deployment operations are available via this script: + +```bash +./cloud.sh --help +``` diff --git a/packages-python/docassemble-server/cloud.sh b/packages-python/docassemble-server/cloud.sh new file mode 100755 index 00000000..095c5919 --- /dev/null +++ b/packages-python/docassemble-server/cloud.sh @@ -0,0 +1,180 @@ +#!/bin/bash +# +# This script will bootstrap the creation of a cloud.gov deployment +# environment, to be managed via Terraform. +# + +#set -eo pipefail + +CMS_SERVICE=cms-service +DEPLOY_USER=a2j-deployer +DEPLOY_USER_KEY=${DEPLOY_USER}-key + +usage() +{ + cat << EOF +Manage a cloud.gov deployment environment. + +Usage: cloud.sh -o -s + +OPERATION: + setup - create a new cloud.gov space + show - show Terraform S3 and cloud.gov credentials + export - when used with source, exports credentials to the environment + deploy - deploy the locally-built application via the Cloudfoundry CLI + rotate - replace current secrets with new secrets + +Options: + -o, --organization organization_name Cloud.gov organization name + -s, --space space_name Cloud.gov space name + -h Print usage +EOF +} + +validate_parameters() +{ + if [ -z ${operation+x} ]; then + printf "${RED}Please supply an operation.\n${NC}" + usage + exit 1 + fi + + if [ -z ${organization_name+x} ]; then + printf "${RED}Please provide an organization name.\n${NC}" + usage + exit 1 + fi + + if [ -z ${space_name+x} ]; then + printf "${RED}Please provide a space name.\n${NC}" + usage + exit 1 + fi +} + +space_exists() { + cf space "$1" >/dev/null 2>&1 +} + +service_exists() { + cf service "$1" >/dev/null 2>&1 +} + +service_key_exists() { + cf service-key "$1" "$2" >/dev/null 2>&1 +} + +export_service_key() { + echo "Querying for ${DEPLOY_USER_KEY}..." + SERVICE_KEY=$(cf service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} | tail -n +2) + echo "Exporting ${DEPLOY_USER_KEY} CF_USER, CF_PASSWORD..." + export CF_USER=$(echo $SERVICE_KEY | jq -r .username) + export CF_PASSWORD=$(echo $SERVICE_KEY | jq -r .password) +} + +export_environment() { + export_service_key +} + +setup() { + if space_exists "${space_name}" ; then + echo space "${space_name}" already created + else + cf create-space ${space_name} -o ${organization_name} + fi + + if service_exists "${DEPLOY_USER}" ; then + echo ${DEPLOY_USER} already created + else + cf create-service cloud-gov-service-account space-deployer ${DEPLOY_USER} + fi + + setup_keys + + export_environment +} + +setup_keys() { + if service_key_exists "${DEPLOY_USER}" "${DEPLOY_USER_KEY}" ; then + echo ${DEPLOY_USER_KEY} already created + else + echo "Creating ${DEPLOY_USER_KEY}..." + cf create-service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} + fi + + echo "To see service keys, execute './cloud.sh'" +} + +update_keys() { + if service_key_exists "${DEPLOY_USER}" "${DEPLOY_USER_KEY}" ; then + echo ${DEPLOY_USER_KEY} exists, deleting and recreating + cf delete-service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} + cf create-service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} + else + echo ${DEPLOY_USER_KEY} does not exist + fi +} + +print_service_key() { + cf service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} +} + +show() { + print_service_key +} + +deploy() { + export_environment + cf push -f manifest.yml +} + +rotate() { + update_keys + cat << EOF + + +You need to update CI/CD github secrets with ./cloud.sh show + + a2j-deployer-key.password => CF_PASSWORD_ENV + a2j-deployer-key.username => CF_USER_ENV +EOF +} + +while [ "$1" != "" ]; do + case $1 in + rotate | setup | show | export | deploy ) operation=$1 + ;; + -o | --organization ) shift + organization_name=$1 + ;; + -s | --space ) shift + space_name=$1 + ;; + -h | --help ) usage + exit + ;; + * ) usage + exit 1 + esac + shift +done + +validate_parameters + +# Target all operations to the provided organization/space pair. +cf target -o ${organization_name} -s ${space_name} + +case $operation in + rotate ) rotate + ;; + setup ) setup + ;; + show ) show + ;; + export ) export_environment + ;; + deploy ) deploy + ;; + * ) usage + exit 1 +esac diff --git a/packages-python/docassemble-server/manifest.yml b/packages-python/docassemble-server/manifest.yml new file mode 100644 index 00000000..5872e5f2 --- /dev/null +++ b/packages-python/docassemble-server/manifest.yml @@ -0,0 +1,8 @@ +--- +applications: + - name: docassemble-server + docker: + image: jhpyle/docassemble + memory: 2GB + disk_quota: 7168MB + instances: 1 From 3edb492c9add1ab4a7f88b7793076ffc216a52d0 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 21 Sep 2023 14:53:36 -0500 Subject: [PATCH 14/42] Initial attempt at docassemble docker configuration, to be pared down. --- packages-python/docassemble-server/Dockerfile | 48 +++++++++++++++++++ .../docassemble-server/docker-compose.yml | 32 ++++++++++--- 2 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 packages-python/docassemble-server/Dockerfile diff --git a/packages-python/docassemble-server/Dockerfile b/packages-python/docassemble-server/Dockerfile new file mode 100644 index 00000000..463fda57 --- /dev/null +++ b/packages-python/docassemble-server/Dockerfile @@ -0,0 +1,48 @@ +# As of writing, the docassemble image in 10.6GB, which exceeds the available +# space in our cloud.gov sandbox account. This multi-stage build leverages the +# upstream docassemble image to build a new image that excludes resources we do +# not require for our use case. +# +# docassemble-os: https://github.com/jhpyle/docassemble-os/blob/master/Dockerfile +# docassemble: https://github.com/jhpyle/docassemble/blob/master/Dockerfile +FROM jhpyle/docassemble:latest as build-stage + +RUN apt-get -y remove \ + redis-server \ + postgresql +RUN apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +FROM scratch + +COPY --from=build-stage / / + +# EVERYTHING UNDER HERE WAS COPIED FROM THE UPSTREAM DOCKERFILE +USER root +RUN rm -rf /tmp/docassemble + +EXPOSE 80 443 9001 514 25 465 8080 8081 8082 5432 6379 4369 5671 5672 25672 +ENV \ + CONTAINERROLE="all" \ + LOCALE="en_US.UTF-8 UTF-8" \ + TIMEZONE="America/New_York" \ + SUPERVISORLOGLEVEL="info" \ + EC2="" \ + S3ENABLE="" \ + S3BUCKET="" \ + S3ACCESSKEY="" \ + S3SECRETACCESSKEY="" \ + S3REGION="" \ + DAHOSTNAME="" \ + USEHTTPS="" \ + USELETSENCRYPT="" \ + LETSENCRYPTEMAIL="" \ + BEHINDHTTPSLOADBALANCER="" \ + DBHOST="" \ + LOGSERVER="" \ + REDIS="" \ + RABBITMQ="" \ + DASUPERVISORUSERNAME="" \ + DASUPERVISORPASSWORD="" + +CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"] diff --git a/packages-python/docassemble-server/docker-compose.yml b/packages-python/docassemble-server/docker-compose.yml index e9b8869b..bfb1f9b1 100644 --- a/packages-python/docassemble-server/docker-compose.yml +++ b/packages-python/docassemble-server/docker-compose.yml @@ -2,24 +2,42 @@ version: '3' services: web: - image: jhpyle/docassemble + build: . ports: - '8011:80' - volumes: - - data:/usr/share/docassemble/data - - log:/usr/share/docassemble/log - - config:/usr/share/docassemble/config - - webapp:/usr/share/docassemble/webapp + # The available environment variables have defaults defined in the base image: + # https://github.com/jhpyle/docassemble/blob/master/Dockerfile + # Configuration documentation is available here: + # https://docassemble.org/docs/docker.html#configuration%20options + environment: + CONTAINERROLE: 'log:cron:mail:redis:rabbitmq' + LOCALE: 'en_US.UTF-8 UTF-8' + TIMEZONE: 'America/New_York' + SUPERVISORLOGLEVEL: 'info' + DAHOSTNAME: 'localhost' + DBHOST: 'postgres' + #LOGSERVER: '' + #REDIS: 'redis://redis' + #RABBITMQ: 'pyamqp://docassemble:secret-password@rabbitmq/' + #DASUPERVISORUSERNAME: '' + #DASUPERVISORPASSWORD: '' redis: image: 'redis:latest' + volumes: + - redis_data:/data postgres: image: 'postgres:latest' environment: POSTGRES_DB: docassemble POSTGRES_USER: docassemble POSTGRES_PASSWORD: secret-password + rabbitmq: + image: 'rabbitmq:latest' + environment: + RABBITMQ_DEFAULT_USER: docassemble + RABBITMQ_DEFAULT_PASS: secret-password volumes: - data: + redis_data: log: config: webapp: From bd10f1e98aa30259517361fc624f9f4173a250a5 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 21 Sep 2023 15:40:24 -0500 Subject: [PATCH 15/42] Pare down docker config --- packages-python/docassemble-server/Dockerfile | 53 +++---------------- packages-python/docassemble-server/README.md | 2 + .../docassemble-server/docker-compose.yml | 32 +---------- 3 files changed, 9 insertions(+), 78 deletions(-) diff --git a/packages-python/docassemble-server/Dockerfile b/packages-python/docassemble-server/Dockerfile index 463fda57..ae38d8b1 100644 --- a/packages-python/docassemble-server/Dockerfile +++ b/packages-python/docassemble-server/Dockerfile @@ -1,48 +1,7 @@ -# As of writing, the docassemble image in 10.6GB, which exceeds the available -# space in our cloud.gov sandbox account. This multi-stage build leverages the -# upstream docassemble image to build a new image that excludes resources we do -# not require for our use case. -# -# docassemble-os: https://github.com/jhpyle/docassemble-os/blob/master/Dockerfile -# docassemble: https://github.com/jhpyle/docassemble/blob/master/Dockerfile -FROM jhpyle/docassemble:latest as build-stage +# Relevant base images: +# docassemble-os: https://github.com/jhpyle/docassemble-os/blob/master/Dockerfile +# docassemble: https://github.com/jhpyle/docassemble/blob/master/Dockerfile +FROM jhpyle/docassemble:latest -RUN apt-get -y remove \ - redis-server \ - postgresql -RUN apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -FROM scratch - -COPY --from=build-stage / / - -# EVERYTHING UNDER HERE WAS COPIED FROM THE UPSTREAM DOCKERFILE -USER root -RUN rm -rf /tmp/docassemble - -EXPOSE 80 443 9001 514 25 465 8080 8081 8082 5432 6379 4369 5671 5672 25672 -ENV \ - CONTAINERROLE="all" \ - LOCALE="en_US.UTF-8 UTF-8" \ - TIMEZONE="America/New_York" \ - SUPERVISORLOGLEVEL="info" \ - EC2="" \ - S3ENABLE="" \ - S3BUCKET="" \ - S3ACCESSKEY="" \ - S3SECRETACCESSKEY="" \ - S3REGION="" \ - DAHOSTNAME="" \ - USEHTTPS="" \ - USELETSENCRYPT="" \ - LETSENCRYPTEMAIL="" \ - BEHINDHTTPSLOADBALANCER="" \ - DBHOST="" \ - LOGSERVER="" \ - REDIS="" \ - RABBITMQ="" \ - DASUPERVISORUSERNAME="" \ - DASUPERVISORPASSWORD="" - -CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"] +#ADD ./startup.sh /usr/local/bin/startup.sh +#CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"] diff --git a/packages-python/docassemble-server/README.md b/packages-python/docassemble-server/README.md index 50f3bd1a..be010495 100644 --- a/packages-python/docassemble-server/README.md +++ b/packages-python/docassemble-server/README.md @@ -2,6 +2,8 @@ This is a docassemble server for the ATJ Platform that may be run locally for development purposes or deployed to cloud.gov. +The configuration does not mount volumes for persistent data, because it is intended to be used as a disposable test environment. We may want to change this in the future, but for the moment the intention is to automate pushing data into the instance after startup. + ## Local development ```bash diff --git a/packages-python/docassemble-server/docker-compose.yml b/packages-python/docassemble-server/docker-compose.yml index bfb1f9b1..6cf6ffbf 100644 --- a/packages-python/docassemble-server/docker-compose.yml +++ b/packages-python/docassemble-server/docker-compose.yml @@ -10,34 +10,4 @@ services: # Configuration documentation is available here: # https://docassemble.org/docs/docker.html#configuration%20options environment: - CONTAINERROLE: 'log:cron:mail:redis:rabbitmq' - LOCALE: 'en_US.UTF-8 UTF-8' - TIMEZONE: 'America/New_York' - SUPERVISORLOGLEVEL: 'info' - DAHOSTNAME: 'localhost' - DBHOST: 'postgres' - #LOGSERVER: '' - #REDIS: 'redis://redis' - #RABBITMQ: 'pyamqp://docassemble:secret-password@rabbitmq/' - #DASUPERVISORUSERNAME: '' - #DASUPERVISORPASSWORD: '' - redis: - image: 'redis:latest' - volumes: - - redis_data:/data - postgres: - image: 'postgres:latest' - environment: - POSTGRES_DB: docassemble - POSTGRES_USER: docassemble - POSTGRES_PASSWORD: secret-password - rabbitmq: - image: 'rabbitmq:latest' - environment: - RABBITMQ_DEFAULT_USER: docassemble - RABBITMQ_DEFAULT_PASS: secret-password -volumes: - redis_data: - log: - config: - webapp: + CONTAINERROLE: 'all' From 32569b2d923feeee47ca45db410b7ff1918848b6 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Tue, 3 Oct 2023 11:36:17 -0500 Subject: [PATCH 16/42] Fill in Docassemble client API and corresponding CLI commands. TODO: Determine why populating a docassemble package from a git repository is not working. --- .gitignore | 1 + apps/cli/package.json | 1 + apps/cli/src/cli-controller.test.ts | 5 ++ apps/cli/src/cli-controller.ts | 46 ++++++++++--- apps/cli/src/index.ts | 11 +++- packages-python/docassemble-server/cloud.sh | 5 +- .../docassemble-server/docker-compose.yml | 2 +- packages/docassemble/package.json | 1 + packages/docassemble/src/client.test.ts | 11 ++++ packages/docassemble/src/client.ts | 64 +++++++++++++------ packages/docassemble/src/context/test.ts | 1 + packages/docassemble/src/index.ts | 1 + pnpm-lock.yaml | 64 ++++++++++++++++++- 13 files changed, 181 insertions(+), 32 deletions(-) create mode 100644 packages/docassemble/src/index.ts diff --git a/.gitignore b/.gitignore index 9715d6ce..72d545a7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.env *.code-workspace _site .vscode/ diff --git a/apps/cli/package.json b/apps/cli/package.json index 9a82fad0..cd7e38b2 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -12,6 +12,7 @@ "dependencies": { "@atj/interviews": "workspace:*", "@atj/dependency-graph": "workspace:*", + "@atj/docassemble": "workspace:*", "commander": "^9.4.1" } } diff --git a/apps/cli/src/cli-controller.test.ts b/apps/cli/src/cli-controller.test.ts index 00f9653d..8839f76c 100644 --- a/apps/cli/src/cli-controller.test.ts +++ b/apps/cli/src/cli-controller.test.ts @@ -8,6 +8,11 @@ describe('cli controller', () => { const ctx = { console: mock({ log: vi.fn() }), workspaceRoot: '.', + docassemble: { + fetch: fetch, + apiUrl: '', + apiKey: '', + }, }; const app = CliController(ctx); await app.parseAsync(['node', 'script-name', 'hello-world', 'aardvark']); diff --git a/apps/cli/src/cli-controller.ts b/apps/cli/src/cli-controller.ts index ccb61c9b..77b810da 100644 --- a/apps/cli/src/cli-controller.ts +++ b/apps/cli/src/cli-controller.ts @@ -1,21 +1,19 @@ import { Command } from 'commander'; import { createDependencyGraph } from '@atj/dependency-graph'; +import { DocassembleClient, DocassembleClientContext } from '@atj/docassemble'; type Context = { console: Console; workspaceRoot: string; + docassemble: DocassembleClientContext; }; export const CliController = (ctx: Context) => { - const cli = new Command(); - cli - .command('hello-world ') - .description('hello world') - .action(async echoValue => { - await createDependencyGraph(ctx.workspaceRoot); - ctx.console.log(`Hello, ${echoValue}!`); - }); + const cli = new Command() + .name('atj utilities') + .description('CLI the interact with the ATJ workspace'); + cli .command('create-workspace-graph') .description('create a dependency graph of projects in the workspace') @@ -23,5 +21,37 @@ export const CliController = (ctx: Context) => { await createDependencyGraph(ctx.workspaceRoot); ctx.console.log('wrote workspace dependency graph'); }); + + const docassemble = cli + .command('docassemble') + .description('docassemble commands'); + + docassemble + .command('populate') + .description('populate a docassemble instance with test data') + .option( + '-r, --repository', + 'repository to populate from', + 'https://github.com/SuffolkLITLab/docassemble-MassAccess' + ) + .option('-b, --branch', 'branch of git repository to populate from', 'main') + .action(async ({ repository, branch }) => { + const client = new DocassembleClient(ctx.docassemble); + console.log(repository, branch); + const result = await client.addPackage(repository, branch); + + ctx.console.log('populated docassemble instance', result); + }); + + docassemble + .command('list-interviews') + .description('list docassemble interviews') + .action(async () => { + const client = new DocassembleClient(ctx.docassemble); + const interviews = await client.getInterviews(); + console.log(interviews); + ctx.console.log('populated docassemble instance'); + }); + return cli; }; diff --git a/apps/cli/src/index.ts b/apps/cli/src/index.ts index e161e58b..9cad1181 100644 --- a/apps/cli/src/index.ts +++ b/apps/cli/src/index.ts @@ -1,4 +1,5 @@ import { join } from 'path'; +import process from 'process'; import { CliController } from './cli-controller'; // This should map to the directory containing the package.json. @@ -6,5 +7,13 @@ import { CliController } from './cli-controller'; // directory. const workspaceRoot = join(process.cwd(), '../../'); -const app = CliController({ console, workspaceRoot }); +const app = CliController({ + console, + workspaceRoot, + docassemble: { + fetch, + apiUrl: 'http://localhost:8011', + apiKey: process.env.VITE_DOCASSEMBLE_API_KEY || '', + }, +}); app.parseAsync(process.argv).then(() => console.log('Done')); diff --git a/packages-python/docassemble-server/cloud.sh b/packages-python/docassemble-server/cloud.sh index 095c5919..bb5b8b63 100755 --- a/packages-python/docassemble-server/cloud.sh +++ b/packages-python/docassemble-server/cloud.sh @@ -1,7 +1,6 @@ #!/bin/bash # -# This script will bootstrap the creation of a cloud.gov deployment -# environment, to be managed via Terraform. +# This script will bootstrap the creation of a cloud.gov deployment environment. # #set -eo pipefail @@ -19,7 +18,7 @@ Usage: cloud.sh -o -s { const interviews = await client.getInterviews(); expect(interviews).not.toEqual(null); }); + + it('populates a package', async () => { + const result = await client.addPackage( + 'https://github.com/SuffolkLITLab/docassemble-MassAccess', + 'main' + ); + // TODO: determine why packages are not populating. We are getting this + // error back: + expect(result.ok).toEqual(false); + expect((result as any).error).toEqual('No instructions provided.'); + }); }); diff --git a/packages/docassemble/src/client.ts b/packages/docassemble/src/client.ts index a36a93d9..db40d37d 100644 --- a/packages/docassemble/src/client.ts +++ b/packages/docassemble/src/client.ts @@ -1,8 +1,9 @@ -import { DocassembleInterview } from './types'; +import { type DocassembleInterview } from './types'; export const createDocassembleInterview = (interviewId: string) => {}; export type DocassembleClientContext = { + fetch: typeof fetch; apiUrl: string; apiKey: string; }; @@ -10,24 +11,51 @@ export type DocassembleClientContext = { export class DocassembleClient { constructor(private ctx: DocassembleClientContext) {} - getInterviews = () => { - return fetch(`${this.ctx.apiUrl}/api/interviews`, { + async getInterviews() { + const result = await this.makeRequest<{ items: DocassembleInterview[] }>( + 'interviews', + 'GET' + ); + if (!result.ok) { + return result; + } else { + return { + ok: true as const, + value: result.value.items, + }; + } + } + + addPackage(githubUrl: string, branch: string) { + return this.makeRequest('package', 'POST', { + github_url: githubUrl, + branch, + }); + } + + private async makeRequest( + endpoint: string, + method: 'POST' | 'GET', + payload?: any + ) { + const result = await this.ctx.fetch(`${this.ctx.apiUrl}/api/${endpoint}`, { + method, headers: { 'X-API-Key': this.ctx.apiKey, }, - }) - .then(response => response.json()) - .then(data => { - return { - ok: true, - interviews: data.items as DocassembleInterview[], - }; - }) - .catch(error => { - return { - ok: false, - error: error.message, - }; - }); - }; + body: JSON.stringify(payload), + }); + if (result.status !== 200) { + const error = await result.text(); + const statusText = result.statusText; + return { + ok: false as const, + error: `[${result.status}] ${statusText}: ${error}`, + }; + } + return { + ok: true as const, + value: (await result.json()) as T, + }; + } } diff --git a/packages/docassemble/src/context/test.ts b/packages/docassemble/src/context/test.ts index 6ea7a8ae..82c8655c 100644 --- a/packages/docassemble/src/context/test.ts +++ b/packages/docassemble/src/context/test.ts @@ -2,6 +2,7 @@ import { createDocassembleClient } from '.'; export const createTestDocassembleClient = () => { return createDocassembleClient({ + fetch, apiUrl: 'http://localhost:8011', apiKey: (import.meta as any).env.VITE_DOCASSEMBLE_API_KEY || '', }); diff --git a/packages/docassemble/src/index.ts b/packages/docassemble/src/index.ts new file mode 100644 index 00000000..6b7c8c6e --- /dev/null +++ b/packages/docassemble/src/index.ts @@ -0,0 +1 @@ +export { type DocassembleClientContext, DocassembleClient } from './client'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 897d5f08..38148d79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,9 @@ importers: '@atj/dependency-graph': specifier: workspace:* version: link:../../packages/dependency-graph + '@atj/docassemble': + specifier: workspace:* + version: link:../../packages/docassemble '@atj/interviews': specifier: workspace:* version: link:../../packages/interviews @@ -128,6 +131,9 @@ importers: specifier: workspace:* version: link:../interviews devDependencies: + '@vitest/coverage-v8': + specifier: ^0.34.6 + version: 0.34.6(vitest@0.34.4) vitest: specifier: ^0.34.4 version: 0.34.4 @@ -1264,6 +1270,27 @@ packages: vitest: 0.31.0 dev: true + /@vitest/coverage-v8@0.34.6(vitest@0.34.4): + resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==} + peerDependencies: + vitest: '>=0.32.0 <1' + dependencies: + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + magic-string: 0.30.3 + picocolors: 1.0.0 + std-env: 3.3.3 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + vitest: 0.34.4 + transitivePeerDependencies: + - supports-color + dev: true + /@vitest/expect@0.31.0: resolution: {integrity: sha512-Jlm8ZTyp6vMY9iz9Ny9a0BHnCG4fqBa8neCF6Pk/c/6vkUk49Ls6UBlgGAU82QnzzoaUs9E/mUhq/eq9uMOv/g==} dependencies: @@ -2337,12 +2364,32 @@ packages: supports-color: 7.2.0 dev: true + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-reports@3.1.5: resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 dev: true /joycon@3.1.1: @@ -2478,6 +2525,13 @@ packages: semver: 6.3.0 dev: true + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true @@ -3098,6 +3152,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} From b0a0d34abda44efcc434f98f00ad933a397c7ae3 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Tue, 3 Oct 2023 12:19:40 -0500 Subject: [PATCH 17/42] In Github action, update pnpm version to 8. --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index ed59bbe1..1488bc93 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -33,7 +33,7 @@ jobs: uses: pnpm/action-setup@v2 id: pnpm-install with: - version: 7 + version: 8 run_install: false - name: Get pnpm store directory From 229118e4def92fd73cf536bff91a520fc6cee942 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Tue, 3 Oct 2023 14:15:46 -0500 Subject: [PATCH 18/42] Tweak tests to get passing --- apps/cli/src/cli-controller.test.ts | 4 +- apps/cli/src/cli-controller.ts | 16 +++-- apps/frontend/package.json | 6 +- packages/docassemble/src/client.test.ts | 4 +- packages/documents/src/index.test.ts | 7 ++ pnpm-lock.yaml | 91 ------------------------- 6 files changed, 24 insertions(+), 104 deletions(-) create mode 100644 packages/documents/src/index.test.ts diff --git a/apps/cli/src/cli-controller.test.ts b/apps/cli/src/cli-controller.test.ts index 8839f76c..0e9c43f8 100644 --- a/apps/cli/src/cli-controller.test.ts +++ b/apps/cli/src/cli-controller.test.ts @@ -15,7 +15,7 @@ describe('cli controller', () => { }, }; const app = CliController(ctx); - await app.parseAsync(['node', 'script-name', 'hello-world', 'aardvark']); - expect(ctx.console.log).toHaveBeenCalledWith('Hello, aardvark!'); + await app.parseAsync(['node.js', 'dist/index.js', 'hello']); + expect(ctx.console.log).toHaveBeenCalledWith('Hello!'); }); }); diff --git a/apps/cli/src/cli-controller.ts b/apps/cli/src/cli-controller.ts index 77b810da..04425137 100644 --- a/apps/cli/src/cli-controller.ts +++ b/apps/cli/src/cli-controller.ts @@ -10,9 +10,16 @@ type Context = { }; export const CliController = (ctx: Context) => { - const cli = new Command() - .name('atj utilities') - .description('CLI the interact with the ATJ workspace'); + const cli = new Command().description( + 'CLI to interact with the ATJ workspace' + ); + + cli + .command('hello') + .description('say hello') + .action(() => { + ctx.console.log('Hello!'); + }); cli .command('create-workspace-graph') @@ -37,9 +44,7 @@ export const CliController = (ctx: Context) => { .option('-b, --branch', 'branch of git repository to populate from', 'main') .action(async ({ repository, branch }) => { const client = new DocassembleClient(ctx.docassemble); - console.log(repository, branch); const result = await client.addPackage(repository, branch); - ctx.console.log('populated docassemble instance', result); }); @@ -49,7 +54,6 @@ export const CliController = (ctx: Context) => { .action(async () => { const client = new DocassembleClient(ctx.docassemble); const interviews = await client.getInterviews(); - console.log(interviews); ctx.console.log('populated docassemble instance'); }); diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 93ec2ad4..ddee707f 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -6,8 +6,7 @@ "scripts": { "build": "tsc && vite build", "dev": "vite", - "preview": "vite preview", - "test": "vitest" + "preview": "vite preview" }, "dependencies": { "@atj/docassemble": "workspace:*", @@ -27,7 +26,6 @@ "playwright": "^1.37.1", "sass": "^1.66.1", "typescript": "^5.2.2", - "vite": "^4.4.9", - "vitest": "^0.34.4" + "vite": "^4.4.9" } } diff --git a/packages/docassemble/src/client.test.ts b/packages/docassemble/src/client.test.ts index d04f2bda..ab535b84 100644 --- a/packages/docassemble/src/client.test.ts +++ b/packages/docassemble/src/client.test.ts @@ -17,6 +17,8 @@ describe('docassemble api client', () => { // TODO: determine why packages are not populating. We are getting this // error back: expect(result.ok).toEqual(false); - expect((result as any).error).toEqual('No instructions provided.'); + expect((result as any).error).toEqual( + '[400] BAD REQUEST: "No instructions provided."\n' + ); }); }); diff --git a/packages/documents/src/index.test.ts b/packages/documents/src/index.test.ts new file mode 100644 index 00000000..2bb6a263 --- /dev/null +++ b/packages/documents/src/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest'; + +describe('document generation', () => { + it('exists', async () => { + expect(true).toEqual(true); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38148d79..2400e728 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -102,9 +102,6 @@ importers: vite: specifier: ^4.4.9 version: 4.4.9(@types/node@18.16.6)(sass@1.66.1) - vitest: - specifier: ^0.34.4 - version: 0.34.4(playwright@1.37.1)(sass@1.66.1) packages/dependency-graph: dependencies: @@ -3639,28 +3636,6 @@ packages: - terser dev: true - /vite-node@0.34.4(@types/node@18.16.6)(sass@1.66.1): - resolution: {integrity: sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.2 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.16.6)(sass@1.66.1) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite@4.3.5(@types/node@20.1.1): resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3945,72 +3920,6 @@ packages: - terser dev: true - /vitest@0.34.4(playwright@1.37.1)(sass@1.66.1): - resolution: {integrity: sha512-SE/laOsB6995QlbSE6BtkpXDeVNLJc1u2LHRG/OpnN4RsRzM3GQm4nm3PQCK5OBtrsUqnhzLdnT7se3aeNGdlw==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 18.16.6 - '@vitest/expect': 0.34.4 - '@vitest/runner': 0.34.4 - '@vitest/snapshot': 0.34.4 - '@vitest/spy': 0.34.4 - '@vitest/utils': 0.34.4 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.3 - pathe: 1.1.1 - picocolors: 1.0.0 - playwright: 1.37.1 - std-env: 3.3.3 - strip-literal: 1.0.1 - tinybench: 2.5.0 - tinypool: 0.7.0 - vite: 4.4.9(@types/node@18.16.6)(sass@1.66.1) - vite-node: 0.34.4(@types/node@18.16.6)(sass@1.66.1) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /watskeburt@0.11.1: resolution: {integrity: sha512-pRg7lw1R5kazren0jhcWSWNNfv3HE5Mzggj9MaruziQYMpxLJL1BrcwJWFSDwgOVbQrmtUZNgbbkKSv6SIyLew==} engines: {node: ^14||^16||>=18} From 811ad635a4b5b7d07f92f4ae57cff397ac42400b Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Tue, 3 Oct 2023 14:29:40 -0500 Subject: [PATCH 19/42] Label docassemble tests as integration tests, so they don't get run by CI (yet). --- packages/docassemble/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docassemble/package.json b/packages/docassemble/package.json index f71b426a..2c4a4101 100644 --- a/packages/docassemble/package.json +++ b/packages/docassemble/package.json @@ -6,7 +6,7 @@ "main": "src/index.ts", "scripts": { "build": "tsup src/* --env.NODE_ENV production", - "test": "vitest run --coverage" + "test:integration": "vitest run --coverage" }, "dependencies": { "@atj/documents": "workspace:*", From 70c368548ba470ce2b6eb2841e28ea7d3885ecc8 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 4 Oct 2023 14:31:44 -0500 Subject: [PATCH 20/42] Add scaffold for Terraform CDK project. --- apps/frontend/package.json | 1 - infra/.gitignore | 2 + infra/README.md | 3 + infra/__tests__/main-test.ts | 5 + infra/cdktf.json | 12 + infra/jest.config.js | 183 ++ infra/jest.setup.js | 2 + infra/package.json | 28 + infra/src/app-stack.ts | 22 + infra/src/backend.ts | 8 + infra/src/index.ts | 3 + infra/tsconfig.json | 35 + package.json | 2 +- pnpm-lock.yaml | 4229 ++++++++++++++++++++++++++++++++-- pnpm-workspace.yaml | 1 + 15 files changed, 4359 insertions(+), 177 deletions(-) create mode 100644 infra/.gitignore create mode 100644 infra/README.md create mode 100644 infra/__tests__/main-test.ts create mode 100644 infra/cdktf.json create mode 100644 infra/jest.config.js create mode 100644 infra/jest.setup.js create mode 100644 infra/package.json create mode 100644 infra/src/app-stack.ts create mode 100644 infra/src/backend.ts create mode 100644 infra/src/index.ts create mode 100644 infra/tsconfig.json diff --git a/apps/frontend/package.json b/apps/frontend/package.json index ddee707f..8645577a 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -25,7 +25,6 @@ "autoprefixer": "^10.4.15", "playwright": "^1.37.1", "sass": "^1.66.1", - "typescript": "^5.2.2", "vite": "^4.4.9" } } diff --git a/infra/.gitignore b/infra/.gitignore new file mode 100644 index 00000000..6cb4f4e4 --- /dev/null +++ b/infra/.gitignore @@ -0,0 +1,2 @@ +tsconfig.tsbuildinfo +cdktf.out/ diff --git a/infra/README.md b/infra/README.md new file mode 100644 index 00000000..15a177c0 --- /dev/null +++ b/infra/README.md @@ -0,0 +1,3 @@ +# @atj/infra + +Infrastructure-as-code (IaC) for the project, implemented with [Terraform CDK](https://github.com/hashicorp/terraform-cdk). diff --git a/infra/__tests__/main-test.ts b/infra/__tests__/main-test.ts new file mode 100644 index 00000000..dc82a2af --- /dev/null +++ b/infra/__tests__/main-test.ts @@ -0,0 +1,5 @@ +import 'cdktf/lib/testing/adapters/jest'; + +describe('atj-platform app stack', () => { + it.todo('should be tested'); +}); diff --git a/infra/cdktf.json b/infra/cdktf.json new file mode 100644 index 00000000..bed01fc8 --- /dev/null +++ b/infra/cdktf.json @@ -0,0 +1,12 @@ +{ + "language": "typescript", + "app": "npx ts-node src/index.ts", + "projectId": "9bbe7827-9202-4cf8-8d85-a8241c08ab5c", + "sendCrashReports": "false", + "terraformProviders": [], + "terraformModules": [], + "context": { + "excludeStackIdFromLogicalIds": "true", + "allowSepCharsInLogicalIds": "true" + } +} diff --git a/infra/jest.config.js b/infra/jest.config.js new file mode 100644 index 00000000..cd1b69ea --- /dev/null +++ b/infra/jest.config.js @@ -0,0 +1,183 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +/* + * For a detailed explanation regarding each configuration property, visit: + * https://jestjs.io/docs/configuration + */ + +module.exports = { + // All imported modules in your tests should be mocked automatically + // automock: false, + + // Stop running tests after `n` failures + // bail: 0, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/private/var/folders/z_/v03l33d55fb57nrr3b1q03ch0000gq/T/jest_dz", + + // Automatically clear mock calls and instances between every test + clearMocks: true, + + // Indicates whether the coverage information should be collected while executing the test + // collectCoverage: false, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: undefined, + + // The directory where Jest should output its coverage files + // coverageDirectory: undefined, + + // An array of regexp pattern strings used to skip coverage collection + // coveragePathIgnorePatterns: [ + // "/node_modules/" + // ], + + // Indicates which provider should be used to instrument code for coverage + coverageProvider: 'v8', + + // A list of reporter names that Jest uses when writing coverage reports + // coverageReporters: [ + // "json", + // "text", + // "lcov", + // "clover" + // ], + + // An object that configures minimum threshold enforcement for coverage results + // coverageThreshold: undefined, + + // A path to a custom dependency extractor + // dependencyExtractor: undefined, + + // Make calling deprecated APIs throw helpful error messages + // errorOnDeprecated: false, + + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: undefined, + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: undefined, + + // A set of global variables that need to be available in all test environments + // globals: {}, + + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", + + // An array of directory names to be searched recursively up from the requiring module's location + // moduleDirectories: [ + // "node_modules" + // ], + + // An array of file extensions your modules use + moduleFileExtensions: ['ts', 'js', 'json', 'node'], + + // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module + // moduleNameMapper: {}, + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + // modulePathIgnorePatterns: [], + + // Activates notifications for test results + // notify: false, + + // An enum that specifies notification mode. Requires { notify: true } + // notifyMode: "failure-change", + + // A preset that is used as a base for Jest's configuration + preset: 'ts-jest', + + // Run tests from one or more projects + // projects: undefined, + + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, + + // Automatically reset mock state between every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: undefined, + + // Automatically restore mock state between every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: undefined, + + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], + + // A list of paths to modules that run some code to configure or set up the testing framework before each test + setupFilesAfterEnv: ['/jest.setup.js'], + + // The number of seconds after which a test is considered as slow and reported as such in the results. + // slowTestThreshold: 5, + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], + + // The test environment that will be used for testing + testEnvironment: 'node', + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: ['/node_modules/', '.d.ts', '.js'], + + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], + + // This option allows the use of a custom results processor + // testResultsProcessor: undefined, + + // This option allows use of a custom test runner + // testRunner: "jest-circus/runner", + + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + // testURL: "http://localhost", + + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", + + // A map from regular expressions to paths to transformers + // transform: undefined, + + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "/node_modules/", + // "\\.pnp\\.[^\\/]+$" + // ], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: undefined, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, +}; diff --git a/infra/jest.setup.js b/infra/jest.setup.js new file mode 100644 index 00000000..7c7c89a0 --- /dev/null +++ b/infra/jest.setup.js @@ -0,0 +1,2 @@ +const cdktf = require('cdktf'); +cdktf.Testing.setupJest(); diff --git a/infra/package.json b/infra/package.json new file mode 100644 index 00000000..53d84ec0 --- /dev/null +++ b/infra/package.json @@ -0,0 +1,28 @@ +{ + "name": "infra", + "version": "1.0.0", + "main": "src/index.js", + "types": "src/index.ts", + "scripts": { + "get": "cdktf get", + "deploy": "cdktf deploy", + "synth": "cdktf synth", + "compile": "tsc --pretty", + "watch": "tsc -w", + "test": "jest", + "test:watch": "jest --watch" + }, + "dependencies": { + "@cdktf/provider-aws": "17.0.8", + "cdktf": "^0.18.1", + "cdktf-cli": "^0.18.1", + "constructs": "^10.1.176" + }, + "devDependencies": { + "@types/jest": "^29.5.5", + "@types/node": "^20.8.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "ts-node": "^10.9.1" + } +} diff --git a/infra/src/app-stack.ts b/infra/src/app-stack.ts new file mode 100644 index 00000000..af206d74 --- /dev/null +++ b/infra/src/app-stack.ts @@ -0,0 +1,22 @@ +import { App, TerraformStack } from 'cdktf'; +import { Construct } from 'constructs'; +import { AwsProvider } from '@cdktf/provider-aws/lib/provider'; + +import { withBackend } from './backend'; + +export const registerAppStack = (stackPrefix: string) => { + const app = new App(); + const stack = new AppStack(app, stackPrefix); + withBackend(stack, stackPrefix); + app.synth(); +}; + +class AppStack extends TerraformStack { + constructor(scope: Construct, id: string) { + super(scope, id); + + new AwsProvider(this, 'AWS', { + region: 'us-east-2', + }); + } +} diff --git a/infra/src/backend.ts b/infra/src/backend.ts new file mode 100644 index 00000000..1d087e9d --- /dev/null +++ b/infra/src/backend.ts @@ -0,0 +1,8 @@ +import { S3Backend, TerraformStack } from 'cdktf'; + +export const withBackend = (stack: TerraformStack, stackPrefix: string) => + new S3Backend(stack, { + bucket: 'atj-tfstate', + key: `${stackPrefix}.tfstate`, + region: 'us-east-2', + }); diff --git a/infra/src/index.ts b/infra/src/index.ts new file mode 100644 index 00000000..7defde2d --- /dev/null +++ b/infra/src/index.ts @@ -0,0 +1,3 @@ +import { registerAppStack } from './app-stack'; + +registerAppStack('atj-dev'); diff --git a/infra/tsconfig.json b/infra/tsconfig.json new file mode 100644 index 00000000..cf39f0d9 --- /dev/null +++ b/infra/tsconfig.json @@ -0,0 +1,35 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "declaration": true, + "experimentalDecorators": true, + "inlineSourceMap": true, + "inlineSources": true, + "lib": [ + "es2018" + ], + "module": "CommonJS", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "strict": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "stripInternal": true, + "target": "ES2018", + "incremental": true, + "skipLibCheck": true + }, + "include": [ + "**/*.ts" + ], + "exclude": [ + "node_modules", + "cdktf.out" + ] +} diff --git a/package.json b/package.json index c5d22aeb..f58bd378 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "prettier": "^2.7.1", "ts-node": "^10.9.1", "tsup": "^6.4.0", - "typescript": "^5.0.4", + "typescript": "^5.2.2", "vitest": "^0.31.0", "vitest-mock-extended": "^1.0.7" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2400e728..96a31f90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,19 +22,19 @@ importers: version: 2.8.8 ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@18.16.6)(typescript@5.0.4) + version: 10.9.1(@types/node@18.16.6)(typescript@5.2.2) tsup: specifier: ^6.4.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.0.4) + version: 6.7.0(ts-node@10.9.1)(typescript@5.2.2) typescript: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.2.2 + version: 5.2.2 vitest: specifier: ^0.31.0 version: 0.31.0 vitest-mock-extended: specifier: ^1.0.7 - version: 1.1.3(typescript@5.0.4)(vitest@0.31.0) + version: 1.1.3(typescript@5.2.2)(vitest@0.31.0) apps/cli: dependencies: @@ -96,13 +96,41 @@ importers: sass: specifier: ^1.66.1 version: 1.66.1 - typescript: - specifier: ^5.2.2 - version: 5.2.2 vite: specifier: ^4.4.9 version: 4.4.9(@types/node@18.16.6)(sass@1.66.1) + infra: + dependencies: + '@cdktf/provider-aws': + specifier: 17.0.8 + version: 17.0.8(cdktf@0.18.1)(constructs@10.2.70) + cdktf: + specifier: ^0.18.1 + version: 0.18.1(constructs@10.2.70) + cdktf-cli: + specifier: ^0.18.1 + version: 0.18.1(ink@3.2.0)(react@17.0.2) + constructs: + specifier: ^10.1.176 + version: 10.2.70 + devDependencies: + '@types/jest': + specifier: ^29.5.5 + version: 29.5.5 + '@types/node': + specifier: ^20.8.2 + version: 20.8.2 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + ts-jest: + specifier: ^29.1.1 + version: 29.1.1(@babel/core@7.23.0)(esbuild@0.17.18)(jest@29.7.0)(typescript@5.2.2) + ts-node: + specifier: ^10.9.1 + version: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + packages/dependency-graph: dependencies: '@pnpm/find-workspace-packages': @@ -171,12 +199,149 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 - dev: false + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + + /@babel/compat-data@7.22.20: + resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.0: + resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helpers': 7.23.1 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.22.20 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - dev: false + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.23.1: + resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true /@babel/highlight@7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -185,12 +350,344 @@ packages: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 - dev: false + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + + /@babel/traverse@7.23.0: + resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@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.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@cdktf/cli-core@0.18.1(react@17.0.2): + resolution: {integrity: sha512-VDJCakC3UWML0ggygvw2zZogFBF8q3wCR7UHeBwOVHGcd5d3I9Oyox12YQx2nRW+CDwzki3zy3yToyiEUOSdMw==} + dependencies: + '@cdktf/commons': 0.18.1 + '@cdktf/hcl2cdk': 0.18.1 + '@cdktf/hcl2json': 0.18.1 + '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.10 + '@cdktf/provider-schema': 0.18.1 + '@sentry/node': 6.19.7 + archiver: 5.3.2 + cdktf: 0.18.1(constructs@10.2.70) + chalk: 4.1.2 + chokidar: 3.5.3 + cli-spinners: 2.7.0 + codemaker: 1.89.0 + constructs: 10.2.70 + cross-fetch: 3.1.8 + cross-spawn: 7.0.3 + detect-port: 1.5.1 + execa: 5.1.1 + extract-zip: 2.0.1 + follow-redirects: 1.15.3 + fs-extra: 8.1.0 + https-proxy-agent: 5.0.1 + indent-string: 4.0.0 + ink: 3.2.0(react@17.0.2) + ink-select-input: 4.2.2(ink@3.2.0)(react@17.0.2) + ink-spinner: 4.0.3(ink@3.2.0)(react@17.0.2) + ink-testing-library: 2.1.0 + ink-use-stdout-dimensions: 1.0.5(ink@3.2.0)(react@17.0.2) + jsii: 5.1.12 + jsii-pacmak: 1.89.0 + jsii-srcmak: 0.1.951 + lodash.isequal: 4.5.0 + log4js: 6.9.1 + minimatch: 5.1.6 + node-fetch: 2.7.0 + open: 7.4.2 + parse-gitignore: 1.0.1 + pkg-up: 3.1.0 + semver: 7.5.4 + sscaff: 1.2.274 + stream-buffers: 3.0.2 + strip-ansi: 6.0.1 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + xml-js: 1.6.11 + xstate: 4.38.2 + yargs: 17.7.2 + yoga-layout-prebuilt: 1.10.0 + zod: 1.11.17 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - encoding + - react + - supports-color + - utf-8-validate + dev: false + + /@cdktf/commons@0.18.1: + resolution: {integrity: sha512-1DdQyimydP+Ex+n/o91Q+IA0TlHJ4b5AjNm2tZO0LBB1Tksn6up5eqA6DnxP2DcZR5j9fjZeaKbRO9FOWrr9jQ==} + dependencies: + '@sentry/node': 7.73.0 + cdktf: 0.18.1(constructs@10.2.70) + ci-info: 3.9.0 + codemaker: 1.89.0 + constructs: 10.2.70 + cross-spawn: 7.0.3 + follow-redirects: 1.15.3 + fs-extra: 11.1.1 + is-valid-domain: 0.1.6 + log4js: 6.9.1 + uuid: 9.0.1 + transitivePeerDependencies: + - debug + - supports-color + dev: false + + /@cdktf/hcl2cdk@0.18.1: + resolution: {integrity: sha512-fG3NR2Fv3dRoTgZWSiaHML72+ikZPG/BSklxncr86t4WJfLAoYc5M88JX4B0ocCrYZtqADyE3ATLXFFOD4N3Cw==} + dependencies: + '@babel/generator': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + '@cdktf/commons': 0.18.1 + '@cdktf/hcl2json': 0.18.1 + '@cdktf/provider-generator': 0.18.1 + '@cdktf/provider-schema': 0.18.1 + camelcase: 6.3.0 + deep-equal: 2.2.2 + glob: 10.3.10 + graphology: 0.25.4(graphology-types@0.24.7) + graphology-types: 0.24.7 + jsii-rosetta: 5.1.13 + prettier: 2.8.8 + reserved-words: 0.1.2 + zod: 3.22.3 + transitivePeerDependencies: + - debug + - supports-color + dev: false + + /@cdktf/hcl2json@0.18.1: + resolution: {integrity: sha512-zsWgeMxzhJEthkl4SA6VHEd6A3Nx9Jq6mYNFDvB0RtRUFoLVNJuuzgvwyUoeuzgMuOGtU3DhyvfYS8THDJKzuQ==} + dependencies: + fs-extra: 11.1.1 + dev: false + + /@cdktf/node-pty-prebuilt-multiarch@0.10.1-pre.10: + resolution: {integrity: sha512-5ysQrHJvqYLYg407KvaDNu+xx68ZGaqeF0SohXe5e4yNqJhPFPUQ536rkReQcPc2yZiF5PDmmvf5T9MOacHpSQ==} + requiresBuild: true + dependencies: + nan: 2.18.0 + prebuild-install: 7.1.1 + dev: false + + /@cdktf/provider-aws@17.0.8(cdktf@0.18.1)(constructs@10.2.70): + resolution: {integrity: sha512-qRAnh5cdaIVv6eOv+dPRwst/iPWpy94gB5LpWKdzDVKQhUSfhuQvZuulQsW+25vZdzQMj9JkCbj06Z7p4cPAxw==} + engines: {node: '>= 16.14.0'} + peerDependencies: + cdktf: ^0.18.0 + constructs: ^10.0.0 + dependencies: + cdktf: 0.18.1(constructs@10.2.70) + constructs: 10.2.70 + dev: false + + /@cdktf/provider-generator@0.18.1: + resolution: {integrity: sha512-BnAhXJIAgo6QgEV2xr098yI4sKzWILDe8lOciamlazt7t76ffHSsyhSOXkPwLvro6Hk0GiXQvTkyV2ELF7bW6g==} + dependencies: + '@cdktf/commons': 0.18.1 + '@cdktf/hcl2json': 0.18.1 + '@cdktf/provider-schema': 0.18.1 + '@types/node': 16.18.23 + codemaker: 1.89.0 + deepmerge: 4.3.1 + fs-extra: 8.1.0 + jsii-srcmak: 0.1.951 + transitivePeerDependencies: + - debug + - supports-color + dev: false + + /@cdktf/provider-schema@0.18.1: + resolution: {integrity: sha512-t8aUKi28iz3SPAtsDqB8/02FpmHtF3/Yy0M9Adxe3mJK+R4A3nG5DHBvUAan4BFZFp01NHyC9dvrll6zMhe2HA==} + dependencies: + '@cdktf/commons': 0.18.1 + fs-extra: 11.1.1 + transitivePeerDependencies: + - debug + - supports-color + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -599,56 +1096,419 @@ packages: engines: {node: '>=12.20'} dev: false - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true + /@inquirer/checkbox@1.4.0: + resolution: {integrity: sha512-7YcekwCvMTjrgjUursrH6AGZUSPw7gKPMvp0VhM3iq9mL46a7AeCfOTQTW0UPeiIfWmZK8wHyAD6wIhfDyLHpw==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + figures: 3.2.0 + dev: false - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /@inquirer/confirm@2.0.14: + resolution: {integrity: sha512-Elzo5VX5lO1q9xy8CChDtDQNVLaucufdZBAM12qdfX1L3NQ+TypnZytGmWDXHBTpBTwuhEuwxNvUw7B0HCURkw==} + engines: {node: '>=14.18.0'} dependencies: - '@sinclair/typebox': 0.27.8 - dev: true + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + chalk: 4.1.2 + dev: false - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} + /@inquirer/core@2.3.1: + resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} + engines: {node: '>=14.18.0'} dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 - dev: true + '@inquirer/type': 1.1.5 + '@types/mute-stream': 0.0.1 + '@types/node': 20.8.2 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-spinners: 2.9.1 + cli-width: 4.1.0 + figures: 3.2.0 + mute-stream: 1.0.0 + run-async: 3.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} - dev: true + /@inquirer/core@5.1.0: + resolution: {integrity: sha512-EVnific72BhMOMo8mElvrYhGFWJZ73X6j0I+fITIPTsdAz6Z9A3w3csKy+XaH87/5QAEIQHR7RSCVXvQpIqNdQ==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/type': 1.1.5 + '@types/mute-stream': 0.0.2 + '@types/node': 20.8.2 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-spinners: 2.9.1 + cli-width: 4.1.0 + figures: 3.2.0 + mute-stream: 1.0.0 + run-async: 3.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - dev: true + /@inquirer/editor@1.2.12: + resolution: {integrity: sha512-Y7zXQqcglPbbPkx0DPwx6HQFstJR5uex4hoQprjpdxSj8+Bf04+Og6mK/FNxoQbPvoNecegtmMGxDC+hVcMJZA==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + chalk: 4.1.2 + external-editor: 3.1.0 + dev: false - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: true + /@inquirer/expand@1.1.13: + resolution: {integrity: sha512-/+7CGCa7iyJIpli0NtukEAjSI7+wGgjYzsByLVSSAk3U696ZlCCP6iPtsWx6d1qfmaMmCzejcjylOj6OAeu4bA==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + chalk: 4.1.2 + figures: 3.2.0 + dev: false + + /@inquirer/input@1.2.13: + resolution: {integrity: sha512-gALuvSpZRYfqygPjlYWodMZ4TXwALvw7Pk4tRFhE1oMN79rLVlg88Z/X6JCUh+uV2qLaxxgbeP+cgPWTvuWsCg==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + chalk: 4.1.2 + dev: false + + /@inquirer/password@1.1.13: + resolution: {integrity: sha512-6STGbL4Vm6ohE2yDBOSENCpCeywnvPux5psZVpvblGDop1oPiZkdsVI+NhsA0c4BE6YT0fNVK8Oqxf5Dgt5k7g==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/input': 1.2.13 + '@inquirer/type': 1.1.5 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + dev: false + + /@inquirer/prompts@2.3.1: + resolution: {integrity: sha512-YQeBFzIE+6fcec5N/U2mSz+IcKEG4wtGDwF7MBLIDgITWzB3o723JpKJ1rxWqdCvTXkYE+gDXK/seSN6omo3DQ==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/checkbox': 1.4.0 + '@inquirer/confirm': 2.0.14 + '@inquirer/core': 2.3.1 + '@inquirer/editor': 1.2.12 + '@inquirer/expand': 1.1.13 + '@inquirer/input': 1.2.13 + '@inquirer/password': 1.1.13 + '@inquirer/rawlist': 1.2.13 + '@inquirer/select': 1.3.0 + dev: false + + /@inquirer/rawlist@1.2.13: + resolution: {integrity: sha512-f+bASrCY2x2F90MrBYX7nUSetL6FsVLfskhGWEyVwj6VIXzc9T878z3v7KU3V10D1trWrCVHOdeqEcbnO68yhg==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + chalk: 4.1.2 + dev: false + + /@inquirer/select@1.3.0: + resolution: {integrity: sha512-3sL5odCDYI+i+piAFqFa5ULDUKEpc0U1zEY4Wm6gjP6nMAHWM8r1UzMlpQXCyHny91Tz+oeSLeKinAde0z6R7w==} + engines: {node: '>=14.18.0'} + dependencies: + '@inquirer/core': 5.1.0 + '@inquirer/type': 1.1.5 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + figures: 3.2.0 + dev: false + + /@inquirer/type@1.1.5: + resolution: {integrity: sha512-wmwHvHozpPo4IZkkNtbYenem/0wnfI6hvOcGKmPEa0DwuaH5XUQzFqy6OpEpjEegZMhYIk8HDYITI16BPLtrRA==} + engines: {node: '>=14.18.0'} + dev: false + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: false + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + jest-mock: 29.7.0 + dev: true + + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.8.2 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.18 + '@types/node': 20.8.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 6.0.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.23.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.18 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.2 + '@types/node': 20.8.2 + '@types/yargs': 17.0.26 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -657,6 +1517,29 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@jsii/check-node@1.88.0: + resolution: {integrity: sha512-AveFyqkJIb8qZvGk5nZal/8mEJB6lWhwqvAQLodHmqE3WzpmZD5+h+aspBVt0El5cEFRJ1k1mrQqhAnJCVpvxg==} + engines: {node: '>= 14.17.0'} + dependencies: + chalk: 4.1.2 + semver: 7.5.4 + dev: false + + /@jsii/check-node@1.89.0: + resolution: {integrity: sha512-RMw19IEj6ch6oOGkBrAbtzwshrOXMKlfbX54S0hGrwR1qlSjNS9qqt4p+LRSpurhriEo7oHDegItNGUjPYoNXw==} + engines: {node: '>= 14.17.0'} + dependencies: + chalk: 4.1.2 + semver: 7.5.4 + dev: false + + /@jsii/spec@1.89.0: + resolution: {integrity: sha512-byzIC5M5FrEaW+GaPGQfPsobfwmEfzHvS7dh5d5fgY4VvvsHBkkhhF/H5xUG+1wQBcdBnqdKyp5CEFm8UEVfqg==} + engines: {node: '>= 14.17.0'} + dependencies: + ajv: 8.12.0 + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -687,6 +1570,13 @@ packages: pako: 1.0.11 dev: false + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: false + optional: true + /@playwright/test@1.37.1: resolution: {integrity: sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==} engines: {node: '>=16'} @@ -812,7 +1702,7 @@ packages: ramda: /@pnpm/ramda@0.28.1 right-pad: 1.0.1 rxjs: 7.8.1 - semver: 7.5.0 + semver: 7.5.4 stacktracey: 2.1.8 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -943,7 +1833,7 @@ packages: detect-libc: 2.0.1 execa: /safe-execa@0.1.2 mem: 8.1.1 - semver: 7.5.0 + semver: 7.5.4 dev: false /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0): @@ -1040,48 +1930,166 @@ packages: write-yaml-file: 5.0.0 dev: false - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true + /@sentry-internal/tracing@7.73.0: + resolution: {integrity: sha512-ig3WL/Nqp8nRQ52P205NaypGKNfIl/G+cIqge9xPW6zfRb5kJdM1YParw9GSJ1SPjEZBkBORGAML0on5H2FILw==} + engines: {node: '>=8'} + dependencies: + '@sentry/core': 7.73.0 + '@sentry/types': 7.73.0 + '@sentry/utils': 7.73.0 + tslib: 2.5.0 + dev: false - /@swc/core-darwin-arm64@1.3.84: - resolution: {integrity: sha512-mqK0buOo+toF2HoJ/gWj2ApZbvbIiNq3mMwSTHCYJHlQFQfoTWnl9aaD5GSO4wfNFVYfEZ1R259o5uv5NlVtoA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true + /@sentry/core@6.19.7: + resolution: {integrity: sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 6.19.7 + '@sentry/minimal': 6.19.7 + '@sentry/types': 6.19.7 + '@sentry/utils': 6.19.7 + tslib: 1.14.1 + dev: false - /@swc/core-darwin-x64@1.3.84: - resolution: {integrity: sha512-cyuQZz62C43EDZqtnptUTlfDvAjgG3qu139m5zsfIK6ltXA5inKFbDWV3a/M5c18dFzA2Xh21Q46XZezmtQ9Tg==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true + /@sentry/core@7.73.0: + resolution: {integrity: sha512-9FEz4Gq848LOgVN2OxJGYuQqxv7cIVw69VlAzWHEm3njt8mjvlTq+7UiFsGRo84+59V2FQuHxzA7vVjl90WfSg==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.73.0 + '@sentry/utils': 7.73.0 + tslib: 2.5.0 + dev: false - /@swc/core-linux-arm-gnueabihf@1.3.84: - resolution: {integrity: sha512-dmt/ECQrp3ZPWnK27p4E4xRIRHOoJhgGvxC5t5YaWzN20KcxE9ykEY2oLGSoeceM/A+4D11aRYGwF/EM7yOkvA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true + /@sentry/hub@6.19.7: + resolution: {integrity: sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==} + engines: {node: '>=6'} + dependencies: + '@sentry/types': 6.19.7 + '@sentry/utils': 6.19.7 + tslib: 1.14.1 + dev: false - /@swc/core-linux-arm64-gnu@1.3.84: - resolution: {integrity: sha512-PgVfrI3NVg2z/oeg3GWLb9rFLMqidbdPwVH5nRyHVP2RX/BWP6qfnYfG+gJv4qrKzIldb9TyCGH7y8VWctKLxw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true + /@sentry/minimal@6.19.7: + resolution: {integrity: sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 6.19.7 + '@sentry/types': 6.19.7 + tslib: 1.14.1 + dev: false - /@swc/core-linux-arm64-musl@1.3.84: - resolution: {integrity: sha512-hcuEa8/vin4Ns0P+FpcDHQ4f3jmhgGKQhqw0w+TovPSVTIXr+nrFQ2AGhs9nAxS6tSQ77C53Eb5YRpK8ToFo1A==} + /@sentry/node@6.19.7: + resolution: {integrity: sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==} + engines: {node: '>=6'} + dependencies: + '@sentry/core': 6.19.7 + '@sentry/hub': 6.19.7 + '@sentry/types': 6.19.7 + '@sentry/utils': 6.19.7 + cookie: 0.4.2 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 1.14.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@sentry/node@7.73.0: + resolution: {integrity: sha512-i50bRfmgkRRx0XXUbg9jGD/RuznDJxJXc4rBILhoJuhl+BjRIaoXA3ayplfJn8JLZxsNh75uJaCq4IUK70SORw==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.73.0 + '@sentry/core': 7.73.0 + '@sentry/types': 7.73.0 + '@sentry/utils': 7.73.0 + cookie: 0.5.0 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 2.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@sentry/types@6.19.7: + resolution: {integrity: sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==} + engines: {node: '>=6'} + dev: false + + /@sentry/types@7.73.0: + resolution: {integrity: sha512-/v8++bly8jW7r4cP2wswYiiVpn7eLLcqwnfPUMeCQze4zj3F3nTRIKc9BGHzU0V+fhHa3RwRC2ksqTGq1oJMDg==} + engines: {node: '>=8'} + dev: false + + /@sentry/utils@6.19.7: + resolution: {integrity: sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==} + engines: {node: '>=6'} + dependencies: + '@sentry/types': 6.19.7 + tslib: 1.14.1 + dev: false + + /@sentry/utils@7.73.0: + resolution: {integrity: sha512-h3ZK/qpf4k76FhJV9uiSbvMz3V/0Ovy94C+5/9UgPMVCJXFmVsdw8n/dwANJ7LupVPfYP23xFGgebDMFlK1/2w==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.73.0 + tslib: 2.5.0 + dev: false + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sinonjs/commons@3.0.0: + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + dependencies: + '@sinonjs/commons': 3.0.0 + dev: true + + /@swc/core-darwin-arm64@1.3.84: + resolution: {integrity: sha512-mqK0buOo+toF2HoJ/gWj2ApZbvbIiNq3mMwSTHCYJHlQFQfoTWnl9aaD5GSO4wfNFVYfEZ1R259o5uv5NlVtoA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.84: + resolution: {integrity: sha512-cyuQZz62C43EDZqtnptUTlfDvAjgG3qu139m5zsfIK6ltXA5inKFbDWV3a/M5c18dFzA2Xh21Q46XZezmtQ9Tg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.84: + resolution: {integrity: sha512-dmt/ECQrp3ZPWnK27p4E4xRIRHOoJhgGvxC5t5YaWzN20KcxE9ykEY2oLGSoeceM/A+4D11aRYGwF/EM7yOkvA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.84: + resolution: {integrity: sha512-PgVfrI3NVg2z/oeg3GWLb9rFLMqidbdPwVH5nRyHVP2RX/BWP6qfnYfG+gJv4qrKzIldb9TyCGH7y8VWctKLxw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.84: + resolution: {integrity: sha512-hcuEa8/vin4Ns0P+FpcDHQ4f3jmhgGKQhqw0w+TovPSVTIXr+nrFQ2AGhs9nAxS6tSQ77C53Eb5YRpK8ToFo1A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -1178,6 +2186,35 @@ packages: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true + /@types/babel__core@7.20.2: + resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + '@types/babel__generator': 7.6.5 + '@types/babel__template': 7.4.2 + '@types/babel__traverse': 7.20.2 + dev: true + + /@types/babel__generator@7.6.5: + resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@types/babel__template@7.4.2: + resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@types/babel__traverse@7.20.2: + resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} + dependencies: + '@babel/types': 7.23.0 + dev: true + /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: @@ -1188,23 +2225,68 @@ packages: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true + /@types/graceful-fs@4.1.7: + resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} + dependencies: + '@types/node': 20.8.2 + dev: true + /@types/graphviz@0.0.35: resolution: {integrity: sha512-AqGaB/5M0nMPOPVuOd3PQGS0glhJ4Fzg4CcZ4IZ1M0ezuz7OJEuz3D0xwr3qn8sdf3Xo7ZJl9qR1c5XkzrdY+w==} dependencies: - '@types/node': 18.16.6 + '@types/node': 20.8.2 dev: true /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true + /@types/istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports@3.0.2: + resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==} + dependencies: + '@types/istanbul-lib-report': 3.0.1 + dev: true + + /@types/jest@29.5.5: + resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /@types/mute-stream@0.0.1: + resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} + dependencies: + '@types/node': 20.8.2 + dev: false + + /@types/mute-stream@0.0.2: + resolution: {integrity: sha512-FpiGjk6+IOrN0lZEfUUjdra1csU1VxwYFj4S0Zj+TJpu5x5mZW30RkEZojTadrNZHNmpCHgoE62IQZAH0OeuIA==} + dependencies: + '@types/node': 20.8.2 + dev: false + + /@types/node@16.18.23: + resolution: {integrity: sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g==} + dev: false + /@types/node@18.16.6: resolution: {integrity: sha512-N7KINmeB8IN3vRR8dhgHEp+YpWvGFcpDoh5XZ8jB5a00AdFKCKEyyGTOPTddUf4JqU1ZKTVxkOxakDvchNVI2Q==} + dev: true /@types/node@20.1.1: resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==} dev: true + /@types/node@20.8.2: + resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==} + /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: true @@ -1230,7 +2312,37 @@ packages: /@types/ssri@7.1.1: resolution: {integrity: sha512-DPP/jkDaqGiyU75MyMURxLWyYLwKSjnAuGe9ZCsLp9QZOpXmDfuevk769F0BS86TmRuD5krnp06qw9nSoNO+0g==} dependencies: - '@types/node': 18.16.6 + '@types/node': 20.8.2 + dev: false + + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/wrap-ansi@3.0.0: + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + dev: false + + /@types/yargs-parser@21.0.1: + resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} + dev: true + + /@types/yargs@17.0.26: + resolution: {integrity: sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==} + dependencies: + '@types/yargs-parser': 21.0.1 + dev: true + + /@types/yauzl@2.10.1: + resolution: {integrity: sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==} + requiresBuild: true + dependencies: + '@types/node': 20.8.2 + dev: false + optional: true + + /@types/yoga-layout@1.9.2: + resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} dev: false /@uswds/uswds@3.6.0: @@ -1365,6 +2477,11 @@ packages: pretty-format: 29.7.0 dev: true + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + dev: false + /@zkochan/which@2.0.3: resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} engines: {node: '>= 8'} @@ -1389,7 +2506,7 @@ packages: resolution: {integrity: sha512-75lAs9H19ldmW+fAbyqHdjgdCrz0pWGXKmnqFoh8PyVd1L2RIb4RzYrSjmopeqv3E1G3/Pimu6GgLlrGbrkF7w==} engines: {node: '>=0.4.0'} dependencies: - acorn: 8.8.2 + acorn: 8.10.0 dev: true /acorn-walk@8.2.0: @@ -1409,6 +2526,20 @@ packages: hasBin: true dev: true + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: false + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: @@ -1429,6 +2560,12 @@ packages: ansi-split: 1.0.1 dev: false + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + /ansi-regex@3.0.1: resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} engines: {node: '>=4'} @@ -1438,6 +2575,11 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: false + /ansi-split@1.0.1: resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} dependencies: @@ -1449,7 +2591,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: false /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -1462,6 +2603,11 @@ packages: engines: {node: '>=10'} dev: true + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: false + /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true @@ -1472,7 +2618,64 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true + + /archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + dev: false + + /archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + + /archiver@5.3.1: + resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + async: 3.2.4 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + dev: false + + /archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + async: 3.2.4 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + dev: false /archy@1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} @@ -1482,10 +2685,28 @@ packages: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: false + /arr-rotate@1.0.0: + resolution: {integrity: sha512-yOzOZcR9Tn7enTF66bqKorGGH0F36vcPaSWg8fO0c0UYb3LX3VMXj5ZxEqQLNOecAhlRJ7wYZja5i4jTlnbIfQ==} + engines: {node: '>=4'} + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: false + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -1501,6 +2722,25 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: false + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: false + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: false + + /auto-bind@4.0.0: + resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} + engines: {node: '>=8'} + dev: false + /autoprefixer@10.4.15(postcss@8.4.29): resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} @@ -1517,14 +2757,94 @@ packages: postcss-value-parser: 4.2.0 dev: true + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + /axe-core@4.7.0: resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} dev: false + /babel-jest@29.7.0(@babel/core@7.23.0): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.23.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.2 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.23.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.22.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + '@types/babel__core': 7.20.2 + '@types/babel__traverse': 7.20.2 + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.0): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.0): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) + dev: true + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} @@ -1536,7 +2856,14 @@ packages: /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false /blueimp-md5@2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} @@ -1568,7 +2895,12 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: false /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -1587,19 +2919,47 @@ packages: update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true - /bundle-require@4.0.1(esbuild@0.17.18): - resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} dependencies: - esbuild: 0.17.18 - load-tsconfig: 0.2.5 + fast-json-stable-stringify: 2.1.0 dev: true - /c8@7.13.0: - resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} - engines: {node: '>=10.12.0'} + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: false + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /bundle-require@4.0.1(esbuild@0.17.18): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.17.18 + load-tsconfig: 0.2.5 + dev: true + + /c8@7.13.0: + resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} + engines: {node: '>=10.12.0'} hasBin: true dependencies: '@bcoe/v8-coverage': 0.2.3 @@ -1621,6 +2981,18 @@ packages: engines: {node: '>=8'} dev: true + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -1633,12 +3005,10 @@ packages: /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - dev: false /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - dev: false /can-write-to-dir@1.1.1: resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} @@ -1651,6 +3021,66 @@ packages: resolution: {integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==} dev: true + /case@1.6.3: + resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} + engines: {node: '>= 0.8.0'} + dev: false + + /cdktf-cli@0.18.1(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-SkdH7oxXgsSfhVA8ooLfH7T0KvGd9yU7k4V4m68nR53AMtVb0vsAmoXPafhahVYH+yYaxAYNg/uMXqXr+5qlXA==} + hasBin: true + dependencies: + '@cdktf/cli-core': 0.18.1(react@17.0.2) + '@cdktf/commons': 0.18.1 + '@cdktf/hcl2cdk': 0.18.1 + '@cdktf/hcl2json': 0.18.1 + '@inquirer/prompts': 2.3.1 + '@sentry/node': 6.19.7 + cdktf: 0.18.1(constructs@10.2.70) + ci-info: 3.9.0 + codemaker: 1.89.0 + constructs: 10.2.70 + cross-spawn: 7.0.3 + https-proxy-agent: 5.0.1 + ink-select-input: 4.2.2(ink@3.2.0)(react@17.0.2) + ink-table: 3.0.0(ink@3.2.0)(react@17.0.2) + jsii: 5.1.12 + jsii-pacmak: 1.89.0 + minimatch: 5.1.6 + node-fetch: 2.7.0 + pidtree: 0.6.0 + pidusage: 3.0.2 + tunnel-agent: 0.6.0 + xml-js: 1.6.11 + yargs: 17.7.2 + yoga-layout-prebuilt: 1.10.0 + zod: 1.11.17 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - encoding + - ink + - react + - supports-color + - utf-8-validate + dev: false + + /cdktf@0.18.1(constructs@10.2.70): + resolution: {integrity: sha512-DNh3gNAgfpgrP8jbuwPPZs2he3Ad6zL/L+BuTx1uUoTW3dURmRjXnHjoi6yrTUT6DHdxKsy/JQotD5mnMMHGpA==} + peerDependencies: + constructs: ^10.0.25 + dependencies: + archiver: 5.3.1 + constructs: 10.2.70 + json-stable-stringify: 1.0.2 + semver: 7.5.4 + dev: false + bundledDependencies: + - archiver + - json-stable-stringify + - semver + /chai@4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} @@ -1671,7 +3101,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: false /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1683,6 +3112,9 @@ packages: /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false /check-error@1.0.2: @@ -1702,6 +3134,21 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: false + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true /classlist-polyfill@1.0.3: @@ -1721,19 +3168,93 @@ packages: strip-ansi: 6.0.1 dev: false + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: false + + /cli-spinners@2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + dev: false + + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + engines: {node: '>=6'} + dev: false + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: false + + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: false + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: false + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /code-excerpt@3.0.0: + resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} + engines: {node: '>=10'} + dependencies: + convert-to-spaces: 1.0.2 + dev: false + + /codemaker@1.89.0: + resolution: {integrity: sha512-Jh9ZrMxzX+jbzNvuHNlmEjXUYMSGVNW151SV2aOXU01V3bMjaSP+exfHFsYQ66x/zGEWcjh33pAu2rY44hyYIQ==} + engines: {node: '>= 14.17.0'} + dependencies: + camelcase: 6.3.0 + decamelize: 5.0.1 + fs-extra: 10.1.0 + dev: false + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} dev: true /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: false /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -1743,7 +3264,6 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1763,9 +3283,28 @@ packages: engines: {node: ^12.20.0 || >=14} dev: false + /commonmark@0.30.0: + resolution: {integrity: sha512-j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA==} + hasBin: true + dependencies: + entities: 2.0.3 + mdurl: 1.0.1 + minimist: 1.2.8 + string.prototype.repeat: 0.2.0 + dev: false + + /compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concordance@5.0.4: resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} @@ -1777,7 +3316,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.5.0 + semver: 7.5.4 well-known-symbols: 2.0.0 dev: true @@ -1788,14 +3327,83 @@ packages: proto-list: 1.2.4 dev: false + /constructs@10.2.70: + resolution: {integrity: sha512-z6zr1E8K/9tzJbCQzY0UGX0/oVKPFKu9C/mzEnghCG6TAJINnvlq0CMKm63XqqeMleadZYm5T3sZGJKcxJS/Pg==} + engines: {node: '>= 16.14.0'} + dev: false + /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /convert-to-spaces@1.0.2: + resolution: {integrity: sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==} + engines: {node: '>= 4'} + dev: false + + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: false + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: false + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: false + + /crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + dev: false + + /create-jest@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1817,6 +3425,11 @@ packages: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} dev: false + /date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} + dev: false + /date-time@3.1.0: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} engines: {node: '>=6'} @@ -1834,6 +3447,31 @@ packages: optional: true dependencies: ms: 2.1.2 + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: false + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: false + + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true dev: true /deep-eql@4.1.3: @@ -1843,6 +3481,56 @@ packages: type-detect: 4.0.8 dev: true + /deep-equal@2.2.2: + resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.1 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: false + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: false + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: false + /dependency-cruiser@12.12.1: resolution: {integrity: sha512-tMWkSjaXOmneiwqygV8FbypS+u5KI2cHyeakRb7x2WQDoxaSxRxEEqfdKNughHqO1LNOn8GOmvd2PuWF8EVPAQ==} engines: {node: ^14||^16||>=18} @@ -1878,11 +3566,36 @@ packages: wrap-ansi: 7.0.0 dev: true + /detect-indent@5.0.0: + resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} + engines: {node: '>=4'} + dev: false + /detect-libc@2.0.1: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} dev: false + /detect-newline@2.1.0: + resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} + engines: {node: '>=0.10.0'} + dev: false + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + dependencies: + address: 1.2.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1900,6 +3613,19 @@ packages: path-type: 4.0.0 dev: true + /downlevel-dts@0.11.0: + resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} + hasBin: true + dependencies: + semver: 7.5.4 + shelljs: 0.8.5 + typescript: 5.3.0-dev.20231004 + dev: false + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: false + /electron-to-chromium@1.4.520: resolution: {integrity: sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==} dev: true @@ -1909,9 +3635,24 @@ packages: engines: {node: '>=4.0.0'} dev: false + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false + /enhanced-resolve@5.13.0: resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} engines: {node: '>=10.13.0'} @@ -1920,10 +3661,27 @@ packages: tapable: 2.2.1 dev: true + /entities@2.0.3: + resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} + dev: false + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 dev: false /esbuild@0.17.18: @@ -1989,22 +3747,36 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: false + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: false + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2019,6 +3791,50 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: false + + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.1 + transitivePeerDependencies: + - supports-color + dev: false + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2036,21 +3852,47 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 dev: false - /fastq@1.15.0: + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: false + + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + dev: false + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 - dev: true /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -2058,6 +3900,20 @@ packages: dependencies: to-regex-range: 5.0.1 + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2066,6 +3922,26 @@ packages: path-exists: 4.0.0 dev: true + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + /foreground-child@2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -2074,35 +3950,103 @@ packages: signal-exit: 3.0.7 dev: true + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.0.1 + dev: false + /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} dev: true /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-func-name@2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: false + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + /get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} dependencies: @@ -2110,16 +4054,39 @@ packages: source-map: 0.6.1 dev: false + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: false + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: false + /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: @@ -2151,7 +4118,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -2160,6 +4126,11 @@ packages: ini: 2.0.0 dev: true + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -2172,6 +4143,12 @@ packages: slash: 3.0.0 dev: true + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: false @@ -2179,6 +4156,20 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /graphology-types@0.24.7: + resolution: {integrity: sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==} + dev: false + + /graphology@0.25.4(graphology-types@0.24.7): + resolution: {integrity: sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ==} + peerDependencies: + graphology-types: '>=0.24.0' + dependencies: + events: 3.3.0 + graphology-types: 0.24.7 + obliterator: 2.0.4 + dev: false + /graphviz@0.0.9: resolution: {integrity: sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==} engines: {node: '>=0.6.8'} @@ -2199,30 +4190,76 @@ packages: uglify-js: 3.17.4 dev: true + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: false /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false + /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -2232,15 +4269,22 @@ packages: resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} dev: true + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: false /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - dev: true /individual@3.0.0: resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} @@ -2251,7 +4295,6 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -2270,13 +4313,144 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dev: false + /ink-select-input@4.2.2(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-E5AS2Vnd4CSzEa7Rm+hG47wxRQo1ASfh4msKxO7FHmn/ym+GKSSsFIfR+FonqjKNDPXYJClw8lM47RdN3Pi+nw==} + engines: {node: '>=10'} + peerDependencies: + ink: ^3.0.5 + react: ^16.5.2 || ^17.0.0 + dependencies: + arr-rotate: 1.0.0 + figures: 3.2.0 + ink: 3.2.0(react@17.0.2) + lodash.isequal: 4.5.0 + react: 17.0.2 + dev: false + + /ink-spinner@4.0.3(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==} + engines: {node: '>=10'} + peerDependencies: + ink: '>=3.0.5' + react: '>=16.8.2' + dependencies: + cli-spinners: 2.7.0 + ink: 3.2.0(react@17.0.2) + react: 17.0.2 + dev: false + + /ink-table@3.0.0(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-RtcYjenHKZWjnwVNQ6zSYWMOLKwkWscDAJsqUQXftyjkYho1gGrluGss87NOoIzss0IKr74lKasd6MtlQYALiA==} + peerDependencies: + ink: '>=3.0.0' + react: '>=16.8.0' + dependencies: + ink: 3.2.0(react@17.0.2) + object-hash: 2.2.0 + react: 17.0.2 + dev: false + + /ink-testing-library@2.1.0: + resolution: {integrity: sha512-7TNlOjJlJXB33vG7yVa+MMO7hCjaC1bCn+zdpSjknWoLbOWMaFdKc7LJvqVkZ0rZv2+akhjXPrcR/dbxissjUw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dev: false + + /ink-use-stdout-dimensions@1.0.5(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-rVsqnw4tQEAJUoknU09+zHdDf30GJdkumkHr0iz/TOYMYEZJkYqziQSGJAM+Z+M603EDfO89+Nxyn/Ko2Zknfw==} + peerDependencies: + ink: '>=2.0.0' + react: '>=16.0.0' + dependencies: + ink: 3.2.0(react@17.0.2) + react: 17.0.2 + dev: false + + /ink@3.2.0(react@17.0.2): + resolution: {integrity: sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '>=16.8.0' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + ansi-escapes: 4.3.2 + auto-bind: 4.0.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + cli-cursor: 3.1.0 + cli-truncate: 2.1.0 + code-excerpt: 3.0.0 + indent-string: 4.0.0 + is-ci: 2.0.0 + lodash: 4.17.21 + patch-console: 1.0.0 + react: 17.0.2 + react-devtools-core: 4.28.4 + react-reconciler: 0.26.2(react@17.0.2) + scheduler: 0.20.2 + signal-exit: 3.0.7 + slice-ansi: 3.0.0 + stack-utils: 2.0.6 + string-width: 4.2.3 + type-fest: 0.12.0 + widest-line: 3.1.0 + wrap-ansi: 6.2.0 + ws: 7.5.9 + yoga-layout-prebuilt: 1.10.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: false + /interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} dev: true + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 dev: false /is-binary-path@2.1.0: @@ -2284,13 +4458,44 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: false /is-core-module@2.12.0: resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} dependencies: has: 1.0.3 - dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: false /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} @@ -2300,6 +4505,11 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2314,6 +4524,17 @@ packages: is-path-inside: 3.0.3 dev: true + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2328,10 +4549,35 @@ packages: engines: {node: '>=8'} dev: false + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + /is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} @@ -2339,19 +4585,91 @@ packages: better-path-resolve: 1.0.0 dev: false + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: false + + /is-valid-domain@0.1.6: + resolution: {integrity: sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==} + dependencies: + punycode: 2.3.0 + dev: false + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} dev: false - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: false + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /istanbul-lib-coverage@3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} dev: true + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@6.0.1: + resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-report@3.0.0: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} engines: {node: '>=8'} @@ -2389,6 +4707,426 @@ packages: istanbul-lib-report: 3.0.1 dev: true + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: false + + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + dev: true + + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.1 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.0.4 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-cli@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /jest-config@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.23.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + babel-jest: 29.7.0(@babel/core@7.23.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.7 + '@types/node': 20.8.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.22.13 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + jest-util: 29.7.0 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.7.0 + dev: true + + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.2 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.23.0 + '@babel/generator': 7.23.0 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0) + '@babel/types': 7.23.0 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + dev: true + + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + dev: true + + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 20.8.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -2401,7 +5139,14 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -2410,13 +5155,158 @@ packages: argparse: 2.0.1 dev: false + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /jsii-pacmak@1.89.0: + resolution: {integrity: sha512-fEvXWBdIOz1WyPrpZRbDaaV1f3UyAN8vYIhzH8mtLklsdFUkS3SZdfFJWEKsa6gjILT+4/CqBtLOEZE0iHy0bg==} + engines: {node: '>= 14.17.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.89.0 + '@jsii/spec': 1.89.0 + clone: 2.1.2 + codemaker: 1.89.0 + commonmark: 0.30.0 + escape-string-regexp: 4.0.0 + fs-extra: 10.1.0 + jsii-reflect: 1.89.0 + jsii-rosetta: 1.89.0 + semver: 7.5.4 + spdx-license-list: 6.7.0 + xmlbuilder: 15.1.1 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /jsii-reflect@1.89.0: + resolution: {integrity: sha512-05g0fUVot46rPGXYWzB3q4w2Cx2Ox7pzWfsGuIz6Kql/d9KoAFWMuGjwQbSbrI2I52RPKfTbM8wATzzp6Q5kdQ==} + engines: {node: '>= 14.17.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.89.0 + '@jsii/spec': 1.89.0 + chalk: 4.1.2 + fs-extra: 10.1.0 + oo-ascii-tree: 1.89.0 + yargs: 16.2.0 + dev: false + + /jsii-rosetta@1.89.0: + resolution: {integrity: sha512-1hmLO+LtZ6bf2uvYW45YaRBQJD+rVondVkWfT2Ex9xYrkxAsc4304TV2DoQILfZbkaUPezyJ3ejGFlMhliNG0g==} + engines: {node: '>= 14.17.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.89.0 + '@jsii/spec': 1.89.0 + '@xmldom/xmldom': 0.8.10 + commonmark: 0.30.0 + fast-glob: 3.3.1 + jsii: 1.89.0 + semver: 7.5.4 + semver-intersect: 1.4.0 + stream-json: 1.8.0 + typescript: 3.9.10 + workerpool: 6.5.0 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /jsii-rosetta@5.1.13: + resolution: {integrity: sha512-EmtQU/Q5ex/e2XmysU1ZdEW3vK4feEPDXaivRj5Cf284fuEcWINcD38oPYog0XofPdqeBbf0n+EciBitoEhKGA==} + engines: {node: '>= 16.14.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.88.0 + '@jsii/spec': 1.89.0 + '@xmldom/xmldom': 0.8.10 + chalk: 4.1.2 + commonmark: 0.30.0 + fast-glob: 3.3.1 + jsii: 5.1.12 + semver: 7.5.4 + semver-intersect: 1.4.0 + stream-json: 1.8.0 + typescript: 5.1.6 + workerpool: 6.5.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + + /jsii-srcmak@0.1.951: + resolution: {integrity: sha512-zaKqrsR416yX+QhE1T4mkBWqPpsHQmBnBbsR0f5a32Uknr3+l4PCVtuV5/rgthAG6iE4Pa6c/jO0vcTzyzEY6A==} + hasBin: true + dependencies: + fs-extra: 9.1.0 + jsii: 5.1.12 + jsii-pacmak: 1.89.0 + ncp: 2.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + dev: false + + /jsii@1.89.0: + resolution: {integrity: sha512-NOeltDlkRSu7OXpNS8I4izFtcVKsMppn0pbqM07LWHXrNZT0Y7c/dDtuMyYRIDNcwB6aLtOzLHfls9rd6qrLyg==} + engines: {node: '>= 14.17.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.89.0 + '@jsii/spec': 1.89.0 + case: 1.6.3 + chalk: 4.1.2 + fast-deep-equal: 3.1.3 + fs-extra: 10.1.0 + log4js: 6.9.1 + semver: 7.5.4 + semver-intersect: 1.4.0 + sort-json: 2.0.1 + spdx-license-list: 6.7.0 + typescript: 3.9.10 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /jsii@5.1.12: + resolution: {integrity: sha512-iY3zLosUEKbeua6IAGJXjFxibiiI0xHFjyYPyewOc56MBRHC7nczWSVGRP+Jgwyo7HWXs4TvJKLG6w8zSuAZrg==} + engines: {node: '>= 16.14.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.88.0 + '@jsii/spec': 1.89.0 + case: 1.6.3 + chalk: 4.1.2 + downlevel-dts: 0.11.0 + fast-deep-equal: 3.1.3 + log4js: 6.9.1 + semver: 7.5.4 + semver-intersect: 1.4.0 + sort-json: 2.0.1 + spdx-license-list: 6.7.0 + typescript: 5.1.6 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: false /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + /json-stable-stringify@1.0.2: + resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + dependencies: + jsonify: 0.0.1 + dev: false + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: false @@ -2430,6 +5320,24 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + dev: false + /keyboardevent-key-polyfill@1.1.0: resolution: {integrity: sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ==} dev: false @@ -2439,6 +5347,18 @@ packages: engines: {node: '>=6'} dev: true + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.8 + dev: false + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -2467,6 +5387,20 @@ packages: engines: {node: '>=14'} dev: true + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -2474,13 +5408,53 @@ packages: p-locate: 5.0.0 dev: true + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + dev: false + + /lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + dev: false + + /lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + /lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true + /lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + dev: false + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true + + /log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} + dependencies: + date-format: 4.0.14 + debug: 4.3.4 + flatted: 3.2.9 + rfdc: 1.3.0 + streamroller: 3.1.5 + transitivePeerDependencies: + - supports-color + dev: false /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} @@ -2495,12 +5469,27 @@ packages: get-func-name: 2.0.0 dev: true + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + dev: false + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 + /lru_map@0.3.3: + resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + dev: false + /magic-string@0.30.0: resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} engines: {node: '>=12'} @@ -2533,6 +5522,12 @@ packages: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + /map-age-cleaner@0.1.3: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} engines: {node: '>=6'} @@ -2556,6 +5551,10 @@ packages: blueimp-md5: 2.19.0 dev: true + /mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + dev: false + /mem@8.1.1: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} @@ -2587,19 +5586,46 @@ packages: engines: {node: '>=8'} dev: false + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: - brace-expansion: 1.1.11 - dev: true + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: false + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: false /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: false + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + /mlly@1.2.0: resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} dependencies: - acorn: 8.8.2 + acorn: 8.10.0 pathe: 1.1.0 pkg-types: 1.0.3 ufo: 1.1.2 @@ -2616,7 +5642,11 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true + + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: false /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -2626,12 +5656,29 @@ packages: thenify-all: 1.6.0 dev: true + /nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + dev: false + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /ncp@2.0.0: + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + hasBin: true + dev: false + /ndjson@2.0.0: resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} engines: {node: '>=10'} @@ -2648,6 +5695,29 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true + /node-abi@3.47.0: + resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: false + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true @@ -2675,11 +5745,46 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + /object-hash@2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: false + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /obliterator@2.0.4: + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} + dev: false + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -2687,6 +5792,24 @@ packages: dependencies: mimic-fn: 2.1.0 + /oo-ascii-tree@1.89.0: + resolution: {integrity: sha512-HRFmdGyLTO/xUo9XNHwa8ColVVP6IEeeRKcxbzRIbgRpPcIiDGo99ShecJdkaXOyR+q4Wi6hiX5b7yrsBI/gxA==} + engines: {node: '>= 14.17.0'} + dev: false + + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: false + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: false + /p-defer@1.0.0: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} @@ -2699,6 +5822,12 @@ packages: p-map: 2.1.0 dev: false + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -2713,6 +5842,19 @@ packages: yocto-queue: 1.0.0 dev: true + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -2725,10 +5867,19 @@ packages: engines: {node: '>=6'} dev: false + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + /pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: false + /parse-gitignore@1.0.1: + resolution: {integrity: sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==} + engines: {node: '>=6'} + dev: false + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -2737,27 +5888,34 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: false /parse-ms@2.1.0: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} dev: false + /patch-console@1.0.0: + resolution: {integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==} + engines: {node: '>=10'} + dev: false + /path-absolute@1.0.1: resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} engines: {node: '>=4'} dev: false + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: true /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -2769,7 +5927,14 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.0.1 + minipass: 7.0.4 + dev: false /path-temp@2.0.0: resolution: {integrity: sha512-92olbatybjsHTGB2CUnAM7s0mU/27gcMfLNA7t09UftndUdxywlQKur3fzXEPpfLrgZD3I2Bt8+UmiL7YDEgXQ==} @@ -2804,6 +5969,10 @@ packages: tslib: 1.14.1 dev: false + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -2812,11 +5981,31 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: false + + /pidusage@3.0.2: + resolution: {integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==} + engines: {node: '>=10'} + dependencies: + safe-buffer: 5.2.1 + dev: false + /pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} dev: true + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: @@ -2825,6 +6014,13 @@ packages: pathe: 1.1.1 dev: true + /pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + dependencies: + find-up: 3.0.0 + dev: false + /playwright-core@1.37.1: resolution: {integrity: sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==} engines: {node: '>=16'} @@ -2852,7 +6048,7 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - ts-node: 10.9.1(@types/node@18.16.6)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.16.6)(typescript@5.2.2) yaml: 1.10.2 dev: true @@ -2878,11 +6074,29 @@ packages: source-map-js: 1.0.2 dev: true + /prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.1 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.47.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -2918,6 +6132,10 @@ packages: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} dev: false + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: false + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -2930,10 +6148,21 @@ packages: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: false + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + /pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2942,6 +6171,26 @@ packages: engines: {node: '>=8'} dev: false + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: false + + /react-devtools-core@4.28.4: + resolution: {integrity: sha512-IUZKLv3CimeM07G3vX4H4loxVpByrzq3HvfTX7v9migalwvLs9ZY5D3S3pKR33U+GguYfBBdMMZyToFhsSE/iQ==} + dependencies: + shell-quote: 1.8.1 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -2960,6 +6209,26 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true + /react-reconciler@0.26.2(react@17.0.2): + resolution: {integrity: sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^17.0.2 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react: 17.0.2 + scheduler: 0.20.2 + dev: false + + /react@17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -2983,6 +6252,18 @@ packages: strip-bom: 4.0.0 dev: false + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -2992,12 +6273,17 @@ packages: util-deprecate: 1.0.2 dev: false + /readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + dependencies: + minimatch: 5.1.6 + dev: false + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /realpath-missing@1.1.0: resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} @@ -3013,6 +6299,13 @@ packages: object-assign: 4.1.1 dev: false + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.2 + dev: false + /rechoir@0.8.0: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} @@ -3025,15 +6318,38 @@ packages: hasBin: true dev: true + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false + + /reserved-words@0.1.2: + resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} + dev: false + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -3043,6 +6359,11 @@ packages: resolution: {integrity: sha512-hNS03NEmVpJheF7yfyagNh57XuKc0z+NkSO0oBbeO67o6IJKoqlDfnNIxhjp7aTWwjmSWZQhtiGrOgZXVyM90w==} dev: false + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true @@ -3050,12 +6371,23 @@ packages: is-core-module: 2.12.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: false /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: false + /right-pad@1.0.1: resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} engines: {node: '>= 0.10'} @@ -3084,6 +6416,11 @@ packages: fsevents: 2.3.2 dev: true + /run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + dev: false + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -3095,6 +6432,10 @@ packages: tslib: 2.5.0 dev: false + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: false + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: false @@ -3114,6 +6455,10 @@ packages: regexp-tree: 0.1.27 dev: true + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + /sass@1.66.1: resolution: {integrity: sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==} engines: {node: '>=14.0.0'} @@ -3124,30 +6469,58 @@ packages: source-map-js: 1.0.2 dev: true + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: false + + /scheduler@0.20.2: + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: false + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 dev: false + /semver-intersect@1.4.0: + resolution: {integrity: sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==} + dependencies: + semver: 5.7.2 + dev: false + /semver-try-require@6.2.2: resolution: {integrity: sha512-Pyr1mG/kyBxL2+hNfU/VPRhBRdm/+EJAyWlusn7t9NDRkZEvsbwPjlocZ4ji0TD4ALPmW9ZkrzMQADjrRCDQ5w==} engines: {node: ^14||^16||>=18} dependencies: - semver: 7.5.0 + semver: 7.5.4 dev: true + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: false + /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true dev: true + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + /semver@7.5.0: resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 + dev: true /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} @@ -3155,7 +6528,19 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: false /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -3167,6 +6552,28 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: false + + /shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: false + /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true @@ -3179,6 +6586,23 @@ packages: engines: {node: '>=14'} dev: false + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: false + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true @@ -3188,6 +6612,24 @@ packages: engines: {node: '>=8'} dev: true + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: false + + /sort-json@2.0.1: + resolution: {integrity: sha512-s8cs2bcsQCzo/P2T/uoU6Js4dS/jnX8+4xunziNoq9qmSpZNCrRIAIvp4avsz0ST18HycV4z/7myJ7jsHWB2XQ==} + hasBin: true + dependencies: + detect-indent: 5.0.0 + detect-newline: 2.1.0 + minimist: 1.2.8 + dev: false + /sort-keys@4.2.0: resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} engines: {node: '>=8'} @@ -3200,6 +6642,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -3211,12 +6660,32 @@ packages: whatwg-url: 7.1.0 dev: true + /spdx-license-list@6.7.0: + resolution: {integrity: sha512-NFqavuJxNsHdwSy/0PjmUpcc76XwlmHQRPjVVtE62qmSLhKJUnzSvJCkU9nrY6TsChfGU1xqGePriBkNtNRMiA==} + engines: {node: '>=8'} + dev: false + /split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: readable-stream: 3.6.2 dev: false + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /sscaff@1.2.274: + resolution: {integrity: sha512-sztRa50SL1LVxZnF1au6QT1SC2z0S1oEOyi2Kpnlg6urDns93aL32YxiJcNkLcY+VHFtVqm/SRv4cb+6LeoBQA==} + engines: {node: '>= 12.13.0'} + dev: false + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -3232,13 +6701,45 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: false + + /stream-buffers@3.0.2: + resolution: {integrity: sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==} + engines: {node: '>= 0.10.0'} + dev: false + + /stream-chain@2.2.5: + resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} + dev: false + + /stream-json@1.8.0: + resolution: {integrity: sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==} + dependencies: + stream-chain: 2.2.5 + dev: false + + /streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} + dependencies: + date-format: 4.0.14 + debug: 4.3.4 + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 - dev: false /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -3248,6 +6749,25 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: false + + /string.prototype.repeat@0.2.0: + resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} + dev: false + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: false + /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: @@ -3260,6 +6780,13 @@ packages: dependencies: ansi-regex: 5.0.1 + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: false + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -3268,7 +6795,6 @@ packages: /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} - dev: false /strip-comments-strings@1.2.0: resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} @@ -3278,6 +6804,16 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + /strip-literal@1.0.1: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} dependencies: @@ -3303,7 +6839,6 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: false /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -3311,16 +6846,42 @@ packages: dependencies: has-flag: 4.0.0 + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: true /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} dev: true + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + /teamcity-service-messages@0.1.14: resolution: {integrity: sha512-29aQwaHqm8RMX74u2o/h1KbMLP89FjNiMxD9wbF2BbWOnbM+q+d1sCEC+MqCc4QW3NJykn77OMpTFw/xTHIc0w==} dev: true @@ -3387,12 +6948,31 @@ packages: engines: {node: '>=14.0.0'} dev: true + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: false + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: @@ -3404,19 +6984,54 @@ packages: hasBin: true dev: true - /ts-essentials@9.3.2(typescript@5.0.4): + /ts-essentials@9.3.2(typescript@5.2.2): resolution: {integrity: sha512-JxKJzuWqH1MmH4ZFHtJzGEhkfN3QvVR3C3w+4BIoWeoY68UVVoA2Np/Bca9z0IPSErVCWhv439aT0We4Dks8kQ==} peerDependencies: typescript: '>=4.1.0' dependencies: - typescript: 5.0.4 + typescript: 5.2.2 dev: true /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-node@10.9.1(@types/node@18.16.6)(typescript@5.0.4): + /ts-jest@29.1.1(@babel/core@7.23.0)(esbuild@0.17.18)(jest@29.7.0)(typescript@5.2.2): + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.23.0 + bs-logger: 0.2.6 + esbuild: 0.17.18 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.4 + typescript: 5.2.2 + yargs-parser: 21.1.1 + dev: true + + /ts-node@10.9.1(@types/node@18.16.6)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3436,13 +7051,44 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 '@types/node': 18.16.6 - acorn: 8.8.2 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /ts-node@10.9.1(@types/node@20.8.2)(typescript@5.2.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 20.8.2 + acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.0.4 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -3473,7 +7119,7 @@ packages: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: false - /tsup@6.7.0(ts-node@10.9.1)(typescript@5.0.4): + /tsup@6.7.0(ts-node@10.9.1)(typescript@5.2.2): resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} engines: {node: '>=14.18'} hasBin: true @@ -3503,32 +7149,53 @@ packages: source-map: 0.8.0-beta.0 sucrase: 3.32.0 tree-kill: 1.2.2 - typescript: 5.0.4 + typescript: 5.2.2 transitivePeerDependencies: - supports-color - ts-node dev: true + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true + /type-fest@0.12.0: + resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} + engines: {node: '>=10'} + dev: false + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: false + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} dev: false - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@3.9.10: + resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} + engines: {node: '>=4.2.0'} hasBin: true - dev: true + dev: false + + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} + hasBin: true + dev: false /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} @@ -3536,6 +7203,12 @@ packages: hasBin: true dev: true + /typescript@5.3.0-dev.20231004: + resolution: {integrity: sha512-deMSPmvpUJCz9hHInrVQeHJoYCI1tFP7qeUEKh6WouazlvGnLMbyyAHyKNfOBDjU2die9qfjwqtch3DF2aV4vQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + /ufo@1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} dev: true @@ -3559,6 +7232,16 @@ packages: crypto-random-string: 2.0.0 dev: false + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: false + /update-browserslist-db@1.0.11(browserslist@4.21.10): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -3579,6 +7262,16 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: false + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -3614,7 +7307,7 @@ packages: - terser dev: true - /vite-node@0.34.4(@types/node@18.16.6): + /vite-node@0.34.4(@types/node@20.8.2): resolution: {integrity: sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -3624,7 +7317,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.16.6) + vite: 4.4.9(@types/node@20.8.2) transitivePeerDependencies: - '@types/node' - less @@ -3669,7 +7362,7 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.4.9(@types/node@18.16.6): + /vite@4.4.9(@types/node@18.16.6)(sass@1.66.1): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -3701,11 +7394,12 @@ packages: esbuild: 0.18.20 postcss: 8.4.29 rollup: 3.29.1 + sass: 1.66.1 optionalDependencies: fsevents: 2.3.2 dev: true - /vite@4.4.9(@types/node@18.16.6)(sass@1.66.1): + /vite@4.4.9(@types/node@20.1.1): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -3733,16 +7427,15 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.6 + '@types/node': 20.1.1 esbuild: 0.18.20 postcss: 8.4.29 rollup: 3.29.1 - sass: 1.66.1 optionalDependencies: fsevents: 2.3.2 dev: true - /vite@4.4.9(@types/node@20.1.1): + /vite@4.4.9(@types/node@20.8.2): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -3770,7 +7463,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.1.1 + '@types/node': 20.8.2 esbuild: 0.18.20 postcss: 8.4.29 rollup: 3.29.1 @@ -3778,14 +7471,14 @@ packages: fsevents: 2.3.2 dev: true - /vitest-mock-extended@1.1.3(typescript@5.0.4)(vitest@0.31.0): + /vitest-mock-extended@1.1.3(typescript@5.2.2)(vitest@0.31.0): resolution: {integrity: sha512-MiaKYZbTg+fjozKnCpoTTva0BnlSNYyk4jiPuM2xVhg4aou112QIrALdH3/ZKK6qfXWh0A17gFIjWJjylOlXxg==} peerDependencies: typescript: 3.x || 4.x || 5.x vitest: '>=0.29.2' dependencies: - ts-essentials: 9.3.2(typescript@5.0.4) - typescript: 5.0.4 + ts-essentials: 9.3.2(typescript@5.2.2) + typescript: 5.2.2 vitest: 0.31.0 dev: true @@ -3888,7 +7581,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.16.6 + '@types/node': 20.8.2 '@vitest/expect': 0.34.4 '@vitest/runner': 0.34.4 '@vitest/snapshot': 0.34.4 @@ -3907,8 +7600,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.9(@types/node@18.16.6) - vite-node: 0.34.4(@types/node@18.16.6) + vite: 4.4.9(@types/node@20.8.2) + vite-node: 0.34.4(@types/node@20.8.2) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -3920,6 +7613,12 @@ packages: - terser dev: true + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + /watskeburt@0.11.1: resolution: {integrity: sha512-pRg7lw1R5kazren0jhcWSWNNfv3HE5Mzggj9MaruziQYMpxLJL1BrcwJWFSDwgOVbQrmtUZNgbbkKSv6SIyLew==} engines: {node: ^14||^16||>=18} @@ -3928,6 +7627,10 @@ packages: commander: 10.0.1 dev: true + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false + /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: true @@ -3937,6 +7640,13 @@ packages: engines: {node: '>=6'} dev: true + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + /whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} dependencies: @@ -3945,6 +7655,40 @@ packages: webidl-conversions: 4.0.2 dev: true + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: false + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: false + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3980,6 +7724,19 @@ packages: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true + /workerpool@6.5.0: + resolution: {integrity: sha512-r64Ea3glXY2RVzMeNxB+4J+0YHAVzUdV4cM5nHi4BBC2LvnO1pWFAIYKYuGcPElbg1/7eEiaPtZ/jzCjIUuGBg==} + dev: false + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -3988,8 +7745,24 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: false + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 dev: true /write-file-atomic@5.0.1: @@ -4008,9 +7781,45 @@ packages: write-file-atomic: 5.0.1 dev: false + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + dependencies: + sax: 1.3.0 + dev: false + + /xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + dev: false + + /xstate@4.38.2: + resolution: {integrity: sha512-Fba/DwEPDLneHT3tbJ9F3zafbQXszOlyCJyQqqdzmtlY/cwE2th462KK48yaANf98jHlP6lJvxfNtN0LFKXPQg==} + dev: false + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true /yallist@4.0.0: @@ -4021,10 +7830,38 @@ packages: engines: {node: '>= 6'} dev: true + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} - dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -4037,7 +7874,25 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: false /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} @@ -4053,3 +7908,27 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true + + /yoga-layout-prebuilt@1.10.0: + resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} + engines: {node: '>=8'} + dependencies: + '@types/yoga-layout': 1.9.2 + dev: false + + /zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + dev: false + + /zod@1.11.17: + resolution: {integrity: sha512-UzIwO92D0dSFwIRyyqAfRXICITLjF0IP8tRbEK/un7adirMssWZx8xF/1hZNE7t61knWZ+lhEuUvxlu2MO8qqA==} + dev: false + + /zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 44665b75..1fd5bdd1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - 'apps/**' - 'packages/**' + - 'infra' From 4d99f41dfb7c3cc9210a7ee002ac2fdfdf86bca5 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 4 Oct 2023 14:55:03 -0500 Subject: [PATCH 21/42] Add ADR for Terraform usage. --- .../adr/0003-initial-deployment-choices.md | 2 +- documents/adr/0004-infrastructure-as-code.md | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 documents/adr/0004-infrastructure-as-code.md diff --git a/documents/adr/0003-initial-deployment-choices.md b/documents/adr/0003-initial-deployment-choices.md index 8df892dc..d2e523ee 100644 --- a/documents/adr/0003-initial-deployment-choices.md +++ b/documents/adr/0003-initial-deployment-choices.md @@ -12,7 +12,7 @@ The project team has a need to share our solution with our collaborators, as wel ## Decision -We will deploy server-side components to a 10x [Cloud.gov](https://www.cloud.gov) sandbox account. Initially, this will include a docassemble server. We will deploy client-side components to [Cloud.gov Pages](https://cloud.gov/pages/). Automation will be created for deployments, but it will initially be kept lightweight. +We will deploy server-side components to available sandbox accounts, including [Cloud.gov](https://www.cloud.gov) and [AWS](https://aws.amazon.com/). Initially, this will include a docassemble server. We will deploy client-side components to [Cloud.gov Pages](https://cloud.gov/pages/). Automation will be created for deployments, but it will initially be kept lightweight. ## Consequences diff --git a/documents/adr/0004-infrastructure-as-code.md b/documents/adr/0004-infrastructure-as-code.md new file mode 100644 index 00000000..bff5c8a1 --- /dev/null +++ b/documents/adr/0004-infrastructure-as-code.md @@ -0,0 +1,25 @@ +# 4. Infrastructure as Code + +Date: 2023-10-04 + +## Status + +Accepted + +## Context + +The project team must deploy cloud resources to support the project. This must include automated deployments and documentation of the deployed resources. + +Cloud environments available to the project team include AWS, Azure, GCP, and Cloud.gov. + +## Decision + +Terraform provides an extensive ecosystem of modules and providers, and is used widely in government. Every cloud provider the project team has access to supports Terraform. + +Terraform CDK provides a Typescript interface to Terraform. Infrastructure in a formal programming language provides flexibility when writing well-factored code. Usage of Typescript simplifies sharing logic between application and infrastructure code. + +We will use [Terraform CDK](https://github.com/hashicorp/terraform-cdk) for infrastructure as code (IaC). + +## Consequences + +The project team will be able to rapidly deploy test infrastructure to any available cloud provider. From 9a77ccc281756a1cafdb3f7adf0aca2d233df443 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 5 Oct 2023 14:42:53 -0500 Subject: [PATCH 22/42] Add initial docassemble deploy to AWS Lightsail. --- infra/src/app-stack.ts | 83 +++++++++++++++++++++++++++++++++++++++++- infra/src/backend.ts | 2 +- infra/src/index.ts | 2 +- 3 files changed, 84 insertions(+), 3 deletions(-) diff --git a/infra/src/app-stack.ts b/infra/src/app-stack.ts index af206d74..312491e7 100644 --- a/infra/src/app-stack.ts +++ b/infra/src/app-stack.ts @@ -1,8 +1,12 @@ -import { App, TerraformStack } from 'cdktf'; +import { App, TerraformOutput, TerraformStack } from 'cdktf'; import { Construct } from 'constructs'; import { AwsProvider } from '@cdktf/provider-aws/lib/provider'; import { withBackend } from './backend'; +import { LightsailInstance } from '@cdktf/provider-aws/lib/lightsail-instance'; +import { LightsailStaticIp } from '@cdktf/provider-aws/lib/lightsail-static-ip'; +import { LightsailInstancePublicPorts } from '@cdktf/provider-aws/lib/lightsail-instance-public-ports'; +import { LightsailStaticIpAttachment } from '@cdktf/provider-aws/lib/lightsail-static-ip-attachment'; export const registerAppStack = (stackPrefix: string) => { const app = new App(); @@ -18,5 +22,82 @@ class AppStack extends TerraformStack { new AwsProvider(this, 'AWS', { region: 'us-east-2', }); + + const lightsailInstance = new LightsailInstance( + this, + 'docassemble_lightsail', + { + name: `${id}-docassemble`, + availabilityZone: 'us-east-2a', + blueprintId: 'amazon_linux_2', + bundleId: 'small_2_0', + // Preliminary logic to spin up a configured docassemble instance: + userData: ` + sudo yum -y update && \ + sudo yum -y install docker && \ + sudo systemctl enable docker && \ + sudo systemctl start docker && \ + sudo usermod -a -G docker ec2-user && \ + echo "DAHOSTNAME=docassemble.atj.10x.gov +TIMEZONE=America/New_York +USEHTTPS=true +USELETSENCRYPT=true +LETSENCRYPTEMAIL=daniel.naab@gsa.gov" > /home/ec2-user/env.list && \ + sudo chown ec2-user:ec2-user /home/ec2-user/env.list && \ + docker run -d \ + --env-file=/home/ec2-user/env.list \ + --volume dabackup:/usr/share/docassemble/backup \ + --publish 80:80 \ + --publish 443:443 \ + --stop-timeout 600 \ + jhpyle/docassemble`, + } + ); + const staticIp = new LightsailStaticIp( + this, + 'docassemble_lightsail_static_ip', + { + name: `${id}-docassemble-static-ip`, + } + ); + new LightsailStaticIpAttachment(this, 'test_2', { + instanceName: lightsailInstance.id, + staticIpName: staticIp.name, + }); + new LightsailInstancePublicPorts( + this, + `docassemble_lightsail_public_ports`, + { + instanceName: lightsailInstance.name, + portInfo: [ + { + fromPort: 80, + protocol: 'tcp', + toPort: 80, + }, + { + fromPort: 443, + protocol: 'tcp', + toPort: 443, + }, + { + fromPort: 22, + protocol: 'tcp', + toPort: 22, + }, + ], + } + ); + //lightsailInstancePublicPorts.overrideLogicalId('test'); + /*lightsailInstance.addOverride('rule', { + cidrBlocks: ['0.0.0.0/0'], + fromPort: 443, + protocol: 'tcp', + toPort: 443, + });*/ + + new TerraformOutput(this, 'docassemble_ip_address', { + value: staticIp.ipAddress, + }); } } diff --git a/infra/src/backend.ts b/infra/src/backend.ts index 1d087e9d..02f52a5d 100644 --- a/infra/src/backend.ts +++ b/infra/src/backend.ts @@ -2,7 +2,7 @@ import { S3Backend, TerraformStack } from 'cdktf'; export const withBackend = (stack: TerraformStack, stackPrefix: string) => new S3Backend(stack, { - bucket: 'atj-tfstate', + bucket: '10x-atj-tfstate', key: `${stackPrefix}.tfstate`, region: 'us-east-2', }); diff --git a/infra/src/index.ts b/infra/src/index.ts index 7defde2d..fa09aa2f 100644 --- a/infra/src/index.ts +++ b/infra/src/index.ts @@ -1,3 +1,3 @@ import { registerAppStack } from './app-stack'; -registerAppStack('atj-dev'); +registerAppStack('10x-atj-dev'); From ef687062036ac3dc049084abcf4a4b1400f6f720 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Fri, 6 Oct 2023 10:52:21 -0500 Subject: [PATCH 23/42] Put userData script in root namespace --- infra/src/app-stack.ts | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/infra/src/app-stack.ts b/infra/src/app-stack.ts index 312491e7..44c8b6c6 100644 --- a/infra/src/app-stack.ts +++ b/infra/src/app-stack.ts @@ -32,25 +32,7 @@ class AppStack extends TerraformStack { blueprintId: 'amazon_linux_2', bundleId: 'small_2_0', // Preliminary logic to spin up a configured docassemble instance: - userData: ` - sudo yum -y update && \ - sudo yum -y install docker && \ - sudo systemctl enable docker && \ - sudo systemctl start docker && \ - sudo usermod -a -G docker ec2-user && \ - echo "DAHOSTNAME=docassemble.atj.10x.gov -TIMEZONE=America/New_York -USEHTTPS=true -USELETSENCRYPT=true -LETSENCRYPTEMAIL=daniel.naab@gsa.gov" > /home/ec2-user/env.list && \ - sudo chown ec2-user:ec2-user /home/ec2-user/env.list && \ - docker run -d \ - --env-file=/home/ec2-user/env.list \ - --volume dabackup:/usr/share/docassemble/backup \ - --publish 80:80 \ - --publish 443:443 \ - --stop-timeout 600 \ - jhpyle/docassemble`, + userData: USER_DATA_COMMAND, } ); const staticIp = new LightsailStaticIp( @@ -101,3 +83,25 @@ LETSENCRYPTEMAIL=daniel.naab@gsa.gov" > /home/ec2-user/env.list && \ }); } } + +const USER_DATA_COMMAND = ` +sudo yum -y update && \ +sudo yum -y install docker && \ +sudo systemctl enable docker && \ +sudo systemctl start docker && \ +sudo usermod -a -G docker ec2-user && \ +echo "DAHOSTNAME=docassemble.atj.10x.gov +TIMEZONE=America/New_York +USEHTTPS=true +USELETSENCRYPT=true +LETSENCRYPTEMAIL=daniel.naab@gsa.gov" > /home/ec2-user/env.list && \ +sudo chown ec2-user:ec2-user /home/ec2-user/env.list && \ +sudo docker run -d \ + --user ec2-user \ + --env-file /home/ec2-user/env.list \ + --volume dabackup:/usr/share/docassemble/backup \ + --publish 80:80 \ + --publish 443:443 \ + --stop-timeout 600 \ + jhpyle/docassemble +`; From 14b647925f1e74d9fb58699abf8d0f7847c04685 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Fri, 6 Oct 2023 11:43:03 -0500 Subject: [PATCH 24/42] Use recommended medium-sized instance. --- infra/src/app-stack.ts | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/infra/src/app-stack.ts b/infra/src/app-stack.ts index 44c8b6c6..6925a379 100644 --- a/infra/src/app-stack.ts +++ b/infra/src/app-stack.ts @@ -30,7 +30,7 @@ class AppStack extends TerraformStack { name: `${id}-docassemble`, availabilityZone: 'us-east-2a', blueprintId: 'amazon_linux_2', - bundleId: 'small_2_0', + bundleId: 'medium_2_0', // Preliminary logic to spin up a configured docassemble instance: userData: USER_DATA_COMMAND, } @@ -70,13 +70,6 @@ class AppStack extends TerraformStack { ], } ); - //lightsailInstancePublicPorts.overrideLogicalId('test'); - /*lightsailInstance.addOverride('rule', { - cidrBlocks: ['0.0.0.0/0'], - fromPort: 443, - protocol: 'tcp', - toPort: 443, - });*/ new TerraformOutput(this, 'docassemble_ip_address', { value: staticIp.ipAddress, @@ -97,7 +90,6 @@ USELETSENCRYPT=true LETSENCRYPTEMAIL=daniel.naab@gsa.gov" > /home/ec2-user/env.list && \ sudo chown ec2-user:ec2-user /home/ec2-user/env.list && \ sudo docker run -d \ - --user ec2-user \ --env-file /home/ec2-user/env.list \ --volume dabackup:/usr/share/docassemble/backup \ --publish 80:80 \ From 670432e1ad1d8a9bc9bd1fb263987942a7ec0c22 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Fri, 6 Oct 2023 11:50:40 -0500 Subject: [PATCH 25/42] Add recreate.sh to force-rebuild the docassemble instance. --- infra/recreate.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100755 infra/recreate.sh diff --git a/infra/recreate.sh b/infra/recreate.sh new file mode 100755 index 00000000..a6679494 --- /dev/null +++ b/infra/recreate.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# +# Rebuild the Docassemble Lightsail instance. +# This script assumes that cdktf.out has previously been populated; +# if it hasn't, do: `pnpm cdktf synth` first. +# + +pushd cdktf.out/stacks/10x-atj-dev +terraform taint aws_lightsail_instance.docassemble_lightsail +popd +pnpm cdktf deploy From 1581c97288af35a393a0844a27120942a576993e Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 11 Oct 2023 16:24:19 -0500 Subject: [PATCH 26/42] Remove currently unused deps to save build container space --- apps/frontend/package.json | 3 - apps/frontend/playwright.config.ts | 90 ---------- infra/package.json | 3 +- package.json | 1 - pnpm-lock.yaml | 275 ++--------------------------- 5 files changed, 12 insertions(+), 360 deletions(-) delete mode 100644 apps/frontend/playwright.config.ts diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 8645577a..dc0ceee1 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -12,18 +12,15 @@ "@atj/docassemble": "workspace:*", "@atj/documents": "workspace:*", "@atj/interviews": "workspace:*", - "@axe-core/playwright": "^4.7.3", "@uswds/uswds": "^3.6.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@playwright/test": "^1.37.1", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", "@vitejs/plugin-react-swc": "^3.3.2", "autoprefixer": "^10.4.15", - "playwright": "^1.37.1", "sass": "^1.66.1", "vite": "^4.4.9" } diff --git a/apps/frontend/playwright.config.ts b/apps/frontend/playwright.config.ts deleted file mode 100644 index 5e5154be..00000000 --- a/apps/frontend/playwright.config.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { defineConfig, devices } from '@playwright/test'; - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -export default defineConfig({ - testDir: './tests', - /* Maximum time one test can run for. */ - timeout: 30 * 1000, - expect: { - /** - * Maximum time expect() should wait for the condition to be met. - * For example in `await expect(locator).toHaveText();` - */ - timeout: 5000 - }, - /* Run tests in files in parallel */ - fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ - actionTimeout: 0, - /* Base URL to use in actions like `await page.goto('/')`. */ - // baseURL: 'http://localhost:3000', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - - /* Configure projects for major browsers */ - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - - { - name: 'firefox', - use: { ...devices['Desktop Firefox'] }, - }, - - { - name: 'webkit', - use: { ...devices['Desktop Safari'] }, - }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { ...devices['Pixel 5'] }, - // }, - // { - // name: 'Mobile Safari', - // use: { ...devices['iPhone 12'] }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { channel: 'msedge' }, - // }, - // { - // name: 'Google Chrome', - // use: { channel: 'chrome' }, - // }, - ], - - /* Folder for test artifacts such as screenshots, videos, traces, etc. */ - // outputDir: 'test-results/', - - /* Run your local dev server before starting the tests */ - // webServer: { - // command: 'npm run start', - // port: 3000, - // }, -}); diff --git a/infra/package.json b/infra/package.json index 53d84ec0..0ced67fc 100644 --- a/infra/package.json +++ b/infra/package.json @@ -22,7 +22,6 @@ "@types/jest": "^29.5.5", "@types/node": "^20.8.2", "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "ts-node": "^10.9.1" + "ts-jest": "^29.1.1" } } diff --git a/package.json b/package.json index f58bd378..81f108bf 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ "devDependencies": { "@types/node": "^18.16.6", "@vitest/coverage-c8": "^0.31.0", - "dependency-cruiser": "^12.12.1", "prettier": "^2.7.1", "ts-node": "^10.9.1", "tsup": "^6.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96a31f90..7380ed23 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@vitest/coverage-c8': specifier: ^0.31.0 version: 0.31.0(vitest@0.31.0) - dependency-cruiser: - specifier: ^12.12.1 - version: 12.12.1 prettier: specifier: ^2.7.1 version: 2.8.8 @@ -62,9 +59,6 @@ importers: '@atj/interviews': specifier: workspace:* version: link:../../packages/interviews - '@axe-core/playwright': - specifier: ^4.7.3 - version: 4.7.3(playwright-core@1.37.1) '@uswds/uswds': specifier: ^3.6.0 version: 3.6.0 @@ -75,9 +69,6 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) devDependencies: - '@playwright/test': - specifier: ^1.37.1 - version: 1.37.1 '@types/react': specifier: ^18.2.21 version: 18.2.21 @@ -90,9 +81,6 @@ importers: autoprefixer: specifier: ^10.4.15 version: 10.4.15(postcss@8.4.29) - playwright: - specifier: ^1.37.1 - version: 1.37.1 sass: specifier: ^1.66.1 version: 1.66.1 @@ -185,15 +173,6 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@axe-core/playwright@4.7.3(playwright-core@1.37.1): - resolution: {integrity: sha512-v2PRgAyGvop7bamrTpNJtc5b1R7giAPnMzZXrS/VDZBCY5+uwVYtCNgDvBsqp5P1QMZxUMoBN+CERJUTMjFN0A==} - peerDependencies: - playwright-core: '>= 1.0.0' - dependencies: - axe-core: 4.7.0 - playwright-core: 1.37.1 - dev: false - /@babel/code-frame@7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} @@ -1577,17 +1556,6 @@ packages: dev: false optional: true - /@playwright/test@1.37.1: - resolution: {integrity: sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==} - engines: {node: '>=16'} - hasBin: true - dependencies: - '@types/node': 18.16.6 - playwright-core: 1.37.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /@pnpm/cli-meta@5.0.1: resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} engines: {node: '>=16.14'} @@ -2490,25 +2458,6 @@ packages: isexe: 2.0.0 dev: false - /acorn-jsx-walk@2.0.0: - resolution: {integrity: sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==} - dev: true - - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - - /acorn-loose@8.3.0: - resolution: {integrity: sha512-75lAs9H19ldmW+fAbyqHdjgdCrz0pWGXKmnqFoh8PyVd1L2RIb4RzYrSjmopeqv3E1G3/Pimu6GgLlrGbrkF7w==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.10.0 - dev: true - /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} @@ -2547,6 +2496,7 @@ packages: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 + dev: false /ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -2762,11 +2712,6 @@ packages: engines: {node: '>= 0.4'} dev: false - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - dev: false - /babel-jest@29.7.0(@babel/core@7.23.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3268,11 +3213,6 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - dev: true - /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -3531,41 +3471,6 @@ packages: object-keys: 1.1.1 dev: false - /dependency-cruiser@12.12.1: - resolution: {integrity: sha512-tMWkSjaXOmneiwqygV8FbypS+u5KI2cHyeakRb7x2WQDoxaSxRxEEqfdKNughHqO1LNOn8GOmvd2PuWF8EVPAQ==} - engines: {node: ^14||^16||>=18} - hasBin: true - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - acorn-jsx-walk: 2.0.0 - acorn-loose: 8.3.0 - acorn-walk: 8.2.0 - ajv: 8.12.0 - chalk: 4.1.2 - commander: 10.0.1 - enhanced-resolve: 5.13.0 - figures: 3.2.0 - get-stream: 6.0.1 - glob: 7.2.0 - handlebars: 4.7.7 - ignore: 5.2.4 - indent-string: 4.0.0 - interpret: 3.1.1 - is-installed-globally: 0.4.0 - json5: 2.2.3 - lodash: 4.17.21 - prompts: 2.4.2 - rechoir: 0.8.0 - safe-regex: 2.1.1 - semver: 7.5.0 - semver-try-require: 6.2.2 - teamcity-service-messages: 0.1.14 - tsconfig-paths-webpack-plugin: 4.0.1 - watskeburt: 0.11.1 - wrap-ansi: 7.0.0 - dev: true - /detect-indent@5.0.0: resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} engines: {node: '>=4'} @@ -3619,7 +3524,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231004 + typescript: 5.3.0-dev.20231011 dev: false /eastasianwidth@0.2.0: @@ -3653,14 +3558,6 @@ packages: once: 1.4.0 dev: false - /enhanced-resolve@5.13.0: - resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - dev: true - /entities@2.0.3: resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} dev: false @@ -3837,6 +3734,7 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false /fast-diff@1.2.0: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} @@ -3893,6 +3791,7 @@ packages: engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 + dev: false /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -4098,17 +3997,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -4119,13 +4007,6 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: true - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -4177,19 +4058,6 @@ packages: temp: 0.4.0 dev: false - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} - engines: {node: '>=0.4.7'} - hasBin: true - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false @@ -4285,6 +4153,7 @@ packages: /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + dev: false /individual@3.0.0: resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} @@ -4303,11 +4172,6 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: false - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: true - /ini@3.0.1: resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4423,11 +4287,6 @@ packages: engines: {node: '>= 0.10'} dev: false - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - dev: true - /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -4516,14 +4375,6 @@ packages: dependencies: is-extglob: 2.1.1 - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - dev: true - /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: false @@ -4539,11 +4390,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -5300,6 +5146,7 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: false /json-stable-stringify@1.0.2: resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} @@ -5612,6 +5459,7 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} @@ -5691,10 +5539,6 @@ packages: through2: 4.0.2 dev: false - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true - /node-abi@3.47.0: resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} engines: {node: '>=10'} @@ -6021,20 +5865,6 @@ packages: find-up: 3.0.0 dev: false - /playwright-core@1.37.1: - resolution: {integrity: sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==} - engines: {node: '>=16'} - hasBin: true - - /playwright@1.37.1: - resolution: {integrity: sha512-bgUXRrQKhT48zHdxDYQTpf//0xDfDd5hLeEhjuSw8rXEGoT9YeElpfvs/izonTNY21IQZ7d3s22jLxYaAnubbQ==} - engines: {node: '>=16'} - hasBin: true - requiresBuild: true - dependencies: - playwright-core: 1.37.1 - dev: true - /postcss-load-config@3.1.4(ts-node@10.9.1): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -6306,18 +6136,6 @@ packages: resolve: 1.22.2 dev: false - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - dependencies: - resolve: 1.22.2 - dev: true - - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true - /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -6334,6 +6152,7 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + dev: false /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -6449,12 +6268,6 @@ packages: path-name: 1.0.0 dev: false - /safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - dependencies: - regexp-tree: 0.1.27 - dev: true - /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false @@ -6492,13 +6305,6 @@ packages: semver: 5.7.2 dev: false - /semver-try-require@6.2.2: - resolution: {integrity: sha512-Pyr1mG/kyBxL2+hNfU/VPRhBRdm/+EJAyWlusn7t9NDRkZEvsbwPjlocZ4ji0TD4ALPmW9ZkrzMQADjrRCDQ5w==} - engines: {node: ^14||^16||>=18} - dependencies: - semver: 7.5.4 - dev: true - /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -6514,14 +6320,6 @@ packages: hasBin: true dev: true - /semver@7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -6787,11 +6585,6 @@ packages: ansi-regex: 6.0.1 dev: false - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} @@ -6857,11 +6650,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: true - /tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} dependencies: @@ -6882,10 +6670,6 @@ packages: readable-stream: 3.6.2 dev: false - /teamcity-service-messages@0.1.14: - resolution: {integrity: sha512-29aQwaHqm8RMX74u2o/h1KbMLP89FjNiMxD9wbF2BbWOnbM+q+d1sCEC+MqCc4QW3NJykn77OMpTFw/xTHIc0w==} - dev: true - /temp@0.4.0: resolution: {integrity: sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA==} engines: {'0': node >=0.4.0} @@ -7093,24 +6877,6 @@ packages: yn: 3.1.1 dev: true - /tsconfig-paths-webpack-plugin@4.0.1: - resolution: {integrity: sha512-m5//KzLoKmqu2MVix+dgLKq70MnFi8YL8sdzQZ6DblmCdfuq/y3OqvJd5vMndg2KEVCOeNz8Es4WVZhYInteLw==} - engines: {node: '>=10.13.0'} - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.13.0 - tsconfig-paths: 4.2.0 - dev: true - - /tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -7203,8 +6969,8 @@ packages: hasBin: true dev: true - /typescript@5.3.0-dev.20231004: - resolution: {integrity: sha512-deMSPmvpUJCz9hHInrVQeHJoYCI1tFP7qeUEKh6WouazlvGnLMbyyAHyKNfOBDjU2die9qfjwqtch3DF2aV4vQ==} + /typescript@5.3.0-dev.20231011: + resolution: {integrity: sha512-qpyUI7J37X3Xj7/bPWSNPUvmJ8yDGVnkQ8665xD4+LVWKUX7vwO7n2E1CUuQzeQIF4y369iPaz1d396rTW5LfA==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -7217,14 +6983,6 @@ packages: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} dev: true - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true - optional: true - /unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -7257,6 +7015,7 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 + dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -7619,14 +7378,6 @@ packages: makeerror: 1.0.12 dev: true - /watskeburt@0.11.1: - resolution: {integrity: sha512-pRg7lw1R5kazren0jhcWSWNNfv3HE5Mzggj9MaruziQYMpxLJL1BrcwJWFSDwgOVbQrmtUZNgbbkKSv6SIyLew==} - engines: {node: ^14||^16||>=18} - hasBin: true - dependencies: - commander: 10.0.1 - dev: true - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false @@ -7720,10 +7471,6 @@ packages: string-width: 4.2.3 dev: false - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true - /workerpool@6.5.0: resolution: {integrity: sha512-r64Ea3glXY2RVzMeNxB+4J+0YHAVzUdV4cM5nHi4BBC2LvnO1pWFAIYKYuGcPElbg1/7eEiaPtZ/jzCjIUuGBg==} dev: false From a157d389e744c10b06b5e9bc322b41d24b56a1a9 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 12 Oct 2023 12:15:13 -0500 Subject: [PATCH 27/42] Hack in skip cli build step --- apps/cli/package.json | 4 ++-- pnpm-lock.yaml | 56 +++++++++---------------------------------- 2 files changed, 13 insertions(+), 47 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index cd7e38b2..18475c53 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -5,7 +5,7 @@ "license": "CC0", "main": "src/index.ts", "scripts": { - "build": "tsc -p .", + "build": "echo 'skipping...' #tsc -p .", "cli": "ts-node src/index.ts", "test": "vitest run --coverage" }, @@ -13,6 +13,6 @@ "@atj/interviews": "workspace:*", "@atj/dependency-graph": "workspace:*", "@atj/docassemble": "workspace:*", - "commander": "^9.4.1" + "commander": "^11.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7380ed23..2479e895 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,8 +45,8 @@ importers: specifier: workspace:* version: link:../../packages/interviews commander: - specifier: ^9.4.1 - version: 9.5.0 + specifier: ^11.0.0 + version: 11.0.0 apps/frontend: dependencies: @@ -115,9 +115,6 @@ importers: ts-jest: specifier: ^29.1.1 version: 29.1.1(@babel/core@7.23.0)(esbuild@0.17.18)(jest@29.7.0)(typescript@5.2.2) - ts-node: - specifier: ^10.9.1 - version: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) packages/dependency-graph: dependencies: @@ -3213,16 +3210,16 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + dev: false + /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} dev: true - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: false - /commonmark@0.30.0: resolution: {integrity: sha512-j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA==} hasBin: true @@ -3524,7 +3521,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231011 + typescript: 5.3.0-dev.20231012 dev: false /eastasianwidth@0.2.0: @@ -4663,7 +4660,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@18.16.6)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -6846,37 +6843,6 @@ packages: yn: 3.1.1 dev: true - /ts-node@10.9.1(@types/node@20.8.2)(typescript@5.2.2): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 20.8.2 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.2.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -6969,8 +6935,8 @@ packages: hasBin: true dev: true - /typescript@5.3.0-dev.20231011: - resolution: {integrity: sha512-qpyUI7J37X3Xj7/bPWSNPUvmJ8yDGVnkQ8665xD4+LVWKUX7vwO7n2E1CUuQzeQIF4y369iPaz1d396rTW5LfA==} + /typescript@5.3.0-dev.20231012: + resolution: {integrity: sha512-k/m+QK/2eVsPMAao4I28Cv2Y9WzUKFVhRqvFGZ3CIXc0lrMkw/1pSA+8tp7IMw1ecxoa1myFql1tmCUrMKCbzA==} engines: {node: '>=14.17'} hasBin: true dev: false From b459936048434cd90deed13ba882e09d9c59e3ce Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 12 Oct 2023 12:45:29 -0500 Subject: [PATCH 28/42] Add Turborepo for more managable builds. --- .gitignore | 1 + package.json | 4 ++-- turbo.json | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 turbo.json diff --git a/.gitignore b/.gitignore index 72d545a7..65dd9615 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .env *.code-workspace _site +.turbo/ .vscode/ coverage/ node_modules/ diff --git a/package.json b/package.json index 81f108bf..686f0642 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,9 @@ "main": "index.js", "license": "CC0", "scripts": { - "build": "pnpm --recursive --parallel build", + "build": "turbo run build", "pages": "rm -rf node_modules && npm i -g pnpm && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", - "test": "pnpm --recursive --no-bail --parallel --if-present test", + "test": "turbo run test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, "hooks": { diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..74b49034 --- /dev/null +++ b/turbo.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://turbo.build/schema.json", + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": [".next/**", "!.next/cache/**"] + }, + "deploy": { + "dependsOn": ["build", "test", "lint"] + }, + "test": { + "dependsOn": ["build"], + "inputs": ["src/**/*.tsx", "src/**/*.ts", "test/**/*.ts", "test/**/*.tsx"] + }, + "lint": {}, + "dev": { + "cache": false, + "persistent": true + } + } +} From 65fe9696a0b2455d1f22d25db5a69ee5a8339064 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 12 Oct 2023 13:02:24 -0500 Subject: [PATCH 29/42] Add ADR for pnpm and Turborepo. --- documents/adr/0005-build-system.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 documents/adr/0005-build-system.md diff --git a/documents/adr/0005-build-system.md b/documents/adr/0005-build-system.md new file mode 100644 index 00000000..29fdb8a2 --- /dev/null +++ b/documents/adr/0005-build-system.md @@ -0,0 +1,23 @@ +# 5. Infrastructure as Code + +Date: 2023-10-12 + +## Status + +Accepted + +## Context + +The development phase of "10x Digital Access to Justice Platform" has started. The development effort will focus on building modular form system components. + +A method of structuring cohesive and well-encapsulated modules is required. Additionally, the module system should enable efficient builds and integrate with other goals, such as [generating dependency diagrams](./0002-generate-dependency-diagram.md). + +## Decision + +A [pnpm](https://pnpm.io/) workspace will be utilized. Workspaces are a standard method of organizing multiple interdependent [node.js](https://nodejs.org/) packages in a single repository. pnpm offers efficient package management and well-implemented workspaces. + +[Turborepo](https://turbo.build/) will be leveraged to managed efficient builds. In a multi-project workspace, tracking interdependencies between packages is required. Turborepo implements an efficient caching system and executing engine that leads to efficient and developer-friend builds. + +## Consequences + +Reasoning about dependencies will be enhanced with explicit packages per module. Additionally, dependencies will be modularized with in a manner that makes it easy to lift and shift the code to another location with a pnpm workspace. Lastly, developer efficiency will be enhanced by the fast builds provided by Turborepo. From 66002615be2543b5d0840e4be4ebd22f5698272b Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 12 Oct 2023 13:08:18 -0500 Subject: [PATCH 30/42] Add Turborepo to Cloud.gov pages build. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 686f0642..dc1ca281 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "CC0", "scripts": { "build": "turbo run build", - "pages": "rm -rf node_modules && npm i -g pnpm && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", + "pages": "rm -rf node_modules && npm i -g pnpm turbo && pnpm i && pnpm build && ln -sf ./apps/frontend/dist _site", "test": "turbo run test", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"" }, From 82507adb0eb565ef6a91bc2fa7d8fe658037cdb9 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Thu, 12 Oct 2023 13:19:08 -0500 Subject: [PATCH 31/42] Add turbo to project dependencies --- package.json | 1 + pnpm-lock.yaml | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/package.json b/package.json index dc1ca281..b421d690 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "prettier": "^2.7.1", "ts-node": "^10.9.1", "tsup": "^6.4.0", + "turbo": "^1.10.15", "typescript": "^5.2.2", "vitest": "^0.31.0", "vitest-mock-extended": "^1.0.7" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2479e895..a804eba1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: tsup: specifier: ^6.4.0 version: 6.7.0(ts-node@10.9.1)(typescript@5.2.2) + turbo: + specifier: ^1.10.15 + version: 1.10.15 typescript: specifier: ^5.2.2 version: 5.2.2 @@ -6893,6 +6896,66 @@ packages: safe-buffer: 5.2.1 dev: false + /turbo-darwin-64@1.10.15: + resolution: {integrity: sha512-Sik5uogjkRTe1XVP9TC2GryEMOJCaKE2pM/O9uLn4koQDnWKGcLQv+mDU+H+9DXvKLnJnKCD18OVRkwK5tdpoA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-darwin-arm64@1.10.15: + resolution: {integrity: sha512-xwqyFDYUcl2xwXyGPmHkmgnNm4Cy0oNzMpMOBGRr5x64SErS7QQLR4VHb0ubiR+VAb8M+ECPklU6vD1Gm+wekg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-64@1.10.15: + resolution: {integrity: sha512-dM07SiO3RMAJ09Z+uB2LNUSkPp3I1IMF8goH5eLj+d8Kkwoxd/+qbUZOj9RvInyxU/IhlnO9w3PGd3Hp14m/nA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm64@1.10.15: + resolution: {integrity: sha512-MkzKLkKYKyrz4lwfjNXH8aTny5+Hmiu4SFBZbx+5C0vOlyp6fV5jZANDBvLXWiDDL4DSEAuCEK/2cmN6FVH1ow==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-64@1.10.15: + resolution: {integrity: sha512-3TdVU+WEH9ThvQGwV3ieX/XHebtYNHv9HARHauPwmVj3kakoALkpGxLclkHFBLdLKkqDvmHmXtcsfs6cXXRHJg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-arm64@1.10.15: + resolution: {integrity: sha512-l+7UOBCbfadvPMYsX08hyLD+UIoAkg6ojfH+E8aud3gcA1padpjCJTh9gMpm3QdMbKwZteT5uUM+wyi6Rbbyww==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo@1.10.15: + resolution: {integrity: sha512-mKKkqsuDAQy1wCCIjCdG+jOCwUflhckDMSRoeBPcIL/CnCl7c5yRDFe7SyaXloUUkt4tUR0rvNIhVCcT7YeQpg==} + hasBin: true + optionalDependencies: + turbo-darwin-64: 1.10.15 + turbo-darwin-arm64: 1.10.15 + turbo-linux-64: 1.10.15 + turbo-linux-arm64: 1.10.15 + turbo-windows-64: 1.10.15 + turbo-windows-arm64: 1.10.15 + dev: true + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} From 1919518f9ae0031b8a1cfcdc7cdb2a80db49e6bb Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Fri, 13 Oct 2023 12:20:20 -0500 Subject: [PATCH 32/42] Scaffold Astro "Spotlight" app. --- apps/spotlight/.gitignore | 21 + apps/spotlight/README.md | 5 + apps/spotlight/astro.config.mjs | 4 + apps/spotlight/package.json | 15 + apps/spotlight/public/favicon.ico | Bin 0 -> 15086 bytes .../public/favicon/android-chrome-192x192.png | Bin 0 -> 19744 bytes .../public/favicon/android-chrome-384x384.png | Bin 0 -> 35032 bytes .../public/favicon/apple-touch-icon.png | Bin 0 -> 18837 bytes .../public/favicon/favicon-16x16.png | Bin 0 -> 8706 bytes .../public/favicon/favicon-32x32.png | Bin 0 -> 8706 bytes apps/spotlight/public/favicon/favicon.ico | Bin 0 -> 15086 bytes apps/spotlight/src/components/Card.astro | 61 + apps/spotlight/src/env.d.ts | 1 + apps/spotlight/src/layouts/Layout.astro | 54 + apps/spotlight/src/pages/index.astro | 123 + apps/spotlight/tsconfig.json | 3 + pnpm-lock.yaml | 2162 ++++++++++++++++- 17 files changed, 2366 insertions(+), 83 deletions(-) create mode 100644 apps/spotlight/.gitignore create mode 100644 apps/spotlight/README.md create mode 100644 apps/spotlight/astro.config.mjs create mode 100644 apps/spotlight/package.json create mode 100644 apps/spotlight/public/favicon.ico create mode 100644 apps/spotlight/public/favicon/android-chrome-192x192.png create mode 100644 apps/spotlight/public/favicon/android-chrome-384x384.png create mode 100644 apps/spotlight/public/favicon/apple-touch-icon.png create mode 100644 apps/spotlight/public/favicon/favicon-16x16.png create mode 100644 apps/spotlight/public/favicon/favicon-32x32.png create mode 100644 apps/spotlight/public/favicon/favicon.ico create mode 100644 apps/spotlight/src/components/Card.astro create mode 100644 apps/spotlight/src/env.d.ts create mode 100644 apps/spotlight/src/layouts/Layout.astro create mode 100644 apps/spotlight/src/pages/index.astro create mode 100644 apps/spotlight/tsconfig.json diff --git a/apps/spotlight/.gitignore b/apps/spotlight/.gitignore new file mode 100644 index 00000000..6d4c0aa0 --- /dev/null +++ b/apps/spotlight/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/apps/spotlight/README.md b/apps/spotlight/README.md new file mode 100644 index 00000000..7ecc4b20 --- /dev/null +++ b/apps/spotlight/README.md @@ -0,0 +1,5 @@ +# ATJ Spotlight - frontend interface + +## Summary + +ATJ Spotlight is the public face of the 10x Access to Justice Platform project. We will share progress of our work and demo our findings here. diff --git a/apps/spotlight/astro.config.mjs b/apps/spotlight/astro.config.mjs new file mode 100644 index 00000000..882e6515 --- /dev/null +++ b/apps/spotlight/astro.config.mjs @@ -0,0 +1,4 @@ +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({}); diff --git a/apps/spotlight/package.json b/apps/spotlight/package.json new file mode 100644 index 00000000..2fbe6c57 --- /dev/null +++ b/apps/spotlight/package.json @@ -0,0 +1,15 @@ +{ + "name": "@atj/spotlight", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "astro": "^3.3.0" + } +} diff --git a/apps/spotlight/public/favicon.ico b/apps/spotlight/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..80aa66571a60052e8293d5212ff5804f7b1f20d2 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/apps/spotlight/public/favicon/favicon-16x16.png b/apps/spotlight/public/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..af17c23730f3abe7cc79008c0cc60f6a5ae8d88d GIT binary patch literal 8706 zcmV+dBK_ToP)+&)ul5{Co@eg64H{%LpP63QbD8Z zFyw)4B>92yQ&+Yr$k_PG4{VIFt_=8zkz|AA2ez(^Ul@#KY^N#7jHQ$~p_2ruZJs29 zG|hB6)9FMav`G`#uXA?4-Tn4^?A`mm5}X

VEsUyWgHY=XZYJ`Ob%oF?d%dpL}-U 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 literal 0 HcmV?d00001 diff --git a/apps/spotlight/public/favicon/favicon-32x32.png b/apps/spotlight/public/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..af17c23730f3abe7cc79008c0cc60f6a5ae8d88d GIT binary patch literal 8706 zcmV+dBK_ToP)+&)ul5{Co@eg64H{%LpP63QbD8Z zFyw)4B>92yQ&+Yr$k_PG4{VIFt_=8zkz|AA2ez(^Ul@#KY^N#7jHQ$~p_2ruZJs29 zG|hB6)9FMav`G`#uXA?4-Tn4^?A`mm5}X

VEsUyWgHY=XZYJ`Ob%oF?d%dpL}-U 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 literal 0 HcmV?d00001 diff --git a/apps/spotlight/public/favicon/favicon.ico b/apps/spotlight/public/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..80aa66571a60052e8293d5212ff5804f7b1f20d2 GIT binary patch literal 15086 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 + +

+ {title} + +

+

+ {body} +

+
+ + diff --git a/apps/spotlight/src/env.d.ts b/apps/spotlight/src/env.d.ts new file mode 100644 index 00000000..f964fe0c --- /dev/null +++ b/apps/spotlight/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/spotlight/src/layouts/Layout.astro b/apps/spotlight/src/layouts/Layout.astro new file mode 100644 index 00000000..546ef9d4 --- /dev/null +++ b/apps/spotlight/src/layouts/Layout.astro @@ -0,0 +1,54 @@ +--- +interface Props { + title: string; +} + +const { title } = Astro.props; +--- + + + + + + + + + + + + + {title} + + + + + + diff --git a/apps/spotlight/src/pages/index.astro b/apps/spotlight/src/pages/index.astro new file mode 100644 index 00000000..0c8795be --- /dev/null +++ b/apps/spotlight/src/pages/index.astro @@ -0,0 +1,123 @@ +--- +import Layout from '../layouts/Layout.astro'; +import Card from '../components/Card.astro'; +--- + + +
+ +

Welcome to Astro

+

+ To get started, open the directory src/pages in your project.
+ Code Challenge: Tweak the "Welcome to Astro" message above. +

+ +
+
+ + diff --git a/apps/spotlight/tsconfig.json b/apps/spotlight/tsconfig.json new file mode 100644 index 00000000..77da9dd0 --- /dev/null +++ b/apps/spotlight/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "astro/tsconfigs/strict" +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a804eba1..033838a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,6 +91,12 @@ importers: specifier: ^4.4.9 version: 4.4.9(@types/node@18.16.6)(sass@1.66.1) + apps/spotlight: + dependencies: + astro: + specifier: ^3.3.0 + version: 3.3.0(@types/node@18.16.6)(typescript@5.2.2) + infra: dependencies: '@cdktf/provider-aws': @@ -171,7 +177,60 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 - dev: true + + /@astrojs/compiler@2.2.0: + resolution: {integrity: sha512-JvmckEJgg8uXUw8Rs6VZDvN7LcweCHOdcxsCXpC+4KMDC9FaB5t9EH/NooSE+hu/rnACEhsXA3FKmf9wnhb7hA==} + dev: false + + /@astrojs/internal-helpers@0.2.1: + resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} + dev: false + + /@astrojs/markdown-remark@3.3.0(astro@3.3.0): + resolution: {integrity: sha512-ezFzEiZygc/ASe2Eul9v1yrTbNGqSbR348UGNXQ4Dtkx8MYRwfiBfmPm6VnEdfIGkW+bi5qIUReKfc7mPVUkIg==} + peerDependencies: + astro: ^3.3.0 + dependencies: + '@astrojs/prism': 3.0.0 + astro: 3.3.0(@types/node@18.16.6)(typescript@5.2.2) + github-slugger: 2.0.0 + import-meta-resolve: 3.0.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 6.1.1 + rehype-stringify: 9.0.4 + remark-gfm: 3.0.1 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + remark-smartypants: 2.0.0 + shikiji: 0.6.10 + unified: 10.1.2 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@astrojs/prism@3.0.0: + resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} + engines: {node: '>=18.14.1'} + dependencies: + prismjs: 1.29.0 + dev: false + + /@astrojs/telemetry@3.0.3: + resolution: {integrity: sha512-j19Cf5mfyLt9hxgJ9W/FMdAA5Lovfp7/CINNB/7V71GqvygnL7KXhRC3TzfB+PsVQcBtgWZzCXhUWRbmJ64Raw==} + engines: {node: '>=18.14.1'} + dependencies: + ci-info: 3.9.0 + debug: 4.3.4 + dlv: 1.1.3 + dset: 3.1.2 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false /@babel/code-frame@7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} @@ -189,7 +248,6 @@ packages: /@babel/compat-data@7.22.20: resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} engines: {node: '>=6.9.0'} - dev: true /@babel/core@7.23.0: resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} @@ -212,7 +270,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /@babel/generator@7.23.0: resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} @@ -223,6 +280,13 @@ packages: '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: false + /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -232,12 +296,10 @@ packages: browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 - dev: true /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} @@ -245,21 +307,18 @@ packages: dependencies: '@babel/template': 7.22.15 '@babel/types': 7.23.0 - dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 - dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 - dev: true /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} @@ -273,26 +332,22 @@ packages: '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - dev: true /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 - dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 - dev: true /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -309,7 +364,6 @@ packages: /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} - dev: true /@babel/helpers@7.23.1: resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} @@ -320,7 +374,6 @@ packages: '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight@7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -398,7 +451,6 @@ packages: dependencies: '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - dev: true /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -474,6 +526,20 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/types': 7.23.0 + dev: false + /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} @@ -498,7 +564,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/types@7.23.0: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} @@ -689,7 +754,15 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true + optional: true + + /@esbuild/android-arm64@0.19.4: + resolution: {integrity: sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false optional: true /@esbuild/android-arm@0.17.18: @@ -707,7 +780,15 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true + optional: true + + /@esbuild/android-arm@0.19.4: + resolution: {integrity: sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false optional: true /@esbuild/android-x64@0.17.18: @@ -725,7 +806,15 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true + optional: true + + /@esbuild/android-x64@0.19.4: + resolution: {integrity: sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false optional: true /@esbuild/darwin-arm64@0.17.18: @@ -743,7 +832,15 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.4: + resolution: {integrity: sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true /@esbuild/darwin-x64@0.17.18: @@ -761,7 +858,15 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true + optional: true + + /@esbuild/darwin-x64@0.19.4: + resolution: {integrity: sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true /@esbuild/freebsd-arm64@0.17.18: @@ -779,7 +884,15 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.4: + resolution: {integrity: sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false optional: true /@esbuild/freebsd-x64@0.17.18: @@ -797,7 +910,15 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.4: + resolution: {integrity: sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false optional: true /@esbuild/linux-arm64@0.17.18: @@ -815,7 +936,15 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-arm64@0.19.4: + resolution: {integrity: sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-arm@0.17.18: @@ -833,7 +962,15 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-arm@0.19.4: + resolution: {integrity: sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-ia32@0.17.18: @@ -851,7 +988,15 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-ia32@0.19.4: + resolution: {integrity: sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-loong64@0.17.18: @@ -869,7 +1014,15 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-loong64@0.19.4: + resolution: {integrity: sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-mips64el@0.17.18: @@ -887,7 +1040,15 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.4: + resolution: {integrity: sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-ppc64@0.17.18: @@ -905,7 +1066,15 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.4: + resolution: {integrity: sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-riscv64@0.17.18: @@ -923,7 +1092,15 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.4: + resolution: {integrity: sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-s390x@0.17.18: @@ -941,7 +1118,15 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-s390x@0.19.4: + resolution: {integrity: sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/linux-x64@0.17.18: @@ -959,7 +1144,15 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true + optional: true + + /@esbuild/linux-x64@0.19.4: + resolution: {integrity: sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true /@esbuild/netbsd-x64@0.17.18: @@ -977,7 +1170,15 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.4: + resolution: {integrity: sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false optional: true /@esbuild/openbsd-x64@0.17.18: @@ -995,7 +1196,15 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.4: + resolution: {integrity: sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false optional: true /@esbuild/sunos-x64@0.17.18: @@ -1013,7 +1222,15 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true + optional: true + + /@esbuild/sunos-x64@0.19.4: + resolution: {integrity: sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false optional: true /@esbuild/win32-arm64@0.17.18: @@ -1031,7 +1248,15 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true + optional: true + + /@esbuild/win32-arm64@0.19.4: + resolution: {integrity: sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false optional: true /@esbuild/win32-ia32@0.17.18: @@ -1049,7 +1274,15 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true + optional: true + + /@esbuild/win32-ia32@0.19.4: + resolution: {integrity: sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true /@esbuild/win32-x64@0.17.18: @@ -1067,7 +1300,15 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true + optional: true + + /@esbuild/win32-x64@0.19.4: + resolution: {integrity: sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true /@gwhitney/detect-indent@7.0.1: @@ -2162,26 +2403,22 @@ packages: '@types/babel__generator': 7.6.5 '@types/babel__template': 7.4.2 '@types/babel__traverse': 7.20.2 - dev: true /@types/babel__generator@7.6.5: resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} dependencies: '@babel/types': 7.23.0 - dev: true /@types/babel__template@7.4.2: resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} dependencies: '@babel/parser': 7.23.0 '@babel/types': 7.23.0 - dev: true /@types/babel__traverse@7.20.2: resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} dependencies: '@babel/types': 7.23.0 - dev: true /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} @@ -2193,6 +2430,16 @@ packages: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true + /@types/debug@4.1.9: + resolution: {integrity: sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==} + dependencies: + '@types/ms': 0.7.32 + dev: false + + /@types/estree@1.0.2: + resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} + dev: false + /@types/graceful-fs@4.1.7: resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} dependencies: @@ -2205,6 +2452,18 @@ packages: '@types/node': 20.8.2 dev: true + /@types/hast@2.3.6: + resolution: {integrity: sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /@types/hast@3.0.1: + resolution: {integrity: sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==} + dependencies: + '@types/unist': 3.0.0 + dev: false + /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -2228,6 +2487,22 @@ packages: pretty-format: 29.7.0 dev: true + /@types/mdast@3.0.13: + resolution: {integrity: sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /@types/mdast@4.0.1: + resolution: {integrity: sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==} + dependencies: + '@types/unist': 3.0.0 + dev: false + + /@types/ms@0.7.32: + resolution: {integrity: sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==} + dev: false + /@types/mute-stream@0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: @@ -2240,13 +2515,18 @@ packages: '@types/node': 20.8.2 dev: false + /@types/nlcst@1.0.2: + resolution: {integrity: sha512-ykxL/GDDUhqikjU0LIywZvEwb1NTYXTEWf+XgMSS2o6IXIakafPccxZmxgZcvJPZ3yFl2kdL1gJZz3U3iZF3QA==} + dependencies: + '@types/unist': 2.0.8 + dev: false + /@types/node@16.18.23: resolution: {integrity: sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g==} dev: false /@types/node@18.16.6: resolution: {integrity: sha512-N7KINmeB8IN3vRR8dhgHEp+YpWvGFcpDoh5XZ8jB5a00AdFKCKEyyGTOPTddUf4JqU1ZKTVxkOxakDvchNVI2Q==} - dev: true /@types/node@20.1.1: resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==} @@ -2255,6 +2535,10 @@ packages: /@types/node@20.8.2: resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==} + /@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + dev: false + /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: true @@ -2287,6 +2571,14 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true + /@types/unist@2.0.8: + resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + dev: false + + /@types/unist@3.0.0: + resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} + dev: false + /@types/wrap-ansi@3.0.0: resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} dev: false @@ -2313,6 +2605,10 @@ packages: resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} dev: false + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: false + /@uswds/uswds@3.6.0: resolution: {integrity: sha512-bsFSwhMctRgCushvId/rnfPthKJUGC2v0stOuc98LxgQzwQWP90C3P3FDVzEWKz0HYr4XTGgrWA5rcuZ9qml2w==} engines: {node: '>= 4'} @@ -2467,7 +2763,6 @@ packages: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} @@ -2639,7 +2934,6 @@ packages: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - dev: true /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2657,6 +2951,10 @@ packages: is-array-buffer: 3.0.2 dev: false + /array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + dev: false + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -2677,6 +2975,80 @@ packages: engines: {node: '>=8'} dev: false + /astro@3.3.0(@types/node@18.16.6)(typescript@5.2.2): + resolution: {integrity: sha512-O3MsXULamxQMy6sBgv07iVe5teJ41o+9tVScB/Yo2Io0XwvLXVhjVrjAxKpulBcKpU3/LyOpVfj/x63fcONbPA==} + engines: {node: '>=18.14.1', npm: '>=6.14.0'} + hasBin: true + dependencies: + '@astrojs/compiler': 2.2.0 + '@astrojs/internal-helpers': 0.2.1 + '@astrojs/markdown-remark': 3.3.0(astro@3.3.0) + '@astrojs/telemetry': 3.0.3 + '@babel/core': 7.23.0 + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.0) + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + '@types/babel__core': 7.20.2 + acorn: 8.10.0 + boxen: 7.1.1 + chokidar: 3.5.3 + ci-info: 3.9.0 + clsx: 2.0.0 + common-ancestor-path: 1.0.1 + cookie: 0.5.0 + debug: 4.3.4 + devalue: 4.3.2 + diff: 5.1.0 + es-module-lexer: 1.3.1 + esbuild: 0.19.4 + estree-walker: 3.0.3 + execa: 8.0.1 + fast-glob: 3.3.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.3 + mime: 3.0.0 + ora: 7.0.1 + p-limit: 4.0.0 + path-to-regexp: 6.2.1 + preferred-pm: 3.1.2 + probe-image-size: 7.2.3 + prompts: 2.4.2 + rehype: 12.0.1 + resolve: 1.22.8 + semver: 7.5.4 + server-destroy: 1.0.1 + shikiji: 0.6.10 + string-width: 6.1.0 + strip-ansi: 7.1.0 + tsconfck: 3.0.0-next.9(typescript@5.2.2) + unist-util-visit: 4.1.2 + vfile: 5.3.7 + vite: 4.4.9(@types/node@18.16.6) + vitefu: 0.2.5(vite@4.4.9) + which-pm: 2.1.1 + yargs-parser: 21.1.1 + zod: 3.21.1 + optionalDependencies: + sharp: 0.32.6 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript + dev: false + /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} dev: false @@ -2712,6 +3084,12 @@ packages: engines: {node: '>= 0.4'} dev: false + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + requiresBuild: true + dev: false + optional: true + /babel-jest@29.7.0(@babel/core@7.23.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2784,6 +3162,10 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) dev: true + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2810,6 +3192,14 @@ packages: readable-stream: 3.6.2 dev: false + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + /blueimp-md5@2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} dev: true @@ -2835,6 +3225,20 @@ packages: wrap-ansi: 7.0.0 dev: false + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.1 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + dev: false + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -2862,7 +3266,6 @@ packages: electron-to-chromium: 1.4.520 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) - dev: true /bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} @@ -2892,6 +3295,13 @@ packages: ieee754: 1.2.1 dev: false + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + /bundle-require@4.0.1(esbuild@0.17.18): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2955,6 +3365,11 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false + /can-write-to-dir@1.1.1: resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} engines: {node: '>=10.13'} @@ -2964,13 +3379,16 @@ packages: /caniuse-lite@1.0.30001534: resolution: {integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==} - dev: true /case@1.6.3: resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} engines: {node: '>= 0.8.0'} dev: false + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + /cdktf-cli@0.18.1(ink@3.2.0)(react@17.0.2): resolution: {integrity: sha512-SkdH7oxXgsSfhVA8ooLfH7T0KvGd9yU7k4V4m68nR53AMtVb0vsAmoXPafhahVYH+yYaxAYNg/uMXqXr+5qlXA==} hasBin: true @@ -3054,10 +3472,27 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false + /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false @@ -3105,6 +3540,11 @@ packages: engines: {node: '>=6'} dev: false + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: false + /cli-columns@4.0.0: resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} engines: {node: '>= 10'} @@ -3120,6 +3560,13 @@ packages: restore-cursor: 3.1.0 dev: false + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: false + /cli-spinners@2.7.0: resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} engines: {node: '>=6'} @@ -3171,6 +3618,11 @@ packages: engines: {node: '>=0.8'} dev: false + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + dev: false + /co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -3213,6 +3665,29 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + requiresBuild: true + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + optional: true + + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + requiresBuild: true + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: false + optional: true + + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + /commander@11.0.0: resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} engines: {node: '>=16'} @@ -3223,6 +3698,10 @@ packages: engines: {node: '>= 6'} dev: true + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + dev: false + /commonmark@0.30.0: resolution: {integrity: sha512-j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA==} hasBin: true @@ -3278,7 +3757,6 @@ packages: /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true /convert-to-spaces@1.0.2: resolution: {integrity: sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==} @@ -3377,6 +3855,28 @@ packages: time-zone: 1.0.0 dev: true + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -3398,6 +3898,12 @@ packages: engines: {node: '>=10'} dev: false + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -3471,6 +3977,11 @@ packages: object-keys: 1.1.1 dev: false + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + /detect-indent@5.0.0: resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} engines: {node: '>=4'} @@ -3481,6 +3992,13 @@ packages: engines: {node: '>=8'} dev: false + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + /detect-newline@2.1.0: resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} engines: {node: '>=0.10.0'} @@ -3501,6 +4019,16 @@ packages: - supports-color dev: false + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + dev: false + + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3511,6 +4039,11 @@ packages: engines: {node: '>=0.3.1'} dev: true + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3518,13 +4051,22 @@ packages: path-type: 4.0.0 dev: true + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + /downlevel-dts@0.11.0: resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} hasBin: true dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231012 + typescript: 5.3.0-dev.20231013 + dev: false + + /dset@3.1.2: + resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} + engines: {node: '>=4'} dev: false /eastasianwidth@0.2.0: @@ -3533,7 +4075,6 @@ packages: /electron-to-chromium@1.4.520: resolution: {integrity: sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==} - dev: true /element-closest@2.0.2: resolution: {integrity: sha512-QCqAWP3kwj8Gz9UXncVXQGdrhnWxD8SQBSeZp5pOsyCcQ6RpL738L1/tfuwBiMi6F1fYkxqPnBrFBR4L+f49Cg==} @@ -3545,6 +4086,10 @@ packages: engines: {node: '>=12'} dev: true + /emoji-regex@10.2.1: + resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} + dev: false + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3562,6 +4107,11 @@ packages: resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} dev: false + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -3581,6 +4131,10 @@ packages: stop-iteration-iterator: 1.0.0 dev: false + /es-module-lexer@1.3.1: + resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} + dev: false + /esbuild@0.17.18: resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} engines: {node: '>=12'} @@ -3639,7 +4193,36 @@ packages: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - dev: true + + /esbuild@0.19.4: + resolution: {integrity: sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.4 + '@esbuild/android-arm64': 0.19.4 + '@esbuild/android-x64': 0.19.4 + '@esbuild/darwin-arm64': 0.19.4 + '@esbuild/darwin-x64': 0.19.4 + '@esbuild/freebsd-arm64': 0.19.4 + '@esbuild/freebsd-x64': 0.19.4 + '@esbuild/linux-arm': 0.19.4 + '@esbuild/linux-arm64': 0.19.4 + '@esbuild/linux-ia32': 0.19.4 + '@esbuild/linux-loong64': 0.19.4 + '@esbuild/linux-mips64el': 0.19.4 + '@esbuild/linux-ppc64': 0.19.4 + '@esbuild/linux-riscv64': 0.19.4 + '@esbuild/linux-s390x': 0.19.4 + '@esbuild/linux-x64': 0.19.4 + '@esbuild/netbsd-x64': 0.19.4 + '@esbuild/openbsd-x64': 0.19.4 + '@esbuild/sunos-x64': 0.19.4 + '@esbuild/win32-arm64': 0.19.4 + '@esbuild/win32-ia32': 0.19.4 + '@esbuild/win32-x64': 0.19.4 + dev: false /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -3658,11 +4241,21 @@ packages: engines: {node: '>=10'} dev: false + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - dev: true + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.2 + dev: false /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -3688,6 +4281,21 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: false + /exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -3709,6 +4317,17 @@ packages: jest-util: 29.7.0 dev: true + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -3740,6 +4359,12 @@ packages: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + requiresBuild: true + dev: false + optional: true + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -3819,7 +4444,13 @@ packages: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true + + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: false /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} @@ -3922,7 +4553,6 @@ packages: /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -3964,10 +4594,19 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: false + /github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} dev: false + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4010,7 +4649,6 @@ packages: /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -4058,6 +4696,16 @@ packages: temp: 0.4.0 dev: false + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false @@ -4099,10 +4747,183 @@ packages: dependencies: function-bind: 1.1.1 + /hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + dependencies: + '@types/hast': 2.3.6 + '@types/unist': 2.0.8 + hastscript: 7.2.0 + property-information: 6.3.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + dev: false + + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.1 + '@types/unist': 3.0.0 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.3.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + dev: false + + /hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + dependencies: + '@types/hast': 2.3.6 + dev: false + + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.1 + dev: false + + /hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + dependencies: + '@types/hast': 2.3.6 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-raw@9.0.1: + resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + dependencies: + '@types/hast': 3.0.1 + '@types/unist': 3.0.0 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + dependencies: + '@types/hast': 2.3.6 + '@types/unist': 2.0.8 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 7.2.3 + hast-util-whitespace: 2.0.1 + html-void-elements: 2.0.1 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + + /hast-util-to-html@9.0.0: + resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + dependencies: + '@types/hast': 3.0.1 + '@types/unist': 3.0.0 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.1 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + + /hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + dependencies: + '@types/hast': 2.3.6 + comma-separated-tokens: 2.0.3 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.1 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false + + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.1 + dev: false + + /hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + dependencies: + '@types/hast': 2.3.6 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 3.1.1 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + dev: false + + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.1 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + dev: false + /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true + /html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + dev: false + + /html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: false + + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: false + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -4117,6 +4938,11 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: false + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -4146,6 +4972,10 @@ packages: resolve-cwd: 3.0.0 dev: true + /import-meta-resolve@3.0.0: + resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} + dev: false + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4306,6 +5136,12 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + requiresBuild: true + dev: false + optional: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -4326,8 +5162,13 @@ packages: has-tostringtag: 1.0.0 dev: false - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: false @@ -4343,6 +5184,12 @@ packages: dependencies: has: 1.0.3 + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: false + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -4356,6 +5203,17 @@ packages: hasBin: true dev: false + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4375,6 +5233,19 @@ packages: dependencies: is-extglob: 2.1.1 + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: false + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: false + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: false @@ -4395,6 +5266,11 @@ packages: engines: {node: '>=8'} dev: false + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -4417,6 +5293,11 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -4445,6 +5326,11 @@ packages: which-typed-array: 1.1.11 dev: false + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: false + /is-valid-domain@0.1.6: resolution: {integrity: sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==} dependencies: @@ -4474,6 +5360,13 @@ packages: is-docker: 2.2.1 dev: false + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + dev: false + /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: false @@ -4992,7 +5885,6 @@ packages: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -5189,10 +6081,19 @@ packages: resolution: {integrity: sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ==} dev: false + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} @@ -5229,6 +6130,16 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: false + /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} @@ -5253,7 +6164,6 @@ packages: engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - dev: true /lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} @@ -5279,6 +6189,10 @@ packages: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: true + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + /lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true @@ -5290,6 +6204,14 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: false + /log4js@6.9.1: resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} engines: {node: '>=8.0'} @@ -5303,6 +6225,10 @@ packages: - supports-color dev: false + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -5325,7 +6251,6 @@ packages: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - dev: true /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -5349,7 +6274,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -5387,6 +6311,10 @@ packages: engines: {node: '>=8'} dev: false + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + /matches-selector@1.2.0: resolution: {integrity: sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==} dev: false @@ -5398,6 +6326,158 @@ packages: blueimp-md5: 2.19.0 dev: true + /mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + dependencies: + '@types/mdast': 3.0.13 + '@types/unist': 2.0.8 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + dependencies: + '@types/mdast': 4.0.1 + '@types/unist': 3.0.0 + unist-util-visit: 5.0.0 + dev: false + + /mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + dependencies: + '@types/mdast': 3.0.13 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.13 + '@types/unist': 2.0.8 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + dependencies: + '@types/mdast': 3.0.13 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + dev: false + + /mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + dependencies: + '@types/mdast': 3.0.13 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 + dev: false + + /mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + dependencies: + '@types/mdast': 3.0.13 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + dependencies: + '@types/mdast': 3.0.13 + markdown-table: 3.0.3 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + dependencies: + '@types/mdast': 3.0.13 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + dependencies: + '@types/mdast': 3.0.13 + unist-util-is: 5.2.1 + dev: false + + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.6 + '@types/mdast': 3.0.13 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-to-hast@13.0.2: + resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + dependencies: + '@types/hast': 3.0.1 + '@types/mdast': 4.0.1 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + dev: false + + /mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + dependencies: + '@types/mdast': 3.0.13 + '@types/unist': 2.0.8 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + dependencies: + '@types/mdast': 3.0.13 + dev: false + /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: false @@ -5417,6 +6497,280 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + dependencies: + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@2.0.1: + resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: false + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + dependencies: + '@types/debug': 4.1.9 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -5424,6 +6778,12 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: false + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -5433,6 +6793,11 @@ packages: engines: {node: '>=8'} dev: false + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: false + /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -5488,6 +6853,15 @@ packages: ufo: 1.3.0 dev: true + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -5512,7 +6886,6 @@ packages: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -5539,6 +6912,24 @@ packages: through2: 4.0.2 dev: false + /needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /nlcst-to-string@3.1.1: + resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} + dependencies: + '@types/nlcst': 1.0.2 + dev: false + /node-abi@3.47.0: resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} engines: {node: '>=10'} @@ -5546,6 +6937,12 @@ packages: semver: 7.5.4 dev: false + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + requiresBuild: true + dev: false + optional: true + /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -5564,7 +6961,6 @@ packages: /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -5585,6 +6981,13 @@ packages: dependencies: path-key: 3.1.1 + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: false + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5636,6 +7039,13 @@ packages: dependencies: mimic-fn: 2.1.0 + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: false + /oo-ascii-tree@1.89.0: resolution: {integrity: sha512-HRFmdGyLTO/xUo9XNHwa8ColVVP6IEeeRKcxbzRIbgRpPcIiDGo99ShecJdkaXOyR+q4Wi6hiX5b7yrsBI/gxA==} engines: {node: '>= 14.17.0'} @@ -5649,6 +7059,21 @@ packages: is-wsl: 2.2.0 dev: false + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.1 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + string-width: 6.1.0 + strip-ansi: 7.1.0 + dev: false + /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -5677,14 +7102,12 @@ packages: engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - dev: true /p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 - dev: true /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} @@ -5704,7 +7127,6 @@ packages: engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - dev: true /p-map@2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} @@ -5733,11 +7155,29 @@ packages: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + /parse-latin@5.0.1: + resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} + dependencies: + nlcst-to-string: 3.1.1 + unist-util-modify-children: 3.1.1 + unist-util-visit-children: 2.0.2 + dev: false + /parse-ms@2.1.0: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} dev: false + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: false + /patch-console@1.0.0: resolution: {integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==} engines: {node: '>=10'} @@ -5765,6 +7205,11 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: false + /path-name@1.0.0: resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} dev: false @@ -5787,6 +7232,10 @@ packages: unique-string: 2.0.0 dev: false + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: false + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -5819,7 +7268,6 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -5838,6 +7286,11 @@ packages: safe-buffer: 5.2.1 dev: false + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: false + /pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -5848,7 +7301,6 @@ packages: engines: {node: '>=8'} dependencies: find-up: 4.1.0 - dev: true /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} @@ -5902,7 +7354,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} @@ -5923,6 +7374,16 @@ packages: tunnel-agent: 0.6.0 dev: false + /preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: false + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -5962,6 +7423,21 @@ packages: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} dev: false + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false + + /probe-image-size@7.2.3: + resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + dev: false + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: false @@ -5972,7 +7448,10 @@ packages: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - dev: true + + /property-information@6.3.0: + resolution: {integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==} + dev: false /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -5996,6 +7475,12 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + requiresBuild: true + dev: false + optional: true + /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -6145,6 +7630,79 @@ packages: set-function-name: 2.0.1 dev: false + /rehype-parse@8.0.5: + resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} + dependencies: + '@types/hast': 2.3.6 + hast-util-from-parse5: 7.1.2 + parse5: 6.0.1 + unified: 10.1.2 + dev: false + + /rehype-raw@6.1.1: + resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} + dependencies: + '@types/hast': 2.3.6 + hast-util-raw: 7.2.3 + unified: 10.1.2 + dev: false + + /rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} + dependencies: + '@types/hast': 2.3.6 + hast-util-to-html: 8.0.4 + unified: 10.1.2 + dev: false + + /rehype@12.0.1: + resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} + dependencies: + '@types/hast': 2.3.6 + rehype-parse: 8.0.5 + rehype-stringify: 9.0.4 + unified: 10.1.2 + dev: false + + /remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + dependencies: + '@types/mdast': 3.0.13 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.13 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.6 + '@types/mdast': 3.0.13 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: false + + /remark-smartypants@2.0.0: + resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + retext: 8.1.0 + retext-smartypants: 5.2.0 + unist-util-visit: 4.1.2 + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6191,6 +7749,15 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -6199,6 +7766,49 @@ packages: signal-exit: 3.0.7 dev: false + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: false + + /retext-latin@3.1.0: + resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} + dependencies: + '@types/nlcst': 1.0.2 + parse-latin: 5.0.1 + unherit: 3.0.1 + unified: 10.1.2 + dev: false + + /retext-smartypants@5.2.0: + resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} + dependencies: + '@types/nlcst': 1.0.2 + nlcst-to-string: 3.1.1 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /retext-stringify@3.1.0: + resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} + dependencies: + '@types/nlcst': 1.0.2 + nlcst-to-string: 3.1.1 + unified: 10.1.2 + dev: false + + /retext@8.1.0: + resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} + dependencies: + '@types/nlcst': 1.0.2 + retext-latin: 3.1.0 + retext-stringify: 3.1.0 + unified: 10.1.2 + dev: false + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6233,7 +7843,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: true /run-async@3.0.0: resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} @@ -6251,6 +7860,13 @@ packages: tslib: 2.5.0 dev: false + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: false @@ -6299,6 +7915,14 @@ packages: loose-envify: 1.4.0 dev: false + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: false + /semver-intersect@1.4.0: resolution: {integrity: sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==} dependencies: @@ -6318,7 +7942,6 @@ packages: /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - dev: true /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} @@ -6327,6 +7950,10 @@ packages: dependencies: lru-cache: 6.0.0 + /server-destroy@1.0.1: + resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} + dev: false + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false @@ -6340,6 +7967,22 @@ packages: has-property-descriptors: 1.0.0 dev: false + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.2 + node-addon-api: 6.1.0 + prebuild-install: 7.1.1 + semver: 7.5.4 + simple-get: 4.0.1 + tar-fs: 3.0.4 + tunnel-agent: 0.6.0 + dev: false + optional: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6364,6 +8007,12 @@ packages: rechoir: 0.6.2 dev: false + /shikiji@0.6.10: + resolution: {integrity: sha512-WE+A5Y2ntM5hL3iJQujk97qr5Uj7PSIRXpQfrZ6h+JWPXZ8KBEDhFXc4lqNriaRq1WGOVPUT83XMOzmHiH3W8A==} + dependencies: + hast-util-to-html: 9.0.0 + dev: false + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -6401,9 +8050,16 @@ packages: simple-concat: 1.0.1 dev: false + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + requiresBuild: true + dependencies: + is-arrayish: 0.3.2 + dev: false + optional: true + /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -6438,7 +8094,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} @@ -6458,6 +8113,10 @@ packages: whatwg-url: 7.1.0 dev: true + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + /spdx-license-list@6.7.0: resolution: {integrity: sha512-NFqavuJxNsHdwSy/0PjmUpcc76XwlmHQRPjVVtE62qmSLhKJUnzSvJCkU9nrY6TsChfGU1xqGePriBkNtNRMiA==} engines: {node: '>=8'} @@ -6471,7 +8130,6 @@ packages: /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true /sscaff@1.2.274: resolution: {integrity: sha512-sztRa50SL1LVxZnF1au6QT1SC2z0S1oEOyi2Kpnlg6urDns93aL32YxiJcNkLcY+VHFtVqm/SRv4cb+6LeoBQA==} @@ -6499,6 +8157,13 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: false + /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -6521,6 +8186,14 @@ packages: stream-chain: 2.2.5 dev: false + /stream-parser@0.3.1: + resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} + dependencies: + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + dev: false + /streamroller@3.1.5: resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} @@ -6532,6 +8205,15 @@ packages: - supports-color dev: false + /streamx@2.15.1: + resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} + requiresBuild: true + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + dev: false + optional: true + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -6556,6 +8238,15 @@ packages: strip-ansi: 7.1.0 dev: false + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 10.2.1 + strip-ansi: 7.1.0 + dev: false + /string.prototype.repeat@0.2.0: resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} dev: false @@ -6572,6 +8263,13 @@ packages: safe-buffer: 5.2.1 dev: false + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -6585,6 +8283,16 @@ packages: ansi-regex: 6.0.1 dev: false + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} @@ -6597,6 +8305,11 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: false + /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -6659,6 +8372,16 @@ packages: tar-stream: 2.2.0 dev: false + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + requiresBuild: true + dependencies: + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 3.1.6 + dev: false + optional: true + /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -6670,6 +8393,16 @@ packages: readable-stream: 3.6.2 dev: false + /tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + requiresBuild: true + dependencies: + b4a: 1.6.4 + fast-fifo: 1.3.2 + streamx: 2.15.1 + dev: false + optional: true + /temp@0.4.0: resolution: {integrity: sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA==} engines: {'0': node >=0.4.0} @@ -6768,6 +8501,14 @@ packages: hasBin: true dev: true + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + /ts-essentials@9.3.2(typescript@5.2.2): resolution: {integrity: sha512-JxKJzuWqH1MmH4ZFHtJzGEhkfN3QvVR3C3w+4BIoWeoY68UVVoA2Np/Bca9z0IPSErVCWhv439aT0We4Dks8kQ==} peerDependencies: @@ -6846,6 +8587,19 @@ packages: yn: 3.1.1 dev: true + /tsconfck@3.0.0-next.9(typescript@5.2.2): + resolution: {integrity: sha512-bgVlu3qcRUZpm9Au1IHiPDkb8XU+72bRkXrBaJsiAjIlixtkbKLe4q1odrrqG0rVHvh0Q4R3adT/nh1FwzftXA==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.2.2 + dev: false + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -6980,6 +8734,11 @@ packages: engines: {node: '>=8'} dev: false + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false + /typescript@3.9.10: resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} engines: {node: '>=4.2.0'} @@ -6996,10 +8755,9 @@ packages: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true - dev: true - /typescript@5.3.0-dev.20231012: - resolution: {integrity: sha512-k/m+QK/2eVsPMAao4I28Cv2Y9WzUKFVhRqvFGZ3CIXc0lrMkw/1pSA+8tp7IMw1ecxoa1myFql1tmCUrMKCbzA==} + /typescript@5.3.0-dev.20231013: + resolution: {integrity: sha512-ZhuwwWpJ9Hec2JJaS0yOJOjkLDu6lm/PXjniirFFcFBArD5HA3K8P31XxPmwonBhk7oznUbhdIDu8LEYha9Kxw==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -7012,6 +8770,22 @@ packages: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} dev: true + /unherit@3.0.1: + resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} + dev: false + + /unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.8 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: false + /unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -7019,6 +8793,89 @@ packages: crypto-random-string: 2.0.0 dev: false + /unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false + + /unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.0 + dev: false + + /unist-util-modify-children@3.1.1: + resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} + dependencies: + '@types/unist': 2.0.8 + array-iterate: 2.0.1 + dev: false + + /unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.0 + dev: false + + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.0 + dev: false + + /unist-util-visit-children@2.0.2: + resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.0 + unist-util-is: 6.0.0 + dev: false + + /unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -7038,7 +8895,6 @@ packages: browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 - dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -7060,6 +8916,17 @@ packages: hasBin: true dev: false + /uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -7073,6 +8940,51 @@ packages: convert-source-map: 1.9.0 dev: true + /vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + dependencies: + '@types/unist': 2.0.8 + vfile: 5.3.7 + dev: false + + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + dependencies: + '@types/unist': 3.0.0 + vfile: 6.0.1 + dev: false + + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + dependencies: + '@types/unist': 2.0.8 + unist-util-stringify-position: 3.0.3 + dev: false + + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.0 + unist-util-stringify-position: 4.0.0 + dev: false + + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.8 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: false + + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + /vite-node@0.31.0(@types/node@20.1.1): resolution: {integrity: sha512-8x1x1LNuPvE2vIvkSB7c1mApX5oqlgsxzHQesYF7l5n1gKrEmrClIiZuOFbFDQcjLsmcWSwwmrWrcGWm9Fxc/g==} engines: {node: '>=v14.18.0'} @@ -7150,6 +9062,42 @@ packages: fsevents: 2.3.2 dev: true + /vite@4.4.9(@types/node@18.16.6): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.16.6 + esbuild: 0.18.20 + postcss: 8.4.29 + rollup: 3.29.1 + optionalDependencies: + fsevents: 2.3.2 + dev: false + /vite@4.4.9(@types/node@18.16.6)(sass@1.66.1): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -7259,6 +9207,17 @@ packages: fsevents: 2.3.2 dev: true + /vitefu@0.2.5(vite@4.4.9): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 4.4.9(@types/node@18.16.6) + dev: false + /vitest-mock-extended@1.1.3(typescript@5.2.2)(vitest@0.31.0): resolution: {integrity: sha512-MiaKYZbTg+fjozKnCpoTTva0BnlSNYyk4jiPuM2xVhg4aou112QIrALdH3/ZKK6qfXWh0A17gFIjWJjylOlXxg==} peerDependencies: @@ -7407,6 +9366,10 @@ packages: makeerror: 1.0.12 dev: true + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false + /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false @@ -7458,6 +9421,27 @@ packages: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: false + /which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + dev: false + + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: false + + /which-pm@2.1.1: + resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: false + /which-typed-array@1.1.11: resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} @@ -7500,6 +9484,13 @@ packages: string-width: 4.2.3 dev: false + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + dev: false + /workerpool@6.5.0: resolution: {integrity: sha512-r64Ea3glXY2RVzMeNxB+4J+0YHAVzUdV4cM5nHi4BBC2LvnO1pWFAIYKYuGcPElbg1/7eEiaPtZ/jzCjIUuGBg==} dev: false @@ -7596,7 +9587,6 @@ packages: /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -7678,12 +9668,10 @@ packages: /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - dev: true /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: true /yoga-layout-prebuilt@1.10.0: resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} @@ -7705,6 +9693,14 @@ packages: resolution: {integrity: sha512-UzIwO92D0dSFwIRyyqAfRXICITLjF0IP8tRbEK/un7adirMssWZx8xF/1hZNE7t61knWZ+lhEuUvxlu2MO8qqA==} dev: false + /zod@3.21.1: + resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} + dev: false + /zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} dev: false + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false From b1ec6a74f4d44d715ba6e6c129ea3b53e6da40a7 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Tue, 17 Oct 2023 12:56:13 -0500 Subject: [PATCH 33/42] React components rendering. --- .../src/components/document-assembler.tsx | 31 ----- apps/frontend/src/components/footer.tsx | 53 --------- apps/frontend/src/components/header.tsx | 7 -- apps/frontend/src/components/usa-banner.tsx | 106 ------------------ apps/spotlight/astro.config.mjs | 9 +- apps/spotlight/package.json | 12 +- apps/spotlight/src/components/Card.astro | 61 ---------- apps/spotlight/src/layouts/Layout.astro | 28 +---- .../{frontend => spotlight}/src/lib/github.ts | 0 apps/spotlight/src/pages/index.astro | 25 +---- apps/spotlight/src/pages/pdf-generation.astro | 18 +++ apps/spotlight/tsconfig.json | 13 ++- pnpm-lock.yaml | 101 +++++++++++++++-- 13 files changed, 143 insertions(+), 321 deletions(-) delete mode 100644 apps/frontend/src/components/document-assembler.tsx delete mode 100644 apps/frontend/src/components/footer.tsx delete mode 100644 apps/frontend/src/components/header.tsx delete mode 100644 apps/frontend/src/components/usa-banner.tsx delete mode 100644 apps/spotlight/src/components/Card.astro rename apps/{frontend => spotlight}/src/lib/github.ts (100%) create mode 100644 apps/spotlight/src/pages/pdf-generation.astro diff --git a/apps/frontend/src/components/document-assembler.tsx b/apps/frontend/src/components/document-assembler.tsx deleted file mode 100644 index de3ad5bf..00000000 --- a/apps/frontend/src/components/document-assembler.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { generate } from '@atj/documents'; - -export const downloadPdfBytes = (bytes: Uint8Array) => { - const base64 = btoa(String.fromCharCode(...bytes)); - var element = document.createElement('a'); - element.setAttribute( - 'href', - 'data:application/pdf;base64,' + encodeURIComponent(base64) - ); - element.setAttribute('download', 'sample-document.pdf'); - element.style.display = 'none'; - document.body.appendChild(element); - element.click(); - document.body.removeChild(element); -}; - -const clickHandler = async () => { - const timestamp = new Date().toISOString(); - const pdfBytes = await generate(`Generated at ${timestamp}`); - downloadPdfBytes(pdfBytes); -}; - -export const DocumentAssembler = () => { - return ( -
- -
- ); -}; diff --git a/apps/frontend/src/components/footer.tsx b/apps/frontend/src/components/footer.tsx deleted file mode 100644 index d3d26d67..00000000 --- a/apps/frontend/src/components/footer.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { type GithubRepository, getBranchTreeUrl } from '../lib/github'; - -type FooterProps = { - github: GithubRepository; -}; - -export const Footer = (props: FooterProps) => { - return ( - - ); -}; diff --git a/apps/frontend/src/components/header.tsx b/apps/frontend/src/components/header.tsx deleted file mode 100644 index b0c89569..00000000 --- a/apps/frontend/src/components/header.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import closeSvg from 'uswds/img/usa-icons/close.svg'; - -export const Header = () => { - return ( -
- ); -}; diff --git a/apps/frontend/src/components/usa-banner.tsx b/apps/frontend/src/components/usa-banner.tsx deleted file mode 100644 index 1ae5e2be..00000000 --- a/apps/frontend/src/components/usa-banner.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import iconDotGov from '@uswds/uswds/img/icon-dot-gov.svg'; -import iconHttps from '@uswds/uswds/img/icon-https.svg'; -import usFlagSmall from '@uswds/uswds/img/us_flag_small.png'; - -export const UsaBanner = () => { - return ( - <> -
-
-
-
-
- U.S. flag -
-
-

- An official website of the United States government -

- -
- -
-
- -
-
- - ); -}; diff --git a/apps/spotlight/astro.config.mjs b/apps/spotlight/astro.config.mjs index 882e6515..323909a6 100644 --- a/apps/spotlight/astro.config.mjs +++ b/apps/spotlight/astro.config.mjs @@ -1,4 +1,11 @@ import { defineConfig } from 'astro/config'; +import react from '@astrojs/react'; // https://astro.build/config -export default defineConfig({}); +export default defineConfig({ + integrations: [ + react({ + include: ['src/components/**'], + }), + ], +}); diff --git a/apps/spotlight/package.json b/apps/spotlight/package.json index 2fbe6c57..493b299f 100644 --- a/apps/spotlight/package.json +++ b/apps/spotlight/package.json @@ -10,6 +10,16 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.3.0" + "@astrojs/react": "^3.0.3", + "@atj/docassemble": "workspace:*", + "@atj/documents": "workspace:*", + "@atj/interviews": "workspace:*", + "@uswds/uswds": "^3.6.0", + "astro": "^3.3.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.21" } } diff --git a/apps/spotlight/src/components/Card.astro b/apps/spotlight/src/components/Card.astro deleted file mode 100644 index 4924058d..00000000 --- a/apps/spotlight/src/components/Card.astro +++ /dev/null @@ -1,61 +0,0 @@ ---- -interface Props { - title: string; - body: string; - href: string; -} - -const { href, title, body } = Astro.props; ---- - - - diff --git a/apps/spotlight/src/layouts/Layout.astro b/apps/spotlight/src/layouts/Layout.astro index 546ef9d4..0c1f113b 100644 --- a/apps/spotlight/src/layouts/Layout.astro +++ b/apps/spotlight/src/layouts/Layout.astro @@ -12,6 +12,7 @@ const { title } = Astro.props; + @@ -24,31 +25,4 @@ const { title } = Astro.props; diff --git a/apps/frontend/src/lib/github.ts b/apps/spotlight/src/lib/github.ts similarity index 100% rename from apps/frontend/src/lib/github.ts rename to apps/spotlight/src/lib/github.ts diff --git a/apps/spotlight/src/pages/index.astro b/apps/spotlight/src/pages/index.astro index 0c8795be..76c5c2b3 100644 --- a/apps/spotlight/src/pages/index.astro +++ b/apps/spotlight/src/pages/index.astro @@ -1,9 +1,8 @@ --- import Layout from '../layouts/Layout.astro'; -import Card from '../components/Card.astro'; --- - +
src/pages in your project.
Code Challenge: Tweak the "Welcome to Astro" message above.

-
diff --git a/apps/spotlight/src/pages/pdf-generation.astro b/apps/spotlight/src/pages/pdf-generation.astro new file mode 100644 index 00000000..7ca07334 --- /dev/null +++ b/apps/spotlight/src/pages/pdf-generation.astro @@ -0,0 +1,18 @@ +--- +import { DocumentAssembler } from "../components/document-assembler"; +--- + +
+
+
+
+
+
+

ATJ Test Bed

+ +
+
+
+
+
+
diff --git a/apps/spotlight/tsconfig.json b/apps/spotlight/tsconfig.json index 77da9dd0..93d58e16 100644 --- a/apps/spotlight/tsconfig.json +++ b/apps/spotlight/tsconfig.json @@ -1,3 +1,12 @@ { - "extends": "astro/tsconfigs/strict" -} \ No newline at end of file + // For reference, the base Astro tsconfig: + // https://github.com/withastro/astro/blob/main/packages/astro/tsconfigs/base.json + "extends": "../../tsconfig.json", + "compilerOptions": { + "noEmit": true, + "jsx": "react" + }, + "include": [ + "src/**/*.ts" + ], +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 033838a2..64eb6069 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,9 +93,34 @@ importers: apps/spotlight: dependencies: + '@astrojs/react': + specifier: ^3.0.3 + version: 3.0.3(@types/react-dom@18.2.7)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(vite@4.4.9) + '@atj/docassemble': + specifier: workspace:* + version: link:../../packages/docassemble + '@atj/documents': + specifier: workspace:* + version: link:../../packages/documents + '@atj/interviews': + specifier: workspace:* + version: link:../../packages/interviews + '@uswds/uswds': + specifier: ^3.6.0 + version: 3.6.0 astro: specifier: ^3.3.0 version: 3.3.0(@types/node@18.16.6)(typescript@5.2.2) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + devDependencies: + '@types/react': + specifier: ^18.2.21 + version: 18.2.21 infra: dependencies: @@ -217,6 +242,26 @@ packages: prismjs: 1.29.0 dev: false + /@astrojs/react@3.0.3(@types/react-dom@18.2.7)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(vite@4.4.9): + resolution: {integrity: sha512-foliIy1whJobo+ZpsvOMS4WCiR0z4/2Seyxth5xMlweVVM+gA1Lqk0GdzE6F0ISUW9CuXrCRS7ZyTNW8SM6vog==} + engines: {node: '>=18.14.1'} + peerDependencies: + '@types/react': ^17.0.50 || ^18.0.21 + '@types/react-dom': ^17.0.17 || ^18.0.6 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + dependencies: + '@types/react': 18.2.21 + '@types/react-dom': 18.2.7 + '@vitejs/plugin-react': 4.1.0(vite@4.4.9) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + ultrahtml: 1.5.2 + transitivePeerDependencies: + - supports-color + - vite + dev: false + /@astrojs/telemetry@3.0.3: resolution: {integrity: sha512-j19Cf5mfyLt9hxgJ9W/FMdAA5Lovfp7/CINNB/7V71GqvygnL7KXhRC3TzfB+PsVQcBtgWZzCXhUWRbmJ64Raw==} engines: {node: '>=18.14.1'} @@ -526,6 +571,26 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.0): resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} @@ -2541,13 +2606,11 @@ packages: /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: true /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: '@types/react': 18.2.21 - dev: true /@types/react@18.2.21: resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==} @@ -2555,11 +2618,9 @@ packages: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 csstype: 3.1.2 - dev: true /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - dev: true /@types/ssri@7.1.1: resolution: {integrity: sha512-DPP/jkDaqGiyU75MyMURxLWyYLwKSjnAuGe9ZCsLp9QZOpXmDfuevk769F0BS86TmRuD5krnp06qw9nSoNO+0g==} @@ -2630,6 +2691,22 @@ packages: - '@swc/helpers' dev: true + /@vitejs/plugin-react@4.1.0(vite@4.4.9): + resolution: {integrity: sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.0) + '@types/babel__core': 7.20.2 + react-refresh: 0.14.0 + vite: 4.4.9(@types/node@18.16.6) + transitivePeerDependencies: + - supports-color + dev: false + /@vitest/coverage-c8@0.31.0(vitest@0.31.0): resolution: {integrity: sha512-h72qN1D962AO7UefQVulm9JFP5ACS7OfhCdBHioXU8f7ohH/+NTZCgAqmgcfRNHHO/8wLFxx+93YVxhodkEJVA==} peerDependencies: @@ -3837,7 +3914,6 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: true /data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} @@ -4061,7 +4137,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231013 + typescript: 5.3.0-dev.20231017 dev: false /dset@3.1.2: @@ -7536,6 +7612,11 @@ packages: scheduler: 0.20.2 dev: false + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: false + /react@17.0.2: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} @@ -8756,8 +8837,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript@5.3.0-dev.20231013: - resolution: {integrity: sha512-ZhuwwWpJ9Hec2JJaS0yOJOjkLDu6lm/PXjniirFFcFBArD5HA3K8P31XxPmwonBhk7oznUbhdIDu8LEYha9Kxw==} + /typescript@5.3.0-dev.20231017: + resolution: {integrity: sha512-Gb9CxdHEnJBcghPIdgmYT+j30pAGX44Uvwc22Z9WoWMollP+5jf6VqUdmiF+PXjarjFWuo6HbQAnWoH9zWQwdQ==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -8770,6 +8851,10 @@ packages: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} dev: true + /ultrahtml@1.5.2: + resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + dev: false + /unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} dev: false From 0818ef68d2286fb270981ec27eb7d13a49528445 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 18 Oct 2023 10:12:25 -0500 Subject: [PATCH 34/42] Add React components from prior site --- apps/spotlight/package.json | 1 + .../src/components/document-assembler.tsx | 32 ++ apps/spotlight/src/components/footer.tsx | 54 +++ apps/spotlight/src/components/header.tsx | 8 + apps/spotlight/src/components/usa-banner.tsx | 108 ++++++ apps/spotlight/src/layouts/Layout.astro | 5 +- apps/spotlight/src/pages/index.astro | 107 +----- apps/spotlight/tsconfig.json | 3 + pnpm-lock.yaml | 321 +++++++++++++++++- 9 files changed, 537 insertions(+), 102 deletions(-) create mode 100644 apps/spotlight/src/components/document-assembler.tsx create mode 100644 apps/spotlight/src/components/footer.tsx create mode 100644 apps/spotlight/src/components/header.tsx create mode 100644 apps/spotlight/src/components/usa-banner.tsx diff --git a/apps/spotlight/package.json b/apps/spotlight/package.json index 493b299f..fce9bc03 100644 --- a/apps/spotlight/package.json +++ b/apps/spotlight/package.json @@ -20,6 +20,7 @@ "react-dom": "^18.2.0" }, "devDependencies": { + "@astrojs/check": "^0.2.1", "@types/react": "^18.2.21" } } diff --git a/apps/spotlight/src/components/document-assembler.tsx b/apps/spotlight/src/components/document-assembler.tsx new file mode 100644 index 00000000..e6891300 --- /dev/null +++ b/apps/spotlight/src/components/document-assembler.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import { generate } from '@atj/documents'; + +export const downloadPdfBytes = (bytes: Uint8Array) => { + const base64 = btoa(String.fromCharCode(...bytes)); + var element = document.createElement('a'); + element.setAttribute( + 'href', + 'data:application/pdf;base64,' + encodeURIComponent(base64) + ); + element.setAttribute('download', 'sample-document.pdf'); + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); +}; + +const clickHandler = async () => { + const timestamp = new Date().toISOString(); + const pdfBytes = await generate(`Generated at ${timestamp}`); + downloadPdfBytes(pdfBytes); +}; + +export const DocumentAssembler = () => { + return ( +
+ +
+ ); +}; diff --git a/apps/spotlight/src/components/footer.tsx b/apps/spotlight/src/components/footer.tsx new file mode 100644 index 00000000..abd8aec0 --- /dev/null +++ b/apps/spotlight/src/components/footer.tsx @@ -0,0 +1,54 @@ +import React from 'react'; +import { type GithubRepository, getBranchTreeUrl } from '../lib/github'; + +type FooterProps = { + github: GithubRepository; +}; + +export const Footer = (props: FooterProps) => { + return ( + + ); +}; diff --git a/apps/spotlight/src/components/header.tsx b/apps/spotlight/src/components/header.tsx new file mode 100644 index 00000000..1bc484fd --- /dev/null +++ b/apps/spotlight/src/components/header.tsx @@ -0,0 +1,8 @@ +import React from 'react'; +//import closeSvg from '@uswds/img/usa-icons/close.svg'; + +export const Header = () => { + return ( +
+ ); +}; diff --git a/apps/spotlight/src/components/usa-banner.tsx b/apps/spotlight/src/components/usa-banner.tsx new file mode 100644 index 00000000..ef046bbd --- /dev/null +++ b/apps/spotlight/src/components/usa-banner.tsx @@ -0,0 +1,108 @@ +import React from 'react'; + +//import iconDotGov from '@uswds/img/icon-dot-gov.svg'; +//import iconHttps from '@uswds/img/icon-https.svg'; +//import usFlagSmall from '@uswds/img/us_flag_small.png'; + +export const UsaBanner = () => { + return ( + <> +
+
+
+
+
+ U.S. flag +
+
+

+ An official website of the United States government +

+ +
+ +
+
+ +
+
+ + ); +}; diff --git a/apps/spotlight/src/layouts/Layout.astro b/apps/spotlight/src/layouts/Layout.astro index 0c1f113b..1f9ee9fb 100644 --- a/apps/spotlight/src/layouts/Layout.astro +++ b/apps/spotlight/src/layouts/Layout.astro @@ -6,10 +6,9 @@ interface Props { const { title } = Astro.props; --- - - + @@ -24,5 +23,3 @@ const { title } = Astro.props; - diff --git a/apps/spotlight/src/pages/index.astro b/apps/spotlight/src/pages/index.astro index 76c5c2b3..b4f9952e 100644 --- a/apps/spotlight/src/pages/index.astro +++ b/apps/spotlight/src/pages/index.astro @@ -1,100 +1,21 @@ --- import Layout from '../layouts/Layout.astro'; +import { DocumentAssembler } from '../components/document-assembler'; --- -
- -

Welcome to Astro

-

- To get started, open the directory src/pages in your project.
- Code Challenge: Tweak the "Welcome to Astro" message above. -

+
+
+
+
+
+
+

ATJ Test Bed

+ +
+
+
+
+
- - diff --git a/apps/spotlight/tsconfig.json b/apps/spotlight/tsconfig.json index 93d58e16..43230f7c 100644 --- a/apps/spotlight/tsconfig.json +++ b/apps/spotlight/tsconfig.json @@ -9,4 +9,7 @@ "include": [ "src/**/*.ts" ], + "exclude": [ + "src/components/**" + ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64eb6069..18ac75b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,6 +118,9 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) devDependencies: + '@astrojs/check': + specifier: ^0.2.1 + version: 0.2.1(prettier@2.8.8)(typescript@5.2.2) '@types/react': specifier: ^18.2.21 version: 18.2.21 @@ -203,6 +206,27 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 + /@astrojs/check@0.2.1(prettier@2.8.8)(typescript@5.2.2): + resolution: {integrity: sha512-s85uBS/qjnqsKAeM0VKNWKvNaqvR06ZJupEwr2oT5/6Bti7qB5Vd8KekWIRAu2/WqOXHMFaDJz5D+qSizFnq5g==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.4.0(prettier@2.8.8)(typescript@5.2.2) + chokidar: 3.5.3 + fast-glob: 3.3.1 + kleur: 4.1.5 + typescript: 5.2.2 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: true + + /@astrojs/compiler@1.5.7: + resolution: {integrity: sha512-dFU7GAMbpTUGPkRoCoMQrGFlTe3qIiQMSOxIXp/nB1Do4My9uogjEmBHdR5Cwr4i6rc5/1R3Od9v8kU/pkHXGQ==} + dev: true + /@astrojs/compiler@2.2.0: resolution: {integrity: sha512-JvmckEJgg8uXUw8Rs6VZDvN7LcweCHOdcxsCXpC+4KMDC9FaB5t9EH/NooSE+hu/rnACEhsXA3FKmf9wnhb7hA==} dev: false @@ -211,6 +235,41 @@ packages: resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} dev: false + /@astrojs/language-server@2.4.0(prettier@2.8.8)(typescript@5.2.2): + resolution: {integrity: sha512-L5lbTt1zZiCYGxahGhbJ1m2THaZxBBuA3MrwvhwZ+xVy6/k13W0Xy4nVe0gUBoCizZdKEDL3puoW615waJaTBQ==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + dependencies: + '@astrojs/compiler': 1.5.7 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 1.10.4(typescript@5.2.2) + '@volar/language-core': 1.10.4 + '@volar/language-server': 1.10.4 + '@volar/language-service': 1.10.4 + '@volar/source-map': 1.10.4 + '@volar/typescript': 1.10.4 + fast-glob: 3.3.1 + muggle-string: 0.3.1 + prettier: 2.8.8 + volar-service-css: 0.0.14(@volar/language-service@1.10.4) + volar-service-emmet: 0.0.14(@volar/language-service@1.10.4) + volar-service-html: 0.0.14(@volar/language-service@1.10.4) + volar-service-prettier: 0.0.14(@volar/language-service@1.10.4)(prettier@2.8.8) + volar-service-typescript: 0.0.14(@volar/language-service@1.10.4)(@volar/typescript@1.10.4) + volar-service-typescript-twoslash-queries: 0.0.14(@volar/language-service@1.10.4) + vscode-html-languageservice: 5.1.0 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: true + /@astrojs/markdown-remark@3.3.0(astro@3.3.0): resolution: {integrity: sha512-ezFzEiZygc/ASe2Eul9v1yrTbNGqSbR348UGNXQ4Dtkx8MYRwfiBfmPm6VnEdfIGkW+bi5qIUReKfc7mPVUkIg==} peerDependencies: @@ -804,6 +863,22 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@emmetio/abbreviation@2.3.3: + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: true + + /@emmetio/css-abbreviation@2.1.8: + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: true + + /@emmetio/scanner@1.0.4: + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + dev: true + /@esbuild/android-arm64@0.17.18: resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} @@ -2818,6 +2893,75 @@ packages: pretty-format: 29.7.0 dev: true + /@volar/kit@1.10.4(typescript@5.2.2): + resolution: {integrity: sha512-ha6xNFwkLoRysR90JqJ05xKhjZ3vUMkxjOBif6MaS1eF4sVip2579fygSPsAXviT81gA+oyWJeKBWD8nhdnxIg==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-service': 1.10.4 + typesafe-path: 0.2.2 + typescript: 5.2.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: true + + /@volar/language-core@1.10.4: + resolution: {integrity: sha512-Na69qA6uwVIdA0rHuOc2W3pHtVQQO8hCNim7FOaKNpRJh0oAFnu5r9i7Oopo5C4cnELZkPNjTrbmpcCTiW+CMQ==} + dependencies: + '@volar/source-map': 1.10.4 + dev: true + + /@volar/language-server@1.10.4: + resolution: {integrity: sha512-LhCz5GTdA6nRy35GIqCnYRljWC+C+sPT/AF5FNZnSjUn9I/Ug5io2LI2RnMLCKFQM1v9VFePHMiHBl639Rf6Kw==} + dependencies: + '@volar/language-core': 1.10.4 + '@volar/language-service': 1.10.4 + '@volar/typescript': 1.10.4 + '@vscode/l10n': 0.0.16 + request-light: 0.7.0 + typesafe-path: 0.2.2 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: true + + /@volar/language-service@1.10.4: + resolution: {integrity: sha512-SGDsmGojVJi7RiHM9WON4O2Ed7PbjU+3gzEn0lODxK5qa+PDGzzSaFWIQeCp8Av+ef5uhZ4gJcTUR3AmD/29HQ==} + dependencies: + '@volar/language-core': 1.10.4 + '@volar/source-map': 1.10.4 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: true + + /@volar/source-map@1.10.4: + resolution: {integrity: sha512-RxZdUEL+pV8p+SMqnhVjzy5zpb1QRZTlcwSk4bdcBO7yOu4rtEWqDGahVCEj4CcXour+0yJUMrMczfSCpP9Uxg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.10.4: + resolution: {integrity: sha512-BCCUEBASBEMCrz7qmNSi2hBEWYsXD0doaktRKpmmhvb6XntM2sAWYu6gbyK/MluLDgluGLFiFRpWgobgzUqolg==} + dependencies: + '@volar/language-core': 1.10.4 + dev: true + + /@vscode/emmet-helper@2.9.2: + resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} + dependencies: + emmet: 2.4.6 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + dev: true + + /@vscode/l10n@0.0.16: + resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + dev: true + /@xmldom/xmldom@0.8.10: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} @@ -4137,7 +4281,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231017 + typescript: 5.3.0-dev.20231018 dev: false /dset@3.1.2: @@ -4162,6 +4306,13 @@ packages: engines: {node: '>=12'} dev: true + /emmet@2.4.6: + resolution: {integrity: sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==} + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + dev: true + /emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} dev: false @@ -4460,7 +4611,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: false /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -6131,6 +6281,10 @@ packages: engines: {node: '>=6'} hasBin: true + /jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + dev: true + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true @@ -6169,7 +6323,6 @@ packages: /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - dev: false /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} @@ -6941,6 +7094,10 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + /mute-stream@1.0.0: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7784,6 +7941,10 @@ packages: unist-util-visit: 4.1.2 dev: false + /request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + dev: true + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -8820,6 +8981,16 @@ packages: engines: {node: '>=12.20'} dev: false + /typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + dev: true + + /typescript-auto-import-cache@0.3.0: + resolution: {integrity: sha512-Rq6/q4O9iyqUdjvOoyas7x/Qf9nWUMeqpP3YeTaLA+uECgfy5wOhfOS+SW/+fZ/uI/ZcKaf+2/ZhFzXh8xfofQ==} + dependencies: + semver: 7.5.4 + dev: true + /typescript@3.9.10: resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} engines: {node: '>=4.2.0'} @@ -8837,8 +9008,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript@5.3.0-dev.20231017: - resolution: {integrity: sha512-Gb9CxdHEnJBcghPIdgmYT+j30pAGX44Uvwc22Z9WoWMollP+5jf6VqUdmiF+PXjarjFWuo6HbQAnWoH9zWQwdQ==} + /typescript@5.3.0-dev.20231018: + resolution: {integrity: sha512-qBPaVi+ntB9Ys4T3uP1ZYCtxFWIV/1ieooBDhFEd8nw4IqAoB/Us7XobF3xb756bnX8cS/zIt9fgukde4MG4bA==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -9445,6 +9616,146 @@ packages: - terser dev: true + /volar-service-css@0.0.14(@volar/language-service@1.10.4): + resolution: {integrity: sha512-xmyKoyWpbgM0u7mGA1ogyj5ol7CfQADm5eXNpeJeX3Rp79rFEtz1DuuaIjcgRvhSYsjJfPBOtOvHBwTRf4HaEQ==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.4 + vscode-css-languageservice: 6.2.10 + vscode-uri: 3.0.8 + dev: true + + /volar-service-emmet@0.0.14(@volar/language-service@1.10.4): + resolution: {integrity: sha512-0meSKjQ93j5iSYl6Y+qtARfAYr3J2wNSr6wlKr/V9KULAy+8/me8q9l8wkTQqdRMujZAv2j/LzgQ65Yc9mnA1w==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.4 + '@vscode/emmet-helper': 2.9.2 + volar-service-html: 0.0.14(@volar/language-service@1.10.4) + dev: true + + /volar-service-html@0.0.14(@volar/language-service@1.10.4): + resolution: {integrity: sha512-PQb97QICxXhXD7AJFU/S/Vexd1L4IP2Sa5SzxYyKnApcx0GNdxaIbFHlev9wazrTgtCtSnaVXJBxY05pZzTKPw==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.4 + vscode-html-languageservice: 5.1.0 + vscode-uri: 3.0.8 + dev: true + + /volar-service-prettier@0.0.14(@volar/language-service@1.10.4)(prettier@2.8.8): + resolution: {integrity: sha512-woZLBikvv8u0jUAq10ZTtuo9hmnQ1RHZubMhzyJbWwkr6L7wT7bPZkscdyaCGrzBT3Pz4zbS0bnpAC5GLAILTA==} + peerDependencies: + '@volar/language-service': ~1.10.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + dependencies: + '@volar/language-service': 1.10.4 + prettier: 2.8.8 + dev: true + + /volar-service-typescript-twoslash-queries@0.0.14(@volar/language-service@1.10.4): + resolution: {integrity: sha512-Lg/AcacxyBmVbZhHZwnwvt+MEn/5YlbLiJ7DJG6Dt3xiuQmpXwZmM+JE7/ZMvPt4gxW6AL9zHz21M6JSPCkJ+g==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.4 + dev: true + + /volar-service-typescript@0.0.14(@volar/language-service@1.10.4)(@volar/typescript@1.10.4): + resolution: {integrity: sha512-PGHFUbGPLE6/8ldNPO7FxwZdvRLlWBZ26RnJPCM48DBaGTc7qHGkXMtPQq5YCD10d8VwpZirz0eno8K0z+8bpg==} + peerDependencies: + '@volar/language-service': ~1.10.0 + '@volar/typescript': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.4 + '@volar/typescript': 1.10.4 + semver: 7.5.4 + typescript-auto-import-cache: 0.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + dev: true + + /vscode-css-languageservice@6.2.10: + resolution: {integrity: sha512-sYUZPku4mQ06AWGCbMyjv2tdR6juBW6hTbVPFwbJvNVzdtEfBioQOgkdXg7yMJNWnXkvWSU1FL2kb4Vxu5Cdyw==} + dependencies: + '@vscode/l10n': 0.0.16 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: true + + /vscode-html-languageservice@5.1.0: + resolution: {integrity: sha512-cGOu5+lrz+2dDXSGS15y24lDtPaML1T8K/SfqgFbLmCZ1btYOxceFieR+ybTS2es/A67kRc62m2cKFLUQPWG5g==} + dependencies: + '@vscode/l10n': 0.0.16 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: true + + /vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + dev: true + + /vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + dev: true + + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: true + + /vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + dev: true + + /vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.17.5 + dev: true + + /vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + dev: true + + /vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: true + + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: true + /walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: From ce7149b91e6ba6a229d4c438f41e23831b272e43 Mon Sep 17 00:00:00 2001 From: Daniel Naab Date: Wed, 18 Oct 2023 10:49:30 -0500 Subject: [PATCH 35/42] React and Astro components split up and functional --- apps/spotlight/astro.config.mjs | 23 +++- apps/spotlight/src/components/Footer.astro | 54 +++++++++ apps/spotlight/src/components/Header.astro | 6 + apps/spotlight/src/components/UsaBanner.astro | 105 +++++++++++++++++ apps/spotlight/src/components/footer.tsx | 54 --------- apps/spotlight/src/components/header.tsx | 8 -- .../{ => react}/document-assembler.tsx | 0 apps/spotlight/src/components/usa-banner.tsx | 108 ------------------ apps/spotlight/src/layouts/Layout.astro | 8 +- apps/spotlight/src/pages/index.astro | 4 +- package.json | 3 + pnpm-lock.yaml | 8 +- 12 files changed, 205 insertions(+), 176 deletions(-) create mode 100644 apps/spotlight/src/components/Footer.astro create mode 100644 apps/spotlight/src/components/Header.astro create mode 100644 apps/spotlight/src/components/UsaBanner.astro delete mode 100644 apps/spotlight/src/components/footer.tsx delete mode 100644 apps/spotlight/src/components/header.tsx rename apps/spotlight/src/components/{ => react}/document-assembler.tsx (100%) delete mode 100644 apps/spotlight/src/components/usa-banner.tsx diff --git a/apps/spotlight/astro.config.mjs b/apps/spotlight/astro.config.mjs index 323909a6..90b27c17 100644 --- a/apps/spotlight/astro.config.mjs +++ b/apps/spotlight/astro.config.mjs @@ -1,11 +1,32 @@ +import { execSync } from 'child_process'; + import { defineConfig } from 'astro/config'; import react from '@astrojs/react'; +const BASEURL = process.env.BASEURL || '/'; +const GITHUB = { + owner: process.env.OWNER || 'gsa-tts', + repository: process.env.REPOSITORY || 'atj-platform', + branch: process.env.BRANCH || 'main', + commit: execSync('git rev-parse HEAD').toString().trim(), +}; + +const DEPLOYMENT_ID = + process.env.NODE_ENV === 'development' + ? 'local' + : `${GITHUB.owner}:${GITHUB.branch}`; + // https://astro.build/config export default defineConfig({ integrations: [ react({ - include: ['src/components/**'], + include: ['src/components/react/**'], }), ], + vite: { + define: { + 'import.meta.env.DEPLOYMENT_ID': JSON.stringify(DEPLOYMENT_ID), + 'import.meta.env.GITHUB': JSON.stringify(GITHUB), + }, + }, }); diff --git a/apps/spotlight/src/components/Footer.astro b/apps/spotlight/src/components/Footer.astro new file mode 100644 index 00000000..00c7e115 --- /dev/null +++ b/apps/spotlight/src/components/Footer.astro @@ -0,0 +1,54 @@ +--- +import { type GithubRepository, getBranchTreeUrl } from '../lib/github'; + +type Props = { + github: GithubRepository; +}; + +const { github } = Astro.props; +--- + +--- + diff --git a/apps/spotlight/src/components/Header.astro b/apps/spotlight/src/components/Header.astro new file mode 100644 index 00000000..15dd278f --- /dev/null +++ b/apps/spotlight/src/components/Header.astro @@ -0,0 +1,6 @@ +--- +//import closeSvg from '@uswds/img/usa-icons/close.svg'; +const closeSvg = ''; +--- + +
diff --git a/apps/spotlight/src/components/UsaBanner.astro b/apps/spotlight/src/components/UsaBanner.astro new file mode 100644 index 00000000..3b5b2860 --- /dev/null +++ b/apps/spotlight/src/components/UsaBanner.astro @@ -0,0 +1,105 @@ +--- +//import iconDotGov from '@uswds/img/icon-dot-gov.svg'; +//import iconHttps from '@uswds/img/icon-https.svg'; +//import usFlagSmall from '@uswds/img/us_flag_small.png'; +const usFlagSmall = ''; +const iconDotGov = ''; +const iconHttps = ''; +--- + +
+
+
+
+
+ U.S. flag +
+
+

+ An official website of the United States government +

+ +
+ +
+
+ +
+
diff --git a/apps/spotlight/src/components/footer.tsx b/apps/spotlight/src/components/footer.tsx deleted file mode 100644 index abd8aec0..00000000 --- a/apps/spotlight/src/components/footer.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import React from 'react'; -import { type GithubRepository, getBranchTreeUrl } from '../lib/github'; - -type FooterProps = { - github: GithubRepository; -}; - -export const Footer = (props: FooterProps) => { - return ( - - ); -}; diff --git a/apps/spotlight/src/components/header.tsx b/apps/spotlight/src/components/header.tsx deleted file mode 100644 index 1bc484fd..00000000 --- a/apps/spotlight/src/components/header.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -//import closeSvg from '@uswds/img/usa-icons/close.svg'; - -export const Header = () => { - return ( -
- ); -}; diff --git a/apps/spotlight/src/components/document-assembler.tsx b/apps/spotlight/src/components/react/document-assembler.tsx similarity index 100% rename from apps/spotlight/src/components/document-assembler.tsx rename to apps/spotlight/src/components/react/document-assembler.tsx diff --git a/apps/spotlight/src/components/usa-banner.tsx b/apps/spotlight/src/components/usa-banner.tsx deleted file mode 100644 index ef046bbd..00000000 --- a/apps/spotlight/src/components/usa-banner.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import React from 'react'; - -//import iconDotGov from '@uswds/img/icon-dot-gov.svg'; -//import iconHttps from '@uswds/img/icon-https.svg'; -//import usFlagSmall from '@uswds/img/us_flag_small.png'; - -export const UsaBanner = () => { - return ( - <> -
-
-
-
-
- U.S. flag -
-
-

- An official website of the United States government -

- -
- -
-
- -
-
- - ); -}; diff --git a/apps/spotlight/src/layouts/Layout.astro b/apps/spotlight/src/layouts/Layout.astro index 1f9ee9fb..28635dbb 100644 --- a/apps/spotlight/src/layouts/Layout.astro +++ b/apps/spotlight/src/layouts/Layout.astro @@ -1,14 +1,16 @@ --- +import Footer from '../components/Footer.astro'; +import UsaBanner from '../components/UsaBanner.astro'; + interface Props { title: string; } - const { title } = Astro.props; --- - + @@ -20,6 +22,8 @@ const { title } = Astro.props; {title} + +