connectbase-client 0.6.2 → 0.6.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/cli.js +57 -34
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -444,43 +444,48 @@ function addDeployScript(deployDir) {
|
|
|
444
444
|
warn("package.json \uC218\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4");
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
|
-
async function
|
|
447
|
+
async function downloadDocs(apiKey, templates) {
|
|
448
448
|
const claudeDir = path.join(process.cwd(), ".claude");
|
|
449
|
+
const docsDir = path.join(claudeDir, "docs");
|
|
449
450
|
const claudeMdPath = path.join(claudeDir, "CLAUDE.md");
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
fs.mkdirSync(claudeDir, { recursive: true });
|
|
451
|
+
if (!fs.existsSync(docsDir)) {
|
|
452
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
453
453
|
}
|
|
454
|
-
|
|
454
|
+
if (!templates) {
|
|
455
|
+
log(`
|
|
455
456
|
${colors.dim}SDK \uAC00\uC774\uB4DC \uD15C\uD50C\uB9BF:${colors.reset}`);
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
457
|
+
log(` ${colors.cyan}1${colors.reset}) \uAE30\uBCF8 SDK (Database, Auth, Realtime, Storage, Payment, Push, Ads)`);
|
|
458
|
+
log(` ${colors.cyan}2${colors.reset}) \uAE30\uBCF8 SDK + \uAC8C\uC784 \uC11C\uBC84 (\uBA40\uD2F0\uD50C\uB808\uC774\uC5B4)`);
|
|
459
|
+
log(` ${colors.cyan}3${colors.reset}) \uAE30\uBCF8 SDK + \uBE44\uB514\uC624 \uC11C\uBC84 (\uB3D9\uC601\uC0C1 \uD50C\uB7AB\uD3FC)`);
|
|
460
|
+
log(` ${colors.cyan}4${colors.reset}) \uAE30\uBCF8 SDK + \uAC8C\uC784 \uC11C\uBC84 + \uBE44\uB514\uC624 \uC11C\uBC84`);
|
|
461
|
+
const templateChoice = await prompt(`
|
|
461
462
|
${colors.blue}?${colors.reset} \uC120\uD0DD (1): `) || "1";
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
463
|
+
templates = ["fullstack"];
|
|
464
|
+
if (templateChoice === "2" || templateChoice === "4") templates.push("game-server");
|
|
465
|
+
if (templateChoice === "3" || templateChoice === "4") templates.push("video-server");
|
|
466
|
+
}
|
|
465
467
|
info("SDK \uAC1C\uBC1C \uAC00\uC774\uB4DC \uB2E4\uC6B4\uB85C\uB4DC \uC911...");
|
|
466
468
|
try {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
if (claudeMdContent) claudeMdContent += "\n\n---\n\n";
|
|
476
|
-
claudeMdContent += claudeMdRes.data;
|
|
477
|
-
} else {
|
|
478
|
-
throw new Error(`HTTP ${claudeMdRes.status} for template ${tmpl}`);
|
|
479
|
-
}
|
|
469
|
+
const templateParam = templates.join(",");
|
|
470
|
+
const res = await makeRequest(
|
|
471
|
+
`${DEFAULT_BASE_URL}/v1/storages/webs/claude-md?api_key=${encodeURIComponent(apiKey)}&template=${encodeURIComponent(templateParam)}&format=sections`,
|
|
472
|
+
"GET",
|
|
473
|
+
{}
|
|
474
|
+
);
|
|
475
|
+
if (res.status !== 200) {
|
|
476
|
+
throw new Error(`HTTP ${res.status}`);
|
|
480
477
|
}
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
478
|
+
const data = res.data;
|
|
479
|
+
let savedCount = 0;
|
|
480
|
+
for (const section of data.sections) {
|
|
481
|
+
const filePath = path.join(docsDir, section.filename);
|
|
482
|
+
fs.writeFileSync(filePath, section.content);
|
|
483
|
+
savedCount++;
|
|
484
|
+
}
|
|
485
|
+
fs.writeFileSync(claudeMdPath, data.index);
|
|
486
|
+
success(`.claude/CLAUDE.md \uC778\uB371\uC2A4 \uC0DD\uC131 \uC644\uB8CC`);
|
|
487
|
+
success(`.claude/docs/ \uC5D0 ${savedCount}\uAC1C \uC139\uC158 \uD30C\uC77C \uC800\uC7A5 \uC644\uB8CC`);
|
|
488
|
+
log(`${colors.dim}AI\uAC00 \uD544\uC694\uD55C \uC139\uC158\uB9CC \uC77D\uC5B4 \uD1A0\uD070\uC744 \uC808\uC57D\uD569\uB2C8\uB2E4${colors.reset}`);
|
|
484
489
|
} catch {
|
|
485
490
|
warn("SDK \uAC00\uC774\uB4DC \uB2E4\uC6B4\uB85C\uB4DC \uC2E4\uD328, \uAE30\uBCF8 CLAUDE.md\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4");
|
|
486
491
|
fs.writeFileSync(claudeMdPath, `# Connect Base SDK
|
|
@@ -491,6 +496,10 @@ ${colors.blue}?${colors.reset} \uC120\uD0DD (1): `) || "1";
|
|
|
491
496
|
`);
|
|
492
497
|
success(".claude/CLAUDE.md \uC0DD\uC131 \uC644\uB8CC (\uAE30\uBCF8)");
|
|
493
498
|
}
|
|
499
|
+
}
|
|
500
|
+
async function setupClaudeCode(apiKey) {
|
|
501
|
+
const mcpConfigPath = path.join(process.cwd(), ".mcp.json");
|
|
502
|
+
await downloadDocs(apiKey);
|
|
494
503
|
const mcpConfig = {
|
|
495
504
|
mcpServers: {
|
|
496
505
|
connectbase: {
|
|
@@ -858,6 +867,7 @@ ${colors.yellow}\uC0AC\uC6A9\uBC95:${colors.reset}
|
|
|
858
867
|
|
|
859
868
|
${colors.yellow}\uBA85\uB839\uC5B4:${colors.reset}
|
|
860
869
|
init \uD504\uB85C\uC81D\uD2B8 \uCD08\uAE30\uD654 (\uC124\uC815 \uD30C\uC77C \uC0DD\uC131)
|
|
870
|
+
docs SDK \uBB38\uC11C \uB2E4\uC6B4\uB85C\uB4DC/\uC5C5\uB370\uC774\uD2B8
|
|
861
871
|
deploy <directory> \uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0\uC5D0 \uD30C\uC77C \uBC30\uD3EC
|
|
862
872
|
tunnel <port> \uB85C\uCEEC \uC11C\uBE44\uC2A4\uB97C \uC778\uD130\uB137\uC5D0 \uB178\uCD9C
|
|
863
873
|
|
|
@@ -874,14 +884,17 @@ ${colors.yellow}\uBE60\uB978 \uC2DC\uC791:${colors.reset}
|
|
|
874
884
|
${colors.dim}# 1. \uCD08\uAE30\uD654 (\uCD5C\uCD08 1\uD68C)${colors.reset}
|
|
875
885
|
npx connectbase-client init
|
|
876
886
|
|
|
877
|
-
${colors.dim}# 2. \
|
|
887
|
+
${colors.dim}# 2. SDK \uBB38\uC11C \uC5C5\uB370\uC774\uD2B8${colors.reset}
|
|
888
|
+
npx connectbase docs
|
|
889
|
+
|
|
890
|
+
${colors.dim}# 3. \uBC30\uD3EC${colors.reset}
|
|
878
891
|
npm run deploy
|
|
879
892
|
|
|
880
|
-
${colors.dim}#
|
|
881
|
-
npx connectbase
|
|
893
|
+
${colors.dim}# 4. \uD130\uB110 (\uAE30\uBCF8)${colors.reset}
|
|
894
|
+
npx connectbase tunnel 3000
|
|
882
895
|
|
|
883
|
-
${colors.dim}#
|
|
884
|
-
npx connectbase
|
|
896
|
+
${colors.dim}# 5. \uD130\uB110 (GPU \uC11C\uBC84 \uB4F1 \uAE34 \uC751\uB2F5 \uC2DC)${colors.reset}
|
|
897
|
+
npx connectbase tunnel 7860 --timeout 300 --max-body 50
|
|
885
898
|
|
|
886
899
|
${colors.yellow}\uD658\uACBD\uBCC0\uC218:${colors.reset}
|
|
887
900
|
CONNECTBASE_API_KEY API Key
|
|
@@ -947,6 +960,16 @@ async function main() {
|
|
|
947
960
|
};
|
|
948
961
|
if (parsed.command === "init") {
|
|
949
962
|
await init();
|
|
963
|
+
} else if (parsed.command === "docs") {
|
|
964
|
+
let docsApiKey = config.apiKey;
|
|
965
|
+
if (!docsApiKey) {
|
|
966
|
+
docsApiKey = await prompt(`${colors.blue}?${colors.reset} API Key: `);
|
|
967
|
+
if (!docsApiKey) {
|
|
968
|
+
error("API Key\uB294 \uD544\uC218\uC785\uB2C8\uB2E4");
|
|
969
|
+
process.exit(1);
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
await downloadDocs(docsApiKey);
|
|
950
973
|
} else if (parsed.command === "deploy") {
|
|
951
974
|
const directory = parsed.args[0] || fileConfig.deployDir || ".";
|
|
952
975
|
if (!config.apiKey) {
|