@sprucelabs/spruce-cli 20.0.2 → 20.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [20.0.3](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v20.0.2...v20.0.3) (2024-04-01)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
6
14
  ## [20.0.2](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v20.0.1...v20.0.2) (2024-03-28)
7
15
 
8
16
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -242,7 +242,7 @@ var TerminalInterface = exports["default"] = /*#__PURE__*/function () {
242
242
  var effects = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [_graphicsInterface.GraphicsTextEffect.Blue, _graphicsInterface.GraphicsTextEffect.Bold];
243
243
  var dividerEffects = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
244
244
  var isSpruce = effects.indexOf(_graphicsInterface.GraphicsTextEffect.SpruceHeader) > -1;
245
- if (isSpruce) {
245
+ if (isSpruce && TerminalInterface.doesSupportColor()) {
246
246
  _cfonts["default"].say(message, {
247
247
  font: _graphicsInterface.GraphicsTextEffect.SpruceHeader,
248
248
  align: 'left',
@@ -264,6 +264,10 @@ var TerminalInterface = exports["default"] = /*#__PURE__*/function () {
264
264
  }, {
265
265
  key: "renderHero",
266
266
  value: function renderHero(message, effects) {
267
+ if (!TerminalInterface.doesSupportColor()) {
268
+ this.renderLine(message);
269
+ return;
270
+ }
267
271
  var shouldStripVowels = process.stdout.columns < 80;
268
272
  var stripped = shouldStripVowels ? message.replace(/[aeiou]/gi, '') : message;
269
273
  if (shouldStripVowels && ['a', 'e', 'i', 'o', 'u'].indexOf(message[0].toLowerCase()) > -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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","prototype","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","exports","cwd","renderStackTraces","undefined","log","console","bind","_classCallCheck2","_createClass2","key","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Error","stop","sendInput","renderLines","lines","_this","line","renderLine","renderObject","object","_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","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,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAAnB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAQ,MAAA,CAAAS,IAAA,CAAApB,CAAA,OAAAW,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAArB,CAAA,GAAAE,CAAA,KAAAoB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAArB,CAAA,WAAAS,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAE,CAAA,EAAAsB,UAAA,OAAArB,CAAA,CAAAsB,IAAA,CAAAC,KAAA,CAAAvB,CAAA,EAAAmB,CAAA,YAAAnB,CAAA;AAAA,SAAAwB,cAAA3B,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAA0B,SAAA,CAAAC,MAAA,EAAA3B,CAAA,UAAAC,CAAA,WAAAyB,SAAA,CAAA1B,CAAA,IAAA0B,SAAA,CAAA1B,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAR,MAAA,CAAAR,CAAA,OAAA2B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,aAAA/B,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAS,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAAjC,CAAA,EAAAW,MAAA,CAAAqB,yBAAA,CAAA7B,CAAA,KAAAgB,OAAA,CAAAR,MAAA,CAAAR,CAAA,GAAA2B,OAAA,WAAA5B,CAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAZ,CAAA,EAAAE,CAAA,EAAAS,MAAA,CAAAE,wBAAA,CAAAV,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAAkC,2BAAAZ,CAAA,EAAAa,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAf,CAAA,CAAAe,MAAA,CAAAC,QAAA,KAAAhB,CAAA,qBAAAc,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAlB,CAAA,MAAAc,EAAA,GAAAK,2BAAA,CAAAnB,CAAA,MAAAa,cAAA,IAAAb,CAAA,WAAAA,CAAA,CAAAO,MAAA,qBAAAO,EAAA,EAAAd,CAAA,GAAAc,EAAA,MAAAnB,CAAA,UAAAyB,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAlC,CAAA,WAAAA,EAAA,QAAAS,CAAA,IAAAK,CAAA,CAAAO,MAAA,WAAAe,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAvB,CAAA,CAAAL,CAAA,UAAAjB,CAAA,WAAAA,EAAA8C,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAR,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAApB,IAAA,CAAAM,CAAA,MAAAd,CAAA,WAAAA,EAAA,QAAA4C,IAAA,GAAAhB,EAAA,CAAAiB,IAAA,IAAAJ,gBAAA,GAAAG,IAAA,CAAAR,IAAA,SAAAQ,IAAA,KAAApD,CAAA,WAAAA,EAAAsD,GAAA,IAAAJ,MAAA,SAAAC,GAAA,GAAAG,GAAA,KAAAP,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAb,EAAA,oBAAAA,EAAA,8BAAAc,MAAA,QAAAC,GAAA;AAAA,SAAAV,4BAAAnB,CAAA,EAAAiC,MAAA,SAAAjC,CAAA,qBAAAA,CAAA,sBAAAkC,iBAAA,CAAAlC,CAAA,EAAAiC,MAAA,OAAA/C,CAAA,GAAAG,MAAA,CAAA8C,SAAA,CAAAC,QAAA,CAAA1C,IAAA,CAAAM,CAAA,EAAAqC,KAAA,aAAAnD,CAAA,iBAAAc,CAAA,CAAAsC,WAAA,EAAApD,CAAA,GAAAc,CAAA,CAAAsC,WAAA,CAAAC,IAAA,MAAArD,CAAA,cAAAA,CAAA,mBAAA+B,KAAA,CAAAuB,IAAA,CAAAxC,CAAA,OAAAd,CAAA,+DAAAuD,IAAA,CAAAvD,CAAA,UAAAgD,iBAAA,CAAAlC,CAAA,EAAAiC,MAAA;AAAA,SAAAC,kBAAAQ,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAnC,MAAA,EAAAoC,GAAA,GAAAD,GAAA,CAAAnC,MAAA,WAAAZ,CAAA,MAAAiD,IAAA,OAAA3B,KAAA,CAAA0B,GAAA,GAAAhD,CAAA,GAAAgD,GAAA,EAAAhD,CAAA,IAAAiD,IAAA,CAAAjD,CAAA,IAAA+C,GAAA,CAAA/C,CAAA,UAAAiD,IAAA,IAzBpC;AAGA;AAEA;AAqBA,IAAMC,aAAa,GAAGzF,OAAO,CAAC,gBAAgB,CAAC;AAE/C,IAAI0F,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,IAAAjD,cAAM,EACZiD,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,GAAAC,OAAA;EASrC,SAAAD,kBACCE,GAAW,EAGV;IAAA,IAFDC,iBAAiB,GAAA7D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA8D,SAAA,GAAA9D,SAAA,MAAG,KAAK;IAAA,IACzB+D,GAAG,GAAA/D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA8D,SAAA,GAAA9D,SAAA,MAAGgE,OAAO,CAACD,GAAG,CAACE,IAAI,CAACD,OAAO,CAAC;IAAA,IAAAE,gBAAA,mBAAAR,iBAAA;IAAA,IAAAvD,gBAAA,qCAXR,KAAK;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,wCAED,KAAK;IAAA,IAAAA,gBAAA,kCAEmB,IAAI;IAAA,IAAAA,gBAAA;IASvD,IAAI,CAACyD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACE,GAAG,GAAGA,GAAG;EACf;EAAC,WAAAI,aAAA,aAAAT,iBAAA;IAAAU,GAAA;IAAAnD,KAAA;MAAA,IAAAoD,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,CAAAnD,IAAA;YAAA;cAAA,MACO,IAAIqD,KAAK,CAAC,mDAAmD,CAAC;YAAA;YAAA;cAAA,OAAAF,QAAA,CAAAG,IAAA;UAAA;QAAA,GAAAN,OAAA;MAAA,CACpE;MAAA,SAAAO,UAAA;QAAA,OAAAX,UAAA,CAAAvE,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAgF,SAAA;IAAA;EAAA;IAAAZ,GAAA;IAAAnD,KAAA,EAED,SAAAgE,YAAmBC,KAAY,EAAEtC,OAA8B,EAAE;MAAA,IAAAuC,KAAA;MAChED,KAAK,CAAChF,OAAO,CAAC,UAACkF,IAAI,EAAK;QACvBD,KAAI,CAACE,UAAU,CAACD,IAAI,EAAExC,OAAO,CAAC;MAC/B,CAAC,CAAC;IACH;EAAC;IAAAwB,GAAA;IAAAnD,KAAA,EAED,SAAAqE,aACCC,MAA2B,EAE1B;MAAA,IAAAC,MAAA;MAAA,IADD5C,OAA6B,GAAA5C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA8D,SAAA,GAAA9D,SAAA,MAAG,CAAC8C,qCAAkB,CAAC2C,KAAK,CAAC;MAE1D,IAAI,CAACJ,UAAU,CAAC,EAAE,CAAC;MACnB,IAAI,CAACK,aAAa,CAAC,CAAC;MACpB,IAAI,CAACL,UAAU,CAAC,EAAE,CAAC;MACnBtG,MAAM,CAACS,IAAI,CAAC+F,MAAM,CAAC,CAACrF,OAAO,CAAC,UAACkE,GAAG,EAAK;QACpCoB,MAAI,CAACH,UAAU,IAAA3C,MAAA,CACXiD,iBAAK,CAACC,IAAI,CAACxB,GAAG,CAAC,QAAA1B,MAAA,CACjB,OAAO6C,MAAM,CAACnB,GAAG,CAAC,KAAK,QAAQ,GAC5BmB,MAAM,CAACnB,GAAG,CAAC,GACXyB,IAAI,CAACC,SAAS,CAACP,MAAM,CAACnB,GAAG,CAAC,CAAC,GAE/BxB,OACD,CAAC;MACF,CAAC,CAAC;MACF,IAAI,CAACyC,UAAU,CAAC,EAAE,CAAC;MACnB,IAAI,CAACK,aAAa,CAAC,CAAC;MACpB,IAAI,CAACL,UAAU,CAAC,EAAE,CAAC;IACpB;EAAC;IAAAjB,GAAA;IAAAnD,KAAA,EAED,SAAA8E,cAAqBC,OAOpB,EAAE;MACF,IACCC,QAAQ,GAMLD,OAAO,CANVC,QAAQ;QACRf,KAAK,GAKFc,OAAO,CALVd,KAAK;QACLK,MAAM,GAIHS,OAAO,CAJVT,MAAM;QAAAW,qBAAA,GAIHF,OAAO,CAHVG,cAAc;QAAdA,cAAc,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAAE,qBAAA,GAGhBJ,OAAO,CAFVK,eAAe;QAAfA,eAAe,GAAAD,qBAAA,cAAG,CAACtD,qCAAkB,CAACwD,IAAI,EAAExD,qCAAkB,CAACG,IAAI,CAAC,GAAAmD,qBAAA;QAAAG,oBAAA,GAEjEP,OAAO,CADVQ,WAAW;QAAXA,WAAW,GAAAD,oBAAA,cAAG,CAACzD,qCAAkB,CAAC2C,KAAK,CAAC,GAAAc,oBAAA;MAGzC,IAAIN,QAAQ,EAAE;QACb,IAAI,CAACQ,cAAc,IAAA/D,MAAA,CAAIuD,QAAQ,gCAASI,eAAe,EAAEF,cAAc,CAAC;MACzE;MAEA,IAAIjB,KAAK,EAAE;QACV,IAAI,CAACD,WAAW,CAACC,KAAK,EAAEsB,WAAW,CAAC;QAEpC,IAAI,CAACnB,UAAU,CAAC,EAAE,CAAC;QACnB,IAAI,CAACK,aAAa,CAACS,cAAc,CAAC;MACnC;MAEA,IAAIZ,MAAM,EAAE;QACX,IAAI,CAACD,YAAY,CAACC,MAAM,EAAEiB,WAAW,CAAC;MACvC;MAEA,IAAI,CAACnB,UAAU,CAAC,EAAE,CAAC;IACpB;EAAC;IAAAjB,GAAA;IAAAnD,KAAA,EAED,SAAAyE,cAAqB9C,OAA8B,EAAE;MACpD,IAAM8D,GAAG,GAAG,oDAAoD;MAChE,IAAI,CAACrB,UAAU,CAACqB,GAAG,EAAE9D,OAAO,CAAC;IAC9B;EAAC;IAAAwB,GAAA;IAAAnD,KAAA,EAED,SAAA0F,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,CAAenH,MAAM,CAAC,UAACwB,CAAC;QAAA,OAAKA,CAAC,CAACsG,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,CAAerH,MAAM,CAAC,UAACwB,CAAC;QAAA,OAAKA,CAAC,CAACsG,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,CAAevH,MAAM,CAAC,UAACwB,CAAC;QAAA,OAAKA,CAAC,CAACsG,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,IAAApF,MAAA,CAAIkE,OAAO,CAACX,QAAQ,CAAE,CAAC;MAEtC,IAAI8B,YAAsB,GAAG,CAC5BH,MAAM,CAAC3H,MAAM,GAAG,CAAC,cAAAyC,MAAA,CAAckF,MAAM,CAAC3H,MAAM,IAAK,IAAI,EACrDsH,cAAc,CAACtH,MAAM,GAAG,CAAC,uBAAAyC,MAAA,CACF6E,cAAc,CAACtH,MAAM,IACzC,IAAI,EACPyH,YAAY,CAACzH,MAAM,GAAG,CAAC,qBAAAyC,MAAA,CAAqBgF,YAAY,CAACzH,MAAM,IAAK,IAAI,EACxE0H,YAAY,CAAC1H,MAAM,GAAG,CAAC,qBAAAyC,MAAA,CAAqBiF,YAAY,CAAC1H,MAAM,IAAK,IAAI,EACxE4H,iBAAiB,CAAC5H,MAAM,GAAG,CAAC,8BAAAyC,MAAA,CACEmF,iBAAiB,CAAC5H,MAAM,IACnD,IAAI,EAAAyC,MAAA,KAAAsF,mBAAA,cAAAX,qBAAA,GACHT,OAAO,CAACmB,YAAY,cAAAV,qBAAA,cAAAA,qBAAA,GAAI,EAAE,GAC7B1H,MAAM,CAAC,UAACyF,IAAI;QAAA,OAAK,CAAC,CAACA,IAAI;MAAA,EAAa;MAEtC,IAAI2C,YAAY,CAAC9H,MAAM,KAAK,CAAC,EAAE;QAC9B8H,YAAY,CAAClI,IAAI,CAAC,oBAAoB,CAAC;MACxC;MACA,IAAI,CAACkG,aAAa,CAAC;QAClBE,QAAQ,KAAAvD,MAAA,CAAKuF,mBAAY,CAACC,eAAe,CACxCtB,OAAO,CAACuB,WAAW,EACnBvB,OAAO,CAACwB,UACT,CAAC,aAAU;QACXlD,KAAK,EAAE6C;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,CAAC3G,IAAI,GAAG4G,GAAG,CAAC5G,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAAA,CAAC,CAAC,CAClD/B,OAAO,CAAC,UAAC4I,GAAG,EAAK;UACjBT,KAAK,CAACxI,IAAI,CAAC,CAACiJ,GAAG,CAAC7G,IAAI,EAAE6G,GAAG,CAACC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEH,IAAI,CAAChD,aAAa,CAAC;UAClBE,QAAQ,wBAAwB;UAChCf,KAAK,EAAE,CAACmD,KAAK,CAACvG,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;MACH;MAEA,SAAAkH,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,GAAA5I,0BAAA,CAEDkH,KAAK;YAAA2B,KAAA;UAAA;YAAxB,KAAAD,SAAA,CAAAnI,CAAA,MAAAoI,KAAA,GAAAD,SAAA,CAAAtK,CAAA,IAAAoC,IAAA,GAA0B;cAAA,IAAAoI,iBAAA;cAAA,IAAfC,IAAI,GAAAF,KAAA,CAAAlI,KAAA;cACdoH,MAAK,CAACxI,IAAI,CAAC,CAACwJ,IAAI,CAACpH,IAAI,GAAAmH,iBAAA,GAAEC,IAAI,CAACC,WAAW,cAAAF,iBAAA,cAAAA,iBAAA,GAAI,EAAE,CAAC,CAAC;YAChD;UAAC,SAAA7H,GAAA;YAAA2H,SAAA,CAAA9K,CAAA,CAAAmD,GAAA;UAAA;YAAA2H,SAAA,CAAA/H,CAAA;UAAA;UAED,IAAI,CAAC4E,aAAa,CAAC;YAClBE,QAAQ,KAAAvD,MAAA,CAAK6G,2BAAS,CAACC,QAAQ,CAAChC,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,kBAAe;YAC/DvC,KAAK,EAAE,CAACmD,MAAK,CAACvG,QAAQ,CAAC,CAAC;UACzB,CAAC,CAAC;QACH;MACD;MAEA,IAAI8E,OAAO,CAAC6C,KAAK,EAAE;QAClB,IAAI,CAAC1D,aAAa,CAAC;UAClBE,QAAQ,EAAE,eAAe;UACzBf,KAAK,EAAE0B,OAAO,CAAC6C;QAChB,CAAC,CAAC;MACH;MAEA,IAAI7B,MAAM,CAAC3H,MAAM,GAAG,CAAC,EAAE;QACtB,IAAI,CAACwG,cAAc,CAAC,QAAQ,CAAC;QAC7BmB,MAAM,CAAC1H,OAAO,CAAC,UAACqB,GAAG;UAAA,OAAK+F,MAAI,CAACoC,WAAW,CAACnI,GAAG,CAAC;QAAA,EAAC;MAC/C;MAEA,IAAIqF,OAAO,CAAC+C,SAAS,EAAE;QACtB,IAAI,CAACtE,UAAU,gBAAA3C,MAAA,CACCkH,oBAAY,CAACC,YAAY,CAACjD,OAAO,CAAC+C,SAAS,CAAC,CAC5D,CAAC;MACF;IACD;EAAC;IAAAvF,GAAA;IAAAnD,KAAA,EAED,SAAAwF,eACCqD,OAAe,EAMd;MAAA,IALDlH,OAA6B,GAAA5C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA8D,SAAA,GAAA9D,SAAA,MAAG,CAC/B8C,qCAAkB,CAACwD,IAAI,EACvBxD,qCAAkB,CAACG,IAAI,CACvB;MAAA,IACDkD,cAAoC,GAAAnG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA8D,SAAA,GAAA9D,SAAA,MAAG,EAAE;MAEzC,IAAM+J,QAAQ,GAAGnH,OAAO,CAACa,OAAO,CAACX,qCAAkB,CAACC,YAAY,CAAC,GAAG,CAAC,CAAC;MAEtE,IAAIgH,QAAQ,EAAE;QACbC,kBAAK,CAACC,GAAG,CAACH,OAAO,EAAE;UAClBI,IAAI,EAAEpH,qCAAkB,CAACC,YAAY;UACrCoH,KAAK,EAAE,MAAM;UACbC,KAAK,EAAE,KAAK;UACZC,MAAM,EAAE1H,sBAAsB,CAACC,OAAO;QACvC,CAAC,CAAC;MACH,CAAC,MAAM;QACN,IAAI,CAAC8C,aAAa,CAACS,cAAc,CAAC;QAClC,IAAI,CAACd,UAAU,CAACyE,OAAO,EAAElH,OAAO,CAAC;QACjC,IAAI,CAAC8C,aAAa,CAACS,cAAc,CAAC;QAClC,IAAI,CAACd,UAAU,CAAC,EAAE,CAAC;MACpB;IACD;EAAC;IAAAjB,GAAA;IAAAnD,KAAA,EAED,SAAAqJ,SAAgBC,KAAa,EAAQ;MACpCC,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC,SAAS,GAAGH,KAAK,GAAG,MAAM,CAAC;IACjD;EAAC;IAAAnG,GAAA;IAAAnD,KAAA,EAED,SAAA6G,WAAkBgC,OAAe,EAAElH,OAA8B,EAAE;MAClE,IAAM+H,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,CAAClH,OAAO,CAACqG,OAAO,CAAC,CAAC,CAAC,CAACiB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAC/D;QACDF,QAAQ,MAAAnI,MAAA,CAAMoH,OAAO,CAAC,CAAC,CAAC,EAAApH,MAAA,CAAGmI,QAAQ,CAAE;MACtC;MAEAb,kBAAK,CAACC,GAAG,CAACY,QAAQ,EAAE;QACnBV,KAAK,EAAE,MAAM;QACba,QAAQ,EAAE,CAAClI,qCAAkB,CAACmI,GAAG,EAAEnI,qCAAkB,CAACwD,IAAI,CAAC;QAC3D+D,MAAM,EAAEzH,OAAO,GAAGD,sBAAsB,CAACC,OAAO,CAAC,GAAGkB;MACrD,CAAC,CAAC;IACH;EAAC;IAAAM,GAAA;IAAAnD,KAAA,EAED,SAAAiK,WAAkBpB,OAAe,EAAE;MAClC,OAAO,IAAI,CAACzE,UAAU,mCAAA3C,MAAA,CAAUoH,OAAO,CAAE,CAAC;IAC3C;EAAC;IAAA1F,GAAA;IAAAnD,KAAA,EAED,SAAAoE,WACCyE,OAAY,EAGX;MAAA,IAFDlH,OAA6B,GAAA5C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA8D,SAAA,GAAA9D,SAAA,MAAG,EAAE;MAAA,IAClCgG,OAAiC,GAAAhG,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAA8D,SAAA;MAEjC,IAAI4G,KAAU,GAAG/E,iBAAK;MACtB/C,OAAO,CAAC1C,OAAO,CAAC,UAAC2C,MAAM,EAAK;QAC3B6H,KAAK,GAAGA,KAAK,CAAC7H,MAAM,CAAC;MACtB,CAAC,CAAC;MAEF,IAAImD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEmF,iBAAiB,EAAE;QAC/BC,qBAAQ,CAACC,SAAS,CAAC,CAAC;MACrB;MAEA,IAAI,CAACtH,GAAG,CAACnB,OAAO,CAAC3C,MAAM,GAAG,CAAC,GAAGyK,KAAK,CAACZ,OAAO,CAAC,GAAGA,OAAO,CAAC;IACxD;EAAC;IAAA1F,GAAA;IAAAnD,KAAA,EAED,SAAAqK,cAAqBxB,OAAe,EAAE;MACrC,IAAI,CAACzE,UAAU,iBAAA3C,MAAA,CAAOoH,OAAO,GAAI,CAChChH,qCAAkB,CAACG,IAAI,EACvBH,qCAAkB,CAACyI,MAAM,CACzB,CAAC;IACH;EAAC;IAAAnH,GAAA;IAAAnD,KAAA;MAAA,IAAAuK,aAAA,OAAAlH,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAiH,SAA0B3B,OAAgB;QAAA,OAAAvF,YAAA,YAAAG,IAAA,UAAAgH,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9G,IAAA,GAAA8G,SAAA,CAAAlK,IAAA;YAAA;cACzC;cACA,IAAI,CAACmK,WAAW,CAAC,CAAC;cAClBlI,iBAAiB,CAACmI,MAAM,GAAG,IAAAC,eAAG,EAAC;gBAC9BC,IAAI,EAAEjC;cACP,CAAC,CAAC,CAACkC,KAAK,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAL,SAAA,CAAA5G,IAAA;UAAA;QAAA,GAAA0G,QAAA;MAAA,CACV;MAAA,SAAAQ,aAAAC,EAAA;QAAA,OAAAV,aAAA,CAAA1L,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAiM,YAAA;IAAA;EAAA;IAAA7H,GAAA;IAAAnD,KAAA;MAAA,IAAAkL,YAAA,OAAA7H,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA4H,SAAA;QAAA,IAAAC,qBAAA;QAAA,OAAA9H,YAAA,YAAAG,IAAA,UAAA4H,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1H,IAAA,GAAA0H,SAAA,CAAA9K,IAAA;YAAA;cACC,CAAA4K,qBAAA,GAAA3I,iBAAiB,CAACmI,MAAM,cAAAQ,qBAAA,eAAxBA,qBAAA,CAA0BtH,IAAI,CAAC,CAAC;cAChCrB,iBAAiB,CAACmI,MAAM,GAAG,IAAI;YAAA;YAAA;cAAA,OAAAU,SAAA,CAAAxH,IAAA;UAAA;QAAA,GAAAqH,QAAA;MAAA,CAC/B;MAAA,SAAAR,YAAA;QAAA,OAAAO,YAAA,CAAArM,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA4L,WAAA;IAAA;EAAA;IAAAxH,GAAA;IAAAnD,KAAA;MAAA,IAAAuL,QAAA,OAAAlI,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAiI,SAAqBC,QAAgB;QAAA,IAAAC,aAAA;QAAA,OAAApI,YAAA,YAAAG,IAAA,UAAAkI,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAhI,IAAA,GAAAgI,SAAA,CAAApL,IAAA;YAAA;cAAAoL,SAAA,CAAApL,IAAA;cAAA,OACRqL,oBAAQ,CAACC,MAAM,CAAC;gBAC3CC,IAAI,EAAE,SAAS;gBACf/K,IAAI,EAAE,QAAQ;gBACd6H,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,CAAA9H,IAAA;UAAA;QAAA,GAAA0H,QAAA;MAAA,CAC7B;MAAA,SAAAW,QAAAC,GAAA;QAAA,OAAAb,QAAA,CAAA1M,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAoN,OAAA;IAAA;EAAA;IAAAhJ,GAAA;IAAAnD,KAAA;MAAA,IAAAqM,aAAA,OAAAhJ,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA+I,SAA0BzD,OAAgB;QAAA,OAAAvF,YAAA,YAAAG,IAAA,UAAA8I,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5I,IAAA,GAAA4I,SAAA,CAAAhM,IAAA;YAAA;cAAAgM,SAAA,CAAAhM,IAAA;cAAA,OACnC,IAAI,CAACsL,MAAM,CAAC;gBACjBC,IAAI,EAAE,MAAM;gBACZU,KAAK,KAAAhL,MAAA,CAAKoH,OAAO,GAAGA,OAAO,GAAG,GAAG,GAAG,EAAE,EAAApH,MAAA,CAAGiD,iBAAK,CAACgI,aAAa,CAACC,KAAK,CACjE,WACD,CAAC;cACF,CAAC,CAAC;YAAA;cACF,IAAI,CAACvI,UAAU,CAAC,EAAE,CAAC;cAAA,OAAAoI,SAAA,CAAAP,MAAA;YAAA;YAAA;cAAA,OAAAO,SAAA,CAAA1I,IAAA;UAAA;QAAA,GAAAwI,QAAA;MAAA,CAEnB;MAAA,SAAAM,aAAAC,GAAA;QAAA,OAAAR,aAAA,CAAAxN,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA6N,YAAA;IAAA;EAAA;IAAAzJ,GAAA;IAAAnD,KAAA,EAED,SAAA8M,MAAA,EAAe;MACd,KAAK,IAAI,CAACnC,WAAW,CAAC,CAAC;MACvB5H,OAAO,CAAC+J,KAAK,CAAC,CAAC;IAChB;EAAC;IAAA3J,GAAA;IAAAnD,KAAA,EAED,SAAA+M,iBAAwBC,IAAY,EAAE;MACrC,IAAI;QACH,IAAMC,OAAO,GAAGC,qBAAS,CAACC,SAAS,CAAC,IAAI,EAAEH,IAAI,CAAC,CAAChN,KAAK;QACrD,IAAI,CAACoE,UAAU,CAAC6I,OAAO,CAAC;MACzB,CAAC,CAAC,OAAO3M,GAAQ,EAAE;QAClB,IAAI,CAAC+J,aAAa,CAAC/J,GAAG,CAAC;MACxB;IACD;EAAC;IAAA6C,GAAA;IAAAnD,KAAA;MAAA,IAAAoN,OAAA,OAAA/J,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA8J,SACCC,UAAa;QAAA,IAAAtM,IAAA,EAAAuM,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,OAAA5K,YAAA,YAAAG,IAAA,UAAA0K,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAxK,IAAA,GAAAwK,SAAA,CAAA5N,IAAA;YAAA;cAEb,IAAI,CAAC6N,cAAc,GAAG,IAAI;cACpBrN,IAAI,GAAGQ,yBAAyB,CAAC,CAAC;cAClC+L,eAAiC,GAAGD,UAAU;cAC5CE,YAAY,GAAKD,eAAe,CAAhCC,YAAY;cAEdC,aAAkC,GAAG;gBAC1C,WAASD,YAAY;gBACrBxM,IAAI,EAAJA,IAAI;gBACJ6H,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,UAACzO,KAAa,EAAK;gBAC9C,OAAQ0N,KAAK,CAAiBgB,WAAW,CAAC1O,KAAK,CAAC;cACjD,CAAC;cAEDyN,aAAa,CAACkB,QAAQ,GAAG,UAAC3O,KAAa,EAAK;gBAC3C,OAAO,IAAA4O,4BAAoB,EAC1B;kBACCC,EAAE,EAAE,sBAAsB;kBAC1BC,MAAM,EAAE;oBACPhD,MAAM,EAAEyB;kBACT;gBACD,CAAC,EACD;kBAAEzB,MAAM,EAAE9L;gBAAM,CACjB,CAAC;gBACD;cACD,CAAC;cAAAoO,SAAA,CAAAW,EAAA,GAEOxB,eAAe,CAACxB,IAAI;cAAAqC,SAAA,CAAA5N,IAAA,GAAA4N,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,CAAC5N,OAAO,GAAG,UAAU,GAAG,MAAM;cAElE8N,aAAa,CAACuB,OAAO,GAAGzB,eAAe,CAACxI,OAAO,CAACiK,OAAO,CAACC,GAAG;cAC1D;cACA,UAACC,MAAM;gBAAA,OAAM;kBACZlO,IAAI,EAAEkO,MAAM,CAACzC,KAAK;kBAClBzM,KAAK,EAAEkP,MAAM,CAAClP,KAAK;kBACnBmP,OAAO,EAAEC,kBAAC,CAACC,QAAQ,CAAC9B,eAAe,CAACC,YAAY,EAAE0B,MAAM,CAAClP,KAAK;gBAC/D,CAAC;cAAA,CACF,CAAC;cAAA,OAAAoO,SAAA,CAAAnC,MAAA;YAAA;cAAA,KAMGsB,eAAe,CAAC5N,OAAO;gBAAAyO,SAAA,CAAA5N,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAI8O,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,CAAChL,GAAG,EAC9C,GACD,CAAC;cAED8K,aAAa,CAAC1B,IAAI,GAAG,MAAM;cAC3B0B,aAAa,CAACiC,IAAI,GAAG7B,OAAO;cAC5BJ,aAAa,CAACkC,WAAW,GAAG,IAAI;;cAEhC;cACAlC,aAAa,CAACkB,QAAQ,GAAG,UAAC3O,KAAa,EAAK;gBAC3C,OAAO4P,mBAAE,CAACC,UAAU,CAAC7P,KAAK,CAAC,IAAI4P,mBAAE,CAACE,SAAS,CAAC9P,KAAK,CAAC,CAAC+P,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,CAAC5N,OAAO;gBAAAyO,SAAA,CAAA5N,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAI8O,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,CAACnL,GAAG,EAC7C,GACD,CAAC,EAED;cAAAyL,SAAA,CAAA5N,IAAA;cAAA,OACoB,IAAA0P,kBAAM,KAAAzO,MAAA,CAAIoM,QAAO,SAAM,CAAC;YAAA;cAAtCtH,KAAK,GAAA6H,SAAA,CAAApC,IAAA;cAAA,MAEPzF,KAAK,CAACvH,MAAM,KAAK,CAAC;gBAAAoP,SAAA,CAAA5N,IAAA;gBAAA;cAAA;cAAA,MACf,IAAI8O,uBAAW,CAAC;gBACrBtC,IAAI,EAAE,iBAAiB;gBACvBmD,SAAS,EAAEtC,QAAO;gBAClB0B,eAAe,2DAAA9N,MAAA,CAA2DoM,QAAO;cAClF,CAAC,CAAC;YAAA;cAGHJ,aAAa,CAAC1B,IAAI,GAAG,MAAM;cAC3B0B,aAAa,CAACiC,IAAI,GAAG7B,QAAO;;cAE5B;cACAJ,aAAa,CAACkB,QAAQ,GAAG,UAAC3O,KAAa,EAAK;gBAC3C,OACC4P,mBAAE,CAACC,UAAU,CAAC7P,KAAK,CAAC,IACpB,CAAC4P,mBAAE,CAACE,SAAS,CAAC9P,KAAK,CAAC,CAAC+P,WAAW,CAAC,CAAC,IAClCP,gBAAI,CAACY,OAAO,CAACpQ,KAAK,CAAC,KAAK,KAAK;cAE/B,CAAC;cACD;cACAyN,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,CAAA5N,IAAA;cAAA,OAGNqL,oBAAQ,CAACC,MAAM,CAAC2B,aAAa,CAAC;YAAA;cAAhDQ,QAAQ,GAAAG,SAAA,CAAApC,IAAA;cAEd,IAAI,CAACqC,cAAc,GAAG,KAAK;cAErBH,MAAM,GACX,OAAOD,QAAQ,CAACjN,IAAI,CAAC,KAAK,WAAW,GACjC0M,KAAK,CAAiBgB,WAAW,CAACT,QAAQ,CAACjN,IAAI,CAAC,CAAC,GAClDiN,QAAQ,CAACjN,IAAI,CAAC;cAAA,OAAAoN,SAAA,CAAAnC,MAAA,WAEXiC,MAAM;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAAtK,IAAA;UAAA;QAAA,GAAAuJ,QAAA;MAAA,CACb;MAAA,SAAAvB,OAAAuE,GAAA;QAAA,OAAAjD,OAAA,CAAAvO,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA+M,MAAA;IAAA;EAAA;IAAA3I,GAAA;IAAAnD,KAAA,EACD,SAAAsO,oBAA4Bf,eAAiC,EAAO;MACnE,IAAId,KAAK,GAAGc,eAAe,CAACd,KAAK;MAEjC,IAAIc,eAAe,CAAC+C,IAAI,EAAE;QACzB7D,KAAK,MAAAhL,MAAA,CAAMgL,KAAK,OAAAhL,MAAA,CAAIiD,iBAAK,CAAC6L,MAAM,CAACC,GAAG,KAAA/O,MAAA,CAAK8L,eAAe,CAAC+C,IAAI,MAAG,CAAC,CAAE;MACpE;MAEA7D,KAAK,GAAGA,KAAK,GAAG,IAAI;MAEpB,OAAOA,KAAK;IACb;EAAC;IAAAtJ,GAAA;IAAAnD,KAAA,EAED,SAAAyI,YAAmBnI,GAAU,EAAE;MAC9B;MACA,IAAI,CAACqK,WAAW,CAAC,CAAC;MAElB,IAAM9B,OAAO,GAAGvI,GAAG,CAACuI,OAAO;MAC3B;MACA,IAAM4H,UAAU,GAAG,IAAI,CAACC,UAAU,CAACpQ,GAAG,CAAC;MACvC,IAAI,CAACwE,aAAa,CAAC;QAClBE,QAAQ,EAAE6D,OAAO;QACjB5E,KAAK,EAAE,IAAI,CAACrB,iBAAiB,GAAG6N,UAAU,CAACE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG9N,SAAS;QACrEuC,eAAe,EAAE,CAACvD,qCAAkB,CAACG,IAAI,EAAEH,qCAAkB,CAACmI,GAAG,CAAC;QAClE9E,cAAc,EAAE,CAACrD,qCAAkB,CAACmI,GAAG,CAAC;QACxCzE,WAAW,EAAE,CAAC1D,qCAAkB,CAACmI,GAAG;MACrC,CAAC,CAAC;IACH;EAAC;IAAA7G,GAAA;IAAAnD,KAAA,EAED,SAAA0Q,WAAmBpQ,GAAU,EAAE;MAC9B,IAAMuI,OAAO,GAAGvI,GAAG,CAACuI,OAAO;MAC3B,IAAI+H,KAAK,GAAGtQ,GAAG,CAACsQ,KAAK,GAAGtQ,GAAG,CAACsQ,KAAK,CAAC/G,OAAO,CAAChB,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE;MAE3D,IAAIvI,GAAG,YAAYuQ,iBAAmB,EAAE;QACvC,IAAIC,QAAQ,GAAGxQ,GAAG,CAACyQ,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;IAAAtN,GAAA;IAAAnD,KAAA,EAED,SAAAiR,kBAAyBlM,OAA2B,EAAQ;MAC3D,IAAI,CAACmM,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACC,WAAW,GAAGhH,qBAAQ,CAACgH,WAAW,CAAArS,aAAA,CAAAA,aAAA,KACnCiG,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;IAAAxO,GAAA;IAAAnD,KAAA,EAED,SAAAkR,kBAAA,EAA2B;MAC1B,IAAI,IAAI,CAACC,WAAW,EAAE;QACrB,IAAI,CAACA,WAAW,CAACrN,IAAI,CAAC,CAAC;QACvB,IAAI,CAACqN,WAAW,GAAG,IAAI;MACxB;IACD;EAAC;IAAAhO,GAAA;IAAAnD,KAAA,EAED,SAAA4R,kBAAyB7M,OAAiC,EAAQ;MACjE,IAAI,IAAI,CAACoM,WAAW,EAAE;QACrB,IAAI,CAACA,WAAW,CAACU,MAAM,CAAA/S,aAAA,CAAAA,aAAA,KACnBiG,OAAO;UACVyM,KAAK,EAAEzM,OAAO,CAAC0M;QAAU,EACzB,CAAC;MACH;IACD;EAAC;IAAAtO,GAAA;IAAAnD,KAAA;MAAA,IAAA8R,YAAA,OAAAzO,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwO,SACCvC,IAAY,EACZzK,OAAyB;QAAA,IAAAiN,KAAA;QAAA,OAAA1O,YAAA,YAAAG,IAAA,UAAAwO,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAtO,IAAA,GAAAsO,SAAA,CAAA1R,IAAA;YAAA;cAAA0R,SAAA,CAAA1R,IAAA;cAAA,OAELc,aAAa,CAAC8G,IAAI,CAACoH,IAAI,EAAEzK,OAAO,CAAC;YAAA;cAA/CiN,KAAK,GAAAE,SAAA,CAAAlG,IAAA;cACX,IAAI,CAAC5H,UAAU,CAAC4N,KAAK,CAAC;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAApO,IAAA;UAAA;QAAA,GAAAiO,QAAA;MAAA,CACtB;MAAA,SAAAI,YAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAP,YAAA,CAAAjT,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAoT,WAAA;IAAA;EAAA;IAAAhP,GAAA;IAAAnD,KAAA;MAAA,IAAAsS,kBAAA,OAAAjP,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAgP,SAAA;QAAA,OAAAjP,YAAA,YAAAG,IAAA,UAAA+O,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7O,IAAA,GAAA6O,SAAA,CAAAjS,IAAA;YAAA;cAAA,OAAAiS,SAAA,CAAAxG,MAAA,WACQ,IAAIyG,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BxI,qBAAQ,CAACyI,qBAAqB,CAAC,CAAC;gBAChCzI,qBAAQ,CAAC0I,iBAAiB,CAAC,UAACvS,GAAG,EAAEwS,CAAC,EAAEC,CAAC,EAAK;kBACzCJ,OAAO,CAACrS,GAAG,GAAG,IAAI,GAAG;oBAAEwS,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,CAAA3O,IAAA;UAAA;QAAA,GAAAyO,QAAA;MAAA,CACF;MAAA,SAAAS,kBAAA;QAAA,OAAAV,kBAAA,CAAAzT,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAiU,iBAAA;IAAA;EAAA;IAAA7P,GAAA;IAAAnD,KAAA,EAED,SAAAiT,WAAA,EAAoB;MACnB9I,qBAAQ,CAAC8I,UAAU,CAAC,CAAC;IACtB;EAAC;IAAA9P,GAAA;IAAAnD,KAAA,EAED,SAAAkT,cAAA,EAAuB;MACtB/I,qBAAQ,CAAC+I,aAAa,CAAC,CAAC;IACzB;EAAC;IAAA/P,GAAA;IAAAnD,KAAA,EAED,SAAAmT,aAAoBL,CAAS,EAAEC,CAAS,EAAQ;MAC/C5I,qBAAQ,CAACiJ,MAAM,CAACN,CAAC,EAAEC,CAAC,CAAC;IACtB;EAAC;IAAA5P,GAAA;IAAAnD,KAAA,EAED,SAAAqT,iBAAA,EAAgC;MAC/BlJ,qBAAQ,CAACmJ,iBAAiB,CAAC,CAAC;IAC7B;EAAC;IAAAnQ,GAAA;IAAAnD,KAAA,EAED,SAAAoK,UAAA,EAAmB;MAClBD,qBAAQ,CAACC,SAAS,CAAC,CAAC;IACrB;EAAC;IAAAjH,GAAA;IAAAnD,KAAA,EAxiBD,SAAAuT,iBAAA,EAAiC;MAChC,OAAO,IAAI,CAACC,iBAAiB;IAC9B;EAAC;IAAArQ,GAAA;IAAAnD,KAAA,EAED,SAAAyT,oBAAkCC,KAAc,EAAE;MACjD,IAAI,CAACF,iBAAiB,GAAGE,KAAK;IAC/B;EAAC;AAAA;AAAA,IAAAxU,gBAAA,aAzBmBuD,iBAAiB;AAAA,IAAAvD,gBAAA,aAAjBuD,iBAAiB,uBAMF,EAAAxF,QAAA,GAAAsM,OAAO,cAAAtM,QAAA,gBAAAA,QAAA,GAAPA,QAAA,CAASuM,MAAM,cAAAvM,QAAA,uBAAfA,QAAA,CAAiB0W,KAAK,KAAI,CAAC,IAAAC,gBAAI,EAAC,CAAC","ignoreList":[]}
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","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","prototype","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","exports","cwd","renderStackTraces","undefined","log","console","bind","_classCallCheck2","_createClass2","key","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Error","stop","sendInput","renderLines","lines","_this","line","renderLine","renderObject","object","_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","doesSupportColor","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","setDoesSupportColor","isTTy","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 && TerminalInterface.doesSupportColor()) {\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\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\tthis.renderLine(message)\n\t\t\treturn\n\t\t}\n\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":"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","ignoreList":[]}
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  ]
18
18
  },
19
19
  "license": "MIT",
20
- "version": "20.0.2",
20
+ "version": "20.0.3",
21
21
  "bin": {
22
22
  "spruce": "./build/index.js"
23
23
  },
@@ -75,18 +75,18 @@
75
75
  "@babel/plugin-proposal-decorators": "^7.24.1",
76
76
  "@babel/runtime": "^7.24.1",
77
77
  "@jest/reporters": "^29.7.0",
78
- "@sprucelabs/error": "^5.1.89",
79
- "@sprucelabs/globby": "^1.0.22",
80
- "@sprucelabs/heartwood-view-controllers": "^109.7.12",
81
- "@sprucelabs/jest-json-reporter": "^7.0.193",
82
- "@sprucelabs/mercury-client": "^41.0.360",
83
- "@sprucelabs/mercury-event-emitter": "^41.0.360",
84
- "@sprucelabs/mercury-types": "^46.0.278",
85
- "@sprucelabs/schema": "^29.4.38",
86
- "@sprucelabs/spruce-core-schemas": "^39.0.272",
87
- "@sprucelabs/spruce-event-utils": "^38.1.18",
88
- "@sprucelabs/spruce-skill-utils": "^30.4.4",
89
- "@sprucelabs/spruce-templates": "^20.0.2",
78
+ "@sprucelabs/error": "^5.1.101",
79
+ "@sprucelabs/globby": "^1.0.32",
80
+ "@sprucelabs/heartwood-view-controllers": "^109.7.29",
81
+ "@sprucelabs/jest-json-reporter": "^7.0.202",
82
+ "@sprucelabs/mercury-client": "^41.0.375",
83
+ "@sprucelabs/mercury-event-emitter": "^41.0.375",
84
+ "@sprucelabs/mercury-types": "^46.0.291",
85
+ "@sprucelabs/schema": "^29.4.50",
86
+ "@sprucelabs/spruce-core-schemas": "^39.0.284",
87
+ "@sprucelabs/spruce-event-utils": "^38.1.32",
88
+ "@sprucelabs/spruce-skill-utils": "^30.4.19",
89
+ "@sprucelabs/spruce-templates": "^20.0.3",
90
90
  "@typescript-eslint/eslint-plugin": "^5.27.1",
91
91
  "@typescript-eslint/parser": "^5.27.1",
92
92
  "cfonts": "^3.2.0",
@@ -113,23 +113,23 @@
113
113
  "uuid": "^9.0.1"
114
114
  },
115
115
  "devDependencies": {
116
- "@sprucelabs/data-stores": "^26.4.67",
116
+ "@sprucelabs/data-stores": "^26.4.80",
117
117
  "@sprucelabs/jest-sheets-reporter": "^3.0.26",
118
- "@sprucelabs/mercury-core-events": "^22.2.63",
119
- "@sprucelabs/resolve-path-aliases": "^1.1.294",
120
- "@sprucelabs/spruce-conversation-plugin": "^61.1.8",
121
- "@sprucelabs/spruce-deploy-plugin": "^61.1.8",
122
- "@sprucelabs/spruce-store-plugin": "^61.1.8",
123
- "@sprucelabs/spruce-test-fixtures": "^61.1.8",
124
- "@sprucelabs/test": "^8.0.47",
125
- "@sprucelabs/test-utils": "^4.0.136",
118
+ "@sprucelabs/mercury-core-events": "^22.2.78",
119
+ "@sprucelabs/resolve-path-aliases": "^1.1.303",
120
+ "@sprucelabs/spruce-conversation-plugin": "^61.1.22",
121
+ "@sprucelabs/spruce-deploy-plugin": "^61.1.22",
122
+ "@sprucelabs/spruce-store-plugin": "^61.1.22",
123
+ "@sprucelabs/spruce-test-fixtures": "^61.1.22",
124
+ "@sprucelabs/test": "^8.0.49",
125
+ "@sprucelabs/test-utils": "^4.0.148",
126
126
  "@types/blessed": "^0.1.25",
127
127
  "@types/eslint": "^8.56.6",
128
128
  "@types/fs-extra": "^11.0.4",
129
129
  "@types/inquirer": "^8.2.1",
130
130
  "@types/lodash": "^4.17.0",
131
131
  "@types/md5": "^2.3.5",
132
- "@types/node": "^20.11.30",
132
+ "@types/node": "^20.12.2",
133
133
  "@types/promise.allsettled": "^1.0.6",
134
134
  "@types/ps-node": "^0.1.3",
135
135
  "@types/semver": "^7.5.8",
@@ -153,7 +153,7 @@
153
153
  "ps-node": "^0.1.6",
154
154
  "ts-jest": "^29.1.2",
155
155
  "ts-node": "^10.9.2",
156
- "tsc-watch": "^6.1.0",
156
+ "tsc-watch": "^6.2.0",
157
157
  "tsconfig-paths": "^4.2.0"
158
158
  },
159
159
  "testSkillCache": {
@@ -590,5 +590,5 @@
590
590
  "terminal-kit"
591
591
  ]
592
592
  },
593
- "gitHead": "2bde52b4518eb67898a35fc8eca9c9667e72337a"
593
+ "gitHead": "c14160020667b0dc501c54d740e75b159e577bd1"
594
594
  }
@@ -272,7 +272,7 @@ export default class TerminalInterface implements GraphicsInterface {
272
272
  ) {
273
273
  const isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1
274
274
 
275
- if (isSpruce) {
275
+ if (isSpruce && TerminalInterface.doesSupportColor()) {
276
276
  fonts.say(message, {
277
277
  font: GraphicsTextEffect.SpruceHeader,
278
278
  align: 'left',
@@ -292,6 +292,11 @@ export default class TerminalInterface implements GraphicsInterface {
292
292
  }
293
293
 
294
294
  public renderHero(message: string, effects?: GraphicsTextEffect[]) {
295
+ if (!TerminalInterface.doesSupportColor()) {
296
+ this.renderLine(message)
297
+ return
298
+ }
299
+
295
300
  const shouldStripVowels = process.stdout.columns < 80
296
301
 
297
302
  let stripped = shouldStripVowels