create-kofi-stack 1.2.2 → 1.2.3
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/dist/index.js +36 -36
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1452,78 +1452,78 @@ export function SignUpForm() {
|
|
|
1452
1452
|
}
|
|
1453
1453
|
async function generateEnvFiles(config, appDir) {
|
|
1454
1454
|
let envExample = `# Core
|
|
1455
|
-
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
|
1455
|
+
NEXT_PUBLIC_APP_URL="http://localhost:3000"
|
|
1456
1456
|
|
|
1457
1457
|
# Convex
|
|
1458
|
-
CONVEX_DEPLOYMENT=
|
|
1459
|
-
NEXT_PUBLIC_CONVEX_URL=
|
|
1458
|
+
CONVEX_DEPLOYMENT=""
|
|
1459
|
+
NEXT_PUBLIC_CONVEX_URL=""
|
|
1460
1460
|
|
|
1461
1461
|
# Better-Auth
|
|
1462
|
-
BETTER_AUTH_SECRET= # Generate with: openssl rand -base64 32
|
|
1462
|
+
BETTER_AUTH_SECRET="" # Generate with: openssl rand -base64 32
|
|
1463
1463
|
|
|
1464
1464
|
# Google OAuth (always included)
|
|
1465
|
-
GOOGLE_CLIENT_ID=
|
|
1466
|
-
GOOGLE_CLIENT_SECRET=
|
|
1465
|
+
GOOGLE_CLIENT_ID=""
|
|
1466
|
+
GOOGLE_CLIENT_SECRET=""
|
|
1467
1467
|
`;
|
|
1468
1468
|
for (const provider of config.auth.providers) {
|
|
1469
1469
|
const envPrefix = provider.toUpperCase();
|
|
1470
1470
|
envExample += `
|
|
1471
1471
|
# ${provider.charAt(0).toUpperCase() + provider.slice(1)} OAuth
|
|
1472
|
-
${envPrefix}_CLIENT_ID=
|
|
1473
|
-
${envPrefix}_CLIENT_SECRET=
|
|
1472
|
+
${envPrefix}_CLIENT_ID=""
|
|
1473
|
+
${envPrefix}_CLIENT_SECRET=""
|
|
1474
1474
|
`;
|
|
1475
1475
|
}
|
|
1476
1476
|
envExample += `
|
|
1477
1477
|
# Resend (always included)
|
|
1478
|
-
RESEND_API_KEY=
|
|
1478
|
+
RESEND_API_KEY=""
|
|
1479
1479
|
`;
|
|
1480
1480
|
if (config.integrations.analytics === "posthog") {
|
|
1481
1481
|
envExample += `
|
|
1482
1482
|
# PostHog
|
|
1483
|
-
NEXT_PUBLIC_POSTHOG_KEY=
|
|
1484
|
-
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com
|
|
1483
|
+
NEXT_PUBLIC_POSTHOG_KEY=""
|
|
1484
|
+
NEXT_PUBLIC_POSTHOG_HOST="https://app.posthog.com"
|
|
1485
1485
|
`;
|
|
1486
1486
|
}
|
|
1487
1487
|
if (config.integrations.uploads === "uploadthing") {
|
|
1488
1488
|
envExample += `
|
|
1489
1489
|
# Uploadthing
|
|
1490
|
-
UPLOADTHING_SECRET=
|
|
1491
|
-
UPLOADTHING_APP_ID=
|
|
1490
|
+
UPLOADTHING_SECRET=""
|
|
1491
|
+
UPLOADTHING_APP_ID=""
|
|
1492
1492
|
`;
|
|
1493
1493
|
}
|
|
1494
1494
|
if (config.integrations.uploads === "s3") {
|
|
1495
1495
|
envExample += `
|
|
1496
1496
|
# AWS S3
|
|
1497
|
-
AWS_ACCESS_KEY_ID=
|
|
1498
|
-
AWS_SECRET_ACCESS_KEY=
|
|
1499
|
-
AWS_REGION=
|
|
1500
|
-
AWS_BUCKET_NAME=
|
|
1497
|
+
AWS_ACCESS_KEY_ID=""
|
|
1498
|
+
AWS_SECRET_ACCESS_KEY=""
|
|
1499
|
+
AWS_REGION=""
|
|
1500
|
+
AWS_BUCKET_NAME=""
|
|
1501
1501
|
`;
|
|
1502
1502
|
}
|
|
1503
1503
|
if (config.integrations.uploads === "vercel-blob") {
|
|
1504
1504
|
envExample += `
|
|
1505
1505
|
# Vercel Blob
|
|
1506
|
-
BLOB_READ_WRITE_TOKEN=
|
|
1506
|
+
BLOB_READ_WRITE_TOKEN=""
|
|
1507
1507
|
`;
|
|
1508
1508
|
}
|
|
1509
1509
|
if (config.integrations.rateLimiting === "arcjet") {
|
|
1510
1510
|
envExample += `
|
|
1511
1511
|
# Arcjet
|
|
1512
|
-
ARCJET_KEY=
|
|
1512
|
+
ARCJET_KEY=""
|
|
1513
1513
|
`;
|
|
1514
1514
|
}
|
|
1515
1515
|
if (config.integrations.rateLimiting === "upstash") {
|
|
1516
1516
|
envExample += `
|
|
1517
1517
|
# Upstash
|
|
1518
|
-
UPSTASH_REDIS_REST_URL=
|
|
1519
|
-
UPSTASH_REDIS_REST_TOKEN=
|
|
1518
|
+
UPSTASH_REDIS_REST_URL=""
|
|
1519
|
+
UPSTASH_REDIS_REST_TOKEN=""
|
|
1520
1520
|
`;
|
|
1521
1521
|
}
|
|
1522
1522
|
if (config.integrations.monitoring === "sentry") {
|
|
1523
1523
|
envExample += `
|
|
1524
1524
|
# Sentry
|
|
1525
|
-
SENTRY_DSN=
|
|
1526
|
-
SENTRY_AUTH_TOKEN=
|
|
1525
|
+
SENTRY_DSN=""
|
|
1526
|
+
SENTRY_AUTH_TOKEN=""
|
|
1527
1527
|
`;
|
|
1528
1528
|
}
|
|
1529
1529
|
await writeFile(path3.join(appDir, ".env.example"), envExample);
|
|
@@ -4118,23 +4118,23 @@ async function generatePayloadTsConfig(marketingDir) {
|
|
|
4118
4118
|
}
|
|
4119
4119
|
async function generatePayloadEnv(marketingDir) {
|
|
4120
4120
|
const envContent = `# Database (Supabase PostgreSQL)
|
|
4121
|
-
DATABASE_URL=postgresql://postgres:[PASSWORD]@db.[PROJECT].supabase.co:5432/postgres
|
|
4121
|
+
DATABASE_URL="postgresql://postgres:[PASSWORD]@db.[PROJECT].supabase.co:5432/postgres"
|
|
4122
4122
|
|
|
4123
4123
|
# Payload CMS
|
|
4124
|
-
PAYLOAD_SECRET= # Generate with: openssl rand -base64 32
|
|
4124
|
+
PAYLOAD_SECRET="" # Generate with: openssl rand -base64 32
|
|
4125
4125
|
|
|
4126
4126
|
# Scheduled Jobs
|
|
4127
|
-
CRON_SECRET= # Generate with: openssl rand -base64 32
|
|
4127
|
+
CRON_SECRET="" # Generate with: openssl rand -base64 32
|
|
4128
4128
|
|
|
4129
4129
|
# Draft Previews
|
|
4130
|
-
PREVIEW_SECRET= # Generate with: openssl rand -base64 32
|
|
4130
|
+
PREVIEW_SECRET="" # Generate with: openssl rand -base64 32
|
|
4131
4131
|
|
|
4132
4132
|
# S3 Storage (Supabase Storage)
|
|
4133
|
-
S3_BUCKET=media
|
|
4134
|
-
S3_ACCESS_KEY_ID=
|
|
4135
|
-
S3_SECRET_ACCESS_KEY=
|
|
4136
|
-
S3_REGION=auto
|
|
4137
|
-
S3_ENDPOINT=https://[PROJECT].supabase.co/storage/v1/s3
|
|
4133
|
+
S3_BUCKET="media"
|
|
4134
|
+
S3_ACCESS_KEY_ID=""
|
|
4135
|
+
S3_SECRET_ACCESS_KEY=""
|
|
4136
|
+
S3_REGION="auto"
|
|
4137
|
+
S3_ENDPOINT="https://[PROJECT].supabase.co/storage/v1/s3"
|
|
4138
4138
|
`;
|
|
4139
4139
|
await writeFile(path15.join(marketingDir, ".env.example"), envContent);
|
|
4140
4140
|
await writeFile(path15.join(marketingDir, ".env.local"), envContent);
|
|
@@ -7038,10 +7038,10 @@ async function writeEnvFiles(config, envValues) {
|
|
|
7038
7038
|
}
|
|
7039
7039
|
const regex = new RegExp(`^${key}=.*$`, "m");
|
|
7040
7040
|
if (regex.test(content)) {
|
|
7041
|
-
content = content.replace(regex, `${key}
|
|
7041
|
+
content = content.replace(regex, `${key}="${value}"`);
|
|
7042
7042
|
} else {
|
|
7043
7043
|
content += `
|
|
7044
|
-
${key}
|
|
7044
|
+
${key}="${value}"`;
|
|
7045
7045
|
}
|
|
7046
7046
|
}
|
|
7047
7047
|
await writeFile(webEnvPath, content);
|
|
@@ -7056,10 +7056,10 @@ ${key}=${value}`;
|
|
|
7056
7056
|
if (!payloadEnvKeys.includes(key)) continue;
|
|
7057
7057
|
const regex = new RegExp(`^${key}=.*$`, "m");
|
|
7058
7058
|
if (regex.test(content)) {
|
|
7059
|
-
content = content.replace(regex, `${key}
|
|
7059
|
+
content = content.replace(regex, `${key}="${value}"`);
|
|
7060
7060
|
} else {
|
|
7061
7061
|
content += `
|
|
7062
|
-
${key}
|
|
7062
|
+
${key}="${value}"`;
|
|
7063
7063
|
}
|
|
7064
7064
|
}
|
|
7065
7065
|
await writeFile(marketingEnvPath, content);
|