@simplysm/sd-cli 13.0.11 → 13.0.13

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 (160) hide show
  1. package/README.md +42 -2
  2. package/dist/builders/BaseBuilder.d.ts +15 -4
  3. package/dist/builders/BaseBuilder.d.ts.map +1 -1
  4. package/dist/builders/BaseBuilder.js +50 -0
  5. package/dist/builders/BaseBuilder.js.map +1 -1
  6. package/dist/builders/DtsBuilder.d.ts.map +1 -1
  7. package/dist/builders/DtsBuilder.js +2 -39
  8. package/dist/builders/DtsBuilder.js.map +1 -1
  9. package/dist/builders/LibraryBuilder.d.ts.map +1 -1
  10. package/dist/builders/LibraryBuilder.js +2 -39
  11. package/dist/builders/LibraryBuilder.js.map +1 -1
  12. package/dist/builders/types.d.ts +2 -2
  13. package/dist/builders/types.d.ts.map +1 -1
  14. package/dist/capacitor/capacitor.d.ts.map +1 -1
  15. package/dist/capacitor/capacitor.js +2 -1
  16. package/dist/capacitor/capacitor.js.map +1 -1
  17. package/dist/commands/add-client.d.ts.map +1 -1
  18. package/dist/commands/add-client.js +1 -9
  19. package/dist/commands/add-client.js.map +1 -1
  20. package/dist/commands/add-server.d.ts.map +1 -1
  21. package/dist/commands/add-server.js +1 -9
  22. package/dist/commands/add-server.js.map +1 -1
  23. package/dist/commands/build.d.ts +1 -2
  24. package/dist/commands/build.d.ts.map +1 -1
  25. package/dist/commands/build.js +12 -311
  26. package/dist/commands/build.js.map +1 -1
  27. package/dist/commands/dev.d.ts +1 -1
  28. package/dist/commands/dev.d.ts.map +1 -1
  29. package/dist/commands/dev.js +11 -432
  30. package/dist/commands/dev.js.map +1 -1
  31. package/dist/commands/device.d.ts.map +1 -1
  32. package/dist/commands/device.js +17 -32
  33. package/dist/commands/device.js.map +1 -1
  34. package/dist/commands/init.d.ts.map +1 -1
  35. package/dist/commands/init.js +1 -9
  36. package/dist/commands/init.js.map +1 -1
  37. package/dist/commands/lint.d.ts +1 -1
  38. package/dist/commands/lint.d.ts.map +1 -1
  39. package/dist/commands/lint.js +71 -118
  40. package/dist/commands/lint.js.map +2 -2
  41. package/dist/commands/publish.d.ts.map +1 -1
  42. package/dist/commands/publish.js +47 -69
  43. package/dist/commands/publish.js.map +1 -1
  44. package/dist/commands/typecheck.d.ts +1 -1
  45. package/dist/commands/typecheck.d.ts.map +1 -1
  46. package/dist/commands/typecheck.js +11 -24
  47. package/dist/commands/typecheck.js.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/infra/ResultCollector.d.ts +1 -1
  53. package/dist/infra/ResultCollector.d.ts.map +1 -1
  54. package/dist/infra/ResultCollector.js +1 -1
  55. package/dist/infra/ResultCollector.js.map +1 -1
  56. package/dist/orchestrators/BuildOrchestrator.d.ts +53 -0
  57. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -0
  58. package/dist/orchestrators/BuildOrchestrator.js +338 -0
  59. package/dist/orchestrators/BuildOrchestrator.js.map +6 -0
  60. package/dist/orchestrators/DevOrchestrator.d.ts +64 -0
  61. package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -0
  62. package/dist/orchestrators/DevOrchestrator.js +524 -0
  63. package/dist/orchestrators/DevOrchestrator.js.map +6 -0
  64. package/dist/orchestrators/WatchOrchestrator.d.ts +1 -1
  65. package/dist/orchestrators/WatchOrchestrator.d.ts.map +1 -1
  66. package/dist/orchestrators/WatchOrchestrator.js +30 -21
  67. package/dist/orchestrators/WatchOrchestrator.js.map +1 -1
  68. package/dist/orchestrators/index.d.ts +2 -0
  69. package/dist/orchestrators/index.d.ts.map +1 -1
  70. package/dist/orchestrators/index.js +4 -0
  71. package/dist/orchestrators/index.js.map +1 -1
  72. package/dist/sd-cli-entry.js +14 -14
  73. package/dist/sd-cli-entry.js.map +1 -1
  74. package/dist/sd-cli.js +6 -4
  75. package/dist/sd-cli.js.map +1 -1
  76. package/dist/utils/esbuild-config.d.ts +8 -0
  77. package/dist/utils/esbuild-config.d.ts.map +1 -1
  78. package/dist/utils/esbuild-config.js +23 -28
  79. package/dist/utils/esbuild-config.js.map +1 -1
  80. package/dist/utils/output-utils.d.ts +0 -1
  81. package/dist/utils/output-utils.d.ts.map +1 -1
  82. package/dist/utils/output-utils.js +1 -1
  83. package/dist/utils/output-utils.js.map +1 -1
  84. package/dist/utils/package-utils.d.ts +5 -1
  85. package/dist/utils/package-utils.d.ts.map +1 -1
  86. package/dist/utils/package-utils.js +12 -0
  87. package/dist/utils/package-utils.js.map +1 -1
  88. package/dist/utils/rebuild-manager.d.ts +15 -0
  89. package/dist/utils/rebuild-manager.d.ts.map +1 -0
  90. package/dist/utils/rebuild-manager.js +50 -0
  91. package/dist/utils/rebuild-manager.js.map +6 -0
  92. package/dist/utils/replace-deps.d.ts.map +1 -1
  93. package/dist/utils/replace-deps.js +7 -13
  94. package/dist/utils/replace-deps.js.map +1 -1
  95. package/dist/utils/vite-config.d.ts.map +1 -1
  96. package/dist/utils/vite-config.js +61 -7
  97. package/dist/utils/vite-config.js.map +1 -1
  98. package/dist/utils/worker-events.d.ts +5 -4
  99. package/dist/utils/worker-events.d.ts.map +1 -1
  100. package/dist/utils/worker-events.js +4 -0
  101. package/dist/utils/worker-events.js.map +1 -1
  102. package/dist/utils/worker-utils.d.ts +13 -0
  103. package/dist/utils/worker-utils.d.ts.map +1 -0
  104. package/dist/utils/worker-utils.js +15 -0
  105. package/dist/utils/worker-utils.js.map +6 -0
  106. package/dist/workers/client.worker.d.ts.map +1 -1
  107. package/dist/workers/client.worker.js +2 -14
  108. package/dist/workers/client.worker.js.map +1 -1
  109. package/dist/workers/library.worker.d.ts.map +1 -1
  110. package/dist/workers/library.worker.js +14 -16
  111. package/dist/workers/library.worker.js.map +1 -1
  112. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  113. package/dist/workers/server-runtime.worker.js +11 -11
  114. package/dist/workers/server-runtime.worker.js.map +1 -1
  115. package/dist/workers/server.worker.d.ts.map +1 -1
  116. package/dist/workers/server.worker.js +2 -14
  117. package/dist/workers/server.worker.js.map +1 -1
  118. package/package.json +4 -5
  119. package/src/builders/BaseBuilder.ts +71 -4
  120. package/src/builders/DtsBuilder.ts +2 -49
  121. package/src/builders/LibraryBuilder.ts +2 -51
  122. package/src/builders/types.ts +2 -2
  123. package/src/capacitor/capacitor.ts +2 -1
  124. package/src/commands/add-client.ts +1 -14
  125. package/src/commands/add-server.ts +1 -13
  126. package/src/commands/build.ts +13 -443
  127. package/src/commands/dev.ts +12 -582
  128. package/src/commands/device.ts +17 -34
  129. package/src/commands/init.ts +1 -13
  130. package/src/commands/lint.ts +85 -146
  131. package/src/commands/publish.ts +58 -76
  132. package/src/commands/typecheck.ts +13 -46
  133. package/src/index.ts +1 -0
  134. package/src/infra/ResultCollector.ts +2 -2
  135. package/src/orchestrators/BuildOrchestrator.ts +499 -0
  136. package/src/orchestrators/DevOrchestrator.ts +703 -0
  137. package/src/orchestrators/WatchOrchestrator.ts +42 -25
  138. package/src/orchestrators/index.ts +2 -0
  139. package/src/sd-cli-entry.ts +14 -14
  140. package/src/sd-cli.ts +6 -4
  141. package/src/utils/esbuild-config.ts +31 -33
  142. package/src/utils/output-utils.ts +1 -2
  143. package/src/utils/package-utils.ts +16 -1
  144. package/src/utils/rebuild-manager.ts +65 -0
  145. package/src/utils/replace-deps.ts +25 -23
  146. package/src/utils/vite-config.ts +115 -9
  147. package/src/utils/worker-events.ts +13 -5
  148. package/src/utils/worker-utils.ts +26 -0
  149. package/src/workers/client.worker.ts +3 -19
  150. package/src/workers/library.worker.ts +16 -22
  151. package/src/workers/server-runtime.worker.ts +16 -17
  152. package/src/workers/server.worker.ts +2 -19
  153. package/templates/add-client/__CLIENT__/package.json.hbs +1 -1
  154. package/templates/add-server/__SERVER__/package.json.hbs +2 -2
  155. package/templates/init/package.json.hbs +3 -3
  156. package/dist/utils/listr-manager.d.ts +0 -37
  157. package/dist/utils/listr-manager.d.ts.map +0 -1
  158. package/dist/utils/listr-manager.js +0 -59
  159. package/dist/utils/listr-manager.js.map +0 -6
  160. package/src/utils/listr-manager.ts +0 -89
@@ -1,10 +1,9 @@
1
1
  import ts from "typescript";
2
2
  import path from "path";
3
3
  import os from "os";
4
- import { Listr } from "listr2";
5
4
  import { pathPosix, pathFilterByTargets, Worker } from "@simplysm/core-node";
6
5
  import "@simplysm/core-common";
7
- import { consola, LogLevels } from "consola";
6
+ import { consola } from "consola";
8
7
  import { parseRootTsconfig } from "../utils/tsconfig.js";
9
8
  import { loadSdConfig } from "../utils/sd-config.js";
10
9
  import { deserializeDiagnostic } from "../utils/typecheck-serialization.js";
@@ -86,7 +85,7 @@ async function runTypecheck(options) {
86
85
  try {
87
86
  parsedConfig = parseRootTsconfig(cwd);
88
87
  } catch (err) {
89
- consola.error(err instanceof Error ? err.message : err);
88
+ logger.error(err instanceof Error ? err.message : String(err));
90
89
  process.exitCode = 1;
91
90
  return;
92
91
  }
@@ -124,16 +123,21 @@ async function runTypecheck(options) {
124
123
  workers.push(Worker.create(workerPath));
125
124
  }
126
125
  const allResults = [];
127
- const taskResolvers = /* @__PURE__ */ new Map();
128
126
  try {
129
127
  let taskIndex = 0;
130
128
  async function runNextTask(worker) {
131
129
  while (taskIndex < tasks.length) {
132
130
  const currentIndex = taskIndex++;
133
131
  const task = tasks[currentIndex];
132
+ logger.debug(`[${task.displayName}] \uD0C0\uC785\uCCB4\uD06C \uC2DC\uC791`);
134
133
  try {
135
134
  const result = await worker.buildDts(task.buildInfo);
136
135
  allResults.push({ displayName: task.displayName, result });
136
+ if (result.success) {
137
+ logger.debug(`[${task.displayName}] \uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC`);
138
+ } else {
139
+ logger.debug(`[${task.displayName}] \uD0C0\uC785\uCCB4\uD06C \uC2E4\uD328`, { errorCount: result.errorCount });
140
+ }
137
141
  } catch (err) {
138
142
  logger.error(`Worker \uC624\uB958: ${task.displayName}`, {
139
143
  error: err instanceof Error ? err.message : String(err)
@@ -148,30 +152,13 @@ async function runTypecheck(options) {
148
152
  warningCount: 0
149
153
  }
150
154
  });
151
- } finally {
152
- taskResolvers.get(task.displayName)?.();
153
155
  }
154
156
  }
155
157
  }
156
- const listr = new Listr(
157
- tasks.map((task) => ({
158
- title: task.displayName,
159
- task: () => new Promise((resolve) => {
160
- taskResolvers.set(task.displayName, resolve);
161
- })
162
- })),
163
- {
164
- concurrent: concurrency,
165
- exitOnError: false,
166
- renderer: consola.level >= LogLevels.debug ? "verbose" : "default"
167
- }
168
- );
169
- const workerPromises = workers.map((worker) => runNextTask(worker));
170
- await Promise.all([listr.run(), ...workerPromises]);
158
+ logger.start(`\uD0C0\uC785\uCCB4\uD06C \uC2E4\uD589 \uC911... (${tasks.length}\uAC1C \uB300\uC0C1, \uB3D9\uC2DC\uC131: ${concurrency})`);
159
+ await Promise.all(workers.map((worker) => runNextTask(worker)));
160
+ logger.success("\uD0C0\uC785\uCCB4\uD06C \uC2E4\uD589 \uC644\uB8CC");
171
161
  } finally {
172
- for (const resolver of taskResolvers.values()) {
173
- resolver();
174
- }
175
162
  await Promise.all(workers.map((w) => w.terminate()));
176
163
  }
177
164
  const allDiagnostics = [];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/typecheck.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./sd-config.types";
2
+ export { createViteConfig, type ViteConfigOptions } from "./utils/vite-config";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,6 @@
1
1
  export * from "./sd-config.types.js";
2
+ import { createViteConfig } from "./utils/vite-config.js";
3
+ export {
4
+ createViteConfig
5
+ };
2
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
4
+ "mappings": "AAAA,cAAc;AACd,SAAS,wBAAgD;",
5
5
  "names": []
6
6
  }
@@ -5,7 +5,7 @@ export interface BuildResult {
5
5
  name: string;
6
6
  target: string;
7
7
  type: "build" | "dts" | "server" | "capacitor";
8
- status: "pending" | "building" | "success" | "error" | "server";
8
+ status: "pending" | "building" | "success" | "error" | "running";
9
9
  message?: string;
10
10
  port?: number;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResultCollector.d.ts","sourceRoot":"","sources":["../../src/infra/ResultCollector.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC/C,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAK9B;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIzC;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;IAIvB;;OAEG;IACH,SAAS,IAAI,WAAW,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE;IAInD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;CAGlC"}
1
+ {"version":3,"file":"ResultCollector.d.ts","sourceRoot":"","sources":["../../src/infra/ResultCollector.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC/C,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAK9B;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIzC;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;IAIvB;;OAEG;IACH,SAAS,IAAI,WAAW,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE;IAInD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;CAGlC"}
@@ -31,7 +31,7 @@ class ResultCollector {
31
31
  * 서버 상태인 결과만 조회
32
32
  */
33
33
  getServers() {
34
- return this.getAll().filter((r) => r.type === "server" && r.status === "server");
34
+ return this.getAll().filter((r) => r.type === "server" && r.status === "running");
35
35
  }
36
36
  /**
37
37
  * 특정 타입의 결과만 조회
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/infra/ResultCollector.ts"],
4
- "mappings": "AAkBO,MAAM,gBAAgB;AAAA,EACV,WAAW,oBAAI,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzD,IAAI,QAA2B;AAC7B,UAAM,MAAM,GAAG,OAAO,IAAI,IAAI,OAAO,IAAI;AACzC,SAAK,SAAS,IAAI,KAAK,MAAM;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,KAAsC;AACxC,WAAO,KAAK,SAAS,IAAI,GAAG;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,SAAwB;AACtB,WAAO,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,YAA2B;AACzB,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,aAA4B;AAC1B,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,WAAW,QAAQ;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,MAA0C;AAClD,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAkC;AAChC,WAAO,KAAK;AAAA,EACd;AACF;",
4
+ "mappings": "AAkBO,MAAM,gBAAgB;AAAA,EACV,WAAW,oBAAI,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzD,IAAI,QAA2B;AAC7B,UAAM,MAAM,GAAG,OAAO,IAAI,IAAI,OAAO,IAAI;AACzC,SAAK,SAAS,IAAI,KAAK,MAAM;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,KAAsC;AACxC,WAAO,KAAK,SAAS,IAAI,GAAG;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,SAAwB;AACtB,WAAO,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,YAA2B;AACzB,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,aAA4B;AAC1B,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,WAAW,SAAS;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,MAA0C;AAClD,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAkC;AAChC,WAAO,KAAK;AAAA,EACd;AACF;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,53 @@
1
+ import "@simplysm/core-common";
2
+ /**
3
+ * Build Orchestrator 옵션
4
+ */
5
+ export interface BuildOrchestratorOptions {
6
+ /** 빌드할 패키지 필터 (빈 배열이면 모든 패키지) */
7
+ targets: string[];
8
+ /** sd.config.ts에 전달할 추가 옵션 */
9
+ options: string[];
10
+ }
11
+ /**
12
+ * 프로덕션 빌드를 조율하는 Orchestrator
13
+ *
14
+ * sd.config.ts 기반으로 패키지를 분류하고, 빌드를 실행한다.
15
+ * - lint 실행
16
+ * - dist 폴더 정리 (clean build)
17
+ * - node/browser/neutral 타겟: esbuild JS 빌드 + dts 생성
18
+ * - client 타겟: Vite production 빌드 + typecheck + Capacitor/Electron 빌드
19
+ * - server 타겟: esbuild JS 빌드
20
+ */
21
+ export declare class BuildOrchestrator {
22
+ private readonly _cwd;
23
+ private readonly _options;
24
+ private readonly _logger;
25
+ private _sdConfig;
26
+ private _classified;
27
+ private _allPackageNames;
28
+ private _baseEnv;
29
+ constructor(options: BuildOrchestratorOptions);
30
+ /**
31
+ * Orchestrator 초기화
32
+ * - sd.config.ts 로드
33
+ * - replaceDeps 설정
34
+ * - 패키지 분류
35
+ * - 환경변수 준비
36
+ */
37
+ initialize(): Promise<void>;
38
+ /**
39
+ * 빌드 실행
40
+ * - Lint
41
+ * - Clean
42
+ * - Build (concurrent)
43
+ * - 결과 출력
44
+ *
45
+ * @returns 에러 여부 (true: 에러 있음)
46
+ */
47
+ start(): Promise<boolean>;
48
+ /**
49
+ * Orchestrator 종료 (현재는 정리할 리소스 없음)
50
+ */
51
+ shutdown(): Promise<void>;
52
+ }
53
+ //# sourceMappingURL=BuildOrchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/BuildOrchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,uBAAuB,CAAC;AAmB/B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iCAAiC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA8ED;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAA2C;gBAE/C,OAAO,EAAE,wBAAwB;IAK7C;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CjC;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAqS/B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
@@ -0,0 +1,338 @@
1
+ import path from "path";
2
+ import ts from "typescript";
3
+ import { Worker, fsRm } from "@simplysm/core-node";
4
+ import "@simplysm/core-common";
5
+ import { consola } from "consola";
6
+ import { loadSdConfig } from "../utils/sd-config.js";
7
+ import { getVersion } from "../utils/build-env.js";
8
+ import { setupReplaceDeps } from "../utils/replace-deps.js";
9
+ import { deserializeDiagnostic } from "../utils/typecheck-serialization.js";
10
+ import { runLint } from "../commands/lint.js";
11
+ import { Capacitor } from "../capacitor/capacitor.js";
12
+ import { Electron } from "../electron/electron.js";
13
+ import { copySrcFiles } from "../utils/copy-src.js";
14
+ function classifyPackages(packages, targets) {
15
+ const buildPackages = [];
16
+ const clientPackages = [];
17
+ const serverPackages = [];
18
+ for (const [name, config] of Object.entries(packages)) {
19
+ if (config == null) continue;
20
+ if (config.target === "scripts") continue;
21
+ if (targets.length > 0 && !targets.includes(name)) continue;
22
+ if (config.target === "client") {
23
+ clientPackages.push({ name, config });
24
+ } else if (config.target === "server") {
25
+ serverPackages.push({ name, config });
26
+ } else {
27
+ buildPackages.push({ name, config });
28
+ }
29
+ }
30
+ return { buildPackages, clientPackages, serverPackages };
31
+ }
32
+ async function cleanDistFolders(cwd, packageNames) {
33
+ await Promise.all(packageNames.map((name) => fsRm(path.join(cwd, "packages", name, "dist"))));
34
+ }
35
+ class BuildOrchestrator {
36
+ _cwd;
37
+ _options;
38
+ _logger = consola.withTag("sd:cli:build");
39
+ _sdConfig;
40
+ _classified;
41
+ _allPackageNames = [];
42
+ _baseEnv;
43
+ constructor(options) {
44
+ this._cwd = process.cwd();
45
+ this._options = options;
46
+ }
47
+ /**
48
+ * Orchestrator 초기화
49
+ * - sd.config.ts 로드
50
+ * - replaceDeps 설정
51
+ * - 패키지 분류
52
+ * - 환경변수 준비
53
+ */
54
+ async initialize() {
55
+ this._logger.debug("\uBE4C\uB4DC \uC2DC\uC791", { targets: this._options.targets });
56
+ try {
57
+ this._sdConfig = await loadSdConfig({
58
+ cwd: this._cwd,
59
+ dev: false,
60
+ opt: this._options.options
61
+ });
62
+ this._logger.debug("sd.config.ts \uB85C\uB4DC \uC644\uB8CC");
63
+ } catch (err) {
64
+ this._logger.error(`sd.config.ts \uB85C\uB4DC \uC2E4\uD328: ${err instanceof Error ? err.message : err}`);
65
+ process.exitCode = 1;
66
+ throw err;
67
+ }
68
+ if (this._sdConfig.replaceDeps != null) {
69
+ await setupReplaceDeps(this._cwd, this._sdConfig.replaceDeps);
70
+ }
71
+ const version = await getVersion(this._cwd);
72
+ this._baseEnv = { VER: version, DEV: "false" };
73
+ this._classified = classifyPackages(this._sdConfig.packages, this._options.targets);
74
+ this._allPackageNames = [
75
+ ...this._classified.buildPackages.map((p) => p.name),
76
+ ...this._classified.clientPackages.map((p) => p.name),
77
+ ...this._classified.serverPackages.map((p) => p.name)
78
+ ];
79
+ if (this._allPackageNames.length === 0) {
80
+ process.stdout.write("\u2714 \uBE4C\uB4DC\uD560 \uD328\uD0A4\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
81
+ return;
82
+ }
83
+ this._logger.debug("\uD328\uD0A4\uC9C0 \uBD84\uB958 \uC644\uB8CC", {
84
+ buildPackages: this._classified.buildPackages.map((p) => p.name),
85
+ clientPackages: this._classified.clientPackages.map((p) => p.name),
86
+ serverPackages: this._classified.serverPackages.map((p) => p.name)
87
+ });
88
+ }
89
+ /**
90
+ * 빌드 실행
91
+ * - Lint
92
+ * - Clean
93
+ * - Build (concurrent)
94
+ * - 결과 출력
95
+ *
96
+ * @returns 에러 여부 (true: 에러 있음)
97
+ */
98
+ async start() {
99
+ if (this._allPackageNames.length === 0) {
100
+ return false;
101
+ }
102
+ const classified = this._classified;
103
+ const baseEnv = this._baseEnv;
104
+ const results = [];
105
+ const state = { hasError: false };
106
+ const libraryWorkerPath = import.meta.resolve("../workers/library.worker");
107
+ const serverWorkerPath = import.meta.resolve("../workers/server.worker");
108
+ const clientWorkerPath = import.meta.resolve("../workers/client.worker");
109
+ const dtsWorkerPath = import.meta.resolve("../workers/dts.worker");
110
+ const fileCache = /* @__PURE__ */ new Map();
111
+ const formatHost = {
112
+ getCanonicalFileName: (f) => f,
113
+ getCurrentDirectory: () => this._cwd,
114
+ getNewLine: () => ts.sys.newLine
115
+ };
116
+ const lintOptions = {
117
+ targets: this._allPackageNames.map((name) => `packages/${name}`),
118
+ fix: false,
119
+ timing: false
120
+ };
121
+ this._logger.start("Lint");
122
+ await runLint(lintOptions);
123
+ if (process.exitCode === 1) {
124
+ state.hasError = true;
125
+ }
126
+ this._logger.success("Lint");
127
+ this._logger.start("Clean");
128
+ await cleanDistFolders(this._cwd, this._allPackageNames);
129
+ this._logger.success("Clean");
130
+ this._logger.start("Build");
131
+ const buildTasks = [];
132
+ for (const { name, config } of classified.buildPackages) {
133
+ const pkgDir = path.join(this._cwd, "packages", name);
134
+ const env = config.target === "node" ? "node" : "browser";
135
+ buildTasks.push(async () => {
136
+ this._logger.debug(`${name} (${config.target}) \uC2DC\uC791`);
137
+ const libraryWorker = Worker.create(libraryWorkerPath);
138
+ const dtsWorker = Worker.create(dtsWorkerPath);
139
+ try {
140
+ const [buildResult, dtsResult] = await Promise.all([
141
+ // JS 빌드
142
+ libraryWorker.build({ name, config, cwd: this._cwd, pkgDir }),
143
+ // DTS 생성
144
+ dtsWorker.buildDts({ name, cwd: this._cwd, pkgDir, env, emit: true })
145
+ ]);
146
+ results.push({
147
+ name,
148
+ target: config.target,
149
+ type: "js",
150
+ success: buildResult.success,
151
+ errors: buildResult.errors
152
+ });
153
+ if (!buildResult.success) state.hasError = true;
154
+ const diagnostics = dtsResult.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
155
+ results.push({
156
+ name,
157
+ target: config.target,
158
+ type: "dts",
159
+ success: dtsResult.success,
160
+ errors: dtsResult.errors,
161
+ diagnostics
162
+ });
163
+ if (!dtsResult.success) state.hasError = true;
164
+ } finally {
165
+ await Promise.all([libraryWorker.terminate(), dtsWorker.terminate()]);
166
+ }
167
+ if (config.copySrc != null && config.copySrc.length > 0) {
168
+ await copySrcFiles(pkgDir, config.copySrc);
169
+ }
170
+ this._logger.debug(`${name} (${config.target}) \uC644\uB8CC`);
171
+ });
172
+ }
173
+ for (const { name, config } of classified.clientPackages) {
174
+ const pkgDir = path.join(this._cwd, "packages", name);
175
+ buildTasks.push(async () => {
176
+ this._logger.debug(`${name} (client) \uC2DC\uC791`);
177
+ const clientWorker = Worker.create(clientWorkerPath);
178
+ const dtsWorker = Worker.create(dtsWorkerPath);
179
+ try {
180
+ const clientConfig = {
181
+ ...config,
182
+ env: { ...baseEnv, ...config.env }
183
+ };
184
+ const [clientResult, dtsResult] = await Promise.all([
185
+ // Vite production 빌드
186
+ clientWorker.build({ name, config: clientConfig, cwd: this._cwd, pkgDir }),
187
+ // typecheck (dts 없이)
188
+ dtsWorker.buildDts({
189
+ name,
190
+ cwd: this._cwd,
191
+ pkgDir,
192
+ env: "browser",
193
+ emit: false
194
+ })
195
+ ]);
196
+ results.push({
197
+ name,
198
+ target: "client",
199
+ type: "vite",
200
+ success: clientResult.success,
201
+ errors: clientResult.errors
202
+ });
203
+ if (!clientResult.success) state.hasError = true;
204
+ const diagnostics = dtsResult.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
205
+ results.push({
206
+ name,
207
+ target: "client",
208
+ type: "dts",
209
+ success: dtsResult.success,
210
+ errors: dtsResult.errors,
211
+ diagnostics
212
+ });
213
+ if (!dtsResult.success) state.hasError = true;
214
+ } finally {
215
+ await Promise.all([clientWorker.terminate(), dtsWorker.terminate()]);
216
+ }
217
+ if (config.capacitor != null) {
218
+ const outPath = path.join(pkgDir, "dist");
219
+ try {
220
+ const cap = await Capacitor.create(pkgDir, config.capacitor);
221
+ await cap.initialize();
222
+ await cap.build(outPath);
223
+ results.push({
224
+ name,
225
+ target: "client",
226
+ type: "capacitor",
227
+ success: true
228
+ });
229
+ } catch (err) {
230
+ results.push({
231
+ name,
232
+ target: "client",
233
+ type: "capacitor",
234
+ success: false,
235
+ errors: [err instanceof Error ? err.message : String(err)]
236
+ });
237
+ state.hasError = true;
238
+ }
239
+ }
240
+ if (config.electron != null) {
241
+ const outPath = path.join(pkgDir, "dist");
242
+ try {
243
+ const electron = await Electron.create(pkgDir, config.electron);
244
+ await electron.initialize();
245
+ await electron.build(outPath);
246
+ results.push({
247
+ name,
248
+ target: "client",
249
+ type: "electron",
250
+ success: true
251
+ });
252
+ } catch (err) {
253
+ results.push({
254
+ name,
255
+ target: "client",
256
+ type: "electron",
257
+ success: false,
258
+ errors: [err instanceof Error ? err.message : String(err)]
259
+ });
260
+ state.hasError = true;
261
+ }
262
+ }
263
+ this._logger.debug(`${name} (client) \uC644\uB8CC`);
264
+ });
265
+ }
266
+ for (const { name, config } of classified.serverPackages) {
267
+ const pkgDir = path.join(this._cwd, "packages", name);
268
+ buildTasks.push(async () => {
269
+ this._logger.debug(`${name} (server) \uC2DC\uC791`);
270
+ const serverWorker = Worker.create(serverWorkerPath);
271
+ try {
272
+ const buildResult = await serverWorker.build({
273
+ name,
274
+ cwd: this._cwd,
275
+ pkgDir,
276
+ env: { ...baseEnv, ...config.env },
277
+ configs: config.configs,
278
+ externals: config.externals,
279
+ pm2: config.pm2,
280
+ packageManager: config.packageManager
281
+ });
282
+ results.push({
283
+ name,
284
+ target: "server",
285
+ type: "js",
286
+ success: buildResult.success,
287
+ errors: buildResult.errors
288
+ });
289
+ if (!buildResult.success) state.hasError = true;
290
+ } finally {
291
+ await serverWorker.terminate();
292
+ }
293
+ this._logger.debug(`${name} (server) \uC644\uB8CC`);
294
+ });
295
+ }
296
+ await Promise.allSettled(buildTasks.map((task) => task()));
297
+ this._logger.success("Build");
298
+ const allDiagnostics = [];
299
+ for (const result of results) {
300
+ if (!result.success) {
301
+ const typeLabel = result.type === "dts" ? "dts" : result.target;
302
+ const errorLines = [`${result.name} (${typeLabel})`];
303
+ if (result.errors != null) {
304
+ for (const error of result.errors) {
305
+ for (const line of error.split("\n")) {
306
+ errorLines.push(` \u2192 ${line}`);
307
+ }
308
+ }
309
+ }
310
+ this._logger.error(errorLines.join("\n"));
311
+ }
312
+ if (result.diagnostics != null) {
313
+ allDiagnostics.push(...result.diagnostics);
314
+ }
315
+ }
316
+ if (allDiagnostics.length > 0) {
317
+ const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);
318
+ const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);
319
+ process.stdout.write(message);
320
+ }
321
+ if (state.hasError) {
322
+ this._logger.error("\uBE4C\uB4DC \uC2E4\uD328");
323
+ } else {
324
+ this._logger.info("\uBE4C\uB4DC \uC644\uB8CC");
325
+ }
326
+ return state.hasError;
327
+ }
328
+ /**
329
+ * Orchestrator 종료 (현재는 정리할 리소스 없음)
330
+ */
331
+ async shutdown() {
332
+ await Promise.resolve();
333
+ }
334
+ }
335
+ export {
336
+ BuildOrchestrator
337
+ };
338
+ //# sourceMappingURL=BuildOrchestrator.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/orchestrators/BuildOrchestrator.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Dev Orchestrator 옵션
3
+ */
4
+ export interface DevOrchestratorOptions {
5
+ /** dev할 패키지 필터 (빈 배열이면 모든 패키지) */
6
+ targets: string[];
7
+ options: string[];
8
+ }
9
+ /**
10
+ * Dev 모드 실행을 조율하는 Orchestrator
11
+ *
12
+ * Client 및 Server 패키지의 개발 모드 실행을 관리한다.
13
+ * - `client` 타겟: Vite dev server 시작
14
+ * - `server` 타겟: Server Build Worker + Server Runtime Worker
15
+ * - Server-Client 프록시 연결 지원
16
+ * - Capacitor 초기화 지원
17
+ * - SIGINT/SIGTERM 시그널로 종료
18
+ */
19
+ export declare class DevOrchestrator {
20
+ private readonly _options;
21
+ private readonly _logger;
22
+ private readonly _cwd;
23
+ private _sdConfig;
24
+ private _baseEnv;
25
+ private _watchScopes;
26
+ private readonly _serverPackages;
27
+ private readonly _clientPackages;
28
+ private readonly _serverClientsMap;
29
+ private _hasPackages;
30
+ private _standaloneClientWorkers;
31
+ private _viteClientWorkers;
32
+ private readonly _serverBuildWorkers;
33
+ private readonly _serverRuntimeWorkers;
34
+ private readonly _results;
35
+ private _clientPorts;
36
+ private _rebuildManager;
37
+ private _signalHandler;
38
+ private _replaceDepWatcher;
39
+ constructor(options: DevOrchestratorOptions);
40
+ /**
41
+ * Orchestrator 초기화
42
+ * - sd.config.ts 로드
43
+ * - 패키지 분류
44
+ * - 환경변수 준비
45
+ */
46
+ initialize(): Promise<void>;
47
+ /**
48
+ * Dev 모드 시작
49
+ * - Worker 생성
50
+ * - 이벤트 핸들러 등록
51
+ * - 초기 빌드 및 서버 시작
52
+ * - Capacitor 초기화
53
+ */
54
+ start(): Promise<void>;
55
+ /**
56
+ * 종료 시그널 대기
57
+ */
58
+ awaitTermination(): Promise<void>;
59
+ /**
60
+ * Orchestrator 종료
61
+ */
62
+ shutdown(): Promise<void>;
63
+ }
64
+ //# sourceMappingURL=DevOrchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/DevOrchestrator.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAiBD;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAG9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,YAAY,CAAgB;IAGpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8D;IAC9F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8D;IAC9F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,wBAAwB,CAA0B;IAC1D,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQhC;IACJ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAoE;IAG1G,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAoC;gBAElD,OAAO,EAAE,sBAAsB;IAK3C;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqEjC;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAue5B;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBhC"}