@simplysm/sd-cli 12.13.21 → 12.13.23

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 (237) hide show
  1. package/package.json +12 -12
  2. package/src/entry/{sd-cli-cordova.ts → SdCliCordova.ts} +2 -2
  3. package/src/entry/{sd-cli-electron.ts → SdCliElectron.ts} +3 -3
  4. package/src/entry/{sd-cli-local-update.ts → SdCliLocalUpdate.ts} +6 -4
  5. package/src/entry/{sd-cli-project.ts → SdCliProject.ts} +55 -71
  6. package/src/pkg-builders/SdProjectBuildRunner.ts +347 -0
  7. package/src/pkg-builders/client/{sd-client.build-runner.ts → SdClientBuildRunner.ts} +31 -38
  8. package/src/pkg-builders/client/{sd-ng.bundler.ts → SdNgBundler.ts} +22 -31
  9. package/src/pkg-builders/client/{sd-ng.bundler-context.ts → SdNgBundlerContext.ts} +7 -9
  10. package/src/pkg-builders/client/{sd-ng.plugin-creator.ts → createSdNgPlugin.ts} +11 -94
  11. package/src/pkg-builders/commons/{scope-path.ts → ScopePathSet.ts} +3 -3
  12. package/src/pkg-builders/commons/SdBuildRunnerBase.ts +47 -0
  13. package/src/pkg-builders/lib/{sd-cli-db-context.file-generator.ts → SdCliDbContextFileGenerator.ts} +1 -1
  14. package/src/pkg-builders/lib/{sd-js-lib.build-runner.ts → SdJsLibBuildRunner.ts} +13 -32
  15. package/src/pkg-builders/lib/SdTsLibBuildRunner.ts +47 -0
  16. package/src/pkg-builders/lib/{sd-ts-lib.builder.ts → SdTsLibBuilder.ts} +12 -14
  17. package/src/pkg-builders/server/{sd-server.build-runner.ts → SdServerBuildRunner.ts} +25 -48
  18. package/src/pkg-builders/server/{sd-server.bundler.ts → SdServerBundler.ts} +26 -23
  19. package/src/pkg-builders/server/{sd-server.plugin-creator.ts → createSdServerPlugin.ts} +9 -7
  20. package/src/sd-cli-entry.ts +6 -12
  21. package/src/sd-cli.ts +1 -15
  22. package/src/ts-compiler/{sd-dependency-analyzer.ts → SdDepAnalyzer.ts} +5 -9
  23. package/src/ts-compiler/{sd-dependency-cache.ts → SdDepCache.ts} +1 -137
  24. package/src/ts-compiler/{sd-style-bundler.ts → SdStyleBundler.ts} +5 -5
  25. package/src/ts-compiler/{sd-ts-compiler.ts → SdTsCompiler.ts} +17 -144
  26. package/src/types/{build.types.ts → build/ISdBuildMessage.ts} +0 -6
  27. package/src/types/build/ISdBuildResult.ts +9 -0
  28. package/src/types/build/ISdTsCompilerOptions.ts +15 -0
  29. package/src/types/build/ISdTsCompilerResult.ts +12 -0
  30. package/src/types/build/TStylesheetBundlingResult.ts +15 -0
  31. package/src/types/{common-configs.types.ts → common-config/INpmConfig.ts} +0 -6
  32. package/src/types/common-config/ITsConfig.ts +5 -0
  33. package/src/types/{config.types.ts → config/ISdProjectConfig.ts} +0 -1
  34. package/src/types/plugin/ISdCliNgPluginResultCache.ts +9 -0
  35. package/src/types/{build-plugin.types.ts → plugin/ISdCliServerPluginResultCache.ts} +0 -7
  36. package/src/types/worker/ISdBuildRunnerWorkerType.ts +24 -0
  37. package/src/types/worker/IServerWorkerType.ts +8 -0
  38. package/src/utils/{sd-cli-convert-message.utils.ts → SdCliConvertMessageUtils.ts} +6 -3
  39. package/src/{entry/utils → utils}/loadProjConfAsync.ts +10 -6
  40. package/src/workers/build-runner.worker.ts +30 -29
  41. package/src/workers/server.worker.ts +7 -7
  42. package/tests/deps/sd-dependency-analyzer.spec.ts +38 -69
  43. package/tests/deps/sd-dependency-cache.spec.ts +3 -6
  44. package/dist/entry/sd-cli-ai-command.d.ts +0 -3
  45. package/dist/entry/sd-cli-ai-command.js +0 -65
  46. package/dist/entry/sd-cli-ai-command.js.map +0 -1
  47. package/dist/entry/sd-cli-cordova.d.ts +0 -16
  48. package/dist/entry/sd-cli-cordova.js +0 -398
  49. package/dist/entry/sd-cli-cordova.js.map +0 -1
  50. package/dist/entry/sd-cli-electron.d.ts +0 -18
  51. package/dist/entry/sd-cli-electron.js +0 -129
  52. package/dist/entry/sd-cli-electron.js.map +0 -1
  53. package/dist/entry/sd-cli-local-update.d.ts +0 -11
  54. package/dist/entry/sd-cli-local-update.js +0 -84
  55. package/dist/entry/sd-cli-local-update.js.map +0 -1
  56. package/dist/entry/sd-cli-postinstall.d.ts +0 -3
  57. package/dist/entry/sd-cli-postinstall.js +0 -39
  58. package/dist/entry/sd-cli-postinstall.js.map +0 -1
  59. package/dist/entry/sd-cli-project.d.ts +0 -22
  60. package/dist/entry/sd-cli-project.js +0 -325
  61. package/dist/entry/sd-cli-project.js.map +0 -1
  62. package/dist/entry/utils/loadProjConfAsync.d.ts +0 -5
  63. package/dist/entry/utils/loadProjConfAsync.js +0 -8
  64. package/dist/entry/utils/loadProjConfAsync.js.map +0 -1
  65. package/dist/fix/convert-extends-sd-modal-base-to-interface.d.ts +0 -1
  66. package/dist/fix/convert-extends-sd-modal-base-to-interface.js +0 -289
  67. package/dist/fix/convert-extends-sd-modal-base-to-interface.js.map +0 -1
  68. package/dist/fix/convert-extends-sd-print-template-base-to-interface.d.ts +0 -1
  69. package/dist/fix/convert-extends-sd-print-template-base-to-interface.js +0 -179
  70. package/dist/fix/convert-extends-sd-print-template-base-to-interface.js.map +0 -1
  71. package/dist/fix/convert-flat-pages-to-flat-menus.d.ts +0 -1
  72. package/dist/fix/convert-flat-pages-to-flat-menus.js +0 -68
  73. package/dist/fix/convert-flat-pages-to-flat-menus.js.map +0 -1
  74. package/dist/fix/convert-get-menus-to-usable-menus.d.ts +0 -1
  75. package/dist/fix/convert-get-menus-to-usable-menus.js +0 -48
  76. package/dist/fix/convert-get-menus-to-usable-menus.js.map +0 -1
  77. package/dist/fix/convert-modal-show-params.d.ts +0 -1
  78. package/dist/fix/convert-modal-show-params.js +0 -29
  79. package/dist/fix/convert-modal-show-params.js.map +0 -1
  80. package/dist/fix/convert-print-params.d.ts +0 -1
  81. package/dist/fix/convert-print-params.js +0 -37
  82. package/dist/fix/convert-print-params.js.map +0 -1
  83. package/dist/fix/convert-private-to-hash.d.ts +0 -1
  84. package/dist/fix/convert-private-to-hash.js +0 -59
  85. package/dist/fix/convert-private-to-hash.js.map +0 -1
  86. package/dist/fix/convert-sd-angular-symbol-names.d.ts +0 -1
  87. package/dist/fix/convert-sd-angular-symbol-names.js +0 -23
  88. package/dist/fix/convert-sd-angular-symbol-names.js.map +0 -1
  89. package/dist/fix/convert-sd-icon-to-fa-icon.d.ts +0 -1
  90. package/dist/fix/convert-sd-icon-to-fa-icon.js +0 -80
  91. package/dist/fix/convert-sd-icon-to-fa-icon.js.map +0 -1
  92. package/dist/fix/convert-sd-sheet-bindings-safety.d.ts +0 -1
  93. package/dist/fix/convert-sd-sheet-bindings-safety.js +0 -57
  94. package/dist/fix/convert-sd-sheet-bindings-safety.js.map +0 -1
  95. package/dist/fix/convert-select-modal-button-to-select-button.d.ts +0 -1
  96. package/dist/fix/convert-select-modal-button-to-select-button.js +0 -64
  97. package/dist/fix/convert-select-modal-button-to-select-button.js.map +0 -1
  98. package/dist/fix/convert-setup-cumulate-selected-keys-to-object-param.d.ts +0 -1
  99. package/dist/fix/convert-setup-cumulate-selected-keys-to-object-param.js +0 -38
  100. package/dist/fix/convert-setup-cumulate-selected-keys-to-object-param.js.map +0 -1
  101. package/dist/fix/convert-to-use-perms-signal.d.ts +0 -1
  102. package/dist/fix/convert-to-use-perms-signal.js +0 -99
  103. package/dist/fix/convert-to-use-perms-signal.js.map +0 -1
  104. package/dist/fix/core/convert-symbol.d.ts +0 -1
  105. package/dist/fix/core/convert-symbol.js +0 -93
  106. package/dist/fix/core/convert-symbol.js.map +0 -1
  107. package/dist/fix/core/get-ts-morph-source-files.d.ts +0 -1
  108. package/dist/fix/core/get-ts-morph-source-files.js +0 -8
  109. package/dist/fix/core/get-ts-morph-source-files.js.map +0 -1
  110. package/dist/fix/core/remove-named-import.d.ts +0 -1
  111. package/dist/fix/core/remove-named-import.js +0 -14
  112. package/dist/fix/core/remove-named-import.js.map +0 -1
  113. package/dist/fix/core/remove-symbol.d.ts +0 -1
  114. package/dist/fix/core/remove-symbol.js +0 -76
  115. package/dist/fix/core/remove-symbol.js.map +0 -1
  116. package/dist/fix/remove-sd-angular-symbol-names.d.ts +0 -1
  117. package/dist/fix/remove-sd-angular-symbol-names.js +0 -9
  118. package/dist/fix/remove-sd-angular-symbol-names.js.map +0 -1
  119. package/dist/fix/remove-unused-imports.d.ts +0 -1
  120. package/dist/fix/remove-unused-imports.js +0 -42
  121. package/dist/fix/remove-unused-imports.js.map +0 -1
  122. package/dist/fix/remove-unused-injects.d.ts +0 -1
  123. package/dist/fix/remove-unused-injects.js +0 -38
  124. package/dist/fix/remove-unused-injects.js.map +0 -1
  125. package/dist/fix/remove-unused-protected-readonly.d.ts +0 -1
  126. package/dist/fix/remove-unused-protected-readonly.js +0 -52
  127. package/dist/fix/remove-unused-protected-readonly.js.map +0 -1
  128. package/dist/pkg-builders/client/sd-cli-ng-routes.file-generator.d.ts +0 -9
  129. package/dist/pkg-builders/client/sd-cli-ng-routes.file-generator.js +0 -89
  130. package/dist/pkg-builders/client/sd-cli-ng-routes.file-generator.js.map +0 -1
  131. package/dist/pkg-builders/client/sd-client.build-runner.d.ts +0 -7
  132. package/dist/pkg-builders/client/sd-client.build-runner.js +0 -119
  133. package/dist/pkg-builders/client/sd-client.build-runner.js.map +0 -1
  134. package/dist/pkg-builders/client/sd-ng.bundler-context.d.ts +0 -22
  135. package/dist/pkg-builders/client/sd-ng.bundler-context.js +0 -91
  136. package/dist/pkg-builders/client/sd-ng.bundler-context.js.map +0 -1
  137. package/dist/pkg-builders/client/sd-ng.bundler.d.ts +0 -27
  138. package/dist/pkg-builders/client/sd-ng.bundler.js +0 -489
  139. package/dist/pkg-builders/client/sd-ng.bundler.js.map +0 -1
  140. package/dist/pkg-builders/client/sd-ng.plugin-creator.d.ts +0 -13
  141. package/dist/pkg-builders/client/sd-ng.plugin-creator.js +0 -223
  142. package/dist/pkg-builders/client/sd-ng.plugin-creator.js.map +0 -1
  143. package/dist/pkg-builders/commons/build-runner.base.d.ts +0 -29
  144. package/dist/pkg-builders/commons/build-runner.base.js +0 -114
  145. package/dist/pkg-builders/commons/build-runner.base.js.map +0 -1
  146. package/dist/pkg-builders/commons/scope-path.d.ts +0 -7
  147. package/dist/pkg-builders/commons/scope-path.js +0 -14
  148. package/dist/pkg-builders/commons/scope-path.js.map +0 -1
  149. package/dist/pkg-builders/lib/sd-cli-db-context.file-generator.d.ts +0 -9
  150. package/dist/pkg-builders/lib/sd-cli-db-context.file-generator.js +0 -134
  151. package/dist/pkg-builders/lib/sd-cli-db-context.file-generator.js.map +0 -1
  152. package/dist/pkg-builders/lib/sd-cli-index.file-generator.d.ts +0 -10
  153. package/dist/pkg-builders/lib/sd-cli-index.file-generator.js +0 -61
  154. package/dist/pkg-builders/lib/sd-cli-index.file-generator.js.map +0 -1
  155. package/dist/pkg-builders/lib/sd-js-lib.build-runner.d.ts +0 -8
  156. package/dist/pkg-builders/lib/sd-js-lib.build-runner.js +0 -50
  157. package/dist/pkg-builders/lib/sd-js-lib.build-runner.js.map +0 -1
  158. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.d.ts +0 -7
  159. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.js +0 -41
  160. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.js.map +0 -1
  161. package/dist/pkg-builders/lib/sd-ts-lib.builder.d.ts +0 -14
  162. package/dist/pkg-builders/lib/sd-ts-lib.builder.js +0 -65
  163. package/dist/pkg-builders/lib/sd-ts-lib.builder.js.map +0 -1
  164. package/dist/pkg-builders/sd-multi.build-runner.d.ts +0 -14
  165. package/dist/pkg-builders/sd-multi.build-runner.js +0 -228
  166. package/dist/pkg-builders/sd-multi.build-runner.js.map +0 -1
  167. package/dist/pkg-builders/server/sd-server.build-runner.d.ts +0 -7
  168. package/dist/pkg-builders/server/sd-server.build-runner.js +0 -264
  169. package/dist/pkg-builders/server/sd-server.build-runner.js.map +0 -1
  170. package/dist/pkg-builders/server/sd-server.bundler.d.ts +0 -22
  171. package/dist/pkg-builders/server/sd-server.bundler.js +0 -153
  172. package/dist/pkg-builders/server/sd-server.bundler.js.map +0 -1
  173. package/dist/pkg-builders/server/sd-server.plugin-creator.d.ts +0 -13
  174. package/dist/pkg-builders/server/sd-server.plugin-creator.js +0 -62
  175. package/dist/pkg-builders/server/sd-server.plugin-creator.js.map +0 -1
  176. package/dist/sd-cli-entry.d.ts +0 -2
  177. package/dist/sd-cli-entry.js +0 -263
  178. package/dist/sd-cli-entry.js.map +0 -1
  179. package/dist/sd-cli.d.ts +0 -2
  180. package/dist/sd-cli.js +0 -97
  181. package/dist/sd-cli.js.map +0 -1
  182. package/dist/ts-compiler/sd-dependency-analyzer.d.ts +0 -15
  183. package/dist/ts-compiler/sd-dependency-analyzer.js +0 -302
  184. package/dist/ts-compiler/sd-dependency-analyzer.js.map +0 -1
  185. package/dist/ts-compiler/sd-dependency-cache.d.ts +0 -43
  186. package/dist/ts-compiler/sd-dependency-cache.js +0 -310
  187. package/dist/ts-compiler/sd-dependency-cache.js.map +0 -1
  188. package/dist/ts-compiler/sd-style-bundler.d.ts +0 -16
  189. package/dist/ts-compiler/sd-style-bundler.js +0 -118
  190. package/dist/ts-compiler/sd-style-bundler.js.map +0 -1
  191. package/dist/ts-compiler/sd-ts-compiler.d.ts +0 -8
  192. package/dist/ts-compiler/sd-ts-compiler.js +0 -522
  193. package/dist/ts-compiler/sd-ts-compiler.js.map +0 -1
  194. package/dist/types/build-plugin.types.d.ts +0 -14
  195. package/dist/types/build-plugin.types.js +0 -2
  196. package/dist/types/build-plugin.types.js.map +0 -1
  197. package/dist/types/build-runner.types.d.ts +0 -10
  198. package/dist/types/build-runner.types.js +0 -2
  199. package/dist/types/build-runner.types.js.map +0 -1
  200. package/dist/types/build.types.d.ts +0 -15
  201. package/dist/types/build.types.js +0 -2
  202. package/dist/types/build.types.js.map +0 -1
  203. package/dist/types/common-configs.types.d.ts +0 -24
  204. package/dist/types/common-configs.types.js +0 -2
  205. package/dist/types/common-configs.types.js.map +0 -1
  206. package/dist/types/config.types.d.ts +0 -109
  207. package/dist/types/config.types.js +0 -2
  208. package/dist/types/config.types.js.map +0 -1
  209. package/dist/types/ts-compiler.types.d.ts +0 -37
  210. package/dist/types/ts-compiler.types.js +0 -2
  211. package/dist/types/ts-compiler.types.js.map +0 -1
  212. package/dist/types/worker.types.d.ts +0 -67
  213. package/dist/types/worker.types.js +0 -2
  214. package/dist/types/worker.types.js.map +0 -1
  215. package/dist/utils/sd-cli-convert-message.utils.d.ts +0 -21
  216. package/dist/utils/sd-cli-convert-message.utils.js +0 -137
  217. package/dist/utils/sd-cli-convert-message.utils.js.map +0 -1
  218. package/dist/utils/sd-cli-performance-time.d.ts +0 -9
  219. package/dist/utils/sd-cli-performance-time.js +0 -51
  220. package/dist/utils/sd-cli-performance-time.js.map +0 -1
  221. package/dist/workers/build-runner.worker.d.ts +0 -1
  222. package/dist/workers/build-runner.worker.js +0 -49
  223. package/dist/workers/build-runner.worker.js.map +0 -1
  224. package/dist/workers/server.worker.d.ts +0 -1
  225. package/dist/workers/server.worker.js +0 -50
  226. package/dist/workers/server.worker.js.map +0 -1
  227. package/src/pkg-builders/commons/build-runner.base.ts +0 -184
  228. package/src/pkg-builders/lib/sd-ts-lib.build-runner.ts +0 -57
  229. package/src/pkg-builders/sd-multi.build-runner.ts +0 -304
  230. package/src/types/build-runner.types.ts +0 -11
  231. package/src/types/ts-compiler.types.ts +0 -43
  232. package/src/types/worker.types.ts +0 -51
  233. /package/src/entry/{sd-cli-ai-command.ts → SdCliAiCommand.ts} +0 -0
  234. /package/src/entry/{sd-cli-postinstall.ts → SdCliPostinstall.ts} +0 -0
  235. /package/src/pkg-builders/client/{sd-cli-ng-routes.file-generator.ts → SdCliNgRoutesFileGenerator.ts} +0 -0
  236. /package/src/pkg-builders/lib/{sd-cli-index.file-generator.ts → SdCliIndexFileGenerator.ts} +0 -0
  237. /package/src/utils/{sd-cli-performance-time.ts → SdCliPerformanceTimer.ts} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { beforeEach, describe, expect, it } from "vitest";
2
2
  import * as ts from "typescript";
3
3
  import { PathUtils, TNormPath } from "@simplysm/sd-core-node";
4
- import { SdDependencyCache } from "../../src/ts-compiler/sd-dependency-cache";
5
- import { SdDependencyAnalyzer } from "../../src/ts-compiler/sd-dependency-analyzer";
4
+ import { SdDepCache } from "../../src/ts-compiler/SdDepCache";
5
+ import { SdDepAnalyzer } from "../../src/ts-compiler/SdDepAnalyzer";
6
6
 
7
7
  function createMockProgram(sources: Record<string, string>) {
8
8
  const fileNames = Object.keys(sources);
@@ -24,10 +24,10 @@ function norm(path: string): TNormPath {
24
24
 
25
25
  describe("DependencyAnalyzer", () => {
26
26
  const scope = PathUtils.norm("/");
27
- let depCache: SdDependencyCache;
27
+ let depCache: SdDepCache;
28
28
 
29
29
  beforeEach(() => {
30
- depCache = new SdDependencyCache();
30
+ depCache = new SdDepCache();
31
31
  });
32
32
 
33
33
  it("1레벨 의존성 추적", () => {
@@ -37,13 +37,10 @@ describe("DependencyAnalyzer", () => {
37
37
  };
38
38
 
39
39
  const { program, compilerHost } = createMockProgram(files);
40
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
40
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
41
41
 
42
42
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
43
- expect(result).toEqual(new Set([
44
- norm("/a.ts"),
45
- norm("/b.ts"),
46
- ]));
43
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts")]));
47
44
  });
48
45
 
49
46
  it("2레벨 의존성 추적", () => {
@@ -54,23 +51,22 @@ describe("DependencyAnalyzer", () => {
54
51
  };
55
52
 
56
53
  const { program, compilerHost } = createMockProgram(files);
57
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
54
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
58
55
 
59
56
  {
60
57
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
61
- expect(result).toEqual(new Set([
62
- norm("/a.ts"),
63
- norm("/b.ts"), // a파일이 사라지거나 하면 b가 오류를 뱉어야 하므로
64
- norm("/c.ts"),
65
- ]));
58
+ expect(result).toEqual(
59
+ new Set([
60
+ norm("/a.ts"),
61
+ norm("/b.ts"), // a파일이 사라지거나 하면 b가 오류를 뱉어야 하므로
62
+ norm("/c.ts"),
63
+ ]),
64
+ );
66
65
  }
67
66
 
68
67
  {
69
68
  const result = depCache.getAffectedFileSet(new Set([norm("/b.ts")]));
70
- expect(result).toEqual(new Set([
71
- norm("/b.ts"),
72
- norm("/c.ts"),
73
- ]));
69
+ expect(result).toEqual(new Set([norm("/b.ts"), norm("/c.ts")]));
74
70
  }
75
71
  });
76
72
 
@@ -82,23 +78,22 @@ describe("DependencyAnalyzer", () => {
82
78
  };
83
79
 
84
80
  const { program, compilerHost } = createMockProgram(files);
85
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
81
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
86
82
 
87
83
  {
88
84
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
89
- expect(result).toEqual(new Set([
90
- norm("/a.ts"),
91
- norm("/b.ts"), // a파일이 사라지거나 하면 b가 오류를 뱉어야 하므로
92
- norm("/c.ts"),
93
- ]));
85
+ expect(result).toEqual(
86
+ new Set([
87
+ norm("/a.ts"),
88
+ norm("/b.ts"), // a파일이 사라지거나 하면 b가 오류를 뱉어야 하므로
89
+ norm("/c.ts"),
90
+ ]),
91
+ );
94
92
  }
95
93
 
96
94
  {
97
95
  const result = depCache.getAffectedFileSet(new Set([norm("/b.ts")]));
98
- expect(result).toEqual(new Set([
99
- norm("/b.ts"),
100
- norm("/c.ts"),
101
- ]));
96
+ expect(result).toEqual(new Set([norm("/b.ts"), norm("/c.ts")]));
102
97
  }
103
98
  });
104
99
 
@@ -111,27 +106,19 @@ describe("DependencyAnalyzer", () => {
111
106
  };
112
107
 
113
108
  const { program, compilerHost } = createMockProgram(files);
114
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
109
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
115
110
 
116
111
  {
117
112
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
118
- expect(result).toEqual(new Set([
119
- norm("/a.ts"),
120
- norm("/b.ts"),
121
- norm("/c.ts"),
122
- ]));
113
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts"), norm("/c.ts")]));
123
114
  }
124
115
 
125
116
  {
126
117
  const result = depCache.getAffectedFileSet(new Set([norm("/a_1.ts")]));
127
- expect(result).toEqual(new Set([
128
- norm("/a_1.ts"),
129
- norm("/b.ts"),
130
- ]));
118
+ expect(result).toEqual(new Set([norm("/a_1.ts"), norm("/b.ts")]));
131
119
  }
132
120
  });
133
121
 
134
-
135
122
  it("A.b.c와같은 간접 의존성 추적", () => {
136
123
  const files = {
137
124
  "/a.ts": `
@@ -156,15 +143,11 @@ describe("DependencyAnalyzer", () => {
156
143
  };
157
144
 
158
145
  const { program, compilerHost } = createMockProgram(files);
159
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
146
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
160
147
 
161
148
  // B가 변경되면 A와 C 모두 영향 받는지 확인
162
149
  const result = depCache.getAffectedFileSet(new Set([norm("/b.ts")]));
163
- expect(result).toEqual(new Set([
164
- norm("/a.ts"),
165
- norm("/b.ts"),
166
- norm("/c.ts"),
167
- ]));
150
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts"), norm("/c.ts")]));
168
151
  });
169
152
 
170
153
  it("A['b'].c와같은 Element 간접 의존성 추적", () => {
@@ -191,15 +174,11 @@ describe("DependencyAnalyzer", () => {
191
174
  };
192
175
 
193
176
  const { program, compilerHost } = createMockProgram(files);
194
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
177
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
195
178
 
196
179
  // B가 변경되면 A와 C 모두 영향 받는지 확인
197
180
  const result = depCache.getAffectedFileSet(new Set([norm("/b.ts")]));
198
- expect(result).toEqual(new Set([
199
- norm("/a.ts"),
200
- norm("/b.ts"),
201
- norm("/c.ts"),
202
- ]));
181
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts"), norm("/c.ts")]));
203
182
  });
204
183
 
205
184
  it("타입만 사용하는 경우에도 의존성으로 추적된다", () => {
@@ -209,13 +188,10 @@ describe("DependencyAnalyzer", () => {
209
188
  };
210
189
 
211
190
  const { program, compilerHost } = createMockProgram(files);
212
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
191
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
213
192
 
214
193
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
215
- expect(result).toEqual(new Set([
216
- norm("/a.ts"),
217
- norm("/b.ts"),
218
- ]));
194
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts")]));
219
195
  });
220
196
 
221
197
  it("함수 반환 타입을 통한 간접 의존성도 추적된다", () => {
@@ -226,14 +202,10 @@ describe("DependencyAnalyzer", () => {
226
202
  };
227
203
 
228
204
  const { program, compilerHost } = createMockProgram(files);
229
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
205
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
230
206
 
231
207
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
232
- expect(result).toEqual(new Set([
233
- norm("/a.ts"),
234
- norm("/b.ts"),
235
- norm("/c.ts"),
236
- ]));
208
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts"), norm("/c.ts")]));
237
209
  });
238
210
 
239
211
  it("optional chaining으로 접근해도 의존성은 추적된다", () => {
@@ -243,13 +215,10 @@ describe("DependencyAnalyzer", () => {
243
215
  };
244
216
 
245
217
  const { program, compilerHost } = createMockProgram(files);
246
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
218
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
247
219
 
248
220
  const result = depCache.getAffectedFileSet(new Set([norm("/a.ts")]));
249
- expect(result).toEqual(new Set([
250
- norm("/a.ts"),
251
- norm("/b.ts"),
252
- ]));
221
+ expect(result).toEqual(new Set([norm("/a.ts"), norm("/b.ts")]));
253
222
  });
254
223
 
255
224
  it("invalidates()는 영향 받은 모든 파일을 캐시에서 제거한다", () => {
@@ -260,7 +229,7 @@ describe("DependencyAnalyzer", () => {
260
229
  };
261
230
 
262
231
  const { program, compilerHost } = createMockProgram(files);
263
- SdDependencyAnalyzer.analyze(program, compilerHost, [scope], depCache);
232
+ SdDepAnalyzer.analyze(program, compilerHost, [scope], depCache);
264
233
 
265
234
  // invalidate 처리
266
235
  depCache.invalidates(new Set([norm("/a.ts")]));
@@ -1,10 +1,7 @@
1
1
  import "@simplysm/sd-core-common";
2
2
  import { PathUtils } from "@simplysm/sd-core-node";
3
3
  import { beforeEach, describe, expect, it } from "vitest";
4
- import {
5
- ISdAffectedFileTreeNode,
6
- SdDependencyCache,
7
- } from "../../src/ts-compiler/sd-dependency-cache";
4
+ import { ISdAffectedFileTreeNode, SdDepCache } from "../../src/ts-compiler/SdDepCache";
8
5
 
9
6
  describe("SdDependencyCache", () => {
10
7
  const a = PathUtils.norm("/a.ts");
@@ -13,10 +10,10 @@ describe("SdDependencyCache", () => {
13
10
  const html = PathUtils.norm("/comp.html");
14
11
  // const style = PathUtils.norm("/style.scss");
15
12
 
16
- let depCache: SdDependencyCache;
13
+ let depCache: SdDepCache;
17
14
 
18
15
  beforeEach(() => {
19
- depCache = new SdDependencyCache();
16
+ depCache = new SdDepCache();
20
17
  });
21
18
 
22
19
  it("export * from 구문으로 재export된 심볼이 정확히 전파된다", () => {
@@ -1,3 +0,0 @@
1
- export declare class SdCliAiCommand {
2
- static commitAsync(): Promise<void>;
3
- }
@@ -1,65 +0,0 @@
1
- import { SdProcess } from "@simplysm/sd-core-node";
2
- import { NeverEntryError, StringUtils } from "@simplysm/sd-core-common";
3
- import Anthropic from "@anthropic-ai/sdk";
4
- export class SdCliAiCommand {
5
- static async commitAsync() {
6
- if (StringUtils.isNullOrEmpty(process.env["ANTHROPIC_API_KEY"])) {
7
- throw new Error("ANTHROPIC_API_KEY 환경변수가 설정되어 있지 않습니다.");
8
- }
9
- process.stdout.write("add 실행\n");
10
- await SdProcess.spawnAsync("git", ["add", "."]);
11
- process.stdout.write(`diff 실행\n`);
12
- const diff = await SdProcess.spawnAsync("git", [
13
- "diff",
14
- "--no-textconv",
15
- "--staged",
16
- "--",
17
- ".",
18
- `:(exclude).*`,
19
- `:(exclude)_*`,
20
- `:(exclude)yarn.lock`,
21
- `:(exclude)packages/*/styles.css`,
22
- ]);
23
- if (StringUtils.isNullOrEmpty(diff.trim())) {
24
- throw new Error("변경사항이 없습니다.");
25
- }
26
- const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] });
27
- process.stdout.write(`AI를 통해 커밋 메시지 생성중...(${diff.length.toLocaleString()})\n`);
28
- const message = await client.messages.create({
29
- model: "claude-3-5-haiku-latest",
30
- max_tokens: 1024,
31
- messages: [
32
- {
33
- role: "user",
34
- content: `
35
- 다음 "git diff"을 통해 변경된 사항들을 분석하고, 변경된 기능들에 대한 적절한 커밋메시지를 작성해줘
36
- - 한국어로 작성 해줘
37
- - 첫줄은 변경사항 모두를 아우를 수 있는 하나의 메시지로 작성해줘
38
- - 반드시 커밋메시지만 "\`\`\`"코드블록으로 감싸서 답변해줘.
39
- - 첫줄 아래 한줄을 비우고, 자세한 기능 목록을 "-"로 구분하여 작성해줘.
40
- - 자세한 내용에는 모든 변경사항에 대한 설명이 누락 없이 표현되어야해
41
- - 변경사항을 명확하고 간결하게 설명해야해
42
- - 수동적인 표현 대신 능동적 표현을 사용해
43
-
44
- "git diff" 내용:
45
- ${diff}`,
46
- },
47
- ],
48
- });
49
- if (message.content[0].type !== "text") {
50
- throw new NeverEntryError();
51
- }
52
- process.stdout.write("\n\n-------------------------\n" +
53
- message.content[0].text +
54
- "\n-------------------------\n\n");
55
- const messages = message.content[0].text
56
- .replaceAll(/"/g, '\\"')
57
- .matchAll(/```(?:\w*\n)?([\s\S]*?)```/g);
58
- const commitMessage = Array.from(messages)
59
- .map((item) => item[1].trim())
60
- .join("\n\n\n");
61
- await SdProcess.spawnAsync("git", ["commit", "-m", commitMessage]);
62
- process.stdout.write("커밋이 완료되었습니다. 위 커밋메시지가 맘에들지 않을경우, 직접 커밋을 취소하세요.\n");
63
- }
64
- }
65
- //# sourceMappingURL=sd-cli-ai-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sd-cli-ai-command.js","sourceRoot":"","sources":["../../src/entry/sd-cli-ai-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,KAAK,CAAC,WAAW;QACtB,IAAI,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAEhD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE;YAC7C,MAAM;YACN,eAAe;YACf,UAAU;YACV,IAAI;YACJ,GAAG;YACH,cAAc;YACd,cAAc;YACd,qBAAqB;YACrB,iCAAiC;SAClC,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAE3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3C,KAAK,EAAE,yBAAyB;YAChC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;;;;;;;;;;;EAWjB,IAAI,EAAE;iBACC;aACF;SACF,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,eAAe,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iCAAiC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACvB,iCAAiC,CACpC,CAAC;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;aACrC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;aACvB,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;aACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElB,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kDAAkD,CACnD,CAAC;IACJ,CAAC;CACF"}
@@ -1,16 +0,0 @@
1
- import { ISdClientBuilderCordovaConfig } from "../types/config.types";
2
- export declare class SdCliCordova {
3
- #private;
4
- private readonly _opt;
5
- constructor(_opt: {
6
- pkgPath: string;
7
- config: ISdClientBuilderCordovaConfig;
8
- });
9
- initializeAsync(): Promise<void>;
10
- buildAsync(outPath: string): Promise<void>;
11
- static runWebviewOnDeviceAsync(opt: {
12
- platform: string;
13
- package: string;
14
- url?: string;
15
- }): Promise<void>;
16
- }