frontmcp 0.11.1 → 0.11.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/package.json +3 -2
- package/src/args.d.ts +2 -0
- package/src/args.js +2 -0
- package/src/args.js.map +1 -1
- package/src/cli.js +2 -0
- package/src/cli.js.map +1 -1
- package/src/commands/create.d.ts +3 -0
- package/src/commands/create.js +282 -201
- package/src/commands/create.js.map +1 -1
- package/src/commands/install/questionnaire.d.ts +1 -1
- package/src/commands/install/questionnaire.js +73 -96
- package/src/commands/install/questionnaire.js.map +1 -1
- package/src/commands/template.js +81 -67
- package/src/commands/template.js.map +1 -1
- package/src/utils/prompts.d.ts +1 -0
- package/src/utils/prompts.js +17 -0
- package/src/utils/prompts.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontmcp",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "FrontMCP command line interface",
|
|
5
5
|
"author": "AgentFront <info@agentfront.dev>",
|
|
6
6
|
"homepage": "https://docs.agentfront.dev",
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"node": ">=22.0.0"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@
|
|
32
|
+
"@clack/prompts": "^0.10.0",
|
|
33
|
+
"@frontmcp/utils": "0.11.2",
|
|
33
34
|
"tslib": "^2.3.0",
|
|
34
35
|
"@rspack/core": "^1.7.6",
|
|
35
36
|
"esbuild": "^0.27.3"
|
package/src/args.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type Command = 'dev' | 'build' | 'init' | 'doctor' | 'inspector' | 'create' | 'help' | 'template' | 'version' | 'test' | 'socket' | 'start' | 'stop' | 'restart' | 'status' | 'list' | 'logs' | 'service' | 'install' | 'uninstall' | 'configure';
|
|
2
2
|
export type DeploymentAdapter = 'node' | 'vercel' | 'lambda' | 'cloudflare';
|
|
3
3
|
export type RedisSetupOption = 'docker' | 'existing' | 'none';
|
|
4
|
+
export type PackageManagerOption = 'npm' | 'yarn' | 'pnpm';
|
|
4
5
|
export interface ParsedArgs {
|
|
5
6
|
_: string[];
|
|
6
7
|
outDir?: string;
|
|
@@ -16,6 +17,7 @@ export interface ParsedArgs {
|
|
|
16
17
|
target?: DeploymentAdapter;
|
|
17
18
|
redis?: RedisSetupOption;
|
|
18
19
|
cicd?: boolean;
|
|
20
|
+
pm?: PackageManagerOption;
|
|
19
21
|
socket?: string;
|
|
20
22
|
db?: string;
|
|
21
23
|
background?: boolean;
|
package/src/args.js
CHANGED
package/src/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"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","sourcesContent":["export type Command =\n | 'dev'\n | 'build'\n | 'init'\n | 'doctor'\n | 'inspector'\n | 'create'\n | 'help'\n | 'template'\n | 'version'\n | 'test'\n | 'socket'\n // Process Manager commands\n | 'start'\n | 'stop'\n | 'restart'\n | 'status'\n | 'list'\n | 'logs'\n | 'service'\n // Package Manager commands\n | 'install'\n | 'uninstall'\n | 'configure';\n\nexport type DeploymentAdapter = 'node' | 'vercel' | 'lambda' | 'cloudflare';\nexport type RedisSetupOption = 'docker' | 'existing' | 'none';\nexport type PackageManagerOption = 'npm' | 'yarn' | 'pnpm';\n\nexport interface ParsedArgs {\n _: string[];\n outDir?: string;\n entry?: string;\n help?: boolean;\n runInBand?: boolean;\n watch?: boolean;\n verbose?: boolean;\n timeout?: number;\n coverage?: boolean;\n adapter?: DeploymentAdapter;\n // Create command flags\n yes?: boolean;\n target?: DeploymentAdapter;\n redis?: RedisSetupOption;\n cicd?: boolean;\n pm?: PackageManagerOption;\n // Socket command flags\n socket?: string;\n db?: string;\n background?: boolean;\n // Build --exec flag\n exec?: boolean;\n // Process Manager flags\n port?: number;\n force?: boolean;\n maxRestarts?: number;\n follow?: boolean;\n lines?: number;\n // Install flags\n registry?: string;\n}\n\nexport function parseArgs(argv: string[]): ParsedArgs {\n const out: ParsedArgs = { _: [] };\n for (let i = 0; i < argv.length; i++) {\n const a = argv[i];\n if (a === '--out-dir' || a === '-o') out.outDir = argv[++i];\n else if (a === '--entry' || a === '-e') out.entry = argv[++i];\n else if (a === '--adapter' || a === '-a') out.adapter = argv[++i] as DeploymentAdapter;\n else if (a === '--help' || a === '-h') out.help = true;\n else if (a === '--runInBand' || a === '-i') out.runInBand = true;\n else if (a === '--watch' || a === '-w') out.watch = true;\n else if (a === '--verbose' || a === '-v') out.verbose = true;\n else if (a === '--timeout' || a === '-t') {\n const parsed = parseInt(argv[++i], 10);\n out.timeout = Number.isNaN(parsed) ? undefined : parsed;\n } else if (a === '--coverage' || a === '-c') out.coverage = true;\n // Create command flags\n else if (a === '--yes' || a === '-y') out.yes = true;\n else if (a === '--target') out.target = argv[++i] as DeploymentAdapter;\n else if (a === '--redis') out.redis = argv[++i] as RedisSetupOption;\n else if (a === '--cicd') out.cicd = true;\n else if (a === '--no-cicd') out.cicd = false;\n else if (a === '--pm') out.pm = argv[++i] as PackageManagerOption;\n // Socket command flags\n else if (a === '--socket' || a === '-s') out.socket = argv[++i];\n else if (a === '--db') out.db = argv[++i];\n else if (a === '--background' || a === '-b') out.background = true;\n // Build --exec flag\n else if (a === '--exec') out.exec = true;\n // Process Manager flags\n else if (a === '--port' || a === '-p') {\n const parsed = parseInt(argv[++i], 10);\n out.port = Number.isNaN(parsed) ? undefined : parsed;\n } else if (a === '--force' || a === '-f') out.force = true;\n else if (a === '--max-restarts') {\n const parsed = parseInt(argv[++i], 10);\n out.maxRestarts = Number.isNaN(parsed) ? undefined : parsed;\n } else if (a === '--follow' || a === '-F') out.follow = true;\n else if (a === '--lines' || a === '-n') {\n const parsed = parseInt(argv[++i], 10);\n out.lines = Number.isNaN(parsed) ? undefined : parsed;\n }\n // Install flags\n else if (a === '--registry') out.registry = argv[++i];\n else out._.push(a);\n }\n return out;\n}\n"]}
|
package/src/cli.js
CHANGED
|
@@ -80,6 +80,7 @@ ${(0, colors_1.c)('bold', 'Create Options')}
|
|
|
80
80
|
-y, --yes Use defaults (non-interactive mode)
|
|
81
81
|
--target <target> Deployment target: node, vercel, lambda, cloudflare
|
|
82
82
|
--redis <setup> Redis setup: docker, existing, none (node target only)
|
|
83
|
+
--pm <pm> Package manager: npm, yarn, pnpm
|
|
83
84
|
--cicd Enable GitHub Actions CI/CD
|
|
84
85
|
--no-cicd Disable GitHub Actions CI/CD
|
|
85
86
|
|
|
@@ -153,6 +154,7 @@ async function main() {
|
|
|
153
154
|
target: parsed.target,
|
|
154
155
|
redis: parsed.redis,
|
|
155
156
|
cicd: parsed.cicd,
|
|
157
|
+
pm: parsed.pm,
|
|
156
158
|
});
|
|
157
159
|
break;
|
|
158
160
|
}
|
package/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * frontmcp - FrontMCP command line interface\n */\n\nimport { c } from './colors';\nimport { Command, ParsedArgs, parseArgs } from './args';\nimport { runDev } from './commands/dev';\nimport { runBuild } from './commands/build';\nimport { runInit } from './tsconfig';\nimport { runDoctor } from './commands/doctor';\nimport { runInspector } from './commands/inspector';\nimport { runCreate } from './commands/create';\nimport { runTemplate } from './commands/template';\nimport { runTest } from './commands/test';\nimport { runSocket } from './commands/socket';\n\nfunction showHelp(): void {\n console.log(`\n${c('bold', 'frontmcp')} — FrontMCP command line interface\n\n${c('bold', 'Usage')}\n frontmcp <command> [options]\n\n${c('bold', 'Development')}\n dev Start in development mode (tsx --watch <entry> + async type-check)\n build Compile entry with TypeScript (tsc)\n build --exec Build distributable executable bundle (esbuild)\n test Run E2E tests with auto-injected Jest configuration\n init Create or fix a tsconfig.json suitable for FrontMCP\n doctor Check Node/npm versions and tsconfig requirements\n inspector Launch MCP Inspector (npx @modelcontextprotocol/inspector)\n create [name] Scaffold a new FrontMCP project (interactive if name omitted)\n template <type> Scaffold a template by type (e.g., \"3rd-party-integration\")\n socket <entry> Start Unix socket daemon for local MCP server\n\n${c('bold', 'Process Manager')}\n start <name> Start a named MCP server with supervisor\n stop <name> Stop a managed server (graceful by default)\n restart <name> Restart a managed server\n status [name] Show process status (detail if name given, table if omitted)\n list List all managed processes\n logs <name> Tail log output for a managed server\n service <action> Install/uninstall systemd/launchd service\n\n${c('bold', 'Package Manager')}\n install <source> Install an MCP app from npm, local path, or git\n uninstall <name> Remove an installed MCP app\n configure <name> Re-run setup questionnaire for an installed app\n\n${c('bold', 'General Options')}\n -h, --help Show this help message\n -o, --out-dir <dir> Output directory (default: ./dist)\n -e, --entry <path> Manually specify entry file path\n\n${c('bold', 'Build Options')}\n --exec Build distributable executable bundle\n -a, --adapter <name> Deployment adapter: node, vercel, lambda, cloudflare\n\n${c('bold', 'Start Options')}\n -e, --entry <path> Entry file for the server\n -p, --port <N> Port number for the server\n -s, --socket <path> Unix socket path\n --db <path> SQLite database path\n --max-restarts <N> Maximum auto-restart attempts (default: 5)\n\n${c('bold', 'Stop Options')}\n -f, --force Force kill (SIGKILL instead of SIGTERM)\n\n${c('bold', 'Logs Options')}\n -F, --follow Follow log output (like tail -f)\n -n, --lines <N> Number of lines to show (default: 50)\n\n${c('bold', 'Install Options')}\n --registry <url> npm registry URL for private packages\n -y, --yes Silent mode (use defaults, skip questionnaire)\n -p, --port <N> Override default port\n\n${c('bold', 'Create Options')}\n -y, --yes Use defaults (non-interactive mode)\n --target <target> Deployment target: node, vercel, lambda, cloudflare\n --redis <setup> Redis setup: docker, existing, none (node target only)\n --cicd Enable GitHub Actions CI/CD\n --no-cicd Disable GitHub Actions CI/CD\n\n${c('bold', 'Socket Options')}\n -s, --socket <path> Unix socket path (default: ~/.frontmcp/sockets/{app}.sock)\n --db <path> SQLite database path for persistence\n -b, --background Run as background daemon (detached process)\n\n${c('bold', 'Test Options')}\n -i, --runInBand Run tests sequentially (recommended for E2E)\n -w, --watch Run tests in watch mode\n -v, --verbose Show verbose test output\n -t, --timeout <ms> Set test timeout (default: 60000ms)\n -c, --coverage Collect test coverage\n\n${c('bold', 'Examples')}\n frontmcp dev\n frontmcp build --out-dir build\n frontmcp build --exec\n frontmcp test --runInBand\n frontmcp init\n frontmcp doctor\n frontmcp inspector\n npx frontmcp create # Interactive mode\n npx frontmcp create my-mcp --yes # Use defaults\n npx frontmcp create my-mcp --target vercel # Vercel deployment\n npx frontmcp template marketplace-3rd-tools\n frontmcp socket ./src/main.ts --socket /tmp/my-app.sock\n frontmcp socket ./src/main.ts --socket /tmp/my-app.sock --db ~/.frontmcp/data/app.sqlite\n frontmcp start my-app --entry ./src/main.ts --port 3005\n frontmcp stop my-app\n frontmcp logs my-app --follow\n frontmcp service install my-app\n frontmcp install @company/my-mcp --registry https://npm.company.com\n frontmcp install ./my-local-app\n frontmcp install github:user/repo\n frontmcp configure my-app\n frontmcp uninstall my-app\n`);\n}\n\nasync function main(): Promise<void> {\n const argv = process.argv.slice(2);\n const parsed: ParsedArgs = parseArgs(argv);\n const cmd = parsed._[0] as Command | undefined;\n\n if (parsed.help || !cmd) {\n showHelp();\n process.exit(0);\n }\n\n try {\n switch (cmd) {\n case 'dev':\n await runDev(parsed);\n break;\n case 'build':\n parsed.outDir = parsed.outDir || 'dist';\n await runBuild(parsed);\n break;\n case 'init':\n await runInit();\n break;\n case 'doctor':\n await runDoctor();\n break;\n case 'inspector':\n await runInspector();\n break;\n case 'create': {\n const projectName = parsed._[1];\n await runCreate(projectName, {\n yes: parsed.yes,\n target: parsed.target,\n redis: parsed.redis,\n cicd: parsed.cicd,\n });\n break;\n }\n case 'template': {\n const type = parsed._[1]; // e.g. \"3rd-party-integration\"\n await runTemplate(type);\n break;\n }\n case 'test':\n await runTest(parsed);\n break;\n case 'socket':\n await runSocket(parsed);\n break;\n\n // Process Manager commands (dynamic imports)\n case 'start': {\n const { runStart } = await import('./commands/start.js');\n await runStart(parsed);\n break;\n }\n case 'stop': {\n const { runStop } = await import('./commands/stop.js');\n await runStop(parsed);\n break;\n }\n case 'restart': {\n const { runRestart } = await import('./commands/restart.js');\n await runRestart(parsed);\n break;\n }\n case 'status': {\n const { runStatus } = await import('./commands/status.js');\n await runStatus(parsed);\n break;\n }\n case 'list': {\n const { runList } = await import('./commands/list.js');\n await runList(parsed);\n break;\n }\n case 'logs': {\n const { runLogs } = await import('./commands/logs.js');\n await runLogs(parsed);\n break;\n }\n case 'service': {\n const { runService } = await import('./commands/service.js');\n await runService(parsed);\n break;\n }\n\n // Package Manager commands (dynamic imports)\n case 'install': {\n const { runInstall } = await import('./commands/install/index.js');\n await runInstall(parsed);\n break;\n }\n case 'uninstall': {\n const { runUninstall } = await import('./commands/uninstall.js');\n await runUninstall(parsed);\n break;\n }\n case 'configure': {\n const { runConfigure } = await import('./commands/configure.js');\n await runConfigure(parsed);\n break;\n }\n\n case 'help':\n showHelp();\n break;\n default:\n console.error(c('red', `Unknown command: ${cmd}`));\n showHelp();\n process.exitCode = 1;\n }\n } catch (err: unknown) {\n console.error('\\n' + c('red', err instanceof Error ? err.stack || err.message : String(err)));\n process.exit(1);\n }\n}\n\nmain();\n"]}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * frontmcp - FrontMCP command line interface\n */\n\nimport { c } from './colors';\nimport { Command, ParsedArgs, parseArgs } from './args';\nimport { runDev } from './commands/dev';\nimport { runBuild } from './commands/build';\nimport { runInit } from './tsconfig';\nimport { runDoctor } from './commands/doctor';\nimport { runInspector } from './commands/inspector';\nimport { runCreate } from './commands/create';\nimport { runTemplate } from './commands/template';\nimport { runTest } from './commands/test';\nimport { runSocket } from './commands/socket';\n\nfunction showHelp(): void {\n console.log(`\n${c('bold', 'frontmcp')} — FrontMCP command line interface\n\n${c('bold', 'Usage')}\n frontmcp <command> [options]\n\n${c('bold', 'Development')}\n dev Start in development mode (tsx --watch <entry> + async type-check)\n build Compile entry with TypeScript (tsc)\n build --exec Build distributable executable bundle (esbuild)\n test Run E2E tests with auto-injected Jest configuration\n init Create or fix a tsconfig.json suitable for FrontMCP\n doctor Check Node/npm versions and tsconfig requirements\n inspector Launch MCP Inspector (npx @modelcontextprotocol/inspector)\n create [name] Scaffold a new FrontMCP project (interactive if name omitted)\n template <type> Scaffold a template by type (e.g., \"3rd-party-integration\")\n socket <entry> Start Unix socket daemon for local MCP server\n\n${c('bold', 'Process Manager')}\n start <name> Start a named MCP server with supervisor\n stop <name> Stop a managed server (graceful by default)\n restart <name> Restart a managed server\n status [name] Show process status (detail if name given, table if omitted)\n list List all managed processes\n logs <name> Tail log output for a managed server\n service <action> Install/uninstall systemd/launchd service\n\n${c('bold', 'Package Manager')}\n install <source> Install an MCP app from npm, local path, or git\n uninstall <name> Remove an installed MCP app\n configure <name> Re-run setup questionnaire for an installed app\n\n${c('bold', 'General Options')}\n -h, --help Show this help message\n -o, --out-dir <dir> Output directory (default: ./dist)\n -e, --entry <path> Manually specify entry file path\n\n${c('bold', 'Build Options')}\n --exec Build distributable executable bundle\n -a, --adapter <name> Deployment adapter: node, vercel, lambda, cloudflare\n\n${c('bold', 'Start Options')}\n -e, --entry <path> Entry file for the server\n -p, --port <N> Port number for the server\n -s, --socket <path> Unix socket path\n --db <path> SQLite database path\n --max-restarts <N> Maximum auto-restart attempts (default: 5)\n\n${c('bold', 'Stop Options')}\n -f, --force Force kill (SIGKILL instead of SIGTERM)\n\n${c('bold', 'Logs Options')}\n -F, --follow Follow log output (like tail -f)\n -n, --lines <N> Number of lines to show (default: 50)\n\n${c('bold', 'Install Options')}\n --registry <url> npm registry URL for private packages\n -y, --yes Silent mode (use defaults, skip questionnaire)\n -p, --port <N> Override default port\n\n${c('bold', 'Create Options')}\n -y, --yes Use defaults (non-interactive mode)\n --target <target> Deployment target: node, vercel, lambda, cloudflare\n --redis <setup> Redis setup: docker, existing, none (node target only)\n --pm <pm> Package manager: npm, yarn, pnpm\n --cicd Enable GitHub Actions CI/CD\n --no-cicd Disable GitHub Actions CI/CD\n\n${c('bold', 'Socket Options')}\n -s, --socket <path> Unix socket path (default: ~/.frontmcp/sockets/{app}.sock)\n --db <path> SQLite database path for persistence\n -b, --background Run as background daemon (detached process)\n\n${c('bold', 'Test Options')}\n -i, --runInBand Run tests sequentially (recommended for E2E)\n -w, --watch Run tests in watch mode\n -v, --verbose Show verbose test output\n -t, --timeout <ms> Set test timeout (default: 60000ms)\n -c, --coverage Collect test coverage\n\n${c('bold', 'Examples')}\n frontmcp dev\n frontmcp build --out-dir build\n frontmcp build --exec\n frontmcp test --runInBand\n frontmcp init\n frontmcp doctor\n frontmcp inspector\n npx frontmcp create # Interactive mode\n npx frontmcp create my-mcp --yes # Use defaults\n npx frontmcp create my-mcp --target vercel # Vercel deployment\n npx frontmcp template marketplace-3rd-tools\n frontmcp socket ./src/main.ts --socket /tmp/my-app.sock\n frontmcp socket ./src/main.ts --socket /tmp/my-app.sock --db ~/.frontmcp/data/app.sqlite\n frontmcp start my-app --entry ./src/main.ts --port 3005\n frontmcp stop my-app\n frontmcp logs my-app --follow\n frontmcp service install my-app\n frontmcp install @company/my-mcp --registry https://npm.company.com\n frontmcp install ./my-local-app\n frontmcp install github:user/repo\n frontmcp configure my-app\n frontmcp uninstall my-app\n`);\n}\n\nasync function main(): Promise<void> {\n const argv = process.argv.slice(2);\n const parsed: ParsedArgs = parseArgs(argv);\n const cmd = parsed._[0] as Command | undefined;\n\n if (parsed.help || !cmd) {\n showHelp();\n process.exit(0);\n }\n\n try {\n switch (cmd) {\n case 'dev':\n await runDev(parsed);\n break;\n case 'build':\n parsed.outDir = parsed.outDir || 'dist';\n await runBuild(parsed);\n break;\n case 'init':\n await runInit();\n break;\n case 'doctor':\n await runDoctor();\n break;\n case 'inspector':\n await runInspector();\n break;\n case 'create': {\n const projectName = parsed._[1];\n await runCreate(projectName, {\n yes: parsed.yes,\n target: parsed.target,\n redis: parsed.redis,\n cicd: parsed.cicd,\n pm: parsed.pm,\n });\n break;\n }\n case 'template': {\n const type = parsed._[1]; // e.g. \"3rd-party-integration\"\n await runTemplate(type);\n break;\n }\n case 'test':\n await runTest(parsed);\n break;\n case 'socket':\n await runSocket(parsed);\n break;\n\n // Process Manager commands (dynamic imports)\n case 'start': {\n const { runStart } = await import('./commands/start.js');\n await runStart(parsed);\n break;\n }\n case 'stop': {\n const { runStop } = await import('./commands/stop.js');\n await runStop(parsed);\n break;\n }\n case 'restart': {\n const { runRestart } = await import('./commands/restart.js');\n await runRestart(parsed);\n break;\n }\n case 'status': {\n const { runStatus } = await import('./commands/status.js');\n await runStatus(parsed);\n break;\n }\n case 'list': {\n const { runList } = await import('./commands/list.js');\n await runList(parsed);\n break;\n }\n case 'logs': {\n const { runLogs } = await import('./commands/logs.js');\n await runLogs(parsed);\n break;\n }\n case 'service': {\n const { runService } = await import('./commands/service.js');\n await runService(parsed);\n break;\n }\n\n // Package Manager commands (dynamic imports)\n case 'install': {\n const { runInstall } = await import('./commands/install/index.js');\n await runInstall(parsed);\n break;\n }\n case 'uninstall': {\n const { runUninstall } = await import('./commands/uninstall.js');\n await runUninstall(parsed);\n break;\n }\n case 'configure': {\n const { runConfigure } = await import('./commands/configure.js');\n await runConfigure(parsed);\n break;\n }\n\n case 'help':\n showHelp();\n break;\n default:\n console.error(c('red', `Unknown command: ${cmd}`));\n showHelp();\n process.exitCode = 1;\n }\n } catch (err: unknown) {\n console.error('\\n' + c('red', err instanceof Error ? err.stack || err.message : String(err)));\n process.exit(1);\n }\n}\n\nmain();\n"]}
|
package/src/commands/create.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
export type DeploymentTarget = 'node' | 'vercel' | 'lambda' | 'cloudflare';
|
|
2
2
|
export type RedisSetup = 'docker' | 'existing' | 'none';
|
|
3
|
+
export type PackageManager = 'npm' | 'yarn' | 'pnpm';
|
|
3
4
|
export interface CreateOptions {
|
|
4
5
|
projectName: string;
|
|
5
6
|
deploymentTarget: DeploymentTarget;
|
|
6
7
|
redisSetup: RedisSetup;
|
|
7
8
|
enableGitHubActions: boolean;
|
|
9
|
+
packageManager: PackageManager;
|
|
8
10
|
}
|
|
9
11
|
export interface CreateFlags {
|
|
10
12
|
yes?: boolean;
|
|
11
13
|
target?: DeploymentTarget;
|
|
12
14
|
redis?: RedisSetup;
|
|
13
15
|
cicd?: boolean;
|
|
16
|
+
pm?: PackageManager;
|
|
14
17
|
}
|
|
15
18
|
export declare function runCreate(projectArg?: string, flags?: CreateFlags): Promise<void>;
|