From 1eab1890dcbb29a5335c456e9816487b1291821b Mon Sep 17 00:00:00 2001 From: SomeCodecat <88855796+SomeCodecat@users.noreply.github.com> Date: Sat, 17 May 2025 01:12:39 +0200 Subject: [PATCH 01/27] refactor: replace IconButton with Button and update login UI --- src/components/user/sso-login-button.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/components/user/sso-login-button.tsx b/src/components/user/sso-login-button.tsx index 064e2eb..c1bd0e2 100644 --- a/src/components/user/sso-login-button.tsx +++ b/src/components/user/sso-login-button.tsx @@ -1,6 +1,6 @@ import { signIn } from '@/auth'; -import { IconButton } from '@/components/icon-button'; -import { faOpenid } from '@fortawesome/free-brands-svg-icons'; +import { Button } from '@/components/ui/button'; +import { Fingerprint } from 'lucide-react'; export default function SSOLogin({ provider, @@ -17,14 +17,19 @@ export default function SSOLogin({ await signIn(provider); }} > - - Login with {providerDisplayName} - +
+ +
+ +
+ Login with {providerDisplayName} +
+ ); } From b05c9df72f4b7d6e0d8326abe5a6e35aab5d29e4 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Thu, 8 May 2025 18:23:24 +0200 Subject: [PATCH 02/27] test: initialize cypress e2e testing library --- cypress.config.ts | 16 + cypress/fixtures/example.json | 5 + cypress/support/commands.ts | 37 + cypress/support/component-index.html | 14 + cypress/support/component.ts | 36 + cypress/support/e2e.ts | 17 + package.json | 5 +- yarn.lock | 1238 +++++++++++++++++++++++++- 8 files changed, 1355 insertions(+), 13 deletions(-) create mode 100644 cypress.config.ts create mode 100644 cypress/fixtures/example.json create mode 100644 cypress/support/commands.ts create mode 100644 cypress/support/component-index.html create mode 100644 cypress/support/component.ts create mode 100644 cypress/support/e2e.ts diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 0000000..768b87a --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, + + component: { + devServer: { + framework: 'next', + bundler: 'webpack', + }, + }, +}); diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts new file mode 100644 index 0000000..95857ae --- /dev/null +++ b/cypress/support/commands.ts @@ -0,0 +1,37 @@ +/// +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +// +// declare global { +// namespace Cypress { +// interface Chainable { +// login(email: string, password: string): Chainable +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } diff --git a/cypress/support/component-index.html b/cypress/support/component-index.html new file mode 100644 index 0000000..2cbfac6 --- /dev/null +++ b/cypress/support/component-index.html @@ -0,0 +1,14 @@ + + + + + + + Components App + +
+ + +
+ + diff --git a/cypress/support/component.ts b/cypress/support/component.ts new file mode 100644 index 0000000..23fbccc --- /dev/null +++ b/cypress/support/component.ts @@ -0,0 +1,36 @@ +// *********************************************************** +// This example support/component.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; + +import { mount } from 'cypress/react'; + +// Augment the Cypress namespace to include type definitions for +// your custom command. +// Alternatively, can be defined in cypress/support/component.d.ts +// with a at the top of your spec. +declare global { + namespace Cypress { + interface Chainable { + mount: typeof mount; + } + } +} + +Cypress.Commands.add('mount', mount); + +// Example use: +// cy.mount() diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 0000000..e66558e --- /dev/null +++ b/cypress/support/e2e.ts @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/e2e.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; diff --git a/package.json b/package.json index 85ca294..4fd2426 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,11 @@ "scripts": { "dev": "next dev --turbopack", "build": "prettier --check . && next build", - "start": "next start", + "start": "node .next/standalone/server.js", "lint": "next lint", "format": "prettier --write .", + "cypress:open": "cypress open", + "cypress:run": "cypress run", "prisma:migrate": "dotenv -e .env.local -- prisma migrate dev", "prisma:generate": "dotenv -e .env.local -- prisma generate", "prisma:studio": "dotenv -e .env.local -- prisma studio", @@ -47,6 +49,7 @@ "@types/node": "22.15.19", "@types/react": "19.1.4", "@types/react-dom": "19.1.5", + "cypress": "14.3.3", "dotenv-cli": "8.0.0", "eslint": "9.27.0", "eslint-config-next": "15.3.2", diff --git a/yarn.lock b/yarn.lock index 1125f9a..4b9e72d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -57,6 +57,42 @@ __metadata: languageName: node linkType: hard +"@cypress/request@npm:^3.0.8": + version: 3.0.8 + resolution: "@cypress/request@npm:3.0.8" + dependencies: + aws-sign2: "npm:~0.7.0" + aws4: "npm:^1.8.0" + caseless: "npm:~0.12.0" + combined-stream: "npm:~1.0.6" + extend: "npm:~3.0.2" + forever-agent: "npm:~0.6.1" + form-data: "npm:~4.0.0" + http-signature: "npm:~1.4.0" + is-typedarray: "npm:~1.0.0" + isstream: "npm:~0.1.2" + json-stringify-safe: "npm:~5.0.1" + mime-types: "npm:~2.1.19" + performance-now: "npm:^2.1.0" + qs: "npm:6.14.0" + safe-buffer: "npm:^5.1.2" + tough-cookie: "npm:^5.0.0" + tunnel-agent: "npm:^0.6.0" + uuid: "npm:^8.3.2" + checksum: 10c0/76cabf6ad64df224bab9b66869f71c4fb63315f9775ef1769da9da6c8d6d470899bee7f5b800379020efb6c7f37fd16a4a8e25c61319e14cd720bd3f606a38fd + languageName: node + linkType: hard + +"@cypress/xvfb@npm:^1.2.4": + version: 1.2.4 + resolution: "@cypress/xvfb@npm:1.2.4" + dependencies: + debug: "npm:^3.1.0" + lodash.once: "npm:^4.1.1" + checksum: 10c0/1bf6224b244f6093033d77f04f6bef719280542656de063cf8ac3f38957b62aa633e6918af0b9673a8bf0123b42a850db51d9729a3ae3da885ac179bc7fc1d26 + languageName: node + linkType: hard + "@emnapi/core@npm:^1.4.3": version: 1.4.3 resolution: "@emnapi/core@npm:1.4.3" @@ -1634,7 +1670,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:22.15.19": +"@types/node@npm:*, @types/node@npm:22.15.19": version: 22.15.19 resolution: "@types/node@npm:22.15.19" dependencies: @@ -1661,6 +1697,29 @@ __metadata: languageName: node linkType: hard +"@types/sinonjs__fake-timers@npm:8.1.1": + version: 8.1.1 + resolution: "@types/sinonjs__fake-timers@npm:8.1.1" + checksum: 10c0/e2e6c425a548177c0930c2f9b82d3951956c9701b9ebf59623d5ad2c3229c523d3c0d598e79fe7392a239657abd3dbe3676be0650ce438bcd1199ee3b617a4d7 + languageName: node + linkType: hard + +"@types/sizzle@npm:^2.3.2": + version: 2.3.9 + resolution: "@types/sizzle@npm:2.3.9" + checksum: 10c0/db0277ff62e8ebe6cdae2020fd045fd7fd19f29a3a2ce13c555b14fb00e105e79004883732118b9f2e8b943cb302645e9eddb4e7bdeef1a171da679cd4c32b72 + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1b7c1b99fef9f2fe7f1985ef7426d0cebe48cd031f1780fcdc7451eec7e31ac97028f16f50121a59bcf53086a1fc8c856fd5b7d3e00970e43d92ae27d6b43dc + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.32.1 resolution: "@typescript-eslint/eslint-plugin@npm:8.32.1" @@ -1912,6 +1971,16 @@ __metadata: languageName: node linkType: hard +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + "ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -1924,7 +1993,30 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.1.0": +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -1933,6 +2025,13 @@ __metadata: languageName: node linkType: hard +"arch@npm:^2.2.0": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: 10c0/4ceaf8d8207817c216ebc4469742052cb0a097bc45d9b7fcd60b7507220da545a28562ab5bdd4dfe87921bb56371a0805da4e10d704e01f93a15f83240f1284c + languageName: node + linkType: hard + "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -2061,6 +2160,22 @@ __metadata: languageName: node linkType: hard +"asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: "npm:~2.1.0" + checksum: 10c0/00c8a06c37e548762306bcb1488388d2f76c74c36f70c803f0c081a01d3bdf26090fc088cd812afc5e56a6d49e33765d451a5f8a68ab9c2b087eba65d2e980e0 + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 10c0/b194b9d50c3a8f872ee85ab110784911e696a4d49f7ee6fc5fb63216dedbefd2c55999c70cb2eaeb4cf4a0e0338b44e9ace3627117b5bf0d42460e9132f21b91 + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.8": version: 0.0.8 resolution: "ast-types-flow@npm:0.0.8" @@ -2068,6 +2183,13 @@ __metadata: languageName: node linkType: hard +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 10c0/f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -2075,6 +2197,27 @@ __metadata: languageName: node linkType: hard +"async@npm:^3.2.0": + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -2084,6 +2227,20 @@ __metadata: languageName: node linkType: hard +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: 10c0/021d2cc5547d4d9ef1633e0332e746a6f447997758b8b68d6fb33f290986872d2bff5f0c37d5832f41a7229361f093cd81c40898d96ed153493c0fb5cd8575d2 + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.13.2 + resolution: "aws4@npm:1.13.2" + checksum: 10c0/c993d0d186d699f685d73113733695d648ec7d4b301aba2e2a559d0cd9c1c902308cc52f4095e1396b23fddbc35113644e7f0a6a32753636306e41e3ed6f1e79 + languageName: node + linkType: hard + "axe-core@npm:^4.10.0": version: 4.10.3 resolution: "axe-core@npm:4.10.3" @@ -2105,6 +2262,36 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: "npm:^0.14.3" + checksum: 10c0/ddfe85230b32df25aeebfdccfbc61d3bc493ace49c884c9c68575de1f5dcf733a5d7de9def3b0f318b786616b8d85bad50a28b1da1750c43e0012c93badcc148 + languageName: node + linkType: hard + +"blob-util@npm:^2.0.2": + version: 2.0.2 + resolution: "blob-util@npm:2.0.2" + checksum: 10c0/ed82d587827e5c86be122301a7c250f8364963e9582f72a826255bfbd32f8d69cc10169413d666667bb1c4fc8061329ae89d176ffe46fee8f32080af944ccddc + languageName: node + linkType: hard + +"bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -2133,6 +2320,23 @@ __metadata: languageName: node linkType: hard +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 + languageName: node + linkType: hard + +"buffer@npm:^5.7.1": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + "busboy@npm:1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -2142,6 +2346,13 @@ __metadata: languageName: node linkType: hard +"cachedir@npm:^2.3.0": + version: 2.4.0 + resolution: "cachedir@npm:2.4.0" + checksum: 10c0/76bff9009f2c446cd3777a4aede99af634a89670a67012b8041f65e951d3d36cefe8940341ea80c72219ee9913fa1f6146824cd9dfe9874a4bded728af7e6d76 + languageName: node + linkType: hard + "call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" @@ -2188,7 +2399,14 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0": +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: 10c0/ccf64bcb6c0232cdc5b7bd91ddd06e23a4b541f138336d4725233ac538041fb2f29c2e86c3c4a7a61ef990b665348db23a047060b9414c3a6603e9fa61ad4626 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -2198,6 +2416,13 @@ __metadata: languageName: node linkType: hard +"check-more-types@npm:^2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: 10c0/93fda2c32eb5f6cd1161a84a2f4107c0e00b40a851748516791dd9a0992b91bdf504e3bf6bf7673ce603ae620042e11ed4084d16d6d92b36818abc9c2e725520 + languageName: node + linkType: hard + "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -2205,6 +2430,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^4.1.0": + version: 4.2.0 + resolution: "ci-info@npm:4.2.0" + checksum: 10c0/37a2f4b6a213a5cf835890eb0241f0d5b022f6cfefde58a69e9af8e3a0e71e06d6ad7754b0d4efb9cd2613e58a7a33996d71b56b0d04242722e86666f3f3d058 + languageName: node + linkType: hard + "class-variance-authority@npm:^0.7.1": version: 0.7.1 resolution: "class-variance-authority@npm:0.7.1" @@ -2214,6 +2446,45 @@ __metadata: languageName: node linkType: hard +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: "npm:^3.1.0" + checksum: 10c0/92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 + languageName: node + linkType: hard + +"cli-table3@npm:0.6.1": + version: 0.6.1 + resolution: "cli-table3@npm:0.6.1" + dependencies: + colors: "npm:1.4.0" + string-width: "npm:^4.2.0" + dependenciesMeta: + colors: + optional: true + checksum: 10c0/19ab1bb14bd11b3ca3557ce5ad37ef73e489ea814b99f803171e6ac0a3f2ae5fffb6dbc8864e33cdcf2a3644ebc31b488b8e624fd74af44a1c77cc365c143db4 + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: "npm:^3.0.0" + string-width: "npm:^4.2.0" + checksum: 10c0/dfaa3df675bcef7a3254773de768712b590250420345a4c7ac151f041a4bacb4c25864b1377bee54a39b5925a030c00eabf014e312e3a4ac130952ed3b3879e9 + languageName: node + linkType: hard + "client-only@npm:0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" @@ -2264,6 +2535,43 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.16": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 + languageName: node + linkType: hard + +"colors@npm:1.4.0": + version: 1.4.0 + resolution: "colors@npm:1.4.0" + checksum: 10c0/9af357c019da3c5a098a301cf64e3799d27549d8f185d86f79af23069e4f4303110d115da98483519331f6fb71c8568d5688fa1c6523600044fd4a54e97c4efb + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:^6.2.1": + version: 6.2.1 + resolution: "commander@npm:6.2.1" + checksum: 10c0/85748abd9d18c8bc88febed58b98f66b7c591d9b5017cad459565761d7b29ca13b7783ea2ee5ce84bf235897333706c4ce29adf1ce15c8252780e7000e2ce9ea + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 10c0/23efe47ff0a1a7c91489271b3a1e1d2a171c12ec7f9b35b29b2fce51270124aff0ec890087e2bc2182c1cb746e232ab7561aaafe05f1e7452aea733d2bfe3f63 + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -2271,7 +2579,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.6": +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 10c0/980a37a93956d0de8a828ce508f9b9e3317039d68922ca79995421944146700e4aaf490a6dbfebcb1c5292a7184600c7710b957d724be1e37b8254c6bc0fe246 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -2289,6 +2604,59 @@ __metadata: languageName: node linkType: hard +"cypress@npm:14.3.3": + version: 14.3.3 + resolution: "cypress@npm:14.3.3" + dependencies: + "@cypress/request": "npm:^3.0.8" + "@cypress/xvfb": "npm:^1.2.4" + "@types/sinonjs__fake-timers": "npm:8.1.1" + "@types/sizzle": "npm:^2.3.2" + arch: "npm:^2.2.0" + blob-util: "npm:^2.0.2" + bluebird: "npm:^3.7.2" + buffer: "npm:^5.7.1" + cachedir: "npm:^2.3.0" + chalk: "npm:^4.1.0" + check-more-types: "npm:^2.24.0" + ci-info: "npm:^4.1.0" + cli-cursor: "npm:^3.1.0" + cli-table3: "npm:0.6.1" + commander: "npm:^6.2.1" + common-tags: "npm:^1.8.0" + dayjs: "npm:^1.10.4" + debug: "npm:^4.3.4" + enquirer: "npm:^2.3.6" + eventemitter2: "npm:6.4.7" + execa: "npm:4.1.0" + executable: "npm:^4.1.1" + extract-zip: "npm:2.0.1" + figures: "npm:^3.2.0" + fs-extra: "npm:^9.1.0" + getos: "npm:^3.2.1" + is-installed-globally: "npm:~0.4.0" + lazy-ass: "npm:^1.6.0" + listr2: "npm:^3.8.3" + lodash: "npm:^4.17.21" + log-symbols: "npm:^4.0.0" + minimist: "npm:^1.2.8" + ospath: "npm:^1.2.2" + pretty-bytes: "npm:^5.6.0" + process: "npm:^0.11.10" + proxy-from-env: "npm:1.0.0" + request-progress: "npm:^3.0.0" + semver: "npm:^7.7.1" + supports-color: "npm:^8.1.1" + tmp: "npm:~0.2.3" + tree-kill: "npm:1.2.2" + untildify: "npm:^4.0.0" + yauzl: "npm:^2.10.0" + bin: + cypress: bin/cypress + checksum: 10c0/b802fd1c29069037cf72d59fdfdb79c8b4779e5dd1fa58ea67c8b520fd66e64e204db9d03817950519779af081b925416ffd5ec23f7dcbf6ac52a9da1af5cfec + languageName: node + linkType: hard + "damerau-levenshtein@npm:^1.0.8": version: 1.0.8 resolution: "damerau-levenshtein@npm:1.0.8" @@ -2296,6 +2664,15 @@ __metadata: languageName: node linkType: hard +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10c0/64589a15c5bd01fa41ff7007e0f2c6552c5ef2028075daa16b188a3721f4ba001841bf306dfc2eee6e2e6e7f76b38f5f17fb21fa847504192290ffa9e150118a + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.2": version: 1.0.2 resolution: "data-view-buffer@npm:1.0.2" @@ -2329,7 +2706,14 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.7": +"dayjs@npm:^1.10.4": + version: 1.11.13 + resolution: "dayjs@npm:1.11.13" + checksum: 10c0/a3caf6ac8363c7dade9d1ee797848ddcf25c1ace68d9fe8678ecf8ba0675825430de5d793672ec87b24a69bf04a1544b176547b2539982275d5542a7955f35b7 + languageName: node + linkType: hard + +"debug@npm:^3.1.0, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -2338,7 +2722,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": +"debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": version: 4.4.1 resolution: "debug@npm:4.4.1" dependencies: @@ -2379,6 +2763,13 @@ __metadata: languageName: node linkType: hard +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + "detect-libc@npm:^2.0.3, detect-libc@npm:^2.0.4": version: 2.0.4 resolution: "detect-libc@npm:2.0.4" @@ -2441,6 +2832,23 @@ __metadata: languageName: node linkType: hard +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.1.0" + checksum: 10c0/6cf168bae1e2dad2e46561d9af9cbabfbf5ff592176ad4e9f0f41eaaf5fe5e10bb58147fe0a804de62b1ee9dad42c28810c88d652b21b6013c47ba8efa274ca1 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + "emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" @@ -2448,6 +2856,15 @@ __metadata: languageName: node linkType: hard +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.18.1": version: 5.18.1 resolution: "enhanced-resolve@npm:5.18.1" @@ -2458,6 +2875,16 @@ __metadata: languageName: node linkType: hard +"enquirer@npm:^2.3.6": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/43850479d7a51d36a9c924b518dcdc6373b5a8ae3401097d336b7b7e258324749d0ad37a1fcaa5706f04799baa05585cd7af19ebdf7667673e7694435fcea918 + languageName: node + linkType: hard + "es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": version: 1.23.9 resolution: "es-abstract@npm:1.23.9" @@ -2596,6 +3023,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -2893,6 +3327,77 @@ __metadata: languageName: node linkType: hard +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 10c0/35d8e9d51b919114eb072d33786274e1475db50efe00960c24c088ce4f76c07a826ccc927602724928efb3d8f09a7d8dd1fa79e410875118c0e9846959287f34 + languageName: node + linkType: hard + +"execa@npm:4.1.0": + version: 4.1.0 + resolution: "execa@npm:4.1.0" + dependencies: + cross-spawn: "npm:^7.0.0" + get-stream: "npm:^5.0.0" + human-signals: "npm:^1.1.1" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.0" + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + strip-final-newline: "npm:^2.0.0" + checksum: 10c0/02211601bb1c52710260edcc68fb84c3c030dc68bafc697c90ada3c52cc31375337de8c24826015b8382a58d63569ffd203b79c94fef217d65503e3e8d2c52ba + languageName: node + linkType: hard + +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: "npm:^2.2.0" + checksum: 10c0/c3cc5d2d2e3cdb1b7d7b0639ebd5566d113d7ada21cfa07f5226d55ba2a210320116720e07570ed5659ef2ec516bc00c8f0488dac75d112fd324ef25c2100173 + languageName: node + linkType: hard + +"extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 + languageName: node + linkType: hard + +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: 10c0/f75114a8388f0cbce68e277b6495dc3930db4dde1611072e4a140c24e204affd77320d004b947a132e9a3b97b8253017b2b62dce661975fb0adced707abf1ab5 + languageName: node + linkType: hard + +"extsprintf@npm:^1.2.0": + version: 1.4.1 + resolution: "extsprintf@npm:1.4.1" + checksum: 10c0/e10e2769985d0e9b6c7199b053a9957589d02e84de42832c295798cb422a025e6d4a92e0259c1fb4d07090f5bfde6b55fd9f880ac5855bd61d775f8ab75a7ab0 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -2949,6 +3454,15 @@ __metadata: languageName: node linkType: hard +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + "fdir@npm:^6.4.4": version: 6.4.4 resolution: "fdir@npm:6.4.4" @@ -2961,6 +3475,15 @@ __metadata: languageName: node linkType: hard +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/9c421646ede432829a50bc4e55c7a4eb4bcb7cc07b5bab2f471ef1ab9a344595bbebb6c5c21470093fbb730cd81bbca119624c40473a125293f656f49cb47629 + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -3015,6 +3538,37 @@ __metadata: languageName: node linkType: hard +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 10c0/364f7f5f7d93ab661455351ce116a67877b66f59aca199559a999bd39e3cfadbfbfacc10415a915255e2210b30c23febe9aec3ca16bf2d1ff11c935a1000e24c + languageName: node + linkType: hard + +"form-data@npm:~4.0.0": + version: 4.0.2 + resolution: "form-data@npm:4.0.2" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + mime-types: "npm:^2.1.12" + checksum: 10c0/e534b0cf025c831a0929bf4b9bbe1a9a6b03e273a8161f9947286b9b13bf8fb279c6944aae0070c4c311100c6d6dbb815cd955dc217728caf73fad8dc5b8ee9c + languageName: node + linkType: hard + +"fs-extra@npm:^9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 + languageName: node + linkType: hard + "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -3078,6 +3632,15 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.1.0": version: 1.1.0 resolution: "get-symbol-description@npm:1.1.0" @@ -3098,6 +3661,24 @@ __metadata: languageName: node linkType: hard +"getos@npm:^3.2.1": + version: 3.2.1 + resolution: "getos@npm:3.2.1" + dependencies: + async: "npm:^3.2.0" + checksum: 10c0/21556fca1da4dfc8f1707261b4f9ff19b9e9bfefa76478249d2abddba3cd014bd6c5360634add1590b27e0b27d422e8f997dddaa0234aae1fa4c54f33f82e841 + languageName: node + linkType: hard + +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10c0/c13f8530ecf16fc509f3fa5cd8dd2129ffa5d0c7ccdf5728b6022d52954c2d24be3706b4cdf15333eec52f1fbb43feb70a01dabc639d1d10071e371da8aaa52f + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -3116,6 +3697,15 @@ __metadata: languageName: node linkType: hard +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: "npm:2.0.0" + checksum: 10c0/ef65e2241a47ff978f7006a641302bc7f4c03dfb98783d42bf7224c136e3a06df046e70ee3a010cf30214114755e46c9eb5eb1513838812fbbe0d92b14c25080 + languageName: node + linkType: hard + "globals@npm:^14.0.0": version: 14.0.0 resolution: "globals@npm:14.0.0" @@ -3140,7 +3730,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.4": +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -3211,6 +3801,31 @@ __metadata: languageName: node linkType: hard +"http-signature@npm:~1.4.0": + version: 1.4.0 + resolution: "http-signature@npm:1.4.0" + dependencies: + assert-plus: "npm:^1.0.0" + jsprim: "npm:^2.0.2" + sshpk: "npm:^1.18.0" + checksum: 10c0/b9806f5a9ed82a146589837d175c43b596b1cc8c9431665e83d47c152aa8a4629dd1b1e050f8f56e7f17f62cf97b58e888775093310441ddee5f105f28646b2b + languageName: node + linkType: hard + +"human-signals@npm:^1.1.1": + version: 1.1.1 + resolution: "human-signals@npm:1.1.1" + checksum: 10c0/18810ed239a7a5e23fb6c32d0fd4be75d7cd337a07ad59b8dbf0794cb0761e6e628349ee04c409e605fe55344716eab5d0a47a62ba2a2d0d367c89a2b4247b1e + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + "ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" @@ -3242,6 +3857,20 @@ __metadata: languageName: node linkType: hard +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: 10c0/2e0c8f386369139029da87819438b20a1ff3fe58372d93fb1a86e9d9344125ace3a806b8ec4eb160a46e64cbc422fe68251869441676af49b7fc441af2389c25 + languageName: node + linkType: hard + "internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" @@ -3365,6 +3994,13 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + "is-generator-function@npm:^1.0.10": version: 1.1.0 resolution: "is-generator-function@npm:1.1.0" @@ -3386,6 +4022,16 @@ __metadata: languageName: node linkType: hard +"is-installed-globally@npm:~0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: "npm:^3.0.0" + is-path-inside: "npm:^3.0.2" + checksum: 10c0/f3e6220ee5824b845c9ed0d4b42c24272701f1f9926936e30c0e676254ca5b34d1b92c6205cae11b283776f9529212c0cdabb20ec280a6451677d6493ca9c22d + languageName: node + linkType: hard + "is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" @@ -3410,6 +4056,13 @@ __metadata: languageName: node linkType: hard +"is-path-inside@npm:^3.0.2": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 + languageName: node + linkType: hard + "is-regex@npm:^1.2.1": version: 1.2.1 resolution: "is-regex@npm:1.2.1" @@ -3438,6 +4091,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + languageName: node + linkType: hard + "is-string@npm:^1.0.7, is-string@npm:^1.1.1": version: 1.1.1 resolution: "is-string@npm:1.1.1" @@ -3468,6 +4128,20 @@ __metadata: languageName: node linkType: hard +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 10c0/4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.2": version: 2.0.2 resolution: "is-weakmap@npm:2.0.2" @@ -3508,6 +4182,13 @@ __metadata: languageName: node linkType: hard +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 10c0/a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f + languageName: node + linkType: hard + "iterator.prototype@npm:^1.1.4": version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" @@ -3556,6 +4237,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: 10c0/e046e05c59ff880ee4ef68902dbdcb6d2f3c5d60c357d4d68647dc23add556c31c0e5f41bdb7e69e793dd63468bd9e085da3636341048ef577b18f5b713877c0 + languageName: node + linkType: hard + "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -3570,6 +4258,13 @@ __metadata: languageName: node linkType: hard +"json-schema@npm:0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 10c0/d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 + languageName: node + linkType: hard + "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -3577,6 +4272,13 @@ __metadata: languageName: node linkType: hard +"json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + "json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -3588,6 +4290,31 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 + languageName: node + linkType: hard + +"jsprim@npm:^2.0.2": + version: 2.0.2 + resolution: "jsprim@npm:2.0.2" + dependencies: + assert-plus: "npm:1.0.0" + extsprintf: "npm:1.3.0" + json-schema: "npm:0.4.0" + verror: "npm:1.10.0" + checksum: 10c0/677be2d41df536c92c6d0114a492ef197084018cfbb1a3e10b1fa1aad889564b2e3a7baa6af7949cc2d73678f42368b0be165a26bd4e4de6883a30dd6a24e98d + languageName: node + linkType: hard + "jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" @@ -3625,6 +4352,13 @@ __metadata: languageName: node linkType: hard +"lazy-ass@npm:^1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: 10c0/4af6cb9a333fbc811268c745f9173fba0f99ecb817cc9c0fae5dbf986b797b730ff525504128f6623b91aba32b02124553a34b0d14de3762b637b74d7233f3bd + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -3745,6 +4479,27 @@ __metadata: languageName: node linkType: hard +"listr2@npm:^3.8.3": + version: 3.14.0 + resolution: "listr2@npm:3.14.0" + dependencies: + cli-truncate: "npm:^2.1.0" + colorette: "npm:^2.0.16" + log-update: "npm:^4.0.0" + p-map: "npm:^4.0.0" + rfdc: "npm:^1.3.0" + rxjs: "npm:^7.5.1" + through: "npm:^2.3.8" + wrap-ansi: "npm:^7.0.0" + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: 10c0/8301703876ad6bf50cd769e9c1169c2aa435951d69d4f54fc202a13c1b6006a9b3afbcf9842440eb22f08beec4d311d365e31d4ed2e0fcabf198d8085b06a421 + languageName: node + linkType: hard + "locate-path@npm:^6.0.0": version: 6.0.0 resolution: "locate-path@npm:6.0.0" @@ -3761,6 +4516,42 @@ __metadata: languageName: node linkType: hard +"lodash.once@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 10c0/46a9a0a66c45dd812fcc016e46605d85ad599fe87d71a02f6736220554b52ffbe82e79a483ad40f52a8a95755b0d1077fba259da8bfb6694a7abbf4a48f1fc04 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: "npm:^4.3.0" + cli-cursor: "npm:^3.1.0" + slice-ansi: "npm:^4.0.0" + wrap-ansi: "npm:^6.2.0" + checksum: 10c0/18b299e230432a156f2535660776406d15ba8bb7817dd3eaadd58004b363756d4ecaabcd658f9949f90b62ea7d3354423be3fdeb7a201ab951ec0e8d6139af86 + languageName: node + linkType: hard + "loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -3824,6 +4615,7 @@ __metadata: "@types/react-dom": "npm:19.1.5" class-variance-authority: "npm:^0.7.1" clsx: "npm:^2.1.1" + cypress: "npm:14.3.3" dotenv-cli: "npm:8.0.0" eslint: "npm:9.27.0" eslint-config-next: "npm:15.3.2" @@ -3844,6 +4636,13 @@ __metadata: languageName: unknown linkType: soft +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + "merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -3861,6 +4660,29 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 + languageName: node + linkType: hard + "minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -3879,7 +4701,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -4036,6 +4858,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^4.0.0": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac + languageName: node + linkType: hard + "oauth4webapi@npm:^3.3.0": version: 3.5.1 resolution: "oauth4webapi@npm:3.5.1" @@ -4125,6 +4956,24 @@ __metadata: languageName: node linkType: hard +"once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -4139,6 +4988,13 @@ __metadata: languageName: node linkType: hard +"ospath@npm:^1.2.2": + version: 1.2.2 + resolution: "ospath@npm:1.2.2" + checksum: 10c0/e485a6ca91964f786163408b093860bf26a9d9704d83ec39ccf463b9f11ea712b780b23b73d1f64536de62c5f66244dd94ed83fc9ffe3c1564dd1eed5cdae923 + languageName: node + linkType: hard + "own-keys@npm:^1.0.1": version: 1.0.1 resolution: "own-keys@npm:1.0.1" @@ -4168,6 +5024,15 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -4184,7 +5049,7 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^3.1.0": +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c @@ -4198,6 +5063,20 @@ __metadata: languageName: node linkType: hard +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 + languageName: node + linkType: hard + +"performance-now@npm:^2.1.0": + version: 2.1.0 + resolution: "performance-now@npm:2.1.0" + checksum: 10c0/22c54de06f269e29f640e0e075207af57de5052a3d15e360c09b9a8663f393f6f45902006c1e71aa8a5a1cdfb1a47fe268826f8496d6425c362f00f5bc3e85d9 + languageName: node + linkType: hard + "picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" @@ -4219,6 +5098,13 @@ __metadata: languageName: node linkType: hard +"pify@npm:^2.2.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc + languageName: node + linkType: hard + "possible-typed-array-names@npm:^1.0.0": version: 1.1.0 resolution: "possible-typed-array-names@npm:1.1.0" @@ -4280,6 +5166,13 @@ __metadata: languageName: node linkType: hard +"pretty-bytes@npm:^5.6.0": + version: 5.6.0 + resolution: "pretty-bytes@npm:5.6.0" + checksum: 10c0/f69f494dcc1adda98dbe0e4a36d301e8be8ff99bfde7a637b2ee2820e7cb583b0fc0f3a63b0e3752c01501185a5cf38602c7be60da41bdf84ef5b70e89c370f3 + languageName: node + linkType: hard + "prisma@npm:6.8.2": version: 6.8.2 resolution: "prisma@npm:6.8.2" @@ -4297,6 +5190,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 + languageName: node + linkType: hard + "prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" @@ -4308,6 +5208,23 @@ __metadata: languageName: node linkType: hard +"proxy-from-env@npm:1.0.0": + version: 1.0.0 + resolution: "proxy-from-env@npm:1.0.0" + checksum: 10c0/c64df9b21f7f820dc882cd6f7f81671840acd28b9688ee3e3e6af47a56ec7f0edcabe5bc96b32b26218b35eeff377bcc27ac27f89b6b21401003e187ff13256f + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.2 + resolution: "pump@npm:3.0.2" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -4315,6 +5232,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.14.0": + version: 6.14.0 + resolution: "qs@npm:6.14.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10c0/8ea5d91bf34f440598ee389d4a7d95820e3b837d3fd9f433871f7924801becaa0cd3b3b4628d49a7784d06a8aea9bc4554d2b6d8d584e2d221dc06238a42909c + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -4428,6 +5354,15 @@ __metadata: languageName: node linkType: hard +"request-progress@npm:^3.0.0": + version: 3.0.0 + resolution: "request-progress@npm:3.0.0" + dependencies: + throttleit: "npm:^1.0.0" + checksum: 10c0/d5dcb7155a738572c8781436f6b418e866066a30eea0f99a9ab26b6f0ed6c13637462bba736357de3899b8d30431ee9202ac956a5f8ccdd0d9d1ed0962000d14 + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -4494,6 +5429,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10c0/8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f + languageName: node + linkType: hard + "reusify@npm:^1.0.4": version: 1.1.0 resolution: "reusify@npm:1.1.0" @@ -4501,6 +5446,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.3.0": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -4510,6 +5462,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.5.1": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/1fcd33d2066ada98ba8f21fcbbcaee9f0b271de1d38dc7f4e256bfbc6ffcdde68c8bfb69093de7eeb46f24b1fb820620bf0223706cff26b4ab99a7ff7b2e2c45 + languageName: node + linkType: hard + "safe-array-concat@npm:^1.1.3": version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" @@ -4523,6 +5484,13 @@ __metadata: languageName: node linkType: hard +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + "safe-push-apply@npm:^1.0.0": version: 1.0.0 resolution: "safe-push-apply@npm:1.0.0" @@ -4544,6 +5512,13 @@ __metadata: languageName: node linkType: hard +"safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + "scheduler@npm:^0.26.0": version: 0.26.0 resolution: "scheduler@npm:0.26.0" @@ -4742,6 +5717,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:^3.0.2": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" @@ -4751,6 +5733,28 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10c0/88083c9d0ca67d09f8b4c78f68833d69cabbb7236b74df5d741ad572bbf022deaf243fa54009cd434350622a1174ab267710fcc80a214ecc7689797fe00cb27c + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10c0/6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 + languageName: node + linkType: hard + "source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" @@ -4758,6 +5762,27 @@ __metadata: languageName: node linkType: hard +"sshpk@npm:^1.18.0": + version: 1.18.0 + resolution: "sshpk@npm:1.18.0" + dependencies: + asn1: "npm:~0.2.3" + assert-plus: "npm:^1.0.0" + bcrypt-pbkdf: "npm:^1.0.0" + dashdash: "npm:^1.12.0" + ecc-jsbn: "npm:~0.1.1" + getpass: "npm:^0.1.1" + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.0.2" + tweetnacl: "npm:~0.14.0" + bin: + sshpk-conv: bin/sshpk-conv + sshpk-sign: bin/sshpk-sign + sshpk-verify: bin/sshpk-verify + checksum: 10c0/e516e34fa981cfceef45fd2e947772cc70dbd57523e5c608e2cd73752ba7f8a99a04df7c3ed751588e8d91956b6f16531590b35d3489980d1c54c38bebcd41b1 + languageName: node + linkType: hard + "stable-hash@npm:^0.0.5": version: 0.0.5 resolution: "stable-hash@npm:0.0.5" @@ -4772,6 +5797,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^4.1.0, string-width@npm:^4.2.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + "string.prototype.includes@npm:^2.0.1": version: 2.0.1 resolution: "string.prototype.includes@npm:2.0.1" @@ -4852,6 +5888,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" @@ -4859,6 +5904,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f + languageName: node + linkType: hard + "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -4891,6 +5943,15 @@ __metadata: languageName: node linkType: hard +"supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -4913,9 +5974,9 @@ __metadata: linkType: hard "tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 + version: 2.2.2 + resolution: "tapable@npm:2.2.2" + checksum: 10c0/8ad130aa705cab6486ad89e42233569a1fb1ff21af115f59cebe9f2b45e9e7995efceaa9cc5062510cdb4ec673b527924b2ab812e3579c55ad659ae92117011e languageName: node linkType: hard @@ -4933,6 +5994,20 @@ __metadata: languageName: node linkType: hard +"throttleit@npm:^1.0.0": + version: 1.0.1 + resolution: "throttleit@npm:1.0.1" + checksum: 10c0/4d41a1bf467646b1aa7bec0123b78452a0e302d7344f6a67e43e68434f0a02ea3ba44df050a40c69adeb9cae3cbf6b36b38cfe94bcc3c4a8243c9b63e38e059b + languageName: node + linkType: hard + +"through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.13": version: 0.2.13 resolution: "tinyglobby@npm:0.2.13" @@ -4943,6 +6018,31 @@ __metadata: languageName: node linkType: hard +"tldts-core@npm:^6.1.86": + version: 6.1.86 + resolution: "tldts-core@npm:6.1.86" + checksum: 10c0/8133c29375f3f99f88fce5f4d62f6ecb9532b106f31e5423b27c1eb1b6e711bd41875184a456819ceaed5c8b94f43911b1ad57e25c6eb86e1fc201228ff7e2af + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.86 + resolution: "tldts@npm:6.1.86" + dependencies: + tldts-core: "npm:^6.1.86" + bin: + tldts: bin/cli.js + checksum: 10c0/27ae7526d9d78cb97b2de3f4d102e0b4321d1ccff0648a7bb0e039ed54acbce86bacdcd9cd3c14310e519b457854e7bafbef1f529f58a1e217a737ced63f0940 + languageName: node + linkType: hard + +"tmp@npm:~0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -4952,6 +6052,24 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^5.0.0": + version: 5.1.2 + resolution: "tough-cookie@npm:5.1.2" + dependencies: + tldts: "npm:^6.1.32" + checksum: 10c0/5f95023a47de0f30a902bba951664b359725597d8adeabc66a0b93a931c3af801e1e697dae4b8c21a012056c0ea88bd2bf4dfe66b2adcf8e2f42cd9796fe0626 + languageName: node + linkType: hard + +"tree-kill@npm:1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 + languageName: node + linkType: hard + "ts-api-utils@npm:^2.1.0": version: 2.1.0 resolution: "ts-api-utils@npm:2.1.0" @@ -4980,6 +6098,15 @@ __metadata: languageName: node linkType: hard +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/4c7a1b813e7beae66fdbf567a65ec6d46313643753d0beefb3c7973d66fcec3a1e7f39759f0a0b4465883499c6dc8b0750ab8b287399af2e583823e40410a17a + languageName: node + linkType: hard + "tw-animate-css@npm:1.3.0": version: 1.3.0 resolution: "tw-animate-css@npm:1.3.0" @@ -4987,6 +6114,13 @@ __metadata: languageName: node linkType: hard +"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": + version: 0.14.5 + resolution: "tweetnacl@npm:0.14.5" + checksum: 10c0/4612772653512c7bc19e61923fbf42903f5e0389ec76a4a1f17195859d114671ea4aa3b734c2029ce7e1fa7e5cc8b80580f67b071ecf0b46b5636d030a0102a2 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -4996,6 +6130,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 + languageName: node + linkType: hard + "typed-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-buffer@npm:1.0.3" @@ -5088,6 +6229,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + languageName: node + linkType: hard + "unrs-resolver@npm:^1.6.2": version: 1.7.2 resolution: "unrs-resolver@npm:1.7.2" @@ -5149,6 +6297,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 10c0/d758e624c707d49f76f7511d75d09a8eda7f2020d231ec52b67ff4896bcf7013be3f9522d8375f57e586e9a2e827f5641c7e06ee46ab9c435fc2b2b2e9de517a + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -5189,6 +6344,26 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: "npm:^1.0.0" + core-util-is: "npm:1.0.2" + extsprintf: "npm:^1.2.0" + checksum: 10c0/37ccdf8542b5863c525128908ac80f2b476eed36a32cb944de930ca1e2e78584cc435c4b9b4c68d0fc13a47b45ff364b4be43aa74f8804f9050140f660fb660d + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": version: 1.1.1 resolution: "which-boxed-primitive@npm:1.1.1" @@ -5268,6 +6443,35 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c + languageName: node + linkType: hard + +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + "yallist@npm:^5.0.0": version: 5.0.0 resolution: "yallist@npm:5.0.0" @@ -5275,6 +6479,16 @@ __metadata: languageName: node linkType: hard +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" From 7ed463f59bf64bf8e1de8ee91460f2ad2fb12938 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 22:59:55 +0200 Subject: [PATCH 03/27] test: helper functions --- cypress/support/commands.ts | 25 +++++++++++++++++++++++++ cypress/support/component.ts | 2 ++ tsconfig.json | 3 ++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 95857ae..59717f5 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -35,3 +35,28 @@ // } // } // } + +Cypress.Commands.add('getBySel', (selector, ...args) => { + return cy.get(`[data-cy=${selector}]`, ...args); +}); + +Cypress.Commands.add('getBySelLike', (selector, ...args) => { + return cy.get(`[data-cy*=${selector}]`, ...args); +}); + +declare global { + namespace Cypress { + interface Chainable { + getBySel( + selector: string, + ...args: any[] + ): Chainable>; + getBySelLike( + selector: string, + ...args: any[] + ): Chainable>; + } + } +} + +export {}; diff --git a/cypress/support/component.ts b/cypress/support/component.ts index 23fbccc..b1f1c92 100644 --- a/cypress/support/component.ts +++ b/cypress/support/component.ts @@ -13,6 +13,8 @@ // https://on.cypress.io/configuration // *********************************************************** +import '@/app/globals.css'; + // Import commands.js using ES2015 syntax: import './commands'; diff --git a/tsconfig.json b/tsconfig.json index c133409..6bd88b8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,7 +20,8 @@ ], "paths": { "@/*": ["./src/*"] - } + }, + "types": ["node", "cypress"] }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] From 71c93afad72ab73ff784ceeb3b388079d11c726f Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 23:00:04 +0200 Subject: [PATCH 04/27] test: icon-button --- src/components/icon-button.cy.tsx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/components/icon-button.cy.tsx diff --git a/src/components/icon-button.cy.tsx b/src/components/icon-button.cy.tsx new file mode 100644 index 0000000..b5a1ff0 --- /dev/null +++ b/src/components/icon-button.cy.tsx @@ -0,0 +1,24 @@ +/* eslint-disable @typescript-eslint/no-unused-expressions */ +import React from 'react'; +import { IconButton } from './icon-button'; +import { faOpenid } from '@fortawesome/free-brands-svg-icons'; + +describe('', () => { + it('renders', () => { + cy.mount(Button); + }); + + it('is clickable', () => { + const onClick = cy.stub(); + cy.mount( + + Button + , + ); + cy.getBySel('icon-button') + .click() + .then(() => { + expect(onClick).to.be.calledOnce; + }); + }); +}); From dc6d3a7161583049c3e2f1d5a042f33cbb2a3d9e Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 23:00:14 +0200 Subject: [PATCH 05/27] test: theme-picker --- src/components/user/theme-picker.cy.tsx | 41 +++++++++++++++++++++++++ src/components/user/theme-picker.tsx | 16 +++++++--- 2 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 src/components/user/theme-picker.cy.tsx diff --git a/src/components/user/theme-picker.cy.tsx b/src/components/user/theme-picker.cy.tsx new file mode 100644 index 0000000..23dc01b --- /dev/null +++ b/src/components/user/theme-picker.cy.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { ThemePicker } from '@/components/user/theme-picker'; +import { ThemeProvider } from '../theme-provider'; + +describe('', () => { + it('renders', () => { + cy.mount(); + }); + + it('toggle open and close', () => { + cy.mount(); + cy.getBySel('theme-picker').click(); + cy.getBySel('theme-picker-content').should('exist'); + cy.get('html').click(); + cy.getBySel('theme-picker-content').should('not.exist'); + }); + + it('enable dark mode', () => { + cy.mount( + + + , + ); + + cy.getBySel('theme-picker').click(); + cy.getBySel('dark-theme').click(); + cy.get('html').should('have.attr', 'data-theme', 'dark'); + }); + + it('enable light mode', () => { + cy.mount( + + + , + ); + + cy.getBySel('theme-picker').click(); + cy.getBySel('light-theme').click(); + cy.get('html').should('have.attr', 'data-theme', 'light'); + }); +}); diff --git a/src/components/user/theme-picker.tsx b/src/components/user/theme-picker.tsx index 5341c3c..3ceca4c 100644 --- a/src/components/user/theme-picker.tsx +++ b/src/components/user/theme-picker.tsx @@ -18,20 +18,26 @@ export function ThemePicker() { return ( - - - setTheme('light')}> + + setTheme('light')} + data-cy='light-theme' + > Light - setTheme('dark')}> + setTheme('dark')} data-cy='dark-theme'> Dark - setTheme('system')}> + setTheme('system')} + data-cy='system-theme' + > System From 99601eaeb76279d6c2f4192e0cc063327c5ea80e Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 23:00:29 +0200 Subject: [PATCH 06/27] chore: add testing workflow --- .github/workflows/tests.yml | 27 +++++++++++++++++++++++++++ cypress.config.ts | 6 ------ 2 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..23c73d1 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,27 @@ +name: tests +on: + push: + branches: + - main + - renovate/* + pull_request: +jobs: + tests: + name: Tests + runs-on: docker + container: + image: cypress/browsers:latest + options: --user 1001 + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + + - name: Enable corepack + run: corepack enable + + - name: Cypress run + uses: https://github.com/cypress-io/github-action@v6 + with: + build: yarn run build + start: yarn start + component: true diff --git a/cypress.config.ts b/cypress.config.ts index 768b87a..d2013c5 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,12 +1,6 @@ import { defineConfig } from 'cypress'; export default defineConfig({ - e2e: { - setupNodeEvents(on, config) { - // implement node event listeners here - }, - }, - component: { devServer: { framework: 'next', From 11d98e63aef6b93e4f749cfb75986e3b73cd7d32 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Tue, 13 May 2025 09:04:37 +0200 Subject: [PATCH 07/27] test(e2e): test login page --- .env.test | 5 ++++ .github/workflows/tests.yml | 2 +- .gitignore | 1 + cypress.config.ts | 6 +++++ cypress/e2e/login.cy.ts | 31 ++++++++++++++++++++++++ package.json | 1 + src/app/login/page.tsx | 5 +++- src/components/labeled-input.tsx | 6 +++-- src/components/user/login-form.tsx | 4 +++ src/components/user/sso-login-button.tsx | 4 ++- 10 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 .env.test create mode 100644 cypress/e2e/login.cy.ts diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..f841afc --- /dev/null +++ b/.env.test @@ -0,0 +1,5 @@ +AUTH_SECRET="auth_secret" +AUTH_URL="http://localhost:3000" +DATABASE_URL="file:./dev.db" +AUTH_AUTHENTIK_ID="id" +AUTH_AUTHENTIK_ISSUER="issuer" \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 23c73d1..5a12acc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,5 +23,5 @@ jobs: uses: https://github.com/cypress-io/github-action@v6 with: build: yarn run build - start: yarn start + start: yarn cypress:start_server component: true diff --git a/.gitignore b/.gitignore index 918f651..5c96c35 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ yarn-error.log* # env files (can opt-in for committing if needed) .env* !.env.example +!.env.test # vercel .vercel diff --git a/cypress.config.ts b/cypress.config.ts index d2013c5..bebdaa5 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -7,4 +7,10 @@ export default defineConfig({ bundler: 'webpack', }, }, + + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, }); diff --git a/cypress/e2e/login.cy.ts b/cypress/e2e/login.cy.ts new file mode 100644 index 0000000..6045354 --- /dev/null +++ b/cypress/e2e/login.cy.ts @@ -0,0 +1,31 @@ +describe('login', () => { + it('loads', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('login-header').should('exist'); + }); + + it('shows login form', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('login-form').should('exist'); + cy.getBySel('email-input').should('exist'); + cy.getBySel('password-input').should('exist'); + cy.getBySel('login-button').should('exist'); + }); + + it('shows sso button', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('sso-login-button_authentik').should('exist'); + }); + + it('allows login', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('email-input').type('test@example.com'); + cy.getBySel('password-input').type('password'); + cy.getBySel('login-button').click(); + cy.url().should('include', '/home'); + }); +}); diff --git a/package.json b/package.json index 4fd2426..1bf1e9f 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "node .next/standalone/server.js", "lint": "next lint", "format": "prettier --write .", + "cypress:start_server": "cp .next/static/ .next/standalone/.next/ -r && dotenv -e .env.test -- node .next/standalone/server.js", "cypress:open": "cypress open", "cypress:run": "cypress run", "prisma:migrate": "dotenv -e .env.local -- prisma migrate dev", diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 1786e82..34d1b07 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -30,7 +30,9 @@ export default async function LoginPage() {
- Login + + Login + @@ -42,6 +44,7 @@ export default async function LoginPage() { key={provider.id} provider={provider.id} providerDisplayName={provider.name} + data-cy={'sso-login-button_' + provider.name.toLowerCase()} /> ))} diff --git a/src/components/labeled-input.tsx b/src/components/labeled-input.tsx index 7a416d4..5ff31f7 100644 --- a/src/components/labeled-input.tsx +++ b/src/components/labeled-input.tsx @@ -7,13 +7,14 @@ export default function LabeledInput({ placeholder, value, name, + ...props }: { type: 'text' | 'email' | 'password'; label: string; placeholder?: string; + name: string; value?: string; - name?: string; -}) { +} & React.InputHTMLAttributes) { return (
@@ -24,6 +25,7 @@ export default function LabeledInput({ defaultValue={value} id={name} name={name} + {...props} />
); diff --git a/src/components/user/login-form.tsx b/src/components/user/login-form.tsx index 7c44f6f..fadf2ea 100644 --- a/src/components/user/login-form.tsx +++ b/src/components/user/login-form.tsx @@ -10,6 +10,7 @@ export default function LoginForm() { return (
{ 'use server'; try { @@ -27,17 +28,20 @@ export default function LoginForm() { label='E-Mail or Username' placeholder='What you are known as.' name='email' + data-cy='email-input' /> diff --git a/src/components/user/sso-login-button.tsx b/src/components/user/sso-login-button.tsx index 064e2eb..ca3b6ce 100644 --- a/src/components/user/sso-login-button.tsx +++ b/src/components/user/sso-login-button.tsx @@ -5,10 +5,11 @@ import { faOpenid } from '@fortawesome/free-brands-svg-icons'; export default function SSOLogin({ provider, providerDisplayName, + ...props }: { provider: string; providerDisplayName: string; -}) { +} & React.HTMLProps) { return ( Date: Tue, 13 May 2025 09:32:21 +0200 Subject: [PATCH 08/27] chore(ci): docker cleanup --- .github/workflows/container-scan.yml | 1 + .github/workflows/docker-build.yml | 1 + .github/workflows/tests.yml | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/.github/workflows/container-scan.yml b/.github/workflows/container-scan.yml index 2a266dd..605688b 100644 --- a/.github/workflows/container-scan.yml +++ b/.github/workflows/container-scan.yml @@ -35,3 +35,4 @@ jobs: run: | docker buildx prune --filter=until=48h -f docker image rm meetup_trivy + docker system prune -af --volumes \ No newline at end of file diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 366e42c..7f6ec63 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -67,3 +67,4 @@ jobs: - name: Clean up Docker run: | docker buildx prune --filter=until=48h -f + docker system prune -af --volumes \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5a12acc..163f9fd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -25,3 +25,7 @@ jobs: build: yarn run build start: yarn cypress:start_server component: true + + - name: Clean up Docker + run: | + docker system prune -af --volumes From 0a0f27bd1f1d8b50ed45a1673998127a8db8ad46 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Tue, 13 May 2025 09:34:29 +0200 Subject: [PATCH 09/27] chore(ci): run e2e tests in workflow --- .github/workflows/tests.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 163f9fd..d867345 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,7 +19,10 @@ jobs: - name: Enable corepack run: corepack enable - - name: Cypress run + - name: Cypress run (e2e) + uses: https://github.com/cypress-io/github-action@v6 + + - name: Cypress run (component) uses: https://github.com/cypress-io/github-action@v6 with: build: yarn run build From 8bfc08d9f910fe1c44984e8d98869fad90cb7c6e Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Tue, 13 May 2025 09:37:41 +0200 Subject: [PATCH 10/27] chore(ci): improve docker cleanup --- .github/workflows/container-scan.yml | 5 ++--- .github/workflows/docker-build.yml | 4 ++-- .github/workflows/tests.yml | 3 ++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/container-scan.yml b/.github/workflows/container-scan.yml index 605688b..0f75364 100644 --- a/.github/workflows/container-scan.yml +++ b/.github/workflows/container-scan.yml @@ -33,6 +33,5 @@ jobs: - name: Clean up Docker run: | - docker buildx prune --filter=until=48h -f - docker image rm meetup_trivy - docker system prune -af --volumes \ No newline at end of file + docker system prune -af --filter "until=24h" + docker volume prune -f diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 7f6ec63..6f77e78 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -66,5 +66,5 @@ jobs: - name: Clean up Docker run: | - docker buildx prune --filter=until=48h -f - docker system prune -af --volumes \ No newline at end of file + docker system prune -af --filter "until=24h" + docker volume prune -f diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d867345..c090f8e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -31,4 +31,5 @@ jobs: - name: Clean up Docker run: | - docker system prune -af --volumes + docker system prune -af --filter "until=24h" + docker volume prune -f From af38d2148c17fe526eb9123bf99d761243c816f5 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Tue, 13 May 2025 10:23:58 +0200 Subject: [PATCH 11/27] fix(tests): start server for e2e tests --- .env.test | 1 + .github/workflows/container-scan.yml | 1 + .github/workflows/docker-build.yml | 1 + .github/workflows/tests.yml | 10 +++++----- package.json | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.env.test b/.env.test index f841afc..4774dc7 100644 --- a/.env.test +++ b/.env.test @@ -1,5 +1,6 @@ AUTH_SECRET="auth_secret" AUTH_URL="http://localhost:3000" +HOSTNAME=0.0.0.0 DATABASE_URL="file:./dev.db" AUTH_AUTHENTIK_ID="id" AUTH_AUTHENTIK_ISSUER="issuer" \ No newline at end of file diff --git a/.github/workflows/container-scan.yml b/.github/workflows/container-scan.yml index 0f75364..5e5cad2 100644 --- a/.github/workflows/container-scan.yml +++ b/.github/workflows/container-scan.yml @@ -32,6 +32,7 @@ jobs: path: trivy-report.json - name: Clean up Docker + if: always() run: | docker system prune -af --filter "until=24h" docker volume prune -f diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 6f77e78..8614ff5 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -65,6 +65,7 @@ jobs: cache-to: type=registry,ref=git.dominikstahl.dev/${{ env.REPO }}:buildcache,mode=max - name: Clean up Docker + if: always() run: | docker system prune -af --filter "until=24h" docker volume prune -f diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c090f8e..085d927 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,6 +21,11 @@ jobs: - name: Cypress run (e2e) uses: https://github.com/cypress-io/github-action@v6 + with: + build: yarn run build + start: yarn cypress:start_server + e2e: true + wait-on: 'http://localhost:3000' - name: Cypress run (component) uses: https://github.com/cypress-io/github-action@v6 @@ -28,8 +33,3 @@ jobs: build: yarn run build start: yarn cypress:start_server component: true - - - name: Clean up Docker - run: | - docker system prune -af --filter "until=24h" - docker volume prune -f diff --git a/package.json b/package.json index 1bf1e9f..3d68e7a 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "start": "node .next/standalone/server.js", "lint": "next lint", "format": "prettier --write .", - "cypress:start_server": "cp .next/static/ .next/standalone/.next/ -r && dotenv -e .env.test -- node .next/standalone/server.js", + "cypress:start_server": "cp public .next/standalone/ -r && cp .next/static/ .next/standalone/.next/ -r && dotenv -e .env.test -- node .next/standalone/server.js", "cypress:open": "cypress open", "cypress:run": "cypress run", "prisma:migrate": "dotenv -e .env.local -- prisma migrate dev", From 28b9737bfae2815883995e2da7cf75b287f47485 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Tue, 13 May 2025 11:38:22 +0200 Subject: [PATCH 12/27] fix(test): fix testing ci workflow and clean up docker --- .env.test | 4 ++-- .github/workflows/container-scan.yml | 2 +- .github/workflows/docker-build.yml | 2 +- .github/workflows/tests.yml | 7 +++---- .gitignore | 5 +++++ cypress/e2e/login.cy.ts | 8 ++++---- package.json | 3 ++- 7 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.env.test b/.env.test index 4774dc7..e8857ff 100644 --- a/.env.test +++ b/.env.test @@ -1,6 +1,6 @@ AUTH_SECRET="auth_secret" -AUTH_URL="http://localhost:3000" -HOSTNAME=0.0.0.0 +AUTH_URL="http://127.0.0.1:3000" +HOSTNAME="127.0.0.1" DATABASE_URL="file:./dev.db" AUTH_AUTHENTIK_ID="id" AUTH_AUTHENTIK_ISSUER="issuer" \ No newline at end of file diff --git a/.github/workflows/container-scan.yml b/.github/workflows/container-scan.yml index 5e5cad2..509e011 100644 --- a/.github/workflows/container-scan.yml +++ b/.github/workflows/container-scan.yml @@ -34,5 +34,5 @@ jobs: - name: Clean up Docker if: always() run: | - docker system prune -af --filter "until=24h" + docker system prune -af docker volume prune -f diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 8614ff5..ba650f4 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -67,5 +67,5 @@ jobs: - name: Clean up Docker if: always() run: | - docker system prune -af --filter "until=24h" + docker system prune -af docker volume prune -f diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 085d927..3220256 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,14 +22,13 @@ jobs: - name: Cypress run (e2e) uses: https://github.com/cypress-io/github-action@v6 with: - build: yarn run build + build: yarn cypress:build start: yarn cypress:start_server e2e: true - wait-on: 'http://localhost:3000' + wait-on: 'http://127.0.0.1:3000' - name: Cypress run (component) uses: https://github.com/cypress-io/github-action@v6 with: - build: yarn run build - start: yarn cypress:start_server component: true + install: false diff --git a/.gitignore b/.gitignore index 5c96c35..a11d29b 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,8 @@ next-env.d.ts /prisma/*.db* src/generated/prisma data + +# cypress +cypress/videos +cypress/screenshots +cypress/coverage diff --git a/cypress/e2e/login.cy.ts b/cypress/e2e/login.cy.ts index 6045354..2c09412 100644 --- a/cypress/e2e/login.cy.ts +++ b/cypress/e2e/login.cy.ts @@ -1,12 +1,12 @@ describe('login', () => { it('loads', () => { - cy.visit('http://localhost:3000/'); + cy.visit('http://127.0.0.1:3000/'); cy.getBySel('login-header').should('exist'); }); it('shows login form', () => { - cy.visit('http://localhost:3000/'); + cy.visit('http://127.0.0.1:3000/'); cy.getBySel('login-form').should('exist'); cy.getBySel('email-input').should('exist'); @@ -15,13 +15,13 @@ describe('login', () => { }); it('shows sso button', () => { - cy.visit('http://localhost:3000/'); + cy.visit('http://127.0.0.1:3000/'); cy.getBySel('sso-login-button_authentik').should('exist'); }); it('allows login', () => { - cy.visit('http://localhost:3000/'); + cy.visit('http://127.0.0.1:3000/'); cy.getBySel('email-input').type('test@example.com'); cy.getBySel('password-input').type('password'); diff --git a/package.json b/package.json index 3d68e7a..38bfef6 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "start": "node .next/standalone/server.js", "lint": "next lint", "format": "prettier --write .", - "cypress:start_server": "cp public .next/standalone/ -r && cp .next/static/ .next/standalone/.next/ -r && dotenv -e .env.test -- node .next/standalone/server.js", + "cypress:build": "prettier --check . && NODE_ENV=test next build", + "cypress:start_server": "cp .env.test .next/standalone && cp public .next/standalone/ -r && cp .next/static/ .next/standalone/.next/ -r && NODE_ENV=test HOSTNAME=\"0.0.0.0\" dotenv -e .env.test -- node .next/standalone/server.js", "cypress:open": "cypress open", "cypress:run": "cypress run", "prisma:migrate": "dotenv -e .env.local -- prisma migrate dev", From 2bfe216b23111fecfd67004047f13fbf5085ab3c Mon Sep 17 00:00:00 2001 From: Micha Date: Tue, 20 May 2025 14:10:09 +0200 Subject: [PATCH 13/27] feat: upload logo files --- src/assets/logo/logo_colored_combo_dark.svg | 17 +++++++++++++++++ src/assets/logo/logo_colored_combo_light.svg | 17 +++++++++++++++++ src/assets/logo/logo_colored_primary_dark.svg | 17 +++++++++++++++++ src/assets/logo/logo_colored_primary_light.svg | 17 +++++++++++++++++ src/assets/logo/logo_colored_secondary_dark.svg | 9 +++++++++ .../logo/logo_colored_secondary_light.svg | 9 +++++++++ src/assets/logo/logo_colored_submark_dark.svg | 10 ++++++++++ src/assets/logo/logo_colored_submark_light.svg | 10 ++++++++++ src/assets/logo/logo_mono_combo_dark.svg | 15 +++++++++++++++ src/assets/logo/logo_mono_combo_light.svg | 15 +++++++++++++++ src/assets/logo/logo_mono_primary_dark.svg | 15 +++++++++++++++ src/assets/logo/logo_mono_primary_light.svg | 15 +++++++++++++++ src/assets/logo/logo_mono_secondary_dark.svg | 9 +++++++++ src/assets/logo/logo_mono_secondary_light.svg | 9 +++++++++ src/assets/logo/logo_mono_submark_dark.svg | 8 ++++++++ src/assets/logo/logo_mono_submark_light.svg | 8 ++++++++ 16 files changed, 200 insertions(+) create mode 100644 src/assets/logo/logo_colored_combo_dark.svg create mode 100644 src/assets/logo/logo_colored_combo_light.svg create mode 100644 src/assets/logo/logo_colored_primary_dark.svg create mode 100644 src/assets/logo/logo_colored_primary_light.svg create mode 100644 src/assets/logo/logo_colored_secondary_dark.svg create mode 100644 src/assets/logo/logo_colored_secondary_light.svg create mode 100644 src/assets/logo/logo_colored_submark_dark.svg create mode 100644 src/assets/logo/logo_colored_submark_light.svg create mode 100644 src/assets/logo/logo_mono_combo_dark.svg create mode 100644 src/assets/logo/logo_mono_combo_light.svg create mode 100644 src/assets/logo/logo_mono_primary_dark.svg create mode 100644 src/assets/logo/logo_mono_primary_light.svg create mode 100644 src/assets/logo/logo_mono_secondary_dark.svg create mode 100644 src/assets/logo/logo_mono_secondary_light.svg create mode 100644 src/assets/logo/logo_mono_submark_dark.svg create mode 100644 src/assets/logo/logo_mono_submark_light.svg diff --git a/src/assets/logo/logo_colored_combo_dark.svg b/src/assets/logo/logo_colored_combo_dark.svg new file mode 100644 index 0000000..645ee3f --- /dev/null +++ b/src/assets/logo/logo_colored_combo_dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_colored_combo_light.svg b/src/assets/logo/logo_colored_combo_light.svg new file mode 100644 index 0000000..f913fb0 --- /dev/null +++ b/src/assets/logo/logo_colored_combo_light.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_colored_primary_dark.svg b/src/assets/logo/logo_colored_primary_dark.svg new file mode 100644 index 0000000..d7fe2c9 --- /dev/null +++ b/src/assets/logo/logo_colored_primary_dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_colored_primary_light.svg b/src/assets/logo/logo_colored_primary_light.svg new file mode 100644 index 0000000..da879f6 --- /dev/null +++ b/src/assets/logo/logo_colored_primary_light.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_colored_secondary_dark.svg b/src/assets/logo/logo_colored_secondary_dark.svg new file mode 100644 index 0000000..ec4e52b --- /dev/null +++ b/src/assets/logo/logo_colored_secondary_dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/logo/logo_colored_secondary_light.svg b/src/assets/logo/logo_colored_secondary_light.svg new file mode 100644 index 0000000..dc6400b --- /dev/null +++ b/src/assets/logo/logo_colored_secondary_light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/logo/logo_colored_submark_dark.svg b/src/assets/logo/logo_colored_submark_dark.svg new file mode 100644 index 0000000..826447c --- /dev/null +++ b/src/assets/logo/logo_colored_submark_dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/logo/logo_colored_submark_light.svg b/src/assets/logo/logo_colored_submark_light.svg new file mode 100644 index 0000000..9eedff7 --- /dev/null +++ b/src/assets/logo/logo_colored_submark_light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/logo/logo_mono_combo_dark.svg b/src/assets/logo/logo_mono_combo_dark.svg new file mode 100644 index 0000000..50becdd --- /dev/null +++ b/src/assets/logo/logo_mono_combo_dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_mono_combo_light.svg b/src/assets/logo/logo_mono_combo_light.svg new file mode 100644 index 0000000..0fd9a63 --- /dev/null +++ b/src/assets/logo/logo_mono_combo_light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_mono_primary_dark.svg b/src/assets/logo/logo_mono_primary_dark.svg new file mode 100644 index 0000000..dc5558f --- /dev/null +++ b/src/assets/logo/logo_mono_primary_dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_mono_primary_light.svg b/src/assets/logo/logo_mono_primary_light.svg new file mode 100644 index 0000000..f27d356 --- /dev/null +++ b/src/assets/logo/logo_mono_primary_light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/logo/logo_mono_secondary_dark.svg b/src/assets/logo/logo_mono_secondary_dark.svg new file mode 100644 index 0000000..68586fd --- /dev/null +++ b/src/assets/logo/logo_mono_secondary_dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/logo/logo_mono_secondary_light.svg b/src/assets/logo/logo_mono_secondary_light.svg new file mode 100644 index 0000000..c0533d1 --- /dev/null +++ b/src/assets/logo/logo_mono_secondary_light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/logo/logo_mono_submark_dark.svg b/src/assets/logo/logo_mono_submark_dark.svg new file mode 100644 index 0000000..8d49048 --- /dev/null +++ b/src/assets/logo/logo_mono_submark_dark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/logo/logo_mono_submark_light.svg b/src/assets/logo/logo_mono_submark_light.svg new file mode 100644 index 0000000..a6aabd8 --- /dev/null +++ b/src/assets/logo/logo_mono_submark_light.svg @@ -0,0 +1,8 @@ + + + + + + + + From e1925da836d369abfaad5ad303b5cf914b15a8ee Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 20 May 2025 16:01:04 +0000 Subject: [PATCH 14/27] fix(deps): update radix-ui-primitives monorepo --- yarn.lock | 216 +++++++++++++++++++++++++++--------------------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1125f9a..2679eea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -743,11 +743,11 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-arrow@npm:1.1.6": - version: 1.1.6 - resolution: "@radix-ui/react-arrow@npm:1.1.6" +"@radix-ui/react-arrow@npm:1.1.7": + version: 1.1.7 + resolution: "@radix-ui/react-arrow@npm:1.1.7" dependencies: - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -758,18 +758,18 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/7a17b719d38e9013dc9e7eafd24786d3bc890d84fa5f092a567d014429a26d3c10777ae41db6dc080980d9f8b3bad2d625ce6e0a370cf533da59607d97e45757 + checksum: 10c0/c3b46766238b3ee2a394d8806a5141432361bf1425110c9f0dcf480bda4ebd304453a53f294b5399c6ee3ccfcae6fd544921fd01ddc379cf5942acdd7168664b languageName: node linkType: hard -"@radix-ui/react-collection@npm:1.1.6": - version: 1.1.6 - resolution: "@radix-ui/react-collection@npm:1.1.6" +"@radix-ui/react-collection@npm:1.1.7": + version: 1.1.7 + resolution: "@radix-ui/react-collection@npm:1.1.7" dependencies: "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" - "@radix-ui/react-primitive": "npm:2.1.2" - "@radix-ui/react-slot": "npm:1.2.2" + "@radix-ui/react-primitive": "npm:2.1.3" + "@radix-ui/react-slot": "npm:1.2.3" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -780,7 +780,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/eb3faf1cdc55d0dca7bc0567254a5f4c0ee271a836a1d89a68f36950f12bbd10260b039722c46af7449a8282d833d5afcd6b7745da27be72662ffb0d4108211c + checksum: 10c0/fa321a7300095508491f75414f02b243f0c3f179dc0728cfd115e2ea9f6f48f1516532b59f526d9ac81bbab63cd98a052074b4703ec0b9428fac945ebabec5fd languageName: node linkType: hard @@ -823,13 +823,13 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dismissable-layer@npm:1.1.9": - version: 1.1.9 - resolution: "@radix-ui/react-dismissable-layer@npm:1.1.9" +"@radix-ui/react-dismissable-layer@npm:1.1.10": + version: 1.1.10 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.10" dependencies: "@radix-ui/primitive": "npm:1.1.2" "@radix-ui/react-compose-refs": "npm:1.1.2" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" "@radix-ui/react-use-escape-keydown": "npm:1.1.1" peerDependencies: @@ -842,20 +842,20 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/945332ce097e86ac6904b12012ac9c4bb8b539688752f43c25de911fce2dd68b4f0a45b31df6eb8d038246ec0be897af988fef90ad9e12db126e93736dfa8b76 + checksum: 10c0/21a2d03689f5e06586135b6a735937ef14f2571fdf6044a3019bc3f9fa368a9400b5a9b631f43e8ad3682693449e369ffa7cc8642764246ce18ebe7359a45faf languageName: node linkType: hard "@radix-ui/react-dropdown-menu@npm:^2.1.14": - version: 2.1.14 - resolution: "@radix-ui/react-dropdown-menu@npm:2.1.14" + version: 2.1.15 + resolution: "@radix-ui/react-dropdown-menu@npm:2.1.15" dependencies: "@radix-ui/primitive": "npm:1.1.2" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" "@radix-ui/react-id": "npm:1.1.1" - "@radix-ui/react-menu": "npm:2.1.14" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-menu": "npm:2.1.15" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-controllable-state": "npm:1.2.2" peerDependencies: "@types/react": "*" @@ -867,7 +867,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/c590fff74c2ac1022abc3b6e87fed922d34db7513488119a212eb23a1ae8951d2be45f0124dde7b092f038e452f890d0d279b9da24311aebdb652e650dfce074 + checksum: 10c0/ea5e7c98d38e7a2e66e2a77057471f1309f414dc0013042241d33e09e1d7c3844908f845d47bd34cd5ae78d344973b381b8e5de890e7546d799c1960740b24b6 languageName: node linkType: hard @@ -884,12 +884,12 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-focus-scope@npm:1.1.6": - version: 1.1.6 - resolution: "@radix-ui/react-focus-scope@npm:1.1.6" +"@radix-ui/react-focus-scope@npm:1.1.7": + version: 1.1.7 + resolution: "@radix-ui/react-focus-scope@npm:1.1.7" dependencies: "@radix-ui/react-compose-refs": "npm:1.1.2" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" peerDependencies: "@types/react": "*" @@ -901,22 +901,22 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/c4a3d12e2c45908113e3a2b9bd59666c2bcc40bde611133a5d67c8d248ddd7bfdfee66c7150dceb1acc6b894ebd44da1b08fab116bbf00fb7bb047be1ec0ec8d + checksum: 10c0/8a6071331bdeeb79b223463de75caf759b8ad19339cab838e537b8dbb2db236891a1f4df252445c854d375d43d9d315dfcce0a6b01553a2984ec372bb8f1300e languageName: node linkType: hard "@radix-ui/react-hover-card@npm:^1.1.13": - version: 1.1.13 - resolution: "@radix-ui/react-hover-card@npm:1.1.13" + version: 1.1.14 + resolution: "@radix-ui/react-hover-card@npm:1.1.14" dependencies: "@radix-ui/primitive": "npm:1.1.2" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" - "@radix-ui/react-dismissable-layer": "npm:1.1.9" - "@radix-ui/react-popper": "npm:1.2.6" - "@radix-ui/react-portal": "npm:1.1.8" + "@radix-ui/react-dismissable-layer": "npm:1.1.10" + "@radix-ui/react-popper": "npm:1.2.7" + "@radix-ui/react-portal": "npm:1.1.9" "@radix-ui/react-presence": "npm:1.1.4" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-controllable-state": "npm:1.2.2" peerDependencies: "@types/react": "*" @@ -928,7 +928,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/a8ff01305f7a12ef90fe27a30f2e10bb7a5fa00e79f72db6feaf58c180af611e419924be916ff2726dbe3ad9f173bfe69427ed1a507e54f9b0e63862664c1a5f + checksum: 10c0/f352bab22dd81ac2ef1140ca1a8426913010851becd03df9d8b8476bdf6ef7001f0559f6a61c4f98ff8033d6cedacd4c86ad47e4c391385254430e266329a2a0 languageName: node linkType: hard @@ -948,10 +948,10 @@ __metadata: linkType: hard "@radix-ui/react-label@npm:^2.1.6": - version: 2.1.6 - resolution: "@radix-ui/react-label@npm:2.1.6" + version: 2.1.7 + resolution: "@radix-ui/react-label@npm:2.1.7" dependencies: - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -962,29 +962,29 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/1c94bd363b965aeeb6010539399da4bb894c29bcb777d11f6e9a0ab22c43621be59529f1a23cfbda1f3c0ba3d8a6fdd2a50200b6e9b5839a3fbf0c2299de163e + checksum: 10c0/d8c81411d5327b6db5cbf4b900bfcc52030315539911701cf8d82b4970aed80cbd66df5b62d2242859572c666cf4b0e147a8b39dc3c04bd024a4b4405e1183fe languageName: node linkType: hard -"@radix-ui/react-menu@npm:2.1.14": - version: 2.1.14 - resolution: "@radix-ui/react-menu@npm:2.1.14" +"@radix-ui/react-menu@npm:2.1.15": + version: 2.1.15 + resolution: "@radix-ui/react-menu@npm:2.1.15" dependencies: "@radix-ui/primitive": "npm:1.1.2" - "@radix-ui/react-collection": "npm:1.1.6" + "@radix-ui/react-collection": "npm:1.1.7" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" "@radix-ui/react-direction": "npm:1.1.1" - "@radix-ui/react-dismissable-layer": "npm:1.1.9" + "@radix-ui/react-dismissable-layer": "npm:1.1.10" "@radix-ui/react-focus-guards": "npm:1.1.2" - "@radix-ui/react-focus-scope": "npm:1.1.6" + "@radix-ui/react-focus-scope": "npm:1.1.7" "@radix-ui/react-id": "npm:1.1.1" - "@radix-ui/react-popper": "npm:1.2.6" - "@radix-ui/react-portal": "npm:1.1.8" + "@radix-ui/react-popper": "npm:1.2.7" + "@radix-ui/react-portal": "npm:1.1.9" "@radix-ui/react-presence": "npm:1.1.4" - "@radix-ui/react-primitive": "npm:2.1.2" - "@radix-ui/react-roving-focus": "npm:1.1.9" - "@radix-ui/react-slot": "npm:1.2.2" + "@radix-ui/react-primitive": "npm:2.1.3" + "@radix-ui/react-roving-focus": "npm:1.1.10" + "@radix-ui/react-slot": "npm:1.2.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" aria-hidden: "npm:^1.2.4" react-remove-scroll: "npm:^2.6.3" @@ -998,19 +998,19 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/88d5fd986b8d56ce587109507d272f726fd6f45c42886559c1240e868890fc91e3f15e889b69a5db23851c6b576f606cb80640ada6b728261073ee6914fcb422 + checksum: 10c0/09306b1856448d0310fdcb732c159c7d1bddd0d2da6706c1567e0218f277597d8203b1138107a40665620bea397c15ec6e353295dfc5752a45c08daf552ad533 languageName: node linkType: hard -"@radix-ui/react-popper@npm:1.2.6": - version: 1.2.6 - resolution: "@radix-ui/react-popper@npm:1.2.6" +"@radix-ui/react-popper@npm:1.2.7": + version: 1.2.7 + resolution: "@radix-ui/react-popper@npm:1.2.7" dependencies: "@floating-ui/react-dom": "npm:^2.0.0" - "@radix-ui/react-arrow": "npm:1.1.6" + "@radix-ui/react-arrow": "npm:1.1.7" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" "@radix-ui/react-use-layout-effect": "npm:1.1.1" "@radix-ui/react-use-rect": "npm:1.1.1" @@ -1026,15 +1026,15 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/b166c609a9475ffcdc65a0fd4bb9cf2cd67e7d24240dba9b954ec97496970783966e5e9f52cf9b12aff363d24f5112970e80813cf0eb8d4a1d989afdad59e0d8 + checksum: 10c0/fb901329df5432225b0be08778a89faaa25c40e8042f0f181218e385cae26811420b6e4b1effc70955393e09d83cd462d1b0eb6ca6d33282d76692972b602ad8 languageName: node linkType: hard -"@radix-ui/react-portal@npm:1.1.8": - version: 1.1.8 - resolution: "@radix-ui/react-portal@npm:1.1.8" +"@radix-ui/react-portal@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-portal@npm:1.1.9" dependencies: - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-layout-effect": "npm:1.1.1" peerDependencies: "@types/react": "*" @@ -1046,7 +1046,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/53590f70a2b0280cab07cb1354d0061889ecff06f04f2518ef562a30b7cea67093a1d4e2d58a6338e8d004646dd72e1211a2d47e3e0b3fc2d77317d79187d2f2 + checksum: 10c0/45b432497c722720c72c493a29ef6085bc84b50eafe79d48b45c553121b63e94f9cdb77a3a74b9c49126f8feb3feee009fe400d48b7759d3552396356b192cd7 languageName: node linkType: hard @@ -1070,11 +1070,11 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-primitive@npm:2.1.2": - version: 2.1.2 - resolution: "@radix-ui/react-primitive@npm:2.1.2" +"@radix-ui/react-primitive@npm:2.1.3": + version: 2.1.3 + resolution: "@radix-ui/react-primitive@npm:2.1.3" dependencies: - "@radix-ui/react-slot": "npm:1.2.2" + "@radix-ui/react-slot": "npm:1.2.3" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -1085,21 +1085,21 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/0c1b4b5d2f225dc85e02a915b362e38383eb3bd6d150a72cb9183485c066156caad1a9f530202b84a5ad900d365302c0843fdcabb13100808872b3655709099d + checksum: 10c0/fdff9b84913bb4172ef6d3af7442fca5f9bba5f2709cba08950071f819d7057aec3a4a2d9ef44cf9cbfb8014d02573c6884a04cff175895823aaef809ebdb034 languageName: node linkType: hard -"@radix-ui/react-roving-focus@npm:1.1.9": - version: 1.1.9 - resolution: "@radix-ui/react-roving-focus@npm:1.1.9" +"@radix-ui/react-roving-focus@npm:1.1.10": + version: 1.1.10 + resolution: "@radix-ui/react-roving-focus@npm:1.1.10" dependencies: "@radix-ui/primitive": "npm:1.1.2" - "@radix-ui/react-collection": "npm:1.1.6" + "@radix-ui/react-collection": "npm:1.1.7" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" "@radix-ui/react-direction": "npm:1.1.1" "@radix-ui/react-id": "npm:1.1.1" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" "@radix-ui/react-use-controllable-state": "npm:1.2.2" peerDependencies: @@ -1112,13 +1112,13 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/7794036199245d3d153f2c3f79fc0f36ba1eec81ba9dca28927c4693f3cca1ddbd3e54d60372cd506c82b826371519d9dc5280ffbe8a3cb0220e141e37718d46 + checksum: 10c0/afc8faed4d43807cb6b9e163995f5224fc11d4480aa8033274c858a2fc01f04d190e9fbf209db21be4f6d6f48689698ab900a8bd39e453ef55d00d58c2b840bb languageName: node linkType: hard "@radix-ui/react-scroll-area@npm:^1.2.8": - version: 1.2.8 - resolution: "@radix-ui/react-scroll-area@npm:1.2.8" + version: 1.2.9 + resolution: "@radix-ui/react-scroll-area@npm:1.2.9" dependencies: "@radix-ui/number": "npm:1.1.1" "@radix-ui/primitive": "npm:1.1.2" @@ -1126,7 +1126,7 @@ __metadata: "@radix-ui/react-context": "npm:1.1.2" "@radix-ui/react-direction": "npm:1.1.1" "@radix-ui/react-presence": "npm:1.1.4" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" "@radix-ui/react-use-layout-effect": "npm:1.1.1" peerDependencies: @@ -1139,33 +1139,33 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/4f7f7ab06fbb138b50d4aeecf70d482b990833a4e4a5dab394b0bea72a298a83b25aaf1609d754932018a71e1fdb34a7f3443bc28d40c720814a1bf37835e6cd + checksum: 10c0/1e1d19be14b1b3ce9410485539d25fc00f82416b0f77d47d3db5a0bb077fb7d5f1e6ff99c757bad2bb313b5d386562f35beb06cbe36fe0a4a5723745e4da69be languageName: node linkType: hard "@radix-ui/react-select@npm:^2.2.4": - version: 2.2.4 - resolution: "@radix-ui/react-select@npm:2.2.4" + version: 2.2.5 + resolution: "@radix-ui/react-select@npm:2.2.5" dependencies: "@radix-ui/number": "npm:1.1.1" "@radix-ui/primitive": "npm:1.1.2" - "@radix-ui/react-collection": "npm:1.1.6" + "@radix-ui/react-collection": "npm:1.1.7" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" "@radix-ui/react-direction": "npm:1.1.1" - "@radix-ui/react-dismissable-layer": "npm:1.1.9" + "@radix-ui/react-dismissable-layer": "npm:1.1.10" "@radix-ui/react-focus-guards": "npm:1.1.2" - "@radix-ui/react-focus-scope": "npm:1.1.6" + "@radix-ui/react-focus-scope": "npm:1.1.7" "@radix-ui/react-id": "npm:1.1.1" - "@radix-ui/react-popper": "npm:1.2.6" - "@radix-ui/react-portal": "npm:1.1.8" - "@radix-ui/react-primitive": "npm:2.1.2" - "@radix-ui/react-slot": "npm:1.2.2" + "@radix-ui/react-popper": "npm:1.2.7" + "@radix-ui/react-portal": "npm:1.1.9" + "@radix-ui/react-primitive": "npm:2.1.3" + "@radix-ui/react-slot": "npm:1.2.3" "@radix-ui/react-use-callback-ref": "npm:1.1.1" "@radix-ui/react-use-controllable-state": "npm:1.2.2" "@radix-ui/react-use-layout-effect": "npm:1.1.1" "@radix-ui/react-use-previous": "npm:1.1.1" - "@radix-ui/react-visually-hidden": "npm:1.2.2" + "@radix-ui/react-visually-hidden": "npm:1.2.3" aria-hidden: "npm:^1.2.4" react-remove-scroll: "npm:^2.6.3" peerDependencies: @@ -1178,15 +1178,15 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/96b64414abd6dab5f12cdc27bec21b08af2089a89226e84f7fef657e40a46e13465dac2338bc818ff7883b2ef2027efb644759f5be48d955655b059bd0363ff2 + checksum: 10c0/9571a210b969446a290022447dc7bcfa5bdd90fa18b5e1ace03482d423cd75303d2353b17187b1110d93bc06efa11467f369c3f22a9daab34973c16b64547f27 languageName: node linkType: hard "@radix-ui/react-separator@npm:^1.1.6": - version: 1.1.6 - resolution: "@radix-ui/react-separator@npm:1.1.6" + version: 1.1.7 + resolution: "@radix-ui/react-separator@npm:1.1.7" dependencies: - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -1197,13 +1197,13 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/498c581d6f712a1a2a5f956fd415c41e85769b0891cf8253fcc84bacb3e344dc4c0b8fa416283b46d04d5d7511044bc41bc448591b2bb39338864f277d915d16 + checksum: 10c0/32c0eb4fe018397efbe580542e6e33fdc09b76b96395b2bb4c55da7b6d49224b18f46143bdaf9eb6cb01e166c459fb77508a81d20a591a9034949acee5d171d9 languageName: node linkType: hard -"@radix-ui/react-slot@npm:1.2.2, @radix-ui/react-slot@npm:^1.2.2": - version: 1.2.2 - resolution: "@radix-ui/react-slot@npm:1.2.2" +"@radix-ui/react-slot@npm:1.2.3, @radix-ui/react-slot@npm:^1.2.2": + version: 1.2.3 + resolution: "@radix-ui/react-slot@npm:1.2.3" dependencies: "@radix-ui/react-compose-refs": "npm:1.1.2" peerDependencies: @@ -1212,18 +1212,18 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/74489f5ad11b17444560a1cdd664c01308206ce5cb9fcd46121b45281ece20273948479711411223c1081f709c15409242d51ca6cc57ff81f6335d70e0cbe0b5 + checksum: 10c0/5913aa0d760f505905779515e4b1f0f71a422350f077cc8d26d1aafe53c97f177fec0e6d7fbbb50d8b5e498aa9df9f707ca75ae3801540c283b26b0136138eef languageName: node linkType: hard "@radix-ui/react-switch@npm:^1.2.4": - version: 1.2.4 - resolution: "@radix-ui/react-switch@npm:1.2.4" + version: 1.2.5 + resolution: "@radix-ui/react-switch@npm:1.2.5" dependencies: "@radix-ui/primitive": "npm:1.1.2" "@radix-ui/react-compose-refs": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" "@radix-ui/react-use-controllable-state": "npm:1.2.2" "@radix-ui/react-use-previous": "npm:1.1.1" "@radix-ui/react-use-size": "npm:1.1.1" @@ -1237,21 +1237,21 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/53f1f985dd0ed7b28b108b8075078912fed1496313f23270f0be3234fedebb5df4b4b33f2cb1a9c5670d48a38200fc4e1f09db2608c3e94d1de61339ac2d2c53 + checksum: 10c0/7149649b852adaba5a65d6ac865c0f33ba7ec8282c72eb17286df9e4b67d4bf1eaa7eb3b4ceeb64c5ecea65fe439b7ed6c9d9829d5baa2b757b8db630e7b87ff languageName: node linkType: hard "@radix-ui/react-tabs@npm:^1.1.11": - version: 1.1.11 - resolution: "@radix-ui/react-tabs@npm:1.1.11" + version: 1.1.12 + resolution: "@radix-ui/react-tabs@npm:1.1.12" dependencies: "@radix-ui/primitive": "npm:1.1.2" "@radix-ui/react-context": "npm:1.1.2" "@radix-ui/react-direction": "npm:1.1.1" "@radix-ui/react-id": "npm:1.1.1" "@radix-ui/react-presence": "npm:1.1.4" - "@radix-ui/react-primitive": "npm:2.1.2" - "@radix-ui/react-roving-focus": "npm:1.1.9" + "@radix-ui/react-primitive": "npm:2.1.3" + "@radix-ui/react-roving-focus": "npm:1.1.10" "@radix-ui/react-use-controllable-state": "npm:1.2.2" peerDependencies: "@types/react": "*" @@ -1263,7 +1263,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/eebecb25f4e245c4abf0968b86bb4ee468965e4d3524d48147298715cd54a58dab8b813cd65ed12ceb2a3e1410f80097e2b0532da01de79e78fb398e002578a3 + checksum: 10c0/ca171a3170d746fe2c72cdbda4332a0267f887545142a98befa21895ff7198f0541405ece55c701ef4c06bdf45c92c01bf07a554eb57c2f7a1d972f47c636495 languageName: node linkType: hard @@ -1382,11 +1382,11 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-visually-hidden@npm:1.2.2": - version: 1.2.2 - resolution: "@radix-ui/react-visually-hidden@npm:1.2.2" +"@radix-ui/react-visually-hidden@npm:1.2.3": + version: 1.2.3 + resolution: "@radix-ui/react-visually-hidden@npm:1.2.3" dependencies: - "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -1397,7 +1397,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/464b955cbe66ae5de819af5b7c2796eba77f84ab677eade0aa57e98ea588ef5d189c822e7bee0e18608864d5d262a1c70b5dda487269219f147a2a7cea625292 + checksum: 10c0/cf86a37f1cbee50a964056f3dc4f6bb1ee79c76daa321f913aa20ff3e1ccdfafbf2b114d7bb616aeefc7c4b895e6ca898523fdb67710d89bd5d8edb739a0d9b6 languageName: node linkType: hard From 64c4b91d8a9d377b0fa7a59f170ab3938e5d9e0c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 20 May 2025 18:01:06 +0000 Subject: [PATCH 15/27] chore(deps): update dependency @types/node to v22.15.20 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 85ca294..b3329cc 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@eslint/eslintrc": "3.3.1", "@tailwindcss/postcss": "4.1.7", - "@types/node": "22.15.19", + "@types/node": "22.15.20", "@types/react": "19.1.4", "@types/react-dom": "19.1.5", "dotenv-cli": "8.0.0", diff --git a/yarn.lock b/yarn.lock index 2679eea..bf8c442 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1634,12 +1634,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:22.15.19": - version: 22.15.19 - resolution: "@types/node@npm:22.15.19" +"@types/node@npm:22.15.20": + version: 22.15.20 + resolution: "@types/node@npm:22.15.20" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/8ef52fa1a91b1c8891616d46f3921a9f3c65ad1c6bb62db7899c8c28643c13bf9d607a2403b1e5aceb3e6fa6749efc9e0ba5c39618a4872da6946437b0edbfbe + checksum: 10c0/5137ff16b3090e24953e19dd14d69e7dddbb2ad01f6d7f5fdda3c1d9b3bfa18acd72317701cf983fe591919622e94cab846487b2b0104282ca006522274c58da languageName: node linkType: hard @@ -3819,7 +3819,7 @@ __metadata: "@radix-ui/react-switch": "npm:^1.2.4" "@radix-ui/react-tabs": "npm:^1.1.11" "@tailwindcss/postcss": "npm:4.1.7" - "@types/node": "npm:22.15.19" + "@types/node": "npm:22.15.20" "@types/react": "npm:19.1.4" "@types/react-dom": "npm:19.1.5" class-variance-authority: "npm:^0.7.1" From 44b3f09c484fa8df6ecc758682f34d947474ccff Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 21 May 2025 00:00:48 +0000 Subject: [PATCH 16/27] chore(deps): update dependency @types/node to v22.15.21 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b3329cc..37849ca 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@eslint/eslintrc": "3.3.1", "@tailwindcss/postcss": "4.1.7", - "@types/node": "22.15.20", + "@types/node": "22.15.21", "@types/react": "19.1.4", "@types/react-dom": "19.1.5", "dotenv-cli": "8.0.0", diff --git a/yarn.lock b/yarn.lock index bf8c442..9639608 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1634,12 +1634,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:22.15.20": - version: 22.15.20 - resolution: "@types/node@npm:22.15.20" +"@types/node@npm:22.15.21": + version: 22.15.21 + resolution: "@types/node@npm:22.15.21" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/5137ff16b3090e24953e19dd14d69e7dddbb2ad01f6d7f5fdda3c1d9b3bfa18acd72317701cf983fe591919622e94cab846487b2b0104282ca006522274c58da + checksum: 10c0/f092bbccda2131c2b2c8f720338080aa0ef1d928f5f1062c03954a4f7dafa7ee3ed29bc3e51bd4e2584473b3d943c637a2b39ad7174898970818270187cf10c1 languageName: node linkType: hard @@ -3819,7 +3819,7 @@ __metadata: "@radix-ui/react-switch": "npm:^1.2.4" "@radix-ui/react-tabs": "npm:^1.1.11" "@tailwindcss/postcss": "npm:4.1.7" - "@types/node": "npm:22.15.20" + "@types/node": "npm:22.15.21" "@types/react": "npm:19.1.4" "@types/react-dom": "npm:19.1.5" class-variance-authority: "npm:^0.7.1" From 0ec5dc3bb61c41a10aa89ba62aeb41b7b96ad70c Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Thu, 8 May 2025 18:23:24 +0200 Subject: [PATCH 17/27] test: initialize cypress e2e testing library --- cypress.config.ts | 16 + cypress/fixtures/example.json | 5 + cypress/support/commands.ts | 37 + cypress/support/component-index.html | 14 + cypress/support/component.ts | 36 + cypress/support/e2e.ts | 17 + package.json | 5 +- yarn.lock | 1358 ++++++++++++++++++++++++-- 8 files changed, 1420 insertions(+), 68 deletions(-) create mode 100644 cypress.config.ts create mode 100644 cypress/fixtures/example.json create mode 100644 cypress/support/commands.ts create mode 100644 cypress/support/component-index.html create mode 100644 cypress/support/component.ts create mode 100644 cypress/support/e2e.ts diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 0000000..768b87a --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, + + component: { + devServer: { + framework: 'next', + bundler: 'webpack', + }, + }, +}); diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts new file mode 100644 index 0000000..95857ae --- /dev/null +++ b/cypress/support/commands.ts @@ -0,0 +1,37 @@ +/// +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +// +// declare global { +// namespace Cypress { +// interface Chainable { +// login(email: string, password: string): Chainable +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } diff --git a/cypress/support/component-index.html b/cypress/support/component-index.html new file mode 100644 index 0000000..2cbfac6 --- /dev/null +++ b/cypress/support/component-index.html @@ -0,0 +1,14 @@ + + + + + + + Components App + +
+ + +
+ + diff --git a/cypress/support/component.ts b/cypress/support/component.ts new file mode 100644 index 0000000..23fbccc --- /dev/null +++ b/cypress/support/component.ts @@ -0,0 +1,36 @@ +// *********************************************************** +// This example support/component.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; + +import { mount } from 'cypress/react'; + +// Augment the Cypress namespace to include type definitions for +// your custom command. +// Alternatively, can be defined in cypress/support/component.d.ts +// with a at the top of your spec. +declare global { + namespace Cypress { + interface Chainable { + mount: typeof mount; + } + } +} + +Cypress.Commands.add('mount', mount); + +// Example use: +// cy.mount() diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 0000000..e66558e --- /dev/null +++ b/cypress/support/e2e.ts @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/e2e.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; diff --git a/package.json b/package.json index 37849ca..5f6038f 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,11 @@ "scripts": { "dev": "next dev --turbopack", "build": "prettier --check . && next build", - "start": "next start", + "start": "node .next/standalone/server.js", "lint": "next lint", "format": "prettier --write .", + "cypress:open": "cypress open", + "cypress:run": "cypress run", "prisma:migrate": "dotenv -e .env.local -- prisma migrate dev", "prisma:generate": "dotenv -e .env.local -- prisma generate", "prisma:studio": "dotenv -e .env.local -- prisma studio", @@ -47,6 +49,7 @@ "@types/node": "22.15.21", "@types/react": "19.1.4", "@types/react-dom": "19.1.5", + "cypress": "14.3.3", "dotenv-cli": "8.0.0", "eslint": "9.27.0", "eslint-config-next": "15.3.2", diff --git a/yarn.lock b/yarn.lock index 9639608..d4dd356 100644 --- a/yarn.lock +++ b/yarn.lock @@ -57,6 +57,42 @@ __metadata: languageName: node linkType: hard +"@cypress/request@npm:^3.0.8": + version: 3.0.8 + resolution: "@cypress/request@npm:3.0.8" + dependencies: + aws-sign2: "npm:~0.7.0" + aws4: "npm:^1.8.0" + caseless: "npm:~0.12.0" + combined-stream: "npm:~1.0.6" + extend: "npm:~3.0.2" + forever-agent: "npm:~0.6.1" + form-data: "npm:~4.0.0" + http-signature: "npm:~1.4.0" + is-typedarray: "npm:~1.0.0" + isstream: "npm:~0.1.2" + json-stringify-safe: "npm:~5.0.1" + mime-types: "npm:~2.1.19" + performance-now: "npm:^2.1.0" + qs: "npm:6.14.0" + safe-buffer: "npm:^5.1.2" + tough-cookie: "npm:^5.0.0" + tunnel-agent: "npm:^0.6.0" + uuid: "npm:^8.3.2" + checksum: 10c0/76cabf6ad64df224bab9b66869f71c4fb63315f9775ef1769da9da6c8d6d470899bee7f5b800379020efb6c7f37fd16a4a8e25c61319e14cd720bd3f606a38fd + languageName: node + linkType: hard + +"@cypress/xvfb@npm:^1.2.4": + version: 1.2.4 + resolution: "@cypress/xvfb@npm:1.2.4" + dependencies: + debug: "npm:^3.1.0" + lodash.once: "npm:^4.1.1" + checksum: 10c0/1bf6224b244f6093033d77f04f6bef719280542656de063cf8ac3f38957b62aa633e6918af0b9673a8bf0123b42a850db51d9729a3ae3da885ac179bc7fc1d26 + languageName: node + linkType: hard + "@emnapi/core@npm:^1.4.3": version: 1.4.3 resolution: "@emnapi/core@npm:1.4.3" @@ -67,7 +103,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/runtime@npm:^1.4.0, @emnapi/runtime@npm:^1.4.3": +"@emnapi/runtime@npm:^1.4.3": version: 1.4.3 resolution: "@emnapi/runtime@npm:1.4.3" dependencies: @@ -302,9 +338,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-darwin-arm64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-darwin-arm64@npm:0.34.1" +"@img/sharp-darwin-arm64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-darwin-arm64@npm:0.34.2" dependencies: "@img/sharp-libvips-darwin-arm64": "npm:1.1.0" dependenciesMeta: @@ -314,9 +350,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-darwin-x64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-darwin-x64@npm:0.34.1" +"@img/sharp-darwin-x64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-darwin-x64@npm:0.34.2" dependencies: "@img/sharp-libvips-darwin-x64": "npm:1.1.0" dependenciesMeta: @@ -389,9 +425,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-arm64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-linux-arm64@npm:0.34.1" +"@img/sharp-linux-arm64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-linux-arm64@npm:0.34.2" dependencies: "@img/sharp-libvips-linux-arm64": "npm:1.1.0" dependenciesMeta: @@ -401,9 +437,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-arm@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-linux-arm@npm:0.34.1" +"@img/sharp-linux-arm@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-linux-arm@npm:0.34.2" dependencies: "@img/sharp-libvips-linux-arm": "npm:1.1.0" dependenciesMeta: @@ -413,9 +449,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-s390x@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-linux-s390x@npm:0.34.1" +"@img/sharp-linux-s390x@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-linux-s390x@npm:0.34.2" dependencies: "@img/sharp-libvips-linux-s390x": "npm:1.1.0" dependenciesMeta: @@ -425,9 +461,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-x64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-linux-x64@npm:0.34.1" +"@img/sharp-linux-x64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-linux-x64@npm:0.34.2" dependencies: "@img/sharp-libvips-linux-x64": "npm:1.1.0" dependenciesMeta: @@ -437,9 +473,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linuxmusl-arm64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-linuxmusl-arm64@npm:0.34.1" +"@img/sharp-linuxmusl-arm64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.34.2" dependencies: "@img/sharp-libvips-linuxmusl-arm64": "npm:1.1.0" dependenciesMeta: @@ -449,9 +485,9 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linuxmusl-x64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-linuxmusl-x64@npm:0.34.1" +"@img/sharp-linuxmusl-x64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-linuxmusl-x64@npm:0.34.2" dependencies: "@img/sharp-libvips-linuxmusl-x64": "npm:1.1.0" dependenciesMeta: @@ -461,25 +497,32 @@ __metadata: languageName: node linkType: hard -"@img/sharp-wasm32@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-wasm32@npm:0.34.1" +"@img/sharp-wasm32@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-wasm32@npm:0.34.2" dependencies: - "@emnapi/runtime": "npm:^1.4.0" + "@emnapi/runtime": "npm:^1.4.3" conditions: cpu=wasm32 languageName: node linkType: hard -"@img/sharp-win32-ia32@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-win32-ia32@npm:0.34.1" +"@img/sharp-win32-arm64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-win32-arm64@npm:0.34.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-win32-ia32@npm:0.34.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@img/sharp-win32-x64@npm:0.34.1": - version: 0.34.1 - resolution: "@img/sharp-win32-x64@npm:0.34.1" +"@img/sharp-win32-x64@npm:0.34.2": + version: 0.34.2 + resolution: "@img/sharp-win32-x64@npm:0.34.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1634,7 +1677,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:22.15.21": +"@types/node@npm:*, @types/node@npm:22.15.21": version: 22.15.21 resolution: "@types/node@npm:22.15.21" dependencies: @@ -1661,6 +1704,29 @@ __metadata: languageName: node linkType: hard +"@types/sinonjs__fake-timers@npm:8.1.1": + version: 8.1.1 + resolution: "@types/sinonjs__fake-timers@npm:8.1.1" + checksum: 10c0/e2e6c425a548177c0930c2f9b82d3951956c9701b9ebf59623d5ad2c3229c523d3c0d598e79fe7392a239657abd3dbe3676be0650ce438bcd1199ee3b617a4d7 + languageName: node + linkType: hard + +"@types/sizzle@npm:^2.3.2": + version: 2.3.9 + resolution: "@types/sizzle@npm:2.3.9" + checksum: 10c0/db0277ff62e8ebe6cdae2020fd045fd7fd19f29a3a2ce13c555b14fb00e105e79004883732118b9f2e8b943cb302645e9eddb4e7bdeef1a171da679cd4c32b72 + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1b7c1b99fef9f2fe7f1985ef7426d0cebe48cd031f1780fcdc7451eec7e31ac97028f16f50121a59bcf53086a1fc8c856fd5b7d3e00970e43d92ae27d6b43dc + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.32.1 resolution: "@typescript-eslint/eslint-plugin@npm:8.32.1" @@ -1912,6 +1978,16 @@ __metadata: languageName: node linkType: hard +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + "ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -1924,7 +2000,30 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.1.0": +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -1933,6 +2032,13 @@ __metadata: languageName: node linkType: hard +"arch@npm:^2.2.0": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: 10c0/4ceaf8d8207817c216ebc4469742052cb0a097bc45d9b7fcd60b7507220da545a28562ab5bdd4dfe87921bb56371a0805da4e10d704e01f93a15f83240f1284c + languageName: node + linkType: hard + "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -2061,6 +2167,22 @@ __metadata: languageName: node linkType: hard +"asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: "npm:~2.1.0" + checksum: 10c0/00c8a06c37e548762306bcb1488388d2f76c74c36f70c803f0c081a01d3bdf26090fc088cd812afc5e56a6d49e33765d451a5f8a68ab9c2b087eba65d2e980e0 + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 10c0/b194b9d50c3a8f872ee85ab110784911e696a4d49f7ee6fc5fb63216dedbefd2c55999c70cb2eaeb4cf4a0e0338b44e9ace3627117b5bf0d42460e9132f21b91 + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.8": version: 0.0.8 resolution: "ast-types-flow@npm:0.0.8" @@ -2068,6 +2190,13 @@ __metadata: languageName: node linkType: hard +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 10c0/f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -2075,6 +2204,27 @@ __metadata: languageName: node linkType: hard +"async@npm:^3.2.0": + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -2084,6 +2234,20 @@ __metadata: languageName: node linkType: hard +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: 10c0/021d2cc5547d4d9ef1633e0332e746a6f447997758b8b68d6fb33f290986872d2bff5f0c37d5832f41a7229361f093cd81c40898d96ed153493c0fb5cd8575d2 + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.13.2 + resolution: "aws4@npm:1.13.2" + checksum: 10c0/c993d0d186d699f685d73113733695d648ec7d4b301aba2e2a559d0cd9c1c902308cc52f4095e1396b23fddbc35113644e7f0a6a32753636306e41e3ed6f1e79 + languageName: node + linkType: hard + "axe-core@npm:^4.10.0": version: 4.10.3 resolution: "axe-core@npm:4.10.3" @@ -2105,6 +2269,36 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: "npm:^0.14.3" + checksum: 10c0/ddfe85230b32df25aeebfdccfbc61d3bc493ace49c884c9c68575de1f5dcf733a5d7de9def3b0f318b786616b8d85bad50a28b1da1750c43e0012c93badcc148 + languageName: node + linkType: hard + +"blob-util@npm:^2.0.2": + version: 2.0.2 + resolution: "blob-util@npm:2.0.2" + checksum: 10c0/ed82d587827e5c86be122301a7c250f8364963e9582f72a826255bfbd32f8d69cc10169413d666667bb1c4fc8061329ae89d176ffe46fee8f32080af944ccddc + languageName: node + linkType: hard + +"bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -2133,6 +2327,23 @@ __metadata: languageName: node linkType: hard +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 + languageName: node + linkType: hard + +"buffer@npm:^5.7.1": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + "busboy@npm:1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -2142,6 +2353,13 @@ __metadata: languageName: node linkType: hard +"cachedir@npm:^2.3.0": + version: 2.4.0 + resolution: "cachedir@npm:2.4.0" + checksum: 10c0/76bff9009f2c446cd3777a4aede99af634a89670a67012b8041f65e951d3d36cefe8940341ea80c72219ee9913fa1f6146824cd9dfe9874a4bded728af7e6d76 + languageName: node + linkType: hard + "call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" @@ -2188,7 +2406,14 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0": +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: 10c0/ccf64bcb6c0232cdc5b7bd91ddd06e23a4b541f138336d4725233ac538041fb2f29c2e86c3c4a7a61ef990b665348db23a047060b9414c3a6603e9fa61ad4626 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -2198,6 +2423,13 @@ __metadata: languageName: node linkType: hard +"check-more-types@npm:^2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: 10c0/93fda2c32eb5f6cd1161a84a2f4107c0e00b40a851748516791dd9a0992b91bdf504e3bf6bf7673ce603ae620042e11ed4084d16d6d92b36818abc9c2e725520 + languageName: node + linkType: hard + "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -2205,6 +2437,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^4.1.0": + version: 4.2.0 + resolution: "ci-info@npm:4.2.0" + checksum: 10c0/37a2f4b6a213a5cf835890eb0241f0d5b022f6cfefde58a69e9af8e3a0e71e06d6ad7754b0d4efb9cd2613e58a7a33996d71b56b0d04242722e86666f3f3d058 + languageName: node + linkType: hard + "class-variance-authority@npm:^0.7.1": version: 0.7.1 resolution: "class-variance-authority@npm:0.7.1" @@ -2214,6 +2453,45 @@ __metadata: languageName: node linkType: hard +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: "npm:^3.1.0" + checksum: 10c0/92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 + languageName: node + linkType: hard + +"cli-table3@npm:0.6.1": + version: 0.6.1 + resolution: "cli-table3@npm:0.6.1" + dependencies: + colors: "npm:1.4.0" + string-width: "npm:^4.2.0" + dependenciesMeta: + colors: + optional: true + checksum: 10c0/19ab1bb14bd11b3ca3557ce5ad37ef73e489ea814b99f803171e6ac0a3f2ae5fffb6dbc8864e33cdcf2a3644ebc31b488b8e624fd74af44a1c77cc365c143db4 + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: "npm:^3.0.0" + string-width: "npm:^4.2.0" + checksum: 10c0/dfaa3df675bcef7a3254773de768712b590250420345a4c7ac151f041a4bacb4c25864b1377bee54a39b5925a030c00eabf014e312e3a4ac130952ed3b3879e9 + languageName: node + linkType: hard + "client-only@npm:0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" @@ -2264,6 +2542,43 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.16": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 + languageName: node + linkType: hard + +"colors@npm:1.4.0": + version: 1.4.0 + resolution: "colors@npm:1.4.0" + checksum: 10c0/9af357c019da3c5a098a301cf64e3799d27549d8f185d86f79af23069e4f4303110d115da98483519331f6fb71c8568d5688fa1c6523600044fd4a54e97c4efb + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:^6.2.1": + version: 6.2.1 + resolution: "commander@npm:6.2.1" + checksum: 10c0/85748abd9d18c8bc88febed58b98f66b7c591d9b5017cad459565761d7b29ca13b7783ea2ee5ce84bf235897333706c4ce29adf1ce15c8252780e7000e2ce9ea + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 10c0/23efe47ff0a1a7c91489271b3a1e1d2a171c12ec7f9b35b29b2fce51270124aff0ec890087e2bc2182c1cb746e232ab7561aaafe05f1e7452aea733d2bfe3f63 + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -2271,7 +2586,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.6": +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 10c0/980a37a93956d0de8a828ce508f9b9e3317039d68922ca79995421944146700e4aaf490a6dbfebcb1c5292a7184600c7710b957d724be1e37b8254c6bc0fe246 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -2289,6 +2611,59 @@ __metadata: languageName: node linkType: hard +"cypress@npm:14.3.3": + version: 14.3.3 + resolution: "cypress@npm:14.3.3" + dependencies: + "@cypress/request": "npm:^3.0.8" + "@cypress/xvfb": "npm:^1.2.4" + "@types/sinonjs__fake-timers": "npm:8.1.1" + "@types/sizzle": "npm:^2.3.2" + arch: "npm:^2.2.0" + blob-util: "npm:^2.0.2" + bluebird: "npm:^3.7.2" + buffer: "npm:^5.7.1" + cachedir: "npm:^2.3.0" + chalk: "npm:^4.1.0" + check-more-types: "npm:^2.24.0" + ci-info: "npm:^4.1.0" + cli-cursor: "npm:^3.1.0" + cli-table3: "npm:0.6.1" + commander: "npm:^6.2.1" + common-tags: "npm:^1.8.0" + dayjs: "npm:^1.10.4" + debug: "npm:^4.3.4" + enquirer: "npm:^2.3.6" + eventemitter2: "npm:6.4.7" + execa: "npm:4.1.0" + executable: "npm:^4.1.1" + extract-zip: "npm:2.0.1" + figures: "npm:^3.2.0" + fs-extra: "npm:^9.1.0" + getos: "npm:^3.2.1" + is-installed-globally: "npm:~0.4.0" + lazy-ass: "npm:^1.6.0" + listr2: "npm:^3.8.3" + lodash: "npm:^4.17.21" + log-symbols: "npm:^4.0.0" + minimist: "npm:^1.2.8" + ospath: "npm:^1.2.2" + pretty-bytes: "npm:^5.6.0" + process: "npm:^0.11.10" + proxy-from-env: "npm:1.0.0" + request-progress: "npm:^3.0.0" + semver: "npm:^7.7.1" + supports-color: "npm:^8.1.1" + tmp: "npm:~0.2.3" + tree-kill: "npm:1.2.2" + untildify: "npm:^4.0.0" + yauzl: "npm:^2.10.0" + bin: + cypress: bin/cypress + checksum: 10c0/b802fd1c29069037cf72d59fdfdb79c8b4779e5dd1fa58ea67c8b520fd66e64e204db9d03817950519779af081b925416ffd5ec23f7dcbf6ac52a9da1af5cfec + languageName: node + linkType: hard + "damerau-levenshtein@npm:^1.0.8": version: 1.0.8 resolution: "damerau-levenshtein@npm:1.0.8" @@ -2296,6 +2671,15 @@ __metadata: languageName: node linkType: hard +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10c0/64589a15c5bd01fa41ff7007e0f2c6552c5ef2028075daa16b188a3721f4ba001841bf306dfc2eee6e2e6e7f76b38f5f17fb21fa847504192290ffa9e150118a + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.2": version: 1.0.2 resolution: "data-view-buffer@npm:1.0.2" @@ -2329,7 +2713,14 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.7": +"dayjs@npm:^1.10.4": + version: 1.11.13 + resolution: "dayjs@npm:1.11.13" + checksum: 10c0/a3caf6ac8363c7dade9d1ee797848ddcf25c1ace68d9fe8678ecf8ba0675825430de5d793672ec87b24a69bf04a1544b176547b2539982275d5542a7955f35b7 + languageName: node + linkType: hard + +"debug@npm:^3.1.0, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -2338,7 +2729,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": +"debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": version: 4.4.1 resolution: "debug@npm:4.4.1" dependencies: @@ -2379,6 +2770,13 @@ __metadata: languageName: node linkType: hard +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + "detect-libc@npm:^2.0.3, detect-libc@npm:^2.0.4": version: 2.0.4 resolution: "detect-libc@npm:2.0.4" @@ -2441,6 +2839,23 @@ __metadata: languageName: node linkType: hard +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.1.0" + checksum: 10c0/6cf168bae1e2dad2e46561d9af9cbabfbf5ff592176ad4e9f0f41eaaf5fe5e10bb58147fe0a804de62b1ee9dad42c28810c88d652b21b6013c47ba8efa274ca1 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + "emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" @@ -2448,6 +2863,15 @@ __metadata: languageName: node linkType: hard +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.18.1": version: 5.18.1 resolution: "enhanced-resolve@npm:5.18.1" @@ -2458,6 +2882,16 @@ __metadata: languageName: node linkType: hard +"enquirer@npm:^2.3.6": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/43850479d7a51d36a9c924b518dcdc6373b5a8ae3401097d336b7b7e258324749d0ad37a1fcaa5706f04799baa05585cd7af19ebdf7667673e7694435fcea918 + languageName: node + linkType: hard + "es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": version: 1.23.9 resolution: "es-abstract@npm:1.23.9" @@ -2596,6 +3030,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -2893,6 +3334,77 @@ __metadata: languageName: node linkType: hard +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 10c0/35d8e9d51b919114eb072d33786274e1475db50efe00960c24c088ce4f76c07a826ccc927602724928efb3d8f09a7d8dd1fa79e410875118c0e9846959287f34 + languageName: node + linkType: hard + +"execa@npm:4.1.0": + version: 4.1.0 + resolution: "execa@npm:4.1.0" + dependencies: + cross-spawn: "npm:^7.0.0" + get-stream: "npm:^5.0.0" + human-signals: "npm:^1.1.1" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.0" + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + strip-final-newline: "npm:^2.0.0" + checksum: 10c0/02211601bb1c52710260edcc68fb84c3c030dc68bafc697c90ada3c52cc31375337de8c24826015b8382a58d63569ffd203b79c94fef217d65503e3e8d2c52ba + languageName: node + linkType: hard + +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: "npm:^2.2.0" + checksum: 10c0/c3cc5d2d2e3cdb1b7d7b0639ebd5566d113d7ada21cfa07f5226d55ba2a210320116720e07570ed5659ef2ec516bc00c8f0488dac75d112fd324ef25c2100173 + languageName: node + linkType: hard + +"extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 + languageName: node + linkType: hard + +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: 10c0/f75114a8388f0cbce68e277b6495dc3930db4dde1611072e4a140c24e204affd77320d004b947a132e9a3b97b8253017b2b62dce661975fb0adced707abf1ab5 + languageName: node + linkType: hard + +"extsprintf@npm:^1.2.0": + version: 1.4.1 + resolution: "extsprintf@npm:1.4.1" + checksum: 10c0/e10e2769985d0e9b6c7199b053a9957589d02e84de42832c295798cb422a025e6d4a92e0259c1fb4d07090f5bfde6b55fd9f880ac5855bd61d775f8ab75a7ab0 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -2949,6 +3461,15 @@ __metadata: languageName: node linkType: hard +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + "fdir@npm:^6.4.4": version: 6.4.4 resolution: "fdir@npm:6.4.4" @@ -2961,6 +3482,15 @@ __metadata: languageName: node linkType: hard +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/9c421646ede432829a50bc4e55c7a4eb4bcb7cc07b5bab2f471ef1ab9a344595bbebb6c5c21470093fbb730cd81bbca119624c40473a125293f656f49cb47629 + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -3015,6 +3545,37 @@ __metadata: languageName: node linkType: hard +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 10c0/364f7f5f7d93ab661455351ce116a67877b66f59aca199559a999bd39e3cfadbfbfacc10415a915255e2210b30c23febe9aec3ca16bf2d1ff11c935a1000e24c + languageName: node + linkType: hard + +"form-data@npm:~4.0.0": + version: 4.0.2 + resolution: "form-data@npm:4.0.2" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + mime-types: "npm:^2.1.12" + checksum: 10c0/e534b0cf025c831a0929bf4b9bbe1a9a6b03e273a8161f9947286b9b13bf8fb279c6944aae0070c4c311100c6d6dbb815cd955dc217728caf73fad8dc5b8ee9c + languageName: node + linkType: hard + +"fs-extra@npm:^9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 + languageName: node + linkType: hard + "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -3078,6 +3639,15 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.1.0": version: 1.1.0 resolution: "get-symbol-description@npm:1.1.0" @@ -3090,11 +3660,29 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.10.0": - version: 4.10.0 - resolution: "get-tsconfig@npm:4.10.0" + version: 4.10.1 + resolution: "get-tsconfig@npm:4.10.1" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/c9b5572c5118923c491c04285c73bd55b19e214992af957c502a3be0fc0043bb421386ffd45ca3433c0a7fba81221ca300479e8393960acf15d0ed4563f38a86 + checksum: 10c0/7f8e3dabc6a49b747920a800fb88e1952fef871cdf51b79e98db48275a5de6cdaf499c55ee67df5fa6fe7ce65f0063e26de0f2e53049b408c585aa74d39ffa21 + languageName: node + linkType: hard + +"getos@npm:^3.2.1": + version: 3.2.1 + resolution: "getos@npm:3.2.1" + dependencies: + async: "npm:^3.2.0" + checksum: 10c0/21556fca1da4dfc8f1707261b4f9ff19b9e9bfefa76478249d2abddba3cd014bd6c5360634add1590b27e0b27d422e8f997dddaa0234aae1fa4c54f33f82e841 + languageName: node + linkType: hard + +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10c0/c13f8530ecf16fc509f3fa5cd8dd2129ffa5d0c7ccdf5728b6022d52954c2d24be3706b4cdf15333eec52f1fbb43feb70a01dabc639d1d10071e371da8aaa52f languageName: node linkType: hard @@ -3116,6 +3704,15 @@ __metadata: languageName: node linkType: hard +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: "npm:2.0.0" + checksum: 10c0/ef65e2241a47ff978f7006a641302bc7f4c03dfb98783d42bf7224c136e3a06df046e70ee3a010cf30214114755e46c9eb5eb1513838812fbbe0d92b14c25080 + languageName: node + linkType: hard + "globals@npm:^14.0.0": version: 14.0.0 resolution: "globals@npm:14.0.0" @@ -3140,7 +3737,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.4": +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -3211,6 +3808,31 @@ __metadata: languageName: node linkType: hard +"http-signature@npm:~1.4.0": + version: 1.4.0 + resolution: "http-signature@npm:1.4.0" + dependencies: + assert-plus: "npm:^1.0.0" + jsprim: "npm:^2.0.2" + sshpk: "npm:^1.18.0" + checksum: 10c0/b9806f5a9ed82a146589837d175c43b596b1cc8c9431665e83d47c152aa8a4629dd1b1e050f8f56e7f17f62cf97b58e888775093310441ddee5f105f28646b2b + languageName: node + linkType: hard + +"human-signals@npm:^1.1.1": + version: 1.1.1 + resolution: "human-signals@npm:1.1.1" + checksum: 10c0/18810ed239a7a5e23fb6c32d0fd4be75d7cd337a07ad59b8dbf0794cb0761e6e628349ee04c409e605fe55344716eab5d0a47a62ba2a2d0d367c89a2b4247b1e + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + "ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" @@ -3242,6 +3864,20 @@ __metadata: languageName: node linkType: hard +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: 10c0/2e0c8f386369139029da87819438b20a1ff3fe58372d93fb1a86e9d9344125ace3a806b8ec4eb160a46e64cbc422fe68251869441676af49b7fc441af2389c25 + languageName: node + linkType: hard + "internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" @@ -3365,6 +4001,13 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + "is-generator-function@npm:^1.0.10": version: 1.1.0 resolution: "is-generator-function@npm:1.1.0" @@ -3386,6 +4029,16 @@ __metadata: languageName: node linkType: hard +"is-installed-globally@npm:~0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: "npm:^3.0.0" + is-path-inside: "npm:^3.0.2" + checksum: 10c0/f3e6220ee5824b845c9ed0d4b42c24272701f1f9926936e30c0e676254ca5b34d1b92c6205cae11b283776f9529212c0cdabb20ec280a6451677d6493ca9c22d + languageName: node + linkType: hard + "is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" @@ -3410,6 +4063,13 @@ __metadata: languageName: node linkType: hard +"is-path-inside@npm:^3.0.2": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 + languageName: node + linkType: hard + "is-regex@npm:^1.2.1": version: 1.2.1 resolution: "is-regex@npm:1.2.1" @@ -3438,6 +4098,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + languageName: node + linkType: hard + "is-string@npm:^1.0.7, is-string@npm:^1.1.1": version: 1.1.1 resolution: "is-string@npm:1.1.1" @@ -3468,6 +4135,20 @@ __metadata: languageName: node linkType: hard +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 10c0/4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.2": version: 2.0.2 resolution: "is-weakmap@npm:2.0.2" @@ -3508,6 +4189,13 @@ __metadata: languageName: node linkType: hard +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 10c0/a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f + languageName: node + linkType: hard + "iterator.prototype@npm:^1.1.4": version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" @@ -3556,6 +4244,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: 10c0/e046e05c59ff880ee4ef68902dbdcb6d2f3c5d60c357d4d68647dc23add556c31c0e5f41bdb7e69e793dd63468bd9e085da3636341048ef577b18f5b713877c0 + languageName: node + linkType: hard + "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -3570,6 +4265,13 @@ __metadata: languageName: node linkType: hard +"json-schema@npm:0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 10c0/d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 + languageName: node + linkType: hard + "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -3577,6 +4279,13 @@ __metadata: languageName: node linkType: hard +"json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + "json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -3588,6 +4297,31 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 + languageName: node + linkType: hard + +"jsprim@npm:^2.0.2": + version: 2.0.2 + resolution: "jsprim@npm:2.0.2" + dependencies: + assert-plus: "npm:1.0.0" + extsprintf: "npm:1.3.0" + json-schema: "npm:0.4.0" + verror: "npm:1.10.0" + checksum: 10c0/677be2d41df536c92c6d0114a492ef197084018cfbb1a3e10b1fa1aad889564b2e3a7baa6af7949cc2d73678f42368b0be165a26bd4e4de6883a30dd6a24e98d + languageName: node + linkType: hard + "jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" @@ -3625,6 +4359,13 @@ __metadata: languageName: node linkType: hard +"lazy-ass@npm:^1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: 10c0/4af6cb9a333fbc811268c745f9173fba0f99ecb817cc9c0fae5dbf986b797b730ff525504128f6623b91aba32b02124553a34b0d14de3762b637b74d7233f3bd + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -3745,6 +4486,27 @@ __metadata: languageName: node linkType: hard +"listr2@npm:^3.8.3": + version: 3.14.0 + resolution: "listr2@npm:3.14.0" + dependencies: + cli-truncate: "npm:^2.1.0" + colorette: "npm:^2.0.16" + log-update: "npm:^4.0.0" + p-map: "npm:^4.0.0" + rfdc: "npm:^1.3.0" + rxjs: "npm:^7.5.1" + through: "npm:^2.3.8" + wrap-ansi: "npm:^7.0.0" + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: 10c0/8301703876ad6bf50cd769e9c1169c2aa435951d69d4f54fc202a13c1b6006a9b3afbcf9842440eb22f08beec4d311d365e31d4ed2e0fcabf198d8085b06a421 + languageName: node + linkType: hard + "locate-path@npm:^6.0.0": version: 6.0.0 resolution: "locate-path@npm:6.0.0" @@ -3761,6 +4523,42 @@ __metadata: languageName: node linkType: hard +"lodash.once@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 10c0/46a9a0a66c45dd812fcc016e46605d85ad599fe87d71a02f6736220554b52ffbe82e79a483ad40f52a8a95755b0d1077fba259da8bfb6694a7abbf4a48f1fc04 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: "npm:^4.3.0" + cli-cursor: "npm:^3.1.0" + slice-ansi: "npm:^4.0.0" + wrap-ansi: "npm:^6.2.0" + checksum: 10c0/18b299e230432a156f2535660776406d15ba8bb7817dd3eaadd58004b363756d4ecaabcd658f9949f90b62ea7d3354423be3fdeb7a201ab951ec0e8d6139af86 + languageName: node + linkType: hard + "loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -3824,6 +4622,7 @@ __metadata: "@types/react-dom": "npm:19.1.5" class-variance-authority: "npm:^0.7.1" clsx: "npm:^2.1.1" + cypress: "npm:14.3.3" dotenv-cli: "npm:8.0.0" eslint: "npm:9.27.0" eslint-config-next: "npm:15.3.2" @@ -3844,6 +4643,13 @@ __metadata: languageName: unknown linkType: soft +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + "merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -3861,6 +4667,29 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 + languageName: node + linkType: hard + "minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -3879,7 +4708,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -4036,6 +4865,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^4.0.0": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac + languageName: node + linkType: hard + "oauth4webapi@npm:^3.3.0": version: 3.5.1 resolution: "oauth4webapi@npm:3.5.1" @@ -4125,6 +4963,24 @@ __metadata: languageName: node linkType: hard +"once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -4139,6 +4995,13 @@ __metadata: languageName: node linkType: hard +"ospath@npm:^1.2.2": + version: 1.2.2 + resolution: "ospath@npm:1.2.2" + checksum: 10c0/e485a6ca91964f786163408b093860bf26a9d9704d83ec39ccf463b9f11ea712b780b23b73d1f64536de62c5f66244dd94ed83fc9ffe3c1564dd1eed5cdae923 + languageName: node + linkType: hard + "own-keys@npm:^1.0.1": version: 1.0.1 resolution: "own-keys@npm:1.0.1" @@ -4168,6 +5031,15 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -4184,7 +5056,7 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^3.1.0": +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c @@ -4198,6 +5070,20 @@ __metadata: languageName: node linkType: hard +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 + languageName: node + linkType: hard + +"performance-now@npm:^2.1.0": + version: 2.1.0 + resolution: "performance-now@npm:2.1.0" + checksum: 10c0/22c54de06f269e29f640e0e075207af57de5052a3d15e360c09b9a8663f393f6f45902006c1e71aa8a5a1cdfb1a47fe268826f8496d6425c362f00f5bc3e85d9 + languageName: node + linkType: hard + "picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" @@ -4219,6 +5105,13 @@ __metadata: languageName: node linkType: hard +"pify@npm:^2.2.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc + languageName: node + linkType: hard + "possible-typed-array-names@npm:^1.0.0": version: 1.1.0 resolution: "possible-typed-array-names@npm:1.1.0" @@ -4280,6 +5173,13 @@ __metadata: languageName: node linkType: hard +"pretty-bytes@npm:^5.6.0": + version: 5.6.0 + resolution: "pretty-bytes@npm:5.6.0" + checksum: 10c0/f69f494dcc1adda98dbe0e4a36d301e8be8ff99bfde7a637b2ee2820e7cb583b0fc0f3a63b0e3752c01501185a5cf38602c7be60da41bdf84ef5b70e89c370f3 + languageName: node + linkType: hard + "prisma@npm:6.8.2": version: 6.8.2 resolution: "prisma@npm:6.8.2" @@ -4297,6 +5197,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 + languageName: node + linkType: hard + "prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" @@ -4308,6 +5215,23 @@ __metadata: languageName: node linkType: hard +"proxy-from-env@npm:1.0.0": + version: 1.0.0 + resolution: "proxy-from-env@npm:1.0.0" + checksum: 10c0/c64df9b21f7f820dc882cd6f7f81671840acd28b9688ee3e3e6af47a56ec7f0edcabe5bc96b32b26218b35eeff377bcc27ac27f89b6b21401003e187ff13256f + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.2 + resolution: "pump@npm:3.0.2" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -4315,6 +5239,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.14.0": + version: 6.14.0 + resolution: "qs@npm:6.14.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10c0/8ea5d91bf34f440598ee389d4a7d95820e3b837d3fd9f433871f7924801becaa0cd3b3b4628d49a7784d06a8aea9bc4554d2b6d8d584e2d221dc06238a42909c + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -4428,6 +5361,15 @@ __metadata: languageName: node linkType: hard +"request-progress@npm:^3.0.0": + version: 3.0.0 + resolution: "request-progress@npm:3.0.0" + dependencies: + throttleit: "npm:^1.0.0" + checksum: 10c0/d5dcb7155a738572c8781436f6b418e866066a30eea0f99a9ab26b6f0ed6c13637462bba736357de3899b8d30431ee9202ac956a5f8ccdd0d9d1ed0962000d14 + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -4494,6 +5436,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10c0/8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f + languageName: node + linkType: hard + "reusify@npm:^1.0.4": version: 1.1.0 resolution: "reusify@npm:1.1.0" @@ -4501,6 +5453,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.3.0": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -4510,6 +5469,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.5.1": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/1fcd33d2066ada98ba8f21fcbbcaee9f0b271de1d38dc7f4e256bfbc6ffcdde68c8bfb69093de7eeb46f24b1fb820620bf0223706cff26b4ab99a7ff7b2e2c45 + languageName: node + linkType: hard + "safe-array-concat@npm:^1.1.3": version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" @@ -4523,6 +5491,13 @@ __metadata: languageName: node linkType: hard +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + "safe-push-apply@npm:^1.0.0": version: 1.0.0 resolution: "safe-push-apply@npm:1.0.0" @@ -4544,6 +5519,13 @@ __metadata: languageName: node linkType: hard +"safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + "scheduler@npm:^0.26.0": version: 0.26.0 resolution: "scheduler@npm:0.26.0" @@ -4560,7 +5542,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.6.0, semver@npm:^7.7.1": +"semver@npm:^7.6.0, semver@npm:^7.7.1, semver@npm:^7.7.2": version: 7.7.2 resolution: "semver@npm:7.7.2" bin: @@ -4607,11 +5589,11 @@ __metadata: linkType: hard "sharp@npm:^0.34.1": - version: 0.34.1 - resolution: "sharp@npm:0.34.1" + version: 0.34.2 + resolution: "sharp@npm:0.34.2" dependencies: - "@img/sharp-darwin-arm64": "npm:0.34.1" - "@img/sharp-darwin-x64": "npm:0.34.1" + "@img/sharp-darwin-arm64": "npm:0.34.2" + "@img/sharp-darwin-x64": "npm:0.34.2" "@img/sharp-libvips-darwin-arm64": "npm:1.1.0" "@img/sharp-libvips-darwin-x64": "npm:1.1.0" "@img/sharp-libvips-linux-arm": "npm:1.1.0" @@ -4621,18 +5603,19 @@ __metadata: "@img/sharp-libvips-linux-x64": "npm:1.1.0" "@img/sharp-libvips-linuxmusl-arm64": "npm:1.1.0" "@img/sharp-libvips-linuxmusl-x64": "npm:1.1.0" - "@img/sharp-linux-arm": "npm:0.34.1" - "@img/sharp-linux-arm64": "npm:0.34.1" - "@img/sharp-linux-s390x": "npm:0.34.1" - "@img/sharp-linux-x64": "npm:0.34.1" - "@img/sharp-linuxmusl-arm64": "npm:0.34.1" - "@img/sharp-linuxmusl-x64": "npm:0.34.1" - "@img/sharp-wasm32": "npm:0.34.1" - "@img/sharp-win32-ia32": "npm:0.34.1" - "@img/sharp-win32-x64": "npm:0.34.1" + "@img/sharp-linux-arm": "npm:0.34.2" + "@img/sharp-linux-arm64": "npm:0.34.2" + "@img/sharp-linux-s390x": "npm:0.34.2" + "@img/sharp-linux-x64": "npm:0.34.2" + "@img/sharp-linuxmusl-arm64": "npm:0.34.2" + "@img/sharp-linuxmusl-x64": "npm:0.34.2" + "@img/sharp-wasm32": "npm:0.34.2" + "@img/sharp-win32-arm64": "npm:0.34.2" + "@img/sharp-win32-ia32": "npm:0.34.2" + "@img/sharp-win32-x64": "npm:0.34.2" color: "npm:^4.2.3" - detect-libc: "npm:^2.0.3" - semver: "npm:^7.7.1" + detect-libc: "npm:^2.0.4" + semver: "npm:^7.7.2" dependenciesMeta: "@img/sharp-darwin-arm64": optional: true @@ -4670,11 +5653,13 @@ __metadata: optional: true "@img/sharp-wasm32": optional: true + "@img/sharp-win32-arm64": + optional: true "@img/sharp-win32-ia32": optional: true "@img/sharp-win32-x64": optional: true - checksum: 10c0/50f5ffb18a775ec9f0d4d39bdc4356fdfa1fc97e69d8800d68e960b93b1c0cce7ee5242225d3b86ffae5801890fd7f93acfee00018f247e7df70fee2b4de7945 + checksum: 10c0/43967dbaaf1e1140a2f43b51d54762cc1bba01648392e355028568e4838833bf1abc2a96c09b893e6407b0c59a2c271d66e8d56a582aa6c951d476ab83a37fba languageName: node linkType: hard @@ -4742,6 +5727,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:^3.0.2": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" @@ -4751,6 +5743,28 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10c0/88083c9d0ca67d09f8b4c78f68833d69cabbb7236b74df5d741ad572bbf022deaf243fa54009cd434350622a1174ab267710fcc80a214ecc7689797fe00cb27c + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10c0/6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 + languageName: node + linkType: hard + "source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" @@ -4758,6 +5772,27 @@ __metadata: languageName: node linkType: hard +"sshpk@npm:^1.18.0": + version: 1.18.0 + resolution: "sshpk@npm:1.18.0" + dependencies: + asn1: "npm:~0.2.3" + assert-plus: "npm:^1.0.0" + bcrypt-pbkdf: "npm:^1.0.0" + dashdash: "npm:^1.12.0" + ecc-jsbn: "npm:~0.1.1" + getpass: "npm:^0.1.1" + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.0.2" + tweetnacl: "npm:~0.14.0" + bin: + sshpk-conv: bin/sshpk-conv + sshpk-sign: bin/sshpk-sign + sshpk-verify: bin/sshpk-verify + checksum: 10c0/e516e34fa981cfceef45fd2e947772cc70dbd57523e5c608e2cd73752ba7f8a99a04df7c3ed751588e8d91956b6f16531590b35d3489980d1c54c38bebcd41b1 + languageName: node + linkType: hard + "stable-hash@npm:^0.0.5": version: 0.0.5 resolution: "stable-hash@npm:0.0.5" @@ -4772,6 +5807,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^4.1.0, string-width@npm:^4.2.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + "string.prototype.includes@npm:^2.0.1": version: 2.0.1 resolution: "string.prototype.includes@npm:2.0.1" @@ -4852,6 +5898,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" @@ -4859,6 +5914,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f + languageName: node + linkType: hard + "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -4891,6 +5953,15 @@ __metadata: languageName: node linkType: hard +"supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -4913,9 +5984,9 @@ __metadata: linkType: hard "tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 + version: 2.2.2 + resolution: "tapable@npm:2.2.2" + checksum: 10c0/8ad130aa705cab6486ad89e42233569a1fb1ff21af115f59cebe9f2b45e9e7995efceaa9cc5062510cdb4ec673b527924b2ab812e3579c55ad659ae92117011e languageName: node linkType: hard @@ -4933,6 +6004,20 @@ __metadata: languageName: node linkType: hard +"throttleit@npm:^1.0.0": + version: 1.0.1 + resolution: "throttleit@npm:1.0.1" + checksum: 10c0/4d41a1bf467646b1aa7bec0123b78452a0e302d7344f6a67e43e68434f0a02ea3ba44df050a40c69adeb9cae3cbf6b36b38cfe94bcc3c4a8243c9b63e38e059b + languageName: node + linkType: hard + +"through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.13": version: 0.2.13 resolution: "tinyglobby@npm:0.2.13" @@ -4943,6 +6028,31 @@ __metadata: languageName: node linkType: hard +"tldts-core@npm:^6.1.86": + version: 6.1.86 + resolution: "tldts-core@npm:6.1.86" + checksum: 10c0/8133c29375f3f99f88fce5f4d62f6ecb9532b106f31e5423b27c1eb1b6e711bd41875184a456819ceaed5c8b94f43911b1ad57e25c6eb86e1fc201228ff7e2af + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.86 + resolution: "tldts@npm:6.1.86" + dependencies: + tldts-core: "npm:^6.1.86" + bin: + tldts: bin/cli.js + checksum: 10c0/27ae7526d9d78cb97b2de3f4d102e0b4321d1ccff0648a7bb0e039ed54acbce86bacdcd9cd3c14310e519b457854e7bafbef1f529f58a1e217a737ced63f0940 + languageName: node + linkType: hard + +"tmp@npm:~0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -4952,6 +6062,24 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^5.0.0": + version: 5.1.2 + resolution: "tough-cookie@npm:5.1.2" + dependencies: + tldts: "npm:^6.1.32" + checksum: 10c0/5f95023a47de0f30a902bba951664b359725597d8adeabc66a0b93a931c3af801e1e697dae4b8c21a012056c0ea88bd2bf4dfe66b2adcf8e2f42cd9796fe0626 + languageName: node + linkType: hard + +"tree-kill@npm:1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 + languageName: node + linkType: hard + "ts-api-utils@npm:^2.1.0": version: 2.1.0 resolution: "ts-api-utils@npm:2.1.0" @@ -4980,6 +6108,15 @@ __metadata: languageName: node linkType: hard +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/4c7a1b813e7beae66fdbf567a65ec6d46313643753d0beefb3c7973d66fcec3a1e7f39759f0a0b4465883499c6dc8b0750ab8b287399af2e583823e40410a17a + languageName: node + linkType: hard + "tw-animate-css@npm:1.3.0": version: 1.3.0 resolution: "tw-animate-css@npm:1.3.0" @@ -4987,6 +6124,13 @@ __metadata: languageName: node linkType: hard +"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": + version: 0.14.5 + resolution: "tweetnacl@npm:0.14.5" + checksum: 10c0/4612772653512c7bc19e61923fbf42903f5e0389ec76a4a1f17195859d114671ea4aa3b734c2029ce7e1fa7e5cc8b80580f67b071ecf0b46b5636d030a0102a2 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -4996,6 +6140,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 + languageName: node + linkType: hard + "typed-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-buffer@npm:1.0.3" @@ -5088,6 +6239,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + languageName: node + linkType: hard + "unrs-resolver@npm:^1.6.2": version: 1.7.2 resolution: "unrs-resolver@npm:1.7.2" @@ -5149,6 +6307,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 10c0/d758e624c707d49f76f7511d75d09a8eda7f2020d231ec52b67ff4896bcf7013be3f9522d8375f57e586e9a2e827f5641c7e06ee46ab9c435fc2b2b2e9de517a + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -5189,6 +6354,26 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: "npm:^1.0.0" + core-util-is: "npm:1.0.2" + extsprintf: "npm:^1.2.0" + checksum: 10c0/37ccdf8542b5863c525128908ac80f2b476eed36a32cb944de930ca1e2e78584cc435c4b9b4c68d0fc13a47b45ff364b4be43aa74f8804f9050140f660fb660d + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": version: 1.1.1 resolution: "which-boxed-primitive@npm:1.1.1" @@ -5268,6 +6453,35 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c + languageName: node + linkType: hard + +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + "yallist@npm:^5.0.0": version: 5.0.0 resolution: "yallist@npm:5.0.0" @@ -5275,6 +6489,16 @@ __metadata: languageName: node linkType: hard +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" From 86f8834a3b65dc8aba52d47b351114273218ca09 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 22:59:55 +0200 Subject: [PATCH 18/27] test: helper functions --- cypress/support/commands.ts | 25 +++++++++++++++++++++++++ cypress/support/component.ts | 2 ++ tsconfig.json | 3 ++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 95857ae..59717f5 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -35,3 +35,28 @@ // } // } // } + +Cypress.Commands.add('getBySel', (selector, ...args) => { + return cy.get(`[data-cy=${selector}]`, ...args); +}); + +Cypress.Commands.add('getBySelLike', (selector, ...args) => { + return cy.get(`[data-cy*=${selector}]`, ...args); +}); + +declare global { + namespace Cypress { + interface Chainable { + getBySel( + selector: string, + ...args: any[] + ): Chainable>; + getBySelLike( + selector: string, + ...args: any[] + ): Chainable>; + } + } +} + +export {}; diff --git a/cypress/support/component.ts b/cypress/support/component.ts index 23fbccc..b1f1c92 100644 --- a/cypress/support/component.ts +++ b/cypress/support/component.ts @@ -13,6 +13,8 @@ // https://on.cypress.io/configuration // *********************************************************** +import '@/app/globals.css'; + // Import commands.js using ES2015 syntax: import './commands'; diff --git a/tsconfig.json b/tsconfig.json index c133409..6bd88b8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,7 +20,8 @@ ], "paths": { "@/*": ["./src/*"] - } + }, + "types": ["node", "cypress"] }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] From 5d023ce7a2d3fcf43166a351aa4f593d47f090dc Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 23:00:04 +0200 Subject: [PATCH 19/27] test: icon-button --- src/components/icon-button.cy.tsx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/components/icon-button.cy.tsx diff --git a/src/components/icon-button.cy.tsx b/src/components/icon-button.cy.tsx new file mode 100644 index 0000000..b5a1ff0 --- /dev/null +++ b/src/components/icon-button.cy.tsx @@ -0,0 +1,24 @@ +/* eslint-disable @typescript-eslint/no-unused-expressions */ +import React from 'react'; +import { IconButton } from './icon-button'; +import { faOpenid } from '@fortawesome/free-brands-svg-icons'; + +describe('', () => { + it('renders', () => { + cy.mount(Button); + }); + + it('is clickable', () => { + const onClick = cy.stub(); + cy.mount( + + Button + , + ); + cy.getBySel('icon-button') + .click() + .then(() => { + expect(onClick).to.be.calledOnce; + }); + }); +}); From b0065c81500b525fe419775b7fca7ad1afd40b88 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 23:00:14 +0200 Subject: [PATCH 20/27] test: theme-picker --- src/components/user/theme-picker.cy.tsx | 41 +++++++++++++++++++++++++ src/components/user/theme-picker.tsx | 16 +++++++--- 2 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 src/components/user/theme-picker.cy.tsx diff --git a/src/components/user/theme-picker.cy.tsx b/src/components/user/theme-picker.cy.tsx new file mode 100644 index 0000000..23dc01b --- /dev/null +++ b/src/components/user/theme-picker.cy.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { ThemePicker } from '@/components/user/theme-picker'; +import { ThemeProvider } from '../theme-provider'; + +describe('', () => { + it('renders', () => { + cy.mount(); + }); + + it('toggle open and close', () => { + cy.mount(); + cy.getBySel('theme-picker').click(); + cy.getBySel('theme-picker-content').should('exist'); + cy.get('html').click(); + cy.getBySel('theme-picker-content').should('not.exist'); + }); + + it('enable dark mode', () => { + cy.mount( + + + , + ); + + cy.getBySel('theme-picker').click(); + cy.getBySel('dark-theme').click(); + cy.get('html').should('have.attr', 'data-theme', 'dark'); + }); + + it('enable light mode', () => { + cy.mount( + + + , + ); + + cy.getBySel('theme-picker').click(); + cy.getBySel('light-theme').click(); + cy.get('html').should('have.attr', 'data-theme', 'light'); + }); +}); diff --git a/src/components/user/theme-picker.tsx b/src/components/user/theme-picker.tsx index 5341c3c..3ceca4c 100644 --- a/src/components/user/theme-picker.tsx +++ b/src/components/user/theme-picker.tsx @@ -18,20 +18,26 @@ export function ThemePicker() { return ( - - - setTheme('light')}> + + setTheme('light')} + data-cy='light-theme' + > Light - setTheme('dark')}> + setTheme('dark')} data-cy='dark-theme'> Dark - setTheme('system')}> + setTheme('system')} + data-cy='system-theme' + > System From 1ec78ab46c5d0a8482af2d0a2311b29f3a6be573 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 12 May 2025 23:00:29 +0200 Subject: [PATCH 21/27] chore: add testing workflow --- .github/workflows/tests.yml | 27 +++++++++++++++++++++++++++ cypress.config.ts | 6 ------ 2 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..23c73d1 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,27 @@ +name: tests +on: + push: + branches: + - main + - renovate/* + pull_request: +jobs: + tests: + name: Tests + runs-on: docker + container: + image: cypress/browsers:latest + options: --user 1001 + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + + - name: Enable corepack + run: corepack enable + + - name: Cypress run + uses: https://github.com/cypress-io/github-action@v6 + with: + build: yarn run build + start: yarn start + component: true diff --git a/cypress.config.ts b/cypress.config.ts index 768b87a..d2013c5 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,12 +1,6 @@ import { defineConfig } from 'cypress'; export default defineConfig({ - e2e: { - setupNodeEvents(on, config) { - // implement node event listeners here - }, - }, - component: { devServer: { framework: 'next', From 09a523a04f98060584bc395b5bea954682923102 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Tue, 13 May 2025 09:04:37 +0200 Subject: [PATCH 22/27] test(e2e): test login page --- .env.test | 5 ++++ .github/workflows/tests.yml | 2 +- .gitignore | 1 + cypress.config.ts | 6 +++++ cypress/e2e/login.cy.ts | 31 ++++++++++++++++++++++++ package.json | 1 + src/app/login/page.tsx | 5 +++- src/components/labeled-input.tsx | 6 +++-- src/components/user/login-form.tsx | 4 +++ src/components/user/sso-login-button.tsx | 4 ++- 10 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 .env.test create mode 100644 cypress/e2e/login.cy.ts diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..f841afc --- /dev/null +++ b/.env.test @@ -0,0 +1,5 @@ +AUTH_SECRET="auth_secret" +AUTH_URL="http://localhost:3000" +DATABASE_URL="file:./dev.db" +AUTH_AUTHENTIK_ID="id" +AUTH_AUTHENTIK_ISSUER="issuer" \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 23c73d1..5a12acc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,5 +23,5 @@ jobs: uses: https://github.com/cypress-io/github-action@v6 with: build: yarn run build - start: yarn start + start: yarn cypress:start_server component: true diff --git a/.gitignore b/.gitignore index 918f651..5c96c35 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ yarn-error.log* # env files (can opt-in for committing if needed) .env* !.env.example +!.env.test # vercel .vercel diff --git a/cypress.config.ts b/cypress.config.ts index d2013c5..bebdaa5 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -7,4 +7,10 @@ export default defineConfig({ bundler: 'webpack', }, }, + + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, }); diff --git a/cypress/e2e/login.cy.ts b/cypress/e2e/login.cy.ts new file mode 100644 index 0000000..6045354 --- /dev/null +++ b/cypress/e2e/login.cy.ts @@ -0,0 +1,31 @@ +describe('login', () => { + it('loads', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('login-header').should('exist'); + }); + + it('shows login form', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('login-form').should('exist'); + cy.getBySel('email-input').should('exist'); + cy.getBySel('password-input').should('exist'); + cy.getBySel('login-button').should('exist'); + }); + + it('shows sso button', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('sso-login-button_authentik').should('exist'); + }); + + it('allows login', () => { + cy.visit('http://localhost:3000/'); + + cy.getBySel('email-input').type('test@example.com'); + cy.getBySel('password-input').type('password'); + cy.getBySel('login-button').click(); + cy.url().should('include', '/home'); + }); +}); diff --git a/package.json b/package.json index 5f6038f..15b17ea 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "node .next/standalone/server.js", "lint": "next lint", "format": "prettier --write .", + "cypress:start_server": "cp .next/static/ .next/standalone/.next/ -r && dotenv -e .env.test -- node .next/standalone/server.js", "cypress:open": "cypress open", "cypress:run": "cypress run", "prisma:migrate": "dotenv -e .env.local -- prisma migrate dev", diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 1786e82..34d1b07 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -30,7 +30,9 @@ export default async function LoginPage() {
- Login + + Login + @@ -42,6 +44,7 @@ export default async function LoginPage() { key={provider.id} provider={provider.id} providerDisplayName={provider.name} + data-cy={'sso-login-button_' + provider.name.toLowerCase()} /> ))} diff --git a/src/components/labeled-input.tsx b/src/components/labeled-input.tsx index 7a416d4..5ff31f7 100644 --- a/src/components/labeled-input.tsx +++ b/src/components/labeled-input.tsx @@ -7,13 +7,14 @@ export default function LabeledInput({ placeholder, value, name, + ...props }: { type: 'text' | 'email' | 'password'; label: string; placeholder?: string; + name: string; value?: string; - name?: string; -}) { +} & React.InputHTMLAttributes) { return (
@@ -24,6 +25,7 @@ export default function LabeledInput({ defaultValue={value} id={name} name={name} + {...props} />
); diff --git a/src/components/user/login-form.tsx b/src/components/user/login-form.tsx index 7c44f6f..fadf2ea 100644 --- a/src/components/user/login-form.tsx +++ b/src/components/user/login-form.tsx @@ -10,6 +10,7 @@ export default function LoginForm() { return ( { 'use server'; try { @@ -27,17 +28,20 @@ export default function LoginForm() { label='E-Mail or Username' placeholder='What you are known as.' name='email' + data-cy='email-input' /> diff --git a/src/components/user/sso-login-button.tsx b/src/components/user/sso-login-button.tsx index c1bd0e2..b333d29 100644 --- a/src/components/user/sso-login-button.tsx +++ b/src/components/user/sso-login-button.tsx @@ -5,10 +5,11 @@ import { Fingerprint } from 'lucide-react'; export default function SSOLogin({ provider, providerDisplayName, + ...props }: { provider: string; providerDisplayName: string; -}) { +} & React.HTMLProps) { return (