From 4465d1d56754026e2b8b8dc4185719d29320724a Mon Sep 17 00:00:00 2001 From: matthieu42morin Date: Fri, 5 Apr 2024 14:38:29 +0200 Subject: [PATCH] hooks env update --- src/hooks.client.ts | 7 ++++- src/hooks.server.ts | 65 ++++++++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/hooks.client.ts b/src/hooks.client.ts index 557758b..d26410c 100644 --- a/src/hooks.client.ts +++ b/src/hooks.client.ts @@ -1,8 +1,13 @@ import { handleErrorWithSentry, replayIntegration } from "@sentry/sveltekit"; import * as Sentry from '@sentry/sveltekit'; +import { + PUBLIC_SENTRY_KEY, + PUBLIC_SENTRY_PROJECT_ID, + PUBLIC_SENTRY_ORG_ID +} from '$env/static/public'; Sentry.init({ - dsn: 'https://962a7ed3891a335e112746e5c6c6bf42@o4505828687478784.ingest.us.sentry.io/4506871754326016', + dsn: `https://${PUBLIC_SENTRY_KEY}@${PUBLIC_SENTRY_ORG_ID}.ingest.us.sentry.io/${PUBLIC_SENTRY_PROJECT_ID}`, tracesSampleRate: 1.0, // This sets the sample rate to be 10%. You may want this to be 100% while diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 5b1c2df..39b2224 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,12 +1,12 @@ import type { Handle } from '@sveltejs/kit'; -import { sequence } from "@sveltejs/kit/hooks"; +import { sequence } from '@sveltejs/kit/hooks'; -import { handleErrorWithSentry, sentryHandle } from "@sentry/sveltekit"; +import { handleErrorWithSentry, sentryHandle } from '@sentry/sveltekit'; import * as Sentry from '@sentry/sveltekit'; import { PUBLIC_SENTRY_KEY, PUBLIC_SENTRY_PROJECT_ID, - PUBLIC_SENTRY_ORG_ID + PUBLIC_SENTRY_ORG_ID } from '$env/static/public'; import { csp, rootDomain } from './cspDirectives'; @@ -15,34 +15,34 @@ import * as amp from '@sveltejs/amp'; import dropcss from 'dropcss'; Sentry.init({ - dsn: 'https://962a7ed3891a335e112746e5c6c6bf42@o4505828687478784.ingest.us.sentry.io/4506871754326016', - tracesSampleRate: 1.0, + dsn: `https://${PUBLIC_SENTRY_KEY}@${PUBLIC_SENTRY_ORG_ID}.ingest.us.sentry.io/${PUBLIC_SENTRY_PROJECT_ID}`, + tracesSampleRate: 1.0 }); export const cspHandle: Handle = async ({ event, resolve }) => { - if (!csp) { - throw new Error('csp is undefined'); - } - const response = await resolve(event); + if (!csp) { + throw new Error('csp is undefined'); + } + const response = await resolve(event); - // Permission fullscreen necessary for maps fullscreen - const headers = { - 'X-Frame-Options': 'SAMEORIGIN', - 'Referrer-Policy': 'no-referrer', - 'Permissions-Policy': `accelerometer=(), autoplay=(), camera=(), document-domain=(self, 'js-profiling'), encrypted-media=(), fullscreen=(self ${rootDomain}), gyroscope=(), interest-cohort=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), sync-xhr=(), usb=(), xr-spatial-tracking=(), geolocation=()`, - 'X-Content-Type-Options': 'nosniff', - // 'Content-Security-Policy-Report-Only': csp, - 'Content-Security-Policy': csp, - 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', - 'Expect-CT': `max-age=86400, report-uri="https://${PUBLIC_SENTRY_ORG_ID}.ingest.us.sentry.io/api/${PUBLIC_SENTRY_PROJECT_ID}/security/?sentry_key=${PUBLIC_SENTRY_KEY}"`, - 'Report-To': `{group: "csp-endpoint", "max_age": 10886400, "endpoints": [{"url": "https://${PUBLIC_SENTRY_ORG_ID}.ingest.us.sentry.io/api/${PUBLIC_SENTRY_PROJECT_ID}/security/?sentry_key=${PUBLIC_SENTRY_KEY}/security/?sentry_key=${PUBLIC_SENTRY_KEY}"}]}`, - }; + // Permission fullscreen necessary for maps fullscreen + const headers = { + 'X-Frame-Options': 'SAMEORIGIN', + 'Referrer-Policy': 'no-referrer', + 'Permissions-Policy': `accelerometer=(), autoplay=(), camera=(), document-domain=(self, 'js-profiling'), encrypted-media=(), fullscreen=(self ${rootDomain}), gyroscope=(), interest-cohort=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), sync-xhr=(), usb=(), xr-spatial-tracking=(), geolocation=()`, + 'X-Content-Type-Options': 'nosniff', + // 'Content-Security-Policy-Report-Only': csp, + 'Content-Security-Policy': csp, + 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', + 'Expect-CT': `max-age=86400, report-uri="https://${PUBLIC_SENTRY_ORG_ID}.ingest.us.sentry.io/api/${PUBLIC_SENTRY_PROJECT_ID}/security/?sentry_key=${PUBLIC_SENTRY_KEY}"`, + 'Report-To': `{group: "csp-endpoint", "max_age": 10886400, "endpoints": [{"url": "https://${PUBLIC_SENTRY_ORG_ID}.ingest.us.sentry.io/api/${PUBLIC_SENTRY_PROJECT_ID}/security/?sentry_key=${PUBLIC_SENTRY_KEY}"}]}` + }; - Object.entries(headers).forEach(([key, value]) => { - response.headers.set(key, value); - }); - return response; -} + Object.entries(headers).forEach(([key, value]) => { + response.headers.set(key, value); + }); + return response; +}; export const ampHandle: Handle = async ({ event, resolve }) => { let buffer = ''; @@ -55,15 +55,18 @@ export const ampHandle: Handle = async ({ event, resolve }) => { const markup = amp .transform(buffer) .replace('⚡', 'amp') // dropcss can't handle this character - .replace(/`; - }); + .replace( + /`; + } + ); css = dropcss({ css, html: markup }).css; return markup.replace('', `${css}`); } - }, + } }); };