@sprucelabs/spruce-cli 19.1.28 → 19.1.30

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 (47) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/build/__tests__/behavioral/events/EventWriter.test.js +1 -2
  3. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
  4. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +3 -4
  5. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  6. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +1 -2
  7. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  8. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +3 -3
  9. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  10. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +6 -6
  11. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  12. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +3 -4
  13. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  14. package/build/__tests__/support/scripts/first.script.js +2 -2
  15. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  16. package/build/components/FormComponent.js +2 -2
  17. package/build/components/QuizComponent.js +2 -2
  18. package/build/features/FeatureCommandAttacher.d.ts +6 -6
  19. package/build/features/FeatureCommandAttacher.js.map +1 -1
  20. package/build/features/conversation/actions/TestAction.js +2 -2
  21. package/build/features/onboard/scripts/onboarding.first.script.js +5 -5
  22. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  23. package/build/features/onboard/scripts/onboarding.immersive.script.js +3 -3
  24. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  25. package/build/features/onboard/scripts/onboarding.returning.script.js +2 -2
  26. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  27. package/build/features/onboard/scripts/onboarding.short.script.js +6 -6
  28. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  29. package/build/features/onboard/scripts/todo/todo.create.skill.script.js +2 -2
  30. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  31. package/build/features/onboard/scripts/todo/todo.test.script.js +2 -2
  32. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  33. package/build/features/onboard/scripts/wrongCommand.script.js +2 -2
  34. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  35. package/build/features/person/PersonFeature.js +1 -4
  36. package/build/features/person/PersonFeature.js.map +1 -1
  37. package/build/features/person/actions/LoginAction.d.ts +6 -6
  38. package/build/features/person/actions/LoginAction.js +15 -15
  39. package/build/features/person/actions/LoginAction.js.map +1 -1
  40. package/build/features/vscode/services/VsCodeService.js +2 -2
  41. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  42. package/build/interfaces/SpyInterface.js.map +1 -1
  43. package/package.json +38 -38
  44. package/src/features/FeatureCommandAttacher.ts +8 -8
  45. package/src/features/person/PersonFeature.ts +1 -6
  46. package/src/features/person/actions/LoginAction.ts +19 -19
  47. package/src/interfaces/SpyInterface.ts +2 -2
@@ -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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"}
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  ]
18
18
  },
19
19
  "license": "MIT",
20
- "version": "19.1.28",
20
+ "version": "19.1.30",
21
21
  "bin": {
22
22
  "spruce": "./build/index.js"
23
23
  },
@@ -72,21 +72,21 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@babel/cli": "^7.23.0",
75
- "@babel/plugin-proposal-decorators": "^7.23.2",
75
+ "@babel/plugin-proposal-decorators": "^7.23.3",
76
76
  "@babel/runtime": "^7.23.2",
77
77
  "@jest/reporters": "^29.7.0",
78
- "@sprucelabs/error": "^5.1.37",
78
+ "@sprucelabs/error": "^5.1.45",
79
79
  "@sprucelabs/globby": "^1.0.3",
80
- "@sprucelabs/heartwood-view-controllers": "^107.2.85",
81
- "@sprucelabs/jest-json-reporter": "^7.0.112",
82
- "@sprucelabs/mercury-client": "^41.0.116",
83
- "@sprucelabs/mercury-event-emitter": "^41.0.116",
84
- "@sprucelabs/mercury-types": "^46.0.102",
85
- "@sprucelabs/schema": "^29.0.73",
86
- "@sprucelabs/spruce-core-schemas": "^39.0.108",
87
- "@sprucelabs/spruce-event-utils": "^38.0.122",
88
- "@sprucelabs/spruce-skill-utils": "^30.1.6",
89
- "@sprucelabs/spruce-templates": "^19.1.28",
80
+ "@sprucelabs/heartwood-view-controllers": "^108.0.11",
81
+ "@sprucelabs/jest-json-reporter": "^7.0.121",
82
+ "@sprucelabs/mercury-client": "^41.0.139",
83
+ "@sprucelabs/mercury-event-emitter": "^41.0.139",
84
+ "@sprucelabs/mercury-types": "^46.0.118",
85
+ "@sprucelabs/schema": "^29.0.85",
86
+ "@sprucelabs/spruce-core-schemas": "^39.0.127",
87
+ "@sprucelabs/spruce-event-utils": "^38.0.143",
88
+ "@sprucelabs/spruce-skill-utils": "^30.1.23",
89
+ "@sprucelabs/spruce-templates": "^19.1.30",
90
90
  "@typescript-eslint/eslint-plugin": "^5.27.1",
91
91
  "@typescript-eslint/parser": "^5.27.1",
92
92
  "cfonts": "^3.2.0",
@@ -113,36 +113,36 @@
113
113
  "uuid": "^9.0.1"
114
114
  },
115
115
  "devDependencies": {
116
- "@sprucelabs/data-stores": "^25.4.0",
116
+ "@sprucelabs/data-stores": "^25.13.5",
117
117
  "@sprucelabs/jest-sheets-reporter": "^3.0.26",
118
- "@sprucelabs/mercury-core-events": "^22.0.113",
119
- "@sprucelabs/resolve-path-aliases": "^1.1.254",
120
- "@sprucelabs/spruce-conversation-plugin": "^60.1.8",
121
- "@sprucelabs/spruce-deploy-plugin": "^60.1.8",
122
- "@sprucelabs/spruce-store-plugin": "^60.1.8",
123
- "@sprucelabs/spruce-test-fixtures": "^60.1.8",
124
- "@sprucelabs/test": "^8.0.22",
125
- "@sprucelabs/test-utils": "^4.0.62",
126
- "@types/blessed": "^0.1.24",
127
- "@types/eslint": "^8.44.6",
128
- "@types/fs-extra": "^11.0.3",
118
+ "@sprucelabs/mercury-core-events": "^22.0.137",
119
+ "@sprucelabs/resolve-path-aliases": "^1.1.261",
120
+ "@sprucelabs/spruce-conversation-plugin": "^60.1.45",
121
+ "@sprucelabs/spruce-deploy-plugin": "^60.1.45",
122
+ "@sprucelabs/spruce-store-plugin": "^60.1.45",
123
+ "@sprucelabs/spruce-test-fixtures": "^60.1.45",
124
+ "@sprucelabs/test": "^8.0.28",
125
+ "@sprucelabs/test-utils": "^4.0.73",
126
+ "@types/blessed": "^0.1.25",
127
+ "@types/eslint": "^8.44.7",
128
+ "@types/fs-extra": "^11.0.4",
129
129
  "@types/inquirer": "^8.2.1",
130
- "@types/lodash": "^4.14.200",
131
- "@types/md5": "^2.3.4",
132
- "@types/node": "^20.8.9",
133
- "@types/promise.allsettled": "^1.0.5",
134
- "@types/ps-node": "^0.1.2",
135
- "@types/semver": "^7.5.4",
136
- "@types/sha1": "^1.1.4",
137
- "@types/slug": "^5.0.6",
138
- "@types/superagent": "^4.1.20",
139
- "@types/terminal-kit": "^2.5.3",
140
- "@types/uuid": "^9.0.6",
130
+ "@types/lodash": "^4.14.201",
131
+ "@types/md5": "^2.3.5",
132
+ "@types/node": "^20.9.1",
133
+ "@types/promise.allsettled": "^1.0.6",
134
+ "@types/ps-node": "^0.1.3",
135
+ "@types/semver": "^7.5.5",
136
+ "@types/sha1": "^1.1.5",
137
+ "@types/slug": "^5.0.7",
138
+ "@types/superagent": "^4.1.22",
139
+ "@types/terminal-kit": "^2.5.4",
140
+ "@types/uuid": "^9.0.7",
141
141
  "chokidar-cli": "^3.0.0",
142
142
  "concurrently": "^8.2.2",
143
143
  "conventional-changelog-sprucelabs": "^1.1.2",
144
144
  "dotenv": "^16.3.1",
145
- "eslint": "^8.52.0",
145
+ "eslint": "^8.53.0",
146
146
  "eslint-config-spruce": "^10.13.6",
147
147
  "find-process": "^1.4.7",
148
148
  "jest": "^29.7.0",
@@ -590,5 +590,5 @@
590
590
  "terminal-kit"
591
591
  ]
592
592
  },
593
- "gitHead": "f08de0f40792307a61cfeeae8f1c926e435e7c0a"
593
+ "gitHead": "61001b52073cf3c6b77f6486c439883b5cc37e84"
594
594
  }
@@ -9,14 +9,6 @@ import ActionExecuter from './ActionExecuter'
9
9
  import featuresUtil from './feature.utilities'
10
10
  import { FeatureAction, FeatureActionResponse } from './features.types'
11
11
 
12
- export interface OptionOverrides {
13
- [command: string]: Record<string, any>
14
- }
15
-
16
- export interface BlockedCommands {
17
- [command: string]: string
18
- }
19
-
20
12
  export default class FeatureCommandAttacher {
21
13
  private program: CommanderStatic['program']
22
14
  private ui: GraphicsInterface
@@ -155,3 +147,11 @@ export default class FeatureCommandAttacher {
155
147
  })
156
148
  }
157
149
  }
150
+
151
+ export interface OptionOverrides {
152
+ [command: string]: Record<string, any>
153
+ }
154
+
155
+ export interface BlockedCommands {
156
+ [command: string]: string
157
+ }
@@ -6,12 +6,7 @@ export default class PersonFeature extends AbstractFeature {
6
6
  public code: FeatureCode = 'person'
7
7
  public nameReadable = 'Person'
8
8
  public description = 'Log in, log out, etc.'
9
- public dependencies: FeatureDependency[] = [
10
- {
11
- code: 'skill',
12
- isRequired: true,
13
- },
14
- ]
9
+ public dependencies: FeatureDependency[] = []
15
10
  public packageDependencies = []
16
11
 
17
12
  public actionsDir = diskUtil.resolvePath(__dirname, 'actions')
@@ -3,25 +3,6 @@ import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'
3
3
  import AbstractAction from '../../AbstractAction'
4
4
  import { FeatureActionResponse } from '../../features.types'
5
5
 
6
- const optionsSchema = buildSchema({
7
- id: 'loginAction',
8
- description:
9
- 'Authenticate as a person. From here, you can begin creating skill, organizations, conversation topics, etc.',
10
- fields: {
11
- phone: {
12
- type: 'phone',
13
- label: 'Phone number',
14
- isRequired: true,
15
- },
16
- pin: {
17
- type: 'text',
18
- label: 'Pin',
19
- },
20
- },
21
- })
22
- type OptionsSchema = typeof optionsSchema
23
- type Options = SchemaValues<OptionsSchema>
24
-
25
6
  export default class LoginAction extends AbstractAction<OptionsSchema> {
26
7
  public optionsSchema: OptionsSchema = optionsSchema
27
8
  public commandAliases = ['login']
@@ -78,3 +59,22 @@ export default class LoginAction extends AbstractAction<OptionsSchema> {
78
59
  return response
79
60
  }
80
61
  }
62
+
63
+ const optionsSchema = buildSchema({
64
+ id: 'loginAction',
65
+ description:
66
+ 'Authenticate as a person. From here, you can begin creating skill, organizations, conversation topics, etc.',
67
+ fields: {
68
+ phone: {
69
+ type: 'phone',
70
+ label: 'Phone number',
71
+ isRequired: true,
72
+ },
73
+ pin: {
74
+ type: 'text',
75
+ label: 'Pin',
76
+ },
77
+ },
78
+ })
79
+ type OptionsSchema = typeof optionsSchema
80
+ type Options = SchemaValues<OptionsSchema>
@@ -99,8 +99,8 @@ export default class SpyInterface implements GraphicsInterface {
99
99
  (input as FilePromptInput).path
100
100
  ? (input as FilePromptInput).path
101
101
  : (input as string).length > 0
102
- ? input
103
- : 'ENTER'
102
+ ? input
103
+ : 'ENTER'
104
104
  }"`
105
105
  )
106
106