@techstream/quark-create-app 1.5.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,7 +12,7 @@ The CLI scaffolds a complete project structure with:
12
12
  - **Next.js** web application
13
13
  - **Prisma** database schema and migrations
14
14
  - **BullMQ** job queues
15
- - **Docker Compose** setup (PostgreSQL, Redis, Mailhog)
15
+ - **Docker Compose** setup (PostgreSQL, Redis, Mailpit)
16
16
  - **JavaScript** monorepo with `pnpm` workspaces
17
17
 
18
18
  ## Quick Setup
@@ -20,7 +20,6 @@ The CLI scaffolds a complete project structure with:
20
20
  ```bash
21
21
  cd my-awesome-app
22
22
  docker compose up -d
23
- pnpm db:generate
24
23
  pnpm db:migrate
25
24
  pnpm dev
26
25
  ```
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@techstream/quark-create-app",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "quark-create-app": "src/index.js",
7
- "create-quark-app": "src/index.js"
7
+ "create-quark-app": "src/index.js",
8
+ "quark-update": "src/index.js"
8
9
  },
9
10
  "files": [
10
11
  "src",
package/src/index.js CHANGED
@@ -444,12 +444,12 @@ REDIS_PORT=6379
444
444
  # Optional: Set REDIS_URL to override the dynamic construction above
445
445
  # REDIS_URL="redis://localhost:6379"
446
446
 
447
- # --- Mailhog Configuration ---
448
- MAILHOG_HOST=localhost
449
- MAILHOG_SMTP_PORT=1025
450
- MAILHOG_UI_PORT=8025
451
- # Optional: Set MAILHOG_SMTP_URL to override the dynamic construction above
452
- # MAILHOG_SMTP_URL="smtp://localhost:1025"
447
+ # --- Mail Configuration (Mailpit in development) ---
448
+ MAIL_HOST=localhost
449
+ MAIL_SMTP_PORT=1025
450
+ MAIL_UI_PORT=8025
451
+ # Optional: Set MAIL_SMTP_URL to override the dynamic construction above
452
+ # MAIL_SMTP_URL="smtp://localhost:1025"
453
453
 
454
454
  # --- Application URL ---
455
455
  # In development, APP_URL is derived automatically from PORT — no need to set it.
@@ -544,9 +544,9 @@ REDIS_HOST=localhost
544
544
  REDIS_PORT=${redisPort}
545
545
 
546
546
  # --- Mail Configuration ---
547
- MAILHOG_HOST=localhost
548
- MAILHOG_SMTP_PORT=${mailSmtpPort}
549
- MAILHOG_UI_PORT=${mailUiPort}
547
+ MAIL_HOST=localhost
548
+ MAIL_SMTP_PORT=${mailSmtpPort}
549
+ MAIL_UI_PORT=${mailUiPort}
550
550
 
551
551
  # --- NextAuth Configuration ---
552
552
  NEXTAUTH_SECRET=${nextAuthSecret}
@@ -637,7 +637,7 @@ STORAGE_PROVIDER=local
637
637
  console.log(chalk.cyan("Next steps:"));
638
638
  console.log(chalk.white(` 1. cd ${projectName}`));
639
639
  console.log(chalk.white(` 2. docker compose up -d`));
640
- console.log(chalk.white(` 3. pnpm --filter db db:push`));
640
+ console.log(chalk.white(` 3. pnpm db:migrate`));
641
641
  console.log(chalk.white(` 4. pnpm dev\n`));
642
642
 
643
643
  console.log(chalk.cyan("Important:"));
@@ -647,7 +647,7 @@ STORAGE_PROVIDER=local
647
647
  ),
648
648
  );
649
649
  console.log(
650
- chalk.white(` • Use 'quark-update' to upgrade Quark packages\n`),
650
+ chalk.white(` • Or run: npx @techstream/quark-create-app update\n`),
651
651
  );
652
652
 
653
653
  console.log(chalk.cyan("Learn more:"));
@@ -6,15 +6,19 @@ A modern, scalable monorepo built with Quark.
6
6
 
7
7
  ```bash
8
8
  pnpm install
9
+ docker compose up -d
10
+ pnpm db:migrate
9
11
  pnpm dev
10
12
  ```
11
13
 
14
+ Open http://localhost:3000
15
+
12
16
  ## Services
13
17
 
14
18
  - **Docker**: `docker compose up -d`
15
- - **Database**: PostgreSQL on port 5432
16
- - **Cache**: Redis on port 6379
17
- - **Email**: Mailhog UI on port 8025
19
+ - **Database**: PostgreSQL
20
+ - **Cache**: Redis
21
+ - **Email**: Mailpit
18
22
 
19
23
  ## Development
20
24
 
@@ -29,6 +33,16 @@ pnpm test
29
33
  pnpm lint
30
34
  ```
31
35
 
36
+ ## Database
37
+
38
+ | Task | Command |
39
+ |------|--------|
40
+ | Run migrations | `pnpm db:migrate` |
41
+ | Push schema (no migration) | `pnpm db:push` |
42
+ | Generate Prisma client | `pnpm db:generate` |
43
+ | Seed database | `pnpm db:seed` |
44
+ | Open Prisma Studio | `pnpm db:studio` |
45
+
32
46
  ## Structure
33
47
 
34
48
  - `apps/` - Applications (web, worker, etc.)
@@ -1,6 +1,6 @@
1
1
  {
2
- "name": "@quark/web",
3
- "version": "0.1.0",
2
+ "name": "@techstream/quark-web",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "scripts": {
@@ -21,7 +21,8 @@
21
21
  "next-auth": "5.0.0-beta.30",
22
22
  "pg": "^8.18.0",
23
23
  "react": "19.2.0",
24
- "react-dom": "19.2.0"
24
+ "react-dom": "19.2.0",
25
+ "zod": "^4.3.6"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@techstream/quark-config": "workspace:*",
@@ -1,7 +1,8 @@
1
1
  {
2
- "name": "@quark/worker",
2
+ "name": "@techstream/quark-worker",
3
3
  "version": "1.0.0",
4
4
  "type": "module",
5
+ "private": true,
5
6
  "description": "",
6
7
  "main": "index.js",
7
8
  "scripts": {
@@ -11,6 +11,11 @@ services:
11
11
  POSTGRES_DB: ${POSTGRES_DB}
12
12
  volumes:
13
13
  - postgres_data:/var/lib/postgresql/data
14
+ healthcheck:
15
+ test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-quark_user}"]
16
+ interval: 5s
17
+ timeout: 5s
18
+ retries: 5
14
19
 
15
20
  # --- 2. Redis Cache & Job Queue ---
16
21
  redis:
@@ -21,6 +26,11 @@ services:
21
26
  command: redis-server --appendonly yes
22
27
  volumes:
23
28
  - redis_data:/data
29
+ healthcheck:
30
+ test: ["CMD", "redis-cli", "ping"]
31
+ interval: 5s
32
+ timeout: 5s
33
+ retries: 5
24
34
 
25
35
  # --- 3. Mailpit (Local SMTP Server) ---
26
36
  mailpit:
@@ -28,9 +38,14 @@ services:
28
38
  restart: always
29
39
  ports:
30
40
  # SMTP port (used by application to send mail)
31
- - "${MAILHOG_SMTP_PORT:-1025}:1025"
41
+ - "${MAIL_SMTP_PORT:-1025}:1025"
32
42
  # Web UI port (to view sent emails)
33
- - "${MAILHOG_UI_PORT:-8025}:8025"
43
+ - "${MAIL_UI_PORT:-8025}:8025"
44
+ healthcheck:
45
+ test: ["CMD", "wget", "--spider", "-q", "http://localhost:8025"]
46
+ interval: 10s
47
+ timeout: 5s
48
+ retries: 3
34
49
 
35
50
  volumes:
36
51
  postgres_data:
@@ -11,7 +11,11 @@
11
11
  "test": "turbo run test",
12
12
  "docker:up": "docker compose up -d",
13
13
  "docker:down": "docker compose down",
14
- "db:generate": "turbo run db:generate"
14
+ "db:generate": "turbo run db:generate",
15
+ "db:migrate": "turbo run db:migrate",
16
+ "db:push": "turbo run db:push",
17
+ "db:seed": "turbo run db:seed",
18
+ "db:studio": "turbo run db:studio"
15
19
  },
16
20
  "keywords": [],
17
21
  "author": "",
@@ -23,11 +23,11 @@
23
23
  "devDependencies": {
24
24
  "@techstream/quark-config": "workspace:*",
25
25
  "bcryptjs": "^3.0.3",
26
- "prisma": "^7.3.0"
26
+ "prisma": "^7.4.0"
27
27
  },
28
28
  "dependencies": {
29
- "@prisma/adapter-pg": "^7.3.0",
30
- "@prisma/client": "^7.3.0",
29
+ "@prisma/adapter-pg": "^7.4.0",
30
+ "@prisma/client": "^7.4.0",
31
31
  "dotenv": "^17.2.4",
32
32
  "pg": "^8.18.0",
33
33
  "zod": "^4.3.6"
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://turbo.build/schema.json",
3
3
  "tasks": {
4
4
  "build": {
5
- "dependsOn": ["^build"],
5
+ "dependsOn": ["^build", "db:generate"],
6
6
  "outputs": ["dist/**", ".next/**"],
7
7
  "env": ["NODE_ENV"]
8
8
  },
@@ -17,6 +17,19 @@
17
17
  "cache": false,
18
18
  "outputs": ["node_modules/.prisma/client"]
19
19
  },
20
+ "db:migrate": {
21
+ "cache": false
22
+ },
23
+ "db:push": {
24
+ "cache": false
25
+ },
26
+ "db:seed": {
27
+ "cache": false
28
+ },
29
+ "db:studio": {
30
+ "cache": false,
31
+ "persistent": true
32
+ },
20
33
  "dev": {
21
34
  "cache": false,
22
35
  "persistent": true,
@@ -29,9 +42,9 @@
29
42
  "POSTGRES_DB",
30
43
  "REDIS_HOST",
31
44
  "REDIS_PORT",
32
- "MAILHOG_HOST",
33
- "MAILHOG_SMTP_PORT",
34
- "MAILHOG_UI_PORT",
45
+ "MAIL_HOST",
46
+ "MAIL_SMTP_PORT",
47
+ "MAIL_UI_PORT",
35
48
  "NEXTAUTH_SECRET",
36
49
  "APP_URL",
37
50
  "WORKER_CONCURRENCY",
@@ -14,7 +14,7 @@ export const config = {
14
14
  },
15
15
  email: {
16
16
  from: process.env.EMAIL_FROM || "noreply@myquarkapp.com",
17
- provider: process.env.EMAIL_PROVIDER || "mailhog",
17
+ provider: process.env.EMAIL_PROVIDER || "smtp",
18
18
  },
19
19
  };
20
20
 
@@ -22,11 +22,11 @@ const envSchema = {
22
22
  REDIS_HOST: { required: false, description: "Redis host" },
23
23
  REDIS_PORT: { required: false, description: "Redis port" },
24
24
 
25
- // Mailhog
26
- MAILHOG_SMTP_URL: { required: false, description: "Mailhog SMTP URL" },
27
- MAILHOG_HOST: { required: false, description: "Mailhog host" },
28
- MAILHOG_SMTP_PORT: { required: false, description: "Mailhog SMTP port" },
29
- MAILHOG_UI_PORT: { required: false, description: "Mailhog UI port" },
25
+ // Mail (local SMTP server)
26
+ MAIL_SMTP_URL: { required: false, description: "Mail SMTP URL" },
27
+ MAIL_HOST: { required: false, description: "Mail host" },
28
+ MAIL_SMTP_PORT: { required: false, description: "Mail SMTP port" },
29
+ MAIL_UI_PORT: { required: false, description: "Mail UI port" },
30
30
 
31
31
  // NextAuth
32
32
  NEXTAUTH_SECRET: {