@simplysm/sd-cli 14.1.10 → 14.1.11
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-upgrade.d.ts","sourceRoot":"","sources":["../../../src/commands/publish/version-upgrade.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;
|
|
1
|
+
{"version":3,"file":"version-upgrade.d.ts","sourceRoot":"","sources":["../../../src/commands/publish/version-upgrade.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AA0CD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+EtD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjF,WAAW,EAAE,CAAC,EAAE,GACf,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAqDhB"}
|
|
@@ -2,6 +2,46 @@ import path from "path";
|
|
|
2
2
|
import semver from "semver";
|
|
3
3
|
import { fsx } from "@simplysm/core-node";
|
|
4
4
|
import { json } from "@simplysm/core-common";
|
|
5
|
+
/**
|
|
6
|
+
* bun.lock의 workspaces 섹션에 스냅샷된 각 워크스페이스 패키지 version을 새 버전으로 맞춘다.
|
|
7
|
+
*
|
|
8
|
+
* bun publish/pack은 `workspace:*` 의존성을 치환할 때 대상 패키지의 package.json이 아니라
|
|
9
|
+
* bun.lock의 `workspaces.<dir>.version`을 읽는다 (bun 1.2.8+, oven-sh/bun#20477). 또한 version만
|
|
10
|
+
* bump하면 `bun install`이 lock의 워크스페이스 version을 갱신하지 않으므로 (oven-sh/bun#18906),
|
|
11
|
+
* package.json만 올리면 lock이 뒤처져 이전 버전으로 치환된다. 이를 막기 위해 lock을 직접 맞춘다.
|
|
12
|
+
*
|
|
13
|
+
* `"version"` 키는 workspaces 섹션에만 나타나므로(packages 섹션의 의존성은 `"name@ver"` 배열 형태),
|
|
14
|
+
* workspaces 객체 범위 안의 `"version"` 값만 새 버전으로 치환한다. 값이 아닌 위치 기준이라
|
|
15
|
+
* lock이 몇 버전 뒤처져 있든 정확히 맞춰진다.
|
|
16
|
+
*/
|
|
17
|
+
function syncBunLockWorkspaceVersions(content, newVersion) {
|
|
18
|
+
const wsKeyIdx = content.indexOf('"workspaces":');
|
|
19
|
+
if (wsKeyIdx === -1)
|
|
20
|
+
return content;
|
|
21
|
+
const braceStart = content.indexOf("{", wsKeyIdx);
|
|
22
|
+
if (braceStart === -1)
|
|
23
|
+
return content;
|
|
24
|
+
// balanced brace로 workspaces 객체의 끝을 찾는다 (값 문자열에 중괄호가 없어 안전).
|
|
25
|
+
let depth = 0;
|
|
26
|
+
let braceEnd = -1;
|
|
27
|
+
for (let i = braceStart; i < content.length; i++) {
|
|
28
|
+
const ch = content[i];
|
|
29
|
+
if (ch === "{")
|
|
30
|
+
depth++;
|
|
31
|
+
else if (ch === "}") {
|
|
32
|
+
depth--;
|
|
33
|
+
if (depth === 0) {
|
|
34
|
+
braceEnd = i;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (braceEnd === -1)
|
|
40
|
+
return content;
|
|
41
|
+
const section = content.slice(braceStart, braceEnd + 1);
|
|
42
|
+
const newSection = section.replace(/("version"\s*:\s*)"[^"]*"/g, `$1"${newVersion}"`);
|
|
43
|
+
return content.slice(0, braceStart) + newSection + content.slice(braceEnd + 1);
|
|
44
|
+
}
|
|
5
45
|
/**
|
|
6
46
|
* 프로젝트 및 패키지 버전 업그레이드
|
|
7
47
|
* @param dryRun true이면 파일을 수정하지 않고 새 버전만 계산
|
|
@@ -32,6 +72,16 @@ export async function upgradeVersion(cwd, allPkgPaths, dryRun) {
|
|
|
32
72
|
return pkgJsonPath;
|
|
33
73
|
}));
|
|
34
74
|
changedFiles.push(...pkgChangedFiles);
|
|
75
|
+
// bun.lock의 워크스페이스 version 동기화 (bun publish가 lock을 읽어 workspace:* 를 치환하므로)
|
|
76
|
+
const bunLockPath = path.resolve(cwd, "bun.lock");
|
|
77
|
+
if (await fsx.exists(bunLockPath)) {
|
|
78
|
+
const lockContent = await fsx.read(bunLockPath);
|
|
79
|
+
const newLockContent = syncBunLockWorkspaceVersions(lockContent, newVersion);
|
|
80
|
+
if (newLockContent !== lockContent) {
|
|
81
|
+
await fsx.write(bunLockPath, newLockContent);
|
|
82
|
+
changedFiles.push(bunLockPath);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
35
85
|
// 템플릿 파일의 @simplysm 패키지 버전 동기화
|
|
36
86
|
const templateFiles = await fsx.glob(path.resolve(cwd, "packages/sd-cli/templates/**/*.hbs"));
|
|
37
87
|
const versionRegex = /("@simplysm\/[^"]+"\s*:\s*)"~[^"]+"/g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-upgrade.js","sourceRoot":"","sources":["../../../src/commands/publish/version-upgrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"version-upgrade.js","sourceRoot":"","sources":["../../../src/commands/publish/version-upgrade.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/sd-cli",
|
|
3
|
-
"version": "14.1.
|
|
3
|
+
"version": "14.1.11",
|
|
4
4
|
"description": "Simplysm package - CLI tool",
|
|
5
5
|
"author": "simplysm",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"@angular/compiler-cli": "^22.0.4",
|
|
27
27
|
"@fastify/http-proxy": "^11.5.0",
|
|
28
28
|
"@inquirer/prompts": "^8.5.2",
|
|
29
|
-
"@simplysm/core-common": "14.1.
|
|
30
|
-
"@simplysm/core-node": "14.1.
|
|
31
|
-
"@simplysm/storage": "14.1.
|
|
29
|
+
"@simplysm/core-common": "14.1.11",
|
|
30
|
+
"@simplysm/core-node": "14.1.11",
|
|
31
|
+
"@simplysm/storage": "14.1.11",
|
|
32
32
|
"acorn": "^8.17.0",
|
|
33
33
|
"acorn-walk": "^8.3.5",
|
|
34
34
|
"browserslist-to-esbuild": "^2.1.1",
|
|
@@ -15,6 +15,46 @@ export interface PackageJson {
|
|
|
15
15
|
optionalDependencies?: Record<string, string>;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* bun.lock의 workspaces 섹션에 스냅샷된 각 워크스페이스 패키지 version을 새 버전으로 맞춘다.
|
|
20
|
+
*
|
|
21
|
+
* bun publish/pack은 `workspace:*` 의존성을 치환할 때 대상 패키지의 package.json이 아니라
|
|
22
|
+
* bun.lock의 `workspaces.<dir>.version`을 읽는다 (bun 1.2.8+, oven-sh/bun#20477). 또한 version만
|
|
23
|
+
* bump하면 `bun install`이 lock의 워크스페이스 version을 갱신하지 않으므로 (oven-sh/bun#18906),
|
|
24
|
+
* package.json만 올리면 lock이 뒤처져 이전 버전으로 치환된다. 이를 막기 위해 lock을 직접 맞춘다.
|
|
25
|
+
*
|
|
26
|
+
* `"version"` 키는 workspaces 섹션에만 나타나므로(packages 섹션의 의존성은 `"name@ver"` 배열 형태),
|
|
27
|
+
* workspaces 객체 범위 안의 `"version"` 값만 새 버전으로 치환한다. 값이 아닌 위치 기준이라
|
|
28
|
+
* lock이 몇 버전 뒤처져 있든 정확히 맞춰진다.
|
|
29
|
+
*/
|
|
30
|
+
function syncBunLockWorkspaceVersions(content: string, newVersion: string): string {
|
|
31
|
+
const wsKeyIdx = content.indexOf('"workspaces":');
|
|
32
|
+
if (wsKeyIdx === -1) return content;
|
|
33
|
+
|
|
34
|
+
const braceStart = content.indexOf("{", wsKeyIdx);
|
|
35
|
+
if (braceStart === -1) return content;
|
|
36
|
+
|
|
37
|
+
// balanced brace로 workspaces 객체의 끝을 찾는다 (값 문자열에 중괄호가 없어 안전).
|
|
38
|
+
let depth = 0;
|
|
39
|
+
let braceEnd = -1;
|
|
40
|
+
for (let i = braceStart; i < content.length; i++) {
|
|
41
|
+
const ch = content[i];
|
|
42
|
+
if (ch === "{") depth++;
|
|
43
|
+
else if (ch === "}") {
|
|
44
|
+
depth--;
|
|
45
|
+
if (depth === 0) {
|
|
46
|
+
braceEnd = i;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (braceEnd === -1) return content;
|
|
52
|
+
|
|
53
|
+
const section = content.slice(braceStart, braceEnd + 1);
|
|
54
|
+
const newSection = section.replace(/("version"\s*:\s*)"[^"]*"/g, `$1"${newVersion}"`);
|
|
55
|
+
return content.slice(0, braceStart) + newSection + content.slice(braceEnd + 1);
|
|
56
|
+
}
|
|
57
|
+
|
|
18
58
|
/**
|
|
19
59
|
* 프로젝트 및 패키지 버전 업그레이드
|
|
20
60
|
* @param dryRun true이면 파일을 수정하지 않고 새 버전만 계산
|
|
@@ -58,6 +98,17 @@ export async function upgradeVersion(
|
|
|
58
98
|
);
|
|
59
99
|
changedFiles.push(...pkgChangedFiles);
|
|
60
100
|
|
|
101
|
+
// bun.lock의 워크스페이스 version 동기화 (bun publish가 lock을 읽어 workspace:* 를 치환하므로)
|
|
102
|
+
const bunLockPath = path.resolve(cwd, "bun.lock");
|
|
103
|
+
if (await fsx.exists(bunLockPath)) {
|
|
104
|
+
const lockContent = await fsx.read(bunLockPath);
|
|
105
|
+
const newLockContent = syncBunLockWorkspaceVersions(lockContent, newVersion);
|
|
106
|
+
if (newLockContent !== lockContent) {
|
|
107
|
+
await fsx.write(bunLockPath, newLockContent);
|
|
108
|
+
changedFiles.push(bunLockPath);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
61
112
|
// 템플릿 파일의 @simplysm 패키지 버전 동기화
|
|
62
113
|
const templateFiles = await fsx.glob(path.resolve(cwd, "packages/sd-cli/templates/**/*.hbs"));
|
|
63
114
|
const versionRegex = /("@simplysm\/[^"]+"\s*:\s*)"~[^"]+"/g;
|