because I got bored of customising my CV for every job
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore(CVG-7): update Docker builds, tsup bundling, and worker deps

+605 -82
+6 -1
.docker/client.Dockerfile
··· 41 41 COPY packages/ ./packages/ 42 42 COPY apps/client/ ./apps/client/ 43 43 44 + ARG VITE_SERVER_URL 45 + ARG VITE_DOCS_URL 46 + ENV VITE_SERVER_URL=${VITE_SERVER_URL} 47 + ENV VITE_DOCS_URL=${VITE_DOCS_URL} 48 + 44 49 WORKDIR /app/apps/client 45 - RUN pnpm build 50 + RUN pnpm exec vite build 46 51 47 52 # ---- Production serve ---- 48 53 FROM nginx:alpine AS production
+5
.docker/docs.Dockerfile
··· 41 41 COPY packages/ ./packages/ 42 42 COPY apps/docs/ ./apps/docs/ 43 43 44 + ARG VITE_CLIENT_URL 45 + ARG VITE_SERVER_URL 46 + ENV VITE_CLIENT_URL=${VITE_CLIENT_URL} 47 + ENV VITE_SERVER_URL=${VITE_SERVER_URL} 48 + 44 49 WORKDIR /app/apps/docs 45 50 RUN pnpm build 46 51
+13 -9
.docker/patch-vendor-links.sh
··· 16 16 # Step 1: Patch package.json specifiers (link:host-path → link:$ROOT/vendor/*) 17 17 # pnpm validates specifiers match package.json during --frozen-lockfile 18 18 find "$ROOT" -name 'package.json' -not -path '*/node_modules/*' | while read -r f; do 19 - if grep -q '"link:.*project-q' "$f" 2>/dev/null; then 19 + if grep -q '"link:.*project-q\|"link:.*nest-service-locator' "$f" 2>/dev/null; then 20 20 sed -i \ 21 21 -e "s|\"link:[^\"]*project-q/packages/core\"|\"link:$ROOT/vendor/project-q-core\"|g" \ 22 22 -e "s|\"link:[^\"]*project-q/packages/framework/nest\"|\"link:$ROOT/vendor/project-q-nestjs\"|g" \ 23 - -e "s|\"link:[^\"]*project-q/packages/transport/postgres\"|\"link:$ROOT/vendor/project-q-transport-postgres\"|g" \ 23 + -e "s|\"link:[^\"]*project-q/packages/transport/prisma\"|\"link:$ROOT/vendor/project-q-prisma\"|g" \ 24 + -e "s|\"link:[^\"]*nest-service-locator\"|\"link:$ROOT/vendor/nest-service-locator\"|g" \ 24 25 "$f" 25 26 echo "Patched $f" 26 27 fi ··· 30 31 # Only patch absolute specifier lines (link:/...), leave relative 31 32 # version lines untouched — they resolve via mount points below. 32 33 LOCKFILE="$ROOT/pnpm-lock.yaml" 33 - if [ -f "$LOCKFILE" ] && grep -q 'project-q' "$LOCKFILE" 2>/dev/null; then 34 + if [ -f "$LOCKFILE" ] && grep -q 'project-q\|nest-service-locator' "$LOCKFILE" 2>/dev/null; then 34 35 sed -i \ 35 36 -e "s|link:/[^ ]*project-q/packages/core|link:$ROOT/vendor/project-q-core|g" \ 36 37 -e "s|link:/[^ ]*project-q/packages/framework/nest|link:$ROOT/vendor/project-q-nestjs|g" \ 37 - -e "s|link:/[^ ]*project-q/packages/transport/postgres|link:$ROOT/vendor/project-q-transport-postgres|g" \ 38 + -e "s|link:/[^ ]*project-q/packages/transport/prisma|link:$ROOT/vendor/project-q-prisma|g" \ 39 + -e "s|link:/[^ ]*nest-service-locator|link:$ROOT/vendor/nest-service-locator|g" \ 38 40 "$LOCKFILE" 39 41 echo "Patched $LOCKFILE" 40 42 fi ··· 44 46 # /riotbyte/project-q/packages/* (because the workspace is at /app). 45 47 # We create symlinks there pointing to the vendored copies inside the 46 48 # workspace tree (at $ROOT/vendor/). 47 - mkdir -p /riotbyte/project-q/packages/framework /riotbyte/project-q/packages/transport 49 + mkdir -p /riotbyte/project-q/packages/framework /riotbyte/project-q/packages/transport /riotbyte 48 50 ln -sfn "$ROOT/vendor/project-q-core" /riotbyte/project-q/packages/core 49 51 ln -sfn "$ROOT/vendor/project-q-nestjs" /riotbyte/project-q/packages/framework/nest 50 - ln -sfn "$ROOT/vendor/project-q-transport-postgres" /riotbyte/project-q/packages/transport/postgres 51 - echo "Created mount points at /riotbyte/project-q/packages/" 52 + ln -sfn "$ROOT/vendor/project-q-prisma" /riotbyte/project-q/packages/transport/prisma 53 + ln -sfn "$ROOT/vendor/nest-service-locator" /riotbyte/nest-service-locator 54 + echo "Created mount points at /riotbyte/" 52 55 53 56 # Step 4: Create root-level node_modules symlinks so vendored packages 54 57 # can resolve each other (e.g. transport-postgres depends on core). ··· 56 59 mkdir -p "$ROOT/node_modules/@riotbyte" 57 60 ln -sfn "$ROOT/vendor/project-q-core" "$ROOT/node_modules/@riotbyte/project-q-core" 58 61 ln -sfn "$ROOT/vendor/project-q-nestjs" "$ROOT/node_modules/@riotbyte/project-q-nestjs" 59 - ln -sfn "$ROOT/vendor/project-q-transport-postgres" "$ROOT/node_modules/@riotbyte/project-q-transport-postgres" 60 - echo "Created root node_modules symlinks for project-q" 62 + ln -sfn "$ROOT/vendor/project-q-prisma" "$ROOT/node_modules/@riotbyte/project-q-prisma" 63 + ln -sfn "$ROOT/vendor/nest-service-locator" "$ROOT/node_modules/@riotbyte/nest-service-locator" 64 + echo "Created root node_modules symlinks for vendored packages"
+11 -9
.docker/server.Dockerfile
··· 24 24 COPY --from=project-q packages/core/dist/ ./vendor/project-q-core/dist/ 25 25 COPY --from=project-q packages/framework/nest/package.json ./vendor/project-q-nestjs/package.json 26 26 COPY --from=project-q packages/framework/nest/dist/ ./vendor/project-q-nestjs/dist/ 27 - COPY --from=project-q packages/transport/postgres/package.json ./vendor/project-q-transport-postgres/package.json 28 - COPY --from=project-q packages/transport/postgres/dist/ ./vendor/project-q-transport-postgres/dist/ 27 + COPY --from=project-q packages/transport/prisma/package.json ./vendor/project-q-prisma/package.json 28 + COPY --from=project-q packages/transport/prisma/dist/ ./vendor/project-q-prisma/dist/ 29 + COPY --from=nest-service-locator package.json ./vendor/nest-service-locator/package.json 30 + COPY --from=nest-service-locator dist/src/ ./vendor/nest-service-locator/dist/src/ 29 31 30 32 # Patch link: → file: for project-q packages 31 33 COPY .docker/patch-vendor-links.sh /tmp/ ··· 70 72 COPY --from=project-q packages/core/dist/ ./vendor/project-q-core/dist/ 71 73 COPY --from=project-q packages/framework/nest/package.json ./vendor/project-q-nestjs/package.json 72 74 COPY --from=project-q packages/framework/nest/dist/ ./vendor/project-q-nestjs/dist/ 73 - COPY --from=project-q packages/transport/postgres/package.json ./vendor/project-q-transport-postgres/package.json 74 - COPY --from=project-q packages/transport/postgres/dist/ ./vendor/project-q-transport-postgres/dist/ 75 + COPY --from=project-q packages/transport/prisma/package.json ./vendor/project-q-prisma/package.json 76 + COPY --from=project-q packages/transport/prisma/dist/ ./vendor/project-q-prisma/dist/ 75 77 76 78 COPY .docker/patch-vendor-links.sh /tmp/ 77 79 RUN sh /tmp/patch-vendor-links.sh /app ··· 84 86 85 87 WORKDIR /app/apps/server 86 88 RUN pnpm exec prisma generate 87 - WORKDIR /app 88 89 RUN pnpm build 89 90 90 91 # ---- Production runtime ---- ··· 109 110 COPY --from=project-q packages/core/dist/ ./vendor/project-q-core/dist/ 110 111 COPY --from=project-q packages/framework/nest/package.json ./vendor/project-q-nestjs/package.json 111 112 COPY --from=project-q packages/framework/nest/dist/ ./vendor/project-q-nestjs/dist/ 112 - COPY --from=project-q packages/transport/postgres/package.json ./vendor/project-q-transport-postgres/package.json 113 - COPY --from=project-q packages/transport/postgres/dist/ ./vendor/project-q-transport-postgres/dist/ 113 + COPY --from=project-q packages/transport/prisma/package.json ./vendor/project-q-prisma/package.json 114 + COPY --from=project-q packages/transport/prisma/dist/ ./vendor/project-q-prisma/dist/ 115 + COPY --from=nest-service-locator package.json ./vendor/nest-service-locator/package.json 116 + COPY --from=nest-service-locator dist/src/ ./vendor/nest-service-locator/dist/src/ 114 117 115 118 COPY .docker/patch-vendor-links.sh /tmp/ 116 119 RUN sh /tmp/patch-vendor-links.sh /app ··· 122 125 COPY --from=builder /app/apps/server/node_modules/.prisma/ ./apps/server/node_modules/.prisma/ 123 126 COPY --from=builder /app/node_modules/.prisma/ ./node_modules/.prisma/ 124 127 125 - # Copy compiled output 128 + # Copy bundled output (single file, @cv/* packages inlined) 126 129 COPY --from=builder /app/apps/server/dist/ ./apps/server/dist/ 127 - COPY --from=builder /app/packages/*/dist/ ./packages/ 128 130 129 131 ENV NODE_ENV=production 130 132 EXPOSE 3000
+20 -10
.docker/worker.Dockerfile
··· 19 19 COPY --from=project-q packages/core/dist/ ./vendor/project-q-core/dist/ 20 20 COPY --from=project-q packages/framework/nest/package.json ./vendor/project-q-nestjs/package.json 21 21 COPY --from=project-q packages/framework/nest/dist/ ./vendor/project-q-nestjs/dist/ 22 - COPY --from=project-q packages/transport/postgres/package.json ./vendor/project-q-transport-postgres/package.json 23 - COPY --from=project-q packages/transport/postgres/dist/ ./vendor/project-q-transport-postgres/dist/ 22 + COPY --from=project-q packages/transport/prisma/package.json ./vendor/project-q-prisma/package.json 23 + COPY --from=project-q packages/transport/prisma/dist/ ./vendor/project-q-prisma/dist/ 24 + COPY --from=nest-service-locator package.json ./vendor/nest-service-locator/package.json 25 + COPY --from=nest-service-locator dist/src/ ./vendor/nest-service-locator/dist/src/ 24 26 25 27 # Patch link: specifiers + create mount points for lockfile relative paths 26 28 COPY .docker/patch-vendor-links.sh /tmp/ ··· 34 36 35 37 # Layer 4: source code 36 38 COPY packages/tsconfig/ ./packages/tsconfig/ 39 + COPY packages/system/ ./packages/system/ 40 + COPY apps/server/prisma/ ./apps/server/prisma/ 37 41 COPY apps/worker/ ./apps/worker/ 38 42 RUN sh /tmp/patch-vendor-links.sh /app 39 43 44 + # Generate Prisma client (@cv/system depends on @prisma/client) 45 + RUN cd apps/server && pnpm exec prisma generate 46 + 40 47 # Install Chromium + system deps via Playwright 41 48 RUN cd apps/worker && pnpm exec playwright install --with-deps chromium 42 49 ··· 60 67 COPY --from=project-q packages/core/dist/ ./vendor/project-q-core/dist/ 61 68 COPY --from=project-q packages/framework/nest/package.json ./vendor/project-q-nestjs/package.json 62 69 COPY --from=project-q packages/framework/nest/dist/ ./vendor/project-q-nestjs/dist/ 63 - COPY --from=project-q packages/transport/postgres/package.json ./vendor/project-q-transport-postgres/package.json 64 - COPY --from=project-q packages/transport/postgres/dist/ ./vendor/project-q-transport-postgres/dist/ 70 + COPY --from=project-q packages/transport/prisma/package.json ./vendor/project-q-prisma/package.json 71 + COPY --from=project-q packages/transport/prisma/dist/ ./vendor/project-q-prisma/dist/ 65 72 66 73 COPY .docker/patch-vendor-links.sh /tmp/ 67 74 RUN sh /tmp/patch-vendor-links.sh /app ··· 72 79 RUN NPM_CONFIG_SHAMEFULLY_HOIST=true pnpm install --frozen-lockfile 73 80 74 81 COPY packages/tsconfig/ ./packages/tsconfig/ 82 + COPY packages/system/ ./packages/system/ 83 + COPY apps/server/prisma/ ./apps/server/prisma/ 75 84 COPY apps/worker/ ./apps/worker/ 76 85 RUN sh /tmp/patch-vendor-links.sh /app 86 + 87 + RUN cd apps/server && pnpm exec prisma generate 77 88 78 89 WORKDIR /app/apps/worker 79 90 RUN pnpm build ··· 94 105 COPY --from=project-q packages/core/dist/ ./vendor/project-q-core/dist/ 95 106 COPY --from=project-q packages/framework/nest/package.json ./vendor/project-q-nestjs/package.json 96 107 COPY --from=project-q packages/framework/nest/dist/ ./vendor/project-q-nestjs/dist/ 97 - COPY --from=project-q packages/transport/postgres/package.json ./vendor/project-q-transport-postgres/package.json 98 - COPY --from=project-q packages/transport/postgres/dist/ ./vendor/project-q-transport-postgres/dist/ 108 + COPY --from=project-q packages/transport/prisma/package.json ./vendor/project-q-prisma/package.json 109 + COPY --from=project-q packages/transport/prisma/dist/ ./vendor/project-q-prisma/dist/ 110 + COPY --from=nest-service-locator package.json ./vendor/nest-service-locator/package.json 111 + COPY --from=nest-service-locator dist/src/ ./vendor/nest-service-locator/dist/src/ 99 112 100 113 COPY .docker/patch-vendor-links.sh /tmp/ 101 114 RUN sh /tmp/patch-vendor-links.sh /app 102 115 103 - # shamefully-hoist makes all deps available at /app/node_modules/ so 104 - # vendored project-q packages (linked via link: protocol) can resolve 105 - # their transitive deps (uuid, zod, pg) through Node's upward walk. 106 116 RUN NPM_CONFIG_SHAMEFULLY_HOIST=true pnpm install --frozen-lockfile --prod 107 117 108 118 # Install Chromium + system deps via Playwright ··· 114 124 ENV NODE_ENV=production 115 125 116 126 WORKDIR /app/apps/worker 117 - CMD ["node", "dist/main.js"] 127 + CMD ["node", "dist/main.js", "project-q:work", "async"]
+3 -2
.dockerignore
··· 59 59 yarn.lock 60 60 61 61 # Generated files (will be regenerated in container) 62 - **/generated/ 63 - apps/client/src/generated/ 64 62 apps/server/node_modules/@prisma/client/ 65 63 apps/server/prisma/generated/ 64 + 65 + # Keep client codegen output (needed for vite build, can't run codegen in Docker) 66 + !apps/client/src/generated/ 66 67 67 68 # Build artifacts 68 69 apps/client/dist/
+3 -1
apps/server/package.json
··· 4 4 "private": true, 5 5 "type": "commonjs", 6 6 "scripts": { 7 - "build": "tsc -p tsconfig.build.json", 7 + "build": "tsup", 8 8 "start": "node dist/main.js", 9 9 "dev": "nodemon --watch src -e ts --exec \"ts-node -r tsconfig-paths/register src/main.ts\"", 10 10 "lint": "biome check .", ··· 92 92 "@cv/tsconfig": "*", 93 93 "@faker-js/faker": "^9.9.0", 94 94 "@nestjs/testing": "^10.4.7", 95 + "@swc/core": "^1.15.13", 95 96 "@types/bcryptjs": "^2.4.6", 96 97 "@types/express": "^5.0.0", 97 98 "@types/jest": "^29.5.12", ··· 109 110 "ts-node": "^10.9.2", 110 111 "tsconfig-paths": "^4.2.0", 111 112 "tslib": "^2.8.0", 113 + "tsup": "^8.5.1", 112 114 "typescript": "^5.6.3", 113 115 "vitest": "^4.0.16" 114 116 }
+39
apps/server/prisma/migrations/20260225193547_replace_queue_with_prisma_transport/migration.sql
··· 1 + -- Drop old raw-SQL queue tables (created in 20260222120000 / 20260222130000) 2 + DROP TABLE IF EXISTS queue.worker_heartbeats; 3 + DROP TABLE IF EXISTS queue.messages; 4 + DROP SCHEMA IF EXISTS queue; 5 + 6 + -- CreateEnum 7 + CREATE TYPE "MessageStatusEnum" AS ENUM ('PENDING', 'SUCCESS', 'FAILURE'); 8 + 9 + -- CreateTable 10 + CREATE TABLE "MessageStatus" ( 11 + "id" TEXT NOT NULL, 12 + "name" "MessageStatusEnum" NOT NULL, 13 + 14 + CONSTRAINT "MessageStatus_pkey" PRIMARY KEY ("id") 15 + ); 16 + 17 + -- CreateTable 18 + CREATE TABLE "Message" ( 19 + "id" TEXT NOT NULL, 20 + "messengerId" TEXT NOT NULL, 21 + "name" TEXT NOT NULL, 22 + "envelope" TEXT NOT NULL, 23 + "queue" TEXT NOT NULL DEFAULT 'default', 24 + "availableAt" TIMESTAMP(3) NOT NULL, 25 + "deliveredAt" TIMESTAMP(3), 26 + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 27 + "statusId" TEXT NOT NULL, 28 + 29 + CONSTRAINT "Message_pkey" PRIMARY KEY ("id") 30 + ); 31 + 32 + -- CreateIndex 33 + CREATE UNIQUE INDEX "MessageStatus_name_key" ON "MessageStatus"("name"); 34 + 35 + -- CreateIndex 36 + CREATE INDEX "Message_queue_availableAt_idx" ON "Message"("queue", "availableAt"); 37 + 38 + -- AddForeignKey 39 + ALTER TABLE "Message" ADD CONSTRAINT "Message_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "MessageStatus"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
+1 -1
apps/server/src/modules/authentication/providers/password/graphql/password-authentication.resolver.ts
··· 12 12 import { CurrentUser } from "@/modules/current-user/current-user.decorator"; 13 13 import { User } from "@/modules/user/user.type"; 14 14 import { AuthenticationResponse } from "../../../graphql/authentication.type"; 15 - import { GraphQLContext } from "../../../graphql/graphql-context.type"; 15 + import type { GraphQLContext } from "../../../graphql/graphql-context.type"; 16 16 17 17 @Resolver() 18 18 export class PasswordAuthenticationResolver {
+1 -1
apps/server/src/modules/authentication/token/token.resolver.ts
··· 12 12 import type { Response } from "express"; 13 13 import { CurrentRefreshTokenId } from "@/modules/current-user/current-refresh-token-id.decorator"; 14 14 import { CurrentUser } from "@/modules/current-user/current-user.decorator"; 15 - import { GraphQLContext } from "../graphql/graphql-context.type"; 15 + import type { GraphQLContext } from "../graphql/graphql-context.type"; 16 16 import { ActiveSession } from "./active-session.type"; 17 17 18 18 @Resolver()
+50
apps/server/tsup.config.ts
··· 1 + import { defineConfig } from "tsup"; 2 + 3 + export default defineConfig({ 4 + entry: ["src/main.ts", "src/scripts/seed.ts"], 5 + outDir: "dist", 6 + format: ["cjs"], 7 + target: "node22", 8 + platform: "node", 9 + splitting: false, 10 + sourcemap: true, 11 + clean: true, 12 + tsconfig: "tsconfig.build.json", 13 + 14 + noExternal: [/^@cv\//], 15 + 16 + external: [ 17 + /^@riotbyte\//, 18 + /^@nestjs\//, 19 + "reflect-metadata", 20 + "rxjs", 21 + "graphql", 22 + /^graphql-/, 23 + "@apollo/server", 24 + "apollo-server-express", 25 + "express", 26 + "cookie-parser", 27 + "multer", 28 + "passport", 29 + /^passport-/, 30 + "handlebars", 31 + "class-transformer", 32 + "class-validator", 33 + "dataloader", 34 + "nestjs-zod", 35 + "nest-commander", 36 + "zod", 37 + "resend", 38 + "canvas", 39 + "pg", 40 + "@prisma/client", 41 + "@prisma/adapter-pg", 42 + "tesseract.js", 43 + "bcryptjs", 44 + "pdfjs-dist", 45 + "pdfjs-dist/legacy/build/pdf.js", 46 + "pdf-parse", 47 + "pdf2json", 48 + "mammoth", 49 + ], 50 + });
+8 -6
apps/worker/package.json
··· 4 4 "private": true, 5 5 "type": "commonjs", 6 6 "scripts": { 7 - "build": "tsc -p tsconfig.build.json", 7 + "build": "tsup", 8 8 "start": "node dist/main.js project-q:work async", 9 9 "dev": "nodemon --watch src -e ts --exec \"ts-node src/main.ts project-q:work async\"", 10 10 "typecheck": "tsc -p tsconfig.build.json --noEmit", ··· 16 16 "@nestjs/common": "^10.4.7", 17 17 "@nestjs/config": "^3.2.0", 18 18 "@nestjs/core": "^10.4.7", 19 + "@nestjs/event-emitter": "^3.0.1", 20 + "@riotbyte/nest-service-locator": "link:/Users/niels/Developer/riotbyte/nest-service-locator", 19 21 "@riotbyte/project-q-core": "link:/Users/niels/Developer/riotbyte/project-q/packages/core", 20 22 "@riotbyte/project-q-nestjs": "link:/Users/niels/Developer/riotbyte/project-q/packages/framework/nest", 21 23 "@riotbyte/project-q-prisma": "link:/Users/niels/Developer/riotbyte/project-q/packages/transport/prisma", 22 - "@riotbyte/nest-service-locator": "link:/Users/niels/Developer/riotbyte/nest-service-locator", 23 - "@nestjs/event-emitter": "^3.0.1", 24 - "nest-commander": "^3.16.0", 25 24 "eventemitter2": "^6.4.9", 26 - "zod": "^4.3.6", 25 + "nest-commander": "^3.16.0", 27 26 "playwright": "^1.52.0", 28 27 "playwright-core": "^1.52.0", 29 28 "reflect-metadata": "^0.2.2", 30 - "rxjs": "^7.8.1" 29 + "rxjs": "^7.8.1", 30 + "zod": "^4.3.6" 31 31 }, 32 32 "devDependencies": { 33 33 "@cv/tsconfig": "*", 34 + "@swc/core": "^1.15.13", 34 35 "@types/node": "^22.7.5", 35 36 "nodemon": "^3.1.7", 36 37 "ts-node": "^10.9.2", 38 + "tsup": "^8.5.1", 37 39 "typescript": "^5.6.3" 38 40 } 39 41 }
+4
apps/worker/src/config.ts
··· 20 20 heartbeatFilePath: 21 21 process.env["HEARTBEAT_FILE_PATH"] ?? "/tmp/worker-heartbeat", 22 22 heartbeatDbIntervalMs: Number(process.env["HEARTBEAT_DB_INTERVAL_MS"] ?? "0"), 23 + chromiumArgs: (process.env["CHROMIUM_ARGS"] ?? "--no-sandbox,--disable-dev-shm-usage") 24 + .split(",") 25 + .map((s) => s.trim()) 26 + .filter(Boolean), 23 27 } as const;
+11 -5
apps/worker/src/pdf/html-to-pdf.service.ts
··· 1 - import { Injectable, Logger, OnModuleDestroy } from "@nestjs/common"; 1 + import { Inject, Injectable, Logger, OnModuleDestroy } from "@nestjs/common"; 2 2 import { chromium } from "playwright"; 3 3 import type { Browser } from "playwright-core"; 4 + import type { WorkerConfig } from "../config"; 5 + import { WORKER_CONFIG } from "../worker.module"; 4 6 5 7 /** Manages a Playwright browser singleton for HTML-to-PDF conversion. */ 6 8 @Injectable() 7 9 export class HtmlToPdfService implements OnModuleDestroy { 8 10 private readonly logger = new Logger(HtmlToPdfService.name); 9 11 private browser: Browser | null = null; 12 + 13 + constructor( 14 + @Inject(WORKER_CONFIG) private readonly config: WorkerConfig, 15 + ) {} 10 16 11 17 private async ensureBrowser(): Promise<Browser> { 12 18 if (this.browser) { 13 19 return this.browser; 14 20 } 15 21 16 - this.logger.log("Launching Chromium"); 17 - this.browser = await chromium.launch({ 18 - args: ["--no-sandbox", "--disable-dev-shm-usage"], 19 - }); 22 + this.logger.log( 23 + `Launching Chromium with args: ${this.config.chromiumArgs.join(" ")}`, 24 + ); 25 + this.browser = await chromium.launch({ args: this.config.chromiumArgs }); 20 26 21 27 return this.browser; 22 28 }
+30
apps/worker/tsup.config.ts
··· 1 + import { defineConfig } from "tsup"; 2 + 3 + export default defineConfig({ 4 + entry: ["src/main.ts"], 5 + outDir: "dist", 6 + format: ["cjs"], 7 + target: "node22", 8 + platform: "node", 9 + splitting: false, 10 + sourcemap: true, 11 + clean: true, 12 + tsconfig: "tsconfig.build.json", 13 + 14 + noExternal: [/^@cv\//], 15 + 16 + external: [ 17 + /^@riotbyte\//, 18 + /^@nestjs\//, 19 + "reflect-metadata", 20 + "rxjs", 21 + "nest-commander", 22 + "eventemitter2", 23 + "zod", 24 + "playwright", 25 + "playwright-core", 26 + "@prisma/client", 27 + "@prisma/adapter-pg", 28 + "pg", 29 + ], 30 + });
+2
docker-compose.yml
··· 22 22 target: development 23 23 additional_contexts: 24 24 project-q: ${PROJECT_Q_PATH:?Set PROJECT_Q_PATH to your local project-q checkout} 25 + nest-service-locator: ${NEST_SERVICE_LOCATOR_PATH:-/Users/niels/Developer/riotbyte/nest-service-locator} 25 26 environment: 26 27 PORT: ${SERVER_PORT:-3000} 27 28 JWT_SECRET: ${JWT_SECRET:-your-super-secret-jwt-key-here} ··· 95 96 target: development 96 97 additional_contexts: 97 98 project-q: ${PROJECT_Q_PATH:?Set PROJECT_Q_PATH to your local project-q checkout} 99 + nest-service-locator: ${NEST_SERVICE_LOCATOR_PATH:-/Users/niels/Developer/riotbyte/nest-service-locator} 98 100 environment: 99 101 DATABASE_URL: ${DATABASE_URL:-postgresql://cv:cv@db:5432/cv} 100 102 QUEUE_SCHEMA: ${QUEUE_SCHEMA:-queue}
+1
package.json
··· 33 33 }, 34 34 "pnpm": { 35 35 "onlyBuiltDependencies": [ 36 + "@swc/core", 36 37 "canvas", 37 38 "tesseract.js" 38 39 ],
+397 -37
pnpm-lock.yaml
··· 26 26 version: 22.19.3 27 27 lerna: 28 28 specifier: ^8.2.4 29 - version: 8.2.4(@types/node@22.19.3)(encoding@0.1.13) 29 + version: 8.2.4(@swc/core@1.15.13)(@types/node@22.19.3)(encoding@0.1.13) 30 30 31 31 apps/client: 32 32 dependencies: ··· 402 402 '@nestjs/testing': 403 403 specifier: ^10.4.7 404 404 version: 10.4.20(@nestjs/common@10.4.20(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@10.4.20)(@nestjs/platform-express@10.4.20) 405 + '@swc/core': 406 + specifier: ^1.15.13 407 + version: 1.15.13 405 408 '@types/bcryptjs': 406 409 specifier: ^2.4.6 407 410 version: 2.4.6 ··· 431 434 version: 4.0.16(vitest@4.0.16) 432 435 jest: 433 436 specifier: ^29.7.0 434 - version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 437 + version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 435 438 nodemon: 436 439 specifier: ^3.1.7 437 440 version: 3.1.11 ··· 443 446 version: 6.3.4 444 447 ts-jest: 445 448 specifier: ^29.1.2 446 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3))(typescript@5.9.3) 449 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) 447 450 ts-node: 448 451 specifier: ^10.9.2 449 - version: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) 452 + version: 10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3) 450 453 tsconfig-paths: 451 454 specifier: ^4.2.0 452 455 version: 4.2.0 453 456 tslib: 454 457 specifier: ^2.8.0 455 458 version: 2.8.1 459 + tsup: 460 + specifier: ^8.5.1 461 + version: 8.5.1(@swc/core@1.15.13)(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) 456 462 typescript: 457 463 specifier: ^5.6.3 458 464 version: 5.9.3 ··· 514 520 '@cv/tsconfig': 515 521 specifier: '*' 516 522 version: link:../../packages/tsconfig 523 + '@swc/core': 524 + specifier: ^1.15.13 525 + version: 1.15.13 517 526 '@types/node': 518 527 specifier: ^22.7.5 519 528 version: 22.19.3 ··· 522 531 version: 3.1.11 523 532 ts-node: 524 533 specifier: ^10.9.2 525 - version: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) 534 + version: 10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3) 535 + tsup: 536 + specifier: ^8.5.1 537 + version: 8.5.1(@swc/core@1.15.13)(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) 526 538 typescript: 527 539 specifier: ^5.6.3 528 540 version: 5.9.3 ··· 550 562 version: 22.19.3 551 563 jest: 552 564 specifier: ^29.7.0 553 - version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 565 + version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 554 566 ts-jest: 555 567 specifier: ^29.1.1 556 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3))(typescript@5.9.3) 568 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) 557 569 typescript: 558 570 specifier: ^5.3.3 559 571 version: 5.9.3 ··· 581 593 version: 22.19.3 582 594 jest: 583 595 specifier: ^29.7.0 584 - version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 596 + version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 585 597 ts-jest: 586 598 specifier: ^29.1.2 587 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3))(typescript@5.9.3) 599 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) 588 600 typescript: 589 601 specifier: ^5.3.3 590 602 version: 5.9.3 ··· 703 715 version: 1.1.5 704 716 jest: 705 717 specifier: ^29.7.0 706 - version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 718 + version: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 707 719 ts-jest: 708 720 specifier: ^29.1.1 709 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3))(typescript@5.9.3) 721 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) 710 722 typescript: 711 723 specifier: ^5.3.3 712 724 version: 5.9.3 ··· 3173 3185 '@standard-schema/utils@0.3.0': 3174 3186 resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} 3175 3187 3188 + '@swc/core-darwin-arm64@1.15.13': 3189 + resolution: {integrity: sha512-ztXusRuC5NV2w+a6pDhX13CGioMLq8CjX5P4XgVJ21ocqz9t19288Do0y8LklplDtwcEhYGTNdMbkmUT7+lDTg==} 3190 + engines: {node: '>=10'} 3191 + cpu: [arm64] 3192 + os: [darwin] 3193 + 3194 + '@swc/core-darwin-x64@1.15.13': 3195 + resolution: {integrity: sha512-cVifxQUKhaE7qcO/y9Mq6PEhoyvN9tSLzCnnFZ4EIabFHBuLtDDO6a+vLveOy98hAs5Qu1+bb5Nv0oa1Pihe3Q==} 3196 + engines: {node: '>=10'} 3197 + cpu: [x64] 3198 + os: [darwin] 3199 + 3200 + '@swc/core-linux-arm-gnueabihf@1.15.13': 3201 + resolution: {integrity: sha512-t+xxEzZ48enl/wGGy7SRYd7kImWQ/+wvVFD7g5JZo234g6/QnIgZ+YdfIyjHB+ZJI3F7a2IQHS7RNjxF29UkWw==} 3202 + engines: {node: '>=10'} 3203 + cpu: [arm] 3204 + os: [linux] 3205 + 3206 + '@swc/core-linux-arm64-gnu@1.15.13': 3207 + resolution: {integrity: sha512-VndeGvKmTXFn6AGwjy0Kg8i7HccOCE7Jt/vmZwRxGtOfNZM1RLYRQ7MfDLo6T0h1Bq6eYzps3L5Ma4zBmjOnOg==} 3208 + engines: {node: '>=10'} 3209 + cpu: [arm64] 3210 + os: [linux] 3211 + libc: [glibc] 3212 + 3213 + '@swc/core-linux-arm64-musl@1.15.13': 3214 + resolution: {integrity: sha512-SmZ9m+XqCB35NddHCctvHFLqPZDAs5j8IgD36GoutufDJmeq2VNfgk5rQoqNqKmAK3Y7iFdEmI76QoHIWiCLyw==} 3215 + engines: {node: '>=10'} 3216 + cpu: [arm64] 3217 + os: [linux] 3218 + libc: [musl] 3219 + 3220 + '@swc/core-linux-x64-gnu@1.15.13': 3221 + resolution: {integrity: sha512-5rij+vB9a29aNkHq72EXI2ihDZPszJb4zlApJY4aCC/q6utgqFA6CkrfTfIb+O8hxtG3zP5KERETz8mfFK6A0A==} 3222 + engines: {node: '>=10'} 3223 + cpu: [x64] 3224 + os: [linux] 3225 + libc: [glibc] 3226 + 3227 + '@swc/core-linux-x64-musl@1.15.13': 3228 + resolution: {integrity: sha512-OlSlaOK9JplQ5qn07WiBLibkOw7iml2++ojEXhhR3rbWrNEKCD7sd8+6wSavsInyFdw4PhLA+Hy6YyDBIE23Yw==} 3229 + engines: {node: '>=10'} 3230 + cpu: [x64] 3231 + os: [linux] 3232 + libc: [musl] 3233 + 3234 + '@swc/core-win32-arm64-msvc@1.15.13': 3235 + resolution: {integrity: sha512-zwQii5YVdsfG8Ti9gIKgBKZg8qMkRZxl+OlYWUT5D93Jl4NuNBRausP20tfEkQdAPSRrMCSUZBM6FhW7izAZRg==} 3236 + engines: {node: '>=10'} 3237 + cpu: [arm64] 3238 + os: [win32] 3239 + 3240 + '@swc/core-win32-ia32-msvc@1.15.13': 3241 + resolution: {integrity: sha512-hYXvyVVntqRlYoAIDwNzkS3tL2ijP3rxyWQMNKaxcCxxkCDto/w3meOK/OB6rbQSkNw0qTUcBfU9k+T0ptYdfQ==} 3242 + engines: {node: '>=10'} 3243 + cpu: [ia32] 3244 + os: [win32] 3245 + 3246 + '@swc/core-win32-x64-msvc@1.15.13': 3247 + resolution: {integrity: sha512-XTzKs7c/vYCcjmcwawnQvlHHNS1naJEAzcBckMI5OJlnrcgW8UtcX9NHFYvNjGtXuKv0/9KvqL4fuahdvlNGKw==} 3248 + engines: {node: '>=10'} 3249 + cpu: [x64] 3250 + os: [win32] 3251 + 3252 + '@swc/core@1.15.13': 3253 + resolution: {integrity: sha512-0l1gl/72PErwUZuavcRpRAQN9uSst+Nk++niC5IX6lmMWpXoScYx3oq/narT64/sKv/eRiPTaAjBFGDEQiWJIw==} 3254 + engines: {node: '>=10'} 3255 + peerDependencies: 3256 + '@swc/helpers': '>=0.5.17' 3257 + peerDependenciesMeta: 3258 + '@swc/helpers': 3259 + optional: true 3260 + 3261 + '@swc/counter@0.1.3': 3262 + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 3263 + 3264 + '@swc/types@0.1.25': 3265 + resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} 3266 + 3176 3267 '@tailwindcss/cli@4.1.18': 3177 3268 resolution: {integrity: sha512-sMZ+lZbDyxwjD2E0L7oRUjJ01Ffjtme5OtjvvnC+cV4CEDcbqzbp25TCpxHj6kWLU9+DlqJOiNgSOgctC2aZmg==} 3178 3269 hasBin: true ··· 3698 3789 resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 3699 3790 engines: {node: '>=12'} 3700 3791 3792 + any-promise@1.3.0: 3793 + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 3794 + 3701 3795 anymatch@3.1.3: 3702 3796 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 3703 3797 engines: {node: '>= 8'} ··· 3946 4040 buffer@5.7.1: 3947 4041 resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 3948 4042 4043 + bundle-require@5.1.0: 4044 + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} 4045 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4046 + peerDependencies: 4047 + esbuild: '>=0.18' 4048 + 3949 4049 busboy@1.6.0: 3950 4050 resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 3951 4051 engines: {node: '>=10.16.0'} ··· 3966 4066 magicast: 3967 4067 optional: true 3968 4068 4069 + cac@6.7.14: 4070 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 4071 + engines: {node: '>=8'} 4072 + 3969 4073 cacache@18.0.4: 3970 4074 resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} 3971 4075 engines: {node: ^16.14.0 || >=18.0.0} ··· 4199 4303 commander@2.20.3: 4200 4304 resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 4201 4305 4306 + commander@4.1.1: 4307 + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 4308 + engines: {node: '>= 6'} 4309 + 4202 4310 common-ancestor-path@1.0.1: 4203 4311 resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 4204 4312 ··· 4218 4326 concat-stream@2.0.0: 4219 4327 resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} 4220 4328 engines: {'0': node >= 6.0} 4329 + 4330 + confbox@0.1.8: 4331 + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 4221 4332 4222 4333 confbox@0.2.2: 4223 4334 resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} ··· 4856 4967 find-up@4.1.0: 4857 4968 resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 4858 4969 engines: {node: '>=8'} 4970 + 4971 + fix-dts-default-cjs-exports@1.0.1: 4972 + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} 4859 4973 4860 4974 flat@5.0.2: 4861 4975 resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} ··· 5642 5756 resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 5643 5757 hasBin: true 5644 5758 5759 + joycon@3.1.1: 5760 + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 5761 + engines: {node: '>=10'} 5762 + 5645 5763 js-tokens@4.0.0: 5646 5764 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 5647 5765 ··· 5831 5949 resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 5832 5950 engines: {node: '>=10'} 5833 5951 5952 + lilconfig@3.1.3: 5953 + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 5954 + engines: {node: '>=14'} 5955 + 5834 5956 lines-and-columns@1.2.4: 5835 5957 resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 5836 5958 ··· 5853 5975 load-json-file@6.2.0: 5854 5976 resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} 5855 5977 engines: {node: '>=8'} 5978 + 5979 + load-tsconfig@0.2.5: 5980 + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 5981 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 5856 5982 5857 5983 locate-path@2.0.0: 5858 5984 resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} ··· 6310 6436 engines: {node: '>=10'} 6311 6437 hasBin: true 6312 6438 6439 + mlly@1.8.0: 6440 + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} 6441 + 6313 6442 modify-values@1.0.1: 6314 6443 resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} 6315 6444 engines: {node: '>=0.10.0'} ··· 6350 6479 mysql2@3.15.3: 6351 6480 resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} 6352 6481 engines: {node: '>= 8.0'} 6482 + 6483 + mz@2.7.0: 6484 + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 6353 6485 6354 6486 named-placeholders@1.1.6: 6355 6487 resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} ··· 6857 6989 resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 6858 6990 engines: {node: '>=8'} 6859 6991 6992 + pkg-types@1.3.1: 6993 + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 6994 + 6860 6995 pkg-types@2.3.0: 6861 6996 resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} 6862 6997 ··· 6874 7009 resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} 6875 7010 engines: {node: '>= 0.4'} 6876 7011 7012 + postcss-load-config@6.0.1: 7013 + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 7014 + engines: {node: '>= 18'} 7015 + peerDependencies: 7016 + jiti: '>=1.21.0' 7017 + postcss: '>=8.0.9' 7018 + tsx: ^4.8.1 7019 + yaml: ^2.4.2 7020 + peerDependenciesMeta: 7021 + jiti: 7022 + optional: true 7023 + postcss: 7024 + optional: true 7025 + tsx: 7026 + optional: true 7027 + yaml: 7028 + optional: true 7029 + 6877 7030 postcss-selector-parser@6.1.2: 6878 7031 resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 6879 7032 engines: {node: '>=4'} ··· 7609 7762 peerDependencies: 7610 7763 graphql: ^15.7.2 || ^16.0.0 7611 7764 7765 + sucrase@3.35.1: 7766 + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} 7767 + engines: {node: '>=16 || 14 >=14.17'} 7768 + hasBin: true 7769 + 7612 7770 superagent@8.1.2: 7613 7771 resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} 7614 7772 engines: {node: '>=6.4.0 <13 || >=14'} ··· 7688 7846 resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} 7689 7847 engines: {node: '>=0.10'} 7690 7848 7849 + thenify-all@1.6.0: 7850 + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 7851 + engines: {node: '>=0.8'} 7852 + 7853 + thenify@3.3.1: 7854 + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 7855 + 7691 7856 through2@2.0.5: 7692 7857 resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} 7693 7858 ··· 7700 7865 7701 7866 tinybench@2.9.0: 7702 7867 resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 7868 + 7869 + tinyexec@0.3.2: 7870 + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 7703 7871 7704 7872 tinyexec@1.0.2: 7705 7873 resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} ··· 7758 7926 tr46@0.0.3: 7759 7927 resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 7760 7928 7929 + tree-kill@1.2.2: 7930 + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 7931 + hasBin: true 7932 + 7761 7933 treeverse@3.0.0: 7762 7934 resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} 7763 7935 engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} ··· 7772 7944 trough@2.2.0: 7773 7945 resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} 7774 7946 7947 + ts-interface-checker@0.1.13: 7948 + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 7949 + 7775 7950 ts-jest@29.4.6: 7776 7951 resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==} 7777 7952 engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} ··· 7829 8004 tslib@2.8.1: 7830 8005 resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 7831 8006 8007 + tsup@8.5.1: 8008 + resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} 8009 + engines: {node: '>=18'} 8010 + hasBin: true 8011 + peerDependencies: 8012 + '@microsoft/api-extractor': ^7.36.0 8013 + '@swc/core': ^1 8014 + postcss: ^8.4.12 8015 + typescript: '>=4.5.0' 8016 + peerDependenciesMeta: 8017 + '@microsoft/api-extractor': 8018 + optional: true 8019 + '@swc/core': 8020 + optional: true 8021 + postcss: 8022 + optional: true 8023 + typescript: 8024 + optional: true 8025 + 7832 8026 tuf-js@2.2.1: 7833 8027 resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} 7834 8028 engines: {node: ^16.14.0 || >=18.0.0} ··· 7884 8078 resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} 7885 8079 hasBin: true 7886 8080 8081 + ufo@1.6.3: 8082 + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} 8083 + 7887 8084 uglify-js@3.19.3: 7888 8085 resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} 7889 8086 engines: {node: '>=0.8.0'} ··· 10052 10249 jest-util: 29.7.0 10053 10250 slash: 3.0.0 10054 10251 10055 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3))': 10252 + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3))': 10056 10253 dependencies: 10057 10254 '@jest/console': 29.7.0 10058 10255 '@jest/reporters': 29.7.0 ··· 10066 10263 exit: 0.1.2 10067 10264 graceful-fs: 4.2.11 10068 10265 jest-changed-files: 29.7.0 10069 - jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 10266 + jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 10070 10267 jest-haste-map: 29.7.0 10071 10268 jest-message-util: 29.7.0 10072 10269 jest-regex-util: 29.6.3 ··· 10231 10428 '@jridgewell/resolve-uri': 3.1.2 10232 10429 '@jridgewell/sourcemap-codec': 1.5.5 10233 10430 10234 - '@lerna/create@8.2.4(@types/node@22.19.3)(encoding@0.1.13)(typescript@5.9.3)': 10431 + '@lerna/create@8.2.4(@swc/core@1.15.13)(@types/node@22.19.3)(encoding@0.1.13)(typescript@5.9.3)': 10235 10432 dependencies: 10236 10433 '@npmcli/arborist': 7.5.4 10237 10434 '@npmcli/package-json': 5.2.0 10238 10435 '@npmcli/run-script': 8.1.0 10239 - '@nx/devkit': 20.8.3(nx@20.8.3) 10436 + '@nx/devkit': 20.8.3(nx@20.8.3(@swc/core@1.15.13)) 10240 10437 '@octokit/plugin-enterprise-rest': 6.0.1 10241 10438 '@octokit/rest': 20.1.2 10242 10439 aproba: 2.0.0 ··· 10273 10470 npm-package-arg: 11.0.2 10274 10471 npm-packlist: 8.0.2 10275 10472 npm-registry-fetch: 17.1.0 10276 - nx: 20.8.3 10473 + nx: 20.8.3(@swc/core@1.15.13) 10277 10474 p-map: 4.0.0 10278 10475 p-map-series: 2.1.0 10279 10476 p-queue: 6.6.2 ··· 10677 10874 transitivePeerDependencies: 10678 10875 - encoding 10679 10876 10680 - '@nx/devkit@20.8.3(nx@20.8.3)': 10877 + '@nx/devkit@20.8.3(nx@20.8.3(@swc/core@1.15.13))': 10681 10878 dependencies: 10682 10879 ejs: 3.1.10 10683 10880 enquirer: 2.3.6 10684 10881 ignore: 5.3.2 10685 10882 minimatch: 9.0.3 10686 - nx: 20.8.3 10883 + nx: 20.8.3(@swc/core@1.15.13) 10687 10884 semver: 7.7.3 10688 10885 tmp: 0.2.5 10689 10886 tslib: 2.8.1 ··· 11091 11288 11092 11289 '@standard-schema/utils@0.3.0': {} 11093 11290 11291 + '@swc/core-darwin-arm64@1.15.13': 11292 + optional: true 11293 + 11294 + '@swc/core-darwin-x64@1.15.13': 11295 + optional: true 11296 + 11297 + '@swc/core-linux-arm-gnueabihf@1.15.13': 11298 + optional: true 11299 + 11300 + '@swc/core-linux-arm64-gnu@1.15.13': 11301 + optional: true 11302 + 11303 + '@swc/core-linux-arm64-musl@1.15.13': 11304 + optional: true 11305 + 11306 + '@swc/core-linux-x64-gnu@1.15.13': 11307 + optional: true 11308 + 11309 + '@swc/core-linux-x64-musl@1.15.13': 11310 + optional: true 11311 + 11312 + '@swc/core-win32-arm64-msvc@1.15.13': 11313 + optional: true 11314 + 11315 + '@swc/core-win32-ia32-msvc@1.15.13': 11316 + optional: true 11317 + 11318 + '@swc/core-win32-x64-msvc@1.15.13': 11319 + optional: true 11320 + 11321 + '@swc/core@1.15.13': 11322 + dependencies: 11323 + '@swc/counter': 0.1.3 11324 + '@swc/types': 0.1.25 11325 + optionalDependencies: 11326 + '@swc/core-darwin-arm64': 1.15.13 11327 + '@swc/core-darwin-x64': 1.15.13 11328 + '@swc/core-linux-arm-gnueabihf': 1.15.13 11329 + '@swc/core-linux-arm64-gnu': 1.15.13 11330 + '@swc/core-linux-arm64-musl': 1.15.13 11331 + '@swc/core-linux-x64-gnu': 1.15.13 11332 + '@swc/core-linux-x64-musl': 1.15.13 11333 + '@swc/core-win32-arm64-msvc': 1.15.13 11334 + '@swc/core-win32-ia32-msvc': 1.15.13 11335 + '@swc/core-win32-x64-msvc': 1.15.13 11336 + 11337 + '@swc/counter@0.1.3': {} 11338 + 11339 + '@swc/types@0.1.25': 11340 + dependencies: 11341 + '@swc/counter': 0.1.3 11342 + 11094 11343 '@tailwindcss/cli@4.1.18': 11095 11344 dependencies: 11096 11345 '@parcel/watcher': 2.5.1 ··· 11693 11942 11694 11943 ansi-styles@6.2.3: {} 11695 11944 11945 + any-promise@1.3.0: {} 11946 + 11696 11947 anymatch@3.1.3: 11697 11948 dependencies: 11698 11949 normalize-path: 3.0.0 ··· 12044 12295 base64-js: 1.5.1 12045 12296 ieee754: 1.2.1 12046 12297 12298 + bundle-require@5.1.0(esbuild@0.27.2): 12299 + dependencies: 12300 + esbuild: 0.27.2 12301 + load-tsconfig: 0.2.5 12302 + 12047 12303 busboy@1.6.0: 12048 12304 dependencies: 12049 12305 streamsearch: 1.1.0 ··· 12067 12323 pkg-types: 2.3.0 12068 12324 rc9: 2.1.2 12069 12325 12326 + cac@6.7.14: {} 12327 + 12070 12328 cacache@18.0.4: 12071 12329 dependencies: 12072 12330 '@npmcli/fs': 3.1.1 ··· 12324 12582 12325 12583 commander@2.20.3: {} 12326 12584 12585 + commander@4.1.1: {} 12586 + 12327 12587 common-ancestor-path@1.0.1: {} 12328 12588 12329 12589 common-tags@1.8.2: {} ··· 12343 12603 inherits: 2.0.4 12344 12604 readable-stream: 3.6.2 12345 12605 typedarray: 0.0.6 12606 + 12607 + confbox@0.1.8: {} 12346 12608 12347 12609 confbox@0.2.2: {} 12348 12610 ··· 12458 12720 optionalDependencies: 12459 12721 typescript: 5.9.3 12460 12722 12461 - create-jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): 12723 + create-jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)): 12462 12724 dependencies: 12463 12725 '@jest/types': 29.6.3 12464 12726 chalk: 4.1.2 12465 12727 exit: 0.1.2 12466 12728 graceful-fs: 4.2.11 12467 - jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 12729 + jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 12468 12730 jest-util: 29.7.0 12469 12731 prompts: 2.4.2 12470 12732 transitivePeerDependencies: ··· 13033 13295 dependencies: 13034 13296 locate-path: 5.0.0 13035 13297 path-exists: 4.0.0 13298 + 13299 + fix-dts-default-cjs-exports@1.0.1: 13300 + dependencies: 13301 + magic-string: 0.30.21 13302 + mlly: 1.8.0 13303 + rollup: 4.54.0 13036 13304 13037 13305 flat@5.0.2: {} 13038 13306 ··· 13770 14038 - babel-plugin-macros 13771 14039 - supports-color 13772 14040 13773 - jest-cli@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): 14041 + jest-cli@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)): 13774 14042 dependencies: 13775 - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 14043 + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 13776 14044 '@jest/test-result': 29.7.0 13777 14045 '@jest/types': 29.6.3 13778 14046 chalk: 4.1.2 13779 - create-jest: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 14047 + create-jest: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 13780 14048 exit: 0.1.2 13781 14049 import-local: 3.1.0 13782 - jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 14050 + jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 13783 14051 jest-util: 29.7.0 13784 14052 jest-validate: 29.7.0 13785 14053 yargs: 17.7.2 ··· 13789 14057 - supports-color 13790 14058 - ts-node 13791 14059 13792 - jest-config@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): 14060 + jest-config@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)): 13793 14061 dependencies: 13794 14062 '@babel/core': 7.28.5 13795 14063 '@jest/test-sequencer': 29.7.0 ··· 13815 14083 strip-json-comments: 3.1.1 13816 14084 optionalDependencies: 13817 14085 '@types/node': 22.19.3 13818 - ts-node: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) 14086 + ts-node: 10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3) 13819 14087 transitivePeerDependencies: 13820 14088 - babel-plugin-macros 13821 14089 - supports-color ··· 14035 14303 merge-stream: 2.0.0 14036 14304 supports-color: 8.1.1 14037 14305 14038 - jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): 14306 + jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)): 14039 14307 dependencies: 14040 - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 14308 + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 14041 14309 '@jest/types': 29.6.3 14042 14310 import-local: 3.1.0 14043 - jest-cli: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 14311 + jest-cli: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 14044 14312 transitivePeerDependencies: 14045 14313 - '@types/node' 14046 14314 - babel-plugin-macros ··· 14049 14317 14050 14318 jiti@2.6.1: {} 14051 14319 14320 + joycon@3.1.1: {} 14321 + 14052 14322 js-tokens@4.0.0: {} 14053 14323 14054 14324 js-yaml@3.14.2: ··· 14152 14422 14153 14423 kleur@3.0.3: {} 14154 14424 14155 - lerna@8.2.4(@types/node@22.19.3)(encoding@0.1.13): 14425 + lerna@8.2.4(@swc/core@1.15.13)(@types/node@22.19.3)(encoding@0.1.13): 14156 14426 dependencies: 14157 - '@lerna/create': 8.2.4(@types/node@22.19.3)(encoding@0.1.13)(typescript@5.9.3) 14427 + '@lerna/create': 8.2.4(@swc/core@1.15.13)(@types/node@22.19.3)(encoding@0.1.13)(typescript@5.9.3) 14158 14428 '@npmcli/arborist': 7.5.4 14159 14429 '@npmcli/package-json': 5.2.0 14160 14430 '@npmcli/run-script': 8.1.0 14161 - '@nx/devkit': 20.8.3(nx@20.8.3) 14431 + '@nx/devkit': 20.8.3(nx@20.8.3(@swc/core@1.15.13)) 14162 14432 '@octokit/plugin-enterprise-rest': 6.0.1 14163 14433 '@octokit/rest': 20.1.2 14164 14434 aproba: 2.0.0 ··· 14201 14471 npm-package-arg: 11.0.2 14202 14472 npm-packlist: 8.0.2 14203 14473 npm-registry-fetch: 17.1.0 14204 - nx: 20.8.3 14474 + nx: 20.8.3(@swc/core@1.15.13) 14205 14475 p-map: 4.0.0 14206 14476 p-map-series: 2.1.0 14207 14477 p-pipe: 3.1.0 ··· 14322 14592 14323 14593 lilconfig@2.1.0: {} 14324 14594 14595 + lilconfig@3.1.3: {} 14596 + 14325 14597 lines-and-columns@1.2.4: {} 14326 14598 14327 14599 lines-and-columns@2.0.3: {} ··· 14350 14622 parse-json: 5.2.0 14351 14623 strip-bom: 4.0.0 14352 14624 type-fest: 0.6.0 14625 + 14626 + load-tsconfig@0.2.5: {} 14353 14627 14354 14628 locate-path@2.0.0: 14355 14629 dependencies: ··· 15063 15337 15064 15338 mkdirp@1.0.4: {} 15065 15339 15340 + mlly@1.8.0: 15341 + dependencies: 15342 + acorn: 8.15.0 15343 + pathe: 2.0.3 15344 + pkg-types: 1.3.1 15345 + ufo: 1.6.3 15346 + 15066 15347 modify-values@1.0.1: {} 15067 15348 15068 15349 mri@1.2.0: {} ··· 15108 15389 named-placeholders: 1.1.6 15109 15390 seq-queue: 0.0.5 15110 15391 sqlstring: 2.3.3 15392 + 15393 + mz@2.7.0: 15394 + dependencies: 15395 + any-promise: 1.3.0 15396 + object-assign: 4.1.1 15397 + thenify-all: 1.6.0 15111 15398 15112 15399 named-placeholders@1.1.6: 15113 15400 dependencies: ··· 15293 15580 15294 15581 nullthrows@1.1.1: {} 15295 15582 15296 - nx@20.8.3: 15583 + nx@20.8.3(@swc/core@1.15.13): 15297 15584 dependencies: 15298 15585 '@napi-rs/wasm-runtime': 0.2.4 15299 15586 '@yarnpkg/lockfile': 1.1.0 ··· 15340 15627 '@nx/nx-linux-x64-musl': 20.8.3 15341 15628 '@nx/nx-win32-arm64-msvc': 20.8.3 15342 15629 '@nx/nx-win32-x64-msvc': 20.8.3 15630 + '@swc/core': 1.15.13 15343 15631 transitivePeerDependencies: 15344 15632 - debug 15345 15633 ··· 15672 15960 dependencies: 15673 15961 find-up: 4.1.0 15674 15962 15963 + pkg-types@1.3.1: 15964 + dependencies: 15965 + confbox: 0.1.8 15966 + mlly: 1.8.0 15967 + pathe: 2.0.3 15968 + 15675 15969 pkg-types@2.3.0: 15676 15970 dependencies: 15677 15971 confbox: 0.2.2 ··· 15687 15981 fsevents: 2.3.2 15688 15982 15689 15983 possible-typed-array-names@1.1.0: {} 15984 + 15985 + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2): 15986 + dependencies: 15987 + lilconfig: 3.1.3 15988 + optionalDependencies: 15989 + jiti: 2.6.1 15990 + postcss: 8.5.6 15991 + yaml: 2.8.2 15690 15992 15691 15993 postcss-selector-parser@6.1.2: 15692 15994 dependencies: ··· 16519 16821 transitivePeerDependencies: 16520 16822 - bufferutil 16521 16823 - utf-8-validate 16824 + 16825 + sucrase@3.35.1: 16826 + dependencies: 16827 + '@jridgewell/gen-mapping': 0.3.13 16828 + commander: 4.1.1 16829 + lines-and-columns: 1.2.4 16830 + mz: 2.7.0 16831 + pirates: 4.0.7 16832 + tinyglobby: 0.2.15 16833 + ts-interface-checker: 0.1.13 16522 16834 16523 16835 superagent@8.1.2: 16524 16836 dependencies: ··· 16634 16946 16635 16947 text-extensions@1.9.0: {} 16636 16948 16949 + thenify-all@1.6.0: 16950 + dependencies: 16951 + thenify: 3.3.1 16952 + 16953 + thenify@3.3.1: 16954 + dependencies: 16955 + any-promise: 1.3.0 16956 + 16637 16957 through2@2.0.5: 16638 16958 dependencies: 16639 16959 readable-stream: 2.3.8 ··· 16644 16964 timeout-signal@2.0.0: {} 16645 16965 16646 16966 tinybench@2.9.0: {} 16967 + 16968 + tinyexec@0.3.2: {} 16647 16969 16648 16970 tinyexec@1.0.2: {} 16649 16971 ··· 16695 17017 16696 17018 tr46@0.0.3: {} 16697 17019 17020 + tree-kill@1.2.2: {} 17021 + 16698 17022 treeverse@3.0.0: {} 16699 17023 16700 17024 trim-lines@3.0.1: {} ··· 16703 17027 16704 17028 trough@2.2.0: {} 16705 17029 16706 - ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3))(typescript@5.9.3): 17030 + ts-interface-checker@0.1.13: {} 17031 + 17032 + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3): 16707 17033 dependencies: 16708 17034 bs-logger: 0.2.6 16709 17035 fast-json-stable-stringify: 2.1.0 16710 17036 handlebars: 4.7.8 16711 - jest: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) 17037 + jest: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3)) 16712 17038 json5: 2.2.3 16713 17039 lodash.memoize: 4.1.2 16714 17040 make-error: 1.3.6 ··· 16721 17047 '@jest/transform': 29.7.0 16722 17048 '@jest/types': 29.6.3 16723 17049 babel-jest: 29.7.0(@babel/core@7.28.5) 17050 + esbuild: 0.27.2 16724 17051 jest-util: 29.7.0 16725 17052 16726 17053 ts-log@2.2.7: {} 16727 17054 16728 - ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3): 17055 + ts-node@10.9.2(@swc/core@1.15.13)(@types/node@22.19.3)(typescript@5.9.3): 16729 17056 dependencies: 16730 17057 '@cspotcode/source-map-support': 0.8.1 16731 17058 '@tsconfig/node10': 1.0.12 ··· 16742 17069 typescript: 5.9.3 16743 17070 v8-compile-cache-lib: 3.0.1 16744 17071 yn: 3.1.1 17072 + optionalDependencies: 17073 + '@swc/core': 1.15.13 16745 17074 16746 17075 tsconfig-paths@4.2.0: 16747 17076 dependencies: ··· 16755 17084 16756 17085 tslib@2.8.1: {} 16757 17086 17087 + tsup@8.5.1(@swc/core@1.15.13)(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2): 17088 + dependencies: 17089 + bundle-require: 5.1.0(esbuild@0.27.2) 17090 + cac: 6.7.14 17091 + chokidar: 4.0.3 17092 + consola: 3.4.2 17093 + debug: 4.4.3(supports-color@5.5.0) 17094 + esbuild: 0.27.2 17095 + fix-dts-default-cjs-exports: 1.0.1 17096 + joycon: 3.1.1 17097 + picocolors: 1.1.1 17098 + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2) 17099 + resolve-from: 5.0.0 17100 + rollup: 4.54.0 17101 + source-map: 0.7.6 17102 + sucrase: 3.35.1 17103 + tinyexec: 0.3.2 17104 + tinyglobby: 0.2.15 17105 + tree-kill: 1.2.2 17106 + optionalDependencies: 17107 + '@swc/core': 1.15.13 17108 + postcss: 8.5.6 17109 + typescript: 5.9.3 17110 + transitivePeerDependencies: 17111 + - jiti 17112 + - supports-color 17113 + - tsx 17114 + - yaml 17115 + 16758 17116 tuf-js@2.2.1: 16759 17117 dependencies: 16760 17118 '@tufjs/models': 2.0.1 ··· 16797 17155 typescript@5.9.3: {} 16798 17156 16799 17157 ua-parser-js@1.0.41: {} 17158 + 17159 + ufo@1.6.3: {} 16800 17160 16801 17161 uglify-js@3.19.3: 16802 17162 optional: true