@sprucelabs/spruce-cli 18.0.0 → 18.1.0

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 (158) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
  3. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  4. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
  5. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  6. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
  7. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  8. package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
  9. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  10. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
  11. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  12. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
  13. package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
  14. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  15. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
  16. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
  17. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
  18. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
  19. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  20. package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
  21. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  22. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
  23. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  24. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
  25. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  26. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
  27. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  28. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
  29. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  30. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
  31. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  32. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  33. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  34. package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
  35. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  36. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
  37. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
  38. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  39. package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
  40. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  41. package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
  42. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  43. package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
  44. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  45. package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
  46. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  47. package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
  48. package/build/__tests__/implementation/GlobalEmitter.js +9 -10
  49. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  50. package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
  51. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  52. package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
  53. package/build/__tests__/implementation/SkillStore.test.js +67 -50
  54. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  55. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  56. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  57. package/build/cli.js +3 -3
  58. package/build/cli.js.map +1 -1
  59. package/build/features/AbstractAction.d.ts +2 -2
  60. package/build/features/AbstractAction.js.map +1 -1
  61. package/build/features/AbstractFeature.d.ts +22 -22
  62. package/build/features/AbstractFeature.js.map +1 -1
  63. package/build/features/ActionExecuter.d.ts +8 -8
  64. package/build/features/ActionExecuter.js.map +1 -1
  65. package/build/features/FeatureInstaller.d.ts +15 -2
  66. package/build/features/FeatureInstaller.js +36 -36
  67. package/build/features/FeatureInstaller.js.map +1 -1
  68. package/build/features/FeatureInstallerFactory.d.ts +12 -10
  69. package/build/features/FeatureInstallerFactory.js +2 -2
  70. package/build/features/FeatureInstallerFactory.js.map +1 -1
  71. package/build/features/OverrideActionDecorator.js +4 -5
  72. package/build/features/OverrideActionDecorator.js.map +1 -1
  73. package/build/features/event/actions/ListenAction.js.map +1 -1
  74. package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
  75. package/build/features/event/actions/SetRemoteAction.js +2 -1
  76. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  77. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  78. package/build/features/node/NodeFeature.js.map +1 -1
  79. package/build/features/skill/SkillFeature.js.map +1 -1
  80. package/build/features/skill/stores/SkillStore.d.ts +4 -1
  81. package/build/features/skill/stores/SkillStore.js +127 -100
  82. package/build/features/skill/stores/SkillStore.js.map +1 -1
  83. package/build/features/watch/WatchFeature.js +1 -1
  84. package/build/features/watch/WatchFeature.js.map +1 -1
  85. package/build/interfaces/SpyInterface.d.ts +2 -0
  86. package/build/interfaces/SpyInterface.js +16 -4
  87. package/build/interfaces/SpyInterface.js.map +1 -1
  88. package/build/stores/AbstractStore.d.ts +9 -7
  89. package/build/stores/AbstractStore.js.map +1 -1
  90. package/build/stores/StoreFactory.d.ts +19 -13
  91. package/build/stores/StoreFactory.js +15 -13
  92. package/build/stores/StoreFactory.js.map +1 -1
  93. package/build/tests/AbstractCliTest.d.ts +9 -6
  94. package/build/tests/AbstractCliTest.js +53 -45
  95. package/build/tests/AbstractCliTest.js.map +1 -1
  96. package/build/tests/AbstractSchemaTest.js +18 -20
  97. package/build/tests/AbstractSchemaTest.js.map +1 -1
  98. package/build/utilities/action.utility.js +3 -1
  99. package/build/utilities/action.utility.js.map +1 -1
  100. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  101. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  102. package/node_modules/@typescript-eslint/types/package.json +2 -2
  103. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  104. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  105. package/package.json +28 -86
  106. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
  107. package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
  108. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
  109. package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
  110. package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
  111. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
  112. package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
  113. package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
  114. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
  115. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
  116. package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
  117. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
  118. package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
  119. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
  120. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
  121. package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
  122. package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
  123. package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
  124. package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
  125. package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
  126. package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
  127. package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
  128. package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
  129. package/src/__tests__/implementation/SkillStore.test.ts +23 -24
  130. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  131. package/src/cli.ts +7 -3
  132. package/src/features/AbstractAction.ts +3 -3
  133. package/src/features/AbstractFeature.ts +26 -26
  134. package/src/features/ActionExecuter.ts +9 -9
  135. package/src/features/FeatureInstaller.ts +32 -12
  136. package/src/features/FeatureInstallerFactory.ts +17 -13
  137. package/src/features/OverrideActionDecorator.ts +2 -5
  138. package/src/features/event/actions/ListenAction.ts +1 -0
  139. package/src/features/event/actions/SetRemoteAction.ts +2 -1
  140. package/src/features/event/actions/SyncListenersAction.ts +0 -1
  141. package/src/features/node/NodeFeature.ts +3 -1
  142. package/src/features/skill/SkillFeature.ts +3 -3
  143. package/src/features/skill/stores/SkillStore.ts +18 -11
  144. package/src/features/watch/WatchFeature.ts +1 -1
  145. package/src/interfaces/SpyInterface.ts +10 -0
  146. package/src/stores/AbstractStore.ts +14 -8
  147. package/src/stores/StoreFactory.ts +56 -44
  148. package/src/tests/AbstractCliTest.ts +53 -45
  149. package/src/tests/AbstractSchemaTest.ts +1 -3
  150. package/src/utilities/action.utility.ts +3 -1
  151. package/.DS_Store +0 -0
  152. package/.env +0 -25
  153. package/.eslintcache +0 -1
  154. package/build/.spruce/tmp/cached-skills.json +0 -3
  155. package/junit.xml +0 -7
  156. package/src/.DS_Store +0 -0
  157. package/src/.spruce/tmp/cached-skills.json +0 -3
  158. package/yarn-error.log +0 -12174
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractCliTest.js","names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","emitter","undefined","featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","globby","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","getEmitter","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","getFeatureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"sources":["../../src/tests/AbstractCliTest.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test-utils'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tStoreFactoryMethodOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis.emitter = undefined\n\t\tthis.featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis.emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static getEmitter() {\n\t\tif (!this.emitter) {\n\t\t\tthis.emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this.emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\tconst emitter = options?.emitter ?? this.getEmitter()\n\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.getFeatureInstaller({ emitter }),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static getFeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tif (!this.featureInstaller) {\n\t\t\tconst serviceFactory = this.ServiceFactory()\n\t\t\tconst storeFactory = this.StoreFactory(options)\n\t\t\tconst emitter = this.getEmitter()\n\t\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\t\tthis.featureInstaller = FeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui: this.ui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t\t...options,\n\t\t\t})\n\t\t}\n\n\t\treturn this.featureInstaller\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.getEmitter(),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: StoreFactoryMethodOptions\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tconst isInstalled = await featureInstaller.isInstalled(code)\n\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.getFeatureInstaller()\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AbstractCliTest.js","names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","_emitter","undefined","_featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","globby","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","featureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","installer","FeatureInstaller","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"sources":["../../src/tests/AbstractCliTest.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test-utils'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static _emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static _featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis._emitter = undefined\n\t\tthis._featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis._emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static get emitter() {\n\t\tif (!this._emitter) {\n\t\t\tthis._emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this._emitter\n\t}\n\n\tprotected static set emitter(emitter: GlobalEmitter) {\n\t\tthis._emitter = emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\temitter: this.emitter,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static get featureInstaller() {\n\t\tif (!this._featureInstaller) {\n\t\t\tconst installer = this.FeatureInstaller()\n\t\t\tthis._featureInstaller = installer\n\t\t}\n\n\t\treturn this._featureInstaller\n\t}\n\n\tprotected static set featureInstaller(installer: FeatureInstaller) {\n\t\tthis._featureInstaller = installer\n\t}\n\n\tprotected static FeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst storeFactory = this.StoreFactory(options)\n\t\tconst emitter = options?.emitter ?? this.emitter\n\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\tconst installer = FeatureInstallerFactory.WithAllFeatures({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tactionExecuter,\n\t\t\t...options,\n\t\t})\n\t\treturn installer\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.emitter,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...(options as any),\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(code)\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter: this.emitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter: this.emitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.featureInstaller\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"mappings":"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"}
@@ -146,7 +146,6 @@ var AbstractSchemaTest = /*#__PURE__*/function (_AbstractCliTest) {
146
146
  cli,
147
147
  health,
148
148
  packageContents,
149
- installer,
150
149
  _iterator,
151
150
  _step,
152
151
  code,
@@ -181,41 +180,40 @@ var AbstractSchemaTest = /*#__PURE__*/function (_AbstractCliTest) {
181
180
  _testUtils.assert.isEqualDeep(health, expectedHealth);
182
181
  packageContents = _spruceSkillUtils.diskUtil.readFile(this.resolvePath('package.json'));
183
182
  _testUtils.assert.doesInclude(packageContents, name);
184
- installer = this.getFeatureInstaller();
185
183
  _iterator = _createForOfIteratorHelper(expectedInstalledSkills);
186
- _context3.prev = 16;
184
+ _context3.prev = 15;
187
185
  _iterator.s();
188
- case 18:
186
+ case 17:
189
187
  if ((_step = _iterator.n()).done) {
190
- _context3.next = 26;
188
+ _context3.next = 25;
191
189
  break;
192
190
  }
193
191
  code = _step.value;
194
- _context3.next = 22;
195
- return installer.isInstalled(code);
196
- case 22:
192
+ _context3.next = 21;
193
+ return this.featureInstaller.isInstalled(code);
194
+ case 21:
197
195
  isInstalled = _context3.sent;
198
196
  _testUtils.assert.isTrue(isInstalled);
199
- case 24:
200
- _context3.next = 18;
197
+ case 23:
198
+ _context3.next = 17;
201
199
  break;
202
- case 26:
203
- _context3.next = 31;
200
+ case 25:
201
+ _context3.next = 30;
204
202
  break;
205
- case 28:
206
- _context3.prev = 28;
207
- _context3.t0 = _context3["catch"](16);
203
+ case 27:
204
+ _context3.prev = 27;
205
+ _context3.t0 = _context3["catch"](15);
208
206
  _iterator.e(_context3.t0);
209
- case 31:
210
- _context3.prev = 31;
207
+ case 30:
208
+ _context3.prev = 30;
211
209
  _iterator.f();
212
- return _context3.finish(31);
213
- case 34:
210
+ return _context3.finish(30);
211
+ case 33:
214
212
  case "end":
215
213
  return _context3.stop();
216
214
  }
217
215
  }
218
- }, _callee3, this, [[16, 28, 31, 34]]);
216
+ }, _callee3, this, [[15, 27, 30, 33]]);
219
217
  }));
220
218
  function assertHealthySkillNamed(_x4) {
221
219
  return _assertHealthySkillNamed.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSchemaTest.js","names":["AbstractSchemaTest","resolveHashSprucePath","cacheKey","syncOptions","installSchemaFeature","cli","Action","execute","schemas","expected","map","schema","id","name","version","CORE_SCHEMA_VERSION","constValue","namespace","description","expectedJSon","JSON","stringify","cleanedExpected","parse","sortSchemas","sort","a","b","bootOptions","fixture","FeatureFixture","installFeatures","code","options","graphicsInterface","ui","expectedHealth","skill","status","expectedInstalledSkills","Cli","linkLocalPackages","checkHealth","health","assert","isEqualDeep","packageContents","diskUtil","readFile","resolvePath","doesInclude","installer","getFeatureInstaller","isInstalled","isTrue","AbstractCliTest"],"sources":["../../src/tests/AbstractSchemaTest.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n\tHealthCheckResults,\n\tSchemaHealthCheckItem,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { CliBootOptions } from '../cli'\nimport { FeatureCode } from '../features/features.types'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSchemaTest extends AbstractCliTest {\n\tprotected static get schemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t}\n\n\tprotected static get coreSchemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'core.schemas.types.ts')\n\t}\n\n\tprotected static async syncSchemas(cacheKey?: string, syncOptions = {}) {\n\t\tconst cli = await this.installSchemaFeature(cacheKey)\n\n\t\tawait this.Action('schema', 'sync').execute(syncOptions)\n\n\t\treturn cli\n\t}\n\n\tprotected static generateExpectedHealthSchemas(schemas: Schema[]) {\n\t\tconst expected = schemas.map((schema) => ({\n\t\t\t// @ts-ignore\n\t\t\tid: schema.id,\n\t\t\t// @ts-ignore\n\t\t\tname: schema.name,\n\t\t\tversion: schema.version ?? CORE_SCHEMA_VERSION.constValue,\n\t\t\tnamespace: schema.namespace,\n\t\t\t// @ts-ignore\n\t\t\tdescription: schema.description,\n\t\t}))\n\n\t\tconst expectedJSon = JSON.stringify(expected)\n\t\tconst cleanedExpected = JSON.parse(expectedJSon)\n\n\t\treturn this.sortSchemas(cleanedExpected) as SchemaHealthCheckItem['schemas']\n\t}\n\n\tprotected static sortSchemas(schemas: Schema[]) {\n\t\treturn schemas.sort((a, b) => (a.id > b.id ? -1 : 1))\n\t}\n\n\tprotected static async installSchemaFeature(\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing',\n\t\t\t\t\t\tdescription: 'this is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'schema',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey,\n\t\t\t{ ...(bootOptions || {}), graphicsInterface: this.ui }\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async assertHealthySkillNamed(\n\t\tname: string,\n\t\texpectedHealth: HealthCheckResults = { skill: { status: 'passed' } },\n\t\texpectedInstalledSkills: FeatureCode[] = ['skill']\n\t) {\n\t\tconst cli = await this.Cli()\n\t\tawait this.linkLocalPackages()\n\n\t\tconst health = await cli.checkHealth()\n\n\t\t// @ts-ignore\n\t\tif (health.schema?.schemas) {\n\t\t\t//@ts-ignore\n\t\t\thealth.schema.schemas = this.sortSchemas(health.schema.schemas)\n\t\t}\n\n\t\tassert.isEqualDeep(health, expectedHealth)\n\n\t\tconst packageContents = diskUtil.readFile(this.resolvePath('package.json'))\n\t\tassert.doesInclude(packageContents, name)\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tfor (const code of expectedInstalledSkills) {\n\t\t\tconst isInstalled = await installer.isInstalled(code)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AbstractSchemaTest.js","names":["AbstractSchemaTest","resolveHashSprucePath","cacheKey","syncOptions","installSchemaFeature","cli","Action","execute","schemas","expected","map","schema","id","name","version","CORE_SCHEMA_VERSION","constValue","namespace","description","expectedJSon","JSON","stringify","cleanedExpected","parse","sortSchemas","sort","a","b","bootOptions","fixture","FeatureFixture","installFeatures","code","options","graphicsInterface","ui","expectedHealth","skill","status","expectedInstalledSkills","Cli","linkLocalPackages","checkHealth","health","assert","isEqualDeep","packageContents","diskUtil","readFile","resolvePath","doesInclude","featureInstaller","isInstalled","isTrue","AbstractCliTest"],"sources":["../../src/tests/AbstractSchemaTest.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n\tHealthCheckResults,\n\tSchemaHealthCheckItem,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { CliBootOptions } from '../cli'\nimport { FeatureCode } from '../features/features.types'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSchemaTest extends AbstractCliTest {\n\tprotected static get schemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t}\n\n\tprotected static get coreSchemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'core.schemas.types.ts')\n\t}\n\n\tprotected static async syncSchemas(cacheKey?: string, syncOptions = {}) {\n\t\tconst cli = await this.installSchemaFeature(cacheKey)\n\n\t\tawait this.Action('schema', 'sync').execute(syncOptions)\n\n\t\treturn cli\n\t}\n\n\tprotected static generateExpectedHealthSchemas(schemas: Schema[]) {\n\t\tconst expected = schemas.map((schema) => ({\n\t\t\t// @ts-ignore\n\t\t\tid: schema.id,\n\t\t\t// @ts-ignore\n\t\t\tname: schema.name,\n\t\t\tversion: schema.version ?? CORE_SCHEMA_VERSION.constValue,\n\t\t\tnamespace: schema.namespace,\n\t\t\t// @ts-ignore\n\t\t\tdescription: schema.description,\n\t\t}))\n\n\t\tconst expectedJSon = JSON.stringify(expected)\n\t\tconst cleanedExpected = JSON.parse(expectedJSon)\n\n\t\treturn this.sortSchemas(cleanedExpected) as SchemaHealthCheckItem['schemas']\n\t}\n\n\tprotected static sortSchemas(schemas: Schema[]) {\n\t\treturn schemas.sort((a, b) => (a.id > b.id ? -1 : 1))\n\t}\n\n\tprotected static async installSchemaFeature(\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing',\n\t\t\t\t\t\tdescription: 'this is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'schema',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey,\n\t\t\t{ ...(bootOptions || {}), graphicsInterface: this.ui }\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async assertHealthySkillNamed(\n\t\tname: string,\n\t\texpectedHealth: HealthCheckResults = { skill: { status: 'passed' } },\n\t\texpectedInstalledSkills: FeatureCode[] = ['skill']\n\t) {\n\t\tconst cli = await this.Cli()\n\t\tawait this.linkLocalPackages()\n\n\t\tconst health = await cli.checkHealth()\n\n\t\t// @ts-ignore\n\t\tif (health.schema?.schemas) {\n\t\t\t//@ts-ignore\n\t\t\thealth.schema.schemas = this.sortSchemas(health.schema.schemas)\n\t\t}\n\n\t\tassert.isEqualDeep(health, expectedHealth)\n\n\t\tconst packageContents = diskUtil.readFile(this.resolvePath('package.json'))\n\t\tassert.doesInclude(packageContents, name)\n\n\t\tfor (const code of expectedInstalledSkills) {\n\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(code)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;AAMA;AAGA;AAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAEjBA,kBAAkB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,KAC/C,eAAuC;MACtC,OAAO,IAAI,CAACC,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACjE;EAAC;IAAA;IAAA,KAED,eAA2C;MAC1C,OAAO,IAAI,CAACA,qBAAqB,CAAC,SAAS,EAAE,uBAAuB,CAAC;IACtE;EAAC;IAAA;IAAA;MAAA,iGAED,iBAAmCC,QAAiB;QAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBAAEC,WAAW,2DAAG,CAAC,CAAC;gBAAA;gBAAA,OACnD,IAAI,CAACC,oBAAoB,CAACF,QAAQ,CAAC;cAAA;gBAA/CG,GAAG;gBAAA;gBAAA,OAEH,IAAI,CAACC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAACC,OAAO,CAACJ,WAAW,CAAC;cAAA;gBAAA,iCAEjDE,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,uCAA+CG,OAAiB,EAAE;MACjE,IAAMC,QAAQ,GAAGD,OAAO,CAACE,GAAG,CAAC,UAACC,MAAM;QAAA;QAAA,OAAM;UACzC;UACAC,EAAE,EAAED,MAAM,CAACC,EAAE;UACb;UACAC,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBC,OAAO,qBAAEH,MAAM,CAACG,OAAO,6DAAIC,qCAAmB,CAACC,UAAU;UACzDC,SAAS,EAAEN,MAAM,CAACM,SAAS;UAC3B;UACAC,WAAW,EAAEP,MAAM,CAACO;QACrB,CAAC;MAAA,CAAC,CAAC;MAEH,IAAMC,YAAY,GAAGC,IAAI,CAACC,SAAS,CAACZ,QAAQ,CAAC;MAC7C,IAAMa,eAAe,GAAGF,IAAI,CAACG,KAAK,CAACJ,YAAY,CAAC;MAEhD,OAAO,IAAI,CAACK,WAAW,CAACF,eAAe,CAAC;IACzC;EAAC;IAAA;IAAA,OAED,qBAA6Bd,OAAiB,EAAE;MAC/C,OAAOA,OAAO,CAACiB,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;QAAA,OAAMD,CAAC,CAACd,EAAE,GAAGe,CAAC,CAACf,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;MAAA,CAAC,CAAC;IACtD;EAAC;IAAA;IAAA;MAAA,0GAED,kBACCV,QAAiB,EACjB0B,WAA4B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEtBC,OAAO,GAAG,IAAI,CAACC,cAAc,EAAE;gBAAA;gBAAA,OAEnBD,OAAO,CAACE,eAAe,CACxC,CACC;kBACCC,IAAI,EAAE,OAAO;kBACbC,OAAO,EAAE;oBACRpB,IAAI,EAAE,SAAS;oBACfK,WAAW,EAAE;kBACd;gBACD,CAAC,EACD;kBACCc,IAAI,EAAE;gBACP,CAAC,CACD,EACD9B,QAAQ,kCACF0B,WAAW,IAAI,CAAC,CAAC;kBAAGM,iBAAiB,EAAE,IAAI,CAACC;gBAAE,GACpD;cAAA;gBAfK9B,GAAG;gBAAA,kCAiBFA,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,6GAED,kBACCQ,IAAY;QAAA;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBACZuB,cAAkC,8DAAG;kBAAEC,KAAK,EAAE;oBAAEC,MAAM,EAAE;kBAAS;gBAAE,CAAC;gBACpEC,uBAAsC,8DAAG,CAAC,OAAO,CAAC;gBAAA;gBAAA,OAEhC,IAAI,CAACC,GAAG,EAAE;cAAA;gBAAtBnC,GAAG;gBAAA;gBAAA,OACH,IAAI,CAACoC,iBAAiB,EAAE;cAAA;gBAAA;gBAAA,OAETpC,GAAG,CAACqC,WAAW,EAAE;cAAA;gBAAhCC,MAAM;gBAEZ;gBACA,sBAAIA,MAAM,CAAChC,MAAM,2CAAb,eAAeH,OAAO,EAAE;kBAC3B;kBACAmC,MAAM,CAAChC,MAAM,CAACH,OAAO,GAAG,IAAI,CAACgB,WAAW,CAACmB,MAAM,CAAChC,MAAM,CAACH,OAAO,CAAC;gBAChE;gBAEAoC,iBAAM,CAACC,WAAW,CAACF,MAAM,EAAEP,cAAc,CAAC;gBAEpCU,eAAe,GAAGC,0BAAQ,CAACC,QAAQ,CAAC,IAAI,CAACC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC3EL,iBAAM,CAACM,WAAW,CAACJ,eAAe,EAAEjC,IAAI,CAAC;gBAAA,uCAEtB0B,uBAAuB;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAA/BP,IAAI;gBAAA;gBAAA,OACY,IAAI,CAACmB,gBAAgB,CAACC,WAAW,CAACpB,IAAI,CAAC;cAAA;gBAA3DoB,WAAW;gBACjBR,iBAAM,CAACS,MAAM,CAACD,WAAW,CAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAE3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA1FuDE,4BAAe;AAAA"}
@@ -41,7 +41,9 @@ var actionUtil = {
41
41
  });
42
42
  },
43
43
  assertNoErrorsInResponse: function assertNoErrorsInResponse(response) {
44
- _spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(response);
44
+ if (response.totalContracts > 0) {
45
+ _spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(response);
46
+ }
45
47
  }
46
48
  };
47
49
  var _default = actionUtil;
@@ -1 +1 @@
1
- {"version":3,"file":"action.utility.js","names":["actionUtil","mergeActionResults","isObject","obj","objects","reduce","prev","Object","keys","forEach","key","pVal","oVal","Array","isArray","concat","makeUnique","val","uniqWith","a","b","isEqual","path","assertNoErrorsInResponse","response","eventResponseUtil","getFirstResponseOrThrow"],"sources":["../../src/utilities/action.utility.ts"],"sourcesContent":["import { MercuryAggregateResponse } from '@sprucelabs/mercury-types'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport isEqual from 'lodash/isEqual'\nimport uniqWith from 'lodash/uniqWith'\n\nconst actionUtil = {\n\tmergeActionResults(...objects: any[]) {\n\t\tconst isObject = (obj: any) => obj && typeof obj === 'object'\n\t\treturn objects.reduce((prev, obj) => {\n\t\t\tObject.keys(obj || {}).forEach((key) => {\n\t\t\t\tconst pVal = prev[key]\n\t\t\t\tconst oVal = obj[key]\n\n\t\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\n\t\t\t\t\tprev[key] = pVal.concat(...oVal)\n\t\t\t\t\tprev[key] = this.makeUnique(prev[key])\n\t\t\t\t} else if (isObject(pVal) && isObject(oVal)) {\n\t\t\t\t\tprev[key] = this.mergeActionResults(pVal, oVal)\n\t\t\t\t} else if (typeof oVal !== 'undefined') {\n\t\t\t\t\tprev[key] = oVal\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn prev\n\t\t}, {})\n\t},\n\n\tmakeUnique(val: any[]): any[] {\n\t\treturn uniqWith(val, (a: any, b: any) => {\n\t\t\treturn isEqual(a, b) || (a.path && b.path && a.path === b.path)\n\t\t})\n\t},\n\n\tassertNoErrorsInResponse(response: MercuryAggregateResponse<any>) {\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\t},\n}\n\nexport default actionUtil\n"],"mappings":";;;;;;;;;AACA;AACA;AACA;AAEA,IAAMA,UAAU,GAAG;EAClBC,kBAAkB,gCAAoB;IAAA;IACrC,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,GAAQ;MAAA,OAAKA,GAAG,IAAI,yBAAOA,GAAG,MAAK,QAAQ;IAAA;IAAA,kCADxCC,OAAO;MAAPA,OAAO;IAAA;IAE5B,OAAOA,OAAO,CAACC,MAAM,CAAC,UAACC,IAAI,EAAEH,GAAG,EAAK;MACpCI,MAAM,CAACC,IAAI,CAACL,GAAG,IAAI,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC,UAACC,GAAG,EAAK;QACvC,IAAMC,IAAI,GAAGL,IAAI,CAACI,GAAG,CAAC;QACtB,IAAME,IAAI,GAAGT,GAAG,CAACO,GAAG,CAAC;QAErB,IAAIG,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,IAAIE,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAE;UAC/CN,IAAI,CAACI,GAAG,CAAC,GAAGC,IAAI,CAACI,MAAM,OAAXJ,IAAI,sCAAWC,IAAI,EAAC;UAChCN,IAAI,CAACI,GAAG,CAAC,GAAG,KAAI,CAACM,UAAU,CAACV,IAAI,CAACI,GAAG,CAAC,CAAC;QACvC,CAAC,MAAM,IAAIR,QAAQ,CAACS,IAAI,CAAC,IAAIT,QAAQ,CAACU,IAAI,CAAC,EAAE;UAC5CN,IAAI,CAACI,GAAG,CAAC,GAAG,KAAI,CAACT,kBAAkB,CAACU,IAAI,EAAEC,IAAI,CAAC;QAChD,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,WAAW,EAAE;UACvCN,IAAI,CAACI,GAAG,CAAC,GAAGE,IAAI;QACjB;MACD,CAAC,CAAC;MACF,OAAON,IAAI;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACP,CAAC;EAEDU,UAAU,sBAACC,GAAU,EAAS;IAC7B,OAAO,IAAAC,oBAAQ,EAACD,GAAG,EAAE,UAACE,CAAM,EAAEC,CAAM,EAAK;MACxC,OAAO,IAAAC,mBAAO,EAACF,CAAC,EAAEC,CAAC,CAAC,IAAKD,CAAC,CAACG,IAAI,IAAIF,CAAC,CAACE,IAAI,IAAIH,CAAC,CAACG,IAAI,KAAKF,CAAC,CAACE,IAAK;IAChE,CAAC,CAAC;EACH,CAAC;EAEDC,wBAAwB,oCAACC,QAAuC,EAAE;IACjEC,mCAAiB,CAACC,uBAAuB,CAACF,QAAQ,CAAC;EACpD;AACD,CAAC;AAAA,eAEcxB,UAAU;AAAA"}
1
+ {"version":3,"file":"action.utility.js","names":["actionUtil","mergeActionResults","isObject","obj","objects","reduce","prev","Object","keys","forEach","key","pVal","oVal","Array","isArray","concat","makeUnique","val","uniqWith","a","b","isEqual","path","assertNoErrorsInResponse","response","totalContracts","eventResponseUtil","getFirstResponseOrThrow"],"sources":["../../src/utilities/action.utility.ts"],"sourcesContent":["import { MercuryAggregateResponse } from '@sprucelabs/mercury-types'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport isEqual from 'lodash/isEqual'\nimport uniqWith from 'lodash/uniqWith'\n\nconst actionUtil = {\n\tmergeActionResults(...objects: any[]) {\n\t\tconst isObject = (obj: any) => obj && typeof obj === 'object'\n\t\treturn objects.reduce((prev, obj) => {\n\t\t\tObject.keys(obj || {}).forEach((key) => {\n\t\t\t\tconst pVal = prev[key]\n\t\t\t\tconst oVal = obj[key]\n\n\t\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\n\t\t\t\t\tprev[key] = pVal.concat(...oVal)\n\t\t\t\t\tprev[key] = this.makeUnique(prev[key])\n\t\t\t\t} else if (isObject(pVal) && isObject(oVal)) {\n\t\t\t\t\tprev[key] = this.mergeActionResults(pVal, oVal)\n\t\t\t\t} else if (typeof oVal !== 'undefined') {\n\t\t\t\t\tprev[key] = oVal\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn prev\n\t\t}, {})\n\t},\n\n\tmakeUnique(val: any[]): any[] {\n\t\treturn uniqWith(val, (a: any, b: any) => {\n\t\t\treturn isEqual(a, b) || (a.path && b.path && a.path === b.path)\n\t\t})\n\t},\n\n\tassertNoErrorsInResponse(response: MercuryAggregateResponse<any>) {\n\t\tif (response.totalContracts > 0) {\n\t\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\t\t}\n\t},\n}\n\nexport default actionUtil\n"],"mappings":";;;;;;;;;AACA;AACA;AACA;AAEA,IAAMA,UAAU,GAAG;EAClBC,kBAAkB,gCAAoB;IAAA;IACrC,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,GAAQ;MAAA,OAAKA,GAAG,IAAI,yBAAOA,GAAG,MAAK,QAAQ;IAAA;IAAA,kCADxCC,OAAO;MAAPA,OAAO;IAAA;IAE5B,OAAOA,OAAO,CAACC,MAAM,CAAC,UAACC,IAAI,EAAEH,GAAG,EAAK;MACpCI,MAAM,CAACC,IAAI,CAACL,GAAG,IAAI,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC,UAACC,GAAG,EAAK;QACvC,IAAMC,IAAI,GAAGL,IAAI,CAACI,GAAG,CAAC;QACtB,IAAME,IAAI,GAAGT,GAAG,CAACO,GAAG,CAAC;QAErB,IAAIG,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,IAAIE,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAE;UAC/CN,IAAI,CAACI,GAAG,CAAC,GAAGC,IAAI,CAACI,MAAM,OAAXJ,IAAI,sCAAWC,IAAI,EAAC;UAChCN,IAAI,CAACI,GAAG,CAAC,GAAG,KAAI,CAACM,UAAU,CAACV,IAAI,CAACI,GAAG,CAAC,CAAC;QACvC,CAAC,MAAM,IAAIR,QAAQ,CAACS,IAAI,CAAC,IAAIT,QAAQ,CAACU,IAAI,CAAC,EAAE;UAC5CN,IAAI,CAACI,GAAG,CAAC,GAAG,KAAI,CAACT,kBAAkB,CAACU,IAAI,EAAEC,IAAI,CAAC;QAChD,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,WAAW,EAAE;UACvCN,IAAI,CAACI,GAAG,CAAC,GAAGE,IAAI;QACjB;MACD,CAAC,CAAC;MACF,OAAON,IAAI;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACP,CAAC;EAEDU,UAAU,sBAACC,GAAU,EAAS;IAC7B,OAAO,IAAAC,oBAAQ,EAACD,GAAG,EAAE,UAACE,CAAM,EAAEC,CAAM,EAAK;MACxC,OAAO,IAAAC,mBAAO,EAACF,CAAC,EAAEC,CAAC,CAAC,IAAKD,CAAC,CAACG,IAAI,IAAIF,CAAC,CAACE,IAAI,IAAIH,CAAC,CAACG,IAAI,KAAKF,CAAC,CAACE,IAAK;IAChE,CAAC,CAAC;EACH,CAAC;EAEDC,wBAAwB,oCAACC,QAAuC,EAAE;IACjE,IAAIA,QAAQ,CAACC,cAAc,GAAG,CAAC,EAAE;MAChCC,mCAAiB,CAACC,uBAAuB,CAACH,QAAQ,CAAC;IACpD;EACD;AACD,CAAC;AAAA,eAEcxB,UAAU;AAAA"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/parser",
3
- "version": "5.40.0",
3
+ "version": "5.40.1",
4
4
  "description": "An ESLint custom parser which leverages TypeScript ESTree",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -45,9 +45,9 @@
45
45
  "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
46
46
  },
47
47
  "dependencies": {
48
- "@typescript-eslint/scope-manager": "5.40.0",
49
- "@typescript-eslint/types": "5.40.0",
50
- "@typescript-eslint/typescript-estree": "5.40.0",
48
+ "@typescript-eslint/scope-manager": "5.40.1",
49
+ "@typescript-eslint/types": "5.40.1",
50
+ "@typescript-eslint/typescript-estree": "5.40.1",
51
51
  "debug": "^4.3.4"
52
52
  },
53
53
  "devDependencies": {
@@ -71,5 +71,5 @@
71
71
  ]
72
72
  }
73
73
  },
74
- "gitHead": "6ac0aa7ef4506031687b92240f5cbdd13f568917"
74
+ "gitHead": "0be356bae50156ba159c70d570b030e6d94afcb1"
75
75
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/scope-manager",
3
- "version": "5.40.0",
3
+ "version": "5.40.1",
4
4
  "description": "TypeScript scope analyser for ESLint",
5
5
  "keywords": [
6
6
  "eslint",
@@ -38,12 +38,12 @@
38
38
  "typecheck": "cd ../../ && nx typecheck @typescript-eslint/scope-manager"
39
39
  },
40
40
  "dependencies": {
41
- "@typescript-eslint/types": "5.40.0",
42
- "@typescript-eslint/visitor-keys": "5.40.0"
41
+ "@typescript-eslint/types": "5.40.1",
42
+ "@typescript-eslint/visitor-keys": "5.40.1"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/glob": "*",
46
- "@typescript-eslint/typescript-estree": "5.40.0",
46
+ "@typescript-eslint/typescript-estree": "5.40.1",
47
47
  "glob": "*",
48
48
  "jest-specific-snapshot": "*",
49
49
  "make-dir": "*",
@@ -63,5 +63,5 @@
63
63
  ]
64
64
  }
65
65
  },
66
- "gitHead": "6ac0aa7ef4506031687b92240f5cbdd13f568917"
66
+ "gitHead": "0be356bae50156ba159c70d570b030e6d94afcb1"
67
67
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/types",
3
- "version": "5.40.0",
3
+ "version": "5.40.1",
4
4
  "description": "Types for the TypeScript-ESTree AST spec",
5
5
  "keywords": [
6
6
  "eslint",
@@ -80,5 +80,5 @@
80
80
  "devDependencies": {
81
81
  "typescript": "*"
82
82
  },
83
- "gitHead": "6ac0aa7ef4506031687b92240f5cbdd13f568917"
83
+ "gitHead": "0be356bae50156ba159c70d570b030e6d94afcb1"
84
84
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/typescript-estree",
3
- "version": "5.40.0",
3
+ "version": "5.40.1",
4
4
  "description": "A parser that converts TypeScript source code into an ESTree compatible form",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -42,8 +42,8 @@
42
42
  "typecheck": "tsc -p tsconfig.json --noEmit"
43
43
  },
44
44
  "dependencies": {
45
- "@typescript-eslint/types": "5.40.0",
46
- "@typescript-eslint/visitor-keys": "5.40.0",
45
+ "@typescript-eslint/types": "5.40.1",
46
+ "@typescript-eslint/visitor-keys": "5.40.1",
47
47
  "debug": "^4.3.4",
48
48
  "globby": "^11.1.0",
49
49
  "is-glob": "^4.0.3",
@@ -59,7 +59,7 @@
59
59
  "@types/is-glob": "*",
60
60
  "@types/semver": "*",
61
61
  "@types/tmp": "*",
62
- "@typescript-eslint/shared-fixtures": "5.40.0",
62
+ "@typescript-eslint/shared-fixtures": "5.40.1",
63
63
  "glob": "*",
64
64
  "jest-specific-snapshot": "*",
65
65
  "make-dir": "*",
@@ -82,5 +82,5 @@
82
82
  ]
83
83
  }
84
84
  },
85
- "gitHead": "6ac0aa7ef4506031687b92240f5cbdd13f568917"
85
+ "gitHead": "0be356bae50156ba159c70d570b030e6d94afcb1"
86
86
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/visitor-keys",
3
- "version": "5.40.0",
3
+ "version": "5.40.1",
4
4
  "description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
5
5
  "keywords": [
6
6
  "eslint",
@@ -39,7 +39,7 @@
39
39
  "typecheck": "tsc -p tsconfig.json --noEmit"
40
40
  },
41
41
  "dependencies": {
42
- "@typescript-eslint/types": "5.40.0",
42
+ "@typescript-eslint/types": "5.40.1",
43
43
  "eslint-visitor-keys": "^3.3.0"
44
44
  },
45
45
  "devDependencies": {
@@ -56,5 +56,5 @@
56
56
  ]
57
57
  }
58
58
  },
59
- "gitHead": "6ac0aa7ef4506031687b92240f5cbdd13f568917"
59
+ "gitHead": "0be356bae50156ba159c70d570b030e6d94afcb1"
60
60
  }
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  ]
19
19
  },
20
20
  "license": "MIT",
21
- "version": "18.0.0",
21
+ "version": "18.1.0",
22
22
  "bin": {
23
23
  "spruce": "./build/index.js"
24
24
  },
@@ -75,18 +75,18 @@
75
75
  "@babel/cli": "^7.19.3",
76
76
  "@babel/plugin-proposal-decorators": "^7.19.3",
77
77
  "@babel/runtime": "^7.19.4",
78
- "@jest/reporters": "^29.1.2",
79
- "@sprucelabs/error": "^5.0.523",
80
- "@sprucelabs/heartwood-view-controllers": "^95.0.0",
81
- "@sprucelabs/jest-json-reporter": "^6.0.494",
82
- "@sprucelabs/mercury-client": "^33.0.4",
83
- "@sprucelabs/mercury-event-emitter": "^33.0.4",
84
- "@sprucelabs/mercury-types": "^37.0.3",
85
- "@sprucelabs/schema": "^28.5.37",
86
- "@sprucelabs/spruce-core-schemas": "^35.1.2",
87
- "@sprucelabs/spruce-event-utils": "^29.1.0",
88
- "@sprucelabs/spruce-skill-utils": "^28.0.2",
89
- "@sprucelabs/spruce-templates": "^18.0.0",
78
+ "@jest/reporters": "^29.2.1",
79
+ "@sprucelabs/error": "^5.0.526",
80
+ "@sprucelabs/heartwood-view-controllers": "^96.0.16",
81
+ "@sprucelabs/jest-json-reporter": "^6.0.499",
82
+ "@sprucelabs/mercury-client": "^34.0.15",
83
+ "@sprucelabs/mercury-event-emitter": "^34.0.15",
84
+ "@sprucelabs/mercury-types": "^37.0.13",
85
+ "@sprucelabs/schema": "^28.5.43",
86
+ "@sprucelabs/spruce-core-schemas": "^35.1.12",
87
+ "@sprucelabs/spruce-event-utils": "^29.1.10",
88
+ "@sprucelabs/spruce-skill-utils": "^28.0.12",
89
+ "@sprucelabs/spruce-templates": "^18.1.0",
90
90
  "@typescript-eslint/eslint-plugin": "^5.27.1",
91
91
  "@typescript-eslint/parser": "^5.27.1",
92
92
  "cfonts": "^3.1.1",
@@ -114,16 +114,16 @@
114
114
  "uuid": "^9.0.0"
115
115
  },
116
116
  "devDependencies": {
117
- "@sprucelabs/data-stores": "^19.0.2",
118
- "@sprucelabs/jest-sheets-reporter": "^2.0.2",
119
- "@sprucelabs/mercury-core-events": "^15.0.1",
120
- "@sprucelabs/resolve-path-aliases": "^1.1.111",
121
- "@sprucelabs/spruce-conversation-plugin": "^50.0.23",
122
- "@sprucelabs/spruce-deploy-plugin": "^50.0.23",
123
- "@sprucelabs/spruce-store-plugin": "^50.0.23",
124
- "@sprucelabs/spruce-test-fixtures": "^50.0.23",
125
- "@sprucelabs/test": "^7.7.371",
126
- "@sprucelabs/test-utils": "^3.2.26",
117
+ "@sprucelabs/data-stores": "^19.0.11",
118
+ "@sprucelabs/jest-sheets-reporter": "^2.0.7",
119
+ "@sprucelabs/mercury-core-events": "^15.0.23",
120
+ "@sprucelabs/resolve-path-aliases": "^1.1.114",
121
+ "@sprucelabs/spruce-conversation-plugin": "^50.1.4",
122
+ "@sprucelabs/spruce-deploy-plugin": "^50.1.4",
123
+ "@sprucelabs/spruce-store-plugin": "^50.1.4",
124
+ "@sprucelabs/spruce-test-fixtures": "^50.1.4",
125
+ "@sprucelabs/test": "^7.7.374",
126
+ "@sprucelabs/test-utils": "^3.2.32",
127
127
  "@types/blessed": "^0.1.19",
128
128
  "@types/eslint": "^8.4.6",
129
129
  "@types/fs-extra": "^9.0.13",
@@ -131,7 +131,7 @@
131
131
  "@types/lodash": "^4.14.186",
132
132
  "@types/md5": "^2.3.2",
133
133
  "@types/mkdirp": "^1.0.2",
134
- "@types/node": "^18.8.5",
134
+ "@types/node": "^18.11.2",
135
135
  "@types/promise.allsettled": "^1.0.3",
136
136
  "@types/ps-node": "^0.1.1",
137
137
  "@types/rimraf": "^3.0.2",
@@ -148,8 +148,8 @@
148
148
  "eslint": "^8.25.0",
149
149
  "eslint-config-spruce": "^10.11.4",
150
150
  "find-process": "^1.4.7",
151
- "jest": "^29.1.2",
152
- "jest-circus": "^29.1.2",
151
+ "jest": "^29.2.1",
152
+ "jest-circus": "^29.2.1",
153
153
  "jest-junit": "^14.0.1",
154
154
  "jest-reporters": "^0.0.2",
155
155
  "prettier": "^2.7.1",
@@ -540,65 +540,7 @@
540
540
  {
541
541
  "sheetId": "1DoWM7mYgGDa-PJXptLomrZmbIBZiuxS1YiAsRXU2Gm0",
542
542
  "worksheetId": 843037832,
543
- "testMap": {
544
- "canBootTheCli": "C4",
545
- "getsAGoodHealthCheckAndNothingElse": "C5",
546
- "schemaPassesHealthCheck": "C6",
547
- "builderAndDefinitionFileValidates": "C7",
548
- "schemasStayInSyncWhenDefinitionsAreDeleted": "C8",
549
- "installsSchemasIfNotInstalled": "C9",
550
- "errorFileShouldBeUpdated": "C10",
551
- "buildCreatesValidDefinitionAndOptionsFile": "C11",
552
- "errorsStayInSyncWhenSchemasAreDeleted": "C12",
553
- "createsValidListener": "C13",
554
- "canGetLatestVersionBasedOnDir": "C16",
555
- "canBuildSkill": "C23",
556
- "canWatchAndBuild": "C24",
557
- "fetchesEventContracts": "F55",
558
- "canGetNumberOfEventsBackFromHealthCheck": "F64",
559
- "canLoginAsDummyPerson": "F66",
560
- "canSeeWhoIsLoggedIn": "F67",
561
- "canRegisterSkill": "F69",
562
- "throwsWithBadEventName": "F72",
563
- "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented": "F73",
564
- "createsAnOrg": "F75",
565
- "asksYouToSelectOrgWithMoreThanOne": "F76",
566
- "generatesTypedListenerWithAllPayloads": "F77",
567
- "createsVersionedEventFiles": "F81",
568
- "createsExpectedPermissionContract": "F82",
569
- "registeringEventsOnBoot": "F83",
570
- "createsVersionedEventFilesDefaultingToToday": "F84",
571
- "hasCreateConversationAction": "F100",
572
- "createsValidConversationTopicDefinition": "F101",
573
- "canRegisterConversationsOnBoot": "F104",
574
- "canDeploySkill": "L4",
575
- "canReRegisterAndThenRegisterConversationsWithoutCrash": "I17",
576
- "generatesValidTypeFile": "I39",
577
- "skillWithSameEventNameButDifferentVersionsCanBeSynced": "I79",
578
- "unRegisteredEventsAreRemoved": "I86",
579
- "canListenToEventWeCreated": "I89",
580
- "canCreateGlobalEvent": "I91",
581
- "canChangeSkillNamespace": "I107",
582
- "canGetVersion": "I129",
583
- "blockedCommandsThrow": "I130",
584
- "overridesAreLoadedIntoAttacher": "I131",
585
- "skillViewExtendsAbstractViewControllerWithProperView": "I134",
586
- "hasSetRemoteAction": "I147",
587
- "create.event throws for remote on NOT TTY": "I148",
588
- "resultsOfCommandHasRemoteMixedIntoSummary": "I149",
589
- "syncsWithoutSavingCoreEventsByDefault": "I152",
590
- "nicelyTypesViewController": "I192",
591
- "canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing": "I206",
592
- "can reference impored from another module": "I207",
593
- "killingActionKillsProcess": "I230",
594
- "upgradingSkillSyncsEvents": "I251",
595
- "upgradeCallsUpdateDependencies": "I252",
596
- "canAlwaysSkipFiles": "I264",
597
- "upgradingWritesExpectedFiles": "I289",
598
- "globalEmitterEmitsSEquentally": "I328",
599
- "login.skill asks for remote on IS TTY": "I338",
600
- "syncsEventsForSkillsWeveAddedAsDependencies": "I347"
601
- }
543
+ "testMap": {}
602
544
  }
603
545
  ],
604
546
  "jest-junit"
@@ -619,5 +561,5 @@
619
561
  "terminal-kit"
620
562
  ]
621
563
  },
622
- "gitHead": "6cc5629621a6e36a0e5e64ea6a007e975cfca339"
564
+ "gitHead": "2ea5fab2c524a5049410805116706d37cb5cb799"
623
565
  }
@@ -10,7 +10,7 @@ import AbstractCliTest from '../../tests/AbstractCliTest'
10
10
  export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
11
11
  @test()
12
12
  protected static async cacheFeatureIsAlwaysOn() {
13
- const isInstalled = await this.getFeatureInstaller().isInstalled('cache')
13
+ const isInstalled = await this.featureInstaller.isInstalled('cache')
14
14
  assert.isTrue(isInstalled)
15
15
  }
16
16
 
@@ -25,7 +25,7 @@ export default class RememberingUpgradeSelectionsTest extends AbstractSkillTest
25
25
 
26
26
  private static getExpectedBuildCi() {
27
27
  //@ts-ignore
28
- return this.getFeatureInstaller().getFeature('skill').scripts['build.ci']
28
+ return this.featureInstaller.getFeature('skill').scripts['build.ci']
29
29
  }
30
30
 
31
31
  @test()