From 00299da3b2f7debb756f2d1624dadf2ef9e4e969 Mon Sep 17 00:00:00 2001 From: Mats Jun Larsen Date: Tue, 25 Feb 2025 09:06:06 +0100 Subject: [PATCH] Move typescript config into @dotkomonline/config (#1206) --- .github/workflows/ci.yml | 9 ++---- apps/dashboard/Dockerfile | 7 ++++- apps/dashboard/package.json | 1 + apps/invoicification/package.json | 2 +- apps/rif/package.json | 2 +- apps/rpc/Dockerfile | 17 +++++++---- apps/rpc/package.json | 4 +-- apps/rpc/runtime.mjs | 21 +++++++++++++ apps/rpc/tsup.config.ts | 15 ---------- package.json | 12 ++------ .../attendance/attendance-repository.ts | 5 ++-- packages/core/vitest-integration.setup.ts | 4 +-- packages/db/package.json | 17 +++++++++-- packages/db/prisma/schema.prisma | 2 +- packages/db/src/fixtures/attendance.ts | 5 ++-- packages/db/src/index.ts | 11 +++++-- packages/db/src/schemas.ts | 1 + .../{test-databases.ts => test-harness.ts} | 6 ++-- packages/db/tsconfig.json | 3 +- packages/types/package.json | 1 + packages/types/src/article.ts | 2 +- .../types/src/attendance/attendance-pool.ts | 2 +- packages/types/src/attendance/attendance.ts | 2 +- packages/types/src/attendance/attendee.ts | 2 +- .../types/src/attendance/waitlist-attendee.ts | 2 +- packages/types/src/committee.ts | 2 +- packages/types/src/company.ts | 2 +- packages/types/src/event-committee.ts | 2 +- packages/types/src/event.ts | 2 +- packages/types/src/interest-group.ts | 2 +- packages/types/src/job-listing.ts | 2 +- packages/types/src/mark.ts | 2 +- .../types/src/notification-permissions.ts | 2 +- packages/types/src/offline.ts | 2 +- packages/types/src/payment.ts | 2 +- packages/types/src/personal-mark.ts | 2 +- packages/types/src/privacy-permissions.ts | 2 +- packages/types/tsconfig.json | 3 +- pnpm-lock.yaml | 12 ++++---- turbo.json | 30 +++++-------------- 40 files changed, 117 insertions(+), 107 deletions(-) create mode 100644 apps/rpc/runtime.mjs delete mode 100644 apps/rpc/tsup.config.ts create mode 100644 packages/db/src/schemas.ts rename packages/db/src/{test-databases.ts => test-harness.ts} (94%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed97f9d03..48b656f2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,10 +45,5 @@ jobs: - name: Lint run: pnpm lint-check - - name: Build - run: | - pnpm run -F @dotkomonline/brevduen \ - -F @dotkomonline/invoicification \ - -F @dotkomonline/rif \ - -F @dotkomonline/rpc \ - build + - name: Build docker images + run: pnpm run docker:build diff --git a/apps/dashboard/Dockerfile b/apps/dashboard/Dockerfile index c80b9eecd..56a98b7bc 100644 --- a/apps/dashboard/Dockerfile +++ b/apps/dashboard/Dockerfile @@ -17,7 +17,12 @@ ENV DOCKER_BUILD=1 RUN npm install -g pnpm@9.15.5 turbo@2.0.14 --ignore-scripts COPY --from=builder /app/out/json . -RUN pnpm install --ignore-scripts +COPY --from=builder /app/out/full/packages/db/prisma/schema.prisma packages/db/prisma/schema.prisma + +# Must enable scripts here for Prisma codegen to build +RUN apk update && apk add --no-cache python3 gcc g++ make +RUN pnpm install + COPY --from=builder /app/out/full . RUN turbo run build --filter @dotkomonline/dashboard diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index c65517907..7ef986257 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -5,6 +5,7 @@ "scripts": { "dev": "next dev -p 3002 --turbo", "build": "next build", + "docker:build": "docker build --platform linux/amd64 -t dashboard:latest -f Dockerfile --progress plain ../..", "start": "next start", "lint": "biome check . --write", "lint-check": "biome check .", diff --git a/apps/invoicification/package.json b/apps/invoicification/package.json index 448a9383f..ac1292423 100644 --- a/apps/invoicification/package.json +++ b/apps/invoicification/package.json @@ -9,7 +9,7 @@ "lint": "biome check . --write", "lint-check": "biome check .", "type-check": "tsc --noEmit", - "docker:build": "docker build --platform linux/amd64 -t invoicification:latest -f Dockerfile ../..", + "docker:build": "docker build --platform linux/amd64 -t invoicification:latest -f Dockerfile --progress plain ../..", "docker:push:prod": "docker tag invoicification:latest 891459268445.dkr.ecr.eu-north-1.amazonaws.com/monoweb/prod/invoicification:latest && docker push 891459268445.dkr.ecr.eu-north-1.amazonaws.com/monoweb/prod/invoicification:latest" }, "dependencies": { diff --git a/apps/rif/package.json b/apps/rif/package.json index 7168444fc..ac43bebe5 100644 --- a/apps/rif/package.json +++ b/apps/rif/package.json @@ -9,7 +9,7 @@ "lint": "biome check . --write", "lint-check": "biome check .", "type-check": "tsc --noEmit", - "docker:build": "docker build --platform linux/amd64 -t rif:latest -f Dockerfile ../..", + "docker:build": "docker build --platform linux/amd64 -t rif:latest -f Dockerfile --progress plain ../..", "docker:push:prod": "docker tag rif:latest 891459268445.dkr.ecr.eu-north-1.amazonaws.com/monoweb/prod/rif:latest && docker push 891459268445.dkr.ecr.eu-north-1.amazonaws.com/monoweb/prod/rif:latest" }, "dependencies": { diff --git a/apps/rpc/Dockerfile b/apps/rpc/Dockerfile index 7c0b254f4..ab798a3d9 100644 --- a/apps/rpc/Dockerfile +++ b/apps/rpc/Dockerfile @@ -17,9 +17,14 @@ ENV DOCKER_BUILD=1 RUN npm install -g pnpm@9.15.5 turbo@2.0.14 --ignore-scripts COPY --from=builder /app/out/json . -RUN pnpm install --ignore-scripts -COPY --from=builder /app/out/full . -RUN turbo run build --filter @dotkomonline/rpc +COPY --from=builder /app/out/full/packages/db/prisma/schema.prisma packages/db/prisma/schema.prisma + +# Must enable scripts here for Prisma codegen to build +RUN apk update && apk add --no-cache python3 gcc g++ make +RUN pnpm install + +# Install for production +RUN pnpm install --production FROM base AS runner WORKDIR /app @@ -34,7 +39,7 @@ RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 rpc USER rpc -COPY --from=installer --chown=nodejs:rpc --chmod=755 /app/apps/rpc/dist/index.js ./ -COPY --from=installer --chown=nodejs:rpc --chmod=755 /app/apps/rpc/package.json ./ +COPY --from=installer --chown=rpc:nodejs --chmod=755 /app . +COPY --from=builder --chown=rpc:nodejs --chmod=755 /app/out/full . -CMD node index.js +CMD node --loader ./apps/rpc/runtime.mjs --experimental-strip-types ./apps/rpc/src/index.ts diff --git a/apps/rpc/package.json b/apps/rpc/package.json index 7f24157aa..54b95c9bf 100644 --- a/apps/rpc/package.json +++ b/apps/rpc/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "dotenv -o -- tsx watch src/index.ts", - "build": "tsup src/index.ts", + "docker:build": "docker build --platform linux/amd64 -t rpc:latest -f Dockerfile --progress plain ../..", "lint": "biome check . --write", "lint-check": "biome check .", "type-check": "tsc --noEmit" @@ -29,8 +29,6 @@ "@types/node": "^22.0.0", "dotenv-cli": "^8.0.0", "tslib": "^2.6.2", - "tsup": "^8.3.0", - "tsx": "^4.15.6", "typescript": "^5.8" } } diff --git a/apps/rpc/runtime.mjs b/apps/rpc/runtime.mjs new file mode 100644 index 000000000..75a61dec3 --- /dev/null +++ b/apps/rpc/runtime.mjs @@ -0,0 +1,21 @@ +import path from "node:path" +import { URL } from "node:url" + +export async function resolve(specifier, context, nextResolve) { + // Only handle relative or absolute paths without extensions + if ( + (specifier.startsWith("./") || specifier.startsWith("../") || specifier.startsWith("/")) && + !path.extname(specifier) + ) { + // Try with .ts extension first + const tsFile = `${specifier}.ts` + const resolvedTsPath = new URL(tsFile, context.parentURL).href + return { + url: resolvedTsPath, + shortCircuit: true, + } + } + + // Let Node.js handle it if no match + return nextResolve(specifier) +} diff --git a/apps/rpc/tsup.config.ts b/apps/rpc/tsup.config.ts deleted file mode 100644 index 5b79e7f8b..000000000 --- a/apps/rpc/tsup.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { defineConfig } from "tsup" - -export default defineConfig({ - splitting: false, - bundle: true, - sourcemap: true, - clean: true, - format: "esm", - target: "node22", - platform: "node", - noExternal: [/(.*)/], - banner: { - js: "import { createRequire as __DONT_USE_O } from 'module'; const require = __DONT_USE_O(import.meta.url);", - }, -}) diff --git a/package.json b/package.json index 7c138d730..b2d49f7e2 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,7 @@ "name": "monorepo", "version": "1.0.0", "description": "Monoweb is the next-generation web application for Online. This is the monorepo source.", - "keywords": [ - "online", - "ntnu", - "student-association" - ], + "keywords": ["online", "ntnu", "student-association"], "homepage": "https://online.ntnu.no", "author": "Dotkom (https://online.ntnu.no)", "bugs": { @@ -37,13 +33,11 @@ "type-check": "turbo run type-check", "clean": "turbo run clean", "docker:login": "aws ecr get-login-password --region eu-north-1 | docker login --username AWS --password-stdin 891459268445.dkr.ecr.eu-north-1.amazonaws.com", + "docker:build": "turbo run docker:build", "docker:login:public": "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws", "shell": "pnpm --filter=@dotkomonline/shell start" }, - "workspaces": [ - "packages/*", - "apps/*" - ], + "workspaces": ["packages/*", "apps/*"], "packageManager": "pnpm@9.15.5", "engines": { "node": ">=20.12.2", diff --git a/packages/core/src/modules/attendance/attendance-repository.ts b/packages/core/src/modules/attendance/attendance-repository.ts index 0b132f253..1de282225 100644 --- a/packages/core/src/modules/attendance/attendance-repository.ts +++ b/packages/core/src/modules/attendance/attendance-repository.ts @@ -1,4 +1,4 @@ -import type { DBClient } from "@dotkomonline/db" +import { type DBClient, PrismaRuntime } from "@dotkomonline/db" import { type Attendance, type AttendanceId, @@ -7,7 +7,6 @@ import { type Extras, ExtrasSchema, } from "@dotkomonline/types" -import { Prisma } from "@prisma/client" import type { JsonValue } from "@prisma/client/runtime/library" export interface AttendanceRepository { @@ -80,7 +79,7 @@ export class AttendanceRepositoryImpl implements AttendanceRepository { /** Prisma requires distinction between database null and json null, so here we choose database null */ private correctNullTypes(data: T) { - return { ...data, extras: data.extras === null ? Prisma.DbNull : data.extras } + return { ...data, extras: data.extras === null ? PrismaRuntime.DbNull : data.extras } } /** Takes an object with unparsed JSON value yearCriteria and returns it with yearCriteria parsed */ diff --git a/packages/core/vitest-integration.setup.ts b/packages/core/vitest-integration.setup.ts index 928176a83..61c698c96 100644 --- a/packages/core/vitest-integration.setup.ts +++ b/packages/core/vitest-integration.setup.ts @@ -1,6 +1,6 @@ import type { S3Client } from "@aws-sdk/client-s3" import type { DBClient } from "@dotkomonline/db" -import { getTestClient } from "@dotkomonline/db/src/test-databases" +import { getPrismaClientForTest } from "@dotkomonline/db/test-harness" import type { ManagementClient } from "auth0" import { afterAll, beforeEach } from "vitest" import { mockDeep } from "vitest-mock-extended" @@ -28,6 +28,6 @@ afterAll(async () => { }) beforeEach(async () => { - dbClient = await getTestClient() + dbClient = await getPrismaClientForTest() core = await createServiceLayerForTesting() }) diff --git a/packages/db/package.json b/packages/db/package.json index 9c27a3e9d..269534bcd 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -2,9 +2,21 @@ "name": "@dotkomonline/db", "version": "1.0.0", "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", "private": true, + "exports": { + ".": { + "import": "./src/index.ts", + "types": "./src/index.ts" + }, + "./schemas": { + "import": "./src/schemas.ts", + "types": "./src/schemas.ts" + }, + "./test-harness": { + "import": "./src/test-harness.ts", + "types": "./src/test-harness.ts" + } + }, "scripts": { "clean": "rm -rf .turbo node_modules", "lint": "biome check . --write", @@ -27,6 +39,7 @@ "devDependencies": { "@biomejs/biome": "^1.9.3", "@dotkomonline/config": "workspace:*", + "@types/node": "^22.0.0", "@types/pg": "^8.10.9", "prisma": "^6.3.1", "tsx": "^4.19.3", diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index b03a9c605..e60aa6024 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -6,7 +6,7 @@ generator zod { provider = "zod-prisma-types" output = "../src/schemas" - useMultipleFiles = true + useMultipleFiles = false createInputTypes = false addIncludeType = false addSelectType = false diff --git a/packages/db/src/fixtures/attendance.ts b/packages/db/src/fixtures/attendance.ts index c49fcf744..ee0296965 100644 --- a/packages/db/src/fixtures/attendance.ts +++ b/packages/db/src/fixtures/attendance.ts @@ -1,4 +1,5 @@ -import { Prisma } from "@prisma/client" +import type { Prisma } from "@prisma/client" +import { PrismaRuntime } from "../index" export const getAttendanceFixtures = (): Prisma.AttendanceCreateManyInput[] => [ { @@ -52,6 +53,6 @@ export const getAttendanceFixtures = (): Prisma.AttendanceCreateManyInput[] => [ deregisterDeadline: new Date("2023-02-23 11:03:49.289+00"), createdAt: new Date("2023-02-23 11:03:49.289+00"), updatedAt: new Date("2023-02-23 11:03:49.289+00"), - extras: Prisma.DbNull, + extras: PrismaRuntime.DbNull, }, ] diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts index 819874885..317e3a146 100644 --- a/packages/db/src/index.ts +++ b/packages/db/src/index.ts @@ -1,10 +1,15 @@ -import { type Prisma, PrismaClient } from "@prisma/client" +import { createRequire } from "node:module" +import type { Prisma, PrismaClient } from "@prisma/client" import type { DefaultArgs } from "@prisma/client/runtime/library" -export * as schemas from "./schemas" +const require = createRequire(import.meta.url) +const { Prisma: _Prisma, PrismaClient: _PrismaClient } = require("@prisma/client") +export type * from "@prisma/client" +export const PrismaRuntime = _Prisma +export const PrismaClientRuntime = _PrismaClient export type DBClient = PrismaClient export const createPrisma = (databaseUrl: string): DBClient => - new PrismaClient({ + new _PrismaClient({ datasourceUrl: databaseUrl, }) diff --git a/packages/db/src/schemas.ts b/packages/db/src/schemas.ts new file mode 100644 index 000000000..897cc4c76 --- /dev/null +++ b/packages/db/src/schemas.ts @@ -0,0 +1 @@ +export * as schemas from "./schemas/index" diff --git a/packages/db/src/test-databases.ts b/packages/db/src/test-harness.ts similarity index 94% rename from packages/db/src/test-databases.ts rename to packages/db/src/test-harness.ts index fae674cdd..46fb129b0 100644 --- a/packages/db/src/test-databases.ts +++ b/packages/db/src/test-harness.ts @@ -1,5 +1,5 @@ // biome-ignore lint/style/useNodejsImportProtocol: Cannot import with node path on vercel -import { spawn } from "node:child_process" +import { spawn } from "child_process" import { PostgreSqlContainer } from "@testcontainers/postgresql" import { createPrisma } from "." @@ -46,10 +46,8 @@ function migrateTestDatabase(dbUrl: string) { }) } -export async function getTestClient() { +export async function getPrismaClientForTest() { const dbUrl = await getTestContainerDatabase() - await migrateTestDatabase(dbUrl) - return createPrisma(dbUrl) } diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json index 502505387..ffd155edc 100644 --- a/packages/db/tsconfig.json +++ b/packages/db/tsconfig.json @@ -2,7 +2,8 @@ "extends": "../../packages/config/tsconfig.json", "compilerOptions": { "outDir": "dist", - "declaration": true + "declaration": true, + "types": ["node"] }, "include": ["./**/*.ts", "./**/*.tsx"] } diff --git a/packages/types/package.json b/packages/types/package.json index 297ee28c4..4839bd27c 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -17,6 +17,7 @@ "devDependencies": { "@biomejs/biome": "^1.9.3", "@dotkomonline/config": "workspace:*", + "@types/node": "^22.0.0", "typescript": "^5.8" } } diff --git a/packages/types/src/article.ts b/packages/types/src/article.ts index 45df9d9c2..9b81f4bc9 100644 --- a/packages/types/src/article.ts +++ b/packages/types/src/article.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const ArticleTagSchema = schemas.ArticleTagSchema.extend({}) diff --git a/packages/types/src/attendance/attendance-pool.ts b/packages/types/src/attendance/attendance-pool.ts index 02fe3f4c6..387dd2c5f 100644 --- a/packages/types/src/attendance/attendance-pool.ts +++ b/packages/types/src/attendance/attendance-pool.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import { z } from "zod" export const YearCriteriaSchema = z.array(z.number()) diff --git a/packages/types/src/attendance/attendance.ts b/packages/types/src/attendance/attendance.ts index 832f37d81..6406bfb6a 100644 --- a/packages/types/src/attendance/attendance.ts +++ b/packages/types/src/attendance/attendance.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import { z } from "zod" export const ExtraSchema = z.object({ diff --git a/packages/types/src/attendance/attendee.ts b/packages/types/src/attendance/attendee.ts index 86738a2e4..b47807cbd 100644 --- a/packages/types/src/attendance/attendee.ts +++ b/packages/types/src/attendance/attendee.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import { z } from "zod" import type { User } from "../user" diff --git a/packages/types/src/attendance/waitlist-attendee.ts b/packages/types/src/attendance/waitlist-attendee.ts index 584c9023f..6a5fa8f29 100644 --- a/packages/types/src/attendance/waitlist-attendee.ts +++ b/packages/types/src/attendance/waitlist-attendee.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const WaitlistAttendeeSchema = schemas.WaitlistAttendeeSchema.extend({}) diff --git a/packages/types/src/committee.ts b/packages/types/src/committee.ts index 60bcee86c..21a454114 100644 --- a/packages/types/src/committee.ts +++ b/packages/types/src/committee.ts @@ -1,6 +1,6 @@ import type { z } from "zod" -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" export const CommitteeSchema = schemas.CommitteeSchema.extend({}) diff --git a/packages/types/src/company.ts b/packages/types/src/company.ts index 53c2f100b..e3aae39b3 100644 --- a/packages/types/src/company.ts +++ b/packages/types/src/company.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const CompanySchema = schemas.CompanySchema.extend({}) diff --git a/packages/types/src/event-committee.ts b/packages/types/src/event-committee.ts index e81f3b131..bab9d542d 100644 --- a/packages/types/src/event-committee.ts +++ b/packages/types/src/event-committee.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const EventCommitteeSchema = schemas.EventCommitteeSchema.extend({}) diff --git a/packages/types/src/event.ts b/packages/types/src/event.ts index b25be1619..8dda8a455 100644 --- a/packages/types/src/event.ts +++ b/packages/types/src/event.ts @@ -1,6 +1,6 @@ import type { z } from "zod" -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import { type Attendance, AttendanceSchema } from "./attendance/attendance" import type { AttendancePool } from "./attendance/attendance-pool" diff --git a/packages/types/src/interest-group.ts b/packages/types/src/interest-group.ts index 3486dd962..58fe50fd7 100644 --- a/packages/types/src/interest-group.ts +++ b/packages/types/src/interest-group.ts @@ -1,6 +1,6 @@ import type { z } from "zod" -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" export const InterestGroupSchema = schemas.InterestGroupSchema.extend({}) diff --git a/packages/types/src/job-listing.ts b/packages/types/src/job-listing.ts index 83c93730d..0b680d45a 100644 --- a/packages/types/src/job-listing.ts +++ b/packages/types/src/job-listing.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import { z } from "zod" import { CompanySchema } from "./company" diff --git a/packages/types/src/mark.ts b/packages/types/src/mark.ts index b94552ff4..723f48487 100644 --- a/packages/types/src/mark.ts +++ b/packages/types/src/mark.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const MarkSchema = schemas.MarkSchema.extend({}) diff --git a/packages/types/src/notification-permissions.ts b/packages/types/src/notification-permissions.ts index 053287536..1ee94fae8 100644 --- a/packages/types/src/notification-permissions.ts +++ b/packages/types/src/notification-permissions.ts @@ -1,6 +1,6 @@ import type { z } from "zod" -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" export const NotificationPermissionsSchema = schemas.NotificationPermissionsSchema.extend({}) diff --git a/packages/types/src/offline.ts b/packages/types/src/offline.ts index 90ace9a9a..2fef237ce 100644 --- a/packages/types/src/offline.ts +++ b/packages/types/src/offline.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const OfflineSchema = schemas.OfflineSchema.extend({}) diff --git a/packages/types/src/payment.ts b/packages/types/src/payment.ts index 5ae9c90d8..d011678b3 100644 --- a/packages/types/src/payment.ts +++ b/packages/types/src/payment.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import { z } from "zod" export const ProductPaymentProviderSchema = schemas.ProductPaymentProviderSchema.extend({}) diff --git a/packages/types/src/personal-mark.ts b/packages/types/src/personal-mark.ts index bfd5b2817..be6896f82 100644 --- a/packages/types/src/personal-mark.ts +++ b/packages/types/src/personal-mark.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const PersonalMarkSchema = schemas.PersonalMarkSchema.extend({}) diff --git a/packages/types/src/privacy-permissions.ts b/packages/types/src/privacy-permissions.ts index f9c008652..e71bec662 100644 --- a/packages/types/src/privacy-permissions.ts +++ b/packages/types/src/privacy-permissions.ts @@ -1,4 +1,4 @@ -import { schemas } from "@dotkomonline/db" +import { schemas } from "@dotkomonline/db/schemas" import type { z } from "zod" export const PrivacyPermissionsSchema = schemas.PrivacyPermissionsSchema.extend({}) diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index 502505387..ffd155edc 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -2,7 +2,8 @@ "extends": "../../packages/config/tsconfig.json", "compilerOptions": { "outDir": "dist", - "declaration": true + "declaration": true, + "types": ["node"] }, "include": ["./**/*.ts", "./**/*.tsx"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56b609d1f..a53b19583 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -409,12 +409,6 @@ importers: tslib: specifier: ^2.6.2 version: 2.8.1 - tsup: - specifier: ^8.3.0 - version: 8.3.6(@swc/core@1.10.9(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0) - tsx: - specifier: ^4.15.6 - version: 4.19.3 typescript: specifier: ^5.8 version: 5.8.2 @@ -740,6 +734,9 @@ importers: '@dotkomonline/config': specifier: workspace:* version: link:../config + '@types/node': + specifier: ^22.0.0 + version: 22.13.5 '@types/pg': specifier: ^8.10.9 version: 8.11.11 @@ -945,6 +942,9 @@ importers: '@dotkomonline/config': specifier: workspace:* version: link:../config + '@types/node': + specifier: ^22.0.0 + version: 22.13.5 typescript: specifier: ^5.8 version: 5.8.2 diff --git a/turbo.json b/turbo.json index b962b28ca..22ec3386e 100644 --- a/turbo.json +++ b/turbo.json @@ -34,34 +34,21 @@ ], "tasks": { "build": { - "dependsOn": [ - "^build" - ], - "outputs": [ - "**/dist" - ] + "dependsOn": ["^build"], + "outputs": ["**/dist"] }, "build:prod": { - "dependsOn": [ - "^build" - ], - "outputs": [ - ".next/**" - ] + "dependsOn": ["^build"], + "outputs": [".next/**"] }, "build:storybook": { - "outputs": [ - "storybook-static/**" - ] + "outputs": ["storybook-static/**"] }, "type-check": { "outputs": [] }, "test": { - "dependsOn": [ - "lint", - "type-check" - ], + "dependsOn": ["lint", "type-check"], "outputs": [] }, "test:it": { @@ -77,15 +64,14 @@ "cache": false }, "migrate": { - "env": [ - "DATABASE_URL" - ], + "env": ["DATABASE_URL"], "cache": false, "dependsOn": [] }, "clean": { "cache": false }, + "docker:build": {}, "storybook": { "outputs": [], "cache": false