@sanity/pkg-utils 2.0.0-beta.1 → 2.0.0-beta.3

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 (53) hide show
  1. package/dist/_chunks/{build-30149f1c.cjs → build-270096bd.cjs} +15 -7
  2. package/dist/_chunks/build-270096bd.cjs.map +1 -0
  3. package/dist/_chunks/{buildAction-7e75c8b7.cjs → buildAction-87a1a82b.cjs} +4 -4
  4. package/dist/_chunks/{buildAction-7e75c8b7.cjs.map → buildAction-87a1a82b.cjs.map} +1 -1
  5. package/dist/_chunks/{check-0f269395.cjs → check-5451f989.cjs} +28 -19
  6. package/dist/_chunks/check-5451f989.cjs.map +1 -0
  7. package/dist/_chunks/{checkAction-8b9632b6.cjs → checkAction-f67b99f8.cjs} +3 -3
  8. package/dist/_chunks/{checkAction-8b9632b6.cjs.map → checkAction-f67b99f8.cjs.map} +1 -1
  9. package/dist/_chunks/{index-db00ad50.cjs → index-a0acce24.cjs} +169 -65
  10. package/dist/_chunks/index-a0acce24.cjs.map +1 -0
  11. package/dist/_chunks/{resolveBuildContext-e938cee6.cjs → resolveBuildContext-2fe45294.cjs} +75 -52
  12. package/dist/_chunks/resolveBuildContext-2fe45294.cjs.map +1 -0
  13. package/dist/_chunks/{watch-73fd460f.cjs → watch-dbc7e975.cjs} +19 -11
  14. package/dist/_chunks/watch-dbc7e975.cjs.map +1 -0
  15. package/dist/_chunks/{watchAction-ffba41fd.cjs → watchAction-c5e16765.cjs} +4 -4
  16. package/dist/_chunks/{watchAction-ffba41fd.cjs.map → watchAction-c5e16765.cjs.map} +1 -1
  17. package/dist/cli.cjs +4 -4
  18. package/dist/index.cjs +19 -17
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +39 -16
  21. package/dist/index.js +505 -353
  22. package/dist/index.js.map +1 -1
  23. package/package.json +4 -4
  24. package/src/node/build.ts +16 -3
  25. package/src/node/check.ts +6 -4
  26. package/src/node/core/contexts/buildContext.ts +4 -8
  27. package/src/node/core/index.ts +0 -1
  28. package/src/node/core/pkg/index.ts +1 -0
  29. package/src/node/core/pkg/loadPkgWithReporting.ts +11 -20
  30. package/src/node/core/pkg/parseExports.ts +4 -2
  31. package/src/node/core/pkg/pkgExt.ts +38 -0
  32. package/src/node/core/pkg/validateExports.ts +4 -4
  33. package/src/node/index.ts +3 -2
  34. package/src/node/logger.ts +33 -0
  35. package/src/node/printPackageTree.ts +11 -11
  36. package/src/node/resolveBuildContext.ts +16 -26
  37. package/src/node/spinner.ts +3 -3
  38. package/src/node/tasks/dts/buildTypes.ts +7 -22
  39. package/src/node/tasks/dts/doExtract.ts +2 -2
  40. package/src/node/tasks/dts/dtsTask.ts +7 -4
  41. package/src/node/tasks/dts/printDiagnostic.ts +42 -0
  42. package/src/node/tasks/rollup/consoleSpy.ts +41 -0
  43. package/src/node/tasks/rollup/resolveRollupConfig.ts +21 -10
  44. package/src/node/tasks/rollup/rollupTask.ts +87 -51
  45. package/src/node/tasks/rollup/rollupWatchTask.ts +0 -1
  46. package/src/node/watch.ts +8 -4
  47. package/src/node/watchConfigFiles.ts +9 -8
  48. package/dist/_chunks/build-30149f1c.cjs.map +0 -1
  49. package/dist/_chunks/check-0f269395.cjs.map +0 -1
  50. package/dist/_chunks/index-db00ad50.cjs.map +0 -1
  51. package/dist/_chunks/resolveBuildContext-e938cee6.cjs.map +0 -1
  52. package/dist/_chunks/watch-73fd460f.cjs.map +0 -1
  53. package/src/node/core/constants.ts +0 -14
@@ -28,7 +28,7 @@ var pluginNodeResolve = require('@rollup/plugin-node-resolve');
28
28
  var replace = require('@rollup/plugin-replace');
29
29
  var terser = require('@rollup/plugin-terser');
30
30
  var esbuild = require('rollup-plugin-esbuild');
31
- var resolveBuildContext = require('./resolveBuildContext-e938cee6.cjs');
31
+ var resolveBuildContext = require('./resolveBuildContext-2fe45294.cjs');
32
32
  require('esbuild-register/dist/node');
33
33
  require('pkg-up');
34
34
  require('find-config');
@@ -80,13 +80,40 @@ function printExtractMessages(ctx, messages) {
80
80
  process.exit(1);
81
81
  }
82
82
  }
83
- const formatHost = {
84
- getCurrentDirectory: () => ts__default.default.sys.getCurrentDirectory(),
85
- getNewLine: () => ts__default.default.sys.newLine,
86
- getCanonicalFileName: ts__default.default.sys.useCaseSensitiveFileNames ? f => f : f => f.toLowerCase()
87
- };
83
+ function printDiagnostic(options) {
84
+ const {
85
+ cwd,
86
+ logger,
87
+ diagnostic
88
+ } = options;
89
+ if (diagnostic.file && diagnostic.start) {
90
+ const {
91
+ line,
92
+ character
93
+ } = ts__default.default.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
94
+ const message = ts__default.default.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
95
+ const file = path__default.default.relative(cwd, diagnostic.file.fileName);
96
+ const output = ["".concat(chalk__default.default.yellow(file), ":").concat(chalk__default.default.blue(line + 1), ":").concat(chalk__default.default.blue(character + 1), " - "), "".concat(chalk__default.default.gray("TS".concat(diagnostic.code, ":")), " ").concat(message)].join("");
97
+ if (diagnostic.category === ts__default.default.DiagnosticCategory.Error) {
98
+ logger.error(output);
99
+ }
100
+ if (diagnostic.category === ts__default.default.DiagnosticCategory.Warning) {
101
+ logger.warn(output);
102
+ }
103
+ if (diagnostic.category === ts__default.default.DiagnosticCategory.Message) {
104
+ logger.log(output);
105
+ }
106
+ if (diagnostic.category === ts__default.default.DiagnosticCategory.Suggestion) {
107
+ logger.log(output);
108
+ }
109
+ } else {
110
+ logger.log(ts__default.default.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
111
+ }
112
+ }
88
113
  async function buildTypes(options) {
89
114
  const {
115
+ cwd,
116
+ logger,
90
117
  outDir,
91
118
  tsconfig,
92
119
  strict = false
@@ -101,22 +128,16 @@ async function buildTypes(options) {
101
128
  const program = ts__default.default.createProgram(tsconfig.fileNames, compilerOptions);
102
129
  const emitResult = program.emit();
103
130
  const allDiagnostics = ts__default.default.getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
104
- allDiagnostics.forEach(diagnostic => {
105
- if (diagnostic.file && diagnostic.start) {
106
- const {
107
- line,
108
- character
109
- } = ts__default.default.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
110
- const message = ts__default.default.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
111
- console.log("".concat(diagnostic.file.fileName, " ").concat(line + 1, ":").concat(character + 1, "\n").concat(message));
112
- } else {
113
- console.log(ts__default.default.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
114
- }
115
- });
131
+ for (const diagnostic of allDiagnostics) {
132
+ printDiagnostic({
133
+ cwd,
134
+ logger,
135
+ diagnostic
136
+ });
137
+ }
116
138
  if (emitResult.emitSkipped) {
117
139
  const errors = allDiagnostics.filter(diag => diag.category === ts__default.default.DiagnosticCategory.Error);
118
140
  if (errors.length) {
119
- console.error(ts__default.default.formatDiagnostics(errors, formatHost));
120
141
  if (strict) {
121
142
  throw new Error("failed to compile TypeScript definitions");
122
143
  }
@@ -344,6 +365,7 @@ async function doExtract(ctx, task) {
344
365
  config,
345
366
  cwd,
346
367
  files,
368
+ logger,
347
369
  strict,
348
370
  ts
349
371
  } = ctx;
@@ -364,6 +386,7 @@ async function doExtract(ctx, task) {
364
386
  const tmpPath = path__default.default.resolve(outDir, "__tmp__");
365
387
  await buildTypes({
366
388
  cwd,
389
+ logger,
367
390
  outDir: tmpPath,
368
391
  strict,
369
392
  tsconfig: ts.config
@@ -406,7 +429,7 @@ async function doExtract(ctx, task) {
406
429
  };
407
430
  }
408
431
  const dtsTask = {
409
- name: (_ctx, task) => ["build type definitions", ...task.entries.map(entry => " ".concat(chalk__default.default.blue(entry.importId), ": ").concat(entry.sourcePath, " -> ").concat(entry.targetPath))].join("\n"),
432
+ name: (_ctx, task) => ["Build type definitions...", " entries:", ...task.entries.map(entry => [" - ".concat(chalk__default.default.cyan(entry.importId), ": "), "".concat(chalk__default.default.yellow(entry.sourcePath), " ").concat(chalk__default.default.gray("\u2192"), " ").concat(chalk__default.default.yellow(entry.targetPath))].join(""))].join("\n"),
410
433
  exec: (ctx, task) => {
411
434
  return new rxjs.Observable(observer => {
412
435
  doExtract(ctx, task).then(result => {
@@ -460,6 +483,53 @@ const dtsWatchTask = {
460
483
  }
461
484
  }
462
485
  };
486
+ function createConsoleSpy(options) {
487
+ const {
488
+ onRestored
489
+ } = options;
490
+ const original = {
491
+ log: console.log,
492
+ warn: console.warn,
493
+ error: console.error
494
+ };
495
+ const messages = [];
496
+ console.log = function () {
497
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
498
+ args[_key] = arguments[_key];
499
+ }
500
+ return messages.push({
501
+ type: "log",
502
+ args
503
+ });
504
+ };
505
+ console.warn = function () {
506
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
507
+ args[_key2] = arguments[_key2];
508
+ }
509
+ return messages.push({
510
+ type: "warn",
511
+ args
512
+ });
513
+ };
514
+ console.error = function () {
515
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
516
+ args[_key3] = arguments[_key3];
517
+ }
518
+ return messages.push({
519
+ type: "error",
520
+ args
521
+ });
522
+ };
523
+ return {
524
+ messages,
525
+ restore: () => {
526
+ console.log = original.log;
527
+ console.warn = original.warn;
528
+ console.error = original.error;
529
+ onRestored(messages);
530
+ }
531
+ };
532
+ }
463
533
  function resolveRollupConfig(ctx, buildTask) {
464
534
  var _ref2, _ref5, _ref6, _ref7, _ref8, _ref9;
465
535
  var _a, _b, _c;
@@ -472,13 +542,14 @@ function resolveRollupConfig(ctx, buildTask) {
472
542
  config,
473
543
  cwd,
474
544
  exports: _exports,
545
+ extMap,
475
546
  external,
476
547
  distPath,
477
548
  logger,
478
549
  pkg,
479
550
  ts
480
551
  } = ctx;
481
- const outputExt = resolveBuildContext.MODULE_EXT[pkg.type][format];
552
+ const outputExt = extMap[pkg.type][format];
482
553
  const minify = (_ref2 = config == null ? void 0 : config.minify) !== null && _ref2 !== void 0 ? _ref2 : true;
483
554
  const outDir = path__default.default.relative(cwd, distPath);
484
555
  const pathAliases = Object.fromEntries(Object.entries(((_a = ts.config) == null ? void 0 : _a.options.paths) || {}).map(_ref3 => {
@@ -581,10 +652,22 @@ function resolveRollupConfig(ctx, buildTask) {
581
652
  }
582
653
  },
583
654
  outputOptions: {
584
- chunkFileNames: () => "_chunks/[name]-[hash]".concat(outputExt),
655
+ chunkFileNames: () => {
656
+ const parts = outputExt.split(".");
657
+ if (parts.length === 3) {
658
+ return "_chunks/[name]-[hash].".concat(parts[2]);
659
+ }
660
+ return "_chunks/[name]-[hash]".concat(outputExt);
661
+ },
585
662
  compact: minify,
586
663
  dir: outDir,
587
- entryFileNames: () => "[name]".concat(outputExt),
664
+ entryFileNames: () => {
665
+ const parts = outputExt.split(".");
666
+ if (parts.length === 3) {
667
+ return "[name].".concat(parts[2]);
668
+ }
669
+ return "[name]".concat(outputExt);
670
+ },
588
671
  esModule: true,
589
672
  format,
590
673
  interop: "compat",
@@ -594,7 +677,7 @@ function resolveRollupConfig(ctx, buildTask) {
594
677
  };
595
678
  }
596
679
  const rollupTask = {
597
- name: (ctx, task) => "build javascript files (target ".concat(task.target.join(" + "), ", format ").concat(task.format, ")\n ").concat(task.entries.map(e => "".concat(chalk__default.default.blue(path__default.default.join(ctx.pkg.name, e.path)), ": ").concat(e.source, " -> ").concat(e.output)).join("\n ")),
680
+ name: (ctx, task) => ["Build javascript files...", " format: ".concat(chalk__default.default.yellow(task.format)), " target:", ...task.target.map(t => " - ".concat(chalk__default.default.yellow(t))), " entries:", ...task.entries.map(e => [" - ", "".concat(chalk__default.default.cyan(path__default.default.join(ctx.pkg.name, e.path)), ": "), "".concat(chalk__default.default.yellow(e.source), " ").concat(chalk__default.default.gray("\u2192"), " ").concat(chalk__default.default.yellow(e.output))].join(""))].join("\n"),
598
681
  exec: (ctx, task) => {
599
682
  return new rxjs.Observable(observer => {
600
683
  execPromise(ctx, task).then(result => {
@@ -605,57 +688,78 @@ const rollupTask = {
605
688
  },
606
689
  complete: () => {},
607
690
  error: (_ctx, _task, err) => {
608
- if (err instanceof Error) {
609
- console.log(err);
610
- }
691
+ console.error(err);
611
692
  }
612
693
  };
613
694
  async function execPromise(ctx, task) {
614
695
  const {
696
+ distPath,
615
697
  files,
616
- distPath
698
+ logger
617
699
  } = ctx;
618
700
  const outDir = path__default.default.relative(ctx.cwd, distPath);
619
- const _console = {
620
- log: console.log,
621
- warn: console.warn,
622
- error: console.error
623
- };
624
- const {
625
- inputOptions,
626
- outputOptions
627
- } = resolveRollupConfig(ctx, task);
628
- console.log = () => void 0;
629
- console.warn = () => void 0;
630
- console.error = () => void 0;
631
- const bundle = await rollup.rollup(_objectSpread(_objectSpread({}, inputOptions), {}, {
632
- onwarn(warning) {
633
- if (!warning.code || !["CIRCULAR_DEPENDENCY"].includes(warning.code)) {
634
- _console.warn.bind(console)(chalk__default.default.yellow("warn "), warning.message);
701
+ const consoleSpy = createConsoleSpy({
702
+ onRestored: messages => {
703
+ for (const msg of messages) {
704
+ const text = String(msg.args[0]);
705
+ if (msg.code === "CIRCULAR_DEPENDENCY") {
706
+ continue;
707
+ }
708
+ if (text.startsWith("Dynamic import can only")) {
709
+ continue;
710
+ }
711
+ if (text.startsWith("Sourcemap is likely to be incorrect")) {
712
+ continue;
713
+ }
714
+ if (msg.type === "log") {
715
+ logger.info(...msg.args);
716
+ }
717
+ if (msg.type === "warn") {
718
+ logger.warn(...msg.args);
719
+ }
720
+ if (msg.type === "error") {
721
+ logger.error(...msg.args);
722
+ }
635
723
  }
636
724
  }
637
- }));
638
- const {
639
- output
640
- } = await bundle.generate(outputOptions);
641
- console.log = _console.log;
642
- console.warn = _console.warn;
643
- console.error = _console.error;
644
- for (const chunkOrAsset of output) {
645
- if (chunkOrAsset.type === "asset") {
646
- files.push({
647
- type: "asset",
648
- path: path__default.default.resolve(outDir, chunkOrAsset.fileName)
649
- });
650
- } else {
651
- files.push({
652
- type: "chunk",
653
- path: path__default.default.resolve(outDir, chunkOrAsset.fileName)
654
- });
725
+ });
726
+ try {
727
+ const {
728
+ inputOptions,
729
+ outputOptions
730
+ } = resolveRollupConfig(ctx, task);
731
+ const bundle = await rollup.rollup(_objectSpread(_objectSpread({}, inputOptions), {}, {
732
+ onwarn(warning) {
733
+ consoleSpy.messages.push({
734
+ type: "warn",
735
+ code: warning.code,
736
+ args: [warning.message]
737
+ });
738
+ }
739
+ }));
740
+ const {
741
+ output
742
+ } = await bundle.generate(outputOptions);
743
+ for (const chunkOrAsset of output) {
744
+ if (chunkOrAsset.type === "asset") {
745
+ files.push({
746
+ type: "asset",
747
+ path: path__default.default.resolve(outDir, chunkOrAsset.fileName)
748
+ });
749
+ } else {
750
+ files.push({
751
+ type: "chunk",
752
+ path: path__default.default.resolve(outDir, chunkOrAsset.fileName)
753
+ });
754
+ }
655
755
  }
756
+ await bundle.write(outputOptions);
757
+ await bundle.close();
758
+ consoleSpy.restore();
759
+ } catch (err) {
760
+ consoleSpy.restore();
761
+ throw err;
656
762
  }
657
- await bundle.write(outputOptions);
658
- await bundle.close();
659
763
  }
660
764
  const rollupWatchTask = {
661
765
  name: (ctx, task) => "build javascript files (target ".concat(task.target.join(" + "), ", format ").concat(task.format, ")\n ").concat(task.entries.map(e => "".concat(chalk__default.default.blue(path__default.default.join(ctx.pkg.name, e.path)), ": ").concat(e.source, " -> ").concat(e.output)).join("\n ")),
@@ -724,4 +828,4 @@ exports.getExtractMessagesConfig = getExtractMessagesConfig;
724
828
  exports.rollupTask = rollupTask;
725
829
  exports.rollupWatchTask = rollupWatchTask;
726
830
  exports.watchTaskHandlers = watchTaskHandlers;
727
- //# sourceMappingURL=index-db00ad50.cjs.map
831
+ //# sourceMappingURL=index-a0acce24.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-a0acce24.cjs","sources":["../../src/node/printExtractMessages.ts","../../src/node/tasks/dts/printDiagnostic.ts","../../src/node/tasks/dts/buildTypes.ts","../../src/node/tasks/dts/DtsError.ts","../../src/node/tasks/dts/createApiExtractorConfig.ts","../../src/node/tasks/dts/createTSDocConfig.ts","../../src/node/tasks/dts/extractModuleBlocks.ts","../../src/node/tasks/dts/getExtractMessagesConfig.ts","../../src/node/tasks/dts/extractTypes.ts","../../src/node/tasks/dts/doExtract.ts","../../src/node/tasks/dts/dtsTask.ts","../../src/node/tasks/dts/dtsWatchTask.ts","../../src/node/tasks/rollup/consoleSpy.ts","../../src/node/tasks/rollup/resolveRollupConfig.ts","../../src/node/tasks/rollup/rollupTask.ts","../../src/node/tasks/rollup/rollupWatchTask.ts","../../src/node/tasks/index.ts"],"sourcesContent":["import path from 'path'\nimport {ExtractorMessage} from '@microsoft/api-extractor'\nimport chalk from 'chalk'\nimport {BuildContext} from './core'\n\nexport function printExtractMessages(ctx: BuildContext, messages: ExtractorMessage[]): void {\n const {cwd, logger} = ctx\n\n const warnings = messages.filter((msg) => msg.logLevel === 'warning')\n\n if (warnings.length) {\n logger.log()\n }\n\n for (const msg of warnings) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n if (msg.messageId === 'TS6307') {\n // Ignore this warning:\n // > TS6307: <filename> is not in project file list.\n // > Projects must list all files or use an 'include' pattern.\n continue\n }\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.yellow('warning')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n const errors: ExtractorMessage[] = messages.filter((msg) => msg.logLevel === 'error')\n\n if (!warnings.length && errors.length) {\n logger.log('')\n }\n\n for (const msg of errors) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.red('error')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join('')\n )\n }\n\n if (errors.length) {\n process.exit(1)\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport ts from 'typescript'\nimport {Logger} from '../../logger'\n\nexport function printDiagnostic(options: {\n cwd: string\n logger: Logger\n diagnostic: ts.Diagnostic\n}): void {\n const {cwd, logger, diagnostic} = options\n\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n const file = path.relative(cwd, diagnostic.file.fileName)\n\n const output = [\n `${chalk.yellow(file)}:${chalk.blue(line + 1)}:${chalk.blue(character + 1)} - `,\n `${chalk.gray(`TS${diagnostic.code}:`)} ${message}`,\n ].join('')\n\n if (diagnostic.category === ts.DiagnosticCategory.Error) {\n logger.error(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Warning) {\n logger.warn(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Message) {\n logger.log(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {\n logger.log(output)\n }\n } else {\n logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n}\n","import ts from 'typescript'\nimport {Logger} from '../../logger'\nimport {printDiagnostic} from './printDiagnostic'\n\n/** @internal */\nexport async function buildTypes(options: {\n cwd: string\n logger: Logger\n outDir: string\n tsconfig: ts.ParsedCommandLine\n strict: boolean\n}): Promise<void> {\n const {cwd, logger, outDir, tsconfig, strict = false} = options\n\n const compilerOptions: ts.CompilerOptions = {\n ...tsconfig.options,\n declaration: true,\n declarationDir: outDir,\n emitDeclarationOnly: true,\n noEmit: false,\n outDir,\n }\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\n for (const diagnostic of allDiagnostics) {\n printDiagnostic({cwd, logger, diagnostic})\n }\n\n if (emitResult.emitSkipped) {\n const errors = allDiagnostics.filter((diag) => diag.category === ts.DiagnosticCategory.Error)\n\n if (errors.length) {\n if (strict) {\n throw new Error('failed to compile TypeScript definitions')\n }\n }\n }\n}\n","import {ExtractorMessage} from '@microsoft/api-extractor'\n\n/** @internal */\nexport class DtsError extends Error {\n messages: ExtractorMessage[]\n\n constructor(message: string, messages: ExtractorMessage[]) {\n super(message)\n this.messages = messages\n }\n}\n","import path from 'path'\nimport {IConfigFile, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nexport function createApiExtractorConfig(options: {\n distPath: string\n exportPath: string\n filePath: string\n messages: IExtractorMessagesConfig\n projectFolder: string\n mainEntryPointFilePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {\n distPath,\n exportPath,\n filePath,\n messages,\n projectFolder,\n mainEntryPointFilePath,\n tsconfigPath,\n } = options\n\n return {\n apiReport: {\n enabled: false,\n reportFileName: '<unscopedPackageName>.api.md',\n },\n // bundledPackages: [],\n compiler: {\n tsconfigFilePath: tsconfigPath,\n },\n docModel: {\n enabled: false,\n apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`),\n },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(distPath, filePath),\n // betaTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-beta.d.ts')),\n // publicTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-public.d.ts')),\n },\n tsdocMetadata: {\n enabled: false,\n },\n messages,\n mainEntryPointFilePath,\n projectFolder,\n }\n}\n","import {readFile} from 'fs/promises'\nimport {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json')\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n }))\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n","import type {File} from '@babel/types'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {parse, print} from 'recast'\nimport typeScriptParser from 'recast/parsers/typescript'\nimport {Program} from 'typescript'\n\n/**\n * A workaround to find all module blocks in extract TS files.\n * @internal\n * */\nexport async function extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const program = extractResult.compilerState.program as Program\n const moduleBlocks: string[] = []\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(...extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\n/** @internal */\nexport function extractModuleBlocks(fileContent: string): string[] {\n const ast = parse(fileContent, {\n parser: typeScriptParser,\n }) as File\n\n return ast.program.body\n .filter((node) => node.type === 'TSModuleDeclaration')\n .map((node) => print(node).code)\n}\n","import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport {PkgRuleLevel, PkgConfigOptions} from '../../core'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel\n ) {\n const r = rules?.[key]\n\n return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n","import fs from 'fs/promises'\nimport path from 'path'\nimport {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport mkdirp from 'mkdirp'\nimport prettier from 'prettier'\nimport {PkgConfigOptions, BuildFile} from '../../core'\nimport {createApiExtractorConfig} from './createApiExtractorConfig'\nimport {createTSDocConfig} from './createTSDocConfig'\nimport {extractModuleBlocksFromTypes} from './extractModuleBlocks'\nimport {getExtractMessagesConfig} from './getExtractMessagesConfig'\n\nexport async function extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tmpPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tmpPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n const moduleBlocks = await extractModuleBlocksFromTypes({\n extractResult: extractorResult,\n tsOutDir: tmpPath,\n })\n\n const code = [typesBuf.toString(), ...moduleBlocks].join('\\n\\n')\n\n await fs.writeFile(\n typesPath,\n prettier.format(code, {\n ...prettierConfig,\n filepath: typesPath,\n })\n )\n\n // Add to `files` in context\n files.push({\n type: 'types',\n path: typesPath,\n })\n\n return {extractorResult, messages}\n}\n","import path from 'path'\nimport {promisify} from 'util'\nimport {ExtractorMessage} from '@microsoft/api-extractor'\nimport rimrafCallback from 'rimraf'\nimport {BuildContext} from '../../core'\nimport {buildTypes} from './buildTypes'\nimport {DtsError} from './DtsError'\nimport {extractTypes} from './extractTypes'\nimport {DtsResult, DtsTask, DtsWatchTask} from './types'\n\nconst rimraf = promisify(rimrafCallback)\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function doExtract(\n ctx: BuildContext,\n task: DtsTask | DtsWatchTask\n): Promise<DtsResult> {\n const {config, cwd, files, logger, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await buildTypes({cwd, logger, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts')\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n const filePath = path.relative(outDir, targetPath)\n const result = await extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n distPath: outDir,\n exportPath,\n files,\n filePath: filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tmpPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsTask} from './types'\n\n/** @internal */\nexport const dtsTask: TaskHandler<DtsTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `Build type definitions...`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.sourcePath)} ${chalk.gray('→')} ${chalk.yellow(entry.targetPath)}`,\n ].join('')\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsWatchTask} from './types'\n\n/** @internal */\nexport const dtsWatchTask: TaskHandler<DtsWatchTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","/* eslint-disable no-console */\n\nexport interface ConsoleSpyMsg {\n type: 'log' | 'warn' | 'error'\n code?: string\n args: unknown[]\n}\n\nexport interface ConsoleSpy {\n messages: ConsoleSpyMsg[]\n restore: () => void\n}\n\nexport function createConsoleSpy(options: {\n onRestored: (messages: ConsoleSpyMsg[]) => void\n}): ConsoleSpy {\n const {onRestored} = options\n\n const original = {\n log: console.log,\n warn: console.warn,\n error: console.error,\n }\n\n const messages: ConsoleSpyMsg[] = []\n\n console.log = (...args: unknown[]) => messages.push({type: 'log', args})\n console.warn = (...args: unknown[]) => messages.push({type: 'warn', args})\n console.error = (...args: unknown[]) => messages.push({type: 'error', args})\n\n return {\n messages,\n restore: () => {\n console.log = original.log\n console.warn = original.warn\n console.error = original.error\n\n onRestored(messages)\n },\n }\n}\n","import path from 'path'\nimport alias from '@rollup/plugin-alias'\nimport {getBabelOutputPlugin} from '@rollup/plugin-babel'\nimport commonjs from '@rollup/plugin-commonjs'\nimport json from '@rollup/plugin-json'\nimport {nodeResolve} from '@rollup/plugin-node-resolve'\nimport replace from '@rollup/plugin-replace'\nimport terser from '@rollup/plugin-terser'\nimport {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\nimport {BuildContext, DEFAULT_BROWSERSLIST_QUERY, resolveConfigProperty} from '../../core'\nimport {RollupTask, RollupWatchTask} from '../types'\n\nexport interface RollupConfig {\n inputOptions: InputOptions\n outputOptions: OutputOptions\n}\n\n/** @internal */\nexport function resolveRollupConfig(\n ctx: BuildContext,\n buildTask: RollupTask | RollupWatchTask\n): RollupConfig {\n const {format, runtime, target} = buildTask\n const {config, cwd, exports: _exports, extMap, external, distPath, logger, pkg, ts} = ctx\n const outputExt = extMap[pkg.type][format]\n const minify = config?.minify ?? true\n const outDir = path.relative(cwd, distPath)\n\n const pathAliases = Object.fromEntries(\n Object.entries(ts.config?.options.paths || {}).map(([key, val]) => {\n return [key, path.resolve(cwd, ts.config?.options.baseUrl || '.', val[0])]\n })\n )\n\n const entries = buildTask.entries.map((entry) => {\n return {\n ...entry,\n name: path.relative(outDir, entry.output).replace(/\\.[^/.]+$/, ''),\n }\n }, {})\n\n const exportIds =\n _exports && Object.keys(_exports).map((exportPath) => path.join(pkg.name, exportPath))\n\n const sourcePaths = _exports && Object.values(_exports).map((e) => path.resolve(cwd, e.source))\n\n const replacements = Object.fromEntries(\n Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)])\n )\n\n const defaultPlugins = [\n replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {...replacements}\n : {\n 'process.env.PKG_FILE_PATH': (arg) => {\n const sourcePath = './' + path.relative(cwd, arg)\n const entry = entries.find((e) => e.source === sourcePath)\n\n if (!entry) {\n // eslint-disable-next-line no-console\n console.error(`could not find source entry: ${sourcePath}`)\n\n return 'null'\n }\n\n return JSON.stringify(\n path.relative(cwd, path.resolve(outDir, entry.name + outputExt))\n )\n },\n 'process.env.PKG_FORMAT': JSON.stringify(format),\n 'process.env.PKG_RUNTIME': JSON.stringify(runtime),\n 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),\n ...replacements,\n }),\n },\n }),\n alias({\n entries: {...pathAliases},\n }),\n nodeResolve({\n // mainFields: ['module', 'jsnext', 'main'],\n browser: runtime === 'browser',\n // exportConditions: [runtime === 'node' ? 'node' : 'browser'],\n extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],\n preferBuiltins: true, // runtime === 'node',\n }),\n commonjs({\n esmExternals: false,\n extensions: ['.js'],\n // include: /\\/node_modules\\//,\n // requireReturnsDefault: 'namespace',\n }),\n json(),\n esbuild({\n jsx: config?.jsx ?? 'automatic',\n jsxFactory: config?.jsxFactory ?? 'createElement',\n jsxFragment: config?.jsxFragment ?? 'Fragment',\n jsxImportSource: config?.jsxImportSource ?? 'react',\n target,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n }),\n getBabelOutputPlugin({\n babelrc: false,\n plugins: ['@babel/plugin-proposal-object-rest-spread'],\n presets: [['@babel/preset-env', {targets: pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY}]],\n }),\n minify &&\n terser({\n output: {\n comments: (_node, comment) => {\n const text = comment.value\n const type = comment.type\n\n // Check if this is a multiline comment\n if (type == 'comment2') {\n // Keep licensing comments\n return /@preserve|@license|@cc_on/i.test(text)\n }\n\n return false\n },\n },\n }),\n ].filter(Boolean) as Plugin[]\n\n const userPlugins = config?.rollup?.plugins\n\n const plugins = Array.isArray(userPlugins)\n ? defaultPlugins.concat(userPlugins)\n : resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)\n\n return {\n inputOptions: {\n context: cwd,\n\n external: (id, importer) => {\n // Check if the id is a self-referencing import\n if (exportIds?.includes(id)) {\n return true\n }\n\n // Check if the id is a file path that points to an exported source file\n if (importer && (id.startsWith('.') || id.startsWith('/'))) {\n const idPath = path.resolve(path.dirname(importer), id)\n\n if (sourcePaths?.includes(idPath)) {\n logger.warn(\n `detected self-referencing import – treating as external: ${path.relative(\n cwd,\n idPath\n )}`\n )\n\n return true\n }\n }\n\n const idParts = id.split('/')\n\n const name = idParts[0].startsWith('@') ? `${idParts[0]}/${idParts[1]}` : idParts[0]\n\n if (name && external.includes(name)) {\n return true\n }\n\n return false\n },\n\n input: entries.reduce<{[entryAlias: string]: string}>((acc, entry) => {\n return {...acc, [entry.name]: entry.source}\n }, {}),\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => {\n const parts = outputExt.split('.')\n\n if (parts.length === 3) {\n return `_chunks/[name]-[hash].${parts[2]}`\n }\n\n return `_chunks/[name]-[hash]${outputExt}`\n },\n compact: minify,\n dir: outDir,\n entryFileNames: () => {\n const parts = outputExt.split('.')\n\n if (parts.length === 3) {\n return `[name].${parts[2]}`\n }\n\n return `[name]${outputExt}`\n },\n esModule: true,\n format,\n interop: 'compat',\n minifyInternalExports: minify,\n sourcemap: config?.sourcemap ?? true,\n },\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {rollup} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {BuildContext} from '../../core'\nimport {RollupTask, TaskHandler} from '../types'\nimport {createConsoleSpy} from './consoleSpy'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupTask: TaskHandler<RollupTask> = {\n name: (ctx, task) =>\n [\n `Build javascript files...`,\n ` format: ${chalk.yellow(task.format)}`,\n ` target:`,\n ...task.target.map((t) => ` - ${chalk.yellow(t)}`),\n ` entries:`,\n ...task.entries.map((e) =>\n [\n ` - `,\n `${chalk.cyan(path.join(ctx.pkg.name, e.path))}: `,\n `${chalk.yellow(e.source)} ${chalk.gray('→')} ${chalk.yellow(e.output)}`,\n ].join('')\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n execPromise(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n // eslint-disable-next-line no-console\n console.error(err)\n },\n}\n\nasync function execPromise(ctx: BuildContext, task: RollupTask) {\n const {distPath, files, logger} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n // Prevent rollup from printing directly to the console\n const consoleSpy = createConsoleSpy({\n onRestored: (messages) => {\n for (const msg of messages) {\n const text = String(msg.args[0])\n\n if (msg.code === 'CIRCULAR_DEPENDENCY') {\n continue // ignore\n }\n\n if (text.startsWith('Dynamic import can only')) {\n continue // ignore\n }\n\n if (text.startsWith('Sourcemap is likely to be incorrect')) {\n continue // ignore\n }\n\n if (msg.type === 'log') {\n logger.info(...msg.args)\n }\n\n if (msg.type === 'warn') {\n logger.warn(...msg.args)\n }\n\n if (msg.type === 'error') {\n logger.error(...msg.args)\n }\n }\n },\n })\n\n try {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup({\n ...inputOptions,\n onwarn(warning) {\n consoleSpy.messages.push({\n type: 'warn',\n code: warning.code,\n args: [warning.message],\n })\n },\n })\n\n // generate output specific code in-memory\n // you can call this function multiple times on the same bundle object\n const {output} = await bundle.generate(outputOptions)\n\n for (const chunkOrAsset of output) {\n if (chunkOrAsset.type === 'asset') {\n files.push({\n type: 'asset',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n } else {\n files.push({\n type: 'chunk',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n }\n }\n\n // or write the bundle to disk\n await bundle.write(outputOptions)\n\n // closes the bundle\n await bundle.close()\n\n // Restore console\n consoleSpy.restore()\n } catch (err) {\n // Restore console\n consoleSpy.restore()\n throw err\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport {RollupWatcherEvent, RollupWatchOptions, watch as rollupWatch} from 'rollup'\nimport {Observable} from 'rxjs'\nimport {RollupWatchTask, TaskHandler} from '../types'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupWatchTask: TaskHandler<RollupWatchTask, RollupWatcherEvent> = {\n name: (ctx, task) =>\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n exec: (ctx, task) => {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n return new Observable((observer) => {\n const watchOptions: RollupWatchOptions = {\n ...inputOptions,\n output: outputOptions,\n }\n\n const watcher = rollupWatch(watchOptions)\n\n watcher.on('event', (event) => {\n observer.next(event)\n })\n\n return () => {\n watcher.close()\n }\n })\n },\n complete: (ctx, task, event) => {\n const {logger} = ctx\n\n if (event.code === 'BUNDLE_END') {\n logger.success(\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`\n )\n logger.log('')\n\n return\n }\n\n if (event.code === 'BUNDLE_START') {\n return\n }\n\n if (event.code === 'END') {\n return\n }\n\n if (event.code === 'ERROR') {\n logger.error(event.code, event)\n\n return\n }\n\n if (event.code === 'START') {\n return\n }\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof Error) {\n logger.log(err)\n }\n },\n}\n","import {dtsTask, dtsWatchTask} from './dts'\nimport {rollupTask, rollupWatchTask} from './rollup'\nimport {BuildTaskHandlers, WatchTaskHandlers} from './types'\n\nexport * from './types'\nexport * from './dts'\nexport * from './rollup'\n\n/** @internal */\nexport const buildTaskHandlers: BuildTaskHandlers = {\n 'build:dts': dtsTask,\n 'build:js': rollupTask,\n}\n\n/** @internal */\nexport const watchTaskHandlers: WatchTaskHandlers = {\n 'watch:dts': dtsWatchTask,\n 'watch:js': rollupWatchTask,\n}\n"],"names":["printExtractMessages","ctx","messages","cwd","logger","warnings","filter","msg","logLevel","length","log","sourceFilePath","path","relative","messageId","chalk","cyan","yellow","sourceFileLine","default","sourceFileColumn","gray","text","join","errors","red","process","exit","printDiagnostic","options","diagnostic","file","start","line","character","ts","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","fileName","output","blue","code","category","DiagnosticCategory","Error","error","Warning","warn","Message","Suggestion","buildTypes","outDir","tsconfig","strict","compilerOptions","declaration","declarationDir","emitDeclarationOnly","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","concat","diagnostics","emitSkipped","diag","DtsError","constructor","createApiExtractorConfig","distPath","exportPath","filePath","projectFolder","mainEntryPointFilePath","tsconfigPath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","resolve","dtsRollup","untrimmedFilePath","tsdocMetadata","createTSDocConfig","opts","customTags","tsDocBaseBuf","readFile","require","tsDocBaseConfig","parse","toString","tagDefinitions","map","t","tagName","name","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","extractModuleBlocksFromTypes","tsOutDir","extractResult","compilerState","moduleBlocks","allProgramFiles","getSourceFiles","sourceFiles","sourceFile","includes","push","extractModuleBlocks","fileContent","ast","parser","typeScriptParser","body","node","type","print","LOG_LEVELS","info","off","getExtractMessagesConfig","rules","ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","extractTypes","files","projectPath","sourceTypesPath","tmpPath","tsdocConfigFile","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesPath","typesBuf","fs","prettierConfig","prettier","resolveConfig","mkdirp","dirname","writeFile","format","filepath","rimraf","promisify","rimrafCallback","doExtract","task","_a","_b","config","configPath","results","rootDir","entry","entries","sourcePath","replace","targetPath","result","extract","some","dtsTask","_ctx","importId","exec","Observable","observer","then","next","complete","catch","err","_task","dtsWatchTask","createConsoleSpy","onRestored","original","console","args","restore","resolveRollupConfig","buildTask","_c","runtime","target","exports","_exports","extMap","external","pkg","outputExt","minify","pathAliases","Object","fromEntries","paths","val","baseUrl","exportIds","keys","sourcePaths","values","e","source","replacements","define","JSON","stringify","defaultPlugins","preventAssignment","arg","find","env","PKG_VERSION","version","alias","nodeResolve","browser","extensions","preferBuiltins","commonjs","esmExternals","json","esbuild","jsx","jsxFactory","jsxFragment","jsxImportSource","getBabelOutputPlugin","babelrc","plugins","presets","targets","browserslist","DEFAULT_BROWSERSLIST_QUERY","terser","comments","_node","comment","value","test","Boolean","userPlugins","rollup","Array","isArray","resolveConfigProperty","inputOptions","context","id","importer","startsWith","idPath","idParts","split","input","reduce","acc","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","parts","compact","dir","entryFileNames","esModule","interop","minifyInternalExports","sourcemap","rollupTask","execPromise","consoleSpy","String","bundle","onwarn","warning","generate","chunkOrAsset","write","close","rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","success","buildTaskHandlers","watchTaskHandlers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKgB,SAAAA,oBAAA,CAAqBC,KAAmBC,QAAoC,EAAA;EACpF,MAAA;IAACC,GAAK;IAAAC;EAAU,CAAA,GAAAH,GAAA;EAEtB,MAAMI,WAAWH,QAAS,CAAAI,MAAA,CAAQC,GAAQ,IAAAA,GAAA,CAAIC,aAAa,SAAS,CAAA;EAEpE,IAAIH,SAASI,MAAQ,EAAA;IACnBL,MAAA,CAAOM,GAAI,EAAA;EACb;EAEA,KAAA,MAAWH,OAAOF,QAAU,EAAA;IAC1B,MAAMM,iBAAiBJ,GAAI,CAAAI,cAAA,IAAkBC,aAAAA,CAAAA,QAAKC,QAAS,CAAAV,GAAA,EAAKI,IAAII,cAAc,CAAA;IAE9E,IAAAJ,GAAA,CAAIO,cAAc,QAAU,EAAA;MAI9B;IACF;IAEOV,MAAA,CAAAM,GAAA,CACL,WACKK,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAAL,cAAA,IAAkB,GAAG,CAAA,cAC/BI,cAAAA,CAAAA,QAAME,MAAO,CAAAV,GAAA,CAAIW,cAAc,CAAK,cAAAH,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAV,GAAA,CAAIa,gBAAgB,CAAA,gBACnEL,cAAAA,CAAAA,QAAME,MAAO,CAAA,SAAS,eAAKF,cAAAA,CAAAA,OAAM,CAAAM,IAAA,CAAKd,IAAIO,SAAS,CAAA,SACzDP,GAAI,CAAAe,IAAA,EACJ,IAAA,CACF,CAAEC,KAAK,EAAE,CAAA,CACX;EACF;EAEA,MAAMC,SAA6BtB,QAAS,CAAAI,MAAA,CAAQC,GAAQ,IAAAA,GAAA,CAAIC,aAAa,OAAO,CAAA;EAEpF,IAAI,CAACH,QAAA,CAASI,MAAU,IAAAe,MAAA,CAAOf,MAAQ,EAAA;IACrCL,MAAA,CAAOM,IAAI,EAAE,CAAA;EACf;EAEA,KAAA,MAAWH,OAAOiB,MAAQ,EAAA;IACxB,MAAMb,iBAAiBJ,GAAI,CAAAI,cAAA,IAAkBC,aAAAA,CAAAA,QAAKC,QAAS,CAAAV,GAAA,EAAKI,IAAII,cAAc,CAAA;IAE3EP,MAAA,CAAAM,GAAA,CACL,WACKK,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAAL,cAAA,IAAkB,GAAG,CAAA,cAC/BI,cAAAA,CAAAA,QAAME,MAAO,CAAAV,GAAA,CAAIW,cAAc,CAAK,cAAAH,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAV,GAAA,CAAIa,gBAAgB,CAAA,gBACnEL,cAAAA,CAAAA,QAAMU,GAAI,CAAA,OAAO,eAAKV,cAAAA,CAAAA,OAAM,CAAAM,IAAA,CAAKd,IAAIO,SAAS,CAAA,SACpDP,GAAI,CAAAe,IAAA,EACJ,IAAA,CACF,CAAEC,KAAK,EAAE,CAAA,CACX;EACF;EAEA,IAAIC,OAAOf,MAAQ,EAAA;IACjBiB,OAAA,CAAQC,KAAK,CAAC,CAAA;EAChB;AACF;ACrDO,SAASC,gBAAgBC,OAIvB,EAAA;EACP,MAAM;IAAC1B,GAAA;IAAKC,MAAQ;IAAA0B;EAAA,CAAc,GAAAD,OAAA;EAE9B,IAAAC,UAAA,CAAWC,IAAQ,IAAAD,UAAA,CAAWE,KAAO,EAAA;IACjC,MAAA;MAACC;MAAMC;IAAS,CAAA,GAAIC,oBAAGC,6BAA8B,CAAAN,UAAA,CAAWC,IAAM,EAAAD,UAAA,CAAWE,KAAK,CAAA;IAC5F,MAAMK,OAAU,GAAAF,WAAAA,CAAAA,OAAA,CAAGG,4BAA6B,CAAAR,UAAA,CAAWS,aAAa,IAAI,CAAA;IAE5E,MAAMR,OAAOnB,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAASV,GAAK,EAAA2B,UAAA,CAAWC,KAAKS,QAAQ,CAAA;IAExD,MAAMC,MAAS,GAAA,WACV1B,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAc,IAAI,CAAK,cAAAhB,cAAA,CAAAI,OAAA,CAAMuB,IAAK,CAAAT,IAAA,GAAO,CAAC,CAAA,cAAKlB,sBAAM,CAAA2B,IAAA,CAAKR,YAAY,CAAC,CAAA,oBACtEnB,cAAM,CAAAI,OAAA,CAAAE,IAAA,aAAUS,UAAA,CAAWa,WAAY,cAAAN,OAAA,EAC5C,CAAEd,KAAK,EAAE,CAAA;IAET,IAAIO,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBC,KAAO,EAAA;MACvD1C,MAAA,CAAO2C,MAAMN,MAAM,CAAA;IACrB;IAEA,IAAIX,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBG,OAAS,EAAA;MACzD5C,MAAA,CAAO6C,KAAKR,MAAM,CAAA;IACpB;IAEA,IAAIX,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBK,OAAS,EAAA;MACzD9C,MAAA,CAAOM,IAAI+B,MAAM,CAAA;IACnB;IAEA,IAAIX,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBM,UAAY,EAAA;MAC5D/C,MAAA,CAAOM,IAAI+B,MAAM,CAAA;IACnB;EAAA,CACK,MAAA;IACLrC,MAAA,CAAOM,IAAIyB,mBAAG,CAAAG,4BAAA,CAA6BR,UAAW,CAAAS,WAAA,EAAa,IAAI,CAAC,CAAA;EAC1E;AACF;ACpCA,eAAsBa,WAAWvB,OAMf,EAAA;EAChB,MAAM;IAAC1B,GAAK;IAAAC,MAAA;IAAQiD;IAAQC,QAAU;IAAAC,MAAA,GAAS;EAAS,CAAA,GAAA1B,OAAA;EAExD,MAAM2B,eAAsC,mCACvCF,QAAS,CAAAzB,OAAA;IACZ4B,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAAL,MAAA;IAChBM,mBAAqB,EAAA,IAAA;IACrBC,MAAQ,EAAA,KAAA;IACRP;EAAA,EACF;EAEA,MAAMQ,OAAU,GAAA1B,WAAAA,CAAAA,OAAA,CAAG2B,aAAc,CAAAR,QAAA,CAASS,WAAWP,eAAe,CAAA;EAE9D,MAAAQ,UAAA,GAAaH,QAAQI,IAAK,EAAA;EAEhC,MAAMC,iBAAiB/B,WAAG,CAAAhB,OAAA,CAAAgD,qBAAA,CAAsBN,OAAO,CAAE,CAAAO,MAAA,CAAOJ,WAAWK,WAAW,CAAA;EAEtF,KAAA,MAAWvC,cAAcoC,cAAgB,EAAA;IACvCtC,eAAA,CAAgB;MAACzB,GAAA;MAAKC,MAAQ;MAAA0B;IAAW,CAAA,CAAA;EAC3C;EAEA,IAAIkC,WAAWM,WAAa,EAAA;IACpB,MAAA9C,MAAA,GAAS0C,eAAe5D,MAAO,CAACiE,QAASA,IAAK,CAAA3B,QAAA,KAAaT,WAAG,CAAAhB,OAAA,CAAA0B,kBAAA,CAAmBC,KAAK,CAAA;IAE5F,IAAItB,OAAOf,MAAQ,EAAA;MACjB,IAAI8C,MAAQ,EAAA;QACJ,MAAA,IAAIT,MAAM,0CAA0C,CAAA;MAC5D;IACF;EACF;AACF;ACvCO,MAAM0B,iBAAiB1B,KAAM,CAAA;EAGlC2B,WAAA,CAAYpC,SAAiBnC,QAA8B,EAAA;IACzD,KAAA,CAAMmC,OAAO,CAAA;IACb,IAAA,CAAKnC,QAAW,GAAAA,QAAA;EAClB;AACF;ACPO,SAASwE,yBAAyB7C,OAQzB,EAAA;EACR,MAAA;IACJ8C,QAAA;IACAC,UAAA;IACAC,QAAA;IACA3E,QAAA;IACA4E,aAAA;IACAC,sBAAA;IACAC;EACE,CAAA,GAAAnD,OAAA;EAEG,OAAA;IACLoD,SAAW,EAAA;MACTC,OAAS,EAAA,KAAA;MACTC,cAAgB,EAAA;IAClB,CAAA;IAEAC,QAAU,EAAA;MACRC,gBAAkB,EAAAL;IACpB,CAAA;IACAM,QAAU,EAAA;MACRJ,OAAS,EAAA,KAAA;MACTK,eAAiB,EAAA3E,aAAA,CAAAO,OAAA,CAAKqE,OAAQ,CAAAb,QAAA,YAAaC,UAAqB;IAClE,CAAA;IACAa,SAAW,EAAA;MACTP,OAAS,EAAA,IAAA;MACTQ,iBAAmB,EAAA9E,aAAA,CAAAO,OAAA,CAAKqE,OAAQ,CAAAb,QAAA,EAAUE,QAAQ;IAGpD,CAAA;IACAc,aAAe,EAAA;MACbT,OAAS,EAAA;IACX,CAAA;IACAhF,QAAA;IACA6E,sBAAA;IACAD;EAAA,CACF;AACF;ACpCA,eAAsBc,kBAAkBC,IAEC,EAAA;EACjC,MAAA;IAACC;EAAc,CAAA,GAAAD,IAAA;EAEjB,IAAAC,UAAA,CAAWrF,WAAW,CAAG,EAAA;IACpB,OAAA,KAAA,CAAA;EACT;EAEA,MAAMsF,eAAe,MAAMC,EAAA,CAAAA,QAAA,CACzBC,OAAA,CAAQT,QAAQ,kDAAkD,CAAA,CACpE;EAIA,MAAMU,eAAkB,GAAAC,WAAA,CAAAA,KAAA,CAAMJ,YAAa,CAAAK,QAAA,EAAU,CAAA;EAGrD,MAAMC,cAAkB,GAAA,CAAAH,eAAA,CAAgBG,cAAkB,IAAA,EAAI,EAAAjC,MAAA,CAC5D0B,UAAA,CAAWQ,GAAI,CAACC,CAAO,KAAA;IACrBC,OAAA,aAAaD,CAAE,CAAAE,IAAA,CAAA;IACfC,YAAYH,CAAE,CAAAG,UAAA;IACdC,eAAeJ,CAAE,CAAAI;EAAA,CACjB,CAAA,CAAA,CACJ;EAIA,MAAMC,cAAiB,qBAAIV,eAAA,CAAgBU,cAAc,CAAA;EAEzD,KAAA,MAAWC,aAAaf,UAAY,EAAA;IACnBc,cAAA,YAAIC,UAAUJ,IAAU,EAAA,GAAA,IAAA;EACzC;EAEA,OAAOK,WAAAA,CAAAA,gBAAgBC,cAAe,iCACjCb,eAAA;IACHc,cAAgB,EAAA,KAAA;IAChBX,cAAA;IACAO;EAAA,GACD;AACH;AC1CA,eAAsBK,4BAA6B,OAM7B;EAAA,IAN6B;IACjDC,QAAA;IACAC;EACF,CAGsB;EACd,MAAAtD,OAAA,GAAUsD,cAAcC,aAAc,CAAAvD,OAAA;EAC5C,MAAMwD,eAAyB,EAAC;EAGhC,MAAMC,eAAkB,GAAA,CAAC,GAAGzD,OAAA,CAAQ0D,gBAAgB,CAAA;EAG9C,MAAAC,WAAA,GAAcF,gBAAgBhH,MAAO,CAACmH,cAAeA,UAAW,CAAAjF,QAAA,CAASkF,QAAS,CAAAR,QAAQ,CAAC,CAAA;EAEjG,KAAA,MAAWO,cAAcD,WAAa,EAAA;IACpC,IAAIC,UAAW,CAAAnG,IAAA,CAAKoG,QAAS,CAAA,gBAAgB,CAAG,EAAA;MAC9CL,YAAA,CAAaM,IAAK,CAAA,GAAGC,mBAAoB,CAAAH,UAAA,CAAWnG,IAAI,CAAC,CAAA;IAC3D;EACF;EAEO,OAAA+F,YAAA;AACT;AAGO,SAASO,oBAAoBC,WAA+B,EAAA;EAC3D,MAAAC,GAAA,GAAM3B,aAAM0B,WAAa,EAAA;IAC7BE,MAAQ,EAAAC,yBAAA,CAAA7G;EAAA,CACT,CAAA;EAED,OAAO2G,IAAIjE,OAAQ,CAAAoE,IAAA,CAChB3H,MAAO,CAAC4H,QAASA,IAAK,CAAAC,IAAA,KAAS,qBAAqB,CAAA,CACpD7B,IAAK4B,IAAA,IAASE,MAAM,CAAAA,KAAA,CAAAF,IAAI,EAAEvF,IAAI,CAAA;AACnC;ACzCA,MAAM0F,UAAsD,GAAA;EAC1DtF,KAAO,EAAA,OAAA;EACPuF,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,MAAA;EACLtF,IAAM,EAAA;AACR,CAAA;AAGO,SAASuF,yBAAyB3G,OAEZ,EAAA;EACrB,MAAA;IAAC4G;EAAS,CAAA,GAAA5G,OAAA;EAEP,SAAA6G,cAAA,CACPC,KACAC,YACA,EAAA;IACA,MAAMC,IAAIJ,KAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAE,GAAA,CAAA;IAEV,OAAAE,CAAA,GAAIR,UAAW,CAAAQ,CAAA,CAAA,GAAKD,YAAgB,IAAA,SAAA;EAC9C;EAEO,OAAA;IACLE,wBAA0B,EAAA;MACxB3H,OAAS,EAAA;QACPX,QAAU,EAAA;MACZ;IACF,CAAA;IAEAuI,yBAA2B,EAAA;MACzB5H,OAAS,EAAA;QACPX,QAAU,EAAA,SAAA;QACVwI,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrBxI,QAAA,EAAUkI,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EM,kBAAoB,EAAA;MACtB,CAAA;MAEA,8BAAgC,EAAA;QAC9BxI,QAAA,EAAUkI,cAAe,CAAA,8BAAA,EAAgC,OAA4B,CAAA;QACrFM,kBAAoB,EAAA;MACtB,CAAA;MAEA,gCAAkC,EAAA;QAChCxI,QAAA,EAAUkI,eAAe,gCAAgC,CAAA;QACzDM,kBAAoB,EAAA;MACtB,CAAA;MAEA,wBAA0B,EAAA;QACxBxI,QAAA,EAAUkI,cAAe,CAAA,wBAAA,EAA0B,OAA4B,CAAA;QAC/EM,kBAAoB,EAAA;MACtB,CAAA;MAEA,0BAA4B,EAAA;QAC1BxI,QAAU,EAAA,MAAA;QACVwI,kBAAoB,EAAA;MACtB;IACF,CAAA;IAEAC,qBAAuB,EAAA;MACrB9H,OAAS,EAAA;QACPX,QAAU,EAAA,SAAA;QACVwI,kBAAoB,EAAA;MACtB,CAAA;MAEA,+BAAiC,EAAA;QAC/BxI,QAAA,EAAUkI,cAAe,CAAA,+BAAA,EAAiC,SAA8B,CAAA;QACxFM,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrBxI,QAAA,EAAUkI,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EM,kBAAoB,EAAA;MACtB,CAAA;MAEA,uBAAyB,EAAA;QACvBxI,QAAA,EAAUkI,cAAe,CAAA,uBAAA,EAAyB,MAA2B,CAAA;QAC7EM,kBAAoB,EAAA;MACtB;IACF;EAAA,CACF;AACF;ACtEA,eAAsBE,aAAarH,OAY2C,EAAA;EACtE,MAAA;IACJiE,UAAA;IACAnB,QAAA;IACAC,UAAA;IACAuE,KAAA;IACAtE,QAAA;IACAuE,WAAA;IACAX,KAAA;IACAY,eAAA;IACAC,OAAA;IACAtE;EACE,CAAA,GAAAnD,OAAA;EAEE,MAAA0H,eAAA,GAAkB,MAAM3D,iBAAkB,CAAA;IAC9CE,UAAA,EAAYA,cAAc;EAAC,CAC5B,CAAA;EAEK,MAAA0D,eAAA,GAAmCC,6BAAgBC,OAAQ,CAAA;IAC/DC,cAAcjF,wBAAyB,CAAA;MACrCC,QAAA;MACAC,UAAA;MACAC,QAAA;MACA3E,QAAU,EAAAsI,wBAAA,CAAyB;QAACC;OAAM,CAAA;MAC1C3D,aAAe,EAAAsE,WAAA;MACfrE,sBAAwB,EAAAsE,eAAA;MACxBrE;IAAA,CACD,CAAA;IACD4E,oBAAsB,EAAA,KAAA,CAAA;IACtBL,eAAA;IACAM,mBAAqB,EAAAjJ,aAAA,CAAAO,OAAA,CAAKqE,OAAQ,CAAA4D,WAAA,EAAa,cAAc;EAAA,CAC9D,CAAA;EAED,MAAMlJ,WAA+B,EAAC;EAGhC,MAAA4J,eAAA,GAAkBC,YAAAA,CAAAA,SAAU,CAAAC,MAAA,CAAOR,eAAiB,EAAA;IAExDS,UAAY,EAAA,IAAA;IAEZC,mBAAqB,EAAA,IAAA;IAErBC,gBAAgB9H,OAA2B,EAAA;MACzCnC,QAAA,CAASyH,KAAKtF,OAAO,CAAA;MACrBA,OAAA,CAAQ+H,OAAU,GAAA,IAAA;IACpB;EAAA,CACD,CAAA;EAED,MAAMC,SAAY,GAAAzJ,aAAA,CAAAO,OAAA,CAAKqE,OAAQ,CAAAb,QAAA,EAAUE,QAAQ,CAAA;EACjD,MAAMyF,QAAW,GAAA,MAAMC,WAAAA,CAAAA,OAAG,CAAAvE,QAAA,CAASqE,SAAS,CAAA;EAC5C,MAAMG,cAAiB,GAAA,MAAMC,iBAAAA,CAAAA,OAAS,CAAAC,aAAA,CAAcL,SAAS,CAAA;EAE7D,MAAMM,eAAO,CAAAxJ,OAAA,CAAAP,aAAA,CAAAO,OAAA,CAAKyJ,OAAQ,CAAAP,SAAS,CAAC,CAAA;EAE9B,MAAAhD,YAAA,GAAe,MAAMJ,4BAA6B,CAAA;IACtDE,aAAe,EAAA2C,eAAA;IACf5C,QAAU,EAAAoC;EAAA,CACX,CAAA;EAEK,MAAA3G,IAAA,GAAO,CAAC2H,QAAS,CAAAlE,QAAA,IAAY,GAAGiB,YAAY,CAAE,CAAA9F,IAAA,CAAK,MAAM,CAAA;EAE/D,MAAMgJ,WAAG,CAAApJ,OAAA,CAAA0J,SAAA,CACPR,SAAA,EACAI,iBAAA,CAAAtJ,OAAA,CAAS2J,OAAOnI,IAAM,kCACjB6H,cAAA;IACHO,QAAU,EAAAV;EAAA,GACX,CACH;EAGAlB,KAAA,CAAMxB,IAAK,CAAA;IACTQ,IAAM,EAAA,OAAA;IACNvH,IAAM,EAAAyJ;EAAA,CACP,CAAA;EAEM,OAAA;IAACP;IAAiB5J;GAAQ;AACnC;AC9FA,MAAM8K,MAAA,GAASC,IAAAA,CAAAA,UAAUC,uBAAAA,CAAAA,OAAc,CAAA;AAOjB,eAAAC,SAAA,CACpBlL,KACAmL,IACoB,EAAA;EApBtB,IAAAC,EAAA,EAAAC,EAAA;EAqBE,MAAM;IAACC,MAAQ;IAAApL,GAAA;IAAKgJ;IAAO/I,MAAQ;IAAAmD,MAAA;IAAQpB;EAAM,CAAA,GAAAlC,GAAA;EAEjD,IAAI,CAACkC,EAAA,CAAGoJ,MAAU,IAAA,CAACpJ,GAAGqJ,UAAY,EAAA;IACzB,OAAA;MAACrD,MAAM,KAAO;MAAAjI,QAAA,EAAU,EAAI;MAAAuL,OAAA,EAAS;KAAE;EAChD;EAEA,MAAM;IAACpI,MAAQ;IAAAqI,OAAA,GAAUvL;EAAG,CAAA,GAAIgC,GAAGoJ,MAAO,CAAA1J,OAAA;EAE1C,IAAI,CAACwB,MAAQ,EAAA;IACL,MAAA,IAAIP,MAAM,mDAAmD,CAAA;EACrE;EAEA,MAAMwG,OAAU,GAAA1I,aAAA,CAAAO,OAAA,CAAKqE,OAAQ,CAAAnC,MAAA,EAAQ,SAAS,CAAA;EAExC,MAAAD,UAAA,CAAW;IAACjD,GAAA;IAAKC,MAAQ;IAAAiD,MAAA,EAAQiG;IAAS/F,MAAQ;IAAAD,QAAA,EAAUnB,EAAG,CAAAoJ;EAAO,CAAA,CAAA;EAC5E,MAAMrL,WAA+B,EAAC;EAEtC,MAAMuL,UAAoD,EAAC;EAEhD,KAAA,MAAAE,KAAA,IAASP,KAAKQ,OAAS,EAAA;IAChC,MAAMhH,UAAa,GAAA+G,KAAA,CAAM/G,UAAe,KAAA,GAAA,GAAM,YAAY+G,KAAM,CAAA/G,UAAA;IAEhE,MAAMyE,kBAAkBzI,aAAAA,CAAAA,OAAK,CAAA4E,OAAA,CAC3B8D,OAAA,EACA1I,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAAS6K,OAAS,EAAA9K,aAAAA,CAAAA,OAAA,CAAK4E,OAAQ,CAAArF,GAAA,EAAKwL,KAAM,CAAAE,UAAU,CAAC,CAAA,CAAEC,OAAQ,CAAA,OAAA,EAAS,OAAO,CAAA,CACtF;IAEA,MAAMC,UAAa,GAAAnL,aAAAA,CAAAA,OAAA,CAAK4E,OAAQ,CAAArF,GAAA,EAAKwL,MAAMI,UAAU,CAAA;IACrD,MAAMlH,QAAW,GAAAjE,aAAA,CAAAO,OAAA,CAAKN,QAAS,CAAAwC,MAAA,EAAQ0I,UAAU,CAAA;IAC3C,MAAAC,MAAA,GAAS,MAAM9C,YAAa,CAAA;MAChCpD,UAAA,EAAA,CAAYuF,EAAQ,GAAAE,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAU,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAZ,EAAA,CAAAvF,UAAA;MAC7B3F,GAAA;MACAwE,QAAU,EAAAtB,MAAA;MACVuB,UAAA;MACAuE,KAAA;MACAtE,QAAA;MACAuE,WAAa,EAAAjJ,GAAA;MACbsI,KAAA,EAAA,CAAO6C,EAAQ,GAAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAU,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAX,EAAA,CAAA7C,KAAA;MACxBY,eAAA;MACAC,OAAA;MACAtE,cAAcpE,aAAK,CAAAO,OAAA,CAAAqE,OAAA,CAAQrF,GAAK,EAAAgC,EAAA,CAAGqJ,cAAc,eAAe;IAAA,CACjE,CAAA;IAEQtL,QAAA,CAAAyH,IAAA,CAAK,GAAGqE,MAAA,CAAO9L,QAAQ,CAAA;IAE5B,IAAA8L,MAAA,CAAO9L,SAASgM,IAAK,CAAC3L,OAAQA,GAAI,CAAAC,QAAA,KAAa,OAAO,CAAG,EAAA;MAC3D,MAAMwK,OAAO1B,OAAO,CAAA;MAEpB,MAAM,IAAI9E,QAAA,CAAS,0CAA4C,EAAAwH,MAAA,CAAO9L,QAAQ,CAAA;IAChF;IAEQuL,OAAA,CAAA9D,IAAA,CAAK;MAACkE,UAAA,EAAYjL,aAAK,CAAAO,OAAA,CAAAqE,OAAA,CAAQrF,GAAK,EAAAwL,KAAA,CAAME,UAAU,CAAA;MAAGhH,QAAU,EAAAkH;IAAW,CAAA,CAAA;EACtF;EAEA,MAAMf,OAAO1B,OAAO,CAAA;EAEpB,OAAO;IAACnB,IAAA,EAAM,KAAO;IAAAjI,QAAA;IAAUuL;EAAO,CAAA;AACxC;ACrEO,MAAMU,OAA2C,GAAA;EACtD1F,IAAA,EAAM,CAAC2F,IAAA,EAAMhB,IACX,KAAA,4CAGE,GAAGA,KAAKQ,OAAQ,CAAAtF,GAAA,CAAKqF,KACnB,IAAA,iBACW5K,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAA2K,KAAA,CAAMU,QAAQ,CAAA,mBAC/BtL,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAA0K,KAAA,CAAME,UAAU,CAAA,cAAK9K,cAAM,CAAAI,OAAA,CAAAE,IAAA,CAAK,QAAG,CAAA,cAAKN,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAO0K,MAAMI,UAAU,CAAA,EACvF,CAAExK,KAAK,EAAE,CAAA,CACX,CACF,CAAEA,KAAK,IAAI,CAAA;EACb+K,IAAA,EAAM,CAACrM,GAAA,EAAKmL,IAAS,KAAA;IACZ,OAAA,IAAImB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClCrB,SAAA,CAAUlL,GAAK,EAAAmL,IAAI,CAChB,CAAAqB,IAAA,CAAMT,MAAW,IAAA;QAChBQ,QAAA,CAASE,KAAKV,MAAM,CAAA;QACpBQ,QAAA,CAASG,QAAS,EAAA;MAAA,CACnB,CAAA,CACAC,KAAM,CAACC,GAAQ,IAAA;QACdL,QAAA,CAASzJ,MAAM8J,GAAG,CAAA;MAAA,CACnB,CAAA;IAAA,CACJ,CAAA;EACH,CAAA;EACAF,QAAU,EAAA,CAAC1M,GAAK,EAAA6M,KAAA,EAAOd,MAAW,KAAA;IACXhM,oBAAA,CAAAC,GAAA,EAAK+L,OAAO9L,QAAQ,CAAA;EAC3C,CAAA;EACA6C,KAAO,EAAA,CAAC9C,GAAK,EAAA6M,KAAA,EAAOD,GAAQ,KAAA;IACpB,MAAA;MAACzM;IAAU,CAAA,GAAAH,GAAA;IAEjB,IAAI4M,eAAerI,QAAU,EAAA;MACNxE,oBAAA,CAAAC,GAAA,EAAK4M,IAAI3M,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAW2M,eAAe/J,KAAO,EAAA;MAC/B1C,MAAA,CAAO2C,MAAM8J,GAAG,CAAA;IAClB;EACF;AACF,CAAA;ACpCO,MAAME,YAAqD,GAAA;EAChEtG,IAAA,EAAM,CAAC2F,IAAA,EAAMhB,IACX,KAAA,2BAEE,GAAGA,KAAKQ,OAAQ,CAAAtF,GAAA,CACbqF,KACC,qBAAU5K,cAAAA,CAAAA,OAAM,CAAA2B,IAAA,CAAKiJ,MAAMU,QAAQ,CAAA,eAAMV,KAAM,CAAAE,UAAA,iBAAiBF,KAAM,CAAAI,UAAA,CAAA,CAC1E,CACF,CAAExK,KAAK,IAAI,CAAA;EACb+K,IAAA,EAAM,CAACrM,GAAA,EAAKmL,IAAS,KAAA;IACZ,OAAA,IAAImB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClCrB,SAAA,CAAUlL,GAAK,EAAAmL,IAAI,CAChB,CAAAqB,IAAA,CAAMT,MAAW,IAAA;QAChBQ,QAAA,CAASE,KAAKV,MAAM,CAAA;QACpBQ,QAAA,CAASG,QAAS,EAAA;MAAA,CACnB,EACAC,KAAM,CAACC,OAAQL,QAAS,CAAAzJ,KAAA,CAAM8J,GAAG,CAAC,CAAA;IAAA,CACtC,CAAA;EACH,CAAA;EACAF,QAAU,EAAA,CAAC1M,GAAK,EAAA6M,KAAA,EAAOd,MAAW,KAAA;IAC1B,MAAA;MAAC5L;IAAU,CAAA,GAAAH,GAAA;IAEID,oBAAA,CAAAC,GAAA,EAAK+L,OAAO9L,QAAQ,CAAA;IAEzCE,MAAA,CAAO6C,KAAK,4DAA4D,CAAA;IACxE7C,MAAA,CAAOM,GAAI,EAAA;EACb,CAAA;EACAqC,KAAO,EAAA,CAAC9C,GAAK,EAAA6M,KAAA,EAAOD,GAAQ,KAAA;IACpB,MAAA;MAACzM;IAAU,CAAA,GAAAH,GAAA;IAEjB,IAAI4M,eAAerI,QAAU,EAAA;MACNxE,oBAAA,CAAAC,GAAA,EAAK4M,IAAI3M,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAW2M,eAAe/J,KAAO,EAAA;MAC/B1C,MAAA,CAAO2C,MAAM8J,GAAG,CAAA;IAClB;EACF;AACF,CAAA;AChCO,SAASG,iBAAiBnL,OAElB,EAAA;EACP,MAAA;IAACoL;EAAc,CAAA,GAAApL,OAAA;EAErB,MAAMqL,QAAW,GAAA;IACfxM,KAAKyM,OAAQ,CAAAzM,GAAA;IACbuC,MAAMkK,OAAQ,CAAAlK,IAAA;IACdF,OAAOoK,OAAQ,CAAApK;EAAA,CACjB;EAEA,MAAM7C,WAA4B,EAAC;EAE3BiN,OAAA,CAAAzM,GAAA,GAAM;IAAA,kCAAI0M,IAAoB;MAApBA,IAAoB;IAAA;IAAA,OAAAlN,QAAA,CAASyH,KAAK;MAACQ,IAAA,EAAM,KAAO;MAAAiF;IAAA,CAAK,CAAA;EAAA;EAC/DD,OAAA,CAAAlK,IAAA,GAAO;IAAA,mCAAImK,IAAoB;MAApBA,IAAoB;IAAA;IAAA,OAAAlN,QAAA,CAASyH,KAAK;MAACQ,IAAA,EAAM,MAAQ;MAAAiF;IAAA,CAAK,CAAA;EAAA;EACjED,OAAA,CAAApK,KAAA,GAAQ;IAAA,mCAAIqK,IAAoB;MAApBA,IAAoB;IAAA;IAAA,OAAAlN,QAAA,CAASyH,KAAK;MAACQ,IAAA,EAAM,OAAS;MAAAiF;IAAA,CAAK,CAAA;EAAA;EAEpE,OAAA;IACLlN,QAAA;IACAmN,SAAS,MAAM;MACbF,OAAA,CAAQzM,MAAMwM,QAAS,CAAAxM,GAAA;MACvByM,OAAA,CAAQlK,OAAOiK,QAAS,CAAAjK,IAAA;MACxBkK,OAAA,CAAQpK,QAAQmK,QAAS,CAAAnK,KAAA;MAEzBkK,UAAA,CAAW/M,QAAQ,CAAA;IACrB;EAAA,CACF;AACF;ACrBgB,SAAAoN,mBAAA,CACdrN,KACAsN,SACc,EAAA;EAAA;EAtBhB,IAAAlC,EAAA,EAAAC,EAAA,EAAAkC,EAAA;EAuBE,MAAM;IAAC1C,MAAA;IAAQ2C,OAAS;IAAAC;EAAA,CAAU,GAAAH,SAAA;EAC5B,MAAA;IAAChC,MAAQ;IAAApL,GAAA;IAAKwN,OAAS,EAAAC,QAAA;IAAUC,MAAQ;IAAAC,QAAA;IAAUnJ,QAAU;IAAAvE,MAAA;IAAQ2N,GAAK;IAAA5L;EAAA,CAAM,GAAAlC,GAAA;EAChF,MAAA+N,SAAA,GAAYH,MAAO,CAAAE,GAAA,CAAI5F,IAAM,CAAA,CAAA2C,MAAA,CAAA;EAC7B,MAAAmD,MAAA,YAAS1C,iCAAQ0C,MAAU,yCAAA,IAAA;EACjC,MAAM5K,MAAS,GAAAzC,aAAA,CAAAO,OAAA,CAAKN,QAAS,CAAAV,GAAA,EAAKwE,QAAQ,CAAA;EAE1C,MAAMuJ,cAAcC,MAAO,CAAAC,WAAA,CACzBD,MAAO,CAAAvC,OAAA,CAAA,CAAA,CAAQP,EAAG,GAAAlJ,EAAA,CAAAoJ,MAAA,KAAH,mBAAW1J,OAAQ,CAAAwM,KAAA,KAAS,EAAE,EAAE/H,GAAI,CAAA,SAAgB;IAAA,IAAf,CAACqC,GAAA,EAAK2F,GAAG,CAAM;IA9BvEjD,IAAAA,GAAAA;IA+BM,OAAO,CAAC1C,GAAA,EAAK/H,aAAAA,CAAAA,OAAK,CAAA4E,OAAA,CAAQrF,OAAKkL,GAAA,GAAAlJ,EAAA,CAAGoJ,MAAH,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAF,IAAWxJ,OAAQ,CAAA0M,OAAA,KAAW,GAAK,EAAAD,GAAA,CAAI,EAAE,CAAC,CAAA;EAAA,CAC1E,CAAA,CACH;EAEA,MAAM1C,OAAU,GAAA2B,SAAA,CAAU3B,OAAQ,CAAAtF,GAAA,CAAKqF,KAAU,IAAA;IACxC,uCACFA,KAAA;MACHlF,IAAA,EAAM7F,aAAAA,CAAAA,QAAKC,QAAS,CAAAwC,MAAA,EAAQsI,MAAMlJ,MAAM,CAAA,CAAEqJ,OAAQ,CAAA,WAAA,EAAa,EAAE;IAAA;EAErE,CAAA,EAAG,CAAE,CAAA,CAAA;EAEL,MAAM0C,SACJ,GAAAZ,QAAA,IAAYO,MAAO,CAAAM,IAAA,CAAKb,QAAQ,CAAE,CAAAtH,GAAA,CAAK1B,UAAA,IAAehE,aAAAA,CAAAA,OAAK,CAAAW,IAAA,CAAKwM,GAAI,CAAAtH,IAAA,EAAM7B,UAAU,CAAC,CAAA;EAEvF,MAAM8J,WAAc,GAAAd,QAAA,IAAYO,MAAO,CAAAQ,MAAA,CAAOf,QAAQ,CAAE,CAAAtH,GAAA,CAAKsI,CAAA,IAAMhO,aAAAA,CAAAA,OAAK,CAAA4E,OAAA,CAAQrF,GAAK,EAAAyO,CAAA,CAAEC,MAAM,CAAC,CAAA;EAE9F,MAAMC,eAAeX,MAAO,CAAAC,WAAA,CAC1BD,OAAOvC,OAAQ,CAAA,CAAAL,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQwD,WAAU,EAAE,EAAEzI,GAAI,CAAA;IAAA,IAAC,CAACqC,GAAK,EAAA2F,GAAG;WAAM,CAAC3F,GAAA,EAAKqG,KAAKC,SAAU,CAAAX,GAAG,CAAC,CAAC;EAAA,EAAA,CACrF;EAEA,MAAMY,cAAiB,GAAA,CACrBpD,wBAAQ,CAAA;IACNqD,iBAAmB,EAAA,IAAA;IACnBR,MAAQ,oBACFZ,GAAI,CAAAtH,IAAA,KAAS,wCACTqI;MAEF,2BAAA,EAA8BM,GAAQ,IAAA;QACpC,MAAMvD,UAAa,GAAA,IAAA,GAAOjL,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAASV,KAAKiP,GAAG,CAAA;QAChD,MAAMzD,QAAQC,OAAQ,CAAAyD,IAAA,CAAMT,CAAM,IAAAA,CAAA,CAAEC,WAAWhD,UAAU,CAAA;QAEzD,IAAI,CAACF,KAAO,EAAA;UAEFwB,OAAA,CAAApK,KAAA,wCAAsC8I,UAAY,EAAA;UAEnD,OAAA,MAAA;QACT;QAEA,OAAOmD,IAAK,CAAAC,SAAA,CACVrO,qBAAA,CAAKC,SAASV,GAAK,EAAAS,qBAAA,CAAK4E,QAAQnC,MAAQ,EAAAsI,KAAA,CAAMlF,IAAO,GAAAuH,SAAS,CAAC,CAAA,CACjE;MACF,CAAA;MACA,wBAAA,EAA0BgB,IAAK,CAAAC,SAAA,CAAUnE,MAAM,CAAA;MAC/C,yBAAA,EAA2BkE,IAAK,CAAAC,SAAA,CAAUxB,OAAO,CAAA;MACjD,2BAA2BuB,IAAK,CAAAC,SAAA,CAAUvN,QAAQ4N,GAAI,CAAAC,WAAA,IAAexB,IAAIyB,OAAO;IAAA,GAC7EV,YAAA,CACL;EACN,CACD,CAAA,EACDW,sBAAM,CAAA;IACJ7D,OAAA,oBAAasC,WAAW;EAAA,CACzB,CAAA,EACDwB,6BAAY,CAAA;IAEVC,SAASlC,OAAY,KAAA,SAAA;IAErBmC,YAAY,CAAC,MAAA,EAAQ,QAAQ,KAAO,EAAA,MAAA,EAAQ,SAAS,OAAO,CAAA;IAC5DC,cAAgB,EAAA;EAAA,CACjB,CAAA,EACDC,yBAAS,CAAA;IACPC,YAAc,EAAA,KAAA;IACdH,UAAA,EAAY,CAAC,KAAK;EAAA,CAGnB,CAAA,EACDI,qBAAK,EAAA,EACLC,wBAAQ,CAAA;IACNC,GAAA,WAAK3E,iCAAQ2E,GAAO,yCAAA,WAAA;IACpBC,UAAA,WAAY5E,iCAAQ4E,UAAc,yCAAA,eAAA;IAClCC,WAAA,WAAa7E,iCAAQ6E,WAAe,yCAAA,UAAA;IACpCC,eAAA,WAAiB9E,iCAAQ8E,eAAmB,yCAAA,OAAA;IAC5C3C,MAAA;IACApK,QAAA,EAAUrD,GAAI,CAAAkC,EAAA,CAAGqJ,UAAc,IAAA;EAAA,CAChC,CAAA,EACD8E,gCAAqB,CAAA;IACnBC,OAAS,EAAA,KAAA;IACTC,OAAA,EAAS,CAAC,2CAA2C,CAAA;IACrDC,OAAA,EAAS,CAAC,CAAC,mBAAqB,EAAA;MAACC,SAAS3C,GAAI,CAAA4C,YAAA,IAAgBC,mBAA0B,CAAAA;IAAA,CAAC,CAAC;EAAA,CAC3F,CAAA,EACD3C,UACE4C,eAAAA,CAAAA,OAAO,CAAA;IACLpO,MAAQ,EAAA;MACNqO,QAAA,EAAU,CAACC,KAAA,EAAOC,OAAY,KAAA;QAC5B,MAAM1P,OAAO0P,OAAQ,CAAAC,KAAA;QACrB,MAAM9I,OAAO6I,OAAQ,CAAA7I,IAAA;QAGrB,IAAIA,QAAQ,UAAY,EAAA;UAEf,OAAA,4BAAA,CAA6B+I,KAAK5P,IAAI,CAAA;QAC/C;QAEO,OAAA,KAAA;MACT;IACF;EAAA,CACD,CAAA,CACL,CAAEhB,OAAO6Q,OAAO,CAAA;EAEV,MAAAC,WAAA,GAAA,CAAc9F,EAAQ,GAAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAA8F,MAAA,KAAR,IAAgB,GAAA,KAAA,CAAA,GAAA/F,EAAA,CAAAkF,OAAA;EAEpC,MAAMA,OAAU,GAAAc,KAAA,CAAMC,OAAQ,CAAAH,WAAW,IACrClC,cAAe,CAAA9K,MAAA,CAAOgN,WAAW,CAAA,GACjCI,mBAAsB,CAAAA,qBAAA,CAAA,CAAAhE,EAAA,GAAAjC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQ8F,MAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA7D,EAAA,CAAgBgD,SAAStB,cAAc,CAAA;EAE1D,OAAA;IACLuC,YAAc,EAAA;MACZC,OAAS,EAAAvR,GAAA;MAET2N,QAAA,EAAU,CAAC6D,EAAA,EAAIC,QAAa,KAAA;QAEtB,IAAApD,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW9G,SAASiK,EAAK,CAAA,EAAA;UACpB,OAAA,IAAA;QACT;QAGI,IAAAC,QAAA,KAAaD,GAAGE,UAAW,CAAA,GAAG,KAAKF,EAAG,CAAAE,UAAA,CAAW,GAAG,CAAI,CAAA,EAAA;UAC1D,MAAMC,SAASlR,aAAK,CAAAO,OAAA,CAAAqE,OAAA,CAAQ5E,aAAAA,CAAAA,QAAKgK,OAAQ,CAAAgH,QAAQ,GAAGD,EAAE,CAAA;UAElD,IAAAjD,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAahH,SAASoK,MAAS,CAAA,EAAA;YAC1B1R,MAAA,CAAA6C,IAAA,yEACuDrC,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAC/DV,GAAA,EACA2R,MAAA,CACF,EACF;YAEO,OAAA,IAAA;UACT;QACF;QAEM,MAAAC,OAAA,GAAUJ,EAAG,CAAAK,KAAA,CAAM,GAAG,CAAA;QAEtB,MAAAvL,IAAA,GAAOsL,OAAQ,CAAA,CAAA,CAAA,CAAGF,UAAW,CAAA,GAAG,CAAI,aAAGE,OAAQ,CAAA,CAAA,CAAA,cAAMA,OAAQ,CAAA,CAAA,CAAA,IAAOA,OAAQ,CAAA,CAAA,CAAA;QAElF,IAAItL,IAAQ,IAAAqH,QAAA,CAASpG,QAAS,CAAAjB,IAAI,CAAG,EAAA;UAC5B,OAAA,IAAA;QACT;QAEO,OAAA,KAAA;MACT,CAAA;MAEAwL,KAAO,EAAArG,OAAA,CAAQsG,MAAuC,CAAA,CAACC,KAAKxG,KAAU,KAAA;QACpE,uCAAWwG,GAAA;UAAK,CAACxG,KAAM,CAAAlF,IAAA,GAAOkF,MAAMkD;QAAM;MAC5C,CAAA,EAAG,EAAE,CAAA;MAEL2B,OAAA;MAEA4B,SAAW,EAAA;QACTC,uBAAyB,EAAA;MAC3B;IACF,CAAA;IACAC,aAAe,EAAA;MACbC,gBAAgB,MAAM;QACd,MAAAC,KAAA,GAAQxE,SAAU,CAAAgE,KAAA,CAAM,GAAG,CAAA;QAE7B,IAAAQ,KAAA,CAAM/R,WAAW,CAAG,EAAA;UACtB,uCAAgC+R,KAAM,CAAA,CAAA,CAAA;QACxC;QAEA,sCAA+BxE,SAAA;MACjC,CAAA;MACAyE,OAAS,EAAAxE,MAAA;MACTyE,GAAK,EAAArP,MAAA;MACLsP,gBAAgB,MAAM;QACd,MAAAH,KAAA,GAAQxE,SAAU,CAAAgE,KAAA,CAAM,GAAG,CAAA;QAE7B,IAAAQ,KAAA,CAAM/R,WAAW,CAAG,EAAA;UACtB,wBAAiB+R,KAAM,CAAA,CAAA,CAAA;QACzB;QAEA,uBAAgBxE,SAAA;MAClB,CAAA;MACA4E,QAAU,EAAA,IAAA;MACV9H,MAAA;MACA+H,OAAS,EAAA,QAAA;MACTC,qBAAuB,EAAA7E,MAAA;MACvB8E,SAAA,WAAWxH,iCAAQwH,SAAa,yCAAA;IAClC;EAAA,CACF;AACF;ACxMO,MAAMC,UAAsC,GAAA;EACjDvM,IAAA,EAAM,CAACxG,GAAA,EAAKmL,IACV,KAAA,kDAEerK,cAAAA,CAAAA,OAAA,CAAME,MAAO,CAAAmK,IAAA,CAAKN,MAAM,CAAA,gBAErC,GAAGM,IAAK,CAAAsC,MAAA,CAAOpH,GAAI,CAACC,qBAAexF,sBAAA,CAAME,MAAO,CAAAsF,CAAC,CAAG,CAAA,CAAA,gBAEpD,GAAG6E,KAAKQ,OAAQ,CAAAtF,GAAA,CAAKsI,CACnB,IAAA,qBAEK7N,cAAM,CAAAI,OAAA,CAAAH,IAAA,CAAKJ,aAAAA,CAAAA,OAAK,CAAAW,IAAA,CAAKtB,IAAI8N,GAAI,CAAAtH,IAAA,EAAMmI,CAAE,CAAAhO,IAAI,CAAC,CAAA,mBAC1CG,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAA2N,CAAA,CAAEC,MAAM,CAAA,cAAK9N,cAAM,CAAAI,OAAA,CAAAE,IAAA,CAAK,QAAG,CAAA,cAAKN,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAO2N,EAAEnM,MAAM,CAAA,EACvE,CAAElB,KAAK,EAAE,CAAA,CACX,CACF,CAAEA,KAAK,IAAI,CAAA;EACb+K,IAAA,EAAM,CAACrM,GAAA,EAAKmL,IAAS,KAAA;IACZ,OAAA,IAAImB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClCyG,WAAA,CAAYhT,GAAK,EAAAmL,IAAI,CAClB,CAAAqB,IAAA,CAAMT,MAAW,IAAA;QAChBQ,QAAA,CAASE,KAAKV,MAAM,CAAA;QACpBQ,QAAA,CAASG,QAAS,EAAA;MAAA,CACnB,EACAC,KAAM,CAACC,OAAQL,QAAS,CAAAzJ,KAAA,CAAM8J,GAAG,CAAC,CAAA;IAAA,CACtC,CAAA;EACH,CAAA;EACAF,UAAU,MAAM,CAEhB,CAAA;EACA5J,KAAO,EAAA,CAACqJ,IAAM,EAAAU,KAAA,EAAOD,GAAQ,KAAA;IAE3BM,OAAA,CAAQpK,MAAM8J,GAAG,CAAA;EACnB;AACF,CAAA;AAEA,eAAeoG,WAAA,CAAYhT,KAAmBmL,IAAkB,EAAA;EAC9D,MAAM;IAACzG,QAAA;IAAUwE,KAAO;IAAA/I;EAAA,CAAU,GAAAH,GAAA;EAClC,MAAMoD,MAAS,GAAAzC,aAAAA,CAAAA,OAAA,CAAKC,QAAS,CAAAZ,GAAA,CAAIE,KAAKwE,QAAQ,CAAA;EAG9C,MAAMuO,aAAalG,gBAAiB,CAAA;IAClCC,UAAA,EAAa/M,QAAa,IAAA;MACxB,KAAA,MAAWK,OAAOL,QAAU,EAAA;QAC1B,MAAMoB,IAAO,GAAA6R,MAAA,CAAO5S,GAAI,CAAA6M,IAAA,CAAK,CAAE,CAAA,CAAA;QAE3B,IAAA7M,GAAA,CAAIoC,SAAS,qBAAuB,EAAA;UACtC;QACF;QAEI,IAAArB,IAAA,CAAKuQ,UAAW,CAAA,yBAAyB,CAAG,EAAA;UAC9C;QACF;QAEI,IAAAvQ,IAAA,CAAKuQ,UAAW,CAAA,qCAAqC,CAAG,EAAA;UAC1D;QACF;QAEI,IAAAtR,GAAA,CAAI4H,SAAS,KAAO,EAAA;UACf/H,MAAA,CAAAkI,IAAA,CAAK,GAAG/H,GAAA,CAAI6M,IAAI,CAAA;QACzB;QAEI,IAAA7M,GAAA,CAAI4H,SAAS,MAAQ,EAAA;UAChB/H,MAAA,CAAA6C,IAAA,CAAK,GAAG1C,GAAA,CAAI6M,IAAI,CAAA;QACzB;QAEI,IAAA7M,GAAA,CAAI4H,SAAS,OAAS,EAAA;UACjB/H,MAAA,CAAA2C,KAAA,CAAM,GAAGxC,GAAA,CAAI6M,IAAI,CAAA;QAC1B;MACF;IACF;EAAA,CACD,CAAA;EAEG,IAAA;IACF,MAAM;MAACqE,YAAc;MAAAa;IAAA,CAAiB,GAAAhF,mBAAA,CAAoBrN,KAAKmL,IAAI,CAAA;IAG7D,MAAAgI,MAAA,GAAS,MAAM/B,aAAO,iCACvBI,YAAA;MACH4B,OAAOC,OAAS,EAAA;QACdJ,UAAA,CAAWhT,SAASyH,IAAK,CAAA;UACvBQ,IAAM,EAAA,MAAA;UACNxF,MAAM2Q,OAAQ,CAAA3Q,IAAA;UACdyK,IAAA,EAAM,CAACkG,OAAA,CAAQjR,OAAO;QAAA,CACvB,CAAA;MACH;IAAA,GACD;IAID,MAAM;MAACI;IAAM,CAAA,GAAI,MAAM2Q,MAAA,CAAOG,SAASjB,aAAa,CAAA;IAEpD,KAAA,MAAWkB,gBAAgB/Q,MAAQ,EAAA;MAC7B,IAAA+Q,YAAA,CAAarL,SAAS,OAAS,EAAA;QACjCgB,KAAA,CAAMxB,IAAK,CAAA;UACTQ,IAAM,EAAA,OAAA;UACNvH,IAAM,EAAAA,aAAAA,CAAAA,OAAA,CAAK4E,OAAQ,CAAAnC,MAAA,EAAQmQ,aAAahR,QAAQ;QAAA,CACjD,CAAA;MAAA,CACI,MAAA;QACL2G,KAAA,CAAMxB,IAAK,CAAA;UACTQ,IAAM,EAAA,OAAA;UACNvH,IAAM,EAAAA,aAAAA,CAAAA,OAAA,CAAK4E,OAAQ,CAAAnC,MAAA,EAAQmQ,aAAahR,QAAQ;QAAA,CACjD,CAAA;MACH;IACF;IAGM,MAAA4Q,MAAA,CAAOK,MAAMnB,aAAa,CAAA;IAGhC,MAAMc,OAAOM,KAAM,EAAA;IAGnBR,UAAA,CAAW7F,OAAQ,EAAA;WACZR,GAAP,EAAA;IAEAqG,UAAA,CAAW7F,OAAQ,EAAA;IACb,MAAAR,GAAA;EACR;AACF;ACxHO,MAAM8G,eAAoE,GAAA;EAC/ElN,IAAA,EAAM,CAACxG,GAAA,EAAKmL,IACV,8CAAkCA,KAAKsC,MAAO,CAAAnM,IAAA,CAAK,KAAK,CAAA,sBACtD6J,IAAK,CAAAN,MAAA,uBACMM,IAAA,CAAKQ,QACftF,GAAI,CAACsI,eAAS7N,sBAAA,CAAM2B,IAAK,CAAA9B,aAAAA,CAAAA,OAAA,CAAKW,IAAK,CAAAtB,GAAA,CAAI8N,IAAItH,IAAM,EAAAmI,CAAA,CAAEhO,IAAI,CAAC,CAAM,eAAAgO,CAAA,CAAEC,uBAAaD,CAAE,CAAAnM,MAAA,CAAQ,CACvF,CAAAlB,IAAA,CAAK,WAAW,CAAA,CAAA;EACrB+K,IAAA,EAAM,CAACrM,GAAA,EAAKmL,IAAS,KAAA;IACnB,MAAM;MAACqG,YAAc;MAAAa;IAAA,CAAiB,GAAAhF,mBAAA,CAAoBrN,KAAKmL,IAAI,CAAA;IAE5D,OAAA,IAAImB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClC,MAAMoH,YAAmC,mCACpCnC,YAAA;QACHhP,MAAQ,EAAA6P;MAAA,EACV;MAEM,MAAAuB,OAAA,GAAUC,aAAYF,YAAY,CAAA;MAEhCC,OAAA,CAAAE,EAAA,CAAG,OAAS,EAACC,KAAU,IAAA;QAC7BxH,QAAA,CAASE,KAAKsH,KAAK,CAAA;MAAA,CACpB,CAAA;MAED,OAAO,MAAM;QACXH,OAAA,CAAQH,KAAM,EAAA;MAAA,CAChB;IAAA,CACD,CAAA;EACH,CAAA;EACA/G,QAAU,EAAA,CAAC1M,GAAK,EAAAmL,IAAA,EAAM4I,KAAU,KAAA;IACxB,MAAA;MAAC5T;IAAU,CAAA,GAAAH,GAAA;IAEb,IAAA+T,KAAA,CAAMrR,SAAS,YAAc,EAAA;MACxBvC,MAAA,CAAA6T,OAAA,0CAC6B7I,IAAK,CAAAsC,MAAA,CAAOnM,IAAK,CAAA,KAAK,uBACtD6J,IAAK,CAAAN,MAAA,uBACMM,IAAA,CAAKQ,QACftF,GAAI,CAACsI,eAAS7N,sBAAA,CAAM2B,IAAK,CAAA9B,aAAAA,CAAAA,OAAA,CAAKW,IAAK,CAAAtB,GAAA,CAAI8N,IAAItH,IAAM,EAAAmI,CAAA,CAAEhO,IAAI,CAAC,CAAM,eAAAgO,CAAA,CAAEC,uBAAaD,CAAE,CAAAnM,MAAA,CAAQ,CACvF,CAAAlB,IAAA,CAAK,WAAW,CAAA,EACrB;MACAnB,MAAA,CAAOM,IAAI,EAAE,CAAA;MAEb;IACF;IAEI,IAAAsT,KAAA,CAAMrR,SAAS,cAAgB,EAAA;MACjC;IACF;IAEI,IAAAqR,KAAA,CAAMrR,SAAS,KAAO,EAAA;MACxB;IACF;IAEI,IAAAqR,KAAA,CAAMrR,SAAS,OAAS,EAAA;MACnBvC,MAAA,CAAA2C,KAAA,CAAMiR,KAAM,CAAArR,IAAA,EAAMqR,KAAK,CAAA;MAE9B;IACF;IAEI,IAAAA,KAAA,CAAMrR,SAAS,OAAS,EAAA;MAC1B;IACF;EACF,CAAA;EACAI,KAAO,EAAA,CAAC9C,GAAK,EAAA6M,KAAA,EAAOD,GAAQ,KAAA;IACpB,MAAA;MAACzM;IAAU,CAAA,GAAAH,GAAA;IAEjB,IAAI4M,eAAe/J,KAAO,EAAA;MACxB1C,MAAA,CAAOM,IAAImM,GAAG,CAAA;IAChB;EACF;AACF,CAAA;ACnEO,MAAMqH,iBAAuC,GAAA;EAClD,WAAa,EAAA/H,OAAA;EACb,UAAY,EAAA6G;AACd,CAAA;AAGO,MAAMmB,iBAAuC,GAAA;EAClD,WAAa,EAAApH,YAAA;EACb,UAAY,EAAA4G;AACd,CAAA;;;;;;;"}