fix: don't wait for telemetry for booking critical path (#16039)

This commit is contained in:
Omar López
2024-08-01 17:30:46 -07:00
committed by GitHub
parent 76377d2d2c
commit b9a8b613bb
3 changed files with 247 additions and 82 deletions
+1
View File
@@ -110,6 +110,7 @@
},
"dependencies": {
"@daily-co/daily-js": "^0.59.0",
"@vercel/functions": "^1.4.0",
"city-timezones": "^1.2.1",
"eslint": "^8.34.0",
"turbo": "^1.10.1"
+12 -12
View File
@@ -1,29 +1,29 @@
import { Prisma } from "@prisma/client";
import { waitUntil } from "@vercel/functions";
import LicenseKeyService, { UsageEvent } from "@calcom/ee/common/server/LicenseKeyService";
async function incrementUsage(event?: UsageEvent) {
try {
const licenseKeyService = await LicenseKeyService.create();
await licenseKeyService.incrementUsage(event);
} catch (e) {
console.log(e);
}
}
export function usageTrackingExtention() {
return Prisma.defineExtension({
query: {
booking: {
async create({ args, query }) {
try {
const licenseKeyService = await LicenseKeyService.create();
await licenseKeyService.incrementUsage();
} catch (e) {
console.log(e);
}
waitUntil(incrementUsage(UsageEvent.USER));
return query(args);
},
},
user: {
async create({ args, query }) {
try {
const licenseKeyService = await LicenseKeyService.create();
await licenseKeyService.incrementUsage(UsageEvent.USER);
} catch (e) {
console.log(e);
}
waitUntil(incrementUsage(UsageEvent.USER));
return query(args);
},
},
+234 -70
View File
@@ -4218,7 +4218,7 @@ __metadata:
languageName: unknown
linkType: soft
"@calcom/atoms@*, @calcom/atoms@workspace:packages/platform/atoms":
"@calcom/atoms@*, @calcom/atoms@workspace:^, @calcom/atoms@workspace:packages/platform/atoms":
version: 0.0.0-use.local
resolution: "@calcom/atoms@workspace:packages/platform/atoms"
dependencies:
@@ -4291,6 +4291,7 @@ __metadata:
prisma: ^5.7.1
react: ^18
react-dom: ^18
react-select: ^5.8.0
tailwindcss: ^3.3.0
typescript: ^4.9.4
languageName: unknown
@@ -4406,17 +4407,17 @@ __metadata:
"@heroicons/react": ^1.0.6
"@prisma/client": ^5.4.2
"@tailwindcss/forms": ^0.5.2
"@types/node": 16.9.1
"@types/node": ^20.3.1
"@types/react": 18.0.26
autoprefixer: ^10.4.12
autoprefixer: ^10.4.19
chart.js: ^3.7.1
client-only: ^0.0.1
eslint: ^8.34.0
next: ^13.5.4
next: ^14.1.3
next-auth: ^4.22.1
next-i18next: ^13.2.2
postcss: ^8.4.18
prisma: ^5.4.2
postcss: ^8.4.38
prisma: ^5.7.1
prisma-field-encryption: ^1.4.0
react: ^18.2.0
react-chartjs-2: ^4.0.1
@@ -4425,7 +4426,7 @@ __metadata:
react-live-chat-loader: ^2.8.1
swr: ^1.2.2
tailwindcss: ^3.3.3
typescript: ^4.9.4
typescript: ^5.3.3
zod: ^3.22.4
languageName: unknown
linkType: soft
@@ -5675,6 +5676,7 @@ __metadata:
dependencies:
"@algora/sdk": ^0.1.2
"@calcom/app-store": "*"
"@calcom/atoms": "workspace:^"
"@calcom/config": "*"
"@calcom/dayjs": "*"
"@calcom/embed-react": "workspace:^"
@@ -5705,22 +5707,23 @@ __metadata:
"@radix-ui/react-tabs": ^1.0.0
"@radix-ui/react-tooltip": ^1.0.0
"@stripe/stripe-js": ^1.35.0
"@tanstack/react-query": ^4.3.9
"@tanstack/react-query": ^5.17.15
"@typeform/embed-react": ^1.2.4
"@types/bcryptjs": ^2.4.2
"@types/debounce": ^1.2.1
"@types/gtag.js": ^0.0.10
"@types/micro": 7.3.7
"@types/node": 16.9.1
"@types/node": ^20.3.1
"@types/react": 18.0.26
"@types/react-gtm-module": ^2.0.1
"@types/xml2js": ^0.4.11
"@vercel/analytics": ^0.1.6
"@vercel/edge-functions-ui": ^0.2.1
"@vercel/og": ^0.5.0
autoprefixer: ^10.4.12
autoprefixer: ^10.4.19
bcryptjs: ^2.4.3
clsx: ^1.2.1
class-variance-authority: ^0.7.0
clsx: ^2.0.0
cobe: ^0.4.1
concurrently: ^7.6.0
cross-env: ^7.0.3
@@ -5732,6 +5735,7 @@ __metadata:
env-cmd: ^10.1.0
eslint: ^8.34.0
fathom-client: ^3.5.0
framer-motion: ^11.0.25
globby: ^13.1.3
graphql: ^16.8.0
graphql-codegen: ^0.4.0
@@ -5741,7 +5745,7 @@ __metadata:
i18n-unused: ^0.13.0
iframe-resizer-react: ^1.1.0
keen-slider: ^6.8.0
lucide-react: ^0.171.0
lucide-react: ^0.364.0
micro: ^10.0.1
next: ^14.1.3
next-auth: ^4.22.1
@@ -5749,11 +5753,11 @@ __metadata:
next-i18next: ^13.2.2
next-seo: ^6.0.0
playwright-core: ^1.38.1
postcss: ^8.4.18
postcss: ^8.4.38
prism-react-renderer: ^1.3.5
react: ^18.2.0
react-confetti: ^6.0.1
react-datocms: ^3.1.0
react-datocms: ^5.0.3
react-device-detect: ^2.2.2
react-dom: ^18.2.0
react-fast-marquee: ^1.6.4
@@ -5763,21 +5767,23 @@ __metadata:
react-live-chat-loader: ^2.8.1
react-markdown: ^9.0.1
react-merge-refs: 1.1.0
react-parallax-tilt: ^1.7.226
react-resize-detector: ^9.1.0
react-twemoji: ^0.3.0
react-twitter-embed: ^4.0.4
react-use-measure: ^2.1.1
react-wrap-balancer: ^1.0.0
remark: ^14.0.2
remark-html: ^14.0.1
remeda: ^1.24.1
stripe: ^9.16.0
stripe: ^15.3.0
tailwind-merge: ^1.13.2
tailwindcss: ^3.3.3
ts-node: ^10.9.1
typescript: ^4.9.4
typescript: ^5.3.3
wait-on: ^7.0.1
xml2js: ^0.6.0
zod: ^3.22.2
zod: ^3.22.4
languageName: unknown
linkType: soft
@@ -9560,6 +9566,59 @@ __metadata:
languageName: node
linkType: hard
"@mux/mux-player-react@npm:*":
version: 2.8.1
resolution: "@mux/mux-player-react@npm:2.8.1"
dependencies:
"@mux/mux-player": 2.8.1
"@mux/playback-core": 0.25.0
prop-types: ^15.7.2
peerDependencies:
"@types/react": ^17.0.0 || ^18
react: ^17.0.2 || ^18
react-dom: ^17.0.2 || ^18
peerDependenciesMeta:
"@types/react":
optional: true
"@types/react-dom":
optional: true
checksum: b23d4f3c2693eb36b7143f424039529af9424952f305bed0bb6fed137676a8c693f31be43bc9b866ddddacd6c8642da4f9a7fa2be26739e0b307f58eef696a0a
languageName: node
linkType: hard
"@mux/mux-player@npm:2.8.1":
version: 2.8.1
resolution: "@mux/mux-player@npm:2.8.1"
dependencies:
"@mux/mux-video": 0.20.0
"@mux/playback-core": 0.25.0
media-chrome: ~3.2.5
checksum: 4b71e9936c8e7b08e181e9932e882d1e9f62c114926368db0fe5db408d63f52d80d619d9a3d710c4c26fea5afc0be9f950709d9b099697ed6672b3c04506b5e8
languageName: node
linkType: hard
"@mux/mux-video@npm:0.20.0":
version: 0.20.0
resolution: "@mux/mux-video@npm:0.20.0"
dependencies:
"@mux/playback-core": 0.25.0
castable-video: ~1.0.9
custom-media-element: ~1.3.1
media-tracks: ~0.3.2
checksum: 2f316a6697ff63dbcc5428216600ced1db14e22c195567c69e826b29b2752b9aeee785f073bc2eef71d7422b696370608d9d081b8e24b5332dfeb57bf0839791
languageName: node
linkType: hard
"@mux/playback-core@npm:0.25.0":
version: 0.25.0
resolution: "@mux/playback-core@npm:0.25.0"
dependencies:
hls.js: ~1.5.11
mux-embed: ~5.2.0
checksum: 37175985f7ec7df0b2f24e9b6e3df9c39f94da81b0f1e59b989dd9d04d9451dae2ea6e06d4208a673e532ea2351c39c2d2ec0e149cde60a9a09b9dbd00ea2866
languageName: node
linkType: hard
"@ndelangen/get-tarball@npm:^3.0.7":
version: 3.0.9
resolution: "@ndelangen/get-tarball@npm:3.0.9"
@@ -16130,13 +16189,6 @@ __metadata:
languageName: node
linkType: hard
"@tanstack/query-core@npm:4.36.1":
version: 4.36.1
resolution: "@tanstack/query-core@npm:4.36.1"
checksum: 47672094da20d89402d9fe03bb7b0462be73a76ff9ca715169738bc600a719d064d106d083a8eedae22a2c22de22f87d5eb5d31ef447aba771d9190f2117ed10
languageName: node
linkType: hard
"@tanstack/query-core@npm:5.17.19":
version: 5.17.19
resolution: "@tanstack/query-core@npm:5.17.19"
@@ -16144,25 +16196,6 @@ __metadata:
languageName: node
linkType: hard
"@tanstack/react-query@npm:^4.3.9":
version: 4.36.1
resolution: "@tanstack/react-query@npm:4.36.1"
dependencies:
"@tanstack/query-core": 4.36.1
use-sync-external-store: ^1.2.0
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
react-native: "*"
peerDependenciesMeta:
react-dom:
optional: true
react-native:
optional: true
checksum: 1aff0a476859386f8d32253fa0d0bde7b81769a6d4d4d9cbd78778f0f955459a3bdb7ee27a0d2ee7373090f12998b45df80db0b5b313bd0a7a39d36c6e8e51c5
languageName: node
linkType: hard
"@tanstack/react-query@npm:^5.17.15":
version: 5.17.19
resolution: "@tanstack/react-query@npm:5.17.19"
@@ -18426,6 +18459,18 @@ __metadata:
languageName: node
linkType: hard
"@vercel/functions@npm:^1.4.0":
version: 1.4.0
resolution: "@vercel/functions@npm:1.4.0"
peerDependencies:
"@aws-sdk/credential-provider-web-identity": "*"
peerDependenciesMeta:
"@aws-sdk/credential-provider-web-identity":
optional: true
checksum: 0b21baa5b7408b0d476c4b723a34b1d8c068d482d8423c125acb4d043afa74c101947142aaecb59cc28c26748b2cc33b1790f40ea0c5cdcd8d0d43f6420ec1e9
languageName: node
linkType: hard
"@vercel/og@npm:^0.5.0":
version: 0.5.0
resolution: "@vercel/og@npm:0.5.0"
@@ -21354,6 +21399,7 @@ __metadata:
"@testing-library/jest-dom": ^5.16.5
"@types/jsdom": ^21.1.3
"@types/jsonwebtoken": ^9.0.3
"@vercel/functions": ^1.4.0
c8: ^7.13.0
checkly: latest
city-timezones: ^1.2.1
@@ -21597,6 +21643,15 @@ __metadata:
languageName: node
linkType: hard
"castable-video@npm:~1.0.9":
version: 1.0.10
resolution: "castable-video@npm:1.0.10"
dependencies:
custom-media-element: ~1.3.2
checksum: 5b7a27aacf305f40c6867e96e773f4290260f6eb8b01fe1f209506f8f6dec4cd099f3e35ee57de098829e4bcc688ccdc2cbb2fc86c509712dd573eadf66d42cc
languageName: node
linkType: hard
"ccount@npm:^2.0.0":
version: 2.0.1
resolution: "ccount@npm:2.0.1"
@@ -22061,6 +22116,15 @@ __metadata:
languageName: node
linkType: hard
"class-variance-authority@npm:^0.7.0":
version: 0.7.0
resolution: "class-variance-authority@npm:0.7.0"
dependencies:
clsx: 2.0.0
checksum: e7fd1fab433ef06f52a1b7b241b70b4a185864deef199d3b0a2c3412f1cc179517288264c383f3b971a00d76811625fc8f7ffe709e6170219e88cd7368f08a20
languageName: node
linkType: hard
"classnames@npm:^2.2.5, classnames@npm:^2.2.6":
version: 2.3.2
resolution: "classnames@npm:2.3.2"
@@ -22333,6 +22397,13 @@ __metadata:
languageName: node
linkType: hard
"clsx@npm:2.0.0":
version: 2.0.0
resolution: "clsx@npm:2.0.0"
checksum: a2cfb2351b254611acf92faa0daf15220f4cd648bdf96ce369d729813b85336993871a4bf6978ddea2b81b5a130478339c20d9d0b5c6fc287e5147f0c059276e
languageName: node
linkType: hard
"clsx@npm:^1.1.1":
version: 1.1.1
resolution: "clsx@npm:1.1.1"
@@ -22340,13 +22411,6 @@ __metadata:
languageName: node
linkType: hard
"clsx@npm:^1.2.1":
version: 1.2.1
resolution: "clsx@npm:1.2.1"
checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12
languageName: node
linkType: hard
"clsx@npm:^2.0.0":
version: 2.1.0
resolution: "clsx@npm:2.1.0"
@@ -23647,6 +23711,13 @@ __metadata:
languageName: node
linkType: hard
"custom-media-element@npm:~1.3.1, custom-media-element@npm:~1.3.2":
version: 1.3.2
resolution: "custom-media-element@npm:1.3.2"
checksum: 9ec2ff88c3c5ba7d20b9484c0359b4cfe08ad6804f3116934ffbae2f2e0e04d2a832beb6f0bec56027a969ab366727d217406f750890613c988de6de5330cb4f
languageName: node
linkType: hard
"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:^3.1.6":
version: 3.2.3
resolution: "d3-array@npm:3.2.3"
@@ -27701,6 +27772,26 @@ __metadata:
languageName: node
linkType: hard
"framer-motion@npm:^11.0.25":
version: 11.3.21
resolution: "framer-motion@npm:11.3.21"
dependencies:
tslib: ^2.4.0
peerDependencies:
"@emotion/is-prop-valid": "*"
react: ^18.0.0
react-dom: ^18.0.0
peerDependenciesMeta:
"@emotion/is-prop-valid":
optional: true
react:
optional: true
react-dom:
optional: true
checksum: 0726c90c08e0c5b150947412ce06f1552c9af539f1d8d4dd8dce6ef0d36c3f2bf5b8e9dbb9c3e928e275948dfe4e15fdae9fdb8ceaba050a2f97c0f4963446d3
languageName: node
linkType: hard
"fresh@npm:0.5.2, fresh@npm:^0.5.2":
version: 0.5.2
resolution: "fresh@npm:0.5.2"
@@ -29373,6 +29464,13 @@ __metadata:
languageName: node
linkType: hard
"hls.js@npm:~1.5.11":
version: 1.5.13
resolution: "hls.js@npm:1.5.13"
checksum: 534b48b18638fefe7788fd31d92b0b4e3820271b470fbd18c29cd46d51e6381b6f011d732f6196d4cda3148c81d8cb7740e1d1d0f2da0031e808b468198142f3
languageName: node
linkType: hard
"hmac-drbg@npm:^1.0.1":
version: 1.0.1
resolution: "hmac-drbg@npm:1.0.1"
@@ -34200,15 +34298,6 @@ __metadata:
languageName: node
linkType: hard
"lucide-react@npm:^0.171.0":
version: 0.171.0
resolution: "lucide-react@npm:0.171.0"
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0
checksum: 768ffe368c52a518ee339203d86ff4479989ab4d79c0716f721900c4bb7392ef6ff7a14807f6a685abd74d27f4c1778170bff77a0ab4c3e06c17944b557d8300
languageName: node
linkType: hard
"lucide-react@npm:^0.364.0":
version: 0.364.0
resolution: "lucide-react@npm:0.364.0"
@@ -34778,6 +34867,20 @@ __metadata:
languageName: node
linkType: hard
"media-chrome@npm:~3.2.5":
version: 3.2.5
resolution: "media-chrome@npm:3.2.5"
checksum: f1d4620d250327c0cb4872c2f7825f407b4f8086e9830a6db76f6be97d6cbed0c0779a768d1e3b2fde62a4bfa283cfadabf588985af1720af0d4c206515b3b7c
languageName: node
linkType: hard
"media-tracks@npm:~0.3.2":
version: 0.3.3
resolution: "media-tracks@npm:0.3.3"
checksum: 4795af3f171d7ad3a68d1ac1c1e8166a735244fe57d3fc0ec53b1c7410799e524756fc0bfb389632aebb148436b03baade36ca34a3f5377776c3968f6d2cc580
languageName: node
linkType: hard
"media-typer@npm:0.3.0":
version: 0.3.0
resolution: "media-typer@npm:0.3.0"
@@ -36198,6 +36301,13 @@ __metadata:
languageName: node
linkType: hard
"mux-embed@npm:~5.2.0":
version: 5.2.1
resolution: "mux-embed@npm:5.2.1"
checksum: ec34d3e003e2520be6d1386ca2383daa198a1fa3a469ca3f06c11a742d6ab136eef4944c37e8f2dcaa0585e1b0a6dfc119e3cf2302c7eb0e7f2ebc7c1fc95fbd
languageName: node
linkType: hard
"mysql2@npm:3.9.1":
version: 3.9.1
resolution: "mysql2@npm:3.9.1"
@@ -40519,20 +40629,21 @@ __metadata:
languageName: node
linkType: hard
"react-datocms@npm:^3.1.0":
version: 3.1.4
resolution: "react-datocms@npm:3.1.4"
"react-datocms@npm:^5.0.3":
version: 5.0.3
resolution: "react-datocms@npm:5.0.3"
dependencies:
"@mux/mux-player-react": "*"
datocms-listen: ^0.1.9
datocms-structured-text-generic-html-renderer: ^2.0.1
datocms-structured-text-utils: ^2.0.1
react-intersection-observer: ^8.33.1
react-intersection-observer: ^9.4.3
react-string-replace: ^1.1.0
universal-base64: ^2.1.0
use-deep-compare-effect: ^1.6.1
peerDependencies:
react: ">= 16.12.0"
checksum: 54aba12aef4937175c2011548a8a576c96c8d8a596e84d191826910624c1d596e76a49782689dc236388a10803b02e700ac820cb7500cca7fd147a81f6c544c3
checksum: 22c20152afb54424acfe967a2c8c525cd9f132a33374f2aba0231f16ea64dade389b096e2dac8de9ffded612bc32e9891d725609ee947639fe1cef907cb143f5
languageName: node
linkType: hard
@@ -40784,12 +40895,16 @@ __metadata:
languageName: node
linkType: hard
"react-intersection-observer@npm:^8.33.1":
version: 8.34.0
resolution: "react-intersection-observer@npm:8.34.0"
"react-intersection-observer@npm:^9.4.3":
version: 9.13.0
resolution: "react-intersection-observer@npm:9.13.0"
peerDependencies:
react: ^15.0.0 || ^16.0.0 || ^17.0.0|| ^18.0.0
checksum: 7713fecfd1512c7f5a60f9f0bf15403b8f8bbd4110bcafaeaea6de36a0e0eb60368c3638f99e9c97b75ad8fc787ea48c241dcb5c694f821d7f2976f709082cc5
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
peerDependenciesMeta:
react-dom:
optional: true
checksum: ee2a163b078923c1556814834f83d7c3ea3e8a9d3ceef974351fd52afe12163518ec57cb2eb0f6544ac255ac4b64d2e7652bc5d60c255159c0f25bda57a565b6
languageName: node
linkType: hard
@@ -40899,6 +41014,16 @@ __metadata:
languageName: node
linkType: hard
"react-parallax-tilt@npm:^1.7.226":
version: 1.7.234
resolution: "react-parallax-tilt@npm:1.7.234"
peerDependencies:
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
checksum: a1867f4653824258b872fb11eec6a575d3b1c136e5c54613d97e972c3a1eefd03eb22c0eaec2673af2b173820fccfda4773e6debff95df248f8f3edbb5bae184
languageName: node
linkType: hard
"react-phone-input-2@npm:^2.15.1":
version: 2.15.1
resolution: "react-phone-input-2@npm:2.15.1"
@@ -41151,6 +41276,26 @@ __metadata:
languageName: node
linkType: hard
"react-select@npm:^5.8.0":
version: 5.8.0
resolution: "react-select@npm:5.8.0"
dependencies:
"@babel/runtime": ^7.12.0
"@emotion/cache": ^11.4.0
"@emotion/react": ^11.8.1
"@floating-ui/dom": ^1.0.1
"@types/react-transition-group": ^4.4.0
memoize-one: ^6.0.0
prop-types: ^15.6.0
react-transition-group: ^4.3.0
use-isomorphic-layout-effect: ^1.1.2
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
checksum: c8398cc0aefb5ee5438b6176c86676e2d3fed7457c16b0769f423a0da0ae431a7df25c2cadf13b709700882b8ebd80a58b1e557fec3e22ad3cbf60164ca9e745
languageName: node
linkType: hard
"react-smooth@npm:^2.0.2":
version: 2.0.2
resolution: "react-smooth@npm:2.0.2"
@@ -41313,6 +41458,18 @@ __metadata:
languageName: node
linkType: hard
"react-twitter-embed@npm:^4.0.4":
version: 4.0.4
resolution: "react-twitter-embed@npm:4.0.4"
dependencies:
scriptjs: ^2.5.9
peerDependencies:
react: ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0
checksum: cdb3c5bd04c4da0efa767476be47c0a3865fb6335f2a1b9e242170167b51615c38164223278cef60c77143c4bac27ba582cbea054d0af3f138104fa5ec537c4c
languageName: node
linkType: hard
"react-universal-interface@npm:^0.6.2":
version: 0.6.2
resolution: "react-universal-interface@npm:0.6.2"
@@ -43137,6 +43294,13 @@ __metadata:
languageName: node
linkType: hard
"scriptjs@npm:^2.5.9":
version: 2.5.9
resolution: "scriptjs@npm:2.5.9"
checksum: fc84cb6b60b6fb9aa6f1b3bc59fc94b233bd5241ed3a04233579014382b5eb60640269c87d8657902acc09f9b785ee33230c218627cea00e653564bda8f5acb6
languageName: node
linkType: hard
"scuid@npm:^1.1.0":
version: 1.1.0
resolution: "scuid@npm:1.1.0"
@@ -47645,7 +47809,7 @@ __metadata:
languageName: node
linkType: hard
"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.2.0":
"use-sync-external-store@npm:1.2.0":
version: 1.2.0
resolution: "use-sync-external-store@npm:1.2.0"
peerDependencies: