From b9a4131cc90b02a8a22cc8253890c8c871f46762 Mon Sep 17 00:00:00 2001 From: zkldi Date: Thu, 18 Apr 2024 01:36:19 +0100 Subject: [PATCH] feat: homepage addition (designed by @pfych) (#1042) * feat: initial homepage addition (designed by @pfych) * whoops * this'll be fine for now imo * ci: add homepage * feat: rename to tachi-homepage --- .github/workflows/homepage.yml | 46 ++ homepage/.gitignore | 10 + homepage/README.md | 18 + homepage/build.mjs | 53 ++ homepage/dist/android-chrome-192x192.png | Bin 0 -> 5585 bytes homepage/dist/android-chrome-512x512.png | Bin 0 -> 14386 bytes homepage/dist/apple-touch-icon.png | Bin 0 -> 5072 bytes homepage/dist/favicon-16x16.png | Bin 0 -> 366 bytes homepage/dist/favicon-32x32.png | Bin 0 -> 705 bytes homepage/dist/favicon.ico | Bin 0 -> 15406 bytes homepage/dist/logo.png | Bin 0 -> 10783 bytes homepage/dist/site.webmanifest | 19 + homepage/package.json | 20 + homepage/src/index.html | 153 +++++ homepage/src/style.scss | 184 ++++++ pnpm-lock.yaml | 777 ++++++++++++++++++++++- pnpm-workspace.yaml | 3 +- 17 files changed, 1267 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/homepage.yml create mode 100644 homepage/.gitignore create mode 100644 homepage/README.md create mode 100644 homepage/build.mjs create mode 100644 homepage/dist/android-chrome-192x192.png create mode 100644 homepage/dist/android-chrome-512x512.png create mode 100644 homepage/dist/apple-touch-icon.png create mode 100644 homepage/dist/favicon-16x16.png create mode 100644 homepage/dist/favicon-32x32.png create mode 100644 homepage/dist/favicon.ico create mode 100644 homepage/dist/logo.png create mode 100644 homepage/dist/site.webmanifest create mode 100644 homepage/package.json create mode 100644 homepage/src/index.html create mode 100644 homepage/src/style.scss diff --git a/.github/workflows/homepage.yml b/.github/workflows/homepage.yml new file mode 100644 index 000000000..9f1dd5c3c --- /dev/null +++ b/.github/workflows/homepage.yml @@ -0,0 +1,46 @@ +name: Homepage CI/CD + +on: + push: + branches: + - "main" + paths: + - "homepage/**" + workflow_dispatch: + +jobs: + deploy: + runs-on: [ubuntu-latest] + steps: + - name: Checkout + uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + with: + version: 8.15.6 + + - uses: actions/setup-node@v3 + with: + node-version: 20 + cache: pnpm + + - name: Enable SSH Key + run: | + mkdir -p ~/.ssh + echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa + sudo chmod 600 ~/.ssh/id_rsa + echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + env: + SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} + SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}} + + - name: Install dependencies + run: pnpm --filter tachi-homepage... --filter . install + + - name: Build + run: pnpm --filter tachi-homepage build + + - name: Deploy + run: scp -r tachi-homepage/dist/* ci@"$TACHI_HOST":tachi + env: + TACHI_HOST: ${{secrets.TACHI_HOST}} diff --git a/homepage/.gitignore b/homepage/.gitignore new file mode 100644 index 000000000..00fb7299b --- /dev/null +++ b/homepage/.gitignore @@ -0,0 +1,10 @@ +# IDE specific +.idea +.vscode + +# Node Specific +node_modules + +# Built file +dist/index.html +dist/style.css \ No newline at end of file diff --git a/homepage/README.md b/homepage/README.md new file mode 100644 index 000000000..80fc17246 --- /dev/null +++ b/homepage/README.md @@ -0,0 +1,18 @@ +# Tachi landing page + +This is the landing page for [https://tachi.ac](https://tachi.ac). + +## Contributing + +Basic landing page with SCSS compile step. + +```shell +pnpm install +pnpm run watch # Refresh dist/ on src/ change +pnpm run compile # Compile site to dist/ + +# then open `dist/index.html` in your browser. +``` + +Tested with Node.js `20.10.0` & pnpm `8.12.0` - Please ensure you are using these versions. + diff --git a/homepage/build.mjs b/homepage/build.mjs new file mode 100644 index 000000000..07e4903c9 --- /dev/null +++ b/homepage/build.mjs @@ -0,0 +1,53 @@ +import sass from "node-sass"; +import { resolve } from "node:path"; +import { + existsSync, + mkdirSync, + writeFileSync, + watch, + copyFileSync, +} from "node:fs"; + +const sourceDirectory = resolve(".", "src"); +const outDirectory = resolve(".", "dist"); + +const styleSheetInput = resolve(sourceDirectory, "style.scss"); +const htmlInput = resolve(sourceDirectory, "index.html"); + +const styleSheetOutput = resolve(outDirectory, "style.css"); +const htmlOutput = resolve(outDirectory, "index.html"); + +const compile = () => { + console.time("Compiled site"); + if (!existsSync(outDirectory)) { + mkdirSync(outDirectory); + } + + const result = sass.renderSync({ + file: styleSheetInput, + }); + writeFileSync(styleSheetOutput, result.css); + + copyFileSync(htmlInput, htmlOutput); + + console.timeEnd("Compiled site"); +}; + +const debounce = 100; // Watch debounce time in MS +let lastCompileTime = Date.now(); +(() => { + if (process.argv.includes("--watch")) { + console.info("Enabling Watcher..."); + + watch(sourceDirectory, (event, filename) => { + if (event === "change" && Date.now() - lastCompileTime > debounce) { + console.info(`${filename} ${event}`); + + compile(); + lastCompileTime = Date.now(); + } + }); + } + + compile(); +})(); diff --git a/homepage/dist/android-chrome-192x192.png b/homepage/dist/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..40f65253bba11c96f0bbeda471e7fefed42460dc GIT binary patch literal 5585 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 literal 0 HcmV?d00001 diff --git a/homepage/dist/apple-touch-icon.png b/homepage/dist/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..628270c03bc1b23ccc1b78a2b22bb110fa1759dd GIT binary patch literal 5072 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 Byt4oR literal 0 HcmV?d00001 diff --git a/homepage/dist/favicon-16x16.png b/homepage/dist/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..b4b99ad7e10a112de2bc373ddd210d35499e0fe5 GIT binary patch literal 366 zcmV-!0g?WRP)?Ai8YT>O!TtO91^zPpy#Zv3 zgC!UlO8)=*Z^_8SsE*Gyj0}t?!3Ny9e`h+7$^hHW@c#l(0>qz*PczV!fBrN6H)Xti z|F#8C!%?7OCLsRD$jIpT@BhDrKrta8e+LkM$7T@Fq9dw`s{M>W+ZO;i`cOsNff^-& z>;$N5I)RER@OuME7U&v#paJ{Ap}@fKlbM0pKv7W<6gD^kJQ}ZFy~@VM#Rl@fCNv;h zR1{Qd@o9#HHxvNVKq-*d1aqT=LY-3*@*001c#O3ant8y8r+H M07*qoM6N<$f)x^@aR2}S literal 0 HcmV?d00001 diff --git a/homepage/dist/favicon-32x32.png b/homepage/dist/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..d8fe684e604d38cb3d41d4bc8b3aad0948bcc708 GIT binary patch literal 705 zcmV;y0zUnTP)%e6!zQR^1pQ2{Gwt?{|fD-vV~ zLTBqxM+98zS3u7=1gA{^H(rtit*erF_fIOnDtAVYj%L{z(*Xz|#=Nv6z_P3n4B;0B zKcN8MLWvVn$eXZi%6$lduC+~dV-Z-sTFR?8r4a2DXHvv|`x`l+w3xrAM*uxpW zslLephZQ7mnEYZ8bB$>=nKUf00000NkvXXu0mjfz}-VN literal 0 HcmV?d00001 diff --git a/homepage/dist/favicon.ico b/homepage/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..138c42bbfeb9330cddedc9e8ae9282a9cad5e821 GIT binary patch literal 15406 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 TCc!@mAc(l#-lD+V>*)Ugz%7fG literal 0 HcmV?d00001 diff --git a/homepage/dist/site.webmanifest b/homepage/dist/site.webmanifest new file mode 100644 index 000000000..c8cf2e017 --- /dev/null +++ b/homepage/dist/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Tachi", + "short_name": "Tachi", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#131313", + "background_color": "#131313", + "display": "standalone" +} \ No newline at end of file diff --git a/homepage/package.json b/homepage/package.json new file mode 100644 index 000000000..a3733fd38 --- /dev/null +++ b/homepage/package.json @@ -0,0 +1,20 @@ +{ + "name": "tachi-homepage", + "version": "0.1.0", + "description": "", + "engines": { + "node": ">=20.10.0", + "pnpm": ">=8.12.0" + }, + "scripts": { + "compile": "node build.mjs", + "watch": "node build.mjs --watch" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "node-sass": "9.0.0", + "prettier": "3.2.5" + } +} \ No newline at end of file diff --git a/homepage/src/index.html b/homepage/src/index.html new file mode 100644 index 000000000..04038f7a3 --- /dev/null +++ b/homepage/src/index.html @@ -0,0 +1,153 @@ + + + + + + + + + + + Tachi + + + + + + + + + + +
+
+

Tachi LogoTachi

+

+ Tachi is a powerful, modular and modern rhythm game score tracker. +

+

Track Your Scores.

+

+ Tachi supports a bunch of your favourite games, and integrates with + many existing services to make sure no score is lost to the void. + Furthermore, it's backed by an Open-Source API, so your scores are + always available! +

+

Analyse Your Scores.

+

+ Tachi analyses your scores for you, breaking them down into all the + statistics you'll ever need. No more spreadsheets! +

+

Provide Cool Features.

+

+ Tachi implements the features rhythm gamers already talk about. Break + your scores down into sessions, set goals, showcase your best metrics + on your profile, study your progress on folders - it's all there, and + done for you! +

+
+
+

+ Bokutachi logoBokutachi +

+

+ Free & Open Source + at-home score tracking for many games & clients +

+

Features

+
    +
  • BMS 7K & 14K support
  • +
  • + LR2oraja + & LR2 clients supported +
  • +
  • PMS Keyboard & Controller support
  • +
  • USC Keyboard & Controller support
  • +
  • Compare & track historical scores
  • +
  • Compete with friends for scores
  • +
+ +
+
+

+ Kamaitachi logoKamaitachi +

+

+ Free & Open Source + arcade based score tracking +

+

Features

+
    +
  • Modular score tracking system
  • +
  • Compare & track historical scores
  • +
  • Compete with friends for scores
  • +
+ +
+
+
+ +
+ + diff --git a/homepage/src/style.scss b/homepage/src/style.scss new file mode 100644 index 000000000..19a4bed7b --- /dev/null +++ b/homepage/src/style.scss @@ -0,0 +1,184 @@ +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap"); + +* { + // This makes sizing make so much more sense to me + // The only downside I see is margins dont "collapse" into each-other + box-sizing: border-box; +} + +h1, +h2, +p, +ul { + // Funky behaviour relating to box-sizing: border-box. + // Remove margin-top from elements to prevent them from "double spacing" each-other + margin-top: unset; +} + +html { + // We could do theme switching but ¯\_(ツ)_/¯ + // We'd need to do an filter: invert() on the main logo png in light mode (or have a black-logo.png) + --background-colour: #131313; + --body-colour: #f7f7f7; + --bokutachi-colour: #527acc; + --kamaitachi-colour: #e61c6e; + + // This really only exists to stop me from making uneven spacing + // Crazy how consistent spacing makes a site feel 100x more professional + // There are smarter ways to do this but this works great for this set size + --curviness: 4px; + --sm-padding: calc(var(--curviness) * 2) calc(var(--curviness) * 3); + --md-padding: calc(var(--curviness) * 4) calc(var(--curviness) * 6); + --sm-gap: calc(var(--curviness) * 4); + --md-gap: calc(var(--curviness) * 6); + + background: var(--background-colour); + color: var(--body-colour); + font-family: "Poppins", sans-serif; +} + +html, +body { + min-height: 100vh; + padding: unset; + margin: unset; + + a, + p, + li, + h1, + h2 { + color: var(--body-colour); + } +} + +.container { + display: flex; + flex-direction: column; + min-height: 100vh; + max-width: 90ch; + margin: 0 auto var(--md-gap); + padding: var(--md-padding); + + .content { + flex: 1 1 100%; + + h1 { + display: flex; + align-items: center; + gap: 0.5ch; + + img { + width: 1em; + height: 1em; + object-fit: contain; + } + } + + .services { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + align-items: stretch; + gap: var(--md-gap); + margin-bottom: var(--md-gap); + + .service { + display: flex; + flex-direction: column; + flex: 1 0 calc(50% - var(--md-gap)); + border: 1px solid var(--body-colour); + border-radius: var(--curviness); + padding: var(--md-padding); + + @media screen and (max-width: 720px) { + padding: var(--sm-padding); + } + + h1 { + justify-content: center; + } + + ul { + flex: 1 1 100%; + margin-bottom: var(--md-gap); + + @media screen and (max-width: 720px) { + padding-left: var(--sm-gap); + } + } + + .buttons { + display: flex; + gap: var(--sm-gap); + + .button { + display: flex; + width: 100%; + flex: 1 1 auto; + padding: var(--sm-padding); + text-decoration: none; + text-align: center; + align-items: center; + justify-content: center; + border-radius: var(--curviness); + + &.disabled { + opacity: 0.75; + cursor: default; + } + + &.boku { + &.primary { + background: var(--bokutachi-colour); + } + + &.secondary { + border: 1px solid var(--bokutachi-colour); + } + } + + &.kamai { + &.primary { + background: var(--kamaitachi-colour); + } + + &.secondary { + border: 1px solid var(--kamaitachi-colour); + } + } + } + } + } + } + + .screenshots { + display: flex; + flex-wrap: wrap; + gap: var(--sm-gap); + padding: var(--sm-gap) 0; + + img { + width: 100%; + min-width: 300px; + flex: 1 1 auto; + object-fit: contain; + } + } + } + + .footer { + display: flex; + flex-wrap: wrap; + flex: 0 0 auto; + gap: var(--sm-gap); + justify-content: space-between; + } + + .footer > .links { + display: flex; + flex-wrap: wrap; + flex: 0 0 auto; + gap: var(--sm-gap); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e1f392324..a1fcad4b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -476,6 +476,15 @@ importers: specifier: 4.9.4 version: 4.9.4 + homepage: + devDependencies: + node-sass: + specifier: 9.0.0 + version: 9.0.0 + prettier: + specifier: 3.2.5 + version: 3.2.5 + server: dependencies: '@aws-sdk/client-s3': @@ -2442,6 +2451,10 @@ packages: react-dom: 17.0.2(react@17.0.2) dev: false + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: true + /@httptoolkit/websocket-stream@6.0.1: resolution: {integrity: sha512-A0NOZI+Glp3Xgcz6Na7i7o09+/+xm2m0UCU8gdtM2nIv6/cjLmhMZMqehSpTlgbx9omtLmV8LVqOskPEyWnmZQ==} dependencies: @@ -2903,6 +2916,39 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.3.8 + dev: true + + /@npmcli/fs@2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.3.8 + dev: true + + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + + /@npmcli/move-file@2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + /@octokit/app@13.1.0: resolution: {integrity: sha512-w0DCS/+bvrIL0iva89VSSa9YhIy1YHATSXMYrHQtgsBHpbuAnMn7QEknYhuMn/4h2dGg9cNjU+3XeAF5eyNmEA==} engines: {node: '>= 14'} @@ -3306,6 +3352,16 @@ packages: tslib: 2.4.0 dev: false + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} @@ -3505,6 +3561,10 @@ packages: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: false + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true + /@types/mkdirp@1.0.2: resolution: {integrity: sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==} dependencies: @@ -3905,6 +3965,22 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + /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: true + + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: true + /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -3965,6 +4041,10 @@ packages: default-require-extensions: 3.0.1 dev: true + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true + /archy@1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} dev: true @@ -3976,6 +4056,14 @@ packages: readable-stream: 2.3.7 dev: false + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.0 + dev: true + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -4019,6 +4107,11 @@ packages: es-shim-unscopables: 1.0.0 dev: true + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -4038,6 +4131,10 @@ packages: engines: {node: '>=0.12.0'} dev: false + /async-foreach@0.1.3: + resolution: {integrity: sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==} + dev: true + /async-hook-domain@2.0.4: resolution: {integrity: sha512-14LjCmlK1PK8eDtTezR6WX8TMaYNIzBIsd2D1sGoGjgx0BuNMMoSdk7i/drlbtamy0AWv9yv2tkB+ASdmeqFIw==} engines: {node: '>=10'} @@ -4276,7 +4373,6 @@ packages: 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==} @@ -4406,6 +4502,58 @@ packages: engines: {node: '>= 0.8'} dev: false + /cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.1.11 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: true + + /cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.1.11 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + dev: true + /caching-transform@4.0.0: resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} engines: {node: '>=8'} @@ -4447,6 +4595,15 @@ packages: tslib: 2.4.0 dev: false + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + /camelcase@2.1.1: resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} engines: {node: '>=0.10.0'} @@ -4511,7 +4668,6 @@ packages: /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - dev: false /ci-info@3.7.1: resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} @@ -4564,6 +4720,15 @@ packages: wrap-ansi: 7.0.0 dev: true + /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 + dev: true + /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -4741,6 +4906,10 @@ packages: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: false + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + /content-disposition@0.5.3: resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} engines: {node: '>= 0.6'} @@ -4801,7 +4970,6 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false /cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} @@ -4984,6 +5152,14 @@ packages: dependencies: ms: 2.1.2 + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -5055,7 +5231,6 @@ packages: /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false /denque@1.5.1: resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==} @@ -5334,7 +5509,6 @@ packages: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} dependencies: iconv-lite: 0.6.3 - dev: false /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -5346,6 +5520,15 @@ packages: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: false + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: true + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: true + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -6464,7 +6647,6 @@ packages: engines: {node: '>= 8'} dependencies: minipass: 3.3.4 - dev: false /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -6525,6 +6707,27 @@ packages: lodash.padstart: 4.6.1 dev: false + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + + /gaze@1.1.3: + resolution: {integrity: sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==} + engines: {node: '>= 4.0.0'} + dependencies: + globule: 1.3.4 + dev: true + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -6551,6 +6754,11 @@ packages: engines: {node: '>=8'} dev: false + /get-stdin@4.0.1: + resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} + engines: {node: '>=0.10.0'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -6594,6 +6802,17 @@ packages: dev: false optional: true + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + 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: @@ -6604,6 +6823,17 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.2 + once: 1.4.0 + dev: true + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -6634,6 +6864,15 @@ packages: slash: 3.0.0 dev: true + /globule@1.3.4: + resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} + engines: {node: '>= 0.10'} + dependencies: + glob: 7.1.7 + lodash: 4.17.21 + minimatch: 3.0.8 + dev: true + /goober@2.1.10(csstype@3.1.1): resolution: {integrity: sha512-7PpuQMH10jaTWm33sQgBQvz45pHR8N4l3Cu3WMGEWmHShAcTuuP7I+5/DwKo39fwti5A80WAjvqgz6SSlgWmGA==} peerDependencies: @@ -6665,6 +6904,11 @@ packages: har-schema: 2.0.0 dev: true + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -6700,7 +6944,6 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: false /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} @@ -6772,6 +7015,13 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + /html-entities@2.3.3: resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} dev: false @@ -6794,6 +7044,10 @@ packages: terser: 5.16.1 dev: false + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true + /http-errors@1.7.2: resolution: {integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==} engines: {node: '>= 0.6'} @@ -6827,6 +7081,28 @@ packages: toidentifier: 1.0.1 dev: false + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -6836,6 +7112,16 @@ packages: sshpk: 1.17.0 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: true + /humanize-duration@3.27.0: resolution: {integrity: sha512-qLo/08cNc3Tb0uD7jK0jAcU5cnqCM0n568918E7R2XhMr/+7F37p4EY062W/stg7tmzvknNn9b/1+UhVRzsYrQ==} dev: false @@ -6844,6 +7130,12 @@ packages: resolution: {integrity: sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg==} dev: false + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -6856,7 +7148,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: false /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6907,6 +7198,10 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6971,6 +7266,14 @@ packages: - supports-color dev: false + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + dev: true + /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -7066,6 +7369,10 @@ packages: resolution: {integrity: sha512-tLn1j3wYSL6DkvEI+V/j0pKohpa5jk+ER74v6S4SgCXnjS0WA+DoZbwZBrrhgwksMvtuwndyGeG5F8YMsoBzSA==} dev: false + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + dev: true + /is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -7095,6 +7402,11 @@ packages: engines: {node: '>=8'} dev: false + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -7174,7 +7486,6 @@ packages: /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -7287,6 +7598,10 @@ packages: minimatch: 3.1.2 dev: false + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + /js-sdsl@2.1.4: resolution: {integrity: sha512-/Ew+CJWHNddr7sjwgxaVeIORIH4AMVC9dy0hPf540ZGMVgS9d3ajwuVdyhDt6/QUvT8ATjR3yuYBKsS79F+H4A==} dev: false @@ -7317,6 +7632,10 @@ packages: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + dev: true + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -7441,6 +7760,11 @@ packages: safe-buffer: 5.2.1 dev: false + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -7625,6 +7949,11 @@ packages: dependencies: yallist: 4.0.0 + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: true + /luxon@2.0.1: resolution: {integrity: sha512-8Eawf81c9ZlQj62W3eq4mp+C7SAIAnmaS7ZuEAiX503YMcn+0C1JnMQRtfaQj6B5qTZLgHv0F4H5WabBCvi1fw==} dev: false @@ -7651,6 +7980,66 @@ packages: /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + /make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + agentkeepalive: 4.5.0 + cacache: 16.1.3 + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + dependencies: + agentkeepalive: 4.5.0 + cacache: 15.3.0 + http-cache-semantics: 4.1.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + /match-sorter@6.3.1: resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} dependencies: @@ -7733,6 +8122,24 @@ packages: readable-stream: 1.0.34 dev: false + /meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -7978,6 +8385,12 @@ packages: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} dev: false + /minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + dependencies: + brace-expansion: 1.1.11 + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -7988,7 +8401,15 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - dev: false + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true /minimist@1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} @@ -7996,6 +8417,56 @@ packages: /minimist@1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + + /minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + /minipass@2.9.0: resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} dependencies: @@ -8028,7 +8499,6 @@ packages: dependencies: minipass: 3.3.4 yallist: 4.0.0 - dev: false /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -8251,6 +8721,10 @@ packages: dev: false optional: true + /nan@2.19.0: + resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + dev: true + /nano-time@1.0.0: resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} dependencies: @@ -8342,6 +8816,26 @@ packages: dev: false optional: true + /node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.10 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.3.8 + tar: 6.1.11 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + /node-html-parser@5.3.3: resolution: {integrity: sha512-ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw==} dependencies: @@ -8375,6 +8869,31 @@ packages: /node-releases@2.0.8: resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} + /node-sass@9.0.0: + resolution: {integrity: sha512-yltEuuLrfH6M7Pq2gAj5B6Zm7m+gdZoG66wTqG6mIZV/zijq3M2OO2HswtT6oBspPyFhHDcaxWpsBm0fRNDHPg==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true + dependencies: + async-foreach: 0.1.3 + chalk: 4.1.2 + cross-spawn: 7.0.3 + gaze: 1.1.3 + get-stdin: 4.0.1 + glob: 7.2.3 + lodash: 4.17.21 + make-fetch-happen: 10.2.1 + meow: 9.0.0 + nan: 2.19.0 + node-gyp: 8.4.1 + sass-graph: 4.0.1 + stdout-stream: 1.4.1 + true-case-path: 2.2.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + /nodemailer@6.7.2: resolution: {integrity: sha512-Dz7zVwlef4k5R71fdmxwR8Q39fiboGbu3xgswkzGwczUfjp873rVxt1O46+Fh0j1ORnAC6L9+heI8uUpO6DT7Q==} engines: {node: '>=6.0.0'} @@ -8404,6 +8923,14 @@ packages: abbrev: 1.1.1 dev: true + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: @@ -8413,6 +8940,16 @@ packages: validate-npm-package-license: 3.0.4 dev: true + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.11.0 + semver: 7.3.8 + validate-npm-package-license: 3.0.4 + dev: true + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -8425,6 +8962,16 @@ packages: gauge: 1.2.7 dev: false + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: true + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -8621,6 +9168,13 @@ packages: aggregate-error: 3.1.0 dev: true + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -8782,6 +9336,12 @@ packages: hasBin: true dev: true + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + dev: true + /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -8793,7 +9353,6 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false /process-on-spawn@1.0.0: resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} @@ -8810,6 +9369,23 @@ packages: tdigest: 0.1.2 dev: false + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + /promise@7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: @@ -8929,6 +9505,11 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + /random-bytes@1.0.0: resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} engines: {node: '>= 0.8'} @@ -9299,7 +9880,6 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: false /readable-stream@3.6.0: resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} @@ -9315,6 +9895,14 @@ packages: dependencies: picomatch: 2.3.1 + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + /redis-commands@1.7.0: resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==} dev: false @@ -9480,6 +10068,11 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -9574,6 +10167,17 @@ packages: dev: false optional: true + /sass-graph@4.0.1: + resolution: {integrity: sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==} + engines: {node: '>=12'} + hasBin: true + dependencies: + glob: 7.2.3 + lodash: 4.17.21 + scss-tokenizer: 0.4.3 + yargs: 17.7.2 + dev: true + /sass@1.64.1: resolution: {integrity: sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==} engines: {node: '>=14.0.0'} @@ -9590,6 +10194,13 @@ packages: object-assign: 4.1.1 dev: false + /scss-tokenizer@0.4.3: + resolution: {integrity: sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==} + dependencies: + js-base64: 2.6.4 + source-map: 0.7.4 + dev: true + /semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -9789,6 +10400,11 @@ packages: engines: {node: '>=8'} dev: true + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true + /snappy@7.2.2: resolution: {integrity: sha512-iADMq1kY0v3vJmGTuKcFWSXt15qYUz7wFkArOrsSg0IFfI3nJqIJvK2/ZbEIndg7erIJLtAVX2nSOqPz7DcwbA==} engines: {node: '>= 10'} @@ -9810,6 +10426,36 @@ packages: dev: false optional: true + /socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + dev: true + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -9829,6 +10475,11 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -9894,6 +10545,10 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: true + /sshpk@1.17.0: resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} engines: {node: '>=0.10.0'} @@ -9910,6 +10565,20 @@ packages: tweetnacl: 0.14.5 dev: true + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + dev: true + /stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} dev: false @@ -9935,6 +10604,12 @@ packages: engines: {node: '>= 0.8'} dev: false + /stdout-stream@1.4.1: + resolution: {integrity: sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==} + dependencies: + readable-stream: 2.3.7 + dev: true + /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: false @@ -9986,7 +10661,6 @@ packages: 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==} @@ -10294,7 +10968,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: false /tcompare@5.0.7: resolution: {integrity: sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==} @@ -10388,6 +11061,11 @@ packages: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} dev: false + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + /triple-beam@1.3.0: resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} dev: false @@ -10400,6 +11078,10 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false + /true-case-path@2.2.1: + resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} + dev: true + /ts-mixer@6.0.1: resolution: {integrity: sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==} dev: false @@ -10496,6 +11178,11 @@ packages: prelude-ls: 1.2.1 dev: true + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -10608,6 +11295,32 @@ packages: vfile: 5.3.4 dev: false + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + dependencies: + unique-slug: 2.0.2 + dev: true + + /unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + unique-slug: 3.0.0 + dev: true + + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + dependencies: + imurmurhash: 0.1.4 + dev: true + + /unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + dev: true + /unist-builder@3.0.0: resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} dependencies: @@ -10936,6 +11649,12 @@ packages: isexe: 2.0.0 dev: true + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: true + /window-size@0.1.4: resolution: {integrity: sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==} engines: {node: '>= 0.10.0'} @@ -11062,6 +11781,11 @@ packages: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -11080,6 +11804,16 @@ packages: decamelize: 1.2.0 dev: true + /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'} + dev: true + /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -11097,6 +11831,19 @@ packages: yargs-parser: 18.1.3 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 + dev: true + /yargs@3.32.0: resolution: {integrity: sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==} dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a8a03eeea..d64871ded 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,4 +6,5 @@ packages: - "server/**" - "sieglinde/**" - "github-bot/**" - - "docs/autogen-scripts/**" \ No newline at end of file + - "homepage/**" + - "docs/autogen-scripts/**"