@simplysm/sd-cli 14.0.30 → 14.0.33
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.
- package/dist/{utils → angular}/angular-build-pipeline.d.ts +0 -2
- package/dist/angular/angular-build-pipeline.d.ts.map +1 -0
- package/dist/{utils → angular}/angular-build-pipeline.js +3 -6
- package/dist/angular/angular-build-pipeline.js.map +1 -0
- package/dist/{utils → angular}/angular-build.d.ts +1 -1
- package/dist/angular/angular-build.d.ts.map +1 -0
- package/dist/{utils → angular}/angular-build.js +1 -1
- package/dist/angular/angular-build.js.map +1 -0
- package/dist/{utils → angular}/angular-compiler.d.ts +0 -3
- package/dist/angular/angular-compiler.d.ts.map +1 -0
- package/dist/{utils → angular}/angular-compiler.js +1 -45
- package/dist/angular/angular-compiler.js.map +1 -0
- package/dist/angular/client-transform-stylesheet.js +1 -1
- package/dist/angular/client-transform-stylesheet.js.map +1 -1
- package/dist/{utils → angular}/ngtsc-build-core.d.ts +3 -3
- package/dist/angular/ngtsc-build-core.d.ts.map +1 -0
- package/dist/angular/ngtsc-build-core.js.map +1 -0
- package/dist/angular/scss-compiler.d.ts.map +1 -0
- package/dist/angular/scss-compiler.js.map +1 -0
- package/dist/angular/vite-angular-plugin.d.ts +2 -10
- package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
- package/dist/angular/vite-angular-plugin.js +20 -286
- package/dist/angular/vite-angular-plugin.js.map +1 -1
- package/dist/capacitor/capacitor-build.d.ts +14 -0
- package/dist/capacitor/capacitor-build.d.ts.map +1 -0
- package/dist/capacitor/capacitor-build.js +105 -0
- package/dist/capacitor/capacitor-build.js.map +1 -0
- package/dist/capacitor/capacitor-config-writer.d.ts +11 -0
- package/dist/capacitor/capacitor-config-writer.d.ts.map +1 -0
- package/dist/capacitor/capacitor-config-writer.js +54 -0
- package/dist/capacitor/capacitor-config-writer.js.map +1 -0
- package/dist/capacitor/capacitor-icon.d.ts +5 -0
- package/dist/capacitor/capacitor-icon.d.ts.map +1 -0
- package/dist/capacitor/capacitor-icon.js +58 -0
- package/dist/capacitor/capacitor-icon.js.map +1 -0
- package/dist/capacitor/capacitor-npm-config.d.ts +11 -0
- package/dist/capacitor/capacitor-npm-config.d.ts.map +1 -0
- package/dist/capacitor/capacitor-npm-config.js +145 -0
- package/dist/capacitor/capacitor-npm-config.js.map +1 -0
- package/dist/capacitor/capacitor.d.ts +0 -45
- package/dist/capacitor/capacitor.d.ts.map +1 -1
- package/dist/capacitor/capacitor.js +15 -354
- package/dist/capacitor/capacitor.js.map +1 -1
- package/dist/commands/check.js +2 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dev.d.ts +3 -3
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +3 -3
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/lint.d.ts +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +1 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/publish/deployment-phase.d.ts +12 -0
- package/dist/commands/publish/deployment-phase.d.ts.map +1 -0
- package/dist/commands/publish/deployment-phase.js +94 -0
- package/dist/commands/publish/deployment-phase.js.map +1 -0
- package/dist/commands/publish/env-utils.d.ts +10 -0
- package/dist/commands/publish/env-utils.d.ts.map +1 -0
- package/dist/commands/publish/env-utils.js +41 -0
- package/dist/commands/publish/env-utils.js.map +1 -0
- package/dist/commands/publish/git-phase.d.ts +12 -0
- package/dist/commands/publish/git-phase.d.ts.map +1 -0
- package/dist/commands/publish/git-phase.js +79 -0
- package/dist/commands/publish/git-phase.js.map +1 -0
- package/dist/commands/{publish.d.ts → publish/index.d.ts} +1 -1
- package/dist/commands/publish/index.d.ts.map +1 -0
- package/dist/commands/publish/index.js +211 -0
- package/dist/commands/publish/index.js.map +1 -0
- package/dist/commands/publish/local-publisher.d.ts +6 -0
- package/dist/commands/publish/local-publisher.d.ts.map +1 -0
- package/dist/commands/publish/local-publisher.js +16 -0
- package/dist/commands/publish/local-publisher.js.map +1 -0
- package/dist/commands/publish/npm-publisher.d.ts +6 -0
- package/dist/commands/publish/npm-publisher.d.ts.map +1 -0
- package/dist/commands/publish/npm-publisher.js +21 -0
- package/dist/commands/publish/npm-publisher.js.map +1 -0
- package/dist/commands/publish/post-publish-phase.d.ts +8 -0
- package/dist/commands/publish/post-publish-phase.d.ts.map +1 -0
- package/dist/commands/publish/post-publish-phase.js +34 -0
- package/dist/commands/publish/post-publish-phase.js.map +1 -0
- package/dist/commands/publish/storage-publisher.d.ts +18 -0
- package/dist/commands/publish/storage-publisher.d.ts.map +1 -0
- package/dist/commands/publish/storage-publisher.js +173 -0
- package/dist/commands/publish/storage-publisher.js.map +1 -0
- package/dist/commands/publish/version-upgrade.d.ts +28 -0
- package/dist/commands/publish/version-upgrade.d.ts.map +1 -0
- package/dist/commands/publish/version-upgrade.js +96 -0
- package/dist/commands/publish/version-upgrade.js.map +1 -0
- package/dist/commands/replace-deps.js +1 -1
- package/dist/commands/replace-deps.js.map +1 -1
- package/dist/commands/watch.d.ts +3 -4
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +3 -4
- package/dist/commands/watch.js.map +1 -1
- package/dist/deps/replace-deps/collect-deps.d.ts +6 -0
- package/dist/deps/replace-deps/collect-deps.d.ts.map +1 -0
- package/dist/deps/replace-deps/collect-deps.js +71 -0
- package/dist/deps/replace-deps/collect-deps.js.map +1 -0
- package/dist/{utils/replace-deps.d.ts → deps/replace-deps/replace-deps-resolve.d.ts} +7 -24
- package/dist/deps/replace-deps/replace-deps-resolve.d.ts.map +1 -0
- package/dist/{utils/replace-deps.js → deps/replace-deps/replace-deps-resolve.js} +4 -152
- package/dist/deps/replace-deps/replace-deps-resolve.js.map +1 -0
- package/dist/deps/replace-deps/replace-deps.d.ts +36 -0
- package/dist/deps/replace-deps/replace-deps.d.ts.map +1 -0
- package/dist/deps/replace-deps/replace-deps.js +155 -0
- package/dist/deps/replace-deps/replace-deps.js.map +1 -0
- package/dist/{utils → deps/server-externals}/server-production-files.d.ts +1 -1
- package/dist/deps/server-externals/server-production-files.d.ts.map +1 -0
- package/dist/{utils → deps/server-externals}/server-production-files.js +1 -1
- package/dist/deps/server-externals/server-production-files.js.map +1 -0
- package/dist/dev-server/dev-http-server.d.ts +23 -0
- package/dist/dev-server/dev-http-server.d.ts.map +1 -0
- package/dist/dev-server/dev-http-server.js +116 -0
- package/dist/dev-server/dev-http-server.js.map +1 -0
- package/dist/dev-server/hmr-client-script.d.ts +13 -0
- package/dist/dev-server/hmr-client-script.d.ts.map +1 -0
- package/dist/dev-server/hmr-client-script.js +73 -0
- package/dist/dev-server/hmr-client-script.js.map +1 -0
- package/dist/dev-server/hmr-service.d.ts +23 -0
- package/dist/dev-server/hmr-service.d.ts.map +1 -0
- package/dist/dev-server/hmr-service.js +139 -0
- package/dist/dev-server/hmr-service.js.map +1 -0
- package/dist/electron/electron.d.ts +5 -0
- package/dist/electron/electron.d.ts.map +1 -1
- package/dist/electron/electron.js +17 -24
- package/dist/electron/electron.js.map +1 -1
- package/dist/engines/BaseEngine.d.ts +18 -4
- package/dist/engines/BaseEngine.d.ts.map +1 -1
- package/dist/engines/BaseEngine.js +45 -66
- package/dist/engines/BaseEngine.js.map +1 -1
- package/dist/engines/{ViteEngine.d.ts → EsbuildClientEngine.d.ts} +11 -18
- package/dist/engines/EsbuildClientEngine.d.ts.map +1 -0
- package/dist/engines/{ViteEngine.js → EsbuildClientEngine.js} +28 -55
- package/dist/engines/EsbuildClientEngine.js.map +1 -0
- package/dist/engines/NgtscEngine.d.ts +2 -2
- package/dist/engines/NgtscEngine.d.ts.map +1 -1
- package/dist/engines/NgtscEngine.js +1 -9
- package/dist/engines/NgtscEngine.js.map +1 -1
- package/dist/engines/ServerEsbuildEngine.d.ts +2 -2
- package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
- package/dist/engines/ServerEsbuildEngine.js +1 -9
- package/dist/engines/ServerEsbuildEngine.js.map +1 -1
- package/dist/engines/TscEngine.d.ts +2 -2
- package/dist/engines/TscEngine.d.ts.map +1 -1
- package/dist/engines/TscEngine.js +1 -9
- package/dist/engines/TscEngine.js.map +1 -1
- package/dist/engines/index.d.ts +15 -5
- package/dist/engines/index.d.ts.map +1 -1
- package/dist/engines/index.js +21 -5
- package/dist/engines/index.js.map +1 -1
- package/dist/engines/types.d.ts +3 -3
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/esbuild/esbuild-client-config.d.ts +38 -0
- package/dist/esbuild/esbuild-client-config.d.ts.map +1 -0
- package/dist/esbuild/esbuild-client-config.js +171 -0
- package/dist/esbuild/esbuild-client-config.js.map +1 -0
- package/dist/esbuild/esbuild-config.d.ts.map +1 -0
- package/dist/{utils → esbuild}/esbuild-config.js +1 -0
- package/dist/esbuild/esbuild-config.js.map +1 -0
- package/dist/esbuild/esbuild-index-html.d.ts +39 -0
- package/dist/esbuild/esbuild-index-html.d.ts.map +1 -0
- package/dist/esbuild/esbuild-index-html.js +68 -0
- package/dist/esbuild/esbuild-index-html.js.map +1 -0
- package/dist/esbuild/esbuild-pwa.d.ts +21 -0
- package/dist/esbuild/esbuild-pwa.d.ts.map +1 -0
- package/dist/esbuild/esbuild-pwa.js +105 -0
- package/dist/esbuild/esbuild-pwa.js.map +1 -0
- package/dist/esbuild/esbuild-scss-plugin.d.ts +6 -0
- package/dist/esbuild/esbuild-scss-plugin.d.ts.map +1 -0
- package/dist/esbuild/esbuild-scss-plugin.js +41 -0
- package/dist/esbuild/esbuild-scss-plugin.js.map +1 -0
- package/dist/lint/lint-core.d.ts.map +1 -0
- package/dist/lint/lint-core.js.map +1 -0
- package/dist/lint/lint-utils.d.ts.map +1 -0
- package/dist/lint/lint-utils.js.map +1 -0
- package/dist/lint/lint-with-program.d.ts.map +1 -0
- package/dist/lint/lint-with-program.js.map +1 -0
- package/dist/orchestrators/BaseOrchestrator.d.ts +44 -0
- package/dist/orchestrators/BaseOrchestrator.d.ts.map +1 -0
- package/dist/orchestrators/BaseOrchestrator.js +92 -0
- package/dist/orchestrators/BaseOrchestrator.js.map +1 -0
- package/dist/orchestrators/BuildOrchestrator.d.ts +45 -3
- package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.js +170 -143
- package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
- package/dist/orchestrators/DevOrchestrator.d.ts +39 -0
- package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -0
- package/dist/orchestrators/DevOrchestrator.js +249 -0
- package/dist/orchestrators/DevOrchestrator.js.map +1 -0
- package/dist/orchestrators/ServerRuntimeManager.d.ts +22 -0
- package/dist/orchestrators/ServerRuntimeManager.d.ts.map +1 -0
- package/dist/orchestrators/ServerRuntimeManager.js +66 -0
- package/dist/orchestrators/ServerRuntimeManager.js.map +1 -0
- package/dist/orchestrators/TypecheckOrchestrator.d.ts +17 -2
- package/dist/orchestrators/TypecheckOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/TypecheckOrchestrator.js +122 -108
- package/dist/orchestrators/TypecheckOrchestrator.js.map +1 -1
- package/dist/orchestrators/WatchOrchestrator.d.ts +33 -0
- package/dist/orchestrators/WatchOrchestrator.d.ts.map +1 -0
- package/dist/orchestrators/WatchOrchestrator.js +158 -0
- package/dist/orchestrators/WatchOrchestrator.js.map +1 -0
- package/dist/orchestrators/types.d.ts +17 -0
- package/dist/orchestrators/types.d.ts.map +1 -0
- package/dist/orchestrators/types.js +2 -0
- package/dist/orchestrators/types.js.map +1 -0
- package/dist/runtime/ResultCollector.d.ts.map +1 -0
- package/dist/runtime/ResultCollector.js.map +1 -0
- package/dist/runtime/SignalHandler.d.ts.map +1 -0
- package/dist/runtime/SignalHandler.js.map +1 -0
- package/dist/{utils → runtime}/engine-stop.d.ts +1 -1
- package/dist/runtime/engine-stop.d.ts.map +1 -0
- package/dist/{utils → runtime}/engine-stop.js +1 -1
- package/dist/runtime/engine-stop.js.map +1 -0
- package/dist/runtime/engine-watch-events.d.ts +43 -0
- package/dist/runtime/engine-watch-events.d.ts.map +1 -0
- package/dist/runtime/engine-watch-events.js +72 -0
- package/dist/runtime/engine-watch-events.js.map +1 -0
- package/dist/{utils → runtime}/rebuild-manager.d.ts +1 -0
- package/dist/runtime/rebuild-manager.d.ts.map +1 -0
- package/dist/{utils → runtime}/rebuild-manager.js +8 -1
- package/dist/runtime/rebuild-manager.js.map +1 -0
- package/dist/runtime/worker-events.d.ts +22 -0
- package/dist/runtime/worker-events.d.ts.map +1 -0
- package/dist/runtime/worker-events.js +2 -0
- package/dist/runtime/worker-events.js.map +1 -0
- package/dist/runtime/worker-utils.d.ts.map +1 -0
- package/dist/runtime/worker-utils.js.map +1 -0
- package/dist/sd-cli-entry.d.ts.map +1 -1
- package/dist/sd-cli-entry.js +61 -54
- package/dist/sd-cli-entry.js.map +1 -1
- package/dist/sd-cli.js +1 -1
- package/dist/sd-cli.js.map +1 -1
- package/dist/sd-config.types.d.ts +6 -15
- package/dist/sd-config.types.d.ts.map +1 -1
- package/dist/typecheck/typecheck-non-package.d.ts.map +1 -0
- package/dist/{utils → typecheck}/typecheck-non-package.js +1 -1
- package/dist/typecheck/typecheck-non-package.js.map +1 -0
- package/dist/typecheck/typecheck-serialization.d.ts.map +1 -0
- package/dist/typecheck/typecheck-serialization.js.map +1 -0
- package/dist/utils/diagnostic-utils.d.ts +5 -0
- package/dist/utils/diagnostic-utils.d.ts.map +1 -1
- package/dist/utils/diagnostic-utils.js +15 -0
- package/dist/utils/diagnostic-utils.js.map +1 -1
- package/dist/utils/orchestrator-utils.d.ts +1 -5
- package/dist/utils/orchestrator-utils.d.ts.map +1 -1
- package/dist/utils/orchestrator-utils.js +2 -5
- package/dist/utils/orchestrator-utils.js.map +1 -1
- package/dist/utils/output-utils.d.ts +1 -1
- package/dist/utils/output-utils.d.ts.map +1 -1
- package/dist/utils/package-classify.d.ts +54 -0
- package/dist/utils/package-classify.d.ts.map +1 -0
- package/dist/utils/package-classify.js +134 -0
- package/dist/utils/package-classify.js.map +1 -0
- package/dist/utils/package-utils.d.ts +1 -58
- package/dist/utils/package-utils.d.ts.map +1 -1
- package/dist/utils/package-utils.js +0 -193
- package/dist/utils/package-utils.js.map +1 -1
- package/dist/utils/tsc-build.d.ts +1 -1
- package/dist/utils/tsc-build.d.ts.map +1 -1
- package/dist/utils/tsc-build.js +1 -1
- package/dist/utils/tsc-build.js.map +1 -1
- package/dist/workers/build-change-filter.d.ts +8 -0
- package/dist/workers/build-change-filter.d.ts.map +1 -0
- package/dist/workers/build-change-filter.js +16 -0
- package/dist/workers/build-change-filter.js.map +1 -0
- package/dist/workers/build-watch-paths.d.ts +20 -0
- package/dist/workers/build-watch-paths.d.ts.map +1 -0
- package/dist/workers/build-watch-paths.js +29 -0
- package/dist/workers/build-watch-paths.js.map +1 -0
- package/dist/workers/client.worker.d.ts +11 -18
- package/dist/workers/client.worker.d.ts.map +1 -1
- package/dist/workers/client.worker.js +218 -289
- package/dist/workers/client.worker.js.map +1 -1
- package/dist/workers/library-build.worker.d.ts +2 -2
- package/dist/workers/library-build.worker.d.ts.map +1 -1
- package/dist/workers/library-build.worker.js +13 -24
- package/dist/workers/library-build.worker.js.map +1 -1
- package/dist/workers/lint.worker.d.ts +1 -1
- package/dist/workers/lint.worker.d.ts.map +1 -1
- package/dist/workers/lint.worker.js +1 -1
- package/dist/workers/lint.worker.js.map +1 -1
- package/dist/workers/ngtsc-build.worker.d.ts +1 -1
- package/dist/workers/ngtsc-build.worker.d.ts.map +1 -1
- package/dist/workers/ngtsc-build.worker.js +19 -35
- package/dist/workers/ngtsc-build.worker.js.map +1 -1
- package/dist/workers/server-build.worker.d.ts +2 -2
- package/dist/workers/server-build.worker.d.ts.map +1 -1
- package/dist/workers/server-build.worker.js +36 -137
- package/dist/workers/server-build.worker.js.map +1 -1
- package/dist/workers/server-esbuild-context.d.ts +47 -0
- package/dist/workers/server-esbuild-context.d.ts.map +1 -0
- package/dist/workers/server-esbuild-context.js +92 -0
- package/dist/workers/server-esbuild-context.js.map +1 -0
- package/dist/workers/server-runtime.worker.d.ts.map +1 -1
- package/dist/workers/server-runtime.worker.js +3 -1
- package/dist/workers/server-runtime.worker.js.map +1 -1
- package/dist/workers/server-watch-manager.d.ts +44 -0
- package/dist/workers/server-watch-manager.d.ts.map +1 -0
- package/dist/workers/server-watch-manager.js +87 -0
- package/dist/workers/server-watch-manager.js.map +1 -0
- package/dist/workers/shared-worker-lifecycle.d.ts +14 -0
- package/dist/workers/shared-worker-lifecycle.d.ts.map +1 -0
- package/dist/workers/shared-worker-lifecycle.js +17 -0
- package/dist/workers/shared-worker-lifecycle.js.map +1 -0
- package/package.json +9 -9
- package/src/{utils → angular}/angular-build-pipeline.ts +3 -8
- package/src/{utils → angular}/angular-build.ts +1 -1
- package/src/{utils → angular}/angular-compiler.ts +1 -64
- package/src/angular/client-transform-stylesheet.ts +1 -1
- package/src/{utils → angular}/ngtsc-build-core.ts +3 -3
- package/src/angular/vite-angular-plugin.ts +22 -355
- package/src/capacitor/capacitor-build.ts +142 -0
- package/src/capacitor/capacitor-config-writer.ts +66 -0
- package/src/capacitor/capacitor-icon.ts +75 -0
- package/src/capacitor/capacitor-npm-config.ts +192 -0
- package/src/capacitor/capacitor.ts +32 -441
- package/src/commands/check.ts +2 -2
- package/src/commands/dev.ts +6 -6
- package/src/commands/lint.ts +1 -1
- package/src/commands/publish/deployment-phase.ts +125 -0
- package/src/commands/publish/env-utils.ts +44 -0
- package/src/commands/publish/git-phase.ts +99 -0
- package/src/commands/publish/index.ts +266 -0
- package/src/commands/publish/local-publisher.ts +23 -0
- package/src/commands/publish/npm-publisher.ts +30 -0
- package/src/commands/publish/post-publish-phase.ts +43 -0
- package/src/commands/publish/storage-publisher.ts +208 -0
- package/src/commands/publish/version-upgrade.ts +132 -0
- package/src/commands/replace-deps.ts +1 -1
- package/src/commands/watch.ts +6 -7
- package/src/deps/replace-deps/collect-deps.ts +92 -0
- package/src/{utils/replace-deps.ts → deps/replace-deps/replace-deps-resolve.ts} +4 -188
- package/src/deps/replace-deps/replace-deps.ts +193 -0
- package/src/{utils → deps/server-externals}/server-production-files.ts +2 -2
- package/src/dev-server/dev-http-server.ts +149 -0
- package/src/dev-server/hmr-client-script.ts +74 -0
- package/src/dev-server/hmr-service.ts +178 -0
- package/src/electron/electron.ts +21 -28
- package/src/engines/BaseEngine.ts +64 -83
- package/src/engines/{ViteEngine.ts → EsbuildClientEngine.ts} +33 -72
- package/src/engines/NgtscEngine.ts +3 -11
- package/src/engines/ServerEsbuildEngine.ts +3 -11
- package/src/engines/TscEngine.ts +3 -11
- package/src/engines/index.ts +29 -9
- package/src/engines/types.ts +3 -3
- package/src/esbuild/esbuild-client-config.ts +230 -0
- package/src/{utils → esbuild}/esbuild-config.ts +1 -0
- package/src/esbuild/esbuild-index-html.ts +119 -0
- package/src/esbuild/esbuild-pwa.ts +139 -0
- package/src/esbuild/esbuild-scss-plugin.ts +48 -0
- package/src/orchestrators/BaseOrchestrator.ts +118 -0
- package/src/orchestrators/BuildOrchestrator.ts +234 -171
- package/src/orchestrators/DevOrchestrator.ts +315 -0
- package/src/orchestrators/ServerRuntimeManager.ts +85 -0
- package/src/orchestrators/TypecheckOrchestrator.ts +166 -117
- package/src/orchestrators/WatchOrchestrator.ts +203 -0
- package/src/orchestrators/types.ts +18 -0
- package/src/{utils → runtime}/engine-stop.ts +1 -1
- package/src/runtime/engine-watch-events.ts +121 -0
- package/src/{utils → runtime}/rebuild-manager.ts +8 -1
- package/src/runtime/worker-events.ts +25 -0
- package/src/sd-cli-entry.ts +69 -54
- package/src/sd-cli.ts +1 -1
- package/src/sd-config.types.ts +6 -16
- package/src/{utils → typecheck}/typecheck-non-package.ts +1 -1
- package/src/utils/diagnostic-utils.ts +15 -0
- package/src/utils/orchestrator-utils.ts +2 -6
- package/src/utils/output-utils.ts +1 -1
- package/src/utils/package-classify.ts +182 -0
- package/src/utils/package-utils.ts +0 -257
- package/src/utils/tsc-build.ts +1 -1
- package/src/workers/build-change-filter.ts +27 -0
- package/src/workers/build-watch-paths.ts +54 -0
- package/src/workers/client.worker.ts +258 -328
- package/src/workers/library-build.worker.ts +15 -34
- package/src/workers/lint.worker.ts +1 -1
- package/src/workers/ngtsc-build.worker.ts +19 -46
- package/src/workers/server-build.worker.ts +38 -168
- package/src/workers/server-esbuild-context.ts +122 -0
- package/src/workers/server-runtime.worker.ts +4 -1
- package/src/workers/server-watch-manager.ts +124 -0
- package/src/workers/shared-worker-lifecycle.ts +24 -0
- package/tests/angular/angular-build-pipeline.spec.ts +2 -2
- package/tests/angular/angular-compiler-aot.acc.spec.ts +68 -0
- package/tests/angular/angular-compiler-aot.spec.ts +80 -0
- package/tests/angular/angular-compiler-hmr-removal.verify.md +16 -0
- package/tests/angular/vite-angular-plugin-legacy-watch.spec.ts +0 -17
- package/tests/angular/vite-angular-plugin-vitest.spec.ts +1 -6
- package/tests/angular/vite-angular-plugin-vitest.verify.md +20 -0
- package/tests/angular/vite-angular-plugin.spec.ts +4 -178
- package/tests/capacitor/capacitor-android.spec.ts +1 -0
- package/tests/capacitor/capacitor-build.spec.ts +1 -0
- package/tests/capacitor/capacitor-config-writer.acc.spec.ts +108 -0
- package/tests/capacitor/capacitor-config-writer.spec.ts +95 -0
- package/tests/capacitor/capacitor-icon.spec.ts +1 -0
- package/tests/capacitor/capacitor-init.spec.ts +1 -0
- package/tests/capacitor/capacitor-npm-config.acc.spec.ts +236 -0
- package/tests/capacitor/capacitor-npm-config.spec.ts +132 -0
- package/tests/capacitor/capacitor-run.spec.ts +1 -0
- package/tests/capacitor/capacitor-workspace.spec.ts +1 -0
- package/tests/commands/check.spec.ts +2 -2
- package/tests/commands/deployment-phase.acc.spec.ts +142 -0
- package/tests/commands/git-phase.acc.spec.ts +158 -0
- package/tests/commands/lint.spec.ts +1 -1
- package/tests/commands/post-publish-phase.acc.spec.ts +82 -0
- package/tests/commands/publish-npm-local-split.verify.md +9 -0
- package/tests/commands/publish-responsibility-split.verify.md +13 -0
- package/tests/commands/publish-storage-split.verify.md +8 -0
- package/tests/commands/publish.spec.ts +1 -1
- package/tests/commands/typecheck.spec.ts +18 -18
- package/tests/deps/deps-directory-separation.verify.md +15 -0
- package/tests/engines/base-engine.spec.ts +65 -6
- package/tests/engines/engine-adapter-isolation.spec.ts +11 -18
- package/tests/engines/engine-selection.spec.ts +38 -5
- package/tests/engines/engine-typecheck-selection.acc.spec.ts +85 -0
- package/tests/engines/engine-typecheck-selection.verify.md +8 -0
- package/tests/engines/esbuild-client-engine.acc.spec.ts +161 -0
- package/tests/engines/esbuild-client-engine.spec.ts +320 -0
- package/tests/engines/esbuild-client-engine.verify.md +15 -0
- package/tests/engines/normalize-result.verify.md +9 -0
- package/tests/engines/vite-dependency-cleanup.verify.md +24 -0
- package/tests/orchestrators/build-orchestrator.spec.ts +3 -3
- package/tests/orchestrators/dev-orchestrator.spec.ts +799 -0
- package/tests/orchestrators/orchestrator-baseenv.verify.md +10 -0
- package/tests/orchestrators/orchestrator-diagnostic-formatting.verify.md +10 -0
- package/tests/orchestrators/orchestrator-initializemode-signature.verify.md +9 -0
- package/tests/orchestrators/typecheck-orchestrator.spec.ts +11 -11
- package/tests/orchestrators/watch-orchestrator.spec.ts +511 -0
- package/tests/{infra → runtime}/result-collector.spec.ts +1 -1
- package/tests/{infra → runtime}/signal-handler.spec.ts +1 -1
- package/tests/sd-cli-entry.spec.ts +9 -0
- package/tests/utils/angular-build.spec.ts +15 -20
- package/tests/utils/angular-compiler-emit.spec.ts +2 -2
- package/tests/utils/angular-compiler.spec.ts +2 -2
- package/tests/utils/angular-source-file-cache.spec.ts +2 -2
- package/tests/utils/concurrency.spec.ts +2 -10
- package/tests/utils/dev-http-server.acc.spec.ts +206 -0
- package/tests/utils/dev-http-server.spec.ts +181 -0
- package/tests/utils/dev-http-server.verify.md +8 -0
- package/tests/utils/diagnostic-utils.spec.ts +42 -1
- package/tests/utils/engine-stop.spec.ts +1 -1
- package/tests/utils/engine-watch-events.acc.spec.ts +217 -0
- package/tests/utils/engine-watch-events.spec.ts +141 -0
- package/tests/utils/engine-watch-events.verify.md +17 -0
- package/tests/utils/esbuild-client-config.acc.spec.ts +443 -0
- package/tests/utils/esbuild-client-config.spec.ts +590 -0
- package/tests/utils/esbuild-client-config.verify.md +26 -0
- package/tests/utils/esbuild-config.spec.ts +11 -1
- package/tests/utils/esbuild-index-html.acc.spec.ts +166 -0
- package/tests/utils/esbuild-index-html.spec.ts +194 -0
- package/tests/utils/esbuild-index-html.verify.md +10 -0
- package/tests/utils/esbuild-pwa.acc.spec.ts +203 -0
- package/tests/utils/esbuild-pwa.spec.ts +189 -0
- package/tests/utils/esbuild-pwa.verify.md +9 -0
- package/tests/utils/esbuild-scss-plugin.acc.spec.ts +111 -0
- package/tests/utils/esbuild-scss-plugin.spec.ts +150 -0
- package/tests/utils/esbuild-scss-plugin.verify.md +8 -0
- package/tests/utils/external-modules.spec.ts +1 -1
- package/tests/utils/hmr-client-script.acc.spec.ts +128 -0
- package/tests/utils/hmr-client-script.spec.ts +44 -0
- package/tests/utils/hmr-service-dispatcher.acc.spec.ts +217 -0
- package/tests/utils/hmr-service-dispatcher.spec.ts +143 -0
- package/tests/utils/hmr-service.acc.spec.ts +139 -0
- package/tests/utils/hmr-service.spec.ts +131 -0
- package/tests/utils/hmr-service.verify.md +17 -0
- package/tests/utils/lint-core.spec.ts +2 -1
- package/tests/utils/lint-utils.spec.ts +1 -1
- package/tests/utils/lint-with-program.spec.ts +1 -1
- package/tests/utils/ngtsc-build-core-write-emit.spec.ts +19 -19
- package/tests/utils/ngtsc-build-core.spec.ts +4 -4
- package/tests/utils/orchestrator-utils.spec.ts +2 -2
- package/tests/utils/output-utils.spec.ts +1 -1
- package/tests/utils/package-utils.spec.ts +1 -1
- package/tests/utils/rebuild-manager.spec.ts +20 -7
- package/tests/utils/replace-deps-split.verify.md +15 -0
- package/tests/utils/replace-deps-watch.acc.spec.ts +131 -0
- package/tests/utils/replace-deps-watch.spec.ts +91 -0
- package/tests/utils/replace-deps-watch.verify.md +9 -0
- package/tests/utils/replace-deps.spec.ts +1 -1
- package/tests/utils/scss-compiler.spec.ts +1 -1
- package/tests/utils/tsc-build.spec.ts +1 -1
- package/tests/utils/typecheck-non-package.spec.ts +2 -2
- package/tests/utils/worker-utils.spec.ts +2 -1
- package/tests/workers/build-change-filter.acc.spec.ts +78 -0
- package/tests/workers/build-change-filter.spec.ts +39 -0
- package/tests/workers/build-watch-paths-library.verify.md +10 -0
- package/tests/workers/build-watch-paths-ngtsc-server.verify.md +12 -0
- package/tests/workers/build-watch-paths.acc.spec.ts +101 -0
- package/tests/workers/build-watch-paths.spec.ts +121 -0
- package/tests/workers/client-worker-browser-support.verify.md +7 -0
- package/tests/workers/client-worker-onend-sync.verify.md +7 -0
- package/tests/workers/client-worker.acc.spec.ts +185 -0
- package/tests/workers/client-worker.spec.ts +91 -178
- package/tests/workers/library-build-lint.spec.ts +3 -3
- package/tests/workers/library-build-worker.spec.ts +10 -11
- package/tests/workers/ngtsc-build-lint.spec.ts +4 -4
- package/tests/workers/ngtsc-build-worker.spec.ts +2 -2
- package/tests/workers/server-build-lint.spec.ts +4 -4
- package/tests/workers/server-build-worker.spec.ts +14 -15
- package/tests/workers/server-esbuild-context-integration.verify.md +10 -0
- package/tests/workers/server-esbuild-context.acc.spec.ts +98 -0
- package/tests/workers/server-esbuild-context.spec.ts +198 -0
- package/tests/workers/server-runtime-worker.spec.ts +4 -3
- package/tests/workers/server-watch-manager.acc.spec.ts +162 -0
- package/tests/workers/server-watch-manager.spec.ts +199 -0
- package/tests/workers/shared-worker-lifecycle.acc.spec.ts +27 -0
- package/tests/workers/shared-worker-lifecycle.spec.ts +47 -0
- package/dist/angular/vite-postcss-inline-plugin.d.ts +0 -18
- package/dist/angular/vite-postcss-inline-plugin.d.ts.map +0 -1
- package/dist/angular/vite-postcss-inline-plugin.js +0 -108
- package/dist/angular/vite-postcss-inline-plugin.js.map +0 -1
- package/dist/commands/publish.d.ts.map +0 -1
- package/dist/commands/publish.js +0 -689
- package/dist/commands/publish.js.map +0 -1
- package/dist/engines/ViteEngine.d.ts.map +0 -1
- package/dist/engines/ViteEngine.js.map +0 -1
- package/dist/infra/ResultCollector.d.ts.map +0 -1
- package/dist/infra/ResultCollector.js.map +0 -1
- package/dist/infra/SignalHandler.d.ts.map +0 -1
- package/dist/infra/SignalHandler.js.map +0 -1
- package/dist/orchestrators/DevWatchOrchestrator.d.ts +0 -63
- package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +0 -1
- package/dist/orchestrators/DevWatchOrchestrator.js +0 -478
- package/dist/orchestrators/DevWatchOrchestrator.js.map +0 -1
- package/dist/utils/angular-build-pipeline.d.ts.map +0 -1
- package/dist/utils/angular-build-pipeline.js.map +0 -1
- package/dist/utils/angular-build.d.ts.map +0 -1
- package/dist/utils/angular-build.js.map +0 -1
- package/dist/utils/angular-compiler.d.ts.map +0 -1
- package/dist/utils/angular-compiler.js.map +0 -1
- package/dist/utils/engine-stop.d.ts.map +0 -1
- package/dist/utils/engine-stop.js.map +0 -1
- package/dist/utils/esbuild-config.d.ts.map +0 -1
- package/dist/utils/esbuild-config.js.map +0 -1
- package/dist/utils/hmr-candidates.d.ts +0 -15
- package/dist/utils/hmr-candidates.d.ts.map +0 -1
- package/dist/utils/hmr-candidates.js +0 -234
- package/dist/utils/hmr-candidates.js.map +0 -1
- package/dist/utils/lint-core.d.ts.map +0 -1
- package/dist/utils/lint-core.js.map +0 -1
- package/dist/utils/lint-utils.d.ts.map +0 -1
- package/dist/utils/lint-utils.js.map +0 -1
- package/dist/utils/lint-with-program.d.ts.map +0 -1
- package/dist/utils/lint-with-program.js.map +0 -1
- package/dist/utils/ngtsc-build-core.d.ts.map +0 -1
- package/dist/utils/ngtsc-build-core.js.map +0 -1
- package/dist/utils/rebuild-manager.d.ts.map +0 -1
- package/dist/utils/rebuild-manager.js.map +0 -1
- package/dist/utils/replace-deps.d.ts.map +0 -1
- package/dist/utils/replace-deps.js.map +0 -1
- package/dist/utils/scss-compiler.d.ts.map +0 -1
- package/dist/utils/scss-compiler.js.map +0 -1
- package/dist/utils/server-production-files.d.ts.map +0 -1
- package/dist/utils/server-production-files.js.map +0 -1
- package/dist/utils/typecheck-non-package.d.ts.map +0 -1
- package/dist/utils/typecheck-non-package.js.map +0 -1
- package/dist/utils/typecheck-serialization.d.ts.map +0 -1
- package/dist/utils/typecheck-serialization.js.map +0 -1
- package/dist/utils/vite-config.d.ts +0 -50
- package/dist/utils/vite-config.d.ts.map +0 -1
- package/dist/utils/vite-config.js +0 -242
- package/dist/utils/vite-config.js.map +0 -1
- package/dist/utils/vite-pwa-plugin.d.ts +0 -9
- package/dist/utils/vite-pwa-plugin.d.ts.map +0 -1
- package/dist/utils/vite-pwa-plugin.js +0 -139
- package/dist/utils/vite-pwa-plugin.js.map +0 -1
- package/dist/utils/vite-scope-watch-plugin.d.ts +0 -24
- package/dist/utils/vite-scope-watch-plugin.d.ts.map +0 -1
- package/dist/utils/vite-scope-watch-plugin.js +0 -51
- package/dist/utils/vite-scope-watch-plugin.js.map +0 -1
- package/dist/utils/worker-events.d.ts +0 -66
- package/dist/utils/worker-events.d.ts.map +0 -1
- package/dist/utils/worker-events.js +0 -55
- package/dist/utils/worker-events.js.map +0 -1
- package/dist/utils/worker-utils.d.ts.map +0 -1
- package/dist/utils/worker-utils.js.map +0 -1
- package/src/angular/vite-postcss-inline-plugin.ts +0 -139
- package/src/commands/publish.ts +0 -850
- package/src/orchestrators/DevWatchOrchestrator.ts +0 -594
- package/src/utils/hmr-candidates.ts +0 -327
- package/src/utils/vite-config.ts +0 -318
- package/src/utils/vite-pwa-plugin.ts +0 -168
- package/src/utils/vite-scope-watch-plugin.ts +0 -77
- package/src/utils/worker-events.ts +0 -128
- package/tests/angular/angular-compiler-hmr.spec.ts +0 -152
- package/tests/angular/hmr-candidates.spec.ts +0 -158
- package/tests/angular/linker-disk-cache.spec.ts +0 -171
- package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +0 -333
- package/tests/angular/vite-angular-plugin-hmr.spec.ts +0 -320
- package/tests/angular/vite-angular-plugin-scss-hmr.spec.ts +0 -95
- package/tests/angular/vite-postcss-inline-plugin.spec.ts +0 -60
- package/tests/engines/vite-engine.spec.ts +0 -409
- package/tests/orchestrators/dev-watch-orchestrator.spec.ts +0 -1542
- package/tests/utils/vite-config.spec.ts +0 -780
- package/tests/utils/vite-pwa-plugin.spec.ts +0 -401
- package/tests/utils/vite-scope-watch-plugin.spec.ts +0 -218
- package/tests/utils/worker-events.spec.ts +0 -147
- package/tests/workers/client-worker-legacy.spec.ts +0 -659
- /package/dist/{utils → angular}/ngtsc-build-core.js +0 -0
- /package/dist/{utils → angular}/scss-compiler.d.ts +0 -0
- /package/dist/{utils → angular}/scss-compiler.js +0 -0
- /package/dist/{utils → esbuild}/esbuild-config.d.ts +0 -0
- /package/dist/{utils → lint}/lint-core.d.ts +0 -0
- /package/dist/{utils → lint}/lint-core.js +0 -0
- /package/dist/{utils → lint}/lint-utils.d.ts +0 -0
- /package/dist/{utils → lint}/lint-utils.js +0 -0
- /package/dist/{utils → lint}/lint-with-program.d.ts +0 -0
- /package/dist/{utils → lint}/lint-with-program.js +0 -0
- /package/dist/{infra → runtime}/ResultCollector.d.ts +0 -0
- /package/dist/{infra → runtime}/ResultCollector.js +0 -0
- /package/dist/{infra → runtime}/SignalHandler.d.ts +0 -0
- /package/dist/{infra → runtime}/SignalHandler.js +0 -0
- /package/dist/{utils → runtime}/worker-utils.d.ts +0 -0
- /package/dist/{utils → runtime}/worker-utils.js +0 -0
- /package/dist/{utils → typecheck}/typecheck-non-package.d.ts +0 -0
- /package/dist/{utils → typecheck}/typecheck-serialization.d.ts +0 -0
- /package/dist/{utils → typecheck}/typecheck-serialization.js +0 -0
- /package/src/{utils → angular}/scss-compiler.ts +0 -0
- /package/src/{utils → lint}/lint-core.ts +0 -0
- /package/src/{utils → lint}/lint-utils.ts +0 -0
- /package/src/{utils → lint}/lint-with-program.ts +0 -0
- /package/src/{infra → runtime}/ResultCollector.ts +0 -0
- /package/src/{infra → runtime}/SignalHandler.ts +0 -0
- /package/src/{utils → runtime}/worker-utils.ts +0 -0
- /package/src/{utils → typecheck}/typecheck-serialization.ts +0 -0
|
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
|
2
2
|
import type {
|
|
3
3
|
SideEffectScssOptions,
|
|
4
4
|
SideEffectScssEntry,
|
|
5
|
-
} from "../../src/
|
|
5
|
+
} from "../../src/angular/ngtsc-build-core";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import fs from "fs";
|
|
8
8
|
import os from "os";
|
|
@@ -22,7 +22,7 @@ describe("writeEmitResults", () => {
|
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
it("emitResults를 output-path-rewriting 적용하여 파일로 쓴다", async () => {
|
|
25
|
-
const { writeEmitResults } = await import("../../src/
|
|
25
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
26
26
|
|
|
27
27
|
const distDir = path.join(pkgDir, "dist");
|
|
28
28
|
// Simulate nested output: dist/my-pkg/src/index.js
|
|
@@ -40,7 +40,7 @@ describe("writeEmitResults", () => {
|
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
it("output-path-rewriter가 null을 반환하면 파일을 쓰지 않는다", async () => {
|
|
43
|
-
const { writeEmitResults } = await import("../../src/
|
|
43
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
44
44
|
|
|
45
45
|
const distDir = path.join(pkgDir, "dist");
|
|
46
46
|
// Nested output from OTHER package: dist/other-pkg/src/index.js
|
|
@@ -59,7 +59,7 @@ describe("writeEmitResults", () => {
|
|
|
59
59
|
});
|
|
60
60
|
|
|
61
61
|
it("이미 flat 구조인 경로는 그대로 쓴다", async () => {
|
|
62
|
-
const { writeEmitResults } = await import("../../src/
|
|
62
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
63
63
|
|
|
64
64
|
const distDir = path.join(pkgDir, "dist");
|
|
65
65
|
const flatPath = path.join(distDir, "index.js");
|
|
@@ -74,7 +74,7 @@ describe("writeEmitResults", () => {
|
|
|
74
74
|
});
|
|
75
75
|
|
|
76
76
|
it("디렉��리가 없으면 ��동 생성한다", async () => {
|
|
77
|
-
const { writeEmitResults } = await import("../../src/
|
|
77
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
78
78
|
|
|
79
79
|
const distDir = path.join(pkgDir, "dist");
|
|
80
80
|
// Nested path under new subdirectory
|
|
@@ -109,7 +109,7 @@ describe("writeEmitResults with side-effect SCSS", () => {
|
|
|
109
109
|
});
|
|
110
110
|
|
|
111
111
|
it("compiles side-effect SCSS to CSS and rewrites import path in JS", async () => {
|
|
112
|
-
const { writeEmitResults } = await import("../../src/
|
|
112
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
113
113
|
|
|
114
114
|
// Create source SCSS file
|
|
115
115
|
const scssPath = path.join(srcDir, "ui", "layout", "sd-flex.scss");
|
|
@@ -149,7 +149,7 @@ describe("writeEmitResults with side-effect SCSS", () => {
|
|
|
149
149
|
|
|
150
150
|
// Acceptance: Scenario "SCSS @use 의존성 해석"
|
|
151
151
|
it("resolves SCSS @use dependencies via loadPaths", async () => {
|
|
152
|
-
const { writeEmitResults } = await import("../../src/
|
|
152
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
153
153
|
|
|
154
154
|
// Create SCSS load path with a shared variables file
|
|
155
155
|
const scssLoadDir = path.join(pkgDir, "scss");
|
|
@@ -194,7 +194,7 @@ describe("writeEmitResults with side-effect SCSS", () => {
|
|
|
194
194
|
|
|
195
195
|
// Acceptance: Scenario "SCSS 컴파일 에러"
|
|
196
196
|
it("reports SCSS compilation error in scssErrors", async () => {
|
|
197
|
-
const { writeEmitResults } = await import("../../src/
|
|
197
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
198
198
|
|
|
199
199
|
// Create SCSS file with syntax error
|
|
200
200
|
const scssPath = path.join(srcDir, "ui", "layout", "broken.scss");
|
|
@@ -224,7 +224,7 @@ describe("writeEmitResults with side-effect SCSS", () => {
|
|
|
224
224
|
|
|
225
225
|
// Acceptance: Scenario "참조하는 SCSS 파일이 존재하지 않음"
|
|
226
226
|
it("reports error when referenced SCSS file does not exist", async () => {
|
|
227
|
-
const { writeEmitResults } = await import("../../src/
|
|
227
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
228
228
|
|
|
229
229
|
const distDir = path.join(pkgDir, "dist");
|
|
230
230
|
const jsPath = path.join(distDir, "my-pkg", "src", "ui", "layout", "missing.directive.js");
|
|
@@ -267,7 +267,7 @@ describe("writeEmitResults with registry", () => {
|
|
|
267
267
|
});
|
|
268
268
|
|
|
269
269
|
it("registers side-effect SCSS entries in registry when provided", async () => {
|
|
270
|
-
const { writeEmitResults } = await import("../../src/
|
|
270
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
271
271
|
|
|
272
272
|
// Create source SCSS file
|
|
273
273
|
const scssPath = path.join(srcDir, "ui", "layout", "sd-flex.scss");
|
|
@@ -304,7 +304,7 @@ describe("writeEmitResults with registry", () => {
|
|
|
304
304
|
});
|
|
305
305
|
|
|
306
306
|
it("clears stale registry entries for re-emitted source file before registering new ones", async () => {
|
|
307
|
-
const { writeEmitResults } = await import("../../src/
|
|
307
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
308
308
|
|
|
309
309
|
const scssPath = path.join(srcDir, "ui", "layout", "sd-flex.scss");
|
|
310
310
|
fs.writeFileSync(scssPath, ".sd-flex { display: flex; }", "utf-8");
|
|
@@ -345,7 +345,7 @@ describe("writeEmitResults with registry", () => {
|
|
|
345
345
|
});
|
|
346
346
|
|
|
347
347
|
it("removes registry entry when source file is re-emitted without SCSS imports", async () => {
|
|
348
|
-
const { writeEmitResults } = await import("../../src/
|
|
348
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
349
349
|
|
|
350
350
|
const distDir = path.join(pkgDir, "dist");
|
|
351
351
|
const sourceFileName = path.join(srcDir, "ui", "layout", "sd-flex.directive.ts");
|
|
@@ -382,7 +382,7 @@ describe("writeEmitResults with registry", () => {
|
|
|
382
382
|
});
|
|
383
383
|
|
|
384
384
|
it("preserves registry entries for non-emitted source files", async () => {
|
|
385
|
-
const { writeEmitResults } = await import("../../src/
|
|
385
|
+
const { writeEmitResults } = await import("../../src/angular/angular-build-pipeline");
|
|
386
386
|
|
|
387
387
|
const distDir = path.join(pkgDir, "dist");
|
|
388
388
|
const sourceFileA = path.join(srcDir, "ui", "layout", "sd-flex.directive.ts");
|
|
@@ -450,7 +450,7 @@ describe("compileSideEffectScss", () => {
|
|
|
450
450
|
|
|
451
451
|
// Scenario: side-effect SCSS 파일 내용 변경
|
|
452
452
|
it("compiles all registry entries to CSS", async () => {
|
|
453
|
-
const { compileSideEffectScss } = await import("../../src/
|
|
453
|
+
const { compileSideEffectScss } = await import("../../src/angular/ngtsc-build-core");
|
|
454
454
|
|
|
455
455
|
// Create source SCSS
|
|
456
456
|
const scssPath = path.join(srcDir, "ui", "layout", "sd-flex.scss");
|
|
@@ -473,7 +473,7 @@ describe("compileSideEffectScss", () => {
|
|
|
473
473
|
|
|
474
474
|
// Scenario: 여러 side-effect SCSS 파일 동시 변경
|
|
475
475
|
it("compiles multiple registry entries", async () => {
|
|
476
|
-
const { compileSideEffectScss } = await import("../../src/
|
|
476
|
+
const { compileSideEffectScss } = await import("../../src/angular/ngtsc-build-core");
|
|
477
477
|
|
|
478
478
|
// Create two SCSS files
|
|
479
479
|
const scssPath1 = path.join(srcDir, "ui", "layout", "sd-flex.scss");
|
|
@@ -502,7 +502,7 @@ describe("compileSideEffectScss", () => {
|
|
|
502
502
|
|
|
503
503
|
// Scenario: @use 의존성 파일 변경
|
|
504
504
|
it("resolves @use dependencies via loadPaths and tracks them", async () => {
|
|
505
|
-
const { compileSideEffectScss } = await import("../../src/
|
|
505
|
+
const { compileSideEffectScss } = await import("../../src/angular/ngtsc-build-core");
|
|
506
506
|
|
|
507
507
|
// Create shared variables file
|
|
508
508
|
const scssLoadDir = path.join(pkgDir, "scss");
|
|
@@ -545,7 +545,7 @@ describe("compileSideEffectScss", () => {
|
|
|
545
545
|
|
|
546
546
|
// Scenario: 간접 의존성 변경
|
|
547
547
|
it("tracks transitive @use dependencies", async () => {
|
|
548
|
-
const { compileSideEffectScss } = await import("../../src/
|
|
548
|
+
const { compileSideEffectScss } = await import("../../src/angular/ngtsc-build-core");
|
|
549
549
|
|
|
550
550
|
// Create transitive dependency chain: sd-flex.scss -> _mixins.scss -> _variables.scss
|
|
551
551
|
const scssLoadDir = path.join(pkgDir, "scss");
|
|
@@ -591,7 +591,7 @@ describe("compileSideEffectScss", () => {
|
|
|
591
591
|
|
|
592
592
|
// Scenario: SCSS 문법 에러
|
|
593
593
|
it("reports error and preserves existing CSS when SCSS has syntax error", async () => {
|
|
594
|
-
const { compileSideEffectScss } = await import("../../src/
|
|
594
|
+
const { compileSideEffectScss } = await import("../../src/angular/ngtsc-build-core");
|
|
595
595
|
|
|
596
596
|
// Create existing CSS (from previous successful build)
|
|
597
597
|
const cssAbsPath = path.join(distDir, "ui", "layout", "sd-flex.css");
|
|
@@ -620,7 +620,7 @@ describe("compileSideEffectScss", () => {
|
|
|
620
620
|
|
|
621
621
|
// Scenario: 에러 수정 후 정상 재빌드
|
|
622
622
|
it("compiles successfully after fixing syntax error", async () => {
|
|
623
|
-
const { compileSideEffectScss } = await import("../../src/
|
|
623
|
+
const { compileSideEffectScss } = await import("../../src/angular/ngtsc-build-core");
|
|
624
624
|
|
|
625
625
|
const scssPath = path.join(srcDir, "ui", "layout", "sd-flex.scss");
|
|
626
626
|
const cssAbsPath = path.join(distDir, "ui", "layout", "sd-flex.css");
|
|
@@ -12,7 +12,7 @@ const mockGetTsProgram = vi.fn().mockReturnValue({
|
|
|
12
12
|
|
|
13
13
|
const angularCompilerConstructorSpy = vi.fn();
|
|
14
14
|
|
|
15
|
-
vi.mock("../../src/
|
|
15
|
+
vi.mock("../../src/angular/angular-compiler", () => {
|
|
16
16
|
class AngularCompiler {
|
|
17
17
|
constructor(options: unknown) {
|
|
18
18
|
angularCompilerConstructorSpy(options);
|
|
@@ -59,7 +59,7 @@ vi.mock("../../src/utils/tsconfig", () => ({
|
|
|
59
59
|
}));
|
|
60
60
|
|
|
61
61
|
const ngtscProgramSpy = vi.fn();
|
|
62
|
-
vi.mock("../../src/
|
|
62
|
+
vi.mock("../../src/angular/angular-build", () => {
|
|
63
63
|
class NgtscProgram {
|
|
64
64
|
constructor(...args: unknown[]) {
|
|
65
65
|
ngtscProgramSpy(...args);
|
|
@@ -89,10 +89,10 @@ vi.mock("../../src/utils/angular-build", () => {
|
|
|
89
89
|
|
|
90
90
|
const {
|
|
91
91
|
buildScssLoadPaths,
|
|
92
|
-
} = await import("../../src/
|
|
92
|
+
} = await import("../../src/angular/ngtsc-build-core");
|
|
93
93
|
const {
|
|
94
94
|
createLibraryTransformStylesheet,
|
|
95
|
-
} = await import("../../src/
|
|
95
|
+
} = await import("../../src/angular/angular-build-pipeline");
|
|
96
96
|
|
|
97
97
|
import { join } from "node:path";
|
|
98
98
|
|
|
@@ -46,8 +46,8 @@ describe("loadAndValidateConfig", () => {
|
|
|
46
46
|
expect(result).toBe(config);
|
|
47
47
|
});
|
|
48
48
|
|
|
49
|
-
// Acceptance:
|
|
50
|
-
it("works with dev:true
|
|
49
|
+
// Acceptance: dev:true 모드 동작 확인
|
|
50
|
+
it("works with dev:true", async () => {
|
|
51
51
|
const config: SdConfig = {
|
|
52
52
|
packages: { "demo-server": { target: "server" } as any },
|
|
53
53
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
2
2
|
import { consola } from "consola";
|
|
3
3
|
import { formatBuildMessages, printErrors, printServers } from "../../src/utils/output-utils";
|
|
4
|
-
import type { BuildResult } from "../../src/
|
|
4
|
+
import type { BuildResult } from "../../src/runtime/ResultCollector";
|
|
5
5
|
|
|
6
6
|
vi.spyOn(consola, "error").mockImplementation(() => {});
|
|
7
7
|
vi.spyOn(consola, "info").mockImplementation(() => {});
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
discoverWorkspacePackages,
|
|
8
8
|
hasAngularCoreDependency,
|
|
9
9
|
mergeTestsPackagesIntoConfig,
|
|
10
|
-
iteratePackages,
|
|
11
10
|
} from "../../src/utils/package-utils";
|
|
11
|
+
import { iteratePackages } from "../../src/utils/package-classify";
|
|
12
12
|
|
|
13
13
|
describe("validateTargets", () => {
|
|
14
14
|
const packages = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from "vitest";
|
|
2
|
-
import { RebuildManager } from "../../src/
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import { RebuildManager } from "../../src/runtime/rebuild-manager";
|
|
3
3
|
|
|
4
4
|
function createManager() {
|
|
5
5
|
const logger = { start: vi.fn(), success: vi.fn(), error: vi.fn(), debug: vi.fn() };
|
|
@@ -8,6 +8,14 @@ function createManager() {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
describe("RebuildManager", () => {
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
vi.useFakeTimers();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
vi.useRealTimers();
|
|
17
|
+
});
|
|
18
|
+
|
|
11
19
|
it("batches concurrent builds into single batchComplete event", async () => {
|
|
12
20
|
const { manager } = createManager();
|
|
13
21
|
const batchComplete = vi.fn();
|
|
@@ -20,8 +28,8 @@ describe("RebuildManager", () => {
|
|
|
20
28
|
resolverA();
|
|
21
29
|
resolverB();
|
|
22
30
|
|
|
23
|
-
//
|
|
24
|
-
await
|
|
31
|
+
// 100ms 디바운스 타이머 소진 + Promise 해소
|
|
32
|
+
await vi.advanceTimersByTimeAsync(100);
|
|
25
33
|
|
|
26
34
|
expect(batchComplete).toHaveBeenCalledOnce();
|
|
27
35
|
});
|
|
@@ -34,12 +42,17 @@ describe("RebuildManager", () => {
|
|
|
34
42
|
const resolverA = manager.registerBuild("a", "Build A");
|
|
35
43
|
resolverA();
|
|
36
44
|
|
|
37
|
-
//
|
|
38
|
-
await
|
|
45
|
+
// 첫 번째 배치 타이머 소진 → _runBatch 시작
|
|
46
|
+
await vi.advanceTimersByTimeAsync(100);
|
|
47
|
+
|
|
48
|
+
expect(batchComplete).toHaveBeenCalledTimes(1);
|
|
49
|
+
|
|
50
|
+
// 첫 번째 배치 완료 후 새 빌드 등록
|
|
39
51
|
const resolverB = manager.registerBuild("b", "Build B");
|
|
40
52
|
resolverB();
|
|
41
53
|
|
|
42
|
-
|
|
54
|
+
// 두 번째 배치 타이머 소진
|
|
55
|
+
await vi.advanceTimersByTimeAsync(100);
|
|
43
56
|
|
|
44
57
|
expect(batchComplete).toHaveBeenCalledTimes(2);
|
|
45
58
|
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# replace-deps.ts 분할 -- LLM 검증
|
|
2
|
+
|
|
3
|
+
## 검증 항목
|
|
4
|
+
|
|
5
|
+
- [x] 파일 구조: `replace-deps-resolve.ts` 신규 생성, `replace-deps.ts` 기존 유지 확인
|
|
6
|
+
- [x] 해석 함수 이동: `resolveReplaceDepEntries`, `parseWorkspaceGlobs`, `collectSearchRoots`, `resolveAllReplaceDepEntries`가 `replace-deps-resolve.ts`에 위치
|
|
7
|
+
- [x] 타입 위치: `ReplaceDepEntry`가 `replace-deps-resolve.ts`에서 export, `replace-deps.ts`에서 `export type` re-export
|
|
8
|
+
- [x] `WatchReplaceDepResult`가 `replace-deps.ts`에서 export
|
|
9
|
+
- [x] `replace-deps.ts`에서 `resolveAllReplaceDepEntries`를 import하여 사용
|
|
10
|
+
- [x] `commands/publish.ts` import 경로가 `../utils/replace-deps-resolve`로 변경
|
|
11
|
+
- [x] `sd-cli.ts`, `BaseOrchestrator.ts`, `commands/replace-deps.ts`의 import 경로는 변경 없음 (실행 함수만 사용)
|
|
12
|
+
- [x] `tests/utils/replace-deps.spec.ts` import 경로가 `../../src/deps/replace-deps-resolve`로 변경
|
|
13
|
+
- [x] `tests/utils/replace-deps-watch.spec.ts`, `replace-deps-watch.acc.spec.ts`의 import 경로는 변경 없음
|
|
14
|
+
- [x] `replace-deps.ts`에서 `glob` import가 제거됨 (해석 로직 전용)
|
|
15
|
+
- [x] `replace-deps-resolve.ts`에서 `fsx`, `FsWatcher`, `exec` import가 없음 (실행 로직 전용)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import os from "os";
|
|
5
|
+
import { watchReplaceDeps } from "../../src/deps/replace-deps/replace-deps";
|
|
6
|
+
import type { WatchReplaceDepResult } from "../../src/deps/replace-deps/replace-deps";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* watchReplaceDeps onChanged 콜백 통합 테스트.
|
|
10
|
+
*
|
|
11
|
+
* 실제 파일시스템에서 임시 디렉토리 구조를 생성하고,
|
|
12
|
+
* watchReplaceDeps를 실행한 뒤 파일 변경 → onChanged 콜백 호출을 검증한다.
|
|
13
|
+
*
|
|
14
|
+
* 구조:
|
|
15
|
+
* tmpDir/
|
|
16
|
+
* source-pkg/ ← replaceDeps 소스 (감시 대상)
|
|
17
|
+
* src/
|
|
18
|
+
* index.ts
|
|
19
|
+
* project/
|
|
20
|
+
* node_modules/
|
|
21
|
+
* @test/
|
|
22
|
+
* pkg/ ← replaceDeps 타겟 (복사 대상)
|
|
23
|
+
* src/
|
|
24
|
+
* index.ts
|
|
25
|
+
* pnpm-workspace.yaml
|
|
26
|
+
*/
|
|
27
|
+
describe("watchReplaceDeps onChanged 콜백", () => {
|
|
28
|
+
let tmpDir: string;
|
|
29
|
+
let watchResult: WatchReplaceDepResult | undefined;
|
|
30
|
+
|
|
31
|
+
beforeEach(async () => {
|
|
32
|
+
tmpDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), "sd-replace-deps-"));
|
|
33
|
+
|
|
34
|
+
// 소스 패키지 생성
|
|
35
|
+
const sourceDir = path.join(tmpDir, "source-pkg", "src");
|
|
36
|
+
await fs.promises.mkdir(sourceDir, { recursive: true });
|
|
37
|
+
await fs.promises.writeFile(path.join(sourceDir, "index.ts"), "export const a = 1;");
|
|
38
|
+
|
|
39
|
+
// 프로젝트 구조 생성
|
|
40
|
+
const targetDir = path.join(tmpDir, "project", "node_modules", "@test", "pkg", "src");
|
|
41
|
+
await fs.promises.mkdir(targetDir, { recursive: true });
|
|
42
|
+
await fs.promises.writeFile(path.join(targetDir, "index.ts"), "export const a = 1;");
|
|
43
|
+
|
|
44
|
+
// pnpm-workspace.yaml (빈 워크스페이스)
|
|
45
|
+
await fs.promises.writeFile(
|
|
46
|
+
path.join(tmpDir, "project", "pnpm-workspace.yaml"),
|
|
47
|
+
"packages:\n",
|
|
48
|
+
);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
afterEach(async () => {
|
|
52
|
+
watchResult?.dispose();
|
|
53
|
+
watchResult = undefined;
|
|
54
|
+
// 임시 디렉토리 정리
|
|
55
|
+
await fs.promises.rm(tmpDir, { recursive: true, force: true });
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("파일 복사 완료 후 onChanged 콜백이 호출된다", async () => {
|
|
59
|
+
const projectRoot = path.join(tmpDir, "project");
|
|
60
|
+
const sourcePath = path.join(tmpDir, "source-pkg");
|
|
61
|
+
const replaceDeps = { "@test/pkg": sourcePath };
|
|
62
|
+
|
|
63
|
+
let resolveChanged: () => void;
|
|
64
|
+
const changedPromise = new Promise<void>((resolve) => {
|
|
65
|
+
resolveChanged = resolve;
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
watchResult = await watchReplaceDeps(projectRoot, replaceDeps, {
|
|
69
|
+
onChanged: () => {
|
|
70
|
+
resolveChanged();
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// 소스 파일 수정
|
|
75
|
+
await fs.promises.writeFile(
|
|
76
|
+
path.join(sourcePath, "src", "index.ts"),
|
|
77
|
+
"export const a = 2;",
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
// 콜백 호출 대기
|
|
81
|
+
await changedPromise;
|
|
82
|
+
}, 10_000);
|
|
83
|
+
|
|
84
|
+
it("onChanged 미등록 시 에러 없이 정상 동작한다", async () => {
|
|
85
|
+
const projectRoot = path.join(tmpDir, "project");
|
|
86
|
+
const sourcePath = path.join(tmpDir, "source-pkg");
|
|
87
|
+
const replaceDeps = { "@test/pkg": sourcePath };
|
|
88
|
+
|
|
89
|
+
// onChanged 없이 호출
|
|
90
|
+
watchResult = await watchReplaceDeps(projectRoot, replaceDeps);
|
|
91
|
+
|
|
92
|
+
// 소스 파일 수정
|
|
93
|
+
await fs.promises.writeFile(
|
|
94
|
+
path.join(sourcePath, "src", "index.ts"),
|
|
95
|
+
"export const a = 3;",
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
// 에러 없이 대기
|
|
99
|
+
await new Promise((r) => setTimeout(r, 1500));
|
|
100
|
+
|
|
101
|
+
// 파일이 복사되었는지 확인
|
|
102
|
+
const targetContent = await fs.promises.readFile(
|
|
103
|
+
path.join(tmpDir, "project", "node_modules", "@test", "pkg", "src", "index.ts"),
|
|
104
|
+
"utf-8",
|
|
105
|
+
);
|
|
106
|
+
expect(targetContent).toBe("export const a = 3;");
|
|
107
|
+
}, 10_000);
|
|
108
|
+
|
|
109
|
+
it("파일 삭제 시에도 onChanged 콜백이 호출된다", async () => {
|
|
110
|
+
const projectRoot = path.join(tmpDir, "project");
|
|
111
|
+
const sourcePath = path.join(tmpDir, "source-pkg");
|
|
112
|
+
const replaceDeps = { "@test/pkg": sourcePath };
|
|
113
|
+
|
|
114
|
+
let resolveChanged: () => void;
|
|
115
|
+
const changedPromise = new Promise<void>((resolve) => {
|
|
116
|
+
resolveChanged = resolve;
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
watchResult = await watchReplaceDeps(projectRoot, replaceDeps, {
|
|
120
|
+
onChanged: () => {
|
|
121
|
+
resolveChanged();
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
// 소스 파일 삭제
|
|
126
|
+
await fs.promises.unlink(path.join(sourcePath, "src", "index.ts"));
|
|
127
|
+
|
|
128
|
+
// 콜백 호출 대기
|
|
129
|
+
await changedPromise;
|
|
130
|
+
}, 10_000);
|
|
131
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import os from "os";
|
|
5
|
+
import { watchReplaceDeps } from "../../src/deps/replace-deps/replace-deps";
|
|
6
|
+
import type { WatchReplaceDepResult } from "../../src/deps/replace-deps/replace-deps";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* watchReplaceDeps onChanged 콜백 단위 테스트.
|
|
10
|
+
* 실제 파일시스템으로 테스트하되 개별 동작에 집중한다.
|
|
11
|
+
*/
|
|
12
|
+
describe("watchReplaceDeps onChanged", () => {
|
|
13
|
+
let tmpDir: string;
|
|
14
|
+
let watchResult: WatchReplaceDepResult | undefined;
|
|
15
|
+
|
|
16
|
+
beforeEach(async () => {
|
|
17
|
+
tmpDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), "sd-replace-deps-unit-"));
|
|
18
|
+
|
|
19
|
+
// 소스 패키지 생성
|
|
20
|
+
const sourceDir = path.join(tmpDir, "source-pkg", "src");
|
|
21
|
+
await fs.promises.mkdir(sourceDir, { recursive: true });
|
|
22
|
+
await fs.promises.writeFile(path.join(sourceDir, "index.ts"), "export const v = 1;");
|
|
23
|
+
|
|
24
|
+
// 프로젝트 구조 생성
|
|
25
|
+
const targetDir = path.join(tmpDir, "project", "node_modules", "@test", "pkg", "src");
|
|
26
|
+
await fs.promises.mkdir(targetDir, { recursive: true });
|
|
27
|
+
await fs.promises.writeFile(path.join(targetDir, "index.ts"), "export const v = 1;");
|
|
28
|
+
|
|
29
|
+
// pnpm-workspace.yaml
|
|
30
|
+
await fs.promises.writeFile(
|
|
31
|
+
path.join(tmpDir, "project", "pnpm-workspace.yaml"),
|
|
32
|
+
"packages:\n",
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
afterEach(async () => {
|
|
37
|
+
watchResult?.dispose();
|
|
38
|
+
watchResult = undefined;
|
|
39
|
+
await fs.promises.rm(tmpDir, { recursive: true, force: true });
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("복수 파일 변경 시 300ms 배칭 후 onChanged가 한 번 호출된다", async () => {
|
|
43
|
+
const projectRoot = path.join(tmpDir, "project");
|
|
44
|
+
const sourcePath = path.join(tmpDir, "source-pkg");
|
|
45
|
+
|
|
46
|
+
// 추가 파일 생성
|
|
47
|
+
await fs.promises.writeFile(path.join(sourcePath, "src", "utils.ts"), "export const u = 1;");
|
|
48
|
+
const targetUtilsDir = path.join(tmpDir, "project", "node_modules", "@test", "pkg", "src");
|
|
49
|
+
await fs.promises.writeFile(path.join(targetUtilsDir, "utils.ts"), "export const u = 1;");
|
|
50
|
+
|
|
51
|
+
let callCount = 0;
|
|
52
|
+
let resolveChanged: () => void;
|
|
53
|
+
const changedPromise = new Promise<void>((resolve) => {
|
|
54
|
+
resolveChanged = resolve;
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
watchResult = await watchReplaceDeps(projectRoot, { "@test/pkg": sourcePath }, {
|
|
58
|
+
onChanged: () => {
|
|
59
|
+
callCount++;
|
|
60
|
+
resolveChanged();
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// 짧은 간격으로 두 파일 모두 변경
|
|
65
|
+
await fs.promises.writeFile(path.join(sourcePath, "src", "index.ts"), "export const v = 2;");
|
|
66
|
+
await fs.promises.writeFile(path.join(sourcePath, "src", "utils.ts"), "export const u = 2;");
|
|
67
|
+
|
|
68
|
+
// 콜백 호출 대기
|
|
69
|
+
await changedPromise;
|
|
70
|
+
|
|
71
|
+
// 추가 호출이 없는지 확인하기 위해 잠시 대기
|
|
72
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
73
|
+
|
|
74
|
+
// 배칭으로 인해 1번만 호출
|
|
75
|
+
expect(callCount).toBe(1);
|
|
76
|
+
}, 10_000);
|
|
77
|
+
|
|
78
|
+
it("options 파라미터가 undefined일 때 에러가 발생하지 않는다", async () => {
|
|
79
|
+
const projectRoot = path.join(tmpDir, "project");
|
|
80
|
+
const sourcePath = path.join(tmpDir, "source-pkg");
|
|
81
|
+
|
|
82
|
+
// options를 명시적으로 undefined 전달
|
|
83
|
+
watchResult = await watchReplaceDeps(projectRoot, { "@test/pkg": sourcePath }, undefined);
|
|
84
|
+
|
|
85
|
+
// 파일 변경
|
|
86
|
+
await fs.promises.writeFile(path.join(sourcePath, "src", "index.ts"), "export const v = 99;");
|
|
87
|
+
|
|
88
|
+
await new Promise((r) => setTimeout(r, 1500));
|
|
89
|
+
// 에러 없이 완료됨
|
|
90
|
+
}, 10_000);
|
|
91
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# replaceDeps 감시 통합 — LLM 검증
|
|
2
|
+
|
|
3
|
+
## 검증 항목
|
|
4
|
+
|
|
5
|
+
- [x] watchReplaceDeps 시그니처에 optional `options` 파라미터가 추가되었는가: `replace-deps.ts:321`에 `options?: { onChanged?: () => void }` 확인
|
|
6
|
+
- [x] onChanged 콜백이 파일 복사 루프 완료 후(for 루프 바깥) 호출되는가: `replace-deps.ts:393`에서 for 루프(346-392) 완료 후 `options?.onChanged?.()` 호출 확인
|
|
7
|
+
- [x] 기존 watchReplaceDeps 호출자가 새 시그니처와 호환되는가: `DevWatchOrchestrator.ts:121`에서 2개 인자로 호출 — 3번째 optional 파라미터 생략으로 호환
|
|
8
|
+
- [x] esbuild onEnd 플러그인(esbuild-client-config.ts)이 빌드 결과를 외부로 전달하는 경로가 존재하는가: `esbuild-client-config.ts:215-218`에 `sd-on-end` 플러그인이 `options.onEnd(result)` 호출
|
|
9
|
+
- [x] hmrService.onBuildEnd()가 metafile 기반으로 HMR 메시지를 디스패치하는 경로가 존재하는가: `hmr-service.ts:49-133`에 metafile 기반 변경 판별 → WS broadcast 로직 존재
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { resolveReplaceDepEntries, parseWorkspaceGlobs } from "../../src/
|
|
2
|
+
import { resolveReplaceDepEntries, parseWorkspaceGlobs } from "../../src/deps/replace-deps/replace-deps-resolve";
|
|
3
3
|
|
|
4
4
|
describe("resolveReplaceDepEntries", () => {
|
|
5
5
|
it("matches exact package names", () => {
|
|
@@ -38,7 +38,7 @@ vi.mock("../../src/utils/output-path-rewriter", () => ({
|
|
|
38
38
|
addJsExtensionToImports: vi.fn((text: string) => text + "/* js-ext-applied */"),
|
|
39
39
|
}));
|
|
40
40
|
|
|
41
|
-
vi.mock("../../src/
|
|
41
|
+
vi.mock("../../src/typecheck/typecheck-serialization", () => ({
|
|
42
42
|
serializeDiagnostic: vi.fn((d: any) => ({ code: d.code, category: d.category })),
|
|
43
43
|
}));
|
|
44
44
|
|
|
@@ -11,7 +11,7 @@ vi.mock("../../src/utils/tsconfig", () => ({
|
|
|
11
11
|
parseTsconfig: mocks.parseTsconfig,
|
|
12
12
|
}));
|
|
13
13
|
|
|
14
|
-
vi.mock("../../src/
|
|
14
|
+
vi.mock("../../src/typecheck/typecheck-serialization", () => ({
|
|
15
15
|
serializeDiagnostic: mocks.serializeDiagnostic,
|
|
16
16
|
}));
|
|
17
17
|
|
|
@@ -29,7 +29,7 @@ vi.mock("typescript", async (importOriginal) => {
|
|
|
29
29
|
};
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
-
const { typecheckNonPackageFiles } = await import("../../src/
|
|
32
|
+
const { typecheckNonPackageFiles } = await import("../../src/typecheck/typecheck-non-package");
|
|
33
33
|
|
|
34
34
|
describe("typecheckNonPackageFiles", () => {
|
|
35
35
|
beforeEach(() => {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/* eslint-disable no-restricted-properties -- 테스트 환경변수 조작 필요 */
|
|
1
2
|
import { describe, it, expect, vi, afterEach } from "vitest";
|
|
2
|
-
import { setupWorkerConsola, createOnceGuard, registerCleanupHandlers } from "../../src/
|
|
3
|
+
import { setupWorkerConsola, createOnceGuard, registerCleanupHandlers } from "../../src/runtime/worker-utils";
|
|
3
4
|
import consola, { LogLevels } from "consola";
|
|
4
5
|
|
|
5
6
|
describe("setupWorkerConsola", () => {
|