@sprucelabs/spruce-cli 20.0.5 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1944) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/.spruce/.gitignore +1 -0
  3. package/build/.spruce/errors/errors.types.d.ts +123 -115
  4. package/build/.spruce/errors/errors.types.js +1 -4
  5. package/build/.spruce/errors/errors.types.js.map +1 -1
  6. package/build/.spruce/errors/options.types.d.ts +2 -2
  7. package/build/.spruce/errors/options.types.js +1 -4
  8. package/build/.spruce/errors/options.types.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js +9 -13
  10. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/bootError.schema.js +9 -13
  12. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/buildFailed.schema.js +18 -22
  14. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js +9 -13
  16. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/commandAborted.schema.js +17 -21
  18. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js +21 -25
  20. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js +26 -30
  22. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js +43 -47
  24. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js +16 -20
  26. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/deployFailed.schema.js +26 -43
  28. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js +16 -20
  30. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js +9 -13
  32. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js +9 -13
  34. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js +41 -45
  36. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/failedToImport.schema.js +19 -23
  38. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js +16 -20
  40. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/fileExists.schema.js +19 -23
  42. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  43. package/build/.spruce/errors/spruceCli/generic.schema.js +17 -21
  44. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  45. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js +19 -23
  46. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  47. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js +21 -25
  48. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  49. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js +16 -20
  50. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  51. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js +16 -20
  52. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  53. package/build/.spruce/errors/spruceCli/lintFailed.schema.js +19 -23
  54. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  55. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js +17 -23
  56. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  57. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js +21 -25
  58. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  59. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js +21 -25
  60. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  61. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js +9 -13
  62. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  63. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js +9 -13
  64. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  65. package/build/.spruce/errors/spruceCli/notImplemented.schema.js +10 -14
  66. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  67. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js +9 -13
  68. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  69. package/build/.spruce/errors/spruceCli/schemaExists.schema.js +22 -26
  70. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  71. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js +19 -23
  72. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  73. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js +33 -39
  74. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  75. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js +9 -13
  76. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  77. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js +9 -13
  78. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  79. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js +16 -20
  80. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  81. package/build/.spruce/errors/spruceCli/storeExists.schema.js +9 -13
  82. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  83. package/build/.spruce/errors/spruceCli/testFailed.schema.js +27 -31
  84. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  85. package/build/.spruce/errors/spruceCli/themeExists.schema.js +9 -13
  86. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  87. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js +17 -21
  88. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  89. package/build/.spruce/errors/spruceCli/viewPluginAlreadyExists.schema.js +16 -20
  90. package/build/.spruce/errors/spruceCli/viewPluginAlreadyExists.schema.js.map +1 -1
  91. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js +9 -13
  92. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  93. package/build/.spruce/events/events.contract.d.ts +3 -353
  94. package/build/.spruce/events/events.contract.js +10 -18
  95. package/build/.spruce/events/events.contract.js.map +1 -1
  96. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +9 -13
  97. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -1
  98. package/build/.spruce/schemas/fields/fieldClassMap.js +3 -7
  99. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
  100. package/build/.spruce/schemas/fields/fields.types.d.ts +1 -1
  101. package/build/.spruce/schemas/fields/fields.types.js +1 -29
  102. package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
  103. package/build/.spruce/schemas/schemas.types.d.ts +511 -1189
  104. package/build/.spruce/schemas/schemas.types.js +1 -12
  105. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  106. package/build/.spruce/schemas/spruce/v2020_07_22/choice.schema.js +4 -11
  107. package/build/.spruce/schemas/spruce/v2020_07_22/choice.schema.js.map +1 -1
  108. package/build/.spruce/schemas/spruce/v2020_07_22/link.schema.js +4 -11
  109. package/build/.spruce/schemas/spruce/v2020_07_22/link.schema.js.map +1 -1
  110. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js +4 -11
  111. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
  112. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js +4 -11
  113. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
  114. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js +4 -11
  115. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
  116. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js +4 -11
  117. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
  118. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js +4 -11
  119. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
  120. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js +4 -11
  121. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
  122. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js +4 -11
  123. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
  124. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js +4 -11
  125. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
  126. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js +4 -11
  127. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
  128. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js +4 -11
  129. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
  130. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js +4 -11
  131. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
  132. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js +4 -11
  133. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
  134. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +55 -65
  135. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -1
  136. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js +37 -45
  137. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  138. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js +27 -31
  139. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  140. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js +209 -213
  141. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  142. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js +26 -30
  143. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  144. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js +226 -230
  145. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  146. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js +54 -61
  147. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  148. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js +40 -51
  149. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  150. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js +40 -51
  151. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  152. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js +18 -22
  153. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  154. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js +76 -80
  155. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  156. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js +91 -95
  157. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  158. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js +31 -35
  159. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  160. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +26 -30
  161. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -1
  162. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js +11 -15
  163. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  164. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js +35 -47
  165. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  166. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js +38 -42
  167. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  168. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js +16 -22
  169. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  170. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js +25 -29
  171. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  172. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js +18 -22
  173. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  174. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js +30 -34
  175. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  176. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js +169 -173
  177. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  178. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js +48 -52
  179. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  180. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js +37 -41
  181. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  182. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js +162 -166
  183. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  184. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js +61 -70
  185. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  186. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js +31 -34
  187. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  188. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js +28 -27
  189. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  190. package/build/.spruce/skill.types.js +1 -1
  191. package/build/.spruce/skill.types.js.map +1 -1
  192. package/build/GlobalEmitter.js +163 -175
  193. package/build/GlobalEmitter.js.map +1 -1
  194. package/build/InFlightEntertainment.js +29 -45
  195. package/build/InFlightEntertainment.js.map +1 -1
  196. package/build/__tests__/behavioral/AddingADependency.test.js +117 -257
  197. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  198. package/build/__tests__/behavioral/BlockingCommands.test.js +61 -116
  199. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  200. package/build/__tests__/behavioral/BootingTheCli.test.js +47 -91
  201. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  202. package/build/__tests__/behavioral/BootingWithBadFiles.test.js +44 -117
  203. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  204. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js +50 -119
  205. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  206. package/build/__tests__/behavioral/DeployingASkill.test.js +374 -801
  207. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  208. package/build/__tests__/behavioral/DeployingToSandbox.test.js +190 -570
  209. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  210. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +146 -287
  211. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  212. package/build/__tests__/behavioral/GettingCliVersion.test.js +35 -100
  213. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  214. package/build/__tests__/behavioral/ManagingDependencies.test.js +101 -206
  215. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  216. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js +58 -112
  217. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  218. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js +37 -97
  219. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  220. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +71 -157
  221. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  222. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +98 -223
  223. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  224. package/build/__tests__/behavioral/SettingRemote.test.js +77 -163
  225. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  226. package/build/__tests__/behavioral/SettingUpVscode.test.js +51 -108
  227. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  228. package/build/__tests__/behavioral/TestingAConversation.test.js +106 -262
  229. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  230. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js +73 -187
  231. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  232. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js +56 -135
  233. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  234. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js +155 -285
  235. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  236. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +39 -89
  237. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  238. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +132 -363
  239. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  240. package/build/__tests__/behavioral/events/CreatingAListener.test.js +313 -722
  241. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  242. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +202 -485
  243. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  244. package/build/__tests__/behavioral/events/EventWriter.test.js +76 -107
  245. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
  246. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +236 -597
  247. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  248. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +305 -584
  249. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  250. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +47 -120
  251. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  252. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js +53 -113
  253. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  254. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js +39 -88
  255. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -1
  256. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js +66 -152
  257. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -1
  258. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js +89 -231
  259. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -1
  260. package/build/__tests__/behavioral/events/SettingUpEvents.test.js +24 -56
  261. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  262. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +57 -141
  263. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  264. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js +69 -153
  265. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  266. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +53 -119
  267. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  268. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +93 -166
  269. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  270. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js +46 -101
  271. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  272. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +40 -115
  273. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  274. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +32 -75
  275. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -1
  276. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +224 -407
  277. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  278. package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +4 -0
  279. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +57 -79
  280. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -1
  281. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +153 -404
  282. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  283. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js +32 -106
  284. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -1
  285. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +4 -7
  286. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -1
  287. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +18 -13
  288. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -1
  289. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +4 -6
  290. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -1
  291. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +121 -303
  292. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  293. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js +41 -108
  294. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  295. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js +79 -227
  296. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js.map +1 -1
  297. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +188 -413
  298. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  299. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js +36 -70
  300. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -1
  301. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js +40 -95
  302. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  303. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +58 -148
  304. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  305. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js +77 -204
  306. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  307. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js +34 -68
  308. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  309. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +336 -749
  310. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  311. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +54 -121
  312. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  313. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +381 -712
  314. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  315. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +41 -72
  316. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  317. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js +47 -53
  318. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  319. package/build/__tests__/behavioral/skill/BootingASkill.test.js +55 -134
  320. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  321. package/build/__tests__/behavioral/skill/CreatingASkill.test.js +38 -94
  322. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  323. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js +121 -322
  324. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -1
  325. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js +117 -307
  326. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -1
  327. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js +45 -107
  328. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -1
  329. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +84 -187
  330. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  331. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js +140 -307
  332. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  333. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +166 -356
  334. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  335. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +93 -272
  336. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  337. package/build/__tests__/behavioral/tests/CreatingATest.test.js +115 -352
  338. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  339. package/build/__tests__/behavioral/tests/RunningTests.test.js +83 -186
  340. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  341. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +183 -499
  342. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  343. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js +73 -163
  344. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -1
  345. package/build/__tests__/behavioral/tests/SettingUpTests.test.js +35 -84
  346. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  347. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js +57 -108
  348. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -1
  349. package/build/__tests__/behavioral/tests/TestingDataStores.test.js +72 -146
  350. package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -1
  351. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js +59 -141
  352. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  353. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +119 -273
  354. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  355. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +72 -166
  356. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  357. package/build/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.d.ts +18 -0
  358. package/build/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.js +171 -0
  359. package/build/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.js.map +1 -0
  360. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js +176 -459
  361. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  362. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.d.ts +1 -1
  363. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js +137 -326
  364. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  365. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +187 -425
  366. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  367. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +104 -218
  368. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  369. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.d.ts +1 -1
  370. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +153 -428
  371. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  372. package/build/__tests__/behavioral/upgrading/UpgradingToEslint9.test.d.ts +17 -0
  373. package/build/__tests__/behavioral/upgrading/UpgradingToEslint9.test.js +144 -0
  374. package/build/__tests__/behavioral/upgrading/UpgradingToEslint9.test.js.map +1 -0
  375. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +53 -133
  376. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  377. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js +69 -217
  378. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  379. package/build/__tests__/behavioral/upgrading/UpgradingWithViews.test.d.ts +8 -0
  380. package/build/__tests__/behavioral/upgrading/UpgradingWithViews.test.js +69 -0
  381. package/build/__tests__/behavioral/upgrading/UpgradingWithViews.test.js.map +1 -0
  382. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +220 -418
  383. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  384. package/build/__tests__/behavioral/views/CreatingATheme.test.js +75 -199
  385. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  386. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js +62 -176
  387. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  388. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.d.ts +2 -1
  389. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js +75 -215
  390. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -1
  391. package/build/__tests__/behavioral/views/SettingUpViews.test.js +42 -86
  392. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  393. package/build/__tests__/behavioral/views/SyncingViewsLintsFiles.test.d.ts +9 -0
  394. package/build/__tests__/behavioral/views/SyncingViewsLintsFiles.test.js +65 -0
  395. package/build/__tests__/behavioral/views/SyncingViewsLintsFiles.test.js.map +1 -0
  396. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +81 -195
  397. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  398. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +44 -102
  399. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
  400. package/build/__tests__/behavioral/views/plugins/CreatingAViewPlugin.test.js +182 -423
  401. package/build/__tests__/behavioral/views/plugins/CreatingAViewPlugin.test.js.map +1 -1
  402. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +211 -514
  403. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  404. package/build/__tests__/implementation/ActionExecuter.test.js +90 -190
  405. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  406. package/build/__tests__/implementation/ActionExecuter2.test.js +206 -421
  407. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  408. package/build/__tests__/implementation/ActionExecuter3.test.js +59 -148
  409. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  410. package/build/__tests__/implementation/ActionExecuter4.test.js +47 -114
  411. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  412. package/build/__tests__/implementation/ArgParser.test.js +50 -76
  413. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  414. package/build/__tests__/implementation/BuildService.test.js +44 -85
  415. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  416. package/build/__tests__/implementation/BulkImporting.test.js +142 -299
  417. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  418. package/build/__tests__/implementation/CachingImports.test.js +73 -187
  419. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  420. package/build/__tests__/implementation/CommandOptionBuilder.test.js +96 -102
  421. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  422. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js +126 -249
  423. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  424. package/build/__tests__/implementation/DataStoreStore.test.js +114 -296
  425. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  426. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js +45 -113
  427. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  428. package/build/__tests__/implementation/EventCacheService.test.js +37 -80
  429. package/build/__tests__/implementation/EventCacheService.test.js.map +1 -1
  430. package/build/__tests__/implementation/EventContractCleanerUtil.test.js +97 -148
  431. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  432. package/build/__tests__/implementation/EventStore.test.js +256 -602
  433. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  434. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +416 -413
  435. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  436. package/build/__tests__/implementation/FeatureCommandAttacher.test.js +147 -322
  437. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  438. package/build/__tests__/implementation/FeatureFixture.test.js +57 -139
  439. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  440. package/build/__tests__/implementation/FeatureInstaller.test.js +69 -154
  441. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  442. package/build/__tests__/implementation/FeaturesUtil.test.js +45 -50
  443. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  444. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js +99 -113
  445. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  446. package/build/__tests__/implementation/GlobalEmitter.test.js +43 -82
  447. package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
  448. package/build/__tests__/implementation/Introspection.test.js +48 -57
  449. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  450. package/build/__tests__/implementation/JestJsonParser.test.js +517 -449
  451. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  452. package/build/__tests__/implementation/LintService.test.js +41 -88
  453. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  454. package/build/__tests__/implementation/ListenerStore.test.js +23 -32
  455. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  456. package/build/__tests__/implementation/OnboardingScriptLoader.test.js +61 -148
  457. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  458. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +155 -370
  459. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  460. package/build/__tests__/implementation/OnboardingStore.test.js +100 -141
  461. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  462. package/build/__tests__/implementation/OrganizationStore.test.js +81 -210
  463. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  464. package/build/__tests__/implementation/ParentTestFinder.test.js +46 -109
  465. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  466. package/build/__tests__/implementation/PkgService.test.js +70 -175
  467. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  468. package/build/__tests__/implementation/SchemaStore.test.js +256 -595
  469. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  470. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +1270 -1273
  471. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  472. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js +118 -273
  473. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  474. package/build/__tests__/implementation/ServiceFactory.test.js +28 -56
  475. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  476. package/build/__tests__/implementation/SettingUpANodeModule.test.js +62 -127
  477. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  478. package/build/__tests__/implementation/SkillStore.test.js +112 -311
  479. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  480. package/build/__tests__/implementation/StoreFeature.test.js +43 -92
  481. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  482. package/build/__tests__/implementation/TestReporter.test.js +39 -114
  483. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  484. package/build/__tests__/implementation/TestRunner.test.js +152 -384
  485. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  486. package/build/__tests__/implementation/ValueTypeMapping.test.js +31 -80
  487. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  488. package/build/__tests__/implementation/Widgets.test.js +97 -163
  489. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  490. package/build/__tests__/support/EventFaker.js +32 -96
  491. package/build/__tests__/support/EventFaker.js.map +1 -1
  492. package/build/__tests__/support/onTestFileResult.js +961 -850
  493. package/build/__tests__/support/onTestFileResult.js.map +1 -1
  494. package/build/__tests__/support/scripts/first.script.js +13 -27
  495. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  496. package/build/__tests__/support/scripts/second.script.js +6 -9
  497. package/build/__tests__/support/scripts/second.script.js.map +1 -1
  498. package/build/__tests__/support/scripts/third.test.script.js +3 -7
  499. package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
  500. package/build/__tests__/testDirsAndFiles/dynamic_key_schemas/v2020_07_22/mercuryContract.builder.ts +53 -53
  501. package/build/__tests__/testDirsAndFiles/eslint-8-module.zip +0 -0
  502. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitPayload.builder.ts +7 -7
  503. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitPermissions.builder.ts +16 -16
  504. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitTarget.builder.ts +7 -7
  505. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/event.options.ts +6 -6
  506. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/listenPermissions.builder.ts +16 -16
  507. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/responsePayload.builder.ts +7 -7
  508. package/build/__tests__/testDirsAndFiles/field_registrations/testField.addon.ts +9 -9
  509. package/build/__tests__/testDirsAndFiles/field_registrations_one_bad/badField.addon.ts +0 -2
  510. package/build/__tests__/testDirsAndFiles/field_registrations_one_bad/testField.addon.ts +9 -9
  511. package/build/__tests__/testDirsAndFiles/introspection/BadDefinition.ts +2 -2
  512. package/build/__tests__/testDirsAndFiles/introspection/ImplementsInterface.ts +2 -2
  513. package/build/__tests__/testDirsAndFiles/mercury-types-package.json +2 -3
  514. package/build/__tests__/testDirsAndFiles/mock_core_builders/v2020_07_22/organization.builder.ts +27 -27
  515. package/build/__tests__/testDirsAndFiles/mock_core_builders/v2020_07_22/person.builder.ts +88 -88
  516. package/build/__tests__/testDirsAndFiles/nested_error_schemas/nestedError.builder.ts +23 -23
  517. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/food.builder.ts +9 -9
  518. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/pet.builder.ts +9 -9
  519. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/skillWithExtraField.builder.ts +11 -11
  520. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/testPerson.builder.ts +76 -76
  521. package/build/__tests__/testDirsAndFiles/schemas_with_imports/v2020_07_22/hasImports.builder.ts +12 -12
  522. package/build/__tests__/testDirsAndFiles/schemas_with_imports/v2020_07_22/hasImports2.builder.ts +12 -12
  523. package/build/__tests__/testDirsAndFiles/schemas_with_suffix/v2020_07_22/withSuffix1.builder.ts +11 -11
  524. package/build/__tests__/testDirsAndFiles/schemas_with_suffix/v2020_07_22/withSuffix2.builder.ts +10 -10
  525. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/emitPayload.builder.ts +2 -2
  526. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/emitPermissions.builder.ts +5 -5
  527. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/event.options.ts +6 -6
  528. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/listenPermissions.builder.ts +5 -5
  529. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/responsePayload.builder.ts +2 -2
  530. package/build/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaOne.builder.ts +22 -22
  531. package/build/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaThree.builder.ts +4 -6
  532. package/build/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaTwo.builder.ts +49 -49
  533. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/badSchema.builder.ts +0 -2
  534. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaOne.builder.ts +22 -22
  535. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaThree.builder.ts +4 -6
  536. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaTwo.builder.ts +15 -15
  537. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/anotherBad.builder.ts +0 -2
  538. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/badSchema.builder.ts +0 -2
  539. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/notDefault.builder.ts +22 -22
  540. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaOne.builder.ts +22 -22
  541. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaThree.builder.ts +4 -6
  542. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaTwo.builder.ts +15 -15
  543. package/build/__tests__/testDirsAndFiles/test_builders_with_namespace_and_version/v2020_06_23/schemaWithNamespace.builder.ts +23 -23
  544. package/build/__tests__/testDirsAndFiles/test_builders_with_namespace_and_version/v2020_06_23/schemaWithVersion.builder.ts +23 -23
  545. package/build/addons/filePrompt.addon.js +7 -6
  546. package/build/addons/filePrompt.addon.js.map +1 -1
  547. package/build/boot.js +65 -156
  548. package/build/boot.js.map +1 -1
  549. package/build/cli/Cli.js +265 -510
  550. package/build/cli/Cli.js.map +1 -1
  551. package/build/components/AbstractComponent.js +17 -25
  552. package/build/components/AbstractComponent.js.map +1 -1
  553. package/build/components/FormComponent.d.ts +3 -3
  554. package/build/components/FormComponent.js +165 -315
  555. package/build/components/FormComponent.js.map +1 -1
  556. package/build/components/QuizComponent.d.ts +3 -5
  557. package/build/components/QuizComponent.js +172 -257
  558. package/build/components/QuizComponent.js.map +1 -1
  559. package/build/constants.js +7 -10
  560. package/build/constants.js.map +1 -1
  561. package/build/errors/SpruceError.d.ts +1 -1
  562. package/build/errors/SpruceError.js +204 -223
  563. package/build/errors/SpruceError.js.map +1 -1
  564. package/build/errors/actionCancelled.builder.js +6 -10
  565. package/build/errors/actionCancelled.builder.js.map +1 -1
  566. package/build/errors/bootError.builder.js +7 -11
  567. package/build/errors/bootError.builder.js.map +1 -1
  568. package/build/errors/buildFailed.builder.js +13 -17
  569. package/build/errors/buildFailed.builder.js.map +1 -1
  570. package/build/errors/cacheNotEnabled.builder.js +7 -11
  571. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  572. package/build/errors/commandAborted.builder.js +13 -17
  573. package/build/errors/commandAborted.builder.js.map +1 -1
  574. package/build/errors/commandBlocked.builder.js +15 -19
  575. package/build/errors/commandBlocked.builder.js.map +1 -1
  576. package/build/errors/commandNotImplemented.builder.js +20 -24
  577. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  578. package/build/errors/createAutoloaderFailed.builder.js +32 -36
  579. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  580. package/build/errors/dependencyExists.builder.js +11 -15
  581. package/build/errors/dependencyExists.builder.js.map +1 -1
  582. package/build/errors/deployFailed.builder.js +44 -40
  583. package/build/errors/deployFailed.builder.js.map +1 -1
  584. package/build/errors/directoryEmpty.builder.js +12 -16
  585. package/build/errors/directoryEmpty.builder.js.map +1 -1
  586. package/build/errors/directoryNotSkill.builder.js +7 -11
  587. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  588. package/build/errors/dockerNotStarted.builder.js +7 -11
  589. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  590. package/build/errors/executingCommandFailed.builder.js +28 -32
  591. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  592. package/build/errors/failedToImport.builder.js +15 -19
  593. package/build/errors/failedToImport.builder.js.map +1 -1
  594. package/build/errors/featureNotInstalled.builder.js +12 -16
  595. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  596. package/build/errors/fileExists.builder.js +15 -19
  597. package/build/errors/fileExists.builder.js.map +1 -1
  598. package/build/errors/generic.builder.js +13 -17
  599. package/build/errors/generic.builder.js.map +1 -1
  600. package/build/errors/invalidCommand.builder.js +15 -19
  601. package/build/errors/invalidCommand.builder.js.map +1 -1
  602. package/build/errors/invalidEventContract.builder.js +15 -19
  603. package/build/errors/invalidEventContract.builder.js.map +1 -1
  604. package/build/errors/invalidFeatureCode.builder.js +12 -16
  605. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  606. package/build/errors/invalidTestDirectory.builder.js +12 -16
  607. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  608. package/build/errors/lintFailed.builder.js +15 -19
  609. package/build/errors/lintFailed.builder.js.map +1 -1
  610. package/build/errors/mercuryResponseError.builder.js +17 -21
  611. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  612. package/build/errors/missingDependencies.builder.js +27 -31
  613. package/build/errors/missingDependencies.builder.js.map +1 -1
  614. package/build/errors/noOrganizationsFound.builder.js +7 -11
  615. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  616. package/build/errors/noSkillsRegistered.builder.js +7 -11
  617. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  618. package/build/errors/notImplemented.builder.js +8 -12
  619. package/build/errors/notImplemented.builder.js.map +1 -1
  620. package/build/errors/notLoggedIn.builder.js +7 -11
  621. package/build/errors/notLoggedIn.builder.js.map +1 -1
  622. package/build/errors/schemaExists.builder.js +16 -20
  623. package/build/errors/schemaExists.builder.js.map +1 -1
  624. package/build/errors/schemaFailedToImport.builder.js +14 -18
  625. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  626. package/build/errors/schemaTemplateItemBuildingFailed.builder.js +26 -30
  627. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  628. package/build/errors/skillNotFound.builder.js +7 -11
  629. package/build/errors/skillNotFound.builder.js.map +1 -1
  630. package/build/errors/skillNotRegistered.builder.js +7 -11
  631. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  632. package/build/errors/skillViewExists.builder.js +12 -16
  633. package/build/errors/skillViewExists.builder.js.map +1 -1
  634. package/build/errors/storeExists.builder.js +7 -11
  635. package/build/errors/storeExists.builder.js.map +1 -1
  636. package/build/errors/testFailed.builder.js +19 -23
  637. package/build/errors/testFailed.builder.js.map +1 -1
  638. package/build/errors/themeExists.builder.js +7 -11
  639. package/build/errors/themeExists.builder.js.map +1 -1
  640. package/build/errors/transportAlreadyExists.builder.js +12 -16
  641. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  642. package/build/errors/viewPluginAlreadyExists.builder.js +11 -15
  643. package/build/errors/viewPluginAlreadyExists.builder.js.map +1 -1
  644. package/build/errors/vscodeNotInstalled.builder.js +7 -11
  645. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  646. package/build/features/AbstractAction.js +97 -193
  647. package/build/features/AbstractAction.js.map +1 -1
  648. package/build/features/AbstractFeature.js +90 -204
  649. package/build/features/AbstractFeature.js.map +1 -1
  650. package/build/features/ActionExecuter.js +116 -290
  651. package/build/features/ActionExecuter.js.map +1 -1
  652. package/build/features/ActionFactory.js +81 -101
  653. package/build/features/ActionFactory.js.map +1 -1
  654. package/build/features/ActionQuestionAsker.js +233 -465
  655. package/build/features/ActionQuestionAsker.js.map +1 -1
  656. package/build/features/FeatureCommandAttacher.d.ts +5 -6
  657. package/build/features/FeatureCommandAttacher.js +101 -177
  658. package/build/features/FeatureCommandAttacher.js.map +1 -1
  659. package/build/features/FeatureInstaller.d.ts +2 -0
  660. package/build/features/FeatureInstaller.js +293 -666
  661. package/build/features/FeatureInstaller.js.map +1 -1
  662. package/build/features/FeatureInstallerFactory.js +99 -68
  663. package/build/features/FeatureInstallerFactory.js.map +1 -1
  664. package/build/features/OverrideActionDecorator.js +100 -175
  665. package/build/features/OverrideActionDecorator.js.map +1 -1
  666. package/build/features/cache/CacheFeature.js +15 -53
  667. package/build/features/cache/CacheFeature.js.map +1 -1
  668. package/build/features/cache/actions/DisableAction.js +62 -94
  669. package/build/features/cache/actions/DisableAction.js.map +1 -1
  670. package/build/features/cache/actions/EnableAction.js +55 -92
  671. package/build/features/cache/actions/EnableAction.js.map +1 -1
  672. package/build/features/cache/constants.js +4 -7
  673. package/build/features/cache/constants.js.map +1 -1
  674. package/build/features/conversation/ConversationFeature.js +45 -122
  675. package/build/features/conversation/ConversationFeature.js.map +1 -1
  676. package/build/features/conversation/actions/CreateAction.d.ts +1 -1
  677. package/build/features/conversation/actions/CreateAction.js +20 -62
  678. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  679. package/build/features/conversation/actions/TestAction.js +104 -174
  680. package/build/features/conversation/actions/TestAction.js.map +1 -1
  681. package/build/features/conversation/stores/ConversationStore.js +17 -66
  682. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  683. package/build/features/conversation/writers/ConversationWriter.js +29 -68
  684. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  685. package/build/features/dependencies/DependencyFeature.js +22 -58
  686. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  687. package/build/features/dependencies/actions/AddAction.js +59 -119
  688. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  689. package/build/features/dependencies/actions/ManageAction.js +68 -117
  690. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  691. package/build/features/deploy/DeployFeature.js +27 -68
  692. package/build/features/deploy/DeployFeature.js.map +1 -1
  693. package/build/features/deploy/actions/HerokuAction.js +271 -591
  694. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  695. package/build/features/deploy/writers/DeployWriter.js +14 -30
  696. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  697. package/build/features/error/ErrorFeature.js +63 -173
  698. package/build/features/error/ErrorFeature.js.map +1 -1
  699. package/build/features/error/ParentTestFinder.js +31 -57
  700. package/build/features/error/ParentTestFinder.js.map +1 -1
  701. package/build/features/error/actions/CreateAction.d.ts +1 -1
  702. package/build/features/error/actions/CreateAction.js +30 -76
  703. package/build/features/error/actions/CreateAction.js.map +1 -1
  704. package/build/features/error/actions/SyncAction.d.ts +1 -1
  705. package/build/features/error/actions/SyncAction.js +76 -176
  706. package/build/features/error/actions/SyncAction.js.map +1 -1
  707. package/build/features/error/writers/ErrorWriter.js +82 -238
  708. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  709. package/build/features/event/EventFeature.js +156 -338
  710. package/build/features/event/EventFeature.js.map +1 -1
  711. package/build/features/event/actions/CreateAction.js +78 -137
  712. package/build/features/event/actions/CreateAction.js.map +1 -1
  713. package/build/features/event/actions/ListenAction.d.ts +1 -1
  714. package/build/features/event/actions/ListenAction.js +207 -419
  715. package/build/features/event/actions/ListenAction.js.map +1 -1
  716. package/build/features/event/actions/SetRemoteAction.js +58 -90
  717. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  718. package/build/features/event/actions/SyncAction.d.ts +1 -1
  719. package/build/features/event/actions/SyncAction.js +27 -77
  720. package/build/features/event/actions/SyncAction.js.map +1 -1
  721. package/build/features/event/actions/SyncListenersAction.js +30 -75
  722. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  723. package/build/features/event/builders/EventContractBuilder.js +117 -243
  724. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  725. package/build/features/event/builders/ListenerTemplateItemBuilder.js +20 -41
  726. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  727. package/build/features/event/services/EventCacheService.js +19 -38
  728. package/build/features/event/services/EventCacheService.js.map +1 -1
  729. package/build/features/event/services/RemoteService.js +3 -7
  730. package/build/features/event/services/RemoteService.js.map +1 -1
  731. package/build/features/event/stores/EventStore.js +192 -427
  732. package/build/features/event/stores/EventStore.js.map +1 -1
  733. package/build/features/event/stores/ListenerStore.js +25 -81
  734. package/build/features/event/stores/ListenerStore.js.map +1 -1
  735. package/build/features/event/writers/EventWriter.js +130 -279
  736. package/build/features/event/writers/EventWriter.js.map +1 -1
  737. package/build/features/eventContract/EventContractFeature.js +17 -49
  738. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  739. package/build/features/eventContract/actions/PullAction.js +69 -132
  740. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  741. package/build/features/feature.utilities.js +46 -50
  742. package/build/features/feature.utilities.js.map +1 -1
  743. package/build/features/features.types.js +1 -4
  744. package/build/features/features.types.js.map +1 -1
  745. package/build/features/log/LogFeature.js +18 -41
  746. package/build/features/log/LogFeature.js.map +1 -1
  747. package/build/features/log/actions/CreateTransportAction.js +33 -75
  748. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  749. package/build/features/log/writers/LogWriter.js +23 -62
  750. package/build/features/log/writers/LogWriter.js.map +1 -1
  751. package/build/features/node/NodeFeature.d.ts +10 -10
  752. package/build/features/node/NodeFeature.js +103 -230
  753. package/build/features/node/NodeFeature.js.map +1 -1
  754. package/build/features/node/actions/CreateAction.js +29 -57
  755. package/build/features/node/actions/CreateAction.js.map +1 -1
  756. package/build/features/node/actions/UpdateDependenciesAction.js +104 -244
  757. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  758. package/build/features/node/actions/UpgradeAction.d.ts +1 -1
  759. package/build/features/node/actions/UpgradeAction.js +71 -155
  760. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  761. package/build/features/node/writers/NodeWriter.js +39 -75
  762. package/build/features/node/writers/NodeWriter.js.map +1 -1
  763. package/build/features/onboard/OnboardFeature.js +83 -194
  764. package/build/features/onboard/OnboardFeature.js.map +1 -1
  765. package/build/features/onboard/ScriptLoader.js +26 -66
  766. package/build/features/onboard/ScriptLoader.js.map +1 -1
  767. package/build/features/onboard/ScriptPlayer.d.ts +1 -3
  768. package/build/features/onboard/ScriptPlayer.js +69 -179
  769. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  770. package/build/features/onboard/actions/OnboardAction.d.ts +1 -1
  771. package/build/features/onboard/actions/OnboardAction.js +42 -86
  772. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  773. package/build/features/onboard/scripts/onboarding.first.script.js +63 -138
  774. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  775. package/build/features/onboard/scripts/onboarding.immersive.script.js +23 -53
  776. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  777. package/build/features/onboard/scripts/onboarding.returning.script.js +47 -67
  778. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  779. package/build/features/onboard/scripts/onboarding.short.script.js +50 -105
  780. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  781. package/build/features/onboard/scripts/todo/todo.create.skill.script.js +15 -28
  782. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  783. package/build/features/onboard/scripts/todo/todo.test.script.js +14 -26
  784. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  785. package/build/features/onboard/scripts/wrongCommand.script.js +44 -60
  786. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  787. package/build/features/onboard/stores/OnboardingStore.d.ts +1 -1
  788. package/build/features/onboard/stores/OnboardingStore.js +56 -91
  789. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  790. package/build/features/organization/OrganizationFeature.js +24 -41
  791. package/build/features/organization/OrganizationFeature.js.map +1 -1
  792. package/build/features/organization/actions/CreateAction.d.ts +1 -1
  793. package/build/features/organization/actions/CreateAction.js +22 -64
  794. package/build/features/organization/actions/CreateAction.js.map +1 -1
  795. package/build/features/organization/actions/InstallAction.d.ts +1 -1
  796. package/build/features/organization/actions/InstallAction.js +59 -131
  797. package/build/features/organization/actions/InstallAction.js.map +1 -1
  798. package/build/features/organization/stores/OrganizationStore.d.ts +2 -2
  799. package/build/features/organization/stores/OrganizationStore.js +65 -202
  800. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  801. package/build/features/permission/PermissionFeature.js +53 -167
  802. package/build/features/permission/PermissionFeature.js.map +1 -1
  803. package/build/features/permission/actions/CreateAction.js +48 -86
  804. package/build/features/permission/actions/CreateAction.js.map +1 -1
  805. package/build/features/permission/actions/SyncAction.js +55 -118
  806. package/build/features/permission/actions/SyncAction.js.map +1 -1
  807. package/build/features/permission/stores/PermissionStore.js +52 -164
  808. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  809. package/build/features/permission/writers/PermissionWriter.js +44 -131
  810. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  811. package/build/features/person/PersonFeature.js +18 -38
  812. package/build/features/person/PersonFeature.js.map +1 -1
  813. package/build/features/person/actions/LoginAction.js +60 -133
  814. package/build/features/person/actions/LoginAction.js.map +1 -1
  815. package/build/features/person/actions/LogoutAction.js +33 -73
  816. package/build/features/person/actions/LogoutAction.js.map +1 -1
  817. package/build/features/person/actions/WhoamiAction.js +32 -76
  818. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  819. package/build/features/polish/PolishFeature.js +28 -44
  820. package/build/features/polish/PolishFeature.js.map +1 -1
  821. package/build/features/polish/actions/SetupAction.js +27 -74
  822. package/build/features/polish/actions/SetupAction.js.map +1 -1
  823. package/build/features/polish/writers/PolishWriter.js +16 -55
  824. package/build/features/polish/writers/PolishWriter.js.map +1 -1
  825. package/build/features/sandbox/SandboxFeature.js +37 -69
  826. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  827. package/build/features/sandbox/actions/SetupAction.js +37 -95
  828. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  829. package/build/features/sandbox/writers/SandboxWriter.js +14 -48
  830. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  831. package/build/features/schema/SchemaFeature.js +72 -188
  832. package/build/features/schema/SchemaFeature.js.map +1 -1
  833. package/build/features/schema/ValueTypeBuilder.js +25 -62
  834. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  835. package/build/features/schema/actions/CreateAction.d.ts +1 -1
  836. package/build/features/schema/actions/CreateAction.js +44 -102
  837. package/build/features/schema/actions/CreateAction.js.map +1 -1
  838. package/build/features/schema/actions/SyncAction.d.ts +1 -1
  839. package/build/features/schema/actions/SyncAction.js +208 -384
  840. package/build/features/schema/actions/SyncAction.js.map +1 -1
  841. package/build/features/schema/actions/SyncFieldsAction.d.ts +1 -1
  842. package/build/features/schema/actions/SyncFieldsAction.js +42 -93
  843. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  844. package/build/features/schema/services/SchemaService.js +25 -64
  845. package/build/features/schema/services/SchemaService.js.map +1 -1
  846. package/build/features/schema/stores/SchemaStore.d.ts +1 -3
  847. package/build/features/schema/stores/SchemaStore.js +211 -398
  848. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  849. package/build/features/schema/utilities/schema.utility.js +14 -20
  850. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  851. package/build/features/schema/utilities/schemaDisk.utility.js +41 -66
  852. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  853. package/build/features/schema/utilities/schemaGenerator.utility.js +29 -61
  854. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  855. package/build/features/schema/writers/SchemaWriter.js +124 -315
  856. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  857. package/build/features/skill/SkillFeature.d.ts +1 -1
  858. package/build/features/skill/SkillFeature.js +146 -302
  859. package/build/features/skill/SkillFeature.js.map +1 -1
  860. package/build/features/skill/actions/BootAction.d.ts +1 -1
  861. package/build/features/skill/actions/BootAction.js +90 -161
  862. package/build/features/skill/actions/BootAction.js.map +1 -1
  863. package/build/features/skill/actions/CreateAction.js +33 -64
  864. package/build/features/skill/actions/CreateAction.js.map +1 -1
  865. package/build/features/skill/actions/DashboardAction.js +22 -59
  866. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  867. package/build/features/skill/actions/LoginAction.js +93 -179
  868. package/build/features/skill/actions/LoginAction.js.map +1 -1
  869. package/build/features/skill/actions/RebuildAction.js +60 -97
  870. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  871. package/build/features/skill/actions/RegisterAction.js +75 -108
  872. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  873. package/build/features/skill/stores/SkillStore.d.ts +2 -2
  874. package/build/features/skill/stores/SkillStore.js +134 -382
  875. package/build/features/skill/stores/SkillStore.js.map +1 -1
  876. package/build/features/skill/updaters/Updater.d.ts +1 -1
  877. package/build/features/skill/updaters/Updater.js +38 -81
  878. package/build/features/skill/updaters/Updater.js.map +1 -1
  879. package/build/features/skill/writers/SkillWriter.js +23 -60
  880. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  881. package/build/features/store/StoreFeature.js +61 -136
  882. package/build/features/store/StoreFeature.js.map +1 -1
  883. package/build/features/store/actions/CreateAction.js +54 -98
  884. package/build/features/store/actions/CreateAction.js.map +1 -1
  885. package/build/features/store/actions/SyncAction.js +40 -88
  886. package/build/features/store/actions/SyncAction.js.map +1 -1
  887. package/build/features/store/stores/StoreStore.js +32 -91
  888. package/build/features/store/stores/StoreStore.js.map +1 -1
  889. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js +23 -42
  890. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  891. package/build/features/store/writers/StoreWriter.js +52 -156
  892. package/build/features/store/writers/StoreWriter.js.map +1 -1
  893. package/build/features/test/TestFeature.js +102 -243
  894. package/build/features/test/TestFeature.js.map +1 -1
  895. package/build/features/test/TestLogItemGenerator.js +135 -166
  896. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  897. package/build/features/test/TestReporter.js +626 -817
  898. package/build/features/test/TestReporter.js.map +1 -1
  899. package/build/features/test/TestRunner.js +112 -205
  900. package/build/features/test/TestRunner.js.map +1 -1
  901. package/build/features/test/actions/CreateAction.d.ts +1 -1
  902. package/build/features/test/actions/CreateAction.js +102 -236
  903. package/build/features/test/actions/CreateAction.js.map +1 -1
  904. package/build/features/test/actions/SetupAction.d.ts +1 -1
  905. package/build/features/test/actions/SetupAction.js +36 -86
  906. package/build/features/test/actions/SetupAction.js.map +1 -1
  907. package/build/features/test/actions/TestAction.js +308 -511
  908. package/build/features/test/actions/TestAction.js.map +1 -1
  909. package/build/features/test/test.types.js +1 -4
  910. package/build/features/test/test.types.js.map +1 -1
  911. package/build/features/test/writers/TestWriter.js +17 -56
  912. package/build/features/test/writers/TestWriter.js.map +1 -1
  913. package/build/features/universalDevDependencies.js +14 -37
  914. package/build/features/universalDevDependencies.js.map +1 -1
  915. package/build/features/universalFileDescriptions.js +44 -43
  916. package/build/features/universalFileDescriptions.js.map +1 -1
  917. package/build/features/universalScripts.js +24 -28
  918. package/build/features/universalScripts.js.map +1 -1
  919. package/build/features/validateAndNormalize.utility.js +24 -29
  920. package/build/features/validateAndNormalize.utility.js.map +1 -1
  921. package/build/features/view/ViewFeature.d.ts +1 -0
  922. package/build/features/view/ViewFeature.js +76 -129
  923. package/build/features/view/ViewFeature.js.map +1 -1
  924. package/build/features/view/actions/CreateAction.js +126 -171
  925. package/build/features/view/actions/CreateAction.js.map +1 -1
  926. package/build/features/view/actions/CreatePluginAction.js +43 -89
  927. package/build/features/view/actions/CreatePluginAction.js.map +1 -1
  928. package/build/features/view/actions/CreateThemeAction.js +37 -88
  929. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  930. package/build/features/view/actions/SyncAction.js +78 -153
  931. package/build/features/view/actions/SyncAction.js.map +1 -1
  932. package/build/features/view/actions/WatchAction.js +58 -100
  933. package/build/features/view/actions/WatchAction.js.map +1 -1
  934. package/build/features/view/stores/ViewStore.d.ts +1 -1
  935. package/build/features/view/stores/ViewStore.js +34 -82
  936. package/build/features/view/stores/ViewStore.js.map +1 -1
  937. package/build/features/view/writers/ViewWriter.js +92 -201
  938. package/build/features/view/writers/ViewWriter.js.map +1 -1
  939. package/build/features/vscode/VsCodeFeature.js +42 -74
  940. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  941. package/build/features/vscode/actions/SetupAction.d.ts +1 -1
  942. package/build/features/vscode/actions/SetupAction.js +122 -303
  943. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  944. package/build/features/vscode/services/VsCodeService.d.ts +6 -6
  945. package/build/features/vscode/services/VsCodeService.js +47 -132
  946. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  947. package/build/features/vscode/writers/VsCodeWriter.js +17 -52
  948. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  949. package/build/features/watch/WatchFeature.js +69 -190
  950. package/build/features/watch/WatchFeature.js.map +1 -1
  951. package/build/index.js +15 -12
  952. package/build/index.js.map +1 -1
  953. package/build/interfaces/SpyInterface.d.ts +3 -3
  954. package/build/interfaces/SpyInterface.js +253 -481
  955. package/build/interfaces/SpyInterface.js.map +1 -1
  956. package/build/interfaces/TerminalInterface.d.ts +4 -4
  957. package/build/interfaces/TerminalInterface.js +468 -689
  958. package/build/interfaces/TerminalInterface.js.map +1 -1
  959. package/build/migration/EsLint9Migrator.d.ts +48 -0
  960. package/build/migration/EsLint9Migrator.js +41 -0
  961. package/build/migration/EsLint9Migrator.js.map +1 -0
  962. package/build/schemas/v2020_07_22/actionResponse.builder.js +62 -64
  963. package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -1
  964. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js +32 -36
  965. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  966. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js +18 -22
  967. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  968. package/build/schemas/v2020_07_22/createErrorOptions.builder.js +25 -29
  969. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  970. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js +20 -23
  971. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  972. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js +48 -52
  973. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  974. package/build/schemas/v2020_07_22/createTestOptions.builder.js +36 -41
  975. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  976. package/build/schemas/v2020_07_22/generatedFile.builder.js +41 -40
  977. package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -1
  978. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js +12 -16
  979. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  980. package/build/schemas/v2020_07_22/listenEventOptions.builder.js +32 -36
  981. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  982. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js +65 -69
  983. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  984. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js +21 -25
  985. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  986. package/build/schemas/v2020_07_22/onboardOptions.builder.js +7 -11
  987. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  988. package/build/schemas/v2020_07_22/onboarding.builder.js +44 -41
  989. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  990. package/build/schemas/v2020_07_22/personWithToken.builder.js +17 -22
  991. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  992. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js +17 -19
  993. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  994. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js +17 -21
  995. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  996. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js +12 -16
  997. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  998. package/build/schemas/v2020_07_22/skillFeature.builder.js +20 -24
  999. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  1000. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js +34 -35
  1001. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  1002. package/build/schemas/v2020_07_22/syncEventOptions.builder.js +39 -40
  1003. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  1004. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js +27 -31
  1005. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  1006. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js +108 -112
  1007. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  1008. package/build/schemas/v2020_07_22/testOptions.builder.js +55 -55
  1009. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  1010. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js +29 -29
  1011. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  1012. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +25 -24
  1013. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  1014. package/build/services/BuildService.js +22 -59
  1015. package/build/services/BuildService.js.map +1 -1
  1016. package/build/services/CommandService.d.ts +4 -3
  1017. package/build/services/CommandService.js +141 -190
  1018. package/build/services/CommandService.js.map +1 -1
  1019. package/build/services/DependencyService.js +30 -48
  1020. package/build/services/DependencyService.js.map +1 -1
  1021. package/build/services/GameService.js +48 -104
  1022. package/build/services/GameService.js.map +1 -1
  1023. package/build/services/ImportService.js +209 -368
  1024. package/build/services/ImportService.js.map +1 -1
  1025. package/build/services/LintService.js +70 -129
  1026. package/build/services/LintService.js.map +1 -1
  1027. package/build/services/PkgService.d.ts +5 -5
  1028. package/build/services/PkgService.js +84 -169
  1029. package/build/services/PkgService.js.map +1 -1
  1030. package/build/services/ServiceFactory.js +73 -106
  1031. package/build/services/ServiceFactory.js.map +1 -1
  1032. package/build/services/TypeCheckerService.js +10 -33
  1033. package/build/services/TypeCheckerService.js.map +1 -1
  1034. package/build/stores/AbstractLocalStore.js +28 -55
  1035. package/build/stores/AbstractLocalStore.js.map +1 -1
  1036. package/build/stores/AbstractStore.js +22 -60
  1037. package/build/stores/AbstractStore.js.map +1 -1
  1038. package/build/stores/StoreFactory.js +55 -69
  1039. package/build/stores/StoreFactory.js.map +1 -1
  1040. package/build/templateItemBuilders/EventTemplateItemBuilder.js +142 -222
  1041. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  1042. package/build/templateItemBuilders/FieldTemplateItemBuilder.js +33 -57
  1043. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  1044. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js +167 -219
  1045. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  1046. package/build/tests/AbstractCliTest.js +388 -779
  1047. package/build/tests/AbstractCliTest.js.map +1 -1
  1048. package/build/tests/AbstractErrorTest.js +24 -59
  1049. package/build/tests/AbstractErrorTest.js.map +1 -1
  1050. package/build/tests/AbstractEventTest.d.ts +2 -2
  1051. package/build/tests/AbstractEventTest.js +52 -184
  1052. package/build/tests/AbstractEventTest.js.map +1 -1
  1053. package/build/tests/AbstractSchemaTest.js +66 -210
  1054. package/build/tests/AbstractSchemaTest.js.map +1 -1
  1055. package/build/tests/AbstractSkillTest.js +27 -110
  1056. package/build/tests/AbstractSkillTest.js.map +1 -1
  1057. package/build/tests/AbstractTestTest.js +20 -62
  1058. package/build/tests/AbstractTestTest.js.map +1 -1
  1059. package/build/tests/CommandFaker.d.ts +2 -0
  1060. package/build/tests/CommandFaker.js +34 -43
  1061. package/build/tests/CommandFaker.js.map +1 -1
  1062. package/build/tests/JestJsonParser.js +138 -185
  1063. package/build/tests/JestJsonParser.js.map +1 -1
  1064. package/build/tests/MockProgramFactory.js +52 -95
  1065. package/build/tests/MockProgramFactory.js.map +1 -1
  1066. package/build/tests/buildTestCache.js +177 -289
  1067. package/build/tests/buildTestCache.js.map +1 -1
  1068. package/build/tests/cleanTestCache.js +18 -15
  1069. package/build/tests/cleanTestCache.js.map +1 -1
  1070. package/build/tests/cleanTestData.js +80 -109
  1071. package/build/tests/cleanTestData.js.map +1 -1
  1072. package/build/tests/constants.js +10 -14
  1073. package/build/tests/constants.js.map +1 -1
  1074. package/build/tests/fixtures/FeatureFixture.js +191 -365
  1075. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  1076. package/build/tests/fixtures/MercuryFixture.js +25 -58
  1077. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  1078. package/build/tests/fixtures/OrganizationFixture.d.ts +1 -1
  1079. package/build/tests/fixtures/OrganizationFixture.js +31 -129
  1080. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  1081. package/build/tests/fixtures/PersonFixture.js +49 -123
  1082. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  1083. package/build/tests/fixtures/SkillFixture.js +65 -228
  1084. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  1085. package/build/tests/fixtures/ViewFixture.js +17 -50
  1086. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  1087. package/build/tests/utilities/test.utility.js +80 -99
  1088. package/build/tests/utilities/test.utility.js.map +1 -1
  1089. package/build/tests/utilities/uiAssert.utility.js +44 -81
  1090. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  1091. package/build/types/apiClient.types.js +1 -4
  1092. package/build/types/apiClient.types.js.map +1 -1
  1093. package/build/types/cli.types.d.ts +6 -9
  1094. package/build/types/cli.types.js +1 -11
  1095. package/build/types/cli.types.js.map +1 -1
  1096. package/build/types/graphicsInterface.types.js +4 -35
  1097. package/build/types/graphicsInterface.types.js.map +1 -1
  1098. package/build/updaters/ScriptUpdater.d.ts +16 -8
  1099. package/build/updaters/ScriptUpdater.js +101 -136
  1100. package/build/updaters/ScriptUpdater.js.map +1 -1
  1101. package/build/utilities/action.utility.js +38 -46
  1102. package/build/utilities/action.utility.js.map +1 -1
  1103. package/build/utilities/apiClient.utility.js +46 -50
  1104. package/build/utilities/apiClient.utility.js.map +1 -1
  1105. package/build/utilities/argParser.utility.js +22 -36
  1106. package/build/utilities/argParser.utility.js.map +1 -1
  1107. package/build/utilities/commander.utility.js +23 -35
  1108. package/build/utilities/commander.utility.js.map +1 -1
  1109. package/build/utilities/duration.utility.js +25 -31
  1110. package/build/utilities/duration.utility.js.map +1 -1
  1111. package/build/utilities/eventContractCleaner.utility.js +39 -49
  1112. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  1113. package/build/utilities/form.utility.d.ts +2 -2
  1114. package/build/utilities/form.utility.js +68 -63
  1115. package/build/utilities/form.utility.js.map +1 -1
  1116. package/build/utilities/introspection.utility.js +210 -259
  1117. package/build/utilities/introspection.utility.js.map +1 -1
  1118. package/build/utilities/isCi.js +16 -12
  1119. package/build/utilities/isCi.js.map +1 -1
  1120. package/build/utilities/tsConfig.utility.js +52 -57
  1121. package/build/utilities/tsConfig.utility.js.map +1 -1
  1122. package/build/utilities/ui.utility.js +16 -22
  1123. package/build/utilities/ui.utility.js.map +1 -1
  1124. package/build/widgets/Theme.js +14 -16
  1125. package/build/widgets/Theme.js.map +1 -1
  1126. package/build/widgets/WidgetFactory.js +24 -35
  1127. package/build/widgets/WidgetFactory.js.map +1 -1
  1128. package/build/widgets/keySelectChoices.js +284 -847
  1129. package/build/widgets/keySelectChoices.js.map +1 -1
  1130. package/build/widgets/terminalKit/TKButtonWidget.js +39 -61
  1131. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  1132. package/build/widgets/terminalKit/TkBaseWidget.js +171 -237
  1133. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  1134. package/build/widgets/terminalKit/TkInputWidget.js +64 -130
  1135. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  1136. package/build/widgets/terminalKit/TkLayoutCellWidget.js +32 -55
  1137. package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
  1138. package/build/widgets/terminalKit/TkLayoutWidget.js +135 -204
  1139. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  1140. package/build/widgets/terminalKit/TkMenuBarWidget.js +65 -140
  1141. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  1142. package/build/widgets/terminalKit/TkPopupWidget.js +38 -58
  1143. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  1144. package/build/widgets/terminalKit/TkProgressBarWidget.js +40 -76
  1145. package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
  1146. package/build/widgets/terminalKit/TkTextWidget.js +87 -146
  1147. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  1148. package/build/widgets/terminalKit/TkWindowWidget.js +87 -181
  1149. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  1150. package/build/widgets/terminalKit/termKit.utility.js +124 -137
  1151. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  1152. package/build/widgets/types/button.types.js +5 -8
  1153. package/build/widgets/types/button.types.js.map +1 -1
  1154. package/build/widgets/types/factory.types.js +39 -40
  1155. package/build/widgets/types/factory.types.js.map +1 -1
  1156. package/build/widgets/types/input.types.js +19 -22
  1157. package/build/widgets/types/input.types.js.map +1 -1
  1158. package/build/widgets/types/layout.types.d.ts +4 -4
  1159. package/build/widgets/types/layout.types.js +1 -4
  1160. package/build/widgets/types/layout.types.js.map +1 -1
  1161. package/build/widgets/types/menuBar.types.js +16 -20
  1162. package/build/widgets/types/menuBar.types.js.map +1 -1
  1163. package/build/widgets/types/popup.types.js +5 -8
  1164. package/build/widgets/types/popup.types.js.map +1 -1
  1165. package/build/widgets/types/progressBar.types.js +1 -4
  1166. package/build/widgets/types/progressBar.types.js.map +1 -1
  1167. package/build/widgets/types/table.types.js +1 -4
  1168. package/build/widgets/types/table.types.js.map +1 -1
  1169. package/build/widgets/types/text.types.js +23 -27
  1170. package/build/widgets/types/text.types.js.map +1 -1
  1171. package/build/widgets/types/widgets.types.js +1 -4
  1172. package/build/widgets/types/widgets.types.js.map +1 -1
  1173. package/build/widgets/types/window.types.js +41 -46
  1174. package/build/widgets/types/window.types.js.map +1 -1
  1175. package/build/widgets/widget.utilities.js +20 -34
  1176. package/build/widgets/widget.utilities.js.map +1 -1
  1177. package/build/writers/AbstractWriter.d.ts +18 -18
  1178. package/build/writers/AbstractWriter.js +160 -311
  1179. package/build/writers/AbstractWriter.js.map +1 -1
  1180. package/build/writers/WriterFactory.d.ts +18 -15
  1181. package/build/writers/WriterFactory.js +65 -70
  1182. package/build/writers/WriterFactory.js.map +1 -1
  1183. package/eslint.config.mjs +9 -0
  1184. package/package.json +590 -592
  1185. package/src/.spruce/errors/errors.types.ts +911 -1141
  1186. package/src/.spruce/errors/options.types.ts +248 -125
  1187. package/src/.spruce/errors/spruceCli/actionCancelled.schema.ts +5 -8
  1188. package/src/.spruce/errors/spruceCli/bootError.schema.ts +5 -8
  1189. package/src/.spruce/errors/spruceCli/buildFailed.schema.ts +15 -16
  1190. package/src/.spruce/errors/spruceCli/cacheNotEnabled.schema.ts +5 -8
  1191. package/src/.spruce/errors/spruceCli/commandAborted.schema.ts +13 -15
  1192. package/src/.spruce/errors/spruceCli/commandBlocked.schema.ts +18 -20
  1193. package/src/.spruce/errors/spruceCli/commandNotImplemented.schema.ts +25 -26
  1194. package/src/.spruce/errors/spruceCli/createAutoloaderFailed.schema.ts +42 -43
  1195. package/src/.spruce/errors/spruceCli/dependencyExists.schema.ts +12 -14
  1196. package/src/.spruce/errors/spruceCli/deployFailed.schema.ts +22 -14
  1197. package/src/.spruce/errors/spruceCli/directoryEmpty.schema.ts +12 -14
  1198. package/src/.spruce/errors/spruceCli/directoryNotSkill.schema.ts +7 -9
  1199. package/src/.spruce/errors/spruceCli/dockerNotStarted.schema.ts +5 -8
  1200. package/src/.spruce/errors/spruceCli/executingCommandFailed.schema.ts +40 -41
  1201. package/src/.spruce/errors/spruceCli/failedToImport.schema.ts +15 -17
  1202. package/src/.spruce/errors/spruceCli/featureNotInstalled.schema.ts +14 -15
  1203. package/src/.spruce/errors/spruceCli/fileExists.schema.ts +15 -17
  1204. package/src/.spruce/errors/spruceCli/generic.schema.ts +13 -15
  1205. package/src/.spruce/errors/spruceCli/invalidCommand.schema.ts +15 -17
  1206. package/src/.spruce/errors/spruceCli/invalidEventContract.schema.ts +20 -21
  1207. package/src/.spruce/errors/spruceCli/invalidFeatureCode.schema.ts +14 -15
  1208. package/src/.spruce/errors/spruceCli/invalidTestDirectory.schema.ts +14 -15
  1209. package/src/.spruce/errors/spruceCli/lintFailed.schema.ts +15 -17
  1210. package/src/.spruce/errors/spruceCli/mercuryResponseError.schema.ts +15 -16
  1211. package/src/.spruce/errors/spruceCli/missingDependencies.schema.ts +16 -16
  1212. package/src/.spruce/errors/spruceCli/missingDependenciesDependency.schema.ts +20 -21
  1213. package/src/.spruce/errors/spruceCli/noOrganizationsFound.schema.ts +7 -9
  1214. package/src/.spruce/errors/spruceCli/noSkillsRegistered.schema.ts +7 -9
  1215. package/src/.spruce/errors/spruceCli/notImplemented.schema.ts +6 -9
  1216. package/src/.spruce/errors/spruceCli/notLoggedIn.schema.ts +5 -8
  1217. package/src/.spruce/errors/spruceCli/schemaExists.schema.ts +19 -21
  1218. package/src/.spruce/errors/spruceCli/schemaFailedToImport.schema.ts +17 -18
  1219. package/src/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.ts +32 -33
  1220. package/src/.spruce/errors/spruceCli/skillNotFound.schema.ts +5 -8
  1221. package/src/.spruce/errors/spruceCli/skillNotRegistered.schema.ts +7 -9
  1222. package/src/.spruce/errors/spruceCli/skillViewExists.schema.ts +12 -14
  1223. package/src/.spruce/errors/spruceCli/storeExists.schema.ts +5 -8
  1224. package/src/.spruce/errors/spruceCli/testFailed.schema.ts +24 -26
  1225. package/src/.spruce/errors/spruceCli/themeExists.schema.ts +5 -8
  1226. package/src/.spruce/errors/spruceCli/transportAlreadyExists.schema.ts +15 -16
  1227. package/src/.spruce/errors/spruceCli/viewPluginAlreadyExists.schema.ts +14 -15
  1228. package/src/.spruce/errors/spruceCli/vscodeNotInstalled.schema.ts +7 -9
  1229. package/src/.spruce/events/events.contract.ts +7 -54
  1230. package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +6 -6
  1231. package/src/.spruce/schemas/fields/fieldClassMap.ts +0 -3
  1232. package/src/.spruce/schemas/fields/fields.types.ts +6 -1
  1233. package/src/.spruce/schemas/schemas.types.ts +2237 -3109
  1234. package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +50 -49
  1235. package/src/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.ts +36 -37
  1236. package/src/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.ts +26 -27
  1237. package/src/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.ts +208 -209
  1238. package/src/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.ts +26 -26
  1239. package/src/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.ts +225 -226
  1240. package/src/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.ts +53 -49
  1241. package/src/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.ts +39 -33
  1242. package/src/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.ts +39 -33
  1243. package/src/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.ts +20 -18
  1244. package/src/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.ts +76 -76
  1245. package/src/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.ts +91 -91
  1246. package/src/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.ts +31 -31
  1247. package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +23 -25
  1248. package/src/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.ts +9 -11
  1249. package/src/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.ts +32 -23
  1250. package/src/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.ts +37 -38
  1251. package/src/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.ts +17 -16
  1252. package/src/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.ts +25 -25
  1253. package/src/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.ts +17 -17
  1254. package/src/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.ts +29 -30
  1255. package/src/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.ts +168 -169
  1256. package/src/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.ts +49 -48
  1257. package/src/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.ts +36 -37
  1258. package/src/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.ts +161 -162
  1259. package/src/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.ts +60 -55
  1260. package/src/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.ts +30 -18
  1261. package/src/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.ts +26 -19
  1262. package/src/.spruce/skill.types.ts +1 -1
  1263. package/src/GlobalEmitter.ts +154 -154
  1264. package/src/InFlightEntertainment.ts +30 -30
  1265. package/src/__tests__/behavioral/AddingADependency.test.ts +98 -98
  1266. package/src/__tests__/behavioral/BlockingCommands.test.ts +48 -48
  1267. package/src/__tests__/behavioral/BootingTheCli.test.ts +34 -34
  1268. package/src/__tests__/behavioral/BootingWithBadFiles.test.ts +29 -29
  1269. package/src/__tests__/behavioral/CreatingAConversationTopic.test.ts +41 -41
  1270. package/src/__tests__/behavioral/DeployingASkill.test.ts +373 -371
  1271. package/src/__tests__/behavioral/DeployingToSandbox.test.ts +162 -157
  1272. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +134 -134
  1273. package/src/__tests__/behavioral/GettingCliVersion.test.ts +20 -20
  1274. package/src/__tests__/behavioral/ManagingDependencies.test.ts +79 -79
  1275. package/src/__tests__/behavioral/OverridingCommandsInPackageJson.test.ts +55 -55
  1276. package/src/__tests__/behavioral/RegisteringConversationsOnBoot.test.ts +23 -23
  1277. package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +53 -51
  1278. package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +68 -65
  1279. package/src/__tests__/behavioral/SettingRemote.test.ts +75 -75
  1280. package/src/__tests__/behavioral/SettingUpVscode.test.ts +35 -35
  1281. package/src/__tests__/behavioral/TestingAConversation.test.ts +84 -81
  1282. package/src/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.ts +80 -68
  1283. package/src/__tests__/behavioral/errors/KeepingErrorClassInSync.test.ts +46 -46
  1284. package/src/__tests__/behavioral/errors/KeepingErrorsInSync.test.ts +218 -210
  1285. package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +21 -21
  1286. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +156 -154
  1287. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +421 -418
  1288. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +267 -262
  1289. package/src/__tests__/behavioral/events/EventWriter.test.ts +62 -62
  1290. package/src/__tests__/behavioral/events/KeepingEventsInSync.test.ts +298 -279
  1291. package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +411 -400
  1292. package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +42 -39
  1293. package/src/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.ts +42 -39
  1294. package/src/__tests__/behavioral/events/ListeningToCoreEvents.test.ts +20 -18
  1295. package/src/__tests__/behavioral/events/RegisteringEventsOnBoot.test.ts +46 -46
  1296. package/src/__tests__/behavioral/events/RegisteringGlobalEvents.test.ts +72 -72
  1297. package/src/__tests__/behavioral/events/SettingUpEvents.test.ts +7 -7
  1298. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +46 -46
  1299. package/src/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.ts +52 -49
  1300. package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +39 -39
  1301. package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +54 -50
  1302. package/src/__tests__/behavioral/organization/CreatingAnOrg.test.ts +27 -27
  1303. package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +30 -30
  1304. package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +16 -16
  1305. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +238 -238
  1306. package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +54 -19
  1307. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +162 -154
  1308. package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +25 -25
  1309. package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +1 -1
  1310. package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +15 -15
  1311. package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +1 -1
  1312. package/src/__tests__/behavioral/person/LoggingInAsPerson.test.ts +90 -90
  1313. package/src/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.ts +20 -20
  1314. package/src/__tests__/behavioral/polish/SettingUpPolish.test.ts +56 -56
  1315. package/src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts +265 -266
  1316. package/src/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.ts +23 -20
  1317. package/src/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.ts +22 -22
  1318. package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +54 -54
  1319. package/src/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.ts +75 -72
  1320. package/src/__tests__/behavioral/schemas/ImportingSchemaImports.test.ts +24 -24
  1321. package/src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts +393 -376
  1322. package/src/__tests__/behavioral/schemas/SettingUpSchemas.test.ts +41 -41
  1323. package/src/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.ts +545 -531
  1324. package/src/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.ts +23 -23
  1325. package/src/__tests__/behavioral/schemas/UsingSchemasInCli.test.ts +7 -7
  1326. package/src/__tests__/behavioral/skill/BootingASkill.test.ts +33 -33
  1327. package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +22 -22
  1328. package/src/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.ts +117 -107
  1329. package/src/__tests__/behavioral/skill/LoggingInAsASkill.test.ts +91 -91
  1330. package/src/__tests__/behavioral/skill/RebuildingASkill.test.ts +22 -22
  1331. package/src/__tests__/behavioral/skill/RegisteringASkill.test.ts +79 -79
  1332. package/src/__tests__/behavioral/skill/SettingUpASkill.test.ts +150 -148
  1333. package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +169 -163
  1334. package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +86 -86
  1335. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +146 -144
  1336. package/src/__tests__/behavioral/tests/RunningTests.test.ts +85 -83
  1337. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +234 -223
  1338. package/src/__tests__/behavioral/tests/SettingUpASkillForTesting.test.ts +47 -47
  1339. package/src/__tests__/behavioral/tests/SettingUpTests.test.ts +17 -15
  1340. package/src/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.ts +36 -36
  1341. package/src/__tests__/behavioral/tests/TestingDataStores.test.ts +56 -56
  1342. package/src/__tests__/behavioral/upgrading/UpdatingDependencies.test.ts +40 -37
  1343. package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +134 -129
  1344. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +51 -48
  1345. package/src/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.ts +207 -0
  1346. package/src/__tests__/behavioral/upgrading/UpgradingASkill.test.ts +234 -235
  1347. package/src/__tests__/behavioral/upgrading/UpgradingASkill2.test.ts +137 -133
  1348. package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +162 -162
  1349. package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +122 -119
  1350. package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +186 -177
  1351. package/src/__tests__/behavioral/upgrading/UpgradingToEslint9.test.ts +161 -0
  1352. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +57 -54
  1353. package/src/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.ts +55 -53
  1354. package/src/__tests__/behavioral/upgrading/UpgradingWithViews.test.ts +74 -0
  1355. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +220 -220
  1356. package/src/__tests__/behavioral/views/CreatingATheme.test.ts +68 -68
  1357. package/src/__tests__/behavioral/views/KeepingViewsInSync.test.ts +49 -49
  1358. package/src/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.ts +57 -44
  1359. package/src/__tests__/behavioral/views/SettingUpViews.test.ts +25 -25
  1360. package/src/__tests__/behavioral/views/SyncingViewsLintsFiles.test.ts +58 -0
  1361. package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +66 -66
  1362. package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +27 -27
  1363. package/src/__tests__/behavioral/views/plugins/CreatingAViewPlugin.test.ts +180 -171
  1364. package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +238 -238
  1365. package/src/__tests__/implementation/ActionExecuter.test.ts +72 -69
  1366. package/src/__tests__/implementation/ActionExecuter2.test.ts +269 -266
  1367. package/src/__tests__/implementation/ActionExecuter3.test.ts +48 -48
  1368. package/src/__tests__/implementation/ActionExecuter4.test.ts +30 -30
  1369. package/src/__tests__/implementation/ArgParser.test.ts +19 -16
  1370. package/src/__tests__/implementation/BuildService.test.ts +25 -23
  1371. package/src/__tests__/implementation/BulkImporting.test.ts +147 -129
  1372. package/src/__tests__/implementation/CachingImports.test.ts +81 -79
  1373. package/src/__tests__/implementation/CommandOptionBuilder.test.ts +76 -76
  1374. package/src/__tests__/implementation/CommanderCommandResultMapper.test.ts +99 -99
  1375. package/src/__tests__/implementation/DataStoreStore.test.ts +111 -111
  1376. package/src/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.ts +31 -27
  1377. package/src/__tests__/implementation/EventCacheService.test.ts +22 -22
  1378. package/src/__tests__/implementation/EventContractCleanerUtil.test.ts +67 -58
  1379. package/src/__tests__/implementation/EventStore.test.ts +337 -327
  1380. package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +450 -438
  1381. package/src/__tests__/implementation/FeatureCommandAttacher.test.ts +153 -152
  1382. package/src/__tests__/implementation/FeatureFixture.test.ts +51 -49
  1383. package/src/__tests__/implementation/FeatureInstaller.test.ts +55 -55
  1384. package/src/__tests__/implementation/FeaturesUtil.test.ts +13 -13
  1385. package/src/__tests__/implementation/FieldTemplateItemBuilder.test.ts +78 -78
  1386. package/src/__tests__/implementation/GlobalEmitter.test.ts +24 -24
  1387. package/src/__tests__/implementation/Introspection.test.ts +34 -32
  1388. package/src/__tests__/implementation/JestJsonParser.test.ts +578 -575
  1389. package/src/__tests__/implementation/LintService.test.ts +20 -20
  1390. package/src/__tests__/implementation/ListenerStore.test.ts +7 -7
  1391. package/src/__tests__/implementation/OnboardingScriptLoader.test.ts +51 -51
  1392. package/src/__tests__/implementation/OnboardingScriptPlayer.test.ts +152 -152
  1393. package/src/__tests__/implementation/OnboardingStore.test.ts +93 -93
  1394. package/src/__tests__/implementation/OrganizationStore.test.ts +82 -84
  1395. package/src/__tests__/implementation/ParentTestFinder.test.ts +25 -25
  1396. package/src/__tests__/implementation/PkgService.test.ts +77 -74
  1397. package/src/__tests__/implementation/SchemaStore.test.ts +301 -297
  1398. package/src/__tests__/implementation/SchemaTemplateItemBuilder.test.ts +1332 -1268
  1399. package/src/__tests__/implementation/SchemaValueTypeWriter.test.ts +159 -151
  1400. package/src/__tests__/implementation/ServiceFactory.test.ts +11 -11
  1401. package/src/__tests__/implementation/SettingUpANodeModule.test.ts +44 -44
  1402. package/src/__tests__/implementation/SkillStore.test.ts +114 -112
  1403. package/src/__tests__/implementation/StoreFeature.test.ts +28 -28
  1404. package/src/__tests__/implementation/TestReporter.test.ts +20 -20
  1405. package/src/__tests__/implementation/TestRunner.test.ts +156 -154
  1406. package/src/__tests__/implementation/ValueTypeMapping.test.ts +23 -23
  1407. package/src/__tests__/implementation/Widgets.test.ts +72 -67
  1408. package/src/__tests__/support/EventFaker.ts +35 -35
  1409. package/src/__tests__/support/onTestFileResult.ts +1004 -986
  1410. package/src/__tests__/support/scripts/first.script.ts +5 -5
  1411. package/src/__tests__/support/scripts/second.script.ts +2 -2
  1412. package/src/__tests__/testDirsAndFiles/dynamic_key_schemas/v2020_07_22/mercuryContract.builder.ts +53 -53
  1413. package/src/__tests__/testDirsAndFiles/eslint-8-module.zip +0 -0
  1414. package/src/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitPayload.builder.ts +7 -7
  1415. package/src/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitPermissions.builder.ts +16 -16
  1416. package/src/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitTarget.builder.ts +7 -7
  1417. package/src/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/event.options.ts +6 -6
  1418. package/src/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/listenPermissions.builder.ts +16 -16
  1419. package/src/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/responsePayload.builder.ts +7 -7
  1420. package/src/__tests__/testDirsAndFiles/field_registrations/testField.addon.ts +9 -9
  1421. package/src/__tests__/testDirsAndFiles/field_registrations_one_bad/badField.addon.ts +0 -2
  1422. package/src/__tests__/testDirsAndFiles/field_registrations_one_bad/testField.addon.ts +9 -9
  1423. package/src/__tests__/testDirsAndFiles/introspection/BadDefinition.ts +2 -2
  1424. package/src/__tests__/testDirsAndFiles/introspection/ImplementsInterface.ts +2 -2
  1425. package/src/__tests__/testDirsAndFiles/mercury-types-package.json +2 -3
  1426. package/src/__tests__/testDirsAndFiles/mock_core_builders/v2020_07_22/organization.builder.ts +27 -27
  1427. package/src/__tests__/testDirsAndFiles/mock_core_builders/v2020_07_22/person.builder.ts +88 -88
  1428. package/src/__tests__/testDirsAndFiles/nested_error_schemas/nestedError.builder.ts +23 -23
  1429. package/src/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/food.builder.ts +9 -9
  1430. package/src/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/pet.builder.ts +9 -9
  1431. package/src/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/skillWithExtraField.builder.ts +11 -11
  1432. package/src/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/testPerson.builder.ts +76 -76
  1433. package/src/__tests__/testDirsAndFiles/schemas_with_imports/v2020_07_22/hasImports.builder.ts +12 -12
  1434. package/src/__tests__/testDirsAndFiles/schemas_with_imports/v2020_07_22/hasImports2.builder.ts +12 -12
  1435. package/src/__tests__/testDirsAndFiles/schemas_with_suffix/v2020_07_22/withSuffix1.builder.ts +11 -11
  1436. package/src/__tests__/testDirsAndFiles/schemas_with_suffix/v2020_07_22/withSuffix2.builder.ts +10 -10
  1437. package/src/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/emitPayload.builder.ts +2 -2
  1438. package/src/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/emitPermissions.builder.ts +5 -5
  1439. package/src/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/event.options.ts +6 -6
  1440. package/src/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/listenPermissions.builder.ts +5 -5
  1441. package/src/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/responsePayload.builder.ts +2 -2
  1442. package/src/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaOne.builder.ts +22 -22
  1443. package/src/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaThree.builder.ts +4 -6
  1444. package/src/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaTwo.builder.ts +49 -49
  1445. package/src/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/badSchema.builder.ts +0 -2
  1446. package/src/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaOne.builder.ts +22 -22
  1447. package/src/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaThree.builder.ts +4 -6
  1448. package/src/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaTwo.builder.ts +15 -15
  1449. package/src/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/anotherBad.builder.ts +0 -2
  1450. package/src/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/badSchema.builder.ts +0 -2
  1451. package/src/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/notDefault.builder.ts +22 -22
  1452. package/src/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaOne.builder.ts +22 -22
  1453. package/src/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaThree.builder.ts +4 -6
  1454. package/src/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaTwo.builder.ts +15 -15
  1455. package/src/__tests__/testDirsAndFiles/test_builders_with_namespace_and_version/v2020_06_23/schemaWithNamespace.builder.ts +23 -23
  1456. package/src/__tests__/testDirsAndFiles/test_builders_with_namespace_and_version/v2020_06_23/schemaWithVersion.builder.ts +23 -23
  1457. package/src/boot.ts +78 -76
  1458. package/src/cli/Cli.ts +365 -355
  1459. package/src/components/AbstractComponent.ts +12 -12
  1460. package/src/components/FormComponent.ts +233 -231
  1461. package/src/components/QuizComponent.ts +278 -274
  1462. package/src/errors/SpruceError.ts +277 -272
  1463. package/src/errors/actionCancelled.builder.ts +3 -3
  1464. package/src/errors/bootError.builder.ts +4 -4
  1465. package/src/errors/buildFailed.builder.ts +11 -11
  1466. package/src/errors/cacheNotEnabled.builder.ts +4 -4
  1467. package/src/errors/commandAborted.builder.ts +10 -10
  1468. package/src/errors/commandBlocked.builder.ts +13 -13
  1469. package/src/errors/commandNotImplemented.builder.ts +18 -18
  1470. package/src/errors/createAutoloaderFailed.builder.ts +30 -30
  1471. package/src/errors/dependencyExists.builder.ts +8 -8
  1472. package/src/errors/deployFailed.builder.ts +41 -41
  1473. package/src/errors/directoryEmpty.builder.ts +9 -9
  1474. package/src/errors/directoryNotSkill.builder.ts +4 -4
  1475. package/src/errors/dockerNotStarted.builder.ts +4 -4
  1476. package/src/errors/executingCommandFailed.builder.ts +26 -26
  1477. package/src/errors/failedToImport.builder.ts +11 -11
  1478. package/src/errors/featureNotInstalled.builder.ts +9 -9
  1479. package/src/errors/fileExists.builder.ts +11 -11
  1480. package/src/errors/generic.builder.ts +9 -9
  1481. package/src/errors/invalidCommand.builder.ts +11 -11
  1482. package/src/errors/invalidEventContract.builder.ts +13 -13
  1483. package/src/errors/invalidFeatureCode.builder.ts +9 -9
  1484. package/src/errors/invalidTestDirectory.builder.ts +9 -9
  1485. package/src/errors/lintFailed.builder.ts +11 -11
  1486. package/src/errors/mercuryResponseError.builder.ts +14 -14
  1487. package/src/errors/missingDependencies.builder.ts +25 -25
  1488. package/src/errors/noOrganizationsFound.builder.ts +4 -4
  1489. package/src/errors/noSkillsRegistered.builder.ts +4 -4
  1490. package/src/errors/notImplemented.builder.ts +4 -4
  1491. package/src/errors/notLoggedIn.builder.ts +4 -4
  1492. package/src/errors/schemaExists.builder.ts +14 -14
  1493. package/src/errors/schemaFailedToImport.builder.ts +11 -11
  1494. package/src/errors/schemaTemplateItemBuildingFailed.builder.ts +24 -24
  1495. package/src/errors/skillNotFound.builder.ts +4 -4
  1496. package/src/errors/skillNotRegistered.builder.ts +4 -4
  1497. package/src/errors/skillViewExists.builder.ts +9 -9
  1498. package/src/errors/storeExists.builder.ts +4 -4
  1499. package/src/errors/testFailed.builder.ts +17 -17
  1500. package/src/errors/themeExists.builder.ts +4 -4
  1501. package/src/errors/transportAlreadyExists.builder.ts +9 -9
  1502. package/src/errors/viewPluginAlreadyExists.builder.ts +8 -8
  1503. package/src/errors/vscodeNotInstalled.builder.ts +4 -4
  1504. package/src/features/AbstractAction.ts +161 -157
  1505. package/src/features/AbstractFeature.ts +144 -141
  1506. package/src/features/ActionExecuter.ts +193 -185
  1507. package/src/features/ActionFactory.ts +115 -116
  1508. package/src/features/ActionQuestionAsker.ts +370 -363
  1509. package/src/features/FeatureCommandAttacher.ts +144 -142
  1510. package/src/features/FeatureInstaller.ts +525 -496
  1511. package/src/features/FeatureInstallerFactory.ts +87 -80
  1512. package/src/features/OverrideActionDecorator.ts +143 -133
  1513. package/src/features/cache/CacheFeature.ts +10 -10
  1514. package/src/features/cache/actions/DisableAction.ts +53 -51
  1515. package/src/features/cache/actions/EnableAction.ts +49 -49
  1516. package/src/features/cache/constants.ts +2 -2
  1517. package/src/features/conversation/ConversationFeature.ts +50 -50
  1518. package/src/features/conversation/actions/CreateAction.ts +18 -15
  1519. package/src/features/conversation/actions/TestAction.ts +105 -101
  1520. package/src/features/conversation/stores/ConversationStore.ts +16 -11
  1521. package/src/features/conversation/writers/ConversationWriter.ts +46 -46
  1522. package/src/features/dependencies/DependencyFeature.ts +17 -17
  1523. package/src/features/dependencies/actions/AddAction.ts +55 -55
  1524. package/src/features/dependencies/actions/ManageAction.ts +73 -73
  1525. package/src/features/deploy/DeployFeature.ts +24 -24
  1526. package/src/features/deploy/actions/HerokuAction.ts +341 -330
  1527. package/src/features/deploy/writers/DeployWriter.ts +14 -14
  1528. package/src/features/error/ErrorFeature.ts +92 -89
  1529. package/src/features/error/ParentTestFinder.ts +21 -21
  1530. package/src/features/error/actions/CreateAction.ts +32 -29
  1531. package/src/features/error/actions/SyncAction.ts +129 -127
  1532. package/src/features/error/writers/ErrorWriter.ts +147 -148
  1533. package/src/features/event/EventFeature.ts +221 -216
  1534. package/src/features/event/actions/CreateAction.ts +91 -84
  1535. package/src/features/event/actions/ListenAction.ts +336 -326
  1536. package/src/features/event/actions/SetRemoteAction.ts +49 -49
  1537. package/src/features/event/actions/SyncAction.ts +25 -23
  1538. package/src/features/event/actions/SyncListenersAction.ts +22 -22
  1539. package/src/features/event/builders/EventContractBuilder.ts +184 -180
  1540. package/src/features/event/builders/ListenerTemplateItemBuilder.ts +17 -17
  1541. package/src/features/event/services/EventCacheService.ts +22 -22
  1542. package/src/features/event/stores/EventStore.ts +298 -287
  1543. package/src/features/event/stores/ListenerStore.ts +17 -17
  1544. package/src/features/event/writers/EventWriter.ts +290 -287
  1545. package/src/features/eventContract/EventContractFeature.ts +12 -12
  1546. package/src/features/eventContract/actions/PullAction.ts +65 -62
  1547. package/src/features/feature.utilities.ts +52 -52
  1548. package/src/features/features.types.ts +35 -35
  1549. package/src/features/log/LogFeature.ts +16 -16
  1550. package/src/features/log/actions/CreateTransportAction.ts +26 -26
  1551. package/src/features/log/writers/LogWriter.ts +26 -21
  1552. package/src/features/node/NodeFeature.ts +142 -133
  1553. package/src/features/node/actions/CreateAction.ts +21 -21
  1554. package/src/features/node/actions/UpdateDependenciesAction.ts +142 -137
  1555. package/src/features/node/actions/UpgradeAction.ts +76 -66
  1556. package/src/features/node/writers/NodeWriter.ts +37 -38
  1557. package/src/features/onboard/OnboardFeature.ts +138 -135
  1558. package/src/features/onboard/ScriptLoader.ts +21 -21
  1559. package/src/features/onboard/ScriptPlayer.ts +93 -95
  1560. package/src/features/onboard/actions/OnboardAction.ts +41 -41
  1561. package/src/features/onboard/scripts/onboarding.first.script.ts +56 -56
  1562. package/src/features/onboard/scripts/onboarding.immersive.script.ts +26 -23
  1563. package/src/features/onboard/scripts/onboarding.returning.script.ts +45 -45
  1564. package/src/features/onboard/scripts/onboarding.short.script.ts +42 -42
  1565. package/src/features/onboard/scripts/todo/todo.create.skill.script.ts +11 -11
  1566. package/src/features/onboard/scripts/todo/todo.test.script.ts +10 -10
  1567. package/src/features/onboard/scripts/wrongCommand.script.ts +47 -45
  1568. package/src/features/onboard/stores/OnboardingStore.ts +75 -75
  1569. package/src/features/organization/OrganizationFeature.ts +18 -18
  1570. package/src/features/organization/actions/CreateAction.ts +16 -16
  1571. package/src/features/organization/actions/InstallAction.ts +56 -55
  1572. package/src/features/organization/stores/OrganizationStore.ts +80 -77
  1573. package/src/features/permission/PermissionFeature.ts +62 -60
  1574. package/src/features/permission/actions/CreateAction.ts +43 -40
  1575. package/src/features/permission/actions/SyncAction.ts +53 -53
  1576. package/src/features/permission/stores/PermissionStore.ts +63 -59
  1577. package/src/features/permission/writers/PermissionWriter.ts +103 -105
  1578. package/src/features/person/PersonFeature.ts +12 -12
  1579. package/src/features/person/actions/LoginAction.ts +63 -55
  1580. package/src/features/person/actions/LogoutAction.ts +23 -23
  1581. package/src/features/person/actions/WhoamiAction.ts +27 -26
  1582. package/src/features/polish/PolishFeature.ts +23 -23
  1583. package/src/features/polish/actions/SetupAction.ts +20 -20
  1584. package/src/features/polish/writers/PolishWriter.ts +14 -16
  1585. package/src/features/sandbox/SandboxFeature.ts +33 -33
  1586. package/src/features/sandbox/actions/SetupAction.ts +30 -28
  1587. package/src/features/sandbox/writers/SandboxWriter.ts +5 -5
  1588. package/src/features/schema/SchemaFeature.ts +105 -105
  1589. package/src/features/schema/ValueTypeBuilder.ts +45 -45
  1590. package/src/features/schema/actions/CreateAction.ts +54 -47
  1591. package/src/features/schema/actions/SyncAction.ts +340 -332
  1592. package/src/features/schema/actions/SyncFieldsAction.ts +47 -44
  1593. package/src/features/schema/services/SchemaService.ts +15 -15
  1594. package/src/features/schema/stores/SchemaStore.ts +366 -351
  1595. package/src/features/schema/utilities/schema.utility.ts +16 -16
  1596. package/src/features/schema/utilities/schemaDisk.utility.ts +75 -75
  1597. package/src/features/schema/utilities/schemaGenerator.utility.ts +28 -28
  1598. package/src/features/schema/writers/SchemaWriter.ts +273 -269
  1599. package/src/features/skill/SkillFeature.ts +182 -182
  1600. package/src/features/skill/actions/BootAction.ts +112 -110
  1601. package/src/features/skill/actions/CreateAction.ts +24 -24
  1602. package/src/features/skill/actions/DashboardAction.ts +12 -12
  1603. package/src/features/skill/actions/LoginAction.ts +112 -109
  1604. package/src/features/skill/actions/RebuildAction.ts +50 -50
  1605. package/src/features/skill/actions/RegisterAction.ts +65 -65
  1606. package/src/features/skill/stores/SkillStore.ts +186 -183
  1607. package/src/features/skill/updaters/Updater.ts +42 -42
  1608. package/src/features/skill/writers/SkillWriter.ts +19 -19
  1609. package/src/features/store/StoreFeature.ts +67 -67
  1610. package/src/features/store/actions/CreateAction.ts +49 -49
  1611. package/src/features/store/actions/SyncAction.ts +41 -35
  1612. package/src/features/store/stores/StoreStore.ts +24 -21
  1613. package/src/features/store/templateItemBuilders/StoreTemplateItemBuilder.ts +19 -19
  1614. package/src/features/store/writers/StoreWriter.ts +100 -101
  1615. package/src/features/test/TestFeature.ts +134 -130
  1616. package/src/features/test/TestLogItemGenerator.ts +182 -181
  1617. package/src/features/test/TestReporter.ts +803 -806
  1618. package/src/features/test/TestRunner.ts +143 -133
  1619. package/src/features/test/actions/CreateAction.ts +152 -146
  1620. package/src/features/test/actions/SetupAction.ts +44 -41
  1621. package/src/features/test/actions/TestAction.ts +447 -432
  1622. package/src/features/test/test.types.ts +23 -23
  1623. package/src/features/test/writers/TestWriter.ts +15 -17
  1624. package/src/features/universalDevDependencies.ts +10 -10
  1625. package/src/features/universalFileDescriptions.ts +40 -45
  1626. package/src/features/universalScripts.ts +28 -25
  1627. package/src/features/validateAndNormalize.utility.ts +37 -37
  1628. package/src/features/view/ViewFeature.ts +80 -66
  1629. package/src/features/view/actions/CreateAction.ts +135 -132
  1630. package/src/features/view/actions/CreatePluginAction.ts +40 -40
  1631. package/src/features/view/actions/CreateThemeAction.ts +32 -32
  1632. package/src/features/view/actions/SyncAction.ts +79 -76
  1633. package/src/features/view/actions/WatchAction.ts +56 -56
  1634. package/src/features/view/stores/ViewStore.ts +29 -25
  1635. package/src/features/view/writers/ViewWriter.ts +208 -202
  1636. package/src/features/vscode/VsCodeFeature.ts +40 -40
  1637. package/src/features/vscode/actions/SetupAction.ts +172 -169
  1638. package/src/features/vscode/services/VsCodeService.ts +52 -54
  1639. package/src/features/vscode/writers/VsCodeWriter.ts +11 -11
  1640. package/src/features/watch/WatchFeature.ts +95 -86
  1641. package/src/index.ts +12 -12
  1642. package/src/interfaces/SpyInterface.ts +367 -356
  1643. package/src/interfaces/TerminalInterface.ts +630 -603
  1644. package/src/migration/EsLint9Migrator.ts +57 -0
  1645. package/src/schemas/v2020_07_22/actionResponse.builder.ts +57 -57
  1646. package/src/schemas/v2020_07_22/bootSkillOptions.builder.ts +30 -30
  1647. package/src/schemas/v2020_07_22/createConversationTopicOptions.builder.ts +11 -11
  1648. package/src/schemas/v2020_07_22/createErrorOptions.builder.ts +18 -18
  1649. package/src/schemas/v2020_07_22/createOrganizationOptions.builder.ts +14 -14
  1650. package/src/schemas/v2020_07_22/createSchemaOptions.builder.ts +41 -41
  1651. package/src/schemas/v2020_07_22/createTestOptions.builder.ts +30 -30
  1652. package/src/schemas/v2020_07_22/generatedFile.builder.ts +38 -38
  1653. package/src/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.ts +9 -9
  1654. package/src/schemas/v2020_07_22/listenEventOptions.builder.ts +26 -26
  1655. package/src/schemas/v2020_07_22/namedTemplateItem.builder.ts +63 -63
  1656. package/src/schemas/v2020_07_22/nodeFeatureOptions.builder.ts +20 -20
  1657. package/src/schemas/v2020_07_22/onboardOptions.builder.ts +4 -4
  1658. package/src/schemas/v2020_07_22/onboarding.builder.ts +42 -42
  1659. package/src/schemas/v2020_07_22/personWithToken.builder.ts +11 -11
  1660. package/src/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.ts +14 -14
  1661. package/src/schemas/v2020_07_22/setupTestsOptions.builder.ts +16 -16
  1662. package/src/schemas/v2020_07_22/setupVscodeOptions.builder.ts +10 -10
  1663. package/src/schemas/v2020_07_22/skillFeature.builder.ts +18 -18
  1664. package/src/schemas/v2020_07_22/syncErrorOptions.builder.ts +28 -28
  1665. package/src/schemas/v2020_07_22/syncEventOptions.builder.ts +35 -35
  1666. package/src/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.ts +25 -25
  1667. package/src/schemas/v2020_07_22/syncSchemasOptions.builder.ts +101 -101
  1668. package/src/schemas/v2020_07_22/testOptions.builder.ts +53 -53
  1669. package/src/schemas/v2020_07_22/upgradeSkillOptions.builder.ts +27 -26
  1670. package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +18 -18
  1671. package/src/services/BuildService.ts +22 -19
  1672. package/src/services/CommandService.ts +195 -182
  1673. package/src/services/DependencyService.ts +28 -28
  1674. package/src/services/GameService.ts +47 -47
  1675. package/src/services/ImportService.ts +273 -273
  1676. package/src/services/LintService.ts +67 -63
  1677. package/src/services/PkgService.ts +110 -102
  1678. package/src/services/ServiceFactory.ts +92 -90
  1679. package/src/services/TypeCheckerService.ts +7 -7
  1680. package/src/stores/AbstractLocalStore.ts +34 -34
  1681. package/src/stores/AbstractStore.ts +41 -41
  1682. package/src/stores/StoreFactory.ts +66 -64
  1683. package/src/templateItemBuilders/EventTemplateItemBuilder.ts +266 -255
  1684. package/src/templateItemBuilders/FieldTemplateItemBuilder.ts +30 -30
  1685. package/src/templateItemBuilders/SchemaTemplateItemBuilder.ts +238 -228
  1686. package/src/tests/AbstractCliTest.ts +466 -457
  1687. package/src/tests/AbstractErrorTest.ts +22 -22
  1688. package/src/tests/AbstractEventTest.ts +54 -52
  1689. package/src/tests/AbstractSchemaTest.ts +98 -94
  1690. package/src/tests/AbstractSkillTest.ts +21 -21
  1691. package/src/tests/AbstractTestTest.ts +17 -17
  1692. package/src/tests/CommandFaker.ts +38 -22
  1693. package/src/tests/JestJsonParser.ts +229 -220
  1694. package/src/tests/MockProgramFactory.ts +63 -61
  1695. package/src/tests/buildTestCache.ts +208 -205
  1696. package/src/tests/cleanTestCache.ts +4 -4
  1697. package/src/tests/cleanTestData.ts +44 -44
  1698. package/src/tests/constants.ts +7 -7
  1699. package/src/tests/fixtures/FeatureFixture.ts +273 -267
  1700. package/src/tests/fixtures/MercuryFixture.ts +23 -23
  1701. package/src/tests/fixtures/OrganizationFixture.ts +30 -27
  1702. package/src/tests/fixtures/PersonFixture.ts +68 -62
  1703. package/src/tests/fixtures/SkillFixture.ts +98 -98
  1704. package/src/tests/fixtures/ViewFixture.ts +23 -20
  1705. package/src/tests/utilities/test.utility.ts +144 -136
  1706. package/src/tests/utilities/uiAssert.utility.ts +47 -47
  1707. package/src/types/apiClient.types.ts +5 -5
  1708. package/src/types/cli.types.ts +43 -44
  1709. package/src/types/graphicsInterface.types.ts +5 -5
  1710. package/src/updaters/ScriptUpdater.ts +141 -129
  1711. package/src/utilities/action.utility.ts +28 -28
  1712. package/src/utilities/apiClient.utility.ts +52 -52
  1713. package/src/utilities/argParser.utility.ts +20 -20
  1714. package/src/utilities/commander.utility.ts +20 -18
  1715. package/src/utilities/duration.utility.ts +24 -24
  1716. package/src/utilities/eventContractCleaner.utility.ts +55 -54
  1717. package/src/utilities/form.utility.ts +89 -76
  1718. package/src/utilities/introspection.utility.ts +285 -278
  1719. package/src/utilities/isCi.ts +16 -16
  1720. package/src/utilities/tsConfig.utility.ts +56 -56
  1721. package/src/utilities/ui.utility.ts +16 -16
  1722. package/src/widgets/Theme.ts +2 -2
  1723. package/src/widgets/WidgetFactory.ts +23 -23
  1724. package/src/widgets/keySelectChoices.ts +560 -560
  1725. package/src/widgets/terminalKit/TKButtonWidget.ts +36 -36
  1726. package/src/widgets/terminalKit/TkBaseWidget.ts +234 -229
  1727. package/src/widgets/terminalKit/TkInputWidget.ts +72 -72
  1728. package/src/widgets/terminalKit/TkLayoutCellWidget.ts +42 -41
  1729. package/src/widgets/terminalKit/TkLayoutWidget.ts +172 -171
  1730. package/src/widgets/terminalKit/TkMenuBarWidget.ts +85 -85
  1731. package/src/widgets/terminalKit/TkPopupWidget.ts +39 -39
  1732. package/src/widgets/terminalKit/TkProgressBarWidget.ts +45 -41
  1733. package/src/widgets/terminalKit/TkTextWidget.ts +115 -116
  1734. package/src/widgets/terminalKit/TkWindowWidget.ts +88 -88
  1735. package/src/widgets/terminalKit/termKit.utility.ts +116 -114
  1736. package/src/widgets/types/button.types.ts +7 -7
  1737. package/src/widgets/types/factory.types.ts +55 -55
  1738. package/src/widgets/types/input.types.ts +23 -23
  1739. package/src/widgets/types/layout.types.ts +22 -22
  1740. package/src/widgets/types/menuBar.types.ts +19 -19
  1741. package/src/widgets/types/popup.types.ts +5 -5
  1742. package/src/widgets/types/progressBar.types.ts +5 -5
  1743. package/src/widgets/types/table.types.ts +1 -1
  1744. package/src/widgets/types/text.types.ts +29 -29
  1745. package/src/widgets/types/widgets.types.ts +55 -55
  1746. package/src/widgets/types/window.types.ts +44 -44
  1747. package/src/widgets/widget.utilities.ts +24 -24
  1748. package/src/writers/AbstractWriter.ts +259 -248
  1749. package/src/writers/WriterFactory.ts +76 -63
  1750. package/tsconfig.json +5 -5
  1751. package/.eslintignore +0 -2
  1752. package/.eslintrc.js +0 -3
  1753. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +0 -39
  1754. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +0 -48
  1755. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +0 -1
  1756. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +0 -46
  1757. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +0 -56
  1758. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +0 -1
  1759. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +0 -46
  1760. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +0 -56
  1761. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +0 -1
  1762. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +0 -46
  1763. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +0 -56
  1764. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +0 -1
  1765. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.d.ts +0 -39
  1766. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js +0 -48
  1767. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +0 -1
  1768. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +0 -68
  1769. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +0 -77
  1770. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +0 -1
  1771. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.d.ts +0 -34
  1772. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js +0 -44
  1773. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +0 -1
  1774. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +0 -40
  1775. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +0 -50
  1776. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +0 -1
  1777. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.d.ts +0 -3
  1778. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js +0 -25
  1779. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +0 -1
  1780. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.d.ts +0 -3
  1781. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js +0 -24
  1782. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +0 -1
  1783. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.d.ts +0 -3
  1784. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js +0 -46
  1785. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +0 -1
  1786. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.d.ts +0 -3
  1787. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js +0 -26
  1788. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +0 -1
  1789. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.d.ts +0 -3
  1790. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js +0 -27
  1791. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +0 -1
  1792. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.d.ts +0 -3
  1793. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js +0 -44
  1794. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +0 -1
  1795. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.d.ts +0 -3
  1796. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js +0 -25
  1797. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +0 -1
  1798. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.d.ts +0 -3
  1799. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.js +0 -24
  1800. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.js.map +0 -1
  1801. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.d.ts +0 -3
  1802. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.js +0 -37
  1803. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.js.map +0 -1
  1804. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.d.ts +0 -3
  1805. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.js +0 -27
  1806. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.js.map +0 -1
  1807. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.d.ts +0 -3
  1808. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js +0 -37
  1809. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +0 -1
  1810. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.d.ts +0 -3
  1811. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js +0 -46
  1812. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +0 -1
  1813. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.d.ts +0 -3
  1814. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js +0 -24
  1815. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +0 -1
  1816. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.d.ts +0 -3
  1817. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js +0 -30
  1818. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +0 -1
  1819. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.d.ts +0 -3
  1820. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js +0 -44
  1821. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +0 -1
  1822. package/build/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.d.ts +0 -3
  1823. package/build/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.js +0 -26
  1824. package/build/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.js.map +0 -1
  1825. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.d.ts +0 -3
  1826. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js +0 -40
  1827. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +0 -1
  1828. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.d.ts +0 -3
  1829. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js +0 -37
  1830. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +0 -1
  1831. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.d.ts +0 -3
  1832. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js +0 -25
  1833. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +0 -1
  1834. package/build/.spruce/schemas/heartwood/v2021_02_11/theme.schema.d.ts +0 -3
  1835. package/build/.spruce/schemas/heartwood/v2021_02_11/theme.schema.js +0 -40
  1836. package/build/.spruce/schemas/heartwood/v2021_02_11/theme.schema.js.map +0 -1
  1837. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.d.ts +0 -3
  1838. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.js +0 -28
  1839. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.js.map +0 -1
  1840. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.d.ts +0 -3
  1841. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.js +0 -24
  1842. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.js.map +0 -1
  1843. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.d.ts +0 -3
  1844. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.js +0 -46
  1845. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.js.map +0 -1
  1846. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.d.ts +0 -3
  1847. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.js +0 -28
  1848. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.js.map +0 -1
  1849. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.d.ts +0 -1
  1850. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js +0 -13
  1851. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +0 -1
  1852. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.d.ts +0 -1
  1853. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js +0 -13
  1854. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +0 -1
  1855. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.d.ts +0 -1
  1856. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js +0 -13
  1857. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +0 -1
  1858. package/build/__tests__/testDirsAndFiles/abstract_tests/AbstractTest.d.ts +0 -3
  1859. package/build/__tests__/testDirsAndFiles/abstract_tests/AbstractTest2.d.ts +0 -3
  1860. package/build/__tests__/testDirsAndFiles/abstract_tests/NotATest.d.ts +0 -2
  1861. package/build/__tests__/testDirsAndFiles/abstract_tests/deeper/AbstractBananaTest.d.ts +0 -3
  1862. package/build/__tests__/testDirsAndFiles/dynamic_key_schemas/v2020_07_22/mercuryContract.builder.d.ts +0 -37
  1863. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitPayload.builder.d.ts +0 -10
  1864. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitPermissions.builder.d.ts +0 -26
  1865. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/emitTarget.builder.d.ts +0 -10
  1866. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/event.options.d.ts +0 -4
  1867. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/listenPermissions.builder.d.ts +0 -27
  1868. package/build/__tests__/testDirsAndFiles/event_with_emit_and_response_payloads/responsePayload.builder.d.ts +0 -10
  1869. package/build/__tests__/testDirsAndFiles/field_registrations/testField.addon.d.ts +0 -2
  1870. package/build/__tests__/testDirsAndFiles/field_registrations_one_bad/badField.addon.d.ts +0 -0
  1871. package/build/__tests__/testDirsAndFiles/field_registrations_one_bad/testField.addon.d.ts +0 -2
  1872. package/build/__tests__/testDirsAndFiles/introspection/BadDefinition.d.ts +0 -1
  1873. package/build/__tests__/testDirsAndFiles/introspection/ImplementsInterface.d.ts +0 -7
  1874. package/build/__tests__/testDirsAndFiles/mock_core_builders/v2020_07_22/organization.builder.d.ts +0 -30
  1875. package/build/__tests__/testDirsAndFiles/mock_core_builders/v2020_07_22/person.builder.d.ts +0 -85
  1876. package/build/__tests__/testDirsAndFiles/nested_error_schemas/nestedError.builder.d.ts +0 -26
  1877. package/build/__tests__/testDirsAndFiles/orphaned_schemas/namespace/v2020_07_22/one.schema.d.ts +0 -0
  1878. package/build/__tests__/testDirsAndFiles/orphaned_schemas/namespacetwo/three.schema.d.ts +0 -0
  1879. package/build/__tests__/testDirsAndFiles/orphaned_schemas/namespacetwo/v2020_07_22/four.schema.d.ts +0 -0
  1880. package/build/__tests__/testDirsAndFiles/orphaned_schemas/two.schema.d.ts +0 -0
  1881. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/food.builder.d.ts +0 -12
  1882. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/pet.builder.d.ts +0 -12
  1883. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/skillWithExtraField.builder.d.ts +0 -72
  1884. package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/testPerson.builder.d.ts +0 -85
  1885. package/build/__tests__/testDirsAndFiles/schemas_with_imports/v2020_07_22/hasImports.builder.d.ts +0 -13
  1886. package/build/__tests__/testDirsAndFiles/schemas_with_imports/v2020_07_22/hasImports2.builder.d.ts +0 -13
  1887. package/build/__tests__/testDirsAndFiles/schemas_with_suffix/v2020_07_22/withSuffix1.builder.d.ts +0 -16
  1888. package/build/__tests__/testDirsAndFiles/schemas_with_suffix/v2020_07_22/withSuffix2.builder.d.ts +0 -13
  1889. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/emitPayload.builder.d.ts +0 -5
  1890. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/emitPermissions.builder.d.ts +0 -8
  1891. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/event.options.d.ts +0 -3
  1892. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/listenPermissions.builder.d.ts +0 -8
  1893. package/build/__tests__/testDirsAndFiles/skill_register_skill_views_event/src/events/register-skill-views/v2021_04_11/responsePayload.builder.d.ts +0 -5
  1894. package/build/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaOne.builder.d.ts +0 -25
  1895. package/build/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaThree.builder.d.ts +0 -7
  1896. package/build/__tests__/testDirsAndFiles/test_builders/v2020_06_23/schemaTwo.builder.d.ts +0 -52
  1897. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/badSchema.builder.d.ts +0 -0
  1898. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaOne.builder.d.ts +0 -25
  1899. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaThree.builder.d.ts +0 -7
  1900. package/build/__tests__/testDirsAndFiles/test_builders_one_bad/v2020_06_23/schemaTwo.builder.d.ts +0 -21
  1901. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/anotherBad.builder.d.ts +0 -0
  1902. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/badSchema.builder.d.ts +0 -0
  1903. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/notDefault.builder.d.ts +0 -24
  1904. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaOne.builder.d.ts +0 -25
  1905. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaThree.builder.d.ts +0 -7
  1906. package/build/__tests__/testDirsAndFiles/test_builders_two_bad/v2020_06_23/schemaTwo.builder.d.ts +0 -21
  1907. package/build/__tests__/testDirsAndFiles/test_builders_with_namespace_and_version/v2020_06_23/schemaWithNamespace.builder.d.ts +0 -26
  1908. package/build/__tests__/testDirsAndFiles/test_builders_with_namespace_and_version/v2020_06_23/schemaWithVersion.builder.d.ts +0 -26
  1909. package/build/__tests__/testDirsAndFiles/validFile.d.ts +0 -0
  1910. package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +0 -48
  1911. package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +0 -54
  1912. package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +0 -54
  1913. package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +0 -54
  1914. package/src/.spruce/events/heartwood/listViews.v2021_02_11.contract.ts +0 -47
  1915. package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +0 -79
  1916. package/src/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.ts +0 -43
  1917. package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +0 -48
  1918. package/src/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.ts +0 -24
  1919. package/src/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.ts +0 -23
  1920. package/src/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.ts +0 -37
  1921. package/src/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.ts +0 -23
  1922. package/src/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.ts +0 -24
  1923. package/src/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.ts +0 -35
  1924. package/src/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.ts +0 -24
  1925. package/src/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.ts +0 -23
  1926. package/src/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.ts +0 -30
  1927. package/src/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.ts +0 -22
  1928. package/src/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.ts +0 -30
  1929. package/src/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.ts +0 -41
  1930. package/src/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.ts +0 -23
  1931. package/src/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.ts +0 -25
  1932. package/src/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.ts +0 -43
  1933. package/src/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.ts +0 -25
  1934. package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.ts +0 -35
  1935. package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.ts +0 -30
  1936. package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.ts +0 -24
  1937. package/src/.spruce/schemas/heartwood/v2021_02_11/theme.schema.ts +0 -35
  1938. package/src/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.ts +0 -23
  1939. package/src/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.ts +0 -23
  1940. package/src/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.ts +0 -37
  1941. package/src/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.ts +0 -23
  1942. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.ts +0 -1
  1943. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.ts +0 -1
  1944. package/src/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.ts +0 -1
@@ -13,820 +13,817 @@ import { SpruceTestResults, TestRunnerStatus } from './test.types'
13
13
  import TestLogItemGenerator from './TestLogItemGenerator'
14
14
 
15
15
  export default class TestReporter {
16
- private started = false
17
- private table?: any
18
- private bar!: ProgressBarWidget
19
- private bottomLayout!: LayoutWidget
20
- private testLog!: TextWidget
21
- private errorLog?: TextWidget
22
- private errorLogItemGenerator: TestLogItemGenerator
23
- private lastResults: TestReporterResults = {
24
- totalTestFiles: 0,
25
- customErrors: [],
26
- }
27
- private updateInterval?: any
28
- private menu!: MenuBarWidget
29
- private statusBar!: TextWidget
30
- private window!: WindowWidget
31
- private widgetFactory: WidgetFactory
32
- private selectTestPopup?: PopupWidget
33
- private topLayout!: LayoutWidget
34
- private filterInput!: InputWidget
35
- private filterPattern?: string
36
- private clearFilterPatternButton!: ButtonWidget
37
- private isDebugging = false
38
- private watchMode: WatchMode = 'off'
39
- private status: TestRunnerStatus = 'ready'
40
- private countDownTimeInterval?: any
41
- private cwd: string | undefined
42
- private orientation: TestReporterOrientation = 'landscape'
43
-
44
- private handleStartStop?: () => void
45
- private handleRestart?: () => void
46
- private handleQuit?: () => void
47
- private handleRerunTestFile?: (fileName: string) => void
48
- private handleFilterChange?: (pattern?: string) => void
49
- private handleOpenTestFile?: (testFile: string) => void
50
- private handleToggleDebug?: () => void
51
- private handletoggleStandardWatch?: () => void
52
- private handleToggleSmartWatch?: () => any
53
- private minWidth = 50
54
- private orientationWhenErrorLogWasShown: TestReporterOrientation = 'landscape'
55
-
56
- public constructor(options?: TestReporterOptions) {
57
- this.cwd = options?.cwd
58
- this.filterPattern = options?.filterPattern
59
- this.handleRestart = options?.handleRestart
60
- this.handleStartStop = options?.handleStartStop
61
- this.handleQuit = options?.handleQuit
62
- this.handleRerunTestFile = options?.handleRerunTestFile
63
- this.handleOpenTestFile = options?.handleOpenTestFile
64
- this.handleFilterChange = options?.handleFilterPatternChange
65
- this.status = options?.status ?? 'ready'
66
- this.handleToggleDebug = options?.handleToggleDebug
67
- this.handletoggleStandardWatch = options?.handletoggleStandardWatch
68
- this.isDebugging = options?.isDebugging ?? false
69
- this.watchMode = options?.watchMode ?? 'off'
70
- this.handleToggleSmartWatch = options?.handleToggleSmartWatch
71
-
72
- this.errorLogItemGenerator = new TestLogItemGenerator()
73
- this.widgetFactory = new WidgetFactory()
74
- }
75
-
76
- public setFilterPattern(pattern: string | undefined) {
77
- this.filterPattern = pattern
78
- this.filterInput.setValue(pattern ?? '')
79
- this.clearFilterPatternButton.setText(buildPatternButtonText(pattern))
80
- }
81
-
82
- public setIsDebugging(isDebugging: boolean) {
83
- this.menu.setTextForItem(
84
- 'toggleDebug',
85
- `Debug ^${isDebugging ? 'k' : 'w'}^#^${isDebugging ? 'g' : 'r'}${
86
- isDebugging ? ' ' : ' '
87
- }^`
88
- )
89
- this.isDebugging = isDebugging
90
- }
91
-
92
- public startCountdownTimer(durationSec: number) {
93
- clearInterval(this.countDownTimeInterval)
94
- this.countDownTimeInterval = undefined
95
-
96
- let remaining = durationSec
97
-
98
- function renderCountdownTime(time: number) {
99
- return `Starting ${time} `
100
- }
101
-
102
- this.setWatchLabel(renderCountdownTime(remaining))
103
-
104
- this.countDownTimeInterval = setInterval(() => {
105
- remaining--
106
-
107
- if (remaining < 0) {
108
- this.stopCountdownTimer()
109
- } else {
110
- this.setWatchLabel(renderCountdownTime(remaining))
111
- }
112
- }, 1000) as any
113
- }
114
-
115
- public stopCountdownTimer() {
116
- clearInterval(this.countDownTimeInterval)
117
- this.countDownTimeInterval = undefined
118
- this.setWatchMode(this.watchMode)
119
- }
120
-
121
- public setWatchMode(watchMode: WatchMode) {
122
- this.watchMode = watchMode
123
- if (!this.countDownTimeInterval) {
124
- let label = watchMode === 'smart' ? 'Smart Watch' : 'Standard Watch'
125
- if (watchMode === 'off') {
126
- label = 'Not Watching'
127
- }
128
- this.setWatchLabel(label)
129
- }
130
- }
131
-
132
- private setWatchLabel(label: string) {
133
- const isWatching = this.watchMode !== 'off'
134
-
135
- this.menu.setTextForItem(
136
- 'watchDropdown',
137
- `${label} ^${isWatching ? 'k' : 'w'}^#^${isWatching ? 'g' : 'r'}${
138
- isWatching ? ' ' : ' '
139
- }^`
140
- )
141
-
142
- this.menu.setTextForItem(
143
- 'toggleStandardWatch',
144
- this.watchMode === 'standard' ? '√ Standard' : 'Standard'
145
- )
146
-
147
- this.menu.setTextForItem(
148
- 'toggleSmartWatch',
149
- this.watchMode === 'smart' ? '√ Smart' : 'Smart'
150
- )
151
- }
152
-
153
- public async start() {
154
- this.started = true
155
-
156
- this.window = this.widgetFactory.Widget('window', {})
157
- this.window.hideCursor()
158
-
159
- const { width } = this.window.getFrame()
160
- if (width < this.minWidth) {
161
- throw new Error(
162
- `Your screen must be at least ${this.minWidth} characters wide.`
163
- )
164
- }
165
-
166
- void this.window.on('key', this.handleGlobalKeypress.bind(this))
167
- void this.window.on('kill', this.destroy.bind(this))
168
- void this.window.on('resize', this.handleWindowResize.bind(this))
169
-
170
- this.dropInTopLayout()
171
- this.dropInProgressBar()
172
- this.dropInMenu()
173
- this.dropInBottomLayout()
174
- this.dropInStatusBar()
175
- this.dropInTestLog()
176
- this.dropInFilterControls()
177
-
178
- this.updateOrientation()
179
-
180
- this.setIsDebugging(this.isDebugging)
181
- this.setWatchMode(this.watchMode)
182
- this.setStatus(this.status)
183
-
184
- this.updateInterval = setInterval(
185
- this.handleUpdateInterval.bind(this),
186
- 1000
187
- )
188
- }
189
-
190
- private handleWindowResize() {
191
- this.updateOrientation()
192
- }
193
-
194
- private updateOrientation() {
195
- const frame = this.window.getFrame()
196
-
197
- if (frame.width * 0.5 > frame.height) {
198
- this.orientation = 'landscape'
199
- } else {
200
- this.orientation = 'portrait'
201
- }
202
- }
203
-
204
- private dropInMenu() {
205
- this.menu = this.widgetFactory.Widget('menuBar', {
206
- parent: this.window,
207
- left: 0,
208
- top: 0,
209
- shouldLockWidthWithParent: true,
210
- items: [
211
- {
212
- label: 'Restart ',
213
- value: 'restart',
214
- },
215
- {
216
- label: 'Debug ',
217
- value: 'toggleDebug',
218
- },
219
- {
220
- label: 'Not Watching ',
221
- value: 'watchDropdown',
222
- items: [
223
- {
224
- label: 'Watch all',
225
- value: 'toggleStandardWatch',
226
- },
227
- {
228
- label: 'Smart watch',
229
- value: 'toggleSmartWatch',
230
- },
231
- ],
232
- },
233
- {
234
- label: 'Quit',
235
- value: 'quit',
236
- },
237
- ],
238
- })
239
-
240
- void this.menu.on('select', this.handleMenuSelect.bind(this))
241
- }
242
-
243
- public setStatus(status: TestRunnerStatus) {
244
- this.status = status
245
-
246
- this.updateMenuLabels()
247
- this.closeSelectTestPopup()
248
- this.bottomLayout.updateLayout()
249
-
250
- if (status === 'ready') {
251
- this.setStatusLabel('Starting...')
252
- } else if (this.status === 'stopped') {
253
- this.refreshResults()
254
- this.setStatusLabel('')
255
- } else if (this.status === 'running') {
256
- this.setStatusLabel('Running tests...')
257
- }
258
- }
259
-
260
- private updateMenuLabels() {
261
- let restartLabel = 'Start ^#^r › ^'
262
- switch (this.status) {
263
- case 'running':
264
- restartLabel = 'Stop ^k^#^g › ^'
265
- break
266
- case 'stopped':
267
- restartLabel = `Start ^w^#^r › ^`
268
- break
269
- case 'ready':
270
- restartLabel = 'Booting ^#^K › ^'
271
- break
272
- }
273
-
274
- this.menu.setTextForItem('restart', restartLabel)
275
- }
276
-
277
- private handleMenuSelect(payload: { value: string }) {
278
- switch (payload.value) {
279
- case 'quit':
280
- this.handleQuit?.()
281
- break
282
- case 'restart':
283
- this.handleStartStop?.()
284
- break
285
- case 'toggleDebug':
286
- this.handleToggleDebug?.()
287
- break
288
- case 'toggleStandardWatch':
289
- this.handletoggleStandardWatch?.()
290
- break
291
- case 'toggleSmartWatch':
292
- this.handleToggleSmartWatch?.()
293
- break
294
- }
295
- }
296
-
297
- private handleUpdateInterval() {
298
- if (this.status !== 'stopped') {
299
- this.refreshResults()
300
- }
301
- }
302
-
303
- private refreshResults() {
304
- if (this.lastResults) {
305
- this.updateLogs()
306
- }
307
- }
308
-
309
- private async handleGlobalKeypress(payload: { key: string }) {
310
- if (this.window.getFocusedWidget() === this.filterInput) {
311
- return
312
- }
313
-
314
- switch (payload.key) {
315
- case 'ENTER':
316
- this.handleRestart?.()
317
- break
318
- case 'CTRL_C':
319
- this.handleQuit?.()
320
- process.exit()
321
- break
322
- }
323
- }
324
-
325
- private dropInTestLog() {
326
- const parent = this.bottomLayout.getChildById('results')
327
-
328
- if (parent) {
329
- this.testLog = this.widgetFactory.Widget('text', {
330
- parent,
331
- isScrollEnabled: true,
332
- left: 0,
333
- top: 0,
334
- height: '100%',
335
- width: '100%',
336
- shouldLockHeightWithParent: true,
337
- shouldLockWidthWithParent: true,
338
- })
339
-
340
- void this.testLog.on('click', this.handleClickTestLog.bind(this))
341
- }
342
- }
343
-
344
- private async handleClickTestLog(payload: { row: number; column: number }) {
345
- const testFile = this.getFileForLine(payload.row)
346
- const { row, column } = payload
347
-
348
- this.closeSelectTestPopup()
349
-
350
- if (testFile) {
351
- this.dropInSelectTestPopup({ testFile, column, row })
352
- }
353
- }
354
-
355
- private closeSelectTestPopup() {
356
- if (this.selectTestPopup) {
357
- void this.selectTestPopup.destroy()
358
- this.selectTestPopup = undefined
359
- }
360
- }
361
-
362
- private dropInSelectTestPopup(options: {
363
- testFile: string
364
- column: number
365
- row: number
366
- }) {
367
- const { testFile, row, column } = options
368
-
369
- this.selectTestPopup = this.widgetFactory.Widget('popup', {
370
- parent: this.window,
371
- left: Math.max(1, column - 25),
372
- top: Math.max(4, row - 2),
373
- width: 50,
374
- height: 10,
375
- })
376
-
377
- this.widgetFactory.Widget('text', {
378
- parent: this.selectTestPopup,
379
- left: 1,
380
- top: 1,
381
- height: 4,
382
- width: this.selectTestPopup.getFrame().width - 2,
383
- text: `What do you wanna do with:\n\n${testFile}`,
384
- })
385
-
386
- const open = this.widgetFactory.Widget('button', {
387
- parent: this.selectTestPopup,
388
- left: 1,
389
- top: 6,
390
- text: 'Open',
391
- })
392
-
393
- const rerun = this.widgetFactory.Widget('button', {
394
- parent: this.selectTestPopup,
395
- left: 20,
396
- top: 6,
397
- text: 'Test',
398
- })
399
-
400
- const cancel = this.widgetFactory.Widget('button', {
401
- parent: this.selectTestPopup,
402
- left: 37,
403
- top: 6,
404
- text: 'Nevermind',
405
- })
406
-
407
- void rerun.on('click', () => {
408
- this.handleRerunTestFile?.(testFile)
409
- this.closeSelectTestPopup()
410
- })
411
- void cancel.on('click', this.closeSelectTestPopup.bind(this))
412
- void open.on('click', () => {
413
- this.openTestFile(testFile)
414
- })
415
- }
416
-
417
- private openTestFile(testFile: string) {
418
- this.handleOpenTestFile?.(testFile)
419
- this.closeSelectTestPopup()
420
- }
421
-
422
- public getFileForLine(row: number): string | undefined {
423
- let line = this.testLog.getScrollY()
424
-
425
- for (let file of this.lastResults.testFiles ?? []) {
426
- if (line === row) {
427
- return file.path
428
- }
429
-
430
- line++
431
-
432
- for (let c = 0; c < (file.tests ?? []).length; c++) {
433
- if (line === row) {
434
- return file.path
435
- }
436
-
437
- line++
438
- }
439
- }
440
-
441
- return undefined
442
- }
443
-
444
- private dropInProgressBar() {
445
- const parent = this.topLayout.getChildById('progress') ?? this.window
446
- this.bar = this.widgetFactory.Widget('progressBar', {
447
- parent,
448
- left: 0,
449
- top: 0,
450
- width: parent.getFrame().width,
451
- shouldLockWidthWithParent: true,
452
- label: 'Ready and waiting...',
453
- progress: 0,
454
- })
455
- }
456
-
457
- private dropInFilterControls() {
458
- const parent = this.topLayout.getChildById('filter') ?? this.window
459
-
460
- const buttonWidth = 3
461
- this.filterInput = this.widgetFactory.Widget('input', {
462
- parent,
463
- left: 0,
464
- label: 'Pattern',
465
- width: parent.getFrame().width - buttonWidth,
466
- height: 1,
467
- shouldLockWidthWithParent: true,
468
- value: this.filterPattern,
469
- })
470
-
471
- void this.filterInput.on('cancel', () => {
472
- this.filterInput.setValue(this.filterPattern ?? '')
473
- })
474
-
475
- void this.filterInput.on('submit', (payload) => {
476
- this.handleFilterChange?.(payload.value ?? undefined)
477
- })
478
-
479
- this.clearFilterPatternButton = this.widgetFactory.Widget('button', {
480
- parent,
481
- left: this.filterInput.getFrame().width,
482
- width: buttonWidth,
483
- top: 0,
484
- text: buildPatternButtonText(this.filterPattern),
485
- shouldLockRightWithParent: true,
486
- })
487
-
488
- void this.clearFilterPatternButton.on('click', () => {
489
- if (this.filterPattern || this.filterPattern?.length === 0) {
490
- this.handleFilterChange?.(undefined)
491
- } else {
492
- this.filterInput.setValue('')
493
- }
494
- })
495
- }
496
-
497
- private dropInBottomLayout() {
498
- this.bottomLayout = this.widgetFactory.Widget('layout', {
499
- parent: this.window,
500
- width: '100%',
501
- top: 4,
502
- height: this.window.getFrame().height - 5,
503
- shouldLockWidthWithParent: true,
504
- shouldLockHeightWithParent: true,
505
- rows: [
506
- {
507
- height: '100%',
508
- columns: [
509
- {
510
- id: 'results',
511
- width: '100%',
512
- },
513
- ],
514
- },
515
- ],
516
- })
517
- }
518
-
519
- private dropInStatusBar() {
520
- this.statusBar = this.widgetFactory.Widget('text', {
521
- parent: this.window,
522
- top: this.window.getFrame().height - 1,
523
- width: '100%',
524
- shouldLockWidthWithParent: true,
525
- shouldLockBottomWithParent: true,
526
- backgroundColor: 'yellow',
527
- foregroundColor: 'black',
528
- text: '...',
529
- })
530
- }
531
-
532
- private dropInTopLayout() {
533
- this.topLayout = this.widgetFactory.Widget('layout', {
534
- parent: this.window,
535
- width: '100%',
536
- top: 1,
537
- height: 3,
538
- shouldLockWidthWithParent: true,
539
- shouldLockHeightWithParent: false,
540
- rows: [
541
- {
542
- height: '100%',
543
- columns: [
544
- {
545
- id: 'progress',
546
- width: 50,
547
- },
548
- {
549
- id: 'filter',
550
- },
551
- ],
552
- },
553
- ],
554
- })
555
- }
556
-
557
- public updateResults(results: SpruceTestResults) {
558
- if (!this.started) {
559
- throw new Error('You must call start() before anything else.')
560
- }
561
-
562
- this.lastResults = {
563
- ...this.lastResults,
564
- ...results,
565
- }
566
-
567
- this.updateProgressBar(results)
568
-
569
- const percentPassing = this.generatePercentPassing(results)
570
- const percentComplete = this.generatePercentComplete(results)
571
-
572
- this.window.setTitle(
573
- `Testing: ${percentComplete}% complete.${
574
- percentComplete > 0 ? ` ${percentPassing}% passing.` : ''
575
- }`
576
- )
577
-
578
- this.updateLogs()
579
- }
580
-
581
- private updateLogs() {
582
- if (this.selectTestPopup) {
583
- return
584
- }
585
-
586
- let { logContent, errorContent } = this.resultsToLogContents(
587
- this.lastResults
588
- )
589
-
590
- this.testLog.setText(logContent)
591
-
592
- if (!errorContent) {
593
- this.errorLog && this.destroyErrorLog()
594
- } else {
595
- !this.errorLog && this.dropInErrorLog()
596
- const cleanedLog = this.cwd
597
- ? errorContent.replace(new RegExp(this.cwd + '/', 'gim'), '')
598
- : errorContent
599
-
600
- this.errorLog?.setText(cleanedLog)
601
- }
602
- }
603
-
604
- private resultsToLogContents(results: SpruceTestResults) {
605
- let logContent = ''
606
- let errorContent = ''
607
-
608
- results.testFiles?.forEach((file) => {
609
- logContent += this.errorLogItemGenerator.generateLogItemForFile(
610
- file,
611
- this.status
612
- )
613
- errorContent +=
614
- this.errorLogItemGenerator.generateErrorLogItemForFile(file)
615
- })
616
-
617
- if (this.lastResults.customErrors.length > 0) {
618
- errorContent =
619
- this.lastResults.customErrors.map((err) => chalk.red(err)).join(`\n`) +
620
- `\n${errorContent}`
621
- }
622
-
623
- return { logContent, errorContent }
624
- }
625
-
626
- private dropInErrorLog() {
627
- this.orientationWhenErrorLogWasShown = this.orientation
628
-
629
- if (this.bottomLayout.getRows().length === 1) {
630
- if (this.orientation === 'portrait') {
631
- this.bottomLayout.addRow({
632
- id: 'row_2',
633
- columns: [{ id: 'errors', width: '100%' }],
634
- })
635
-
636
- this.bottomLayout.setRowHeight(0, '60%')
637
- this.bottomLayout.setRowHeight(1, '40%')
638
- } else {
639
- this.bottomLayout.addColumn(0, { id: 'errors', width: '50%' })
640
- this.bottomLayout.setColumnWidth({
641
- rowIdx: 0,
642
- columnIdx: 0,
643
- width: '50%',
644
- })
645
- }
646
-
647
- this.bottomLayout.updateLayout()
648
-
649
- const cell = this.bottomLayout.getChildById('errors')
650
-
651
- if (!cell) {
652
- throw new Error('Pulling child error')
653
- }
654
-
655
- this.errorLog = this.widgetFactory.Widget('text', {
656
- parent: cell,
657
- width: '100%',
658
- height: '100%',
659
- isScrollEnabled: true,
660
- shouldAutoScrollWhenAppendingContent: false,
661
- shouldLockHeightWithParent: true,
662
- shouldLockWidthWithParent: true,
663
- padding: { left: 1 },
664
- })
665
- }
666
- }
667
-
668
- private destroyErrorLog() {
669
- if (this.errorLog) {
670
- void this.errorLog?.destroy()
671
- this.errorLog = undefined
672
-
673
- if (this.orientationWhenErrorLogWasShown === 'landscape') {
674
- this.bottomLayout.removeColumn(0, 1)
675
- this.bottomLayout.setColumnWidth({
676
- rowIdx: 0,
677
- columnIdx: 0,
678
- width: '100%',
679
- })
680
- } else {
681
- this.bottomLayout.removeRow(1)
682
- this.bottomLayout.setRowHeight(0, '100%')
683
- }
684
- this.bottomLayout.updateLayout()
685
- }
686
- }
687
-
688
- private updateProgressBar(results: SpruceTestResults) {
689
- if (results.totalTestFilesComplete ?? 0 > 0) {
690
- const testsRemaining =
691
- results.totalTestFiles - (results.totalTestFilesComplete ?? 0)
692
-
693
- if (testsRemaining === 0) {
694
- const { percent, totalTests, totalPassedTests, totalTime } =
695
- this.generateProgressStats(results)
696
-
697
- this.bar.setLabel(
698
- `Finished! ${totalPassedTests} of ${totalTests} (${percent}%) passed in ${durationUtil.msToFriendly(
699
- totalTime
700
- )}.${percent < 100 ? ` Don't give up! 💪` : ''}`
701
- )
702
- } else {
703
- this.bar.setLabel(
704
- `${results.totalTestFilesComplete} of ${
705
- results.totalTestFiles
706
- } (${this.generatePercentComplete(
707
- results
708
- )}%) complete. ${testsRemaining} remaining...`
709
- )
710
- }
711
- } else {
712
- this.bar.setLabel('0%')
713
- }
714
-
715
- this.bar.setProgress(this.generatePercentComplete(results) / 100)
716
- }
717
-
718
- private generateProgressStats(results: SpruceTestResults): {
719
- percent: number
720
- totalTests: number
721
- totalPassedTests: number
722
- totalTime: number
723
- } {
724
- let totalTests = 0
725
- let totalPassedTests = 0
726
- let totalTime = 0
727
-
728
- results.testFiles?.forEach((file) => {
729
- file.tests?.forEach((test) => {
730
- totalTime += test.duration
731
- if (test.status === 'passed') {
732
- totalPassedTests++
733
- }
734
-
735
- if (test.status === 'passed' || test.status === 'failed') {
736
- totalTests++
737
- }
738
- })
739
- })
740
-
741
- const percent = Math.floor((totalPassedTests / totalTests) * 100)
742
- return {
743
- percent: percent > 0 ? percent : 0,
744
- totalTests,
745
- totalPassedTests,
746
- totalTime,
747
- }
748
- }
749
-
750
- private generatePercentComplete(results: SpruceTestResults): number {
751
- const percent =
752
- (results.totalTestFilesComplete ?? 0) / results.totalTestFiles
753
- if (isNaN(percent)) {
754
- return 0
755
- }
756
- return Math.round(percent * 100)
757
- }
758
-
759
- private generatePercentPassing(results: SpruceTestResults): number {
760
- const percent =
761
- (results.totalPassed ?? 0) / this.getTotalTestFilesRun(results)
762
-
763
- if (isNaN(percent)) {
764
- return 0
765
- }
766
-
767
- return Math.floor(percent * 100)
768
- }
769
-
770
- private getTotalTestFilesRun(results: SpruceTestResults) {
771
- return (
772
- (results.totalTests ?? 0) -
773
- (results.totalSkipped ?? 0) -
774
- (results.totalTodo ?? 0)
775
- )
776
- }
777
-
778
- public render() {
779
- this.table?.computeCells()
780
- this.table?.draw()
781
- }
782
-
783
- public async destroy() {
784
- clearInterval(this.updateInterval)
785
- await this.window.destroy()
786
- }
787
-
788
- public reset() {
789
- this.testLog.setText('')
790
- this.lastResults = {
791
- totalTestFiles: 0,
792
- customErrors: [],
793
- }
794
- this.destroyErrorLog()
795
- this.errorLogItemGenerator.resetStartTimes()
796
- }
797
-
798
- public setStatusLabel(text: string) {
799
- this.statusBar.setText(text)
800
- }
801
-
802
- public appendError(message: string) {
803
- this.lastResults.customErrors.push(message)
804
- }
16
+ private started = false
17
+ private table?: any
18
+ private bar!: ProgressBarWidget
19
+ private bottomLayout!: LayoutWidget
20
+ private testLog!: TextWidget
21
+ private errorLog?: TextWidget
22
+ private errorLogItemGenerator: TestLogItemGenerator
23
+ private lastResults: TestReporterResults = {
24
+ totalTestFiles: 0,
25
+ customErrors: [],
26
+ }
27
+ private updateInterval?: any
28
+ private menu!: MenuBarWidget
29
+ private statusBar!: TextWidget
30
+ private window!: WindowWidget
31
+ private widgetFactory: WidgetFactory
32
+ private selectTestPopup?: PopupWidget
33
+ private topLayout!: LayoutWidget
34
+ private filterInput!: InputWidget
35
+ private filterPattern?: string
36
+ private clearFilterPatternButton!: ButtonWidget
37
+ private isDebugging = false
38
+ private watchMode: WatchMode = 'off'
39
+ private status: TestRunnerStatus = 'ready'
40
+ private countDownTimeInterval?: any
41
+ private cwd: string | undefined
42
+ private orientation: TestReporterOrientation = 'landscape'
43
+
44
+ private handleStartStop?: () => void
45
+ private handleRestart?: () => void
46
+ private handleQuit?: () => void
47
+ private handleRerunTestFile?: (fileName: string) => void
48
+ private handleFilterChange?: (pattern?: string) => void
49
+ private handleOpenTestFile?: (testFile: string) => void
50
+ private handleToggleDebug?: () => void
51
+ private handletoggleStandardWatch?: () => void
52
+ private handleToggleSmartWatch?: () => any
53
+ private minWidth = 50
54
+ private orientationWhenErrorLogWasShown: TestReporterOrientation =
55
+ 'landscape'
56
+
57
+ public constructor(options?: TestReporterOptions) {
58
+ this.cwd = options?.cwd
59
+ this.filterPattern = options?.filterPattern
60
+ this.handleRestart = options?.handleRestart
61
+ this.handleStartStop = options?.handleStartStop
62
+ this.handleQuit = options?.handleQuit
63
+ this.handleRerunTestFile = options?.handleRerunTestFile
64
+ this.handleOpenTestFile = options?.handleOpenTestFile
65
+ this.handleFilterChange = options?.handleFilterPatternChange
66
+ this.status = options?.status ?? 'ready'
67
+ this.handleToggleDebug = options?.handleToggleDebug
68
+ this.handletoggleStandardWatch = options?.handletoggleStandardWatch
69
+ this.isDebugging = options?.isDebugging ?? false
70
+ this.watchMode = options?.watchMode ?? 'off'
71
+ this.handleToggleSmartWatch = options?.handleToggleSmartWatch
72
+
73
+ this.errorLogItemGenerator = new TestLogItemGenerator()
74
+ this.widgetFactory = new WidgetFactory()
75
+ }
76
+
77
+ public setFilterPattern(pattern: string | undefined) {
78
+ this.filterPattern = pattern
79
+ this.filterInput.setValue(pattern ?? '')
80
+ this.clearFilterPatternButton.setText(buildPatternButtonText(pattern))
81
+ }
82
+
83
+ public setIsDebugging(isDebugging: boolean) {
84
+ this.menu.setTextForItem(
85
+ 'toggleDebug',
86
+ `Debug ^${isDebugging ? 'k' : 'w'}^#^${isDebugging ? 'g' : 'r'}${
87
+ isDebugging ? ' • ' : ' • '
88
+ }^`
89
+ )
90
+ this.isDebugging = isDebugging
91
+ }
92
+
93
+ public startCountdownTimer(durationSec: number) {
94
+ clearInterval(this.countDownTimeInterval)
95
+ this.countDownTimeInterval = undefined
96
+
97
+ let remaining = durationSec
98
+
99
+ function renderCountdownTime(time: number) {
100
+ return `Starting ${time} `
101
+ }
102
+
103
+ this.setWatchLabel(renderCountdownTime(remaining))
104
+
105
+ this.countDownTimeInterval = setInterval(() => {
106
+ remaining--
107
+
108
+ if (remaining < 0) {
109
+ this.stopCountdownTimer()
110
+ } else {
111
+ this.setWatchLabel(renderCountdownTime(remaining))
112
+ }
113
+ }, 1000) as any
114
+ }
115
+
116
+ public stopCountdownTimer() {
117
+ clearInterval(this.countDownTimeInterval)
118
+ this.countDownTimeInterval = undefined
119
+ this.setWatchMode(this.watchMode)
120
+ }
121
+
122
+ public setWatchMode(watchMode: WatchMode) {
123
+ this.watchMode = watchMode
124
+ if (!this.countDownTimeInterval) {
125
+ let label = watchMode === 'smart' ? 'Smart Watch' : 'Standard Watch'
126
+ if (watchMode === 'off') {
127
+ label = 'Not Watching'
128
+ }
129
+ this.setWatchLabel(label)
130
+ }
131
+ }
132
+
133
+ private setWatchLabel(label: string) {
134
+ const isWatching = this.watchMode !== 'off'
135
+
136
+ this.menu.setTextForItem(
137
+ 'watchDropdown',
138
+ `${label} ^${isWatching ? 'k' : 'w'}^#^${isWatching ? 'g' : 'r'}${
139
+ isWatching ? ' • ' : ' • '
140
+ }^`
141
+ )
142
+
143
+ this.menu.setTextForItem(
144
+ 'toggleStandardWatch',
145
+ this.watchMode === 'standard' ? '√ Standard' : 'Standard'
146
+ )
147
+
148
+ this.menu.setTextForItem(
149
+ 'toggleSmartWatch',
150
+ this.watchMode === 'smart' ? '√ Smart' : 'Smart'
151
+ )
152
+ }
153
+
154
+ public async start() {
155
+ this.started = true
156
+
157
+ this.window = this.widgetFactory.Widget('window', {})
158
+ this.window.hideCursor()
159
+
160
+ const { width } = this.window.getFrame()
161
+ if (width < this.minWidth) {
162
+ throw new Error(
163
+ `Your screen must be at least ${this.minWidth} characters wide.`
164
+ )
165
+ }
166
+
167
+ void this.window.on('key', this.handleGlobalKeypress.bind(this))
168
+ void this.window.on('kill', this.destroy.bind(this))
169
+ void this.window.on('resize', this.handleWindowResize.bind(this))
170
+
171
+ this.dropInTopLayout()
172
+ this.dropInProgressBar()
173
+ this.dropInMenu()
174
+ this.dropInBottomLayout()
175
+ this.dropInStatusBar()
176
+ this.dropInTestLog()
177
+ this.dropInFilterControls()
178
+
179
+ this.updateOrientation()
180
+
181
+ this.setIsDebugging(this.isDebugging)
182
+ this.setWatchMode(this.watchMode)
183
+ this.setStatus(this.status)
184
+
185
+ this.updateInterval = setInterval(
186
+ this.handleUpdateInterval.bind(this),
187
+ 1000
188
+ )
189
+ }
190
+
191
+ private handleWindowResize() {
192
+ this.updateOrientation()
193
+ }
194
+
195
+ private updateOrientation() {
196
+ const frame = this.window.getFrame()
197
+
198
+ if (frame.width * 0.5 > frame.height) {
199
+ this.orientation = 'landscape'
200
+ } else {
201
+ this.orientation = 'portrait'
202
+ }
203
+ }
204
+
205
+ private dropInMenu() {
206
+ this.menu = this.widgetFactory.Widget('menuBar', {
207
+ parent: this.window,
208
+ left: 0,
209
+ top: 0,
210
+ shouldLockWidthWithParent: true,
211
+ items: [
212
+ {
213
+ label: 'Restart ',
214
+ value: 'restart',
215
+ },
216
+ {
217
+ label: 'Debug ',
218
+ value: 'toggleDebug',
219
+ },
220
+ {
221
+ label: 'Not Watching ',
222
+ value: 'watchDropdown',
223
+ items: [
224
+ {
225
+ label: 'Watch all',
226
+ value: 'toggleStandardWatch',
227
+ },
228
+ {
229
+ label: 'Smart watch',
230
+ value: 'toggleSmartWatch',
231
+ },
232
+ ],
233
+ },
234
+ {
235
+ label: 'Quit',
236
+ value: 'quit',
237
+ },
238
+ ],
239
+ })
240
+
241
+ void this.menu.on('select', this.handleMenuSelect.bind(this))
242
+ }
243
+
244
+ public setStatus(status: TestRunnerStatus) {
245
+ this.status = status
246
+
247
+ this.updateMenuLabels()
248
+ this.closeSelectTestPopup()
249
+ this.bottomLayout.updateLayout()
250
+
251
+ if (status === 'ready') {
252
+ this.setStatusLabel('Starting...')
253
+ } else if (this.status === 'stopped') {
254
+ this.refreshResults()
255
+ this.setStatusLabel('')
256
+ } else if (this.status === 'running') {
257
+ this.setStatusLabel('Running tests...')
258
+ }
259
+ }
260
+
261
+ private updateMenuLabels() {
262
+ let restartLabel = 'Start ^#^r › ^'
263
+ switch (this.status) {
264
+ case 'running':
265
+ restartLabel = 'Stop ^k^#^g › ^'
266
+ break
267
+ case 'stopped':
268
+ restartLabel = `Start ^w^#^r › ^`
269
+ break
270
+ case 'ready':
271
+ restartLabel = 'Booting ^#^K › ^'
272
+ break
273
+ }
274
+
275
+ this.menu.setTextForItem('restart', restartLabel)
276
+ }
277
+
278
+ private handleMenuSelect(payload: { value: string }) {
279
+ switch (payload.value) {
280
+ case 'quit':
281
+ this.handleQuit?.()
282
+ break
283
+ case 'restart':
284
+ this.handleStartStop?.()
285
+ break
286
+ case 'toggleDebug':
287
+ this.handleToggleDebug?.()
288
+ break
289
+ case 'toggleStandardWatch':
290
+ this.handletoggleStandardWatch?.()
291
+ break
292
+ case 'toggleSmartWatch':
293
+ this.handleToggleSmartWatch?.()
294
+ break
295
+ }
296
+ }
297
+
298
+ private handleUpdateInterval() {
299
+ if (this.status !== 'stopped') {
300
+ this.refreshResults()
301
+ }
302
+ }
303
+
304
+ private refreshResults() {
305
+ if (this.lastResults) {
306
+ this.updateLogs()
307
+ }
308
+ }
309
+
310
+ private async handleGlobalKeypress(payload: { key: string }) {
311
+ if (this.window.getFocusedWidget() === this.filterInput) {
312
+ return
313
+ }
314
+
315
+ switch (payload.key) {
316
+ case 'ENTER':
317
+ this.handleRestart?.()
318
+ break
319
+ case 'CTRL_C':
320
+ this.handleQuit?.()
321
+ process.exit()
322
+ break
323
+ }
324
+ }
325
+
326
+ private dropInTestLog() {
327
+ const parent = this.bottomLayout.getChildById('results')
328
+
329
+ if (parent) {
330
+ this.testLog = this.widgetFactory.Widget('text', {
331
+ parent,
332
+ isScrollEnabled: true,
333
+ left: 0,
334
+ top: 0,
335
+ height: '100%',
336
+ width: '100%',
337
+ shouldLockHeightWithParent: true,
338
+ shouldLockWidthWithParent: true,
339
+ })
340
+
341
+ void this.testLog.on('click', this.handleClickTestLog.bind(this))
342
+ }
343
+ }
344
+
345
+ private async handleClickTestLog(payload: { row: number; column: number }) {
346
+ const testFile = this.getFileForLine(payload.row)
347
+ const { row, column } = payload
348
+
349
+ this.closeSelectTestPopup()
350
+
351
+ if (testFile) {
352
+ this.dropInSelectTestPopup({ testFile, column, row })
353
+ }
354
+ }
355
+
356
+ private closeSelectTestPopup() {
357
+ if (this.selectTestPopup) {
358
+ void this.selectTestPopup.destroy()
359
+ this.selectTestPopup = undefined
360
+ }
361
+ }
362
+
363
+ private dropInSelectTestPopup(options: {
364
+ testFile: string
365
+ column: number
366
+ row: number
367
+ }) {
368
+ const { testFile, row, column } = options
369
+
370
+ this.selectTestPopup = this.widgetFactory.Widget('popup', {
371
+ parent: this.window,
372
+ left: Math.max(1, column - 25),
373
+ top: Math.max(4, row - 2),
374
+ width: 50,
375
+ height: 10,
376
+ })
377
+
378
+ this.widgetFactory.Widget('text', {
379
+ parent: this.selectTestPopup,
380
+ left: 1,
381
+ top: 1,
382
+ height: 4,
383
+ width: this.selectTestPopup.getFrame().width - 2,
384
+ text: `What do you wanna do with:\n\n${testFile}`,
385
+ })
386
+
387
+ const open = this.widgetFactory.Widget('button', {
388
+ parent: this.selectTestPopup,
389
+ left: 1,
390
+ top: 6,
391
+ text: 'Open',
392
+ })
393
+
394
+ const rerun = this.widgetFactory.Widget('button', {
395
+ parent: this.selectTestPopup,
396
+ left: 20,
397
+ top: 6,
398
+ text: 'Test',
399
+ })
400
+
401
+ const cancel = this.widgetFactory.Widget('button', {
402
+ parent: this.selectTestPopup,
403
+ left: 37,
404
+ top: 6,
405
+ text: 'Nevermind',
406
+ })
407
+
408
+ void rerun.on('click', () => {
409
+ this.handleRerunTestFile?.(testFile)
410
+ this.closeSelectTestPopup()
411
+ })
412
+ void cancel.on('click', this.closeSelectTestPopup.bind(this))
413
+ void open.on('click', () => {
414
+ this.openTestFile(testFile)
415
+ })
416
+ }
417
+
418
+ private openTestFile(testFile: string) {
419
+ this.handleOpenTestFile?.(testFile)
420
+ this.closeSelectTestPopup()
421
+ }
422
+
423
+ public getFileForLine(row: number): string | undefined {
424
+ let line = this.testLog.getScrollY()
425
+
426
+ for (let file of this.lastResults.testFiles ?? []) {
427
+ const minRow = line
428
+ const maxRow = line + (file.tests ?? []).length
429
+
430
+ if (row >= minRow && row <= maxRow) {
431
+ return file.path
432
+ }
433
+
434
+ line = maxRow
435
+ }
436
+
437
+ return undefined
438
+ }
439
+
440
+ private dropInProgressBar() {
441
+ const parent = this.topLayout.getChildById('progress') ?? this.window
442
+ this.bar = this.widgetFactory.Widget('progressBar', {
443
+ parent,
444
+ left: 0,
445
+ top: 0,
446
+ width: parent.getFrame().width,
447
+ shouldLockWidthWithParent: true,
448
+ label: 'Ready and waiting...',
449
+ progress: 0,
450
+ })
451
+ }
452
+
453
+ private dropInFilterControls() {
454
+ const parent = this.topLayout.getChildById('filter') ?? this.window
455
+
456
+ const buttonWidth = 3
457
+ this.filterInput = this.widgetFactory.Widget('input', {
458
+ parent,
459
+ left: 0,
460
+ label: 'Pattern',
461
+ width: parent.getFrame().width - buttonWidth,
462
+ height: 1,
463
+ shouldLockWidthWithParent: true,
464
+ value: this.filterPattern,
465
+ })
466
+
467
+ void this.filterInput.on('cancel', () => {
468
+ this.filterInput.setValue(this.filterPattern ?? '')
469
+ })
470
+
471
+ void this.filterInput.on('submit', (payload) => {
472
+ this.handleFilterChange?.(payload.value ?? undefined)
473
+ })
474
+
475
+ this.clearFilterPatternButton = this.widgetFactory.Widget('button', {
476
+ parent,
477
+ left: this.filterInput.getFrame().width,
478
+ width: buttonWidth,
479
+ top: 0,
480
+ text: buildPatternButtonText(this.filterPattern),
481
+ shouldLockRightWithParent: true,
482
+ })
483
+
484
+ void this.clearFilterPatternButton.on('click', () => {
485
+ if (this.filterPattern || this.filterPattern?.length === 0) {
486
+ this.handleFilterChange?.(undefined)
487
+ } else {
488
+ this.filterInput.setValue('')
489
+ }
490
+ })
491
+ }
492
+
493
+ private dropInBottomLayout() {
494
+ this.bottomLayout = this.widgetFactory.Widget('layout', {
495
+ parent: this.window,
496
+ width: '100%',
497
+ top: 4,
498
+ height: this.window.getFrame().height - 5,
499
+ shouldLockWidthWithParent: true,
500
+ shouldLockHeightWithParent: true,
501
+ rows: [
502
+ {
503
+ height: '100%',
504
+ columns: [
505
+ {
506
+ id: 'results',
507
+ width: '100%',
508
+ },
509
+ ],
510
+ },
511
+ ],
512
+ })
513
+ }
514
+
515
+ private dropInStatusBar() {
516
+ this.statusBar = this.widgetFactory.Widget('text', {
517
+ parent: this.window,
518
+ top: this.window.getFrame().height - 1,
519
+ width: '100%',
520
+ shouldLockWidthWithParent: true,
521
+ shouldLockBottomWithParent: true,
522
+ backgroundColor: 'yellow',
523
+ foregroundColor: 'black',
524
+ text: '...',
525
+ })
526
+ }
527
+
528
+ private dropInTopLayout() {
529
+ this.topLayout = this.widgetFactory.Widget('layout', {
530
+ parent: this.window,
531
+ width: '100%',
532
+ top: 1,
533
+ height: 3,
534
+ shouldLockWidthWithParent: true,
535
+ shouldLockHeightWithParent: false,
536
+ rows: [
537
+ {
538
+ height: '100%',
539
+ columns: [
540
+ {
541
+ id: 'progress',
542
+ width: 50,
543
+ },
544
+ {
545
+ id: 'filter',
546
+ },
547
+ ],
548
+ },
549
+ ],
550
+ })
551
+ }
552
+
553
+ public updateResults(results: SpruceTestResults) {
554
+ if (!this.started) {
555
+ throw new Error('You must call start() before anything else.')
556
+ }
557
+
558
+ this.lastResults = {
559
+ ...this.lastResults,
560
+ ...results,
561
+ }
562
+
563
+ this.updateProgressBar(results)
564
+
565
+ const percentPassing = this.generatePercentPassing(results)
566
+ const percentComplete = this.generatePercentComplete(results)
567
+
568
+ this.window.setTitle(
569
+ `Testing: ${percentComplete}% complete.${
570
+ percentComplete > 0 ? ` ${percentPassing}% passing.` : ''
571
+ }`
572
+ )
573
+
574
+ this.updateLogs()
575
+ }
576
+
577
+ private updateLogs() {
578
+ if (this.selectTestPopup) {
579
+ return
580
+ }
581
+
582
+ let { logContent, errorContent } = this.resultsToLogContents(
583
+ this.lastResults
584
+ )
585
+
586
+ this.testLog.setText(logContent)
587
+
588
+ if (!errorContent) {
589
+ this.errorLog && this.destroyErrorLog()
590
+ } else {
591
+ !this.errorLog && this.dropInErrorLog()
592
+ const cleanedLog = this.cwd
593
+ ? errorContent.replace(new RegExp(this.cwd + '/', 'gim'), '')
594
+ : errorContent
595
+
596
+ this.errorLog?.setText(cleanedLog)
597
+ }
598
+ }
599
+
600
+ private resultsToLogContents(results: SpruceTestResults) {
601
+ let logContent = ''
602
+ let errorContent = ''
603
+
604
+ results.testFiles?.forEach((file) => {
605
+ logContent += this.errorLogItemGenerator.generateLogItemForFile(
606
+ file,
607
+ this.status
608
+ )
609
+ errorContent +=
610
+ this.errorLogItemGenerator.generateErrorLogItemForFile(file)
611
+ })
612
+
613
+ if (this.lastResults.customErrors.length > 0) {
614
+ errorContent =
615
+ this.lastResults.customErrors
616
+ .map((err) => chalk.red(err))
617
+ .join(`\n`) + `\n${errorContent}`
618
+ }
619
+
620
+ return { logContent, errorContent }
621
+ }
622
+
623
+ private dropInErrorLog() {
624
+ this.orientationWhenErrorLogWasShown = this.orientation
625
+
626
+ if (this.bottomLayout.getRows().length === 1) {
627
+ if (this.orientation === 'portrait') {
628
+ this.bottomLayout.addRow({
629
+ id: 'row_2',
630
+ columns: [{ id: 'errors', width: '100%' }],
631
+ })
632
+
633
+ this.bottomLayout.setRowHeight(0, '60%')
634
+ this.bottomLayout.setRowHeight(1, '40%')
635
+ } else {
636
+ this.bottomLayout.addColumn(0, { id: 'errors', width: '50%' })
637
+ this.bottomLayout.setColumnWidth({
638
+ rowIdx: 0,
639
+ columnIdx: 0,
640
+ width: '50%',
641
+ })
642
+ }
643
+
644
+ this.bottomLayout.updateLayout()
645
+
646
+ const cell = this.bottomLayout.getChildById('errors')
647
+
648
+ if (!cell) {
649
+ throw new Error('Pulling child error')
650
+ }
651
+
652
+ this.errorLog = this.widgetFactory.Widget('text', {
653
+ parent: cell,
654
+ width: '100%',
655
+ height: '100%',
656
+ isScrollEnabled: true,
657
+ shouldAutoScrollWhenAppendingContent: false,
658
+ shouldLockHeightWithParent: true,
659
+ shouldLockWidthWithParent: true,
660
+ padding: { left: 1 },
661
+ })
662
+ }
663
+ }
664
+
665
+ private destroyErrorLog() {
666
+ if (this.errorLog) {
667
+ void this.errorLog?.destroy()
668
+ this.errorLog = undefined
669
+
670
+ if (this.orientationWhenErrorLogWasShown === 'landscape') {
671
+ this.bottomLayout.removeColumn(0, 1)
672
+ this.bottomLayout.setColumnWidth({
673
+ rowIdx: 0,
674
+ columnIdx: 0,
675
+ width: '100%',
676
+ })
677
+ } else {
678
+ this.bottomLayout.removeRow(1)
679
+ this.bottomLayout.setRowHeight(0, '100%')
680
+ }
681
+ this.bottomLayout.updateLayout()
682
+ }
683
+ }
684
+
685
+ private updateProgressBar(results: SpruceTestResults) {
686
+ if (results.totalTestFilesComplete ?? 0 > 0) {
687
+ const testsRemaining =
688
+ results.totalTestFiles - (results.totalTestFilesComplete ?? 0)
689
+
690
+ if (testsRemaining === 0) {
691
+ const { percent, totalTests, totalPassedTests, totalTime } =
692
+ this.generateProgressStats(results)
693
+
694
+ this.bar.setLabel(
695
+ `Finished! ${totalPassedTests} of ${totalTests} (${percent}%) passed in ${durationUtil.msToFriendly(
696
+ totalTime
697
+ )}.${percent < 100 ? ` Don't give up! 💪` : ''}`
698
+ )
699
+ } else {
700
+ this.bar.setLabel(
701
+ `${results.totalTestFilesComplete} of ${
702
+ results.totalTestFiles
703
+ } (${this.generatePercentComplete(
704
+ results
705
+ )}%) complete. ${testsRemaining} remaining...`
706
+ )
707
+ }
708
+ } else {
709
+ this.bar.setLabel('0%')
710
+ }
711
+
712
+ this.bar.setProgress(this.generatePercentComplete(results) / 100)
713
+ }
714
+
715
+ private generateProgressStats(results: SpruceTestResults): {
716
+ percent: number
717
+ totalTests: number
718
+ totalPassedTests: number
719
+ totalTime: number
720
+ } {
721
+ let totalTests = 0
722
+ let totalPassedTests = 0
723
+ let totalTime = 0
724
+
725
+ results.testFiles?.forEach((file) => {
726
+ file.tests?.forEach((test) => {
727
+ totalTime += test.duration
728
+ if (test.status === 'passed') {
729
+ totalPassedTests++
730
+ }
731
+
732
+ if (test.status === 'passed' || test.status === 'failed') {
733
+ totalTests++
734
+ }
735
+ })
736
+ })
737
+
738
+ const percent = Math.floor((totalPassedTests / totalTests) * 100)
739
+ return {
740
+ percent: percent > 0 ? percent : 0,
741
+ totalTests,
742
+ totalPassedTests,
743
+ totalTime,
744
+ }
745
+ }
746
+
747
+ private generatePercentComplete(results: SpruceTestResults): number {
748
+ const percent =
749
+ (results.totalTestFilesComplete ?? 0) / results.totalTestFiles
750
+ if (isNaN(percent)) {
751
+ return 0
752
+ }
753
+ return Math.round(percent * 100)
754
+ }
755
+
756
+ private generatePercentPassing(results: SpruceTestResults): number {
757
+ const percent =
758
+ (results.totalPassed ?? 0) / this.getTotalTestFilesRun(results)
759
+
760
+ if (isNaN(percent)) {
761
+ return 0
762
+ }
763
+
764
+ return Math.floor(percent * 100)
765
+ }
766
+
767
+ private getTotalTestFilesRun(results: SpruceTestResults) {
768
+ return (
769
+ (results.totalTests ?? 0) -
770
+ (results.totalSkipped ?? 0) -
771
+ (results.totalTodo ?? 0)
772
+ )
773
+ }
774
+
775
+ public render() {
776
+ this.table?.computeCells()
777
+ this.table?.draw()
778
+ }
779
+
780
+ public async destroy() {
781
+ clearInterval(this.updateInterval)
782
+ await this.window.destroy()
783
+ }
784
+
785
+ public reset() {
786
+ this.testLog.setText('')
787
+ this.lastResults = {
788
+ totalTestFiles: 0,
789
+ customErrors: [],
790
+ }
791
+ this.destroyErrorLog()
792
+ this.errorLogItemGenerator.resetStartTimes()
793
+ }
794
+
795
+ public setStatusLabel(text: string) {
796
+ this.statusBar.setText(text)
797
+ }
798
+
799
+ public appendError(message: string) {
800
+ this.lastResults.customErrors.push(message)
801
+ }
805
802
  }
806
803
  function buildPatternButtonText(pattern: string | undefined): string {
807
- return pattern ? ' x ' : ' - '
804
+ return pattern ? ' x ' : ' - '
808
805
  }
809
806
 
810
807
  interface TestReporterOptions {
811
- handleStartStop?: () => void
812
- handleRestart?: () => void
813
- handleQuit?: () => void
814
- onRequestOpenTestFile?: () => void
815
- handleRerunTestFile?: (fileName: string) => void
816
- handleOpenTestFile?: (fileName: string) => void
817
- handleFilterPatternChange?: (pattern?: string) => void
818
- handleToggleDebug?: () => void
819
- handletoggleStandardWatch?: () => void
820
- handleToggleSmartWatch?: () => void
821
- filterPattern?: string
822
- isDebugging?: boolean
823
- watchMode?: WatchMode
824
- status?: TestRunnerStatus
825
- cwd?: string
808
+ handleStartStop?: () => void
809
+ handleRestart?: () => void
810
+ handleQuit?: () => void
811
+ onRequestOpenTestFile?: () => void
812
+ handleRerunTestFile?: (fileName: string) => void
813
+ handleOpenTestFile?: (fileName: string) => void
814
+ handleFilterPatternChange?: (pattern?: string) => void
815
+ handleToggleDebug?: () => void
816
+ handletoggleStandardWatch?: () => void
817
+ handleToggleSmartWatch?: () => void
818
+ filterPattern?: string
819
+ isDebugging?: boolean
820
+ watchMode?: WatchMode
821
+ status?: TestRunnerStatus
822
+ cwd?: string
826
823
  }
827
824
 
828
825
  type TestReporterResults = SpruceTestResults & {
829
- customErrors: string[]
826
+ customErrors: string[]
830
827
  }
831
828
 
832
829
  export type TestReporterOrientation = 'landscape' | 'portrait'