@apimatic/cli 2.0.0-beta.5 → 2.0.0-beta.6

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 (61) hide show
  1. package/README.md +6 -1
  2. package/lib/actions/portal/prepare-project.js +3 -0
  3. package/lib/actions/portal/prepare-project.js.map +1 -1
  4. package/lib/commands/portal/generate.d.ts +1 -1
  5. package/lib/commands/portal/generate.js +2 -0
  6. package/lib/commands/portal/generate.js.map +1 -1
  7. package/lib/commands/portal/serve.d.ts +1 -1
  8. package/lib/commands/portal/serve.js +1 -1
  9. package/lib/infrastructure/file-service.d.ts +2 -0
  10. package/lib/infrastructure/file-service.js +16 -9
  11. package/lib/infrastructure/file-service.js.map +1 -1
  12. package/lib/infrastructure/portal-project-service.d.ts +1 -0
  13. package/lib/infrastructure/portal-project-service.js +2 -1
  14. package/lib/infrastructure/portal-project-service.js.map +1 -1
  15. package/lib/prompts/portal/prepare-project.d.ts +5 -1
  16. package/lib/prompts/portal/prepare-project.js +10 -1
  17. package/lib/prompts/portal/prepare-project.js.map +1 -1
  18. package/lib/prompts/portal/serve.js +3 -1
  19. package/lib/prompts/portal/serve.js.map +1 -1
  20. package/lib/prompts/portal/source.d.ts +4 -1
  21. package/lib/prompts/portal/source.js +90 -14
  22. package/lib/prompts/portal/source.js.map +1 -1
  23. package/lib/types/file/directory.js +2 -1
  24. package/lib/types/file/directory.js.map +1 -1
  25. package/lib/types/file/directoryPath.d.ts +3 -0
  26. package/lib/types/file/directoryPath.js +10 -1
  27. package/lib/types/file/directoryPath.js.map +1 -1
  28. package/lib/types/file/fileName.d.ts +5 -0
  29. package/lib/types/file/fileName.js +13 -3
  30. package/lib/types/file/fileName.js.map +1 -1
  31. package/lib/types/file/filePath.js +1 -1
  32. package/lib/types/file/filePath.js.map +1 -1
  33. package/lib/types/portal/code-samples.d.ts +2 -0
  34. package/lib/types/portal/code-samples.js +7 -0
  35. package/lib/types/portal/code-samples.js.map +1 -1
  36. package/lib/types/portal/content-tree.js +13 -17
  37. package/lib/types/portal/content-tree.js.map +1 -1
  38. package/lib/types/portal/endpoint.d.ts +1 -0
  39. package/lib/types/portal/endpoint.js +3 -0
  40. package/lib/types/portal/endpoint.js.map +1 -1
  41. package/lib/types/portal/openapi-document.d.ts +4 -0
  42. package/lib/types/portal/openapi-document.js +12 -0
  43. package/lib/types/portal/openapi-document.js.map +1 -1
  44. package/lib/types/portal/portal-source.d.ts +34 -8
  45. package/lib/types/portal/shared.d.ts +11 -0
  46. package/lib/types/portal/shared.js +10 -0
  47. package/lib/types/portal/shared.js.map +1 -0
  48. package/lib/types/portal/spec-metadata.d.ts +17 -0
  49. package/lib/types/portal/spec-metadata.js +40 -0
  50. package/lib/types/portal/spec-metadata.js.map +1 -0
  51. package/lib/types/portal-source-context.d.ts +14 -0
  52. package/lib/types/portal-source-context.js +157 -24
  53. package/lib/types/portal-source-context.js.map +1 -1
  54. package/lib/types/project-layout.d.ts +3 -0
  55. package/lib/types/project-layout.js +4 -0
  56. package/lib/types/project-layout.js.map +1 -1
  57. package/oclif.manifest.json +3 -3
  58. package/package.json +1 -1
  59. package/portal-template/portal-config.ts +2 -0
  60. package/portal-template/spec-reload.ts +12 -9
  61. package/portal-template/vite.config.ts +1 -1
@@ -9,7 +9,7 @@ import { Directory } from './file/directory.js';
9
9
  import { FileName } from './file/fileName.js';
10
10
  import { FilePath } from './file/filePath.js';
11
11
  import { NOT_FOUND_FILE_NAME, SHELL_FILE_NAME } from './portal-context.js';
12
- import { CONTENT_DIRECTORY_NAME, SPEC_DIRECTORY_NAME, STATIC_DIRECTORY_NAME } from './project-layout.js';
12
+ import { CONTENT_DIRECTORY_NAME, METADATA_FILE_NAME, SPEC_DIRECTORY_NAME, SPEC_EXTENSIONS, STATIC_DIRECTORY_NAME } from './project-layout.js';
13
13
  import { PLACEHOLDER_SITE, SiteConfig } from './portal/config/site-config.js';
14
14
  import { ContentTree } from './portal/content-tree.js';
15
15
  import { GeneratedPages } from './portal/generated-pages.js';
@@ -18,9 +18,13 @@ import { parsePage } from './portal/page.js';
18
18
  import { PortalConfig } from './portal/portal-config.js';
19
19
  import { PortalLanguages } from './portal/portal-languages.js';
20
20
  import { NAVIGATION_FILE_NAME, TOKENS } from './portal/portal-navigation.js';
21
+ import { shared } from './portal/shared.js';
22
+ import { SpecMetadata } from './portal/spec-metadata.js';
21
23
  import { SpecContext } from './spec-context.js';
22
24
  import { TRANSFORMATIONS_DIRECTORY_NAME, transformedFileName } from './transform-context.js';
23
- const SPEC_EXTENSIONS = ['.json', '.yaml', '.yml'];
25
+ const METADATA_FILE = new FileName(METADATA_FILE_NAME);
26
+ const definitionNames = (fileNames) => fileNames.filter((name) => !name.isEqual(METADATA_FILE) && !name.isHidden());
27
+ const isDocumentName = (name) => SPEC_EXTENSIONS.some((extension) => name.hasExtension(extension));
24
28
  // Empty on purpose: the portal's own routes under /api/ are files with extensions --
25
29
  // /api/search.json -- so none can collide with a spec section, which is always a directory.
26
30
  // Pages the user puts under content/api/ share the directory, and `hiddenPages` reports the
@@ -48,6 +52,9 @@ export class PortalSourceContext {
48
52
  get specDirectory() {
49
53
  return this.sourceDirectory.join(SPEC_DIRECTORY_NAME);
50
54
  }
55
+ get metadataFile() {
56
+ return new FilePath(this.specDirectory, METADATA_FILE);
57
+ }
51
58
  get contentDirectory() {
52
59
  return this.sourceDirectory.join(CONTENT_DIRECTORY_NAME);
53
60
  }
@@ -69,8 +76,8 @@ export class PortalSourceContext {
69
76
  if (discovered.isErr()) {
70
77
  return err(discovered.error);
71
78
  }
72
- const { specs, suggested } = discovered.value;
73
- const settings = await this.settingsFrom(document.value, suggested);
79
+ const { specs, suggestedSite, unmergedSpecs, leftOutSpecs } = discovered.value;
80
+ const settings = await this.settingsFrom(document.value, suggestedSite);
74
81
  if (settings.isErr()) {
75
82
  return err(settings.error);
76
83
  }
@@ -84,8 +91,12 @@ export class PortalSourceContext {
84
91
  }
85
92
  return ok({
86
93
  ...settings.value,
87
- suggestedSite: suggested,
94
+ suggestedSite,
88
95
  specs,
96
+ specDirectory: this.specDirectory,
97
+ unmergedSpecs,
98
+ leftOutSpecs,
99
+ sharedEndpoints: shared(specs.flatMap(({ file, endpoints }) => endpoints.map((key) => ({ key, file })))),
89
100
  contentDirectory,
90
101
  staticDirectory,
91
102
  shadowedFiles: staticDirectory === null ? [] : await this.shadowedFiles(staticDirectory),
@@ -348,23 +359,130 @@ export class PortalSourceContext {
348
359
  }
349
360
  // With several specifications there is no suggested site: no one of them speaks for the portal.
350
361
  async specs() {
351
- const specs = [];
352
- // Only the first is kept: it is the one that speaks for the portal when it is alone, and
353
- // specifications run to megabytes.
354
- let first;
355
- const usedSlugs = new Set(RESERVED_SPEC_SLUGS);
356
362
  const { fileNames, folders } = await this.specDirectoryListing();
357
- if (fileNames.length === 0) {
363
+ const merge = await this.mergedFolders(fileNames, folders);
364
+ if (merge.isErr()) {
365
+ return err(merge.error);
366
+ }
367
+ const usedSlugs = new Set(RESERVED_SPEC_SLUGS);
368
+ const read = merge.value === null
369
+ ? await this.topLevelSpecs(fileNames, folders, usedSlugs)
370
+ : await this.mergedSpecs(merge.value, usedSlugs);
371
+ if (read.isErr()) {
372
+ return err(read.error);
373
+ }
374
+ const { specs, suggested } = read.value;
375
+ const several = specs.length > 1;
376
+ return ok({
377
+ specs,
378
+ suggestedSite: several ? null : suggested,
379
+ unmergedSpecs: several && merge.value === null ? specs.map(({ file }) => file) : [],
380
+ leftOutSpecs: merge.value === null ? [] : await this.leftOutSpecs(fileNames)
381
+ });
382
+ }
383
+ /** The folders `APIMATIC-META.json` merges, or null when it is not there or does not merge. */
384
+ async mergedFolders(fileNames, folders) {
385
+ // Found in the listing, so its name matches exactly where the file system ignores case.
386
+ if (!fileNames.some((name) => name.isEqual(METADATA_FILE))) {
387
+ return ok(null);
388
+ }
389
+ const metadata = await this.readMetadata(this.metadataFile);
390
+ if (metadata === undefined) {
391
+ return err({ kind: 'unreadableMetadata', file: this.metadataFile });
392
+ }
393
+ if (!metadata.mergesApis()) {
394
+ return ok(null);
395
+ }
396
+ const order = metadata.mergeOrder();
397
+ if (order === null) {
398
+ return folders.length === 0
399
+ ? err({ kind: 'noFoldersToMerge', metadata: this.metadataFile })
400
+ : ok({ metadata: this.metadataFile, folders });
401
+ }
402
+ const listed = order.map((folder) => this.specDirectory.resolve(folder));
403
+ // A folder the file names twice, as `alpha` and `./alpha`, is still one API.
404
+ const once = listed.filter((folder, index) => index === listed.findIndex((other) => other.isEqual(folder)));
405
+ const found = await Promise.all(once.map((folder) => this.isFoundByPlatform(folder)));
406
+ const missing = once.filter((_, index) => !found[index]);
407
+ if (missing.length > 0) {
408
+ return err({ kind: 'missingMergedFolders', metadata: this.metadataFile, folders: missing });
409
+ }
410
+ return ok({ metadata: this.metadataFile, folders: once });
411
+ }
412
+ /** Whether the platform finds a folder the metadata file names in the build it is sent: below `spec/`, spelt as named. */
413
+ async isFoundByPlatform(folder) {
414
+ if (!this.specDirectory.isAncestorOf(folder)) {
415
+ return false;
416
+ }
417
+ const spelt = await this.fileService.directorySpelledOnDisk(this.specDirectory, folder);
418
+ return spelt !== null && spelt.isEqual(folder);
419
+ }
420
+ /** The documents at the top of `spec/`, each a section named after its file. */
421
+ async topLevelSpecs(fileNames, folders, usedSlugs) {
422
+ const names = definitionNames(fileNames);
423
+ if (names.length === 0) {
358
424
  return err({ kind: 'emptySpecDirectory', folders });
359
425
  }
426
+ return (await this.definitions(this.specDirectory, names)).map(({ documents }) => ({
427
+ specs: documents.map(({ spec }) => ({ ...spec, slug: this.uniqueSlug(spec.file.name().normalize(), usedSlugs) })),
428
+ suggested: documents[0].site
429
+ }));
430
+ }
431
+ /** The one definition of each merged folder, a section named after the folder, as the platform builds the SDKs. */
432
+ async mergedSpecs({ metadata, folders }, usedSlugs) {
433
+ const listings = await Promise.all(folders.map(async (folder) => {
434
+ const fileNames = definitionNames(await this.fileService.getFileNames(folder));
435
+ return { folder, fileNames: fileNames.sort((left, right) => left.compare(right)) };
436
+ }));
437
+ const empty = listings.filter(({ fileNames }) => fileNames.length === 0).map(({ folder }) => folder);
438
+ if (empty.length > 0) {
439
+ return err({ kind: 'emptyMergedFolders', metadata, folders: empty });
440
+ }
441
+ const specs = [];
442
+ const sites = [];
443
+ for (const { folder, fileNames } of listings) {
444
+ const read = await this.definitions(folder, fileNames);
445
+ if (read.isErr()) {
446
+ return err(read.error);
447
+ }
448
+ // The platform builds the folder from the first of them by name, which may be a file of shared parts.
449
+ const { documents, definitions } = read.value;
450
+ if (definitions.length > 1) {
451
+ return err({ kind: 'severalSpecsInFolder', folder, files: definitions });
452
+ }
453
+ const [definition] = documents;
454
+ specs.push({ ...definition.spec, slug: this.uniqueSlug(new FileName(folder.leafName()).slugified(), usedSlugs) });
455
+ sites.push(definition.site);
456
+ }
457
+ return ok({ specs, suggested: sites[0] });
458
+ }
459
+ /** The APIs at the top of `spec/`, in any format, which a merge of its folders leaves out, as the platform does. */
460
+ async leftOutSpecs(fileNames) {
461
+ const files = definitionNames(fileNames)
462
+ .filter(isDocumentName)
463
+ .map((fileName) => new FilePath(this.specDirectory, fileName));
464
+ const apis = await Promise.all(files.map(async (file) => {
465
+ const document = await this.readDocument(file);
466
+ return document !== undefined && document.namesApiFormat() && document.declaresOperations();
467
+ }));
468
+ return files.filter((_, index) => apis[index]);
469
+ }
470
+ /** What the top of a directory holds, or how to convert what is there when it has no OpenAPI 3.x document. */
471
+ async definitions(directory, fileNames) {
472
+ // The site each suggests rather than the document itself, as specifications run to megabytes.
473
+ const documents = [];
474
+ const definitions = [];
360
475
  // What each one is, for the conversion a directory without an OpenAPI 3.x document is pointed to.
361
476
  const otherFormats = [];
362
- const documentNames = fileNames.filter((name) => SPEC_EXTENSIONS.some((extension) => name.hasExtension(extension)));
477
+ const documentNames = fileNames.filter(isDocumentName);
363
478
  for (const fileName of documentNames) {
364
- const file = new FilePath(this.specDirectory, fileName);
479
+ const file = new FilePath(directory, fileName);
365
480
  const document = await this.readDocument(file);
366
481
  if (document === undefined) {
367
- return err({ kind: 'unreadableSpec', fileName });
482
+ return err({ kind: 'unreadableSpec', file });
483
+ }
484
+ if (document.namesApiFormat()) {
485
+ definitions.push(file);
368
486
  }
369
487
  const format = document.format();
370
488
  if (!format.supported) {
@@ -373,21 +491,23 @@ export class PortalSourceContext {
373
491
  }
374
492
  continue;
375
493
  }
376
- specs.push({ slug: this.uniqueSlug(fileName, usedSlugs), file, endpoints: await this.endpoints(document, file) });
377
- first ??= document;
494
+ documents.push({
495
+ spec: { file, endpoints: await this.endpoints(document, file) },
496
+ site: document.suggestedSite()
497
+ });
378
498
  }
379
- if (first === undefined) {
499
+ if (documents.length === 0) {
380
500
  const [convertible] = otherFormats;
381
501
  // No document declares its format: one the portal would read, by extension, is named before any other file.
382
502
  const conversion = convertible === undefined
383
- ? this.conversion(new FilePath(this.specDirectory, documentNames[0] ?? fileNames[0]), null, 0)
503
+ ? this.conversion(new FilePath(directory, documentNames[0] ?? fileNames[0]), null, 0)
384
504
  : this.conversion(convertible.file, convertible.format, otherFormats.length - 1);
385
505
  return err({ kind: 'noOpenApiSpec', conversion });
386
506
  }
387
- return ok({ specs, suggested: specs.length === 1 ? first.suggestedSite() : null });
507
+ return ok({ documents, definitions });
388
508
  }
389
509
  conversion(file, format, others) {
390
- const into = this.specDirectory.join(TRANSFORMATIONS_DIRECTORY_NAME);
510
+ const into = file.directory().join(TRANSFORMATIONS_DIRECTORY_NAME);
391
511
  const converted = new FilePath(into, transformedFileName(file, ExportFormats.Openapi3Yaml));
392
512
  return { file, format, converted, others };
393
513
  }
@@ -402,7 +522,10 @@ export class PortalSourceContext {
402
522
  fileNames: directory.items
403
523
  .flatMap((item) => ('fileName' in item ? [item.fileName] : []))
404
524
  .sort((left, right) => left.compare(right)),
405
- folders: directory.items.flatMap((item) => (item instanceof Directory ? [item.directoryPath] : []))
525
+ // Sorted because folders merged without an order of their own are merged by name.
526
+ folders: directory.items
527
+ .flatMap((item) => (item instanceof Directory ? [item.directoryPath] : []))
528
+ .sort((left, right) => left.compare(right))
406
529
  };
407
530
  }
408
531
  // A path item in another file is read from it; one that file refers on to again is not followed.
@@ -411,7 +534,9 @@ export class PortalSourceContext {
411
534
  const targetDocument = await this.readDocument(target);
412
535
  return targetDocument?.endpointsAt(path, pointer) ?? [];
413
536
  }));
414
- return [...document.endpoints(), ...referenced.flat()];
537
+ // A method beside a path item's `$ref` declares again what the file it refers to declares.
538
+ const all = [...document.endpoints(), ...referenced.flat()];
539
+ return all.filter((endpoint, index) => index === all.findIndex((other) => other.isEqual(endpoint)));
415
540
  }
416
541
  async readDocument(file) {
417
542
  try {
@@ -421,8 +546,16 @@ export class PortalSourceContext {
421
546
  return undefined;
422
547
  }
423
548
  }
424
- uniqueSlug(fileName, used) {
425
- const base = fileName.normalize().toString() || 'api';
549
+ async readMetadata(file) {
550
+ try {
551
+ return SpecMetadata.parse(await this.fileService.getContents(file));
552
+ }
553
+ catch {
554
+ return undefined;
555
+ }
556
+ }
557
+ uniqueSlug(name, used) {
558
+ const base = name.toString() || 'api';
426
559
  let slug = base;
427
560
  let suffix = 2;
428
561
  while (used.has(slug)) {
@@ -1 +1 @@
1
- {"version":3,"file":"portal-source-context.js","sourceRoot":"","sources":["../../src/types/portal-source-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal-source-context.js","sourceRoot":"","sources":["../../src/types/portal-source-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAA0B,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACpH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAiB,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAgC,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAE/F,OAAO,EAAE,cAAc,EAAgB,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAa7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAEvD,MAAM,eAAe,GAAG,CAAC,SAAqB,EAAc,EAAE,CAC5D,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE/E,MAAM,cAAc,GAAG,CAAC,IAAc,EAAW,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AA4BtH,qFAAqF;AACrF,4FAA4F;AAC5F,4FAA4F;AAC5F,gEAAgE;AAChE,MAAM,mBAAmB,GAAa,EAAE,CAAC;AAEzC,uFAAuF;AACvF,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG;IAC3B,YAAY;IACZ,aAAa;IACb,UAAU;IACV,eAAe;IACf,YAAY;IACZ,mBAAmB;IACnB,eAAe;CAChB,CAAC;AAEF,MAAM,OAAO,mBAAmB;IAID,eAAe;IAH3B,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,aAAa,CAAwB;IAEtD,YAA6B,eAA8B;+BAA9B,eAAe;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxD,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAED,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,0FAA0F;IACnF,KAAK,CAAC,OAAO;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,yFAAyF;QACzF,4CAA4C;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;QAE/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpF,CAAC,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC5F,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,EAAE,CAAC;YACR,GAAG,QAAQ,CAAC,KAAK;YACjB,aAAa;YACb,KAAK;YACL,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa;YACb,YAAY;YACZ,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxG,gBAAgB;YAChB,eAAe;YACf,aAAa,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;YACxF,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;SACvC,CAAC,CAAC;IACL,CAAC;IAED,uHAAuH;IAChH,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc,CACzB,KAAmB,EACnB,cAA8B;QAE9B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAC1F,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;IACxG,CAAC;IAED,4EAA4E;IACpE,KAAK,CAAC,OAAO,CACnB,gBAAsC,EACtC,KAAmB,EACnB,cAA8B;QAE9B,2FAA2F;QAC3F,yFAAyF;QACzF,0FAA0F;QAC1F,IAAI,IAAe,CAAC;QACpB,IAAI,CAAC;YACH,IAAI;gBACF,gBAAgB,KAAK,IAAI;oBACvB,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;oBAC1C,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG;YACX,KAAK;YACL,eAAe,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC3D,aAAa,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;SACxD,CAAC;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClE,OAAO;YACP,wEAAwE;YACxE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC7E,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACnD;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAiB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI;YACJ,QAAQ;YACR,MAAM,EACJ,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpF,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,4FAA4F;IACpF,KAAK,CAAC,aAAa,CAAC,KAAiB,EAAE,OAAoB;QACjE,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YAC3C,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;gBACjG,6EAA6E;gBAC7E,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjD,SAAS;gBACX,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2FAA2F;IACnF,KAAK,CAAC,IAAI,CAAC,KAAiB;QAClC,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CACjH,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,SAA+B;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,QAAgC,EAChC,SAA+B;QAE/B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,uFAAuF;QACvF,0FAA0F;QAC1F,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAC1B,QAAgC,EAChC,SAA+B;QAE/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QACrG,MAAM,MAAM,GAAG;YACb,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,EAAE,CAAC;YACR,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC7G,CAAC,CAAC;IACL,CAAC;IAED,gHAAgH;IACxG,MAAM,CAAC,YAAY,CAAC,MAAoB,EAAE,QAAgC;QAChF,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAoB;QACnD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAClF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,4GAA4G;IACpG,KAAK,CAAC,WAAW,CAAC,IAAc;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC/E,OAAO,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,SAAiB;QACzD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3E,2FAA2F;YAC3F,sCAAsC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CACtE,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,yGAAyG;IAClG,KAAK,CAAC,KAAK,CAAC,UAAsB;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvD,2EAA2E;YAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;oBAChE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnF,CAAC,CAAC,QAAQ,CAAC;YACf,CAAC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;gBACrE,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,KAAmE;QAEnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC,CAAE,kBAA4B,CAAC,CAAC,CAAE,kBAA4B;SAC/F,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,SAAiB;QAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,wBAAwB,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAClC,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,EAC7D;YACE,KAAK;YACL,gBAAgB;YAChB,iFAAiF;YACjF,+EAA+E;YAC/E,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzC,KAAK;YACL,EAAE;YACF,kBAAkB,SAAS,iBAAiB;YAC5C,EAAE;YACF,sFAAsF;YACtF,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,4FAA4F;QAC5F,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAClC,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EACvE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAC1E,CAAC;IACJ,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,aAAa,CAAC,QAAkB;QAC5C,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAC,eAA8B;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,KAAK;QACjB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,mBAAmB,CAAC,CAAC;QACvD,MAAM,IAAI,GACR,KAAK,CAAC,KAAK,KAAK,IAAI;YAClB,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;YACzD,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,OAAO,EAAE,CAAC;YACR,KAAK;YACL,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACzC,aAAa,EAAE,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACnF,YAAY,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,+FAA+F;IACvF,KAAK,CAAC,aAAa,CACzB,SAAqB,EACrB,OAAwB;QAExB,wFAAwF;QACxF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,6EAA6E;QAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,0HAA0H;IAClH,KAAK,CAAC,iBAAiB,CAAC,MAAqB;QACnD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACxF,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,gFAAgF;IACxE,KAAK,CAAC,aAAa,CACzB,SAAqB,EACrB,OAAwB,EACxB,SAAsB;QAEtB,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YACjH,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;SAC7B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,mHAAmH;IAC3G,KAAK,CAAC,WAAW,CACvB,EAAE,QAAQ,EAAE,OAAO,EAAiB,EACpC,SAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACrF,CAAC,CAAC,CACH,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACrG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,sGAAsG;YACtG,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAC9C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAClH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,oHAAoH;IAC5G,KAAK,CAAC,YAAY,CAAC,SAAqB;QAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC;aACrC,MAAM,CAAC,cAAc,CAAC;aACtB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC9F,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,8GAA8G;IACtG,KAAK,CAAC,WAAW,CACvB,SAAwB,EACxB,SAAqB;QAErB,8FAA8F;QAC9F,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAe,EAAE,CAAC;QAEnC,kGAAkG;QAClG,MAAM,YAAY,GAAyC,EAAE,CAAC;QAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,SAAS;YACX,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;gBAC/D,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;YACnC,4GAA4G;YAC5G,MAAM,UAAU,GACd,WAAW,KAAK,SAAS;gBACvB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrF,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrF,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,UAAU,CAAC,IAAc,EAAE,MAAqB,EAAE,MAAc;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1E,OAAO;YACL,uFAAuF;YACvF,2DAA2D;YAC3D,SAAS,EAAE,SAAS,CAAC,KAAK;iBACvB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC9D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7C,kFAAkF;YAClF,OAAO,EAAE,SAAS,CAAC,KAAK;iBACrB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,YAAY,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC1E,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED,iGAAiG;IACzF,KAAK,CAAC,SAAS,CAAC,QAAyB,EAAE,IAAc;QAC/D,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1F,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,cAAc,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1D,CAAC,CAAC,CACH,CAAC;QACF,2FAA2F;QAC3F,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAc;QACvC,IAAI,CAAC;YACH,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAc;QACvC,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAc,EAAE,IAAiB;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,5 +1,8 @@
1
1
  export declare const SOURCE_DIRECTORY_NAME = "src";
2
2
  export declare const SPEC_DIRECTORY_NAME = "spec";
3
+ /** The extensions of the files in `spec/` read as documents, and the preview reloads on. */
4
+ export declare const SPEC_EXTENSIONS: string[];
5
+ export declare const METADATA_FILE_NAME = "APIMATIC-META.json";
3
6
  export declare const CONTENT_DIRECTORY_NAME = "content";
4
7
  export declare const STATIC_DIRECTORY_NAME = "static";
5
8
  export declare const OUTPUT_DIRECTORY_NAMES: {
@@ -1,5 +1,9 @@
1
1
  export const SOURCE_DIRECTORY_NAME = 'src';
2
2
  export const SPEC_DIRECTORY_NAME = 'spec';
3
+ /** The extensions of the files in `spec/` read as documents, and the preview reloads on. */
4
+ export const SPEC_EXTENSIONS = ['.json', '.yaml', '.yml'];
5
+ // The platform also reads other names that start `APIMATIC-META`, a legacy this CLI does not carry.
6
+ export const METADATA_FILE_NAME = 'APIMATIC-META.json';
3
7
  export const CONTENT_DIRECTORY_NAME = 'content';
4
8
  export const STATIC_DIRECTORY_NAME = 'static';
5
9
  export const OUTPUT_DIRECTORY_NAMES = {
@@ -1 +1 @@
1
- {"version":3,"file":"project-layout.js","sourceRoot":"","sources":["../../src/types/project-layout.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAC"}
1
+ {"version":3,"file":"project-layout.js","sourceRoot":"","sources":["../../src/types/project-layout.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE1D,oGAAoG;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAC"}
@@ -376,7 +376,7 @@
376
376
  "portal:generate": {
377
377
  "aliases": [],
378
378
  "args": {},
379
- "description": "Builds a documentation portal from the OpenAPI documents and Markdown pages in your 'src' directory.\n\nThe portal is built on your machine and written as static files for any static host, served at its root or, when 'portal.site.url' has a path such as 'https://example.com/docs', at that path. Configure it with 'src/apimatic.json', whose 'languages' block gives the portal a page for each SDK language, and whose 'plugin' block, or a 'pluginUrl' in its 'portal' block for a plugin hosted elsewhere, a page for the context plugin.",
379
+ "description": "Builds a documentation portal from the OpenAPI documents and Markdown pages in your 'src' directory.\n\nEach OpenAPI document at the top of 'src/spec' gets a section of the API reference, and the SDKs are built from one of them. To build the SDKs from several, put each in a folder of its own and set 'MergeConfiguration.MergeApis' to true in an 'APIMATIC-META.json' beside the folders; each folder then gets a section.\n\nThe portal is built on your machine and written as static files for any static host, served at its root or, when 'portal.site.url' has a path such as 'https://example.com/docs', at that path. Configure it with 'src/apimatic.json', whose 'languages' block gives the portal a page for each SDK language, and whose 'plugin' block, or a 'pluginUrl' in its 'portal' block for a plugin hosted elsewhere, a page for the context plugin.",
380
380
  "examples": [
381
381
  "\u001b[94mapimatic\u001b[39m \u001b[2mportal\u001b[22m \u001b[2mgenerate\u001b[22m",
382
382
  "\u001b[94mapimatic\u001b[39m \u001b[2mportal\u001b[22m \u001b[2mgenerate\u001b[22m \u001b[32m--input\u001b[39m=\u001b[2m./\u001b[22m \u001b[32m--destination\u001b[39m=\u001b[2m./portal\u001b[22m",
@@ -442,7 +442,7 @@
442
442
  "portal:serve": {
443
443
  "aliases": [],
444
444
  "args": {},
445
- "description": "Serves the portal described by 'src/apimatic.json' from your machine, reloading the browser as you edit the Markdown pages in 'src/content', reorder them in a 'nav.json', or change the 'portal', 'languages' or 'plugin' block of 'apimatic.json'.\n\nAdding a language or a 'plugin' block, adding or removing a page in 'src/content', creating 'src/static', changing which documents are in 'src/spec', or changing the path in 'portal.site.url', needs the preview restarted.\n\nNothing is written to disk; run 'apimatic portal generate' to produce the static files.",
445
+ "description": "Serves the portal described by 'src/apimatic.json' from your machine, reloading the browser as you edit the Markdown pages in 'src/content', reorder them in a 'nav.json', or change the 'portal', 'languages' or 'plugin' block of 'apimatic.json'.\n\nAdding a language or a 'plugin' block, adding or removing a page in 'src/content', creating 'src/static', changing which documents are in 'src/spec' or which folders its 'APIMATIC-META.json' merges, or changing the path in 'portal.site.url', needs the preview restarted.\n\nNothing is written to disk; run 'apimatic portal generate' to produce the static files.",
446
446
  "examples": [
447
447
  "\u001b[94mapimatic\u001b[39m \u001b[2mportal\u001b[22m \u001b[2mserve\u001b[22m",
448
448
  "\u001b[94mapimatic\u001b[39m \u001b[2mportal\u001b[22m \u001b[2mserve\u001b[22m \u001b[32m--input\u001b[39m=\u001b[2m./\u001b[22m \u001b[32m--port\u001b[39m=\u001b[2m23513\u001b[22m \u001b[32m--open\u001b[39m"
@@ -766,5 +766,5 @@
766
766
  ]
767
767
  }
768
768
  },
769
- "version": "2.0.0-beta.5"
769
+ "version": "2.0.0-beta.6"
770
770
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apimatic/cli",
3
3
  "description": "The official CLI for APIMatic.",
4
- "version": "2.0.0-beta.5",
4
+ "version": "2.0.0-beta.6",
5
5
  "author": "APIMatic",
6
6
  "bin": {
7
7
  "apimatic": "./bin/run.js"
@@ -7,6 +7,8 @@ export interface BuildPaths {
7
7
  base: string;
8
8
  /** Section slug -> absolute path of an OpenAPI document. */
9
9
  specs: Record<string, string>;
10
+ /** Absolute: the `spec/` every document sits in, with the files they refer to. */
11
+ specDir: string;
10
12
  /** Absolute path of the code samples, keyed by path then method; null when there are none. */
11
13
  codeSamples: string | null;
12
14
  /** Absolute. Always exists, and may be empty. */
@@ -1,24 +1,27 @@
1
- import path from 'node:path';
2
1
  import type { Plugin } from 'vite';
3
2
 
3
+ /** The extensions of the files a specification is read from and refers to: the CLI's own list, held to it by a test. */
4
+ export const SPEC_FILE_EXTENSIONS = ['.json', '.yaml', '.yml'];
5
+
4
6
  /**
5
- * Reloads the preview when a file beside a specification changes. The specifications are read
6
- * at run time rather than imported, so Vite's module graph never learns of them, and the
7
- * reference pages are built once per server module evaluation.
7
+ * Reloads the preview when a specification file in the specification directory changes, as a document may refer
8
+ * to parts kept in another folder there. The specifications are read at run time rather than imported, so Vite's
9
+ * module graph never learns of them, and the reference pages are built once per evaluation.
8
10
  */
9
- export function specReload(specs: Record<string, string>): Plugin {
10
- const directories = [...new Set(Object.values(specs).map((file) => path.posix.dirname(file)))];
11
- const isInSpecDirectory = (file: string) => directories.some((directory) => file.startsWith(`${directory}/`));
11
+ export function specReload(specDirectory: string): Plugin {
12
+ const isSpecFile = (file: string) =>
13
+ file.startsWith(`${specDirectory}/`) &&
14
+ SPEC_FILE_EXTENSIONS.some((extension) => file.toLowerCase().endsWith(extension));
12
15
 
13
16
  return {
14
17
  name: 'apimatic:spec-reload',
15
18
  apply: 'serve',
16
19
  configureServer(server) {
17
- server.watcher.add(directories);
20
+ server.watcher.add(specDirectory);
18
21
  },
19
22
  // Sent to each environment: the server runner re-evaluates every module, the browser reloads.
20
23
  hotUpdate({ file }) {
21
- if (!isInSpecDirectory(file)) return;
24
+ if (!isSpecFile(file)) return;
22
25
  this.environment.hot.send({ type: 'full-reload' });
23
26
  return [];
24
27
  }
@@ -37,7 +37,7 @@ export default defineConfig(async () => {
37
37
  }
38
38
  }
39
39
  }),
40
- specReload(paths.specs),
40
+ specReload(paths.specDir),
41
41
  tailwindcss(),
42
42
  tanstackStart({
43
43
  // Without a mask path the shell is rendered at "/" and no index.html is written;