@sprucelabs/spruce-cli 19.0.0 → 19.1.1

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 (1014) hide show
  1. package/.DS_Store +0 -0
  2. package/.env +25 -0
  3. package/.eslintcache +1 -0
  4. package/CHANGELOG.md +6 -0
  5. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  43. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  44. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  45. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  46. package/build/.spruce/events/events.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  49. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -1
  50. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  51. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  52. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -1
  53. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  54. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -1
  55. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -1
  56. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
  57. package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  63. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  64. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  65. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.js.map +1 -1
  66. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.js.map +1 -1
  67. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.js.map +1 -1
  68. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  69. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  70. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  71. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  72. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  73. package/build/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.js.map +1 -1
  74. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  75. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  76. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  77. package/build/.spruce/schemas/heartwood/v2021_02_11/theme.schema.js.map +1 -1
  78. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.js.map +1 -1
  79. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.js.map +1 -1
  80. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.js.map +1 -1
  81. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.js.map +1 -1
  82. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
  83. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
  84. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  85. package/build/.spruce/schemas/spruce/v2020_07_22/choice.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruce/v2020_07_22/link.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
  89. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
  90. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
  91. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
  92. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
  93. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
  94. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
  95. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
  96. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
  97. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
  98. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
  99. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -1
  100. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  101. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  102. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  103. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  104. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  105. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  106. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  107. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  108. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  109. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  110. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  111. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  112. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -1
  113. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  114. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  115. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  116. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  117. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  118. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  119. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  120. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  121. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  122. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  123. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  124. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  125. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  126. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  127. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
  128. package/build/.spruce/skill.types.js.map +1 -1
  129. package/build/GlobalEmitter.js.map +1 -1
  130. package/build/InFlightEntertainment.js.map +1 -1
  131. package/build/__tests__/behavioral/AddingADependency.test.js +130 -144
  132. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  133. package/build/__tests__/behavioral/BlockingCommands.test.js +59 -63
  134. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  135. package/build/__tests__/behavioral/BootingTheCli.test.d.ts +2 -1
  136. package/build/__tests__/behavioral/BootingTheCli.test.js +60 -22
  137. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  138. package/build/__tests__/behavioral/BootingWithBadFiles.test.js +46 -52
  139. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  140. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js +50 -56
  141. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  142. package/build/__tests__/behavioral/DeployingASkill.test.js +512 -548
  143. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  144. package/build/__tests__/behavioral/DeployingToSandbox.test.js +321 -351
  145. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  146. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +137 -153
  147. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  148. package/build/__tests__/behavioral/GettingCliVersion.test.js +31 -37
  149. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  150. package/build/__tests__/behavioral/ManagingDependencies.test.js +112 -122
  151. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  152. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js +41 -45
  153. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  154. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js +55 -59
  155. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  156. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +56 -64
  157. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  158. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +90 -104
  159. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  160. package/build/__tests__/behavioral/SettingRemote.test.js +64 -74
  161. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  162. package/build/__tests__/behavioral/SettingUpVscode.test.js +52 -56
  163. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  164. package/build/__tests__/behavioral/TestingAConversation.test.js +143 -157
  165. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  166. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js +90 -100
  167. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  168. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js +74 -78
  169. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  170. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js +180 -190
  171. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  172. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +34 -38
  173. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  174. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +179 -201
  175. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  176. package/build/__tests__/behavioral/events/CreatingAListener.test.js +423 -459
  177. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  178. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +287 -315
  179. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  180. package/build/__tests__/behavioral/events/EventWriter.test.js +64 -66
  181. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
  182. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +286 -316
  183. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  184. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +398 -420
  185. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  186. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +43 -49
  187. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  188. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js +55 -59
  189. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  190. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js +31 -35
  191. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -1
  192. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js +98 -104
  193. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -1
  194. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js +123 -135
  195. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -1
  196. package/build/__tests__/behavioral/events/SettingUpEvents.test.js +15 -17
  197. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  198. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +66 -72
  199. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  200. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js +76 -82
  201. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  202. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +49 -55
  203. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  204. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +79 -85
  205. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  206. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js +45 -49
  207. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  208. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +40 -46
  209. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  210. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +15 -19
  211. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -1
  212. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +174 -198
  213. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  214. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +23 -27
  215. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -1
  216. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +1 -0
  217. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +209 -208
  218. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  219. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js +34 -40
  220. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -1
  221. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -1
  222. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -1
  223. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -1
  224. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +153 -171
  225. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  226. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js +40 -46
  227. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  228. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js +102 -116
  229. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js.map +1 -1
  230. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +227 -247
  231. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  232. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js +27 -29
  233. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -1
  234. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js +38 -42
  235. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  236. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +65 -73
  237. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  238. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js +100 -110
  239. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  240. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js +25 -27
  241. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  242. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +425 -465
  243. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  244. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +49 -55
  245. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  246. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +435 -467
  247. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  248. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +19 -21
  249. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  250. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js +9 -11
  251. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  252. package/build/__tests__/behavioral/skill/BootingASkill.test.js +61 -67
  253. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  254. package/build/__tests__/behavioral/skill/CreatingASkill.test.js +37 -41
  255. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  256. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js +183 -199
  257. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -1
  258. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js +153 -171
  259. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -1
  260. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js +37 -43
  261. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -1
  262. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +96 -104
  263. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  264. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js +168 -184
  265. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  266. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +169 -191
  267. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  268. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +105 -125
  269. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  270. package/build/__tests__/behavioral/tests/CreatingATest.test.js +208 -232
  271. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  272. package/build/__tests__/behavioral/tests/RunningTests.test.js +75 -79
  273. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  274. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +293 -355
  275. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  276. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js +65 -75
  277. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -1
  278. package/build/__tests__/behavioral/tests/SettingUpTests.test.js +29 -33
  279. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  280. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js +50 -54
  281. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -1
  282. package/build/__tests__/behavioral/tests/TestingDataStores.test.js +87 -95
  283. package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -1
  284. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js +57 -65
  285. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  286. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +146 -156
  287. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  288. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +79 -87
  289. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  290. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js +282 -302
  291. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  292. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js +183 -197
  293. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  294. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +214 -238
  295. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  296. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +118 -126
  297. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  298. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +138 -152
  299. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  300. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +61 -69
  301. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  302. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js +90 -104
  303. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  304. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +194 -220
  305. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  306. package/build/__tests__/behavioral/views/CreatingATheme.test.js +83 -97
  307. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  308. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js +64 -76
  309. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  310. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js +102 -114
  311. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -1
  312. package/build/__tests__/behavioral/views/SettingUpViews.test.js +33 -37
  313. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  314. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +94 -106
  315. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  316. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +32 -38
  317. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
  318. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +302 -336
  319. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  320. package/build/__tests__/implementation/ActionExecuter.test.js +132 -136
  321. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  322. package/build/__tests__/implementation/ActionExecuter2.test.js +270 -286
  323. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  324. package/build/__tests__/implementation/ActionExecuter3.test.js +64 -72
  325. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  326. package/build/__tests__/implementation/ActionExecuter4.test.js +41 -47
  327. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  328. package/build/__tests__/implementation/ArgParser.test.js +13 -17
  329. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  330. package/build/__tests__/implementation/BuildService.test.js +25 -29
  331. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  332. package/build/__tests__/implementation/BulkImporting.test.js +116 -136
  333. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  334. package/build/__tests__/implementation/CachingImports.test.js +89 -99
  335. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  336. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  337. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js +72 -90
  338. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  339. package/build/__tests__/implementation/DataStoreStore.test.js +127 -147
  340. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  341. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js +46 -52
  342. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  343. package/build/__tests__/implementation/EventContractCleanerUtil.test.js +27 -35
  344. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  345. package/build/__tests__/implementation/EventStore.test.js +371 -399
  346. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  347. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +21 -27
  348. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  349. package/build/__tests__/implementation/FeatureCommandAttacher.test.js +155 -173
  350. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  351. package/build/__tests__/implementation/FeatureFixture.test.js +54 -62
  352. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  353. package/build/__tests__/implementation/FeatureInstaller.test.js +69 -77
  354. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  355. package/build/__tests__/implementation/FeaturesUtil.test.js +7 -9
  356. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  357. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js +6 -8
  358. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  359. package/build/__tests__/implementation/GlobalEmitter.test.js +29 -33
  360. package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
  361. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  362. package/build/__tests__/implementation/JestJsonParser.test.js +9 -11
  363. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  364. package/build/__tests__/implementation/LintService.test.js +32 -36
  365. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  366. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  367. package/build/__tests__/implementation/OnboardingScriptLoader.test.js +72 -80
  368. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  369. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +217 -243
  370. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  371. package/build/__tests__/implementation/OnboardingStore.test.js +19 -23
  372. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  373. package/build/__tests__/implementation/OrganizationStore.test.js +114 -124
  374. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  375. package/build/__tests__/implementation/ParentTestFinder.test.js +38 -44
  376. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  377. package/build/__tests__/implementation/PkgService.test.js +63 -75
  378. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  379. package/build/__tests__/implementation/SchemaStore.test.js +314 -346
  380. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  381. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +9 -11
  382. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  383. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js +128 -142
  384. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  385. package/build/__tests__/implementation/ServiceFactory.test.js +8 -10
  386. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  387. package/build/__tests__/implementation/SettingUpANodeModule.test.js +59 -65
  388. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  389. package/build/__tests__/implementation/SkillStore.test.js +153 -169
  390. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  391. package/build/__tests__/implementation/StoreFeature.test.js +49 -53
  392. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  393. package/build/__tests__/implementation/TestReporter.test.js +31 -39
  394. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  395. package/build/__tests__/implementation/TestRunner.test.js +215 -233
  396. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  397. package/build/__tests__/implementation/ValueTypeMapping.test.js +24 -28
  398. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  399. package/build/__tests__/implementation/Widgets.test.js +34 -42
  400. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  401. package/build/__tests__/support/EventFaker.js +12 -14
  402. package/build/__tests__/support/EventFaker.js.map +1 -1
  403. package/build/__tests__/support/onTestFileResult.js.map +1 -1
  404. package/build/__tests__/support/scripts/first.script.js +7 -9
  405. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  406. package/build/__tests__/support/scripts/second.script.js.map +1 -1
  407. package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
  408. package/build/addons/filePrompt.addon.js.map +1 -1
  409. package/build/boot.d.ts +2 -0
  410. package/build/boot.js +162 -0
  411. package/build/boot.js.map +1 -0
  412. package/build/{cli.d.ts → cli/Cli.d.ts} +9 -33
  413. package/build/cli/Cli.js +528 -0
  414. package/build/cli/Cli.js.map +1 -0
  415. package/build/components/AbstractComponent.js.map +1 -1
  416. package/build/components/FormComponent.js +156 -160
  417. package/build/components/FormComponent.js.map +1 -1
  418. package/build/components/QuizComponent.js +124 -128
  419. package/build/components/QuizComponent.js.map +1 -1
  420. package/build/constants.js.map +1 -1
  421. package/build/errors/SpruceError.js +1 -1
  422. package/build/errors/SpruceError.js.map +1 -1
  423. package/build/errors/actionCancelled.builder.js.map +1 -1
  424. package/build/errors/bootError.builder.js.map +1 -1
  425. package/build/errors/buildFailed.builder.js.map +1 -1
  426. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  427. package/build/errors/commandAborted.builder.js.map +1 -1
  428. package/build/errors/commandBlocked.builder.js.map +1 -1
  429. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  430. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  431. package/build/errors/dependencyExists.builder.js.map +1 -1
  432. package/build/errors/deployFailed.builder.js.map +1 -1
  433. package/build/errors/directoryEmpty.builder.js.map +1 -1
  434. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  435. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  436. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  437. package/build/errors/failedToImport.builder.js.map +1 -1
  438. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  439. package/build/errors/fileExists.builder.js.map +1 -1
  440. package/build/errors/generic.builder.js.map +1 -1
  441. package/build/errors/invalidCommand.builder.js.map +1 -1
  442. package/build/errors/invalidEventContract.builder.js.map +1 -1
  443. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  444. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  445. package/build/errors/lintFailed.builder.js.map +1 -1
  446. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  447. package/build/errors/missingDependencies.builder.js.map +1 -1
  448. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  449. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  450. package/build/errors/notImplemented.builder.js.map +1 -1
  451. package/build/errors/notLoggedIn.builder.js.map +1 -1
  452. package/build/errors/schemaExists.builder.js.map +1 -1
  453. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  454. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  455. package/build/errors/skillNotFound.builder.js.map +1 -1
  456. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  457. package/build/errors/skillViewExists.builder.js.map +1 -1
  458. package/build/errors/storeExists.builder.js.map +1 -1
  459. package/build/errors/testFailed.builder.js.map +1 -1
  460. package/build/errors/themeExists.builder.js.map +1 -1
  461. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  462. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  463. package/build/features/AbstractAction.js +65 -71
  464. package/build/features/AbstractAction.js.map +1 -1
  465. package/build/features/AbstractFeature.js +54 -62
  466. package/build/features/AbstractFeature.js.map +1 -1
  467. package/build/features/ActionExecuter.js +206 -210
  468. package/build/features/ActionExecuter.js.map +1 -1
  469. package/build/features/ActionFactory.js.map +1 -1
  470. package/build/features/ActionQuestionAsker.js +304 -320
  471. package/build/features/ActionQuestionAsker.js.map +1 -1
  472. package/build/features/FeatureCommandAttacher.js +45 -49
  473. package/build/features/FeatureCommandAttacher.js.map +1 -1
  474. package/build/features/FeatureInstaller.js +353 -375
  475. package/build/features/FeatureInstaller.js.map +1 -1
  476. package/build/features/FeatureInstallerFactory.js.map +1 -1
  477. package/build/features/OverrideActionDecorator.js +13 -15
  478. package/build/features/OverrideActionDecorator.js.map +1 -1
  479. package/build/features/cache/CacheFeature.js +6 -8
  480. package/build/features/cache/CacheFeature.js.map +1 -1
  481. package/build/features/cache/actions/DisableAction.js +42 -44
  482. package/build/features/cache/actions/DisableAction.js.map +1 -1
  483. package/build/features/cache/actions/EnableAction.js +37 -39
  484. package/build/features/cache/actions/EnableAction.js.map +1 -1
  485. package/build/features/cache/constants.js.map +1 -1
  486. package/build/features/conversation/ConversationFeature.js +40 -46
  487. package/build/features/conversation/ConversationFeature.js.map +1 -1
  488. package/build/features/conversation/actions/CreateAction.js +16 -18
  489. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  490. package/build/features/conversation/actions/TestAction.js +96 -102
  491. package/build/features/conversation/actions/TestAction.js.map +1 -1
  492. package/build/features/conversation/stores/ConversationStore.js +19 -21
  493. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  494. package/build/features/conversation/writers/ConversationWriter.js +22 -24
  495. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  496. package/build/features/dependencies/DependencyFeature.js +6 -8
  497. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  498. package/build/features/dependencies/actions/AddAction.js +64 -66
  499. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  500. package/build/features/dependencies/actions/ManageAction.js +63 -65
  501. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  502. package/build/features/deploy/DeployFeature.js +12 -14
  503. package/build/features/deploy/DeployFeature.js.map +1 -1
  504. package/build/features/deploy/actions/HerokuAction.js +389 -409
  505. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  506. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  507. package/build/features/error/ErrorFeature.js +84 -92
  508. package/build/features/error/ErrorFeature.js.map +1 -1
  509. package/build/features/error/ParentTestFinder.js +22 -24
  510. package/build/features/error/ParentTestFinder.js.map +1 -1
  511. package/build/features/error/actions/CreateAction.js +24 -26
  512. package/build/features/error/actions/CreateAction.js.map +1 -1
  513. package/build/features/error/actions/SyncAction.js +85 -91
  514. package/build/features/error/actions/SyncAction.js.map +1 -1
  515. package/build/features/error/writers/ErrorWriter.js +130 -140
  516. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  517. package/build/features/event/EventFeature.js +153 -167
  518. package/build/features/event/EventFeature.js.map +1 -1
  519. package/build/features/event/actions/CreateAction.js +59 -61
  520. package/build/features/event/actions/CreateAction.js.map +1 -1
  521. package/build/features/event/actions/ListenAction.js +205 -219
  522. package/build/features/event/actions/ListenAction.js.map +1 -1
  523. package/build/features/event/actions/SetRemoteAction.js +11 -13
  524. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  525. package/build/features/event/actions/SyncAction.js +25 -27
  526. package/build/features/event/actions/SyncAction.js.map +1 -1
  527. package/build/features/event/actions/SyncListenersAction.js +23 -25
  528. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  529. package/build/features/event/builders/EventContractBuilder.js +136 -144
  530. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  531. package/build/features/event/builders/ListenerTemplateItemBuilder.js +1 -1
  532. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  533. package/build/features/event/services/EventSettingsService.js.map +1 -1
  534. package/build/features/event/services/RemoteService.js.map +1 -1
  535. package/build/features/event/stores/EventStore.js +246 -258
  536. package/build/features/event/stores/EventStore.js.map +1 -1
  537. package/build/features/event/stores/ListenerStore.js +26 -28
  538. package/build/features/event/stores/ListenerStore.js.map +1 -1
  539. package/build/features/event/writers/EventWriter.js +171 -183
  540. package/build/features/event/writers/EventWriter.js.map +1 -1
  541. package/build/features/eventContract/EventContractFeature.js +6 -8
  542. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  543. package/build/features/eventContract/actions/PullAction.js +58 -62
  544. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  545. package/build/features/feature.utilities.js.map +1 -1
  546. package/build/features/log/LogFeature.js.map +1 -1
  547. package/build/features/log/actions/CreateTransportAction.js +16 -18
  548. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  549. package/build/features/log/writers/LogWriter.js +23 -25
  550. package/build/features/log/writers/LogWriter.js.map +1 -1
  551. package/build/features/node/NodeFeature.js +110 -122
  552. package/build/features/node/NodeFeature.js.map +1 -1
  553. package/build/features/node/actions/CreateAction.js +9 -11
  554. package/build/features/node/actions/CreateAction.js.map +1 -1
  555. package/build/features/node/actions/UpdateDependenciesAction.js +140 -113
  556. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  557. package/build/features/node/actions/UpgradeAction.js +70 -76
  558. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  559. package/build/features/node/writers/NodeWriter.js +29 -31
  560. package/build/features/node/writers/NodeWriter.js.map +1 -1
  561. package/build/features/onboard/OnboardFeature.js +77 -87
  562. package/build/features/onboard/OnboardFeature.js.map +1 -1
  563. package/build/features/onboard/ScriptLoader.js +31 -33
  564. package/build/features/onboard/ScriptLoader.js.map +1 -1
  565. package/build/features/onboard/ScriptPlayer.js +80 -86
  566. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  567. package/build/features/onboard/actions/OnboardAction.js +36 -38
  568. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  569. package/build/features/onboard/scripts/onboarding.first.script.js +68 -80
  570. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  571. package/build/features/onboard/scripts/onboarding.immersive.script.js +24 -28
  572. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  573. package/build/features/onboard/scripts/onboarding.returning.script.js +42 -44
  574. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  575. package/build/features/onboard/scripts/onboarding.short.script.js +38 -48
  576. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  577. package/build/features/onboard/scripts/todo/todo.create.skill.script.js +9 -11
  578. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  579. package/build/features/onboard/scripts/todo/todo.test.script.js +7 -9
  580. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  581. package/build/features/onboard/scripts/wrongCommand.script.js +40 -42
  582. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  583. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  584. package/build/features/organization/OrganizationFeature.js.map +1 -1
  585. package/build/features/organization/actions/CreateAction.js +18 -20
  586. package/build/features/organization/actions/CreateAction.js.map +1 -1
  587. package/build/features/organization/actions/InstallAction.js +81 -83
  588. package/build/features/organization/actions/InstallAction.js.map +1 -1
  589. package/build/features/organization/stores/OrganizationStore.js +101 -111
  590. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  591. package/build/features/permission/PermissionFeature.js +73 -79
  592. package/build/features/permission/PermissionFeature.js.map +1 -1
  593. package/build/features/permission/actions/CreateAction.js +23 -25
  594. package/build/features/permission/actions/CreateAction.js.map +1 -1
  595. package/build/features/permission/actions/SyncAction.js +50 -54
  596. package/build/features/permission/actions/SyncAction.js.map +1 -1
  597. package/build/features/permission/stores/PermissionStore.js +100 -104
  598. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  599. package/build/features/permission/writers/PermissionWriter.js +57 -63
  600. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  601. package/build/features/person/PersonFeature.js.map +1 -1
  602. package/build/features/person/actions/LoginAction.js +69 -71
  603. package/build/features/person/actions/LoginAction.js.map +1 -1
  604. package/build/features/person/actions/LogoutAction.js +21 -23
  605. package/build/features/person/actions/LogoutAction.js.map +1 -1
  606. package/build/features/person/actions/WhoamiAction.js +24 -26
  607. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  608. package/build/features/polish/PolishFeature.js.map +1 -1
  609. package/build/features/polish/actions/SetupAction.js +23 -25
  610. package/build/features/polish/actions/SetupAction.js.map +1 -1
  611. package/build/features/polish/writers/PolishWriter.js +16 -18
  612. package/build/features/polish/writers/PolishWriter.js.map +1 -1
  613. package/build/features/sandbox/SandboxFeature.js +20 -22
  614. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  615. package/build/features/sandbox/actions/SetupAction.js +42 -44
  616. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  617. package/build/features/sandbox/writers/SandboxWriter.js +9 -11
  618. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  619. package/build/features/schema/SchemaFeature.js +82 -90
  620. package/build/features/schema/SchemaFeature.js.map +1 -1
  621. package/build/features/schema/ValueTypeBuilder.js +26 -28
  622. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  623. package/build/features/schema/actions/CreateAction.js +48 -50
  624. package/build/features/schema/actions/CreateAction.js.map +1 -1
  625. package/build/features/schema/actions/SyncAction.js +260 -270
  626. package/build/features/schema/actions/SyncAction.js.map +1 -1
  627. package/build/features/schema/actions/SyncFieldsAction.js +42 -44
  628. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  629. package/build/features/schema/services/SchemaService.js +24 -26
  630. package/build/features/schema/services/SchemaService.js.map +1 -1
  631. package/build/features/schema/stores/SchemaStore.js +205 -219
  632. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  633. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  634. package/build/features/schema/utilities/schemaDisk.utility.js +15 -17
  635. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  636. package/build/features/schema/utilities/schemaGenerator.utility.js +40 -42
  637. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  638. package/build/features/schema/writers/SchemaWriter.js +173 -185
  639. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  640. package/build/features/skill/SkillFeature.js +99 -112
  641. package/build/features/skill/SkillFeature.js.map +1 -1
  642. package/build/features/skill/actions/BootAction.js +92 -96
  643. package/build/features/skill/actions/BootAction.js.map +1 -1
  644. package/build/features/skill/actions/CreateAction.js +9 -11
  645. package/build/features/skill/actions/CreateAction.js.map +1 -1
  646. package/build/features/skill/actions/DashboardAction.js +8 -10
  647. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  648. package/build/features/skill/actions/LoginAction.js +122 -124
  649. package/build/features/skill/actions/LoginAction.js.map +1 -1
  650. package/build/features/skill/actions/RebuildAction.js +33 -35
  651. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  652. package/build/features/skill/actions/RegisterAction.js +38 -40
  653. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  654. package/build/features/skill/stores/SkillStore.d.ts +2 -2
  655. package/build/features/skill/stores/SkillStore.js +198 -216
  656. package/build/features/skill/stores/SkillStore.js.map +1 -1
  657. package/build/features/skill/updaters/Updater.js +38 -40
  658. package/build/features/skill/updaters/Updater.js.map +1 -1
  659. package/build/features/skill/writers/SkillWriter.js +15 -17
  660. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  661. package/build/features/store/StoreFeature.js +50 -56
  662. package/build/features/store/StoreFeature.js.map +1 -1
  663. package/build/features/store/actions/CreateAction.js +29 -31
  664. package/build/features/store/actions/CreateAction.js.map +1 -1
  665. package/build/features/store/actions/SyncAction.js +35 -37
  666. package/build/features/store/actions/SyncAction.js.map +1 -1
  667. package/build/features/store/stores/StoreStore.js +39 -41
  668. package/build/features/store/stores/StoreStore.js.map +1 -1
  669. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js +1 -1
  670. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  671. package/build/features/store/writers/StoreWriter.js +65 -73
  672. package/build/features/store/writers/StoreWriter.js.map +1 -1
  673. package/build/features/test/TestFeature.js +98 -102
  674. package/build/features/test/TestFeature.js.map +1 -1
  675. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  676. package/build/features/test/TestReporter.d.ts +19 -19
  677. package/build/features/test/TestReporter.js +74 -82
  678. package/build/features/test/TestReporter.js.map +1 -1
  679. package/build/features/test/TestRunner.js +82 -88
  680. package/build/features/test/TestRunner.js.map +1 -1
  681. package/build/features/test/actions/CreateAction.js +145 -153
  682. package/build/features/test/actions/CreateAction.js.map +1 -1
  683. package/build/features/test/actions/SetupAction.js +37 -39
  684. package/build/features/test/actions/SetupAction.js.map +1 -1
  685. package/build/features/test/actions/TestAction.js +203 -213
  686. package/build/features/test/actions/TestAction.js.map +1 -1
  687. package/build/features/test/test.types.d.ts +1 -1
  688. package/build/features/test/test.types.js.map +1 -1
  689. package/build/features/test/writers/TestWriter.js +17 -19
  690. package/build/features/test/writers/TestWriter.js.map +1 -1
  691. package/build/features/universalDevDependencies.js.map +1 -1
  692. package/build/features/universalFileDescriptions.js.map +1 -1
  693. package/build/features/universalScripts.js.map +1 -1
  694. package/build/features/validateAndNormalize.utility.js.map +1 -1
  695. package/build/features/view/ViewFeature.js +52 -58
  696. package/build/features/view/ViewFeature.js.map +1 -1
  697. package/build/features/view/actions/CreateAction.js +64 -66
  698. package/build/features/view/actions/CreateAction.js.map +1 -1
  699. package/build/features/view/actions/CreateThemeAction.js +35 -37
  700. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  701. package/build/features/view/actions/SyncAction.js +61 -63
  702. package/build/features/view/actions/SyncAction.js.map +1 -1
  703. package/build/features/view/actions/WatchAction.d.ts +1 -0
  704. package/build/features/view/actions/WatchAction.js +26 -27
  705. package/build/features/view/actions/WatchAction.js.map +1 -1
  706. package/build/features/view/stores/ViewStore.js +35 -37
  707. package/build/features/view/stores/ViewStore.js.map +1 -1
  708. package/build/features/view/writers/ViewWriter.js +47 -51
  709. package/build/features/view/writers/ViewWriter.js.map +1 -1
  710. package/build/features/vscode/VsCodeFeature.js +18 -20
  711. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  712. package/build/features/vscode/actions/SetupAction.js +173 -183
  713. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  714. package/build/features/vscode/services/VsCodeService.js +63 -69
  715. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  716. package/build/features/vscode/writers/VsCodeWriter.js +12 -14
  717. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  718. package/build/features/watch/WatchFeature.js +77 -88
  719. package/build/features/watch/WatchFeature.js.map +1 -1
  720. package/build/index.js +2 -2
  721. package/build/index.js.map +1 -1
  722. package/build/interfaces/SpyInterface.d.ts +1 -0
  723. package/build/interfaces/SpyInterface.js +139 -148
  724. package/build/interfaces/SpyInterface.js.map +1 -1
  725. package/build/interfaces/TerminalInterface.d.ts +1 -0
  726. package/build/interfaces/TerminalInterface.js +196 -207
  727. package/build/interfaces/TerminalInterface.js.map +1 -1
  728. package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -1
  729. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  730. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  731. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  732. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  733. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  734. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  735. package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -1
  736. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  737. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  738. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  739. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  740. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  741. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  742. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  743. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  744. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  745. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  746. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  747. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  748. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  749. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  750. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  751. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  752. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  753. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  754. package/build/services/BuildService.js +16 -18
  755. package/build/services/BuildService.js.map +1 -1
  756. package/build/services/CommandService.js +107 -109
  757. package/build/services/CommandService.js.map +1 -1
  758. package/build/services/DependencyService.js.map +1 -1
  759. package/build/services/GameService.js +49 -51
  760. package/build/services/GameService.js.map +1 -1
  761. package/build/services/ImportService.js +186 -194
  762. package/build/services/ImportService.js.map +1 -1
  763. package/build/services/LintService.js +81 -83
  764. package/build/services/LintService.js.map +1 -1
  765. package/build/services/PkgService.js +85 -89
  766. package/build/services/PkgService.js.map +1 -1
  767. package/build/services/ServiceFactory.js.map +1 -1
  768. package/build/services/TypeCheckerService.js +7 -9
  769. package/build/services/TypeCheckerService.js.map +1 -1
  770. package/build/stores/AbstractLocalStore.js.map +1 -1
  771. package/build/stores/AbstractStore.js +6 -8
  772. package/build/stores/AbstractStore.js.map +1 -1
  773. package/build/stores/StoreFactory.js.map +1 -1
  774. package/build/templateItemBuilders/EventTemplateItemBuilder.js +1 -1
  775. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  776. package/build/templateItemBuilders/FieldTemplateItemBuilder.js +1 -1
  777. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  778. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js +1 -1
  779. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  780. package/build/tests/AbstractCliTest.d.ts +2 -3
  781. package/build/tests/AbstractCliTest.js +236 -266
  782. package/build/tests/AbstractCliTest.js.map +1 -1
  783. package/build/tests/AbstractErrorTest.d.ts +1 -1
  784. package/build/tests/AbstractErrorTest.js +19 -21
  785. package/build/tests/AbstractErrorTest.js.map +1 -1
  786. package/build/tests/AbstractEventTest.d.ts +3 -3
  787. package/build/tests/AbstractEventTest.js +89 -97
  788. package/build/tests/AbstractEventTest.js.map +1 -1
  789. package/build/tests/AbstractSchemaTest.d.ts +3 -3
  790. package/build/tests/AbstractSchemaTest.js +92 -98
  791. package/build/tests/AbstractSchemaTest.js.map +1 -1
  792. package/build/tests/AbstractSkillTest.d.ts +1 -1
  793. package/build/tests/AbstractSkillTest.js +40 -46
  794. package/build/tests/AbstractSkillTest.js.map +1 -1
  795. package/build/tests/AbstractTestTest.d.ts +1 -1
  796. package/build/tests/AbstractTestTest.js +14 -16
  797. package/build/tests/AbstractTestTest.js.map +1 -1
  798. package/build/tests/CommandFaker.js.map +1 -1
  799. package/build/tests/JestJsonParser.js +5 -2
  800. package/build/tests/JestJsonParser.js.map +1 -1
  801. package/build/tests/MockProgramFactory.js +11 -15
  802. package/build/tests/MockProgramFactory.js.map +1 -1
  803. package/build/tests/buildTestCache.js +223 -243
  804. package/build/tests/buildTestCache.js.map +1 -1
  805. package/build/tests/cleanTestCache.js.map +1 -1
  806. package/build/tests/cleanTestData.js +70 -72
  807. package/build/tests/cleanTestData.js.map +1 -1
  808. package/build/tests/constants.js.map +1 -1
  809. package/build/tests/fixtures/FeatureFixture.d.ts +15 -16
  810. package/build/tests/fixtures/FeatureFixture.js +142 -154
  811. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  812. package/build/tests/fixtures/MercuryFixture.js +9 -11
  813. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  814. package/build/tests/fixtures/OrganizationFixture.js +62 -68
  815. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  816. package/build/tests/fixtures/PersonFixture.js +69 -73
  817. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  818. package/build/tests/fixtures/SkillFixture.js +123 -137
  819. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  820. package/build/tests/fixtures/ViewFixture.js +13 -15
  821. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  822. package/build/tests/utilities/test.utility.js.map +1 -1
  823. package/build/tests/utilities/uiAssert.utility.js +31 -35
  824. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  825. package/build/types/cli.types.d.ts +26 -0
  826. package/build/types/cli.types.js.map +1 -1
  827. package/build/types/graphicsInterface.types.js.map +1 -1
  828. package/build/updaters/ScriptUpdater.js +78 -80
  829. package/build/updaters/ScriptUpdater.js.map +1 -1
  830. package/build/utilities/action.utility.js.map +1 -1
  831. package/build/utilities/apiClient.utility.js.map +1 -1
  832. package/build/utilities/argParser.utility.js +1 -1
  833. package/build/utilities/argParser.utility.js.map +1 -1
  834. package/build/utilities/commander.utility.js.map +1 -1
  835. package/build/utilities/duration.utility.js.map +1 -1
  836. package/build/utilities/eventContractCleaner.utility.js +1 -1
  837. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  838. package/build/utilities/form.utility.js.map +1 -1
  839. package/build/utilities/introspection.utility.js +3 -3
  840. package/build/utilities/introspection.utility.js.map +1 -1
  841. package/build/utilities/isCi.js.map +1 -1
  842. package/build/utilities/tsConfig.utility.js.map +1 -1
  843. package/build/utilities/ui.utility.js.map +1 -1
  844. package/build/widgets/Theme.js.map +1 -1
  845. package/build/widgets/WidgetFactory.js.map +1 -1
  846. package/build/widgets/keySelectChoices.js.map +1 -1
  847. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  848. package/build/widgets/terminalKit/TkBaseWidget.js +8 -10
  849. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  850. package/build/widgets/terminalKit/TkInputWidget.js +16 -20
  851. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  852. package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
  853. package/build/widgets/terminalKit/TkLayoutWidget.js +6 -8
  854. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  855. package/build/widgets/terminalKit/TkMenuBarWidget.js +1 -1
  856. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  857. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  858. package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
  859. package/build/widgets/terminalKit/TkTextWidget.js +13 -15
  860. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  861. package/build/widgets/terminalKit/TkWindowWidget.js +39 -45
  862. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  863. package/build/widgets/terminalKit/termKit.utility.js +1 -1
  864. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  865. package/build/widgets/types/button.types.js.map +1 -1
  866. package/build/widgets/types/factory.types.js.map +1 -1
  867. package/build/widgets/types/input.types.js.map +1 -1
  868. package/build/widgets/types/menuBar.types.js.map +1 -1
  869. package/build/widgets/types/popup.types.js.map +1 -1
  870. package/build/widgets/types/text.types.js.map +1 -1
  871. package/build/widgets/types/window.types.js.map +1 -1
  872. package/build/widgets/widget.utilities.js.map +1 -1
  873. package/build/writers/AbstractWriter.js +160 -166
  874. package/build/writers/AbstractWriter.js.map +1 -1
  875. package/build/writers/WriterFactory.js.map +1 -1
  876. package/junit.xml +7 -0
  877. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  878. package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +1 -1
  879. package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map +1 -1
  880. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +1 -1
  881. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
  882. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts.map +1 -1
  883. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +1 -3
  884. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map +1 -1
  885. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +2 -2
  886. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
  887. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  888. package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +62 -7
  889. package/node_modules/@typescript-eslint/types/_ts3.4/dist/parser-options.d.ts +6 -2
  890. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +62 -7
  891. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
  892. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
  893. package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +6 -2
  894. package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +1 -1
  895. package/node_modules/@typescript-eslint/types/package.json +4 -4
  896. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/clear-caches.d.ts +10 -0
  897. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/describeFilePath.d.ts +2 -0
  898. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/shared.d.ts +7 -1
  899. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/index.d.ts +2 -2
  900. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/ExpiringCache.d.ts +17 -0
  901. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/createParseSettings.d.ts +1 -0
  902. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/getProjectConfigFiles.d.ts +12 -0
  903. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/index.d.ts +6 -1
  904. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/resolveProjectList.d.ts +19 -0
  905. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser-options.d.ts +22 -3
  906. package/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.d.ts +10 -0
  907. package/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.d.ts.map +1 -0
  908. package/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.js +24 -0
  909. package/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.js.map +1 -0
  910. package/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js +1 -1
  911. package/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map +1 -1
  912. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
  913. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +38 -12
  914. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
  915. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map +1 -1
  916. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +5 -10
  917. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +1 -1
  918. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.d.ts +2 -0
  919. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.d.ts.map +1 -0
  920. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.js +32 -0
  921. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.js.map +1 -0
  922. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.d.ts.map +1 -1
  923. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js +2 -15
  924. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js.map +1 -1
  925. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts +7 -1
  926. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map +1 -1
  927. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js +15 -1
  928. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map +1 -1
  929. package/node_modules/@typescript-eslint/typescript-estree/dist/getModifiers.js +1 -1
  930. package/node_modules/@typescript-eslint/typescript-estree/dist/getModifiers.js.map +1 -1
  931. package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts +2 -2
  932. package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map +1 -1
  933. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +2 -4
  934. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +1 -1
  935. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.d.ts +17 -0
  936. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.d.ts.map +1 -0
  937. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.js +62 -0
  938. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.js.map +1 -0
  939. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.d.ts +1 -0
  940. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.d.ts.map +1 -1
  941. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js +22 -48
  942. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js.map +1 -1
  943. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.d.ts +12 -0
  944. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.d.ts.map +1 -0
  945. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.js +70 -0
  946. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.js.map +1 -0
  947. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts +6 -1
  948. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts.map +1 -1
  949. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.d.ts +19 -0
  950. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.d.ts.map +1 -0
  951. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.js +103 -0
  952. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.js.map +1 -0
  953. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +1 -1
  954. package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +22 -3
  955. package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +1 -1
  956. package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js +1 -1
  957. package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map +1 -1
  958. package/node_modules/@typescript-eslint/typescript-estree/package.json +4 -5
  959. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  960. package/package.json +592 -597
  961. package/src/.DS_Store +0 -0
  962. package/src/__tests__/behavioral/BootingTheCli.test.ts +32 -2
  963. package/src/__tests__/behavioral/CreatingAConversationTopic.test.ts +1 -1
  964. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +1 -1
  965. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +1 -2
  966. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +11 -0
  967. package/src/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.ts +1 -1
  968. package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +1 -1
  969. package/src/__tests__/behavioral/upgrading/UpgradingASkill.test.ts +1 -2
  970. package/src/__tests__/implementation/TestRunner.test.ts +1 -1
  971. package/src/boot.ts +92 -0
  972. package/src/{cli.ts → cli/Cli.ts} +48 -150
  973. package/src/features/AbstractFeature.ts +1 -1
  974. package/src/features/FeatureInstaller.ts +3 -3
  975. package/src/features/error/ParentTestFinder.ts +1 -1
  976. package/src/features/event/builders/EventContractBuilder.ts +1 -1
  977. package/src/features/event/stores/EventStore.ts +4 -2
  978. package/src/features/event/stores/ListenerStore.ts +1 -1
  979. package/src/features/onboard/ScriptLoader.ts +1 -1
  980. package/src/features/permission/PermissionFeature.ts +3 -1
  981. package/src/features/permission/stores/PermissionStore.ts +1 -1
  982. package/src/features/schema/stores/SchemaStore.ts +1 -1
  983. package/src/features/schema/utilities/schemaGenerator.utility.ts +1 -1
  984. package/src/features/skill/SkillFeature.ts +1 -1
  985. package/src/features/store/stores/StoreStore.ts +1 -1
  986. package/src/features/test/TestReporter.ts +25 -25
  987. package/src/features/test/test.types.ts +8 -1
  988. package/src/features/view/actions/SyncAction.ts +1 -1
  989. package/src/features/view/actions/WatchAction.ts +8 -3
  990. package/src/index.ts +1 -1
  991. package/src/interfaces/SpyInterface.ts +2 -0
  992. package/src/interfaces/TerminalInterface.ts +5 -1
  993. package/src/tests/AbstractCliTest.ts +2 -3
  994. package/src/tests/AbstractSchemaTest.ts +1 -1
  995. package/src/tests/AbstractSkillTest.ts +1 -1
  996. package/src/tests/JestJsonParser.ts +4 -1
  997. package/src/tests/fixtures/FeatureFixture.ts +24 -20
  998. package/src/tests/fixtures/MercuryFixture.ts +1 -1
  999. package/src/types/cli.types.ts +30 -0
  1000. package/yarn-error.log +12174 -0
  1001. package/LICENSE +0 -21
  1002. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +0 -17
  1003. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +0 -137
  1004. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +0 -1
  1005. package/build/cli.js +0 -690
  1006. package/build/cli.js.map +0 -1
  1007. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/gitignore.js +0 -120
  1008. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.d.ts +0 -186
  1009. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.js +0 -181
  1010. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/license +0 -9
  1011. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/package.json +0 -82
  1012. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/readme.md +0 -170
  1013. package/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/stream-utils.js +0 -46
  1014. package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +0 -46
@@ -1 +1 @@
1
- {"version":3,"file":"ActionQuestionAsker.js","names":["ActionOptionAsker","options","ui","featureInstaller","actionCode","feature","shouldAutoHandleDependencies","getDependenciesNotInstalled","notInstalled","response","installCount","length","renderLine","generateConfirmInstallMessage","toInstall","shift","Error","isInstalled","code","wasInstalled","isMarkedAsSkipped","installOrMarkAsSkippedMissingDependency","installResults","merge","clear","waitForEnter","getCommandName","dependencies","getFeatureDependencies","Promise","all","map","dependency","getFeature","installedStatuses","filter","installOptions","optionsSchema","collectAnswers","answers","action","schema","SpruceError","featureCode","friendlyMessage","isFirstUpdate","install","installFeatureDependencies","features","didUpdateHandler","message","renderHeading","startLoading","stopLoading","renderHero","CLI_HERO","renderHeadline","isRequired","confirm","nameReadable","command","prompt","type","defaultValue","label","choices","value","markAsSkippedThisRun","markAsPermanentlySkipped","installResponse","undefined","cleaned","Object","keys","forEach","key","fieldNames","fields","providedFieldNames","fieldsToPresent","name","indexOf","isPrivate","featureForm","FormComponent","initialValues","onWillAskQuestion","formUtil","onWillAskQuestionHandler","bind","present","showOverview","featuresUtil","generateCommand","required","optional","feat","push","requiredMessage","s","optionalMessage","areIs","mixedMessage","array"],"sources":["../../src/features/ActionQuestionAsker.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport merge from 'lodash/merge'\nimport FormComponent from '../components/FormComponent'\nimport { CLI_HERO } from '../constants'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport formUtil from '../utilities/form.utility'\nimport AbstractFeature, { FeatureDependency } from './AbstractFeature'\nimport featuresUtil from './feature.utilities'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureAction,\n\tFeatureMap,\n} from './features.types'\n\nexport default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {\n\tprivate ui: GraphicsInterface\n\tprivate featureInstaller: FeatureInstaller\n\tprivate actionCode: string\n\tprivate feature: AbstractFeature\n\tprivate shouldAutoHandleDependencies = true\n\n\tpublic constructor(options: {\n\t\tui: GraphicsInterface\n\t\tfeatureInstaller: FeatureInstaller\n\t\tactionCode: string\n\t\tfeature: AbstractFeature\n\t\tshouldAutoHandleDependencies: boolean\n\t}) {\n\t\tthis.ui = options.ui\n\t\tthis.featureInstaller = options.featureInstaller\n\t\tthis.actionCode = options.actionCode\n\t\tthis.feature = options.feature\n\t\tthis.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies\n\t}\n\n\tpublic async installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse> {\n\t\tconst notInstalled = await this.getDependenciesNotInstalled()\n\n\t\tlet response: FeatureInstallResponse = {}\n\t\tlet installCount = 0\n\n\t\tif (notInstalled.length > 0) {\n\t\t\tthis.ui.renderLine(\n\t\t\t\tthis.generateConfirmInstallMessage(notInstalled) + '\\n'\n\t\t\t)\n\n\t\t\twhile (notInstalled.length > 0) {\n\t\t\t\tconst toInstall = notInstalled.shift()\n\t\t\t\tif (!toInstall) {\n\t\t\t\t\t// for typescript\n\t\t\t\t\tthrow new Error('Dependent feature error')\n\t\t\t\t}\n\n\t\t\t\tconst wasInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\ttoInstall.code\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\t!wasInstalled &&\n\t\t\t\t\t!this.featureInstaller.isMarkedAsSkipped(toInstall.code)\n\t\t\t\t) {\n\t\t\t\t\tconst installResults =\n\t\t\t\t\t\tawait this.installOrMarkAsSkippedMissingDependency(toInstall)\n\t\t\t\t\tresponse = merge(response, installResults)\n\t\t\t\t\tinstallCount++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (installCount > 0) {\n\t\t\t\tthis.ui.clear()\n\n\t\t\t\tawait this.ui.waitForEnter(\n\t\t\t\t\t`Phew, now that we're done with that, lets get back to ${this.getCommandName()}!`\n\t\t\t\t)\n\n\t\t\t\tthis.ui.clear()\n\t\t\t}\n\t\t}\n\n\t\treturn response\n\t}\n\n\tprivate async getDependenciesNotInstalled(): Promise<\n\t\tFeatureDependencyWithFeature[]\n\t> {\n\t\tconst dependencies = this.featureInstaller.getFeatureDependencies(\n\t\t\tthis.feature.code\n\t\t)\n\n\t\tconst installedStatuses = await Promise.all(\n\t\t\tdependencies.map(async (dependency) => {\n\t\t\t\tconst feature = this.featureInstaller.getFeature(dependency.code)\n\n\t\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\tdependency.code\n\t\t\t\t)\n\n\t\t\t\tconst isMarkedAsSkipped = this.featureInstaller.isMarkedAsSkipped(\n\t\t\t\t\tfeature.code\n\t\t\t\t)\n\n\t\t\t\tif (isMarkedAsSkipped) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\treturn !isInstalled ? { feature, ...dependency } : null\n\t\t\t})\n\t\t)\n\n\t\tconst notInstalled = installedStatuses.filter(\n\t\t\t(feature) => !!feature\n\t\t) as FeatureDependencyWithFeature[]\n\n\t\treturn notInstalled\n\t}\n\n\tpublic async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(\n\t\tisInstalled: boolean,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet installOptions = { ...options }\n\n\t\tif (!isInstalled) {\n\t\t\tif (this.feature.optionsSchema) {\n\t\t\t\tconst answers = await this.collectAnswers(\n\t\t\t\t\tthis.feature.optionsSchema,\n\t\t\t\t\toptions\n\t\t\t\t)\n\n\t\t\t\tinstallOptions = { ...installOptions, ...answers }\n\t\t\t}\n\t\t}\n\t\treturn installOptions\n\t}\n\n\tpublic async askAboutMissingActionOptions(\n\t\taction: FeatureAction<Schema>,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet answers\n\n\t\tconst schema = action.optionsSchema\n\t\tif (schema) {\n\t\t\tanswers = await this.collectAnswers(schema, options)\n\t\t}\n\t\treturn answers\n\t}\n\n\tpublic async installOurFeature(installOptions: Record<string, any>) {\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: this.feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdidUpdateHandler: (message) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate renderHeading(code: string) {\n\t\tthis.ui.clear()\n\t\tthis.ui.renderHero(CLI_HERO)\n\t\tthis.ui.renderHeadline(`Installing ${code} feature...`)\n\t}\n\n\tprivate async installOrMarkAsSkippedMissingDependency(\n\t\ttoInstall: FeatureDependencyWithFeature\n\t): Promise<FeatureInstallResponse> {\n\t\tconst { feature, isRequired } = toInstall\n\n\t\tif (isRequired) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t`Install the ${feature.nameReadable} feature?`\n\t\t\t)\n\n\t\t\tif (!confirm) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'COMMAND_ABORTED',\n\t\t\t\t\tcommand: this.getCommandName(),\n\t\t\t\t})\n\t\t\t}\n\t\t} else {\n\t\t\tconst response = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tdefaultValue: 'yes',\n\t\t\t\tlabel: `Install the ${feature.nameReadable} feature? (optional)`,\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: 'yes',\n\t\t\t\t\t\t\tlabel: 'Yes',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'skip',\n\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'alwaysSkip',\n\t\t\t\t\t\t\tlabel: 'Always skip',\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\tif (response !== 'yes') {\n\t\t\t\tthis.ui.renderLine(\n\t\t\t\t\tresponse === 'alwaysSkip'\n\t\t\t\t\t\t? 'Skipping forever!'\n\t\t\t\t\t\t: 'Cool, skipping for now.'\n\t\t\t\t)\n\n\t\t\t\tif (response === 'skip') {\n\t\t\t\t\tthis.featureInstaller.markAsSkippedThisRun(feature.code)\n\t\t\t\t} else {\n\t\t\t\t\tthis.featureInstaller.markAsPermanentlySkipped(feature.code)\n\t\t\t\t}\n\n\t\t\t\tconst installResponse: FeatureInstallResponse = {}\n\t\t\t\treturn installResponse\n\t\t\t}\n\t\t}\n\n\t\tlet installOptions = {}\n\n\t\tif (feature.optionsSchema) {\n\t\t\tinstallOptions = await this.collectAnswers(\n\t\t\t\tfeature.optionsSchema,\n\t\t\t\tundefined\n\t\t\t)\n\t\t}\n\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tdidUpdateHandler: (message: string) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate async collectAnswers<S extends Schema>(\n\t\tschema: S,\n\t\toptions: FeatureCommandExecuteOptions<F, S> | undefined\n\t) {\n\t\tconst cleaned: Record<string, any> = {}\n\t\tObject.keys(options ?? {}).forEach((key) => {\n\t\t\t//@ts-ignore\n\t\t\tif (typeof options[key] !== 'undefined') {\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleaned[key] = options[key]\n\t\t\t}\n\t\t})\n\n\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\tconst providedFieldNames = cleaned ? Object.keys(cleaned ?? {}) : []\n\t\tconst fieldsToPresent = fieldNames.filter(\n\t\t\t(name) =>\n\t\t\t\tprovidedFieldNames.indexOf(name) === -1 &&\n\t\t\t\tschema.fields?.[name].isRequired === true &&\n\t\t\t\tschema.fields?.[name].isPrivate !== true\n\t\t)\n\n\t\tlet answers = {}\n\t\tif (fieldsToPresent.length > 0) {\n\t\t\tconst featureForm = new FormComponent<S>({\n\t\t\t\tui: this.ui,\n\t\t\t\tschema,\n\t\t\t\t//@ts-ignore\n\t\t\t\tinitialValues: cleaned,\n\t\t\t\tonWillAskQuestion: formUtil.onWillAskQuestionHandler.bind(\n\t\t\t\t\tformUtil\n\t\t\t\t) as any,\n\t\t\t})\n\n\t\t\tanswers = await featureForm.present({\n\t\t\t\tshowOverview: false,\n\t\t\t\t// @ts-ignore\n\t\t\t\tfields: fieldsToPresent,\n\t\t\t})\n\t\t}\n\n\t\treturn { ...(cleaned ?? {}), ...answers } as SchemaValues<S>\n\t}\n\n\tprivate getCommandName() {\n\t\treturn featuresUtil.generateCommand(this.feature.code, this.actionCode)\n\t}\n\n\tprivate generateConfirmInstallMessage(\n\t\tnotInstalled: FeatureDependencyWithFeature[]\n\t): string {\n\t\tconst required: FeatureDependencyWithFeature[] = []\n\t\tconst optional: FeatureDependencyWithFeature[] = []\n\n\t\tnotInstalled.forEach((feat) => {\n\t\t\tif (feat.isRequired) {\n\t\t\t\trequired.push(feat)\n\t\t\t} else {\n\t\t\t\toptional.push(feat)\n\t\t\t}\n\t\t})\n\n\t\tconst requiredMessage = `I'll need to install ${required.length} feature${s(\n\t\t\trequired\n\t\t)}.`\n\n\t\tconst optionalMessage = `there ${areIs(optional)} ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} that could be installed.`\n\n\t\tconst mixedMessage = `I found ${required.length} required and ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} to install.`\n\n\t\tlet message = mixedMessage\n\n\t\tif (optional.length === 0) {\n\t\t\tmessage = requiredMessage\n\t\t} else if (optional.length > 0 && required.length === 0) {\n\t\t\tmessage = optionalMessage\n\t\t}\n\n\t\treturn `Before you can run \\`${this.getCommandName()}\\`, ${message} Don't worry, I'll walk you through it!`\n\t}\n}\n\ntype FeatureCommandExecuteOptions<\n\tF extends FeatureCode,\n\tS extends Schema | undefined = FeatureMap[F]['optionsSchema']\n> = S extends Schema ? SchemaPartialValues<S> : undefined\n\ntype FeatureDependencyWithFeature = FeatureDependency & {\n\tfeature: AbstractFeature\n}\n\nfunction s(array: any[]) {\n\treturn array.length === 1 ? '' : ''\n}\n\nfunction areIs(array: any[]) {\n\treturn array.length === 1 ? 'is' : 'are'\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActionQuestionAsker.js","names":["_merge","_interopRequireDefault","require","_FormComponent","_constants","_SpruceError","_form","_feature","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","ActionOptionAsker","options","_classCallCheck2","ui","featureInstaller","actionCode","feature","shouldAutoHandleDependencies","_createClass2","value","_installOrMarkAsSkippedMissingDependencies","_asyncToGenerator2","_regenerator","mark","_callee","notInstalled","response","installCount","toInstall","wasInstalled","installResults","wrap","_callee$","_context","prev","next","getDependenciesNotInstalled","sent","renderLine","generateConfirmInstallMessage","shift","Error","isInstalled","code","isMarkedAsSkipped","installOrMarkAsSkippedMissingDependency","merge","clear","waitForEnter","concat","getCommandName","abrupt","stop","installOrMarkAsSkippedMissingDependencies","_getDependenciesNotInstalled","_callee3","_this","dependencies","installedStatuses","_callee3$","_context3","getFeatureDependencies","Promise","all","map","_ref","_callee2","dependency","_callee2$","_context2","getFeature","_x","_askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","_callee4","installOptions","answers","_callee4$","_context4","optionsSchema","collectAnswers","askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","_x2","_x3","_askAboutMissingActionOptions","_callee5","action","schema","_callee5$","_context5","askAboutMissingActionOptions","_x4","_x5","_installOurFeature","_callee6","_this2","isFirstUpdate","_callee6$","_context6","SpruceError","featureCode","friendlyMessage","install","installFeatureDependencies","features","didUpdateHandler","message","renderHeading","startLoading","stopLoading","installOurFeature","_x6","renderHero","CLI_HERO","renderHeadline","_installOrMarkAsSkippedMissingDependency","_callee7","_this3","isRequired","confirm","installResponse","_callee7$","_context7","nameReadable","command","prompt","type","defaultValue","label","choices","markAsSkippedThisRun","markAsPermanentlySkipped","undefined","_x7","_collectAnswers","_callee8","_schema$fields","cleaned","fieldNames","providedFieldNames","fieldsToPresent","featureForm","_callee8$","_context8","fields","name","_schema$fields2","_schema$fields3","indexOf","isPrivate","FormComponent","initialValues","onWillAskQuestion","formUtil","onWillAskQuestionHandler","bind","present","showOverview","_x8","_x9","featuresUtil","generateCommand","required","optional","feat","requiredMessage","s","optionalMessage","areIs","mixedMessage","exports","array"],"sources":["../../src/features/ActionQuestionAsker.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport merge from 'lodash/merge'\nimport FormComponent from '../components/FormComponent'\nimport { CLI_HERO } from '../constants'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport formUtil from '../utilities/form.utility'\nimport AbstractFeature, { FeatureDependency } from './AbstractFeature'\nimport featuresUtil from './feature.utilities'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureAction,\n\tFeatureMap,\n} from './features.types'\n\nexport default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {\n\tprivate ui: GraphicsInterface\n\tprivate featureInstaller: FeatureInstaller\n\tprivate actionCode: string\n\tprivate feature: AbstractFeature\n\tprivate shouldAutoHandleDependencies = true\n\n\tpublic constructor(options: {\n\t\tui: GraphicsInterface\n\t\tfeatureInstaller: FeatureInstaller\n\t\tactionCode: string\n\t\tfeature: AbstractFeature\n\t\tshouldAutoHandleDependencies: boolean\n\t}) {\n\t\tthis.ui = options.ui\n\t\tthis.featureInstaller = options.featureInstaller\n\t\tthis.actionCode = options.actionCode\n\t\tthis.feature = options.feature\n\t\tthis.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies\n\t}\n\n\tpublic async installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse> {\n\t\tconst notInstalled = await this.getDependenciesNotInstalled()\n\n\t\tlet response: FeatureInstallResponse = {}\n\t\tlet installCount = 0\n\n\t\tif (notInstalled.length > 0) {\n\t\t\tthis.ui.renderLine(\n\t\t\t\tthis.generateConfirmInstallMessage(notInstalled) + '\\n'\n\t\t\t)\n\n\t\t\twhile (notInstalled.length > 0) {\n\t\t\t\tconst toInstall = notInstalled.shift()\n\t\t\t\tif (!toInstall) {\n\t\t\t\t\t// for typescript\n\t\t\t\t\tthrow new Error('Dependent feature error')\n\t\t\t\t}\n\n\t\t\t\tconst wasInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\ttoInstall.code\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\t!wasInstalled &&\n\t\t\t\t\t!this.featureInstaller.isMarkedAsSkipped(toInstall.code)\n\t\t\t\t) {\n\t\t\t\t\tconst installResults =\n\t\t\t\t\t\tawait this.installOrMarkAsSkippedMissingDependency(toInstall)\n\t\t\t\t\tresponse = merge(response, installResults)\n\t\t\t\t\tinstallCount++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (installCount > 0) {\n\t\t\t\tthis.ui.clear()\n\n\t\t\t\tawait this.ui.waitForEnter(\n\t\t\t\t\t`Phew, now that we're done with that, lets get back to ${this.getCommandName()}!`\n\t\t\t\t)\n\n\t\t\t\tthis.ui.clear()\n\t\t\t}\n\t\t}\n\n\t\treturn response\n\t}\n\n\tprivate async getDependenciesNotInstalled(): Promise<\n\t\tFeatureDependencyWithFeature[]\n\t> {\n\t\tconst dependencies = this.featureInstaller.getFeatureDependencies(\n\t\t\tthis.feature.code\n\t\t)\n\n\t\tconst installedStatuses = await Promise.all(\n\t\t\tdependencies.map(async (dependency) => {\n\t\t\t\tconst feature = this.featureInstaller.getFeature(dependency.code)\n\n\t\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\tdependency.code\n\t\t\t\t)\n\n\t\t\t\tconst isMarkedAsSkipped = this.featureInstaller.isMarkedAsSkipped(\n\t\t\t\t\tfeature.code\n\t\t\t\t)\n\n\t\t\t\tif (isMarkedAsSkipped) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\treturn !isInstalled ? { feature, ...dependency } : null\n\t\t\t})\n\t\t)\n\n\t\tconst notInstalled = installedStatuses.filter(\n\t\t\t(feature) => !!feature\n\t\t) as FeatureDependencyWithFeature[]\n\n\t\treturn notInstalled\n\t}\n\n\tpublic async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(\n\t\tisInstalled: boolean,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet installOptions = { ...options }\n\n\t\tif (!isInstalled) {\n\t\t\tif (this.feature.optionsSchema) {\n\t\t\t\tconst answers = await this.collectAnswers(\n\t\t\t\t\tthis.feature.optionsSchema,\n\t\t\t\t\toptions\n\t\t\t\t)\n\n\t\t\t\tinstallOptions = { ...installOptions, ...answers }\n\t\t\t}\n\t\t}\n\t\treturn installOptions\n\t}\n\n\tpublic async askAboutMissingActionOptions(\n\t\taction: FeatureAction<Schema>,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet answers\n\n\t\tconst schema = action.optionsSchema\n\t\tif (schema) {\n\t\t\tanswers = await this.collectAnswers(schema, options)\n\t\t}\n\t\treturn answers\n\t}\n\n\tpublic async installOurFeature(installOptions: Record<string, any>) {\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: this.feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdidUpdateHandler: (message) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate renderHeading(code: string) {\n\t\tthis.ui.clear()\n\t\tthis.ui.renderHero(CLI_HERO)\n\t\tthis.ui.renderHeadline(`Installing ${code} feature...`)\n\t}\n\n\tprivate async installOrMarkAsSkippedMissingDependency(\n\t\ttoInstall: FeatureDependencyWithFeature\n\t): Promise<FeatureInstallResponse> {\n\t\tconst { feature, isRequired } = toInstall\n\n\t\tif (isRequired) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t`Install the ${feature.nameReadable} feature?`\n\t\t\t)\n\n\t\t\tif (!confirm) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'COMMAND_ABORTED',\n\t\t\t\t\tcommand: this.getCommandName(),\n\t\t\t\t})\n\t\t\t}\n\t\t} else {\n\t\t\tconst response = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tdefaultValue: 'yes',\n\t\t\t\tlabel: `Install the ${feature.nameReadable} feature? (optional)`,\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: 'yes',\n\t\t\t\t\t\t\tlabel: 'Yes',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'skip',\n\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'alwaysSkip',\n\t\t\t\t\t\t\tlabel: 'Always skip',\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\tif (response !== 'yes') {\n\t\t\t\tthis.ui.renderLine(\n\t\t\t\t\tresponse === 'alwaysSkip'\n\t\t\t\t\t\t? 'Skipping forever!'\n\t\t\t\t\t\t: 'Cool, skipping for now.'\n\t\t\t\t)\n\n\t\t\t\tif (response === 'skip') {\n\t\t\t\t\tthis.featureInstaller.markAsSkippedThisRun(feature.code)\n\t\t\t\t} else {\n\t\t\t\t\tthis.featureInstaller.markAsPermanentlySkipped(feature.code)\n\t\t\t\t}\n\n\t\t\t\tconst installResponse: FeatureInstallResponse = {}\n\t\t\t\treturn installResponse\n\t\t\t}\n\t\t}\n\n\t\tlet installOptions = {}\n\n\t\tif (feature.optionsSchema) {\n\t\t\tinstallOptions = await this.collectAnswers(\n\t\t\t\tfeature.optionsSchema,\n\t\t\t\tundefined\n\t\t\t)\n\t\t}\n\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tdidUpdateHandler: (message: string) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate async collectAnswers<S extends Schema>(\n\t\tschema: S,\n\t\toptions: FeatureCommandExecuteOptions<F, S> | undefined\n\t) {\n\t\tconst cleaned: Record<string, any> = {}\n\t\tObject.keys(options ?? {}).forEach((key) => {\n\t\t\t//@ts-ignore\n\t\t\tif (typeof options[key] !== 'undefined') {\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleaned[key] = options[key]\n\t\t\t}\n\t\t})\n\n\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\tconst providedFieldNames = cleaned ? Object.keys(cleaned ?? {}) : []\n\t\tconst fieldsToPresent = fieldNames.filter(\n\t\t\t(name) =>\n\t\t\t\tprovidedFieldNames.indexOf(name) === -1 &&\n\t\t\t\tschema.fields?.[name].isRequired === true &&\n\t\t\t\tschema.fields?.[name].isPrivate !== true\n\t\t)\n\n\t\tlet answers = {}\n\t\tif (fieldsToPresent.length > 0) {\n\t\t\tconst featureForm = new FormComponent<S>({\n\t\t\t\tui: this.ui,\n\t\t\t\tschema,\n\t\t\t\t//@ts-ignore\n\t\t\t\tinitialValues: cleaned,\n\t\t\t\tonWillAskQuestion: formUtil.onWillAskQuestionHandler.bind(\n\t\t\t\t\tformUtil\n\t\t\t\t) as any,\n\t\t\t})\n\n\t\t\tanswers = await featureForm.present({\n\t\t\t\tshowOverview: false,\n\t\t\t\t// @ts-ignore\n\t\t\t\tfields: fieldsToPresent,\n\t\t\t})\n\t\t}\n\n\t\treturn { ...(cleaned ?? {}), ...answers } as SchemaValues<S>\n\t}\n\n\tprivate getCommandName() {\n\t\treturn featuresUtil.generateCommand(this.feature.code, this.actionCode)\n\t}\n\n\tprivate generateConfirmInstallMessage(\n\t\tnotInstalled: FeatureDependencyWithFeature[]\n\t): string {\n\t\tconst required: FeatureDependencyWithFeature[] = []\n\t\tconst optional: FeatureDependencyWithFeature[] = []\n\n\t\tnotInstalled.forEach((feat) => {\n\t\t\tif (feat.isRequired) {\n\t\t\t\trequired.push(feat)\n\t\t\t} else {\n\t\t\t\toptional.push(feat)\n\t\t\t}\n\t\t})\n\n\t\tconst requiredMessage = `I'll need to install ${required.length} feature${s(\n\t\t\trequired\n\t\t)}.`\n\n\t\tconst optionalMessage = `there ${areIs(optional)} ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} that could be installed.`\n\n\t\tconst mixedMessage = `I found ${required.length} required and ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} to install.`\n\n\t\tlet message = mixedMessage\n\n\t\tif (optional.length === 0) {\n\t\t\tmessage = requiredMessage\n\t\t} else if (optional.length > 0 && required.length === 0) {\n\t\t\tmessage = optionalMessage\n\t\t}\n\n\t\treturn `Before you can run \\`${this.getCommandName()}\\`, ${message} Don't worry, I'll walk you through it!`\n\t}\n}\n\ntype FeatureCommandExecuteOptions<\n\tF extends FeatureCode,\n\tS extends Schema | undefined = FeatureMap[F]['optionsSchema']\n> = S extends Schema ? SchemaPartialValues<S> : undefined\n\ntype FeatureDependencyWithFeature = FeatureDependency & {\n\tfeature: AbstractFeature\n}\n\nfunction s(array: any[]) {\n\treturn array.length === 1 ? '' : ''\n}\n\nfunction areIs(array: any[]) {\n\treturn array.length === 1 ? 'is' : 'are'\n}\n"],"mappings":"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"}
@@ -20,7 +20,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
20
20
  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; }
21
21
  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; } } }; }
22
22
  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); }
23
- 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; }
23
+ 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; }
24
24
  var FeatureCommandAttacher = /*#__PURE__*/function () {
25
25
  function FeatureCommandAttacher(options) {
26
26
  (0, _classCallCheck2["default"])(this, FeatureCommandAttacher);
@@ -40,28 +40,26 @@ var FeatureCommandAttacher = /*#__PURE__*/function () {
40
40
  var _attachFeature = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(feature) {
41
41
  var actionCodes, _iterator, _step, actionCode;
42
42
  return _regenerator["default"].wrap(function _callee$(_context) {
43
- while (1) {
44
- switch (_context.prev = _context.next) {
45
- case 0:
46
- _context.next = 2;
47
- return feature.getAvailableActionCodes();
48
- case 2:
49
- actionCodes = _context.sent;
50
- _iterator = _createForOfIteratorHelper(actionCodes);
51
- try {
52
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
53
- actionCode = _step.value;
54
- this.attachCode(actionCode, feature);
55
- }
56
- } catch (err) {
57
- _iterator.e(err);
58
- } finally {
59
- _iterator.f();
43
+ while (1) switch (_context.prev = _context.next) {
44
+ case 0:
45
+ _context.next = 2;
46
+ return feature.getAvailableActionCodes();
47
+ case 2:
48
+ actionCodes = _context.sent;
49
+ _iterator = _createForOfIteratorHelper(actionCodes);
50
+ try {
51
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
52
+ actionCode = _step.value;
53
+ this.attachCode(actionCode, feature);
60
54
  }
61
- case 5:
62
- case "end":
63
- return _context.stop();
64
- }
55
+ } catch (err) {
56
+ _iterator.e(err);
57
+ } finally {
58
+ _iterator.f();
59
+ }
60
+ case 5:
61
+ case "end":
62
+ return _context.stop();
65
63
  }
66
64
  }, _callee, this);
67
65
  }));
@@ -97,33 +95,31 @@ var FeatureCommandAttacher = /*#__PURE__*/function () {
97
95
  totalTime,
98
96
  _args2 = arguments;
99
97
  return _regenerator["default"].wrap(function _callee2$(_context2) {
100
- while (1) {
101
- switch (_context2.prev = _context2.next) {
102
- case 0:
103
- _this.clearAndRenderMasthead(action);
104
- startTime = new Date().getTime();
105
- for (_len = _args2.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
106
- args[_key] = _args2[_key];
107
- }
108
- options = _commander["default"].mapIncomingToOptions.apply(_commander["default"], args.concat([(_feature$optionsSchem = feature.optionsSchema) !== null && _feature$optionsSchem !== void 0 ? _feature$optionsSchem : action.optionsSchema]));
109
- _context2.next = 6;
110
- return action.execute(_objectSpread({}, options));
111
- case 6:
112
- results = _context2.sent;
113
- endTime = new Date().getTime();
114
- totalTime = endTime - startTime;
115
- _this.clearAndRenderResults({
116
- featureCode: feature.code,
117
- actionCode: code,
118
- totalTime: totalTime,
119
- results: results,
120
- action: action
121
- });
122
- return _context2.abrupt("return", results);
123
- case 11:
124
- case "end":
125
- return _context2.stop();
126
- }
98
+ while (1) switch (_context2.prev = _context2.next) {
99
+ case 0:
100
+ _this.clearAndRenderMasthead(action);
101
+ startTime = new Date().getTime();
102
+ for (_len = _args2.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
103
+ args[_key] = _args2[_key];
104
+ }
105
+ options = _commander["default"].mapIncomingToOptions.apply(_commander["default"], args.concat([(_feature$optionsSchem = feature.optionsSchema) !== null && _feature$optionsSchem !== void 0 ? _feature$optionsSchem : action.optionsSchema]));
106
+ _context2.next = 6;
107
+ return action.execute(_objectSpread({}, options));
108
+ case 6:
109
+ results = _context2.sent;
110
+ endTime = new Date().getTime();
111
+ totalTime = endTime - startTime;
112
+ _this.clearAndRenderResults({
113
+ featureCode: feature.code,
114
+ actionCode: code,
115
+ totalTime: totalTime,
116
+ results: results,
117
+ action: action
118
+ });
119
+ return _context2.abrupt("return", results);
120
+ case 11:
121
+ case "end":
122
+ return _context2.stop();
127
123
  }
128
124
  }, _callee2);
129
125
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureCommandAttacher.js","names":["FeatureCommandAttacher","options","program","term","ui","actionExecuter","feature","getAvailableActionCodes","actionCodes","actionCode","attachCode","code","commandStr","featuresUtil","generateCommand","action","Action","aliases","commandAliases","length","shift","command","clearAndRenderMasthead","startTime","Date","getTime","args","commanderUtil","mapIncomingToOptions","optionsSchema","execute","results","endTime","totalTime","clearAndRenderResults","featureCode","description","schema","attachOptions","stopLoading","clear","renderActionSummary","headline","uiUtil","renderActionMastHead","entity","SchemaEntityFactory","Entity","theProgram","fields","getNamedFields","generateOptionAliases","forEach","field","name","option","hint","definition","defaultValue","undefined","err","SpruceError","fieldName","id","schemaId","originalError","friendlyMessage"],"sources":["../../src/features/FeatureCommandAttacher.ts"],"sourcesContent":["import { Schema, SchemaEntityFactory } from '@sprucelabs/schema'\nimport { CommanderStatic } from 'commander'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport commanderUtil from '../utilities/commander.utility'\nimport uiUtil from '../utilities/ui.utility'\nimport AbstractFeature from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport featuresUtil from './feature.utilities'\nimport { FeatureAction, FeatureActionResponse } from './features.types'\n\nexport interface OptionOverrides {\n\t[command: string]: Record<string, any>\n}\n\nexport interface BlockedCommands {\n\t[command: string]: string\n}\n\nexport default class FeatureCommandAttacher {\n\tprivate program: CommanderStatic['program']\n\tprivate ui: GraphicsInterface\n\tprivate actionExecuter: ActionExecuter\n\n\tpublic constructor(options: {\n\t\tprogram: CommanderStatic['program']\n\t\tui: GraphicsInterface\n\t\tactionExecuter: ActionExecuter\n\t}) {\n\t\tconst { program, ui: term, actionExecuter } = options\n\n\t\tthis.program = program\n\t\tthis.ui = term\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic async attachFeature(feature: AbstractFeature) {\n\t\tconst actionCodes = await feature.getAvailableActionCodes()\n\n\t\tfor (const actionCode of actionCodes) {\n\t\t\tthis.attachCode(actionCode, feature)\n\t\t}\n\t}\n\n\tprivate attachCode(code: string, feature: AbstractFeature) {\n\t\tlet commandStr = featuresUtil.generateCommand(feature.code, code)\n\t\tconst action = this.actionExecuter.Action(feature.code, code)\n\n\t\tconst aliases = action.commandAliases ? [...action.commandAliases] : []\n\n\t\tif (aliases.length > 0) {\n\t\t\tcommandStr = aliases.shift() as string\n\t\t}\n\n\t\tlet command = this.program.command(commandStr)\n\n\t\tif (aliases.length > 0) {\n\t\t\tcommand = command.aliases(aliases)\n\t\t}\n\n\t\tcommand = command.action(async (...args: any[]) => {\n\t\t\tthis.clearAndRenderMasthead(action)\n\t\t\tconst startTime = new Date().getTime()\n\n\t\t\tconst options = commanderUtil.mapIncomingToOptions(\n\t\t\t\t...args,\n\t\t\t\tfeature.optionsSchema ?? action.optionsSchema\n\t\t\t)\n\n\t\t\tconst results = await action.execute({\n\t\t\t\t...options,\n\t\t\t})\n\n\t\t\tconst endTime = new Date().getTime()\n\t\t\tconst totalTime = endTime - startTime\n\n\t\t\tthis.clearAndRenderResults({\n\t\t\t\tfeatureCode: feature.code,\n\t\t\t\tactionCode: code,\n\t\t\t\ttotalTime,\n\t\t\t\tresults,\n\t\t\t\taction,\n\t\t\t})\n\n\t\t\treturn results as any\n\t\t})\n\n\t\tconst description = action.optionsSchema?.description\n\n\t\tif (description) {\n\t\t\tcommand = command.description(description)\n\t\t}\n\n\t\tconst schema = action.optionsSchema\n\n\t\tif (schema) {\n\t\t\tthis.attachOptions(command, schema)\n\t\t}\n\t}\n\n\tprivate clearAndRenderResults(options: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t\ttotalTime: number\n\t\taction: FeatureAction\n\t\tresults: FeatureActionResponse\n\t}) {\n\t\tconst { featureCode, actionCode, results, totalTime, action } = options\n\n\t\tthis.ui.stopLoading()\n\t\tthis.ui.clear()\n\n\t\tthis.ui.renderActionSummary({\n\t\t\t//@ts-ignore\n\t\t\theadline: `${actionCode} finished!`,\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\ttotalTime,\n\t\t\taction,\n\t\t\t...results,\n\t\t})\n\t}\n\n\tprivate clearAndRenderMasthead(action: FeatureAction<Schema>) {\n\t\tuiUtil.renderActionMastHead(this.ui, action)\n\t}\n\n\tprivate attachOptions(command: CommanderStatic['program'], schema: Schema) {\n\t\tconst entity = SchemaEntityFactory.Entity(schema)\n\n\t\tlet theProgram = command\n\n\t\tconst fields = entity.getNamedFields()\n\t\tconst aliases = featuresUtil.generateOptionAliases(schema)\n\n\t\tfields.forEach(({ field, name }) => {\n\t\t\ttry {\n\t\t\t\ttheProgram = theProgram.option(\n\t\t\t\t\taliases[name],\n\t\t\t\t\tfield.hint,\n\t\t\t\t\tfield.definition.defaultValue\n\t\t\t\t\t\t? `${field.definition.defaultValue}`\n\t\t\t\t\t\t: undefined\n\t\t\t\t)\n\t\t\t} catch (err: any) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tcode: 'FAILED_TO_ATTACH_COMMAND',\n\t\t\t\t\tfieldName: name,\n\t\t\t\t\tid: entity.schemaId,\n\t\t\t\t\toriginalError: err,\n\t\t\t\t\tfriendlyMessage: `Could not attach option ${aliases[name]} from ${entity.schemaId}.${name} to the command`,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FeatureCommandAttacher.js","names":["_schema","require","_SpruceError","_interopRequireDefault","_commander","_ui","_feature","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","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","FeatureCommandAttacher","options","_classCallCheck2","program","term","ui","actionExecuter","_createClass2","_attachFeature","_asyncToGenerator2","_regenerator","mark","_callee","feature","actionCodes","_iterator","_step","actionCode","wrap","_callee$","_context","prev","getAvailableActionCodes","sent","attachCode","stop","attachFeature","_x","code","_this","_action$optionsSchema","commandStr","featuresUtil","generateCommand","action","Action","aliases","commandAliases","_toConsumableArray2","shift","command","_callee2","_feature$optionsSchem","startTime","_len","args","_key","results","endTime","totalTime","_args2","_callee2$","_context2","clearAndRenderMasthead","Date","getTime","commanderUtil","mapIncomingToOptions","concat","optionsSchema","execute","clearAndRenderResults","featureCode","abrupt","description","schema","attachOptions","stopLoading","clear","renderActionSummary","headline","uiUtil","renderActionMastHead","entity","SchemaEntityFactory","Entity","theProgram","fields","getNamedFields","generateOptionAliases","_ref2","field","option","hint","definition","defaultValue","undefined","SpruceError","fieldName","id","schemaId","originalError","friendlyMessage","exports"],"sources":["../../src/features/FeatureCommandAttacher.ts"],"sourcesContent":["import { Schema, SchemaEntityFactory } from '@sprucelabs/schema'\nimport { CommanderStatic } from 'commander'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport commanderUtil from '../utilities/commander.utility'\nimport uiUtil from '../utilities/ui.utility'\nimport AbstractFeature from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport featuresUtil from './feature.utilities'\nimport { FeatureAction, FeatureActionResponse } from './features.types'\n\nexport interface OptionOverrides {\n\t[command: string]: Record<string, any>\n}\n\nexport interface BlockedCommands {\n\t[command: string]: string\n}\n\nexport default class FeatureCommandAttacher {\n\tprivate program: CommanderStatic['program']\n\tprivate ui: GraphicsInterface\n\tprivate actionExecuter: ActionExecuter\n\n\tpublic constructor(options: {\n\t\tprogram: CommanderStatic['program']\n\t\tui: GraphicsInterface\n\t\tactionExecuter: ActionExecuter\n\t}) {\n\t\tconst { program, ui: term, actionExecuter } = options\n\n\t\tthis.program = program\n\t\tthis.ui = term\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic async attachFeature(feature: AbstractFeature) {\n\t\tconst actionCodes = await feature.getAvailableActionCodes()\n\n\t\tfor (const actionCode of actionCodes) {\n\t\t\tthis.attachCode(actionCode, feature)\n\t\t}\n\t}\n\n\tprivate attachCode(code: string, feature: AbstractFeature) {\n\t\tlet commandStr = featuresUtil.generateCommand(feature.code, code)\n\t\tconst action = this.actionExecuter.Action(feature.code, code)\n\n\t\tconst aliases = action.commandAliases ? [...action.commandAliases] : []\n\n\t\tif (aliases.length > 0) {\n\t\t\tcommandStr = aliases.shift() as string\n\t\t}\n\n\t\tlet command = this.program.command(commandStr)\n\n\t\tif (aliases.length > 0) {\n\t\t\tcommand = command.aliases(aliases)\n\t\t}\n\n\t\tcommand = command.action(async (...args: any[]) => {\n\t\t\tthis.clearAndRenderMasthead(action)\n\t\t\tconst startTime = new Date().getTime()\n\n\t\t\tconst options = commanderUtil.mapIncomingToOptions(\n\t\t\t\t...args,\n\t\t\t\tfeature.optionsSchema ?? action.optionsSchema\n\t\t\t)\n\n\t\t\tconst results = await action.execute({\n\t\t\t\t...options,\n\t\t\t})\n\n\t\t\tconst endTime = new Date().getTime()\n\t\t\tconst totalTime = endTime - startTime\n\n\t\t\tthis.clearAndRenderResults({\n\t\t\t\tfeatureCode: feature.code,\n\t\t\t\tactionCode: code,\n\t\t\t\ttotalTime,\n\t\t\t\tresults,\n\t\t\t\taction,\n\t\t\t})\n\n\t\t\treturn results as any\n\t\t})\n\n\t\tconst description = action.optionsSchema?.description\n\n\t\tif (description) {\n\t\t\tcommand = command.description(description)\n\t\t}\n\n\t\tconst schema = action.optionsSchema\n\n\t\tif (schema) {\n\t\t\tthis.attachOptions(command, schema)\n\t\t}\n\t}\n\n\tprivate clearAndRenderResults(options: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t\ttotalTime: number\n\t\taction: FeatureAction\n\t\tresults: FeatureActionResponse\n\t}) {\n\t\tconst { featureCode, actionCode, results, totalTime, action } = options\n\n\t\tthis.ui.stopLoading()\n\t\tthis.ui.clear()\n\n\t\tthis.ui.renderActionSummary({\n\t\t\t//@ts-ignore\n\t\t\theadline: `${actionCode} finished!`,\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\ttotalTime,\n\t\t\taction,\n\t\t\t...results,\n\t\t})\n\t}\n\n\tprivate clearAndRenderMasthead(action: FeatureAction<Schema>) {\n\t\tuiUtil.renderActionMastHead(this.ui, action)\n\t}\n\n\tprivate attachOptions(command: CommanderStatic['program'], schema: Schema) {\n\t\tconst entity = SchemaEntityFactory.Entity(schema)\n\n\t\tlet theProgram = command\n\n\t\tconst fields = entity.getNamedFields()\n\t\tconst aliases = featuresUtil.generateOptionAliases(schema)\n\n\t\tfields.forEach(({ field, name }) => {\n\t\t\ttry {\n\t\t\t\ttheProgram = theProgram.option(\n\t\t\t\t\taliases[name],\n\t\t\t\t\tfield.hint,\n\t\t\t\t\tfield.definition.defaultValue\n\t\t\t\t\t\t? `${field.definition.defaultValue}`\n\t\t\t\t\t\t: undefined\n\t\t\t\t)\n\t\t\t} catch (err: any) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tcode: 'FAILED_TO_ATTACH_COMMAND',\n\t\t\t\t\tfieldName: name,\n\t\t\t\t\tid: entity.schemaId,\n\t\t\t\t\toriginalError: err,\n\t\t\t\t\tfriendlyMessage: `Could not attach option ${aliases[name]} from ${entity.schemaId}.${name} to the command`,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n"],"mappings":"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"}