From b9a8b613bb33e29973571085077c20862f069d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Omar=20L=C3=B3pez?= Date: Thu, 1 Aug 2024 17:30:46 -0700 Subject: [PATCH] fix: don't wait for telemetry for booking critical path (#16039) --- package.json | 1 + packages/prisma/extensions/usage-tracking.ts | 24 +- yarn.lock | 304 ++++++++++++++----- 3 files changed, 247 insertions(+), 82 deletions(-) diff --git a/package.json b/package.json index 909738846f..cabedae147 100644 --- a/package.json +++ b/package.json @@ -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" diff --git a/packages/prisma/extensions/usage-tracking.ts b/packages/prisma/extensions/usage-tracking.ts index fdbaf12be0..726de60232 100644 --- a/packages/prisma/extensions/usage-tracking.ts +++ b/packages/prisma/extensions/usage-tracking.ts @@ -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); }, }, diff --git a/yarn.lock b/yarn.lock index 90278c4e5e..4b5456dc95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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: