connectbase-client 0.10.8 → 0.10.10

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.
Files changed (2) hide show
  1. package/dist/cli.js +65 -84
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -122,6 +122,7 @@ function loadConfig() {
122
122
  try {
123
123
  const rcContent = JSON.parse(fs.readFileSync(rcPath, "utf-8"));
124
124
  if (rcContent.apiKey) config.apiKey = rcContent.apiKey;
125
+ if (rcContent.secretKey) config.secretKey = rcContent.secretKey;
125
126
  if (rcContent.storageId) config.storageId = rcContent.storageId;
126
127
  if (rcContent.baseUrl) config.baseUrl = rcContent.baseUrl;
127
128
  if (rcContent.deployDir) config.deployDir = rcContent.deployDir;
@@ -574,100 +575,83 @@ ${colors.blue}?${colors.reset} \uC120\uD0DD (\uBC88\uD638): `);
574
575
  }
575
576
  }
576
577
  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";
584
578
  let storageId = "";
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(`
579
+ try {
580
+ info("\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC870\uD68C \uC911...");
581
+ const listRes = await makeRequest(
582
+ `${DEFAULT_BASE_URL}/v1/public/storages/webs`,
583
+ "GET",
584
+ { "X-API-Key": apiKeyForSdk }
585
+ );
586
+ if (listRes.status === 200) {
587
+ const listData = listRes.data;
588
+ const storages = listData.storages || [];
589
+ if (storages.length > 0) {
590
+ log(`
599
591
  ${colors.dim}\uAE30\uC874 \uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0:${colors.reset}`);
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(`
592
+ storages.forEach((s, i) => {
593
+ log(` ${colors.cyan}${i + 1}${colors.reset}) ${s.name} (${colors.dim}${s.id}${colors.reset})`);
594
+ });
595
+ log(` ${colors.cyan}0${colors.reset}) \uC0C8\uB85C \uC0DD\uC131`);
596
+ const choice = await prompt(`
605
597
  ${colors.blue}?${colors.reset} \uC120\uD0DD (\uBC88\uD638): `);
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
- }
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}`);
598
+ const num = parseInt(choice, 10);
599
+ if (num > 0 && num <= storages.length) {
600
+ storageId = storages[num - 1].id;
601
+ success(`\uC120\uD0DD\uB428: ${storages[num - 1].name}`);
630
602
  }
631
- } else {
632
- throw new Error(`HTTP ${listRes.status}`);
633
603
  }
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: `);
638
604
  if (!storageId) {
639
- error("Storage ID\uB294 \uD544\uC218\uC785\uB2C8\uB2E4");
640
- process.exit(1);
605
+ const projectName = path.basename(cwd);
606
+ const name = await prompt(`${colors.blue}?${colors.reset} \uC2A4\uD1A0\uB9AC\uC9C0 \uC774\uB984 (${projectName}): `) || projectName;
607
+ info("\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC0DD\uC131 \uC911...");
608
+ const createRes = await makeRequest(
609
+ `${DEFAULT_BASE_URL}/v1/public/storages/webs`,
610
+ "POST",
611
+ { "X-API-Key": apiKeyForSdk },
612
+ JSON.stringify({ name })
613
+ );
614
+ if (createRes.status !== 200) {
615
+ const data = createRes.data;
616
+ error(`\uC0DD\uC131 \uC2E4\uD328: ${data?.error || data?.message || `HTTP ${createRes.status}`}`);
617
+ process.exit(1);
618
+ }
619
+ const createData = createRes.data;
620
+ storageId = createData.storage_web_id;
621
+ success(`\uC6F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC0DD\uC131 \uC644\uB8CC: ${createData.name}`);
641
622
  }
623
+ } else {
624
+ throw new Error(`HTTP ${listRes.status}`);
625
+ }
626
+ } catch (err) {
627
+ error(`\uB124\uD2B8\uC6CC\uD06C \uC624\uB958: ${err instanceof Error ? err.message : err}`);
628
+ log(`${colors.dim}\uC218\uB3D9\uC73C\uB85C Storage ID\uB97C \uC785\uB825\uD558\uC138\uC694${colors.reset}`);
629
+ storageId = await prompt(`${colors.blue}?${colors.reset} Storage ID: `);
630
+ if (!storageId) {
631
+ error("Storage ID\uB294 \uD544\uC218\uC785\uB2C8\uB2E4");
632
+ process.exit(1);
642
633
  }
643
- const defaultDir = detectBuildDir();
644
- deployDir = await prompt(`${colors.blue}?${colors.reset} \uBC30\uD3EC \uB514\uB809\uD1A0\uB9AC (${defaultDir}): `) || defaultDir;
645
634
  }
635
+ const defaultDir = detectBuildDir();
636
+ const deployDir = await prompt(`${colors.blue}?${colors.reset} \uBC30\uD3EC \uB514\uB809\uD1A0\uB9AC (${defaultDir}): `) || defaultDir;
646
637
  const config = {
647
- apiKey: useCase === "2" ? secretKey : publicKey || ""
638
+ apiKey: publicKey || "",
639
+ storageId,
640
+ deployDir
648
641
  };
649
- if (storageId) config.storageId = storageId;
650
- if (deployDir) config.deployDir = deployDir;
642
+ if (secretKey) {
643
+ config.secretKey = secretKey;
644
+ }
651
645
  fs.writeFileSync(rcPath, JSON.stringify(config, null, 2) + "\n");
652
646
  success(".connectbaserc \uC0DD\uC131 \uC644\uB8CC");
653
647
  addToGitignore(".connectbaserc");
654
- if (useCase === "1" && deployDir) {
655
- addDeployScript(deployDir);
656
- }
648
+ addDeployScript(deployDir);
657
649
  await setupClaudeCode(apiKeyForSdk, secretKey, projectRoot);
658
650
  log(`
659
651
  ${colors.green}\uCD08\uAE30\uD654 \uC644\uB8CC!${colors.reset}
660
652
  `);
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
- }
653
+ log(`${colors.dim}\uBC30\uD3EC\uD558\uB824\uBA74:${colors.reset}`);
654
+ log(` ${colors.cyan}npm run deploy${colors.reset}`);
671
655
  log(`
672
656
  ${colors.dim}Claude Code\uC5D0\uC11C MCP\uAC00 \uC790\uB3D9 \uC5F0\uACB0\uB429\uB2C8\uB2E4${colors.reset}
673
657
  `);
@@ -1131,16 +1115,13 @@ ${colors.blue}?${colors.reset} \uC571 \uC120\uD0DD (\uBC88\uD638): `);
1131
1115
  return createData.app_id;
1132
1116
  }
1133
1117
  async function startTunnel(port, config, tunnelOpts) {
1134
- if (!config.apiKey) {
1135
- error("Secret Key\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. -k \uC635\uC158 \uB610\uB294 CONNECTBASE_API_KEY \uD658\uACBD\uBCC0\uC218\uB97C \uC124\uC815\uD558\uC138\uC694");
1136
- info("Secret Key\uB294 \uCF58\uC194 > \uD504\uB85C\uD544 > \uC2DC\uD06C\uB9BF \uD0A4 \uD0ED\uC5D0\uC11C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
1137
- process.exit(1);
1138
- }
1139
- if (!config.apiKey.startsWith("cb_sk_")) {
1140
- error("\uD130\uB110\uC740 \uC720\uC800 Secret Key(cb_sk_)\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. Public Key(cb_pk_)\uB294 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
1141
- info("Secret Key\uB294 \uCF58\uC194 > \uD504\uB85C\uD544 > \uC2DC\uD06C\uB9BF \uD0A4 \uD0ED\uC5D0\uC11C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
1118
+ const tunnelKey = config.secretKey || (config.apiKey?.startsWith("cb_sk_") ? config.apiKey : "");
1119
+ if (!tunnelKey) {
1120
+ error('Secret Key\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. "npx connectbase init"\uC73C\uB85C \uC124\uC815\uD558\uAC70\uB098 -k \uC635\uC158\uC744 \uC0AC\uC6A9\uD558\uC138\uC694');
1121
+ info("init \uC2DC \uBE0C\uB77C\uC6B0\uC800 \uB85C\uADF8\uC778\uC73C\uB85C Secret Key\uAC00 \uC790\uB3D9 \uBC1C\uAE09\uB429\uB2C8\uB2E4");
1142
1122
  process.exit(1);
1143
1123
  }
1124
+ config.apiKey = tunnelKey;
1144
1125
  const appId = await resolveAppForTunnel(config.apiKey, config.baseUrl, tunnelOpts?.appId);
1145
1126
  const tunnelServerUrl = getTunnelServerUrl(config.baseUrl);
1146
1127
  const parsedUrl = new URL(tunnelServerUrl);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "connectbase-client",
3
- "version": "0.10.8",
3
+ "version": "0.10.10",
4
4
  "description": "Connect Base JavaScript/TypeScript SDK for browser and Node.js",
5
5
  "repository": {
6
6
  "type": "git",