@simplysm/sd-cli 14.0.11 → 14.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 (265) hide show
  1. package/README.md +58 -253
  2. package/dist/angular/client-transform-stylesheet.js +1 -1
  3. package/dist/angular/client-transform-stylesheet.js.map +1 -1
  4. package/dist/angular/vite-angular-plugin.d.ts +4 -2
  5. package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
  6. package/dist/angular/vite-angular-plugin.js +73 -36
  7. package/dist/angular/vite-angular-plugin.js.map +1 -1
  8. package/dist/angular/vite-postcss-inline-plugin.d.ts +1 -1
  9. package/dist/angular/vite-postcss-inline-plugin.js +1 -1
  10. package/dist/capacitor/capacitor.d.ts +20 -2
  11. package/dist/capacitor/capacitor.d.ts.map +1 -1
  12. package/dist/capacitor/capacitor.js +155 -28
  13. package/dist/capacitor/capacitor.js.map +1 -1
  14. package/dist/commands/build.d.ts +3 -10
  15. package/dist/commands/build.d.ts.map +1 -1
  16. package/dist/commands/build.js +3 -10
  17. package/dist/commands/build.js.map +1 -1
  18. package/dist/commands/check.js +3 -3
  19. package/dist/commands/check.js.map +1 -1
  20. package/dist/commands/dev.d.ts +3 -9
  21. package/dist/commands/dev.d.ts.map +1 -1
  22. package/dist/commands/dev.js +3 -9
  23. package/dist/commands/dev.js.map +1 -1
  24. package/dist/commands/device.d.ts +3 -3
  25. package/dist/commands/device.js +5 -5
  26. package/dist/commands/device.js.map +1 -1
  27. package/dist/commands/publish.d.ts +1 -1
  28. package/dist/commands/publish.d.ts.map +1 -1
  29. package/dist/commands/publish.js +24 -26
  30. package/dist/commands/publish.js.map +1 -1
  31. package/dist/commands/replace-deps.d.ts +3 -3
  32. package/dist/commands/replace-deps.d.ts.map +1 -1
  33. package/dist/commands/replace-deps.js +1 -1
  34. package/dist/commands/typecheck.d.ts +4 -3
  35. package/dist/commands/typecheck.d.ts.map +1 -1
  36. package/dist/commands/typecheck.js +5 -11
  37. package/dist/commands/typecheck.js.map +1 -1
  38. package/dist/commands/watch.d.ts +9 -9
  39. package/dist/commands/watch.js +9 -9
  40. package/dist/electron/electron.d.ts.map +1 -1
  41. package/dist/electron/electron.js +42 -3
  42. package/dist/electron/electron.js.map +1 -1
  43. package/dist/engines/BaseEngine.d.ts +1 -1
  44. package/dist/engines/BaseEngine.d.ts.map +1 -1
  45. package/dist/engines/BaseEngine.js +3 -1
  46. package/dist/engines/BaseEngine.js.map +1 -1
  47. package/dist/engines/NgtscEngine.d.ts +7 -7
  48. package/dist/engines/NgtscEngine.d.ts.map +1 -1
  49. package/dist/engines/NgtscEngine.js +3 -3
  50. package/dist/engines/ServerEsbuildEngine.d.ts +7 -7
  51. package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
  52. package/dist/engines/ServerEsbuildEngine.js +3 -3
  53. package/dist/engines/TscEngine.d.ts +7 -7
  54. package/dist/engines/TscEngine.d.ts.map +1 -1
  55. package/dist/engines/TscEngine.js +3 -3
  56. package/dist/engines/ViteEngine.d.ts +7 -1
  57. package/dist/engines/ViteEngine.d.ts.map +1 -1
  58. package/dist/engines/ViteEngine.js +13 -12
  59. package/dist/engines/ViteEngine.js.map +1 -1
  60. package/dist/engines/index.d.ts +9 -5
  61. package/dist/engines/index.d.ts.map +1 -1
  62. package/dist/engines/index.js +7 -5
  63. package/dist/engines/index.js.map +1 -1
  64. package/dist/engines/types.d.ts +20 -20
  65. package/dist/engines/types.d.ts.map +1 -1
  66. package/dist/infra/ResultCollector.d.ts +9 -9
  67. package/dist/infra/ResultCollector.js +8 -8
  68. package/dist/infra/SignalHandler.d.ts +7 -7
  69. package/dist/infra/SignalHandler.js +7 -7
  70. package/dist/infra/WorkerManager.d.ts +14 -14
  71. package/dist/infra/WorkerManager.js +14 -14
  72. package/dist/orchestrators/BuildOrchestrator.d.ts +25 -25
  73. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  74. package/dist/orchestrators/BuildOrchestrator.js +34 -30
  75. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  76. package/dist/orchestrators/DevWatchOrchestrator.d.ts +7 -7
  77. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -1
  78. package/dist/orchestrators/DevWatchOrchestrator.js +34 -34
  79. package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -1
  80. package/dist/sd-cli-entry.d.ts +2 -2
  81. package/dist/sd-cli-entry.d.ts.map +1 -1
  82. package/dist/sd-cli-entry.js +15 -8
  83. package/dist/sd-cli-entry.js.map +1 -1
  84. package/dist/sd-cli.d.ts +3 -3
  85. package/dist/sd-cli.js +16 -16
  86. package/dist/sd-cli.js.map +1 -1
  87. package/dist/sd-config.types.d.ts +105 -105
  88. package/dist/sd-config.types.d.ts.map +1 -1
  89. package/dist/utils/angular-compiler.js +5 -5
  90. package/dist/utils/angular-compiler.js.map +1 -1
  91. package/dist/utils/build-env.d.ts +1 -1
  92. package/dist/utils/build-env.js +1 -1
  93. package/dist/utils/concurrency.d.ts +7 -7
  94. package/dist/utils/concurrency.js +7 -7
  95. package/dist/utils/copy-public.d.ts +9 -9
  96. package/dist/utils/copy-public.js +17 -17
  97. package/dist/utils/copy-public.js.map +1 -1
  98. package/dist/utils/copy-src.d.ts +9 -9
  99. package/dist/utils/copy-src.js +11 -11
  100. package/dist/utils/copy-src.js.map +1 -1
  101. package/dist/utils/engine-stop.d.ts +8 -9
  102. package/dist/utils/engine-stop.d.ts.map +1 -1
  103. package/dist/utils/engine-stop.js +9 -10
  104. package/dist/utils/engine-stop.js.map +1 -1
  105. package/dist/utils/esbuild-config.d.ts +23 -23
  106. package/dist/utils/esbuild-config.d.ts.map +1 -1
  107. package/dist/utils/esbuild-config.js +25 -25
  108. package/dist/utils/esbuild-config.js.map +1 -1
  109. package/dist/utils/lint-with-program.d.ts +15 -15
  110. package/dist/utils/lint-with-program.d.ts.map +1 -1
  111. package/dist/utils/lint-with-program.js +29 -29
  112. package/dist/utils/lint-with-program.js.map +1 -1
  113. package/dist/utils/ngtsc-build-core.d.ts +8 -8
  114. package/dist/utils/ngtsc-build-core.d.ts.map +1 -1
  115. package/dist/utils/ngtsc-build-core.js +14 -14
  116. package/dist/utils/ngtsc-build-core.js.map +1 -1
  117. package/dist/utils/output-path-rewriter.d.ts +14 -14
  118. package/dist/utils/output-path-rewriter.js +18 -18
  119. package/dist/utils/output-path-rewriter.js.map +1 -1
  120. package/dist/utils/output-utils.d.ts +6 -6
  121. package/dist/utils/output-utils.js +11 -11
  122. package/dist/utils/output-utils.js.map +1 -1
  123. package/dist/utils/package-utils.d.ts +21 -21
  124. package/dist/utils/package-utils.d.ts.map +1 -1
  125. package/dist/utils/package-utils.js +56 -45
  126. package/dist/utils/package-utils.js.map +1 -1
  127. package/dist/utils/replace-deps.d.ts +25 -25
  128. package/dist/utils/replace-deps.d.ts.map +1 -1
  129. package/dist/utils/replace-deps.js +84 -65
  130. package/dist/utils/replace-deps.js.map +1 -1
  131. package/dist/utils/sd-config.d.ts +3 -3
  132. package/dist/utils/sd-config.js +3 -3
  133. package/dist/utils/tsc-build.d.ts +13 -13
  134. package/dist/utils/tsc-build.d.ts.map +1 -1
  135. package/dist/utils/tsc-build.js +9 -9
  136. package/dist/utils/tsc-build.js.map +1 -1
  137. package/dist/utils/tsconfig.d.ts +11 -9
  138. package/dist/utils/tsconfig.d.ts.map +1 -1
  139. package/dist/utils/tsconfig.js +11 -9
  140. package/dist/utils/tsconfig.js.map +1 -1
  141. package/dist/utils/typecheck-non-package.d.ts +5 -6
  142. package/dist/utils/typecheck-non-package.d.ts.map +1 -1
  143. package/dist/utils/typecheck-non-package.js +7 -8
  144. package/dist/utils/typecheck-non-package.js.map +1 -1
  145. package/dist/utils/typecheck-serialization.d.ts +8 -8
  146. package/dist/utils/typecheck-serialization.d.ts.map +1 -1
  147. package/dist/utils/typecheck-serialization.js +12 -16
  148. package/dist/utils/typecheck-serialization.js.map +1 -1
  149. package/dist/utils/vite-config.d.ts +12 -5
  150. package/dist/utils/vite-config.d.ts.map +1 -1
  151. package/dist/utils/vite-config.js +95 -41
  152. package/dist/utils/vite-config.js.map +1 -1
  153. package/dist/utils/vite-scope-watch-plugin.d.ts.map +1 -1
  154. package/dist/utils/vite-scope-watch-plugin.js +1 -1
  155. package/dist/utils/vite-scope-watch-plugin.js.map +1 -1
  156. package/dist/utils/worker-events.d.ts +12 -12
  157. package/dist/utils/worker-events.d.ts.map +1 -1
  158. package/dist/utils/worker-events.js +10 -10
  159. package/dist/utils/worker-events.js.map +1 -1
  160. package/dist/utils/worker-utils.d.ts +12 -13
  161. package/dist/utils/worker-utils.d.ts.map +1 -1
  162. package/dist/utils/worker-utils.js +12 -13
  163. package/dist/utils/worker-utils.js.map +1 -1
  164. package/dist/vitest-plugin.d.ts.map +1 -1
  165. package/dist/vitest-plugin.js +5 -7
  166. package/dist/vitest-plugin.js.map +1 -1
  167. package/dist/workers/client.worker.d.ts +8 -2
  168. package/dist/workers/client.worker.d.ts.map +1 -1
  169. package/dist/workers/client.worker.js +215 -6
  170. package/dist/workers/client.worker.js.map +1 -1
  171. package/dist/workers/library-build.worker.d.ts +1 -1
  172. package/dist/workers/library-build.worker.d.ts.map +1 -1
  173. package/dist/workers/library-build.worker.js +7 -7
  174. package/dist/workers/library-build.worker.js.map +1 -1
  175. package/dist/workers/lint.worker.d.ts +2 -2
  176. package/dist/workers/lint.worker.js +2 -2
  177. package/dist/workers/ngtsc-build.worker.js +30 -30
  178. package/dist/workers/ngtsc-build.worker.js.map +1 -1
  179. package/dist/workers/server-build.worker.d.ts +17 -17
  180. package/dist/workers/server-build.worker.d.ts.map +1 -1
  181. package/dist/workers/server-build.worker.js +46 -46
  182. package/dist/workers/server-build.worker.js.map +1 -1
  183. package/dist/workers/server-runtime.worker.d.ts +7 -7
  184. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  185. package/dist/workers/server-runtime.worker.js +17 -17
  186. package/dist/workers/server-runtime.worker.js.map +1 -1
  187. package/docs/config.md +340 -0
  188. package/docs/publish-configuration-types.md +87 -0
  189. package/docs/pwa-configuration-types.md +55 -0
  190. package/docs/vitest-plugin.md +47 -0
  191. package/package.json +9 -7
  192. package/src/angular/client-transform-stylesheet.ts +1 -1
  193. package/src/angular/vite-angular-plugin.ts +89 -39
  194. package/src/angular/vite-postcss-inline-plugin.ts +1 -1
  195. package/src/capacitor/capacitor.ts +185 -38
  196. package/src/commands/build.ts +3 -10
  197. package/src/commands/check.ts +3 -3
  198. package/src/commands/dev.ts +3 -9
  199. package/src/commands/device.ts +5 -5
  200. package/src/commands/publish.ts +30 -26
  201. package/src/commands/replace-deps.ts +3 -3
  202. package/src/commands/typecheck.ts +7 -13
  203. package/src/commands/watch.ts +9 -9
  204. package/src/electron/electron.ts +49 -4
  205. package/src/engines/BaseEngine.ts +4 -1
  206. package/src/engines/NgtscEngine.ts +7 -7
  207. package/src/engines/ServerEsbuildEngine.ts +7 -7
  208. package/src/engines/TscEngine.ts +7 -7
  209. package/src/engines/ViteEngine.ts +18 -13
  210. package/src/engines/index.ts +11 -5
  211. package/src/engines/types.ts +20 -20
  212. package/src/infra/ResultCollector.ts +9 -9
  213. package/src/infra/SignalHandler.ts +7 -7
  214. package/src/infra/WorkerManager.ts +14 -14
  215. package/src/orchestrators/BuildOrchestrator.ts +42 -38
  216. package/src/orchestrators/DevWatchOrchestrator.ts +36 -36
  217. package/src/sd-cli-entry.ts +15 -8
  218. package/src/sd-cli.ts +16 -16
  219. package/src/sd-config.types.ts +107 -107
  220. package/src/utils/angular-compiler.ts +5 -5
  221. package/src/utils/build-env.ts +1 -1
  222. package/src/utils/concurrency.ts +7 -7
  223. package/src/utils/copy-public.ts +17 -17
  224. package/src/utils/copy-src.ts +11 -11
  225. package/src/utils/engine-stop.ts +9 -10
  226. package/src/utils/esbuild-config.ts +29 -29
  227. package/src/utils/lint-with-program.ts +34 -34
  228. package/src/utils/ngtsc-build-core.ts +17 -17
  229. package/src/utils/output-path-rewriter.ts +18 -18
  230. package/src/utils/output-utils.ts +11 -11
  231. package/src/utils/package-utils.ts +57 -45
  232. package/src/utils/replace-deps.ts +92 -67
  233. package/src/utils/sd-config.ts +3 -3
  234. package/src/utils/tsc-build.ts +18 -18
  235. package/src/utils/tsconfig.ts +11 -9
  236. package/src/utils/typecheck-non-package.ts +7 -8
  237. package/src/utils/typecheck-serialization.ts +13 -15
  238. package/src/utils/vite-config.ts +108 -46
  239. package/src/utils/vite-scope-watch-plugin.ts +6 -1
  240. package/src/utils/worker-events.ts +16 -16
  241. package/src/utils/worker-utils.ts +12 -13
  242. package/src/vitest-plugin.ts +5 -8
  243. package/src/workers/client.worker.ts +246 -7
  244. package/src/workers/library-build.worker.ts +8 -8
  245. package/src/workers/lint.worker.ts +2 -2
  246. package/src/workers/ngtsc-build.worker.ts +31 -31
  247. package/src/workers/server-build.worker.ts +60 -60
  248. package/src/workers/server-runtime.worker.ts +22 -22
  249. package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +1 -0
  250. package/tests/angular/vite-angular-plugin-hmr.spec.ts +78 -0
  251. package/tests/angular/vite-angular-plugin.spec.ts +67 -0
  252. package/tests/capacitor/capacitor-build.spec.ts +93 -11
  253. package/tests/capacitor/capacitor-icon.spec.ts +7 -5
  254. package/tests/capacitor/capacitor-init.spec.ts +124 -10
  255. package/tests/capacitor/capacitor-run.spec.ts +14 -17
  256. package/tests/capacitor/capacitor-workspace.spec.ts +5 -3
  257. package/tests/commands/check.spec.ts +2 -2
  258. package/tests/commands/publish.spec.ts +2 -2
  259. package/tests/commands/typecheck.spec.ts +8 -0
  260. package/tests/electron/electron.spec.ts +12 -10
  261. package/tests/engines/base-engine.spec.ts +37 -0
  262. package/tests/engines/vite-engine.spec.ts +115 -3
  263. package/tests/utils/vite-config.spec.ts +162 -90
  264. package/tests/workers/client-worker.spec.ts +690 -0
  265. package/tests/workers/server-build-worker.spec.ts +3 -3
package/README.md CHANGED
@@ -25,272 +25,66 @@ All commands are run via `pnpm sd-cli <command>`. The `--debug` flag is availabl
25
25
 
26
26
  ## API Overview
27
27
 
28
- The package exports configuration types for `sd.config.ts`.
29
-
30
- ### BuildTarget
31
-
32
- ```typescript
33
- type BuildTarget = "node" | "browser" | "neutral";
34
- ```
35
-
36
- Build target platform. Built with esbuild.
37
-
38
- | Value | Description |
39
- |---|---|
40
- | `"node"` | Node.js only package |
41
- | `"browser"` | Browser only package |
42
- | `"neutral"` | Node/browser shared package |
28
+ The package exports configuration types for `sd.config.ts` and a Vitest plugin for Angular AOT compilation.
29
+
30
+ ### Config
31
+
32
+ | API | Type | Description |
33
+ |-----|------|-------------|
34
+ | `BuildTarget` | type | Build target platform: `"node"`, `"browser"`, or `"neutral"` |
35
+ | `SdBuildPackageConfig` | interface | Configuration for buildable packages (node/browser/neutral) |
36
+ | `SdClientPackageConfig` | interface | Configuration for client (Angular/Vite) packages |
37
+ | `SdServerPackageConfig` | interface | Configuration for server (Fastify) packages |
38
+ | `SdScriptsPackageConfig` | interface | Configuration for scripts-only packages (no build output) |
39
+ | `SdWatchHookConfig` | interface | Watch hook for running commands on file changes |
40
+ | `SdPackageConfig` | type | Union of all package configuration types |
41
+ | `SdConfig` | interface | Main configuration object for `sd.config.ts` |
42
+ | `SdConfigParams` | interface | Parameters passed to the `sd.config.ts` function |
43
+ | `SdConfigFn` | type | Type for the default export of `sd.config.ts` |
44
+ | `SdBrowserSupportConfig` | interface | Browser compatibility settings for client packages |
45
+ | `SdCapacitorConfig` | interface | Capacitor mobile build configuration |
46
+ | `SdCapacitorAndroidConfig` | interface | Capacitor Android platform configuration |
47
+ | `SdCapacitorSignConfig` | interface | APK/AAB signing configuration |
48
+ | `SdCapacitorPermission` | interface | Android permission configuration |
49
+ | `SdCapacitorIntentFilter` | interface | Android Intent Filter configuration |
50
+ | `SdElectronConfig` | interface | Electron desktop build configuration |
51
+
52
+ -> See [docs/config.md](./docs/config.md) for details.
43
53
 
44
54
  ### Publish Configuration Types
45
55
 
46
- #### SdNpmPublishConfig
47
-
48
- npm registry publish configuration.
49
-
50
- | Field | Type | Description |
51
- |---|---|---|
52
- | `type` | `"npm"` | Publish type discriminator |
53
-
54
- #### SdPublishConfig
55
-
56
- ```typescript
57
- type SdPublishConfig = SdNpmPublishConfig | SdLocalDirectoryPublishConfig | SdStoragePublishConfig;
58
- ```
59
-
60
- #### SdLocalDirectoryPublishConfig
61
-
62
- Copy build output to a local directory.
63
-
64
- | Field | Type | Description |
65
- |---|---|---|
66
- | `type` | `"local-directory"` | Publish type discriminator |
67
- | `path` | `string` | Target path (supports `%VER%`, `%PROJECT%` substitution) |
68
-
69
- #### SdStoragePublishConfig
70
-
71
- Upload build output to FTP/FTPS/SFTP server.
72
-
73
- | Field | Type | Description |
74
- |---|---|---|
75
- | `type` | `"ftp" \| "ftps" \| "sftp"` | Protocol |
76
- | `host` | `string` | Server hostname |
77
- | `port?` | `number` | Server port |
78
- | `path?` | `string` | Remote path |
79
- | `user?` | `string` | Username |
80
- | `password?` | `string` | Password |
81
-
82
- #### SdPostPublishScriptConfig
56
+ | API | Type | Description |
57
+ |-----|------|-------------|
58
+ | `SdPublishConfig` | type | Union of all publish configuration types |
59
+ | `SdNpmPublishConfig` | interface | npm registry publish configuration |
60
+ | `SdLocalDirectoryPublishConfig` | interface | Copy build output to a local directory |
61
+ | `SdStoragePublishConfig` | interface | Upload build output to FTP/FTPS/SFTP server |
62
+ | `SdPostPublishScriptConfig` | interface | Script to run after publish completes |
83
63
 
84
- Script to run after publish completes.
85
-
86
- | Field | Type | Description |
87
- |---|---|---|
88
- | `type` | `"script"` | Config type discriminator |
89
- | `cmd` | `string` | Command to execute |
90
- | `args` | `string[]` | Command arguments (supports `%VER%`, `%PROJECT%` substitution) |
91
-
92
- ### Package Configuration Types
93
-
94
- #### SdBuildPackageConfig
95
-
96
- Configuration for buildable packages (node/browser/neutral).
97
-
98
- | Field | Type | Description |
99
- |---|---|---|
100
- | `target` | `BuildTarget` | Build target |
101
- | `publish?` | `SdPublishConfig` | Publish configuration |
102
- | `copySrc?` | `string[]` | Glob patterns for files to copy from `src/` to `dist/` |
103
- | `watch?` | `SdWatchHookConfig` | Watch hook (runs alongside build engine in watch mode) |
104
-
105
- #### SdClientPackageConfig
106
-
107
- Configuration for client (Angular/Vite) packages.
108
-
109
- | Field | Type | Description |
110
- |---|---|---|
111
- | `target` | `"client"` | Fixed value |
112
- | `server` | `string \| number` | Server package name to connect to, or Vite port number |
113
- | `env?` | `Record<string, string>` | Environment variables (replaces `process.env` at build time) |
114
- | `publish?` | `SdPublishConfig` | Publish configuration |
115
- | `capacitor?` | `SdCapacitorConfig` | Capacitor mobile build configuration |
116
- | `electron?` | `SdElectronConfig` | Electron desktop build configuration |
117
- | `configs?` | `Record<string, unknown>` | Runtime config (written to `dist/.config.json`) |
118
- | `exclude?` | `string[]` | Packages to exclude from Vite optimizeDeps |
119
- | `browserSupport?` | `SdBrowserSupportConfig` | Browser compatibility settings |
120
- | `pwa?` | `false \| SdPwaConfig` | PWA configuration (`false` to disable, omit for defaults) |
121
-
122
- #### SdServerPackageConfig
123
-
124
- Configuration for server (Fastify) packages.
125
-
126
- | Field | Type | Description |
127
- |---|---|---|
128
- | `target` | `"server"` | Fixed value |
129
- | `env?` | `Record<string, string>` | Environment variables (replaces `process.env.KEY` with constants) |
130
- | `publish?` | `SdPublishConfig` | Publish configuration |
131
- | `configs?` | `Record<string, unknown>` | Runtime config (written to `dist/.config.json`) |
132
- | `externals?` | `string[]` | Modules excluded from esbuild bundle (in addition to auto-detected native modules) |
133
- | `pm2?` | `{ name?: string; ignoreWatchPaths?: string[] }` | PM2 config (generates `dist/pm2.config.cjs`) |
134
- | `packageManager?` | `"volta" \| "mise"` | Package manager (affects mise.toml/volta settings) |
135
-
136
- #### SdScriptsPackageConfig
137
-
138
- Configuration for scripts-only packages (no build output).
139
-
140
- | Field | Type | Description |
141
- |---|---|---|
142
- | `target` | `"scripts"` | Fixed value |
143
- | `publish?` | `SdPublishConfig` | Publish configuration |
144
- | `watch?` | `SdWatchHookConfig` | Watch hook (when set, package is included in watch mode) |
145
-
146
- #### SdWatchHookConfig
147
-
148
- Watch hook configuration for running commands on file changes.
149
-
150
- | Field | Type | Description |
151
- |---|---|---|
152
- | `target` | `string[]` | Glob patterns to watch (relative to package directory) |
153
- | `cmd` | `string` | Command to execute on change |
154
- | `args?` | `string[]` | Command arguments |
155
-
156
- #### SdPackageConfig
157
-
158
- ```typescript
159
- type SdPackageConfig = SdBuildPackageConfig | SdClientPackageConfig | SdServerPackageConfig | SdScriptsPackageConfig;
160
- ```
161
-
162
- ### Capacitor Configuration Types
163
-
164
- #### SdCapacitorConfig
165
-
166
- | Field | Type | Description |
167
- |---|---|---|
168
- | `appId` | `string` | App ID (e.g., `"com.example.app"`) |
169
- | `appName` | `string` | App display name |
170
- | `plugins?` | `Record<string, Record<string, unknown> \| true>` | Capacitor plugin config (key: package name) |
171
- | `icon?` | `string` | App icon path (relative to package directory) |
172
- | `debug?` | `boolean` | Debug build flag |
173
- | `platform?` | `{ android?: SdCapacitorAndroidConfig }` | Per-platform configuration |
174
-
175
- #### SdCapacitorAndroidConfig
176
-
177
- | Field | Type | Description |
178
- |---|---|---|
179
- | `config?` | `Record<string, string>` | AndroidManifest.xml application tag attributes |
180
- | `bundle?` | `boolean` | Build AAB bundle (`true`) or APK (`false`) |
181
- | `intentFilters?` | `SdCapacitorIntentFilter[]` | Intent filter configuration |
182
- | `sign?` | `SdCapacitorSignConfig` | APK/AAB signing configuration |
183
- | `sdkVersion?` | `number` | Android SDK version (minSdk, targetSdk) |
184
- | `permissions?` | `SdCapacitorPermission[]` | Additional Android permissions |
185
-
186
- #### SdCapacitorSignConfig
187
-
188
- | Field | Type | Description |
189
- |---|---|---|
190
- | `keystore` | `string` | Keystore file path (relative to package directory) |
191
- | `storePassword` | `string` | Keystore password |
192
- | `alias` | `string` | Key alias |
193
- | `password` | `string` | Key password |
194
- | `keystoreType?` | `string` | Keystore type (default: `"jks"`) |
195
-
196
- #### SdCapacitorPermission
197
-
198
- | Field | Type | Description |
199
- |---|---|---|
200
- | `name` | `string` | Permission name (e.g., `"CAMERA"`) |
201
- | `maxSdkVersion?` | `number` | Maximum SDK version |
202
- | `ignore?` | `string` | `tools:ignore` attribute value |
203
-
204
- #### SdCapacitorIntentFilter
205
-
206
- | Field | Type | Description |
207
- |---|---|---|
208
- | `action?` | `string` | Intent action (e.g., `"android.intent.action.VIEW"`) |
209
- | `category?` | `string` | Intent category (e.g., `"android.intent.category.DEFAULT"`) |
210
-
211
- ### Electron Configuration Types
212
-
213
- #### SdElectronConfig
214
-
215
- | Field | Type | Description |
216
- |---|---|---|
217
- | `appId` | `string` | Electron app ID (e.g., `"com.example.myapp"`) |
218
- | `portable?` | `boolean` | `true` for portable .exe, `false`/unspecified for NSIS installer |
219
- | `installerIcon?` | `string` | Installer icon path (.ico, relative to package directory) |
220
- | `reinstallDependencies?` | `string[]` | npm packages to include (native modules, etc.) |
221
- | `postInstallScript?` | `string` | npm postinstall script |
222
- | `nsisOptions?` | `Record<string, unknown>` | NSIS installer options |
223
- | `env?` | `Record<string, string>` | Environment variables for electron-main.ts |
64
+ -> See [docs/publish-configuration-types.md](./docs/publish-configuration-types.md) for details.
224
65
 
225
66
  ### PWA Configuration Types
226
67
 
227
- #### SdPwaConfig
228
-
229
- | Field | Type | Description |
230
- |---|---|---|
231
- | `manifest?` | `SdPwaManifestConfig` | PWA manifest options |
232
- | `workbox?` | `SdPwaWorkboxConfig` | Workbox service worker options |
233
-
234
- #### SdPwaManifestConfig
235
-
236
- | Field | Type | Description |
237
- |---|---|---|
238
- | `name?` | `string` | App name |
239
- | `short_name?` | `string` | Short app name |
240
- | `display?` | `"standalone" \| "fullscreen" \| "minimal-ui" \| "browser"` | Display mode |
241
- | `theme_color?` | `string` | Theme color |
242
- | `background_color?` | `string` | Background color |
243
- | `icons?` | `Array<{ src: string; sizes: string; type?: string }>` | App icons |
68
+ | API | Type | Description |
69
+ |-----|------|-------------|
70
+ | `SdPwaConfig` | interface | PWA configuration |
71
+ | `SdPwaManifestConfig` | interface | PWA manifest options (subset of VitePWA manifest) |
72
+ | `SdPwaWorkboxConfig` | interface | PWA workbox service worker options |
244
73
 
245
- #### SdPwaWorkboxConfig
74
+ -> See [docs/pwa-configuration-types.md](./docs/pwa-configuration-types.md) for details.
246
75
 
247
- | Field | Type | Description |
248
- |---|---|---|
249
- | `globPatterns?` | `string[]` | Glob patterns for precaching |
76
+ ### Vitest Plugin
250
77
 
251
- ### Browser Support Configuration
78
+ | API | Type | Description |
79
+ |-----|------|-------------|
80
+ | `angularVitestPlugin` | function | Vite plugin for Angular AOT compilation in Vitest |
81
+ | `AngularVitestPluginOptions` | interface | Options for `angularVitestPlugin` |
252
82
 
253
- #### SdBrowserSupportConfig
83
+ -> See [docs/vitest-plugin.md](./docs/vitest-plugin.md) for details.
254
84
 
255
- | Field | Type | Description |
256
- |---|---|---|
257
- | `browserslist?` | `string \| string[]` | Browserslist query (e.g., `"last 2 Chrome versions"`) |
258
- | `postCss?` | `{ plugins: unknown[] }` | PostCSS plugins configuration |
259
- | `legacyModule?` | `boolean` | Legacy module support (disables code splitting + replaces `import.meta`) |
85
+ ## Usage Examples
260
86
 
261
- ### Root Configuration Types
262
-
263
- #### SdConfig
264
-
265
- The main configuration object for `sd.config.ts`.
266
-
267
- | Field | Type | Description |
268
- |---|---|---|
269
- | `packages` | `Record<string, SdPackageConfig \| undefined>` | Per-package configuration (key: subdirectory name under `packages/`) |
270
- | `replaceDeps?` | `Record<string, string>` | Dependency replacement via symlink (key: package glob, value: source path. `*` wildcards are supported) |
271
- | `postPublish?` | `SdPostPublishScriptConfig[]` | Scripts to run after deployment |
272
-
273
- #### SdConfigParams
274
-
275
- Parameters passed to the `sd.config.ts` function.
276
-
277
- | Field | Type | Description |
278
- |---|---|---|
279
- | `cwd` | `string` | Current working directory |
280
- | `dev` | `boolean` | Development mode flag |
281
- | `options` | `string[]` | Additional options from CLI `-o` flag |
282
-
283
- #### SdConfigFn
284
-
285
- ```typescript
286
- type SdConfigFn = (params: SdConfigParams) => SdConfig | Promise<SdConfig>;
287
- ```
288
-
289
- The type for the default export of `sd.config.ts`.
290
-
291
- ## Usage
292
-
293
- ### sd.config.ts Example
87
+ ### sd.config.ts
294
88
 
295
89
  ```typescript
296
90
  import type { SdConfigFn, SdConfigParams } from "@simplysm/sd-cli";
@@ -320,3 +114,14 @@ const config: SdConfigFn = (params: SdConfigParams) => ({
320
114
 
321
115
  export default config;
322
116
  ```
117
+
118
+ ### Vitest with Angular
119
+
120
+ ```typescript
121
+ import { angularVitestPlugin } from "@simplysm/sd-cli/vitest-plugin";
122
+ import { defineConfig } from "vitest/config";
123
+
124
+ export default defineConfig({
125
+ plugins: [angularVitestPlugin({ tsconfig: "./tsconfig.json" })],
126
+ });
127
+ ```
@@ -34,7 +34,7 @@ export function createClientTransformStylesheet(options) {
34
34
  return "/* SCSS compilation error */";
35
35
  }
36
36
  }
37
- // .css → readResource가 처리
37
+ // .css → externalStylesheets의 SHA256 ID 매핑으로 처리
38
38
  return null;
39
39
  }
40
40
  // 인라인 SCSS
@@ -1 +1 @@
1
- {"version":3,"file":"client-transform-stylesheet.js","sourceRoot":"","sources":["../../src/angular/client-transform-stylesheet.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AASzF;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAyC;IAEzC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE5E,MAAM,gBAAgB,GACpB,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,cAA0C,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,KAAK,EACV,IAAY,EACZ,cAAsB,EACtB,cAAuB,EACC,EAAE;QAC1B,cAAc;QACd,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBAErE,SAAS;oBACT,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;oBACrE,CAAC;oBAED,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBACrB,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;wBAC7B,GAAG,GAAG,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC5E,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,UAAU,CAAC,IAAI,CAAC,iBAAiB,cAAc,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxG,OAAO,8BAA8B,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,0BAA0B;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAE7E,SAAS;YACT,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACrB,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;gBAC7B,GAAG,GAAG,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5E,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,iBAAiB,cAAc,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxG,OAAO,8BAA8B,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"client-transform-stylesheet.js","sourceRoot":"","sources":["../../src/angular/client-transform-stylesheet.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AASzF;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAyC;IAEzC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE5E,MAAM,gBAAgB,GACpB,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,cAA0C,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,KAAK,EACV,IAAY,EACZ,cAAsB,EACtB,cAAuB,EACC,EAAE;QAC1B,cAAc;QACd,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBAErE,SAAS;oBACT,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;oBACrE,CAAC;oBAED,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBACrB,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;wBAC7B,GAAG,GAAG,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC5E,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,UAAU,CAAC,IAAI,CAAC,iBAAiB,cAAc,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxG,OAAO,8BAA8B,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,gDAAgD;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAE7E,SAAS;YACT,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACrB,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;gBAC7B,GAAG,GAAG,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5E,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,iBAAiB,cAAc,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxG,OAAO,8BAA8B,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -4,8 +4,10 @@ import { type LintWithProgramResult } from "../utils/lint-with-program.js";
4
4
  export interface SdAngularPluginOptions {
5
5
  /** tsconfig.json 경로 */
6
6
  tsconfig: string;
7
- /** 개발 모드 */
7
+ /** 개발 모드 (HMR, advancedOptimizations 제어) */
8
8
  dev: boolean;
9
+ /** 소스맵 생성 여부 (dev와 독립적으로 제어) */
10
+ sourcemap?: boolean;
9
11
  /** rebuild 시작 콜백 (CLI 상태 보고용) */
10
12
  onBuildStart?: () => void;
11
13
  /** rebuild 완료 콜백 (CLI 상태 보고용) */
@@ -15,7 +17,7 @@ export interface SdAngularPluginOptions {
15
17
  warnings?: string[];
16
18
  lint?: LintWithProgramResult;
17
19
  }) => void;
18
- /** Enable lint using ts.Program from compilation */
20
+ /** 컴파일의 ts.Program 사용하여 lint 실행 */
19
21
  enableLint?: boolean;
20
22
  /** browserslist 타겟 (정규화된 배열) */
21
23
  browserslist?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"vite-angular-plugin.d.ts","sourceRoot":"","sources":["../../src/angular/vite-angular-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAA6B,MAAM,MAAM,CAAC;AAa9D,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAKvC,yBAAyB;AACzB,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,qBAAqB,CAAC;KAC9B,KAAK,IAAI,CAAC;IACX,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAmTvE"}
1
+ {"version":3,"file":"vite-angular-plugin.d.ts","sourceRoot":"","sources":["../../src/angular/vite-angular-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAA6B,MAAM,MAAM,CAAC;AAa9D,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAKvC,yBAAyB;AACzB,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,GAAG,EAAE,OAAO,CAAC;IACb,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,qBAAqB,CAAC;KAC9B,KAAK,IAAI,CAAC;IACX,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CA4VvE"}
@@ -33,7 +33,7 @@ export function sdAngularPlugin(options) {
33
33
  pkgName = pkgJson.name ?? "unknown";
34
34
  }
35
35
  catch {
36
- // ignore
36
+ // 무시
37
37
  }
38
38
  lintRunner = new LintWithProgramRunner({
39
39
  cwd: process.cwd(),
@@ -46,11 +46,14 @@ export function sdAngularPlugin(options) {
46
46
  const templateUpdates = new Map();
47
47
  let hmrLock = Promise.resolve();
48
48
  const scssDependencies = new Map();
49
+ const enableSourcemap = options.sourcemap ?? options.dev;
50
+ // Pre-bundle transformer: optimizeDeps의 esbuild 단계에서 Angular Linker 실행
51
+ const prebundleTransformer = new JavaScriptTransformer({ sourcemap: enableSourcemap, jit: false, thirdPartySourcemaps: enableSourcemap }, 1);
49
52
  function createJsTransformer() {
50
53
  const maxThreads = Math.max(1, Math.floor((os.cpus().length * 2) / 3));
51
54
  return new JavaScriptTransformer({
52
- sourcemap: options.dev,
53
- thirdPartySourcemaps: options.dev,
55
+ sourcemap: enableSourcemap,
56
+ thirdPartySourcemaps: enableSourcemap,
54
57
  advancedOptimizations: !options.dev,
55
58
  jit: false,
56
59
  }, maxThreads);
@@ -65,6 +68,21 @@ export function sdAngularPlugin(options) {
65
68
  ngJitMode: "false",
66
69
  ngHmrMode: options.dev ? undefined : "false",
67
70
  },
71
+ optimizeDeps: {
72
+ esbuildOptions: {
73
+ plugins: [
74
+ {
75
+ name: "angular-vite-optimize-deps",
76
+ setup(build) {
77
+ build.onLoad({ filter: /\.[cm]?js$/ }, async (args) => ({
78
+ contents: await prebundleTransformer.transformFile(args.path),
79
+ loader: "js",
80
+ }));
81
+ },
82
+ },
83
+ ],
84
+ },
85
+ },
68
86
  };
69
87
  },
70
88
  async buildStart() {
@@ -133,14 +151,14 @@ export function sdAngularPlugin(options) {
133
151
  for (const err of scssErrors) {
134
152
  logger.error(err);
135
153
  }
136
- // Lint execution (if enabled)
154
+ // lint 실행 (활성화된 경우)
137
155
  let initialLintResult;
138
156
  if (options.enableLint === true) {
139
157
  initialLintResult = await getOrCreateLintRunner().lint({
140
158
  program: compiler.getTsProgram(),
141
159
  });
142
160
  }
143
- // Report initial build results (both dev and prod)
161
+ // 초기 빌드 결과 보고 (dev, prod 공통)
144
162
  options.onBuild?.({
145
163
  success: diagnosticResult.errors.length === 0,
146
164
  errors: diagnosticResult.errors.map((e) => e.message),
@@ -152,12 +170,11 @@ export function sdAngularPlugin(options) {
152
170
  if (compiler == null || !options.dev)
153
171
  return;
154
172
  if (!file.endsWith(".ts") &&
155
- !file.endsWith(".tsx") &&
156
173
  !file.endsWith(".html") &&
157
174
  !file.endsWith(".scss")) {
158
175
  return;
159
176
  }
160
- // Dependency filter: skip if file is not in the TypeScript program
177
+ // 의존성 필터: TypeScript program에 포함되지 않은 파일은 건너뜀
161
178
  const normalizedFile = pathx.posix(file);
162
179
  const programFiles = compiler.getTsProgram().getSourceFiles();
163
180
  const isInProgram = programFiles.some((sf) => pathx.posix(sf.fileName) === normalizedFile);
@@ -191,12 +208,12 @@ export function sdAngularPlugin(options) {
191
208
  }
192
209
  const diagnosticResult = collectAndFormatDiagnostics(compiler, process.cwd());
193
210
  reportDiagnostics(diagnosticResult);
194
- // Convert affected ts.SourceFile set to file name strings for incremental lint
211
+ // 영향받은 ts.SourceFile 집합을 파일명 문자열로 변환 (incremental lint용)
195
212
  const affectedFileNames = new Set();
196
213
  for (const sf of updateResult.affectedFiles) {
197
214
  affectedFileNames.add(pathx.posix(sf.fileName));
198
215
  }
199
- // Lint execution (if enabled)
216
+ // lint 실행 (활성화된 경우)
200
217
  let lintResult;
201
218
  if (options.enableLint === true) {
202
219
  lintResult = await getOrCreateLintRunner().lint({
@@ -224,19 +241,33 @@ export function sdAngularPlugin(options) {
224
241
  }
225
242
  },
226
243
  async transform(_code, id) {
227
- if (!id.endsWith(".ts") && !id.endsWith(".tsx"))
244
+ if (jsTransformer == null)
228
245
  return;
229
- const normalizedId = pathx.posix(id);
230
- const emittedContent = emittedFiles.get(normalizedId);
231
- if (emittedContent == null)
246
+ let code = _code;
247
+ // Phase 1: TS 컴파일 — .ts 파일은 AngularCompiler가 emit한 JS로 교체
248
+ if (id.endsWith(".ts")) {
249
+ const normalizedId = pathx.posix(id);
250
+ const emittedContent = emittedFiles.get(normalizedId);
251
+ if (emittedContent == null)
252
+ return;
253
+ code = emittedContent;
254
+ }
255
+ else if (!id.endsWith(".mjs") && !id.endsWith(".js")) {
232
256
  return;
233
- if (jsTransformer == null) {
234
- throw new Error("JavaScriptTransformer가 초기화되지 않았습니다");
235
257
  }
236
- // AOT 메타데이터 제거 + 최적화
237
- const transformed = await jsTransformer.transformData(normalizedId, emittedContent, false);
238
- const code = new TextDecoder().decode(transformed);
239
- return { code };
258
+ // Phase 2: JS 변환 — Angular Linker로 partial → full AOT 링킹 + 최적화
259
+ const transformed = await jsTransformer.transformData(pathx.posix(id), code, false);
260
+ const transformedCode = new TextDecoder().decode(transformed);
261
+ // 인라인 소스맵 분리 (Rollup 경고 방지)
262
+ const inlineMapMatch = transformedCode.match(/\/\/# sourceMappingURL=data:application\/json;(?:charset=utf-8;)?base64,(.+)$/m);
263
+ if (inlineMapMatch != null) {
264
+ const mapJson = atob(inlineMapMatch[1]);
265
+ return {
266
+ code: transformedCode.slice(0, inlineMapMatch.index),
267
+ map: JSON.parse(mapJson),
268
+ };
269
+ }
270
+ return { code: transformedCode, map: null };
240
271
  },
241
272
  async buildEnd() {
242
273
  // dev 모드에서는 compiler/jsTransformer를 유지 (HMR용 incremental compilation)
@@ -245,27 +276,28 @@ export function sdAngularPlugin(options) {
245
276
  await jsTransformer.close();
246
277
  jsTransformer = undefined;
247
278
  }
279
+ await prebundleTransformer.close();
248
280
  compiler = undefined;
249
281
  emittedFiles.clear();
250
282
  }
251
283
  },
252
284
  configureServer(server) {
253
285
  // component-middleware 등록 (HMR template updates 서빙)
254
- server.middlewares.use(angularComponentMiddleware(templateUpdates));
286
+ server.middlewares.use(angularComponentMiddleware(templateUpdates, server.config.base));
255
287
  // dev server 종료 시 리소스 정리
256
288
  server.httpServer?.on("close", () => {
257
- if (jsTransformer != null) {
258
- void jsTransformer
259
- .close()
260
- .then(() => {
261
- jsTransformer = undefined;
262
- compiler = undefined;
263
- emittedFiles.clear();
264
- })
265
- .catch((err) => {
266
- logger.error(`Resource dispose failed: ${err instanceof Error ? err.message : String(err)}`);
267
- });
268
- }
289
+ void Promise.all([
290
+ jsTransformer?.close(),
291
+ prebundleTransformer.close(),
292
+ ])
293
+ .catch((err) => {
294
+ logger.error(`Resource dispose failed: ${err instanceof Error ? err.message : String(err)}`);
295
+ })
296
+ .finally(() => {
297
+ jsTransformer = undefined;
298
+ compiler = undefined;
299
+ emittedFiles.clear();
300
+ });
269
301
  });
270
302
  },
271
303
  };
@@ -294,14 +326,19 @@ function collectAndFormatDiagnostics(compiler, cwd) {
294
326
  }
295
327
  return { errors, warnings };
296
328
  }
297
- function angularComponentMiddleware(templateUpdates) {
329
+ function angularComponentMiddleware(templateUpdates, basePath) {
298
330
  return (req, res, next) => {
299
- if (req.url == null || !req.url.startsWith("/@ng/component")) {
331
+ const rawUrl = req.url ?? "";
332
+ const parsedUrl = new URL(rawUrl, "http://localhost");
333
+ const pathname = decodeURIComponent(parsedUrl.pathname);
334
+ const strippedPathname = basePath !== "/" && pathname.startsWith(basePath)
335
+ ? pathname.slice(basePath.length - 1)
336
+ : pathname;
337
+ if (!strippedPathname.includes("/@ng/component")) {
300
338
  next();
301
339
  return;
302
340
  }
303
- const url = new URL(req.url, "http://localhost");
304
- const componentId = url.searchParams.get("c") ?? "";
341
+ const componentId = parsedUrl.searchParams.get("c") ?? "";
305
342
  const body = templateUpdates.get(encodeURIComponent(componentId)) ?? "";
306
343
  res.writeHead(200, {
307
344
  "Content-Type": "text/javascript",
@@ -1 +1 @@
1
- {"version":3,"file":"vite-angular-plugin.js","sourceRoot":"","sources":["../../src/angular/vite-angular-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-angular-plugin.js","sourceRoot":"","sources":["../../src/angular/vite-angular-plugin.ts"],"names":[],"mappings":"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"}