From 3035412cdc39f0a6da026ecec529d5ad1ab7b84f Mon Sep 17 00:00:00 2001 From: Hariom Balhara Date: Mon, 30 May 2022 22:41:05 +0530 Subject: [PATCH] Add embed tests in CI (#2887) * Add embed tests in CI * Update e2e-embed.yml * Run quick tests only * Ignore certain folders * Add embed-react tests as well * Fix commands * Dont run unit tests * Update playwright.config.ts * Update playwright.config.ts * Update playwright.config.ts * Create correct artifcats * Create correct artifcats * Fi ignore path * Update package.json * Add back embed-react typecheck Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .github/workflows/e2e-embed.yml | 110 ++++++++++++++++++ .github/workflows/e2e.yml | 2 +- apps/web/package.json | 2 +- package.json | 3 +- packages/embeds/embed-core/package.json | 7 +- .../playwright/config/playwright.config.ts | 6 +- .../embed-core/playwright/lib/testUtils.ts | 13 ++- packages/embeds/embed-react/package.json | 12 +- .../playwright/config/playwright.config.ts | 7 +- packages/embeds/embed-react/tsconfig.json | 2 +- packages/embeds/embed-snippet/package.json | 6 +- turbo.json | 12 +- yarn.lock | 66 +++++++---- 13 files changed, 205 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/e2e-embed.yml diff --git a/.github/workflows/e2e-embed.yml b/.github/workflows/e2e-embed.yml new file mode 100644 index 0000000000..327a58b448 --- /dev/null +++ b/.github/workflows/e2e-embed.yml @@ -0,0 +1,110 @@ +name: E2E test - embed +on: + push: + branches: [ tests/ci-embed ] + pull_request_target: # So we can test on forks + branches: + - main + # Embed e2e - tests verify booking flow which is applicable to non-embed case also. So, don't ignore apps/web changes. + paths-ignore: + - apps/api/** + - apps/console/** + - apps/docs/** + - apps/swagger/** + - apps/website/** + - apps/web/public/** + - tests/** + - playwright/** +jobs: + test: + timeout-minutes: 20 + name: Testing Embeds + strategy: + matrix: + node: ["14.x"] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + + env: + DATABASE_URL: postgresql://postgres:@localhost:5432/calendso + NEXT_PUBLIC_WEBAPP_URL: http://localhost:3000 + NEXT_PUBLIC_WEBSITE_URL: http://localhost:3000 + NEXTAUTH_SECRET: secret + GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }} + GOOGLE_LOGIN_ENABLED: true + # CRON_API_KEY: xxx + CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }} + NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }} + STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }} + STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }} + STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }} + PAYMENT_FEE_PERCENTAGE: 0.005 + PAYMENT_FEE_FIXED: 10 + SAML_DATABASE_URL: postgresql://postgres:@localhost:5432/calendso + SAML_ADMINS: pro@example.com + NEXTAUTH_URL: http://localhost:3000/api/auth + NEXT_PUBLIC_IS_E2E: 1 + # EMAIL_FROM: e2e@cal.com + # EMAIL_SERVER_HOST: ${{ secrets.CI_EMAIL_SERVER_HOST }} + # EMAIL_SERVER_PORT: ${{ secrets.CI_EMAIL_SERVER_PORT }} + # EMAIL_SERVER_USER: ${{ secrets.CI_EMAIL_SERVER_USER }} + # EMAIL_SERVER_PASSWORD: ${{ secrets.CI_EMAIL_SERVER_PASSWORD }} + # MS_GRAPH_CLIENT_ID: xxx + # MS_GRAPH_CLIENT_SECRET: xxx + # ZOOM_CLIENT_ID: xxx + # ZOOM_CLIENT_SECRET: xxx + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + services: + postgres: + image: postgres:12.1 + env: + POSTGRES_USER: postgres + POSTGRES_DB: calendso + ports: + - 5432:5432 + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} # So we can test on forks + fetch-depth: 2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + cache: "yarn" + + - name: Cache playwright binaries + uses: actions/cache@v2 + id: playwright-cache + with: + path: | + ~/Library/Caches/ms-playwright + ~/.cache/ms-playwright + ${{ github.workspace }}/node_modules/playwright + key: cache-playwright-${{ hashFiles('**/yarn.lock') }} + restore-keys: cache-playwright- + - run: yarn --frozen-lockfile + - name: Install playwright deps + # if: steps.playwright-cache.outputs.cache-hit != 'true' + run: yarn playwright install --with-deps + - run: yarn embed-tests-prepare + - run: yarn workspace @calcom/embed-core embed-tests-update-snapshots:ci + - run: yarn workspace @calcom/embed-react embed-tests-update-snapshots:ci + + - name: Upload embed-core results + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: test-results-core + path: packages/embeds/embed-core/playwright/results + + - name: Upload embed-react results + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: test-results-react + path: packages/embeds/embed-react/playwright/results diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1eb2a2a8b3..b5bd736d20 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -4,7 +4,7 @@ on: branches: - main paths-ignore: - - public/static/locales/** + - apps/web/public/static/locales/** jobs: test: timeout-minutes: 20 diff --git a/apps/web/package.json b/apps/web/package.json index 1abdebf206..1a28b1ed3a 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -30,7 +30,7 @@ "@calcom/app-store": "*", "@calcom/core": "*", "@calcom/ee": "*", - "@calcom/embed-core": "^1.1.0-beta.10", + "@calcom/embed-core": "*", "@calcom/lib": "*", "@calcom/prisma": "*", "@calcom/stripe": "*", diff --git a/package.json b/package.json index 056db78c68..01c230adbb 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "embed-tests-quick": "turbo run embed-tests-quick", "embed-tests": "turbo run embed-tests", "test-e2e": "turbo run test-e2e --concurrency=1", - "type-check": "turbo run type-check" + "type-check": "turbo run type-check", + "embed-tests-prepare": "yarn workspace @calcom/prisma db-reset && yarn build" }, "devDependencies": { "dotenv-checker": "^1.1.5", diff --git a/packages/embeds/embed-core/package.json b/packages/embeds/embed-core/package.json index 0f51cdfb2f..0908082761 100644 --- a/packages/embeds/embed-core/package.json +++ b/packages/embeds/embed-core/package.json @@ -1,12 +1,14 @@ { "name": "@calcom/embed-core", - "version": "1.1.0-beta.10", + "version": "1.1.0", "description": "This is the vanilla JS core script that embeds Cal Link", "main": "./dist/embed/embed.js", "types": "./dist/index.d.ts", "scripts": { + "embed-dev": "yarn workspace @calcom/embed-core dev", + "embed-web-start": "yarn workspace @calcom/web start", "__build": "yarn tailwind && vite build && yarn tsc --emitDeclarationOnly --declarationDir dist && cp -r ../../../apps/web/public/embed ./dist/", - "__dev": "yarn __build --mode development", + "__dev": "yarn tailwind && vite build --mode development", "build": "NEXT_PUBLIC_EMBED_FINGER_PRINT=$(git rev-parse --short HEAD) yarn __build", "build-preview": "PREVIEW_BUILD=1 yarn __build ", "vite": "vite", @@ -18,6 +20,7 @@ "lint": "eslint --ext .ts,.js src", "embed-tests": "yarn playwright test --config=playwright/config/playwright.config.ts", "embed-tests-quick": "QUICK=true yarn embed-tests", + "embed-tests-update-snapshots:ci": "yarn embed-tests-quick --update-snapshots", "prepare": "NEXT_PUBLIC_WEBAPP_URL='https://app.cal.com' yarn build" }, "files": [ diff --git a/packages/embeds/embed-core/playwright/config/playwright.config.ts b/packages/embeds/embed-core/playwright/config/playwright.config.ts index 212ee66cdb..469dc70124 100644 --- a/packages/embeds/embed-core/playwright/config/playwright.config.ts +++ b/packages/embeds/embed-core/playwright/config/playwright.config.ts @@ -1,6 +1,8 @@ import { PlaywrightTestConfig, Frame, devices, expect } from "@playwright/test"; import * as path from "path"; +require("dotenv").config({ path: "../../../../../.env" }); + const outputDir = path.join("../results"); const testDir = path.join("../tests"); const quickMode = process.env.QUICK === "true"; @@ -27,8 +29,8 @@ const config: PlaywrightTestConfig = { }, }, webServer: { - // Start App Server manually - Can't be handled here. See https://github.com/microsoft/playwright/issues/8206 - command: "yarn workspace @calcom/embed-core dev", + // Run servers in parallel as Playwright doesn't support two different webserver commands at the moment See https://github.com/microsoft/playwright/issues/8206 + command: "yarn run-p 'embed-dev' 'embed-web-start'", port: 3100, timeout: 60_000, reuseExistingServer: !process.env.CI, diff --git a/packages/embeds/embed-core/playwright/lib/testUtils.ts b/packages/embeds/embed-core/playwright/lib/testUtils.ts index b39e987b1a..659c69cff9 100644 --- a/packages/embeds/embed-core/playwright/lib/testUtils.ts +++ b/packages/embeds/embed-core/playwright/lib/testUtils.ts @@ -34,7 +34,18 @@ export const getBooking = async (bookingId: string) => { export const getEmbedIframe = async ({ page, pathname }: { page: Page; pathname: string }) => { // FIXME: Need to wait for the iframe to be properly added to shadow dom. There should be a no time boundation way to do it. await new Promise((resolve) => { - setTimeout(resolve, 2000); + // Keep checking + const interval = setInterval(() => { + if (page.frame("cal-embed")) { + resolve(true); + } + }, 1000); + + // Hard Timer + setTimeout(() => { + clearInterval(interval); + resolve(true); + }, 10000); }); const embedIframe = page.frame("cal-embed"); if (!embedIframe) { diff --git a/packages/embeds/embed-react/package.json b/packages/embeds/embed-react/package.json index b0175c8792..67fbd3d572 100644 --- a/packages/embeds/embed-react/package.json +++ b/packages/embeds/embed-react/package.json @@ -1,6 +1,6 @@ { "name": "@calcom/embed-react", - "version": "1.0.6-beta.10", + "version": "1.0.6", "description": "Embed Cal Link as a React Component", "scripts": { "dev": "vite --port=3101 --open", @@ -8,11 +8,15 @@ "build": "vite build && yarn tsc --emitDeclarationOnly --declarationDir dist", "preview": "vite preview", "prepare": "NEXT_PUBLIC_EMBED_LIB_URL='https://app.cal.com/embed/embed.js' NEXT_PUBLIC_WEBAPP_URL='https://app.cal.com' yarn build", + "type-check": "tsc --pretty --noEmit", "lint": "eslint --ext .ts,.js,.tsx,.jsx ./src", "embed-tests": "yarn playwright test --config=./playwright/config/playwright.config.ts", "embed-tests-quick": "QUICK=true yarn embed-tests", "publish-prod": "npm version patch && npm publish --access public", - "publish-beta": "npm version prepatch && npm publish --access public --tag beta" + "publish-beta": "npm version prepatch && npm publish --access public --tag beta", + "embed-tests-update-snapshots:ci": "yarn embed-tests-quick --update-snapshots", + "embed-web-start": "yarn workspace @calcom/web start", + "embed-dev": "yarn workspace @calcom/embed-react dev" }, "main": "./dist/Cal.umd.js", "module": "./dist/Cal.es.js", @@ -40,7 +44,7 @@ "typescript": "^4.6.4" }, "dependencies": { - "@calcom/embed-snippet": "1.0.1-beta.10", - "@calcom/embed-core": "1.1.0-beta.10" + "@calcom/embed-snippet": "1.0.1", + "@calcom/embed-core": "1.1.0" } } diff --git a/packages/embeds/embed-react/playwright/config/playwright.config.ts b/packages/embeds/embed-react/playwright/config/playwright.config.ts index f435c80018..7fee307daa 100644 --- a/packages/embeds/embed-react/playwright/config/playwright.config.ts +++ b/packages/embeds/embed-react/playwright/config/playwright.config.ts @@ -19,11 +19,10 @@ const projects = baseConfig.projects?.map((project) => { const config: PlaywrightTestConfig = { ...baseConfig, webServer: { - // Start App Server manually - Can't be handled here. See https://github.com/microsoft/playwright/issues/8206 - command: "yarn workspace @calcom/embed-react dev", - port: 3101, + command: "yarn run-p 'embed-dev' 'embed-web-start'", + port: 3000, timeout: 60_000, - reuseExistingServer: true, + reuseExistingServer: !process.env.CI, }, use: { ...baseConfig.use, diff --git a/packages/embeds/embed-react/tsconfig.json b/packages/embeds/embed-react/tsconfig.json index b815d65cf6..80c59646ad 100644 --- a/packages/embeds/embed-react/tsconfig.json +++ b/packages/embeds/embed-react/tsconfig.json @@ -10,6 +10,6 @@ "@lib/*": ["../../../apps/web/lib/*"] } }, - "include": ["src","env.d.ts"], + "include": ["src", "env.d.ts"], "exclude": ["dist", "build", "node_modules", "test-cal.tsx"] } diff --git a/packages/embeds/embed-snippet/package.json b/packages/embeds/embed-snippet/package.json index 06e9b4df49..6e169b9d08 100644 --- a/packages/embeds/embed-snippet/package.json +++ b/packages/embeds/embed-snippet/package.json @@ -1,6 +1,6 @@ { "name": "@calcom/embed-snippet", - "version": "1.0.1-beta.10", + "version": "1.0.1", "main": "./dist/snippet.umd.js", "module": "./dist/snippet.es.js", "description": "Vanilla JS embed snippet that is responsible to fetch @calcom/embed-core and thus show Cal Link as an embed on a page.", @@ -8,7 +8,7 @@ "build": "vite build && yarn tsc --emitDeclarationOnly --declarationDir dist", "type-check": "tsc --pretty --noEmit", "lint": "eslint --ext .ts,.js src", - "prepare":"NEXT_PUBLIC_EMBED_LIB_URL='https://app.cal.com/embed/embed.js' NEXT_PUBLIC_WEBAPP_URL='https://app.cal.com' yarn build" + "prepare": "NEXT_PUBLIC_EMBED_LIB_URL='https://app.cal.com/embed/embed.js' NEXT_PUBLIC_WEBAPP_URL='https://app.cal.com' yarn build" }, "files": [ "dist" @@ -18,6 +18,6 @@ "eslint": "^8.15.0" }, "dependencies": { - "@calcom/embed-core": "^1.1.0-beta.10" + "@calcom/embed-core": "^1.1.0" } } diff --git a/turbo.json b/turbo.json index 682af3dc3d..ae353d1b56 100644 --- a/turbo.json +++ b/turbo.json @@ -80,6 +80,13 @@ "@calcom/embed-core#build": { "cache": false }, + "@calcom/embed-react#build": { + "cache": false, + "dependsOn": ["@calcom/embed-snippet#build", "@calcom/embed-core#build"] + }, + "@calcom/embed-snippet#build": { + "cache": false + }, "@calcom/website#build": { "dependsOn": [ "$NEXT_PUBLIC_INTERCOM_APP_ID", @@ -98,14 +105,14 @@ "outputs": [".next/**"] }, "build": { - "dependsOn": ["^build"], + "dependsOn": ["^build", "@calcom/embed-core#build","@calcom/embed-react#build", "@calcom/embed-react#build"], "outputs": ["dist/**", ".next/**"] }, "db-deploy": {}, "db-seed": {}, "deploy": { "cache": false, - "dependsOn": ["@calcom/web#build", "@calcom/embed-core#build"], + "dependsOn": ["@calcom/web#build"], "outputs": [] }, "clean": { @@ -143,6 +150,7 @@ "dependsOn": ["@calcom/prisma#db-reset", "@calcom/web#test", "@calcom/web#build"] }, "type-check": { + "dependsOn": ["@calcom/embed-react#build","@calcom/embed-core#build", "@calcom/embed-snippet#build"], "outputs": [] } } diff --git a/yarn.lock b/yarn.lock index a21b0890e6..d4528b5557 100644 --- a/yarn.lock +++ b/yarn.lock @@ -746,18 +746,6 @@ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz#fe364f025ba74f6de6c837a84ef44bdb1d61e68f" integrity sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w== -"@calcom/embed-react@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@calcom/embed-react/-/embed-react-1.0.5.tgz#8c14bd3d89105e5ba6d0720ed74ec76f8a883f89" - integrity sha512-d9OXMM8w+F9ztl0g+FOQXtJVgIlZAyEw5lhX1aumFnMxHJJWF361//u5D2hsnnAunRV3444iAvI8++848Tf3Vg== - dependencies: - "@calcom/embed-snippet" "^1.0.0" - -"@calcom/embed-snippet@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@calcom/embed-snippet/-/embed-snippet-1.0.0.tgz#e4cf75e0b217312767287b20db54cab9c8ebf94f" - integrity sha512-nMcFkNNhwXqaS55JPeGVj2arDpu1ka6TRC1n1g2cC8G7fLEcWrJbkdiVkoQL8YrEm8t74CgtEE2BLCU4+LTzmg== - "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -1183,6 +1171,11 @@ resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.6.1.tgz#d822792e589aac005462491dd62f86095e0c3bef" integrity sha512-gMd6uIs1U4Oz718Z5gFoV0o/vD43/4zvbyiJN9Dt7PK9Ubxn+TmJwTmYwyNJc5KxxU1t0CmgTNgwZX9+4NjCnQ== +"@headlessui/react@^1.5.0": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.6.3.tgz#6e52477ea3aee7d99f153b98c1b41765ed77db3d" + integrity sha512-WNu/ypGzl0JmJ+sD34KtdycEu2n7EZjKFx2rq6fivsszPdoEyOVZ/GYQMJ437dfAJI0/ZxoRYfrOVduZHjlokQ== + "@heroicons/react@^1.0.4", "@heroicons/react@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.6.tgz#35dd26987228b39ef2316db3b1245c42eb19e324" @@ -3104,6 +3097,13 @@ dependencies: defer-to-connect "^1.0.1" +"@tailwindcss/forms@^0.5.0": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" + integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== + dependencies: + mini-svg-data-uri "^1.2.3" + "@tailwindcss/forms@^0.5.1": version "0.5.1" resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.1.tgz#7fe86b9b67e6d91cb902e2d3f4ebe561cc057a13" @@ -3111,6 +3111,11 @@ dependencies: mini-svg-data-uri "^1.2.3" +"@tailwindcss/line-clamp@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.0.tgz#03353e31e77636b785f2336e8c978502cec1de81" + integrity sha512-HQZo6gfx1D0+DU3nWlNLD5iA6Ef4JAXh0LeD8lOGrJwEDBwwJNKQza6WoXhhY1uQrxOuU8ROxV7CqiQV4CoiLw== + "@tailwindcss/typography@^0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee" @@ -4364,7 +4369,7 @@ autolinker@^3.11.0: dependencies: tslib "^2.3.0" -autoprefixer@^10.3.4, autoprefixer@^10.4.7: +autoprefixer@^10.3.4, autoprefixer@^10.4.2, autoprefixer@^10.4.7: version "10.4.7" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== @@ -5252,6 +5257,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +chart.js@^3.7.1: + version "3.8.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.8.0.tgz#c6c14c457b9dc3ce7f1514a59e9b262afd6f1a94" + integrity sha512-cr8xhrXjLIXVLOBZPkBZVF6NDeiVIrPLHcMhnON7UufudL+CNeRrD+wpYanswlm8NpudMdrt3CHoLMQMxJhHRg== + chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -6782,7 +6792,7 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.10.0, eslint@^8.15.0: +eslint@8.15.0, eslint@^8.10.0, eslint@^8.15.0: version "8.15.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.15.0.tgz#fea1d55a7062da48d82600d2e0974c55612a11e9" integrity sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA== @@ -11756,7 +11766,7 @@ nanoid@^3.1.23, nanoid@^3.3.1: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== -nanoid@^3.1.30, nanoid@^3.3.3: +nanoid@^3.1.30, nanoid@^3.3.3, nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== @@ -11800,7 +11810,7 @@ next-api-middleware@^1.0.1: dependencies: debug "^4.3.2" -next-auth@^4.3.4: +next-auth@^4.3.3, next-auth@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.3.4.tgz#7b241e34e1f68632768cef8ee289e33256cb2b19" integrity sha512-8dGkNicbxY2BYsJq4uOJIEsGt39wXj5AViTBsVfbRQqtAFmZmXYHutf90VBmobm8rT2+Xl60HDUTkuVVK+x+xw== @@ -12959,6 +12969,15 @@ postcss@^8.4.12: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.8: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postgres-array@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" @@ -13361,6 +13380,11 @@ react-calendar@^3.3.1: merge-class-names "^1.1.1" prop-types "^15.6.0" +react-chartjs-2@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/react-chartjs-2/-/react-chartjs-2-4.1.0.tgz#2a123df16d3a987c54eb4e810ed766d3c03adf8d" + integrity sha512-AsUihxEp8Jm1oBhbEovE+w50m9PVNhz1sfwEIT4hZduRC0m14gHWHd0cUaxkFDb8HNkdMIGzsNlmVqKiOpU74g== + react-colorful@^5.5.1: version "5.5.1" resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.5.1.tgz#29d9c4e496f2ca784dd2bb5053a3a4340cfaf784" @@ -15149,6 +15173,11 @@ swarm-js@^0.1.40: tar "^4.0.2" xhr-request "^1.0.1" +swr@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" + integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -17056,11 +17085,6 @@ zod-prisma@^0.5.4: parenthesis "^3.1.8" ts-morph "^13.0.2" -zod@^3.14.4: - version "3.17.3" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.17.3.tgz#86abbc670ff0063a4588d85a4dcc917d6e4af2ba" - integrity sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg== - zod@^3.16.0: version "3.16.0" resolved "https://registry.yarnpkg.com/zod/-/zod-3.16.0.tgz#edfdbf77fcc9a5af13a2630a44bdda5b90e759b7"