@simplysm/sd-cli 12.12.7 → 12.12.8

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 (26) hide show
  1. package/dist/pkg-builders/client/sd-cli-ng-routes.file-generator.d.ts +5 -2
  2. package/dist/pkg-builders/client/sd-cli-ng-routes.file-generator.js +15 -11
  3. package/dist/pkg-builders/client/sd-cli-ng-routes.file-generator.js.map +1 -1
  4. package/dist/pkg-builders/client/sd-client.build-runner.js +26 -31
  5. package/dist/pkg-builders/client/sd-client.build-runner.js.map +1 -1
  6. package/dist/pkg-builders/lib/sd-cli-db-context.file-generator.d.ts +5 -2
  7. package/dist/pkg-builders/lib/sd-cli-db-context.file-generator.js +15 -16
  8. package/dist/pkg-builders/lib/sd-cli-db-context.file-generator.js.map +1 -1
  9. package/dist/pkg-builders/lib/sd-cli-index.file-generator.d.ts +5 -2
  10. package/dist/pkg-builders/lib/sd-cli-index.file-generator.js +14 -9
  11. package/dist/pkg-builders/lib/sd-cli-index.file-generator.js.map +1 -1
  12. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.js +34 -19
  13. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.js.map +1 -1
  14. package/dist/ts-compiler/sd-dependency-cache.d.ts +1 -0
  15. package/dist/ts-compiler/sd-dependency-cache.js +7 -1
  16. package/dist/ts-compiler/sd-dependency-cache.js.map +1 -1
  17. package/dist/ts-compiler/sd-ts-compiler.js +23 -18
  18. package/dist/ts-compiler/sd-ts-compiler.js.map +1 -1
  19. package/package.json +9 -9
  20. package/src/pkg-builders/client/sd-cli-ng-routes.file-generator.ts +8 -7
  21. package/src/pkg-builders/client/sd-client.build-runner.ts +38 -48
  22. package/src/pkg-builders/lib/sd-cli-db-context.file-generator.ts +8 -12
  23. package/src/pkg-builders/lib/sd-cli-index.file-generator.ts +9 -10
  24. package/src/pkg-builders/lib/sd-ts-lib.build-runner.ts +19 -10
  25. package/src/ts-compiler/sd-dependency-cache.ts +12 -12
  26. package/src/ts-compiler/sd-ts-compiler.ts +53 -106
@@ -3,14 +3,14 @@ import path from "path";
3
3
  import { FsUtils, PathUtils, SdLogger } from "@simplysm/sd-core-node";
4
4
  import { StringUtils, Wait } from "@simplysm/sd-core-common";
5
5
  import { NgtscProgram, OptimizeFor } from "@angular/compiler-cli";
6
- import { replaceBootstrap, } from "@angular/build/src/tools/angular/transformers/jit-bootstrap-transformer";
6
+ import { replaceBootstrap } from "@angular/build/src/tools/angular/transformers/jit-bootstrap-transformer";
7
7
  import { SdCliPerformanceTimer } from "../utils/sd-cli-performance-time";
8
8
  import { SdCliConvertMessageUtils } from "../utils/sd-cli-convert-message.utils";
9
- import { createWorkerTransformer, } from "@angular/build/src/tools/angular/transformers/web-worker-transformer";
9
+ import { createWorkerTransformer } from "@angular/build/src/tools/angular/transformers/web-worker-transformer";
10
10
  import { SdDependencyCache } from "./sd-dependency-cache";
11
11
  import { SdDependencyAnalyzer } from "./sd-dependency-analyzer";
12
12
  import { FlatESLint } from "eslint/use-at-your-own-risk";
13
- import { ComponentStylesheetBundler, } from "@angular/build/src/tools/esbuild/angular/component-stylesheets";
13
+ import { ComponentStylesheetBundler } from "@angular/build/src/tools/esbuild/angular/component-stylesheets";
14
14
  import { transformSupportedBrowsersToTargets } from "@angular/build/src/tools/esbuild/utils";
15
15
  import browserslist from "browserslist";
16
16
  export class SdTsCompiler {
@@ -70,18 +70,23 @@ export class SdTsCompiler {
70
70
  };
71
71
  }
72
72
  #createCompilerHost(compilerOptions, modifiedFileSet) {
73
+ // 지식: SourceFile은 하나의 파일에만 국한된 정적 정보객체임, 변경된 파일의 SourceFile만 다시 생성하면됨
73
74
  const compilerHost = ts.createCompilerHost(compilerOptions);
74
75
  const baseGetSourceFile = compilerHost.getSourceFile;
75
76
  compilerHost.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile, ...args) => {
76
77
  const fileNPath = PathUtils.norm(fileName);
77
- if (!shouldCreateNewSourceFile && this.#sourceFileCacheMap.has(fileNPath)) {
78
+ /*if (!shouldCreateNewSourceFile && this.#sourceFileCacheMap.has(fileNPath)) {
79
+ return this.#sourceFileCacheMap.get(fileNPath);
80
+ }*/
81
+ if (this.#sourceFileCacheMap.has(fileNPath)) {
78
82
  return this.#sourceFileCacheMap.get(fileNPath);
79
83
  }
80
- const sf = baseGetSourceFile.call(compilerHost, fileName, languageVersionOrOptions, onError, true, ...args);
84
+ const sf = baseGetSourceFile.call(compilerHost, fileName, languageVersionOrOptions, onError, false, ...args);
81
85
  if (!sf) {
82
86
  this.#sourceFileCacheMap.delete(fileNPath);
83
87
  return undefined;
84
88
  }
89
+ this.#sourceFileCacheMap.set(fileNPath, sf);
85
90
  return sf;
86
91
  };
87
92
  if (this.#isForAngular) {
@@ -142,6 +147,7 @@ export class SdTsCompiler {
142
147
  // 참조하는 파일과 참조된 파일 사이의 의존성 관계 추가
143
148
  this.#depCache.addImport(fileNPath, PathUtils.norm(referencedFile), 0);
144
149
  }
150
+ this.#stylesheetBundlingResultMap.set(fileNPath, result);
145
151
  // this._stylesheetBundlingResultMap.set(fileNPath, {
146
152
  // errors: undefined,
147
153
  // warnings: [],
@@ -211,18 +217,19 @@ export class SdTsCompiler {
211
217
  return result;
212
218
  };
213
219
  const affectedFileTree = this.#depCache.getAffectedFileTree(modifiedFileSet);
214
- this.#debug(`
215
- 영향받은 기존파일:
216
- ${affectedFileTree.map(item => getTreeText(item)).join("\n")}`.trim());
220
+ this.#debug(`영향받은 기존파일: ${affectedFileTree.map((item) => getTreeText(item)).join("\n")}`.trim());
217
221
  // 스타일 번들러에서 영향받은 파일 관련 항목 무효화
218
- this.#stylesheetBundler.invalidate(affectedFileSet);
222
+ this.#stylesheetBundler.invalidate(new Set([...modifiedFileSet, ...Array.from(affectedFileSet).filter((item) => item.endsWith(".scss"))]));
219
223
  // await worker.run("invalidate", [affectedFileSet]);
220
- // 의존성 캐시에서 영향받은 파일 관련 항목 무효화
221
- this.#depCache.invalidates(affectedFileSet);
224
+ // 소스파일은 변경된 파일들로 무효화
225
+ for (const modifiedFile of modifiedFileSet) {
226
+ this.#sourceFileCacheMap.delete(modifiedFile);
227
+ }
228
+ // 의존성 캐시에서 영향받은 파일 관련 항목 무효화 (Affected더라도 SF는 동일하므로, modifiedFileSet만 넣어도될듯?)
229
+ this.#depCache.invalidates(modifiedFileSet);
222
230
  // 내부 캐시에서 영향받은 파일 관련 항목 무효화
223
231
  for (const affectedFile of affectedFileSet) {
224
232
  this.#emittedFilesCacheMap.delete(affectedFile);
225
- this.#sourceFileCacheMap.delete(affectedFile);
226
233
  this.#stylesheetBundlingResultMap.delete(affectedFile);
227
234
  }
228
235
  });
@@ -257,9 +264,7 @@ ${affectedFileTree.map(item => getTreeText(item)).join("\n")}`.trim());
257
264
  SdDependencyAnalyzer.analyzeAngularResources(this.#ngProgram, this._opt.watchScopePathSet, this.#depCache);
258
265
  }
259
266
  });
260
- const affectedFileSet = modifiedFileSet.size === 0
261
- ? this.#depCache.getFiles()
262
- : this.#depCache.getAffectedFileSet(modifiedFileSet);
267
+ const affectedFileSet = modifiedFileSet.size === 0 ? this.#depCache.getFiles() : this.#depCache.getAffectedFileSet(modifiedFileSet);
263
268
  const watchFileSet = this.#depCache.getFiles();
264
269
  return {
265
270
  tsconfig,
@@ -271,8 +276,7 @@ ${affectedFileTree.map(item => getTreeText(item)).join("\n")}`.trim());
271
276
  async #lintAsync(prepareResult) {
272
277
  const lintFilePaths = Array.from(prepareResult.affectedFileSet)
273
278
  .filter((item) => PathUtils.isChildPath(item, this._opt.pkgPath))
274
- .filter((item) => ((!item.endsWith(".d.ts") && item.endsWith(".ts")) ||
275
- item.endsWith(".js")))
279
+ .filter((item) => (!item.endsWith(".d.ts") && item.endsWith(".ts")) || item.endsWith(".js"))
276
280
  .filter((item) => FsUtils.exists(item));
277
281
  if (lintFilePaths.length === 0) {
278
282
  return [];
@@ -302,7 +306,8 @@ ${affectedFileTree.map(item => getTreeText(item)).join("\n")}`.trim());
302
306
  const stylesheetBundlingResult = await this.#bundleStylesheetAsync(data, this._opt.globalStyleFilePath, this._opt.globalStyleFilePath);
303
307
  const emitFileInfos = this.#emittedFilesCacheMap.getOrCreate(this._opt.globalStyleFilePath, []);
304
308
  emitFileInfos.push({
305
- outAbsPath: PathUtils.norm(this._opt.pkgPath, path.relative(path.resolve(this._opt.pkgPath, "src"), this._opt.globalStyleFilePath)
309
+ outAbsPath: PathUtils.norm(this._opt.pkgPath, path
310
+ .relative(path.resolve(this._opt.pkgPath, "src"), this._opt.globalStyleFilePath)
306
311
  .replace(/\.scss$/, ".css")),
307
312
  text: stylesheetBundlingResult.contents ?? "",
308
313
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sd-ts-compiler.js","sourceRoot":"","sources":["../../src/ts-compiler/sd-ts-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EACL,gBAAgB,GACjB,MAAM,yEAAyE,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAMjF,OAAO,EACL,uBAAuB,GACxB,MAAM,sEAAsE,CAAC;AAC9E,OAAO,EAA2B,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACL,0BAA0B,GAC3B,MAAM,gEAAgE,CAAC;AACxE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,OAAO,YAAY;IACvB,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/D,aAAa,CAAU;IAEvB,kBAAkB,CAA6B;IAE/C,UAAU,CAA2B;IACrC,QAAQ,CAAyB;IAEjC,UAAU;IACV,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACpC,mBAAmB,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC1D,qBAAqB,GAAG,IAAI,GAAG,EAM5B,CAAC;IAEJ,UAAU;IACV,4BAA4B,GAAG,IAAI,GAAG,EAAwC,CAAC;IAE/E,KAAK,CAAyB;IAE9B,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;QACpD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAE9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,0BAA0B,CACtD;YACE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAChC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;YAClC,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YACjD,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;YACzD,YAAY,EAAE,EAAE;YAChB,QAAQ;YACR,oBAAoB,EAAE,EAAE;YACxB,MAAM,EAAE,mCAAmC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1E,qBAAqB,EAAE,SAAS;YAChC,oBAAoB,EAAE;gBACpB,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;aAC9B;YACD,cAAc;YACd,YAAY,EAAE;gBACZ,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,QAAQ;aACnB;SACF,EACD,MAAM,EACN,IAAI,CAAC,IAAI,CAAC,SAAS,CACpB,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,EAAE,CAAC,0BAA0B,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACxF,GAAG,QAAQ,CAAC,sBAAsB;YAClC,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB;SAC/B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAC3E,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,MAAM,CACP,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,QAAQ,EAAE,QAAQ;SACnB,CAAC;IACJ,CAAC;IAED,mBAAmB,CACjB,eAAmC,EACnC,eAA+B;QAE/B,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAE5D,MAAM,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC;QACrD,YAAY,CAAC,aAAa,GAAG,CAC3B,QAAgB,EAChB,wBAAsE,EACtE,OAAiD,EACjD,yBAAmC,EACnC,GAAG,IAAI,EACoB,EAAE;YAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1E,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,EAAE,GAA8B,iBAAiB,CAAC,IAAI,CAC1D,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,OAAO,EACP,IAAI,EACJ,GAAG,IAAI,CACR,CAAC;YAEF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,YAAoC,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;gBACxE,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC,CAAC;YAED,YAAoC,CAAC,iBAAiB,GAAG,KAAK,EAC7D,IAAY,EACZ,OAIC,EACD,EAAE;gBACF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAChE,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EACtC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAChF,CAAC;gBAEF,OAAO,WAAW,CAAC,aAAa,CAAC,wBAAwB,CAAC,QAAQ,CAAC;oBACjE,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,EAAE,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC;YACrD,CAAC,CAAC;YAED,YAAoC,CAAC,wBAAwB,GAAG,GAAG,EAAE;gBACpE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnF,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uDAAuD;IACvD,0CAA0C;IAC1C,6CAA6C;IAC7C,MAAM;IACN,EAAE;IACF,4EAA4E;IAC5E,8DAA8D;IAC9D,OAAO;IACP,EAAE;IACF,8CAA8C;IAC9C,iBAAiB;IACjB,gDAAgD;IAChD,OAAO;IACP,EAAE;IACF,2CAA2C;IAC3C,IAAI;IAEJ,KAAK,CAAC,sBAAsB,CAC1B,IAAY,EACZ,cAAyB,EACzB,eAAiC,IAAI;QAErC,+BAA+B;QAC/B,sEAAsE;QACtE,uDAAuD;QAEvD,2EAA2E;QAE3E,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC;gBACH,sEAAsE;gBACtE,wDAAwD;gBACxD,kDAAkD;gBAClD,mFAAmF;gBAEnF,MAAM,MAAM,GAAG,YAAY,IAAI,IAAI;oBACjC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,YAAY,CAAC;oBACxD,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;gBAE7E,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;oBAC1D,yDAAyD;oBACzD,gCAAgC;oBAChC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzE,CAAC;gBAED,qDAAqD;gBACrD,uBAAuB;gBACvB,kBAAkB;gBAClB,eAAe;gBACf,MAAM;gBACN,EAAE;gBACF,WAAW;gBACX,uBAAuB;gBACvB,kBAAkB;gBAClB,eAAe;gBACf,KAAK;gBACL,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG;oBACb,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,eAAe,GAAG,CAAC,OAAO,IAAI,WAAW,EAAE;4BACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;yBACnC;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb,CAAC;gBACF,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACzD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,eAA+B;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAEhE,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrE,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,aAAa,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,aAAa,aAAa,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC;QAE7D,OAAO;YACL,QAAQ,EAAE;gBACR,GAAG,wBAAwB,CAAC,gCAAgC,CAAC,WAAW,CAAC,WAAW,CAAC;gBACrF,GAAG,wBAAwB,CAAC,gCAAgC,CAAC,WAAW,CAAC;aAC1E;YACD,eAAe,EAAE,aAAa,CAAC,eAAe;YAC9C,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,2BAA2B,EAAE,IAAI,CAAC,4BAA4B;YAC9D,oBAAoB,EAAE,IAAI,CAAC,qBAAqB;YAChD,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,YAAY,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,eAA+B;QACjD,kEAAkE;QAElE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEvC,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAErB,yCAAyC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE;gBAClC,yBAAyB;gBACzB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBAE3E,MAAM,WAAW,GAAG,CAAC,IAA6B,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;oBACjE,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClC,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;oBAC9C,CAAC;oBAED,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC;gBAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;gBAC7E,IAAI,CAAC,MAAM,CAAC;;EAElB,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/D,8BAA8B;gBAC9B,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACpD,qDAAqD;gBAErD,6BAA6B;gBAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAE5C,4BAA4B;gBAC5B,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAChD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC9C,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC7D,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,EAAE;YACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAChC,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,OAAO,EAChB,YAAY,EACZ,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YACjD,CAAC;iBACI,CAAC;gBACJ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,aAAa,CAC9B,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,OAAO,EAChB,YAAY,EACZ,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAChD,MAAM,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;YAC9B,sDAAsD;YACtD,oBAAoB,CAAC,OAAO,CAC1B,IAAI,CAAC,QAAS,EACd,YAAY,EACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAC3B,IAAI,CAAC,SAAS,CACf,CAAC;YAEF,qBAAqB;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,oBAAoB,CAAC,uBAAuB,CAC1C,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAC3B,IAAI,CAAC,SAAS,CACf,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,KAAK,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAE/C,OAAO;YACL,QAAQ;YACR,YAAY;YACZ,eAAe;YACf,YAAY;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,aAA6B;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC5D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrB,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE;gBACd,eAAe,EAAE;oBACf,aAAa,EAAE;wBACb,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;qBAC1B;iBACF;aACF;SACF,CAAC,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,iBAAiB;QACjB,IACE,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI;YACrC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC7C,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAC9D,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAE/B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;gBAC5C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAoB,CAAC,CAAC;gBACzE,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAChE,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,mBAAoB,EAC9B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC9B,CAAC;gBACF,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAC1D,IAAI,CAAC,IAAI,CAAC,mBAAoB,EAC9B,EAAE,CACH,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC;oBACjB,UAAU,EAAE,SAAS,CAAC,IAAI,CACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAoB,CAAC;yBAClF,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAC9B;oBACD,IAAI,EAAE,wBAAwB,CAAC,QAAQ,IAAI,EAAE;iBAC9C,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,aAA6B;QAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAa,CAAC;QACzC,MAAM,WAAW,GAAoB,EAAE,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE;YAChC,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,QAAS,CAAC,+BAA+B,EAAE,EACnD,GAAG,IAAI,CAAC,QAAS,CAAC,qBAAqB,EAAE,EACzC,GAAG,IAAI,CAAC,QAAS,CAAC,oBAAoB,EAAE,CACzC,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEhC,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,SAAS;YAEtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACtE,IACE,CAAC,kBAAkB;gBACnB,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAC1F,CAAC;gBACD,SAAS;YACX,CAAC;YAED,6DAA6D;YAE7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE;gBACjC,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,QAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,EAC7D,GAAG,IAAI,CAAC,QAAS,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAC7D,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,EAAE;oBAC1C,IAAI,kBAAkB,CAAC,iBAAiB;wBAAE,OAAO;oBAEjD,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,qBAAqB,CAChD,kBAAkB,EAClB,WAAW,CAAC,YAAY,CACzB,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAE7B,IAAI,YAAY,GAA0B,EAAE,CAAC;YAE7C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC;gBAC/E,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAC/B,GAAG,CAAC,kBAAkB,CAAC,MAAM,IAAI,EAAE,CAAC,CACrC,CAAC;gBACF,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAC9B,GAAG,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CACpC,CAAC;gBACF,CAAC,YAAY,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC,IAAI,CAC1C,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAChD,CAAC;gBAEF,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC3F,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAC/B,uBAAuB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;oBAChF,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpE,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAE1B,yDAAyD;YACzD,4CAA4C;YAC5C,qCAAqC;YACrC,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;gBACzD,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC;oBAAE,SAAS;gBAE3D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACtD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,iBAAiB;oBAAE,SAAS;gBAC1C,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAC9D,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAElF,6BAA6B;gBAC7B,sDAAsD;gBACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrF,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,QAAS,CAAC,IAAI,CACjB,EAAE,EACF,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;oBACjE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7C,aAAa,CAAC,YAAY,CAAC,SAAS,CAClC,QAAQ,EACR,IAAI,EACJ,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,IAAI,CACL,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;oBACvE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;4BAAE,OAAO;wBACnE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;oBACnF,CAAC;oBAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAC/D,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnC,EAAE,CACH,CAAC;oBAEF,IAAI,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CACpC,QAAQ,EACR,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAC/B,IAAI,CACL,CAAC;wBAEF,kBAAkB,CAAC,IAAI,CAAC;4BACtB,UAAU,EAAE,IAAI,CAAC,QAAQ;4BACzB,IAAI,EAAE,IAAI,CAAC,IAAI;yBAChB,CAAC,CAAC;oBACL,CAAC;yBACI,CAAC;wBACJ,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpC,CAAC;oBAED,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACvD,CAAC,EACD,SAAS,EACT,SAAS,EACT,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,WAAW;YACX,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,QAAgB,EAAE,QAAgB,EAAE,IAAY;QACnE,IAAI,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAEvF,IAAI,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;YACxD,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;YAErF,yBAAyB;YACzB,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC/C,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBACxF,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,GAAG,GAAU;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"sd-ts-compiler.js","sourceRoot":"","sources":["../../src/ts-compiler/sd-ts-compiler.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": "12.12.7",
3
+ "version": "12.12.8",
4
4
  "description": "심플리즘 패키지 - CLI",
5
5
  "author": "김석래",
6
6
  "repository": {
@@ -12,21 +12,21 @@
12
12
  "bin": "./dist/sd-cli.js",
13
13
  "type": "module",
14
14
  "dependencies": {
15
- "@angular/build": "^20.0.5",
16
- "@angular/compiler": "^20.0.6",
17
- "@angular/compiler-cli": "^20.0.6",
15
+ "@angular/build": "^20.1.0",
16
+ "@angular/compiler": "^20.1.0",
17
+ "@angular/compiler-cli": "^20.1.0",
18
18
  "@anthropic-ai/sdk": "^0.56.0",
19
19
  "@electron/rebuild": "^4.0.1",
20
- "@simplysm/sd-core-common": "12.12.7",
21
- "@simplysm/sd-core-node": "12.12.7",
22
- "@simplysm/sd-service-server": "12.12.7",
23
- "@simplysm/sd-storage": "12.12.7",
20
+ "@simplysm/sd-core-common": "12.12.8",
21
+ "@simplysm/sd-core-node": "12.12.8",
22
+ "@simplysm/sd-service-server": "12.12.8",
23
+ "@simplysm/sd-storage": "12.12.8",
24
24
  "browserslist": "^4.25.1",
25
25
  "cordova": "^12.0.0",
26
26
  "css-has-pseudo": "^7.0.2",
27
27
  "electron": "^37.2.0",
28
28
  "electron-builder": "26.0.12",
29
- "esbuild": "^0.25.5",
29
+ "esbuild": "0.25.5",
30
30
  "eslint": "^9.30.1",
31
31
  "glob": "^11.0.3",
32
32
  "node-stdlib-browser": "^1.3.1",
@@ -1,11 +1,11 @@
1
1
  import path from "path";
2
- import { FsUtils, HashUtils, PathUtils, SdFsWatcher } from "@simplysm/sd-core-node";
2
+ import { FsUtils, HashUtils, PathUtils } from "@simplysm/sd-core-node";
3
3
  import { StringUtils } from "@simplysm/sd-core-common";
4
4
 
5
5
  export class SdCliNgRoutesFileGenerator {
6
6
  cachedHash?: string;
7
7
 
8
- watch(pkgPath: string, noLazyRoute?: boolean) {
8
+ /*watch(pkgPath: string, noLazyRoute?: boolean) {
9
9
  const routesFilePath = path.resolve(pkgPath, "src/routes.ts");
10
10
  this.cachedHash = FsUtils.exists(routesFilePath) ? HashUtils.get(FsUtils.readFile(routesFilePath)) : undefined;
11
11
 
@@ -14,9 +14,9 @@ export class SdCliNgRoutesFileGenerator {
14
14
  });
15
15
 
16
16
  this.run(pkgPath, noLazyRoute);
17
- }
17
+ }*/
18
18
 
19
- run(pkgPath: string, noLazyRoute?: boolean) {
19
+ run(pkgPath: string, noLazyRoute?: boolean): { changed: boolean; filePath: string; content: string } {
20
20
  const appDirPath = path.resolve(pkgPath, "src/app");
21
21
  const routesFilePath = path.resolve(pkgPath, "src/routes.ts");
22
22
 
@@ -54,9 +54,7 @@ export class SdCliNgRoutesFileGenerator {
54
54
  cont += indentStr + ` path: "${key}",\n`;
55
55
  if (val.relModulePath != null) {
56
56
  if (noLazyRoute) {
57
- cont +=
58
- indentStr +
59
- ` component: ${StringUtils.toPascalCase(path.basename(val.relModulePath))},\n`;
57
+ cont += indentStr + ` component: ${StringUtils.toPascalCase(path.basename(val.relModulePath))},\n`;
60
58
  imports.push(
61
59
  `import { ${StringUtils.toPascalCase(path.basename(val.relModulePath))} } from "./app/${val.relModulePath}";`,
62
60
  );
@@ -90,6 +88,9 @@ ${routes}
90
88
  if (currHash !== this.cachedHash) {
91
89
  FsUtils.writeFile(routesFilePath, content);
92
90
  this.cachedHash = currHash;
91
+ return { changed: true, filePath: routesFilePath, content };
92
+ } else {
93
+ return { changed: false, filePath: routesFilePath, content };
93
94
  }
94
95
  }
95
96
  }
@@ -14,52 +14,33 @@ export class SdClientBuildRunner extends BuildRunnerBase<"client"> {
14
14
  #ngBundlers?: SdNgBundler[];
15
15
  #cordova?: SdCliCordova;
16
16
 
17
- protected override async _runAsync(
18
- dev: boolean,
19
- modifiedFileSet?: Set<TNormPath>,
20
- ): Promise<IBuildRunnerRunResult> {
21
- // 최초
17
+ protected override async _runAsync(dev: boolean, modifiedFileSet?: Set<TNormPath>): Promise<IBuildRunnerRunResult> {
18
+ // 최초 한번
22
19
  if (!modifiedFileSet) {
20
+ // config
23
21
  this._debug("GEN .config...");
24
22
  const confDistPath = path.resolve(this._pkgPath, "dist/.config.json");
25
23
  FsUtils.writeFile(confDistPath, JSON.stringify(this._pkgConf.configs ?? {}, undefined, 2));
26
24
 
27
- const npmConf = FsUtils.readJson(path.resolve(this._pkgPath, "package.json")) as INpmConfig;
28
-
29
- if ("@angular/router" in (npmConf.dependencies ?? {})) {
30
- if (!dev) {
31
- this._debug(`GEN routes.ts...`);
32
- this.#routeGenerator.run(this._pkgPath, this._pkgConf.noLazyRoute);
33
- } else {
34
- this._debug(`Watch for GEN routes.ts...`);
35
- this.#routeGenerator.watch(this._pkgPath, this._pkgConf.noLazyRoute);
36
- }
37
- }
38
- }
39
- // watch
40
- else {
41
- for (const ngBundler of this.#ngBundlers!) {
42
- ngBundler.markForChanges(Array.from(modifiedFileSet));
25
+ // cordova
26
+ if (this._pkgConf.builder?.cordova) {
27
+ this._debug("CORDOVA 준비...");
28
+ this.#cordova = new SdCliCordova({
29
+ pkgPath: this._pkgPath,
30
+ config: this._pkgConf.builder.cordova,
31
+ });
32
+ await this.#cordova.initializeAsync();
43
33
  }
44
- }
45
-
46
- const ngBundlerBuilderTypes = Object.keys(this._pkgConf.builder ?? { web: {} }) as (
47
- | "web"
48
- | "electron"
49
- | "cordova"
50
- )[];
51
- if (this._pkgConf.builder?.cordova && !this.#cordova) {
52
- this._debug("CORDOVA 준비...");
53
- this.#cordova = new SdCliCordova({
54
- pkgPath: this._pkgPath,
55
- config: this._pkgConf.builder.cordova,
56
- });
57
- await this.#cordova.initializeAsync();
58
- }
59
34
 
60
- if (!this.#ngBundlers) {
35
+ // ng
61
36
  this._debug(`BUILD 준비...`);
62
37
 
38
+ const ngBundlerBuilderTypes = Object.keys(this._pkgConf.builder ?? { web: {} }) as (
39
+ | "web"
40
+ | "electron"
41
+ | "cordova"
42
+ )[];
43
+
63
44
  this.#ngBundlers = ngBundlerBuilderTypes.map(
64
45
  (ngBundlerBuilderType) =>
65
46
  new SdNgBundler({
@@ -79,24 +60,33 @@ export class SdClientBuildRunner extends BuildRunnerBase<"client"> {
79
60
  ...this._pkgConf.builder?.[ngBundlerBuilderType]?.env,
80
61
  },
81
62
  external:
82
- ngBundlerBuilderType === "electron"
83
- ? (this._pkgConf.builder?.electron?.reinstallDependencies ?? [])
84
- : [],
85
- cordovaConfig:
86
- ngBundlerBuilderType === "cordova" ? this._pkgConf.builder!.cordova : undefined,
63
+ ngBundlerBuilderType === "electron" ? (this._pkgConf.builder?.electron?.reinstallDependencies ?? []) : [],
64
+ cordovaConfig: ngBundlerBuilderType === "cordova" ? this._pkgConf.builder!.cordova : undefined,
87
65
  watchScopePathSet: this._watchScopePathSet,
88
66
  }),
89
67
  );
90
68
  }
91
69
 
70
+ const npmConf = FsUtils.readJson(path.resolve(this._pkgPath, "package.json")) as INpmConfig;
71
+
72
+ if ("@angular/router" in (npmConf.dependencies ?? {})) {
73
+ this._debug(`GEN routes.ts...`);
74
+ const genRoutesResult = this.#routeGenerator.run(this._pkgPath, this._pkgConf.noLazyRoute);
75
+ if (modifiedFileSet && genRoutesResult.changed) {
76
+ modifiedFileSet.add(PathUtils.norm(genRoutesResult.filePath));
77
+ }
78
+ }
79
+
80
+ if (modifiedFileSet) {
81
+ for (const ngBundler of this.#ngBundlers!) {
82
+ ngBundler.markForChanges(Array.from(modifiedFileSet));
83
+ }
84
+ }
85
+
92
86
  this._debug(`BUILD...`);
93
- const buildResults = await Promise.all(
94
- this.#ngBundlers.map((builder) => builder.bundleAsync()),
95
- );
87
+ const buildResults = await Promise.all(this.#ngBundlers!.map((builder) => builder.bundleAsync()));
96
88
  const watchFileSet = new Set(buildResults.mapMany((item) => Array.from(item.watchFileSet)));
97
- const affectedFileSet = new Set(
98
- buildResults.mapMany((item) => Array.from(item.affectedFileSet)),
99
- );
89
+ const affectedFileSet = new Set(buildResults.mapMany((item) => Array.from(item.affectedFileSet)));
100
90
  const emitFileSet = new Set(buildResults.mapMany((item) => Array.from(item.emitFileSet)));
101
91
  const results = buildResults.mapMany((item) => item.results).distinct();
102
92
 
@@ -1,4 +1,4 @@
1
- import { FsUtils, HashUtils, PathUtils, SdFsWatcher } from "@simplysm/sd-core-node";
1
+ import { FsUtils, HashUtils, PathUtils } from "@simplysm/sd-core-node";
2
2
  import path from "path";
3
3
  import { StringUtils } from "@simplysm/sd-core-common";
4
4
  import { INpmConfig } from "../../types/common-configs.types";
@@ -6,7 +6,7 @@ import { INpmConfig } from "../../types/common-configs.types";
6
6
  export class SdCliDbContextFileGenerator {
7
7
  cachedHash?: string;
8
8
 
9
- watch(pkgPath: string, kebabName: string) {
9
+ /*watch(pkgPath: string, kebabName: string) {
10
10
  const targetFilePath = path.resolve(pkgPath, `src/${kebabName}.ts`);
11
11
  this.cachedHash = FsUtils.exists(targetFilePath) ? HashUtils.get(FsUtils.readFile(targetFilePath)) : undefined;
12
12
 
@@ -15,9 +15,9 @@ export class SdCliDbContextFileGenerator {
15
15
  });
16
16
 
17
17
  this.run(pkgPath, kebabName);
18
- }
18
+ }*/
19
19
 
20
- run(pkgPath: string, kebabName: string) {
20
+ run(pkgPath: string, kebabName: string): { changed: boolean; filePath: string; content: string } {
21
21
  const npmConfig = FsUtils.readJson(path.resolve(pkgPath, "package.json")) as INpmConfig;
22
22
  const useExt = npmConfig.dependencies?.["@simplysm/sd-orm-common-ext"] != null;
23
23
 
@@ -68,14 +68,7 @@ export class SdCliDbContextFileGenerator {
68
68
  importTexts.push(`import { ${className} } from "./${requirePath}";`);
69
69
  if (
70
70
  useExt &&
71
- [
72
- "systemDataLog",
73
- "systemLog",
74
- "authentication",
75
- "user",
76
- "userConfig",
77
- "userPermission",
78
- ].includes(varName)
71
+ ["systemDataLog", "systemLog", "authentication", "user", "userConfig", "userPermission"].includes(varName)
79
72
  ) {
80
73
  modelTexts.push(`override ${varName} = new Queryable(this, ${className})`);
81
74
  } else {
@@ -151,6 +144,9 @@ ${spTexts.length > 0 ? "\n // StoredProcedures\n" + spTexts.map((item) => " "
151
144
  if (currHash !== this.cachedHash) {
152
145
  FsUtils.writeFile(targetFilePath, content);
153
146
  this.cachedHash = currHash;
147
+ return { changed: true, filePath: targetFilePath, content };
148
+ } else {
149
+ return { changed: false, filePath: targetFilePath, content };
154
150
  }
155
151
  }
156
152
  }
@@ -1,10 +1,10 @@
1
- import { FsUtils, HashUtils, PathUtils, SdFsWatcher } from "@simplysm/sd-core-node";
1
+ import { FsUtils, HashUtils, PathUtils } from "@simplysm/sd-core-node";
2
2
  import path from "path";
3
3
 
4
4
  export class SdCliIndexFileGenerator {
5
5
  cachedHash?: string;
6
6
 
7
- watch(pkgPath: string, polyfills?: string[]) {
7
+ /*watch(pkgPath: string, polyfills?: string[]) {
8
8
  const indexFilePath = path.resolve(pkgPath, "src/index.ts");
9
9
  this.cachedHash = FsUtils.exists(indexFilePath) ? FsUtils.readFile(indexFilePath) : undefined;
10
10
 
@@ -13,9 +13,9 @@ export class SdCliIndexFileGenerator {
13
13
  });
14
14
 
15
15
  this.run(pkgPath, polyfills);
16
- }
16
+ }*/
17
17
 
18
- run(pkgPath: string, polyfills?: string[]): string {
18
+ run(pkgPath: string, polyfills?: string[]): { changed: boolean; filePath: string; content: string } {
19
19
  const indexFilePath = path.resolve(pkgPath, "src/index.ts");
20
20
 
21
21
  const importTexts: string[] = [];
@@ -47,22 +47,21 @@ export class SdCliIndexFileGenerator {
47
47
  if (currHash !== this.cachedHash) {
48
48
  FsUtils.writeFile(indexFilePath, content);
49
49
  this.cachedHash = currHash;
50
+ return { changed: true, filePath: indexFilePath, content };
51
+ } else {
52
+ return { changed: false, filePath: indexFilePath, content };
50
53
  }
51
- return content;
52
54
  }
53
55
 
54
56
  #getFilePaths(pkgPath: string): string[] {
55
57
  const indexFilePath = path.resolve(pkgPath, "src/index.ts");
56
58
 
57
59
  const tsconfig = FsUtils.readJson(path.resolve(pkgPath, "tsconfig.json"));
58
- const entryFilePaths: string[] =
59
- tsconfig.files?.map((item) => path.resolve(pkgPath, item)) ?? [];
60
+ const entryFilePaths: string[] = tsconfig.files?.map((item) => path.resolve(pkgPath, item)) ?? [];
60
61
 
61
62
  return FsUtils.glob(path.resolve(pkgPath, "src/**/*{.ts,.tsx}"), {
62
63
  nodir: true,
63
64
  ignore: tsconfig.excludes,
64
- }).filter(
65
- (item) => !entryFilePaths.includes(item) && item !== indexFilePath && !item.endsWith(".d.ts"),
66
- );
65
+ }).filter((item) => !entryFilePaths.includes(item) && item !== indexFilePath && !item.endsWith(".d.ts"));
67
66
  }
68
67
  }
@@ -11,11 +11,8 @@ export class SdTsLibBuildRunner extends BuildRunnerBase<"library"> {
11
11
  #dbContextGenerator = new SdCliDbContextFileGenerator();
12
12
  #builder?: SdTsLibBuilder;
13
13
 
14
- protected override async _runAsync(
15
- dev: boolean,
16
- modifiedFileSet?: Set<TNormPath>,
17
- ): Promise<IBuildRunnerRunResult> {
18
- if (!modifiedFileSet) {
14
+ protected override async _runAsync(dev: boolean, modifiedFileSet?: Set<TNormPath>): Promise<IBuildRunnerRunResult> {
15
+ /*if (!modifiedFileSet) {
19
16
  if (!dev) {
20
17
  if (!this._pkgConf.noGenIndex) {
21
18
  this._debug("GEN index.ts...");
@@ -37,14 +34,26 @@ export class SdTsLibBuildRunner extends BuildRunnerBase<"library"> {
37
34
  this.#dbContextGenerator.watch(this._pkgPath, this._pkgConf.dbContext);
38
35
  }
39
36
  }
37
+ }*/
38
+
39
+ if (!this._pkgConf.noGenIndex) {
40
+ this._debug("GEN index.ts...");
41
+ const genIndexResult = this.#indexFileGenerator.run(this._pkgPath, this._pkgConf.polyfills);
42
+ if (modifiedFileSet && genIndexResult.changed) {
43
+ modifiedFileSet.add(PathUtils.norm(genIndexResult.filePath));
44
+ }
45
+ }
46
+
47
+ if (this._pkgConf.dbContext != null) {
48
+ this._debug(`GEN ${this._pkgConf.dbContext}.ts...`);
49
+ const genDbContextResult = this.#dbContextGenerator.run(this._pkgPath, this._pkgConf.dbContext);
50
+ if (modifiedFileSet && genDbContextResult.changed) {
51
+ modifiedFileSet.add(PathUtils.norm(genDbContextResult.filePath));
52
+ }
40
53
  }
41
54
 
42
55
  this._debug(`BUILD...`);
43
- this.#builder ??= new SdTsLibBuilder(
44
- PathUtils.norm(this._pkgPath),
45
- dev,
46
- this._watchScopePathSet,
47
- );
56
+ this.#builder ??= new SdTsLibBuilder(PathUtils.norm(this._pkgPath), dev, this._watchScopePathSet);
48
57
  const buildResult = await this.#builder.buildAsync(modifiedFileSet ?? new Set());
49
58
 
50
59
  this._debug(`빌드 완료`);
@@ -43,6 +43,8 @@ export class SdDependencyCache {
43
43
  */
44
44
  private _collectedCache = new Set<TNormPath>();
45
45
 
46
+ private _exportSymbolCache = new Map<TNormPath, Set<string>>();
47
+
46
48
  /**
47
49
  * .d.ts 또는 .js가 입력되었을 때 쌍으로 존재하는 파일 경로를 반환
48
50
  * 예: "/a.d.ts" → ["/a.d.ts", "/a.js"]
@@ -240,6 +242,7 @@ export class SdDependencyCache {
240
242
  this._reexportCache.delete(fileNPath);
241
243
  this._collectedCache.delete(fileNPath);
242
244
  this._revDepCache.delete(fileNPath); // 자신이 key인 경우
245
+ this._exportSymbolCache.delete(fileNPath);
243
246
  }
244
247
 
245
248
  for (const [targetNPath, infoMap] of this._revDepCache) {
@@ -255,11 +258,7 @@ export class SdDependencyCache {
255
258
  /**
256
259
  * reexport된 경우 importSymbol → exportSymbol로 변환
257
260
  */
258
- #convertImportSymbolToExportSymbol(
259
- fileNPath: TNormPath,
260
- targetNPath: TNormPath,
261
- importSymbol: string,
262
- ) {
261
+ #convertImportSymbolToExportSymbol(fileNPath: TNormPath, targetNPath: TNormPath, importSymbol: string) {
263
262
  const symbolInfos = this._reexportCache.get(fileNPath)?.get(targetNPath);
264
263
  if (symbolInfos != null && symbolInfos !== 0 && symbolInfos.length > 0) {
265
264
  const symbolInfo = symbolInfos.single((item) => item.importSymbol === importSymbol);
@@ -272,6 +271,10 @@ export class SdDependencyCache {
272
271
  * 해당 파일에서 export된 모든 심볼 (직접 + 재export 포함)
273
272
  */
274
273
  #getExportSymbols(fileNPath: TNormPath): Set<string> {
274
+ if (this._exportSymbolCache.has(fileNPath)) {
275
+ return this._exportSymbolCache.get(fileNPath)!;
276
+ }
277
+
275
278
  const result = new Set<string>();
276
279
 
277
280
  for (const path of this.#getRelatedNPaths(fileNPath)) {
@@ -284,12 +287,13 @@ export class SdDependencyCache {
284
287
  if (val === 0) {
285
288
  result.adds(...this.#getExportSymbols(key));
286
289
  } else {
287
- result.adds(...val.map(item => item.exportSymbol));
290
+ result.adds(...val.map((item) => item.exportSymbol));
288
291
  }
289
292
  }
290
293
  }
291
294
  }
292
295
 
296
+ this._exportSymbolCache.set(fileNPath, result);
293
297
  return result;
294
298
  }
295
299
 
@@ -301,10 +305,7 @@ export class SdDependencyCache {
301
305
  const visited = new Set<string>();
302
306
  const nodeMap = new Map<string, ISdAffectedFileTreeNode>();
303
307
 
304
- const buildTree = (
305
- fileNPath: TNormPath,
306
- exportSymbol: string | undefined,
307
- ): ISdAffectedFileTreeNode => {
308
+ const buildTree = (fileNPath: TNormPath, exportSymbol: string | undefined): ISdAffectedFileTreeNode => {
308
309
  const key = `${fileNPath}#${exportSymbol ?? "*"}`;
309
310
  if (nodeMap.has(key)) return nodeMap.get(key)!;
310
311
 
@@ -320,8 +321,7 @@ export class SdDependencyCache {
320
321
  if (!revDepInfoMap) return node;
321
322
 
322
323
  for (const [revDepFileNPath, revDepInfo] of revDepInfoMap.entries()) {
323
- const hasImportSymbol =
324
- exportSymbol == null || revDepInfo === 0 || revDepInfo.has(exportSymbol);
324
+ const hasImportSymbol = exportSymbol == null || revDepInfo === 0 || revDepInfo.has(exportSymbol);
325
325
  if (!hasImportSymbol) continue;
326
326
 
327
327
  const nextExportSymbol =