diff --git a/apps/webapp/app/components/integrations/ConnectToOAuthForm.tsx b/apps/webapp/app/components/integrations/ConnectToOAuthForm.tsx index d6b2ad9bd..f774892ad 100644 --- a/apps/webapp/app/components/integrations/ConnectToOAuthForm.tsx +++ b/apps/webapp/app/components/integrations/ConnectToOAuthForm.tsx @@ -24,6 +24,7 @@ import { Label } from "../primitives/Label"; import { NamedIcon } from "../primitives/NamedIcon"; import { Paragraph } from "../primitives/Paragraph"; import type { ConnectionType } from "@trigger.dev/database"; +import { useFeatures } from "~/hooks/useFeatures"; export type Status = "loading" | "idle"; @@ -45,6 +46,8 @@ export function ConnectToOAuthForm({ const [id] = useState(cuid()); const transition = useNavigation(); const fetcher = useFetcher(); + const { isManagedCloud } = useFeatures(); + const [ form, { title, scopes, hasCustomClient, customClientId, customClientSecret }, @@ -66,7 +69,9 @@ export function ConnectToOAuthForm({ ) ); - const [useMyOAuthApp, setUseMyOAuthApp] = useState(clientType === "EXTERNAL"); + const requiresCustomOAuthApp = clientType === "EXTERNAL" || !isManagedCloud; + + const [useMyOAuthApp, setUseMyOAuthApp] = useState(requiresCustomOAuthApp); const { filterText, setFilterText, filteredItems } = useTextFilter({ items: authMethod.scopes, @@ -126,10 +131,10 @@ export function ConnectToOAuthForm({ id="hasCustomClient" label="Use my OAuth App" variant="simple/small" - defaultChecked={clientType === "EXTERNAL" ? true : useMyOAuthApp} - disabled={clientType === "EXTERNAL"} + disabled={requiresCustomOAuthApp} onChange={(checked) => setUseMyOAuthApp(checked)} {...conform.input(hasCustomClient, { type: "checkbox" })} + defaultChecked={requiresCustomOAuthApp} /> {useMyOAuthApp && (
diff --git a/apps/webapp/app/entry.client.tsx b/apps/webapp/app/entry.client.tsx index ef8b1cb92..5b21b4ca9 100644 --- a/apps/webapp/app/entry.client.tsx +++ b/apps/webapp/app/entry.client.tsx @@ -1,6 +1,5 @@ import { RemixBrowser, useLocation, useMatches } from "@remix-run/react"; import { hydrateRoot } from "react-dom/client"; -import * as Sentry from "@sentry/remix"; import { useEffect } from "react"; import posthog from "posthog-js"; import { LocaleContextProvider } from "./components/primitives/LocaleProvider"; @@ -16,25 +15,3 @@ hydrateRoot( ); - -if (process.env.NODE_ENV === "production") { - Sentry.init({ - dsn: "https://bf96820b08004fa4b2e1506f2ac74a14@o4504419574087680.ingest.sentry.io/4504419607052288", - tracesSampleRate: 1, - integrations: [ - new Sentry.BrowserTracing({ - routingInstrumentation: Sentry.remixRouterInstrumentation( - useEffect, - useLocation, - useMatches - ), - }), - //casted because TypeScript is unhappy about the type from PostHog - new posthog.SentryIntegration( - posthog, - "triggerdev", - 4504419607052288 - ) as any, - ], - }); -} diff --git a/apps/webapp/app/entry.server.tsx b/apps/webapp/app/entry.server.tsx index d31d78643..96515bbb7 100644 --- a/apps/webapp/app/entry.server.tsx +++ b/apps/webapp/app/entry.server.tsx @@ -1,4 +1,3 @@ -import * as Sentry from "~/services/sentry.server"; import * as Worker from "~/services/worker.server"; import { PassThrough } from "stream"; import { renderToPipeableStream } from "react-dom/server"; @@ -144,5 +143,4 @@ function serveBrowsers( }); } -Sentry.init(); Worker.init().catch(console.error); diff --git a/apps/webapp/app/env.server.ts b/apps/webapp/app/env.server.ts index 8a296437e..e8c1e8a5a 100644 --- a/apps/webapp/app/env.server.ts +++ b/apps/webapp/app/env.server.ts @@ -17,7 +17,6 @@ const EnvironmentSchema = z.object({ .string() // eslint-disable-next-line turbo/no-undeclared-env-vars .default(process.env.FC_URL ?? "https://app.trigger.dev"), - SENTRY_DSN: z.string().optional(), APP_ENV: z .union([ z.literal("development"), diff --git a/apps/webapp/app/features.server.ts b/apps/webapp/app/features.server.ts new file mode 100644 index 000000000..89650c935 --- /dev/null +++ b/apps/webapp/app/features.server.ts @@ -0,0 +1,18 @@ +import { requestUrl } from "./utils"; + +export type TriggerFeatures = { + isManagedCloud: boolean; +}; + +// If the request host is cloud.trigger.dev then we are on the managed cloud +// or if env.NODE_ENV is development +export function featuresForRequest(request: Request): TriggerFeatures { + const url = requestUrl(request); + + const isManagedCloud = + url.host === "cloud.trigger.dev" || process.env.NODE_ENV === "development"; + + return { + isManagedCloud, + }; +} diff --git a/apps/webapp/app/hooks/useFeatures.ts b/apps/webapp/app/hooks/useFeatures.ts new file mode 100644 index 000000000..e8a02b007 --- /dev/null +++ b/apps/webapp/app/hooks/useFeatures.ts @@ -0,0 +1,9 @@ +import { useTypedRouteLoaderData } from "remix-typedjson"; +import { loader } from "../root"; +import type { TriggerFeatures } from "~/features.server"; + +export function useFeatures(): TriggerFeatures { + const routeMatch = useTypedRouteLoaderData("root"); + + return routeMatch?.features ?? { isManagedCloud: false }; +} diff --git a/apps/webapp/app/hooks/usePostHog.ts b/apps/webapp/app/hooks/usePostHog.ts index 34b7f44e0..08def0d58 100644 --- a/apps/webapp/app/hooks/usePostHog.ts +++ b/apps/webapp/app/hooks/usePostHog.ts @@ -14,6 +14,7 @@ export const usePostHog = (apiKey?: string, logging = false): void => { //start PostHog once useEffect(() => { if (apiKey === undefined) return; + if (apiKey === "") return; if (postHogInitialized.current === true) return; if (logging) console.log("posthog.init", apiKey); postHogInitialized.current = true; diff --git a/apps/webapp/app/root.tsx b/apps/webapp/app/root.tsx index 552b97582..1715230c5 100644 --- a/apps/webapp/app/root.tsx +++ b/apps/webapp/app/root.tsx @@ -10,7 +10,6 @@ import { isRouteErrorResponse, useRouteError, } from "@remix-run/react"; -import { withSentry } from "@sentry/remix"; import { typedjson, useTypedLoaderData } from "remix-typedjson"; import type { ToastMessage } from "~/models/message.server"; import { commitSession, getSession } from "~/models/message.server"; @@ -26,6 +25,7 @@ import { env } from "./env.server"; import { usePostHog } from "./hooks/usePostHog"; import { getUser } from "./services/session.server"; import { friendlyErrorDisplay } from "./utils/httpErrors"; +import { featuresForRequest } from "./features.server"; export const links: LinksFunction = () => { return [{ rel: "stylesheet", href: tailwindStylesheetUrl }]; @@ -41,12 +41,14 @@ export const loader = async ({ request }: LoaderArgs) => { const session = await getSession(request.headers.get("cookie")); const toastMessage = session.get("toastMessage") as ToastMessage; const posthogProjectKey = env.POSTHOG_PROJECT_KEY; + const features = featuresForRequest(request); return typedjson( { user: await getUser(request), toastMessage, posthogProjectKey, + features, }, { headers: { "Set-Cookie": await commitSession(session) } } ); @@ -128,4 +130,4 @@ function App() { ); } -export default withSentry(App); +export default App; diff --git a/apps/webapp/app/services/externalApis/integrations/airtable.ts b/apps/webapp/app/services/externalApis/integrations/airtable.ts index f3d8ec407..726b429ce 100644 --- a/apps/webapp/app/services/externalApis/integrations/airtable.ts +++ b/apps/webapp/app/services/externalApis/integrations/airtable.ts @@ -10,10 +10,10 @@ export const airtable: Integration = { type: "oauth2", client: { id: { - envName: "EXTERNAL_AIRTABLE_CLIENT_ID", + envName: "CLOUD_AIRTABLE_CLIENT_ID", }, secret: { - envName: "EXTERNAL_AIRTABLE_CLIENT_SECRET", + envName: "CLOUD_AIRTABLE_CLIENT_SECRET", }, }, config: { diff --git a/apps/webapp/app/services/externalApis/integrations/github.ts b/apps/webapp/app/services/externalApis/integrations/github.ts index 452b78f99..a0fe8a1d5 100644 --- a/apps/webapp/app/services/externalApis/integrations/github.ts +++ b/apps/webapp/app/services/externalApis/integrations/github.ts @@ -30,10 +30,10 @@ export const github: Integration = { type: "oauth2", client: { id: { - envName: "EXTERNAL_GITHUB_CLIENT_ID", + envName: "CLOUD_GITHUB_CLIENT_ID", }, secret: { - envName: "EXTERNAL_GITHUB_CLIENT_SECRET", + envName: "CLOUD_GITHUB_CLIENT_SECRET", }, }, config: { diff --git a/apps/webapp/app/services/externalApis/integrations/slack.ts b/apps/webapp/app/services/externalApis/integrations/slack.ts index 6a16658cf..460810828 100644 --- a/apps/webapp/app/services/externalApis/integrations/slack.ts +++ b/apps/webapp/app/services/externalApis/integrations/slack.ts @@ -11,10 +11,10 @@ export const slack: Integration = { type: "oauth2", client: { id: { - envName: "EXTERNAL_SLACK_CLIENT_ID", + envName: "CLOUD_SLACK_CLIENT_ID", }, secret: { - envName: "EXTERNAL_SLACK_CLIENT_SECRET", + envName: "CLOUD_SLACK_CLIENT_SECRET", }, }, config: { @@ -31,7 +31,7 @@ export const slack: Integration = { refresh: { url: "https://slack.com/api/oauth.v2.access", }, - appHostEnvName: "EXTERNAL_SLACK_APP_HOST", + appHostEnvName: "CLOUD_SLACK_APP_HOST", }, scopes: [ { diff --git a/apps/webapp/app/services/sentry.server.ts b/apps/webapp/app/services/sentry.server.ts deleted file mode 100644 index f35fe2853..000000000 --- a/apps/webapp/app/services/sentry.server.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as Sentry from "@sentry/remix"; -import { env } from "~/env.server"; -import { prisma } from "~/db.server"; - -declare global { - var __sentry_initialized: boolean; -} - -export function init() { - if (global.__sentry_initialized) { - return; - } - - if (!env.SENTRY_DSN) { - return; - } - - global.__sentry_initialized = true; - - Sentry.init({ - dsn: env.SENTRY_DSN, - tracesSampleRate: 1, - integrations: [new Sentry.Integrations.Prisma({ client: prisma })], - environment: env.APP_ENV, - maxBreadcrumbs: 50, - normalizeDepth: 5, - }); - - console.log(`🚦 Sentry initialized in ${env.APP_ENV} mode`); -} diff --git a/apps/webapp/package.json b/apps/webapp/package.json index 4a54ef5af..0c5073c1e 100644 --- a/apps/webapp/package.json +++ b/apps/webapp/package.json @@ -20,7 +20,6 @@ "typecheck": "tsc -b", "db:seed": "ts-node prisma/seed.ts", "generate:sourcemaps": "remix build --sourcemap", - "sentry-upload": "pnpm run generate:sourcemaps && sentry-upload-sourcemaps", "clean:sourcemaps": "run-s clean:sourcemaps:*", "clean:sourcemaps:public": "rimraf ./build/**/*.map", "clean:sourcemaps:build": "rimraf ./public/build/**/*.map", @@ -68,7 +67,6 @@ "@remix-run/react": "1.16.1", "@remix-run/serve": "^1.16.1", "@remix-run/server-runtime": "1.16.1", - "@sentry/remix": "^7.53.1", "@tanstack/react-table": "^8.0.0-alpha.87", "@team-plain/typescript-sdk": "^2.2.0", "@trigger.dev/companyicons": "^1.5.8", diff --git a/apps/webapp/server.ts b/apps/webapp/server.ts index eaa038b11..14d0c1b79 100644 --- a/apps/webapp/server.ts +++ b/apps/webapp/server.ts @@ -2,13 +2,7 @@ import path from "path"; import express from "express"; import compression from "compression"; import morgan from "morgan"; -import { createRequestHandler as expressCreateRequestHandler } from "@remix-run/express"; -import { wrapExpressCreateRequestHandler } from "@sentry/remix"; - -const createRequestHandler = - process.env.NODE_ENV === "production" - ? wrapExpressCreateRequestHandler(expressCreateRequestHandler) - : expressCreateRequestHandler; +import { createRequestHandler } from "@remix-run/express"; const app = express(); diff --git a/package.json b/package.json index c23e0fe7d..16be6b5e5 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "changeset:release": "pnpm run build --filter \"@trigger.dev/*\" && changeset publish", "changeset:next": "changeset pre enter next", "changeset:normal": "changeset pre exit", - "sentry-upload": "turbo run sentry-upload", "clean:sourcemaps": "turbo run clean:sourcemaps", "storybook": "turbo run storybook" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58f52f5c4..23f33050b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,7 +82,6 @@ importers: '@remix-run/serve': ^1.16.1 '@remix-run/server-runtime': 1.16.1 '@remix-run/testing': ^1.16.1 - '@sentry/remix': ^7.53.1 '@storybook/addon-backgrounds': ^7.0.7 '@storybook/addon-docs': ^7.0.12 '@storybook/addon-essentials': ^7.0.7 @@ -271,7 +270,6 @@ importers: '@remix-run/react': 1.16.1_biqbaboplfbrettd7655fr4n2y '@remix-run/serve': 1.16.1 '@remix-run/server-runtime': 1.16.1 - '@sentry/remix': 7.53.1_535ee7qxxe65mhmlpnplklpcuu '@tanstack/react-table': 8.7.6_biqbaboplfbrettd7655fr4n2y '@team-plain/typescript-sdk': 2.2.0 '@trigger.dev/companyicons': 1.5.8_biqbaboplfbrettd7655fr4n2y @@ -8865,131 +8863,6 @@ packages: selderee: 0.10.0 dev: false - /@sentry-internal/tracing/7.53.1: - resolution: {integrity: sha512-a4H4rvVdz0XDGgNfRqc7zg6rMt2P1P05xBmgfIfztYy94Vciw1QMdboNiT7einr8ra8wogdEaK4Pe2AzYAPBJQ==} - engines: {node: '>=8'} - dependencies: - '@sentry/core': 7.53.1 - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - tslib: 1.14.1 - dev: false - - /@sentry/browser/7.53.1: - resolution: {integrity: sha512-1zas2R6riJaj0k7FoeieCW0SuC7UyKaBGA6jEG2LsgIqyD7IDOlF3BPZ4Yt08GFav0ImpyhGn5Vbrq5JLbeQdw==} - engines: {node: '>=8'} - dependencies: - '@sentry-internal/tracing': 7.53.1 - '@sentry/core': 7.53.1 - '@sentry/replay': 7.53.1 - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - tslib: 1.14.1 - dev: false - - /@sentry/cli/2.2.0: - resolution: {integrity: sha512-ywFtB8VHyWN248LuM67fsRtdMLif/SOHYY3zyef5WybvnAmRLDmGTWK//hSUCebsHBpehRIkmt4iMiyUXwgd5w==} - engines: {node: '>= 12'} - hasBin: true - requiresBuild: true - dependencies: - https-proxy-agent: 5.0.1 - node-fetch: 2.6.11 - npmlog: 6.0.2 - progress: 2.0.3 - proxy-from-env: 1.1.0 - which: 2.0.2 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /@sentry/core/7.53.1: - resolution: {integrity: sha512-DAH8IJNORJJ7kQLqsZuhMkN6cwJjXzFuuUoZor7IIDHIHjtl51W+2F3Stg3+I3ZoKDfJfUNKqhipk2WZjG0FBg==} - engines: {node: '>=8'} - dependencies: - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - tslib: 1.14.1 - dev: false - - /@sentry/node/7.53.1: - resolution: {integrity: sha512-B4ax8sRd54xj4ad+4eY2EOKNt0Mh1NjuLW1zUKS8HW3h0bmuaDFzGuhEVvEY5H4SaV6tZKj1c0dvnMnyUbYkhA==} - engines: {node: '>=8'} - dependencies: - '@sentry-internal/tracing': 7.53.1 - '@sentry/core': 7.53.1 - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - cookie: 0.4.2 - https-proxy-agent: 5.0.1 - lru_map: 0.3.3 - tslib: 1.14.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@sentry/react/7.53.1_react@18.2.0: - resolution: {integrity: sha512-eEOY/peBepSD/nhPn4SU77aYdjQfAI1svOqpG4sbpjaGZU1P6L7+IIGmip8l2T68oPEeKDaiH9Qy/3uxu55B/Q==} - engines: {node: '>=8'} - peerDependencies: - react: 15.x || 16.x || 17.x || 18.x - dependencies: - '@sentry/browser': 7.53.1 - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - tslib: 1.14.1 - dev: false - - /@sentry/remix/7.53.1_535ee7qxxe65mhmlpnplklpcuu: - resolution: {integrity: sha512-XnNjnKWoilp13Az+4Bt/l/wRSjnVUPsVcDwxbaAXefSKW0xaIJGXA4Os7MOKTNz5LVbqbkTz7zmMA9NqZ4iHKg==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - '@remix-run/node': 1.x - '@remix-run/react': 1.x - react: 16.x || 17.x || 18.x - dependencies: - '@remix-run/node': 1.16.1 - '@remix-run/react': 1.16.1_biqbaboplfbrettd7655fr4n2y - '@sentry/cli': 2.2.0 - '@sentry/core': 7.53.1 - '@sentry/node': 7.53.1 - '@sentry/react': 7.53.1_react@18.2.0 - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - react: 18.2.0 - tslib: 1.14.1 - yargs: 17.6.2 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /@sentry/replay/7.53.1: - resolution: {integrity: sha512-5He5JLJiYLeWtXHC53z2ZzfbgAedafbHNZVS4+MBCOtydCk7cnuyJ0gGV6Rfxej/lZSNXZxOdW7HeMhzBtZCxw==} - engines: {node: '>=12'} - dependencies: - '@sentry/core': 7.53.1 - '@sentry/types': 7.53.1 - '@sentry/utils': 7.53.1 - dev: false - - /@sentry/types/7.53.1: - resolution: {integrity: sha512-/ijchRIu+jz3+j/zY+7KRPfLSCY14fTx5xujjbOdmEKjmIHQmwPBdszcQm40uwofrR8taV4hbt5MFN+WnjCkCw==} - engines: {node: '>=8'} - dev: false - - /@sentry/utils/7.53.1: - resolution: {integrity: sha512-DKJA1LSUOEv4KOR828MzVuLh+drjeAgzyKgN063OEKmnirgjgRgNNS8wUgwpG0Tn2k6ANZGCwrdfzPeSBxshKg==} - engines: {node: '>=8'} - dependencies: - '@sentry/types': 7.53.1 - tslib: 1.14.1 - dev: false - /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -11900,6 +11773,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /aggregate-error/3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -12063,6 +11937,7 @@ packages: /aproba/2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true /arch/2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} @@ -12076,14 +11951,6 @@ packages: readable-stream: 3.6.0 dev: true - /are-we-there-yet/3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.0 - dev: false - /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -13467,6 +13334,7 @@ packages: /color-support/1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + dev: true /colorette/2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} @@ -13581,6 +13449,7 @@ packages: /console-control-strings/1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true /content-disposition/0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} @@ -14191,6 +14060,7 @@ packages: /delegates/1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true /denque/2.1.0: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} @@ -16504,20 +16374,6 @@ packages: wide-align: 1.1.5 dev: true - /gauge/4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: false - /generic-names/4.0.0: resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} dependencies: @@ -17013,6 +16869,7 @@ packages: /has-unicode/2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true /has-value/0.3.1: resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} @@ -17086,12 +16943,6 @@ packages: resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==} dev: true - /hoist-non-react-statics/3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -17244,6 +17095,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /human-id/1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -18718,10 +18570,6 @@ packages: engines: {node: '>=12'} dev: true - /lru_map/0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} - dev: false - /lucide-react/0.229.0_react@18.2.0: resolution: {integrity: sha512-b0/KSFXhPi++vUbnYEDUgP8Z8Rw9MQpRfBr+dRZNPMT3FD1HrVgMHXhSpkm9ZrrEtuqIfHf/O+tAGmw4WOmIog==} peerDependencies: @@ -19935,16 +19783,6 @@ packages: set-blocking: 2.0.0 dev: true - /npmlog/6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - dev: false - /nth-check/2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -21231,6 +21069,7 @@ packages: /progress/2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + dev: true /promise-inflight/1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -25186,6 +25025,7 @@ packages: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 + dev: true /widest-line/3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} diff --git a/turbo.json b/turbo.json index 9ebc6d483..602bb8647 100644 --- a/turbo.json +++ b/turbo.json @@ -85,9 +85,6 @@ "clean": { "cache": false }, - "sentry-upload": { - "cache": false - }, "clean:sourcemaps": { "cache": false }, @@ -110,7 +107,6 @@ "MAGIC_LINK_SECRET", "AUTH_GITHUB_CLIENT_ID", "AUTH_GITHUB_CLIENT_SECRET", - "SENTRY_DSN", "FROM_EMAIL", "REPLY_TO_EMAIL", "RESEND_API_KEY",