diff --git a/.env.example b/.env.example index b5dc6d27..34e8eb71 100644 --- a/.env.example +++ b/.env.example @@ -47,11 +47,6 @@ STORAGE_ACCESS_KEY=minioadmin STORAGE_SECRET_KEY=minioadmin STORAGE_USE_SSL=false -# Sentry (for error reporting, Optional) -# SENTRY_AUTH_TOKEN= -# SERVER_SENTRY_DSN= -# VITE_CLIENT_SENTRY_DSN= - # Nx Cloud (Optional) # NX_CLOUD_ACCESS_TOKEN= diff --git a/.github/workflows/lint-test-build.yml b/.github/workflows/lint-test-build.yml index 8cd0dc63..eeb6b06d 100644 --- a/.github/workflows/lint-test-build.yml +++ b/.github/workflows/lint-test-build.yml @@ -50,5 +50,4 @@ jobs: run: pnpm build env: NODE_ENV: production - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} diff --git a/.github/workflows/publish-docker-image.yml b/.github/workflows/publish-docker-image.yml index 40cb1c26..ed61c5ca 100644 --- a/.github/workflows/publish-docker-image.yml +++ b/.github/workflows/publish-docker-image.yml @@ -77,7 +77,6 @@ jobs: labels: ${{ steps.meta.outputs.labels }} outputs: type=image,name=${{ env.IMAGE }},push-by-digest=true,name-canonical=true,push=true build-args: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} - name: Export Digest diff --git a/Dockerfile b/Dockerfile index c11987bc..9d1728b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,7 @@ -ARG SENTRY_AUTH_TOKEN ARG NX_CLOUD_ACCESS_TOKEN # --- Base Image --- FROM node:lts-bullseye-slim AS base -ARG SENTRY_AUTH_TOKEN ARG NX_CLOUD_ACCESS_TOKEN ENV PNPM_HOME="/pnpm" @@ -15,7 +13,6 @@ WORKDIR /app # --- Build Image --- FROM base AS build -ARG SENTRY_AUTH_TOKEN ARG NX_CLOUD_ACCESS_TOKEN COPY .npmrc package.json pnpm-lock.yaml ./ @@ -24,7 +21,6 @@ RUN pnpm install --frozen-lockfile COPY . . -ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN ENV NX_CLOUD_ACCESS_TOKEN=$NX_CLOUD_ACCESS_TOKEN RUN pnpm run build diff --git a/README.md b/README.md index 13e9125e..f1f22974 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,6 @@ Start creating your standout resume with Reactive Resume today! - Minio (for object storage: to store avatars, resume PDFs and previews) - Browserless (for headless chrome, to print PDFs and generate previews) - SMTP Server (to send password recovery emails) -- Sentry (for error tracing and performance monitoring) - GitHub/Google OAuth (for quickly authenticating users) - LinguiJS and Crowdin (for translation management and localization) diff --git a/apps/artboard/src/templates/azurill.tsx b/apps/artboard/src/templates/azurill.tsx index 69711049..b4d81c87 100644 --- a/apps/artboard/src/templates/azurill.tsx +++ b/apps/artboard/src/templates/azurill.tsx @@ -127,7 +127,7 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && ( icon ?? )} + {!iconOnRight && (icon ?? )} { > {label ?? (url.label || url.href)} - {iconOnRight && ( icon ?? )} + {iconOnRight && (icon ?? )}
); }; @@ -148,26 +148,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -286,7 +278,12 @@ const Experience = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
{item.date}
@@ -303,7 +300,12 @@ const Education = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.area}
{item.score}
{item.studyType}
@@ -322,7 +324,7 @@ const Awards = () => { {(item) => (
{item.title}
- +
{item.date}
)} @@ -334,11 +336,11 @@ const Certifications = () => { const section = useArtboardStore((state) => state.resume.sections.certifications); return ( - section={section} urlKey="url" summaryKey="summary"> + section={section} urlKey="url" summaryKey="summary"> {(item) => (
{item.name}
- +
{item.date}
)} @@ -378,7 +380,12 @@ const Publications = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.publisher}
{item.date}
@@ -394,7 +401,12 @@ const Volunteer = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
{item.date}
@@ -427,7 +439,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
{item.date}
@@ -445,7 +462,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -466,7 +488,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
{item.date}
diff --git a/apps/artboard/src/templates/bronzor.tsx b/apps/artboard/src/templates/bronzor.tsx index b4ba16b8..1b5671bd 100644 --- a/apps/artboard/src/templates/bronzor.tsx +++ b/apps/artboard/src/templates/bronzor.tsx @@ -7,7 +7,6 @@ import { Experience, Interest, Language, - Metadata, Profile, Project, Publication, @@ -140,26 +139,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -265,7 +256,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -287,10 +283,15 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
-
+
{item.date}
@@ -311,7 +312,11 @@ const Awards = () => {
{item.title}
- +
@@ -332,7 +337,7 @@ const Certifications = () => {
{item.name}
- +
@@ -377,7 +382,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -398,7 +408,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -435,7 +450,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -455,7 +475,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -476,7 +501,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/chikorita.tsx b/apps/artboard/src/templates/chikorita.tsx index d69e9490..eb8d5cc5 100644 --- a/apps/artboard/src/templates/chikorita.tsx +++ b/apps/artboard/src/templates/chikorita.tsx @@ -142,26 +142,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -233,7 +225,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -255,7 +252,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -311,7 +313,11 @@ const Awards = () => {
{item.title}
- +
@@ -333,7 +339,7 @@ const Certifications = () => {
{item.name}
{item.issuer}
- +
@@ -378,7 +384,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -399,7 +410,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -436,7 +452,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -456,7 +477,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -477,7 +503,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/ditto.tsx b/apps/artboard/src/templates/ditto.tsx index e5b4af4a..231f809f 100644 --- a/apps/artboard/src/templates/ditto.tsx +++ b/apps/artboard/src/templates/ditto.tsx @@ -159,26 +159,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -291,7 +283,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -313,7 +310,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -337,7 +339,11 @@ const Awards = () => {
{item.title}
- +
@@ -358,7 +364,7 @@ const Certifications = () => {
{item.name}
- +
@@ -403,7 +409,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -424,7 +435,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -461,7 +477,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -481,7 +502,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -502,7 +528,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/gengar.tsx b/apps/artboard/src/templates/gengar.tsx index 8fe12327..22b0f296 100644 --- a/apps/artboard/src/templates/gengar.tsx +++ b/apps/artboard/src/templates/gengar.tsx @@ -116,7 +116,10 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && (icon ?? )} + {!iconOnRight && + (icon ?? ( + + ))} { > {label ?? (url.label || url.href)} - {iconOnRight && (icon ?? )} + {iconOnRight && + (icon ?? ( + + ))}
); }; @@ -137,26 +143,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -260,7 +258,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -282,7 +285,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -306,7 +314,11 @@ const Awards = () => {
{item.title}
- +
@@ -327,7 +339,7 @@ const Certifications = () => {
{item.name}
- +
@@ -372,7 +384,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -393,7 +410,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -430,7 +452,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -450,7 +477,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -471,7 +503,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/glalie.tsx b/apps/artboard/src/templates/glalie.tsx index 6ea8f5b1..ce3dd61e 100644 --- a/apps/artboard/src/templates/glalie.tsx +++ b/apps/artboard/src/templates/glalie.tsx @@ -124,7 +124,8 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && (icon ?? )} + {!iconOnRight && + (icon ?? )} { > {label ?? (url.label || url.href)} - {iconOnRight && (icon ?? )} + {iconOnRight && + (icon ?? )}
); }; @@ -145,26 +147,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -238,7 +232,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -260,7 +259,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -316,7 +320,11 @@ const Awards = () => {
{item.title}
- +
@@ -337,7 +345,7 @@ const Certifications = () => {
{item.name}
- +
@@ -382,7 +390,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -403,7 +416,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -440,7 +458,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -460,7 +483,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -481,7 +509,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/kakuna.tsx b/apps/artboard/src/templates/kakuna.tsx index 91250c87..998c4e21 100644 --- a/apps/artboard/src/templates/kakuna.tsx +++ b/apps/artboard/src/templates/kakuna.tsx @@ -165,26 +165,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -256,7 +248,12 @@ const Experience = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
{item.date}
@@ -273,7 +270,12 @@ const Education = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.area}
{item.score}
{item.studyType}
@@ -292,7 +294,7 @@ const Awards = () => { {(item) => (
{item.title}
- +
{item.date}
)} @@ -308,7 +310,7 @@ const Certifications = () => { {(item) => (
{item.name}
- +
{item.date}
)} @@ -348,7 +350,12 @@ const Publications = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.publisher}
{item.date}
@@ -364,7 +371,12 @@ const Volunteer = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
{item.date}
@@ -397,7 +409,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
{item.date}
@@ -414,7 +431,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -435,7 +457,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
{item.location}
{item.date}
diff --git a/apps/artboard/src/templates/leafish.tsx b/apps/artboard/src/templates/leafish.tsx index 57bc893e..eaf04afc 100644 --- a/apps/artboard/src/templates/leafish.tsx +++ b/apps/artboard/src/templates/leafish.tsx @@ -141,7 +141,7 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && ( icon ?? )} + {!iconOnRight && (icon ?? )} { > {label ?? (url.label || url.href)} - {iconOnRight && ( icon ?? )} + {iconOnRight && (icon ?? )}
); }; @@ -162,26 +162,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -253,7 +245,12 @@ const Experience = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
{item.date}
@@ -270,7 +267,12 @@ const Education = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.area}
{item.score}
{item.studyType}
@@ -289,7 +291,7 @@ const Awards = () => { {(item) => (
{item.title}
- +
{item.date}
)} @@ -305,7 +307,7 @@ const Certifications = () => { {(item) => (
{item.name}
- +
{item.date}
)} @@ -345,7 +347,12 @@ const Publications = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.publisher}
{item.date}
@@ -361,7 +368,12 @@ const Volunteer = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
{item.date}
@@ -394,7 +406,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
{item.date}
@@ -411,7 +428,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -432,7 +454,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
{item.location}
{item.date}
diff --git a/apps/artboard/src/templates/nosepass.tsx b/apps/artboard/src/templates/nosepass.tsx index 26788a18..f1513ab6 100644 --- a/apps/artboard/src/templates/nosepass.tsx +++ b/apps/artboard/src/templates/nosepass.tsx @@ -141,26 +141,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -308,7 +300,12 @@ const Experience = () => { section={section} urlKey="url" dateKey="date" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
@@ -324,7 +321,12 @@ const Education = () => { section={section} urlKey="url" dateKey="date" summaryKey="summary"> {(item) => (
- +
{item.area}
{item.studyType}
{item.score}
@@ -342,7 +344,7 @@ const Awards = () => { {(item) => (
{item.title}
- +
)} @@ -357,7 +359,7 @@ const Certifications = () => { {(item) => (
{item.name}
- +
)} @@ -396,7 +398,12 @@ const Publications = () => { section={section} urlKey="url" dateKey="date" summaryKey="summary"> {(item) => (
- +
{item.publisher}
)} @@ -411,7 +418,12 @@ const Volunteer = () => { section={section} urlKey="url" dateKey="date" summaryKey="summary"> {(item) => (
- +
{item.position}
{item.location}
@@ -448,7 +460,12 @@ const Projects = () => { > {(item) => (
- +
{item.description}
)} @@ -463,7 +480,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -484,7 +506,12 @@ const Custom = ({ id }: { id: string }) => { > {(item) => (
- +
{item.description}
{item.location}
diff --git a/apps/artboard/src/templates/onyx.tsx b/apps/artboard/src/templates/onyx.tsx index 02d7dfaa..da68b82b 100644 --- a/apps/artboard/src/templates/onyx.tsx +++ b/apps/artboard/src/templates/onyx.tsx @@ -147,7 +147,7 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && ( icon ?? )} + {!iconOnRight && (icon ?? )} { > {label ?? (url.label || url.href)} - {iconOnRight && ( icon ?? )} + {iconOnRight && (icon ?? )}
); }; @@ -168,26 +168,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -259,7 +251,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -281,7 +278,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -305,7 +307,11 @@ const Awards = () => {
{item.title}
- +
@@ -326,7 +332,7 @@ const Certifications = () => {
{item.name}
- +
@@ -371,7 +377,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -392,7 +403,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -429,7 +445,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -449,7 +470,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -470,7 +496,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/pikachu.tsx b/apps/artboard/src/templates/pikachu.tsx index 0828d4dc..77b91c30 100644 --- a/apps/artboard/src/templates/pikachu.tsx +++ b/apps/artboard/src/templates/pikachu.tsx @@ -147,7 +147,10 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && ( icon ?? )} + {!iconOnRight && + (icon ?? ( + + ))} { > {label ?? (url.label || url.href)} - {iconOnRight && ( icon ?? )} + {iconOnRight && + (icon ?? ( + + ))}
); }; @@ -168,26 +174,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -291,7 +289,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -313,7 +316,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -337,7 +345,11 @@ const Awards = () => {
{item.title}
- +
@@ -358,7 +370,7 @@ const Certifications = () => {
{item.name}
- +
@@ -403,7 +415,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -424,7 +441,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -461,7 +483,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -481,7 +508,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -502,7 +534,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/artboard/src/templates/rhyhorn.tsx b/apps/artboard/src/templates/rhyhorn.tsx index 460ed03c..a4c2fbfb 100644 --- a/apps/artboard/src/templates/rhyhorn.tsx +++ b/apps/artboard/src/templates/rhyhorn.tsx @@ -119,7 +119,7 @@ const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => { return (
- {!iconOnRight && ( icon ?? )} + {!iconOnRight && (icon ?? )} { > {label ?? (url.label || url.href)} - {iconOnRight && ( icon ?? )} + {iconOnRight && (icon ?? )}
); }; @@ -140,26 +140,18 @@ type LinkedEntityProps = { className?: string; }; -const LinkedEntity = ({ name, url, separateLinks, className}: LinkedEntityProps) => { - if (!separateLinks && isUrl(url.href)) { - return ( - - } - iconOnRight={true} - className={className} - /> - ); - } else { - return ( -
- {name} -
- ); - } +const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => { + return !separateLinks && isUrl(url.href) ? ( + } + iconOnRight={true} + className={className} + /> + ) : ( +
{name}
+ ); }; type SectionProps = { @@ -263,7 +255,12 @@ const Experience = () => { {(item) => (
- +
{item.position}
@@ -285,7 +282,12 @@ const Education = () => { {(item) => (
- +
{item.area}
{item.score}
@@ -309,7 +311,11 @@ const Awards = () => {
{item.title}
- +
@@ -330,7 +336,7 @@ const Certifications = () => {
{item.name}
- +
@@ -375,7 +381,12 @@ const Publications = () => { {(item) => (
- +
{item.publisher}
@@ -396,7 +407,12 @@ const Volunteer = () => { {(item) => (
- +
{item.position}
@@ -433,7 +449,12 @@ const Projects = () => { {(item) => (
- +
{item.description}
@@ -453,7 +474,12 @@ const References = () => { section={section} urlKey="url" summaryKey="summary"> {(item) => (
- +
{item.description}
)} @@ -474,7 +500,12 @@ const Custom = ({ id }: { id: string }) => { {(item) => (
- +
{item.description}
diff --git a/apps/client/src/main.tsx b/apps/client/src/main.tsx index 8d8db418..6190e31c 100644 --- a/apps/client/src/main.tsx +++ b/apps/client/src/main.tsx @@ -1,35 +1,9 @@ -import * as Sentry from "@sentry/react"; -import { StrictMode, useEffect } from "react"; +import { StrictMode } from "react"; import * as ReactDOM from "react-dom/client"; -import { - createRoutesFromChildren, - matchRoutes, - RouterProvider, - useLocation, - useNavigationType, -} from "react-router-dom"; +import { RouterProvider } from "react-router-dom"; import { router } from "./router"; -if (import.meta.env.VITE_CLIENT_SENTRY_DSN) { - Sentry.init({ - dsn: import.meta.env.VITE_CLIENT_SENTRY_DSN, - integrations: [ - Sentry.reactRouterV6BrowserTracingIntegration({ - useEffect, - matchRoutes, - useLocation, - useNavigationType, - createRoutesFromChildren, - }), - Sentry.replayIntegration(), - ], - tracesSampleRate: 1, - replaysOnErrorSampleRate: 1, - replaysSessionSampleRate: 1, - }); -} - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const root = ReactDOM.createRoot(document.querySelector("#root")!); diff --git a/apps/client/src/router/index.tsx b/apps/client/src/router/index.tsx index 50e90b49..a2525571 100644 --- a/apps/client/src/router/index.tsx +++ b/apps/client/src/router/index.tsx @@ -1,4 +1,3 @@ -import * as Sentry from "@sentry/react"; import { createBrowserRouter, createRoutesFromElements, Navigate, Route } from "react-router-dom"; import { BackupOtpPage } from "../pages/auth/backup-otp/page"; @@ -93,6 +92,4 @@ export const routes = createRoutesFromElements( , ); -const sentryCreateBrowserRouter = Sentry.wrapCreateBrowserRouter(createBrowserRouter); - -export const router = sentryCreateBrowserRouter(routes); +export const router = createBrowserRouter(routes); diff --git a/apps/client/src/vite-env.d.ts b/apps/client/src/vite-env.d.ts index 8755e4d6..54293d85 100644 --- a/apps/client/src/vite-env.d.ts +++ b/apps/client/src/vite-env.d.ts @@ -5,8 +5,6 @@ declare const appVersion: string; interface ImportMetaEnv { - SENTRY_AUTH_TOKEN: string | undefined; - VITE_CLIENT_SENTRY_DSN: string | undefined; VITE_DISABLE_SIGNUPS: string | undefined; } diff --git a/apps/client/vite.config.ts b/apps/client/vite.config.ts index 524bc79e..54d1cdfd 100644 --- a/apps/client/vite.config.ts +++ b/apps/client/vite.config.ts @@ -2,7 +2,6 @@ import { lingui } from "@lingui/vite-plugin"; import { nxViteTsPaths } from "@nx/vite/plugins/nx-tsconfig-paths.plugin"; -import { sentryVitePlugin } from "@sentry/vite-plugin"; import react from "@vitejs/plugin-react"; import { defineConfig, searchForWorkspaceRoot } from "vite"; @@ -40,11 +39,6 @@ export default defineConfig({ }), lingui(), nxViteTsPaths(), - sentryVitePlugin({ - disable: process.env.SENTRY_AUTH_TOKEN === undefined, - org: "reactive-resume", - project: "client", - }), ], test: { diff --git a/apps/server/src/config/schema.ts b/apps/server/src/config/schema.ts index bd58459b..4e311ccc 100644 --- a/apps/server/src/config/schema.ts +++ b/apps/server/src/config/schema.ts @@ -45,9 +45,6 @@ export const configSchema = z.object({ .default("false") .transform((s) => s !== "false" && s !== "0"), - // Sentry - SERVER_SENTRY_DSN: z.string().url().startsWith("https://").optional(), - // Crowdin (Optional) CROWDIN_PROJECT_ID: z.coerce.number().optional(), CROWDIN_PERSONAL_TOKEN: z.string().optional(), diff --git a/apps/server/src/main.ts b/apps/server/src/main.ts index c3c75c38..3a177f66 100644 --- a/apps/server/src/main.ts +++ b/apps/server/src/main.ts @@ -3,10 +3,8 @@ import { ConfigService } from "@nestjs/config"; import { NestFactory } from "@nestjs/core"; import { NestExpressApplication } from "@nestjs/platform-express"; import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; -import * as Sentry from "@sentry/node"; import cookieParser from "cookie-parser"; import helmet from "helmet"; -import { PrismaService } from "nestjs-prisma"; import { patchNestJsSwagger } from "nestjs-zod"; import { AppModule } from "./app.module"; @@ -19,27 +17,6 @@ async function bootstrap() { logger: process.env.NODE_ENV === "development" ? ["debug"] : ["error", "warn", "log"], }); const configService = app.get(ConfigService); - const prisma = app.get(PrismaService); - - // Sentry - // Error Reporting and Performance Monitoring - const sentryDsn = configService.get("SERVER_SENTRY_DSN"); - - if (sentryDsn) { - const express = app.getHttpAdapter().getInstance(); - - Sentry.init({ - dsn: sentryDsn, - tracesSampleRate: 1, - profilesSampleRate: 1, - integrations: [ - new Sentry.Integrations.Http({ tracing: true }), - new Sentry.Integrations.Express({ app: express }), - new Sentry.Integrations.Prisma({ client: prisma }), - ...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(), - ], - }); - } // Cookie Parser app.use(cookieParser()); diff --git a/package.json b/package.json index 352931f4..c532ae69 100644 --- a/package.json +++ b/package.json @@ -165,9 +165,6 @@ "@radix-ui/react-toggle": "^1.0.3", "@radix-ui/react-toggle-group": "^1.0.4", "@radix-ui/react-tooltip": "^1.0.7", - "@sentry/node": "^8.2.1", - "@sentry/react": "^8.2.1", - "@sentry/vite-plugin": "^2.16.1", "@swc/helpers": "~0.5.11", "@tanstack/react-query": "^5.37.1", "@tiptap/extension-bold": "^2.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed4d1a18..819303c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -152,15 +152,6 @@ importers: '@radix-ui/react-tooltip': specifier: ^1.0.7 version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@sentry/node': - specifier: ^8.2.1 - version: 8.2.1 - '@sentry/react': - specifier: ^8.2.1 - version: 8.2.1(react@18.3.1) - '@sentry/vite-plugin': - specifier: ^2.16.1 - version: 2.16.1 '@swc/helpers': specifier: ~0.5.11 version: 0.5.11 @@ -3489,80 +3480,6 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry-internal/browser-utils@8.2.1': - resolution: {integrity: sha512-jWueDzeb+LPEMfnJ5OR4YM5+PVnWbBI35DNwbT0TMiHNsqFjp2xtWAr8rpK9OayuLXEe5YtcoeyTUwU5c6i3DA==} - engines: {node: '>=14.18'} - - '@sentry-internal/feedback@8.2.1': - resolution: {integrity: sha512-HN2ys/dvisKmUybO3U6DwhutXujwZP+9bbuhBQWex7wu+iZrkIxT8TVb9Vye2Q0nsxupwD43dSzpKdGYBwx5XQ==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay-canvas@8.2.1': - resolution: {integrity: sha512-pP/ga8BR1qYDFnmhfNO+eruNjjpYeeB84mc/vfeZz0Ah5zh5LuaH/BIQM/jW615Ts77H82RFNdXYSwESz9AWPw==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay@8.2.1': - resolution: {integrity: sha512-Jwpbig9jJ4WoLpaZ/jhQRqI0ND9gPf+MrwXCDYf2NgKnvaKjbQiv0/DGVMpKdLZiasGqoEU3POI/UGd+GzTuxw==} - engines: {node: '>=14.18'} - - '@sentry/babel-plugin-component-annotate@2.16.1': - resolution: {integrity: sha512-pJka66URsqQbk6hTs9H1XFpUeI0xxuqLYf9Dy5pRGNHSJMtfv91U+CaYSWt03aRRMGDXMduh62zAAY7Wf0HO+A==} - engines: {node: '>= 14'} - - '@sentry/browser@8.2.1': - resolution: {integrity: sha512-s9LcHtHOCYQYCnHYMJOcVbSQLeYRjAogskCCLNjVcxpBcfDU+fXnabRZq1rvH3IZnOogp3O6kvIgmLuO3yOBTw==} - engines: {node: '>=14.18'} - - '@sentry/bundler-plugin-core@2.16.1': - resolution: {integrity: sha512-n6z8Ts3T9HROLuY7tVEYpBKvS+P7+b8NdqxP7QBcwp2nuPUlN5Ola1ivFjk1p5a7wRYeN9zM8orGe4l2HeNfYA==} - engines: {node: '>= 14'} - - '@sentry/cli-darwin@2.31.2': - resolution: {integrity: sha512-BHA/JJXj1dlnoZQdK4efRCtHRnbBfzbIZUKAze7oRR1RfNqERI84BVUQeKateD3jWSJXQfEuclIShc61KOpbKw==} - engines: {node: '>=10'} - os: [darwin] - - '@sentry/cli-linux-arm64@2.31.2': - resolution: {integrity: sha512-FLVKkJ/rWvPy/ka7OrUdRW63a/z8HYI1Gt8Pr6rWs50hb7YJja8lM8IO10tYmcFE/tODICsnHO9HTeUg2g2d1w==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux, freebsd] - - '@sentry/cli-linux-arm@2.31.2': - resolution: {integrity: sha512-W8k5mGYYZz/I/OxZH65YAK7dCkQAl+wbuoASGOQjUy5VDgqH0QJ8kGJufXvFPM+f3ZQGcKAnVsZ6tFqZXETBAw==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux, freebsd] - - '@sentry/cli-linux-i686@2.31.2': - resolution: {integrity: sha512-A64QtzaPi3MYFpZ+Fwmi0mrSyXgeLJ0cWr4jdeTGrzNpeowSteKgd6tRKU+LVq0k5shKE7wdnHk+jXnoajulMA==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [linux, freebsd] - - '@sentry/cli-linux-x64@2.31.2': - resolution: {integrity: sha512-YL/r+15R4mOEiU3mzn7iFQOeFEUB6KxeKGTTrtpeOGynVUGIdq4nV5rHow5JDbIzOuBS3SpOmcIMluvo1NCh0g==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux, freebsd] - - '@sentry/cli-win32-i686@2.31.2': - resolution: {integrity: sha512-Az/2bmW+TFI059RE0mSBIxTBcoShIclz7BDebmIoCkZ+retrwAzpmBnBCDAHow+Yi43utOow+3/4idGa2OxcLw==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [win32] - - '@sentry/cli-win32-x64@2.31.2': - resolution: {integrity: sha512-XIzyRnJu539NhpFa+JYkotzVwv3NrZ/4GfHB/JWA2zReRvsk39jJG8D5HOmm0B9JA63QQT7Dt39RW8g3lkmb6w==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@sentry/cli@2.31.2': - resolution: {integrity: sha512-2aKyUx6La2P+pplL8+2vO67qJ+c1C79KYWAyQBE0JIT5kvKK9JpwtdNoK1F0/2mRpwhhYPADCz3sVIRqmL8cQQ==} - engines: {node: '>= 10'} - hasBin: true - '@sentry/core@8.2.1': resolution: {integrity: sha512-xHS+DGZodTwXkoqe35UnNR9zWZ7I8pptXGxHntPrNnd/PmXK3ysj4NsRBshtSzDX3gWfwUsMN+vmjrYSwcfYeQ==} engines: {node: '>=14.18'} @@ -3581,12 +3498,6 @@ packages: '@opentelemetry/sdk-trace-base': ^1.23.0 '@opentelemetry/semantic-conventions': ^1.23.0 - '@sentry/react@8.2.1': - resolution: {integrity: sha512-kat+Rs4V1DtlGy5rV3aKZ/Kweklqv3E3hsaEd6ZLY5eoqP+ENLiHPEgM7lOaxlPxZclxSHwZQtoB0OtnnNJWYw==} - engines: {node: '>=14.18'} - peerDependencies: - react: 16.x || 17.x || 18.x - '@sentry/types@8.2.1': resolution: {integrity: sha512-22ZuANU6Dj/XSvaGhcmNTKD+6WcMc7Zn5uKd8Oj7YcuME6rOnrU8dPGEVwbGTQkE87mTDjVTDSxl8ipb0L+Eag==} engines: {node: '>=14.18'} @@ -3595,10 +3506,6 @@ packages: resolution: {integrity: sha512-qFeiCdo+QUVpwNSwe63LOPEKc8GWmJ051twtV3tfZ62XgUYOOi2C0qC6mliY3+GKiGVV8fQE6S930nM//j7G1w==} engines: {node: '>=14.18'} - '@sentry/vite-plugin@2.16.1': - resolution: {integrity: sha512-RSIyeqFG3PR5iJsZnagQxzOhM22z1Kh9DG+HQQsfVrxokzrWKRu/G17O2MIDh2I5iYEaL0Fkd/9RAXE4/b0aVg==} - engines: {node: '>= 14'} - '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -4603,10 +4510,6 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} @@ -6499,10 +6402,6 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - glob@9.3.5: - resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} - engines: {node: '>=16 || 14 >=14.17'} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -6613,9 +6512,6 @@ packages: resolution: {integrity: sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==} engines: {node: '>=16.0.0'} - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6701,10 +6597,6 @@ packages: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@7.0.4: resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} @@ -7725,10 +7617,6 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@8.0.4: - resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} @@ -7752,10 +7640,6 @@ packages: resolution: {integrity: sha512-GkM/lk+Gzwd4fAQvLlB+cy3NV3PRADe0tNXnH9JD5BmdAHKIp+5vypptbjdkU85xWBIQsa2xK35GpXjmYXBBYA==} engines: {node: ^16 || ^18 || >=20} - minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} @@ -10132,9 +10016,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@1.0.1: - resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} - unraw@3.0.0: resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} @@ -10416,9 +10297,6 @@ packages: html-webpack-plugin: optional: true - webpack-virtual-modules@0.5.0: - resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - webpack@5.90.3: resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} engines: {node: '>=10.13.0'} @@ -14184,98 +14062,6 @@ snapshots: selderee: 0.11.0 optional: true - '@sentry-internal/browser-utils@8.2.1': - dependencies: - '@sentry/core': 8.2.1 - '@sentry/types': 8.2.1 - '@sentry/utils': 8.2.1 - - '@sentry-internal/feedback@8.2.1': - dependencies: - '@sentry/core': 8.2.1 - '@sentry/types': 8.2.1 - '@sentry/utils': 8.2.1 - - '@sentry-internal/replay-canvas@8.2.1': - dependencies: - '@sentry-internal/replay': 8.2.1 - '@sentry/core': 8.2.1 - '@sentry/types': 8.2.1 - '@sentry/utils': 8.2.1 - - '@sentry-internal/replay@8.2.1': - dependencies: - '@sentry-internal/browser-utils': 8.2.1 - '@sentry/core': 8.2.1 - '@sentry/types': 8.2.1 - '@sentry/utils': 8.2.1 - - '@sentry/babel-plugin-component-annotate@2.16.1': {} - - '@sentry/browser@8.2.1': - dependencies: - '@sentry-internal/browser-utils': 8.2.1 - '@sentry-internal/feedback': 8.2.1 - '@sentry-internal/replay': 8.2.1 - '@sentry-internal/replay-canvas': 8.2.1 - '@sentry/core': 8.2.1 - '@sentry/types': 8.2.1 - '@sentry/utils': 8.2.1 - - '@sentry/bundler-plugin-core@2.16.1': - dependencies: - '@babel/core': 7.24.5 - '@sentry/babel-plugin-component-annotate': 2.16.1 - '@sentry/cli': 2.31.2 - dotenv: 16.4.5 - find-up: 5.0.0 - glob: 9.3.5 - magic-string: 0.30.8 - unplugin: 1.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - '@sentry/cli-darwin@2.31.2': - optional: true - - '@sentry/cli-linux-arm64@2.31.2': - optional: true - - '@sentry/cli-linux-arm@2.31.2': - optional: true - - '@sentry/cli-linux-i686@2.31.2': - optional: true - - '@sentry/cli-linux-x64@2.31.2': - optional: true - - '@sentry/cli-win32-i686@2.31.2': - optional: true - - '@sentry/cli-win32-x64@2.31.2': - optional: true - - '@sentry/cli@2.31.2': - dependencies: - https-proxy-agent: 5.0.1 - node-fetch: 2.7.0 - progress: 2.0.3 - proxy-from-env: 1.1.0 - which: 2.0.2 - optionalDependencies: - '@sentry/cli-darwin': 2.31.2 - '@sentry/cli-linux-arm': 2.31.2 - '@sentry/cli-linux-arm64': 2.31.2 - '@sentry/cli-linux-i686': 2.31.2 - '@sentry/cli-linux-x64': 2.31.2 - '@sentry/cli-win32-i686': 2.31.2 - '@sentry/cli-win32-x64': 2.31.2 - transitivePeerDependencies: - - encoding - - supports-color - '@sentry/core@8.2.1': dependencies: '@sentry/types': 8.2.1 @@ -14325,29 +14111,12 @@ snapshots: '@sentry/types': 8.2.1 '@sentry/utils': 8.2.1 - '@sentry/react@8.2.1(react@18.3.1)': - dependencies: - '@sentry/browser': 8.2.1 - '@sentry/core': 8.2.1 - '@sentry/types': 8.2.1 - '@sentry/utils': 8.2.1 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - '@sentry/types@8.2.1': {} '@sentry/utils@8.2.1': dependencies: '@sentry/types': 8.2.1 - '@sentry/vite-plugin@2.16.1': - dependencies: - '@sentry/bundler-plugin-core': 2.16.1 - unplugin: 1.0.1 - transitivePeerDependencies: - - encoding - - supports-color - '@sinclair/typebox@0.27.8': {} '@sindresorhus/is@4.6.0': {} @@ -15578,12 +15347,6 @@ snapshots: address@1.2.2: {} - agent-base@6.0.2: - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - agent-base@7.1.0: dependencies: debug: 4.3.4 @@ -17890,13 +17653,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@9.3.5: - dependencies: - fs.realpath: 1.0.0 - minimatch: 8.0.4 - minipass: 4.2.8 - path-scurry: 1.10.2 - globals@11.12.0: {} globals@13.24.0: @@ -18009,10 +17765,6 @@ snapshots: helmet@7.1.0: {} - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - hosted-git-info@2.8.9: {} hosted-git-info@7.0.1: @@ -18154,13 +17906,6 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.0 @@ -19382,10 +19127,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@8.0.4: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.1: dependencies: brace-expansion: 2.0.1 @@ -19435,8 +19176,6 @@ snapshots: web-encoding: 1.1.5 xml2js: 0.5.0 - minipass@4.2.8: {} - minipass@7.0.4: {} mitt@3.0.1: {} @@ -22317,13 +22056,6 @@ snapshots: unpipe@1.0.0: {} - unplugin@1.0.1: - dependencies: - acorn: 8.11.3 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.5.0 - unraw@3.0.0: {} update-browserslist-db@1.0.13(browserslist@4.23.0): @@ -22633,8 +22365,6 @@ snapshots: typed-assert: 1.0.9 webpack: 5.90.3(@swc/core@1.5.7(@swc/helpers@0.5.11)) - webpack-virtual-modules@0.5.0: {} - webpack@5.90.3(@swc/core@1.5.7(@swc/helpers@0.5.11)): dependencies: '@types/eslint-scope': 3.7.7 diff --git a/tools/compose/nginx-proxy-manager.yml b/tools/compose/nginx-proxy-manager.yml index b8c78a73..c7f8e529 100644 --- a/tools/compose/nginx-proxy-manager.yml +++ b/tools/compose/nginx-proxy-manager.yml @@ -88,10 +88,6 @@ services: STORAGE_SECRET_KEY: minioadmin STORAGE_USE_SSL: false - # -- Sentry (Optional) -- - # SERVER_SENTRY_DSN: - # VITE_CLIENT_SENTRY_DSN: - # -- Crowdin (Optional) -- # CROWDIN_PROJECT_ID: # CROWDIN_PERSONAL_TOKEN: diff --git a/tools/compose/simple.yml b/tools/compose/simple.yml index b889a9be..d3ac1f19 100644 --- a/tools/compose/simple.yml +++ b/tools/compose/simple.yml @@ -87,10 +87,6 @@ services: STORAGE_SECRET_KEY: minioadmin STORAGE_USE_SSL: false - # -- Sentry (Optional) -- - # SERVER_SENTRY_DSN: - # VITE_CLIENT_SENTRY_DSN: - # -- Crowdin (Optional) -- # CROWDIN_PROJECT_ID: # CROWDIN_PERSONAL_TOKEN: diff --git a/tools/compose/swarm.yml b/tools/compose/swarm.yml index dfbda59c..aa2edf55 100644 --- a/tools/compose/swarm.yml +++ b/tools/compose/swarm.yml @@ -107,10 +107,6 @@ services: STORAGE_SECRET_KEY: minioadmin STORAGE_USE_SSL: false - # -- Sentry (Optional) -- - # SERVER_SENTRY_DSN: - # VITE_CLIENT_SENTRY_DSN: - # -- Crowdin (Optional) -- # CROWDIN_PROJECT_ID: # CROWDIN_PERSONAL_TOKEN: diff --git a/tools/compose/traefik-secure.yml b/tools/compose/traefik-secure.yml index 966f95f3..6059432b 100644 --- a/tools/compose/traefik-secure.yml +++ b/tools/compose/traefik-secure.yml @@ -96,10 +96,6 @@ services: STORAGE_SECRET_KEY: minioadmin STORAGE_USE_SSL: false - # -- Sentry (Optional) -- - # SERVER_SENTRY_DSN: - # VITE_CLIENT_SENTRY_DSN: - # -- Crowdin (Optional) -- # CROWDIN_PROJECT_ID: # CROWDIN_PERSONAL_TOKEN: diff --git a/tools/compose/traefik.yml b/tools/compose/traefik.yml index 250560e1..71ee4d60 100644 --- a/tools/compose/traefik.yml +++ b/tools/compose/traefik.yml @@ -92,10 +92,6 @@ services: STORAGE_SECRET_KEY: minioadmin STORAGE_USE_SSL: false - # -- Sentry (Optional) -- - # SERVER_SENTRY_DSN: - # VITE_CLIENT_SENTRY_DSN: - # -- Crowdin (Optional) -- # CROWDIN_PROJECT_ID: # CROWDIN_PERSONAL_TOKEN: