@sprucelabs/spruce-cli 19.1.16 → 19.1.18

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 (95) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/__tests__/behavioral/events/CreatingAListener.test.js +3 -3
  3. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  4. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +2 -2
  5. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  6. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +2 -2
  7. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  8. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +3 -3
  9. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  10. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +5 -5
  11. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  12. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +2 -2
  13. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  14. package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
  15. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  16. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.d.ts +1 -1
  17. package/build/__tests__/implementation/EventStore.test.js +3 -3
  18. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  19. package/build/__tests__/implementation/JestJsonParser.test.js +2 -2
  20. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  21. package/build/cli/Cli.d.ts +2 -2
  22. package/build/features/ActionQuestionAsker.d.ts +1 -1
  23. package/build/features/cache/actions/DisableAction.js +3 -3
  24. package/build/features/cache/actions/DisableAction.js.map +1 -1
  25. package/build/features/cache/actions/EnableAction.js +2 -2
  26. package/build/features/cache/actions/EnableAction.js.map +1 -1
  27. package/build/features/conversation/actions/TestAction.js +2 -2
  28. package/build/features/conversation/actions/TestAction.js.map +1 -1
  29. package/build/features/conversation/stores/ConversationStore.d.ts +1 -1
  30. package/build/features/error/ParentTestFinder.js +2 -2
  31. package/build/features/error/ParentTestFinder.js.map +1 -1
  32. package/build/features/event/stores/EventStore.d.ts +1 -1
  33. package/build/features/node/NodeFeature.d.ts +7 -2
  34. package/build/features/organization/stores/OrganizationStore.d.ts +2 -2
  35. package/build/features/schema/stores/SchemaStore.js +3 -3
  36. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  37. package/build/features/skill/actions/RegisterAction.d.ts +7 -7
  38. package/build/features/skill/actions/RegisterAction.js +22 -22
  39. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  40. package/build/features/skill/stores/SkillStore.d.ts +2 -2
  41. package/build/features/test/TestRunner.js +1 -1
  42. package/build/features/test/TestRunner.js.map +1 -1
  43. package/build/features/test/actions/SetupAction.js +2 -2
  44. package/build/features/test/actions/SetupAction.js.map +1 -1
  45. package/build/features/universalDevDependencies.d.ts +7 -2
  46. package/build/features/universalDevDependencies.js +1 -0
  47. package/build/features/universalDevDependencies.js.map +1 -1
  48. package/build/features/view/stores/ViewStore.d.ts +1 -1
  49. package/build/index.js +1 -1
  50. package/build/index.js.map +1 -1
  51. package/build/interfaces/TerminalInterface.js +2 -2
  52. package/build/interfaces/TerminalInterface.js.map +1 -1
  53. package/build/services/CommandService.js +2 -2
  54. package/build/services/CommandService.js.map +1 -1
  55. package/build/tests/AbstractCliTest.js +2 -1
  56. package/build/tests/AbstractCliTest.js.map +1 -1
  57. package/build/tests/AbstractEventTest.d.ts +2 -2
  58. package/build/tests/fixtures/OrganizationFixture.d.ts +1 -1
  59. package/build/tests/fixtures/PersonFixture.js +2 -2
  60. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  61. package/build/utilities/eventContractCleaner.utility.js +3 -3
  62. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  63. package/build/utilities/introspection.utility.js +4 -4
  64. package/build/utilities/introspection.utility.js.map +1 -1
  65. package/build/utilities/tsConfig.utility.js +2 -2
  66. package/build/utilities/tsConfig.utility.js.map +1 -1
  67. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  68. package/node_modules/@typescript-eslint/scope-manager/dist/definition/DefinitionType.js +1 -2
  69. package/node_modules/@typescript-eslint/scope-manager/dist/definition/DefinitionType.js.map +1 -1
  70. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +2 -4
  71. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map +1 -1
  72. package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeType.js +1 -2
  73. package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeType.js.map +1 -1
  74. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  75. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +2 -2
  76. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
  77. package/node_modules/@typescript-eslint/types/package.json +2 -2
  78. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +1 -1
  79. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +1 -1
  80. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
  81. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +19 -0
  82. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
  83. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +3 -3
  84. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js.map +1 -1
  85. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +1 -1
  86. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
  87. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +1 -1
  88. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
  89. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  90. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  91. package/package.json +36 -36
  92. package/src/features/skill/actions/RegisterAction.ts +27 -27
  93. package/src/features/test/TestRunner.ts +1 -1
  94. package/src/features/universalDevDependencies.ts +1 -1
  95. package/src/tests/AbstractCliTest.ts +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalInterface.js","names":["_path","_interopRequireDefault","require","_error","_globby","_schema","_spruceSkillUtils","_cfonts","_chalk","_cliTable","_emphasize","_fsExtra","_inquirer","_lodash","_interopRequireWildcard","_ora","_terminalKit","_SpruceError","_feature","_graphicsInterface","_duration","_isCi","_process","_process$stdout","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","terminalImage","fieldCount","generateInquirerFieldName","concat","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","cwd","renderStackTraces","undefined","log","console","bind","_classCallCheck2","_createClass2","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Error","stop","sendInput","renderLines","lines","_this","line","renderLine","renderObject","_this2","Green","renderDivider","chalk","bold","JSON","stringify","renderSection","options","headline","_options$dividerEffec","dividerEffects","_options$headlineEffe","headlineEffects","Blue","_options$bodyEffects","bodyEffects","renderHeadline","bar","renderActionSummary","results","_results$files$filter","_results$files","_results$files$filter2","_results$files2","_results$files$filter3","_results$files3","_results$errors","_results$packagesInst","_results$summaryLines","_this3","generatedFiles","files","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","_toConsumableArray2","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","pkg","isDev","_i","_arr","_iterator","_step","_file$description","file","description","namesUtil","toPascal","hints","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","setTitle","title","process","stdout","write","shouldStripVowels","columns","stripped","replace","toLowerCase","gradient","Red","renderHint","eraseBeforeRender","terminal","eraseLine","renderWarning","Yellow","_startLoading","_callee2","_callee2$","_context2","stopLoading","loader","ora","text","start","startLoading","_x","_stopLoading","_callee3","_TerminalInterface$lo","_callee3$","_context3","_confirm","_callee4","question","confirmResult","_callee4$","_context4","inquirer","prompt","type","sent","abrupt","answer","confirm","_x2","_waitForEnter","_callee5","_callee5$","_context5","label","bgGreenBright","black","waitForEnter","_x3","clear","renderCodeSample","code","colored","emphasize","highlight","_prompt","_callee6","definition","fieldDefinition","defaultValue","promptOptions","field","_fieldDefinition$defa","_fieldDefinition$defa2","dirPath","_fieldDefinition$defa3","_fieldDefinition$defa4","_dirPath","response","result","_callee6$","_context6","isPromptActive","generatePromptLabel","FieldFactory","Field","transformer","toValueType","validate","areSchemaValuesValid","id","fields","t0","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","uri","globby","directory","extname","_x4","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","renderProgressBar","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","updateProgressBar","update","_renderImage","_callee7","image","_callee7$","_context7","renderImage","_x5","_x6","_getCursorPosition","_callee8","_callee8$","_context8","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","getCursorPosition","saveCursor","restoreCursor","moveCursorTo","moveTo","clearBelowCursor","eraseDisplayBelow","doesSupportColor","_doesSupportColor","setDoesSupportColor","isTTy","exports","isTTY","isCi"],"sources":["../../src/interfaces/TerminalInterface.ts"],"sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport globby from '@sprucelabs/globby'\nimport {\n\tFieldFactory,\n\tFieldDefinitionValueType,\n\tareSchemaValuesValid,\n} from '@sprucelabs/schema'\nimport { IField } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\n// @ts-ignore\nimport fonts from 'cfonts'\nimport chalk from 'chalk'\n// @ts-ignore No definition available\nimport Table from 'cli-table3'\n// @ts-ignore No definition available\nimport emphasize from 'emphasize'\nimport fs from 'fs-extra'\nimport inquirer from 'inquirer'\nimport _ from 'lodash'\nimport { filter } from 'lodash'\nimport ora from 'ora'\nimport { terminal } from 'terminal-kit'\nimport { ProgressBarController } from 'terminal-kit/Terminal'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport featuresUtil from '../features/feature.utilities'\nimport { ExecutionResults, GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport isCi from '../utilities/isCi'\nconst terminalImage = require('terminal-image')\n\nlet fieldCount = 0\nfunction generateInquirerFieldName() {\n\tfieldCount++\n\treturn `field-${fieldCount}`\n}\n\n/** Remove effects cfonts does not support */\nfunction filterEffectsForCFonts(effects: GraphicsTextEffect[]) {\n\treturn filter(\n\t\teffects,\n\t\t(effect) =>\n\t\t\t[\n\t\t\t\tGraphicsTextEffect.SpruceHeader,\n\t\t\t\tGraphicsTextEffect.Reset,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t\tGraphicsTextEffect.Dim,\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t\tGraphicsTextEffect.Underline,\n\t\t\t\tGraphicsTextEffect.Inverse,\n\t\t\t\tGraphicsTextEffect.Hidden,\n\t\t\t\tGraphicsTextEffect.Strikethrough,\n\t\t\t\tGraphicsTextEffect.Visible,\n\t\t\t].indexOf(effect) === -1\n\t)\n}\n\ntype TerminalSpecificOptions = {\n\teraseBeforeRender?: boolean\n}\n\nexport default class TerminalInterface implements GraphicsInterface {\n\tpublic isPromptActive = false\n\tpublic cwd: string\n\tprivate renderStackTraces = false\n\tprivate static loader?: ora.Ora | null\n\tprivate progressBar: ProgressBarController | null = null\n\tprivate static _doesSupportColor = process?.stdout?.isTTY && !isCi()\n\tprivate log: (...args: any[]) => void\n\n\tpublic constructor(\n\t\tcwd: string,\n\t\trenderStackTraces = false,\n\t\tlog = console.log.bind(console)\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.renderStackTraces = renderStackTraces\n\t\tthis.log = log\n\t}\n\n\tpublic static doesSupportColor() {\n\t\treturn this._doesSupportColor\n\t}\n\n\tpublic static setDoesSupportColor(isTTy: boolean) {\n\t\tthis._doesSupportColor = isTTy\n\t}\n\n\tpublic async sendInput(): Promise<void> {\n\t\tthrow new Error('sendInput not supported on the TerminalInterface!')\n\t}\n\n\tpublic renderLines(lines: any[], effects?: GraphicsTextEffect[]) {\n\t\tlines.forEach((line) => {\n\t\t\tthis.renderLine(line, effects)\n\t\t})\n\t}\n\n\tpublic renderObject(\n\t\tobject: Record<string, any>,\n\t\teffects: GraphicsTextEffect[] = [GraphicsTextEffect.Green]\n\t) {\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tthis.renderLine(\n\t\t\t\t`${chalk.bold(key)}: ${\n\t\t\t\t\ttypeof object[key] === 'string'\n\t\t\t\t\t\t? object[key]\n\t\t\t\t\t\t: JSON.stringify(object[key])\n\t\t\t\t}`,\n\t\t\t\teffects\n\t\t\t)\n\t\t})\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline?: string\n\t\tlines?: string[]\n\t\tobject?: Record<string, any>\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t}) {\n\t\tconst {\n\t\t\theadline,\n\t\t\tlines,\n\t\t\tobject,\n\t\t\tdividerEffects = [],\n\t\t\theadlineEffects = [GraphicsTextEffect.Blue, GraphicsTextEffect.Bold],\n\t\t\tbodyEffects = [GraphicsTextEffect.Green],\n\t\t} = options\n\n\t\tif (headline) {\n\t\t\tthis.renderHeadline(`${headline} 🌲🤖`, headlineEffects, dividerEffects)\n\t\t}\n\n\t\tif (lines) {\n\t\t\tthis.renderLines(lines, bodyEffects)\n\n\t\t\tthis.renderLine('')\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t}\n\n\t\tif (object) {\n\t\t\tthis.renderObject(object, bodyEffects)\n\t\t}\n\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[]) {\n\t\tconst bar = '=================================================='\n\t\tthis.renderLine(bar, effects)\n\t}\n\n\tpublic renderActionSummary(\n\t\tresults: ExecutionResults & { totalTime?: number }\n\t) {\n\t\tconst generatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'generated') ?? []\n\t\tconst updatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'updated') ?? []\n\t\tconst skippedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'skipped') ?? []\n\n\t\tconst errors = results.errors ?? []\n\t\tconst packagesInstalled = results.packagesInstalled ?? []\n\n\t\tthis.renderHero(`${results.headline}`)\n\n\t\tlet summaryLines: string[] = [\n\t\t\terrors.length > 0 ? `Errors: ${errors.length}` : null,\n\t\t\tgeneratedFiles.length > 0\n\t\t\t\t? `Generated files: ${generatedFiles.length}`\n\t\t\t\t: null,\n\t\t\tupdatedFiles.length > 0 ? `Updated files: ${updatedFiles.length}` : null,\n\t\t\tskippedFiles.length > 0 ? `Skipped files: ${skippedFiles.length}` : null,\n\t\t\tpackagesInstalled.length > 0\n\t\t\t\t? `NPM packages installed: ${packagesInstalled.length}`\n\t\t\t\t: null,\n\t\t\t...(results.summaryLines ?? []),\n\t\t].filter((line) => !!line) as string[]\n\n\t\tif (summaryLines.length === 0) {\n\t\t\tsummaryLines.push('Nothing to report!')\n\t\t}\n\t\tthis.renderSection({\n\t\t\theadline: `${featuresUtil.generateCommand(\n\t\t\t\tresults.featureCode,\n\t\t\t\tresults.actionCode\n\t\t\t)} summary`,\n\t\t\tlines: summaryLines,\n\t\t})\n\n\t\tif (packagesInstalled.length > 0) {\n\t\t\tconst table = new Table({\n\t\t\t\thead: ['Name', 'Dev'],\n\t\t\t\tcolWidths: [40, 5],\n\t\t\t\twordWrap: true,\n\t\t\t\tcolAligns: ['left', 'center'],\n\t\t\t})\n\t\t\tpackagesInstalled\n\t\t\t\t.sort((one, two) => (one.name > two.name ? 1 : -1))\n\t\t\t\t.forEach((pkg) => {\n\t\t\t\t\ttable.push([pkg.name, pkg.isDev ? '√' : ''])\n\t\t\t\t})\n\n\t\t\tthis.renderSection({\n\t\t\t\theadline: `NPM packages summary`,\n\t\t\t\tlines: [table.toString()],\n\t\t\t})\n\t\t}\n\n\t\tfor (let files of [generatedFiles, updatedFiles]) {\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst table = new Table({\n\t\t\t\t\thead: ['File', 'Description'],\n\t\t\t\t\twordWrap: true,\n\t\t\t\t})\n\n\t\t\t\tfiles = files.sort()\n\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\ttable.push([file.name, file.description ?? ''])\n\t\t\t\t}\n\n\t\t\t\tthis.renderSection({\n\t\t\t\t\theadline: `${namesUtil.toPascal(files[0].action)} file summary`,\n\t\t\t\t\tlines: [table.toString()],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (results.hints) {\n\t\t\tthis.renderSection({\n\t\t\t\theadline: 'Read below 👇',\n\t\t\t\tlines: results.hints,\n\t\t\t})\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.renderHeadline('Errors')\n\t\t\terrors.forEach((err) => this.renderError(err))\n\t\t}\n\n\t\tif (results.totalTime) {\n\t\t\tthis.renderLine(\n\t\t\t\t`Total time: ${durationUtil.msToFriendly(results.totalTime)}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[] = [\n\t\t\tGraphicsTextEffect.Blue,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t],\n\t\tdividerEffects: GraphicsTextEffect[] = []\n\t) {\n\t\tconst isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1\n\n\t\tif (isSpruce) {\n\t\t\tfonts.say(message, {\n\t\t\t\tfont: GraphicsTextEffect.SpruceHeader,\n\t\t\t\talign: 'left',\n\t\t\t\tspace: false,\n\t\t\t\tcolors: filterEffectsForCFonts(effects),\n\t\t\t})\n\t\t} else {\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine(message, effects)\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine('')\n\t\t}\n\t}\n\n\tpublic setTitle(title: string): void {\n\t\tprocess.stdout.write('\\x1b]2;' + title + '\\x07')\n\t}\n\n\tpublic renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tlet stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tif (\n\t\t\tshouldStripVowels &&\n\t\t\t['a', 'e', 'i', 'o', 'u'].indexOf(message[0].toLowerCase()) > -1\n\t\t) {\n\t\t\tstripped = `${message[0]}${stripped}`\n\t\t}\n\n\t\tfonts.say(stripped, {\n\t\t\talign: 'left',\n\t\t\tgradient: [GraphicsTextEffect.Red, GraphicsTextEffect.Blue],\n\t\t\tcolors: effects ? filterEffectsForCFonts(effects) : undefined,\n\t\t})\n\t}\n\n\tpublic renderHint(message: string) {\n\t\treturn this.renderLine(`👨‍🏫 ${message}`)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: any,\n\t\teffects: GraphicsTextEffect[] = [],\n\t\toptions?: TerminalSpecificOptions\n\t) {\n\t\tlet write: any = chalk\n\t\teffects.forEach((effect) => {\n\t\t\twrite = write[effect]\n\t\t})\n\n\t\tif (options?.eraseBeforeRender) {\n\t\t\tterminal.eraseLine()\n\t\t}\n\n\t\tthis.log(effects.length > 0 ? write(message) : message)\n\t}\n\n\tpublic renderWarning(message: string) {\n\t\tthis.renderLine(`⚠️ ${message}`, [\n\t\t\tGraphicsTextEffect.Bold,\n\t\t\tGraphicsTextEffect.Yellow,\n\t\t])\n\t}\n\n\tpublic async startLoading(message?: string) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\t\tTerminalInterface.loader = ora({\n\t\t\ttext: message,\n\t\t}).start()\n\t}\n\n\tpublic async stopLoading() {\n\t\tTerminalInterface.loader?.stop()\n\t\tTerminalInterface.loader = null\n\t}\n\n\tpublic async confirm(question: string): Promise<boolean> {\n\t\tconst confirmResult = await inquirer.prompt({\n\t\t\ttype: 'confirm',\n\t\t\tname: 'answer',\n\t\t\tmessage: question,\n\t\t})\n\n\t\treturn !!confirmResult.answer\n\t}\n\n\tpublic async waitForEnter(message?: string) {\n\t\tawait this.prompt({\n\t\t\ttype: 'text',\n\t\t\tlabel: `${message ? message + ' ' : ''}${chalk.bgGreenBright.black(\n\t\t\t\t'hit enter'\n\t\t\t)}`,\n\t\t})\n\t\tthis.renderLine('')\n\t\treturn\n\t}\n\n\tpublic clear() {\n\t\tvoid this.stopLoading()\n\t\tconsole.clear()\n\t}\n\n\tpublic renderCodeSample(code: string) {\n\t\ttry {\n\t\t\tconst colored = emphasize.highlight('js', code).value\n\t\t\tthis.renderLine(colored)\n\t\t} catch (err: any) {\n\t\t\tthis.renderWarning(err)\n\t\t}\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(\n\t\tdefinition: T\n\t): Promise<FieldDefinitionValueType<T>> {\n\t\tthis.isPromptActive = true\n\t\tconst name = generateInquirerFieldName()\n\t\tconst fieldDefinition: FieldDefinitions = definition\n\t\tconst { defaultValue } = fieldDefinition\n\n\t\tconst promptOptions: Record<string, any> = {\n\t\t\tdefault: defaultValue,\n\t\t\tname,\n\t\t\tmessage: this.generatePromptLabel(fieldDefinition),\n\t\t}\n\n\t\tconst field = FieldFactory.Field('prompt', fieldDefinition)\n\n\t\tpromptOptions.transformer = (value: string) => {\n\t\t\treturn (field as IField<any>).toValueType(value)\n\t\t}\n\n\t\tpromptOptions.validate = (value: string) => {\n\t\t\treturn areSchemaValuesValid(\n\t\t\t\t{\n\t\t\t\t\tid: 'promptvalidateschema',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprompt: fieldDefinition,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ prompt: value }\n\t\t\t)\n\t\t\t// return field.validate(value, {}).length === 0\n\t\t}\n\n\t\tswitch (fieldDefinition.type) {\n\t\t\t// Map select options to prompt list choices\n\t\t\tcase 'boolean':\n\t\t\t\tpromptOptions.type = 'confirm'\n\t\t\t\tbreak\n\n\t\t\tcase 'select':\n\t\t\t\tpromptOptions.type = fieldDefinition.isArray ? 'checkbox' : 'list'\n\n\t\t\t\tpromptOptions.choices = fieldDefinition.options.choices.map(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t(choice) => ({\n\t\t\t\t\t\tname: choice.label,\n\t\t\t\t\t\tvalue: choice.value,\n\t\t\t\t\t\tchecked: _.includes(fieldDefinition.defaultValue, choice.value),\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\tbreak\n\t\t\t// Directory select\n\t\t\t// File select\n\t\t\tcase 'directory': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\t\t\t\tpromptOptions.onlyShowDir = true\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'file': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.uri ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\t// Check if directory is empty.\n\t\t\t\tconst files = await globby(`${dirPath}**/*`)\n\n\t\t\t\tif (files.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'DIRECTORY_EMPTY',\n\t\t\t\t\t\tdirectory: dirPath,\n\t\t\t\t\t\tfriendlyMessage: `I wanted to help you select a file, but none exist in ${dirPath}.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tfs.existsSync(value) &&\n\t\t\t\t\t\t!fs.lstatSync(value).isDirectory() &&\n\t\t\t\t\t\tpath.extname(value) === '.ts'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Defaults to input\n\t\t\tdefault:\n\t\t\t\tpromptOptions.type = 'input'\n\t\t}\n\n\t\tconst response = (await inquirer.prompt(promptOptions)) as any\n\n\t\tthis.isPromptActive = false\n\n\t\tconst result =\n\t\t\ttypeof response[name] !== 'undefined'\n\t\t\t\t? (field as IField<any>).toValueType(response[name])\n\t\t\t\t: response[name]\n\n\t\treturn result\n\t}\n\tprivate generatePromptLabel(fieldDefinition: FieldDefinitions): any {\n\t\tlet label = fieldDefinition.label\n\n\t\tif (fieldDefinition.hint) {\n\t\t\tlabel = `${label} ${chalk.italic.dim(`(${fieldDefinition.hint})`)}`\n\t\t}\n\n\t\tlabel = label + ': '\n\n\t\treturn label\n\t}\n\n\tpublic renderError(err: Error) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\n\t\tconst message = err.message\n\t\t// Remove message from stack so the message is not doubled up\n\t\tconst stackLines = this.cleanStack(err)\n\t\tthis.renderSection({\n\t\t\theadline: message,\n\t\t\tlines: this.renderStackTraces ? stackLines.splice(0, 100) : undefined,\n\t\t\theadlineEffects: [GraphicsTextEffect.Bold, GraphicsTextEffect.Red],\n\t\t\tdividerEffects: [GraphicsTextEffect.Red],\n\t\t\tbodyEffects: [GraphicsTextEffect.Red],\n\t\t})\n\t}\n\n\tprivate cleanStack(err: Error) {\n\t\tconst message = err.message\n\t\tlet stack = err.stack ? err.stack.replace(message, '') : ''\n\n\t\tif (err instanceof AbstractSpruceError) {\n\t\t\tlet original = err.originalError\n\t\t\twhile (original) {\n\t\t\t\tstack = stack.replace('Error: ' + original.message, '')\n\t\t\t\toriginal = (original as AbstractSpruceError).originalError\n\t\t\t}\n\t\t}\n\n\t\tconst stackLines = stack.split('\\n')\n\n\t\treturn stackLines\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.removeProgressBar()\n\t\tthis.progressBar = terminal.progressBar({\n\t\t\t...options,\n\t\t\tpercent: options.showPercent,\n\t\t\teta: options.showEta,\n\t\t\titems: options.totalItems,\n\t\t\tinline: options.renderInline,\n\t\t})\n\t}\n\n\tpublic removeProgressBar() {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.stop()\n\t\t\tthis.progressBar = null\n\t\t}\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.update({\n\t\t\t\t...options,\n\t\t\t\titems: options.totalItems,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tconst image = await terminalImage.file(path, options)\n\t\tthis.renderLine(image)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\treturn new Promise((resolve) => {\n\t\t\tterminal.requestCursorLocation()\n\t\t\tterminal.getCursorLocation((err, x, y) => {\n\t\t\t\tresolve(err ? null : { x: x ?? 0, y: y ?? 0 })\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic saveCursor() {\n\t\tterminal.saveCursor()\n\t}\n\n\tpublic restoreCursor() {\n\t\tterminal.restoreCursor()\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tterminal.moveTo(x, y)\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tterminal.eraseDisplayBelow()\n\t}\n\n\tpublic eraseLine() {\n\t\tterminal.eraseLine()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAMA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,UAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,QAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,OAAA,GAAAC,uBAAA,CAAAZ,OAAA;AAEA,IAAAa,IAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AAGA,IAAAe,YAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,QAAA,GAAAjB,sBAAA,CAAAC,OAAA;AAEA,IAAAiB,kBAAA,GAAAjB,OAAA;AAMA,IAAAkB,SAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,KAAA,GAAApB,sBAAA,CAAAC,OAAA;AAAoC,IAAAoB,QAAA,EAAAC,eAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAX,wBAAAe,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,QAAAwB,gBAAA,aAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAS,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAP,MAAA,qBAAAS,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAX,CAAA,UAAAiB,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAnB,CAAA,IAAAS,CAAA,CAAAP,MAAA,WAAAkB,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAZ,CAAA,CAAAT,CAAA,UAAAsB,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAA3B,IAAA,CAAAyB,CAAA,MAAAU,CAAA,WAAAA,EAAA,QAAAU,IAAA,GAAAlB,EAAA,CAAAmB,IAAA,IAAAJ,gBAAA,GAAAG,IAAA,CAAAT,IAAA,SAAAS,IAAA,KAAAP,CAAA,WAAAA,EAAAS,GAAA,IAAAJ,MAAA,SAAAC,GAAA,GAAAG,GAAA,KAAAP,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAf,EAAA,oBAAAA,EAAA,8BAAAgB,MAAA,QAAAC,GAAA;AAAA,SAAAZ,4BAAAP,CAAA,EAAAuB,MAAA,SAAAvB,CAAA,qBAAAA,CAAA,sBAAAwB,iBAAA,CAAAxB,CAAA,EAAAuB,MAAA,OAAAb,CAAA,GAAAzC,MAAA,CAAAI,SAAA,CAAAoD,QAAA,CAAAlD,IAAA,CAAAyB,CAAA,EAAA0B,KAAA,aAAAhB,CAAA,iBAAAV,CAAA,CAAA2B,WAAA,EAAAjB,CAAA,GAAAV,CAAA,CAAA2B,WAAA,CAAAC,IAAA,MAAAlB,CAAA,cAAAA,CAAA,mBAAAL,KAAA,CAAAwB,IAAA,CAAA7B,CAAA,OAAAU,CAAA,+DAAAoB,IAAA,CAAApB,CAAA,UAAAc,iBAAA,CAAAxB,CAAA,EAAAuB,MAAA;AAAA,SAAAC,kBAAAO,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAtC,MAAA,EAAAuC,GAAA,GAAAD,GAAA,CAAAtC,MAAA,WAAAF,CAAA,MAAA0C,IAAA,OAAA5B,KAAA,CAAA2B,GAAA,GAAAzC,CAAA,GAAAyC,GAAA,EAAAzC,CAAA,IAAA0C,IAAA,CAAA1C,CAAA,IAAAwC,GAAA,CAAAxC,CAAA,UAAA0C,IAAA,IAzBpC;AAGA;AAEA;AAqBA,IAAMC,aAAa,GAAGpG,OAAO,CAAC,gBAAgB,CAAC;AAE/C,IAAIqG,UAAU,GAAG,CAAC;AAClB,SAASC,yBAAyBA,CAAA,EAAG;EACpCD,UAAU,EAAE;EACZ,gBAAAE,MAAA,CAAgBF,UAAU;AAC3B;;AAEA;AACA,SAASG,sBAAsBA,CAACC,OAA6B,EAAE;EAC9D,OAAO,IAAAvD,cAAM,EACZuD,OAAO,EACP,UAACC,MAAM;IAAA,OACN,CACCC,qCAAkB,CAACC,YAAY,EAC/BD,qCAAkB,CAACE,KAAK,EACxBF,qCAAkB,CAACG,IAAI,EACvBH,qCAAkB,CAACI,GAAG,EACtBJ,qCAAkB,CAACK,MAAM,EACzBL,qCAAkB,CAACM,SAAS,EAC5BN,qCAAkB,CAACO,OAAO,EAC1BP,qCAAkB,CAACQ,MAAM,EACzBR,qCAAkB,CAACS,aAAa,EAChCT,qCAAkB,CAACU,OAAO,CAC1B,CAACC,OAAO,CAACZ,MAAM,CAAC,KAAK,CAAC,CAAC;EAAA,CAC1B,CAAC;AACF;AAAC,IAMoBa,iBAAiB;EASrC,SAAAA,kBACCC,GAAW,EAGV;IAAA,IAFDC,iBAAiB,GAAA/D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,KAAK;IAAA,IACzBiE,GAAG,GAAAjE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAGkE,OAAO,CAACD,GAAG,CAACE,IAAI,CAACD,OAAO,CAAC;IAAA,IAAAE,gBAAA,mBAAAP,iBAAA;IAAA,IAAAzD,gBAAA,qCAXR,KAAK;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,wCAED,KAAK;IAAA,IAAAA,gBAAA,kCAEmB,IAAI;IAAA,IAAAA,gBAAA;IASvD,IAAI,CAAC0D,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACE,GAAG,GAAGA,GAAG;EACf;EAAC,IAAAI,aAAA,aAAAR,iBAAA;IAAAjF,GAAA;IAAAwC,KAAA;MAAA,IAAAkD,UAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAUD,SAAAC,QAAA;QAAA,OAAAF,YAAA,YAAAG,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAhD,IAAA;YAAA;cAAA,MACO,IAAIkD,KAAK,CAAC,mDAAmD,CAAC;YAAA;YAAA;cAAA,OAAAF,QAAA,CAAAG,IAAA;UAAA;QAAA,GAAAN,OAAA;MAAA,CACpE;MAAA,SAAAO,UAAA;QAAA,OAAAX,UAAA,CAAA1E,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiF,SAAA;IAAA;EAAA;IAAArG,GAAA;IAAAwC,KAAA,EAED,SAAA8D,YAAmBC,KAAY,EAAEpC,OAA8B,EAAE;MAAA,IAAAqC,KAAA;MAChED,KAAK,CAAChF,OAAO,CAAC,UAACkF,IAAI,EAAK;QACvBD,KAAI,CAACE,UAAU,CAACD,IAAI,EAAEtC,OAAO,CAAC;MAC/B,CAAC,CAAC;IACH;EAAC;IAAAnE,GAAA;IAAAwC,KAAA,EAED,SAAAmE,aACCpG,MAA2B,EAE1B;MAAA,IAAAqG,MAAA;MAAA,IADDzC,OAA6B,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,CAACiD,qCAAkB,CAACwC,KAAK,CAAC;MAE1D,IAAI,CAACH,UAAU,CAAC,EAAE,CAAC;MACnB,IAAI,CAACI,aAAa,CAAC,CAAC;MACpB,IAAI,CAACJ,UAAU,CAAC,EAAE,CAAC;MACnB7G,MAAM,CAACY,IAAI,CAACF,MAAM,CAAC,CAACgB,OAAO,CAAC,UAACvB,GAAG,EAAK;QACpC4G,MAAI,CAACF,UAAU,IAAAzC,MAAA,CACX8C,iBAAK,CAACC,IAAI,CAAChH,GAAG,CAAC,QAAAiE,MAAA,CACjB,OAAO1D,MAAM,CAACP,GAAG,CAAC,KAAK,QAAQ,GAC5BO,MAAM,CAACP,GAAG,CAAC,GACXiH,IAAI,CAACC,SAAS,CAAC3G,MAAM,CAACP,GAAG,CAAC,CAAC,GAE/BmE,OACD,CAAC;MACF,CAAC,CAAC;MACF,IAAI,CAACuC,UAAU,CAAC,EAAE,CAAC;MACnB,IAAI,CAACI,aAAa,CAAC,CAAC;MACpB,IAAI,CAACJ,UAAU,CAAC,EAAE,CAAC;IACpB;EAAC;IAAA1G,GAAA;IAAAwC,KAAA,EAED,SAAA2E,cAAqBC,OAOpB,EAAE;MACF,IACCC,QAAQ,GAMLD,OAAO,CANVC,QAAQ;QACRd,KAAK,GAKFa,OAAO,CALVb,KAAK;QACLhG,MAAM,GAIH6G,OAAO,CAJV7G,MAAM;QAAA+G,qBAAA,GAIHF,OAAO,CAHVG,cAAc;QAAdA,cAAc,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAAE,qBAAA,GAGhBJ,OAAO,CAFVK,eAAe;QAAfA,eAAe,GAAAD,qBAAA,cAAG,CAACnD,qCAAkB,CAACqD,IAAI,EAAErD,qCAAkB,CAACG,IAAI,CAAC,GAAAgD,qBAAA;QAAAG,oBAAA,GAEjEP,OAAO,CADVQ,WAAW;QAAXA,WAAW,GAAAD,oBAAA,cAAG,CAACtD,qCAAkB,CAACwC,KAAK,CAAC,GAAAc,oBAAA;MAGzC,IAAIN,QAAQ,EAAE;QACb,IAAI,CAACQ,cAAc,IAAA5D,MAAA,CAAIoD,QAAQ,gCAASI,eAAe,EAAEF,cAAc,CAAC;MACzE;MAEA,IAAIhB,KAAK,EAAE;QACV,IAAI,CAACD,WAAW,CAACC,KAAK,EAAEqB,WAAW,CAAC;QAEpC,IAAI,CAAClB,UAAU,CAAC,EAAE,CAAC;QACnB,IAAI,CAACI,aAAa,CAACS,cAAc,CAAC;MACnC;MAEA,IAAIhH,MAAM,EAAE;QACX,IAAI,CAACoG,YAAY,CAACpG,MAAM,EAAEqH,WAAW,CAAC;MACvC;MAEA,IAAI,CAAClB,UAAU,CAAC,EAAE,CAAC;IACpB;EAAC;IAAA1G,GAAA;IAAAwC,KAAA,EAED,SAAAsE,cAAqB3C,OAA8B,EAAE;MACpD,IAAM2D,GAAG,GAAG,oDAAoD;MAChE,IAAI,CAACpB,UAAU,CAACoB,GAAG,EAAE3D,OAAO,CAAC;IAC9B;EAAC;IAAAnE,GAAA;IAAAwC,KAAA,EAED,SAAAuF,oBACCC,OAAkD,EACjD;MAAA,IAAAC,qBAAA;QAAAC,cAAA;QAAAC,sBAAA;QAAAC,eAAA;QAAAC,sBAAA;QAAAC,eAAA;QAAAC,eAAA;QAAAC,qBAAA;QAAAC,qBAAA;QAAAC,MAAA;MACD,IAAMC,cAAc,IAAAV,qBAAA,IAAAC,cAAA,GACnBF,OAAO,CAACY,KAAK,cAAAV,cAAA,uBAAbA,cAAA,CAAetH,MAAM,CAAC,UAAC+B,CAAC;QAAA,OAAKA,CAAC,CAACkG,MAAM,KAAK,WAAW;MAAA,EAAC,cAAAZ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAC7D,IAAMa,YAAY,IAAAX,sBAAA,IAAAC,eAAA,GACjBJ,OAAO,CAACY,KAAK,cAAAR,eAAA,uBAAbA,eAAA,CAAexH,MAAM,CAAC,UAAC+B,CAAC;QAAA,OAAKA,CAAC,CAACkG,MAAM,KAAK,SAAS;MAAA,EAAC,cAAAV,sBAAA,cAAAA,sBAAA,GAAI,EAAE;MAC3D,IAAMY,YAAY,IAAAV,sBAAA,IAAAC,eAAA,GACjBN,OAAO,CAACY,KAAK,cAAAN,eAAA,uBAAbA,eAAA,CAAe1H,MAAM,CAAC,UAAC+B,CAAC;QAAA,OAAKA,CAAC,CAACkG,MAAM,KAAK,SAAS;MAAA,EAAC,cAAAR,sBAAA,cAAAA,sBAAA,GAAI,EAAE;MAE3D,IAAMW,MAAM,IAAAT,eAAA,GAAGP,OAAO,CAACgB,MAAM,cAAAT,eAAA,cAAAA,eAAA,GAAI,EAAE;MACnC,IAAMU,iBAAiB,IAAAT,qBAAA,GAAGR,OAAO,CAACiB,iBAAiB,cAAAT,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAEzD,IAAI,CAACU,UAAU,IAAAjF,MAAA,CAAI+D,OAAO,CAACX,QAAQ,CAAE,CAAC;MAEtC,IAAI8B,YAAsB,GAAG,CAC5BH,MAAM,CAAC3H,MAAM,GAAG,CAAC,cAAA4C,MAAA,CAAc+E,MAAM,CAAC3H,MAAM,IAAK,IAAI,EACrDsH,cAAc,CAACtH,MAAM,GAAG,CAAC,uBAAA4C,MAAA,CACF0E,cAAc,CAACtH,MAAM,IACzC,IAAI,EACPyH,YAAY,CAACzH,MAAM,GAAG,CAAC,qBAAA4C,MAAA,CAAqB6E,YAAY,CAACzH,MAAM,IAAK,IAAI,EACxE0H,YAAY,CAAC1H,MAAM,GAAG,CAAC,qBAAA4C,MAAA,CAAqB8E,YAAY,CAAC1H,MAAM,IAAK,IAAI,EACxE4H,iBAAiB,CAAC5H,MAAM,GAAG,CAAC,8BAAA4C,MAAA,CACEgF,iBAAiB,CAAC5H,MAAM,IACnD,IAAI,EAAA4C,MAAA,KAAAmF,mBAAA,cAAAX,qBAAA,GACHT,OAAO,CAACmB,YAAY,cAAAV,qBAAA,cAAAA,qBAAA,GAAI,EAAE,GAC7B7H,MAAM,CAAC,UAAC6F,IAAI;QAAA,OAAK,CAAC,CAACA,IAAI;MAAA,EAAa;MAEtC,IAAI0C,YAAY,CAAC9H,MAAM,KAAK,CAAC,EAAE;QAC9B8H,YAAY,CAACpI,IAAI,CAAC,oBAAoB,CAAC;MACxC;MACA,IAAI,CAACoG,aAAa,CAAC;QAClBE,QAAQ,KAAApD,MAAA,CAAKoF,mBAAY,CAACC,eAAe,CACxCtB,OAAO,CAACuB,WAAW,EACnBvB,OAAO,CAACwB,UACT,CAAC,aAAU;QACXjD,KAAK,EAAE4C;MACR,CAAC,CAAC;MAEF,IAAIF,iBAAiB,CAAC5H,MAAM,GAAG,CAAC,EAAE;QACjC,IAAMoI,KAAK,GAAG,IAAIC,oBAAK,CAAC;UACvBC,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;UACrBC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;UAClBC,QAAQ,EAAE,IAAI;UACdC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ;QAC7B,CAAC,CAAC;QACFb,iBAAiB,CACfc,IAAI,CAAC,UAACC,GAAG,EAAEC,GAAG;UAAA,OAAMD,GAAG,CAACxG,IAAI,GAAGyG,GAAG,CAACzG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAAA,CAAC,CAAC,CAClDjC,OAAO,CAAC,UAAC2I,GAAG,EAAK;UACjBT,KAAK,CAAC1I,IAAI,CAAC,CAACmJ,GAAG,CAAC1G,IAAI,EAAE0G,GAAG,CAACC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEH,IAAI,CAAChD,aAAa,CAAC;UAClBE,QAAQ,wBAAwB;UAChCd,KAAK,EAAE,CAACkD,KAAK,CAACpG,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;MACH;MAEA,SAAA+G,EAAA,MAAAC,IAAA,GAAkB,CAAC1B,cAAc,EAAEG,YAAY,CAAC,EAAAsB,EAAA,GAAAC,IAAA,CAAAhJ,MAAA,EAAA+I,EAAA,IAAE;QAA7C,IAAIxB,KAAK,GAAAyB,IAAA,CAAAD,EAAA;QACb,IAAIxB,KAAK,CAACvH,MAAM,GAAG,CAAC,EAAE;UACrB,IAAMoI,MAAK,GAAG,IAAIC,oBAAK,CAAC;YACvBC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;YAC7BE,QAAQ,EAAE;UACX,CAAC,CAAC;UAEFjB,KAAK,GAAGA,KAAK,CAACmB,IAAI,CAAC,CAAC;UAAA,IAAAO,SAAA,GAAA3I,0BAAA,CAEDiH,KAAK;YAAA2B,KAAA;UAAA;YAAxB,KAAAD,SAAA,CAAAjI,CAAA,MAAAkI,KAAA,GAAAD,SAAA,CAAAhI,CAAA,IAAAC,IAAA,GAA0B;cAAA,IAAAiI,iBAAA;cAAA,IAAfC,IAAI,GAAAF,KAAA,CAAA/H,KAAA;cACdiH,MAAK,CAAC1I,IAAI,CAAC,CAAC0J,IAAI,CAACjH,IAAI,GAAAgH,iBAAA,GAAEC,IAAI,CAACC,WAAW,cAAAF,iBAAA,cAAAA,iBAAA,GAAI,EAAE,CAAC,CAAC;YAChD;UAAC,SAAAzH,GAAA;YAAAuH,SAAA,CAAA7H,CAAA,CAAAM,GAAA;UAAA;YAAAuH,SAAA,CAAA3H,CAAA;UAAA;UAED,IAAI,CAACwE,aAAa,CAAC;YAClBE,QAAQ,KAAApD,MAAA,CAAK0G,2BAAS,CAACC,QAAQ,CAAChC,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,kBAAe;YAC/DtC,KAAK,EAAE,CAACkD,MAAK,CAACpG,QAAQ,CAAC,CAAC;UACzB,CAAC,CAAC;QACH;MACD;MAEA,IAAI2E,OAAO,CAAC6C,KAAK,EAAE;QAClB,IAAI,CAAC1D,aAAa,CAAC;UAClBE,QAAQ,EAAE,eAAe;UACzBd,KAAK,EAAEyB,OAAO,CAAC6C;QAChB,CAAC,CAAC;MACH;MAEA,IAAI7B,MAAM,CAAC3H,MAAM,GAAG,CAAC,EAAE;QACtB,IAAI,CAACwG,cAAc,CAAC,QAAQ,CAAC;QAC7BmB,MAAM,CAACzH,OAAO,CAAC,UAACwB,GAAG;UAAA,OAAK2F,MAAI,CAACoC,WAAW,CAAC/H,GAAG,CAAC;QAAA,EAAC;MAC/C;MAEA,IAAIiF,OAAO,CAAC+C,SAAS,EAAE;QACtB,IAAI,CAACrE,UAAU,gBAAAzC,MAAA,CACC+G,oBAAY,CAACC,YAAY,CAACjD,OAAO,CAAC+C,SAAS,CAAC,CAC5D,CAAC;MACF;IACD;EAAC;IAAA/K,GAAA;IAAAwC,KAAA,EAED,SAAAqF,eACCqD,OAAe,EAMd;MAAA,IALD/G,OAA6B,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,CAC/BiD,qCAAkB,CAACqD,IAAI,EACvBrD,qCAAkB,CAACG,IAAI,CACvB;MAAA,IACD+C,cAAoC,GAAAnG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,EAAE;MAEzC,IAAM+J,QAAQ,GAAGhH,OAAO,CAACa,OAAO,CAACX,qCAAkB,CAACC,YAAY,CAAC,GAAG,CAAC,CAAC;MAEtE,IAAI6G,QAAQ,EAAE;QACbC,kBAAK,CAACC,GAAG,CAACH,OAAO,EAAE;UAClBI,IAAI,EAAEjH,qCAAkB,CAACC,YAAY;UACrCiH,KAAK,EAAE,MAAM;UACbC,KAAK,EAAE,KAAK;UACZC,MAAM,EAAEvH,sBAAsB,CAACC,OAAO;QACvC,CAAC,CAAC;MACH,CAAC,MAAM;QACN,IAAI,CAAC2C,aAAa,CAACS,cAAc,CAAC;QAClC,IAAI,CAACb,UAAU,CAACwE,OAAO,EAAE/G,OAAO,CAAC;QACjC,IAAI,CAAC2C,aAAa,CAACS,cAAc,CAAC;QAClC,IAAI,CAACb,UAAU,CAAC,EAAE,CAAC;MACpB;IACD;EAAC;IAAA1G,GAAA;IAAAwC,KAAA,EAED,SAAAkJ,SAAgBC,KAAa,EAAQ;MACpCC,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC,SAAS,GAAGH,KAAK,GAAG,MAAM,CAAC;IACjD;EAAC;IAAA3L,GAAA;IAAAwC,KAAA,EAED,SAAA0G,WAAkBgC,OAAe,EAAE/G,OAA8B,EAAE;MAClE,IAAM4H,iBAAiB,GAAGH,OAAO,CAACC,MAAM,CAACG,OAAO,GAAG,EAAE;MAErD,IAAIC,QAAQ,GAAGF,iBAAiB,GAC7Bb,OAAO,CAACgB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,GAChChB,OAAO;MAEV,IACCa,iBAAiB,IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC/G,OAAO,CAACkG,OAAO,CAAC,CAAC,CAAC,CAACiB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAC/D;QACDF,QAAQ,MAAAhI,MAAA,CAAMiH,OAAO,CAAC,CAAC,CAAC,EAAAjH,MAAA,CAAGgI,QAAQ,CAAE;MACtC;MAEAb,kBAAK,CAACC,GAAG,CAACY,QAAQ,EAAE;QACnBV,KAAK,EAAE,MAAM;QACba,QAAQ,EAAE,CAAC/H,qCAAkB,CAACgI,GAAG,EAAEhI,qCAAkB,CAACqD,IAAI,CAAC;QAC3D+D,MAAM,EAAEtH,OAAO,GAAGD,sBAAsB,CAACC,OAAO,CAAC,GAAGiB;MACrD,CAAC,CAAC;IACH;EAAC;IAAApF,GAAA;IAAAwC,KAAA,EAED,SAAA8J,WAAkBpB,OAAe,EAAE;MAClC,OAAO,IAAI,CAACxE,UAAU,mCAAAzC,MAAA,CAAUiH,OAAO,CAAE,CAAC;IAC3C;EAAC;IAAAlL,GAAA;IAAAwC,KAAA,EAED,SAAAkE,WACCwE,OAAY,EAGX;MAAA,IAFD/G,OAA6B,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,EAAE;MAAA,IAClCgG,OAAiC,GAAAhG,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAgE,SAAA;MAEjC,IAAI0G,KAAU,GAAG/E,iBAAK;MACtB5C,OAAO,CAAC5C,OAAO,CAAC,UAAC6C,MAAM,EAAK;QAC3B0H,KAAK,GAAGA,KAAK,CAAC1H,MAAM,CAAC;MACtB,CAAC,CAAC;MAEF,IAAIgD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEmF,iBAAiB,EAAE;QAC/BC,qBAAQ,CAACC,SAAS,CAAC,CAAC;MACrB;MAEA,IAAI,CAACpH,GAAG,CAAClB,OAAO,CAAC9C,MAAM,GAAG,CAAC,GAAGyK,KAAK,CAACZ,OAAO,CAAC,GAAGA,OAAO,CAAC;IACxD;EAAC;IAAAlL,GAAA;IAAAwC,KAAA,EAED,SAAAkK,cAAqBxB,OAAe,EAAE;MACrC,IAAI,CAACxE,UAAU,iBAAAzC,MAAA,CAAOiH,OAAO,GAAI,CAChC7G,qCAAkB,CAACG,IAAI,EACvBH,qCAAkB,CAACsI,MAAM,CACzB,CAAC;IACH;EAAC;IAAA3M,GAAA;IAAAwC,KAAA;MAAA,IAAAoK,aAAA,OAAAjH,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAgH,SAA0B3B,OAAgB;QAAA,OAAAtF,YAAA,YAAAG,IAAA,UAAA+G,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7G,IAAA,GAAA6G,SAAA,CAAA9J,IAAA;YAAA;cACzC;cACA,IAAI,CAAC+J,WAAW,CAAC,CAAC;cAClB/H,iBAAiB,CAACgI,MAAM,GAAG,IAAAC,eAAG,EAAC;gBAC9BC,IAAI,EAAEjC;cACP,CAAC,CAAC,CAACkC,KAAK,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAL,SAAA,CAAA3G,IAAA;UAAA;QAAA,GAAAyG,QAAA;MAAA,CACV;MAAA,SAAAQ,aAAAC,EAAA;QAAA,OAAAV,aAAA,CAAA5L,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiM,YAAA;IAAA;EAAA;IAAArN,GAAA;IAAAwC,KAAA;MAAA,IAAA+K,YAAA,OAAA5H,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA2H,SAAA;QAAA,IAAAC,qBAAA;QAAA,OAAA7H,YAAA,YAAAG,IAAA,UAAA2H,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAzH,IAAA,GAAAyH,SAAA,CAAA1K,IAAA;YAAA;cACC,CAAAwK,qBAAA,GAAAxI,iBAAiB,CAACgI,MAAM,cAAAQ,qBAAA,uBAAxBA,qBAAA,CAA0BrH,IAAI,CAAC,CAAC;cAChCnB,iBAAiB,CAACgI,MAAM,GAAG,IAAI;YAAA;YAAA;cAAA,OAAAU,SAAA,CAAAvH,IAAA;UAAA;QAAA,GAAAoH,QAAA;MAAA,CAC/B;MAAA,SAAAR,YAAA;QAAA,OAAAO,YAAA,CAAAvM,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA4L,WAAA;IAAA;EAAA;IAAAhN,GAAA;IAAAwC,KAAA;MAAA,IAAAoL,QAAA,OAAAjI,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAgI,SAAqBC,QAAgB;QAAA,IAAAC,aAAA;QAAA,OAAAnI,YAAA,YAAAG,IAAA,UAAAiI,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/H,IAAA,GAAA+H,SAAA,CAAAhL,IAAA;YAAA;cAAAgL,SAAA,CAAAhL,IAAA;cAAA,OACRiL,oBAAQ,CAACC,MAAM,CAAC;gBAC3CC,IAAI,EAAE,SAAS;gBACf5K,IAAI,EAAE,QAAQ;gBACd0H,OAAO,EAAE4C;cACV,CAAC,CAAC;YAAA;cAJIC,aAAa,GAAAE,SAAA,CAAAI,IAAA;cAAA,OAAAJ,SAAA,CAAAK,MAAA,WAMZ,CAAC,CAACP,aAAa,CAACQ,MAAM;YAAA;YAAA;cAAA,OAAAN,SAAA,CAAA7H,IAAA;UAAA;QAAA,GAAAyH,QAAA;MAAA,CAC7B;MAAA,SAAAW,QAAAC,GAAA;QAAA,OAAAb,QAAA,CAAA5M,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAoN,OAAA;IAAA;EAAA;IAAAxO,GAAA;IAAAwC,KAAA;MAAA,IAAAkM,aAAA,OAAA/I,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA8I,SAA0BzD,OAAgB;QAAA,OAAAtF,YAAA,YAAAG,IAAA,UAAA6I,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA3I,IAAA,GAAA2I,SAAA,CAAA5L,IAAA;YAAA;cAAA4L,SAAA,CAAA5L,IAAA;cAAA,OACnC,IAAI,CAACkL,MAAM,CAAC;gBACjBC,IAAI,EAAE,MAAM;gBACZU,KAAK,KAAA7K,MAAA,CAAKiH,OAAO,GAAGA,OAAO,GAAG,GAAG,GAAG,EAAE,EAAAjH,MAAA,CAAG8C,iBAAK,CAACgI,aAAa,CAACC,KAAK,CACjE,WACD,CAAC;cACF,CAAC,CAAC;YAAA;cACF,IAAI,CAACtI,UAAU,CAAC,EAAE,CAAC;cAAA,OAAAmI,SAAA,CAAAP,MAAA;YAAA;YAAA;cAAA,OAAAO,SAAA,CAAAzI,IAAA;UAAA;QAAA,GAAAuI,QAAA;MAAA,CAEnB;MAAA,SAAAM,aAAAC,GAAA;QAAA,OAAAR,aAAA,CAAA1N,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA6N,YAAA;IAAA;EAAA;IAAAjP,GAAA;IAAAwC,KAAA,EAED,SAAA2M,MAAA,EAAe;MACd,KAAK,IAAI,CAACnC,WAAW,CAAC,CAAC;MACvB1H,OAAO,CAAC6J,KAAK,CAAC,CAAC;IAChB;EAAC;IAAAnP,GAAA;IAAAwC,KAAA,EAED,SAAA4M,iBAAwBC,IAAY,EAAE;MACrC,IAAI;QACH,IAAMC,OAAO,GAAGC,qBAAS,CAACC,SAAS,CAAC,IAAI,EAAEH,IAAI,CAAC,CAAC7M,KAAK;QACrD,IAAI,CAACkE,UAAU,CAAC4I,OAAO,CAAC;MACzB,CAAC,CAAC,OAAOvM,GAAQ,EAAE;QAClB,IAAI,CAAC2J,aAAa,CAAC3J,GAAG,CAAC;MACxB;IACD;EAAC;IAAA/C,GAAA;IAAAwC,KAAA;MAAA,IAAAiN,OAAA,OAAA9J,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA6J,SACCC,UAAa;QAAA,IAAAnM,IAAA,EAAAoM,eAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,OAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,QAAA,EAAAzH,KAAA,EAAA0H,QAAA,EAAAC,MAAA;QAAA,OAAA3K,YAAA,YAAAG,IAAA,UAAAyK,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAvK,IAAA,GAAAuK,SAAA,CAAAxN,IAAA;YAAA;cAEb,IAAI,CAACyN,cAAc,GAAG,IAAI;cACpBlN,IAAI,GAAGQ,yBAAyB,CAAC,CAAC;cAClC4L,eAAiC,GAAGD,UAAU;cAC5CE,YAAY,GAAKD,eAAe,CAAhCC,YAAY;cAEdC,aAAkC,GAAG;gBAC1C,WAASD,YAAY;gBACrBrM,IAAI,EAAJA,IAAI;gBACJ0H,OAAO,EAAE,IAAI,CAACyF,mBAAmB,CAACf,eAAe;cAClD,CAAC;cAEKG,KAAK,GAAGa,oBAAY,CAACC,KAAK,CAAC,QAAQ,EAAEjB,eAAe,CAAC;cAE3DE,aAAa,CAACgB,WAAW,GAAG,UAACtO,KAAa,EAAK;gBAC9C,OAAQuN,KAAK,CAAiBgB,WAAW,CAACvO,KAAK,CAAC;cACjD,CAAC;cAEDsN,aAAa,CAACkB,QAAQ,GAAG,UAACxO,KAAa,EAAK;gBAC3C,OAAO,IAAAyO,4BAAoB,EAC1B;kBACCC,EAAE,EAAE,sBAAsB;kBAC1BC,MAAM,EAAE;oBACPhD,MAAM,EAAEyB;kBACT;gBACD,CAAC,EACD;kBAAEzB,MAAM,EAAE3L;gBAAM,CACjB,CAAC;gBACD;cACD,CAAC;cAAAiO,SAAA,CAAAW,EAAA,GAEOxB,eAAe,CAACxB,IAAI;cAAAqC,SAAA,CAAAxN,IAAA,GAAAwN,SAAA,CAAAW,EAAA,KAEtB,SAAS,QAAAX,SAAA,CAAAW,EAAA,KAIT,QAAQ,QAAAX,SAAA,CAAAW,EAAA,KAeR,WAAW,QAAAX,SAAA,CAAAW,EAAA,KA6BX,MAAM;cAAA;YAAA;cA/CVtB,aAAa,CAAC1B,IAAI,GAAG,SAAS;cAAA,OAAAqC,SAAA,CAAAnC,MAAA;YAAA;cAI9BwB,aAAa,CAAC1B,IAAI,GAAGwB,eAAe,CAAC1N,OAAO,GAAG,UAAU,GAAG,MAAM;cAElE4N,aAAa,CAACuB,OAAO,GAAGzB,eAAe,CAACxI,OAAO,CAACiK,OAAO,CAACC,GAAG;cAC1D;cACA,UAACC,MAAM;gBAAA,OAAM;kBACZ/N,IAAI,EAAE+N,MAAM,CAACzC,KAAK;kBAClBtM,KAAK,EAAE+O,MAAM,CAAC/O,KAAK;kBACnBgP,OAAO,EAAEC,kBAAC,CAACC,QAAQ,CAAC9B,eAAe,CAACC,YAAY,EAAE0B,MAAM,CAAC/O,KAAK;gBAC/D,CAAC;cAAA,CACF,CAAC;cAAA,OAAAiO,SAAA,CAAAnC,MAAA;YAAA;cAAA,KAMGsB,eAAe,CAAC1N,OAAO;gBAAAuO,SAAA,CAAAxN,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAI0O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBuC,eAAe,EACd;cACF,CAAC,CAAC;YAAA;cAGG1B,OAAO,GAAG2B,gBAAI,CAACC,IAAI,EAAA9B,qBAAA,IAAAC,sBAAA,GACxBL,eAAe,CAACC,YAAY,cAAAI,sBAAA,uBAA5BA,sBAAA,CAA8B4B,IAAI,cAAA7B,qBAAA,cAAAA,qBAAA,GAAI,IAAI,CAAC9K,GAAG,EAC9C,GACD,CAAC;cAED4K,aAAa,CAAC1B,IAAI,GAAG,MAAM;cAC3B0B,aAAa,CAACiC,IAAI,GAAG7B,OAAO;cAC5BJ,aAAa,CAACkC,WAAW,GAAG,IAAI;;cAEhC;cACAlC,aAAa,CAACkB,QAAQ,GAAG,UAACxO,KAAa,EAAK;gBAC3C,OAAOyP,mBAAE,CAACC,UAAU,CAAC1P,KAAK,CAAC,IAAIyP,mBAAE,CAACE,SAAS,CAAC3P,KAAK,CAAC,CAAC4P,WAAW,CAAC,CAAC;cACjE,CAAC;cACD;cACAtC,aAAa,CAACgB,WAAW,GAAG,UAACe,IAAY,EAAK;gBAC7C,IAAMQ,WAAW,GAAGR,IAAI,CAAC3F,OAAO,CAAC4D,aAAa,CAACiC,IAAI,EAAE,EAAE,CAAC;gBACxD,OAAOM,WAAW,CAAChR,MAAM,KAAK,CAAC,GAAGyO,aAAa,CAACiC,IAAI,GAAGM,WAAW;cACnE,CAAC;cAAA,OAAA5B,SAAA,CAAAnC,MAAA;YAAA;cAAA,KAIGsB,eAAe,CAAC1N,OAAO;gBAAAuO,SAAA,CAAAxN,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAI0O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBuC,eAAe,EACd;cACF,CAAC,CAAC;YAAA;cAEG1B,QAAO,GAAG2B,gBAAI,CAACC,IAAI,EAAA3B,sBAAA,IAAAC,sBAAA,GACxBR,eAAe,CAACC,YAAY,cAAAO,sBAAA,uBAA5BA,sBAAA,CAA8BkC,GAAG,cAAAnC,sBAAA,cAAAA,sBAAA,GAAI,IAAI,CAACjL,GAAG,EAC7C,GACD,CAAC,EAED;cAAAuL,SAAA,CAAAxN,IAAA;cAAA,OACoB,IAAAsP,kBAAM,KAAAtO,MAAA,CAAIiM,QAAO,SAAM,CAAC;YAAA;cAAtCtH,KAAK,GAAA6H,SAAA,CAAApC,IAAA;cAAA,MAEPzF,KAAK,CAACvH,MAAM,KAAK,CAAC;gBAAAoP,SAAA,CAAAxN,IAAA;gBAAA;cAAA;cAAA,MACf,IAAI0O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBmD,SAAS,EAAEtC,QAAO;gBAClB0B,eAAe,2DAAA3N,MAAA,CAA2DiM,QAAO;cAClF,CAAC,CAAC;YAAA;cAGHJ,aAAa,CAAC1B,IAAI,GAAG,MAAM;cAC3B0B,aAAa,CAACiC,IAAI,GAAG7B,QAAO;;cAE5B;cACAJ,aAAa,CAACkB,QAAQ,GAAG,UAACxO,KAAa,EAAK;gBAC3C,OACCyP,mBAAE,CAACC,UAAU,CAAC1P,KAAK,CAAC,IACpB,CAACyP,mBAAE,CAACE,SAAS,CAAC3P,KAAK,CAAC,CAAC4P,WAAW,CAAC,CAAC,IAClCP,gBAAI,CAACY,OAAO,CAACjQ,KAAK,CAAC,KAAK,KAAK;cAE/B,CAAC;cACD;cACAsN,aAAa,CAACgB,WAAW,GAAG,UAACe,IAAY,EAAK;gBAC7C,IAAMQ,WAAW,GAAGR,IAAI,CAAC3F,OAAO,CAAC4D,aAAa,CAACiC,IAAI,EAAE,EAAE,CAAC;gBACxD,OAAOM,WAAW,CAAChR,MAAM,KAAK,CAAC,GAAGyO,aAAa,CAACiC,IAAI,GAAGM,WAAW;cACnE,CAAC;cAAA,OAAA5B,SAAA,CAAAnC,MAAA;YAAA;cAMDwB,aAAa,CAAC1B,IAAI,GAAG,OAAO;YAAA;cAAAqC,SAAA,CAAAxN,IAAA;cAAA,OAGNiL,oBAAQ,CAACC,MAAM,CAAC2B,aAAa,CAAC;YAAA;cAAhDQ,QAAQ,GAAAG,SAAA,CAAApC,IAAA;cAEd,IAAI,CAACqC,cAAc,GAAG,KAAK;cAErBH,MAAM,GACX,OAAOD,QAAQ,CAAC9M,IAAI,CAAC,KAAK,WAAW,GACjCuM,KAAK,CAAiBgB,WAAW,CAACT,QAAQ,CAAC9M,IAAI,CAAC,CAAC,GAClD8M,QAAQ,CAAC9M,IAAI,CAAC;cAAA,OAAAiN,SAAA,CAAAnC,MAAA,WAEXiC,MAAM;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAArK,IAAA;UAAA;QAAA,GAAAsJ,QAAA;MAAA,CACb;MAAA,SAAAvB,OAAAuE,GAAA;QAAA,OAAAjD,OAAA,CAAAzO,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA+M,MAAA;IAAA;EAAA;IAAAnO,GAAA;IAAAwC,KAAA,EACD,SAAAmO,oBAA4Bf,eAAiC,EAAO;MACnE,IAAId,KAAK,GAAGc,eAAe,CAACd,KAAK;MAEjC,IAAIc,eAAe,CAAC+C,IAAI,EAAE;QACzB7D,KAAK,MAAA7K,MAAA,CAAM6K,KAAK,OAAA7K,MAAA,CAAI8C,iBAAK,CAAC6L,MAAM,CAACC,GAAG,KAAA5O,MAAA,CAAK2L,eAAe,CAAC+C,IAAI,MAAG,CAAC,CAAE;MACpE;MAEA7D,KAAK,GAAGA,KAAK,GAAG,IAAI;MAEpB,OAAOA,KAAK;IACb;EAAC;IAAA9O,GAAA;IAAAwC,KAAA,EAED,SAAAsI,YAAmB/H,GAAU,EAAE;MAC9B;MACA,IAAI,CAACiK,WAAW,CAAC,CAAC;MAElB,IAAM9B,OAAO,GAAGnI,GAAG,CAACmI,OAAO;MAC3B;MACA,IAAM4H,UAAU,GAAG,IAAI,CAACC,UAAU,CAAChQ,GAAG,CAAC;MACvC,IAAI,CAACoE,aAAa,CAAC;QAClBE,QAAQ,EAAE6D,OAAO;QACjB3E,KAAK,EAAE,IAAI,CAACpB,iBAAiB,GAAG2N,UAAU,CAACE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG5N,SAAS;QACrEqC,eAAe,EAAE,CAACpD,qCAAkB,CAACG,IAAI,EAAEH,qCAAkB,CAACgI,GAAG,CAAC;QAClE9E,cAAc,EAAE,CAAClD,qCAAkB,CAACgI,GAAG,CAAC;QACxCzE,WAAW,EAAE,CAACvD,qCAAkB,CAACgI,GAAG;MACrC,CAAC,CAAC;IACH;EAAC;IAAArM,GAAA;IAAAwC,KAAA,EAED,SAAAuQ,WAAmBhQ,GAAU,EAAE;MAC9B,IAAMmI,OAAO,GAAGnI,GAAG,CAACmI,OAAO;MAC3B,IAAI+H,KAAK,GAAGlQ,GAAG,CAACkQ,KAAK,GAAGlQ,GAAG,CAACkQ,KAAK,CAAC/G,OAAO,CAAChB,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE;MAE3D,IAAInI,GAAG,YAAYmQ,iBAAmB,EAAE;QACvC,IAAIC,QAAQ,GAAGpQ,GAAG,CAACqQ,aAAa;QAChC,OAAOD,QAAQ,EAAE;UAChBF,KAAK,GAAGA,KAAK,CAAC/G,OAAO,CAAC,SAAS,GAAGiH,QAAQ,CAACjI,OAAO,EAAE,EAAE,CAAC;UACvDiI,QAAQ,GAAIA,QAAQ,CAAyBC,aAAa;QAC3D;MACD;MAEA,IAAMN,UAAU,GAAGG,KAAK,CAACI,KAAK,CAAC,IAAI,CAAC;MAEpC,OAAOP,UAAU;IAClB;EAAC;IAAA9S,GAAA;IAAAwC,KAAA,EAED,SAAA8Q,kBAAyBlM,OAA2B,EAAQ;MAC3D,IAAI,CAACmM,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACC,WAAW,GAAGhH,qBAAQ,CAACgH,WAAW,CAAAvS,aAAA,CAAAA,aAAA,KACnCmG,OAAO;QACVqM,OAAO,EAAErM,OAAO,CAACsM,WAAW;QAC5BC,GAAG,EAAEvM,OAAO,CAACwM,OAAO;QACpBC,KAAK,EAAEzM,OAAO,CAAC0M,UAAU;QACzBC,MAAM,EAAE3M,OAAO,CAAC4M;MAAY,EAC5B,CAAC;IACH;EAAC;IAAAhU,GAAA;IAAAwC,KAAA,EAED,SAAA+Q,kBAAA,EAA2B;MAC1B,IAAI,IAAI,CAACC,WAAW,EAAE;QACrB,IAAI,CAACA,WAAW,CAACpN,IAAI,CAAC,CAAC;QACvB,IAAI,CAACoN,WAAW,GAAG,IAAI;MACxB;IACD;EAAC;IAAAxT,GAAA;IAAAwC,KAAA,EAED,SAAAyR,kBAAyB7M,OAAiC,EAAQ;MACjE,IAAI,IAAI,CAACoM,WAAW,EAAE;QACrB,IAAI,CAACA,WAAW,CAACU,MAAM,CAAAjT,aAAA,CAAAA,aAAA,KACnBmG,OAAO;UACVyM,KAAK,EAAEzM,OAAO,CAAC0M;QAAU,EACzB,CAAC;MACH;IACD;EAAC;IAAA9T,GAAA;IAAAwC,KAAA;MAAA,IAAA2R,YAAA,OAAAxO,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAuO,SACCvC,IAAY,EACZzK,OAAyB;QAAA,IAAAiN,KAAA;QAAA,OAAAzO,YAAA,YAAAG,IAAA,UAAAuO,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAArO,IAAA,GAAAqO,SAAA,CAAAtR,IAAA;YAAA;cAAAsR,SAAA,CAAAtR,IAAA;cAAA,OAELa,aAAa,CAAC2G,IAAI,CAACoH,IAAI,EAAEzK,OAAO,CAAC;YAAA;cAA/CiN,KAAK,GAAAE,SAAA,CAAAlG,IAAA;cACX,IAAI,CAAC3H,UAAU,CAAC2N,KAAK,CAAC;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAAnO,IAAA;UAAA;QAAA,GAAAgO,QAAA;MAAA,CACtB;MAAA,SAAAI,YAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAP,YAAA,CAAAnT,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAoT,WAAA;IAAA;EAAA;IAAAxU,GAAA;IAAAwC,KAAA;MAAA,IAAAmS,kBAAA,OAAAhP,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA+O,SAAA;QAAA,OAAAhP,YAAA,YAAAG,IAAA,UAAA8O,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5O,IAAA,GAAA4O,SAAA,CAAA7R,IAAA;YAAA;cAAA,OAAA6R,SAAA,CAAAxG,MAAA,WACQ,IAAIyG,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BxI,qBAAQ,CAACyI,qBAAqB,CAAC,CAAC;gBAChCzI,qBAAQ,CAAC0I,iBAAiB,CAAC,UAACnS,GAAG,EAAEoS,CAAC,EAAEC,CAAC,EAAK;kBACzCJ,OAAO,CAACjS,GAAG,GAAG,IAAI,GAAG;oBAAEoS,CAAC,EAAEA,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI,CAAC;oBAAEC,CAAC,EAAEA,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI;kBAAE,CAAC,CAAC;gBAC/C,CAAC,CAAC;cACH,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAN,SAAA,CAAA1O,IAAA;UAAA;QAAA,GAAAwO,QAAA;MAAA,CACF;MAAA,SAAAS,kBAAA;QAAA,OAAAV,kBAAA,CAAA3T,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiU,iBAAA;IAAA;EAAA;IAAArV,GAAA;IAAAwC,KAAA,EAED,SAAA8S,WAAA,EAAoB;MACnB9I,qBAAQ,CAAC8I,UAAU,CAAC,CAAC;IACtB;EAAC;IAAAtV,GAAA;IAAAwC,KAAA,EAED,SAAA+S,cAAA,EAAuB;MACtB/I,qBAAQ,CAAC+I,aAAa,CAAC,CAAC;IACzB;EAAC;IAAAvV,GAAA;IAAAwC,KAAA,EAED,SAAAgT,aAAoBL,CAAS,EAAEC,CAAS,EAAQ;MAC/C5I,qBAAQ,CAACiJ,MAAM,CAACN,CAAC,EAAEC,CAAC,CAAC;IACtB;EAAC;IAAApV,GAAA;IAAAwC,KAAA,EAED,SAAAkT,iBAAA,EAAgC;MAC/BlJ,qBAAQ,CAACmJ,iBAAiB,CAAC,CAAC;IAC7B;EAAC;IAAA3V,GAAA;IAAAwC,KAAA,EAED,SAAAiK,UAAA,EAAmB;MAClBD,qBAAQ,CAACC,SAAS,CAAC,CAAC;IACrB;EAAC;IAAAzM,GAAA;IAAAwC,KAAA,EAxiBD,SAAAoT,iBAAA,EAAiC;MAChC,OAAO,IAAI,CAACC,iBAAiB;IAC9B;EAAC;IAAA7V,GAAA;IAAAwC,KAAA,EAED,SAAAsT,oBAAkCC,KAAc,EAAE;MACjD,IAAI,CAACF,iBAAiB,GAAGE,KAAK;IAC/B;EAAC;EAAA,OAAA9Q,iBAAA;AAAA;AAAA+Q,OAAA,cAAA/Q,iBAAA;AAAA,IAAAzD,gBAAA,aAzBmByD,iBAAiB;AAAA,IAAAzD,gBAAA,aAAjByD,iBAAiB,uBAMF,EAAAnG,QAAA,GAAA8M,OAAO,cAAA9M,QAAA,wBAAAC,eAAA,GAAPD,QAAA,CAAS+M,MAAM,cAAA9M,eAAA,uBAAfA,eAAA,CAAiBkX,KAAK,KAAI,CAAC,IAAAC,gBAAI,EAAC,CAAC"}
1
+ {"version":3,"file":"TerminalInterface.js","names":["_path","_interopRequireDefault","require","_error","_globby","_schema","_spruceSkillUtils","_cfonts","_chalk","_cliTable","_emphasize","_fsExtra","_inquirer","_lodash","_interopRequireWildcard","_ora","_terminalKit","_SpruceError","_feature","_graphicsInterface","_duration","_isCi","_process","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","terminalImage","fieldCount","generateInquirerFieldName","concat","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","cwd","renderStackTraces","undefined","log","console","bind","_classCallCheck2","_createClass2","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Error","stop","sendInput","renderLines","lines","_this","line","renderLine","renderObject","_this2","Green","renderDivider","chalk","bold","JSON","stringify","renderSection","options","headline","_options$dividerEffec","dividerEffects","_options$headlineEffe","headlineEffects","Blue","_options$bodyEffects","bodyEffects","renderHeadline","bar","renderActionSummary","results","_results$files$filter","_results$files","_results$files$filter2","_results$files2","_results$files$filter3","_results$files3","_results$errors","_results$packagesInst","_results$summaryLines","_this3","generatedFiles","files","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","_toConsumableArray2","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","pkg","isDev","_i","_arr","_iterator","_step","_file$description","file","description","namesUtil","toPascal","hints","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","setTitle","title","process","stdout","write","shouldStripVowels","columns","stripped","replace","toLowerCase","gradient","Red","renderHint","eraseBeforeRender","terminal","eraseLine","renderWarning","Yellow","_startLoading","_callee2","_callee2$","_context2","stopLoading","loader","ora","text","start","startLoading","_x","_stopLoading","_callee3","_TerminalInterface$lo","_callee3$","_context3","_confirm","_callee4","question","confirmResult","_callee4$","_context4","inquirer","prompt","type","sent","abrupt","answer","confirm","_x2","_waitForEnter","_callee5","_callee5$","_context5","label","bgGreenBright","black","waitForEnter","_x3","clear","renderCodeSample","code","colored","emphasize","highlight","_prompt","_callee6","definition","fieldDefinition","defaultValue","promptOptions","field","_fieldDefinition$defa","_fieldDefinition$defa2","dirPath","_fieldDefinition$defa3","_fieldDefinition$defa4","_dirPath","response","result","_callee6$","_context6","isPromptActive","generatePromptLabel","FieldFactory","Field","transformer","toValueType","validate","areSchemaValuesValid","id","fields","t0","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","uri","globby","directory","extname","_x4","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","renderProgressBar","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","updateProgressBar","update","_renderImage","_callee7","image","_callee7$","_context7","renderImage","_x5","_x6","_getCursorPosition","_callee8","_callee8$","_context8","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","getCursorPosition","saveCursor","restoreCursor","moveCursorTo","moveTo","clearBelowCursor","eraseDisplayBelow","doesSupportColor","_doesSupportColor","setDoesSupportColor","isTTy","exports","isTTY","isCi"],"sources":["../../src/interfaces/TerminalInterface.ts"],"sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport globby from '@sprucelabs/globby'\nimport {\n\tFieldFactory,\n\tFieldDefinitionValueType,\n\tareSchemaValuesValid,\n} from '@sprucelabs/schema'\nimport { IField } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\n// @ts-ignore\nimport fonts from 'cfonts'\nimport chalk from 'chalk'\n// @ts-ignore No definition available\nimport Table from 'cli-table3'\n// @ts-ignore No definition available\nimport emphasize from 'emphasize'\nimport fs from 'fs-extra'\nimport inquirer from 'inquirer'\nimport _ from 'lodash'\nimport { filter } from 'lodash'\nimport ora from 'ora'\nimport { terminal } from 'terminal-kit'\nimport { ProgressBarController } from 'terminal-kit/Terminal'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport featuresUtil from '../features/feature.utilities'\nimport { ExecutionResults, GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport isCi from '../utilities/isCi'\nconst terminalImage = require('terminal-image')\n\nlet fieldCount = 0\nfunction generateInquirerFieldName() {\n\tfieldCount++\n\treturn `field-${fieldCount}`\n}\n\n/** Remove effects cfonts does not support */\nfunction filterEffectsForCFonts(effects: GraphicsTextEffect[]) {\n\treturn filter(\n\t\teffects,\n\t\t(effect) =>\n\t\t\t[\n\t\t\t\tGraphicsTextEffect.SpruceHeader,\n\t\t\t\tGraphicsTextEffect.Reset,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t\tGraphicsTextEffect.Dim,\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t\tGraphicsTextEffect.Underline,\n\t\t\t\tGraphicsTextEffect.Inverse,\n\t\t\t\tGraphicsTextEffect.Hidden,\n\t\t\t\tGraphicsTextEffect.Strikethrough,\n\t\t\t\tGraphicsTextEffect.Visible,\n\t\t\t].indexOf(effect) === -1\n\t)\n}\n\ntype TerminalSpecificOptions = {\n\teraseBeforeRender?: boolean\n}\n\nexport default class TerminalInterface implements GraphicsInterface {\n\tpublic isPromptActive = false\n\tpublic cwd: string\n\tprivate renderStackTraces = false\n\tprivate static loader?: ora.Ora | null\n\tprivate progressBar: ProgressBarController | null = null\n\tprivate static _doesSupportColor = process?.stdout?.isTTY && !isCi()\n\tprivate log: (...args: any[]) => void\n\n\tpublic constructor(\n\t\tcwd: string,\n\t\trenderStackTraces = false,\n\t\tlog = console.log.bind(console)\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.renderStackTraces = renderStackTraces\n\t\tthis.log = log\n\t}\n\n\tpublic static doesSupportColor() {\n\t\treturn this._doesSupportColor\n\t}\n\n\tpublic static setDoesSupportColor(isTTy: boolean) {\n\t\tthis._doesSupportColor = isTTy\n\t}\n\n\tpublic async sendInput(): Promise<void> {\n\t\tthrow new Error('sendInput not supported on the TerminalInterface!')\n\t}\n\n\tpublic renderLines(lines: any[], effects?: GraphicsTextEffect[]) {\n\t\tlines.forEach((line) => {\n\t\t\tthis.renderLine(line, effects)\n\t\t})\n\t}\n\n\tpublic renderObject(\n\t\tobject: Record<string, any>,\n\t\teffects: GraphicsTextEffect[] = [GraphicsTextEffect.Green]\n\t) {\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tthis.renderLine(\n\t\t\t\t`${chalk.bold(key)}: ${\n\t\t\t\t\ttypeof object[key] === 'string'\n\t\t\t\t\t\t? object[key]\n\t\t\t\t\t\t: JSON.stringify(object[key])\n\t\t\t\t}`,\n\t\t\t\teffects\n\t\t\t)\n\t\t})\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline?: string\n\t\tlines?: string[]\n\t\tobject?: Record<string, any>\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t}) {\n\t\tconst {\n\t\t\theadline,\n\t\t\tlines,\n\t\t\tobject,\n\t\t\tdividerEffects = [],\n\t\t\theadlineEffects = [GraphicsTextEffect.Blue, GraphicsTextEffect.Bold],\n\t\t\tbodyEffects = [GraphicsTextEffect.Green],\n\t\t} = options\n\n\t\tif (headline) {\n\t\t\tthis.renderHeadline(`${headline} 🌲🤖`, headlineEffects, dividerEffects)\n\t\t}\n\n\t\tif (lines) {\n\t\t\tthis.renderLines(lines, bodyEffects)\n\n\t\t\tthis.renderLine('')\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t}\n\n\t\tif (object) {\n\t\t\tthis.renderObject(object, bodyEffects)\n\t\t}\n\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[]) {\n\t\tconst bar = '=================================================='\n\t\tthis.renderLine(bar, effects)\n\t}\n\n\tpublic renderActionSummary(\n\t\tresults: ExecutionResults & { totalTime?: number }\n\t) {\n\t\tconst generatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'generated') ?? []\n\t\tconst updatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'updated') ?? []\n\t\tconst skippedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'skipped') ?? []\n\n\t\tconst errors = results.errors ?? []\n\t\tconst packagesInstalled = results.packagesInstalled ?? []\n\n\t\tthis.renderHero(`${results.headline}`)\n\n\t\tlet summaryLines: string[] = [\n\t\t\terrors.length > 0 ? `Errors: ${errors.length}` : null,\n\t\t\tgeneratedFiles.length > 0\n\t\t\t\t? `Generated files: ${generatedFiles.length}`\n\t\t\t\t: null,\n\t\t\tupdatedFiles.length > 0 ? `Updated files: ${updatedFiles.length}` : null,\n\t\t\tskippedFiles.length > 0 ? `Skipped files: ${skippedFiles.length}` : null,\n\t\t\tpackagesInstalled.length > 0\n\t\t\t\t? `NPM packages installed: ${packagesInstalled.length}`\n\t\t\t\t: null,\n\t\t\t...(results.summaryLines ?? []),\n\t\t].filter((line) => !!line) as string[]\n\n\t\tif (summaryLines.length === 0) {\n\t\t\tsummaryLines.push('Nothing to report!')\n\t\t}\n\t\tthis.renderSection({\n\t\t\theadline: `${featuresUtil.generateCommand(\n\t\t\t\tresults.featureCode,\n\t\t\t\tresults.actionCode\n\t\t\t)} summary`,\n\t\t\tlines: summaryLines,\n\t\t})\n\n\t\tif (packagesInstalled.length > 0) {\n\t\t\tconst table = new Table({\n\t\t\t\thead: ['Name', 'Dev'],\n\t\t\t\tcolWidths: [40, 5],\n\t\t\t\twordWrap: true,\n\t\t\t\tcolAligns: ['left', 'center'],\n\t\t\t})\n\t\t\tpackagesInstalled\n\t\t\t\t.sort((one, two) => (one.name > two.name ? 1 : -1))\n\t\t\t\t.forEach((pkg) => {\n\t\t\t\t\ttable.push([pkg.name, pkg.isDev ? '√' : ''])\n\t\t\t\t})\n\n\t\t\tthis.renderSection({\n\t\t\t\theadline: `NPM packages summary`,\n\t\t\t\tlines: [table.toString()],\n\t\t\t})\n\t\t}\n\n\t\tfor (let files of [generatedFiles, updatedFiles]) {\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst table = new Table({\n\t\t\t\t\thead: ['File', 'Description'],\n\t\t\t\t\twordWrap: true,\n\t\t\t\t})\n\n\t\t\t\tfiles = files.sort()\n\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\ttable.push([file.name, file.description ?? ''])\n\t\t\t\t}\n\n\t\t\t\tthis.renderSection({\n\t\t\t\t\theadline: `${namesUtil.toPascal(files[0].action)} file summary`,\n\t\t\t\t\tlines: [table.toString()],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (results.hints) {\n\t\t\tthis.renderSection({\n\t\t\t\theadline: 'Read below 👇',\n\t\t\t\tlines: results.hints,\n\t\t\t})\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.renderHeadline('Errors')\n\t\t\terrors.forEach((err) => this.renderError(err))\n\t\t}\n\n\t\tif (results.totalTime) {\n\t\t\tthis.renderLine(\n\t\t\t\t`Total time: ${durationUtil.msToFriendly(results.totalTime)}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[] = [\n\t\t\tGraphicsTextEffect.Blue,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t],\n\t\tdividerEffects: GraphicsTextEffect[] = []\n\t) {\n\t\tconst isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1\n\n\t\tif (isSpruce) {\n\t\t\tfonts.say(message, {\n\t\t\t\tfont: GraphicsTextEffect.SpruceHeader,\n\t\t\t\talign: 'left',\n\t\t\t\tspace: false,\n\t\t\t\tcolors: filterEffectsForCFonts(effects),\n\t\t\t})\n\t\t} else {\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine(message, effects)\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine('')\n\t\t}\n\t}\n\n\tpublic setTitle(title: string): void {\n\t\tprocess.stdout.write('\\x1b]2;' + title + '\\x07')\n\t}\n\n\tpublic renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tlet stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tif (\n\t\t\tshouldStripVowels &&\n\t\t\t['a', 'e', 'i', 'o', 'u'].indexOf(message[0].toLowerCase()) > -1\n\t\t) {\n\t\t\tstripped = `${message[0]}${stripped}`\n\t\t}\n\n\t\tfonts.say(stripped, {\n\t\t\talign: 'left',\n\t\t\tgradient: [GraphicsTextEffect.Red, GraphicsTextEffect.Blue],\n\t\t\tcolors: effects ? filterEffectsForCFonts(effects) : undefined,\n\t\t})\n\t}\n\n\tpublic renderHint(message: string) {\n\t\treturn this.renderLine(`👨‍🏫 ${message}`)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: any,\n\t\teffects: GraphicsTextEffect[] = [],\n\t\toptions?: TerminalSpecificOptions\n\t) {\n\t\tlet write: any = chalk\n\t\teffects.forEach((effect) => {\n\t\t\twrite = write[effect]\n\t\t})\n\n\t\tif (options?.eraseBeforeRender) {\n\t\t\tterminal.eraseLine()\n\t\t}\n\n\t\tthis.log(effects.length > 0 ? write(message) : message)\n\t}\n\n\tpublic renderWarning(message: string) {\n\t\tthis.renderLine(`⚠️ ${message}`, [\n\t\t\tGraphicsTextEffect.Bold,\n\t\t\tGraphicsTextEffect.Yellow,\n\t\t])\n\t}\n\n\tpublic async startLoading(message?: string) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\t\tTerminalInterface.loader = ora({\n\t\t\ttext: message,\n\t\t}).start()\n\t}\n\n\tpublic async stopLoading() {\n\t\tTerminalInterface.loader?.stop()\n\t\tTerminalInterface.loader = null\n\t}\n\n\tpublic async confirm(question: string): Promise<boolean> {\n\t\tconst confirmResult = await inquirer.prompt({\n\t\t\ttype: 'confirm',\n\t\t\tname: 'answer',\n\t\t\tmessage: question,\n\t\t})\n\n\t\treturn !!confirmResult.answer\n\t}\n\n\tpublic async waitForEnter(message?: string) {\n\t\tawait this.prompt({\n\t\t\ttype: 'text',\n\t\t\tlabel: `${message ? message + ' ' : ''}${chalk.bgGreenBright.black(\n\t\t\t\t'hit enter'\n\t\t\t)}`,\n\t\t})\n\t\tthis.renderLine('')\n\t\treturn\n\t}\n\n\tpublic clear() {\n\t\tvoid this.stopLoading()\n\t\tconsole.clear()\n\t}\n\n\tpublic renderCodeSample(code: string) {\n\t\ttry {\n\t\t\tconst colored = emphasize.highlight('js', code).value\n\t\t\tthis.renderLine(colored)\n\t\t} catch (err: any) {\n\t\t\tthis.renderWarning(err)\n\t\t}\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(\n\t\tdefinition: T\n\t): Promise<FieldDefinitionValueType<T>> {\n\t\tthis.isPromptActive = true\n\t\tconst name = generateInquirerFieldName()\n\t\tconst fieldDefinition: FieldDefinitions = definition\n\t\tconst { defaultValue } = fieldDefinition\n\n\t\tconst promptOptions: Record<string, any> = {\n\t\t\tdefault: defaultValue,\n\t\t\tname,\n\t\t\tmessage: this.generatePromptLabel(fieldDefinition),\n\t\t}\n\n\t\tconst field = FieldFactory.Field('prompt', fieldDefinition)\n\n\t\tpromptOptions.transformer = (value: string) => {\n\t\t\treturn (field as IField<any>).toValueType(value)\n\t\t}\n\n\t\tpromptOptions.validate = (value: string) => {\n\t\t\treturn areSchemaValuesValid(\n\t\t\t\t{\n\t\t\t\t\tid: 'promptvalidateschema',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprompt: fieldDefinition,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ prompt: value }\n\t\t\t)\n\t\t\t// return field.validate(value, {}).length === 0\n\t\t}\n\n\t\tswitch (fieldDefinition.type) {\n\t\t\t// Map select options to prompt list choices\n\t\t\tcase 'boolean':\n\t\t\t\tpromptOptions.type = 'confirm'\n\t\t\t\tbreak\n\n\t\t\tcase 'select':\n\t\t\t\tpromptOptions.type = fieldDefinition.isArray ? 'checkbox' : 'list'\n\n\t\t\t\tpromptOptions.choices = fieldDefinition.options.choices.map(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t(choice) => ({\n\t\t\t\t\t\tname: choice.label,\n\t\t\t\t\t\tvalue: choice.value,\n\t\t\t\t\t\tchecked: _.includes(fieldDefinition.defaultValue, choice.value),\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\tbreak\n\t\t\t// Directory select\n\t\t\t// File select\n\t\t\tcase 'directory': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\t\t\t\tpromptOptions.onlyShowDir = true\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'file': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.uri ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\t// Check if directory is empty.\n\t\t\t\tconst files = await globby(`${dirPath}**/*`)\n\n\t\t\t\tif (files.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'DIRECTORY_EMPTY',\n\t\t\t\t\t\tdirectory: dirPath,\n\t\t\t\t\t\tfriendlyMessage: `I wanted to help you select a file, but none exist in ${dirPath}.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tfs.existsSync(value) &&\n\t\t\t\t\t\t!fs.lstatSync(value).isDirectory() &&\n\t\t\t\t\t\tpath.extname(value) === '.ts'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Defaults to input\n\t\t\tdefault:\n\t\t\t\tpromptOptions.type = 'input'\n\t\t}\n\n\t\tconst response = (await inquirer.prompt(promptOptions)) as any\n\n\t\tthis.isPromptActive = false\n\n\t\tconst result =\n\t\t\ttypeof response[name] !== 'undefined'\n\t\t\t\t? (field as IField<any>).toValueType(response[name])\n\t\t\t\t: response[name]\n\n\t\treturn result\n\t}\n\tprivate generatePromptLabel(fieldDefinition: FieldDefinitions): any {\n\t\tlet label = fieldDefinition.label\n\n\t\tif (fieldDefinition.hint) {\n\t\t\tlabel = `${label} ${chalk.italic.dim(`(${fieldDefinition.hint})`)}`\n\t\t}\n\n\t\tlabel = label + ': '\n\n\t\treturn label\n\t}\n\n\tpublic renderError(err: Error) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\n\t\tconst message = err.message\n\t\t// Remove message from stack so the message is not doubled up\n\t\tconst stackLines = this.cleanStack(err)\n\t\tthis.renderSection({\n\t\t\theadline: message,\n\t\t\tlines: this.renderStackTraces ? stackLines.splice(0, 100) : undefined,\n\t\t\theadlineEffects: [GraphicsTextEffect.Bold, GraphicsTextEffect.Red],\n\t\t\tdividerEffects: [GraphicsTextEffect.Red],\n\t\t\tbodyEffects: [GraphicsTextEffect.Red],\n\t\t})\n\t}\n\n\tprivate cleanStack(err: Error) {\n\t\tconst message = err.message\n\t\tlet stack = err.stack ? err.stack.replace(message, '') : ''\n\n\t\tif (err instanceof AbstractSpruceError) {\n\t\t\tlet original = err.originalError\n\t\t\twhile (original) {\n\t\t\t\tstack = stack.replace('Error: ' + original.message, '')\n\t\t\t\toriginal = (original as AbstractSpruceError).originalError\n\t\t\t}\n\t\t}\n\n\t\tconst stackLines = stack.split('\\n')\n\n\t\treturn stackLines\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.removeProgressBar()\n\t\tthis.progressBar = terminal.progressBar({\n\t\t\t...options,\n\t\t\tpercent: options.showPercent,\n\t\t\teta: options.showEta,\n\t\t\titems: options.totalItems,\n\t\t\tinline: options.renderInline,\n\t\t})\n\t}\n\n\tpublic removeProgressBar() {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.stop()\n\t\t\tthis.progressBar = null\n\t\t}\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.update({\n\t\t\t\t...options,\n\t\t\t\titems: options.totalItems,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tconst image = await terminalImage.file(path, options)\n\t\tthis.renderLine(image)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\treturn new Promise((resolve) => {\n\t\t\tterminal.requestCursorLocation()\n\t\t\tterminal.getCursorLocation((err, x, y) => {\n\t\t\t\tresolve(err ? null : { x: x ?? 0, y: y ?? 0 })\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic saveCursor() {\n\t\tterminal.saveCursor()\n\t}\n\n\tpublic restoreCursor() {\n\t\tterminal.restoreCursor()\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tterminal.moveTo(x, y)\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tterminal.eraseDisplayBelow()\n\t}\n\n\tpublic eraseLine() {\n\t\tterminal.eraseLine()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAMA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,UAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,QAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,OAAA,GAAAC,uBAAA,CAAAZ,OAAA;AAEA,IAAAa,IAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AAGA,IAAAe,YAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,QAAA,GAAAjB,sBAAA,CAAAC,OAAA;AAEA,IAAAiB,kBAAA,GAAAjB,OAAA;AAMA,IAAAkB,SAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,KAAA,GAAApB,sBAAA,CAAAC,OAAA;AAAoC,IAAAoB,QAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAc,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,QAAAwB,gBAAA,aAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAS,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAP,MAAA,qBAAAS,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAX,CAAA,UAAAiB,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAnB,CAAA,IAAAS,CAAA,CAAAP,MAAA,WAAAkB,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAZ,CAAA,CAAAT,CAAA,UAAAsB,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAA3B,IAAA,CAAAyB,CAAA,MAAAU,CAAA,WAAAA,EAAA,QAAAU,IAAA,GAAAlB,EAAA,CAAAmB,IAAA,IAAAJ,gBAAA,GAAAG,IAAA,CAAAT,IAAA,SAAAS,IAAA,KAAAP,CAAA,WAAAA,EAAAS,GAAA,IAAAJ,MAAA,SAAAC,GAAA,GAAAG,GAAA,KAAAP,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAf,EAAA,oBAAAA,EAAA,8BAAAgB,MAAA,QAAAC,GAAA;AAAA,SAAAZ,4BAAAP,CAAA,EAAAuB,MAAA,SAAAvB,CAAA,qBAAAA,CAAA,sBAAAwB,iBAAA,CAAAxB,CAAA,EAAAuB,MAAA,OAAAb,CAAA,GAAAzC,MAAA,CAAAI,SAAA,CAAAoD,QAAA,CAAAlD,IAAA,CAAAyB,CAAA,EAAA0B,KAAA,aAAAhB,CAAA,iBAAAV,CAAA,CAAA2B,WAAA,EAAAjB,CAAA,GAAAV,CAAA,CAAA2B,WAAA,CAAAC,IAAA,MAAAlB,CAAA,cAAAA,CAAA,mBAAAL,KAAA,CAAAwB,IAAA,CAAA7B,CAAA,OAAAU,CAAA,+DAAAoB,IAAA,CAAApB,CAAA,UAAAc,iBAAA,CAAAxB,CAAA,EAAAuB,MAAA;AAAA,SAAAC,kBAAAO,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAtC,MAAA,EAAAuC,GAAA,GAAAD,GAAA,CAAAtC,MAAA,WAAAF,CAAA,MAAA0C,IAAA,OAAA5B,KAAA,CAAA2B,GAAA,GAAAzC,CAAA,GAAAyC,GAAA,EAAAzC,CAAA,IAAA0C,IAAA,CAAA1C,CAAA,IAAAwC,GAAA,CAAAxC,CAAA,UAAA0C,IAAA,IAzBpC;AAGA;AAEA;AAqBA,IAAMC,aAAa,GAAGnG,OAAO,CAAC,gBAAgB,CAAC;AAE/C,IAAIoG,UAAU,GAAG,CAAC;AAClB,SAASC,yBAAyBA,CAAA,EAAG;EACpCD,UAAU,EAAE;EACZ,gBAAAE,MAAA,CAAgBF,UAAU;AAC3B;;AAEA;AACA,SAASG,sBAAsBA,CAACC,OAA6B,EAAE;EAC9D,OAAO,IAAAvD,cAAM,EACZuD,OAAO,EACP,UAACC,MAAM;IAAA,OACN,CACCC,qCAAkB,CAACC,YAAY,EAC/BD,qCAAkB,CAACE,KAAK,EACxBF,qCAAkB,CAACG,IAAI,EACvBH,qCAAkB,CAACI,GAAG,EACtBJ,qCAAkB,CAACK,MAAM,EACzBL,qCAAkB,CAACM,SAAS,EAC5BN,qCAAkB,CAACO,OAAO,EAC1BP,qCAAkB,CAACQ,MAAM,EACzBR,qCAAkB,CAACS,aAAa,EAChCT,qCAAkB,CAACU,OAAO,CAC1B,CAACC,OAAO,CAACZ,MAAM,CAAC,KAAK,CAAC,CAAC;EAAA,CAC1B,CAAC;AACF;AAAC,IAMoBa,iBAAiB;EASrC,SAAAA,kBACCC,GAAW,EAGV;IAAA,IAFDC,iBAAiB,GAAA/D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,KAAK;IAAA,IACzBiE,GAAG,GAAAjE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAGkE,OAAO,CAACD,GAAG,CAACE,IAAI,CAACD,OAAO,CAAC;IAAA,IAAAE,gBAAA,mBAAAP,iBAAA;IAAA,IAAAzD,gBAAA,qCAXR,KAAK;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,wCAED,KAAK;IAAA,IAAAA,gBAAA,kCAEmB,IAAI;IAAA,IAAAA,gBAAA;IASvD,IAAI,CAAC0D,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACE,GAAG,GAAGA,GAAG;EACf;EAAC,IAAAI,aAAA,aAAAR,iBAAA;IAAAjF,GAAA;IAAAwC,KAAA;MAAA,IAAAkD,UAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAUD,SAAAC,QAAA;QAAA,OAAAF,YAAA,YAAAG,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAhD,IAAA;YAAA;cAAA,MACO,IAAIkD,KAAK,CAAC,mDAAmD,CAAC;YAAA;YAAA;cAAA,OAAAF,QAAA,CAAAG,IAAA;UAAA;QAAA,GAAAN,OAAA;MAAA,CACpE;MAAA,SAAAO,UAAA;QAAA,OAAAX,UAAA,CAAA1E,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiF,SAAA;IAAA;EAAA;IAAArG,GAAA;IAAAwC,KAAA,EAED,SAAA8D,YAAmBC,KAAY,EAAEpC,OAA8B,EAAE;MAAA,IAAAqC,KAAA;MAChED,KAAK,CAAChF,OAAO,CAAC,UAACkF,IAAI,EAAK;QACvBD,KAAI,CAACE,UAAU,CAACD,IAAI,EAAEtC,OAAO,CAAC;MAC/B,CAAC,CAAC;IACH;EAAC;IAAAnE,GAAA;IAAAwC,KAAA,EAED,SAAAmE,aACCpG,MAA2B,EAE1B;MAAA,IAAAqG,MAAA;MAAA,IADDzC,OAA6B,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,CAACiD,qCAAkB,CAACwC,KAAK,CAAC;MAE1D,IAAI,CAACH,UAAU,CAAC,EAAE,CAAC;MACnB,IAAI,CAACI,aAAa,CAAC,CAAC;MACpB,IAAI,CAACJ,UAAU,CAAC,EAAE,CAAC;MACnB7G,MAAM,CAACY,IAAI,CAACF,MAAM,CAAC,CAACgB,OAAO,CAAC,UAACvB,GAAG,EAAK;QACpC4G,MAAI,CAACF,UAAU,IAAAzC,MAAA,CACX8C,iBAAK,CAACC,IAAI,CAAChH,GAAG,CAAC,QAAAiE,MAAA,CACjB,OAAO1D,MAAM,CAACP,GAAG,CAAC,KAAK,QAAQ,GAC5BO,MAAM,CAACP,GAAG,CAAC,GACXiH,IAAI,CAACC,SAAS,CAAC3G,MAAM,CAACP,GAAG,CAAC,CAAC,GAE/BmE,OACD,CAAC;MACF,CAAC,CAAC;MACF,IAAI,CAACuC,UAAU,CAAC,EAAE,CAAC;MACnB,IAAI,CAACI,aAAa,CAAC,CAAC;MACpB,IAAI,CAACJ,UAAU,CAAC,EAAE,CAAC;IACpB;EAAC;IAAA1G,GAAA;IAAAwC,KAAA,EAED,SAAA2E,cAAqBC,OAOpB,EAAE;MACF,IACCC,QAAQ,GAMLD,OAAO,CANVC,QAAQ;QACRd,KAAK,GAKFa,OAAO,CALVb,KAAK;QACLhG,MAAM,GAIH6G,OAAO,CAJV7G,MAAM;QAAA+G,qBAAA,GAIHF,OAAO,CAHVG,cAAc;QAAdA,cAAc,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAAE,qBAAA,GAGhBJ,OAAO,CAFVK,eAAe;QAAfA,eAAe,GAAAD,qBAAA,cAAG,CAACnD,qCAAkB,CAACqD,IAAI,EAAErD,qCAAkB,CAACG,IAAI,CAAC,GAAAgD,qBAAA;QAAAG,oBAAA,GAEjEP,OAAO,CADVQ,WAAW;QAAXA,WAAW,GAAAD,oBAAA,cAAG,CAACtD,qCAAkB,CAACwC,KAAK,CAAC,GAAAc,oBAAA;MAGzC,IAAIN,QAAQ,EAAE;QACb,IAAI,CAACQ,cAAc,IAAA5D,MAAA,CAAIoD,QAAQ,gCAASI,eAAe,EAAEF,cAAc,CAAC;MACzE;MAEA,IAAIhB,KAAK,EAAE;QACV,IAAI,CAACD,WAAW,CAACC,KAAK,EAAEqB,WAAW,CAAC;QAEpC,IAAI,CAAClB,UAAU,CAAC,EAAE,CAAC;QACnB,IAAI,CAACI,aAAa,CAACS,cAAc,CAAC;MACnC;MAEA,IAAIhH,MAAM,EAAE;QACX,IAAI,CAACoG,YAAY,CAACpG,MAAM,EAAEqH,WAAW,CAAC;MACvC;MAEA,IAAI,CAAClB,UAAU,CAAC,EAAE,CAAC;IACpB;EAAC;IAAA1G,GAAA;IAAAwC,KAAA,EAED,SAAAsE,cAAqB3C,OAA8B,EAAE;MACpD,IAAM2D,GAAG,GAAG,oDAAoD;MAChE,IAAI,CAACpB,UAAU,CAACoB,GAAG,EAAE3D,OAAO,CAAC;IAC9B;EAAC;IAAAnE,GAAA;IAAAwC,KAAA,EAED,SAAAuF,oBACCC,OAAkD,EACjD;MAAA,IAAAC,qBAAA;QAAAC,cAAA;QAAAC,sBAAA;QAAAC,eAAA;QAAAC,sBAAA;QAAAC,eAAA;QAAAC,eAAA;QAAAC,qBAAA;QAAAC,qBAAA;QAAAC,MAAA;MACD,IAAMC,cAAc,IAAAV,qBAAA,IAAAC,cAAA,GACnBF,OAAO,CAACY,KAAK,cAAAV,cAAA,uBAAbA,cAAA,CAAetH,MAAM,CAAC,UAAC+B,CAAC;QAAA,OAAKA,CAAC,CAACkG,MAAM,KAAK,WAAW;MAAA,EAAC,cAAAZ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAC7D,IAAMa,YAAY,IAAAX,sBAAA,IAAAC,eAAA,GACjBJ,OAAO,CAACY,KAAK,cAAAR,eAAA,uBAAbA,eAAA,CAAexH,MAAM,CAAC,UAAC+B,CAAC;QAAA,OAAKA,CAAC,CAACkG,MAAM,KAAK,SAAS;MAAA,EAAC,cAAAV,sBAAA,cAAAA,sBAAA,GAAI,EAAE;MAC3D,IAAMY,YAAY,IAAAV,sBAAA,IAAAC,eAAA,GACjBN,OAAO,CAACY,KAAK,cAAAN,eAAA,uBAAbA,eAAA,CAAe1H,MAAM,CAAC,UAAC+B,CAAC;QAAA,OAAKA,CAAC,CAACkG,MAAM,KAAK,SAAS;MAAA,EAAC,cAAAR,sBAAA,cAAAA,sBAAA,GAAI,EAAE;MAE3D,IAAMW,MAAM,IAAAT,eAAA,GAAGP,OAAO,CAACgB,MAAM,cAAAT,eAAA,cAAAA,eAAA,GAAI,EAAE;MACnC,IAAMU,iBAAiB,IAAAT,qBAAA,GAAGR,OAAO,CAACiB,iBAAiB,cAAAT,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAEzD,IAAI,CAACU,UAAU,IAAAjF,MAAA,CAAI+D,OAAO,CAACX,QAAQ,CAAE,CAAC;MAEtC,IAAI8B,YAAsB,GAAG,CAC5BH,MAAM,CAAC3H,MAAM,GAAG,CAAC,cAAA4C,MAAA,CAAc+E,MAAM,CAAC3H,MAAM,IAAK,IAAI,EACrDsH,cAAc,CAACtH,MAAM,GAAG,CAAC,uBAAA4C,MAAA,CACF0E,cAAc,CAACtH,MAAM,IACzC,IAAI,EACPyH,YAAY,CAACzH,MAAM,GAAG,CAAC,qBAAA4C,MAAA,CAAqB6E,YAAY,CAACzH,MAAM,IAAK,IAAI,EACxE0H,YAAY,CAAC1H,MAAM,GAAG,CAAC,qBAAA4C,MAAA,CAAqB8E,YAAY,CAAC1H,MAAM,IAAK,IAAI,EACxE4H,iBAAiB,CAAC5H,MAAM,GAAG,CAAC,8BAAA4C,MAAA,CACEgF,iBAAiB,CAAC5H,MAAM,IACnD,IAAI,EAAA4C,MAAA,KAAAmF,mBAAA,cAAAX,qBAAA,GACHT,OAAO,CAACmB,YAAY,cAAAV,qBAAA,cAAAA,qBAAA,GAAI,EAAE,GAC7B7H,MAAM,CAAC,UAAC6F,IAAI;QAAA,OAAK,CAAC,CAACA,IAAI;MAAA,EAAa;MAEtC,IAAI0C,YAAY,CAAC9H,MAAM,KAAK,CAAC,EAAE;QAC9B8H,YAAY,CAACpI,IAAI,CAAC,oBAAoB,CAAC;MACxC;MACA,IAAI,CAACoG,aAAa,CAAC;QAClBE,QAAQ,KAAApD,MAAA,CAAKoF,mBAAY,CAACC,eAAe,CACxCtB,OAAO,CAACuB,WAAW,EACnBvB,OAAO,CAACwB,UACT,CAAC,aAAU;QACXjD,KAAK,EAAE4C;MACR,CAAC,CAAC;MAEF,IAAIF,iBAAiB,CAAC5H,MAAM,GAAG,CAAC,EAAE;QACjC,IAAMoI,KAAK,GAAG,IAAIC,oBAAK,CAAC;UACvBC,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;UACrBC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;UAClBC,QAAQ,EAAE,IAAI;UACdC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ;QAC7B,CAAC,CAAC;QACFb,iBAAiB,CACfc,IAAI,CAAC,UAACC,GAAG,EAAEC,GAAG;UAAA,OAAMD,GAAG,CAACxG,IAAI,GAAGyG,GAAG,CAACzG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAAA,CAAC,CAAC,CAClDjC,OAAO,CAAC,UAAC2I,GAAG,EAAK;UACjBT,KAAK,CAAC1I,IAAI,CAAC,CAACmJ,GAAG,CAAC1G,IAAI,EAAE0G,GAAG,CAACC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEH,IAAI,CAAChD,aAAa,CAAC;UAClBE,QAAQ,wBAAwB;UAChCd,KAAK,EAAE,CAACkD,KAAK,CAACpG,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;MACH;MAEA,SAAA+G,EAAA,MAAAC,IAAA,GAAkB,CAAC1B,cAAc,EAAEG,YAAY,CAAC,EAAAsB,EAAA,GAAAC,IAAA,CAAAhJ,MAAA,EAAA+I,EAAA,IAAE;QAA7C,IAAIxB,KAAK,GAAAyB,IAAA,CAAAD,EAAA;QACb,IAAIxB,KAAK,CAACvH,MAAM,GAAG,CAAC,EAAE;UACrB,IAAMoI,MAAK,GAAG,IAAIC,oBAAK,CAAC;YACvBC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;YAC7BE,QAAQ,EAAE;UACX,CAAC,CAAC;UAEFjB,KAAK,GAAGA,KAAK,CAACmB,IAAI,CAAC,CAAC;UAAA,IAAAO,SAAA,GAAA3I,0BAAA,CAEDiH,KAAK;YAAA2B,KAAA;UAAA;YAAxB,KAAAD,SAAA,CAAAjI,CAAA,MAAAkI,KAAA,GAAAD,SAAA,CAAAhI,CAAA,IAAAC,IAAA,GAA0B;cAAA,IAAAiI,iBAAA;cAAA,IAAfC,IAAI,GAAAF,KAAA,CAAA/H,KAAA;cACdiH,MAAK,CAAC1I,IAAI,CAAC,CAAC0J,IAAI,CAACjH,IAAI,GAAAgH,iBAAA,GAAEC,IAAI,CAACC,WAAW,cAAAF,iBAAA,cAAAA,iBAAA,GAAI,EAAE,CAAC,CAAC;YAChD;UAAC,SAAAzH,GAAA;YAAAuH,SAAA,CAAA7H,CAAA,CAAAM,GAAA;UAAA;YAAAuH,SAAA,CAAA3H,CAAA;UAAA;UAED,IAAI,CAACwE,aAAa,CAAC;YAClBE,QAAQ,KAAApD,MAAA,CAAK0G,2BAAS,CAACC,QAAQ,CAAChC,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,kBAAe;YAC/DtC,KAAK,EAAE,CAACkD,MAAK,CAACpG,QAAQ,CAAC,CAAC;UACzB,CAAC,CAAC;QACH;MACD;MAEA,IAAI2E,OAAO,CAAC6C,KAAK,EAAE;QAClB,IAAI,CAAC1D,aAAa,CAAC;UAClBE,QAAQ,EAAE,eAAe;UACzBd,KAAK,EAAEyB,OAAO,CAAC6C;QAChB,CAAC,CAAC;MACH;MAEA,IAAI7B,MAAM,CAAC3H,MAAM,GAAG,CAAC,EAAE;QACtB,IAAI,CAACwG,cAAc,CAAC,QAAQ,CAAC;QAC7BmB,MAAM,CAACzH,OAAO,CAAC,UAACwB,GAAG;UAAA,OAAK2F,MAAI,CAACoC,WAAW,CAAC/H,GAAG,CAAC;QAAA,EAAC;MAC/C;MAEA,IAAIiF,OAAO,CAAC+C,SAAS,EAAE;QACtB,IAAI,CAACrE,UAAU,gBAAAzC,MAAA,CACC+G,oBAAY,CAACC,YAAY,CAACjD,OAAO,CAAC+C,SAAS,CAAC,CAC5D,CAAC;MACF;IACD;EAAC;IAAA/K,GAAA;IAAAwC,KAAA,EAED,SAAAqF,eACCqD,OAAe,EAMd;MAAA,IALD/G,OAA6B,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,CAC/BiD,qCAAkB,CAACqD,IAAI,EACvBrD,qCAAkB,CAACG,IAAI,CACvB;MAAA,IACD+C,cAAoC,GAAAnG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,EAAE;MAEzC,IAAM+J,QAAQ,GAAGhH,OAAO,CAACa,OAAO,CAACX,qCAAkB,CAACC,YAAY,CAAC,GAAG,CAAC,CAAC;MAEtE,IAAI6G,QAAQ,EAAE;QACbC,kBAAK,CAACC,GAAG,CAACH,OAAO,EAAE;UAClBI,IAAI,EAAEjH,qCAAkB,CAACC,YAAY;UACrCiH,KAAK,EAAE,MAAM;UACbC,KAAK,EAAE,KAAK;UACZC,MAAM,EAAEvH,sBAAsB,CAACC,OAAO;QACvC,CAAC,CAAC;MACH,CAAC,MAAM;QACN,IAAI,CAAC2C,aAAa,CAACS,cAAc,CAAC;QAClC,IAAI,CAACb,UAAU,CAACwE,OAAO,EAAE/G,OAAO,CAAC;QACjC,IAAI,CAAC2C,aAAa,CAACS,cAAc,CAAC;QAClC,IAAI,CAACb,UAAU,CAAC,EAAE,CAAC;MACpB;IACD;EAAC;IAAA1G,GAAA;IAAAwC,KAAA,EAED,SAAAkJ,SAAgBC,KAAa,EAAQ;MACpCC,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC,SAAS,GAAGH,KAAK,GAAG,MAAM,CAAC;IACjD;EAAC;IAAA3L,GAAA;IAAAwC,KAAA,EAED,SAAA0G,WAAkBgC,OAAe,EAAE/G,OAA8B,EAAE;MAClE,IAAM4H,iBAAiB,GAAGH,OAAO,CAACC,MAAM,CAACG,OAAO,GAAG,EAAE;MAErD,IAAIC,QAAQ,GAAGF,iBAAiB,GAC7Bb,OAAO,CAACgB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,GAChChB,OAAO;MAEV,IACCa,iBAAiB,IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC/G,OAAO,CAACkG,OAAO,CAAC,CAAC,CAAC,CAACiB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAC/D;QACDF,QAAQ,MAAAhI,MAAA,CAAMiH,OAAO,CAAC,CAAC,CAAC,EAAAjH,MAAA,CAAGgI,QAAQ,CAAE;MACtC;MAEAb,kBAAK,CAACC,GAAG,CAACY,QAAQ,EAAE;QACnBV,KAAK,EAAE,MAAM;QACba,QAAQ,EAAE,CAAC/H,qCAAkB,CAACgI,GAAG,EAAEhI,qCAAkB,CAACqD,IAAI,CAAC;QAC3D+D,MAAM,EAAEtH,OAAO,GAAGD,sBAAsB,CAACC,OAAO,CAAC,GAAGiB;MACrD,CAAC,CAAC;IACH;EAAC;IAAApF,GAAA;IAAAwC,KAAA,EAED,SAAA8J,WAAkBpB,OAAe,EAAE;MAClC,OAAO,IAAI,CAACxE,UAAU,mCAAAzC,MAAA,CAAUiH,OAAO,CAAE,CAAC;IAC3C;EAAC;IAAAlL,GAAA;IAAAwC,KAAA,EAED,SAAAkE,WACCwE,OAAY,EAGX;MAAA,IAFD/G,OAA6B,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgE,SAAA,GAAAhE,SAAA,MAAG,EAAE;MAAA,IAClCgG,OAAiC,GAAAhG,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAgE,SAAA;MAEjC,IAAI0G,KAAU,GAAG/E,iBAAK;MACtB5C,OAAO,CAAC5C,OAAO,CAAC,UAAC6C,MAAM,EAAK;QAC3B0H,KAAK,GAAGA,KAAK,CAAC1H,MAAM,CAAC;MACtB,CAAC,CAAC;MAEF,IAAIgD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEmF,iBAAiB,EAAE;QAC/BC,qBAAQ,CAACC,SAAS,CAAC,CAAC;MACrB;MAEA,IAAI,CAACpH,GAAG,CAAClB,OAAO,CAAC9C,MAAM,GAAG,CAAC,GAAGyK,KAAK,CAACZ,OAAO,CAAC,GAAGA,OAAO,CAAC;IACxD;EAAC;IAAAlL,GAAA;IAAAwC,KAAA,EAED,SAAAkK,cAAqBxB,OAAe,EAAE;MACrC,IAAI,CAACxE,UAAU,iBAAAzC,MAAA,CAAOiH,OAAO,GAAI,CAChC7G,qCAAkB,CAACG,IAAI,EACvBH,qCAAkB,CAACsI,MAAM,CACzB,CAAC;IACH;EAAC;IAAA3M,GAAA;IAAAwC,KAAA;MAAA,IAAAoK,aAAA,OAAAjH,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAgH,SAA0B3B,OAAgB;QAAA,OAAAtF,YAAA,YAAAG,IAAA,UAAA+G,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7G,IAAA,GAAA6G,SAAA,CAAA9J,IAAA;YAAA;cACzC;cACA,IAAI,CAAC+J,WAAW,CAAC,CAAC;cAClB/H,iBAAiB,CAACgI,MAAM,GAAG,IAAAC,eAAG,EAAC;gBAC9BC,IAAI,EAAEjC;cACP,CAAC,CAAC,CAACkC,KAAK,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAL,SAAA,CAAA3G,IAAA;UAAA;QAAA,GAAAyG,QAAA;MAAA,CACV;MAAA,SAAAQ,aAAAC,EAAA;QAAA,OAAAV,aAAA,CAAA5L,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiM,YAAA;IAAA;EAAA;IAAArN,GAAA;IAAAwC,KAAA;MAAA,IAAA+K,YAAA,OAAA5H,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA2H,SAAA;QAAA,IAAAC,qBAAA;QAAA,OAAA7H,YAAA,YAAAG,IAAA,UAAA2H,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAzH,IAAA,GAAAyH,SAAA,CAAA1K,IAAA;YAAA;cACC,CAAAwK,qBAAA,GAAAxI,iBAAiB,CAACgI,MAAM,cAAAQ,qBAAA,uBAAxBA,qBAAA,CAA0BrH,IAAI,CAAC,CAAC;cAChCnB,iBAAiB,CAACgI,MAAM,GAAG,IAAI;YAAA;YAAA;cAAA,OAAAU,SAAA,CAAAvH,IAAA;UAAA;QAAA,GAAAoH,QAAA;MAAA,CAC/B;MAAA,SAAAR,YAAA;QAAA,OAAAO,YAAA,CAAAvM,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA4L,WAAA;IAAA;EAAA;IAAAhN,GAAA;IAAAwC,KAAA;MAAA,IAAAoL,QAAA,OAAAjI,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAgI,SAAqBC,QAAgB;QAAA,IAAAC,aAAA;QAAA,OAAAnI,YAAA,YAAAG,IAAA,UAAAiI,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/H,IAAA,GAAA+H,SAAA,CAAAhL,IAAA;YAAA;cAAAgL,SAAA,CAAAhL,IAAA;cAAA,OACRiL,oBAAQ,CAACC,MAAM,CAAC;gBAC3CC,IAAI,EAAE,SAAS;gBACf5K,IAAI,EAAE,QAAQ;gBACd0H,OAAO,EAAE4C;cACV,CAAC,CAAC;YAAA;cAJIC,aAAa,GAAAE,SAAA,CAAAI,IAAA;cAAA,OAAAJ,SAAA,CAAAK,MAAA,WAMZ,CAAC,CAACP,aAAa,CAACQ,MAAM;YAAA;YAAA;cAAA,OAAAN,SAAA,CAAA7H,IAAA;UAAA;QAAA,GAAAyH,QAAA;MAAA,CAC7B;MAAA,SAAAW,QAAAC,GAAA;QAAA,OAAAb,QAAA,CAAA5M,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAoN,OAAA;IAAA;EAAA;IAAAxO,GAAA;IAAAwC,KAAA;MAAA,IAAAkM,aAAA,OAAA/I,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA8I,SAA0BzD,OAAgB;QAAA,OAAAtF,YAAA,YAAAG,IAAA,UAAA6I,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA3I,IAAA,GAAA2I,SAAA,CAAA5L,IAAA;YAAA;cAAA4L,SAAA,CAAA5L,IAAA;cAAA,OACnC,IAAI,CAACkL,MAAM,CAAC;gBACjBC,IAAI,EAAE,MAAM;gBACZU,KAAK,KAAA7K,MAAA,CAAKiH,OAAO,GAAGA,OAAO,GAAG,GAAG,GAAG,EAAE,EAAAjH,MAAA,CAAG8C,iBAAK,CAACgI,aAAa,CAACC,KAAK,CACjE,WACD,CAAC;cACF,CAAC,CAAC;YAAA;cACF,IAAI,CAACtI,UAAU,CAAC,EAAE,CAAC;cAAA,OAAAmI,SAAA,CAAAP,MAAA;YAAA;YAAA;cAAA,OAAAO,SAAA,CAAAzI,IAAA;UAAA;QAAA,GAAAuI,QAAA;MAAA,CAEnB;MAAA,SAAAM,aAAAC,GAAA;QAAA,OAAAR,aAAA,CAAA1N,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA6N,YAAA;IAAA;EAAA;IAAAjP,GAAA;IAAAwC,KAAA,EAED,SAAA2M,MAAA,EAAe;MACd,KAAK,IAAI,CAACnC,WAAW,CAAC,CAAC;MACvB1H,OAAO,CAAC6J,KAAK,CAAC,CAAC;IAChB;EAAC;IAAAnP,GAAA;IAAAwC,KAAA,EAED,SAAA4M,iBAAwBC,IAAY,EAAE;MACrC,IAAI;QACH,IAAMC,OAAO,GAAGC,qBAAS,CAACC,SAAS,CAAC,IAAI,EAAEH,IAAI,CAAC,CAAC7M,KAAK;QACrD,IAAI,CAACkE,UAAU,CAAC4I,OAAO,CAAC;MACzB,CAAC,CAAC,OAAOvM,GAAQ,EAAE;QAClB,IAAI,CAAC2J,aAAa,CAAC3J,GAAG,CAAC;MACxB;IACD;EAAC;IAAA/C,GAAA;IAAAwC,KAAA;MAAA,IAAAiN,OAAA,OAAA9J,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA6J,SACCC,UAAa;QAAA,IAAAnM,IAAA,EAAAoM,eAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,OAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,QAAA,EAAAzH,KAAA,EAAA0H,QAAA,EAAAC,MAAA;QAAA,OAAA3K,YAAA,YAAAG,IAAA,UAAAyK,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAvK,IAAA,GAAAuK,SAAA,CAAAxN,IAAA;YAAA;cAEb,IAAI,CAACyN,cAAc,GAAG,IAAI;cACpBlN,IAAI,GAAGQ,yBAAyB,CAAC,CAAC;cAClC4L,eAAiC,GAAGD,UAAU;cAC5CE,YAAY,GAAKD,eAAe,CAAhCC,YAAY;cAEdC,aAAkC,GAAG;gBAC1C,WAASD,YAAY;gBACrBrM,IAAI,EAAJA,IAAI;gBACJ0H,OAAO,EAAE,IAAI,CAACyF,mBAAmB,CAACf,eAAe;cAClD,CAAC;cAEKG,KAAK,GAAGa,oBAAY,CAACC,KAAK,CAAC,QAAQ,EAAEjB,eAAe,CAAC;cAE3DE,aAAa,CAACgB,WAAW,GAAG,UAACtO,KAAa,EAAK;gBAC9C,OAAQuN,KAAK,CAAiBgB,WAAW,CAACvO,KAAK,CAAC;cACjD,CAAC;cAEDsN,aAAa,CAACkB,QAAQ,GAAG,UAACxO,KAAa,EAAK;gBAC3C,OAAO,IAAAyO,4BAAoB,EAC1B;kBACCC,EAAE,EAAE,sBAAsB;kBAC1BC,MAAM,EAAE;oBACPhD,MAAM,EAAEyB;kBACT;gBACD,CAAC,EACD;kBAAEzB,MAAM,EAAE3L;gBAAM,CACjB,CAAC;gBACD;cACD,CAAC;cAAAiO,SAAA,CAAAW,EAAA,GAEOxB,eAAe,CAACxB,IAAI;cAAAqC,SAAA,CAAAxN,IAAA,GAAAwN,SAAA,CAAAW,EAAA,KAEtB,SAAS,QAAAX,SAAA,CAAAW,EAAA,KAIT,QAAQ,QAAAX,SAAA,CAAAW,EAAA,KAeR,WAAW,QAAAX,SAAA,CAAAW,EAAA,KA6BX,MAAM;cAAA;YAAA;cA/CVtB,aAAa,CAAC1B,IAAI,GAAG,SAAS;cAAA,OAAAqC,SAAA,CAAAnC,MAAA;YAAA;cAI9BwB,aAAa,CAAC1B,IAAI,GAAGwB,eAAe,CAAC1N,OAAO,GAAG,UAAU,GAAG,MAAM;cAElE4N,aAAa,CAACuB,OAAO,GAAGzB,eAAe,CAACxI,OAAO,CAACiK,OAAO,CAACC,GAAG;cAC1D;cACA,UAACC,MAAM;gBAAA,OAAM;kBACZ/N,IAAI,EAAE+N,MAAM,CAACzC,KAAK;kBAClBtM,KAAK,EAAE+O,MAAM,CAAC/O,KAAK;kBACnBgP,OAAO,EAAEC,kBAAC,CAACC,QAAQ,CAAC9B,eAAe,CAACC,YAAY,EAAE0B,MAAM,CAAC/O,KAAK;gBAC/D,CAAC;cAAA,CACF,CAAC;cAAA,OAAAiO,SAAA,CAAAnC,MAAA;YAAA;cAAA,KAMGsB,eAAe,CAAC1N,OAAO;gBAAAuO,SAAA,CAAAxN,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAI0O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBuC,eAAe,EACd;cACF,CAAC,CAAC;YAAA;cAGG1B,OAAO,GAAG2B,gBAAI,CAACC,IAAI,EAAA9B,qBAAA,IAAAC,sBAAA,GACxBL,eAAe,CAACC,YAAY,cAAAI,sBAAA,uBAA5BA,sBAAA,CAA8B4B,IAAI,cAAA7B,qBAAA,cAAAA,qBAAA,GAAI,IAAI,CAAC9K,GAAG,EAC9C,GACD,CAAC;cAED4K,aAAa,CAAC1B,IAAI,GAAG,MAAM;cAC3B0B,aAAa,CAACiC,IAAI,GAAG7B,OAAO;cAC5BJ,aAAa,CAACkC,WAAW,GAAG,IAAI;;cAEhC;cACAlC,aAAa,CAACkB,QAAQ,GAAG,UAACxO,KAAa,EAAK;gBAC3C,OAAOyP,mBAAE,CAACC,UAAU,CAAC1P,KAAK,CAAC,IAAIyP,mBAAE,CAACE,SAAS,CAAC3P,KAAK,CAAC,CAAC4P,WAAW,CAAC,CAAC;cACjE,CAAC;cACD;cACAtC,aAAa,CAACgB,WAAW,GAAG,UAACe,IAAY,EAAK;gBAC7C,IAAMQ,WAAW,GAAGR,IAAI,CAAC3F,OAAO,CAAC4D,aAAa,CAACiC,IAAI,EAAE,EAAE,CAAC;gBACxD,OAAOM,WAAW,CAAChR,MAAM,KAAK,CAAC,GAAGyO,aAAa,CAACiC,IAAI,GAAGM,WAAW;cACnE,CAAC;cAAA,OAAA5B,SAAA,CAAAnC,MAAA;YAAA;cAAA,KAIGsB,eAAe,CAAC1N,OAAO;gBAAAuO,SAAA,CAAAxN,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAI0O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBuC,eAAe,EACd;cACF,CAAC,CAAC;YAAA;cAEG1B,QAAO,GAAG2B,gBAAI,CAACC,IAAI,EAAA3B,sBAAA,IAAAC,sBAAA,GACxBR,eAAe,CAACC,YAAY,cAAAO,sBAAA,uBAA5BA,sBAAA,CAA8BkC,GAAG,cAAAnC,sBAAA,cAAAA,sBAAA,GAAI,IAAI,CAACjL,GAAG,EAC7C,GACD,CAAC,EAED;cAAAuL,SAAA,CAAAxN,IAAA;cAAA,OACoB,IAAAsP,kBAAM,KAAAtO,MAAA,CAAIiM,QAAO,SAAM,CAAC;YAAA;cAAtCtH,KAAK,GAAA6H,SAAA,CAAApC,IAAA;cAAA,MAEPzF,KAAK,CAACvH,MAAM,KAAK,CAAC;gBAAAoP,SAAA,CAAAxN,IAAA;gBAAA;cAAA;cAAA,MACf,IAAI0O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBmD,SAAS,EAAEtC,QAAO;gBAClB0B,eAAe,2DAAA3N,MAAA,CAA2DiM,QAAO;cAClF,CAAC,CAAC;YAAA;cAGHJ,aAAa,CAAC1B,IAAI,GAAG,MAAM;cAC3B0B,aAAa,CAACiC,IAAI,GAAG7B,QAAO;;cAE5B;cACAJ,aAAa,CAACkB,QAAQ,GAAG,UAACxO,KAAa,EAAK;gBAC3C,OACCyP,mBAAE,CAACC,UAAU,CAAC1P,KAAK,CAAC,IACpB,CAACyP,mBAAE,CAACE,SAAS,CAAC3P,KAAK,CAAC,CAAC4P,WAAW,CAAC,CAAC,IAClCP,gBAAI,CAACY,OAAO,CAACjQ,KAAK,CAAC,KAAK,KAAK;cAE/B,CAAC;cACD;cACAsN,aAAa,CAACgB,WAAW,GAAG,UAACe,IAAY,EAAK;gBAC7C,IAAMQ,WAAW,GAAGR,IAAI,CAAC3F,OAAO,CAAC4D,aAAa,CAACiC,IAAI,EAAE,EAAE,CAAC;gBACxD,OAAOM,WAAW,CAAChR,MAAM,KAAK,CAAC,GAAGyO,aAAa,CAACiC,IAAI,GAAGM,WAAW;cACnE,CAAC;cAAA,OAAA5B,SAAA,CAAAnC,MAAA;YAAA;cAMDwB,aAAa,CAAC1B,IAAI,GAAG,OAAO;YAAA;cAAAqC,SAAA,CAAAxN,IAAA;cAAA,OAGNiL,oBAAQ,CAACC,MAAM,CAAC2B,aAAa,CAAC;YAAA;cAAhDQ,QAAQ,GAAAG,SAAA,CAAApC,IAAA;cAEd,IAAI,CAACqC,cAAc,GAAG,KAAK;cAErBH,MAAM,GACX,OAAOD,QAAQ,CAAC9M,IAAI,CAAC,KAAK,WAAW,GACjCuM,KAAK,CAAiBgB,WAAW,CAACT,QAAQ,CAAC9M,IAAI,CAAC,CAAC,GAClD8M,QAAQ,CAAC9M,IAAI,CAAC;cAAA,OAAAiN,SAAA,CAAAnC,MAAA,WAEXiC,MAAM;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAArK,IAAA;UAAA;QAAA,GAAAsJ,QAAA;MAAA,CACb;MAAA,SAAAvB,OAAAuE,GAAA;QAAA,OAAAjD,OAAA,CAAAzO,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA+M,MAAA;IAAA;EAAA;IAAAnO,GAAA;IAAAwC,KAAA,EACD,SAAAmO,oBAA4Bf,eAAiC,EAAO;MACnE,IAAId,KAAK,GAAGc,eAAe,CAACd,KAAK;MAEjC,IAAIc,eAAe,CAAC+C,IAAI,EAAE;QACzB7D,KAAK,MAAA7K,MAAA,CAAM6K,KAAK,OAAA7K,MAAA,CAAI8C,iBAAK,CAAC6L,MAAM,CAACC,GAAG,KAAA5O,MAAA,CAAK2L,eAAe,CAAC+C,IAAI,MAAG,CAAC,CAAE;MACpE;MAEA7D,KAAK,GAAGA,KAAK,GAAG,IAAI;MAEpB,OAAOA,KAAK;IACb;EAAC;IAAA9O,GAAA;IAAAwC,KAAA,EAED,SAAAsI,YAAmB/H,GAAU,EAAE;MAC9B;MACA,IAAI,CAACiK,WAAW,CAAC,CAAC;MAElB,IAAM9B,OAAO,GAAGnI,GAAG,CAACmI,OAAO;MAC3B;MACA,IAAM4H,UAAU,GAAG,IAAI,CAACC,UAAU,CAAChQ,GAAG,CAAC;MACvC,IAAI,CAACoE,aAAa,CAAC;QAClBE,QAAQ,EAAE6D,OAAO;QACjB3E,KAAK,EAAE,IAAI,CAACpB,iBAAiB,GAAG2N,UAAU,CAACE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG5N,SAAS;QACrEqC,eAAe,EAAE,CAACpD,qCAAkB,CAACG,IAAI,EAAEH,qCAAkB,CAACgI,GAAG,CAAC;QAClE9E,cAAc,EAAE,CAAClD,qCAAkB,CAACgI,GAAG,CAAC;QACxCzE,WAAW,EAAE,CAACvD,qCAAkB,CAACgI,GAAG;MACrC,CAAC,CAAC;IACH;EAAC;IAAArM,GAAA;IAAAwC,KAAA,EAED,SAAAuQ,WAAmBhQ,GAAU,EAAE;MAC9B,IAAMmI,OAAO,GAAGnI,GAAG,CAACmI,OAAO;MAC3B,IAAI+H,KAAK,GAAGlQ,GAAG,CAACkQ,KAAK,GAAGlQ,GAAG,CAACkQ,KAAK,CAAC/G,OAAO,CAAChB,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE;MAE3D,IAAInI,GAAG,YAAYmQ,iBAAmB,EAAE;QACvC,IAAIC,QAAQ,GAAGpQ,GAAG,CAACqQ,aAAa;QAChC,OAAOD,QAAQ,EAAE;UAChBF,KAAK,GAAGA,KAAK,CAAC/G,OAAO,CAAC,SAAS,GAAGiH,QAAQ,CAACjI,OAAO,EAAE,EAAE,CAAC;UACvDiI,QAAQ,GAAIA,QAAQ,CAAyBC,aAAa;QAC3D;MACD;MAEA,IAAMN,UAAU,GAAGG,KAAK,CAACI,KAAK,CAAC,IAAI,CAAC;MAEpC,OAAOP,UAAU;IAClB;EAAC;IAAA9S,GAAA;IAAAwC,KAAA,EAED,SAAA8Q,kBAAyBlM,OAA2B,EAAQ;MAC3D,IAAI,CAACmM,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACC,WAAW,GAAGhH,qBAAQ,CAACgH,WAAW,CAAAvS,aAAA,CAAAA,aAAA,KACnCmG,OAAO;QACVqM,OAAO,EAAErM,OAAO,CAACsM,WAAW;QAC5BC,GAAG,EAAEvM,OAAO,CAACwM,OAAO;QACpBC,KAAK,EAAEzM,OAAO,CAAC0M,UAAU;QACzBC,MAAM,EAAE3M,OAAO,CAAC4M;MAAY,EAC5B,CAAC;IACH;EAAC;IAAAhU,GAAA;IAAAwC,KAAA,EAED,SAAA+Q,kBAAA,EAA2B;MAC1B,IAAI,IAAI,CAACC,WAAW,EAAE;QACrB,IAAI,CAACA,WAAW,CAACpN,IAAI,CAAC,CAAC;QACvB,IAAI,CAACoN,WAAW,GAAG,IAAI;MACxB;IACD;EAAC;IAAAxT,GAAA;IAAAwC,KAAA,EAED,SAAAyR,kBAAyB7M,OAAiC,EAAQ;MACjE,IAAI,IAAI,CAACoM,WAAW,EAAE;QACrB,IAAI,CAACA,WAAW,CAACU,MAAM,CAAAjT,aAAA,CAAAA,aAAA,KACnBmG,OAAO;UACVyM,KAAK,EAAEzM,OAAO,CAAC0M;QAAU,EACzB,CAAC;MACH;IACD;EAAC;IAAA9T,GAAA;IAAAwC,KAAA;MAAA,IAAA2R,YAAA,OAAAxO,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAuO,SACCvC,IAAY,EACZzK,OAAyB;QAAA,IAAAiN,KAAA;QAAA,OAAAzO,YAAA,YAAAG,IAAA,UAAAuO,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAArO,IAAA,GAAAqO,SAAA,CAAAtR,IAAA;YAAA;cAAAsR,SAAA,CAAAtR,IAAA;cAAA,OAELa,aAAa,CAAC2G,IAAI,CAACoH,IAAI,EAAEzK,OAAO,CAAC;YAAA;cAA/CiN,KAAK,GAAAE,SAAA,CAAAlG,IAAA;cACX,IAAI,CAAC3H,UAAU,CAAC2N,KAAK,CAAC;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAAnO,IAAA;UAAA;QAAA,GAAAgO,QAAA;MAAA,CACtB;MAAA,SAAAI,YAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAP,YAAA,CAAAnT,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAoT,WAAA;IAAA;EAAA;IAAAxU,GAAA;IAAAwC,KAAA;MAAA,IAAAmS,kBAAA,OAAAhP,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA+O,SAAA;QAAA,OAAAhP,YAAA,YAAAG,IAAA,UAAA8O,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5O,IAAA,GAAA4O,SAAA,CAAA7R,IAAA;YAAA;cAAA,OAAA6R,SAAA,CAAAxG,MAAA,WACQ,IAAIyG,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BxI,qBAAQ,CAACyI,qBAAqB,CAAC,CAAC;gBAChCzI,qBAAQ,CAAC0I,iBAAiB,CAAC,UAACnS,GAAG,EAAEoS,CAAC,EAAEC,CAAC,EAAK;kBACzCJ,OAAO,CAACjS,GAAG,GAAG,IAAI,GAAG;oBAAEoS,CAAC,EAAEA,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI,CAAC;oBAAEC,CAAC,EAAEA,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI;kBAAE,CAAC,CAAC;gBAC/C,CAAC,CAAC;cACH,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAN,SAAA,CAAA1O,IAAA;UAAA;QAAA,GAAAwO,QAAA;MAAA,CACF;MAAA,SAAAS,kBAAA;QAAA,OAAAV,kBAAA,CAAA3T,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAiU,iBAAA;IAAA;EAAA;IAAArV,GAAA;IAAAwC,KAAA,EAED,SAAA8S,WAAA,EAAoB;MACnB9I,qBAAQ,CAAC8I,UAAU,CAAC,CAAC;IACtB;EAAC;IAAAtV,GAAA;IAAAwC,KAAA,EAED,SAAA+S,cAAA,EAAuB;MACtB/I,qBAAQ,CAAC+I,aAAa,CAAC,CAAC;IACzB;EAAC;IAAAvV,GAAA;IAAAwC,KAAA,EAED,SAAAgT,aAAoBL,CAAS,EAAEC,CAAS,EAAQ;MAC/C5I,qBAAQ,CAACiJ,MAAM,CAACN,CAAC,EAAEC,CAAC,CAAC;IACtB;EAAC;IAAApV,GAAA;IAAAwC,KAAA,EAED,SAAAkT,iBAAA,EAAgC;MAC/BlJ,qBAAQ,CAACmJ,iBAAiB,CAAC,CAAC;IAC7B;EAAC;IAAA3V,GAAA;IAAAwC,KAAA,EAED,SAAAiK,UAAA,EAAmB;MAClBD,qBAAQ,CAACC,SAAS,CAAC,CAAC;IACrB;EAAC;IAAAzM,GAAA;IAAAwC,KAAA,EAxiBD,SAAAoT,iBAAA,EAAiC;MAChC,OAAO,IAAI,CAACC,iBAAiB;IAC9B;EAAC;IAAA7V,GAAA;IAAAwC,KAAA,EAED,SAAAsT,oBAAkCC,KAAc,EAAE;MACjD,IAAI,CAACF,iBAAiB,GAAGE,KAAK;IAC/B;EAAC;EAAA,OAAA9Q,iBAAA;AAAA;AAAA+Q,OAAA,cAAA/Q,iBAAA;AAAA,IAAAzD,gBAAA,aAzBmByD,iBAAiB;AAAA,IAAAzD,gBAAA,aAAjByD,iBAAiB,uBAMF,EAAAlG,QAAA,GAAA6M,OAAO,cAAA7M,QAAA,gBAAAA,QAAA,GAAPA,QAAA,CAAS8M,MAAM,cAAA9M,QAAA,uBAAfA,QAAA,CAAiBkX,KAAK,KAAI,CAAC,IAAAC,gBAAI,EAAC,CAAC"}
@@ -112,12 +112,12 @@ var CommandService = /*#__PURE__*/function () {
112
112
  }
113
113
  (_child$stdout2 = child.stdout) === null || _child$stdout2 === void 0 ? void 0 : _child$stdout2.addListener('data', function (data) {
114
114
  var _options$onData;
115
- options === null || options === void 0 ? void 0 : (_options$onData = options.onData) === null || _options$onData === void 0 ? void 0 : _options$onData.call(options, data.toString());
115
+ options === null || options === void 0 || (_options$onData = options.onData) === null || _options$onData === void 0 ? void 0 : _options$onData.call(options, data.toString());
116
116
  stdout += data;
117
117
  });
118
118
  (_child$stderr = child.stderr) === null || _child$stderr === void 0 ? void 0 : _child$stderr.addListener('data', function (data) {
119
119
  var _options$onError;
120
- options === null || options === void 0 ? void 0 : (_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(options, data.toString());
120
+ options === null || options === void 0 || (_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(options, data.toString());
121
121
  stderr += data;
122
122
  });
123
123
  var closeHandler = function closeHandler(code) {
@@ -1 +1 @@
1
- {"version":3,"file":"CommandService.js","names":["_child_process","require","_error","_interopRequireDefault","_spruceSkillUtils","_escapeRegExp","_stringArgv","_treeKill","_SpruceError","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","process","setMaxListeners","CommandService","cwd","_this","_classCallCheck2","_this$activeChildProc","activeChildProcess","pid","ignoreCloseErrors","treeKill","_this$activeChildProc2","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","cmd","options","_this2","args","executable","boundKill","_this$getMockResponse","mockResponse","mockKey","_mockResponse$callbac","_mockResponse$stdout","wrap","_callee$","_context","prev","next","stringArgv","shift","kill","bind","Error","getMockResponse","commandsRunCapturedByMockResponses","callback","call","code","SpruceError","concat","join","stdout","stderr","abrupt","on","Promise","resolve","reject","_child$stdout2","_child$stderr","spawnOptions","shouldStream","stdio","env","PATH","IS_CLI","FORCE_COLOR","forceColor","shell","child","spawn","outStream","_child$stdout","pipe","addListener","data","_options$onData","onData","toString","_options$onError","onError","closeHandler","off","undefined","setTimeout","_child$stdout3","_child$stderr2","removeAllListeners","ignoreErrors","search","escapeRegExp","ERROR_DIVIDER","stderrParts","split","err","AbstractSpruceError","parse","stop","execute","_x","_x2","trim","commands","fakeResponses","match","find","r","command","RegExp","replace","response","fakeCommand","unshift","clearFakedResponses","exports"],"sources":["../../src/services/CommandService.ts"],"sourcesContent":["import { spawn, SpawnOptions, ChildProcess } from 'child_process'\nimport { Writable } from 'stream'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport { ERROR_DIVIDER } from '@sprucelabs/spruce-skill-utils'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport stringArgv from 'string-argv'\nimport treeKill from 'tree-kill'\nimport SpruceError from '../errors/SpruceError'\n\nprocess.setMaxListeners(100)\n\nexport default class CommandService {\n\tpublic cwd: string\n\tprivate activeChildProcess: ChildProcess | undefined\n\tprivate ignoreCloseErrors = false\n\tprivate static fakeResponses: {\n\t\tcommand: string | RegExp\n\t\tresponse: MockResponse\n\t}[] = []\n\tprivate static commandsRunCapturedByMockResponses: string[] = []\n\n\tpublic constructor(cwd: string) {\n\t\tthis.cwd = cwd\n\t}\n\n\tpublic async execute(\n\t\tcmd: string,\n\t\toptions?: {\n\t\t\tignoreErrors?: boolean\n\t\t\targs?: string[]\n\t\t\tshouldStream?: boolean\n\t\t\toutStream?: Writable\n\t\t\tonError?: (error: string) => void\n\t\t\tonData?: (data: string) => void\n\t\t\tspawnOptions?: SpawnOptions\n\t\t\tforceColor?: boolean\n\t\t\tenv?: Record<string, any>\n\t\t}\n\t): Promise<{\n\t\tstdout: string\n\t}> {\n\t\tconst cwd = this.cwd\n\t\tconst args = options?.args || stringArgv(cmd)\n\t\tconst executable = options?.args ? cmd : args.shift()\n\t\tconst boundKill = this.kill.bind(this)\n\n\t\tif (!executable) {\n\t\t\tthrow new Error('Bad params sent to command service')\n\t\t}\n\n\t\tconst { mockResponse, mockKey } = this.getMockResponse(executable, args)\n\n\t\tif (mockResponse) {\n\t\t\tCommandService.commandsRunCapturedByMockResponses.push(mockKey)\n\t\t\tmockResponse.callback?.(executable, args)\n\n\t\t\tif (mockResponse.code !== 0) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\tcwd,\n\t\t\t\t\tstdout: mockResponse.stdout,\n\t\t\t\t\tstderr: mockResponse.stderr,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn { stdout: mockResponse.stdout ?? '' }\n\t\t}\n\n\t\tprocess.on('exit', boundKill)\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet stdout = ''\n\t\t\tlet stderr = ''\n\t\t\tconst spawnOptions: SpawnOptions = options?.shouldStream\n\t\t\t\t? {\n\t\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshell: true,\n\t\t\t\t\t\t...options?.spawnOptions,\n\t\t\t\t }\n\n\t\t\tconst child = spawn(executable, args, spawnOptions)\n\t\t\tthis.activeChildProcess = child\n\n\t\t\tif (options?.outStream) {\n\t\t\t\tchild.stdout?.pipe(options.outStream)\n\t\t\t}\n\n\t\t\tchild.stdout?.addListener('data', (data) => {\n\t\t\t\toptions?.onData?.(data.toString())\n\t\t\t\tstdout += data\n\t\t\t})\n\n\t\t\tchild.stderr?.addListener('data', (data) => {\n\t\t\t\toptions?.onError?.(data.toString())\n\t\t\t\tstderr += data\n\t\t\t})\n\n\t\t\tconst closeHandler = (code: number) => {\n\t\t\t\tprocess.off('exit', boundKill)\n\n\t\t\t\tif (!this.activeChildProcess) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.activeChildProcess = undefined\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchild.stdout?.removeAllListeners()\n\t\t\t\t\tchild.stderr?.removeAllListeners()\n\t\t\t\t\tchild.removeAllListeners()\n\n\t\t\t\t\tif (code === 0 || this.ignoreCloseErrors || options?.ignoreErrors) {\n\t\t\t\t\t\tresolve({ stdout })\n\t\t\t\t\t\tthis.ignoreCloseErrors = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (stderr.search(escapeRegExp(ERROR_DIVIDER)) > -1) {\n\t\t\t\t\t\t\tconst stderrParts = stderr.split(ERROR_DIVIDER)\n\t\t\t\t\t\t\tconst err = AbstractSpruceError.parse(stderrParts[1], SpruceError)\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\tstdout,\n\t\t\t\t\t\t\t\tstderr,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}, 0)\n\t\t\t}\n\n\t\t\tchild.addListener('close', closeHandler)\n\t\t\tchild.addListener('exit', closeHandler)\n\t\t})\n\t}\n\n\tpublic kill = () => {\n\t\tif (this.activeChildProcess?.pid) {\n\t\t\tthis.ignoreCloseErrors = true\n\t\t\ttreeKill(this.activeChildProcess.pid, 'SIGTERM')\n\t\t}\n\t}\n\n\tpublic pid = () => {\n\t\treturn this.activeChildProcess?.pid\n\t}\n\n\tprivate getMockResponse(executable: string, args: string[]) {\n\t\tconst mockKey = `${executable} ${args.join(' ')}`.trim()\n\t\tconst commands = CommandService.fakeResponses\n\t\tconst match = commands.find((r) =>\n\t\t\tr.command instanceof RegExp\n\t\t\t\t? mockKey.search(r.command) > -1\n\t\t\t\t: r.command.replace(/ +/gis, '') === mockKey.replace(/ +/gis, '')\n\t\t)\n\n\t\treturn { mockResponse: match?.response, mockKey }\n\t}\n\n\tpublic static fakeCommand(command: string | RegExp, response: MockResponse) {\n\t\tthis.fakeResponses.unshift({\n\t\t\tcommand,\n\t\t\tresponse,\n\t\t})\n\t}\n\n\tpublic static clearFakedResponses() {\n\t\tthis.fakeResponses = []\n\t}\n}\n\ninterface MockResponse {\n\tcode: number\n\tstdout?: string\n\tstderr?: string\n\tcallback?: (executable: string, args: any[]) => void\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CommandService.js","names":["_child_process","require","_error","_interopRequireDefault","_spruceSkillUtils","_escapeRegExp","_stringArgv","_treeKill","_SpruceError","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","process","setMaxListeners","CommandService","cwd","_this","_classCallCheck2","_this$activeChildProc","activeChildProcess","pid","ignoreCloseErrors","treeKill","_this$activeChildProc2","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","cmd","options","_this2","args","executable","boundKill","_this$getMockResponse","mockResponse","mockKey","_mockResponse$callbac","_mockResponse$stdout","wrap","_callee$","_context","prev","next","stringArgv","shift","kill","bind","Error","getMockResponse","commandsRunCapturedByMockResponses","callback","call","code","SpruceError","concat","join","stdout","stderr","abrupt","on","Promise","resolve","reject","_child$stdout2","_child$stderr","spawnOptions","shouldStream","stdio","env","PATH","IS_CLI","FORCE_COLOR","forceColor","shell","child","spawn","outStream","_child$stdout","pipe","addListener","data","_options$onData","onData","toString","_options$onError","onError","closeHandler","off","undefined","setTimeout","_child$stdout3","_child$stderr2","removeAllListeners","ignoreErrors","search","escapeRegExp","ERROR_DIVIDER","stderrParts","split","err","AbstractSpruceError","parse","stop","execute","_x","_x2","trim","commands","fakeResponses","match","find","r","command","RegExp","replace","response","fakeCommand","unshift","clearFakedResponses","exports"],"sources":["../../src/services/CommandService.ts"],"sourcesContent":["import { spawn, SpawnOptions, ChildProcess } from 'child_process'\nimport { Writable } from 'stream'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport { ERROR_DIVIDER } from '@sprucelabs/spruce-skill-utils'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport stringArgv from 'string-argv'\nimport treeKill from 'tree-kill'\nimport SpruceError from '../errors/SpruceError'\n\nprocess.setMaxListeners(100)\n\nexport default class CommandService {\n\tpublic cwd: string\n\tprivate activeChildProcess: ChildProcess | undefined\n\tprivate ignoreCloseErrors = false\n\tprivate static fakeResponses: {\n\t\tcommand: string | RegExp\n\t\tresponse: MockResponse\n\t}[] = []\n\tprivate static commandsRunCapturedByMockResponses: string[] = []\n\n\tpublic constructor(cwd: string) {\n\t\tthis.cwd = cwd\n\t}\n\n\tpublic async execute(\n\t\tcmd: string,\n\t\toptions?: {\n\t\t\tignoreErrors?: boolean\n\t\t\targs?: string[]\n\t\t\tshouldStream?: boolean\n\t\t\toutStream?: Writable\n\t\t\tonError?: (error: string) => void\n\t\t\tonData?: (data: string) => void\n\t\t\tspawnOptions?: SpawnOptions\n\t\t\tforceColor?: boolean\n\t\t\tenv?: Record<string, any>\n\t\t}\n\t): Promise<{\n\t\tstdout: string\n\t}> {\n\t\tconst cwd = this.cwd\n\t\tconst args = options?.args || stringArgv(cmd)\n\t\tconst executable = options?.args ? cmd : args.shift()\n\t\tconst boundKill = this.kill.bind(this)\n\n\t\tif (!executable) {\n\t\t\tthrow new Error('Bad params sent to command service')\n\t\t}\n\n\t\tconst { mockResponse, mockKey } = this.getMockResponse(executable, args)\n\n\t\tif (mockResponse) {\n\t\t\tCommandService.commandsRunCapturedByMockResponses.push(mockKey)\n\t\t\tmockResponse.callback?.(executable, args)\n\n\t\t\tif (mockResponse.code !== 0) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\tcwd,\n\t\t\t\t\tstdout: mockResponse.stdout,\n\t\t\t\t\tstderr: mockResponse.stderr,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn { stdout: mockResponse.stdout ?? '' }\n\t\t}\n\n\t\tprocess.on('exit', boundKill)\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet stdout = ''\n\t\t\tlet stderr = ''\n\t\t\tconst spawnOptions: SpawnOptions = options?.shouldStream\n\t\t\t\t? {\n\t\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshell: true,\n\t\t\t\t\t\t...options?.spawnOptions,\n\t\t\t\t }\n\n\t\t\tconst child = spawn(executable, args, spawnOptions)\n\t\t\tthis.activeChildProcess = child\n\n\t\t\tif (options?.outStream) {\n\t\t\t\tchild.stdout?.pipe(options.outStream)\n\t\t\t}\n\n\t\t\tchild.stdout?.addListener('data', (data) => {\n\t\t\t\toptions?.onData?.(data.toString())\n\t\t\t\tstdout += data\n\t\t\t})\n\n\t\t\tchild.stderr?.addListener('data', (data) => {\n\t\t\t\toptions?.onError?.(data.toString())\n\t\t\t\tstderr += data\n\t\t\t})\n\n\t\t\tconst closeHandler = (code: number) => {\n\t\t\t\tprocess.off('exit', boundKill)\n\n\t\t\t\tif (!this.activeChildProcess) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.activeChildProcess = undefined\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchild.stdout?.removeAllListeners()\n\t\t\t\t\tchild.stderr?.removeAllListeners()\n\t\t\t\t\tchild.removeAllListeners()\n\n\t\t\t\t\tif (code === 0 || this.ignoreCloseErrors || options?.ignoreErrors) {\n\t\t\t\t\t\tresolve({ stdout })\n\t\t\t\t\t\tthis.ignoreCloseErrors = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (stderr.search(escapeRegExp(ERROR_DIVIDER)) > -1) {\n\t\t\t\t\t\t\tconst stderrParts = stderr.split(ERROR_DIVIDER)\n\t\t\t\t\t\t\tconst err = AbstractSpruceError.parse(stderrParts[1], SpruceError)\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\tstdout,\n\t\t\t\t\t\t\t\tstderr,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}, 0)\n\t\t\t}\n\n\t\t\tchild.addListener('close', closeHandler)\n\t\t\tchild.addListener('exit', closeHandler)\n\t\t})\n\t}\n\n\tpublic kill = () => {\n\t\tif (this.activeChildProcess?.pid) {\n\t\t\tthis.ignoreCloseErrors = true\n\t\t\ttreeKill(this.activeChildProcess.pid, 'SIGTERM')\n\t\t}\n\t}\n\n\tpublic pid = () => {\n\t\treturn this.activeChildProcess?.pid\n\t}\n\n\tprivate getMockResponse(executable: string, args: string[]) {\n\t\tconst mockKey = `${executable} ${args.join(' ')}`.trim()\n\t\tconst commands = CommandService.fakeResponses\n\t\tconst match = commands.find((r) =>\n\t\t\tr.command instanceof RegExp\n\t\t\t\t? mockKey.search(r.command) > -1\n\t\t\t\t: r.command.replace(/ +/gis, '') === mockKey.replace(/ +/gis, '')\n\t\t)\n\n\t\treturn { mockResponse: match?.response, mockKey }\n\t}\n\n\tpublic static fakeCommand(command: string | RegExp, response: MockResponse) {\n\t\tthis.fakeResponses.unshift({\n\t\t\tcommand,\n\t\t\tresponse,\n\t\t})\n\t}\n\n\tpublic static clearFakedResponses() {\n\t\tthis.fakeResponses = []\n\t}\n}\n\ninterface MockResponse {\n\tcode: number\n\tstdout?: string\n\tstderr?: string\n\tcallback?: (executable: string, args: any[]) => void\n}\n"],"mappings":"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"}
@@ -110,6 +110,7 @@ var AbstractCliTest = /*#__PURE__*/function (_AbstractSpruceTest) {
110
110
  _schema.SchemaRegistry.getInstance().forgetAllSchemas();
111
111
  this.cwd = this.freshTmpDir();
112
112
  this.homeDir = this.freshTmpDir();
113
+ _spruceSkillUtils.AuthService.homeDir = this.homeDir;
113
114
  this._emitter = undefined;
114
115
  this._featureInstaller = undefined;
115
116
  _OnboardingStore["default"].overrideCwd(_spruceSkillUtils.diskUtil.createRandomTempDir());
@@ -127,7 +128,7 @@ var AbstractCliTest = /*#__PURE__*/function (_AbstractSpruceTest) {
127
128
  _mercuryClient.MercuryClientFactory.reset();
128
129
  _mercuryClient.MercuryClientFactory.setIsTestMode(false);
129
130
  this.commandFaker = new _CommandFaker["default"]();
130
- case 23:
131
+ case 24:
131
132
  case "end":
132
133
  return _context2.stop();
133
134
  }