Docker compose dependencies (#20)

This commit is contained in:
Stan Wohlwend 2024-05-04 15:42:41 +02:00 committed by GitHub
parent bcce00ff59
commit 406ad69ebb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 159 additions and 175 deletions

View File

@ -2,35 +2,13 @@ name: Runs E2E API Tests
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
env:
SERVER_BASE_URL: http://localhost:8101
PROJECT_CLIENT_ID: ${{ secrets.PROJECT_CLIENT_ID }}
PROJECT_CLIENT_KEY: ${{ secrets.PROJECT_CLIENT_KEY }}
NEXT_PUBLIC_STACK_URL: http://localhost:8101
NEXT_PUBLIC_STACK_PROJECT_ID: ${{ secrets.PROJECT_CLIENT_ID }}
NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY: ${{ secrets.PROJECT_CLIENT_KEY }}
STACK_SECRET_SERVER_KEY: test
SERVER_SECRET: 23-wuNpik0gIW4mruTz25rbIvhuuvZFrLOLtL7J4tyo
EMAIL_HOST: 0.0.0.0
EMAIL_PORT: 2500
EMAIL_SECURE: false
EMAIL_USERNAME: test
EMAIL_PASSWORD: none
EMAIL_SENDER: noreply@test.com
DATABASE_CONNECTION_STRING: ${{ secrets.DATABASE_CONNECTION_STRING }}
DIRECT_DATABASE_CONNECTION_STRING: ${{ secrets.DATABASE_CONNECTION_STRING }}
strategy:
matrix:
node-version: [20.x]
@ -45,9 +23,47 @@ jobs:
uses: pnpm/action-setup@v3
with:
version: 8
- name: Create .env.local file for stack-server
run: |
cat > packages/stack-server/.env.local <<EOF
NEXT_PUBLIC_STACK_URL=http://localhost:8101
NEXT_PUBLIC_STACK_PROJECT_ID=internal
NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY=internal-project-client-api-key
STACK_SECRET_SERVER_KEY=internal-project-server-api-key
SERVER_SECRET=23-wuNpik0gIW4mruTz25rbIvhuuvZFrLOLtL7J4tyo
EMAIL_HOST=0.0.0.0
EMAIL_PORT=2500
EMAIL_SECURE=false
EMAIL_USERNAME=some-username
EMAIL_PASSWORD=some-password
EMAIL_SENDER=noreply@example.com
DATABASE_CONNECTION_STRING=postgres://postgres:password@localhost:5432/stackframe
DIRECT_DATABASE_CONNECTION_STRING=postgres://postgres:password@localhost:5432/stackframe
EOF
- name: Install dependencies
run: pnpm install
- name: Build
- name: Start Docker Compose
run: docker-compose -f dependencies.compose.yaml up -d
- name: Initialize database
run: pnpm run prisma:server -- migrate reset --force
- name: Build stack-server
run: pnpm build:server
- name: Start server & run tests
run: pnpm -C packages/stack-server start & npx wait-on@7.2.0 http://localhost:8101 && pnpm -C apps/e2e test:ci
- name: Start stack-server in background
run: pnpm -C packages/stack-server start &
- name: Wait for stack-server to start
run: npx wait-on@7.2.0 http://localhost:8101
- name: Run tests
run: pnpm -C apps/e2e test:ci
env:
SERVER_BASE_URL: http://localhost:8101
INTERNAL_PROJECT_ID: internal
INTERNAL_PROJECT_CLIENT_KEY: internal-project-client-api-key

View File

@ -1,3 +1,3 @@
PROJECT_CLIENT_ID=internal
PROJECT_CLIENT_KEY=client_key
SERVER_BASE_URL=http://localhost:8101
INTERNAL_PROJECT_ID=
INTERNAL_PROJECT_CLIENT_KEY=
SERVER_BASE_URL=http://localhost:8101

View File

@ -7,5 +7,5 @@ function getEnvVar(name: string): string {
}
export const BASE_URL = getEnvVar("SERVER_BASE_URL")
export const PROJECT_ID = getEnvVar("PROJECT_CLIENT_ID")
export const PROJECT_CLIENT_KEY = getEnvVar("PROJECT_CLIENT_KEY")
export const INTERNAL_PROJECT_ID = getEnvVar("INTERNAL_PROJECT_ID")
export const INTERNAL_PROJECT_CLIENT_KEY = getEnvVar("INTERNAL_PROJECT_CLIENT_KEY")

View File

@ -1,10 +1,10 @@
import { describe, expect, test } from "vitest";
import request from "supertest";
import { BASE_URL, PROJECT_CLIENT_KEY, PROJECT_ID } from "./helpers";
import { BASE_URL, INTERNAL_PROJECT_CLIENT_KEY, INTERNAL_PROJECT_ID } from "../helpers";
const AUTH_HEADER = {
"x-stack-project-id": PROJECT_ID,
"x-stack-publishable-client-key": PROJECT_CLIENT_KEY,
"x-stack-project-id": INTERNAL_PROJECT_ID,
"x-stack-publishable-client-key": INTERNAL_PROJECT_CLIENT_KEY,
};
const JSON_HEADER = {
@ -36,7 +36,7 @@ async function signInWithEmailPassword(email: string, password: string) {
return { email, password, response };
}
describe("Basic", () => {
describe("Various internal project tests", () => {
test("Main Page", async () => {
const response = await request(BASE_URL).get("/");
expect(response.status).toBe(307);
@ -71,4 +71,4 @@ describe("Basic", () => {
expect(response2.status).toBe(200);
expect(response2.body.primaryEmail).toBe(email)
});
});
});

24
dependencies.compose.yaml Normal file
View File

@ -0,0 +1,24 @@
services:
db:
image: postgres:latest
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: stackframe
ports:
- 5432:5432
volumes:
- postgres-data:/var/lib/postgresql/data
inbucket:
image: inbucket/inbucket:latest
ports:
- 2500:2500
- 9000:9000
- 1100:1100
volumes:
- inbucket-data:/data
volumes:
postgres-data:
inbucket-data:

View File

@ -25,7 +25,7 @@
"todo-sh-error-blocker": "( echo && echo ========================================= && echo There are TODO\\ ASAPs in your code, please && echo review them with '`npm run todo`'. && echo && echo Press ENTER or wait 10s to continue. && echo ========================================= && echo && bash -c 'read -t 10'; exit 1 ) 1>&2"
},
"prisma": {
"seed": "npm run with-env -- ts-node prisma/seed.ts"
"seed": "npm run with-env -- tsx prisma/seed.ts"
},
"dependencies": {
"@emotion/react": "^11.11.3",
@ -77,6 +77,6 @@
"@types/react": "^18.2.66",
"@types/react-dom": "^18",
"prisma": "^5.9.1",
"ts-node": "^10.9.2"
"tsx": "^4.7.2"
}
}

View File

@ -1,4 +1,4 @@
const { PrismaClient } = require('@prisma/client'); // must use require due to ts-node shenanigans
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
@ -37,11 +37,11 @@ async function seed() {
create: {
allowLocalhost: true,
oauthProviderConfigs: {
create: ['github', 'facebook', 'google', 'microsoft'].map((id) => ({
create: (['github', 'facebook', 'google', 'microsoft'] as const).map((id) => ({
id,
proxiedOAuthConfig: {
create: {
type: id.toUpperCase(),
type: id.toUpperCase() as any,
}
},
projectUserOAuthAccounts: {

View File

@ -11,9 +11,9 @@ Sentry.init({
tracesSampleRate: 1,
// Setting this option to true will print useful information to the console while you're setting up Sentry.
debug: process.env.NODE_ENV === "development",
debug: false,
enabled: process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test",
enabled: process.env.NODE_ENV !== "development" && !process.env.CI,
replaysOnErrorSampleRate: 1.0,

View File

@ -12,7 +12,7 @@ Sentry.init({
tracesSampleRate: 1,
// Setting this option to true will print useful information to the console while you're setting up Sentry.
debug: process.env.NODE_ENV === "development",
debug: false,
enabled: process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test",
enabled: process.env.NODE_ENV !== "development" && !process.env.CI,
});

View File

@ -11,7 +11,7 @@ Sentry.init({
tracesSampleRate: 1,
// Setting this option to true will print useful information to the console while you're setting up Sentry.
debug: process.env.NODE_ENV === "development",
debug: false,
enabled: process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test",
enabled: process.env.NODE_ENV !== "development" && !process.env.CI,
});

View File

@ -2,7 +2,7 @@ import { NextRequest, NextResponse } from "next/server";
import * as yup from "yup";
import { StatusError } from "@stackframe/stack-shared/dist/utils/errors";
import { deprecatedParseRequest, deprecatedSmartRouteHandler } from "@/lib/route-handlers";
import { checkApiKeySet, publishableClientKeyHeaderSchema, superSecretAdminKeyHeaderSchema } from "@/lib/api-keys";
import { checkApiKeySet, publishableClientKeyHeaderSchema, secretServerKeyHeaderSchema, superSecretAdminKeyHeaderSchema } from "@/lib/api-keys";
import { getProject, isProjectAdmin, updateProject } from "@/lib/projects";
import { ClientProjectJson, SharedProvider, StandardProvider, sharedProviders, standardProviders } from "@stackframe/stack-shared/dist/interface/clientInterface";
import { ProjectUpdateOptions } from "@stackframe/stack-shared/dist/interface/adminInterface";

View File

@ -2,6 +2,10 @@ import './polyfills';
import { StackServerApp } from '@stackframe/stack';
if (process.env.NEXT_PUBLIC_STACK_PROJECT_ID !== "internal") {
throw new Error("This project is not configured correctly. stack-server must always use the internal project.");
}
export const stackServerApp = new StackServerApp({
tokenStore: "nextjs-cookie",
urls: {

View File

@ -1,3 +1,4 @@
import { KnownError } from "..";
import { StackAssertionError, captureError } from "./errors";
import { Result } from "./results";
import { generateUuid } from "./uuids";

View File

@ -66,6 +66,7 @@
"@types/color": "^3.0.6",
"@types/js-cookie": "^3.0.6",
"@types/react": "^18.2.66",
"esbuild": "^0.20.2"
"esbuild": "^0.20.2",
"tsup": "^8.0.2"
}
}

View File

@ -28,7 +28,6 @@ const config: Options = {
});
build.onResolve({ filter: /^.*$/m }, async (args) => {
console.log('onResolve', args);
if (args.kind === "entry-point" || customNoExternal.has(args.path)) {
return undefined;
}

View File

@ -184,7 +184,7 @@ importers:
version: link:../../packages/stack
next:
specifier: ^14.3.0-canary.26
version: 14.3.0-canary.27(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
version: 14.3.0-canary.38(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18
version: 18.2.0
@ -297,7 +297,7 @@ importers:
version: 3.0.5
next:
specifier: '>=14.1'
version: 14.1.0(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
version: 14.2.3(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
oauth4webapi:
specifier: ^2.10.3
version: 2.10.3
@ -329,6 +329,9 @@ importers:
esbuild:
specifier: ^0.20.2
version: 0.20.2
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@5.3.3)
packages/stack-sc:
dependencies:
@ -443,7 +446,7 @@ importers:
version: 18.2.0(react@18.2.0)
react-email:
specifier: 2.1.0
version: 2.1.0(@babel/core@7.24.0)(eslint@8.30.0)(ts-node@10.9.2)
version: 2.1.0(@babel/core@7.24.0)(eslint@8.30.0)
rehype-katex:
specifier: ^7
version: 7.0.0
@ -487,9 +490,9 @@ importers:
prisma:
specifier: ^5.9.1
version: 5.9.1
ts-node:
specifier: ^10.9.2
version: 10.9.2(@types/node@20.11.18)(typescript@5.3.3)
tsx:
specifier: ^4.7.2
version: 4.7.2
packages/stack-shared:
dependencies:
@ -2187,12 +2190,6 @@ packages:
dev: false
optional: true
/@cspotcode/source-map-support@0.8.1:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/trace-mapping': 0.3.9
/@discoveryjs/json-ext@0.5.7:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
@ -3874,12 +3871,6 @@ packages:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
/@jridgewell/trace-mapping@0.3.9:
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
/@leichtgewicht/ip-codec@2.0.4:
resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
dev: false
@ -4344,8 +4335,8 @@ packages:
resolution: {integrity: sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==}
dev: false
/@next/env@14.3.0-canary.27:
resolution: {integrity: sha512-AdaBOSjDgrNIjhD3yOoGwdPW0eTurR15itIabl19uQvPuEIfUw4403IQyEAvF/KEZY6ZE5CngsJLcqe2cQkEEw==}
/@next/env@14.3.0-canary.38:
resolution: {integrity: sha512-85pRdklxJ1r72Zijb+ezpUynOZEzu4DjXUAb7t2jxWuVXSyfgPEhx8ygyYps3s6W/to3dI3P5EoidI9pSiom1Q==}
dev: false
/@next/eslint-plugin-next@14.1.0:
@ -4394,8 +4385,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-arm64@14.3.0-canary.27:
resolution: {integrity: sha512-w/CEjoBc/0nBMgxQbZWFwyW6sdi6+AXNP8nvyi5d7m0R6fxVC7WXDwxx0ytEtXXVVqqC0nTSUj8UKB4JyYPPnQ==}
/@next/swc-darwin-arm64@14.3.0-canary.38:
resolution: {integrity: sha512-sMw8q19zqtcfBPUFL4BRh6d4FdwjMCnENN7GXd0z+Trgf+gqT7VY2rQ8OC9XxPdWVYa24RSnTex/f7zDv6mUxw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@ -4421,8 +4412,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-x64@14.3.0-canary.27:
resolution: {integrity: sha512-UpXSLuTuY3LDWy32ocIFTHocWKR+FPmsdz9Fp5z6n70zQAFR9guT9d8sM1i2JyGy5Y7NV9WAEaVipoEwECCBbw==}
/@next/swc-darwin-x64@14.3.0-canary.38:
resolution: {integrity: sha512-tkqX7ECskz4iD2BvkvZgntL3KR4b/ut4835A0bh4Cx9mvePQoZOrp07nmVCCAuiYr2pfeKEMXIoIcRI9mGMCQw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@ -4448,8 +4439,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-gnu@14.3.0-canary.27:
resolution: {integrity: sha512-pik2hs7dfOpk9gTFm73vBU6+8jdxhp2GIfdoUDoWeKDOIZov2iZokl0rujR1PQuCcJT9686tgSjN8EgAOsqISw==}
/@next/swc-linux-arm64-gnu@14.3.0-canary.38:
resolution: {integrity: sha512-TkOpATYCtOcBYP/eg81Rbtv1B2p1p83xLmQd+r78DV37nV13XmIyWcR3tq0eKtI+OBmPwzvLZM2n07HdwetPtA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@ -4475,8 +4466,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-musl@14.3.0-canary.27:
resolution: {integrity: sha512-igIsdQrAC3/kYIkDIjU5JKiLHJXTWm6LjcN2Cjb/eNyjHYdXkJcTr1LgWWlCahcleWalELlNLPjNCjkhRWt/0A==}
/@next/swc-linux-arm64-musl@14.3.0-canary.38:
resolution: {integrity: sha512-lfzBYujvajzys7gFo76uQNaLqLOjo9WxKxxJy3xzf9azWOOHYX93w4s2wS+33V1Y673Bg+yn2X20BM9FwAXfGw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@ -4502,8 +4493,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-gnu@14.3.0-canary.27:
resolution: {integrity: sha512-p+zZeG84H7k8PX+EhV9YTafDEjGilytGxIcl3Q5z2F9tu/rywHFYcC2L/tSy0YJlooGLpxJpvWjLY09G+JbUew==}
/@next/swc-linux-x64-gnu@14.3.0-canary.38:
resolution: {integrity: sha512-OGYPKo7kPtv95Zf9ZbqMoXP/yshmElGyuSyKmTDUmRQkVcezubM/lT3JmcL/8PKirvQKC0LMKCpmBWwKCMo1Bg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@ -4529,8 +4520,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-musl@14.3.0-canary.27:
resolution: {integrity: sha512-pb0ptIykm3+B2z9hqSw0Rf9MxivsJhOZF0gDgF32LytR2qV8UMbR9D5jLpgWZyO0vGvS2/PwHKubZuk1MpSoAQ==}
/@next/swc-linux-x64-musl@14.3.0-canary.38:
resolution: {integrity: sha512-y3xgAvriR8UP+Ta5QT0EXHIJv8FvsKmA71ej0up5SdRM60ESyWAx8R3XX0kFznuKJ4rHWVnaQx+wcthPDnuhFA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@ -4556,8 +4547,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-arm64-msvc@14.3.0-canary.27:
resolution: {integrity: sha512-0IvGbGx23v1oQAWZmbM70cUkNNJzBOiADUNaYfzmbmWh3WbZ85Ty7bt6UNFAaLTsUajWNT75hbjAU+a4MfBoWg==}
/@next/swc-win32-arm64-msvc@14.3.0-canary.38:
resolution: {integrity: sha512-MsTPTUrrBimbGMaZmJPPi/jrjqK8Y/xuBRCdbkV64k4zSF2as5FDbjssQqMYadfcvgEW4L+hS7ZutKtWYrBKvg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@ -4583,8 +4574,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-ia32-msvc@14.3.0-canary.27:
resolution: {integrity: sha512-CAq7oo/c+xWUPDlLWAmz1ai5WVBjVcNxW5ZH3PTmwLM4NRJqwnnbxht56PRmuYYzbgIjR0YgJ9Fv4NuDVFC54g==}
/@next/swc-win32-ia32-msvc@14.3.0-canary.38:
resolution: {integrity: sha512-Qf/L2gIRX9FZXYdgAN+hfv4+Y51TeRrH014j7M1XtKb06+6pEmP4FpO80TFJOzhZd1bruet5NSwhmllOhSPQ3w==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@ -4610,8 +4601,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-x64-msvc@14.3.0-canary.27:
resolution: {integrity: sha512-Yv5nhfHmncA9hBeehhQjSjgt1tirTu8iaKoFdnXrs/KSvTw1xzcIdwo4wXDe7148GdIb6anyZN7LnlNc9/vEIg==}
/@next/swc-win32-x64-msvc@14.3.0-canary.38:
resolution: {integrity: sha512-R2zxUm3IAclbqctjUdudSP49lnwXnfY3scZ7gTWieIL+LKQqnDLpbiV6HaPkWCt3pVzVb35n3BzuWF7kSe4EWQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@ -6577,18 +6568,6 @@ packages:
engines: {node: '>=10.13.0'}
dev: false
/@tsconfig/node10@1.0.11:
resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
/@tsconfig/node12@1.0.11:
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
/@tsconfig/node14@1.0.3:
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
/@tsconfig/node16@1.0.4:
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
/@types/acorn@4.0.6:
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
dependencies:
@ -7547,9 +7526,6 @@ packages:
readable-stream: 3.6.2
dev: false
/arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
/arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@ -8034,8 +8010,8 @@ packages:
run-applescript: 7.0.0
dev: false
/bundle-require@4.0.3(esbuild@0.19.11):
resolution: {integrity: sha512-2iscZ3fcthP2vka4Y7j277YJevwmsby/FpFDwjgw34Nl7dtCpt7zz/4TexmHMzY6KZEih7En9ImlbbgUNNQGtA==}
/bundle-require@4.1.0(esbuild@0.19.11):
resolution: {integrity: sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
esbuild: '>=0.17'
@ -8702,9 +8678,6 @@ packages:
typescript: 5.3.3
dev: false
/create-require@1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
/cross-spawn@5.1.0:
resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
dependencies:
@ -9237,10 +9210,6 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
/diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
/dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@ -12425,9 +12394,6 @@ packages:
semver: 6.3.1
dev: false
/make-error@1.3.6:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
/map-obj@1.0.1:
resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
engines: {node: '>=0.10.0'}
@ -12458,7 +12424,7 @@ packages:
dependencies:
marked: 7.0.4
react: 18.2.0
react-email: 2.1.0(@babel/core@7.24.0)(eslint@8.30.0)(ts-node@10.9.2)
react-email: 2.1.0(@babel/core@7.24.0)(eslint@8.30.0)
dev: false
/mdast-util-directive@3.0.0:
@ -13433,8 +13399,8 @@ packages:
- babel-plugin-macros
dev: false
/next@14.3.0-canary.27(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-yHX7x6vRDcj39hyz69Ypt8NPRdFvSM6n+56m7fzgggOI7dOkLiGe7BxdRCQqodv+slD82C/nNEiROhNtvpAkOg==}
/next@14.3.0-canary.38(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-gk15ft5fdKtMcgw22d4X8HDtj3SqG7iORLqQFC/wAQAldVHi7CPHPZ05rSu4ajmHjFzkY9HXdNcUu7c6DN7PnQ==}
engines: {node: '>=18.17.0'}
hasBin: true
peerDependencies:
@ -13451,7 +13417,7 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 14.3.0-canary.27
'@next/env': 14.3.0-canary.38
'@swc/helpers': 0.5.11
busboy: 1.6.0
caniuse-lite: 1.0.30001587
@ -13461,15 +13427,15 @@ packages:
react-dom: 18.2.0(react@18.2.0)
styled-jsx: 5.1.1(@babel/core@7.24.0)(react@18.2.0)
optionalDependencies:
'@next/swc-darwin-arm64': 14.3.0-canary.27
'@next/swc-darwin-x64': 14.3.0-canary.27
'@next/swc-linux-arm64-gnu': 14.3.0-canary.27
'@next/swc-linux-arm64-musl': 14.3.0-canary.27
'@next/swc-linux-x64-gnu': 14.3.0-canary.27
'@next/swc-linux-x64-musl': 14.3.0-canary.27
'@next/swc-win32-arm64-msvc': 14.3.0-canary.27
'@next/swc-win32-ia32-msvc': 14.3.0-canary.27
'@next/swc-win32-x64-msvc': 14.3.0-canary.27
'@next/swc-darwin-arm64': 14.3.0-canary.38
'@next/swc-darwin-x64': 14.3.0-canary.38
'@next/swc-linux-arm64-gnu': 14.3.0-canary.38
'@next/swc-linux-arm64-musl': 14.3.0-canary.38
'@next/swc-linux-x64-gnu': 14.3.0-canary.38
'@next/swc-linux-x64-musl': 14.3.0-canary.38
'@next/swc-win32-arm64-msvc': 14.3.0-canary.38
'@next/swc-win32-ia32-msvc': 14.3.0-canary.38
'@next/swc-win32-x64-msvc': 14.3.0-canary.38
sharp: 0.33.3
transitivePeerDependencies:
- '@babel/core'
@ -14256,7 +14222,7 @@ packages:
camelcase-css: 2.0.1
postcss: 8.4.38
/postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
/postcss-load-config@4.0.2(postcss@8.4.38):
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
@ -14270,7 +14236,6 @@ packages:
dependencies:
lilconfig: 3.1.1
postcss: 8.4.38
ts-node: 10.9.2(@types/node@20.11.18)(typescript@5.3.3)
yaml: 2.3.4
/postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.3.3)(webpack@5.90.1):
@ -14945,7 +14910,7 @@ packages:
react: 18.2.0
scheduler: 0.23.0
/react-email@2.1.0(@babel/core@7.24.0)(eslint@8.30.0)(ts-node@10.9.2):
/react-email@2.1.0(@babel/core@7.24.0)(eslint@8.30.0):
resolution: {integrity: sha512-fTt85ca1phsBu57iy32wn4LTR37rOzDZoY2AOWVq3JQYVwk6GlBdUuQWif2cudkwWINL9COf9kRMS4/QWtKtAQ==}
engines: {node: '>=18.0.0'}
hasBin: true
@ -14989,7 +14954,7 @@ packages:
source-map-js: 1.0.2
stacktrace-parser: 0.1.10
tailwind-merge: 2.2.0
tailwindcss: 3.4.0(ts-node@10.9.2)
tailwindcss: 3.4.0
tree-cli: 0.6.7
typescript: 5.1.6
transitivePeerDependencies:
@ -16607,7 +16572,7 @@ packages:
'@babel/runtime': 7.24.0
dev: false
/tailwindcss@3.4.0(ts-node@10.9.2):
/tailwindcss@3.4.0:
resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==}
engines: {node: '>=14.0.0'}
hasBin: true
@ -16629,7 +16594,7 @@ packages:
postcss: 8.4.38
postcss-import: 15.1.0(postcss@8.4.38)
postcss-js: 4.0.1(postcss@8.4.38)
postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2)
postcss-load-config: 4.0.2(postcss@8.4.38)
postcss-nested: 6.0.1(postcss@8.4.38)
postcss-selector-parser: 6.0.15
resolve: 1.22.8
@ -16660,7 +16625,7 @@ packages:
postcss: 8.4.38
postcss-import: 15.1.0(postcss@8.4.38)
postcss-js: 4.0.1(postcss@8.4.38)
postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2)
postcss-load-config: 4.0.2(postcss@8.4.38)
postcss-nested: 6.0.1(postcss@8.4.38)
postcss-selector-parser: 6.0.15
resolve: 1.22.8
@ -16957,36 +16922,6 @@ packages:
/ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
/ts-node@10.9.2(@types/node@20.11.18)(typescript@5.3.3):
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
peerDependencies:
'@swc/core': '>=1.2.50'
'@swc/wasm': '>=1.2.50'
'@types/node': '*'
typescript: '>=2.7'
peerDependenciesMeta:
'@swc/core':
optional: true
'@swc/wasm':
optional: true
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 20.11.18
acorn: 8.11.3
acorn-walk: 8.3.2
arg: 4.1.3
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
typescript: 5.3.3
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
/tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
dependencies:
@ -17023,7 +16958,7 @@ packages:
typescript:
optional: true
dependencies:
bundle-require: 4.0.3(esbuild@0.19.11)
bundle-require: 4.1.0(esbuild@0.19.11)
cac: 6.7.14
chokidar: 3.6.0
debug: 4.3.4
@ -17031,7 +16966,7 @@ packages:
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2)
postcss-load-config: 4.0.2(postcss@8.4.38)
resolve-from: 5.0.0
rollup: 4.16.1
source-map: 0.8.0-beta.0
@ -17043,6 +16978,17 @@ packages:
- ts-node
dev: true
/tsx@4.7.2:
resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==}
engines: {node: '>=18.0.0'}
hasBin: true
dependencies:
esbuild: 0.19.11
get-tsconfig: 4.7.2
optionalDependencies:
fsevents: 2.3.3
dev: true
/tty-table@4.2.3:
resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==}
engines: {node: '>=8.0.0'}
@ -17493,9 +17439,6 @@ packages:
hasBin: true
dev: false
/v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
/validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
dependencies:
@ -18241,10 +18184,6 @@ packages:
yargs-parser: 21.1.1
dev: true
/yn@3.1.1:
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
engines: {node: '>=6'}
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}