create-kubojs 0.3.1 → 0.4.1
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/cli.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{src-9z53Xnti.mjs → src-L3WKWfns.mjs} +22 -14
- package/package.json +3 -3
package/dist/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { _ as getLatestCLIVersion, g as types_exports, i as SchemaNameSchema, l as create, m as getSchemaResult, s as add, u as createBtsCli } from "./src-
|
|
2
|
+
import { _ as getLatestCLIVersion, g as types_exports, i as SchemaNameSchema, l as create, m as getSchemaResult, s as add, u as createBtsCli } from "./src-L3WKWfns.mjs";
|
|
3
3
|
import z from "zod";
|
|
4
4
|
import { format } from "node:util";
|
|
5
5
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as UserCancelledError, S as ProjectCreationError, a as TEMPLATE_COUNT, b as DatabaseSetupError, c as builder, d as createVirtual, f as docs, h as router, i as SchemaNameSchema, l as create, m as getSchemaResult, n as GeneratorError, o as VirtualFileSystem, p as generate, r as Result, s as add, t as EMBEDDED_TEMPLATES, u as createBtsCli, v as CLIError, w as ValidationError, x as DirectoryConflictError, y as CompatibilityError } from "./src-
|
|
2
|
+
import { C as UserCancelledError, S as ProjectCreationError, a as TEMPLATE_COUNT, b as DatabaseSetupError, c as builder, d as createVirtual, f as docs, h as router, i as SchemaNameSchema, l as create, m as getSchemaResult, n as GeneratorError, o as VirtualFileSystem, p as generate, r as Result, s as add, t as EMBEDDED_TEMPLATES, u as createBtsCli, v as CLIError, w as ValidationError, x as DirectoryConflictError, y as CompatibilityError } from "./src-L3WKWfns.mjs";
|
|
3
3
|
export { CLIError, CompatibilityError, DatabaseSetupError, DirectoryConflictError, EMBEDDED_TEMPLATES, GeneratorError, ProjectCreationError, Result, SchemaNameSchema, TEMPLATE_COUNT, UserCancelledError, ValidationError, VirtualFileSystem, add, builder, create, createBtsCli, createVirtual, docs, generate, getSchemaResult, router };
|
|
@@ -87,7 +87,7 @@ const DEFAULT_CONFIG_BASE = {
|
|
|
87
87
|
orm: "drizzle",
|
|
88
88
|
auth: "better-auth",
|
|
89
89
|
payments: [],
|
|
90
|
-
observability: [
|
|
90
|
+
observability: [],
|
|
91
91
|
communication: ["arara"],
|
|
92
92
|
addons: ["turborepo"],
|
|
93
93
|
examples: [],
|
|
@@ -109,6 +109,7 @@ function getDefaultConfig() {
|
|
|
109
109
|
frontend: [...DEFAULT_CONFIG_BASE.frontend],
|
|
110
110
|
payments: [...DEFAULT_CONFIG_BASE.payments],
|
|
111
111
|
observability: [...DEFAULT_CONFIG_BASE.observability],
|
|
112
|
+
communication: [...DEFAULT_CONFIG_BASE.communication],
|
|
112
113
|
addons: [...DEFAULT_CONFIG_BASE.addons],
|
|
113
114
|
examples: [...DEFAULT_CONFIG_BASE.examples],
|
|
114
115
|
testing: [...DEFAULT_CONFIG_BASE.testing]
|
|
@@ -3359,6 +3360,11 @@ const options$1 = [
|
|
|
3359
3360
|
label: "Resend",
|
|
3360
3361
|
hint: "Transactional email for developers"
|
|
3361
3362
|
},
|
|
3363
|
+
{
|
|
3364
|
+
value: "millionsend",
|
|
3365
|
+
label: "MillionSend",
|
|
3366
|
+
hint: "Resend-compatible email via Cloud or self-hosting"
|
|
3367
|
+
},
|
|
3362
3368
|
{
|
|
3363
3369
|
value: "notifique",
|
|
3364
3370
|
label: "Notifique",
|
|
@@ -3698,10 +3704,6 @@ async function getinstallChoice(install, previousValue) {
|
|
|
3698
3704
|
//#endregion
|
|
3699
3705
|
//#region src/prompts/observability.ts
|
|
3700
3706
|
const options = [{
|
|
3701
|
-
value: "getmonitor",
|
|
3702
|
-
label: "GetMonitor",
|
|
3703
|
-
hint: "Recommended — JS/TS error tracking for browser and server"
|
|
3704
|
-
}, {
|
|
3705
3707
|
value: "himetrica",
|
|
3706
3708
|
label: "Himetrica",
|
|
3707
3709
|
hint: "Product analytics, errors, and Web Vitals for web apps"
|
|
@@ -4397,7 +4399,7 @@ const TEMPLATE_PRESETS = {
|
|
|
4397
4399
|
api: "orpc",
|
|
4398
4400
|
auth: "better-auth",
|
|
4399
4401
|
payments: [],
|
|
4400
|
-
observability: [
|
|
4402
|
+
observability: [],
|
|
4401
4403
|
communication: [],
|
|
4402
4404
|
addons: ["turborepo"],
|
|
4403
4405
|
examples: ["todo"],
|
|
@@ -4414,7 +4416,7 @@ const TEMPLATE_PRESETS = {
|
|
|
4414
4416
|
api: "trpc",
|
|
4415
4417
|
auth: "better-auth",
|
|
4416
4418
|
payments: [],
|
|
4417
|
-
observability: [
|
|
4419
|
+
observability: [],
|
|
4418
4420
|
communication: [],
|
|
4419
4421
|
addons: ["turborepo"],
|
|
4420
4422
|
examples: ["todo"],
|
|
@@ -4431,7 +4433,7 @@ const TEMPLATE_PRESETS = {
|
|
|
4431
4433
|
api: "trpc",
|
|
4432
4434
|
auth: "better-auth",
|
|
4433
4435
|
payments: [],
|
|
4434
|
-
observability: [
|
|
4436
|
+
observability: [],
|
|
4435
4437
|
communication: [],
|
|
4436
4438
|
addons: ["biome", "turborepo"],
|
|
4437
4439
|
examples: ["none"],
|
|
@@ -6128,7 +6130,7 @@ function getDesktopStaticBuildNote(frontend) {
|
|
|
6128
6130
|
return `${pc$1.yellow("NOTE:")} Desktop builds package static web assets.\n ${staticBuildFrontends.get(staticBuildFrontend)} needs a static/export web build before desktop packaging will work.`;
|
|
6129
6131
|
}
|
|
6130
6132
|
async function displayPostInstallInstructions(config) {
|
|
6131
|
-
const { api, database, relativePath, packageManager, depsInstalled, orm, addons, testing, runtime, frontend, backend, dbSetup, webDeploy, serverDeploy,
|
|
6133
|
+
const { api, database, relativePath, packageManager, depsInstalled, orm, addons, testing, runtime, frontend, backend, dbSetup, webDeploy, serverDeploy, communication: rawCommunication } = config;
|
|
6132
6134
|
const communication = normalizeCommunication$2(rawCommunication ?? []);
|
|
6133
6135
|
const isConvex = backend === "convex";
|
|
6134
6136
|
const isBackendSelf = backend === "self";
|
|
@@ -6151,11 +6153,11 @@ async function displayPostInstallInstructions(config) {
|
|
|
6151
6153
|
const playwrightInstructions = testing?.includes("playwright") ? getPlaywrightInstructions(runCmd, packageManager) : "";
|
|
6152
6154
|
const clerkInstructions = config.auth === "clerk" ? getClerkInstructions(frontend || [], backend, api) : "";
|
|
6153
6155
|
const alchemyDeployInstructions = getAlchemyDeployInstructions(runCmd, webDeploy, serverDeploy, backend);
|
|
6154
|
-
const
|
|
6156
|
+
const millionSendInstructions = communication.includes("millionsend") ? getMillionSendInstructions(backend) : "";
|
|
6155
6157
|
const resendInstructions = communication.includes("resend") ? getResendInstructions() : "";
|
|
6156
6158
|
const notifiqueInstructions = communication.includes("notifique") ? getNotifiqueInstructions() : "";
|
|
6157
6159
|
const araraInstructions = communication.includes("arara") ? getAraraInstructions(backend) : "";
|
|
6158
|
-
const hasWeb = frontend?.some(
|
|
6160
|
+
const hasWeb = frontend?.some(types_exports.isDesktopWebFrontend);
|
|
6159
6161
|
const hasNative = frontend?.includes("native-bare") || frontend?.includes("native-uniwind") || frontend?.includes("native-unistyles");
|
|
6160
6162
|
const webPort = (0, types_exports.getWebPort)(frontend ?? []);
|
|
6161
6163
|
const betterAuthConvexInstructions = isConvex && config.auth === "better-auth" ? getBetterAuthConvexInstructions(hasWeb ?? false, webPort, packageManager, runCmd) : "";
|
|
@@ -6207,7 +6209,7 @@ async function displayPostInstallInstructions(config) {
|
|
|
6207
6209
|
if (playwrightInstructions) output += `\n${playwrightInstructions.trim()}\n`;
|
|
6208
6210
|
if (clerkInstructions) output += `\n${clerkInstructions.trim()}\n`;
|
|
6209
6211
|
if (betterAuthConvexInstructions) output += `\n${betterAuthConvexInstructions.trim()}\n`;
|
|
6210
|
-
if (
|
|
6212
|
+
if (millionSendInstructions) output += `\n${millionSendInstructions.trim()}\n`;
|
|
6211
6213
|
if (resendInstructions) output += `\n${resendInstructions.trim()}\n`;
|
|
6212
6214
|
if (notifiqueInstructions) output += `\n${notifiqueInstructions.trim()}\n`;
|
|
6213
6215
|
if (araraInstructions) output += `\n${araraInstructions.trim()}\n`;
|
|
@@ -6299,8 +6301,14 @@ function getPwaInstructions() {
|
|
|
6299
6301
|
function getNoOrmWarning() {
|
|
6300
6302
|
return `\n${pc$1.yellow("WARNING:")} Database selected without an ORM. Features requiring\n database access (e.g., examples, auth) need manual setup.`;
|
|
6301
6303
|
}
|
|
6302
|
-
function
|
|
6303
|
-
|
|
6304
|
+
function getMillionSendInstructions(backend) {
|
|
6305
|
+
const envPath = backend === "convex" ? "packages/backend/.env.local (and the Convex deployment environment)" : backend === "self" ? "apps/web/.env" : "apps/server/.env";
|
|
6306
|
+
return `${pc$1.bold("MillionSend communication:")}
|
|
6307
|
+
${pc$1.cyan("•")} Set MILLIONSEND_API_KEY in ${envPath} before importing the client
|
|
6308
|
+
${pc$1.cyan("•")} Import millionsend / sendEmail from @project/millionsend (server-side only)
|
|
6309
|
+
${pc$1.cyan("•")} Replace MILLIONSEND_FROM_EMAIL with a verified domain sender before sending
|
|
6310
|
+
${pc$1.cyan("•")} Cloud is the default; set MILLIONSEND_BASE_URL for self-hosting
|
|
6311
|
+
${pc$1.dim(" https://github.com/MillionSend/millionsend-node")}`;
|
|
6304
6312
|
}
|
|
6305
6313
|
function getResendInstructions() {
|
|
6306
6314
|
return `${pc$1.bold("Resend communication:")}\n${pc$1.cyan("•")} Keys are optional on first run — sendEmail throws only when called without RESEND_API_KEY\n${pc$1.cyan("•")} Set RESEND_API_KEY (and optional RESEND_FROM_EMAIL) in the server .env\n${pc$1.cyan("•")} Import sendEmail from packages/email (e.g. @project/email)\n${pc$1.cyan("•")} Replace onboarding@resend.dev with a verified domain sender for production\n${pc$1.dim(" https://resend.com/docs/send-with-nodejs")}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-kubojs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"better-auth",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@clack/core": "^1.4.1",
|
|
75
75
|
"@clack/prompts": "^1.5.1",
|
|
76
|
-
"@kubojs/template-generator": "^0.
|
|
77
|
-
"@kubojs/types": "^0.
|
|
76
|
+
"@kubojs/template-generator": "^0.4.1",
|
|
77
|
+
"@kubojs/types": "^0.4.1",
|
|
78
78
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
79
79
|
"@tanstack/router-generator": "1.167.28",
|
|
80
80
|
"@trpc/server": "^11.17.0",
|