@simplysm/sd-cli 14.0.30 → 14.0.32

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 (626) hide show
  1. package/dist/{utils → angular}/angular-build-pipeline.d.ts +0 -2
  2. package/dist/angular/angular-build-pipeline.d.ts.map +1 -0
  3. package/dist/{utils → angular}/angular-build-pipeline.js +3 -6
  4. package/dist/angular/angular-build-pipeline.js.map +1 -0
  5. package/dist/{utils → angular}/angular-build.d.ts +1 -1
  6. package/dist/angular/angular-build.d.ts.map +1 -0
  7. package/dist/{utils → angular}/angular-build.js +1 -1
  8. package/dist/angular/angular-build.js.map +1 -0
  9. package/dist/{utils → angular}/angular-compiler.d.ts +0 -3
  10. package/dist/angular/angular-compiler.d.ts.map +1 -0
  11. package/dist/{utils → angular}/angular-compiler.js +1 -45
  12. package/dist/angular/angular-compiler.js.map +1 -0
  13. package/dist/angular/client-transform-stylesheet.js +1 -1
  14. package/dist/angular/client-transform-stylesheet.js.map +1 -1
  15. package/dist/{utils → angular}/ngtsc-build-core.d.ts +3 -3
  16. package/dist/angular/ngtsc-build-core.d.ts.map +1 -0
  17. package/dist/angular/ngtsc-build-core.js.map +1 -0
  18. package/dist/angular/scss-compiler.d.ts.map +1 -0
  19. package/dist/angular/scss-compiler.js.map +1 -0
  20. package/dist/angular/vite-angular-plugin.d.ts +2 -10
  21. package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
  22. package/dist/angular/vite-angular-plugin.js +20 -286
  23. package/dist/angular/vite-angular-plugin.js.map +1 -1
  24. package/dist/capacitor/capacitor-build.d.ts +14 -0
  25. package/dist/capacitor/capacitor-build.d.ts.map +1 -0
  26. package/dist/capacitor/capacitor-build.js +105 -0
  27. package/dist/capacitor/capacitor-build.js.map +1 -0
  28. package/dist/capacitor/capacitor-config-writer.d.ts +11 -0
  29. package/dist/capacitor/capacitor-config-writer.d.ts.map +1 -0
  30. package/dist/capacitor/capacitor-config-writer.js +54 -0
  31. package/dist/capacitor/capacitor-config-writer.js.map +1 -0
  32. package/dist/capacitor/capacitor-icon.d.ts +5 -0
  33. package/dist/capacitor/capacitor-icon.d.ts.map +1 -0
  34. package/dist/capacitor/capacitor-icon.js +58 -0
  35. package/dist/capacitor/capacitor-icon.js.map +1 -0
  36. package/dist/capacitor/capacitor-npm-config.d.ts +11 -0
  37. package/dist/capacitor/capacitor-npm-config.d.ts.map +1 -0
  38. package/dist/capacitor/capacitor-npm-config.js +145 -0
  39. package/dist/capacitor/capacitor-npm-config.js.map +1 -0
  40. package/dist/capacitor/capacitor.d.ts +0 -45
  41. package/dist/capacitor/capacitor.d.ts.map +1 -1
  42. package/dist/capacitor/capacitor.js +15 -354
  43. package/dist/capacitor/capacitor.js.map +1 -1
  44. package/dist/commands/check.js +2 -2
  45. package/dist/commands/check.js.map +1 -1
  46. package/dist/commands/dev.d.ts +3 -3
  47. package/dist/commands/dev.d.ts.map +1 -1
  48. package/dist/commands/dev.js +3 -3
  49. package/dist/commands/dev.js.map +1 -1
  50. package/dist/commands/lint.d.ts +1 -1
  51. package/dist/commands/lint.d.ts.map +1 -1
  52. package/dist/commands/lint.js +1 -1
  53. package/dist/commands/lint.js.map +1 -1
  54. package/dist/commands/publish/deployment-phase.d.ts +12 -0
  55. package/dist/commands/publish/deployment-phase.d.ts.map +1 -0
  56. package/dist/commands/publish/deployment-phase.js +94 -0
  57. package/dist/commands/publish/deployment-phase.js.map +1 -0
  58. package/dist/commands/publish/env-utils.d.ts +10 -0
  59. package/dist/commands/publish/env-utils.d.ts.map +1 -0
  60. package/dist/commands/publish/env-utils.js +41 -0
  61. package/dist/commands/publish/env-utils.js.map +1 -0
  62. package/dist/commands/publish/git-phase.d.ts +12 -0
  63. package/dist/commands/publish/git-phase.d.ts.map +1 -0
  64. package/dist/commands/publish/git-phase.js +79 -0
  65. package/dist/commands/publish/git-phase.js.map +1 -0
  66. package/dist/commands/{publish.d.ts → publish/index.d.ts} +1 -1
  67. package/dist/commands/publish/index.d.ts.map +1 -0
  68. package/dist/commands/publish/index.js +211 -0
  69. package/dist/commands/publish/index.js.map +1 -0
  70. package/dist/commands/publish/local-publisher.d.ts +6 -0
  71. package/dist/commands/publish/local-publisher.d.ts.map +1 -0
  72. package/dist/commands/publish/local-publisher.js +16 -0
  73. package/dist/commands/publish/local-publisher.js.map +1 -0
  74. package/dist/commands/publish/npm-publisher.d.ts +6 -0
  75. package/dist/commands/publish/npm-publisher.d.ts.map +1 -0
  76. package/dist/commands/publish/npm-publisher.js +21 -0
  77. package/dist/commands/publish/npm-publisher.js.map +1 -0
  78. package/dist/commands/publish/post-publish-phase.d.ts +8 -0
  79. package/dist/commands/publish/post-publish-phase.d.ts.map +1 -0
  80. package/dist/commands/publish/post-publish-phase.js +34 -0
  81. package/dist/commands/publish/post-publish-phase.js.map +1 -0
  82. package/dist/commands/publish/storage-publisher.d.ts +18 -0
  83. package/dist/commands/publish/storage-publisher.d.ts.map +1 -0
  84. package/dist/commands/publish/storage-publisher.js +173 -0
  85. package/dist/commands/publish/storage-publisher.js.map +1 -0
  86. package/dist/commands/publish/version-upgrade.d.ts +28 -0
  87. package/dist/commands/publish/version-upgrade.d.ts.map +1 -0
  88. package/dist/commands/publish/version-upgrade.js +96 -0
  89. package/dist/commands/publish/version-upgrade.js.map +1 -0
  90. package/dist/commands/replace-deps.js +1 -1
  91. package/dist/commands/replace-deps.js.map +1 -1
  92. package/dist/commands/watch.d.ts +3 -4
  93. package/dist/commands/watch.d.ts.map +1 -1
  94. package/dist/commands/watch.js +3 -4
  95. package/dist/commands/watch.js.map +1 -1
  96. package/dist/deps/replace-deps/collect-deps.d.ts +6 -0
  97. package/dist/deps/replace-deps/collect-deps.d.ts.map +1 -0
  98. package/dist/deps/replace-deps/collect-deps.js +71 -0
  99. package/dist/deps/replace-deps/collect-deps.js.map +1 -0
  100. package/dist/{utils/replace-deps.d.ts → deps/replace-deps/replace-deps-resolve.d.ts} +7 -24
  101. package/dist/deps/replace-deps/replace-deps-resolve.d.ts.map +1 -0
  102. package/dist/{utils/replace-deps.js → deps/replace-deps/replace-deps-resolve.js} +4 -152
  103. package/dist/deps/replace-deps/replace-deps-resolve.js.map +1 -0
  104. package/dist/deps/replace-deps/replace-deps.d.ts +36 -0
  105. package/dist/deps/replace-deps/replace-deps.d.ts.map +1 -0
  106. package/dist/deps/replace-deps/replace-deps.js +155 -0
  107. package/dist/deps/replace-deps/replace-deps.js.map +1 -0
  108. package/dist/{utils → deps/server-externals}/server-production-files.d.ts +1 -1
  109. package/dist/deps/server-externals/server-production-files.d.ts.map +1 -0
  110. package/dist/{utils → deps/server-externals}/server-production-files.js +1 -1
  111. package/dist/deps/server-externals/server-production-files.js.map +1 -0
  112. package/dist/dev-server/dev-http-server.d.ts +23 -0
  113. package/dist/dev-server/dev-http-server.d.ts.map +1 -0
  114. package/dist/dev-server/dev-http-server.js +116 -0
  115. package/dist/dev-server/dev-http-server.js.map +1 -0
  116. package/dist/dev-server/hmr-client-script.d.ts +13 -0
  117. package/dist/dev-server/hmr-client-script.d.ts.map +1 -0
  118. package/dist/dev-server/hmr-client-script.js +73 -0
  119. package/dist/dev-server/hmr-client-script.js.map +1 -0
  120. package/dist/dev-server/hmr-service.d.ts +23 -0
  121. package/dist/dev-server/hmr-service.d.ts.map +1 -0
  122. package/dist/dev-server/hmr-service.js +139 -0
  123. package/dist/dev-server/hmr-service.js.map +1 -0
  124. package/dist/electron/electron.d.ts +5 -0
  125. package/dist/electron/electron.d.ts.map +1 -1
  126. package/dist/electron/electron.js +17 -24
  127. package/dist/electron/electron.js.map +1 -1
  128. package/dist/engines/BaseEngine.d.ts +18 -4
  129. package/dist/engines/BaseEngine.d.ts.map +1 -1
  130. package/dist/engines/BaseEngine.js +45 -66
  131. package/dist/engines/BaseEngine.js.map +1 -1
  132. package/dist/engines/{ViteEngine.d.ts → EsbuildClientEngine.d.ts} +11 -18
  133. package/dist/engines/EsbuildClientEngine.d.ts.map +1 -0
  134. package/dist/engines/{ViteEngine.js → EsbuildClientEngine.js} +28 -55
  135. package/dist/engines/EsbuildClientEngine.js.map +1 -0
  136. package/dist/engines/NgtscEngine.d.ts +2 -2
  137. package/dist/engines/NgtscEngine.d.ts.map +1 -1
  138. package/dist/engines/NgtscEngine.js +1 -9
  139. package/dist/engines/NgtscEngine.js.map +1 -1
  140. package/dist/engines/ServerEsbuildEngine.d.ts +2 -2
  141. package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
  142. package/dist/engines/ServerEsbuildEngine.js +1 -9
  143. package/dist/engines/ServerEsbuildEngine.js.map +1 -1
  144. package/dist/engines/TscEngine.d.ts +2 -2
  145. package/dist/engines/TscEngine.d.ts.map +1 -1
  146. package/dist/engines/TscEngine.js +1 -9
  147. package/dist/engines/TscEngine.js.map +1 -1
  148. package/dist/engines/index.d.ts +15 -5
  149. package/dist/engines/index.d.ts.map +1 -1
  150. package/dist/engines/index.js +21 -5
  151. package/dist/engines/index.js.map +1 -1
  152. package/dist/engines/types.d.ts +3 -3
  153. package/dist/engines/types.d.ts.map +1 -1
  154. package/dist/esbuild/esbuild-client-config.d.ts +38 -0
  155. package/dist/esbuild/esbuild-client-config.d.ts.map +1 -0
  156. package/dist/esbuild/esbuild-client-config.js +171 -0
  157. package/dist/esbuild/esbuild-client-config.js.map +1 -0
  158. package/dist/esbuild/esbuild-config.d.ts.map +1 -0
  159. package/dist/{utils → esbuild}/esbuild-config.js +1 -0
  160. package/dist/esbuild/esbuild-config.js.map +1 -0
  161. package/dist/esbuild/esbuild-index-html.d.ts +39 -0
  162. package/dist/esbuild/esbuild-index-html.d.ts.map +1 -0
  163. package/dist/esbuild/esbuild-index-html.js +68 -0
  164. package/dist/esbuild/esbuild-index-html.js.map +1 -0
  165. package/dist/esbuild/esbuild-pwa.d.ts +21 -0
  166. package/dist/esbuild/esbuild-pwa.d.ts.map +1 -0
  167. package/dist/esbuild/esbuild-pwa.js +105 -0
  168. package/dist/esbuild/esbuild-pwa.js.map +1 -0
  169. package/dist/esbuild/esbuild-scss-plugin.d.ts +6 -0
  170. package/dist/esbuild/esbuild-scss-plugin.d.ts.map +1 -0
  171. package/dist/esbuild/esbuild-scss-plugin.js +41 -0
  172. package/dist/esbuild/esbuild-scss-plugin.js.map +1 -0
  173. package/dist/lint/lint-core.d.ts.map +1 -0
  174. package/dist/lint/lint-core.js.map +1 -0
  175. package/dist/lint/lint-utils.d.ts.map +1 -0
  176. package/dist/lint/lint-utils.js.map +1 -0
  177. package/dist/lint/lint-with-program.d.ts.map +1 -0
  178. package/dist/lint/lint-with-program.js.map +1 -0
  179. package/dist/orchestrators/BaseOrchestrator.d.ts +44 -0
  180. package/dist/orchestrators/BaseOrchestrator.d.ts.map +1 -0
  181. package/dist/orchestrators/BaseOrchestrator.js +92 -0
  182. package/dist/orchestrators/BaseOrchestrator.js.map +1 -0
  183. package/dist/orchestrators/BuildOrchestrator.d.ts +45 -3
  184. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  185. package/dist/orchestrators/BuildOrchestrator.js +170 -143
  186. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  187. package/dist/orchestrators/DevOrchestrator.d.ts +39 -0
  188. package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -0
  189. package/dist/orchestrators/DevOrchestrator.js +249 -0
  190. package/dist/orchestrators/DevOrchestrator.js.map +1 -0
  191. package/dist/orchestrators/ServerRuntimeManager.d.ts +22 -0
  192. package/dist/orchestrators/ServerRuntimeManager.d.ts.map +1 -0
  193. package/dist/orchestrators/ServerRuntimeManager.js +66 -0
  194. package/dist/orchestrators/ServerRuntimeManager.js.map +1 -0
  195. package/dist/orchestrators/TypecheckOrchestrator.d.ts +17 -2
  196. package/dist/orchestrators/TypecheckOrchestrator.d.ts.map +1 -1
  197. package/dist/orchestrators/TypecheckOrchestrator.js +122 -108
  198. package/dist/orchestrators/TypecheckOrchestrator.js.map +1 -1
  199. package/dist/orchestrators/WatchOrchestrator.d.ts +33 -0
  200. package/dist/orchestrators/WatchOrchestrator.d.ts.map +1 -0
  201. package/dist/orchestrators/WatchOrchestrator.js +158 -0
  202. package/dist/orchestrators/WatchOrchestrator.js.map +1 -0
  203. package/dist/orchestrators/types.d.ts +17 -0
  204. package/dist/orchestrators/types.d.ts.map +1 -0
  205. package/dist/orchestrators/types.js +2 -0
  206. package/dist/orchestrators/types.js.map +1 -0
  207. package/dist/runtime/ResultCollector.d.ts.map +1 -0
  208. package/dist/runtime/ResultCollector.js.map +1 -0
  209. package/dist/runtime/SignalHandler.d.ts.map +1 -0
  210. package/dist/runtime/SignalHandler.js.map +1 -0
  211. package/dist/{utils → runtime}/engine-stop.d.ts +1 -1
  212. package/dist/runtime/engine-stop.d.ts.map +1 -0
  213. package/dist/{utils → runtime}/engine-stop.js +1 -1
  214. package/dist/runtime/engine-stop.js.map +1 -0
  215. package/dist/runtime/engine-watch-events.d.ts +43 -0
  216. package/dist/runtime/engine-watch-events.d.ts.map +1 -0
  217. package/dist/runtime/engine-watch-events.js +72 -0
  218. package/dist/runtime/engine-watch-events.js.map +1 -0
  219. package/dist/{utils → runtime}/rebuild-manager.d.ts +1 -0
  220. package/dist/runtime/rebuild-manager.d.ts.map +1 -0
  221. package/dist/{utils → runtime}/rebuild-manager.js +8 -1
  222. package/dist/runtime/rebuild-manager.js.map +1 -0
  223. package/dist/runtime/worker-events.d.ts +22 -0
  224. package/dist/runtime/worker-events.d.ts.map +1 -0
  225. package/dist/runtime/worker-events.js +2 -0
  226. package/dist/runtime/worker-events.js.map +1 -0
  227. package/dist/runtime/worker-utils.d.ts.map +1 -0
  228. package/dist/runtime/worker-utils.js.map +1 -0
  229. package/dist/sd-cli-entry.d.ts.map +1 -1
  230. package/dist/sd-cli-entry.js +61 -54
  231. package/dist/sd-cli-entry.js.map +1 -1
  232. package/dist/sd-cli.js +1 -1
  233. package/dist/sd-cli.js.map +1 -1
  234. package/dist/sd-config.types.d.ts +6 -15
  235. package/dist/sd-config.types.d.ts.map +1 -1
  236. package/dist/typecheck/typecheck-non-package.d.ts.map +1 -0
  237. package/dist/{utils → typecheck}/typecheck-non-package.js +1 -1
  238. package/dist/typecheck/typecheck-non-package.js.map +1 -0
  239. package/dist/typecheck/typecheck-serialization.d.ts.map +1 -0
  240. package/dist/typecheck/typecheck-serialization.js.map +1 -0
  241. package/dist/utils/diagnostic-utils.d.ts +5 -0
  242. package/dist/utils/diagnostic-utils.d.ts.map +1 -1
  243. package/dist/utils/diagnostic-utils.js +15 -0
  244. package/dist/utils/diagnostic-utils.js.map +1 -1
  245. package/dist/utils/orchestrator-utils.d.ts +1 -5
  246. package/dist/utils/orchestrator-utils.d.ts.map +1 -1
  247. package/dist/utils/orchestrator-utils.js +2 -5
  248. package/dist/utils/orchestrator-utils.js.map +1 -1
  249. package/dist/utils/output-utils.d.ts +1 -1
  250. package/dist/utils/output-utils.d.ts.map +1 -1
  251. package/dist/utils/package-classify.d.ts +54 -0
  252. package/dist/utils/package-classify.d.ts.map +1 -0
  253. package/dist/utils/package-classify.js +134 -0
  254. package/dist/utils/package-classify.js.map +1 -0
  255. package/dist/utils/package-utils.d.ts +1 -58
  256. package/dist/utils/package-utils.d.ts.map +1 -1
  257. package/dist/utils/package-utils.js +0 -193
  258. package/dist/utils/package-utils.js.map +1 -1
  259. package/dist/utils/tsc-build.d.ts +1 -1
  260. package/dist/utils/tsc-build.d.ts.map +1 -1
  261. package/dist/utils/tsc-build.js +1 -1
  262. package/dist/utils/tsc-build.js.map +1 -1
  263. package/dist/workers/build-change-filter.d.ts +8 -0
  264. package/dist/workers/build-change-filter.d.ts.map +1 -0
  265. package/dist/workers/build-change-filter.js +16 -0
  266. package/dist/workers/build-change-filter.js.map +1 -0
  267. package/dist/workers/build-watch-paths.d.ts +20 -0
  268. package/dist/workers/build-watch-paths.d.ts.map +1 -0
  269. package/dist/workers/build-watch-paths.js +29 -0
  270. package/dist/workers/build-watch-paths.js.map +1 -0
  271. package/dist/workers/client.worker.d.ts +11 -18
  272. package/dist/workers/client.worker.d.ts.map +1 -1
  273. package/dist/workers/client.worker.js +218 -289
  274. package/dist/workers/client.worker.js.map +1 -1
  275. package/dist/workers/library-build.worker.d.ts +2 -2
  276. package/dist/workers/library-build.worker.d.ts.map +1 -1
  277. package/dist/workers/library-build.worker.js +13 -24
  278. package/dist/workers/library-build.worker.js.map +1 -1
  279. package/dist/workers/lint.worker.d.ts +1 -1
  280. package/dist/workers/lint.worker.d.ts.map +1 -1
  281. package/dist/workers/lint.worker.js +1 -1
  282. package/dist/workers/lint.worker.js.map +1 -1
  283. package/dist/workers/ngtsc-build.worker.d.ts +1 -1
  284. package/dist/workers/ngtsc-build.worker.d.ts.map +1 -1
  285. package/dist/workers/ngtsc-build.worker.js +19 -35
  286. package/dist/workers/ngtsc-build.worker.js.map +1 -1
  287. package/dist/workers/server-build.worker.d.ts +2 -2
  288. package/dist/workers/server-build.worker.d.ts.map +1 -1
  289. package/dist/workers/server-build.worker.js +36 -137
  290. package/dist/workers/server-build.worker.js.map +1 -1
  291. package/dist/workers/server-esbuild-context.d.ts +47 -0
  292. package/dist/workers/server-esbuild-context.d.ts.map +1 -0
  293. package/dist/workers/server-esbuild-context.js +92 -0
  294. package/dist/workers/server-esbuild-context.js.map +1 -0
  295. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  296. package/dist/workers/server-runtime.worker.js +3 -1
  297. package/dist/workers/server-runtime.worker.js.map +1 -1
  298. package/dist/workers/server-watch-manager.d.ts +44 -0
  299. package/dist/workers/server-watch-manager.d.ts.map +1 -0
  300. package/dist/workers/server-watch-manager.js +87 -0
  301. package/dist/workers/server-watch-manager.js.map +1 -0
  302. package/dist/workers/shared-worker-lifecycle.d.ts +14 -0
  303. package/dist/workers/shared-worker-lifecycle.d.ts.map +1 -0
  304. package/dist/workers/shared-worker-lifecycle.js +17 -0
  305. package/dist/workers/shared-worker-lifecycle.js.map +1 -0
  306. package/package.json +9 -9
  307. package/src/{utils → angular}/angular-build-pipeline.ts +3 -8
  308. package/src/{utils → angular}/angular-build.ts +1 -1
  309. package/src/{utils → angular}/angular-compiler.ts +1 -64
  310. package/src/angular/client-transform-stylesheet.ts +1 -1
  311. package/src/{utils → angular}/ngtsc-build-core.ts +3 -3
  312. package/src/angular/vite-angular-plugin.ts +22 -355
  313. package/src/capacitor/capacitor-build.ts +142 -0
  314. package/src/capacitor/capacitor-config-writer.ts +66 -0
  315. package/src/capacitor/capacitor-icon.ts +75 -0
  316. package/src/capacitor/capacitor-npm-config.ts +192 -0
  317. package/src/capacitor/capacitor.ts +32 -441
  318. package/src/commands/check.ts +2 -2
  319. package/src/commands/dev.ts +6 -6
  320. package/src/commands/lint.ts +1 -1
  321. package/src/commands/publish/deployment-phase.ts +125 -0
  322. package/src/commands/publish/env-utils.ts +44 -0
  323. package/src/commands/publish/git-phase.ts +99 -0
  324. package/src/commands/publish/index.ts +266 -0
  325. package/src/commands/publish/local-publisher.ts +23 -0
  326. package/src/commands/publish/npm-publisher.ts +30 -0
  327. package/src/commands/publish/post-publish-phase.ts +43 -0
  328. package/src/commands/publish/storage-publisher.ts +208 -0
  329. package/src/commands/publish/version-upgrade.ts +132 -0
  330. package/src/commands/replace-deps.ts +1 -1
  331. package/src/commands/watch.ts +6 -7
  332. package/src/deps/replace-deps/collect-deps.ts +92 -0
  333. package/src/{utils/replace-deps.ts → deps/replace-deps/replace-deps-resolve.ts} +4 -188
  334. package/src/deps/replace-deps/replace-deps.ts +193 -0
  335. package/src/{utils → deps/server-externals}/server-production-files.ts +2 -2
  336. package/src/dev-server/dev-http-server.ts +149 -0
  337. package/src/dev-server/hmr-client-script.ts +74 -0
  338. package/src/dev-server/hmr-service.ts +178 -0
  339. package/src/electron/electron.ts +21 -28
  340. package/src/engines/BaseEngine.ts +64 -83
  341. package/src/engines/{ViteEngine.ts → EsbuildClientEngine.ts} +33 -72
  342. package/src/engines/NgtscEngine.ts +3 -11
  343. package/src/engines/ServerEsbuildEngine.ts +3 -11
  344. package/src/engines/TscEngine.ts +3 -11
  345. package/src/engines/index.ts +29 -9
  346. package/src/engines/types.ts +3 -3
  347. package/src/esbuild/esbuild-client-config.ts +230 -0
  348. package/src/{utils → esbuild}/esbuild-config.ts +1 -0
  349. package/src/esbuild/esbuild-index-html.ts +119 -0
  350. package/src/esbuild/esbuild-pwa.ts +139 -0
  351. package/src/esbuild/esbuild-scss-plugin.ts +48 -0
  352. package/src/orchestrators/BaseOrchestrator.ts +118 -0
  353. package/src/orchestrators/BuildOrchestrator.ts +234 -171
  354. package/src/orchestrators/DevOrchestrator.ts +315 -0
  355. package/src/orchestrators/ServerRuntimeManager.ts +85 -0
  356. package/src/orchestrators/TypecheckOrchestrator.ts +166 -117
  357. package/src/orchestrators/WatchOrchestrator.ts +203 -0
  358. package/src/orchestrators/types.ts +18 -0
  359. package/src/{utils → runtime}/engine-stop.ts +1 -1
  360. package/src/runtime/engine-watch-events.ts +121 -0
  361. package/src/{utils → runtime}/rebuild-manager.ts +8 -1
  362. package/src/runtime/worker-events.ts +25 -0
  363. package/src/sd-cli-entry.ts +69 -54
  364. package/src/sd-cli.ts +1 -1
  365. package/src/sd-config.types.ts +6 -16
  366. package/src/{utils → typecheck}/typecheck-non-package.ts +1 -1
  367. package/src/utils/diagnostic-utils.ts +15 -0
  368. package/src/utils/orchestrator-utils.ts +2 -6
  369. package/src/utils/output-utils.ts +1 -1
  370. package/src/utils/package-classify.ts +182 -0
  371. package/src/utils/package-utils.ts +0 -257
  372. package/src/utils/tsc-build.ts +1 -1
  373. package/src/workers/build-change-filter.ts +27 -0
  374. package/src/workers/build-watch-paths.ts +54 -0
  375. package/src/workers/client.worker.ts +258 -328
  376. package/src/workers/library-build.worker.ts +15 -34
  377. package/src/workers/lint.worker.ts +1 -1
  378. package/src/workers/ngtsc-build.worker.ts +19 -46
  379. package/src/workers/server-build.worker.ts +38 -168
  380. package/src/workers/server-esbuild-context.ts +122 -0
  381. package/src/workers/server-runtime.worker.ts +4 -1
  382. package/src/workers/server-watch-manager.ts +124 -0
  383. package/src/workers/shared-worker-lifecycle.ts +24 -0
  384. package/tests/angular/angular-build-pipeline.spec.ts +2 -2
  385. package/tests/angular/angular-compiler-aot.acc.spec.ts +68 -0
  386. package/tests/angular/angular-compiler-aot.spec.ts +80 -0
  387. package/tests/angular/angular-compiler-hmr-removal.verify.md +16 -0
  388. package/tests/angular/vite-angular-plugin-legacy-watch.spec.ts +0 -17
  389. package/tests/angular/vite-angular-plugin-vitest.spec.ts +1 -6
  390. package/tests/angular/vite-angular-plugin-vitest.verify.md +20 -0
  391. package/tests/angular/vite-angular-plugin.spec.ts +4 -178
  392. package/tests/capacitor/capacitor-android.spec.ts +1 -0
  393. package/tests/capacitor/capacitor-build.spec.ts +1 -0
  394. package/tests/capacitor/capacitor-config-writer.acc.spec.ts +108 -0
  395. package/tests/capacitor/capacitor-config-writer.spec.ts +95 -0
  396. package/tests/capacitor/capacitor-icon.spec.ts +1 -0
  397. package/tests/capacitor/capacitor-init.spec.ts +1 -0
  398. package/tests/capacitor/capacitor-npm-config.acc.spec.ts +236 -0
  399. package/tests/capacitor/capacitor-npm-config.spec.ts +132 -0
  400. package/tests/capacitor/capacitor-run.spec.ts +1 -0
  401. package/tests/capacitor/capacitor-workspace.spec.ts +1 -0
  402. package/tests/commands/check.spec.ts +2 -2
  403. package/tests/commands/deployment-phase.acc.spec.ts +142 -0
  404. package/tests/commands/git-phase.acc.spec.ts +158 -0
  405. package/tests/commands/lint.spec.ts +1 -1
  406. package/tests/commands/post-publish-phase.acc.spec.ts +82 -0
  407. package/tests/commands/publish-npm-local-split.verify.md +9 -0
  408. package/tests/commands/publish-responsibility-split.verify.md +13 -0
  409. package/tests/commands/publish-storage-split.verify.md +8 -0
  410. package/tests/commands/publish.spec.ts +1 -1
  411. package/tests/commands/typecheck.spec.ts +18 -18
  412. package/tests/deps/deps-directory-separation.verify.md +15 -0
  413. package/tests/engines/base-engine.spec.ts +65 -6
  414. package/tests/engines/engine-adapter-isolation.spec.ts +11 -18
  415. package/tests/engines/engine-selection.spec.ts +38 -5
  416. package/tests/engines/engine-typecheck-selection.acc.spec.ts +85 -0
  417. package/tests/engines/engine-typecheck-selection.verify.md +8 -0
  418. package/tests/engines/esbuild-client-engine.acc.spec.ts +161 -0
  419. package/tests/engines/esbuild-client-engine.spec.ts +320 -0
  420. package/tests/engines/esbuild-client-engine.verify.md +15 -0
  421. package/tests/engines/normalize-result.verify.md +9 -0
  422. package/tests/engines/vite-dependency-cleanup.verify.md +24 -0
  423. package/tests/orchestrators/build-orchestrator.spec.ts +3 -3
  424. package/tests/orchestrators/dev-orchestrator.spec.ts +799 -0
  425. package/tests/orchestrators/orchestrator-baseenv.verify.md +10 -0
  426. package/tests/orchestrators/orchestrator-diagnostic-formatting.verify.md +10 -0
  427. package/tests/orchestrators/orchestrator-initializemode-signature.verify.md +9 -0
  428. package/tests/orchestrators/typecheck-orchestrator.spec.ts +11 -11
  429. package/tests/orchestrators/watch-orchestrator.spec.ts +511 -0
  430. package/tests/{infra → runtime}/result-collector.spec.ts +1 -1
  431. package/tests/{infra → runtime}/signal-handler.spec.ts +1 -1
  432. package/tests/sd-cli-entry.spec.ts +9 -0
  433. package/tests/utils/angular-build.spec.ts +15 -20
  434. package/tests/utils/angular-compiler-emit.spec.ts +2 -2
  435. package/tests/utils/angular-compiler.spec.ts +2 -2
  436. package/tests/utils/angular-source-file-cache.spec.ts +2 -2
  437. package/tests/utils/concurrency.spec.ts +2 -10
  438. package/tests/utils/dev-http-server.acc.spec.ts +206 -0
  439. package/tests/utils/dev-http-server.spec.ts +181 -0
  440. package/tests/utils/dev-http-server.verify.md +8 -0
  441. package/tests/utils/diagnostic-utils.spec.ts +42 -1
  442. package/tests/utils/engine-stop.spec.ts +1 -1
  443. package/tests/utils/engine-watch-events.acc.spec.ts +217 -0
  444. package/tests/utils/engine-watch-events.spec.ts +141 -0
  445. package/tests/utils/engine-watch-events.verify.md +17 -0
  446. package/tests/utils/esbuild-client-config.acc.spec.ts +443 -0
  447. package/tests/utils/esbuild-client-config.spec.ts +590 -0
  448. package/tests/utils/esbuild-client-config.verify.md +26 -0
  449. package/tests/utils/esbuild-config.spec.ts +11 -1
  450. package/tests/utils/esbuild-index-html.acc.spec.ts +166 -0
  451. package/tests/utils/esbuild-index-html.spec.ts +194 -0
  452. package/tests/utils/esbuild-index-html.verify.md +10 -0
  453. package/tests/utils/esbuild-pwa.acc.spec.ts +203 -0
  454. package/tests/utils/esbuild-pwa.spec.ts +189 -0
  455. package/tests/utils/esbuild-pwa.verify.md +9 -0
  456. package/tests/utils/esbuild-scss-plugin.acc.spec.ts +111 -0
  457. package/tests/utils/esbuild-scss-plugin.spec.ts +150 -0
  458. package/tests/utils/esbuild-scss-plugin.verify.md +8 -0
  459. package/tests/utils/external-modules.spec.ts +1 -1
  460. package/tests/utils/hmr-client-script.acc.spec.ts +128 -0
  461. package/tests/utils/hmr-client-script.spec.ts +44 -0
  462. package/tests/utils/hmr-service-dispatcher.acc.spec.ts +217 -0
  463. package/tests/utils/hmr-service-dispatcher.spec.ts +143 -0
  464. package/tests/utils/hmr-service.acc.spec.ts +139 -0
  465. package/tests/utils/hmr-service.spec.ts +131 -0
  466. package/tests/utils/hmr-service.verify.md +17 -0
  467. package/tests/utils/lint-core.spec.ts +2 -1
  468. package/tests/utils/lint-utils.spec.ts +1 -1
  469. package/tests/utils/lint-with-program.spec.ts +1 -1
  470. package/tests/utils/ngtsc-build-core-write-emit.spec.ts +19 -19
  471. package/tests/utils/ngtsc-build-core.spec.ts +4 -4
  472. package/tests/utils/orchestrator-utils.spec.ts +2 -2
  473. package/tests/utils/output-utils.spec.ts +1 -1
  474. package/tests/utils/package-utils.spec.ts +1 -1
  475. package/tests/utils/rebuild-manager.spec.ts +20 -7
  476. package/tests/utils/replace-deps-split.verify.md +15 -0
  477. package/tests/utils/replace-deps-watch.acc.spec.ts +131 -0
  478. package/tests/utils/replace-deps-watch.spec.ts +91 -0
  479. package/tests/utils/replace-deps-watch.verify.md +9 -0
  480. package/tests/utils/replace-deps.spec.ts +1 -1
  481. package/tests/utils/scss-compiler.spec.ts +1 -1
  482. package/tests/utils/tsc-build.spec.ts +1 -1
  483. package/tests/utils/typecheck-non-package.spec.ts +2 -2
  484. package/tests/utils/worker-utils.spec.ts +2 -1
  485. package/tests/workers/build-change-filter.acc.spec.ts +78 -0
  486. package/tests/workers/build-change-filter.spec.ts +39 -0
  487. package/tests/workers/build-watch-paths-library.verify.md +10 -0
  488. package/tests/workers/build-watch-paths-ngtsc-server.verify.md +12 -0
  489. package/tests/workers/build-watch-paths.acc.spec.ts +101 -0
  490. package/tests/workers/build-watch-paths.spec.ts +121 -0
  491. package/tests/workers/client-worker-browser-support.verify.md +7 -0
  492. package/tests/workers/client-worker-onend-sync.verify.md +7 -0
  493. package/tests/workers/client-worker.acc.spec.ts +185 -0
  494. package/tests/workers/client-worker.spec.ts +91 -178
  495. package/tests/workers/library-build-lint.spec.ts +3 -3
  496. package/tests/workers/library-build-worker.spec.ts +10 -11
  497. package/tests/workers/ngtsc-build-lint.spec.ts +4 -4
  498. package/tests/workers/ngtsc-build-worker.spec.ts +2 -2
  499. package/tests/workers/server-build-lint.spec.ts +4 -4
  500. package/tests/workers/server-build-worker.spec.ts +14 -15
  501. package/tests/workers/server-esbuild-context-integration.verify.md +10 -0
  502. package/tests/workers/server-esbuild-context.acc.spec.ts +98 -0
  503. package/tests/workers/server-esbuild-context.spec.ts +198 -0
  504. package/tests/workers/server-runtime-worker.spec.ts +4 -3
  505. package/tests/workers/server-watch-manager.acc.spec.ts +162 -0
  506. package/tests/workers/server-watch-manager.spec.ts +199 -0
  507. package/tests/workers/shared-worker-lifecycle.acc.spec.ts +27 -0
  508. package/tests/workers/shared-worker-lifecycle.spec.ts +47 -0
  509. package/dist/angular/vite-postcss-inline-plugin.d.ts +0 -18
  510. package/dist/angular/vite-postcss-inline-plugin.d.ts.map +0 -1
  511. package/dist/angular/vite-postcss-inline-plugin.js +0 -108
  512. package/dist/angular/vite-postcss-inline-plugin.js.map +0 -1
  513. package/dist/commands/publish.d.ts.map +0 -1
  514. package/dist/commands/publish.js +0 -689
  515. package/dist/commands/publish.js.map +0 -1
  516. package/dist/engines/ViteEngine.d.ts.map +0 -1
  517. package/dist/engines/ViteEngine.js.map +0 -1
  518. package/dist/infra/ResultCollector.d.ts.map +0 -1
  519. package/dist/infra/ResultCollector.js.map +0 -1
  520. package/dist/infra/SignalHandler.d.ts.map +0 -1
  521. package/dist/infra/SignalHandler.js.map +0 -1
  522. package/dist/orchestrators/DevWatchOrchestrator.d.ts +0 -63
  523. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +0 -1
  524. package/dist/orchestrators/DevWatchOrchestrator.js +0 -478
  525. package/dist/orchestrators/DevWatchOrchestrator.js.map +0 -1
  526. package/dist/utils/angular-build-pipeline.d.ts.map +0 -1
  527. package/dist/utils/angular-build-pipeline.js.map +0 -1
  528. package/dist/utils/angular-build.d.ts.map +0 -1
  529. package/dist/utils/angular-build.js.map +0 -1
  530. package/dist/utils/angular-compiler.d.ts.map +0 -1
  531. package/dist/utils/angular-compiler.js.map +0 -1
  532. package/dist/utils/engine-stop.d.ts.map +0 -1
  533. package/dist/utils/engine-stop.js.map +0 -1
  534. package/dist/utils/esbuild-config.d.ts.map +0 -1
  535. package/dist/utils/esbuild-config.js.map +0 -1
  536. package/dist/utils/hmr-candidates.d.ts +0 -15
  537. package/dist/utils/hmr-candidates.d.ts.map +0 -1
  538. package/dist/utils/hmr-candidates.js +0 -234
  539. package/dist/utils/hmr-candidates.js.map +0 -1
  540. package/dist/utils/lint-core.d.ts.map +0 -1
  541. package/dist/utils/lint-core.js.map +0 -1
  542. package/dist/utils/lint-utils.d.ts.map +0 -1
  543. package/dist/utils/lint-utils.js.map +0 -1
  544. package/dist/utils/lint-with-program.d.ts.map +0 -1
  545. package/dist/utils/lint-with-program.js.map +0 -1
  546. package/dist/utils/ngtsc-build-core.d.ts.map +0 -1
  547. package/dist/utils/ngtsc-build-core.js.map +0 -1
  548. package/dist/utils/rebuild-manager.d.ts.map +0 -1
  549. package/dist/utils/rebuild-manager.js.map +0 -1
  550. package/dist/utils/replace-deps.d.ts.map +0 -1
  551. package/dist/utils/replace-deps.js.map +0 -1
  552. package/dist/utils/scss-compiler.d.ts.map +0 -1
  553. package/dist/utils/scss-compiler.js.map +0 -1
  554. package/dist/utils/server-production-files.d.ts.map +0 -1
  555. package/dist/utils/server-production-files.js.map +0 -1
  556. package/dist/utils/typecheck-non-package.d.ts.map +0 -1
  557. package/dist/utils/typecheck-non-package.js.map +0 -1
  558. package/dist/utils/typecheck-serialization.d.ts.map +0 -1
  559. package/dist/utils/typecheck-serialization.js.map +0 -1
  560. package/dist/utils/vite-config.d.ts +0 -50
  561. package/dist/utils/vite-config.d.ts.map +0 -1
  562. package/dist/utils/vite-config.js +0 -242
  563. package/dist/utils/vite-config.js.map +0 -1
  564. package/dist/utils/vite-pwa-plugin.d.ts +0 -9
  565. package/dist/utils/vite-pwa-plugin.d.ts.map +0 -1
  566. package/dist/utils/vite-pwa-plugin.js +0 -139
  567. package/dist/utils/vite-pwa-plugin.js.map +0 -1
  568. package/dist/utils/vite-scope-watch-plugin.d.ts +0 -24
  569. package/dist/utils/vite-scope-watch-plugin.d.ts.map +0 -1
  570. package/dist/utils/vite-scope-watch-plugin.js +0 -51
  571. package/dist/utils/vite-scope-watch-plugin.js.map +0 -1
  572. package/dist/utils/worker-events.d.ts +0 -66
  573. package/dist/utils/worker-events.d.ts.map +0 -1
  574. package/dist/utils/worker-events.js +0 -55
  575. package/dist/utils/worker-events.js.map +0 -1
  576. package/dist/utils/worker-utils.d.ts.map +0 -1
  577. package/dist/utils/worker-utils.js.map +0 -1
  578. package/src/angular/vite-postcss-inline-plugin.ts +0 -139
  579. package/src/commands/publish.ts +0 -850
  580. package/src/orchestrators/DevWatchOrchestrator.ts +0 -594
  581. package/src/utils/hmr-candidates.ts +0 -327
  582. package/src/utils/vite-config.ts +0 -318
  583. package/src/utils/vite-pwa-plugin.ts +0 -168
  584. package/src/utils/vite-scope-watch-plugin.ts +0 -77
  585. package/src/utils/worker-events.ts +0 -128
  586. package/tests/angular/angular-compiler-hmr.spec.ts +0 -152
  587. package/tests/angular/hmr-candidates.spec.ts +0 -158
  588. package/tests/angular/linker-disk-cache.spec.ts +0 -171
  589. package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +0 -333
  590. package/tests/angular/vite-angular-plugin-hmr.spec.ts +0 -320
  591. package/tests/angular/vite-angular-plugin-scss-hmr.spec.ts +0 -95
  592. package/tests/angular/vite-postcss-inline-plugin.spec.ts +0 -60
  593. package/tests/engines/vite-engine.spec.ts +0 -409
  594. package/tests/orchestrators/dev-watch-orchestrator.spec.ts +0 -1542
  595. package/tests/utils/vite-config.spec.ts +0 -780
  596. package/tests/utils/vite-pwa-plugin.spec.ts +0 -401
  597. package/tests/utils/vite-scope-watch-plugin.spec.ts +0 -218
  598. package/tests/utils/worker-events.spec.ts +0 -147
  599. package/tests/workers/client-worker-legacy.spec.ts +0 -659
  600. /package/dist/{utils → angular}/ngtsc-build-core.js +0 -0
  601. /package/dist/{utils → angular}/scss-compiler.d.ts +0 -0
  602. /package/dist/{utils → angular}/scss-compiler.js +0 -0
  603. /package/dist/{utils → esbuild}/esbuild-config.d.ts +0 -0
  604. /package/dist/{utils → lint}/lint-core.d.ts +0 -0
  605. /package/dist/{utils → lint}/lint-core.js +0 -0
  606. /package/dist/{utils → lint}/lint-utils.d.ts +0 -0
  607. /package/dist/{utils → lint}/lint-utils.js +0 -0
  608. /package/dist/{utils → lint}/lint-with-program.d.ts +0 -0
  609. /package/dist/{utils → lint}/lint-with-program.js +0 -0
  610. /package/dist/{infra → runtime}/ResultCollector.d.ts +0 -0
  611. /package/dist/{infra → runtime}/ResultCollector.js +0 -0
  612. /package/dist/{infra → runtime}/SignalHandler.d.ts +0 -0
  613. /package/dist/{infra → runtime}/SignalHandler.js +0 -0
  614. /package/dist/{utils → runtime}/worker-utils.d.ts +0 -0
  615. /package/dist/{utils → runtime}/worker-utils.js +0 -0
  616. /package/dist/{utils → typecheck}/typecheck-non-package.d.ts +0 -0
  617. /package/dist/{utils → typecheck}/typecheck-serialization.d.ts +0 -0
  618. /package/dist/{utils → typecheck}/typecheck-serialization.js +0 -0
  619. /package/src/{utils → angular}/scss-compiler.ts +0 -0
  620. /package/src/{utils → lint}/lint-core.ts +0 -0
  621. /package/src/{utils → lint}/lint-utils.ts +0 -0
  622. /package/src/{utils → lint}/lint-with-program.ts +0 -0
  623. /package/src/{infra → runtime}/ResultCollector.ts +0 -0
  624. /package/src/{infra → runtime}/SignalHandler.ts +0 -0
  625. /package/src/{utils → runtime}/worker-utils.ts +0 -0
  626. /package/src/{utils → typecheck}/typecheck-serialization.ts +0 -0
@@ -1,45 +1,34 @@
1
1
  import { JavaScriptTransformer } from "@angular/build/private";
2
- import { createHash } from "crypto";
3
- import fsp from "fs/promises";
4
- import fs from "fs";
5
2
  import os from "os";
6
3
  import path from "path";
7
4
  import ts from "typescript";
8
5
  import { consola } from "consola";
9
6
  import { pathx } from "@simplysm/core-node";
10
- import { AngularSourceFileCache } from "../utils/angular-compiler.js";
7
+ import { AngularSourceFileCache } from "./angular-compiler.js";
11
8
  import { getPackageSourceFiles } from "../utils/tsconfig.js";
12
- import { AngularBuildPipeline, } from "../utils/angular-build-pipeline.js";
9
+ import { AngularBuildPipeline, } from "./angular-build-pipeline.js";
13
10
  import { loadSdConfig } from "../utils/sd-config.js";
14
- import { resolveReplaceDepEntries } from "../utils/replace-deps.js";
15
11
  const logger = consola.withTag("sd:cli:angular");
16
12
  /**
17
- * Angular AOT 컴파일을 수행하는 Vite 플러그인.
13
+ * Angular AOT 컴파일을 수행하는 Vite 플러그인 (Vitest 전용).
18
14
  *
19
15
  * AngularBuildPipeline + JavaScriptTransformer를 관리한다.
16
+ * - watchChange: 변경 파일 수집 (Vitest watch 모드용)
20
17
  * - buildStart: Pipeline 초기화 + 컴파일 + emit
21
18
  * - transform: .ts 파일에 대해 컴파일된 JS 반환 + JavaScriptTransformer 적용
22
- * - handleHotUpdate: incremental rebuild + HMR
23
19
  * - buildEnd: 리소스 정리
24
20
  */
25
21
  export function sdAngularPlugin(options) {
26
22
  let pipeline;
27
23
  let sourceFileCache;
28
24
  let jsTransformer;
29
- let prebundleTransformer;
30
- const templateUpdates = new Map();
31
- let hmrLock = Promise.resolve();
32
- let devServer;
33
- /** Rolldown watch 모드에서 변경된 파일 경로를 수집한다. buildStart 재호출 시 캐시 무효화에 사용. */
25
+ /** Vitest watch 모드에서 변경된 파일 경로를 수집한다. buildStart 재호출 시 캐시 무효화에 사용. */
34
26
  const pendingWatchChanges = new Set();
35
- // sd.config.ts에서 로딩된 설정 (config() 훅에서 초기화)
27
+ // config() 훅에서 초기화
36
28
  let isDev = false;
37
- let enableSourcemap = false;
38
- let isDevServer = false;
39
- let sdConfig;
29
+ let enableSourcemap = true;
40
30
  let pkgConfig;
41
31
  let resolvedPkgDir;
42
- let replaceDepDistPaths;
43
32
  function createJsTransformer() {
44
33
  const maxThreads = Math.max(1, Math.floor((os.cpus().length * 2) / 3));
45
34
  return new JavaScriptTransformer({
@@ -49,50 +38,6 @@ export function sdAngularPlugin(options) {
49
38
  jit: false,
50
39
  }, maxThreads);
51
40
  }
52
- /**
53
- * sd.config.ts의 replaceDeps glob에서 node_modules 패키지의 dist 경로를 계산한다.
54
- */
55
- function resolveReplaceDeps(pkgDir, config) {
56
- if (config.replaceDeps == null)
57
- return undefined;
58
- // node_modules 하위 패키지명 수집
59
- const nodeModulesDir = path.join(pkgDir, "node_modules");
60
- const targetNames = [];
61
- try {
62
- for (const entry of fs.readdirSync(nodeModulesDir)) {
63
- if (entry.startsWith("."))
64
- continue;
65
- if (entry.startsWith("@")) {
66
- // scoped package
67
- const scopeDir = path.join(nodeModulesDir, entry);
68
- for (const subEntry of fs.readdirSync(scopeDir)) {
69
- targetNames.push(`${entry}/${subEntry}`);
70
- }
71
- }
72
- else {
73
- targetNames.push(entry);
74
- }
75
- }
76
- }
77
- catch {
78
- // node_modules 없으면 빈 배열
79
- return undefined;
80
- }
81
- const matched = resolveReplaceDepEntries(config.replaceDeps, targetNames);
82
- if (matched.length === 0)
83
- return undefined;
84
- const distPaths = [];
85
- for (const dep of matched) {
86
- const distDir = path.join(nodeModulesDir, ...dep.targetName.split("/"), "dist");
87
- try {
88
- distPaths.push(pathx.posix(fs.realpathSync(distDir)));
89
- }
90
- catch {
91
- distPaths.push(pathx.posix(distDir));
92
- }
93
- }
94
- return distPaths;
95
- }
96
41
  return {
97
42
  name: "sd-angular",
98
43
  enforce: "pre",
@@ -103,7 +48,7 @@ export function sdAngularPlugin(options) {
103
48
  const cwd = process.cwd();
104
49
  isDev = env.mode === "development";
105
50
  // sd.config.ts 로딩
106
- sdConfig = await loadSdConfig({ cwd, dev: isDev, opt: [] });
51
+ const sdConfig = await loadSdConfig({ cwd, dev: isDev, opt: [] });
107
52
  const rawPkgConfig = sdConfig.packages[options.pkg];
108
53
  if (rawPkgConfig == null) {
109
54
  throw new Error(`sd.config.ts에 패키지 "${options.pkg}"가 정의되어 있지 않습니다.`);
@@ -111,73 +56,9 @@ export function sdAngularPlugin(options) {
111
56
  pkgConfig = rawPkgConfig;
112
57
  // 패키지 디렉토리 resolve
113
58
  resolvedPkgDir = path.resolve(cwd, "packages", options.pkg);
114
- // browserSupport (client 패키지에만 존재)
115
- const browserSupport = pkgConfig.target === "client"
116
- ? (pkgConfig).browserSupport
117
- : undefined;
118
- // legacyModule
119
- const legacyModule = browserSupport?.legacyModule === true;
120
- // replaceDepDistPaths 계산
121
- replaceDepDistPaths = resolveReplaceDeps(resolvedPkgDir, sdConfig);
122
- // Linker 캐시 디렉토리 (기본값)
123
- // enableSourcemap은 아직 확정되지 않으므로 isDev로 임시 결정
124
- const linkerCacheDir = path.join(cwd, ".cache", "linker", isDev ? "sm" : "nosm");
125
- return {
126
- define: {
127
- ngDevMode: isDev ? undefined : "false",
128
- ngJitMode: "false",
129
- ngHmrMode: isDev && !legacyModule ? undefined : "false",
130
- },
131
- optimizeDeps: {
132
- esbuildOptions: {
133
- plugins: [
134
- {
135
- name: "angular-vite-optimize-deps",
136
- setup(build) {
137
- build.onLoad({ filter: /\.[cm]?js$/ }, async (args) => {
138
- if (!/\.[cm]?js$/.test(args.path))
139
- return null;
140
- // replaceDeps 파일은 Linker 캐시를 건너뛴다 (항상 fresh 처리)
141
- if (replaceDepDistPaths != null &&
142
- replaceDepDistPaths.some((p) => pathx.posix(args.path).startsWith(p))) {
143
- return null;
144
- }
145
- if (prebundleTransformer == null)
146
- return null;
147
- const content = await fsp.readFile(args.path, "utf-8");
148
- const hash = createHash("sha256").update(content).digest("hex");
149
- const cachePath = path.join(linkerCacheDir, `${hash}.js`);
150
- try {
151
- const cached = await fsp.readFile(cachePath, "utf-8");
152
- return { contents: cached, loader: "js" };
153
- }
154
- catch {
155
- // cache miss
156
- }
157
- const result = await prebundleTransformer.transformFile(args.path);
158
- const resultStr = typeof result === "string"
159
- ? result
160
- : new TextDecoder().decode(result);
161
- try {
162
- await fsp.mkdir(linkerCacheDir, { recursive: true });
163
- await fsp.writeFile(cachePath, resultStr);
164
- }
165
- catch {
166
- // cache write failure — non-fatal
167
- }
168
- return { contents: resultStr, loader: "js" };
169
- });
170
- },
171
- },
172
- ],
173
- },
174
- },
175
- };
176
59
  },
177
60
  configResolved(resolved) {
178
61
  enableSourcemap = resolved.build.sourcemap !== false || isDev;
179
- // Transformer 생성 (sourcemap 확정 후)
180
- prebundleTransformer = new JavaScriptTransformer({ sourcemap: enableSourcemap, jit: false, thirdPartySourcemaps: enableSourcemap }, 1);
181
62
  },
182
63
  async buildStart() {
183
64
  if (resolvedPkgDir == null) {
@@ -191,7 +72,7 @@ export function sdAngularPlugin(options) {
191
72
  logger.debug(`tsconfig 파싱 완료: ${parsed.fileNames.length}개 파일`);
192
73
  // AngularSourceFileCache 생성 (또는 재사용)
193
74
  sourceFileCache ??= new AngularSourceFileCache();
194
- // Rolldown watch 재빌드: 변경된 파일의 캐시 무효화
75
+ // Vitest watch 재빌드: 변경된 파일의 캐시 무효화
195
76
  let hadPendingChanges = false;
196
77
  if (pendingWatchChanges.size > 0) {
197
78
  hadPendingChanges = true;
@@ -199,11 +80,10 @@ export function sdAngularPlugin(options) {
199
80
  sourceFileCache.invalidate(pendingWatchChanges);
200
81
  pendingWatchChanges.clear();
201
82
  }
202
- // legacyModule, postCssPlugins from sd.config.ts (client 패키지에만 존재)
83
+ // postCssPlugins from sd.config.ts (client 패키지에만 존재)
203
84
  const browserSupport = pkgConfig?.target === "client"
204
85
  ? (pkgConfig).browserSupport
205
86
  : undefined;
206
- const legacyModule = browserSupport?.legacyModule === true;
207
87
  const postCssPlugins = browserSupport?.postCss?.plugins;
208
88
  // Pipeline 생성 (최초) 또는 재사용
209
89
  pipeline ??= new AngularBuildPipeline({
@@ -214,7 +94,6 @@ export function sdAngularPlugin(options) {
214
94
  compilerOptions: parsed.options,
215
95
  angularCompilerOptions: parsed.raw?.angularCompilerOptions,
216
96
  sourceFileCache,
217
- enableHmr: isDevServer && !legacyModule,
218
97
  compilerOptionsTransformer: (opts) => ({
219
98
  ...opts,
220
99
  noEmit: false,
@@ -234,130 +113,32 @@ export function sdAngularPlugin(options) {
234
113
  return;
235
114
  }
236
115
  const pipelineResult = await pipeline.initialize();
237
- // templateUpdates 수집
238
- templateUpdates.clear();
239
- if (pipelineResult.templateUpdates != null) {
240
- for (const [key, value] of pipelineResult.templateUpdates) {
241
- templateUpdates.set(key, value);
242
- }
243
- }
244
116
  // 진단 보고
245
117
  reportDiagnostics(pipelineResult.diagnostics);
246
118
  // SCSS 에러 보고
247
119
  for (const err of pipelineResult.scssErrors) {
248
120
  logger.error(err);
249
121
  }
250
- // 초기 빌드 결과 보고 (dev, prod 공통)
251
- options.onBuild?.({
252
- success: pipelineResult.diagnostics.errors.length === 0,
253
- errors: pipelineResult.diagnostics.errors.map((e) => e.message),
254
- warnings: pipelineResult.diagnostics.warnings.map((w) => w.message),
255
- });
256
- },
257
- async handleHotUpdate({ file, modules, server, }) {
258
- if (pipeline == null || !isDev)
259
- return;
260
- if (!file.endsWith(".ts") &&
261
- !file.endsWith(".html") &&
262
- !file.endsWith(".scss")) {
263
- // replaceDeps .js 파일 변경 시 full-reload 강제
264
- if (file.endsWith(".js") &&
265
- devServer != null &&
266
- replaceDepDistPaths != null &&
267
- replaceDepDistPaths.some((p) => pathx.posix(file).startsWith(p))) {
268
- devServer.hot.send({ type: "full-reload" });
269
- return [];
270
- }
271
- return;
272
- }
273
- const normalizedFile = pathx.posix(file);
274
- let filesToUpdate;
275
- if (file.endsWith(".scss")) {
276
- // SCSS @use 의존성 역방향 탐색: 변경된 SCSS를 @use하는 파일을 찾아 재컴파일
277
- const affectedOwnerFiles = pipeline.findAffectedByScss(normalizedFile);
278
- if (affectedOwnerFiles.length === 0)
279
- return;
280
- filesToUpdate = affectedOwnerFiles;
281
- }
282
- else {
283
- // 의존성 필터: TypeScript program에 포함되지 않은 파일은 건너뜀
284
- const programFiles = pipeline.getTsProgram().getSourceFiles();
285
- const isInProgram = programFiles.some((sf) => pathx.posix(sf.fileName) === normalizedFile);
286
- if (!isInProgram) {
287
- logger.debug(`변경된 파일이 빌드에 포함되지 않아 리빌드 건너뜀: ${normalizedFile}`);
288
- return;
289
- }
290
- filesToUpdate = [file];
291
- }
292
- // 경쟁 조건 방지: 이전 HMR 처리 완료 대기
293
- const prevLock = hmrLock;
294
- let releaseLock;
295
- hmrLock = new Promise((resolve) => {
296
- releaseLock = resolve;
297
- });
298
- await prevLock;
299
- options.onBuildStart?.();
300
- try {
301
- // rebuild 시작 시 이전 templateUpdates 정리
302
- templateUpdates.clear();
303
- const pipelineResult = await pipeline.update(filesToUpdate);
304
- // templateUpdates 수집
305
- if (pipelineResult.templateUpdates != null) {
306
- for (const [key, value] of pipelineResult.templateUpdates) {
307
- templateUpdates.set(key, value);
308
- }
309
- }
310
- // Pipeline.update() 후 실제 re-emit된 소스 경로 수집
311
- const affectedPaths = pipeline.getLatestEmittedSourcePaths();
312
- reportDiagnostics(pipelineResult.diagnostics);
313
- options.onBuild?.({
314
- success: pipelineResult.diagnostics.errors.length === 0,
315
- errors: pipelineResult.diagnostics.errors.map((e) => e.message),
316
- warnings: pipelineResult.diagnostics.warnings.map((w) => w.message),
317
- });
318
- if (file.endsWith(".scss")) {
319
- // SCSS: moduleGraph에서 영향받은 TS 모듈 조회
320
- const result = [];
321
- for (const p of affectedPaths) {
322
- const mods = server.moduleGraph.getModulesByFile(p);
323
- if (mods)
324
- result.push(...mods);
325
- }
326
- return result;
327
- }
328
- else {
329
- // TS/HTML: 전달받은 modules에서 영향받은 모듈 필터
330
- const affectedSet = new Set(affectedPaths);
331
- return modules.filter((m) => m.file != null && affectedSet.has(pathx.posix(m.file)));
332
- }
333
- }
334
- catch (err) {
335
- const message = err instanceof Error ? err.message : String(err);
336
- logger.error(`HMR recompile failed: ${message}`);
337
- options.onBuild?.({ success: false, errors: [message] });
338
- return;
339
- }
340
- finally {
341
- releaseLock();
342
- }
343
122
  },
344
123
  async transform(_code, id) {
345
124
  if (jsTransformer == null)
346
125
  return;
126
+ // query param 제거
127
+ const cleanId = id.split("?")[0];
347
128
  let code = _code;
348
129
  // Phase 1: TS 컴파일 — .ts 파일은 Pipeline이 emit한 JS로 교체
349
- if (id.endsWith(".ts")) {
350
- const normalizedId = pathx.posix(id);
130
+ if (cleanId.endsWith(".ts")) {
131
+ const normalizedId = pathx.posix(cleanId);
351
132
  const emittedContent = pipeline?.getEmittedFile(normalizedId);
352
133
  if (emittedContent == null)
353
134
  return;
354
135
  code = emittedContent;
355
136
  }
356
- else if (!id.endsWith(".mjs") && !id.endsWith(".js")) {
137
+ else if (!cleanId.endsWith(".mjs") && !cleanId.endsWith(".js")) {
357
138
  return;
358
139
  }
359
140
  // Phase 2: JS 변환 — Angular Linker로 partial → full AOT 링킹 + 최적화
360
- const transformed = await jsTransformer.transformData(pathx.posix(id), code, false);
141
+ const transformed = await jsTransformer.transformData(pathx.posix(cleanId), code, false);
361
142
  const transformedCode = new TextDecoder().decode(transformed);
362
143
  // 인라인 소스맵 분리 (Rollup 경고 방지)
363
144
  const inlineMapMatch = transformedCode.match(/\/\/# sourceMappingURL=data:application\/json;(?:charset=utf-8;)?base64,(.+)$/m);
@@ -371,59 +152,12 @@ export function sdAngularPlugin(options) {
371
152
  return { code: transformedCode, map: null };
372
153
  },
373
154
  async buildEnd() {
374
- // dev 모드에서는 pipeline/jsTransformer 유지 (HMR용 incremental compilation)
375
- if (!isDev) {
376
- if (jsTransformer != null) {
377
- await jsTransformer.close();
378
- jsTransformer = undefined;
379
- }
380
- if (prebundleTransformer != null) {
381
- await prebundleTransformer.close();
382
- }
383
- pipeline = undefined;
155
+ if (jsTransformer != null) {
156
+ await jsTransformer.close();
157
+ jsTransformer = undefined;
384
158
  }
159
+ pipeline = undefined;
385
160
  },
386
- configureServer(server) {
387
- devServer = server;
388
- isDevServer = true;
389
- // component-middleware 등록 (HMR template updates 서빙)
390
- server.middlewares.use(angularComponentMiddleware(templateUpdates, server.config.base));
391
- // dev server 종료 시 리소스 정리
392
- server.httpServer?.on("close", () => {
393
- void Promise.all([
394
- jsTransformer?.close(),
395
- prebundleTransformer?.close(),
396
- ])
397
- .catch((err) => {
398
- logger.error(`Resource dispose failed: ${err instanceof Error ? err.message : String(err)}`);
399
- })
400
- .finally(() => {
401
- jsTransformer = undefined;
402
- pipeline = undefined;
403
- });
404
- });
405
- },
406
- };
407
- }
408
- function angularComponentMiddleware(templateUpdates, basePath) {
409
- return (req, res, next) => {
410
- const rawUrl = req.url ?? "";
411
- const parsedUrl = new URL(rawUrl, "http://localhost");
412
- const pathname = decodeURIComponent(parsedUrl.pathname);
413
- const strippedPathname = basePath !== "/" && pathname.startsWith(basePath)
414
- ? pathname.slice(basePath.length - 1)
415
- : pathname;
416
- if (!strippedPathname.includes("/@ng/component")) {
417
- next();
418
- return;
419
- }
420
- const componentId = parsedUrl.searchParams.get("c") ?? "";
421
- const body = templateUpdates.get(encodeURIComponent(componentId)) ?? "";
422
- res.writeHead(200, {
423
- "Content-Type": "text/javascript",
424
- "Cache-Control": "no-cache",
425
- });
426
- res.end(body);
427
161
  };
428
162
  }
429
163
  function reportDiagnostics(diagnostics) {
@@ -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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"}
@@ -0,0 +1,14 @@
1
+ import type { SdCapacitorSignConfig } from "../sd-config.types.js";
2
+ /**
3
+ * 서명 설정을 build.gradle에 추가하고 keystore 파일을 복사
4
+ */
5
+ export declare function configureSigningConfig(pkgPath: string, androidPath: string, sign: SdCapacitorSignConfig): Promise<void>;
6
+ /**
7
+ * Gradle 빌드 실행 (cross-platform)
8
+ */
9
+ export declare function buildAndroid(capPath: string, buildType: string, isBundle: boolean): Promise<void>;
10
+ /**
11
+ * 빌드 산출물을 출력 경로에 복사
12
+ */
13
+ export declare function copyBuildOutput(capPath: string, outPath: string, buildType: string, isBundle: boolean, appName: string, version: string): Promise<void>;
14
+ //# sourceMappingURL=capacitor-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacitor-build.d.ts","sourceRoot":"","sources":["../../src/capacitor/capacitor-build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAInE;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -0,0 +1,105 @@
1
+ import { cpx, fsx, pathx } from "@simplysm/core-node";
2
+ import { consola, LogLevels } from "consola";
3
+ const _logger = consola.withTag("sd:cli:capacitor");
4
+ /**
5
+ * 서명 설정을 build.gradle에 추가하고 keystore 파일을 복사
6
+ */
7
+ export async function configureSigningConfig(pkgPath, androidPath, sign) {
8
+ // keystore 파일 확인 및 복사
9
+ const keystoreSrc = pathx.posixResolve(pkgPath, sign.keystore);
10
+ if (!(await fsx.exists(keystoreSrc))) {
11
+ throw new Error(`keystore 파일을 찾을 수 없습니다: ${keystoreSrc}`);
12
+ }
13
+ const keystoreDest = pathx.posixResolve(androidPath, "app", "android.keystore");
14
+ await fsx.copy(keystoreSrc, keystoreDest);
15
+ // build.gradle에 signingConfigs 추가
16
+ const buildGradlePath = pathx.posixResolve(androidPath, "app/build.gradle");
17
+ let content = await fsx.read(buildGradlePath);
18
+ // 이미 signingConfigs가 있으면 스킵
19
+ if (content.includes("signingConfigs"))
20
+ return;
21
+ const storeType = sign.keystoreType ?? "jks";
22
+ const escapeGroovy = (s) => s.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
23
+ const escapedStorePassword = escapeGroovy(sign.storePassword);
24
+ const escapedKeyPassword = escapeGroovy(sign.password);
25
+ const signingBlock = ` signingConfigs {
26
+ release {
27
+ storeFile file("android.keystore")
28
+ storePassword '${escapedStorePassword}'
29
+ keyAlias '${sign.alias}'
30
+ keyPassword '${escapedKeyPassword}'
31
+ storeType "${storeType}"
32
+ }
33
+ }
34
+ `;
35
+ // signingConfigs 블록을 buildTypes 앞에 삽입
36
+ content = content.replace(/(\s*buildTypes\s*\{)/, (match) => `\n${signingBlock}${match}`);
37
+ // buildTypes.release에 signingConfig 추가
38
+ content = content.replace(/(buildTypes\s*\{[\s\S]*?release\s*\{)/, "$1\n signingConfig signingConfigs.release");
39
+ await fsx.write(buildGradlePath, content);
40
+ }
41
+ /**
42
+ * Gradle 빌드 실행 (cross-platform)
43
+ */
44
+ export async function buildAndroid(capPath, buildType, isBundle) {
45
+ let gradleTask;
46
+ if (buildType === "debug") {
47
+ gradleTask = "assembleDebug";
48
+ }
49
+ else if (isBundle) {
50
+ gradleTask = "bundleRelease";
51
+ }
52
+ else {
53
+ gradleTask = "assembleRelease";
54
+ }
55
+ const androidPath = pathx.posixResolve(capPath, "android");
56
+ const isWindows = process.platform === "win32";
57
+ const isDebug = consola.level >= LogLevels.debug;
58
+ if (isWindows) {
59
+ _logger.debug(`Gradle 실행: cmd /c gradlew.bat ${gradleTask}`);
60
+ const { stdout } = await cpx.spawn("cmd", ["/c", "gradlew.bat", gradleTask, "--no-daemon"], {
61
+ cwd: androidPath,
62
+ ...(isDebug ? { stdio: ["ignore", "inherit", "inherit"] } : {}),
63
+ });
64
+ _logger.debug(`실행 결과: ${stdout}`);
65
+ }
66
+ else {
67
+ const gradlew = pathx.posixResolve(androidPath, "gradlew");
68
+ _logger.debug(`Gradle 실행: ${gradlew} ${gradleTask}`);
69
+ const { stdout } = await cpx.spawn(gradlew, [gradleTask, "--no-daemon"], {
70
+ cwd: androidPath,
71
+ ...(isDebug ? { stdio: ["ignore", "inherit", "inherit"] } : {}),
72
+ });
73
+ _logger.debug(`실행 결과: ${stdout}`);
74
+ }
75
+ }
76
+ /**
77
+ * 빌드 산출물을 출력 경로에 복사
78
+ */
79
+ export async function copyBuildOutput(capPath, outPath, buildType, isBundle, appName, version) {
80
+ const ext = isBundle ? "aab" : "apk";
81
+ const outputType = isBundle ? "bundle" : "apk";
82
+ const androidBuildPath = pathx.posixResolve(capPath, "android/app/build/outputs", outputType, buildType);
83
+ // 빌드 산출물 찾기
84
+ _logger.debug(`빌드 산출물 탐색: ${androidBuildPath}`);
85
+ const candidates = await fsx.glob(pathx.posixResolve(androidBuildPath, `app-*.${ext}`));
86
+ if (candidates.length === 0) {
87
+ throw new Error(`빌드 산출물을 찾을 수 없습니다: ${androidBuildPath}`);
88
+ }
89
+ const builtFile = candidates[0];
90
+ _logger.debug(`빌드 산출물: ${builtFile}`);
91
+ const isUnsigned = builtFile.includes("unsigned");
92
+ // 출력 디렉토리 생성
93
+ const androidOutPath = pathx.posixResolve(outPath, "android");
94
+ const updatesPath = pathx.posixResolve(androidOutPath, "updates");
95
+ await fsx.mkdir(androidOutPath);
96
+ await fsx.mkdir(updatesPath);
97
+ // latest 파일명 결정
98
+ const unsignedSuffix = isUnsigned ? "-unsigned" : "";
99
+ const latestName = `${appName}${unsignedSuffix}-latest.${ext}`;
100
+ const versionedName = `${version}.${ext}`;
101
+ // 복사
102
+ await fsx.copy(builtFile, pathx.posixResolve(androidOutPath, latestName));
103
+ await fsx.copy(builtFile, pathx.posixResolve(updatesPath, versionedName));
104
+ }
105
+ //# sourceMappingURL=capacitor-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacitor-build.js","sourceRoot":"","sources":["../../src/capacitor/capacitor-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { SdCapacitorConfig } from "../sd-config.types.js";
2
+ /**
3
+ * capacitor.config.ts를 생성한다.
4
+ */
5
+ export declare function writeCapacitorConfig(capPath: string, config: SdCapacitorConfig): Promise<void>;
6
+ /**
7
+ * capacitor.config.ts의 server.url을 업데이트한다.
8
+ * WebView가 이 URL에서 웹 에셋을 로드하여 Hot Reload가 동작한다.
9
+ */
10
+ export declare function updateServerUrl(capPath: string, url: string): Promise<void>;
11
+ //# sourceMappingURL=capacitor-config-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacitor-config-writer.d.ts","sourceRoot":"","sources":["../../src/capacitor/capacitor-config-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWjF"}