Compare commits

...

3 Commits

Author SHA1 Message Date
d9b56cfb5b - fixes #2401 2025-10-08 21:49:07 +02:00
5624dc4f83 Merge pull request #2402 from GouravNG/revert/EnvExampleFile
revert: readded the .env.example file
2025-10-07 21:25:48 +02:00
772332661f revert: readded the .env.example file 2025-10-07 21:54:59 +05:30
8 changed files with 690 additions and 528 deletions

81
.env.example Normal file
View File

@ -0,0 +1,81 @@
# Environment
NODE_ENV=development
# Ports
PORT=3000
# URLs
# These URLs must reference a publicly accessible domain or IP address, not a docker container ID (depending on your compose setup)
PUBLIC_URL=http://localhost:3000
STORAGE_URL=http://localhost:9000/default # default is the bucket name specified in the STORAGE_BUCKET variable
# Database (Prisma/PostgreSQL)
# This can be swapped out to use any other database, like MySQL
# Note: This is used only in the compose.yml file
POSTGRES_PORT=5432
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# Database (Prisma/PostgreSQL)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres?schema=public
# Authentication Secrets
# generated with `openssl rand -base64 64`
ACCESS_TOKEN_SECRET=access_token_secret
REFRESH_TOKEN_SECRET=refresh_token_secret
# Chrome Browser (for printing)
# generated with `openssl rand -hex 32`
CHROME_PORT=8080
CHROME_TOKEN=chrome_token
CHROME_URL=ws://localhost:8080
# Launch puppeteer with flag to ignore https errors
# CHROME_IGNORE_HTTPS_ERRORS=true
# Mail Server (for e-mails)
# For testing, you can use https://ethereal.email/create
MAIL_FROM=noreply@localhost
# SMTP_URL=smtp://username:password@smtp.ethereal.email:587
# Storage
STORAGE_ENDPOINT=localhost
STORAGE_PORT=9000
STORAGE_REGION=us-east-1
STORAGE_BUCKET=default
STORAGE_ACCESS_KEY=minioadmin
STORAGE_SECRET_KEY=minioadmin
STORAGE_USE_SSL=false
STORAGE_SKIP_BUCKET_CHECK=false
# Nx Cloud (Optional)
# NX_CLOUD_ACCESS_TOKEN=
# Crowdin (Optional)
# CROWDIN_PROJECT_ID=
# CROWDIN_PERSONAL_TOKEN=
# Feature Flags (Optional)
# DISABLE_SIGNUPS=false
# DISABLE_EMAIL_AUTH=false
# GitHub (OAuth, Optional)
# GITHUB_CLIENT_ID=
# GITHUB_CLIENT_SECRET=
# GITHUB_CALLBACK_URL=http://localhost:5173/api/auth/github/callback
# Google (OAuth, Optional)
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# GOOGLE_CALLBACK_URL=http://localhost:5173/api/auth/google/callback
# OpenID (Optional)
# VITE_OPENID_NAME=
# OPENID_AUTHORIZATION_URL=
# OPENID_CALLBACK_URL=http://localhost:5173/api/auth/openid/callback
# OPENID_CLIENT_ID=
# OPENID_CLIENT_SECRET=
# OPENID_ISSUER=
# OPENID_SCOPE=openid profile email
# OPENID_TOKEN_URL=
# OPENID_USER_INFO_URL=

View File

@ -1,3 +1,3 @@
{ {
"recommendations": ["nrwl.angular-console", "esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
} }

View File

@ -14,8 +14,8 @@ export const Picture = ({ className }: PictureProps) => {
return ( return (
<img <img
src={picture.url}
alt="Profile" alt="Profile"
src={picture.url}
className={cn( className={cn(
"relative z-20 object-cover", "relative z-20 object-cover",
picture.effects.border && "border-primary", picture.effects.border && "border-primary",

View File

@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n" "Language: hi\n"
"Project-Id-Version: reactive-resume\n" "Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-10-01 09:32\n" "PO-Revision-Date: 2025-10-08 00:10\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Hindi\n" "Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@ -1,11 +1,6 @@
import { Logger, Module } from "@nestjs/common"; import { Module } from "@nestjs/common";
import { ConfigService } from "@nestjs/config"; import { ConfigService } from "@nestjs/config";
import { import { PrismaModule, providePrismaClientExceptionFilter } from "nestjs-prisma";
loggingMiddleware,
PrismaModule,
PrismaService,
providePrismaClientExceptionFilter,
} from "nestjs-prisma";
import { Config } from "@/server/config/schema"; import { Config } from "@/server/config/schema";
@ -16,14 +11,6 @@ import { Config } from "@/server/config/schema";
inject: [ConfigService], inject: [ConfigService],
useFactory: (configService: ConfigService<Config>) => ({ useFactory: (configService: ConfigService<Config>) => ({
prismaOptions: { datasourceUrl: configService.get("DATABASE_URL") }, prismaOptions: { datasourceUrl: configService.get("DATABASE_URL") },
middlewares: [
loggingMiddleware({
logLevel: "debug", // only in development
logger: new Logger(PrismaService.name),
logMessage: (query) =>
`[Query] ${query.model}.${query.action} - ${query.executionTime}ms`,
}),
],
}), }),
}), }),
], ],

View File

@ -139,21 +139,7 @@ export class PrinterService {
page.waitForSelector('[data-page="1"]', { timeout: 15_000 }), page.waitForSelector('[data-page="1"]', { timeout: 15_000 }),
]); ]);
if (resume.data.basics.picture.url) { await page.waitForNetworkIdle({ idleTime: 500, timeout: 15_000 });
await page.waitForSelector('img[alt="Profile"]');
await page.evaluate(() =>
Promise.all(
// eslint-disable-next-line unicorn/prefer-spread
Array.from(document.images).map((img) => {
if (img.complete) return Promise.resolve();
return new Promise((resolve) => {
// eslint-disable-next-line unicorn/prefer-add-event-listener
img.onload = img.onerror = resolve;
});
}),
),
);
}
const pagesBuffer: Buffer[] = []; const pagesBuffer: Buffer[] = [];

View File

@ -1,10 +1,10 @@
{ {
"name": "@reactive-resume/source", "name": "@reactive-resume/source",
"description": "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.", "description": "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.",
"version": "4.5.0", "version": "4.5.1",
"license": "MIT", "license": "MIT",
"private": true, "private": true,
"packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a", "packageManager": "pnpm@10.18.1",
"author": { "author": {
"name": "Amruth Pillai", "name": "Amruth Pillai",
"url": "https://amruthpillai.com", "url": "https://amruthpillai.com",
@ -80,14 +80,14 @@
"@types/passport-local": "^1.0.38", "@types/passport-local": "^1.0.38",
"@types/passport-openidconnect": "^0.1.3", "@types/passport-openidconnect": "^0.1.3",
"@types/prismjs": "^1.26.5", "@types/prismjs": "^1.26.5",
"@types/react": "^18.3.25", "@types/react": "^18.3.26",
"@types/react-dom": "^18.3.7", "@types/react-dom": "^18.3.7",
"@types/react-is": "^18.3.1", "@types/react-is": "^18.3.1",
"@types/retry": "^0.12.5", "@types/retry": "^0.12.5",
"@types/sanitize-html": "^2.16.0", "@types/sanitize-html": "^2.16.0",
"@types/webfontloader": "^1.6.38", "@types/webfontloader": "^1.6.38",
"@typescript-eslint/eslint-plugin": "^8.45.0", "@typescript-eslint/eslint-plugin": "^8.46.0",
"@typescript-eslint/parser": "^8.45.0", "@typescript-eslint/parser": "^8.46.0",
"@vitejs/plugin-react": "^4.7.0", "@vitejs/plugin-react": "^4.7.0",
"@vitejs/plugin-react-swc": "^3.11.0", "@vitejs/plugin-react-swc": "^3.11.0",
"@vitest/coverage-v8": "^2.1.9", "@vitest/coverage-v8": "^2.1.9",
@ -115,7 +115,7 @@
"postcss-nested": "^6.2.0", "postcss-nested": "^6.2.0",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"prettier-plugin-tailwindcss": "^0.6.14", "prettier-plugin-tailwindcss": "^0.6.14",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.18",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"ts-jest": "^29.4.4", "ts-jest": "^29.4.4",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
@ -209,7 +209,7 @@
"minio": "^8.0.6", "minio": "^8.0.6",
"nest-raven": "^10.1.0", "nest-raven": "^10.1.0",
"nestjs-minio-client": "^2.2.0", "nestjs-minio-client": "^2.2.0",
"nestjs-prisma": "^0.25.0", "nestjs-prisma": "^0.26.0",
"nestjs-zod": "^3.0.0", "nestjs-zod": "^3.0.0",
"nodemailer": "^6.10.1", "nodemailer": "^6.10.1",
"openai": "^4.104.0", "openai": "^4.104.0",
@ -230,10 +230,10 @@
"react-colorful": "^5.6.1", "react-colorful": "^5.6.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"react-helmet-async": "^2.0.5", "react-helmet-async": "^2.0.5",
"react-hook-form": "^7.63.0", "react-hook-form": "^7.64.0",
"react-parallax-tilt": "^1.7.309", "react-parallax-tilt": "^1.7.310",
"react-resizable-panels": "^2.1.9", "react-resizable-panels": "^2.1.9",
"react-router": "^7.9.3", "react-router": "^7.9.4",
"react-simple-code-editor": "^0.14.1", "react-simple-code-editor": "^0.14.1",
"react-zoom-pan-pinch": "^3.7.0", "react-zoom-pan-pinch": "^3.7.0",
"reflect-metadata": "^0.2.2", "reflect-metadata": "^0.2.2",

1078
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff