@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.
- package/CHANGELOG.md +16 -0
- package/build/__tests__/behavioral/events/EventWriter.test.js +1 -2
- package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +3 -4
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +1 -2
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +3 -3
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +6 -6
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +3 -4
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js +2 -2
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/components/FormComponent.js +2 -2
- package/build/components/QuizComponent.js +2 -2
- package/build/features/FeatureCommandAttacher.d.ts +6 -6
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js +2 -2
- package/build/features/onboard/scripts/onboarding.first.script.js +5 -5
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js +3 -3
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js +2 -2
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js +6 -6
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js +2 -2
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.test.script.js +2 -2
- package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js +2 -2
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/person/PersonFeature.js +1 -4
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.d.ts +6 -6
- package/build/features/person/actions/LoginAction.js +15 -15
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js +2 -2
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/package.json +38 -38
- package/src/features/FeatureCommandAttacher.ts +8 -8
- package/src/features/person/PersonFeature.ts +1 -6
- package/src/features/person/actions/LoginAction.ts +19 -19
- 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":";;;;;;;;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AASA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,kBAAA,GAAAF,sBAAA,CAAAH,OAAA;AAAmD,IAE9BM,YAAY,GAAAC,OAAA;EAgBhC,SAAAD,aAAA,EAAqB;IAAA,IAAAE,KAAA;IAAA,IAAAC,gBAAA,mBAAAH,YAAA;IAAA,IAAAI,gBAAA,kCAfsC,EAAE;IAAA,IAAAA,gBAAA,qCACpC;MAAEC,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IAAA,IAAAF,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAetC,IAAI,CAACG,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAErC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC,GACpC,IAAIC,6BAAiB,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAiB;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACnDlB,KAAI,CAACmB,oBAAoB,CAACH,IAAI,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,GACFC,SAAS;EACb;EAAC,IAAAC,aAAA,aAAAxB,YAAA;IAAAyB,GAAA;IAAAC,KAAA,EAED,SAAAC,SAAgBC,MAAc,EAAQ,CAAC;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAExC,SAAAf,qBAAA,EAA+B;MAC9B,OAAOE,OAAO,CAACgB,GAAG,CAACC,uBAAuB,KAAK,MAAM;IACtD;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAK,cACCC,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAAC,UAAA;MACP,IAAI,CAACC,eAAe,CAAC,eAAe,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MAC3D,CAAAC,UAAA,OAAI,CAACxB,IAAI,cAAAwB,UAAA,eAATA,UAAA,CAAWH,aAAa,CAACC,OAAO,CAAC;IAClC;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAU,WACCJ,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAAI,WAAA;MACP,IAAI,CAACF,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxD,IAAI,CAACZ,oBAAoB,UAAAiB,MAAA,CAAUN,OAAO,CAAE,CAAC;MAC7C,CAAAK,WAAA,OAAI,CAAC3B,IAAI,cAAA2B,WAAA,eAATA,WAAA,CAAWD,UAAU,CAACJ,OAAO,CAAC;IAC/B;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAS,gBAAwBI,OAAe,EAAEC,OAAa,EAAE;MACvD;MACA,IAAI,CAACC,WAAW,CAACC,IAAI,CAAC;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;IAC5C;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAiB,kBAAA,EAA2B;MAC1B,OAAO,CAAC,EACP,IAAI,CAACC,cAAc,IACnB,IAAI,CAACC,eAAe,IACpB,IAAI,CAACC,oBAAoB,CACzB;IACF;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAqB,MAAA,EAAe;MACd,IAAI,CAACH,cAAc,GAAGrB,SAAS;MAC/B,IAAI,CAACsB,eAAe,GAAGtB,SAAS;MAChC,IAAI,CAACuB,oBAAoB,GAAGvB,SAAS;MACrCyB,YAAY,CAAC,IAAI,CAACC,aAAa,CAAC;IACjC;EAAC;IAAAxB,GAAA;IAAAC,KAAA,EAED,SAAAwB,SAAgBC,GAAU,EAAE;MAC3B,IAAI,CAACC,KAAK,GAAGD,GAAG;IACjB;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA2B,kBAAA,EAA2B;MAC1B,OAAO,IAAI,CAACZ,WAAW,CAAC,IAAI,CAACA,WAAW,CAACxB,MAAM,GAAG,CAAC,CAAC;IACrD;EAAC;IAAAQ,GAAA;IAAAC,KAAA;MAAA,IAAA4B,UAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAC,QAAuBC,KAAY;QAAA,IAAAC,QAAA,EAAAC,SAAA,EAAAC,UAAA;QAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAClC,IAAI,CAAChC,eAAe,CAAC,WAAW,EAAEwB,KAAK,CAAC;cAExC,IAAI,CAACtC,oBAAoB,qBAAAiB,MAAA,CAEtBqB,KAAK,CAAqBS,IAAI,GAC3BT,KAAK,CAAqBS,IAAI,GAC9BT,KAAK,CAAY1C,MAAM,GAAG,CAAC,GAC5B0C,KAAK,GACL,OAAO,OAEZ,CAAC;cAAA,KAEG,IAAI,CAACb,oBAAoB;gBAAAmB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACtBP,QAAQ,GAAG,IAAI,CAACd,oBAAoB;cAC1C,IAAI,CAACA,oBAAoB,GAAGvB,SAAS;cAErCqC,QAAQ,CAAC,CAAC;cAAAK,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,KACA,IAAI,CAACvB,cAAc;gBAAAqB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACvBP,SAAQ,GAAG,IAAI,CAAChB,cAAc;cACpC,IAAI,CAACA,cAAc,GAAGrB,SAAS;cAE/BqC,SAAQ,CAACD,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAG,IAAI,CAACU,kBAAkB,CAAC;cAAAJ,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,KAChE,IAAI,CAACtB,eAAe;gBAAAoB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACxBP,UAAQ,GAAG,IAAI,CAACf,eAAe;cACrC,IAAI,CAACA,eAAe,GAAGtB,SAAS;cAEhCqC,UAAQ,CACPD,KAAK,KAAK,IAAI,IACZA,KAAK,CAAY1C,MAAM,KAAK,CAAC,IAC7B,OAAO0C,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACW,WAAW,CAAC,CAAC,KAAK,GACxD,CAAC;cAAAL,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,MAEK,IAAII,KAAK,CAAC,sCAAsC,CAAC;YAAA;cAAA,OAAAN,QAAA,CAAAO,MAAA,WAGjD,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BC,UAAU,CAACD,OAAO,EAAE,EAAE,CAAC;cACxB,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAT,QAAA,CAAAW,IAAA;UAAA;QAAA,GAAAlB,OAAA;MAAA,CACF;MAAA,SAAAmB,UAAAC,EAAA;QAAA,OAAAxB,UAAA,CAAAyB,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAA6D,SAAA;IAAA;EAAA;IAAApD,GAAA;IAAAC,KAAA,EAED,SAAAsD,cAAqBxC,OAOpB,EAAQ;MAAA,IAAAyC,WAAA;MACR,IAAI,CAAC9C,eAAe,CAAC,eAAe,EAAEK,OAAO,CAAC;MAC9C,CAAAyC,WAAA,OAAI,CAACvE,IAAI,cAAAuE,WAAA,eAATA,WAAA,CAAWD,aAAa,CAACxC,OAAO,CAAC;IAClC;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAwD,aAAoBC,GAAQ,EAAQ;MAAA,IAAAC,WAAA;MACnC,IAAI,CAACjD,eAAe,CAAC,cAAc,EAAEgD,GAAG,CAAC;MACzC,CAAAC,WAAA,OAAI,CAAC1E,IAAI,cAAA0E,WAAA,eAATA,WAAA,CAAWF,YAAY,CAACC,GAAG,CAAC;IAC7B;EAAC;IAAA1D,GAAA;IAAAC,KAAA,EAED,SAAA2D,YAAmBlC,GAAU,EAAQ;MAAA,IAAAmC,WAAA;MACpC,IAAI,CAACnD,eAAe,CAAC,aAAa,EAAEgB,GAAG,CAAC;MACxC,CAAAmC,WAAA,OAAI,CAAC5E,IAAI,cAAA4E,WAAA,eAATA,WAAA,CAAWD,WAAW,CAAClC,GAAG,CAAC;IAC5B;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA6D,iBAAwBC,IAAY,EAAQ;MAAA,IAAAC,WAAA;MAC3C,IAAI,CAACtD,eAAe,CAAC,kBAAkB,EAAEqD,IAAI,CAAC;MAC9C,CAAAC,WAAA,OAAI,CAAC/E,IAAI,cAAA+E,WAAA,eAATA,WAAA,CAAWF,gBAAgB,CAACC,IAAI,CAAC;IAClC;EAAC;IAAA/D,GAAA;IAAAC,KAAA,EAED,SAAAgE,oBAA2BC,OAAyB,EAAQ;MAAA,IAAAC,WAAA;MAC3D,IAAI,CAACzD,eAAe,CAAC,sBAAsB,EAAEwD,OAAO,CAAC;MACrD,CAAAC,WAAA,OAAI,CAAClF,IAAI,cAAAkF,WAAA,eAATA,WAAA,CAAWF,mBAAmB,CAACC,OAAO,CAAC;IACxC;EAAC;IAAAlE,GAAA;IAAAC,KAAA,EAED,SAAAmE,WACC7D,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAA6D,WAAA;MACP,IAAI,CAAC3D,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxD,CAAA6D,WAAA,OAAI,CAACpF,IAAI,cAAAoF,WAAA,eAATA,WAAA,CAAWD,UAAU,CAAC7D,OAAO,EAAEC,OAAO,CAAC;IACxC;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAqE,eACC/D,OAAe,EACfC,OAA6B,EAC7B+D,cAAoC,EAC7B;MAAA,IAAAC,WAAA;MACP,IAAI,CAAC9D,eAAe,CAAC,gBAAgB,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA,OAAO;QAAE+D,cAAc,EAAdA;MAAe,CAAC,CAAC;MAC5E,CAAAC,WAAA,OAAI,CAACvF,IAAI,cAAAuF,WAAA,eAATA,WAAA,CAAWF,cAAc,CAAC/D,OAAO,EAAEC,OAAO,EAAE+D,cAAc,CAAC;IAC5D;EAAC;IAAAvE,GAAA;IAAAC,KAAA,EAED,SAAAwE,cAAqBjE,OAA0C,EAAQ;MAAA,IAAAkE,YAAA;MACtE,IAAI,CAAChE,eAAe,CAAC,eAAe,EAAEF,OAAO,CAAC;MAC9C,CAAAkE,YAAA,OAAI,CAACzF,IAAI,cAAAyF,YAAA,eAATA,YAAA,CAAWD,aAAa,CAACjE,OAAO,CAAC;IAClC;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAA0E,WACCpE,OAAe,EACfC,OAA0C,EACnC;MACP,IAAI,CAACE,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxDD,OAAO,IAAIA,OAAO,CAACf,MAAM,GAAG,CAAC,IAAI,IAAI,CAACI,oBAAoB,CAACW,OAAO,CAAC;IACpE;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAL,qBAA6BW,OAAe,EAAE;MAC7C,IAAI,IAAI,CAACrB,oBAAoB,CAAC,CAAC,EAAE;QAAA,IAAA0F,kBAAA,EAAAC,mBAAA;QAChC,IAAMC,QAAQ,GAAG,IAAI/F,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAG,IAAI,CAACF,SAAS;QACtD,IAAMiG,QAAQ,GAAGC,oBAAY,CAACC,YAAY,CAACH,QAAQ,CAAC;QAEpDI,yBAAO,CAACC,IAAI,IAAAtE,MAAA;QAEV;QACA,CAAA+D,kBAAA,GAAAQ,MAAM,CAACC,UAAU,cAAAT,kBAAA,eAAjBA,kBAAA,CAAmBU,IAAI,GAAG,EAAAT,mBAAA,GAAAO,MAAM,CAACC,UAAU,cAAAR,mBAAA,uBAAjBA,mBAAA,CAAmBS,IAAI,IAAG,MAAM,GAAG,EAAE,EAAAzE,MAAA,CAC7DkE,QAAQ,UAAAlE,MAAA,CAAON,OAAO,CAC1B,CAAC;MACF;IACD;EAAC;IAAAP,GAAA;IAAAC,KAAA;MAAA,IAAAsF,YAAA,OAAAzD,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwD,SACC7C,IAAY,EACZ5B,OAAyB;QAAA,OAAAgB,YAAA,YAAAO,IAAA,UAAAmD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;YAAA;cAEzB,IAAI,CAAChC,eAAe,CAAC,aAAa,EAAE;gBAAEiC,IAAI,EAAJA,IAAI;gBAAE5B,OAAO,EAAPA;cAAQ,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA2E,SAAA,CAAAvC,IAAA;UAAA;QAAA,GAAAqC,QAAA;MAAA,CACtD;MAAA,SAAAG,YAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAN,YAAA,CAAAjC,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAoG,WAAA;IAAA;EAAA;IAAA3F,GAAA;IAAAC,KAAA,EAED,SAAA6F,YACCC,QAAkB,EAClBvF,OAA0C,EACnC;MAAA,IAAAwF,YAAA;MACP,IAAI,CAACtF,eAAe,CAAC,aAAa,EAAE;QAAEqF,QAAQ,EAARA,QAAQ;QAAEvF,OAAO,EAAPA;MAAQ,CAAC,CAAC;MAC1D,CAAAwF,YAAA,OAAI,CAAC/G,IAAI,cAAA+G,YAAA,eAATA,YAAA,CAAWF,WAAW,CAACC,QAAQ,EAAEvF,OAAO,CAAC;IAC1C;EAAC;IAAAR,GAAA;IAAAC,KAAA;MAAA,IAAAgG,OAAA,OAAAnE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAkE,SAAgDC,UAAa;QAAA,IAAAC,MAAA;QAAA,IAAAC,GAAA;QAAA,OAAAtE,YAAA,YAAAO,IAAA,UAAAgE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9D,IAAA,GAAA8D,SAAA,CAAA7D,IAAA;YAAA;cAC5D,IAAI,CAAChC,eAAe,CAAC,QAAQ,EAAEyF,UAAU,CAAC;cAAA,KAEtC,IAAI,CAAChF,cAAc;gBAAAoF,SAAA,CAAA7D,IAAA;gBAAA;cAAA;cAAA,MAChB,IAAII,KAAK,CACd,gFACD,CAAC;YAAA;cAGEuD,GAAG,MAAAxF,MAAA,CAAM2F,2BAAS,CAACC,QAAQ,CAACN,UAAU,CAACO,IAAI,CAAC,eAAA7F,MAAA,CAC/CsF,UAAU,CAACQ,KAAK;cAGjB,IAAIR,UAAU,CAACO,IAAI,KAAK,QAAQ,EAAE;gBACjCL,GAAG,IAAI,gBAAgB;gBACvBF,UAAU,CAACpF,OAAO,CAAC6F,OAAO,CAACC,OAAO,CAAC,UAACC,MAAM,EAAK;kBAC9CT,GAAG,SAAAxF,MAAA,CAASiG,MAAM,CAAC7G,KAAK,QAAAY,MAAA,CAAKiG,MAAM,CAACH,KAAK,CAAE;gBAC5C,CAAC,CAAC;gBAEFN,GAAG,IAAI,IAAI;cACZ;cAEA,IAAI,CAACzG,oBAAoB,CAACyG,GAAG,CAAC;cAAA,OAAAE,SAAA,CAAAxD,MAAA,WAEvB,IAAIC,OAAO,CACjB,UAACC,OAAO,EAAE8D,MAAM,EAAK;gBACpBX,MAAI,CAACjF,cAAc,GAAG,YAAoB;kBACzCI,YAAY,CAAC6E,MAAI,CAAC5E,aAAa,CAAC;kBAChC;kBACAyB,OAAO,CAAAK,KAAA,SAAA/D,SAAQ,CAAC;gBACjB,CAAC;gBACD6G,MAAI,CAAC5E,aAAa,GAAG0B,UAAU,CAAC,YAAM;kBACrCkD,MAAI,CAAC9E,KAAK,CAAC,CAAC;kBAEZ,IAAI;oBACH0F,iBAAM,CAACC,IAAI,6CAAApG,MAAA,CACkCsF,UAAU,CAACQ,KAAK,2EAC7D,CAAC;kBACF,CAAC,CAAC,OAAOjF,GAAQ,EAAE;oBAClBqF,MAAM,CAACrF,GAAG,CAAC;kBACZ;gBACD,CAAC,EAAE,KAAK,CAAC;gBACT0E,MAAI,CAACxD,kBAAkB,GAAGuD,UAAU,CAACe,YAAY;cAClD,CACD,CAAC;YAAA;YAAA;cAAA,OAAAX,SAAA,CAAApD,IAAA;UAAA;QAAA,GAAA+C,QAAA;MAAA,CACD;MAAA,SAAAiB,OAAAC,GAAA;QAAA,OAAAnB,OAAA,CAAA3C,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAA4H,MAAA;IAAA;EAAA;IAAAnH,GAAA;IAAAC,KAAA,EAED,SAAAoH,aAAoB9G,OAA4B,EAAQ;MACvD,IAAI,CAACG,eAAe,CAAC,cAAc,EAAEH,OAAO,CAAC;MAC7C,IAAI,CAACX,oBAAoB,CAACW,OAAO,MAAAM,MAAA,CAAMN,OAAO,IAAK,kBAAkB,CAAC;IACvE;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAqH,YAAA,EAA2B;MAC1B,IAAI,CAAC5G,eAAe,CAAC,aAAa,CAAC;MACnC,IAAI,CAACd,oBAAoB,CAAC,iBAAiB,CAAC;IAC7C;EAAC;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAsH,aAAA,OAAAzF,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwF,SAA0BjH,OAA4B;QAAA,IAAAkH,MAAA;QAAA,OAAA1F,YAAA,YAAAO,IAAA,UAAAoF,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlF,IAAA,GAAAkF,SAAA,CAAAjF,IAAA;YAAA;cACrD,IAAI,CAAChC,eAAe,CAAC,cAAc,EAAEH,OAAO,CAAC;cAC7C,IAAI,CAACX,oBAAoB,IAAAiB,MAAA,CACrBN,OAAO,OAAAM,MAAA,CAAON,OAAO,cAAW,yBACpC,CAAC;cAAA,OAAAoH,SAAA,CAAA5E,MAAA,WAEM,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BwE,MAAI,CAACpG,oBAAoB,GAAG4B,OAAO;cACpC,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA0E,SAAA,CAAAxE,IAAA;UAAA;QAAA,GAAAqE,QAAA;MAAA,CACF;MAAA,SAAAI,aAAAC,GAAA;QAAA,OAAAN,aAAA,CAAAjE,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAqI,YAAA;IAAA;EAAA;IAAA5H,GAAA;IAAAC,KAAA;MAAA,IAAA6H,aAAA,OAAAhG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA+F,SAAA;QAAA,IAAAC,GAAA,EAAAC,aAAA,EAAAC,KAAA,EAAAC,cAAA,EAAAC,UAAA;QAAA,OAAArG,YAAA,YAAAO,IAAA,UAAA+F,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7F,IAAA,GAAA6F,SAAA,CAAA5F,IAAA;YAAA;cACOsF,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;cACnBC,aAAa,GAAG,GAAG;cACrBC,KAAK,GAAGF,GAAG,GAAGC,aAAa;cAC3BE,cAAc,GAAG,IAAI,CAACnH,WAAW,CAACxB,MAAM;YAAA;cAAA,IAEpC,IAAI,CAAC0B,iBAAiB,CAAC,CAAC;gBAAAoH,SAAA,CAAA5F,IAAA;gBAAA;cAAA;cAC/B,IAAIwF,KAAK,EAAE,KAAK,CAAC,EAAE;gBAClBlB,iBAAM,CAACC,IAAI,+BAA+B,CAAC;cAC5C;cAEMmB,UAAU,GAAGD,cAAc,IAAI,IAAI,CAACnH,WAAW,CAACxB,MAAM;cAE5D,IAAI4I,UAAU,EAAE;gBACfF,KAAK,GAAGF,GAAG,GAAGC,aAAa;gBAC3BE,cAAc,GAAG,IAAI,CAACnH,WAAW,CAACxB,MAAM;gBACxC,IAAI,IAAI,CAACN,oBAAoB,CAAC,CAAC,EAAE;kBAChCqJ,gBAAQ,CAACC,GAAG,CAAC,mDAAmD,CAAC;gBAClE;cACD;cAAC,KAEG,IAAI,CAAC7G,KAAK;gBAAA2G,SAAA,CAAA5F,IAAA;gBAAA;cAAA;cAAA,MACP,IAAI,CAACf,KAAK;YAAA;cAAA2G,SAAA,CAAA5F,IAAA;cAAA,OAGX,IAAIM,OAAO,CAAC,UAACC,OAAO;gBAAA,OAAKC,UAAU,CAACD,OAAO,EAAEgF,aAAa,CAAC;cAAA,EAAC;YAAA;cAAAK,SAAA,CAAA5F,IAAA;cAAA;YAAA;YAAA;cAAA,OAAA4F,SAAA,CAAAnF,IAAA;UAAA;QAAA,GAAA4E,QAAA;MAAA,CAEnE;MAAA,SAAAU,aAAA;QAAA,OAAAX,aAAA,CAAAxE,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAkJ,YAAA;IAAA;EAAA;IAAAzI,GAAA;IAAAC,KAAA,EAED,SAAAyI,QAAeC,QAAgB,EAAoB;MAAA,IAAAC,MAAA;MAClD,IAAI,CAAClI,eAAe,CAAC,SAAS,EAAEiI,QAAQ,CAAC;MACzC,IAAI,CAAC/I,oBAAoB,IAAAiB,MAAA,CAAI8H,QAAQ,eAAY,CAAC;MAElD,OAAO,IAAI3F,OAAO,CAAC,UAACC,OAAO,EAAK;QAC/B2F,MAAI,CAACxH,eAAe,GAAG6B,OAAO;MAC/B,CAAC,CAAC;IACH;EAAC;IAAAjD,GAAA;IAAAC,KAAA,EAED,SAAA4I,MAAA,EAAqB;MACpB,IAAI,CAACnI,eAAe,CAAC,OAAO,CAAC;IAC9B;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAA6I,kBAAyB/H,OAA2B,EAAQ;MAC3D,IAAI,CAACL,eAAe,CAAC,mBAAmB,EAAEK,OAAO,CAAC;MAClD,IAAI,CAACnB,oBAAoB,oBAAAiB,MAAA,CACLE,OAAO,CAACgI,KAAK,OAAAlI,MAAA,CAAOE,OAAO,CAACgI,KAAK,MAAO,CAC5D,CAAC;IACF;EAAC;IAAA/I,GAAA;IAAAC,KAAA,EAED,SAAA+I,kBAAyBjI,OAAiC,EAAQ;MACjE,IAAI,CAACL,eAAe,CAAC,mBAAmB,EAAEK,OAAO,CAAC;IACnD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAgJ,kBAAA,EAAiC;MAChC,IAAI,CAACvI,eAAe,CAAC,mBAAmB,CAAC;MACzC,IAAI,CAACd,oBAAoB,kBAAkB,CAAC;IAC7C;EAAC;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAiJ,kBAAA,OAAApH,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAmH,SAAA;QAAA,OAAApH,YAAA,YAAAO,IAAA,UAAA8G,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5G,IAAA,GAAA4G,SAAA,CAAA3G,IAAA;YAAA;cACC,IAAI,CAAChC,eAAe,CAAC,mBAAmB,CAAC;cAAA,OAAA2I,SAAA,CAAAtG,MAAA,WAClC,IAAI,CAACuG,cAAc;YAAA;YAAA;cAAA,OAAAD,SAAA,CAAAlG,IAAA;UAAA;QAAA,GAAAgG,QAAA;MAAA,CAC1B;MAAA,SAAAI,kBAAA;QAAA,OAAAL,kBAAA,CAAA5F,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAgK,iBAAA;IAAA;EAAA;IAAAvJ,GAAA;IAAAC,KAAA,EAED,SAAAuJ,kBAAyBC,GAA6B,EAAE;MACvD,IAAI,CAACH,cAAc,GAAGG,GAAG;IAC1B;EAAC;IAAAzJ,GAAA;IAAAC,KAAA,EAED,SAAAyJ,aAAoB9K,CAAS,EAAEC,CAAS,EAAQ;MAC/C,IAAI,CAAC6B,eAAe,CAAC,cAAc,EAAE;QAAE9B,CAAC,EAADA,CAAC;QAAEC,CAAC,EAADA;MAAE,CAAC,CAAC;IAC/C;EAAC;IAAAmB,GAAA;IAAAC,KAAA,EAED,SAAA0J,iBAAA,EAAgC;MAC/B,IAAI,CAACjJ,eAAe,CAAC,kBAAkB,CAAC;IACzC;EAAC;EAAA,OAAAnC,YAAA;AAAA"}
|
|
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":";;;;;;;;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AASA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,kBAAA,GAAAF,sBAAA,CAAAH,OAAA;AAAmD,IAE9BM,YAAY,GAAAC,OAAA;EAgBhC,SAAAD,aAAA,EAAqB;IAAA,IAAAE,KAAA;IAAA,IAAAC,gBAAA,mBAAAH,YAAA;IAAA,IAAAI,gBAAA,kCAfsC,EAAE;IAAA,IAAAA,gBAAA,qCACpC;MAAEC,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IAAA,IAAAF,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAetC,IAAI,CAACG,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAErC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC,GACpC,IAAIC,6BAAiB,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAiB;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACnDlB,KAAI,CAACmB,oBAAoB,CAACH,IAAI,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,GACFC,SAAS;EACb;EAAC,IAAAC,aAAA,aAAAxB,YAAA;IAAAyB,GAAA;IAAAC,KAAA,EAED,SAAAC,SAAgBC,MAAc,EAAQ,CAAC;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAExC,SAAAf,qBAAA,EAA+B;MAC9B,OAAOE,OAAO,CAACgB,GAAG,CAACC,uBAAuB,KAAK,MAAM;IACtD;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAK,cACCC,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAAC,UAAA;MACP,IAAI,CAACC,eAAe,CAAC,eAAe,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MAC3D,CAAAC,UAAA,OAAI,CAACxB,IAAI,cAAAwB,UAAA,eAATA,UAAA,CAAWH,aAAa,CAACC,OAAO,CAAC;IAClC;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAU,WACCJ,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAAI,WAAA;MACP,IAAI,CAACF,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxD,IAAI,CAACZ,oBAAoB,UAAAiB,MAAA,CAAUN,OAAO,CAAE,CAAC;MAC7C,CAAAK,WAAA,OAAI,CAAC3B,IAAI,cAAA2B,WAAA,eAATA,WAAA,CAAWD,UAAU,CAACJ,OAAO,CAAC;IAC/B;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAS,gBAAwBI,OAAe,EAAEC,OAAa,EAAE;MACvD;MACA,IAAI,CAACC,WAAW,CAACC,IAAI,CAAC;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;IAC5C;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAiB,kBAAA,EAA2B;MAC1B,OAAO,CAAC,EACP,IAAI,CAACC,cAAc,IACnB,IAAI,CAACC,eAAe,IACpB,IAAI,CAACC,oBAAoB,CACzB;IACF;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAqB,MAAA,EAAe;MACd,IAAI,CAACH,cAAc,GAAGrB,SAAS;MAC/B,IAAI,CAACsB,eAAe,GAAGtB,SAAS;MAChC,IAAI,CAACuB,oBAAoB,GAAGvB,SAAS;MACrCyB,YAAY,CAAC,IAAI,CAACC,aAAa,CAAC;IACjC;EAAC;IAAAxB,GAAA;IAAAC,KAAA,EAED,SAAAwB,SAAgBC,GAAU,EAAE;MAC3B,IAAI,CAACC,KAAK,GAAGD,GAAG;IACjB;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA2B,kBAAA,EAA2B;MAC1B,OAAO,IAAI,CAACZ,WAAW,CAAC,IAAI,CAACA,WAAW,CAACxB,MAAM,GAAG,CAAC,CAAC;IACrD;EAAC;IAAAQ,GAAA;IAAAC,KAAA;MAAA,IAAA4B,UAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAC,QAAuBC,KAAY;QAAA,IAAAC,QAAA,EAAAC,SAAA,EAAAC,UAAA;QAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAClC,IAAI,CAAChC,eAAe,CAAC,WAAW,EAAEwB,KAAK,CAAC;cAExC,IAAI,CAACtC,oBAAoB,qBAAAiB,MAAA,CAEtBqB,KAAK,CAAqBS,IAAI,GAC3BT,KAAK,CAAqBS,IAAI,GAC9BT,KAAK,CAAY1C,MAAM,GAAG,CAAC,GAC1B0C,KAAK,GACL,OAAO,OAEd,CAAC;cAAA,KAEG,IAAI,CAACb,oBAAoB;gBAAAmB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACtBP,QAAQ,GAAG,IAAI,CAACd,oBAAoB;cAC1C,IAAI,CAACA,oBAAoB,GAAGvB,SAAS;cAErCqC,QAAQ,CAAC,CAAC;cAAAK,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,KACA,IAAI,CAACvB,cAAc;gBAAAqB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACvBP,SAAQ,GAAG,IAAI,CAAChB,cAAc;cACpC,IAAI,CAACA,cAAc,GAAGrB,SAAS;cAE/BqC,SAAQ,CAACD,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAG,IAAI,CAACU,kBAAkB,CAAC;cAAAJ,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,KAChE,IAAI,CAACtB,eAAe;gBAAAoB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACxBP,UAAQ,GAAG,IAAI,CAACf,eAAe;cACrC,IAAI,CAACA,eAAe,GAAGtB,SAAS;cAEhCqC,UAAQ,CACPD,KAAK,KAAK,IAAI,IACZA,KAAK,CAAY1C,MAAM,KAAK,CAAC,IAC7B,OAAO0C,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACW,WAAW,CAAC,CAAC,KAAK,GACxD,CAAC;cAAAL,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,MAEK,IAAII,KAAK,CAAC,sCAAsC,CAAC;YAAA;cAAA,OAAAN,QAAA,CAAAO,MAAA,WAGjD,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BC,UAAU,CAACD,OAAO,EAAE,EAAE,CAAC;cACxB,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAT,QAAA,CAAAW,IAAA;UAAA;QAAA,GAAAlB,OAAA;MAAA,CACF;MAAA,SAAAmB,UAAAC,EAAA;QAAA,OAAAxB,UAAA,CAAAyB,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAA6D,SAAA;IAAA;EAAA;IAAApD,GAAA;IAAAC,KAAA,EAED,SAAAsD,cAAqBxC,OAOpB,EAAQ;MAAA,IAAAyC,WAAA;MACR,IAAI,CAAC9C,eAAe,CAAC,eAAe,EAAEK,OAAO,CAAC;MAC9C,CAAAyC,WAAA,OAAI,CAACvE,IAAI,cAAAuE,WAAA,eAATA,WAAA,CAAWD,aAAa,CAACxC,OAAO,CAAC;IAClC;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAwD,aAAoBC,GAAQ,EAAQ;MAAA,IAAAC,WAAA;MACnC,IAAI,CAACjD,eAAe,CAAC,cAAc,EAAEgD,GAAG,CAAC;MACzC,CAAAC,WAAA,OAAI,CAAC1E,IAAI,cAAA0E,WAAA,eAATA,WAAA,CAAWF,YAAY,CAACC,GAAG,CAAC;IAC7B;EAAC;IAAA1D,GAAA;IAAAC,KAAA,EAED,SAAA2D,YAAmBlC,GAAU,EAAQ;MAAA,IAAAmC,WAAA;MACpC,IAAI,CAACnD,eAAe,CAAC,aAAa,EAAEgB,GAAG,CAAC;MACxC,CAAAmC,WAAA,OAAI,CAAC5E,IAAI,cAAA4E,WAAA,eAATA,WAAA,CAAWD,WAAW,CAAClC,GAAG,CAAC;IAC5B;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA6D,iBAAwBC,IAAY,EAAQ;MAAA,IAAAC,WAAA;MAC3C,IAAI,CAACtD,eAAe,CAAC,kBAAkB,EAAEqD,IAAI,CAAC;MAC9C,CAAAC,WAAA,OAAI,CAAC/E,IAAI,cAAA+E,WAAA,eAATA,WAAA,CAAWF,gBAAgB,CAACC,IAAI,CAAC;IAClC;EAAC;IAAA/D,GAAA;IAAAC,KAAA,EAED,SAAAgE,oBAA2BC,OAAyB,EAAQ;MAAA,IAAAC,WAAA;MAC3D,IAAI,CAACzD,eAAe,CAAC,sBAAsB,EAAEwD,OAAO,CAAC;MACrD,CAAAC,WAAA,OAAI,CAAClF,IAAI,cAAAkF,WAAA,eAATA,WAAA,CAAWF,mBAAmB,CAACC,OAAO,CAAC;IACxC;EAAC;IAAAlE,GAAA;IAAAC,KAAA,EAED,SAAAmE,WACC7D,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAA6D,WAAA;MACP,IAAI,CAAC3D,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxD,CAAA6D,WAAA,OAAI,CAACpF,IAAI,cAAAoF,WAAA,eAATA,WAAA,CAAWD,UAAU,CAAC7D,OAAO,EAAEC,OAAO,CAAC;IACxC;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAqE,eACC/D,OAAe,EACfC,OAA6B,EAC7B+D,cAAoC,EAC7B;MAAA,IAAAC,WAAA;MACP,IAAI,CAAC9D,eAAe,CAAC,gBAAgB,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA,OAAO;QAAE+D,cAAc,EAAdA;MAAe,CAAC,CAAC;MAC5E,CAAAC,WAAA,OAAI,CAACvF,IAAI,cAAAuF,WAAA,eAATA,WAAA,CAAWF,cAAc,CAAC/D,OAAO,EAAEC,OAAO,EAAE+D,cAAc,CAAC;IAC5D;EAAC;IAAAvE,GAAA;IAAAC,KAAA,EAED,SAAAwE,cAAqBjE,OAA0C,EAAQ;MAAA,IAAAkE,YAAA;MACtE,IAAI,CAAChE,eAAe,CAAC,eAAe,EAAEF,OAAO,CAAC;MAC9C,CAAAkE,YAAA,OAAI,CAACzF,IAAI,cAAAyF,YAAA,eAATA,YAAA,CAAWD,aAAa,CAACjE,OAAO,CAAC;IAClC;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAA0E,WACCpE,OAAe,EACfC,OAA0C,EACnC;MACP,IAAI,CAACE,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxDD,OAAO,IAAIA,OAAO,CAACf,MAAM,GAAG,CAAC,IAAI,IAAI,CAACI,oBAAoB,CAACW,OAAO,CAAC;IACpE;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAL,qBAA6BW,OAAe,EAAE;MAC7C,IAAI,IAAI,CAACrB,oBAAoB,CAAC,CAAC,EAAE;QAAA,IAAA0F,kBAAA,EAAAC,mBAAA;QAChC,IAAMC,QAAQ,GAAG,IAAI/F,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAG,IAAI,CAACF,SAAS;QACtD,IAAMiG,QAAQ,GAAGC,oBAAY,CAACC,YAAY,CAACH,QAAQ,CAAC;QAEpDI,yBAAO,CAACC,IAAI,IAAAtE,MAAA;QAEV;QACA,CAAA+D,kBAAA,GAAAQ,MAAM,CAACC,UAAU,cAAAT,kBAAA,eAAjBA,kBAAA,CAAmBU,IAAI,GAAG,EAAAT,mBAAA,GAAAO,MAAM,CAACC,UAAU,cAAAR,mBAAA,uBAAjBA,mBAAA,CAAmBS,IAAI,IAAG,MAAM,GAAG,EAAE,EAAAzE,MAAA,CAC7DkE,QAAQ,UAAAlE,MAAA,CAAON,OAAO,CAC1B,CAAC;MACF;IACD;EAAC;IAAAP,GAAA;IAAAC,KAAA;MAAA,IAAAsF,YAAA,OAAAzD,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwD,SACC7C,IAAY,EACZ5B,OAAyB;QAAA,OAAAgB,YAAA,YAAAO,IAAA,UAAAmD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;YAAA;cAEzB,IAAI,CAAChC,eAAe,CAAC,aAAa,EAAE;gBAAEiC,IAAI,EAAJA,IAAI;gBAAE5B,OAAO,EAAPA;cAAQ,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA2E,SAAA,CAAAvC,IAAA;UAAA;QAAA,GAAAqC,QAAA;MAAA,CACtD;MAAA,SAAAG,YAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAN,YAAA,CAAAjC,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAoG,WAAA;IAAA;EAAA;IAAA3F,GAAA;IAAAC,KAAA,EAED,SAAA6F,YACCC,QAAkB,EAClBvF,OAA0C,EACnC;MAAA,IAAAwF,YAAA;MACP,IAAI,CAACtF,eAAe,CAAC,aAAa,EAAE;QAAEqF,QAAQ,EAARA,QAAQ;QAAEvF,OAAO,EAAPA;MAAQ,CAAC,CAAC;MAC1D,CAAAwF,YAAA,OAAI,CAAC/G,IAAI,cAAA+G,YAAA,eAATA,YAAA,CAAWF,WAAW,CAACC,QAAQ,EAAEvF,OAAO,CAAC;IAC1C;EAAC;IAAAR,GAAA;IAAAC,KAAA;MAAA,IAAAgG,OAAA,OAAAnE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAkE,SAAgDC,UAAa;QAAA,IAAAC,MAAA;QAAA,IAAAC,GAAA;QAAA,OAAAtE,YAAA,YAAAO,IAAA,UAAAgE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9D,IAAA,GAAA8D,SAAA,CAAA7D,IAAA;YAAA;cAC5D,IAAI,CAAChC,eAAe,CAAC,QAAQ,EAAEyF,UAAU,CAAC;cAAA,KAEtC,IAAI,CAAChF,cAAc;gBAAAoF,SAAA,CAAA7D,IAAA;gBAAA;cAAA;cAAA,MAChB,IAAII,KAAK,CACd,gFACD,CAAC;YAAA;cAGEuD,GAAG,MAAAxF,MAAA,CAAM2F,2BAAS,CAACC,QAAQ,CAACN,UAAU,CAACO,IAAI,CAAC,eAAA7F,MAAA,CAC/CsF,UAAU,CAACQ,KAAK;cAGjB,IAAIR,UAAU,CAACO,IAAI,KAAK,QAAQ,EAAE;gBACjCL,GAAG,IAAI,gBAAgB;gBACvBF,UAAU,CAACpF,OAAO,CAAC6F,OAAO,CAACC,OAAO,CAAC,UAACC,MAAM,EAAK;kBAC9CT,GAAG,SAAAxF,MAAA,CAASiG,MAAM,CAAC7G,KAAK,QAAAY,MAAA,CAAKiG,MAAM,CAACH,KAAK,CAAE;gBAC5C,CAAC,CAAC;gBAEFN,GAAG,IAAI,IAAI;cACZ;cAEA,IAAI,CAACzG,oBAAoB,CAACyG,GAAG,CAAC;cAAA,OAAAE,SAAA,CAAAxD,MAAA,WAEvB,IAAIC,OAAO,CACjB,UAACC,OAAO,EAAE8D,MAAM,EAAK;gBACpBX,MAAI,CAACjF,cAAc,GAAG,YAAoB;kBACzCI,YAAY,CAAC6E,MAAI,CAAC5E,aAAa,CAAC;kBAChC;kBACAyB,OAAO,CAAAK,KAAA,SAAA/D,SAAQ,CAAC;gBACjB,CAAC;gBACD6G,MAAI,CAAC5E,aAAa,GAAG0B,UAAU,CAAC,YAAM;kBACrCkD,MAAI,CAAC9E,KAAK,CAAC,CAAC;kBAEZ,IAAI;oBACH0F,iBAAM,CAACC,IAAI,6CAAApG,MAAA,CACkCsF,UAAU,CAACQ,KAAK,2EAC7D,CAAC;kBACF,CAAC,CAAC,OAAOjF,GAAQ,EAAE;oBAClBqF,MAAM,CAACrF,GAAG,CAAC;kBACZ;gBACD,CAAC,EAAE,KAAK,CAAC;gBACT0E,MAAI,CAACxD,kBAAkB,GAAGuD,UAAU,CAACe,YAAY;cAClD,CACD,CAAC;YAAA;YAAA;cAAA,OAAAX,SAAA,CAAApD,IAAA;UAAA;QAAA,GAAA+C,QAAA;MAAA,CACD;MAAA,SAAAiB,OAAAC,GAAA;QAAA,OAAAnB,OAAA,CAAA3C,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAA4H,MAAA;IAAA;EAAA;IAAAnH,GAAA;IAAAC,KAAA,EAED,SAAAoH,aAAoB9G,OAA4B,EAAQ;MACvD,IAAI,CAACG,eAAe,CAAC,cAAc,EAAEH,OAAO,CAAC;MAC7C,IAAI,CAACX,oBAAoB,CAACW,OAAO,MAAAM,MAAA,CAAMN,OAAO,IAAK,kBAAkB,CAAC;IACvE;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAqH,YAAA,EAA2B;MAC1B,IAAI,CAAC5G,eAAe,CAAC,aAAa,CAAC;MACnC,IAAI,CAACd,oBAAoB,CAAC,iBAAiB,CAAC;IAC7C;EAAC;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAsH,aAAA,OAAAzF,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwF,SAA0BjH,OAA4B;QAAA,IAAAkH,MAAA;QAAA,OAAA1F,YAAA,YAAAO,IAAA,UAAAoF,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlF,IAAA,GAAAkF,SAAA,CAAAjF,IAAA;YAAA;cACrD,IAAI,CAAChC,eAAe,CAAC,cAAc,EAAEH,OAAO,CAAC;cAC7C,IAAI,CAACX,oBAAoB,IAAAiB,MAAA,CACrBN,OAAO,OAAAM,MAAA,CAAON,OAAO,cAAW,yBACpC,CAAC;cAAA,OAAAoH,SAAA,CAAA5E,MAAA,WAEM,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BwE,MAAI,CAACpG,oBAAoB,GAAG4B,OAAO;cACpC,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA0E,SAAA,CAAAxE,IAAA;UAAA;QAAA,GAAAqE,QAAA;MAAA,CACF;MAAA,SAAAI,aAAAC,GAAA;QAAA,OAAAN,aAAA,CAAAjE,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAqI,YAAA;IAAA;EAAA;IAAA5H,GAAA;IAAAC,KAAA;MAAA,IAAA6H,aAAA,OAAAhG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA+F,SAAA;QAAA,IAAAC,GAAA,EAAAC,aAAA,EAAAC,KAAA,EAAAC,cAAA,EAAAC,UAAA;QAAA,OAAArG,YAAA,YAAAO,IAAA,UAAA+F,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7F,IAAA,GAAA6F,SAAA,CAAA5F,IAAA;YAAA;cACOsF,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;cACnBC,aAAa,GAAG,GAAG;cACrBC,KAAK,GAAGF,GAAG,GAAGC,aAAa;cAC3BE,cAAc,GAAG,IAAI,CAACnH,WAAW,CAACxB,MAAM;YAAA;cAAA,IAEpC,IAAI,CAAC0B,iBAAiB,CAAC,CAAC;gBAAAoH,SAAA,CAAA5F,IAAA;gBAAA;cAAA;cAC/B,IAAIwF,KAAK,EAAE,KAAK,CAAC,EAAE;gBAClBlB,iBAAM,CAACC,IAAI,+BAA+B,CAAC;cAC5C;cAEMmB,UAAU,GAAGD,cAAc,IAAI,IAAI,CAACnH,WAAW,CAACxB,MAAM;cAE5D,IAAI4I,UAAU,EAAE;gBACfF,KAAK,GAAGF,GAAG,GAAGC,aAAa;gBAC3BE,cAAc,GAAG,IAAI,CAACnH,WAAW,CAACxB,MAAM;gBACxC,IAAI,IAAI,CAACN,oBAAoB,CAAC,CAAC,EAAE;kBAChCqJ,gBAAQ,CAACC,GAAG,CAAC,mDAAmD,CAAC;gBAClE;cACD;cAAC,KAEG,IAAI,CAAC7G,KAAK;gBAAA2G,SAAA,CAAA5F,IAAA;gBAAA;cAAA;cAAA,MACP,IAAI,CAACf,KAAK;YAAA;cAAA2G,SAAA,CAAA5F,IAAA;cAAA,OAGX,IAAIM,OAAO,CAAC,UAACC,OAAO;gBAAA,OAAKC,UAAU,CAACD,OAAO,EAAEgF,aAAa,CAAC;cAAA,EAAC;YAAA;cAAAK,SAAA,CAAA5F,IAAA;cAAA;YAAA;YAAA;cAAA,OAAA4F,SAAA,CAAAnF,IAAA;UAAA;QAAA,GAAA4E,QAAA;MAAA,CAEnE;MAAA,SAAAU,aAAA;QAAA,OAAAX,aAAA,CAAAxE,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAkJ,YAAA;IAAA;EAAA;IAAAzI,GAAA;IAAAC,KAAA,EAED,SAAAyI,QAAeC,QAAgB,EAAoB;MAAA,IAAAC,MAAA;MAClD,IAAI,CAAClI,eAAe,CAAC,SAAS,EAAEiI,QAAQ,CAAC;MACzC,IAAI,CAAC/I,oBAAoB,IAAAiB,MAAA,CAAI8H,QAAQ,eAAY,CAAC;MAElD,OAAO,IAAI3F,OAAO,CAAC,UAACC,OAAO,EAAK;QAC/B2F,MAAI,CAACxH,eAAe,GAAG6B,OAAO;MAC/B,CAAC,CAAC;IACH;EAAC;IAAAjD,GAAA;IAAAC,KAAA,EAED,SAAA4I,MAAA,EAAqB;MACpB,IAAI,CAACnI,eAAe,CAAC,OAAO,CAAC;IAC9B;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAA6I,kBAAyB/H,OAA2B,EAAQ;MAC3D,IAAI,CAACL,eAAe,CAAC,mBAAmB,EAAEK,OAAO,CAAC;MAClD,IAAI,CAACnB,oBAAoB,oBAAAiB,MAAA,CACLE,OAAO,CAACgI,KAAK,OAAAlI,MAAA,CAAOE,OAAO,CAACgI,KAAK,MAAO,CAC5D,CAAC;IACF;EAAC;IAAA/I,GAAA;IAAAC,KAAA,EAED,SAAA+I,kBAAyBjI,OAAiC,EAAQ;MACjE,IAAI,CAACL,eAAe,CAAC,mBAAmB,EAAEK,OAAO,CAAC;IACnD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAgJ,kBAAA,EAAiC;MAChC,IAAI,CAACvI,eAAe,CAAC,mBAAmB,CAAC;MACzC,IAAI,CAACd,oBAAoB,kBAAkB,CAAC;IAC7C;EAAC;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAiJ,kBAAA,OAAApH,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAmH,SAAA;QAAA,OAAApH,YAAA,YAAAO,IAAA,UAAA8G,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5G,IAAA,GAAA4G,SAAA,CAAA3G,IAAA;YAAA;cACC,IAAI,CAAChC,eAAe,CAAC,mBAAmB,CAAC;cAAA,OAAA2I,SAAA,CAAAtG,MAAA,WAClC,IAAI,CAACuG,cAAc;YAAA;YAAA;cAAA,OAAAD,SAAA,CAAAlG,IAAA;UAAA;QAAA,GAAAgG,QAAA;MAAA,CAC1B;MAAA,SAAAI,kBAAA;QAAA,OAAAL,kBAAA,CAAA5F,KAAA,OAAA/D,SAAA;MAAA;MAAA,OAAAgK,iBAAA;IAAA;EAAA;IAAAvJ,GAAA;IAAAC,KAAA,EAED,SAAAuJ,kBAAyBC,GAA6B,EAAE;MACvD,IAAI,CAACH,cAAc,GAAGG,GAAG;IAC1B;EAAC;IAAAzJ,GAAA;IAAAC,KAAA,EAED,SAAAyJ,aAAoB9K,CAAS,EAAEC,CAAS,EAAQ;MAC/C,IAAI,CAAC6B,eAAe,CAAC,cAAc,EAAE;QAAE9B,CAAC,EAADA,CAAC;QAAEC,CAAC,EAADA;MAAE,CAAC,CAAC;IAC/C;EAAC;IAAAmB,GAAA;IAAAC,KAAA,EAED,SAAA0J,iBAAA,EAAgC;MAC/B,IAAI,CAACjJ,eAAe,CAAC,kBAAkB,CAAC;IACzC;EAAC;EAAA,OAAAnC,YAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
]
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
|
-
"version": "19.1.
|
|
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.
|
|
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.
|
|
78
|
+
"@sprucelabs/error": "^5.1.45",
|
|
79
79
|
"@sprucelabs/globby": "^1.0.3",
|
|
80
|
-
"@sprucelabs/heartwood-view-controllers": "^
|
|
81
|
-
"@sprucelabs/jest-json-reporter": "^7.0.
|
|
82
|
-
"@sprucelabs/mercury-client": "^41.0.
|
|
83
|
-
"@sprucelabs/mercury-event-emitter": "^41.0.
|
|
84
|
-
"@sprucelabs/mercury-types": "^46.0.
|
|
85
|
-
"@sprucelabs/schema": "^29.0.
|
|
86
|
-
"@sprucelabs/spruce-core-schemas": "^39.0.
|
|
87
|
-
"@sprucelabs/spruce-event-utils": "^38.0.
|
|
88
|
-
"@sprucelabs/spruce-skill-utils": "^30.1.
|
|
89
|
-
"@sprucelabs/spruce-templates": "^19.1.
|
|
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.
|
|
116
|
+
"@sprucelabs/data-stores": "^25.13.5",
|
|
117
117
|
"@sprucelabs/jest-sheets-reporter": "^3.0.26",
|
|
118
|
-
"@sprucelabs/mercury-core-events": "^22.0.
|
|
119
|
-
"@sprucelabs/resolve-path-aliases": "^1.1.
|
|
120
|
-
"@sprucelabs/spruce-conversation-plugin": "^60.1.
|
|
121
|
-
"@sprucelabs/spruce-deploy-plugin": "^60.1.
|
|
122
|
-
"@sprucelabs/spruce-store-plugin": "^60.1.
|
|
123
|
-
"@sprucelabs/spruce-test-fixtures": "^60.1.
|
|
124
|
-
"@sprucelabs/test": "^8.0.
|
|
125
|
-
"@sprucelabs/test-utils": "^4.0.
|
|
126
|
-
"@types/blessed": "^0.1.
|
|
127
|
-
"@types/eslint": "^8.44.
|
|
128
|
-
"@types/fs-extra": "^11.0.
|
|
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.
|
|
131
|
-
"@types/md5": "^2.3.
|
|
132
|
-
"@types/node": "^20.
|
|
133
|
-
"@types/promise.allsettled": "^1.0.
|
|
134
|
-
"@types/ps-node": "^0.1.
|
|
135
|
-
"@types/semver": "^7.5.
|
|
136
|
-
"@types/sha1": "^1.1.
|
|
137
|
-
"@types/slug": "^5.0.
|
|
138
|
-
"@types/superagent": "^4.1.
|
|
139
|
-
"@types/terminal-kit": "^2.5.
|
|
140
|
-
"@types/uuid": "^9.0.
|
|
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.
|
|
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": "
|
|
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>
|