connectbase-client 6.3.1 → 6.3.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/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  본 SDK 의 모든 주요 변경사항을 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/) 형식으로 기록합니다.
4
4
  버전은 [Semantic Versioning](https://semver.org/lang/ko/) 을 따릅니다.
5
5
 
6
+ ## [6.3.2] - 2026-09-08
7
+
8
+ ### Fixed — `init` 이 pnpm / yarn / bun 프로젝트에도 npm 명령을 안내하던 문제
9
+
10
+ `init` 의 마지막 안내(`npm install`, `npm run deploy`)와 package.json 에 넣는 deploy
11
+ 스크립트(`npm run build && …`)가 npm 으로 고정돼 있었습니다. pnpm 프로젝트에서 안내대로
12
+ `npm install` 을 치면 package-lock.json 이 새로 생기고 node_modules 가 pnpm 것과 갈립니다.
13
+
14
+ 이제 package.json 의 `packageManager` 필드, 없으면 잠금 파일(pnpm-lock.yaml / yarn.lock /
15
+ bun.lock / package-lock.json — 모노레포는 git 루트까지 올라가며 탐색)로 패키지 매니저를 알아내
16
+ 그 매니저의 명령을 안내하고 스크립트에도 씁니다. pnpm 은 `pnpm deploy` 가 워크스페이스
17
+ 배포 내장 명령이라 반드시 `pnpm run deploy` 로 안내합니다. `update` 의 새 버전 안내도
18
+ npm 과 pnpm 을 나란히 찍던 것을 감지된 매니저 하나로 바꿨습니다.
19
+
6
20
  ## [6.3.1] - 2026-09-08
7
21
 
8
22
  ### Fixed — `init` 의 웹 스토리지 생성 실패가 `[object Object]` 로만 찍히던 문제
package/dist/cli.js CHANGED
@@ -34,12 +34,14 @@ __export(cli_exports, {
34
34
  TunnelConnectSelector: () => TunnelConnectSelector,
35
35
  apiErrorMessage: () => apiErrorMessage,
36
36
  computeDeployDiff: () => computeDeployDiff,
37
+ detectPackageManager: () => detectPackageManager,
37
38
  getTunnelConnectCandidates: () => getTunnelConnectCandidates,
38
39
  guessMimeType: () => guessMimeType,
39
40
  isAllowedDeployExt: () => isAllowedDeployExt,
40
41
  isBinaryDeployExt: () => isBinaryDeployExt,
41
42
  makeRequest: () => makeRequest,
42
43
  normalizeRelativePath: () => normalizeRelativePath,
44
+ packageManagerCommands: () => packageManagerCommands,
43
45
  parseArgs: () => parseArgs,
44
46
  registerEndpointBinding: () => registerEndpointBinding,
45
47
  sha256Hex: () => sha256Hex,
@@ -148,7 +150,7 @@ function handleTunnelError(msg, appId, localPort) {
148
150
  }
149
151
 
150
152
  // src/cli.ts
151
- var VERSION = "6.3.1" ? "6.3.1" : getPackageVersion();
153
+ var VERSION = "6.3.2" ? "6.3.2" : getPackageVersion();
152
154
  var DEFAULT_BASE_URL = "https://api.connectbase.world";
153
155
  var colors = {
154
156
  reset: "\x1B[0m",
@@ -1583,7 +1585,8 @@ ${colors.blue}?${colors.reset} \uC120\uD0DD (\uBC88\uD638): `
1583
1585
  `);
1584
1586
  success(".connectbaserc \uC0DD\uC131 \uC644\uB8CC");
1585
1587
  addToGitignore(".connectbaserc");
1586
- const { needsInstall } = addDeployScript(deployDir);
1588
+ const pm = packageManagerCommands(detectPackageManager(cwd));
1589
+ const { needsInstall } = addDeployScript(deployDir, pm);
1587
1590
  await setupClaudeCode(secretKey, projectRoot, baseUrl);
1588
1591
  log(`
1589
1592
  ${colors.green}\uCD08\uAE30\uD654 \uC644\uB8CC!${colors.reset}
@@ -1591,10 +1594,10 @@ ${colors.green}\uCD08\uAE30\uD654 \uC644\uB8CC!${colors.reset}
1591
1594
  log(`${colors.dim}\uBC30\uD3EC\uD558\uB824\uBA74:${colors.reset}`);
1592
1595
  if (needsInstall) {
1593
1596
  log(
1594
- ` ${colors.cyan}npm install${colors.reset} ${colors.dim}# connectbase-client (CLI \uD3EC\uD568) \uC124\uCE58${colors.reset}`
1597
+ ` ${colors.cyan}${pm.install}${colors.reset} ${colors.dim}# connectbase-client (CLI \uD3EC\uD568) \uC124\uCE58${colors.reset}`
1595
1598
  );
1596
1599
  }
1597
- log(` ${colors.cyan}npm run deploy${colors.reset}`);
1600
+ log(` ${colors.cyan}${pm.run("deploy")}${colors.reset}`);
1598
1601
  log(`
1599
1602
  ${colors.dim}Claude Code\uC5D0\uC11C MCP\uAC00 \uC790\uB3D9 \uC5F0\uACB0\uB429\uB2C8\uB2E4${colors.reset}
1600
1603
  `);
@@ -1644,7 +1647,45 @@ ${entry}
1644
1647
  success(".gitignore \uC0DD\uC131 \uC644\uB8CC");
1645
1648
  }
1646
1649
  }
1647
- function addDeployScript(deployDir) {
1650
+ function detectPackageManager(startDir = process.cwd()) {
1651
+ try {
1652
+ const pkg = JSON.parse(
1653
+ fs2.readFileSync(path2.join(startDir, "package.json"), "utf-8")
1654
+ );
1655
+ const declared = typeof pkg.packageManager === "string" ? pkg.packageManager.split("@")[0] : "";
1656
+ if (declared === "npm" || declared === "pnpm" || declared === "yarn" || declared === "bun") {
1657
+ return declared;
1658
+ }
1659
+ } catch {
1660
+ }
1661
+ const lockfiles = [
1662
+ ["pnpm-lock.yaml", "pnpm"],
1663
+ ["yarn.lock", "yarn"],
1664
+ ["bun.lockb", "bun"],
1665
+ ["bun.lock", "bun"],
1666
+ ["package-lock.json", "npm"],
1667
+ ["npm-shrinkwrap.json", "npm"]
1668
+ ];
1669
+ let dir = path2.resolve(startDir);
1670
+ for (; ; ) {
1671
+ for (const [file, pm] of lockfiles) {
1672
+ if (fs2.existsSync(path2.join(dir, file))) return pm;
1673
+ }
1674
+ if (fs2.existsSync(path2.join(dir, ".git"))) break;
1675
+ const parent = path2.dirname(dir);
1676
+ if (parent === dir) break;
1677
+ dir = parent;
1678
+ }
1679
+ return "npm";
1680
+ }
1681
+ function packageManagerCommands(pm) {
1682
+ return {
1683
+ install: `${pm} install`,
1684
+ run: (script) => `${pm} run ${script}`,
1685
+ addLatest: (name) => pm === "npm" ? `npm install ${name}@latest` : `${pm} add ${name}@latest`
1686
+ };
1687
+ }
1688
+ function addDeployScript(deployDir, pm) {
1648
1689
  const pkgPath = path2.join(process.cwd(), "package.json");
1649
1690
  if (!fs2.existsSync(pkgPath)) {
1650
1691
  warn("package.json\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC5B4 deploy \uC2A4\uD06C\uB9BD\uD2B8\uB97C \uCD94\uAC00\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4");
@@ -1666,7 +1707,7 @@ function addDeployScript(deployDir) {
1666
1707
  );
1667
1708
  } else {
1668
1709
  const deployCmd = `connectbase deploy ${deployDir}`;
1669
- pkg.scripts.deploy = pkg.scripts.build ? `npm run build && ${deployCmd}` : deployCmd;
1710
+ pkg.scripts.deploy = pkg.scripts.build ? `${pm.run("build")} && ${deployCmd}` : deployCmd;
1670
1711
  success("package.json\uC5D0 deploy \uC2A4\uD06C\uB9BD\uD2B8 \uCD94\uAC00 \uC644\uB8CC");
1671
1712
  }
1672
1713
  fs2.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}
@@ -2146,10 +2187,10 @@ ${colors.cyan}ConnectBase Update${colors.reset}
2146
2187
  warn(
2147
2188
  `\uC0C8 \uBC84\uC804\uC774 \uC788\uC2B5\uB2C8\uB2E4: v${VERSION} \u2192 v${colors.green}${latestVersion}${colors.reset}`
2148
2189
  );
2190
+ const pm = packageManagerCommands(detectPackageManager(projectRoot));
2149
2191
  log(
2150
- ` ${colors.cyan}npm install connectbase-client@latest${colors.reset}`
2192
+ ` ${colors.cyan}${pm.addLatest("connectbase-client")}${colors.reset}`
2151
2193
  );
2152
- log(` ${colors.cyan}pnpm add connectbase-client@latest${colors.reset}`);
2153
2194
  log("");
2154
2195
  }
2155
2196
  } else {
@@ -3772,12 +3813,14 @@ main().catch((err) => {
3772
3813
  TunnelConnectSelector,
3773
3814
  apiErrorMessage,
3774
3815
  computeDeployDiff,
3816
+ detectPackageManager,
3775
3817
  getTunnelConnectCandidates,
3776
3818
  guessMimeType,
3777
3819
  isAllowedDeployExt,
3778
3820
  isBinaryDeployExt,
3779
3821
  makeRequest,
3780
3822
  normalizeRelativePath,
3823
+ packageManagerCommands,
3781
3824
  parseArgs,
3782
3825
  registerEndpointBinding,
3783
3826
  sha256Hex,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "connectbase-client",
3
- "version": "6.3.1",
3
+ "version": "6.3.2",
4
4
  "description": "Connect Base JavaScript/TypeScript SDK for browser and Node.js",
5
5
  "repository": {
6
6
  "type": "git",