@sprucelabs/spruce-cli 19.1.27 → 19.1.29

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 (147) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/build/.spruce/errors/options.types.d.ts +1 -1
  3. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +1 -1
  4. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +1 -1
  5. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +1 -1
  6. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +1 -1
  7. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.d.ts +1 -1
  8. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +1 -1
  9. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.d.ts +1 -1
  10. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +1 -1
  11. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +1 -1
  12. package/build/GlobalEmitter.d.ts +2 -2
  13. package/build/__tests__/behavioral/events/EventWriter.test.js +1 -2
  14. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
  15. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +3 -4
  16. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  17. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +2 -2
  18. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  19. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +1 -2
  20. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  21. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js +2 -2
  22. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  23. package/build/__tests__/implementation/ArgParser.test.js +2 -2
  24. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  25. package/build/__tests__/implementation/BulkImporting.test.js +2 -2
  26. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  27. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js +2 -2
  28. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  29. package/build/__tests__/implementation/EventContractCleanerUtil.test.js +2 -2
  30. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  31. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +3 -3
  32. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  33. package/build/__tests__/implementation/FeaturesUtil.test.js +2 -2
  34. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  35. package/build/__tests__/implementation/JestJsonParser.test.js +2 -2
  36. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  37. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +3 -4
  38. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  39. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/event.options.d.ts +1 -1
  40. package/build/components/FormComponent.d.ts +2 -2
  41. package/build/components/QuizComponent.d.ts +4 -4
  42. package/build/features/AbstractAction.d.ts +1 -1
  43. package/build/features/ActionFactory.d.ts +1 -1
  44. package/build/features/ActionQuestionAsker.d.ts +1 -1
  45. package/build/features/cache/actions/DisableAction.d.ts +2 -2
  46. package/build/features/cache/actions/EnableAction.d.ts +2 -2
  47. package/build/features/conversation/actions/CreateAction.d.ts +2 -2
  48. package/build/features/conversation/actions/TestAction.d.ts +2 -2
  49. package/build/features/dependencies/actions/AddAction.d.ts +2 -2
  50. package/build/features/dependencies/actions/ManageAction.d.ts +1 -1
  51. package/build/features/deploy/actions/HerokuAction.d.ts +2 -2
  52. package/build/features/error/actions/CreateAction.d.ts +2 -2
  53. package/build/features/error/actions/SyncAction.d.ts +2 -2
  54. package/build/features/event/actions/CreateAction.d.ts +1 -1
  55. package/build/features/event/actions/ListenAction.d.ts +1 -1
  56. package/build/features/event/actions/SetRemoteAction.d.ts +2 -2
  57. package/build/features/event/actions/SyncAction.d.ts +2 -2
  58. package/build/features/event/actions/SyncListenersAction.d.ts +1 -1
  59. package/build/features/event/builders/EventContractBuilder.d.ts +2 -2
  60. package/build/features/event/stores/ListenerStore.d.ts +1 -1
  61. package/build/features/eventContract/actions/PullAction.d.ts +2 -2
  62. package/build/features/features.types.d.ts +4 -4
  63. package/build/features/log/actions/CreateTransportAction.d.ts +2 -2
  64. package/build/features/node/NodeFeature.d.ts +2 -2
  65. package/build/features/node/actions/CreateAction.d.ts +2 -2
  66. package/build/features/node/actions/UpdateDependenciesAction.d.ts +2 -2
  67. package/build/features/node/actions/UpgradeAction.d.ts +2 -2
  68. package/build/features/onboard/ScriptPlayer.d.ts +4 -4
  69. package/build/features/onboard/actions/OnboardAction.d.ts +2 -2
  70. package/build/features/onboard/stores/OnboardingStore.d.ts +3 -3
  71. package/build/features/organization/actions/CreateAction.d.ts +2 -2
  72. package/build/features/organization/actions/InstallAction.d.ts +2 -2
  73. package/build/features/permission/actions/CreateAction.d.ts +2 -2
  74. package/build/features/permission/actions/SyncAction.d.ts +2 -2
  75. package/build/features/permission/stores/PermissionStore.d.ts +1 -1
  76. package/build/features/person/actions/LoginAction.d.ts +2 -2
  77. package/build/features/person/actions/LogoutAction.d.ts +1 -1
  78. package/build/features/person/actions/WhoamiAction.d.ts +1 -1
  79. package/build/features/polish/actions/SetupAction.d.ts +1 -1
  80. package/build/features/sandbox/actions/SetupAction.d.ts +1 -1
  81. package/build/features/schema/actions/CreateAction.d.ts +2 -2
  82. package/build/features/schema/actions/SyncAction.d.ts +2 -2
  83. package/build/features/schema/actions/SyncFieldsAction.d.ts +1 -1
  84. package/build/features/skill/SkillFeature.d.ts +3 -3
  85. package/build/features/skill/actions/BootAction.d.ts +2 -2
  86. package/build/features/skill/actions/CreateAction.d.ts +2 -2
  87. package/build/features/skill/actions/DashboardAction.d.ts +1 -1
  88. package/build/features/skill/actions/LoginAction.d.ts +2 -2
  89. package/build/features/skill/actions/RebuildAction.d.ts +2 -2
  90. package/build/features/skill/actions/RegisterAction.d.ts +2 -2
  91. package/build/features/skill/updaters/Updater.d.ts +2 -2
  92. package/build/features/store/actions/CreateAction.d.ts +2 -2
  93. package/build/features/store/actions/SyncAction.d.ts +2 -2
  94. package/build/features/test/TestReporter.d.ts +2 -2
  95. package/build/features/test/TestRunner.d.ts +1 -1
  96. package/build/features/test/actions/CreateAction.d.ts +2 -2
  97. package/build/features/test/actions/SetupAction.d.ts +2 -2
  98. package/build/features/test/actions/TestAction.d.ts +1 -1
  99. package/build/features/test/test.types.d.ts +2 -2
  100. package/build/features/validateAndNormalize.utility.d.ts +1 -1
  101. package/build/features/view/actions/CreateAction.d.ts +1 -1
  102. package/build/features/view/actions/CreateThemeAction.d.ts +1 -1
  103. package/build/features/view/actions/SyncAction.d.ts +1 -1
  104. package/build/features/view/actions/WatchAction.d.ts +1 -1
  105. package/build/features/vscode/actions/SetupAction.d.ts +2 -2
  106. package/build/interfaces/SpyInterface.d.ts +2 -2
  107. package/build/interfaces/SpyInterface.js.map +1 -1
  108. package/build/interfaces/TerminalInterface.d.ts +1 -1
  109. package/build/interfaces/TerminalInterface.js +2 -2
  110. package/build/interfaces/TerminalInterface.js.map +1 -1
  111. package/build/services/ServiceFactory.d.ts +1 -1
  112. package/build/stores/AbstractStore.d.ts +1 -1
  113. package/build/stores/StoreFactory.d.ts +2 -2
  114. package/build/tests/AbstractCliTest.d.ts +1 -1
  115. package/build/tests/AbstractCliTest.js +2 -2
  116. package/build/tests/AbstractCliTest.js.map +1 -1
  117. package/build/tests/CommandFaker.d.ts +1 -1
  118. package/build/tests/JestJsonParser.d.ts +2 -2
  119. package/build/tests/MockProgramFactory.d.ts +1 -1
  120. package/build/tests/buildTestCache.js +1 -1
  121. package/build/tests/buildTestCache.js.map +1 -1
  122. package/build/tests/cleanTestData.js +2 -2
  123. package/build/tests/cleanTestData.js.map +1 -1
  124. package/build/types/apiClient.types.d.ts +3 -3
  125. package/build/types/cli.types.d.ts +10 -10
  126. package/build/utilities/apiClient.utility.d.ts +1 -1
  127. package/build/utilities/introspection.utility.d.ts +1 -1
  128. package/build/utilities/introspection.utility.js +2 -2
  129. package/build/utilities/introspection.utility.js.map +1 -1
  130. package/build/widgets/WidgetFactory.js.map +1 -1
  131. package/build/widgets/keySelectChoices.d.ts +2 -2
  132. package/build/widgets/terminalKit/TkBaseWidget.d.ts +2 -2
  133. package/build/widgets/types/button.types.d.ts +1 -1
  134. package/build/widgets/types/factory.types.d.ts +3 -3
  135. package/build/widgets/types/input.types.d.ts +1 -1
  136. package/build/widgets/types/layout.types.d.ts +2 -2
  137. package/build/widgets/types/menuBar.types.d.ts +1 -1
  138. package/build/widgets/types/popup.types.d.ts +1 -1
  139. package/build/widgets/types/text.types.d.ts +1 -1
  140. package/build/widgets/types/widgets.types.d.ts +2 -2
  141. package/build/widgets/types/window.types.d.ts +1 -1
  142. package/build/writers/AbstractWriter.d.ts +1 -1
  143. package/build/writers/WriterFactory.d.ts +1 -1
  144. package/package.json +41 -41
  145. package/src/interfaces/SpyInterface.ts +2 -2
  146. package/src/tests/buildTestCache.ts +4 -1
  147. package/src/widgets/WidgetFactory.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","exports","_this","_classCallCheck2","_defineProperty2","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","_len","arguments","length","strs","Array","_key","optionallyRenderLine","join","undefined","_createClass2","key","value","setTitle","_title","env","SHOULD_RENDER_TEST_LOGS","renderWarning","message","effects","_this$term","trackInvocation","renderHint","_this$term2","concat","command","options","invocations","push","isWaitingForInput","promptResolver","confirmResolver","waitForEnterResolver","reset","clearTimeout","promptTimeout","setError","err","error","getLastInvocation","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","input","resolver","_resolver","_resolver2","wrap","_callee$","_context","prev","next","path","promptDefaultValue","toLowerCase","Error","abrupt","Promise","resolve","setTimeout","stop","sendInput","_x","apply","renderSection","_this$term3","renderObject","obj","_this$term4","renderError","_this$term5","renderCodeSample","code","_this$term6","renderActionSummary","results","_this$term7","renderHero","_this$term8","renderHeadline","dividerEffects","_this$term9","renderDivider","_this$term10","renderLine","_global$activeTest","_global$activeTest2","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","_renderImage","_callee2","_callee2$","_context2","renderImage","_x2","_x3","renderLines","messages","_this$term11","_prompt","_callee3","definition","_this2","msg","_callee3$","_context3","namesUtil","toPascal","type","label","choices","forEach","choice","reject","assert","fail","defaultValue","prompt","_x4","startLoading","stopLoading","_waitForEnter","_callee4","_this3","_callee4$","_context4","waitForEnter","_x5","_waitForInput","_callee5","ttl","checkInterval","loops","lastWriteCount","hasWritten","_callee5$","_context5","testUtil","log","waitForInput","confirm","question","_this4","clear","renderProgressBar","title","updateProgressBar","removeProgressBar","_getCursorPosition","_callee6","_callee6$","_context6","cursorPosition","getCursorPosition","setCursorPosition","pos","moveCursorTo","clearBelowCursor"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\tprivate error?: Error\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tpublic setTitle(_title: string): void {}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic setError(err: Error) {\n\t\tthis.error = err\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: Input): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${\n\t\t\t\t(input as FilePromptInput).path\n\t\t\t\t\t? (input as FilePromptInput).path\n\t\t\t\t\t: (input as string).length > 0\n\t\t\t\t\t? input\n\t\t\t\t\t: 'ENTER'\n\t\t\t}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\t(input as string).length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\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\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.error) {\n\t\t\t\tthrow this.error\n\t\t\t}\n\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n\ntype FilePromptInput = {\n\tpath: string\n}\n\ntype Input = string | string[] | FilePromptInput\n"],"mappings":"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"}
1
+ {"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","exports","_this","_classCallCheck2","_defineProperty2","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","_len","arguments","length","strs","Array","_key","optionallyRenderLine","join","undefined","_createClass2","key","value","setTitle","_title","env","SHOULD_RENDER_TEST_LOGS","renderWarning","message","effects","_this$term","trackInvocation","renderHint","_this$term2","concat","command","options","invocations","push","isWaitingForInput","promptResolver","confirmResolver","waitForEnterResolver","reset","clearTimeout","promptTimeout","setError","err","error","getLastInvocation","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","input","resolver","_resolver","_resolver2","wrap","_callee$","_context","prev","next","path","promptDefaultValue","toLowerCase","Error","abrupt","Promise","resolve","setTimeout","stop","sendInput","_x","apply","renderSection","_this$term3","renderObject","obj","_this$term4","renderError","_this$term5","renderCodeSample","code","_this$term6","renderActionSummary","results","_this$term7","renderHero","_this$term8","renderHeadline","dividerEffects","_this$term9","renderDivider","_this$term10","renderLine","_global$activeTest","_global$activeTest2","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","_renderImage","_callee2","_callee2$","_context2","renderImage","_x2","_x3","renderLines","messages","_this$term11","_prompt","_callee3","definition","_this2","msg","_callee3$","_context3","namesUtil","toPascal","type","label","choices","forEach","choice","reject","assert","fail","defaultValue","prompt","_x4","startLoading","stopLoading","_waitForEnter","_callee4","_this3","_callee4$","_context4","waitForEnter","_x5","_waitForInput","_callee5","ttl","checkInterval","loops","lastWriteCount","hasWritten","_callee5$","_context5","testUtil","log","waitForInput","confirm","question","_this4","clear","renderProgressBar","title","updateProgressBar","removeProgressBar","_getCursorPosition","_callee6","_callee6$","_context6","cursorPosition","getCursorPosition","setCursorPosition","pos","moveCursorTo","clearBelowCursor"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\tprivate error?: Error\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tpublic setTitle(_title: string): void {}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic setError(err: Error) {\n\t\tthis.error = err\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: Input): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${\n\t\t\t\t(input as FilePromptInput).path\n\t\t\t\t\t? (input as FilePromptInput).path\n\t\t\t\t\t: (input as string).length > 0\n\t\t\t\t\t ? input\n\t\t\t\t\t : 'ENTER'\n\t\t\t}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\t(input as string).length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\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\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.error) {\n\t\t\t\tthrow this.error\n\t\t\t}\n\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n\ntype FilePromptInput = {\n\tpath: string\n}\n\ntype Input = string | string[] | FilePromptInput\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { FieldDefinitionValueType } from '@sprucelabs/schema';
2
2
  import { FieldDefinitions } from "./../.spruce/schemas/fields/fields.types";
3
3
  import { ExecutionResults, GraphicsInterface } from '../types/cli.types';
4
4
  import { GraphicsTextEffect, ImageDimensions, ProgressBarOptions, ProgressBarUpdateOptions } from '../types/graphicsInterface.types';
5
- declare type TerminalSpecificOptions = {
5
+ type TerminalSpecificOptions = {
6
6
  eraseBeforeRender?: boolean;
7
7
  };
8
8
  export default class TerminalInterface implements GraphicsInterface {
@@ -32,8 +32,8 @@ var _graphicsInterface = require("../types/graphicsInterface.types");
32
32
  var _duration = _interopRequireDefault(require("../utilities/duration.utility"));
33
33
  var _isCi = _interopRequireDefault(require("../utilities/isCi"));
34
34
  var _process;
35
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
36
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
36
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
37
37
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
38
38
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
39
39
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@@ -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","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","i","F","s","n","done","value","_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","exports","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","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":"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"}
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","prototype","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","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":"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"}
@@ -26,7 +26,7 @@ export interface ServiceMap {
26
26
  eventSettings: EventSettingsService;
27
27
  dependency: DependencyService;
28
28
  }
29
- export declare type Service = keyof ServiceMap;
29
+ export type Service = keyof ServiceMap;
30
30
  export interface ServiceProvider {
31
31
  Service<S extends Service>(type: S, cwd?: string): ServiceMap[S];
32
32
  }
@@ -19,5 +19,5 @@ interface AbstractStoreOptions {
19
19
  apiClientFactory: ApiClientFactory;
20
20
  emitter: GlobalEmitter;
21
21
  }
22
- export declare type StoreOptions<Options extends Record<string, any> | undefined = undefined> = Options extends Record<string, any> ? AbstractStoreOptions & Options : AbstractStoreOptions;
22
+ export type StoreOptions<Options extends Record<string, any> | undefined = undefined> = Options extends Record<string, any> ? AbstractStoreOptions & Options : AbstractStoreOptions;
23
23
  export {};
@@ -24,7 +24,7 @@ interface UniversalOptions {
24
24
  cwd?: string;
25
25
  apiClientFactory?: ApiClientFactory;
26
26
  }
27
- export declare type CreateStoreOptions<Code extends StoreCode> = Code extends keyof StoreOptionsMap ? //@ts-ignore
27
+ export type CreateStoreOptions<Code extends StoreCode> = Code extends keyof StoreOptionsMap ? //@ts-ignore
28
28
  StoreOptionsMap[Code] & UniversalOptions : UniversalOptions;
29
29
  export interface StoreMap {
30
30
  onboarding: OnboardingStore;
@@ -38,7 +38,7 @@ export interface StoreMap {
38
38
  listener: ListenerStore;
39
39
  permission: PermissionStore;
40
40
  }
41
- export declare type StoreCode = keyof StoreMap;
41
+ export type StoreCode = keyof StoreMap;
42
42
  export interface StoreFactoryOptions {
43
43
  cwd: string;
44
44
  serviceFactory: ServiceFactory;
@@ -82,7 +82,7 @@ export default abstract class AbstractCliTest extends AbstractSpruceTest {
82
82
  protected static ActionExecuter(options?: ExecuterOptions): ActionExecuter;
83
83
  protected static selectOptionBasedOnLabel(label: string): void;
84
84
  }
85
- declare type ExecuterOptions = Partial<ActionExecuterOptions> & {
85
+ type ExecuterOptions = Partial<ActionExecuterOptions> & {
86
86
  optionOverrides?: OptionOverrides;
87
87
  };
88
88
  export {};
@@ -46,8 +46,8 @@ var _PersonFixture = _interopRequireDefault(require("./fixtures/PersonFixture"))
46
46
  var _SkillFixture = _interopRequireDefault(require("./fixtures/SkillFixture"));
47
47
  var _ViewFixture = _interopRequireDefault(require("./fixtures/ViewFixture"));
48
48
  var _test = _interopRequireDefault(require("./utilities/test.utility"));
49
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
50
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
49
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
50
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
51
51
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
52
52
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
53
53
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }