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>
This commit is contained in:
Hariom Balhara 2022-05-30 22:41:05 +05:30 committed by GitHub
parent f7cec8d71f
commit 3035412cdc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 205 additions and 43 deletions

110
.github/workflows/e2e-embed.yml vendored Normal file
View File

@ -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

View File

@ -4,7 +4,7 @@ on:
branches:
- main
paths-ignore:
- public/static/locales/**
- apps/web/public/static/locales/**
jobs:
test:
timeout-minutes: 20

View File

@ -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": "*",

View File

@ -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",

View File

@ -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": [

View File

@ -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,

View File

@ -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) {

View File

@ -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"
}
}

View File

@ -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,

View File

@ -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"]
}

View File

@ -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"
}
}

View File

@ -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": []
}
}

View File

@ -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"