diff --git a/.env.example b/.env.example index 84f91a5e7f..b903a4add6 100644 --- a/.env.example +++ b/.env.example @@ -137,3 +137,7 @@ CLOSECOM_API_KEY= # Sendgrid internal email sender SENDGRID_API_KEY= + +# Sentry +NEXT_PUBLIC_SENTRY_DSN= +SENTRY_IGNORE_API_RESOLUTION_ERROR= diff --git a/apps/web/.gitignore b/apps/web/.gitignore index 8b974b328b..e9c028b5aa 100644 --- a/apps/web/.gitignore +++ b/apps/web/.gitignore @@ -67,4 +67,6 @@ tsconfig.tsbuildinfo public/embed # Copied app-store images -public/app-store \ No newline at end of file +public/app-store +# Sentry +.sentryclirc diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 4108d8e01d..8631005388 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -1,5 +1,6 @@ require("dotenv").config({ path: "../../.env" }); const CopyWebpackPlugin = require("copy-webpack-plugin"); +const { withSentryConfig } = require("@sentry/nextjs"); const withTM = require("next-transpile-modules")([ "@calcom/app-store", @@ -228,6 +229,18 @@ const nextConfig = { return redirects; }, + sentry: { + hideSourceMaps: true, + }, }; -module.exports = () => plugins.reduce((acc, next) => next(acc), nextConfig); +const sentryWebpackPluginOptions = { + silent: true, // Suppresses all logs +}; + +const moduleExports = () => plugins.reduce((acc, next) => next(acc), nextConfig); + +// Sentry should be the last thing to export to catch everything right +module.exports = process.env.NEXT_PUBLIC_SENTRY_DSN + ? withSentryConfig(moduleExports, sentryWebpackPluginOptions) + : moduleExports; diff --git a/apps/web/package.json b/apps/web/package.json index 89baefcb9a..d14f36efba 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -56,6 +56,7 @@ "@radix-ui/react-switch": "^1.0.0", "@radix-ui/react-toggle-group": "^1.0.0", "@radix-ui/react-tooltip": "^1.0.0", + "@sentry/nextjs": "^7.17.3", "@stripe/react-stripe-js": "^1.10.0", "@stripe/stripe-js": "^1.35.0", "@tanstack/react-query": "^4.3.9", diff --git a/apps/web/pages/_error.tsx b/apps/web/pages/_error.tsx index 16b292c743..bc98d49d22 100644 --- a/apps/web/pages/_error.tsx +++ b/apps/web/pages/_error.tsx @@ -2,6 +2,7 @@ * Typescript class based component for custom-error * @link https://nextjs.org/docs/advanced-features/custom-error-page */ +import * as Sentry from "@sentry/nextjs"; import { NextPage, NextPageContext } from "next"; import NextError, { ErrorProps } from "next/error"; import React from "react"; @@ -46,7 +47,9 @@ const CustomError: NextPage = (props) => { * Partially adapted from the example in * https://github.com/vercel/next.js/tree/canary/examples/with-sentry */ -CustomError.getInitialProps = async ({ res, err, asPath }: AugmentedNextPageContext) => { +CustomError.getInitialProps = async (ctx: AugmentedNextPageContext) => { + const { res, err, asPath } = ctx; + await Sentry.captureUnderscoreErrorException(ctx); const errorInitialProps = (await NextError.getInitialProps({ res, err, diff --git a/apps/web/sentry.client.config.js b/apps/web/sentry.client.config.js new file mode 100644 index 0000000000..17e9d9aef0 --- /dev/null +++ b/apps/web/sentry.client.config.js @@ -0,0 +1,16 @@ +// This file configures the initialization of Sentry on the browser. +// The config you add here will be used whenever a page is visited. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ +import * as Sentry from "@sentry/nextjs"; + +const SENTRY_DSN = process.env.NEXT_PUBLIC_SENTRY_DSN; + +Sentry.init({ + dsn: SENTRY_DSN, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1.0, + // ... + // Note: if you want to override the automatic release value, do not set a + // `release` value here - use the environment variable `SENTRY_RELEASE`, so + // that it will also get attached to your source maps +}); diff --git a/apps/web/sentry.properties b/apps/web/sentry.properties new file mode 100644 index 0000000000..93228f60da --- /dev/null +++ b/apps/web/sentry.properties @@ -0,0 +1,3 @@ +defaults.url=https://sentry.io/ +defaults.org=calcom +defaults.project=cal \ No newline at end of file diff --git a/apps/web/sentry.server.config.js b/apps/web/sentry.server.config.js new file mode 100644 index 0000000000..3956c7d359 --- /dev/null +++ b/apps/web/sentry.server.config.js @@ -0,0 +1,16 @@ +// This file configures the initialization of Sentry on the server. +// The config you add here will be used whenever the server handles a request. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ +import * as Sentry from "@sentry/nextjs"; + +const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN; + +Sentry.init({ + dsn: SENTRY_DSN, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1.0, + // ... + // Note: if you want to override the automatic release value, do not set a + // `release` value here - use the environment variable `SENTRY_RELEASE`, so + // that it will also get attached to your source maps +}); diff --git a/turbo.json b/turbo.json index 86387e2370..e0b19686ed 100644 --- a/turbo.json +++ b/turbo.json @@ -228,6 +228,8 @@ "$SAML_ADMINS", "$SAML_DATABASE_URL", "$SEND_FEEDBACK_EMAIL", + "$SENTRY_DSN", + "$NEXT_PUBLIC_SENTRY_DSN", "$SLACK_CLIENT_ID", "$SLACK_CLIENT_SECRET", "$SLACK_SIGNING_SECRET", diff --git a/yarn.lock b/yarn.lock index 1fcaf0272e..a9732549c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4806,7 +4806,20 @@ resolved "https://registry.yarnpkg.com/@resvg/resvg-wasm/-/resvg-wasm-2.0.0-alpha.4.tgz#fc2f86186a9641df030d8f9f3f9d995899cd1ecb" integrity sha512-pWIG9a/x1ky8gXKRhPH1OPKpHFoMN1ISLbJ+O+gPXQHIAKhNd5I28RlWf7q576hAOQA9JZTlo3p/M2uyLzJmmw== -"@rollup/pluginutils@^4.2.1": +"@rollup/plugin-sucrase@4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-sucrase/-/plugin-sucrase-4.0.4.tgz#0a3b3d97cdc239ec3399f5a10711f751e9f95d98" + integrity sha512-YH4J8yoJb5EVnLhAwWxYAQNh2SJOR+SdZ6XdgoKEv6Kxm33riYkM8MlMaggN87UoISP52qAFyZ5ey56wu6umGg== + dependencies: + "@rollup/pluginutils" "^4.1.1" + sucrase "^3.20.0" + +"@rollup/plugin-virtual@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-virtual/-/plugin-virtual-3.0.0.tgz#8c3f54b4ab4b267d9cd3dcbaedc58d4fd1deddca" + integrity sha512-K9KORe1myM62o0lKkNR4MmCxjwuAXsZEtIHpaILfv4kILXTOrXt/R2ha7PzMcCHPYdnkWPiBZK8ed4Zr3Ll5lQ== + +"@rollup/pluginutils@^4.1.1", "@rollup/pluginutils@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== @@ -4852,6 +4865,16 @@ "@sentry/utils" "6.19.7" tslib "^1.9.3" +"@sentry/browser@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.17.4.tgz#2e4ad09180905929b823d01e2a029f10933c0a03" + integrity sha512-cNLQ/6ea0KOZyLKXGLTdgfqWYdg43+T/uF9D/hmc6kp/5qXm2dR3FcFRZX6OicaENM3dXvSoBIF6bSWmcszRtQ== + dependencies: + "@sentry/core" "7.17.4" + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + tslib "^1.9.3" + "@sentry/cli@^1.73.0": version "1.74.5" resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.74.5.tgz#4a5c622913087c9ab6f82994da9a7526423779b8" @@ -4865,6 +4888,19 @@ proxy-from-env "^1.1.0" which "^2.0.2" +"@sentry/cli@^1.74.6": + version "1.74.6" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.74.6.tgz#c4f276e52c6f5e8c8d692845a965988068ebc6f5" + integrity sha512-pJ7JJgozyjKZSTjOGi86chIngZMLUlYt2HOog+OJn+WGvqEkVymu8m462j1DiXAnex9NspB4zLLNuZ/R6rTQHg== + dependencies: + https-proxy-agent "^5.0.0" + mkdirp "^0.5.5" + node-fetch "^2.6.7" + npmlog "^4.1.2" + progress "^2.0.3" + proxy-from-env "^1.1.0" + which "^2.0.2" + "@sentry/core@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.7.tgz#156aaa56dd7fad8c89c145be6ad7a4f7209f9785" @@ -4876,6 +4912,15 @@ "@sentry/utils" "6.19.7" tslib "^1.9.3" +"@sentry/core@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.17.4.tgz#62686e1b2baf4e7ba3d9ca57d91d2dfc643b8250" + integrity sha512-U3ABSJBKGK8dJ01nEG2+qNOb6Wv7U3VqoajiZxfV4lpPWNFGCoEhiTytxBlFTOCmdUH8209zSZiWJZaDLy+TSA== + dependencies: + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + tslib "^1.9.3" + "@sentry/hub@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.7.tgz#58ad7776bbd31e9596a8ec46365b45cd8b9cfd11" @@ -4895,6 +4940,16 @@ localforage "^1.8.1" tslib "^1.9.3" +"@sentry/integrations@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.17.4.tgz#facdc4abb1d4714175c7d66bab634a898cc7eead" + integrity sha512-9vL0RRLuMnj0mj61THgRhDUCgTGYbRoCT6HmLGrErHjyTG3d7lUgUwTBQPgw9qYLss1uLKoEtRvcxgtW7ef0BA== + dependencies: + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + localforage "^1.8.1" + tslib "^1.9.3" + "@sentry/minimal@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.7.tgz#b3ee46d6abef9ef3dd4837ebcb6bdfd01b9aa7b4" @@ -4919,6 +4974,25 @@ "@sentry/webpack-plugin" "1.18.8" tslib "^1.9.3" +"@sentry/nextjs@^7.17.3": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.17.4.tgz#9c6d71d17e37da3fcbe753a374e93307a56dbf02" + integrity sha512-l4aHhkYjiC49yvvu/iG0CZGpAfmWdVQ4PlcnzqO9XY40So1LixY7idJEDefqx6LSZ1+VadpZT0o6iRwHfuOllQ== + dependencies: + "@rollup/plugin-sucrase" "4.0.4" + "@rollup/plugin-virtual" "3.0.0" + "@sentry/core" "7.17.4" + "@sentry/integrations" "7.17.4" + "@sentry/node" "7.17.4" + "@sentry/react" "7.17.4" + "@sentry/tracing" "7.17.4" + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + "@sentry/webpack-plugin" "1.20.0" + chalk "3.0.0" + rollup "2.78.0" + tslib "^1.9.3" + "@sentry/node@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.19.7.tgz#32963b36b48daebbd559e6f13b1deb2415448592" @@ -4933,6 +5007,19 @@ lru_map "^0.3.3" tslib "^1.9.3" +"@sentry/node@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.17.4.tgz#647ebcbd7228e5fa326dc3f95aceab34771205d3" + integrity sha512-cR+Gsir9c/tzFWxvk4zXkMQy6tNRHEYixHrb88XIjZVYDqDS9l2/bKs5nJusdmaUeLtmPp5Et2o7RJyS7gvKTQ== + dependencies: + "@sentry/core" "7.17.4" + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + "@sentry/react@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/react/-/react-6.19.7.tgz#58cc2d6da20f7d3b0df40638dfbbbc86c9c85caf" @@ -4945,6 +5032,17 @@ hoist-non-react-statics "^3.3.2" tslib "^1.9.3" +"@sentry/react@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.17.4.tgz#1d2c752841ace0561043be6a863de9fc7437f64c" + integrity sha512-Hw8lgeCgUthgVQ5OG24/iZWGNXnxodVfCmfngeIfqUWeFgQUae1V833GNkYZCiE5j2yjNVh3LL2bXA8PnvMCEg== + dependencies: + "@sentry/browser" "7.17.4" + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + hoist-non-react-statics "^3.3.2" + tslib "^1.9.3" + "@sentry/tracing@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.19.7.tgz#54bb99ed5705931cd33caf71da347af769f02a4c" @@ -4956,11 +5054,26 @@ "@sentry/utils" "6.19.7" tslib "^1.9.3" +"@sentry/tracing@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.17.4.tgz#1254f4eb7397e1134248de1dade33d2fec864005" + integrity sha512-9Fz6DI16ddnd970mlB5MiCNRSmSXp4SVZ1Yv3L22oS3kQeNxjBTE+htYNwJzSPrQp9aL/LqTYwlnrCy24u9XQA== + dependencies: + "@sentry/core" "7.17.4" + "@sentry/types" "7.17.4" + "@sentry/utils" "7.17.4" + tslib "^1.9.3" + "@sentry/types@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.7.tgz#c6b337912e588083fc2896eb012526cf7cfec7c7" integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg== +"@sentry/types@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.17.4.tgz#476522bc988989101e7aee9eee3c3f8f16fa59ea" + integrity sha512-QJj8vO4AtxuzQfJIzDnECSmoxwnS+WJsm1Ta2Cwdy+TUCBJyWpW7aIJJGta76zb9gNPGb3UcAbeEjhMJBJeRMQ== + "@sentry/utils@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.7.tgz#6edd739f8185fd71afe49cbe351c1bbf5e7b7c79" @@ -4969,6 +5082,14 @@ "@sentry/types" "6.19.7" tslib "^1.9.3" +"@sentry/utils@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.17.4.tgz#b8f4fb6a329765b97668b34f6d397e8de2169fef" + integrity sha512-ioG0ANy8uiWzig82/e7cc+6C9UOxkyBzJDi1luoQVDH6P0/PvM8GzVU+1iUVUipf8+OL1Jh09GrWnd5wLm3XNQ== + dependencies: + "@sentry/types" "7.17.4" + tslib "^1.9.3" + "@sentry/webpack-plugin@1.18.8": version "1.18.8" resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.18.8.tgz#247a73a0aa9e28099a736bbe89ca0d35cbac7636" @@ -4976,6 +5097,14 @@ dependencies: "@sentry/cli" "^1.73.0" +"@sentry/webpack-plugin@1.20.0": + version "1.20.0" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.20.0.tgz#e7add76122708fb6b4ee7951294b521019720e58" + integrity sha512-Ssj1mJVFsfU6vMCOM2d+h+KQR7QHSfeIP16t4l20Uq/neqWXZUQ2yvQfe4S3BjdbJXz/X4Rw8Hfy1Sd0ocunYw== + dependencies: + "@sentry/cli" "^1.74.6" + webpack-sources "^2.0.0 || ^3.0.0" + "@shuding/opentype.js@1.4.0-beta.0": version "1.4.0-beta.0" resolved "https://registry.yarnpkg.com/@shuding/opentype.js/-/opentype.js-1.4.0-beta.0.tgz#5d1e7e9e056f546aad41df1c5043f8f85d39e24b" @@ -9665,6 +9794,14 @@ chalk@2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" +chalk@3.0.0, chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" @@ -9701,14 +9838,6 @@ chalk@^2.0.0, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - change-case@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/change-case/-/change-case-2.3.1.tgz#2c4fde3f063bb41d00cd68e0d5a09db61cbe894f" @@ -18289,7 +18418,7 @@ mysql2@2.3.3: seq-queue "^0.0.5" sqlstring "^2.3.2" -mz@^2.4.0: +mz@^2.4.0, mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== @@ -21711,6 +21840,13 @@ rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: dependencies: bn.js "^5.2.0" +rollup@2.78.0: + version "2.78.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.0.tgz#00995deae70c0f712ea79ad904d5f6b033209d9e" + integrity sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg== + optionalDependencies: + fsevents "~2.3.2" + "rollup@>=2.59.0 <2.78.0": version "2.77.3" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" @@ -23021,6 +23157,18 @@ stylis@4.0.13: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== +sucrase@^3.20.0: + version "3.28.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.28.0.tgz#7fd8b3118d2155fcdf291088ab77fa6eefd63c4c" + integrity sha512-TK9600YInjuiIhVM3729rH4ZKPOsGeyXUwY+Ugu9eilNbdTFyHr6XcAGYbRVZPDgWj6tgI7bx95aaJjHnbffag== + dependencies: + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + superagent@^5.1.1: version "5.3.1" resolved "https://registry.yarnpkg.com/superagent/-/superagent-5.3.1.tgz#d62f3234d76b8138c1320e90fa83dc1850ccabf1" @@ -23723,6 +23871,11 @@ ts-essentials@^7.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + ts-jest@^28.0.8: version "28.0.8" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73" @@ -25223,7 +25376,7 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.3: +"webpack-sources@^2.0.0 || ^3.0.0", webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== @@ -25845,7 +25998,7 @@ zod-prisma@^0.5.4: parenthesis "^3.1.8" ts-morph "^13.0.2" -zod@^3.17.3, zod@^3.19.1: +zod@^3.17.3, zod@^3.18.0, zod@^3.19.1: version "3.19.1" resolved "https://registry.yarnpkg.com/zod/-/zod-3.19.1.tgz#112f074a97b50bfc4772d4ad1576814bd8ac4473" integrity sha512-LYjZsEDhCdYET9ikFu6dVPGp2YH9DegXjdJToSzD9rO6fy4qiRYFoyEYwps88OseJlPyl2NOe2iJuhEhL7IpEA==