@simplysm/sd-cli 14.0.43 → 14.0.45

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 (103) hide show
  1. package/dist/angular/ngtsc-build-core.d.ts +12 -3
  2. package/dist/angular/ngtsc-build-core.d.ts.map +1 -1
  3. package/dist/angular/ngtsc-build-core.js +70 -6
  4. package/dist/angular/ngtsc-build-core.js.map +1 -1
  5. package/dist/commands/publish/version-upgrade.d.ts.map +1 -1
  6. package/dist/commands/publish/version-upgrade.js +15 -12
  7. package/dist/commands/publish/version-upgrade.js.map +1 -1
  8. package/dist/deps/replace-deps/replace-deps-resolve.d.ts.map +1 -1
  9. package/dist/deps/replace-deps/replace-deps-resolve.js +6 -7
  10. package/dist/deps/replace-deps/replace-deps-resolve.js.map +1 -1
  11. package/dist/deps/replace-deps/replace-deps.d.ts.map +1 -1
  12. package/dist/deps/replace-deps/replace-deps.js +79 -15
  13. package/dist/deps/replace-deps/replace-deps.js.map +1 -1
  14. package/dist/deps/server-externals/server-production-files.d.ts +10 -5
  15. package/dist/deps/server-externals/server-production-files.d.ts.map +1 -1
  16. package/dist/deps/server-externals/server-production-files.js +22 -26
  17. package/dist/deps/server-externals/server-production-files.js.map +1 -1
  18. package/dist/esbuild/esbuild-angular-compiler-plugin.d.ts +3 -8
  19. package/dist/esbuild/esbuild-angular-compiler-plugin.d.ts.map +1 -1
  20. package/dist/esbuild/esbuild-angular-compiler-plugin.js +57 -83
  21. package/dist/esbuild/esbuild-angular-compiler-plugin.js.map +1 -1
  22. package/dist/esbuild/esbuild-postcss-plugin.d.ts.map +1 -1
  23. package/dist/esbuild/esbuild-postcss-plugin.js +9 -6
  24. package/dist/esbuild/esbuild-postcss-plugin.js.map +1 -1
  25. package/dist/esbuild/esbuild-worker-plugin.d.ts +30 -0
  26. package/dist/esbuild/esbuild-worker-plugin.d.ts.map +1 -0
  27. package/dist/esbuild/esbuild-worker-plugin.js +197 -0
  28. package/dist/esbuild/esbuild-worker-plugin.js.map +1 -0
  29. package/dist/workers/client.worker.d.ts.map +1 -1
  30. package/dist/workers/client.worker.js +4 -25
  31. package/dist/workers/client.worker.js.map +1 -1
  32. package/dist/workers/incremental-mtime-tracker.d.ts +13 -0
  33. package/dist/workers/incremental-mtime-tracker.d.ts.map +1 -0
  34. package/dist/workers/incremental-mtime-tracker.js +65 -0
  35. package/dist/workers/incremental-mtime-tracker.js.map +1 -0
  36. package/dist/workers/library-build.worker.d.ts.map +1 -1
  37. package/dist/workers/library-build.worker.js +37 -15
  38. package/dist/workers/library-build.worker.js.map +1 -1
  39. package/dist/workers/server-build.worker.d.ts.map +1 -1
  40. package/dist/workers/server-build.worker.js +6 -5
  41. package/dist/workers/server-build.worker.js.map +1 -1
  42. package/dist/workers/server-esbuild-context.d.ts.map +1 -1
  43. package/dist/workers/server-esbuild-context.js +3 -1
  44. package/dist/workers/server-esbuild-context.js.map +1 -1
  45. package/dist/workers/server-watch-manager.js +1 -1
  46. package/dist/workers/server-watch-manager.js.map +1 -1
  47. package/package.json +5 -4
  48. package/src/angular/ngtsc-build-core.ts +73 -5
  49. package/src/commands/publish/version-upgrade.ts +43 -34
  50. package/src/deps/replace-deps/replace-deps-resolve.ts +12 -7
  51. package/src/deps/replace-deps/replace-deps.ts +90 -16
  52. package/src/deps/server-externals/server-production-files.ts +26 -28
  53. package/src/esbuild/esbuild-angular-compiler-plugin.ts +82 -123
  54. package/src/esbuild/esbuild-postcss-plugin.ts +9 -6
  55. package/src/esbuild/esbuild-worker-plugin.ts +266 -0
  56. package/src/workers/client.worker.ts +4 -23
  57. package/src/workers/incremental-mtime-tracker.ts +68 -0
  58. package/src/workers/library-build.worker.ts +41 -14
  59. package/src/workers/server-build.worker.ts +6 -5
  60. package/src/workers/server-esbuild-context.ts +3 -1
  61. package/src/workers/server-watch-manager.ts +1 -1
  62. package/tests/angular/ngtsc-build-core.acc.spec.ts +210 -0
  63. package/tests/angular/ngtsc-build-core.spec.ts +52 -0
  64. package/tests/commands/version-upgrade.acc.spec.ts +210 -0
  65. package/tests/commands/version-upgrade.spec.ts +148 -0
  66. package/tests/deps/replace-deps/replace-deps-perf.verify.md +15 -0
  67. package/tests/deps/replace-deps/replace-deps-resolve.acc.spec.ts +124 -0
  68. package/tests/esbuild/esbuild-angular-compiler-plugin-worker.verify.md +56 -28
  69. package/tests/esbuild/esbuild-postcss-plugin-chunking.verify.md +17 -0
  70. package/tests/esbuild/esbuild-postcss-plugin.acc.spec.ts +152 -0
  71. package/tests/esbuild/esbuild-worker-plugin-node.verify.md +11 -0
  72. package/tests/esbuild/esbuild-worker-plugin.acc.spec.ts +318 -0
  73. package/tests/esbuild/esbuild-worker-plugin.spec.ts +297 -0
  74. package/tests/esbuild/esbuild-worker-plugin.verify.md +7 -0
  75. package/tests/esbuild/fixtures/worker-plugin/node-worker.js +2 -0
  76. package/tests/esbuild/fixtures/worker-plugin/shared-worker.js +6 -0
  77. package/tests/esbuild/fixtures/worker-plugin/worker-error.js +1 -0
  78. package/tests/esbuild/fixtures/worker-plugin/worker.js +3 -0
  79. package/tests/esbuild/fixtures/worker-plugin/worker2.js +3 -0
  80. package/tests/utils/ngtsc-build-core-write-emit.spec.ts +124 -0
  81. package/tests/workers/client-worker-mtime-incremental.verify.md +10 -0
  82. package/tests/workers/incremental-mtime-tracker.acc.spec.ts +144 -0
  83. package/tests/workers/incremental-mtime-tracker.spec.ts +102 -0
  84. package/tests/workers/library-build-worker.spec.ts +4 -0
  85. package/tests/workers/server-build-worker-plugin.verify.md +9 -0
  86. package/tests/workers/server-build-worker.spec.ts +26 -12
  87. package/tests/workers/server-esbuild-context.spec.ts +13 -5
  88. package/tests/workers/server-watch-manager.acc.spec.ts +2 -2
  89. package/tests/workers/server-watch-manager.spec.ts +2 -2
  90. package/dist/angular/web-worker-transformer.d.ts +0 -9
  91. package/dist/angular/web-worker-transformer.d.ts.map +0 -1
  92. package/dist/angular/web-worker-transformer.js +0 -73
  93. package/dist/angular/web-worker-transformer.js.map +0 -1
  94. package/src/angular/web-worker-transformer.ts +0 -117
  95. package/tests/angular/web-worker-transformer.spec.ts +0 -154
  96. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.d.ts +0 -2
  97. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.d.ts.map +0 -1
  98. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.js +0 -4
  99. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.js.map +0 -1
  100. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.d.ts +0 -2
  101. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.d.ts.map +0 -1
  102. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.js +0 -4
  103. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.js.map +0 -1
@@ -9,6 +9,7 @@ import { createServerEsbuildOptions, writeChangedOutputFiles, } from "../esbuild
9
9
  import { collectAllExternals, generateProductionFiles } from "../deps/server-externals/server-production-files.js";
10
10
  import { SdTsCompiler } from "../ts-compiler/SdTsCompiler.js";
11
11
  import { createTscPlugin } from "../esbuild/esbuild-tsc-plugin.js";
12
+ import { createWorkerBundlePlugin } from "../esbuild/esbuild-worker-plugin.js";
12
13
  import { setupWorkerLifecycle } from "./shared-worker-lifecycle.js";
13
14
  import { buildWatchPaths } from "./build-watch-paths.js";
14
15
  import { copyPublicFiles, watchPublicFiles } from "../utils/copy-public.js";
@@ -47,7 +48,7 @@ async function build(info) {
47
48
  const parsedConfig = parseTsconfig(info.pkgDir);
48
49
  const entryPoints = getPackageSourceFiles(info.pkgDir, parsedConfig);
49
50
  // 외부 모듈 수집
50
- const external = collectAllExternals(info.pkgDir, info.externals);
51
+ const { bundleExternals, prodDependencies } = collectAllExternals(info.pkgDir, info.externals);
51
52
  let jsResult;
52
53
  let tscErrors;
53
54
  let tscDiagnostics;
@@ -66,9 +67,9 @@ async function build(info) {
66
67
  pkgDir: info.pkgDir,
67
68
  entryPoints,
68
69
  env: info.env,
69
- external,
70
+ external: bundleExternals,
70
71
  });
71
- jsResult = await esbuild.build({ ...esbuildOptions, plugins: [tscPlugin.plugin] })
72
+ jsResult = await esbuild.build({ ...esbuildOptions, plugins: [createWorkerBundlePlugin(), tscPlugin.plugin] })
72
73
  .then(async (result) => {
73
74
  if (result.outputFiles) {
74
75
  await writeChangedOutputFiles(result.outputFiles);
@@ -111,7 +112,7 @@ async function build(info) {
111
112
  const confDistPath = path.join(info.pkgDir, "dist", ".config.json");
112
113
  fs.writeFileSync(confDistPath, JSON.stringify(info.configs ?? {}, undefined, 2));
113
114
  await copyPublicFiles(info.pkgDir, false);
114
- generateProductionFiles(info, external);
115
+ generateProductionFiles(info, prodDependencies);
115
116
  }
116
117
  const allErrors = [...(jsResult.errors ?? []), ...tscErrors];
117
118
  const tscSuccess = tscErrors.length === 0;
@@ -201,7 +202,7 @@ async function startWatch(info) {
201
202
  const parsedConfig = parseTsconfig(info.pkgDir);
202
203
  const entryPoints = getPackageSourceFiles(info.pkgDir, parsedConfig);
203
204
  // 외부 모듈 수집 (watch 모드용 — watch manager가 자체 캐시를 유지)
204
- const cachedExternal = collectAllExternals(info.pkgDir, info.externals);
205
+ const { bundleExternals: cachedExternal } = collectAllExternals(info.pkgDir, info.externals);
205
206
  // esbuild 컨텍스트 생성 (JS 출력 필요 시, tsc 플러그인 포함)
206
207
  if (info.output.js) {
207
208
  await esbuildCtx.createContext({
@@ -1 +1 @@
1
- {"version":3,"file":"server-build.worker.js","sourceRoot":"","sources":["../../src/workers/server-build.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-build.worker.js","sourceRoot":"","sources":["../../src/workers/server-build.worker.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,OAAO,EACL,aAAa,EACb,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAwE9D,YAAY;AAEZ,6BAA6B;AAE7B,4BAA4B;AAC5B,IAAI,aAAoC,CAAC;AAEzC,+BAA+B;AAC/B,IAAI,UAAiC,CAAC;AAEtC,KAAK,UAAU,OAAO;IACpB,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAE3B,MAAM,cAAc,GAAG,aAAa,CAAC;IACrC,aAAa,GAAG,SAAS,CAAC;IAE1B,MAAM,iBAAiB,GAAG,UAAU,CAAC;IACrC,UAAU,GAAG,SAAS,CAAC;IAEvB,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAElF,YAAY;AAEZ,gBAAgB;AAEhB;;GAEG;AACH,KAAK,UAAU,KAAK,CAAC,IAAqB;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,iCAAiC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEvG,IAAI,CAAC;QACH,cAAc;QACd,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAErE,WAAW;QACX,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/F,IAAI,QAAsE,CAAC;QAC3E,IAAI,SAAmB,CAAC;QACxB,IAAI,cAAsC,CAAC;QAC3C,IAAI,IAAuC,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACnB,+CAA+C;YAC/C,MAAM,SAAS,GAAG,eAAe,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBAChC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,0BAA0B,CAAC;gBAChD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YAEH,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,CAAC,wBAAwB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC3G,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,MAAM,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnE,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBACnC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oBAC9C,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;iBACrD,CAAC;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5B,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC,CAAC;YAEN,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;YACxC,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC3C,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;YAEhD,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YACrE,SAAS,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;YACnC,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC;YACvC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACpE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAEjF,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE1C,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,iCAAiC,QAAQ,CAAC,OAAO,UAAU,UAAU,GAAG,CAAC,CAAC;QACpG,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,UAAU;gBACvC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACpD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,cAAc;aAC5B;YACD,IAAI;YACJ,UAAU;SACX,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,eAAe,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7D,UAAU;SACX,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,IAAqB;IAC7C,eAAe,EAAE,CAAC;IAClB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,oDAAoD;IACpD,IAAI,aAAuC,CAAC;IAE5C;;;;OAIG;IACH,KAAK,UAAU,UAAU;QACvB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAEtE,IAAI,QAAsE,CAAC;QAC3E,IAAI,SAAmB,CAAC;QACxB,IAAI,IAAuC,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACnB,qDAAqD;YACrD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YACjD,QAAQ,GAAG,aAAa,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YACtF,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,aAAa,GAAG,IAAI,YAAY,CAAC;oBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;oBAC3C,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;oBACpB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;oBACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;YAErD,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YACrE,SAAS,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;YACnC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;QAC7C,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACpD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B;YACD,IAAI;YACJ,UAAU;SACX,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAErE,kDAAkD;QAClD,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7F,4CAA4C;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,UAAU,CAAC,aAAa,CAAC;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,cAAc;gBACxB,GAAG,EAAE;oBACH,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;oBAChC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;oBACpB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;oBACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;iBACvB;aACF,CAAC,CAAC;QACL,CAAC;QAED,QAAQ;QACR,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,UAAU,EAAE,CAAC;QAEzC,yBAAyB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QACpE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEpC,2BAA2B;QAC3B,aAAa,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1D,uCAAuC;QACvC,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,CAAC,GAAG,CAAC;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,UAAU,GAAG,MAAM,oBAAoB,CAAC;YACtC,IAAI;YACJ,UAAU;YACV,MAAM;YACN,gBAAgB,EAAE,cAAc;YAChC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YACjD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;YACvD,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAGzB;IACA,KAAK;IACL,UAAU;IACV,SAAS;CACV,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC;AAEtB,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-esbuild-context.d.ts","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,OAAO,MAAM,SAAS,CAAC;AAQ9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,GAAG,CAAC,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE;YAAE,GAAG,EAAE,OAAO,CAAA;SAAE,CAAC;QACzB,GAAG,CAAC,EAAE,YAAY,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAWD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BjF;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,CAkCR;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnF;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAErE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,oBAAoB,EAAE,CAE1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"server-esbuild-context.d.ts","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,OAAO,MAAM,SAAS,CAAC;AAQ9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,GAAG,CAAC,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE;YAAE,GAAG,EAAE,OAAO,CAAA;SAAE,CAAC;QACzB,GAAG,CAAC,EAAE,YAAY,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAWD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BjF;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,CAkCR;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnF;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAErE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,oBAAoB,EAAE,CAE1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,GAAG,SAAS,CAEpE"}
@@ -3,6 +3,7 @@ import { err as errNs } from "@simplysm/core-common";
3
3
  import { formatEsbuildMessages } from "../utils/output-utils.js";
4
4
  import { createServerEsbuildOptions, writeChangedOutputFiles, } from "../esbuild/esbuild-config.js";
5
5
  import { createTscPlugin } from "../esbuild/esbuild-tsc-plugin.js";
6
+ import { createWorkerBundlePlugin } from "../esbuild/esbuild-worker-plugin.js";
6
7
  /** esbuild watch context (모듈 스코프 상태) */
7
8
  let context;
8
9
  /** 마지막 빌드의 metafile (변경 필터링용) */
@@ -31,9 +32,10 @@ export async function createContext(options) {
31
32
  external: options.external,
32
33
  dev: true,
33
34
  });
35
+ const workerPlugin = createWorkerBundlePlugin();
34
36
  context = await esbuild.context({
35
37
  ...baseOptions,
36
- plugins: tscPlugin != null ? [tscPlugin.plugin] : [],
38
+ plugins: tscPlugin != null ? [workerPlugin, tscPlugin.plugin] : [workerPlugin],
37
39
  metafile: true,
38
40
  write: false,
39
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server-esbuild-context.js","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-esbuild-context.js","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export async function startServerWatchLoop(config) {
27
27
  // package.json이 변경된 경우에만 외부 모듈 재수집
28
28
  const hasPackageJsonChange = changes.some((c) => c.path.endsWith("package.json"));
29
29
  if (hasPackageJsonChange) {
30
- cachedExternal = collectAllExternals(info.pkgDir, info.externals);
30
+ cachedExternal = collectAllExternals(info.pkgDir, info.externals).bundleExternals;
31
31
  }
32
32
  if (info.output.js) {
33
33
  await esbuildCtx.recreateContext({
@@ -1 +1 @@
1
- {"version":3,"file":"server-watch-manager.js","sourceRoot":"","sources":["../../src/workers/server-watch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EACL,aAAa,EACb,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAqBvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA6B;IACtE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5C,IAAI,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAElD,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,YAAY,EAAE,CAAC;gBAEtB,sBAAsB;gBACtB,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAE3E,mCAAmC;gBACnC,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAChC,CAAC;gBACF,IAAI,oBAAoB,EAAE,CAAC;oBACzB,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,UAAU,CAAC,eAAe,CAAC;wBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,WAAW,EAAE,cAAc;wBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,cAAc;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,qBAAqB;YACrB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACpF,CAAC;YAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3C,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC9C,8CAA8C;gBAC9C,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtD,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"server-watch-manager.js","sourceRoot":"","sources":["../../src/workers/server-watch-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "14.0.43",
3
+ "version": "14.0.45",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -40,10 +40,11 @@
40
40
  "ssh2": "^1.17.0",
41
41
  "typescript": "^5.9.3",
42
42
  "ws": "^8.20.0",
43
+ "yaml": "^2.8.3",
43
44
  "yargs": "^18.0.0",
44
- "@simplysm/core-common": "14.0.43",
45
- "@simplysm/core-node": "14.0.43",
46
- "@simplysm/storage": "14.0.43"
45
+ "@simplysm/core-node": "14.0.45",
46
+ "@simplysm/core-common": "14.0.45",
47
+ "@simplysm/storage": "14.0.45"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/semver": "^7.7.1",
@@ -7,6 +7,26 @@ const logger = consola.withTag("sd:cli:ngtsc-build");
7
7
  import { compileScssFile, compileScssString } from "./scss-compiler";
8
8
  import { createOutputPathRewriter, rewriteScssImports } from "../utils/output-path-rewriter";
9
9
 
10
+ /**
11
+ * 정방향 의존성 맵(소유파일→의존성 Set)에서 역방향 인덱스(의존성→소유파일 Set)를 구축한다.
12
+ */
13
+ export function buildReverseDeps(
14
+ forwardDeps: ReadonlyMap<string, ReadonlySet<string>>,
15
+ ): Map<string, Set<string>> {
16
+ const reverse = new Map<string, Set<string>>();
17
+ for (const [ownerFile, deps] of forwardDeps) {
18
+ for (const dep of deps) {
19
+ let owners = reverse.get(dep);
20
+ if (owners == null) {
21
+ owners = new Set();
22
+ reverse.set(dep, owners);
23
+ }
24
+ owners.add(ownerFile);
25
+ }
26
+ }
27
+ return reverse;
28
+ }
29
+
10
30
  export function trackDeps(
11
31
  depsMap: Map<string, Set<string>>,
12
32
  containingFile: string,
@@ -38,6 +58,10 @@ export interface SideEffectScssOptions {
38
58
  scssErrors: string[];
39
59
  scssDependencies: Map<string, Set<string>>;
40
60
  registry?: Map<string, SideEffectScssEntry>;
61
+ /** sourceFileName → Set<registryKey(=scssAbsPath)> 역방향 인덱스. O(1) 삭제용 */
62
+ registryReverseIndex?: Map<string, Set<string>>;
63
+ /** side-effect SCSS별 의존성 맵. compileScssFile 후 갱신. 증분 판별용 */
64
+ sideEffectScssDeps?: Map<string, Set<string>>;
41
65
  }
42
66
 
43
67
  //#region Library SCSS transform
@@ -89,8 +113,9 @@ export function createLibraryTransformStylesheet(
89
113
  //#region Side-effect SCSS
90
114
 
91
115
  /**
92
- * 레지스트리의 모든 side-effect SCSS 항목을 CSS로 컴파일한다.
93
- * compileGlobalScss와 동일한 패턴 항상 모든 항목을 재컴파일한다.
116
+ * 레지스트리의 side-effect SCSS 항목을 CSS로 컴파일한다.
117
+ * changedScssFiles가 제공되면 영향받는 항목만 재컴파일한다 (증분 모드).
118
+ * changedScssFiles가 미제공이면 전체 재컴파일한다 (초기 빌드).
94
119
  * 에러 발생 시 scssErrors에 추가하고 기존 CSS 파일을 보존한다.
95
120
  */
96
121
  export function compileSideEffectScss(
@@ -98,14 +123,32 @@ export function compileSideEffectScss(
98
123
  loadPaths: string[],
99
124
  scssErrors: string[],
100
125
  scssDependencies: Map<string, Set<string>>,
126
+ changedScssFiles?: ReadonlySet<string>,
127
+ sideEffectScssDeps?: Map<string, Set<string>>,
101
128
  ): void {
102
129
  logger.debug(`side-effect SCSS 컴파일 시작 (${registry.size}개)`);
103
130
  for (const entry of registry.values()) {
131
+ // 증분 모드: 영향받는 항목만 재컴파일
132
+ if (changedScssFiles != null && sideEffectScssDeps != null) {
133
+ const isDirectHit = changedScssFiles.has(entry.scssAbsPath);
134
+ let isDepsHit = false;
135
+ const deps = sideEffectScssDeps.get(entry.scssAbsPath);
136
+ if (deps != null) {
137
+ for (const d of deps) {
138
+ if (changedScssFiles.has(d)) { isDepsHit = true; break; }
139
+ }
140
+ }
141
+ if (!isDirectHit && !isDepsHit) continue;
142
+ }
104
143
  try {
105
144
  const result = compileScssFile(entry.scssAbsPath, loadPaths);
106
145
  fs.mkdirSync(path.dirname(entry.cssAbsPath), { recursive: true });
107
146
  fs.writeFileSync(entry.cssAbsPath, result.css, "utf-8");
108
147
  trackDeps(scssDependencies, entry.sourceFileName, result.dependencies);
148
+ // 의존성 기록 (증분 판별용)
149
+ if (sideEffectScssDeps != null) {
150
+ sideEffectScssDeps.set(entry.scssAbsPath, new Set(result.dependencies));
151
+ }
109
152
  } catch (err) {
110
153
  scssErrors.push(formatScssError(err, entry.scssAbsPath));
111
154
  }
@@ -176,9 +219,21 @@ export function writeEmitResults(
176
219
 
177
220
  // 새 항목 등록 전에 이 소스 파일의 기존 레지스트리 항목 제거
178
221
  if (scss.registry != null && sourceFileName != null) {
179
- for (const [key, entry] of scss.registry) {
180
- if (entry.sourceFileName === sourceFileName) {
181
- scss.registry.delete(key);
222
+ if (scss.registryReverseIndex != null) {
223
+ // O(1) 삭제: 역방향 인덱스 활용
224
+ const keys = scss.registryReverseIndex.get(sourceFileName);
225
+ if (keys != null) {
226
+ for (const key of keys) {
227
+ scss.registry.delete(key);
228
+ }
229
+ scss.registryReverseIndex.delete(sourceFileName);
230
+ }
231
+ } else {
232
+ // 폴백: O(n) 순회 삭제
233
+ for (const [key, entry] of scss.registry) {
234
+ if (entry.sourceFileName === sourceFileName) {
235
+ scss.registry.delete(key);
236
+ }
182
237
  }
183
238
  }
184
239
  }
@@ -195,6 +250,15 @@ export function writeEmitResults(
195
250
  // 레지스트리가 제공된 경우 등록 (scssAbsPath를 키로 사용하여 중복 방지)
196
251
  if (scss.registry != null) {
197
252
  scss.registry.set(scssAbsPath, { scssAbsPath, cssAbsPath, sourceFileName });
253
+ // 역방향 인덱스 갱신
254
+ if (scss.registryReverseIndex != null) {
255
+ let keys = scss.registryReverseIndex.get(sourceFileName);
256
+ if (keys == null) {
257
+ keys = new Set();
258
+ scss.registryReverseIndex.set(sourceFileName, keys);
259
+ }
260
+ keys.add(scssAbsPath);
261
+ }
198
262
  }
199
263
 
200
264
  try {
@@ -202,6 +266,10 @@ export function writeEmitResults(
202
266
  fs.mkdirSync(path.dirname(cssAbsPath), { recursive: true });
203
267
  fs.writeFileSync(cssAbsPath, result.css, "utf-8");
204
268
  trackDeps(scss.scssDependencies, sourceFileName, result.dependencies);
269
+ // side-effect SCSS 의존성 기록 (증분 판별용)
270
+ if (scss.sideEffectScssDeps != null) {
271
+ scss.sideEffectScssDeps.set(scssAbsPath, new Set(result.dependencies));
272
+ }
205
273
  } catch (err) {
206
274
  scss.scssErrors.push(formatScssError(err, scssAbsPath));
207
275
  }
@@ -46,28 +46,35 @@ export async function upgradeVersion(
46
46
  await fsx.write(projPkgPath, json.stringify(projPkg, { space: 2 }) + "\n");
47
47
  changedFiles.push(projPkgPath);
48
48
 
49
- // 각 패키지의 package.json에 버전 설정
50
- for (const pkgPath of allPkgPaths) {
51
- const pkgJsonPath = path.resolve(pkgPath, "package.json");
52
- const pkgJson = await fsx.readJson<PackageJson>(pkgJsonPath);
53
- pkgJson.version = newVersion;
54
- await fsx.write(pkgJsonPath, json.stringify(pkgJson, { space: 2 }) + "\n");
55
- changedFiles.push(pkgJsonPath);
56
- }
49
+ // 각 패키지의 package.json에 버전 설정 (병렬)
50
+ const pkgChangedFiles = await Promise.all(
51
+ allPkgPaths.map(async (pkgPath) => {
52
+ const pkgJsonPath = path.resolve(pkgPath, "package.json");
53
+ const pkgJson = await fsx.readJson<PackageJson>(pkgJsonPath);
54
+ pkgJson.version = newVersion;
55
+ await fsx.write(pkgJsonPath, json.stringify(pkgJson, { space: 2 }) + "\n");
56
+ return pkgJsonPath;
57
+ }),
58
+ );
59
+ changedFiles.push(...pkgChangedFiles);
57
60
 
58
61
  // 템플릿 파일의 @simplysm 패키지 버전 동기화
59
62
  const templateFiles = await fsx.glob(path.resolve(cwd, "packages/sd-cli/templates/**/*.hbs"));
60
63
  const versionRegex = /("@simplysm\/[^"]+"\s*:\s*)"~[^"]+"/g;
61
64
 
62
- for (const templatePath of templateFiles) {
63
- const content = await fsx.read(templatePath);
64
- const newContent = content.replace(versionRegex, `$1"~${newVersion}"`);
65
+ const templateChangedFiles = await Promise.all(
66
+ templateFiles.map(async (templatePath) => {
67
+ const content = await fsx.read(templatePath);
68
+ const newContent = content.replace(versionRegex, `$1"~${newVersion}"`);
65
69
 
66
- if (content !== newContent) {
67
- await fsx.write(templatePath, newContent);
68
- changedFiles.push(templatePath);
69
- }
70
- }
70
+ if (content !== newContent) {
71
+ await fsx.write(templatePath, newContent);
72
+ return templatePath;
73
+ }
74
+ return undefined;
75
+ }),
76
+ );
77
+ changedFiles.push(...templateChangedFiles.filter((f) => f != null));
71
78
 
72
79
  return { version: newVersion, changedFiles };
73
80
  }
@@ -81,25 +88,27 @@ export async function computePublishLevels<T extends { name: string; path: strin
81
88
  ): Promise<T[][]> {
82
89
  const pkgNames = new Set(publishPkgs.map((p) => p.name));
83
90
 
84
- // 각 패키지의 워크스페이스 의존성 수집
85
- const depsMap = new Map<string, Set<string>>();
86
- for (const pkg of publishPkgs) {
87
- const pkgJson = await fsx.readJson<PackageJson>(path.resolve(pkg.path, "package.json"));
88
- const allDeps = {
89
- ...pkgJson.dependencies,
90
- ...pkgJson.peerDependencies,
91
- ...pkgJson.optionalDependencies,
92
- };
93
-
94
- const workspaceDeps = new Set<string>();
95
- for (const depName of Object.keys(allDeps)) {
96
- const shortName = depName.replace(/^@simplysm\//, "");
97
- if (shortName !== depName && pkgNames.has(shortName)) {
98
- workspaceDeps.add(shortName);
91
+ // 각 패키지의 워크스페이스 의존성 수집 (병렬)
92
+ const depsEntries = await Promise.all(
93
+ publishPkgs.map(async (pkg) => {
94
+ const pkgJson = await fsx.readJson<PackageJson>(path.resolve(pkg.path, "package.json"));
95
+ const allDeps = {
96
+ ...pkgJson.dependencies,
97
+ ...pkgJson.peerDependencies,
98
+ ...pkgJson.optionalDependencies,
99
+ };
100
+
101
+ const workspaceDeps = new Set<string>();
102
+ for (const depName of Object.keys(allDeps)) {
103
+ const shortName = depName.replace(/^@simplysm\//, "");
104
+ if (shortName !== depName && pkgNames.has(shortName)) {
105
+ workspaceDeps.add(shortName);
106
+ }
99
107
  }
100
- }
101
- depsMap.set(pkg.name, workspaceDeps);
102
- }
108
+ return [pkg.name, workspaceDeps] as const;
109
+ }),
110
+ );
111
+ const depsMap = new Map(depsEntries);
103
112
 
104
113
  // 위상 정렬로 레벨 분류
105
114
  const levels: T[][] = [];
@@ -140,6 +140,7 @@ export async function resolveAllReplaceDepEntries(
140
140
  logger: ReturnType<typeof consola.withTag>,
141
141
  ): Promise<ReplaceDepEntry[]> {
142
142
  const entries: ReplaceDepEntry[] = [];
143
+ const seenTargetPaths = new Set<string>();
143
144
  const searchedDirs = new Set<string>();
144
145
 
145
146
  // 초기 탐색 대상: 프로젝트 루트 + workspace 패키지들의 node_modules
@@ -162,12 +163,15 @@ export async function resolveAllReplaceDepEntries(
162
163
  continue;
163
164
  }
164
165
 
165
- // replaceDeps의 각 glob 패턴으로 node_modules 디렉토리 탐색
166
- const targetNames: string[] = [];
167
- for (const pattern of Object.keys(replaceDeps)) {
168
- const matches = await glob(pattern, { cwd: nodeModulesDir });
169
- targetNames.push(...matches.map((m) => m.replaceAll("\\", "/")));
170
- }
166
+ // replaceDeps의 각 glob 패턴으로 node_modules 디렉토리 탐색 (병렬)
167
+ const globResults = await Promise.all(
168
+ Object.keys(replaceDeps).map((pattern) =>
169
+ glob(pattern, { cwd: nodeModulesDir }),
170
+ ),
171
+ );
172
+ const targetNames = globResults.flatMap((matches) =>
173
+ matches.map((m) => m.replaceAll("\\", "/")),
174
+ );
171
175
 
172
176
  logger.debug(`[replace-deps] 탐색: ${nodeModulesDir} → ${targetNames.length}개 매칭 (${targetNames.join(", ")})`);
173
177
 
@@ -200,7 +204,8 @@ export async function resolveAllReplaceDepEntries(
200
204
  }
201
205
 
202
206
  // 동일 actualTargetPath가 이미 등록된 경우 건너뜀 (pnpm 중복 방지)
203
- if (entries.some((e) => e.actualTargetPath === actualTargetPath)) continue;
207
+ if (seenTargetPaths.has(actualTargetPath)) continue;
208
+ seenTargetPaths.add(actualTargetPath);
204
209
 
205
210
  entries.push({
206
211
  targetName,
@@ -7,6 +7,70 @@ import { promisify } from "util";
7
7
  import type { ReplaceDepEntry } from "./replace-deps-resolve";
8
8
  import { resolveAllReplaceDepEntries } from "./replace-deps-resolve";
9
9
 
10
+ /**
11
+ * 파일 내용이 동일한지 비교한다.
12
+ * mtime + size가 같으면 동일로 간주하고, 다르면 바이트 비교한다.
13
+ */
14
+ async function isFileContentSame(pathA: string, pathB: string): Promise<boolean> {
15
+ try {
16
+ const [statA, statB] = await Promise.all([
17
+ fs.promises.stat(pathA),
18
+ fs.promises.stat(pathB),
19
+ ]);
20
+ if (statA.size !== statB.size) return false;
21
+ if (statA.mtimeMs === statB.mtimeMs) return true;
22
+
23
+ const [bufA, bufB] = await Promise.all([
24
+ fs.promises.readFile(pathA),
25
+ fs.promises.readFile(pathB),
26
+ ]);
27
+ return bufA.equals(bufB);
28
+ } catch {
29
+ return false;
30
+ }
31
+ }
32
+
33
+ /**
34
+ * pnpm hard link를 끊으면서 파일/디렉토리를 복사한다.
35
+ * 대상 파일을 먼저 unlink하여 글로벌 store의 hard link를 끊고 새 파일을 생성한다.
36
+ * 다른 프로젝트의 node_modules에 영향을 주지 않기 위함이다.
37
+ */
38
+ async function copyWithUnlink(
39
+ sourcePath: string,
40
+ targetPath: string,
41
+ filter?: (absolutePath: string) => boolean,
42
+ ): Promise<void> {
43
+ let stats: fs.Stats;
44
+ try {
45
+ stats = await fs.promises.lstat(sourcePath);
46
+ } catch {
47
+ return;
48
+ }
49
+
50
+ if (stats.isDirectory()) {
51
+ await fsx.mkdir(targetPath);
52
+ const names = await fs.promises.readdir(sourcePath);
53
+ await Promise.all(
54
+ names
55
+ .map((name) => path.resolve(sourcePath, name))
56
+ .filter((child) => filter == null || filter(child))
57
+ .map((child) => copyWithUnlink(
58
+ child,
59
+ path.join(targetPath, path.basename(child)),
60
+ )),
61
+ );
62
+ } else {
63
+ if (await isFileContentSame(sourcePath, targetPath)) return;
64
+ await fsx.mkdir(path.dirname(targetPath));
65
+ try {
66
+ await fs.promises.unlink(targetPath);
67
+ } catch {
68
+ // 대상이 없으면 무시
69
+ }
70
+ await fs.promises.copyFile(sourcePath, targetPath);
71
+ }
72
+ }
73
+
10
74
  /**
11
75
  * npm publish 시 files 필드와 무관하게 항상 포함되는 파일 패턴 (대소문자 무시)
12
76
  */
@@ -69,33 +133,31 @@ export async function setupReplaceDeps(
69
133
  replaceDeps: Record<string, string>,
70
134
  ): Promise<void> {
71
135
  const logger = consola.withTag("sd:cli:replace-deps");
72
- let setupCount = 0;
73
136
 
74
137
  logger.start("replace-deps 설정 중...");
75
138
 
76
139
  const entries = await resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger);
77
- const copiedEntries: ReplaceDepEntry[] = [];
78
140
 
79
- for (const entry of entries) {
141
+ const results = await Promise.all(entries.map(async (entry) => {
80
142
  try {
81
- // 소스 패키지의 files 필드를 읽어 화이트리스트 구성
82
143
  const files = await loadFilesField(entry.resolvedSourcePath);
83
144
  if (files == null) {
84
145
  logger.warn(`[${entry.targetName}] package.json에 files 필드가 없어 건너뜀`);
85
- continue;
146
+ return undefined;
86
147
  }
87
148
 
88
149
  const filter = createCopyFilter(entry.resolvedSourcePath, new Set(files));
89
- await fsx.copy(entry.resolvedSourcePath, entry.actualTargetPath, filter);
90
-
91
- copiedEntries.push(entry);
92
- setupCount += 1;
150
+ await copyWithUnlink(entry.resolvedSourcePath, entry.actualTargetPath, filter);
151
+ return entry;
93
152
  } catch (err) {
94
153
  logger.error(`[${entry.targetName}] 복사 실패: ${err instanceof Error ? err.message : err}`);
154
+ return undefined;
95
155
  }
96
- }
156
+ }));
97
157
 
98
- logger.success(`replace-deps 설정 완료 (${setupCount}개 의존성 교체)`);
158
+ const copiedEntries = results.filter((e): e is ReplaceDepEntry => e != null);
159
+
160
+ logger.success(`replace-deps 설정 완료 (${copiedEntries.length}개 의존성 교체)`);
99
161
 
100
162
  // 교체된 패키지의 postinstall 스크립트 실행
101
163
  for (const { targetName, resolvedSourcePath, actualTargetPath } of copiedEntries) {
@@ -174,15 +236,20 @@ export async function watchReplaceDeps(
174
236
  // readdir 실패 시 npm 기본 파일 감시 생략
175
237
  }
176
238
 
239
+ // 이 소스 경로에 해당하는 entries만 사전 필터링하여 캡처
240
+ const sourceEntries = entries.filter(
241
+ (e) => e.resolvedSourcePath === entry.resolvedSourcePath,
242
+ );
243
+
177
244
  const watcher = await FsWatcher.watch(watchPaths, {
178
245
  followSymlinks: false,
179
246
  });
180
247
  watcher.onChange({ delay: 300 }, async (changeInfos) => {
181
- for (const { path: changedPath } of changeInfos) {
182
- // 이 소스 경로를 사용하는 모든 항목에 대해 복사
183
- for (const e of entries) {
184
- if (e.resolvedSourcePath !== entry.resolvedSourcePath) continue;
248
+ let hasActualCopy = false;
185
249
 
250
+ for (const { path: changedPath } of changeInfos) {
251
+ // 사전 필터링된 항목만 순회
252
+ for (const e of sourceEntries) {
186
253
  // 소스로부터의 상대 경로 계산
187
254
  const relativePath = pathx.posix(path.relative(e.resolvedSourcePath, changedPath));
188
255
  const destPath = pathx.posix(path.join(e.actualTargetPath, relativePath));
@@ -203,12 +270,16 @@ export async function watchReplaceDeps(
203
270
  if (stat.isDirectory()) {
204
271
  await fsx.mkdir(destPath);
205
272
  } else {
273
+ // 파일 내용이 동일하면 복사 건너뜀 (불필요한 리빌드 방지)
274
+ if (await isFileContentSame(changedPath, destPath)) continue;
206
275
  await fsx.mkdir(pathx.posix(path.dirname(destPath)));
207
276
  await fsx.copy(changedPath, destPath);
277
+ hasActualCopy = true;
208
278
  }
209
279
  } else {
210
280
  // 소스가 삭제됨 → 대상도 삭제
211
281
  await fsx.rm(destPath);
282
+ hasActualCopy = true;
212
283
  }
213
284
  } catch (err) {
214
285
  logger.error(
@@ -217,7 +288,10 @@ export async function watchReplaceDeps(
217
288
  }
218
289
  }
219
290
  }
220
- options?.onChanged?.();
291
+
292
+ if (hasActualCopy) {
293
+ options?.onChanged?.();
294
+ }
221
295
  });
222
296
 
223
297
  watchers.push(watcher);