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 +14 -0
- package/dist/cli.js +51 -8
- package/package.json +1 -1
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.
|
|
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
|
|
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}
|
|
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}
|
|
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
|
|
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 ?
|
|
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}
|
|
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,
|