connectbase-client 0.10.7 → 0.10.8
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 +76 -56
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -574,80 +574,100 @@ ${colors.blue}?${colors.reset} \uC120\uD0DD (\uBC88\uD638): `);
|
|
|
574
574
|
}
|
|
575
575
|
}
|
|
576
576
|
const apiKeyForSdk = publicKey || secretKey;
|
|
577
|
+
log(`
|
|
578
|
+
${colors.dim}\uC6A9\uB3C4\uB97C \uC120\uD0DD\uD558\uC138\uC694:${colors.reset}`);
|
|
579
|
+
log(` ${colors.cyan}1${colors.reset}) \uC6F9 \uBC30\uD3EC (\uC2A4\uD1A0\uB9AC\uC9C0 + \uBC30\uD3EC \uC124\uC815)`);
|
|
580
|
+
log(` ${colors.cyan}2${colors.reset}) \uD130\uB110 \uC804\uC6A9 (\uB85C\uCEEC \uC11C\uBE44\uC2A4 \uB178\uCD9C)`);
|
|
581
|
+
log(` ${colors.cyan}3${colors.reset}) SDK \uC5F0\uB3D9 (API Key\uB9CC)
|
|
582
|
+
`);
|
|
583
|
+
const useCase = await prompt(`${colors.blue}?${colors.reset} \uC120\uD0DD (1/2/3): `) || "1";
|
|
577
584
|
let storageId = "";
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
585
|
+
let deployDir = "";
|
|
586
|
+
if (useCase === "1") {
|
|
587
|
+
try {
|
|
588
|
+
info("\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC870\uD68C \uC911...");
|
|
589
|
+
const listRes = await makeRequest(
|
|
590
|
+
`${DEFAULT_BASE_URL}/v1/public/storages/webs`,
|
|
591
|
+
"GET",
|
|
592
|
+
{ "X-API-Key": apiKeyForSdk }
|
|
593
|
+
);
|
|
594
|
+
if (listRes.status === 200) {
|
|
595
|
+
const listData = listRes.data;
|
|
596
|
+
const storages = listData.storages || [];
|
|
597
|
+
if (storages.length > 0) {
|
|
598
|
+
log(`
|
|
590
599
|
${colors.dim}\uAE30\uC874 \uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0:${colors.reset}`);
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
600
|
+
storages.forEach((s, i) => {
|
|
601
|
+
log(` ${colors.cyan}${i + 1}${colors.reset}) ${s.name} (${colors.dim}${s.id}${colors.reset})`);
|
|
602
|
+
});
|
|
603
|
+
log(` ${colors.cyan}0${colors.reset}) \uC0C8\uB85C \uC0DD\uC131`);
|
|
604
|
+
const choice = await prompt(`
|
|
596
605
|
${colors.blue}?${colors.reset} \uC120\uD0DD (\uBC88\uD638): `);
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
606
|
+
const num = parseInt(choice, 10);
|
|
607
|
+
if (num > 0 && num <= storages.length) {
|
|
608
|
+
storageId = storages[num - 1].id;
|
|
609
|
+
success(`\uC120\uD0DD\uB428: ${storages[num - 1].name}`);
|
|
610
|
+
}
|
|
601
611
|
}
|
|
612
|
+
if (!storageId) {
|
|
613
|
+
const projectName = path.basename(cwd);
|
|
614
|
+
const name = await prompt(`${colors.blue}?${colors.reset} \uC2A4\uD1A0\uB9AC\uC9C0 \uC774\uB984 (${projectName}): `) || projectName;
|
|
615
|
+
info("\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC0DD\uC131 \uC911...");
|
|
616
|
+
const createRes = await makeRequest(
|
|
617
|
+
`${DEFAULT_BASE_URL}/v1/public/storages/webs`,
|
|
618
|
+
"POST",
|
|
619
|
+
{ "X-API-Key": apiKeyForSdk },
|
|
620
|
+
JSON.stringify({ name })
|
|
621
|
+
);
|
|
622
|
+
if (createRes.status !== 200) {
|
|
623
|
+
const data = createRes.data;
|
|
624
|
+
error(`\uC0DD\uC131 \uC2E4\uD328: ${data?.error || data?.message || `HTTP ${createRes.status}`}`);
|
|
625
|
+
process.exit(1);
|
|
626
|
+
}
|
|
627
|
+
const createData = createRes.data;
|
|
628
|
+
storageId = createData.storage_web_id;
|
|
629
|
+
success(`\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC0DD\uC131 \uC644\uB8CC: ${createData.name}`);
|
|
630
|
+
}
|
|
631
|
+
} else {
|
|
632
|
+
throw new Error(`HTTP ${listRes.status}`);
|
|
602
633
|
}
|
|
634
|
+
} catch (err) {
|
|
635
|
+
error(`\uB124\uD2B8\uC6CC\uD06C \uC624\uB958: ${err instanceof Error ? err.message : err}`);
|
|
636
|
+
log(`${colors.dim}\uC218\uB3D9\uC73C\uB85C Storage ID\uB97C \uC785\uB825\uD558\uC138\uC694${colors.reset}`);
|
|
637
|
+
storageId = await prompt(`${colors.blue}?${colors.reset} Storage ID: `);
|
|
603
638
|
if (!storageId) {
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
info("\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC0DD\uC131 \uC911...");
|
|
607
|
-
const createRes = await makeRequest(
|
|
608
|
-
`${DEFAULT_BASE_URL}/v1/public/storages/webs`,
|
|
609
|
-
"POST",
|
|
610
|
-
{ "X-API-Key": apiKeyForSdk },
|
|
611
|
-
JSON.stringify({ name })
|
|
612
|
-
);
|
|
613
|
-
if (createRes.status !== 200) {
|
|
614
|
-
const data = createRes.data;
|
|
615
|
-
error(`\uC0DD\uC131 \uC2E4\uD328: ${data?.error || data?.message || `HTTP ${createRes.status}`}`);
|
|
616
|
-
process.exit(1);
|
|
617
|
-
}
|
|
618
|
-
const createData = createRes.data;
|
|
619
|
-
storageId = createData.storage_web_id;
|
|
620
|
-
success(`\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC0DD\uC131 \uC644\uB8CC: ${createData.name}`);
|
|
639
|
+
error("Storage ID\uB294 \uD544\uC218\uC785\uB2C8\uB2E4");
|
|
640
|
+
process.exit(1);
|
|
621
641
|
}
|
|
622
|
-
} else {
|
|
623
|
-
throw new Error(`HTTP ${listRes.status}`);
|
|
624
|
-
}
|
|
625
|
-
} catch (err) {
|
|
626
|
-
error(`\uB124\uD2B8\uC6CC\uD06C \uC624\uB958: ${err instanceof Error ? err.message : err}`);
|
|
627
|
-
log(`${colors.dim}\uC218\uB3D9\uC73C\uB85C Storage ID\uB97C \uC785\uB825\uD558\uC138\uC694${colors.reset}`);
|
|
628
|
-
storageId = await prompt(`${colors.blue}?${colors.reset} Storage ID: `);
|
|
629
|
-
if (!storageId) {
|
|
630
|
-
error("Storage ID\uB294 \uD544\uC218\uC785\uB2C8\uB2E4");
|
|
631
|
-
process.exit(1);
|
|
632
642
|
}
|
|
643
|
+
const defaultDir = detectBuildDir();
|
|
644
|
+
deployDir = await prompt(`${colors.blue}?${colors.reset} \uBC30\uD3EC \uB514\uB809\uD1A0\uB9AC (${defaultDir}): `) || defaultDir;
|
|
633
645
|
}
|
|
634
|
-
const defaultDir = detectBuildDir();
|
|
635
|
-
const deployDir = await prompt(`${colors.blue}?${colors.reset} \uBC30\uD3EC \uB514\uB809\uD1A0\uB9AC (${defaultDir}): `) || defaultDir;
|
|
636
646
|
const config = {
|
|
637
|
-
apiKey: publicKey || ""
|
|
638
|
-
storageId,
|
|
639
|
-
deployDir
|
|
647
|
+
apiKey: useCase === "2" ? secretKey : publicKey || ""
|
|
640
648
|
};
|
|
649
|
+
if (storageId) config.storageId = storageId;
|
|
650
|
+
if (deployDir) config.deployDir = deployDir;
|
|
641
651
|
fs.writeFileSync(rcPath, JSON.stringify(config, null, 2) + "\n");
|
|
642
652
|
success(".connectbaserc \uC0DD\uC131 \uC644\uB8CC");
|
|
643
653
|
addToGitignore(".connectbaserc");
|
|
644
|
-
|
|
654
|
+
if (useCase === "1" && deployDir) {
|
|
655
|
+
addDeployScript(deployDir);
|
|
656
|
+
}
|
|
645
657
|
await setupClaudeCode(apiKeyForSdk, secretKey, projectRoot);
|
|
646
658
|
log(`
|
|
647
659
|
${colors.green}\uCD08\uAE30\uD654 \uC644\uB8CC!${colors.reset}
|
|
648
660
|
`);
|
|
649
|
-
|
|
650
|
-
|
|
661
|
+
if (useCase === "1") {
|
|
662
|
+
log(`${colors.dim}\uBC30\uD3EC\uD558\uB824\uBA74:${colors.reset}`);
|
|
663
|
+
log(` ${colors.cyan}npm run deploy${colors.reset}`);
|
|
664
|
+
} else if (useCase === "2") {
|
|
665
|
+
log(`${colors.dim}\uD130\uB110 \uC2DC\uC791\uD558\uB824\uBA74:${colors.reset}`);
|
|
666
|
+
log(` ${colors.cyan}npx connectbase tunnel <\uD3EC\uD2B8>${colors.reset}`);
|
|
667
|
+
} else {
|
|
668
|
+
log(`${colors.dim}SDK \uC0AC\uC6A9\uBC95:${colors.reset}`);
|
|
669
|
+
log(` ${colors.cyan}import ConnectBase from 'connectbase-client'${colors.reset}`);
|
|
670
|
+
}
|
|
651
671
|
log(`
|
|
652
672
|
${colors.dim}Claude Code\uC5D0\uC11C MCP\uAC00 \uC790\uB3D9 \uC5F0\uACB0\uB429\uB2C8\uB2E4${colors.reset}
|
|
653
673
|
`);
|