@sprucelabs/spruce-cli 19.1.4 → 19.1.6

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 (44) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +1 -2
  3. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  4. package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +0 -2
  5. package/build/__tests__/behavioral/tests/CreatingATest.test.js +75 -147
  6. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  7. package/build/__tests__/behavioral/tests/RunningTests.test.d.ts +3 -0
  8. package/build/__tests__/behavioral/tests/RunningTests.test.js +99 -43
  9. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  10. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +3 -1
  11. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  12. package/build/__tests__/implementation/TestRunner.test.d.ts +1 -0
  13. package/build/__tests__/implementation/TestRunner.test.js +22 -10
  14. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  15. package/build/features/test/actions/CreateAction.js +13 -29
  16. package/build/features/test/actions/CreateAction.js.map +1 -1
  17. package/build/features/vscode/VsCodeFeature.js +1 -1
  18. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  19. package/build/interfaces/SpyInterface.d.ts +6 -1
  20. package/build/interfaces/SpyInterface.js +1 -1
  21. package/build/interfaces/SpyInterface.js.map +1 -1
  22. package/build/interfaces/TerminalInterface.js +3 -1
  23. package/build/interfaces/TerminalInterface.js.map +1 -1
  24. package/build/tests/utilities/uiAssert.utility.d.ts +1 -0
  25. package/build/tests/utilities/uiAssert.utility.js +9 -0
  26. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  27. package/build/widgets/types/window.types.js +2 -0
  28. package/build/widgets/types/window.types.js.map +1 -1
  29. package/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -1
  30. package/node_modules/@typescript-eslint/parser/dist/parser.js +5 -1
  31. package/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -1
  32. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  33. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  34. package/node_modules/@typescript-eslint/types/package.json +2 -2
  35. package/node_modules/@typescript-eslint/typescript-estree/package.json +4 -4
  36. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  37. package/package.json +30 -30
  38. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +8 -47
  39. package/src/__tests__/behavioral/tests/RunningTests.test.ts +34 -14
  40. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +2 -2
  41. package/src/__tests__/implementation/TestRunner.test.ts +9 -0
  42. package/src/features/test/actions/CreateAction.ts +13 -32
  43. package/src/interfaces/SpyInterface.ts +15 -3
  44. package/src/tests/utilities/uiAssert.utility.ts +9 -0
@@ -60,7 +60,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
60
60
  break;
61
61
  }
62
62
  _context.next = 12;
63
- return this.promptForSubDir(resolvedDestination, type);
63
+ return this.promptForSubDir(resolvedDestination);
64
64
  case 12:
65
65
  resolvedDestination = _context.sent;
66
66
  case 13:
@@ -102,47 +102,31 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
102
102
  }, {
103
103
  key: "promptForSubDir",
104
104
  value: function () {
105
- var _promptForSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolvedDestination, type) {
106
- var subdirs, match;
105
+ var _promptForSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolvedDestination) {
106
+ var match;
107
107
  return _regenerator["default"].wrap(function _callee2$(_context2) {
108
108
  while (1) switch (_context2.prev = _context2.next) {
109
109
  case 0:
110
- subdirs = _spruceSkillUtils.diskUtil.readDir(resolvedDestination).filter(function (d) {
111
- return _spruceSkillUtils.diskUtil.isDir(_spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, d));
112
- });
113
- if (!(subdirs.length > 0)) {
114
- _context2.next = 6;
115
- break;
116
- }
117
- _context2.next = 4;
110
+ _context2.next = 2;
118
111
  return this.ui.prompt({
119
- type: 'select',
112
+ type: 'directory',
120
113
  label: 'Where should I write this test?',
121
114
  isRequired: true,
122
- options: {
123
- choices: [{
124
- value: '.',
125
- label: "".concat(type)
126
- }].concat((0, _toConsumableArray2["default"])(subdirs.map(function (dir) {
127
- return {
128
- value: "".concat(dir),
129
- label: "".concat(type, "/").concat(dir)
130
- };
131
- })))
115
+ defaultValue: {
116
+ path: _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination)
132
117
  }
133
118
  });
134
- case 4:
119
+ case 2:
135
120
  match = _context2.sent;
136
- resolvedDestination = _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, match);
137
- case 6:
121
+ resolvedDestination = _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, match.path);
138
122
  return _context2.abrupt("return", resolvedDestination);
139
- case 7:
123
+ case 5:
140
124
  case "end":
141
125
  return _context2.stop();
142
126
  }
143
127
  }, _callee2, this);
144
128
  }));
145
- function promptForSubDir(_x2, _x3) {
129
+ function promptForSubDir(_x2) {
146
130
  return _promptForSubDir.apply(this, arguments);
147
131
  }
148
132
  return promptForSubDir;
@@ -195,7 +179,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
195
179
  }
196
180
  }, _callee3, this);
197
181
  }));
198
- function promptForParentTestClassAndOptionallyInstallDependencies(_x4, _x5, _x6) {
182
+ function promptForParentTestClassAndOptionallyInstallDependencies(_x3, _x4, _x5) {
199
183
  return _promptForParentTestClassAndOptionallyInstallDependencies.apply(this, arguments);
200
184
  }
201
185
  return promptForParentTestClassAndOptionallyInstallDependencies;
@@ -235,7 +219,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
235
219
  }
236
220
  }, _callee4, this);
237
221
  }));
238
- function optionallyInstallFeatureBasedOnSelection(_x7) {
222
+ function optionallyInstallFeatureBasedOnSelection(_x6) {
239
223
  return _optionallyInstallFeatureBasedOnSelection.apply(this, arguments);
240
224
  }
241
225
  return optionallyInstallFeatureBasedOnSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAction.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_createTestOptions","_AbstractAction2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","CreateAction","_AbstractAction","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","createTestActionSchema","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","options","normalizedOptions","testDestinationDir","namePascal","nameCamel","type","resolvedDestination","testFeature","parentTestClass","candidates","writer","results","wrap","_callee$","_context","prev","next","validateAndNormalizeOptions","diskUtil","resolvePath","cwd","ui","startLoading","parent","stopLoading","buildParentClassCandidates","sent","doesDirExist","promptForSubDir","promptForParentTestClassAndOptionallyInstallDependencies","Writer","generateTest","namesUtil","toPascal","abrupt","files","hints","stop","execute","_x","_promptForSubDir","_callee2","subdirs","match","_callee2$","_context2","readDir","d","isDir","prompt","label","isRequired","choices","_toConsumableArray2","map","dir","_x2","_x3","_promptForParentTestClassAndOptionallyInstallDependencies","_callee3","idx","_callee3$","_context3","candidate","optionallyInstallFeatureBasedOnSelection","buildParentClassFromCandidate","_x4","_x5","_x6","_optionallyInstallFeatureBasedOnSelection","_callee4","isInstalled","_callee4$","_context4","featureCode","features","name","install","code","_x7","_match$import","isDefaultExport","importPath","resolveRelativePath","path","replace","pathUtil","extname","AbstractAction","exports"],"sources":["../../../../src/features/test/actions/CreateAction.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createTestActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport TestFeature, { ParentClassCandidate } from '../TestFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createTestActionSchema\n\tpublic invocationMessage = 'Creating a test... 🛡'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { testDestinationDir, namePascal, nameCamel, type } =\n\t\t\tnormalizedOptions\n\n\t\tlet resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\ttestDestinationDir,\n\t\t\ttype\n\t\t)\n\n\t\tthis.ui.startLoading('Checking potential parent test classes')\n\n\t\tconst testFeature = this.parent as TestFeature\n\n\t\tthis.ui.stopLoading()\n\n\t\tlet parentTestClass:\n\t\t\t| undefined\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tif (diskUtil.doesDirExist(resolvedDestination)) {\n\t\t\tresolvedDestination = await this.promptForSubDir(\n\t\t\t\tresolvedDestination,\n\t\t\t\ttype\n\t\t\t)\n\t\t}\n\n\t\tif (candidates.length > 0) {\n\t\t\tparentTestClass =\n\t\t\t\tawait this.promptForParentTestClassAndOptionallyInstallDependencies(\n\t\t\t\t\tcandidates,\n\t\t\t\t\tparentTestClass,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t}\n\n\t\tthis.ui.startLoading('Generating test file...')\n\n\t\tconst writer = this.Writer('test')\n\n\t\tconst results = await writer.generateTest(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\ttype,\n\t\t\tnameCamel,\n\t\t\tparentTestClass,\n\t\t\tnamePascal: namePascal ?? namesUtil.toPascal(nameCamel),\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: results,\n\t\t\thints: [\"run `spruce test` in your skill when you're ready!\"],\n\t\t}\n\t}\n\tprivate async promptForSubDir(resolvedDestination: string, type: string) {\n\t\tconst subdirs = diskUtil\n\t\t\t.readDir(resolvedDestination)\n\t\t\t.filter((d) =>\n\t\t\t\tdiskUtil.isDir(diskUtil.resolvePath(resolvedDestination, d))\n\t\t\t)\n\n\t\tif (subdirs.length > 0) {\n\t\t\tconst match = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Where should I write this test?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: '.',\n\t\t\t\t\t\t\tlabel: `${type}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...subdirs.map((dir) => ({\n\t\t\t\t\t\t\tvalue: `${dir}`,\n\t\t\t\t\t\t\tlabel: `${type}/${dir}`,\n\t\t\t\t\t\t})),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tresolvedDestination = diskUtil.resolvePath(resolvedDestination, match)\n\t\t}\n\t\treturn resolvedDestination\n\t}\n\n\tprivate async promptForParentTestClassAndOptionallyInstallDependencies(\n\t\tcandidates: ParentClassCandidate[],\n\t\tparentTestClass:\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\t\t\t| undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tconst idx = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Which abstract test class do you want to extend?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: '', label: 'AbstractSpruceTest (default)' },\n\t\t\t\t\t...candidates.map((candidate, idx) => ({\n\t\t\t\t\t\tvalue: `${idx}`,\n\t\t\t\t\t\tlabel: candidate.label,\n\t\t\t\t\t})),\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tif (idx !== '' && candidates[+idx]) {\n\t\t\tconst match = candidates[+idx]\n\n\t\t\tif (match) {\n\t\t\t\tawait this.optionallyInstallFeatureBasedOnSelection(match)\n\n\t\t\t\tparentTestClass = this.buildParentClassFromCandidate(\n\t\t\t\t\tmatch,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn parentTestClass\n\t}\n\n\tprivate async optionallyInstallFeatureBasedOnSelection(\n\t\tmatch: ParentClassCandidate\n\t) {\n\t\tif (match.featureCode) {\n\t\t\tconst isInstalled = await this.features.isInstalled(match.featureCode)\n\n\t\t\tif (!isInstalled) {\n\t\t\t\tthis.ui.startLoading(`Installing ${match.name}...`)\n\t\t\t\tawait this.features.install({\n\t\t\t\t\tfeatures: [{ code: match.featureCode as any }],\n\t\t\t\t})\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildParentClassFromCandidate(\n\t\tmatch: ParentClassCandidate,\n\t\tresolvedDestination: string\n\t): {\n\t\tname: string\n\t\tlabel: string\n\t\timportPath: string\n\t\tisDefaultExport: boolean\n\t} {\n\t\treturn {\n\t\t\tname: match.name,\n\t\t\tlabel: match.label,\n\t\t\tisDefaultExport: match.isDefaultExport,\n\t\t\timportPath:\n\t\t\t\tmatch.import ??\n\t\t\t\tdiskUtil.resolveRelativePath(\n\t\t\t\t\tresolvedDestination,\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tmatch.path.replace(pathUtil.extname(match.path), '')\n\t\t\t\t),\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreateAction.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_createTestOptions","_AbstractAction2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","CreateAction","_AbstractAction","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","createTestActionSchema","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","options","normalizedOptions","testDestinationDir","namePascal","nameCamel","type","resolvedDestination","testFeature","parentTestClass","candidates","writer","results","wrap","_callee$","_context","prev","next","validateAndNormalizeOptions","diskUtil","resolvePath","cwd","ui","startLoading","parent","stopLoading","buildParentClassCandidates","sent","doesDirExist","promptForSubDir","promptForParentTestClassAndOptionallyInstallDependencies","Writer","generateTest","namesUtil","toPascal","abrupt","files","hints","stop","execute","_x","_promptForSubDir","_callee2","match","_callee2$","_context2","prompt","label","isRequired","defaultValue","path","_x2","_promptForParentTestClassAndOptionallyInstallDependencies","_callee3","idx","_callee3$","_context3","choices","_toConsumableArray2","map","candidate","optionallyInstallFeatureBasedOnSelection","buildParentClassFromCandidate","_x3","_x4","_x5","_optionallyInstallFeatureBasedOnSelection","_callee4","isInstalled","_callee4$","_context4","featureCode","features","name","install","code","_x6","_match$import","isDefaultExport","importPath","resolveRelativePath","replace","pathUtil","extname","AbstractAction","exports"],"sources":["../../../../src/features/test/actions/CreateAction.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createTestActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport TestFeature, { ParentClassCandidate } from '../TestFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createTestActionSchema\n\tpublic invocationMessage = 'Creating a test... 🛡'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { testDestinationDir, namePascal, nameCamel, type } =\n\t\t\tnormalizedOptions\n\n\t\tlet resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\ttestDestinationDir,\n\t\t\ttype\n\t\t)\n\n\t\tthis.ui.startLoading('Checking potential parent test classes')\n\n\t\tconst testFeature = this.parent as TestFeature\n\n\t\tthis.ui.stopLoading()\n\n\t\tlet parentTestClass:\n\t\t\t| undefined\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tif (diskUtil.doesDirExist(resolvedDestination)) {\n\t\t\tresolvedDestination = await this.promptForSubDir(resolvedDestination)\n\t\t}\n\n\t\tif (candidates.length > 0) {\n\t\t\tparentTestClass =\n\t\t\t\tawait this.promptForParentTestClassAndOptionallyInstallDependencies(\n\t\t\t\t\tcandidates,\n\t\t\t\t\tparentTestClass,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t}\n\n\t\tthis.ui.startLoading('Generating test file...')\n\n\t\tconst writer = this.Writer('test')\n\n\t\tconst results = await writer.generateTest(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\ttype,\n\t\t\tnameCamel,\n\t\t\tparentTestClass,\n\t\t\tnamePascal: namePascal ?? namesUtil.toPascal(nameCamel),\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: results,\n\t\t\thints: [\"run `spruce test` in your skill when you're ready!\"],\n\t\t}\n\t}\n\tprivate async promptForSubDir(resolvedDestination: string) {\n\t\tconst match = await this.ui.prompt({\n\t\t\ttype: 'directory',\n\t\t\tlabel: 'Where should I write this test?',\n\t\t\tisRequired: true,\n\t\t\tdefaultValue: {\n\t\t\t\tpath: diskUtil.resolvePath(resolvedDestination),\n\t\t\t},\n\t\t})\n\n\t\tresolvedDestination = diskUtil.resolvePath(resolvedDestination, match.path)\n\n\t\treturn resolvedDestination\n\t}\n\n\tprivate async promptForParentTestClassAndOptionallyInstallDependencies(\n\t\tcandidates: ParentClassCandidate[],\n\t\tparentTestClass:\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\t\t\t| undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tconst idx = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Which abstract test class do you want to extend?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: '', label: 'AbstractSpruceTest (default)' },\n\t\t\t\t\t...candidates.map((candidate, idx) => ({\n\t\t\t\t\t\tvalue: `${idx}`,\n\t\t\t\t\t\tlabel: candidate.label,\n\t\t\t\t\t})),\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tif (idx !== '' && candidates[+idx]) {\n\t\t\tconst match = candidates[+idx]\n\n\t\t\tif (match) {\n\t\t\t\tawait this.optionallyInstallFeatureBasedOnSelection(match)\n\n\t\t\t\tparentTestClass = this.buildParentClassFromCandidate(\n\t\t\t\t\tmatch,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn parentTestClass\n\t}\n\n\tprivate async optionallyInstallFeatureBasedOnSelection(\n\t\tmatch: ParentClassCandidate\n\t) {\n\t\tif (match.featureCode) {\n\t\t\tconst isInstalled = await this.features.isInstalled(match.featureCode)\n\n\t\t\tif (!isInstalled) {\n\t\t\t\tthis.ui.startLoading(`Installing ${match.name}...`)\n\t\t\t\tawait this.features.install({\n\t\t\t\t\tfeatures: [{ code: match.featureCode as any }],\n\t\t\t\t})\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildParentClassFromCandidate(\n\t\tmatch: ParentClassCandidate,\n\t\tresolvedDestination: string\n\t): {\n\t\tname: string\n\t\tlabel: string\n\t\timportPath: string\n\t\tisDefaultExport: boolean\n\t} {\n\t\treturn {\n\t\t\tname: match.name,\n\t\t\tlabel: match.label,\n\t\t\tisDefaultExport: match.isDefaultExport,\n\t\t\timportPath:\n\t\t\t\tmatch.import ??\n\t\t\t\tdiskUtil.resolveRelativePath(\n\t\t\t\t\tresolvedDestination,\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tmatch.path.replace(pathUtil.extname(match.path), '')\n\t\t\t\t),\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -17,7 +17,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
17
17
  var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
18
18
  var _AbstractFeature2 = _interopRequireDefault(require("../AbstractFeature"));
19
19
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
20
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
20
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable no-unreachable */
21
21
  var VsCodeFeature = /*#__PURE__*/function (_AbstractFeature) {
22
22
  (0, _inherits2["default"])(VsCodeFeature, _AbstractFeature);
23
23
  var _super = _createSuper(VsCodeFeature);
@@ -1 +1 @@
1
- {"version":3,"file":"VsCodeFeature.js","names":["_spruceSkillUtils","require","_AbstractFeature2","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","VsCodeFeature","_AbstractFeature","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","diskUtil","resolvePath","__dirname","path","description","shouldOverwriteWhenChanged","confirmPromptOnFirstWrite","_asyncToGenerator2","_regenerator","mark","_callee","command","wrap","_callee$","_context","prev","next","Service","execute","t0","abrupt","stop","_createClass2","AbstractFeature","exports"],"sources":["../../../src/features/vscode/VsCodeFeature.ts"],"sourcesContent":["/* eslint-disable no-unreachable */\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tvscode: VsCodeFeature\n\t}\n}\n\nexport default class VsCodeFeature extends AbstractFeature {\n\tpublic nameReadable = 'VSCode'\n\tpublic description = 'Create settings and install VSCode extensions'\n\tpublic code: FeatureCode = 'vscode'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t{\n\t\t\tpath: '.vscode/launch.json',\n\t\t\tdescription: 'Sets you up for debugging in Visual Studio Code.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite: 'Want me to setup debugging for you?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/settings.json',\n\t\t\tdescription: 'Ties everything together for optimal team productivity.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/tasks.json',\n\t\t\tdescription:\n\t\t\t\t'command+shift+t to open the Test Reporter, build watch on load, etc.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to start watchers when you start vscode?',\n\t\t},\n\t]\n\n\tpublic isInstalled = async () => {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('which code')\n\t\t} catch (err) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VsCodeFeature.js","names":["_spruceSkillUtils","require","_AbstractFeature2","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","VsCodeFeature","_AbstractFeature","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","diskUtil","resolvePath","__dirname","path","description","shouldOverwriteWhenChanged","confirmPromptOnFirstWrite","_asyncToGenerator2","_regenerator","mark","_callee","command","wrap","_callee$","_context","prev","next","Service","execute","t0","abrupt","stop","_createClass2","AbstractFeature","exports"],"sources":["../../../src/features/vscode/VsCodeFeature.ts"],"sourcesContent":["/* eslint-disable no-unreachable */\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tvscode: VsCodeFeature\n\t}\n}\n\nexport default class VsCodeFeature extends AbstractFeature {\n\tpublic nameReadable = 'VSCode'\n\tpublic description = 'Create settings and install VSCode extensions'\n\tpublic code: FeatureCode = 'vscode'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t{\n\t\t\tpath: '.vscode/launch.json',\n\t\t\tdescription: 'Sets you up for debugging in Visual Studio Code.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite: 'Want me to setup debugging for you?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/settings.json',\n\t\t\tdescription: 'Ties everything together for optimal team productivity.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/tasks.json',\n\t\t\tdescription:\n\t\t\t\t'command+shift+t to open the Test Reporter, build watch on load, etc.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to start watchers when you start vscode?',\n\t\t},\n\t]\n\n\tpublic isInstalled = async () => {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('which code')\n\t\t} catch (err) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n"],"mappings":"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"}
@@ -29,7 +29,7 @@ export default class SpyInterface implements GraphicsInterface {
29
29
  command: string;
30
30
  options?: any;
31
31
  };
32
- sendInput(input: string | string[]): Promise<void>;
32
+ sendInput(input: Input): Promise<void>;
33
33
  renderSection(options: {
34
34
  headline: string;
35
35
  lines?: string[] | string[];
@@ -70,3 +70,8 @@ export default class SpyInterface implements GraphicsInterface {
70
70
  moveCursorTo(x: number, y: number): void;
71
71
  clearBelowCursor(): void;
72
72
  }
73
+ declare type FilePromptInput = {
74
+ path: string;
75
+ };
76
+ declare type Input = string | string[] | FilePromptInput;
77
+ export {};
@@ -110,7 +110,7 @@ var SpyInterface = /*#__PURE__*/function () {
110
110
  while (1) switch (_context.prev = _context.next) {
111
111
  case 0:
112
112
  this.trackInvocation('sendInput', input);
113
- this.optionallyRenderLine("Sending input: \"".concat(input.length > 0 ? input : 'ENTER', "\""));
113
+ this.optionallyRenderLine("Sending input: \"".concat(input.path ? input.path : input.length > 0 ? input : 'ENTER', "\""));
114
114
  if (!this.waitForEnterResolver) {
115
115
  _context.next = 8;
116
116
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","_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","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","path","_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","exports"],"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: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\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\tinput.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"],"mappings":"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"}
1
+ {"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","_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","exports"],"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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"}
@@ -38,7 +38,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
38
38
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
39
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
40
40
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
41
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
41
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } // @ts-ignore
42
+ // @ts-ignore No definition available
43
+ // @ts-ignore No definition available
42
44
  var terminalImage = require('terminal-image');
43
45
  var fieldCount = 0;
44
46
  function generateInquirerFieldName() {