@lwc/lwc-dev-server 10.6.0 → 10.7.1

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 (74) hide show
  1. package/dist/bin.js +1 -2
  2. package/dist/bin.js.map +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/server/bundler/lexBundler.d.ts +4 -4
  7. package/dist/server/bundler/lexBundler.js +14 -16
  8. package/dist/server/bundler/lexBundler.js.map +1 -1
  9. package/dist/server/bundler/lexBundler.spec.js +90 -48
  10. package/dist/server/bundler/lexBundler.spec.js.map +1 -1
  11. package/dist/server/connection/client.d.ts +5 -7
  12. package/dist/server/connection/client.js +24 -41
  13. package/dist/server/connection/client.js.map +1 -1
  14. package/dist/server/connection/client.spec.js +96 -59
  15. package/dist/server/connection/client.spec.js.map +1 -1
  16. package/dist/server/connection/connection.d.ts +4 -4
  17. package/dist/server/connection/connection.js +9 -3
  18. package/dist/server/connection/connection.js.map +1 -1
  19. package/dist/server/connection/connection.spec.js +7 -9
  20. package/dist/server/connection/connection.spec.js.map +1 -1
  21. package/dist/server/connection/web-socket-server.d.ts +2 -1
  22. package/dist/server/connection/web-socket-server.js +5 -6
  23. package/dist/server/connection/web-socket-server.js.map +1 -1
  24. package/dist/server/connection/web-socket-server.spec.js +2 -6
  25. package/dist/server/connection/web-socket-server.spec.js.map +1 -1
  26. package/dist/server/index.d.ts +5 -4
  27. package/dist/server/index.js +13 -13
  28. package/dist/server/index.js.map +1 -1
  29. package/dist/server/index.spec.js +45 -32
  30. package/dist/server/index.spec.js.map +1 -1
  31. package/dist/server/moduleGraph/index.d.ts +18 -42
  32. package/dist/server/moduleGraph/index.js +72 -119
  33. package/dist/server/moduleGraph/index.js.map +1 -1
  34. package/dist/server/moduleGraph/index.spec.js +106 -52
  35. package/dist/server/moduleGraph/index.spec.js.map +1 -1
  36. package/dist/server/moduleGraph/module.d.ts +78 -0
  37. package/dist/server/moduleGraph/module.js +126 -0
  38. package/dist/server/moduleGraph/module.js.map +1 -0
  39. package/dist/server/moduleGraph/module.spec.d.ts +1 -0
  40. package/dist/server/moduleGraph/module.spec.js +70 -0
  41. package/dist/server/moduleGraph/module.spec.js.map +1 -0
  42. package/dist/server/moduleGraph/workspaceScanner/__tests__/fileReader.spec.js +3 -3
  43. package/dist/server/moduleGraph/workspaceScanner/__tests__/fileReader.spec.js.map +1 -1
  44. package/dist/server/moduleGraph/workspaceScanner/__tests__/internal.spec.js +8 -9
  45. package/dist/server/moduleGraph/workspaceScanner/__tests__/internal.spec.js.map +1 -1
  46. package/dist/server/moduleGraph/workspaceScanner/__tests__/mrt.spec.js +1 -6
  47. package/dist/server/moduleGraph/workspaceScanner/__tests__/mrt.spec.js.map +1 -1
  48. package/dist/server/moduleGraph/workspaceScanner/__tests__/sfcli.spec.js +1 -6
  49. package/dist/server/moduleGraph/workspaceScanner/__tests__/sfcli.spec.js.map +1 -1
  50. package/dist/server/moduleGraph/workspaceScanner/fileReader.d.ts +8 -2
  51. package/dist/server/moduleGraph/workspaceScanner/fileReader.js +16 -17
  52. package/dist/server/moduleGraph/workspaceScanner/fileReader.js.map +1 -1
  53. package/dist/server/moduleGraph/workspaceScanner/index.d.ts +2 -1
  54. package/dist/server/moduleGraph/workspaceScanner/index.js.map +1 -1
  55. package/dist/server/moduleGraph/workspaceScanner/salesforceCli.js +2 -14
  56. package/dist/server/moduleGraph/workspaceScanner/salesforceCli.js.map +1 -1
  57. package/dist/server/moduleGraph/workspaceScanner/scanner.d.ts +8 -34
  58. package/dist/server/moduleGraph/workspaceScanner/scanner.js +9 -18
  59. package/dist/server/moduleGraph/workspaceScanner/scanner.js.map +1 -1
  60. package/dist/server/util/module-util.d.ts +10 -0
  61. package/dist/server/util/module-util.js +10 -0
  62. package/dist/server/util/module-util.js.map +1 -0
  63. package/dist/server/watcher/index.js +1 -2
  64. package/dist/server/watcher/index.js.map +1 -1
  65. package/dist/server/watcher/index.spec.js +1 -1
  66. package/dist/server/watcher/index.spec.js.map +1 -1
  67. package/dist/types/devServer.d.ts +2 -4
  68. package/dist/types/serverConfig.d.ts +0 -12
  69. package/dist/types/serverConfig.js +0 -12
  70. package/dist/types/serverConfig.js.map +1 -1
  71. package/package.json +5 -5
  72. package/dist/server/consoleLogger.d.ts +0 -6
  73. package/dist/server/consoleLogger.js +0 -33
  74. package/dist/server/consoleLogger.js.map +0 -1
package/dist/bin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import path from 'path';
2
2
  import { parseArgs } from 'node:util';
3
3
  import { startLwcDevServer } from './server/index.js';
4
- import { LogLevel, Workspace } from './types/index.js';
4
+ import { Workspace } from './types/index.js';
5
5
  const { values: { 'root-dir': rootDir, paths, port }, } = parseArgs({
6
6
  args: process.argv.slice(2),
7
7
  options: {
@@ -23,7 +23,6 @@ if (!paths)
23
23
  throw new Error(`paths is required`);
24
24
  startLwcDevServer({
25
25
  rootDir,
26
- logLevel: LogLevel.debug,
27
26
  paths: paths.map((p) => path.join(rootDir, p)),
28
27
  port: +(port || 50182),
29
28
  workspace: Workspace.Internal,
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,EACF,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAC/C,GAAG,SAAS,CAAC;IACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE;QACL,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;SACjB;QACD,CAAC,UAAU,CAAC,EAAE;YACV,IAAI,EAAE,QAAQ;SACjB;QACD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACjB;KACJ;CACJ,CAAC,CAAC;AACH,IAAI,CAAC,OAAO;IAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACtD,IAAI,CAAC,KAAK;IAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACjD,iBAAiB,CAAC;IACd,OAAO;IACP,QAAQ,EAAE,QAAQ,CAAC,KAAK;IACxB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC,QAAQ;CAChC,CAAC,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,EACF,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAC/C,GAAG,SAAS,CAAC;IACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE;QACL,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;SACjB;QACD,CAAC,UAAU,CAAC,EAAE;YACV,IAAI,EAAE,QAAQ;SACjB;QACD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACjB;KACJ;CACJ,CAAC,CAAC;AACH,IAAI,CAAC,OAAO;IAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACtD,IAAI,CAAC,KAAK;IAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACjD,iBAAiB,CAAC;IACd,OAAO;IACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC,QAAQ;CAChC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { startLwcDevServer, LWCServer } from './server/index.js';
2
2
  export type { ServerConfig } from './types/index.js';
3
- export { LogLevel, Workspace } from './types/serverConfig.js';
3
+ export { Workspace } from './types/serverConfig.js';
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { startLwcDevServer, LWCServer } from './server/index.js';
2
- export { LogLevel, Workspace } from './types/serverConfig.js';
2
+ export { Workspace } from './types/serverConfig.js';
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,7 +1,7 @@
1
- import { Logger, type DevServerContext } from '../../types/index.js';
1
+ import { type DevServerContext } from '../../types/index.js';
2
+ import { ModulePart } from '../moduleGraph/module.js';
2
3
  import type { TransformOptions } from '@lwc/compiler';
3
- import type { Lifecycle } from '@salesforce/core';
4
- export declare function compile(ctx: DevServerContext, modulePath: string, options: TransformOptions, logger: Logger, lifecycle?: Lifecycle): Promise<{
4
+ export declare function compile(ctx: DevServerContext, { module, part }: ModulePart, compileOptions: TransformOptions): Promise<{
5
5
  code: string | undefined;
6
- warnings: string[];
6
+ warnings: import("@lwc/errors").CompilerDiagnostic[];
7
7
  }>;
@@ -1,7 +1,7 @@
1
1
  import { compile as platformCompile } from '@lwc/sfdc-lwc-compiler';
2
- import { LogLevel, Workspace } from '../../types/index.js';
2
+ import { Workspace } from '../../types/index.js';
3
3
  import { measureOperationTime } from '../util/telemetry.js';
4
- function transformOptionsToPlatformCompileConfig(ctx, transformOptions, modulePath) {
4
+ function transformOptionsToPlatformCompileConfig(ctx, transformOptions, files) {
5
5
  const { enableDynamicComponents, enableLightningWebSecurityTransforms, experimentalComplexExpressions, apiVersion, name, namespace, experimentalDynamicComponent, outputConfig, } = transformOptions;
6
6
  const options = {
7
7
  // variable options
@@ -17,17 +17,14 @@ function transformOptionsToPlatformCompileConfig(ctx, transformOptions, modulePa
17
17
  // Enable HMR always in dev server
18
18
  enableHmr: true,
19
19
  };
20
- const getBundleType = () => {
21
- if (ctx.config.workspace === Workspace.Internal || ctx.config.workspace === Workspace.Mrt) {
22
- return 'internal';
23
- }
24
- return 'platform';
25
- };
20
+ const bundleType = ctx.config.workspace === Workspace.Internal || ctx.config.workspace === Workspace.Mrt
21
+ ? 'internal'
22
+ : 'platform';
26
23
  const bundle = {
27
- type: getBundleType(),
24
+ type: bundleType,
28
25
  name: name,
29
26
  namespace: namespace ?? 'c',
30
- files: ctx.moduleGraph.getModuleFiles(name, namespace ?? '', modulePath),
27
+ files,
31
28
  options,
32
29
  };
33
30
  const compilerConfigs = [
@@ -41,16 +38,17 @@ function transformOptionsToPlatformCompileConfig(ctx, transformOptions, modulePa
41
38
  compilerConfigs,
42
39
  };
43
40
  }
44
- export async function compile(ctx, modulePath, options, logger, lifecycle) {
45
- const compileConfig = transformOptionsToPlatformCompileConfig(ctx, options, modulePath);
46
- const result = await measureOperationTime('compile-time', () => platformCompile(compileConfig), lifecycle);
41
+ export async function compile(ctx, { module, part }, compileOptions) {
42
+ const sources = await module.getSources(part);
43
+ const compileConfig = transformOptionsToPlatformCompileConfig(ctx, compileOptions, sources);
44
+ const result = await measureOperationTime('compile-time', () => platformCompile(compileConfig), ctx.config.lifecycle);
47
45
  if (!result.success) {
48
- logger.log(LogLevel.error, `Failed to compile ${modulePath}. \n\tDiagnostics: ${JSON.stringify(result.diagnostics)}`);
49
- return { code: undefined, warnings: [result.diagnostics.toString()] };
46
+ ctx.logger.error(`Failed to compile ${part}. \n\tDiagnostics: ${JSON.stringify(result.diagnostics)}`);
47
+ return { code: undefined, warnings: result.diagnostics };
50
48
  }
51
49
  return {
52
50
  code: result.results?.[0].code,
53
- warnings: result.diagnostics.length ? [result.diagnostics.toString()] : [],
51
+ warnings: result.diagnostics,
54
52
  };
55
53
  }
56
54
  //# sourceMappingURL=lexBundler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lexBundler.js","sourceRoot":"","sources":["../../../src/server/bundler/lexBundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAU,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAW5D,SAAS,uCAAuC,CAC5C,GAAqB,EACrB,gBAAkC,EAClC,UAAkB;IAElB,MAAM,EACF,uBAAuB,EACvB,oCAAoC,EACpC,8BAA8B,EAC9B,UAAU,EACV,IAAI,EACJ,SAAS,EACT,4BAA4B,EAC5B,YAAY,GACf,GAAG,gBAAgB,CAAC;IACrB,MAAM,OAAO,GAAkB;QAC3B,mBAAmB;QACnB,sBAAsB,EAAE,uBAAuB;QAC/C,oCAAoC,EAAE,oCAAoC;QAC1E,yBAAyB,EAAE,8BAA8B;QACzD,UAAU,EAAE,UAAU;QACtB,mBAAmB;QACnB,qBAAqB,EAAE,IAAI;QAC3B,aAAa,EAAE,SAAS;QACxB,iBAAiB,EAAE,IAAI;QACvB,wBAAwB,EAAE,IAAI;QAC9B,kCAAkC;QAClC,SAAS,EAAE,IAAI;KAClB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAe,EAAE;QACnC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;YACxF,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAiB;QACzB,IAAI,EAAE,aAAa,EAAE;QACrB,IAAI,EAAE,IAAK;QACX,SAAS,EAAE,SAAS,IAAI,GAAG;QAC3B,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,IAAK,EAAE,SAAS,IAAI,EAAE,EAAE,UAAU,CAAC;QACzE,OAAO;KACV,CAAC;IACF,MAAM,eAAe,GAAqB;QACtC;YACI,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE;YACrE,4BAA4B,EAAE,4BAA4B;SAC7D;KACJ,CAAC;IACF,OAAO;QACH,MAAM;QACN,eAAe;KAClB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,GAAqB,EACrB,UAAkB,EAClB,OAAyB,EACzB,MAAc,EACd,SAAqB;IAErB,MAAM,aAAa,GAAG,uCAAuC,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACrC,cAAc,EACd,GAAG,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,EACpC,SAAS,CACZ,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CACN,QAAQ,CAAC,KAAK,EACd,qBAAqB,UAAU,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAC5F,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7E,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"lexBundler.js","sourceRoot":"","sources":["../../../src/server/bundler/lexBundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAW5D,SAAS,uCAAuC,CAC5C,GAAqB,EACrB,gBAAkC,EAClC,KAAkB;IAElB,MAAM,EACF,uBAAuB,EACvB,oCAAoC,EACpC,8BAA8B,EAC9B,UAAU,EACV,IAAI,EACJ,SAAS,EACT,4BAA4B,EAC5B,YAAY,GACf,GAAG,gBAAgB,CAAC;IACrB,MAAM,OAAO,GAAkB;QAC3B,mBAAmB;QACnB,sBAAsB,EAAE,uBAAuB;QAC/C,oCAAoC,EAAE,oCAAoC;QAC1E,yBAAyB,EAAE,8BAA8B;QACzD,UAAU,EAAE,UAAU;QACtB,mBAAmB;QACnB,qBAAqB,EAAE,IAAI;QAC3B,aAAa,EAAE,SAAS;QACxB,iBAAiB,EAAE,IAAI;QACvB,wBAAwB,EAAE,IAAI;QAC9B,kCAAkC;QAClC,SAAS,EAAE,IAAI;KAClB,CAAC;IACF,MAAM,UAAU,GACZ,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG;QACjF,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,UAAU,CAAC;IAErB,MAAM,MAAM,GAAiB;QACzB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAK;QACX,SAAS,EAAE,SAAS,IAAI,GAAG;QAC3B,KAAK;QACL,OAAO;KACV,CAAC;IACF,MAAM,eAAe,GAAqB;QACtC;YACI,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE;YACrE,4BAA4B,EAAE,4BAA4B;SAC7D;KACJ,CAAC;IACF,OAAO;QACH,MAAM;QACN,eAAe;KAClB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,GAAqB,EACrB,EAAE,MAAM,EAAE,IAAI,EAAc,EAC5B,cAAgC;IAEhC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,uCAAuC,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACrC,cAAc,EACd,GAAG,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,EACpC,GAAG,CAAC,MAAM,CAAC,SAAS,CACvB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACZ,qBAAqB,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CACtF,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9B,QAAQ,EAAE,MAAM,CAAC,WAAW;KAC/B,CAAC;AACN,CAAC"}
@@ -1,71 +1,113 @@
1
1
  import { compile as platformCompile } from '@lwc/sfdc-lwc-compiler';
2
- import { Workspace } from '../../types/index';
2
+ import { Workspace } from '../../types/index.js';
3
3
  import { compile } from './lexBundler';
4
- vi.mock('@lwc/sfdc-lwc-compiler');
4
+ // Mock dependencies
5
+ vi.mock('@lwc/sfdc-lwc-compiler', () => ({
6
+ compile: vi.fn(),
7
+ }));
8
+ vi.mock('../util/telemetry.js', () => ({
9
+ measureOperationTime: vi.fn((name, fn) => fn()),
10
+ }));
11
+ const mockCompileOptions = {
12
+ enableDynamicComponents: true,
13
+ enableLightningWebSecurityTransforms: true,
14
+ experimentalComplexExpressions: true,
15
+ apiVersion: 50,
16
+ name: 'testModule',
17
+ namespace: 'c',
18
+ outputConfig: { sourcemap: true },
19
+ };
5
20
  describe('compile', () => {
6
- let mockCtx;
7
- let mockLogger;
8
- const mockModulePath = 'src/modules/myModule';
9
- const mockTransformOptions = {
10
- enableDynamicComponents: true,
11
- enableLightningWebSecurityTransforms: true,
12
- experimentalComplexExpressions: true,
13
- apiVersion: 50,
14
- name: 'myModule',
15
- namespace: 'c',
16
- };
17
- beforeEach(() => {
18
- mockLogger = {
19
- log: vi.fn(),
20
- };
21
- mockCtx = {
21
+ it('should compile successfully', async () => {
22
+ const ctx = {
22
23
  config: {
23
24
  workspace: Workspace.Internal,
24
25
  },
25
- moduleGraph: {
26
- getModuleFiles: vi.fn().mockReturnValue(['file1', 'file2']),
26
+ logger: {
27
+ error: vi.fn(),
27
28
  },
29
+ moduleGraph: {},
28
30
  };
29
- vi.clearAllMocks();
30
- });
31
- it('should compile successfully and return code and warnings', async () => {
32
- const mockResult = {
31
+ const module = {
32
+ getSources: vi.fn().mockResolvedValue({ 'test.js': 'console.log("test");' }),
33
+ };
34
+ const part = 'testPart';
35
+ vi.mocked(platformCompile).mockResolvedValue({
33
36
  success: true,
34
- results: [
37
+ results: [{ code: 'compiled code' }],
38
+ diagnostics: [],
39
+ version: '1.0.0',
40
+ timings: {},
41
+ });
42
+ const result = await compile(ctx, { module, part }, mockCompileOptions);
43
+ expect(platformCompile).toHaveBeenCalledWith({
44
+ bundle: {
45
+ files: {
46
+ 'test.js': 'console.log("test");',
47
+ },
48
+ name: 'testModule',
49
+ namespace: 'c',
50
+ options: {
51
+ allowDynamicComponents: true,
52
+ apiVersion: 50,
53
+ disableProcessNodeEnv: true,
54
+ dynamicImport: 'allowed',
55
+ enableHmr: true,
56
+ enableLightningWebSecurityTransforms: true,
57
+ enableTemplateExpressions: true,
58
+ forceNamedExports: true,
59
+ strictCSSTokenCollection: true,
60
+ },
61
+ type: 'internal',
62
+ },
63
+ compilerConfigs: [
35
64
  {
36
- code: 'compiled code',
37
- map: '',
38
- imports: [],
39
- diagnostics: [],
40
65
  outputConfig: {
41
66
  minify: false,
42
- sourcemap: false,
43
- lockerConfig: {},
44
- env: { NODE_ENV: 'dev' },
67
+ sourcemap: true,
45
68
  },
46
- timings: {},
47
69
  },
48
70
  ],
49
- diagnostics: [],
50
- timings: {},
51
- version: '1',
52
- };
53
- vi.mocked(platformCompile).mockResolvedValue(mockResult);
54
- const result = await compile(mockCtx, mockModulePath, mockTransformOptions, mockLogger);
55
- expect(platformCompile).toHaveBeenCalledWith(expect.any(Object));
56
- expect(result.code).toBe('compiled code');
57
- expect(result.warnings).toEqual([]);
71
+ });
72
+ expect(result).toEqual({
73
+ code: 'compiled code',
74
+ warnings: [],
75
+ });
76
+ expect(ctx.logger.error).not.toHaveBeenCalledWith(expect.any(String));
58
77
  });
59
- it('should return undefined code and warnings when compilation fails', async () => {
78
+ it('should handle compile errors', async () => {
79
+ const ctx = {
80
+ config: {
81
+ workspace: Workspace.Internal,
82
+ },
83
+ logger: {
84
+ error: vi.fn(),
85
+ },
86
+ moduleGraph: {},
87
+ };
88
+ const module = {
89
+ getSources: vi.fn().mockResolvedValue({ 'test.js': 'console.log("test");' }),
90
+ };
91
+ const part = 'testPart';
60
92
  vi.mocked(platformCompile).mockResolvedValue({
93
+ version: '1.0.0',
94
+ timings: {},
61
95
  success: false,
62
96
  results: [],
63
- diagnostics: [],
64
- version: '1',
65
- timings: {},
97
+ diagnostics: [{ code: 1010, level: 1, message: 'Error message' }],
98
+ });
99
+ const result = await compile(ctx, { module, part }, mockCompileOptions);
100
+ expect(result).toEqual({
101
+ code: undefined,
102
+ warnings: [
103
+ {
104
+ code: 1010,
105
+ level: 1,
106
+ message: 'Error message',
107
+ },
108
+ ],
66
109
  });
67
- const result = await compile(mockCtx, mockModulePath, mockTransformOptions, mockLogger);
68
- expect(result.code).toBeUndefined();
110
+ expect(ctx.logger.error).toHaveBeenCalledWith(`Failed to compile ${part}. \n\tDiagnostics: [{"code":1010,"level":1,"message":"Error message"}]`);
69
111
  });
70
112
  });
71
113
  //# sourceMappingURL=lexBundler.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lexBundler.spec.js","sourceRoot":"","sources":["../../../src/server/bundler/lexBundler.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAElC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,IAAI,OAAyB,CAAC;IAC9B,IAAI,UAAkB,CAAC;IACvB,MAAM,cAAc,GAAG,sBAAsB,CAAC;IAC9C,MAAM,oBAAoB,GAAqB;QAC3C,uBAAuB,EAAE,IAAI;QAC7B,oCAAoC,EAAE,IAAI;QAC1C,8BAA8B,EAAE,IAAI;QACpC,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,GAAG;KACjB,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACZ,UAAU,GAAG;YACT,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;SACM,CAAC;QAEvB,OAAO,GAAG;YACN,MAAM,EAAE;gBACJ,SAAS,EAAE,SAAS,CAAC,QAAQ;aAChC;YACD,WAAW,EAAE;gBACT,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC9D;SAC2B,CAAC;QAEjC,EAAE,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,UAAU,GAAG;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,eAAe;oBACrB,GAAG,EAAE,EAAE;oBACP,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE;oBACf,YAAY,EAAE;wBACV,MAAM,EAAE,KAAK;wBACb,SAAS,EAAE,KAAK;wBAChB,YAAY,EAAE,EAAE;wBAChB,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;qBAC3B;oBACD,OAAO,EAAE,EAAE;iBACd;aACJ;YACD,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,GAAG;SACf,CAAC;QACF,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAExF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC9E,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC;YACzC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAExF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"lexBundler.spec.js","sourceRoot":"","sources":["../../../src/server/bundler/lexBundler.spec.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ import { HMR_Data_Outbound, HMR_Data_Inbound } from '@lwc/lwc-dev-server-types';
2
+ import { TransformOptions } from '@lwc/compiler';
1
3
  import { DevServerContext } from '../../types/devServer.js';
2
4
  import { Connection } from './connection.js';
3
- import type { HMR_Data } from '@lwc/lwc-dev-server-types';
4
- import type { TransformOptions } from '@lwc/compiler';
5
5
  /**
6
6
  * Class representing a client that has connected to the dev server.
7
7
  * This class represents a client that is connected and ready to receive hot module updates.
@@ -11,14 +11,12 @@ import type { TransformOptions } from '@lwc/compiler';
11
11
  export declare class Client {
12
12
  clientId: string;
13
13
  url: string;
14
- activePaths: Map<string, TransformOptions>;
15
14
  connection: Connection;
16
15
  ctx: DevServerContext;
16
+ compileOptions: Map<string, TransformOptions>;
17
17
  constructor(clientId: string, url: string, connection: Connection, ctx: DevServerContext);
18
18
  onClose(callback: () => void): void;
19
- removeStalePaths(paths: string[]): void;
20
- getCompileOptions(path: string): TransformOptions | undefined;
21
- send(data: HMR_Data): void;
22
- messageCallback(data: HMR_Data): Promise<void>;
19
+ send(data: HMR_Data_Outbound): void;
20
+ messageCallback(data: HMR_Data_Inbound): Promise<void>;
23
21
  close(): void;
24
22
  }
@@ -1,13 +1,5 @@
1
1
  import { compile } from '../bundler/lexBundler.js';
2
- import { LogLevel } from '../../types/serverConfig.js';
3
- const ALLOWED_OUTBOUND_DATA_TYPES = new Set([
4
- 'update',
5
- 'module-update',
6
- 'module-delete',
7
- 'error',
8
- 'auth-response',
9
- ]);
10
- const ALLOWED_INBOUND_DATA_TYPES = new Set(['fetch', 'register']);
2
+ import { decodeModulePath } from '../util/module-util.js';
11
3
  /**
12
4
  * Class representing a client that has connected to the dev server.
13
5
  * This class represents a client that is connected and ready to receive hot module updates.
@@ -16,41 +8,27 @@ const ALLOWED_INBOUND_DATA_TYPES = new Set(['fetch', 'register']);
16
8
  */
17
9
  export class Client {
18
10
  constructor(clientId, url, connection, ctx) {
19
- this.activePaths = new Map();
20
11
  this.clientId = clientId;
21
12
  this.url = url;
22
13
  this.connection = connection;
23
14
  this.connection.receive(this.messageCallback.bind(this));
24
15
  this.ctx = ctx;
16
+ this.compileOptions = new Map();
25
17
  }
26
18
  onClose(callback) {
27
19
  this.connection.onClose(callback);
28
20
  }
29
- removeStalePaths(paths) {
30
- paths.forEach((p) => this.activePaths.delete(p));
31
- }
32
- getCompileOptions(path) {
33
- return this.activePaths.get(path);
34
- }
35
21
  send(data) {
36
- if (!ALLOWED_OUTBOUND_DATA_TYPES.has(data.type)) {
37
- this.ctx.logger.log(LogLevel.debug, `[LWC Dev Server] Blocking unexpected type of data being sent from server to hmr-client '${data.type}'`);
38
- return;
39
- }
40
22
  this.connection.send(data);
41
23
  }
42
24
  async messageCallback(data) {
43
- if (!ALLOWED_INBOUND_DATA_TYPES.has(data.type)) {
44
- this.ctx.logger.log(LogLevel.debug, `[LWC Dev Server] Blocking unexpected type of data received from hmr-client '${data.type}'`);
45
- return;
46
- }
47
25
  const { ctx: { logger, moduleGraph, config: { lifecycle }, }, } = this;
48
26
  switch (data.type) {
49
27
  // In coming hot module
50
28
  case 'fetch': {
51
29
  const { data: { modulePath }, } = data;
52
- const moduleFilePath = moduleGraph.getFileByModulePath(modulePath);
53
- if (!moduleFilePath) {
30
+ const modulePart = this.ctx.moduleGraph.getModulePart(modulePath);
31
+ if (!modulePart) {
54
32
  const error = {
55
33
  type: 'error',
56
34
  data: {
@@ -58,19 +36,20 @@ export class Client {
58
36
  },
59
37
  };
60
38
  this.connection.send(error);
39
+ break;
61
40
  }
62
- const compileOptions = this.getCompileOptions(modulePath);
41
+ logger.debug(`[LWC Dev Server] Compiling ${modulePath}`);
42
+ const compileOptions = this.compileOptions.get(modulePart.module.id());
63
43
  if (!compileOptions) {
64
- logger.log(LogLevel.debug, `Found no compile option for module path: ${modulePath}, check the __lwc_hmr_hot.register() call.`);
65
- break;
44
+ logger.error(`Found no compile option for module path: ${modulePart.module.id()}, check the __lwc_hmr_hot.register() call.`);
45
+ throw new Error(`No Compile Options for module path: ${modulePart.module.id()}`);
66
46
  }
67
- logger.log(LogLevel.debug, `[LWC Dev Server] Compiling ${modulePath}`);
68
- const result = await compile(this.ctx, modulePath, compileOptions, logger);
47
+ const result = await compile(this.ctx, modulePart, compileOptions);
69
48
  if (!result.code) {
70
- logger.log(LogLevel.error, `Compiling ${moduleFilePath} failed and there are compiler warnings: ${JSON.stringify(result.warnings)}`);
49
+ logger.error(`Compiling ${modulePath} failed and there are compiler warnings: ${JSON.stringify(result.warnings)}`);
71
50
  break;
72
51
  }
73
- logger.log(LogLevel.debug, `[LWC Dev Server] Sending an updated ${modulePath}`);
52
+ logger.debug(`[LWC Dev Server] Sending an updated ${modulePath}`);
74
53
  this.connection.send({
75
54
  type: 'module-update',
76
55
  data: [{ modulePath, src: result.code }],
@@ -82,17 +61,21 @@ export class Client {
82
61
  break;
83
62
  }
84
63
  case 'register': {
85
- const modules = data.data.modules;
86
- for (const { modulePath, compileOptions } of modules) {
87
- this.activePaths.set(modulePath, compileOptions);
64
+ const moduleParts = [];
65
+ for (const { modulePath, hash, compileOptions } of data.data.modules) {
66
+ const { id, part } = decodeModulePath(modulePath);
67
+ moduleParts.push({ id, part, hash });
68
+ this.compileOptions.set(id, compileOptions);
88
69
  }
89
70
  // Inform the hmr-client of available updates, this ensures that any local changes
90
71
  // that haven't been deployed to the remote app are updated upon client registration.
91
- const staleModules = moduleGraph.getStaleModules(modules);
92
- this.send({
93
- type: 'update',
94
- data: Array.from(staleModules).map((modulePath) => ({ modulePath })),
95
- });
72
+ const staleModules = moduleGraph.getStaleModules(moduleParts);
73
+ if (staleModules.size > 0) {
74
+ this.send({
75
+ type: 'update',
76
+ data: Array.from(staleModules).map((modulePath) => ({ modulePath })),
77
+ });
78
+ }
96
79
  break;
97
80
  }
98
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/server/connection/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/server/connection/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,OAAO,MAAM;IAMf,YAAY,QAAgB,EAAE,GAAW,EAAE,UAAsB,EAAE,GAAqB;QACpF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,QAAoB;QACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,IAAuB;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAsB;QACxC,MAAM,EACF,GAAG,EAAE,EACD,MAAM,EACN,WAAW,EACX,MAAM,EAAE,EAAE,SAAS,EAAE,GACxB,GACJ,GAAG,IAAI,CAAC;QACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,uBAAuB;YACvB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,MAAM,EACF,IAAI,EAAE,EAAE,UAAU,EAAE,GACvB,GAAG,IAAI,CAAC;gBACT,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,MAAM,KAAK,GAAG;wBACV,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE;4BACF,OAAO,EAAE,YAAY,UAAU,sDAAsD;yBACxF;qBACK,CAAC;oBACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;gBACV,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;gBAEzD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CACR,4CAA4C,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,4CAA4C,CACjH,CAAC;oBACF,MAAM,IAAI,KAAK,CACX,uCAAuC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAClE,CAAC;gBACN,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;gBACnE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CACR,aAAa,UAAU,4CAA4C,IAAI,CAAC,SAAS,CAC7E,MAAM,CAAC,QAAQ,CAClB,EAAE,CACN,CAAC;oBACF,MAAM;gBACV,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;iBAC3C,CAAC,CAAC;gBAEH,SAAS,EAAE,aAAa,CAAC;oBACrB,SAAS,EAAE,iBAAiB;oBAC5B,MAAM,EAAE,UAAU;iBACrB,CAAC,CAAC;gBACH,MAAM;YACV,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,WAAW,GAAiD,EAAE,CAAC;gBACrE,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACnE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBAClD,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBAChD,CAAC;gBAED,kFAAkF;gBAClF,qFAAqF;gBACrF,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBAC9D,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;qBACvE,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACJ"}