@simplysm/sd-cli 13.0.68 → 13.0.70

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 (201) hide show
  1. package/README.md +10 -957
  2. package/dist/builders/BaseBuilder.d.ts +23 -23
  3. package/dist/builders/BaseBuilder.d.ts.map +1 -1
  4. package/dist/builders/BaseBuilder.js +15 -15
  5. package/dist/builders/DtsBuilder.d.ts +4 -4
  6. package/dist/builders/DtsBuilder.js +1 -1
  7. package/dist/builders/LibraryBuilder.d.ts +3 -3
  8. package/dist/builders/types.d.ts +10 -10
  9. package/dist/capacitor/capacitor.d.ts +36 -36
  10. package/dist/capacitor/capacitor.js +63 -63
  11. package/dist/capacitor/capacitor.js.map +1 -1
  12. package/dist/commands/add-client.d.ts +8 -8
  13. package/dist/commands/add-client.js +15 -15
  14. package/dist/commands/add-client.js.map +1 -1
  15. package/dist/commands/add-server.d.ts +9 -9
  16. package/dist/commands/add-server.js +13 -13
  17. package/dist/commands/add-server.js.map +1 -1
  18. package/dist/commands/build.d.ts +9 -9
  19. package/dist/commands/check.js +3 -3
  20. package/dist/commands/check.js.map +1 -1
  21. package/dist/commands/dev.d.ts +9 -9
  22. package/dist/commands/device.d.ts +9 -9
  23. package/dist/commands/device.d.ts.map +1 -1
  24. package/dist/commands/device.js +17 -17
  25. package/dist/commands/device.js.map +1 -1
  26. package/dist/commands/init.d.ts +6 -6
  27. package/dist/commands/init.js +12 -12
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/lint.d.ts +23 -23
  30. package/dist/commands/lint.d.ts.map +1 -1
  31. package/dist/commands/lint.js +25 -25
  32. package/dist/commands/lint.js.map +1 -1
  33. package/dist/commands/publish.d.ts +13 -13
  34. package/dist/commands/publish.d.ts.map +1 -1
  35. package/dist/commands/publish.js +61 -61
  36. package/dist/commands/publish.js.map +1 -1
  37. package/dist/commands/replace-deps.d.ts +3 -3
  38. package/dist/commands/replace-deps.d.ts.map +1 -1
  39. package/dist/commands/replace-deps.js +1 -1
  40. package/dist/commands/replace-deps.js.map +1 -1
  41. package/dist/commands/typecheck.d.ts +20 -20
  42. package/dist/commands/typecheck.d.ts.map +1 -1
  43. package/dist/commands/typecheck.js +20 -20
  44. package/dist/commands/typecheck.js.map +1 -1
  45. package/dist/commands/watch.d.ts +7 -7
  46. package/dist/electron/electron.d.ts +27 -27
  47. package/dist/electron/electron.js +32 -32
  48. package/dist/electron/electron.js.map +1 -1
  49. package/dist/infra/ResultCollector.d.ts +9 -9
  50. package/dist/infra/ResultCollector.js +5 -5
  51. package/dist/infra/SignalHandler.d.ts +7 -7
  52. package/dist/infra/SignalHandler.js +4 -4
  53. package/dist/infra/WorkerManager.d.ts +14 -14
  54. package/dist/infra/WorkerManager.js +11 -11
  55. package/dist/orchestrators/BuildOrchestrator.d.ts +19 -19
  56. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  57. package/dist/orchestrators/BuildOrchestrator.js +26 -26
  58. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  59. package/dist/orchestrators/DevOrchestrator.d.ts +25 -25
  60. package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -1
  61. package/dist/orchestrators/DevOrchestrator.js +30 -30
  62. package/dist/orchestrators/DevOrchestrator.js.map +1 -1
  63. package/dist/orchestrators/WatchOrchestrator.d.ts +13 -13
  64. package/dist/orchestrators/WatchOrchestrator.js +17 -17
  65. package/dist/orchestrators/WatchOrchestrator.js.map +1 -1
  66. package/dist/sd-cli-entry.d.ts +2 -2
  67. package/dist/sd-cli-entry.js +38 -38
  68. package/dist/sd-cli-entry.js.map +1 -1
  69. package/dist/sd-cli.d.ts +2 -2
  70. package/dist/sd-cli.js +1 -1
  71. package/dist/sd-cli.js.map +1 -1
  72. package/dist/sd-config.types.d.ts +84 -84
  73. package/dist/sd-config.types.d.ts.map +1 -1
  74. package/dist/utils/build-env.d.ts +1 -1
  75. package/dist/utils/config-editor.d.ts +5 -5
  76. package/dist/utils/config-editor.js +2 -2
  77. package/dist/utils/config-editor.js.map +1 -1
  78. package/dist/utils/copy-public.d.ts +9 -9
  79. package/dist/utils/copy-src.d.ts +9 -9
  80. package/dist/utils/esbuild-config.d.ts +30 -30
  81. package/dist/utils/esbuild-config.d.ts.map +1 -1
  82. package/dist/utils/output-utils.d.ts +6 -6
  83. package/dist/utils/package-utils.d.ts +6 -6
  84. package/dist/utils/package-utils.js +1 -1
  85. package/dist/utils/package-utils.js.map +1 -1
  86. package/dist/utils/rebuild-manager.js +3 -3
  87. package/dist/utils/rebuild-manager.js.map +1 -1
  88. package/dist/utils/replace-deps.d.ts +25 -25
  89. package/dist/utils/replace-deps.js +3 -3
  90. package/dist/utils/replace-deps.js.map +1 -1
  91. package/dist/utils/sd-config.d.ts +3 -3
  92. package/dist/utils/sd-config.js +3 -3
  93. package/dist/utils/sd-config.js.map +1 -1
  94. package/dist/utils/tailwind-config-deps.d.ts +3 -3
  95. package/dist/utils/template.d.ts +8 -8
  96. package/dist/utils/tsconfig.d.ts +16 -16
  97. package/dist/utils/tsconfig.js +2 -2
  98. package/dist/utils/tsconfig.js.map +1 -1
  99. package/dist/utils/typecheck-serialization.d.ts +8 -8
  100. package/dist/utils/vite-config.d.ts +8 -8
  101. package/dist/utils/vite-config.d.ts.map +1 -1
  102. package/dist/utils/vite-config.js +3 -3
  103. package/dist/utils/worker-events.d.ts +12 -12
  104. package/dist/utils/worker-events.d.ts.map +1 -1
  105. package/dist/utils/worker-utils.d.ts +3 -3
  106. package/dist/utils/worker-utils.js +2 -2
  107. package/dist/utils/worker-utils.js.map +1 -1
  108. package/dist/workers/client.worker.d.ts +14 -14
  109. package/dist/workers/client.worker.d.ts.map +1 -1
  110. package/dist/workers/client.worker.js +1 -1
  111. package/dist/workers/client.worker.js.map +1 -1
  112. package/dist/workers/dts.worker.d.ts +13 -13
  113. package/dist/workers/dts.worker.d.ts.map +1 -1
  114. package/dist/workers/dts.worker.js +3 -3
  115. package/dist/workers/dts.worker.js.map +1 -1
  116. package/dist/workers/library.worker.d.ts +12 -12
  117. package/dist/workers/library.worker.js +1 -1
  118. package/dist/workers/library.worker.js.map +1 -1
  119. package/dist/workers/lint.worker.d.ts +1 -1
  120. package/dist/workers/server-runtime.worker.d.ts +6 -6
  121. package/dist/workers/server-runtime.worker.js +6 -6
  122. package/dist/workers/server-runtime.worker.js.map +1 -1
  123. package/dist/workers/server.worker.d.ts +20 -20
  124. package/dist/workers/server.worker.d.ts.map +1 -1
  125. package/dist/workers/server.worker.js +6 -6
  126. package/dist/workers/server.worker.js.map +1 -1
  127. package/package.json +8 -7
  128. package/src/builders/BaseBuilder.ts +33 -33
  129. package/src/builders/DtsBuilder.ts +5 -5
  130. package/src/builders/LibraryBuilder.ts +9 -9
  131. package/src/builders/types.ts +10 -10
  132. package/src/capacitor/capacitor.ts +119 -119
  133. package/src/commands/add-client.ts +31 -31
  134. package/src/commands/add-server.ts +34 -34
  135. package/src/commands/build.ts +9 -9
  136. package/src/commands/check.ts +5 -5
  137. package/src/commands/dev.ts +9 -9
  138. package/src/commands/device.ts +30 -30
  139. package/src/commands/init.ts +25 -25
  140. package/src/commands/lint.ts +64 -64
  141. package/src/commands/publish.ts +139 -139
  142. package/src/commands/replace-deps.ts +4 -4
  143. package/src/commands/typecheck.ts +74 -74
  144. package/src/commands/watch.ts +7 -7
  145. package/src/electron/electron.ts +51 -51
  146. package/src/infra/ResultCollector.ts +9 -9
  147. package/src/infra/SignalHandler.ts +7 -7
  148. package/src/infra/WorkerManager.ts +14 -14
  149. package/src/orchestrators/BuildOrchestrator.ts +76 -76
  150. package/src/orchestrators/DevOrchestrator.ts +88 -88
  151. package/src/orchestrators/WatchOrchestrator.ts +39 -39
  152. package/src/sd-cli-entry.ts +43 -43
  153. package/src/sd-cli.ts +15 -15
  154. package/src/sd-config.types.ts +85 -85
  155. package/src/utils/build-env.ts +1 -1
  156. package/src/utils/config-editor.ts +19 -19
  157. package/src/utils/copy-public.ts +17 -17
  158. package/src/utils/copy-src.ts +11 -11
  159. package/src/utils/esbuild-config.ts +33 -33
  160. package/src/utils/output-utils.ts +11 -11
  161. package/src/utils/package-utils.ts +12 -12
  162. package/src/utils/rebuild-manager.ts +3 -3
  163. package/src/utils/replace-deps.ts +361 -361
  164. package/src/utils/sd-config.ts +44 -44
  165. package/src/utils/tailwind-config-deps.ts +98 -98
  166. package/src/utils/template.ts +56 -56
  167. package/src/utils/tsconfig.ts +127 -127
  168. package/src/utils/typecheck-serialization.ts +86 -86
  169. package/src/utils/vite-config.ts +341 -341
  170. package/src/utils/worker-events.ts +16 -16
  171. package/src/utils/worker-utils.ts +45 -45
  172. package/src/workers/client.worker.ts +34 -34
  173. package/src/workers/dts.worker.ts +467 -467
  174. package/src/workers/library.worker.ts +314 -314
  175. package/src/workers/lint.worker.ts +16 -16
  176. package/src/workers/server-runtime.worker.ts +157 -157
  177. package/src/workers/server.worker.ts +572 -572
  178. package/templates/add-client/__CLIENT__/package.json.hbs +1 -1
  179. package/templates/add-server/__SERVER__/package.json.hbs +2 -2
  180. package/templates/init/package.json.hbs +3 -3
  181. package/tests/config-editor.spec.ts +160 -0
  182. package/tests/copy-src.spec.ts +50 -0
  183. package/tests/get-compiler-options-for-package.spec.ts +139 -0
  184. package/tests/get-package-source-files.spec.ts +181 -0
  185. package/tests/get-types-from-package-json.spec.ts +107 -0
  186. package/tests/infra/ResultCollector.spec.ts +39 -0
  187. package/tests/infra/SignalHandler.spec.ts +38 -0
  188. package/tests/infra/WorkerManager.spec.ts +97 -0
  189. package/tests/load-ignore-patterns.spec.ts +188 -0
  190. package/tests/load-sd-config.spec.ts +137 -0
  191. package/tests/package-utils.spec.ts +188 -0
  192. package/tests/parse-root-tsconfig.spec.ts +89 -0
  193. package/tests/replace-deps.spec.ts +308 -0
  194. package/tests/run-lint.spec.ts +415 -0
  195. package/tests/run-typecheck.spec.ts +653 -0
  196. package/tests/run-watch.spec.ts +75 -0
  197. package/tests/sd-cli.spec.ts +330 -0
  198. package/tests/tailwind-config-deps.spec.ts +30 -0
  199. package/tests/template.spec.ts +70 -0
  200. package/tests/utils/rebuild-manager.spec.ts +43 -0
  201. package/tests/write-changed-output-files.spec.ts +97 -0
@@ -1,86 +1,86 @@
1
- import ts from "typescript";
2
- import { fsExistsSync, fsReadSync } from "@simplysm/core-node";
3
-
4
- /**
5
- * Worker로 전달 가능한 직렬화된 Diagnostic
6
- */
7
- export interface SerializedDiagnostic {
8
- category: number;
9
- code: number;
10
- messageText: string;
11
- file?: {
12
- fileName: string;
13
- };
14
- start?: number;
15
- length?: number;
16
- }
17
-
18
- /**
19
- * Diagnostic 직렬화 가능한 형태로 변환
20
- * (Worker thread structured clone 통신을 위해 순환 참조/함수 제거)
21
- */
22
- export function serializeDiagnostic(diagnostic: ts.Diagnostic): SerializedDiagnostic {
23
- // DiagnosticMessageChain 경우 전체 체인을 평탄화하여 모든 컨텍스트 정보 보존
24
- const messageText = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
25
-
26
- return {
27
- category: diagnostic.category,
28
- code: diagnostic.code,
29
- messageText,
30
- file: diagnostic.file
31
- ? {
32
- fileName: diagnostic.file.fileName,
33
- }
34
- : undefined,
35
- start: diagnostic.start,
36
- length: diagnostic.length,
37
- };
38
- }
39
-
40
- /**
41
- * 파일명에서 TypeScript ScriptKind 결정
42
- */
43
- function getScriptKind(fileName: string): ts.ScriptKind {
44
- if (fileName.endsWith(".tsx")) return ts.ScriptKind.TSX;
45
- if (fileName.endsWith(".jsx")) return ts.ScriptKind.JSX;
46
- if (fileName.endsWith(".js") || fileName.endsWith(".mjs") || fileName.endsWith(".cjs"))
47
- return ts.ScriptKind.JS;
48
- return ts.ScriptKind.TS;
49
- }
50
-
51
- /**
52
- * SerializedDiagnostic ts.Diagnostic으로 복원
53
- * 실제 파일 내용을 읽어 formatDiagnosticsWithColorAndContext에서 소스 코드 컨텍스트가 표시되도록
54
- * @param serialized 직렬화된 진단 정보
55
- * @param fileCache 파일 내용 캐시 (동일 파일 중복 읽기 방지)
56
- * @returns 복원된 ts.Diagnostic 객체
57
- */
58
- export function deserializeDiagnostic(
59
- serialized: SerializedDiagnostic,
60
- fileCache: Map<string, string>,
61
- ): ts.Diagnostic {
62
- let file: ts.SourceFile | undefined;
63
- if (serialized.file != null) {
64
- const fileName = serialized.file.fileName;
65
-
66
- // 캐시된 파일 내용 가져오기 (없으면 읽어서 캐시)
67
- // 파일이 삭제되었거나 접근 불가능한 경우 내용으로 처리
68
- // (소스 코드 컨텍스트는 표시되지 않지만 진단 메시지는 정상 출력됨)
69
- if (!fileCache.has(fileName)) {
70
- fileCache.set(fileName, fsExistsSync(fileName) ? fsReadSync(fileName) : "");
71
- }
72
- const content = fileCache.get(fileName)!;
73
-
74
- const scriptKind = getScriptKind(fileName);
75
- file = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, false, scriptKind);
76
- }
77
-
78
- return {
79
- category: serialized.category,
80
- code: serialized.code,
81
- messageText: serialized.messageText,
82
- file,
83
- start: serialized.start,
84
- length: serialized.length,
85
- };
86
- }
1
+ import ts from "typescript";
2
+ import { fsExistsSync, fsReadSync } from "@simplysm/core-node";
3
+
4
+ /**
5
+ * Serialized Diagnostic that can be passed to Worker
6
+ */
7
+ export interface SerializedDiagnostic {
8
+ category: number;
9
+ code: number;
10
+ messageText: string;
11
+ file?: {
12
+ fileName: string;
13
+ };
14
+ start?: number;
15
+ length?: number;
16
+ }
17
+
18
+ /**
19
+ * Convert Diagnostic to serializable form
20
+ * (remove circular references/functions for structured clone communication between Worker threads)
21
+ */
22
+ export function serializeDiagnostic(diagnostic: ts.Diagnostic): SerializedDiagnostic {
23
+ // If DiagnosticMessageChain, flatten entire chain to preserve all context info
24
+ const messageText = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
25
+
26
+ return {
27
+ category: diagnostic.category,
28
+ code: diagnostic.code,
29
+ messageText,
30
+ file: diagnostic.file
31
+ ? {
32
+ fileName: diagnostic.file.fileName,
33
+ }
34
+ : undefined,
35
+ start: diagnostic.start,
36
+ length: diagnostic.length,
37
+ };
38
+ }
39
+
40
+ /**
41
+ * Determine TypeScript ScriptKind from filename
42
+ */
43
+ function getScriptKind(fileName: string): ts.ScriptKind {
44
+ if (fileName.endsWith(".tsx")) return ts.ScriptKind.TSX;
45
+ if (fileName.endsWith(".jsx")) return ts.ScriptKind.JSX;
46
+ if (fileName.endsWith(".js") || fileName.endsWith(".mjs") || fileName.endsWith(".cjs"))
47
+ return ts.ScriptKind.JS;
48
+ return ts.ScriptKind.TS;
49
+ }
50
+
51
+ /**
52
+ * Restore SerializedDiagnostic to ts.Diagnostic
53
+ * Reads actual file contents so source code context is displayed in formatDiagnosticsWithColorAndContext
54
+ * @param serialized - Serialized diagnostic information
55
+ * @param fileCache - File content cache (prevent duplicate reads of same file)
56
+ * @returns Restored ts.Diagnostic object
57
+ */
58
+ export function deserializeDiagnostic(
59
+ serialized: SerializedDiagnostic,
60
+ fileCache: Map<string, string>,
61
+ ): ts.Diagnostic {
62
+ let file: ts.SourceFile | undefined;
63
+ if (serialized.file != null) {
64
+ const fileName = serialized.file.fileName;
65
+
66
+ // Get cached file content (read and cache if not present)
67
+ // If file was deleted or inaccessible, treat as empty content
68
+ // (source code context won't be displayed but diagnostic message is shown normally)
69
+ if (!fileCache.has(fileName)) {
70
+ fileCache.set(fileName, fsExistsSync(fileName) ? fsReadSync(fileName) : "");
71
+ }
72
+ const content = fileCache.get(fileName)!;
73
+
74
+ const scriptKind = getScriptKind(fileName);
75
+ file = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, false, scriptKind);
76
+ }
77
+
78
+ return {
79
+ category: serialized.category,
80
+ code: serialized.code,
81
+ messageText: serialized.messageText,
82
+ file,
83
+ start: serialized.start,
84
+ length: serialized.length,
85
+ };
86
+ }