@sprucelabs/spruce-cli 17.1.53 → 17.1.54

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 (1060) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js +0 -4
  3. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/bootError.schema.js +0 -4
  5. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/buildFailed.schema.js +0 -4
  7. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js +0 -4
  9. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/commandAborted.schema.js +0 -4
  11. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js +0 -5
  13. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js +0 -5
  15. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js +0 -7
  17. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js +0 -4
  19. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/deployFailed.schema.js +0 -4
  21. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js +0 -4
  23. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js +0 -4
  25. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js +0 -4
  27. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js +0 -8
  29. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/failedToImport.schema.js +0 -4
  31. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js +0 -4
  33. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/fileExists.schema.js +0 -4
  35. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/generic.schema.js +0 -4
  37. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js +0 -4
  39. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js +0 -5
  41. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js +0 -4
  43. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  44. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js +0 -4
  45. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  46. package/build/.spruce/errors/spruceCli/lintFailed.schema.js +0 -4
  47. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  48. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js +0 -4
  49. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  50. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js +0 -6
  51. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  52. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js +0 -5
  53. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  54. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js +0 -4
  55. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  56. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js +0 -4
  57. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  58. package/build/.spruce/errors/spruceCli/notImplemented.schema.js +0 -4
  59. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  60. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js +0 -4
  61. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  62. package/build/.spruce/errors/spruceCli/schemaExists.schema.js +0 -5
  63. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  64. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js +0 -4
  65. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  66. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js +0 -7
  67. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  68. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js +0 -4
  69. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  70. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js +0 -4
  71. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  72. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js +0 -4
  73. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  74. package/build/.spruce/errors/spruceCli/storeExists.schema.js +0 -4
  75. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  76. package/build/.spruce/errors/spruceCli/testFailed.schema.js +0 -6
  77. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  78. package/build/.spruce/errors/spruceCli/themeExists.schema.js +0 -4
  79. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  80. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js +0 -4
  81. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  82. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js +0 -4
  83. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  84. package/build/.spruce/events/events.contract.js +0 -10
  85. package/build/.spruce/events/events.contract.js.map +1 -1
  86. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +0 -4
  87. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  88. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +0 -5
  89. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  90. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +0 -5
  91. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  92. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js +0 -4
  93. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  94. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js +0 -5
  95. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  96. package/build/.spruce/schemas/fields/fieldClassMap.js +0 -2
  97. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
  98. package/build/.spruce/schemas/fields/fields.types.js +0 -1
  99. package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
  100. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js +0 -4
  101. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  102. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js +0 -4
  103. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  104. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js +0 -10
  105. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  106. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js +0 -4
  107. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  108. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js +0 -4
  109. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  110. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js +0 -10
  111. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  112. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js +0 -4
  113. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  114. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.js +0 -4
  115. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTarget.schema.js.map +1 -1
  116. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.js +0 -8
  117. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeEmitTargetAndPayload.schema.js.map +1 -1
  118. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.js +0 -6
  119. package/build/.spruce/schemas/heartwood/v2021_02_11/getActiveThemeResponsePayload.schema.js.map +1 -1
  120. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js +0 -8
  121. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  122. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js +0 -9
  123. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  124. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js +0 -4
  125. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  126. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js +0 -6
  127. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  128. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js +0 -6
  129. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  130. package/build/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.js +0 -4
  131. package/build/.spruce/schemas/heartwood/v2021_02_11/registerDashboardCardsResponsePayload.schema.js.map +1 -1
  132. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js +0 -8
  133. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  134. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js +0 -8
  135. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  136. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js +0 -4
  137. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  138. package/build/.spruce/schemas/heartwood/v2021_02_11/theme.schema.js +0 -8
  139. package/build/.spruce/schemas/heartwood/v2021_02_11/theme.schema.js.map +1 -1
  140. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.js +0 -6
  141. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitPayload.schema.js.map +1 -1
  142. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.js +0 -4
  143. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTarget.schema.js.map +1 -1
  144. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.js +0 -10
  145. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema.js.map +1 -1
  146. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.js +0 -6
  147. package/build/.spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema.js.map +1 -1
  148. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js +0 -1
  149. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
  150. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js +0 -1
  151. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
  152. package/build/.spruce/schemas/schemas.types.js +0 -2
  153. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  154. package/build/.spruce/schemas/spruce/v2020_07_22/choice.schema.js +0 -1
  155. package/build/.spruce/schemas/spruce/v2020_07_22/choice.schema.js.map +1 -1
  156. package/build/.spruce/schemas/spruce/v2020_07_22/link.schema.js +0 -1
  157. package/build/.spruce/schemas/spruce/v2020_07_22/link.schema.js.map +1 -1
  158. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js +0 -1
  159. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
  160. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js +0 -1
  161. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
  162. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js +0 -1
  163. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
  164. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js +0 -1
  165. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
  166. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js +0 -1
  167. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
  168. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js +0 -1
  169. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
  170. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js +0 -1
  171. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
  172. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js +0 -1
  173. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
  174. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js +0 -1
  175. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
  176. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js +0 -1
  177. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
  178. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js +0 -1
  179. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
  180. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js +0 -1
  181. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
  182. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js +0 -7
  183. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  184. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js +0 -5
  185. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  186. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js +0 -27
  187. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  188. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js +0 -5
  189. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  190. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js +0 -29
  191. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  192. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js +0 -8
  193. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  194. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js +0 -7
  195. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  196. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js +0 -7
  197. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  198. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js +0 -4
  199. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  200. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js +0 -12
  201. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  202. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js +0 -14
  203. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  204. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js +0 -6
  205. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  206. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js +0 -4
  207. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  208. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js +0 -5
  209. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  210. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js +0 -7
  211. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  212. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js +0 -4
  213. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  214. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js +0 -5
  215. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  216. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js +0 -4
  217. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  218. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js +0 -6
  219. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  220. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js +0 -22
  221. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  222. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js +0 -8
  223. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  224. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js +0 -6
  225. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  226. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js +0 -21
  227. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  228. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js +0 -9
  229. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  230. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js +0 -4
  231. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  232. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js +0 -7
  233. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  234. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js +0 -1
  235. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
  236. package/build/.spruce/skill.types.js +0 -3
  237. package/build/.spruce/skill.types.js.map +1 -1
  238. package/build/GlobalEmitter.js +0 -22
  239. package/build/GlobalEmitter.js.map +1 -1
  240. package/build/InFlightEntertainment.js +0 -13
  241. package/build/InFlightEntertainment.js.map +1 -1
  242. package/build/__tests__/behavioral/AddingADependency.test.js +0 -69
  243. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  244. package/build/__tests__/behavioral/BlockingCommands.test.js +0 -34
  245. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  246. package/build/__tests__/behavioral/BootingTheCli.test.js +0 -23
  247. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  248. package/build/__tests__/behavioral/BootingWithBadFiles.test.js +0 -41
  249. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  250. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js +6 -48
  251. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  252. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js +0 -34
  253. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  254. package/build/__tests__/behavioral/DeployingASkill.test.js +0 -215
  255. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  256. package/build/__tests__/behavioral/DeployingToSandbox.test.js +4 -141
  257. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  258. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +0 -78
  259. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  260. package/build/__tests__/behavioral/GettingCliVersion.test.js +0 -33
  261. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  262. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +0 -89
  263. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  264. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js +0 -31
  265. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  266. package/build/__tests__/behavioral/LoggingInAsASkill.test.js +0 -84
  267. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  268. package/build/__tests__/behavioral/ManagingDependencies.test.js +0 -55
  269. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  270. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js +0 -32
  271. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  272. package/build/__tests__/behavioral/RebuildingASkill.test.js +0 -36
  273. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  274. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js +0 -33
  275. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  276. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +0 -47
  277. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  278. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js +0 -68
  279. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  280. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js +0 -58
  281. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  282. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +0 -42
  283. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  284. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +3 -64
  285. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  286. package/build/__tests__/behavioral/SettingRemote.test.js +0 -49
  287. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  288. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js +0 -49
  289. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  290. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +6 -142
  291. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  292. package/build/__tests__/behavioral/SettingUpVscode.test.js +0 -40
  293. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  294. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +0 -54
  295. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  296. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js +0 -35
  297. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  298. package/build/__tests__/behavioral/TestingAConversation.test.js +0 -77
  299. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  300. package/build/__tests__/behavioral/TestingDataStores.test.js +0 -51
  301. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  302. package/build/__tests__/behavioral/WatchingSkillViews.test.js +1 -120
  303. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  304. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js +0 -58
  305. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  306. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js +0 -52
  307. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  308. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js +16 -97
  309. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  310. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +0 -32
  311. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  312. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +0 -95
  313. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  314. package/build/__tests__/behavioral/events/CreatingAListener.test.js +2 -160
  315. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  316. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +0 -135
  317. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  318. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +7 -154
  319. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  320. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +1 -154
  321. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  322. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +0 -39
  323. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  324. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js +0 -41
  325. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  326. package/build/__tests__/behavioral/events/SettingUpEvents.test.js +0 -25
  327. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  328. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +0 -43
  329. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  330. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +0 -38
  331. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  332. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +0 -55
  333. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  334. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js +0 -38
  335. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  336. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +0 -31
  337. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  338. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +0 -79
  339. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  340. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js +0 -37
  341. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  342. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js +0 -59
  343. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js.map +1 -1
  344. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +2 -107
  345. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  346. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js +0 -37
  347. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  348. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +0 -43
  349. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  350. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js +5 -70
  351. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  352. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js +0 -32
  353. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  354. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +14 -215
  355. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  356. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +0 -40
  357. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  358. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +0 -30
  359. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  360. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js +0 -26
  361. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  362. package/build/__tests__/behavioral/skill/BootingASkill.test.js +0 -54
  363. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  364. package/build/__tests__/behavioral/skill/CreatingASkill.test.js +0 -35
  365. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  366. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +0 -61
  367. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  368. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js +0 -89
  369. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  370. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +22 -116
  371. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  372. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +0 -64
  373. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  374. package/build/__tests__/behavioral/tests/CreatingATest.test.js +6 -115
  375. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  376. package/build/__tests__/behavioral/tests/RunningTests.test.js +0 -43
  377. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  378. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +2 -138
  379. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  380. package/build/__tests__/behavioral/tests/SettingUpTests.test.js +2 -31
  381. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  382. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js +0 -48
  383. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  384. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +0 -65
  385. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  386. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +0 -53
  387. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  388. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js +0 -117
  389. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  390. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js +5 -101
  391. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  392. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -117
  393. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  394. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +0 -67
  395. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  396. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +0 -65
  397. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  398. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +5 -37
  399. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  400. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js +0 -62
  401. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  402. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -111
  403. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  404. package/build/__tests__/behavioral/views/CreatingATheme.test.js +0 -55
  405. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  406. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js +0 -47
  407. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  408. package/build/__tests__/behavioral/views/SettingUpViews.test.js +0 -30
  409. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  410. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +0 -59
  411. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  412. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +0 -121
  413. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  414. package/build/__tests__/implementation/ActionExecuter.test.js +0 -57
  415. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  416. package/build/__tests__/implementation/ActionExecuter2.test.js +0 -112
  417. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  418. package/build/__tests__/implementation/ActionExecuter3.test.js +0 -40
  419. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  420. package/build/__tests__/implementation/ActionExecuter4.test.js +2 -38
  421. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  422. package/build/__tests__/implementation/ArgParser.test.js +0 -28
  423. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  424. package/build/__tests__/implementation/BuildService.test.js +0 -31
  425. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  426. package/build/__tests__/implementation/BulkImporting.test.js +0 -86
  427. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  428. package/build/__tests__/implementation/CachingImports.test.js +0 -59
  429. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  430. package/build/__tests__/implementation/CommandOptionBuilder.test.js +0 -29
  431. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  432. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js +0 -60
  433. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  434. package/build/__tests__/implementation/DataStoreStore.test.js +0 -78
  435. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  436. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js +2 -34
  437. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  438. package/build/__tests__/implementation/EventContractCleanerUtil.test.js +0 -43
  439. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  440. package/build/__tests__/implementation/EventStore.test.js +0 -155
  441. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  442. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +80 -129
  443. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  444. package/build/__tests__/implementation/FeatureCommandAttacher.test.js +0 -78
  445. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  446. package/build/__tests__/implementation/FeatureFixture.test.js +2 -42
  447. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  448. package/build/__tests__/implementation/FeatureInstaller.test.js +0 -41
  449. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  450. package/build/__tests__/implementation/FeaturesUtil.test.js +0 -25
  451. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  452. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js +0 -30
  453. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  454. package/build/__tests__/implementation/GlobalEmitter.js +0 -22
  455. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  456. package/build/__tests__/implementation/Introspection.test.js +0 -22
  457. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  458. package/build/__tests__/implementation/JestJsonParser.test.js +0 -61
  459. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  460. package/build/__tests__/implementation/LintService.test.js +0 -33
  461. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  462. package/build/__tests__/implementation/ListenerStore.test.js +2 -19
  463. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  464. package/build/__tests__/implementation/OnboardingScriptLoader.test.js +0 -43
  465. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  466. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +0 -74
  467. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  468. package/build/__tests__/implementation/OnboardingStore.test.js +0 -39
  469. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  470. package/build/__tests__/implementation/OrganizationStore.test.js +0 -59
  471. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  472. package/build/__tests__/implementation/ParentTestFinder.test.js +0 -35
  473. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  474. package/build/__tests__/implementation/PkgService.test.js +0 -55
  475. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  476. package/build/__tests__/implementation/SchemaStore.test.js +20 -154
  477. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  478. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +0 -37
  479. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  480. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js +0 -72
  481. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  482. package/build/__tests__/implementation/ServiceFactory.test.js +0 -25
  483. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  484. package/build/__tests__/implementation/SettingUpANodeModule.test.js +0 -35
  485. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  486. package/build/__tests__/implementation/SkillStore.test.js +0 -93
  487. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  488. package/build/__tests__/implementation/StoreFeature.test.js +0 -31
  489. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  490. package/build/__tests__/implementation/TestReporter.test.js +0 -35
  491. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  492. package/build/__tests__/implementation/TestRunner.test.js +0 -102
  493. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  494. package/build/__tests__/implementation/ValueTypeMapping.test.js +0 -31
  495. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  496. package/build/__tests__/implementation/Widgets.test.js +0 -42
  497. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  498. package/build/__tests__/support/onTestFileResult.js +0 -2
  499. package/build/__tests__/support/onTestFileResult.js.map +1 -1
  500. package/build/__tests__/support/scripts/first.script.js +0 -7
  501. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  502. package/build/__tests__/support/scripts/second.script.js.map +1 -1
  503. package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
  504. package/build/addons/filePrompt.addon.js +1 -3
  505. package/build/addons/filePrompt.addon.js.map +1 -1
  506. package/build/cli.js +14 -165
  507. package/build/cli.js.map +1 -1
  508. package/build/components/AbstractComponent.js +0 -10
  509. package/build/components/AbstractComponent.js.map +1 -1
  510. package/build/components/FormComponent.js +36 -113
  511. package/build/components/FormComponent.js.map +1 -1
  512. package/build/components/QuizComponent.js +45 -88
  513. package/build/components/QuizComponent.js.map +1 -1
  514. package/build/constants.js.map +1 -1
  515. package/build/errors/SpruceError.js +2 -86
  516. package/build/errors/SpruceError.js.map +1 -1
  517. package/build/errors/actionCancelled.builder.js +0 -3
  518. package/build/errors/actionCancelled.builder.js.map +1 -1
  519. package/build/errors/bootError.builder.js +0 -3
  520. package/build/errors/bootError.builder.js.map +1 -1
  521. package/build/errors/buildFailed.builder.js +0 -3
  522. package/build/errors/buildFailed.builder.js.map +1 -1
  523. package/build/errors/cacheNotEnabled.builder.js +0 -3
  524. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  525. package/build/errors/commandAborted.builder.js +0 -3
  526. package/build/errors/commandAborted.builder.js.map +1 -1
  527. package/build/errors/commandBlocked.builder.js +0 -3
  528. package/build/errors/commandBlocked.builder.js.map +1 -1
  529. package/build/errors/commandNotImplemented.builder.js +0 -3
  530. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  531. package/build/errors/createAutoloaderFailed.builder.js +0 -3
  532. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  533. package/build/errors/dependencyExists.builder.js +0 -3
  534. package/build/errors/dependencyExists.builder.js.map +1 -1
  535. package/build/errors/deployFailed.builder.js +0 -3
  536. package/build/errors/deployFailed.builder.js.map +1 -1
  537. package/build/errors/directoryEmpty.builder.js +0 -3
  538. package/build/errors/directoryEmpty.builder.js.map +1 -1
  539. package/build/errors/directoryNotSkill.builder.js +0 -3
  540. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  541. package/build/errors/dockerNotStarted.builder.js +0 -3
  542. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  543. package/build/errors/executingCommandFailed.builder.js +0 -3
  544. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  545. package/build/errors/failedToImport.builder.js +0 -2
  546. package/build/errors/failedToImport.builder.js.map +1 -1
  547. package/build/errors/featureNotInstalled.builder.js +0 -3
  548. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  549. package/build/errors/fileExists.builder.js +0 -2
  550. package/build/errors/fileExists.builder.js.map +1 -1
  551. package/build/errors/generic.builder.js +0 -2
  552. package/build/errors/generic.builder.js.map +1 -1
  553. package/build/errors/invalidCommand.builder.js +0 -2
  554. package/build/errors/invalidCommand.builder.js.map +1 -1
  555. package/build/errors/invalidEventContract.builder.js +0 -3
  556. package/build/errors/invalidEventContract.builder.js.map +1 -1
  557. package/build/errors/invalidFeatureCode.builder.js +0 -3
  558. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  559. package/build/errors/invalidTestDirectory.builder.js +0 -3
  560. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  561. package/build/errors/lintFailed.builder.js +0 -2
  562. package/build/errors/lintFailed.builder.js.map +1 -1
  563. package/build/errors/mercuryResponseError.builder.js +0 -3
  564. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  565. package/build/errors/missingDependencies.builder.js +0 -3
  566. package/build/errors/missingDependencies.builder.js.map +1 -1
  567. package/build/errors/noOrganizationsFound.builder.js +0 -3
  568. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  569. package/build/errors/noSkillsRegistered.builder.js +0 -3
  570. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  571. package/build/errors/notImplemented.builder.js +0 -2
  572. package/build/errors/notImplemented.builder.js.map +1 -1
  573. package/build/errors/notLoggedIn.builder.js +0 -3
  574. package/build/errors/notLoggedIn.builder.js.map +1 -1
  575. package/build/errors/schemaExists.builder.js +0 -3
  576. package/build/errors/schemaExists.builder.js.map +1 -1
  577. package/build/errors/schemaFailedToImport.builder.js +0 -3
  578. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  579. package/build/errors/schemaTemplateItemBuildingFailed.builder.js +0 -3
  580. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  581. package/build/errors/skillNotFound.builder.js +0 -3
  582. package/build/errors/skillNotFound.builder.js.map +1 -1
  583. package/build/errors/skillNotRegistered.builder.js +0 -3
  584. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  585. package/build/errors/skillViewExists.builder.js +0 -3
  586. package/build/errors/skillViewExists.builder.js.map +1 -1
  587. package/build/errors/storeExists.builder.js +0 -3
  588. package/build/errors/storeExists.builder.js.map +1 -1
  589. package/build/errors/testFailed.builder.js +0 -3
  590. package/build/errors/testFailed.builder.js.map +1 -1
  591. package/build/errors/themeExists.builder.js +0 -3
  592. package/build/errors/themeExists.builder.js.map +1 -1
  593. package/build/errors/transportAlreadyExists.builder.js +0 -3
  594. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  595. package/build/errors/vscodeNotInstalled.builder.js +0 -3
  596. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  597. package/build/features/AbstractAction.js +0 -36
  598. package/build/features/AbstractAction.js.map +1 -1
  599. package/build/features/AbstractFeature.js +0 -40
  600. package/build/features/AbstractFeature.js.map +1 -1
  601. package/build/features/ActionExecuter.js +0 -85
  602. package/build/features/ActionExecuter.js.map +1 -1
  603. package/build/features/ActionFactory.js +9 -30
  604. package/build/features/ActionFactory.js.map +1 -1
  605. package/build/features/ActionQuestionAsker.js +0 -111
  606. package/build/features/ActionQuestionAsker.js.map +1 -1
  607. package/build/features/FeatureCommandAttacher.js +16 -64
  608. package/build/features/FeatureCommandAttacher.js.map +1 -1
  609. package/build/features/FeatureInstaller.js +5 -157
  610. package/build/features/FeatureInstaller.js.map +1 -1
  611. package/build/features/FeatureInstallerFactory.js +5 -37
  612. package/build/features/FeatureInstallerFactory.js.map +1 -1
  613. package/build/features/OverrideActionDecorator.js +11 -52
  614. package/build/features/OverrideActionDecorator.js.map +1 -1
  615. package/build/features/cache/CacheFeature.js +0 -25
  616. package/build/features/cache/CacheFeature.js.map +1 -1
  617. package/build/features/cache/actions/DisableAction.js +0 -34
  618. package/build/features/cache/actions/DisableAction.js.map +1 -1
  619. package/build/features/cache/actions/EnableAction.js +0 -35
  620. package/build/features/cache/actions/EnableAction.js.map +1 -1
  621. package/build/features/cache/constants.js.map +1 -1
  622. package/build/features/conversation/ConversationFeature.js +0 -35
  623. package/build/features/conversation/ConversationFeature.js.map +1 -1
  624. package/build/features/conversation/actions/CreateAction.js +0 -27
  625. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  626. package/build/features/conversation/actions/TestAction.js +2 -48
  627. package/build/features/conversation/actions/TestAction.js.map +1 -1
  628. package/build/features/conversation/stores/ConversationStore.js +0 -30
  629. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  630. package/build/features/conversation/writers/ConversationWriter.js +0 -24
  631. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  632. package/build/features/dependencies/DependencyFeature.js +0 -25
  633. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  634. package/build/features/dependencies/actions/AddAction.js +0 -39
  635. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  636. package/build/features/dependencies/actions/ManageAction.js +0 -34
  637. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  638. package/build/features/deploy/DeployFeature.js +0 -26
  639. package/build/features/deploy/DeployFeature.js.map +1 -1
  640. package/build/features/deploy/actions/HerokuAction.js +0 -139
  641. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  642. package/build/features/deploy/writers/DeployWriter.js +0 -16
  643. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  644. package/build/features/error/ErrorFeature.js +0 -53
  645. package/build/features/error/ErrorFeature.js.map +1 -1
  646. package/build/features/error/ParentTestFinder.js +0 -17
  647. package/build/features/error/ParentTestFinder.js.map +1 -1
  648. package/build/features/error/actions/CreateAction.js +0 -33
  649. package/build/features/error/actions/CreateAction.js.map +1 -1
  650. package/build/features/error/actions/SyncAction.js +0 -51
  651. package/build/features/error/actions/SyncAction.js.map +1 -1
  652. package/build/features/error/writers/ErrorWriter.js +0 -72
  653. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  654. package/build/features/event/EventFeature.js +0 -80
  655. package/build/features/event/EventFeature.js.map +1 -1
  656. package/build/features/event/actions/CreateAction.js +0 -43
  657. package/build/features/event/actions/CreateAction.js.map +1 -1
  658. package/build/features/event/actions/ListenAction.js +1 -101
  659. package/build/features/event/actions/ListenAction.js.map +1 -1
  660. package/build/features/event/actions/SetRemoteAction.js +0 -27
  661. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  662. package/build/features/event/actions/SyncAction.js +0 -31
  663. package/build/features/event/actions/SyncAction.js.map +1 -1
  664. package/build/features/event/actions/SyncListenersAction.js +0 -30
  665. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  666. package/build/features/event/builders/EventContractBuilder.js +0 -52
  667. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  668. package/build/features/event/builders/ListenerTemplateItemBuilder.js +1 -19
  669. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  670. package/build/features/event/services/EventSettingsService.js +0 -7
  671. package/build/features/event/services/EventSettingsService.js.map +1 -1
  672. package/build/features/event/services/RemoteService.js +0 -2
  673. package/build/features/event/services/RemoteService.js.map +1 -1
  674. package/build/features/event/stores/EventStore.js +5 -114
  675. package/build/features/event/stores/EventStore.js.map +1 -1
  676. package/build/features/event/stores/ListenerStore.js +0 -36
  677. package/build/features/event/stores/ListenerStore.js.map +1 -1
  678. package/build/features/event/writers/EventWriter.js +2 -69
  679. package/build/features/event/writers/EventWriter.js.map +1 -1
  680. package/build/features/eventContract/EventContractFeature.js +0 -23
  681. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  682. package/build/features/eventContract/actions/PullAction.js +0 -31
  683. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  684. package/build/features/feature.utilities.js +0 -12
  685. package/build/features/feature.utilities.js.map +1 -1
  686. package/build/features/features.types.js +0 -4
  687. package/build/features/features.types.js.map +1 -1
  688. package/build/features/log/LogFeature.js +0 -20
  689. package/build/features/log/LogFeature.js.map +1 -1
  690. package/build/features/log/actions/CreateTransportAction.js +0 -29
  691. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  692. package/build/features/log/writers/LogWriter.js +0 -25
  693. package/build/features/log/writers/LogWriter.js.map +1 -1
  694. package/build/features/node/NodeFeature.js +2 -57
  695. package/build/features/node/NodeFeature.js.map +1 -1
  696. package/build/features/node/actions/CreateAction.js +0 -26
  697. package/build/features/node/actions/CreateAction.js.map +1 -1
  698. package/build/features/node/actions/UpdateDependenciesAction.js +4 -66
  699. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  700. package/build/features/node/actions/UpgradeAction.js +0 -51
  701. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  702. package/build/features/node/writers/NodeWriter.js +0 -31
  703. package/build/features/node/writers/NodeWriter.js.map +1 -1
  704. package/build/features/onboard/OnboardFeature.js +0 -51
  705. package/build/features/onboard/OnboardFeature.js.map +1 -1
  706. package/build/features/onboard/ScriptLoader.js +0 -21
  707. package/build/features/onboard/ScriptLoader.js.map +1 -1
  708. package/build/features/onboard/ScriptPlayer.js +0 -47
  709. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  710. package/build/features/onboard/actions/OnboardAction.js +0 -32
  711. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  712. package/build/features/onboard/scripts/onboarding.first.script.js +1 -25
  713. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  714. package/build/features/onboard/scripts/onboarding.immersive.script.js +0 -12
  715. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  716. package/build/features/onboard/scripts/onboarding.returning.script.js +0 -13
  717. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  718. package/build/features/onboard/scripts/onboarding.short.script.js +0 -21
  719. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  720. package/build/features/onboard/scripts/todo/todo.create.skill.script.js +0 -7
  721. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  722. package/build/features/onboard/scripts/todo/todo.test.script.js +0 -6
  723. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  724. package/build/features/onboard/scripts/wrongCommand.script.js +0 -12
  725. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  726. package/build/features/onboard/stores/OnboardingStore.js +0 -25
  727. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  728. package/build/features/organization/OrganizationFeature.js +0 -20
  729. package/build/features/organization/OrganizationFeature.js.map +1 -1
  730. package/build/features/organization/actions/CreateAction.js +0 -27
  731. package/build/features/organization/actions/CreateAction.js.map +1 -1
  732. package/build/features/organization/actions/InstallAction.js +0 -47
  733. package/build/features/organization/actions/InstallAction.js.map +1 -1
  734. package/build/features/organization/stores/OrganizationStore.js +0 -52
  735. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  736. package/build/features/permission/PermissionFeature.js +0 -20
  737. package/build/features/permission/PermissionFeature.js.map +1 -1
  738. package/build/features/permission/actions/CreateAction.js +0 -29
  739. package/build/features/permission/actions/CreateAction.js.map +1 -1
  740. package/build/features/person/PersonFeature.js +0 -20
  741. package/build/features/person/PersonFeature.js.map +1 -1
  742. package/build/features/person/actions/LoginAction.js +0 -41
  743. package/build/features/person/actions/LoginAction.js.map +1 -1
  744. package/build/features/person/actions/LogoutAction.js +0 -30
  745. package/build/features/person/actions/LogoutAction.js.map +1 -1
  746. package/build/features/person/actions/WhoamiAction.js +0 -32
  747. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  748. package/build/features/polish/PolishFeature.js +0 -20
  749. package/build/features/polish/PolishFeature.js.map +1 -1
  750. package/build/features/polish/actions/SetupAction.js +0 -31
  751. package/build/features/polish/actions/SetupAction.js.map +1 -1
  752. package/build/features/polish/writers/PolishWriter.js +0 -22
  753. package/build/features/polish/writers/PolishWriter.js.map +1 -1
  754. package/build/features/sandbox/SandboxFeature.js +0 -28
  755. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  756. package/build/features/sandbox/actions/SetupAction.js +0 -38
  757. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  758. package/build/features/sandbox/writers/SandboxWriter.js +0 -22
  759. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  760. package/build/features/schema/SchemaFeature.js +0 -51
  761. package/build/features/schema/SchemaFeature.js.map +1 -1
  762. package/build/features/schema/ValueTypeBuilder.js +0 -20
  763. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  764. package/build/features/schema/actions/CreateAction.js +0 -44
  765. package/build/features/schema/actions/CreateAction.js.map +1 -1
  766. package/build/features/schema/actions/SyncAction.js +0 -91
  767. package/build/features/schema/actions/SyncAction.js.map +1 -1
  768. package/build/features/schema/actions/SyncFieldsAction.js +0 -34
  769. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  770. package/build/features/schema/services/SchemaService.js +0 -25
  771. package/build/features/schema/services/SchemaService.js.map +1 -1
  772. package/build/features/schema/stores/SchemaStore.js +0 -102
  773. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  774. package/build/features/schema/utilities/schema.utility.js +0 -4
  775. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  776. package/build/features/schema/utilities/schemaDisk.utility.js +5 -25
  777. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  778. package/build/features/schema/utilities/schemaGenerator.utility.js +3 -22
  779. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  780. package/build/features/schema/writers/SchemaWriter.js +0 -95
  781. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  782. package/build/features/skill/SkillFeature.js +2 -65
  783. package/build/features/skill/SkillFeature.js.map +1 -1
  784. package/build/features/skill/actions/BootAction.js +0 -46
  785. package/build/features/skill/actions/BootAction.js.map +1 -1
  786. package/build/features/skill/actions/CreateAction.js +0 -29
  787. package/build/features/skill/actions/CreateAction.js.map +1 -1
  788. package/build/features/skill/actions/DashboardAction.js +0 -26
  789. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  790. package/build/features/skill/actions/LoginAction.js +0 -55
  791. package/build/features/skill/actions/LoginAction.js.map +1 -1
  792. package/build/features/skill/actions/RebuildAction.js +0 -34
  793. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  794. package/build/features/skill/actions/RegisterAction.js +0 -32
  795. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  796. package/build/features/skill/stores/SkillStore.js +0 -87
  797. package/build/features/skill/stores/SkillStore.js.map +1 -1
  798. package/build/features/skill/updaters/Updater.js +0 -25
  799. package/build/features/skill/updaters/Updater.js.map +1 -1
  800. package/build/features/skill/writers/SkillWriter.js +0 -26
  801. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  802. package/build/features/store/StoreFeature.js +0 -37
  803. package/build/features/store/StoreFeature.js.map +1 -1
  804. package/build/features/store/actions/CreateAction.js +0 -35
  805. package/build/features/store/actions/CreateAction.js.map +1 -1
  806. package/build/features/store/actions/SyncAction.js +0 -34
  807. package/build/features/store/actions/SyncAction.js.map +1 -1
  808. package/build/features/store/stores/StoreStore.js +0 -37
  809. package/build/features/store/stores/StoreStore.js.map +1 -1
  810. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js +1 -18
  811. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  812. package/build/features/store/writers/StoreWriter.js +0 -43
  813. package/build/features/store/writers/StoreWriter.js.map +1 -1
  814. package/build/features/test/TestFeature.js +2 -72
  815. package/build/features/test/TestFeature.js.map +1 -1
  816. package/build/features/test/TestLogItemGenerator.js +0 -40
  817. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  818. package/build/features/test/TestReporter.js +11 -123
  819. package/build/features/test/TestReporter.js.map +1 -1
  820. package/build/features/test/TestRunner.js +2 -58
  821. package/build/features/test/TestRunner.js.map +1 -1
  822. package/build/features/test/actions/CreateAction.js +2 -66
  823. package/build/features/test/actions/CreateAction.js.map +1 -1
  824. package/build/features/test/actions/SetupAction.js +0 -33
  825. package/build/features/test/actions/SetupAction.js.map +1 -1
  826. package/build/features/test/actions/TestAction.js +12 -131
  827. package/build/features/test/actions/TestAction.js.map +1 -1
  828. package/build/features/test/writers/TestWriter.js +0 -22
  829. package/build/features/test/writers/TestWriter.js.map +1 -1
  830. package/build/features/universalDevDependencies.js.map +1 -1
  831. package/build/features/universalFileDescriptions.js.map +1 -1
  832. package/build/features/universalScripts.js.map +1 -1
  833. package/build/features/validateAndNormalize.utility.js +0 -7
  834. package/build/features/validateAndNormalize.utility.js.map +1 -1
  835. package/build/features/view/ViewFeature.js +0 -32
  836. package/build/features/view/ViewFeature.js.map +1 -1
  837. package/build/features/view/actions/CreateAction.js +0 -48
  838. package/build/features/view/actions/CreateAction.js.map +1 -1
  839. package/build/features/view/actions/CreateThemeAction.js +0 -36
  840. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  841. package/build/features/view/actions/SyncAction.js +3 -48
  842. package/build/features/view/actions/SyncAction.js.map +1 -1
  843. package/build/features/view/actions/WatchAction.js +4 -64
  844. package/build/features/view/actions/WatchAction.js.map +1 -1
  845. package/build/features/view/stores/ViewStore.js +0 -32
  846. package/build/features/view/stores/ViewStore.js.map +1 -1
  847. package/build/features/view/writers/ViewWriter.js +3 -43
  848. package/build/features/view/writers/ViewWriter.js.map +1 -1
  849. package/build/features/vscode/VsCodeFeature.js +0 -26
  850. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  851. package/build/features/vscode/actions/SetupAction.js +0 -83
  852. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  853. package/build/features/vscode/services/VsCodeService.js +3 -43
  854. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  855. package/build/features/vscode/writers/VsCodeWriter.js +1 -21
  856. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  857. package/build/features/watch/WatchFeature.js +1 -45
  858. package/build/features/watch/WatchFeature.js.map +1 -1
  859. package/build/index.js +0 -5
  860. package/build/index.js.map +1 -1
  861. package/build/interfaces/SpyInterface.js +4 -81
  862. package/build/interfaces/SpyInterface.js.map +1 -1
  863. package/build/interfaces/TerminalInterface.js +33 -156
  864. package/build/interfaces/TerminalInterface.js.map +1 -1
  865. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js +0 -3
  866. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  867. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js +0 -8
  868. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  869. package/build/schemas/v2020_07_22/createErrorOptions.builder.js +0 -9
  870. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  871. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js +0 -8
  872. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  873. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js +0 -9
  874. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  875. package/build/schemas/v2020_07_22/createTestOptions.builder.js +0 -5
  876. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  877. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js +0 -3
  878. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  879. package/build/schemas/v2020_07_22/listenEventOptions.builder.js +0 -8
  880. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  881. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js +0 -3
  882. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  883. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js +0 -3
  884. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  885. package/build/schemas/v2020_07_22/onboardOptions.builder.js +0 -3
  886. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  887. package/build/schemas/v2020_07_22/onboarding.builder.js +0 -3
  888. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  889. package/build/schemas/v2020_07_22/personWithToken.builder.js +0 -5
  890. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  891. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js +0 -3
  892. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  893. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js +0 -3
  894. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  895. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js +0 -3
  896. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  897. package/build/schemas/v2020_07_22/skillFeature.builder.js +0 -3
  898. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  899. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js +0 -8
  900. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  901. package/build/schemas/v2020_07_22/syncEventOptions.builder.js +0 -5
  902. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  903. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js +0 -3
  904. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  905. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js +0 -9
  906. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  907. package/build/schemas/v2020_07_22/testOptions.builder.js +0 -3
  908. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  909. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js +0 -3
  910. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  911. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +0 -4
  912. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  913. package/build/services/BuildService.js +0 -15
  914. package/build/services/BuildService.js.map +1 -1
  915. package/build/services/CommandService.js +0 -51
  916. package/build/services/CommandService.js.map +1 -1
  917. package/build/services/DependencyService.js +0 -11
  918. package/build/services/DependencyService.js.map +1 -1
  919. package/build/services/GameService.js +3 -32
  920. package/build/services/GameService.js.map +1 -1
  921. package/build/services/ImportService.js +4 -104
  922. package/build/services/ImportService.js.map +1 -1
  923. package/build/services/LintService.js +0 -33
  924. package/build/services/LintService.js.map +1 -1
  925. package/build/services/PkgService.js +0 -47
  926. package/build/services/PkgService.js.map +1 -1
  927. package/build/services/ServiceFactory.js +0 -35
  928. package/build/services/ServiceFactory.js.map +1 -1
  929. package/build/services/TypeCheckerService.js +0 -10
  930. package/build/services/TypeCheckerService.js.map +1 -1
  931. package/build/stores/AbstractLocalStore.js +0 -19
  932. package/build/stores/AbstractLocalStore.js.map +1 -1
  933. package/build/stores/AbstractStore.js +0 -14
  934. package/build/stores/AbstractStore.js.map +1 -1
  935. package/build/stores/StoreFactory.js +4 -24
  936. package/build/stores/StoreFactory.js.map +1 -1
  937. package/build/templateItemBuilders/EventTemplateItemBuilder.js +14 -64
  938. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  939. package/build/templateItemBuilders/FieldTemplateItemBuilder.js +1 -16
  940. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  941. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js +11 -68
  942. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  943. package/build/tests/AbstractCliTest.js +0 -173
  944. package/build/tests/AbstractCliTest.js.map +1 -1
  945. package/build/tests/AbstractErrorTest.js +0 -20
  946. package/build/tests/AbstractErrorTest.js.map +1 -1
  947. package/build/tests/AbstractEventTest.js +13 -55
  948. package/build/tests/AbstractEventTest.js.map +1 -1
  949. package/build/tests/AbstractSchemaTest.js +12 -71
  950. package/build/tests/AbstractSchemaTest.js.map +1 -1
  951. package/build/tests/AbstractSkillTest.js +1 -34
  952. package/build/tests/AbstractSkillTest.js.map +1 -1
  953. package/build/tests/AbstractTestTest.js +3 -26
  954. package/build/tests/AbstractTestTest.js.map +1 -1
  955. package/build/tests/CommandFaker.js +0 -8
  956. package/build/tests/CommandFaker.js.map +1 -1
  957. package/build/tests/JestJsonParser.js +2 -47
  958. package/build/tests/JestJsonParser.js.map +1 -1
  959. package/build/tests/MockProgramFactory.js +0 -17
  960. package/build/tests/MockProgramFactory.js.map +1 -1
  961. package/build/tests/buildTestCache.js +0 -82
  962. package/build/tests/buildTestCache.js.map +1 -1
  963. package/build/tests/cleanTestCache.js +0 -11
  964. package/build/tests/cleanTestCache.js.map +1 -1
  965. package/build/tests/cleanTestData.js +0 -38
  966. package/build/tests/cleanTestData.js.map +1 -1
  967. package/build/tests/constants.js +0 -3
  968. package/build/tests/constants.js.map +1 -1
  969. package/build/tests/fixtures/FeatureFixture.js +7 -82
  970. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  971. package/build/tests/fixtures/MercuryFixture.js +0 -17
  972. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  973. package/build/tests/fixtures/OrganizationFixture.js +0 -39
  974. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  975. package/build/tests/fixtures/PersonFixture.js +0 -37
  976. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  977. package/build/tests/fixtures/SkillFixture.js +0 -55
  978. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  979. package/build/tests/fixtures/ViewFixture.js +0 -14
  980. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  981. package/build/tests/utilities/test.utility.js +0 -25
  982. package/build/tests/utilities/test.utility.js.map +1 -1
  983. package/build/tests/utilities/uiAssert.utility.js +0 -15
  984. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  985. package/build/types/cli.types.js +0 -1
  986. package/build/types/cli.types.js.map +1 -1
  987. package/build/types/graphicsInterface.types.js +0 -1
  988. package/build/types/graphicsInterface.types.js.map +1 -1
  989. package/build/updaters/ScriptUpdater.js +0 -28
  990. package/build/updaters/ScriptUpdater.js.map +1 -1
  991. package/build/utilities/action.utility.js +0 -11
  992. package/build/utilities/action.utility.js.map +1 -1
  993. package/build/utilities/apiClient.utility.js +2 -11
  994. package/build/utilities/apiClient.utility.js.map +1 -1
  995. package/build/utilities/argParser.utility.js +1 -11
  996. package/build/utilities/argParser.utility.js.map +1 -1
  997. package/build/utilities/commander.utility.js +0 -12
  998. package/build/utilities/commander.utility.js.map +1 -1
  999. package/build/utilities/duration.utility.js +3 -8
  1000. package/build/utilities/duration.utility.js.map +1 -1
  1001. package/build/utilities/eventContractCleaner.utility.js +1 -22
  1002. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  1003. package/build/utilities/form.utility.js +1 -27
  1004. package/build/utilities/form.utility.js.map +1 -1
  1005. package/build/utilities/introspection.utility.js +11 -40
  1006. package/build/utilities/introspection.utility.js.map +1 -1
  1007. package/build/utilities/isCi.js +0 -3
  1008. package/build/utilities/isCi.js.map +1 -1
  1009. package/build/utilities/tsConfig.utility.js +4 -16
  1010. package/build/utilities/tsConfig.utility.js.map +1 -1
  1011. package/build/utilities/ui.utility.js +2 -4
  1012. package/build/utilities/ui.utility.js.map +1 -1
  1013. package/build/widgets/Theme.js +0 -3
  1014. package/build/widgets/Theme.js.map +1 -1
  1015. package/build/widgets/WidgetFactory.js +4 -14
  1016. package/build/widgets/WidgetFactory.js.map +1 -1
  1017. package/build/widgets/keySelectChoices.js.map +1 -1
  1018. package/build/widgets/terminalKit/TKButtonWidget.js +2 -32
  1019. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  1020. package/build/widgets/terminalKit/TkBaseWidget.js +1 -55
  1021. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  1022. package/build/widgets/terminalKit/TkInputWidget.js +1 -44
  1023. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  1024. package/build/widgets/terminalKit/TkLayoutCellWidget.js +0 -19
  1025. package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
  1026. package/build/widgets/terminalKit/TkLayoutWidget.js +3 -47
  1027. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  1028. package/build/widgets/terminalKit/TkMenuBarWidget.js +3 -48
  1029. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  1030. package/build/widgets/terminalKit/TkPopupWidget.js +1 -27
  1031. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  1032. package/build/widgets/terminalKit/TkProgressBarWidget.js +5 -30
  1033. package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
  1034. package/build/widgets/terminalKit/TkTextWidget.js +6 -48
  1035. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  1036. package/build/widgets/terminalKit/TkWindowWidget.js +4 -35
  1037. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  1038. package/build/widgets/terminalKit/termKit.utility.js +2 -40
  1039. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  1040. package/build/widgets/types/button.types.js.map +1 -1
  1041. package/build/widgets/types/factory.types.js +0 -16
  1042. package/build/widgets/types/factory.types.js.map +1 -1
  1043. package/build/widgets/types/input.types.js +0 -2
  1044. package/build/widgets/types/input.types.js.map +1 -1
  1045. package/build/widgets/types/menuBar.types.js +1 -2
  1046. package/build/widgets/types/menuBar.types.js.map +1 -1
  1047. package/build/widgets/types/popup.types.js.map +1 -1
  1048. package/build/widgets/types/text.types.js +1 -2
  1049. package/build/widgets/types/text.types.js.map +1 -1
  1050. package/build/widgets/types/window.types.js +0 -2
  1051. package/build/widgets/types/window.types.js.map +1 -1
  1052. package/build/widgets/widget.utilities.js +6 -10
  1053. package/build/widgets/widget.utilities.js.map +1 -1
  1054. package/build/writers/AbstractWriter.js +13 -94
  1055. package/build/writers/AbstractWriter.js.map +1 -1
  1056. package/build/writers/WriterFactory.js +3 -27
  1057. package/build/writers/WriterFactory.js.map +1 -1
  1058. package/docs/images/doors.jpg +0 -0
  1059. package/package.json +3 -3
  1060. package/src/features/onboard/scripts/onboarding.first.script.ts +8 -5
@@ -1 +1 @@
1
- {"version":3,"file":"FormComponent.js","names":["FormBuilderActionType","FormComponent","options","schema","initialValues","ui","onWillAskQuestion","handlers","headline","showOverview","fields","getNamedFields","map","nf","name","done","valid","renderHeadline","GraphicsTextEffect","SpruceHeader","renderLine","renderOverview","action","type","EditField","Done","fieldName","askQuestion","answer","set","namedFields","namedField","validate","renderError","waitForEnter","values","getValues","shouldCreateEntityInstances","cleanValues","pick","field","find","Error","schemaId","definition","value","get","shouldValidate","isArray","SpruceError","code","friendlyMessage","defaultValue","prompt","error","renderDivider","Red","Bold","AbstractSpruceError","renderWarning","message","actionMap","choices","filter","indexOf","actionKey","label","push","isRequired","response","SchemaEntity"],"sources":["../../src/components/FormComponent.ts"],"sourcesContent":["import AbstractSpruceError from '@sprucelabs/error'\nimport SchemaEntity, {\n\tSchema,\n\tSchemaAllValues,\n\tSchemaPartialValues,\n\tSchemaFieldNames,\n\tSelectChoice,\n\tIFieldDefinition,\n} from '@sprucelabs/schema'\nimport { pick } from 'lodash'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\n\nenum FormBuilderActionType {\n\tDone = 'done',\n\tCancel = 'cancel',\n\tEditField = 'edit_field',\n}\n\ninterface FormActionDone {\n\ttype: FormBuilderActionType.Done\n}\n\ninterface FormActionCancel {\n\ttype: FormBuilderActionType.Cancel\n}\n\ntype FormActionEditField<T extends Schema> = {\n\ttype: FormBuilderActionType.EditField\n\tfieldName: SchemaFieldNames<T>\n}\n\ntype FormAction<T extends Schema> =\n\t| FormActionDone\n\t| FormActionCancel\n\t| FormActionEditField<T>\n\nexport interface FormPresentationOptions<\n\tT extends Schema,\n\tF extends SchemaFieldNames<T> = SchemaFieldNames<T>\n> {\n\theadline?: string\n\tshowOverview?: boolean\n\tfields?: F[]\n}\n\nexport interface FormOptions<T extends Schema> {\n\tui: GraphicsInterface\n\tschema: T\n\tinitialValues?: SchemaPartialValues<T>\n\tonWillAskQuestion?: <K extends SchemaFieldNames<T>>(\n\t\tname: K,\n\t\tfieldDefinition: FieldDefinitions,\n\t\tvalues: SchemaPartialValues<T>\n\t) => FieldDefinitions\n}\n\ninterface Handlers<T extends Schema> {\n\tonWillAskQuestion?: FormOptions<T>['onWillAskQuestion']\n}\n\nexport default class FormComponent<S extends Schema> extends SchemaEntity<S> {\n\tpublic ui: GraphicsInterface\n\tpublic handlers: Handlers<S> = {}\n\n\tpublic constructor(options: FormOptions<S>) {\n\t\t// Setup schema\n\t\tsuper(options.schema, options.initialValues)\n\n\t\tconst { ui } = options\n\n\t\t// Save ui for writing, saving\n\t\tthis.ui = ui\n\n\t\t// Handlers\n\t\tconst { onWillAskQuestion } = options\n\t\tthis.handlers.onWillAskQuestion = onWillAskQuestion\n\t}\n\n\t/** Pass me a schema and i'll give you back an object that conforms to it based on user input */\n\tpublic async present<F extends SchemaFieldNames<S> = SchemaFieldNames<S>>(\n\t\toptions: FormPresentationOptions<S, F> = {}\n\t): Promise<Pick<SchemaAllValues<S>, F>> {\n\t\tconst { ui } = this\n\t\tconst {\n\t\t\theadline,\n\t\t\tshowOverview,\n\t\t\tfields = this.getNamedFields().map((nf) => nf.name),\n\t\t} = options\n\n\t\tlet done = false\n\t\tlet valid = false\n\n\t\tdo {\n\t\t\tif (headline) {\n\t\t\t\tui.renderHeadline(headline, [GraphicsTextEffect.SpruceHeader])\n\t\t\t\tui.renderLine('')\n\t\t\t}\n\n\t\t\tif (showOverview) {\n\t\t\t\t// Overview mode\n\t\t\t\tconst action = await this.renderOverview({ fields })\n\n\t\t\t\tswitch (action.type) {\n\t\t\t\t\tcase FormBuilderActionType.EditField: {\n\t\t\t\t\t\t// Editing a field\n\t\t\t\t\t\tconst fieldName = action.fieldName\n\t\t\t\t\t\tconst answer = await this.askQuestion(fieldName)\n\n\t\t\t\t\t\t// Set the new value\n\t\t\t\t\t\tthis.set(fieldName, answer)\n\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase FormBuilderActionType.Done: {\n\t\t\t\t\t\tdone = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Asking one question at a time\n\t\t\t\tconst namedFields = this.getNamedFields({ fields })\n\n\t\t\t\tfor (const namedField of namedFields) {\n\t\t\t\t\tconst { name } = namedField\n\t\t\t\t\tconst answer = await this.askQuestion(name)\n\n\t\t\t\t\tthis.set(name, answer)\n\t\t\t\t}\n\n\t\t\t\tdone = true\n\t\t\t}\n\n\t\t\tif (done) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.validate({ fields })\n\t\t\t\t\tvalid = true\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthis.renderError(err)\n\n\t\t\t\t\tawait this.ui.waitForEnter()\n\t\t\t\t}\n\t\t\t}\n\t\t} while (!done || !valid)\n\n\t\tconst values = this.getValues({\n\t\t\tfields,\n\t\t\tshouldCreateEntityInstances: false,\n\t\t})\n\t\tconst cleanValues = pick(values, fields) as Pick<SchemaAllValues<S>, F>\n\n\t\treturn cleanValues\n\t}\n\n\t/** Ask a question based on a field */\n\tpublic askQuestion<F extends SchemaFieldNames<S>>(fieldName: F) {\n\t\tconst field = this.getNamedFields().find(\n\t\t\t(nf) => nf.name === fieldName\n\t\t)?.field\n\n\t\tif (!field) {\n\t\t\tthrow new Error(`No field named ${fieldName} on form ${this.schemaId}`)\n\t\t}\n\n\t\tlet definition = { ...field.definition }\n\t\tconst value = this.get(fieldName, {\n\t\t\tshouldValidate: false,\n\t\t\tshouldCreateEntityInstances: false,\n\t\t})\n\t\tif (definition.isArray) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\tfriendlyMessage: 'Form builder does not support isArray yet',\n\t\t\t})\n\t\t}\n\n\t\tif (value) {\n\t\t\tdefinition.defaultValue = value as IFieldDefinition['defaultValue']\n\t\t}\n\n\t\tif (this.handlers.onWillAskQuestion) {\n\t\t\tdefinition = this.handlers.onWillAskQuestion(\n\t\t\t\tfieldName,\n\t\t\t\t//@ts-ignore\n\t\t\t\tdefinition,\n\t\t\t\tthis.getValues({\n\t\t\t\t\tshouldValidate: false,\n\t\t\t\t\tshouldCreateEntityInstances: false,\n\t\t\t\t}) as unknown as SchemaPartialValues<S>\n\t\t\t)\n\t\t}\n\n\t\treturn this.ui.prompt(definition)\n\t}\n\n\tpublic renderError(error: Error) {\n\t\tthis.ui.renderDivider()\n\t\tthis.ui.renderHeadline('Please fix the following...', [\n\t\t\tGraphicsTextEffect.Red,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t])\n\n\t\tthis.ui.renderLine('')\n\n\t\tif (error instanceof AbstractSpruceError) {\n\t\t\tthis.ui.renderWarning(error.friendlyMessage())\n\t\t} else {\n\t\t\tthis.ui.renderWarning(`Unexpected error ${error.message}`)\n\t\t}\n\n\t\tthis.ui.renderLine('')\n\t}\n\n\tpublic async renderOverview<F extends SchemaFieldNames<S>>(\n\t\toptions: { fields?: F[] } = {}\n\t): Promise<FormAction<S>> {\n\t\tconst { ui } = this\n\t\tconst { fields = this.getNamedFields().map((nf) => nf.name) } = options\n\n\t\tconst actionMap: Record<string, FormAction<S>> = {}\n\n\t\tconst choices: SelectChoice[] = this.getNamedFields()\n\t\t\t.filter((namedField) => fields.indexOf(namedField.name) > -1)\n\t\t\t.map((namedField) => {\n\t\t\t\tconst { field, name } = namedField\n\n\t\t\t\tconst actionKey = `field:${name}`\n\t\t\t\tconst action: FormActionEditField<S> = {\n\t\t\t\t\ttype: FormBuilderActionType.EditField,\n\t\t\t\t\tfieldName: name,\n\t\t\t\t}\n\n\t\t\t\tactionMap[actionKey] = action\n\n\t\t\t\tconst value = this.get(name, { shouldValidate: false })\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: actionKey,\n\t\t\t\t\tlabel: `${field.label}: ${value ? value : '***missing***'}`,\n\t\t\t\t}\n\t\t\t})\n\n\t\tactionMap['done'] = {\n\t\t\ttype: FormBuilderActionType.Done,\n\t\t}\n\n\t\tchoices.push({\n\t\t\tvalue: 'done',\n\t\t\tlabel: 'Done',\n\t\t})\n\n\t\tconst response = await ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Select any field to edit',\n\t\t\toptions: {\n\t\t\t\tchoices,\n\t\t\t},\n\t\t})\n\n\t\tconst action = actionMap[response]\n\t\treturn action\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormComponent.js","names":["FormBuilderActionType","FormComponent","options","schema","initialValues","ui","onWillAskQuestion","handlers","headline","showOverview","fields","getNamedFields","map","nf","name","done","valid","renderHeadline","GraphicsTextEffect","SpruceHeader","renderLine","renderOverview","action","type","EditField","Done","fieldName","askQuestion","answer","set","namedFields","namedField","validate","renderError","waitForEnter","values","getValues","shouldCreateEntityInstances","cleanValues","pick","field","find","Error","schemaId","definition","value","get","shouldValidate","isArray","SpruceError","code","friendlyMessage","defaultValue","prompt","error","renderDivider","Red","Bold","AbstractSpruceError","renderWarning","message","actionMap","choices","filter","indexOf","actionKey","label","push","isRequired","response","SchemaEntity"],"sources":["../../src/components/FormComponent.ts"],"sourcesContent":["import AbstractSpruceError from '@sprucelabs/error'\nimport SchemaEntity, {\n\tSchema,\n\tSchemaAllValues,\n\tSchemaPartialValues,\n\tSchemaFieldNames,\n\tSelectChoice,\n\tIFieldDefinition,\n} from '@sprucelabs/schema'\nimport { pick } from 'lodash'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\n\nenum FormBuilderActionType {\n\tDone = 'done',\n\tCancel = 'cancel',\n\tEditField = 'edit_field',\n}\n\ninterface FormActionDone {\n\ttype: FormBuilderActionType.Done\n}\n\ninterface FormActionCancel {\n\ttype: FormBuilderActionType.Cancel\n}\n\ntype FormActionEditField<T extends Schema> = {\n\ttype: FormBuilderActionType.EditField\n\tfieldName: SchemaFieldNames<T>\n}\n\ntype FormAction<T extends Schema> =\n\t| FormActionDone\n\t| FormActionCancel\n\t| FormActionEditField<T>\n\nexport interface FormPresentationOptions<\n\tT extends Schema,\n\tF extends SchemaFieldNames<T> = SchemaFieldNames<T>\n> {\n\theadline?: string\n\tshowOverview?: boolean\n\tfields?: F[]\n}\n\nexport interface FormOptions<T extends Schema> {\n\tui: GraphicsInterface\n\tschema: T\n\tinitialValues?: SchemaPartialValues<T>\n\tonWillAskQuestion?: <K extends SchemaFieldNames<T>>(\n\t\tname: K,\n\t\tfieldDefinition: FieldDefinitions,\n\t\tvalues: SchemaPartialValues<T>\n\t) => FieldDefinitions\n}\n\ninterface Handlers<T extends Schema> {\n\tonWillAskQuestion?: FormOptions<T>['onWillAskQuestion']\n}\n\nexport default class FormComponent<S extends Schema> extends SchemaEntity<S> {\n\tpublic ui: GraphicsInterface\n\tpublic handlers: Handlers<S> = {}\n\n\tpublic constructor(options: FormOptions<S>) {\n\t\t// Setup schema\n\t\tsuper(options.schema, options.initialValues)\n\n\t\tconst { ui } = options\n\n\t\t// Save ui for writing, saving\n\t\tthis.ui = ui\n\n\t\t// Handlers\n\t\tconst { onWillAskQuestion } = options\n\t\tthis.handlers.onWillAskQuestion = onWillAskQuestion\n\t}\n\n\t/** Pass me a schema and i'll give you back an object that conforms to it based on user input */\n\tpublic async present<F extends SchemaFieldNames<S> = SchemaFieldNames<S>>(\n\t\toptions: FormPresentationOptions<S, F> = {}\n\t): Promise<Pick<SchemaAllValues<S>, F>> {\n\t\tconst { ui } = this\n\t\tconst {\n\t\t\theadline,\n\t\t\tshowOverview,\n\t\t\tfields = this.getNamedFields().map((nf) => nf.name),\n\t\t} = options\n\n\t\tlet done = false\n\t\tlet valid = false\n\n\t\tdo {\n\t\t\tif (headline) {\n\t\t\t\tui.renderHeadline(headline, [GraphicsTextEffect.SpruceHeader])\n\t\t\t\tui.renderLine('')\n\t\t\t}\n\n\t\t\tif (showOverview) {\n\t\t\t\t// Overview mode\n\t\t\t\tconst action = await this.renderOverview({ fields })\n\n\t\t\t\tswitch (action.type) {\n\t\t\t\t\tcase FormBuilderActionType.EditField: {\n\t\t\t\t\t\t// Editing a field\n\t\t\t\t\t\tconst fieldName = action.fieldName\n\t\t\t\t\t\tconst answer = await this.askQuestion(fieldName)\n\n\t\t\t\t\t\t// Set the new value\n\t\t\t\t\t\tthis.set(fieldName, answer)\n\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase FormBuilderActionType.Done: {\n\t\t\t\t\t\tdone = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Asking one question at a time\n\t\t\t\tconst namedFields = this.getNamedFields({ fields })\n\n\t\t\t\tfor (const namedField of namedFields) {\n\t\t\t\t\tconst { name } = namedField\n\t\t\t\t\tconst answer = await this.askQuestion(name)\n\n\t\t\t\t\tthis.set(name, answer)\n\t\t\t\t}\n\n\t\t\t\tdone = true\n\t\t\t}\n\n\t\t\tif (done) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.validate({ fields })\n\t\t\t\t\tvalid = true\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthis.renderError(err)\n\n\t\t\t\t\tawait this.ui.waitForEnter()\n\t\t\t\t}\n\t\t\t}\n\t\t} while (!done || !valid)\n\n\t\tconst values = this.getValues({\n\t\t\tfields,\n\t\t\tshouldCreateEntityInstances: false,\n\t\t})\n\t\tconst cleanValues = pick(values, fields) as Pick<SchemaAllValues<S>, F>\n\n\t\treturn cleanValues\n\t}\n\n\t/** Ask a question based on a field */\n\tpublic askQuestion<F extends SchemaFieldNames<S>>(fieldName: F) {\n\t\tconst field = this.getNamedFields().find(\n\t\t\t(nf) => nf.name === fieldName\n\t\t)?.field\n\n\t\tif (!field) {\n\t\t\tthrow new Error(`No field named ${fieldName} on form ${this.schemaId}`)\n\t\t}\n\n\t\tlet definition = { ...field.definition }\n\t\tconst value = this.get(fieldName, {\n\t\t\tshouldValidate: false,\n\t\t\tshouldCreateEntityInstances: false,\n\t\t})\n\t\tif (definition.isArray) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\tfriendlyMessage: 'Form builder does not support isArray yet',\n\t\t\t})\n\t\t}\n\n\t\tif (value) {\n\t\t\tdefinition.defaultValue = value as IFieldDefinition['defaultValue']\n\t\t}\n\n\t\tif (this.handlers.onWillAskQuestion) {\n\t\t\tdefinition = this.handlers.onWillAskQuestion(\n\t\t\t\tfieldName,\n\t\t\t\t//@ts-ignore\n\t\t\t\tdefinition,\n\t\t\t\tthis.getValues({\n\t\t\t\t\tshouldValidate: false,\n\t\t\t\t\tshouldCreateEntityInstances: false,\n\t\t\t\t}) as unknown as SchemaPartialValues<S>\n\t\t\t)\n\t\t}\n\n\t\treturn this.ui.prompt(definition)\n\t}\n\n\tpublic renderError(error: Error) {\n\t\tthis.ui.renderDivider()\n\t\tthis.ui.renderHeadline('Please fix the following...', [\n\t\t\tGraphicsTextEffect.Red,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t])\n\n\t\tthis.ui.renderLine('')\n\n\t\tif (error instanceof AbstractSpruceError) {\n\t\t\tthis.ui.renderWarning(error.friendlyMessage())\n\t\t} else {\n\t\t\tthis.ui.renderWarning(`Unexpected error ${error.message}`)\n\t\t}\n\n\t\tthis.ui.renderLine('')\n\t}\n\n\tpublic async renderOverview<F extends SchemaFieldNames<S>>(\n\t\toptions: { fields?: F[] } = {}\n\t): Promise<FormAction<S>> {\n\t\tconst { ui } = this\n\t\tconst { fields = this.getNamedFields().map((nf) => nf.name) } = options\n\n\t\tconst actionMap: Record<string, FormAction<S>> = {}\n\n\t\tconst choices: SelectChoice[] = this.getNamedFields()\n\t\t\t.filter((namedField) => fields.indexOf(namedField.name) > -1)\n\t\t\t.map((namedField) => {\n\t\t\t\tconst { field, name } = namedField\n\n\t\t\t\tconst actionKey = `field:${name}`\n\t\t\t\tconst action: FormActionEditField<S> = {\n\t\t\t\t\ttype: FormBuilderActionType.EditField,\n\t\t\t\t\tfieldName: name,\n\t\t\t\t}\n\n\t\t\t\tactionMap[actionKey] = action\n\n\t\t\t\tconst value = this.get(name, { shouldValidate: false })\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: actionKey,\n\t\t\t\t\tlabel: `${field.label}: ${value ? value : '***missing***'}`,\n\t\t\t\t}\n\t\t\t})\n\n\t\tactionMap['done'] = {\n\t\t\ttype: FormBuilderActionType.Done,\n\t\t}\n\n\t\tchoices.push({\n\t\t\tvalue: 'done',\n\t\t\tlabel: 'Done',\n\t\t})\n\n\t\tconst response = await ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Select any field to edit',\n\t\t\toptions: {\n\t\t\t\tchoices,\n\t\t\t},\n\t\t})\n\n\t\tconst action = actionMap[response]\n\t\treturn action\n\t}\n}\n"],"mappings":"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"}
@@ -1,47 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
14
  var _schema = require("@sprucelabs/schema");
23
-
24
15
  var _chalk = _interopRequireDefault(require("chalk"));
25
-
26
16
  var _lodash = require("lodash");
27
-
28
17
  var _FormComponent = _interopRequireDefault(require("./FormComponent"));
29
-
30
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
-
32
19
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
33
-
34
20
  var AnswerValidity;
35
-
36
21
  (function (AnswerValidity) {
37
22
  AnswerValidity["Correct"] = "correct";
38
23
  AnswerValidity["Incorrect"] = "incorrect";
39
24
  })(AnswerValidity || (AnswerValidity = {}));
40
-
41
25
  var QuizComponent = /*#__PURE__*/function () {
42
26
  function QuizComponent(options) {
43
27
  var _options$randomizeQue;
44
-
45
28
  (0, _classCallCheck2["default"])(this, QuizComponent);
46
29
  (0, _defineProperty2["default"])(this, "formBuilder", void 0);
47
30
  (0, _defineProperty2["default"])(this, "term", void 0);
@@ -49,43 +32,43 @@ var QuizComponent = /*#__PURE__*/function () {
49
32
  (0, _defineProperty2["default"])(this, "originalQuestions", void 0);
50
33
  (0, _defineProperty2["default"])(this, "lastResults", void 0);
51
34
  // We're going to build a schema from the questions and pass that to the form builder
52
- var definition = this.buildSchemaFromQuestions(options.questions); // Track questions for later reference
35
+ var definition = this.buildSchemaFromQuestions(options.questions);
53
36
 
54
- this.originalQuestions = options.questions; // Construct new form builder
37
+ // Track questions for later reference
38
+ this.originalQuestions = options.questions;
55
39
 
40
+ // Construct new form builder
56
41
  this.formBuilder = new _FormComponent["default"](_objectSpread(_objectSpread({}, options), {}, {
57
42
  schema: definition
58
- })); // Set state locally
43
+ }));
59
44
 
45
+ // Set state locally
60
46
  this.term = options.ui;
61
47
  this.randomizeQuestions = (_options$randomizeQue = options.randomizeQuestions) !== null && _options$randomizeQue !== void 0 ? _options$randomizeQue : true;
62
48
  }
63
- /** Present the quiz */
64
-
65
49
 
50
+ /** Present the quiz */
66
51
  (0, _createClass2["default"])(QuizComponent, [{
67
52
  key: "present",
68
53
  value: function () {
69
54
  var _present = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
70
55
  var _this = this;
71
-
72
56
  var options,
73
- _options$questions,
74
- questions,
75
- _options$randomizeQue2,
76
- randomizeQuestions,
77
- startTime,
78
- fields,
79
- results,
80
- answers,
81
- answerValidities,
82
- totalQuestions,
83
- totalCorrect,
84
- questionNames,
85
- totalWrong,
86
- endTime,
87
- _args = arguments;
88
-
57
+ _options$questions,
58
+ questions,
59
+ _options$randomizeQue2,
60
+ randomizeQuestions,
61
+ startTime,
62
+ fields,
63
+ results,
64
+ answers,
65
+ answerValidities,
66
+ totalQuestions,
67
+ totalCorrect,
68
+ questionNames,
69
+ totalWrong,
70
+ endTime,
71
+ _args = arguments;
89
72
  return _regenerator["default"].wrap(function _callee$(_context) {
90
73
  while (1) {
91
74
  switch (_context.prev = _context.next) {
@@ -95,14 +78,11 @@ var QuizComponent = /*#__PURE__*/function () {
95
78
  return nf.name;
96
79
  }) : _options$questions, _options$randomizeQue2 = options.randomizeQuestions, randomizeQuestions = _options$randomizeQue2 === void 0 ? this.randomizeQuestions : _options$randomizeQue2;
97
80
  startTime = new Date().getTime(); // Pull out answers
98
-
99
81
  fields = randomizeQuestions ? (0, _lodash.shuffle)(questions) : questions; // Ask for the answers
100
-
101
82
  _context.next = 6;
102
83
  return this.formBuilder.present(_objectSpread(_objectSpread({}, options), {}, {
103
84
  fields: fields
104
85
  }));
105
-
106
86
  case 6:
107
87
  results = _context.sent;
108
88
  // Generate stats
@@ -114,37 +94,32 @@ var QuizComponent = /*#__PURE__*/function () {
114
94
  questionNames.forEach(function (questionName) {
115
95
  var fieldName = questionName;
116
96
  var answer = results[fieldName] || '';
117
-
118
97
  var _answer$split = answer.split('-'),
119
- _answer$split2 = (0, _slicedToArray2["default"])(_answer$split, 2),
120
- validity = _answer$split2[0],
121
- idx = _answer$split2[1]; // Get the field to tell type
122
-
98
+ _answer$split2 = (0, _slicedToArray2["default"])(_answer$split, 2),
99
+ validity = _answer$split2[0],
100
+ idx = _answer$split2[1];
123
101
 
102
+ // Get the field to tell type
124
103
  var _ref = _this.formBuilder.getNamedFields().find(function (namedField) {
125
- return namedField.name === fieldName;
126
- }) || {},
127
- field = _ref.field;
128
-
104
+ return namedField.name === fieldName;
105
+ }) || {},
106
+ field = _ref.field;
129
107
  if (!field) {
130
108
  throw new Error('Field issue in QuizComponent');
131
109
  }
132
-
133
110
  var fieldDefinition = field.definition;
134
-
135
111
  switch (fieldDefinition.type) {
136
112
  case 'select':
137
113
  // Pull the original multiple choice, we can cast it as multiple choice
138
114
  // question with confidence
139
115
  answers[questionName] = _this.originalQuestions[questionName].answers[parseInt(idx)];
140
116
  break;
141
-
142
117
  default:
143
118
  // @ts-ignore TODO proper questions to schema should fix this because we only support a few fields
144
119
  answers[questionName] = results[fieldName];
145
- } // Track validity
146
-
120
+ }
147
121
 
122
+ // Track validity
148
123
  if (validity === AnswerValidity.Correct) {
149
124
  totalCorrect = totalCorrect + 1;
150
125
  answerValidities[questionName] = AnswerValidity.Correct;
@@ -153,7 +128,6 @@ var QuizComponent = /*#__PURE__*/function () {
153
128
  }
154
129
  }, 0);
155
130
  totalWrong = totalQuestions - totalCorrect; // Track time
156
-
157
131
  endTime = new Date().getTime();
158
132
  this.lastResults = {
159
133
  percentCorrect: totalCorrect / totalQuestions,
@@ -169,7 +143,6 @@ var QuizComponent = /*#__PURE__*/function () {
169
143
  }
170
144
  };
171
145
  return _context.abrupt("return", this.lastResults);
172
-
173
146
  case 17:
174
147
  case "end":
175
148
  return _context.stop();
@@ -177,11 +150,9 @@ var QuizComponent = /*#__PURE__*/function () {
177
150
  }
178
151
  }, _callee, this);
179
152
  }));
180
-
181
153
  function present() {
182
154
  return _present.apply(this, arguments);
183
155
  }
184
-
185
156
  return present;
186
157
  }()
187
158
  }, {
@@ -189,15 +160,13 @@ var QuizComponent = /*#__PURE__*/function () {
189
160
  value: function () {
190
161
  var _scorecard = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
191
162
  var _this2 = this;
192
-
193
163
  var options,
194
- headline,
195
- _options$results,
196
- results,
197
- term,
198
- testResults,
199
- _args2 = arguments;
200
-
164
+ headline,
165
+ _options$results,
166
+ results,
167
+ term,
168
+ testResults,
169
+ _args2 = arguments;
201
170
  return _regenerator["default"].wrap(function _callee2$(_context2) {
202
171
  while (1) {
203
172
  switch (_context2.prev = _context2.next) {
@@ -205,44 +174,39 @@ var QuizComponent = /*#__PURE__*/function () {
205
174
  options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
206
175
  headline = options.headline, _options$results = options.results, results = _options$results === void 0 ? this.lastResults : _options$results;
207
176
  term = this.term;
208
-
209
177
  if (results) {
210
178
  _context2.next = 5;
211
179
  break;
212
180
  }
213
-
214
181
  throw new _schema.SchemaError({
215
182
  code: 'INVALID_PARAMETERS',
216
183
  parameters: []
217
184
  });
218
-
219
185
  case 5:
220
186
  term.clear();
221
187
  term.renderHero(headline !== null && headline !== void 0 ? headline : 'Quiz results!');
222
188
  testResults = {};
223
189
  this.formBuilder.getNamedFields().forEach(function (namedField) {
224
190
  var name = namedField.name,
225
- field = namedField.field;
226
- var questionFieldName = name; // Get results
191
+ field = namedField.field;
192
+ var questionFieldName = name;
227
193
 
194
+ // Get results
228
195
  var isCorrect = results.answerValidities[questionFieldName] === AnswerValidity.Correct;
229
- var guessedAnswer = "".concat(results.answers[questionFieldName]); // Build the real answer
196
+ var guessedAnswer = "".concat(results.answers[questionFieldName]);
230
197
 
198
+ // Build the real answer
231
199
  var correctAnswer = '';
232
200
  var originalQuestion = _this2.originalQuestions[questionFieldName];
233
-
234
201
  switch (originalQuestion.type) {
235
202
  case 'select':
236
203
  correctAnswer = originalQuestion.answers[0];
237
204
  break;
238
-
239
205
  default:
240
206
  // All options just pass through the answer tied to the question during instantiation
241
207
  correctAnswer = originalQuestion.answer;
242
208
  }
243
-
244
209
  var objectKey = field.label || '**missing';
245
-
246
210
  if (isCorrect) {
247
211
  testResults[objectKey] = "".concat(_chalk["default"].bgGreenBright.black('Correct!'), " ").concat(guessedAnswer, " ");
248
212
  } else {
@@ -255,7 +219,6 @@ var QuizComponent = /*#__PURE__*/function () {
255
219
  term.renderHeadline("Your score: ".concat((results.percentCorrect * 100).toFixed(1), "%"));
256
220
  _context2.next = 15;
257
221
  return term.waitForEnter();
258
-
259
222
  case 15:
260
223
  case "end":
261
224
  return _context2.stop();
@@ -263,15 +226,11 @@ var QuizComponent = /*#__PURE__*/function () {
263
226
  }
264
227
  }, _callee2, this);
265
228
  }));
266
-
267
229
  function scorecard() {
268
230
  return _scorecard.apply(this, arguments);
269
231
  }
270
-
271
232
  return scorecard;
272
- }()
273
- /** Takes questions and builds a schema */
274
-
233
+ }() /** Takes questions and builds a schema */
275
234
  }, {
276
235
  key: "buildSchemaFromQuestions",
277
236
  value: function buildSchemaFromQuestions(questions) {
@@ -279,7 +238,6 @@ var QuizComponent = /*#__PURE__*/function () {
279
238
  var fields = {};
280
239
  Object.keys(questions).forEach(function (fieldName) {
281
240
  var question = questions[fieldName];
282
-
283
241
  switch (question.type) {
284
242
  case 'select':
285
243
  fields[fieldName] = {
@@ -295,15 +253,15 @@ var QuizComponent = /*#__PURE__*/function () {
295
253
  }
296
254
  };
297
255
  break;
298
-
299
256
  default:
300
257
  fields[fieldName] = {
301
258
  type: question.type,
302
259
  label: question.question
303
260
  };
304
261
  }
305
- }); //@ts-ignore TODO better mapping of questions to schema definition
262
+ });
306
263
 
264
+ //@ts-ignore TODO better mapping of questions to schema definition
307
265
  var definition = {
308
266
  id: 'quizGenerated',
309
267
  name: 'Generated quiz',
@@ -314,6 +272,5 @@ var QuizComponent = /*#__PURE__*/function () {
314
272
  }]);
315
273
  return QuizComponent;
316
274
  }();
317
-
318
275
  exports["default"] = QuizComponent;
319
276
  //# sourceMappingURL=QuizComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuizComponent.js","names":["AnswerValidity","QuizComponent","options","definition","buildSchemaFromQuestions","questions","originalQuestions","formBuilder","FormComponent","schema","term","ui","randomizeQuestions","getNamedFields","map","nf","name","startTime","Date","getTime","fields","shuffle","present","results","answers","answerValidities","totalQuestions","length","totalCorrect","questionNames","Object","keys","forEach","questionName","fieldName","answer","split","validity","idx","find","namedField","field","Error","fieldDefinition","type","parseInt","Correct","Incorrect","totalWrong","endTime","lastResults","percentCorrect","time","startTimeMs","endTimeMs","totalTimeSec","toFixed","headline","SchemaError","code","parameters","clear","renderHero","testResults","questionFieldName","isCorrect","guessedAnswer","correctAnswer","originalQuestion","objectKey","label","chalk","bgGreenBright","black","bgRedBright","strikethrough","renderObject","renderLine","renderHeadline","waitForEnter","question","choices","value","id"],"sources":["../../src/components/QuizComponent.ts"],"sourcesContent":["import {\n\tSchema,\n\tSchemaFieldsByName,\n\tSchemaFieldNames,\n\tSchemaError,\n} from '@sprucelabs/schema'\nimport chalk from 'chalk'\nimport { shuffle } from 'lodash'\nimport { GraphicsInterface } from '../types/cli.types'\nimport FormComponent, {\n\tFormOptions,\n\tFormPresentationOptions,\n} from './FormComponent'\n\ninterface QuizMultipleChoiceQuestion {\n\ttype: 'select'\n\tquestion: string\n\tanswers: string[]\n}\n\ninterface QuizTextQuestion {\n\ttype: 'text'\n\tquestion: string\n\tanswer: string\n}\n\ninterface QuizQuestions {\n\t[key: string]: QuizMultipleChoiceQuestion | QuizTextQuestion\n}\n\nenum AnswerValidity {\n\tCorrect = 'correct',\n\tIncorrect = 'incorrect',\n}\n\ninterface QuizPresentationOptions<T extends Schema, Q extends QuizQuestions>\n\textends Omit<FormPresentationOptions<T>, 'fields'> {\n\tquestions?: QuizAnswerFieldNames<Q>[]\n\trandomizeQuestions?: boolean\n}\n\ntype QuizAnswerFieldNames<Q extends QuizQuestions> = Extract<keyof Q, string>\n\ntype QuizAnswers<Q extends QuizQuestions> = {\n\t[K in QuizAnswerFieldNames<Q>]: string\n}\n\ntype QuizAnswerValidities<Q extends QuizQuestions> = {\n\t[K in QuizAnswerFieldNames<Q>]: AnswerValidity\n}\n\ntype QuizPresentationResults<Q extends QuizQuestions> = {\n\t/** The answers that were given */\n\tanswers: QuizAnswers<Q>\n\n\t/** The answers right or wrong */\n\tanswerValidities: QuizAnswerValidities<Q>\n\n\t/** The percent of correct answers given */\n\tpercentCorrect: number\n\n\t/** How long it took them to take the quiz in ms */\n\ttime: {\n\t\tstartTimeMs: number\n\t\tendTimeMs: number\n\t\ttotalTimeSec: number\n\t}\n\n\t/** How many were correct */\n\ttotalCorrect: number\n\n\t/** How many were wrong */\n\ttotalWrong: number\n\n\t/** How many questions we ended up taking */\n\ttotalQuestions: number\n}\n\ninterface QuizOptions<T extends Schema, Q extends QuizQuestions>\n\textends Omit<FormOptions<T>, 'schema'> {\n\t/** Should we randomize the questions */\n\trandomizeQuestions?: boolean\n\t/** The questions we are asking */\n\tquestions: Q\n}\n\nexport default class QuizComponent<T extends Schema, Q extends QuizQuestions> {\n\tpublic formBuilder: FormComponent<T>\n\tpublic term: GraphicsInterface\n\tpublic randomizeQuestions = true\n\tpublic originalQuestions: QuizQuestions\n\tpublic lastResults?: QuizPresentationResults<Q>\n\n\tpublic constructor(options: QuizOptions<T, Q>) {\n\t\t// We're going to build a schema from the questions and pass that to the form builder\n\t\tconst definition = this.buildSchemaFromQuestions(options.questions)\n\n\t\t// Track questions for later reference\n\t\tthis.originalQuestions = options.questions\n\n\t\t// Construct new form builder\n\t\tthis.formBuilder = new FormComponent<T>({\n\t\t\t...options,\n\t\t\tschema: definition,\n\t\t})\n\n\t\t// Set state locally\n\t\tthis.term = options.ui\n\t\tthis.randomizeQuestions = options.randomizeQuestions ?? true\n\t}\n\n\t/** Present the quiz */\n\tpublic async present(\n\t\toptions: QuizPresentationOptions<T, Q> = {}\n\t): Promise<QuizPresentationResults<Q>> {\n\t\tconst {\n\t\t\tquestions = this.formBuilder\n\t\t\t\t.getNamedFields()\n\t\t\t\t.map((nf) => nf.name) as QuizAnswerFieldNames<Q>[],\n\t\t\trandomizeQuestions = this.randomizeQuestions,\n\t\t} = options\n\n\t\tconst startTime = new Date().getTime()\n\n\t\t// Pull out answers\n\t\tconst fields = randomizeQuestions ? shuffle(questions) : questions\n\n\t\t// Ask for the answers\n\t\tconst results = await this.formBuilder.present({\n\t\t\t...options,\n\t\t\tfields: fields as SchemaFieldNames<T>[],\n\t\t})\n\n\t\t// Generate stats\n\t\tconst answers: Partial<QuizAnswers<Q>> = {}\n\t\tconst answerValidities: Partial<QuizAnswerValidities<Q>> = {}\n\n\t\tconst totalQuestions = questions.length\n\t\tlet totalCorrect = 0\n\n\t\tconst questionNames = Object.keys(results) as QuizAnswerFieldNames<Q>[]\n\n\t\tquestionNames.forEach((questionName) => {\n\t\t\tconst fieldName = questionName as SchemaFieldNames<T>\n\t\t\tconst answer = (results[fieldName] as string) || ''\n\t\t\tconst [validity, idx] = answer.split('-')\n\n\t\t\t// Get the field to tell type\n\t\t\tconst { field } =\n\t\t\t\tthis.formBuilder\n\t\t\t\t\t.getNamedFields()\n\t\t\t\t\t.find((namedField) => namedField.name === fieldName) || {}\n\n\t\t\tif (!field) {\n\t\t\t\tthrow new Error('Field issue in QuizComponent')\n\t\t\t}\n\n\t\t\tconst fieldDefinition = field.definition\n\n\t\t\tswitch (fieldDefinition.type) {\n\t\t\t\tcase 'select':\n\t\t\t\t\t// Pull the original multiple choice, we can cast it as multiple choice\n\t\t\t\t\t// question with confidence\n\t\t\t\t\tanswers[questionName] = (\n\t\t\t\t\t\tthis.originalQuestions[questionName] as QuizMultipleChoiceQuestion\n\t\t\t\t\t).answers[parseInt(idx)]\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\t// @ts-ignore TODO proper questions to schema should fix this because we only support a few fields\n\t\t\t\t\tanswers[questionName] = results[fieldName]\n\t\t\t}\n\n\t\t\t// Track validity\n\t\t\tif (validity === AnswerValidity.Correct) {\n\t\t\t\ttotalCorrect = totalCorrect + 1\n\t\t\t\tanswerValidities[questionName] = AnswerValidity.Correct\n\t\t\t} else {\n\t\t\t\tanswerValidities[questionName] = AnswerValidity.Incorrect\n\t\t\t}\n\t\t}, 0)\n\n\t\tconst totalWrong = totalQuestions - totalCorrect\n\n\t\t// Track time\n\t\tconst endTime = new Date().getTime()\n\n\t\tthis.lastResults = {\n\t\t\tpercentCorrect: totalCorrect / totalQuestions,\n\t\t\ttotalCorrect,\n\t\t\ttotalWrong,\n\t\t\tanswerValidities: answerValidities as QuizAnswerValidities<Q>,\n\t\t\tanswers: answers as QuizAnswers<Q>,\n\t\t\ttotalQuestions,\n\t\t\ttime: {\n\t\t\t\tstartTimeMs: startTime,\n\t\t\t\tendTimeMs: endTime,\n\t\t\t\ttotalTimeSec: +((endTime - startTime) / 1000).toFixed(1),\n\t\t\t},\n\t\t}\n\n\t\treturn this.lastResults\n\t}\n\n\tpublic async scorecard(\n\t\toptions: {\n\t\t\tresults?: QuizPresentationResults<Q>\n\t\t\theadline?: string\n\t\t} = {}\n\t) {\n\t\tconst { headline, results = this.lastResults } = options\n\t\tconst { term } = this\n\n\t\tif (!results) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tparameters: [],\n\t\t\t})\n\t\t}\n\n\t\tterm.clear()\n\t\tterm.renderHero(headline ?? 'Quiz results!')\n\n\t\tconst testResults: Record<string, string> = {}\n\n\t\tthis.formBuilder.getNamedFields().forEach((namedField) => {\n\t\t\tconst { name, field } = namedField\n\t\t\tconst questionFieldName = name as QuizAnswerFieldNames<Q>\n\n\t\t\t// Get results\n\t\t\tconst isCorrect =\n\t\t\t\tresults.answerValidities[questionFieldName] === AnswerValidity.Correct\n\t\t\tconst guessedAnswer = `${results.answers[questionFieldName]}`\n\n\t\t\t// Build the real answer\n\t\t\tlet correctAnswer = ''\n\n\t\t\tconst originalQuestion = this.originalQuestions[questionFieldName]\n\n\t\t\tswitch (originalQuestion.type) {\n\t\t\t\tcase 'select':\n\t\t\t\t\tcorrectAnswer = originalQuestion.answers[0]\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\t// All options just pass through the answer tied to the question during instantiation\n\t\t\t\t\tcorrectAnswer = originalQuestion.answer\n\t\t\t}\n\n\t\t\tconst objectKey = field.label || '**missing'\n\n\t\t\tif (isCorrect) {\n\t\t\t\ttestResults[objectKey] = `${chalk.bgGreenBright.black(\n\t\t\t\t\t'Correct!'\n\t\t\t\t)} ${guessedAnswer} `\n\t\t\t} else {\n\t\t\t\ttestResults[objectKey] = `${chalk.bgRedBright.black(\n\t\t\t\t\t'Wrong!'\n\t\t\t\t)} ${chalk.strikethrough(guessedAnswer)} -> ${correctAnswer}`\n\t\t\t}\n\t\t})\n\n\t\tterm.renderObject(testResults)\n\n\t\tterm.renderLine(`# questions: ${results.totalQuestions}`)\n\t\tterm.renderLine(`# correct: ${results.totalCorrect}`)\n\n\t\tterm.renderHeadline(\n\t\t\t`Your score: ${(results.percentCorrect * 100).toFixed(1)}%`\n\t\t)\n\n\t\tawait term.waitForEnter()\n\t}\n\n\t/** Takes questions and builds a schema */\n\tprivate buildSchemaFromQuestions(questions: QuizQuestions): T {\n\t\t// TODO change SchemaFields to something based on schema generated from questions\n\t\tconst fields: SchemaFieldsByName = {}\n\n\t\tObject.keys(questions).forEach((fieldName) => {\n\t\t\tconst question = questions[fieldName]\n\n\t\t\tswitch (question.type) {\n\t\t\t\tcase 'select':\n\t\t\t\t\tfields[fieldName] = {\n\t\t\t\t\t\ttype: question.type,\n\t\t\t\t\t\tlabel: question.question,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tchoices: shuffle(\n\t\t\t\t\t\t\t\tquestion.answers.map((question, idx) => ({\n\t\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\t\tidx === 0\n\t\t\t\t\t\t\t\t\t\t\t? `${AnswerValidity.Correct}-${idx}`\n\t\t\t\t\t\t\t\t\t\t\t: `${AnswerValidity.Incorrect}-${idx}`,\n\t\t\t\t\t\t\t\t\tlabel: question,\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tfields[fieldName] = {\n\t\t\t\t\t\ttype: question.type,\n\t\t\t\t\t\tlabel: question.question,\n\t\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t//@ts-ignore TODO better mapping of questions to schema definition\n\t\tconst definition: T = {\n\t\t\tid: 'quizGenerated',\n\t\t\tname: 'Generated quiz',\n\t\t\tfields,\n\t\t}\n\n\t\treturn definition\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"QuizComponent.js","names":["AnswerValidity","QuizComponent","options","definition","buildSchemaFromQuestions","questions","originalQuestions","formBuilder","FormComponent","schema","term","ui","randomizeQuestions","getNamedFields","map","nf","name","startTime","Date","getTime","fields","shuffle","present","results","answers","answerValidities","totalQuestions","length","totalCorrect","questionNames","Object","keys","forEach","questionName","fieldName","answer","split","validity","idx","find","namedField","field","Error","fieldDefinition","type","parseInt","Correct","Incorrect","totalWrong","endTime","lastResults","percentCorrect","time","startTimeMs","endTimeMs","totalTimeSec","toFixed","headline","SchemaError","code","parameters","clear","renderHero","testResults","questionFieldName","isCorrect","guessedAnswer","correctAnswer","originalQuestion","objectKey","label","chalk","bgGreenBright","black","bgRedBright","strikethrough","renderObject","renderLine","renderHeadline","waitForEnter","question","choices","value","id"],"sources":["../../src/components/QuizComponent.ts"],"sourcesContent":["import {\n\tSchema,\n\tSchemaFieldsByName,\n\tSchemaFieldNames,\n\tSchemaError,\n} from '@sprucelabs/schema'\nimport chalk from 'chalk'\nimport { shuffle } from 'lodash'\nimport { GraphicsInterface } from '../types/cli.types'\nimport FormComponent, {\n\tFormOptions,\n\tFormPresentationOptions,\n} from './FormComponent'\n\ninterface QuizMultipleChoiceQuestion {\n\ttype: 'select'\n\tquestion: string\n\tanswers: string[]\n}\n\ninterface QuizTextQuestion {\n\ttype: 'text'\n\tquestion: string\n\tanswer: string\n}\n\ninterface QuizQuestions {\n\t[key: string]: QuizMultipleChoiceQuestion | QuizTextQuestion\n}\n\nenum AnswerValidity {\n\tCorrect = 'correct',\n\tIncorrect = 'incorrect',\n}\n\ninterface QuizPresentationOptions<T extends Schema, Q extends QuizQuestions>\n\textends Omit<FormPresentationOptions<T>, 'fields'> {\n\tquestions?: QuizAnswerFieldNames<Q>[]\n\trandomizeQuestions?: boolean\n}\n\ntype QuizAnswerFieldNames<Q extends QuizQuestions> = Extract<keyof Q, string>\n\ntype QuizAnswers<Q extends QuizQuestions> = {\n\t[K in QuizAnswerFieldNames<Q>]: string\n}\n\ntype QuizAnswerValidities<Q extends QuizQuestions> = {\n\t[K in QuizAnswerFieldNames<Q>]: AnswerValidity\n}\n\ntype QuizPresentationResults<Q extends QuizQuestions> = {\n\t/** The answers that were given */\n\tanswers: QuizAnswers<Q>\n\n\t/** The answers right or wrong */\n\tanswerValidities: QuizAnswerValidities<Q>\n\n\t/** The percent of correct answers given */\n\tpercentCorrect: number\n\n\t/** How long it took them to take the quiz in ms */\n\ttime: {\n\t\tstartTimeMs: number\n\t\tendTimeMs: number\n\t\ttotalTimeSec: number\n\t}\n\n\t/** How many were correct */\n\ttotalCorrect: number\n\n\t/** How many were wrong */\n\ttotalWrong: number\n\n\t/** How many questions we ended up taking */\n\ttotalQuestions: number\n}\n\ninterface QuizOptions<T extends Schema, Q extends QuizQuestions>\n\textends Omit<FormOptions<T>, 'schema'> {\n\t/** Should we randomize the questions */\n\trandomizeQuestions?: boolean\n\t/** The questions we are asking */\n\tquestions: Q\n}\n\nexport default class QuizComponent<T extends Schema, Q extends QuizQuestions> {\n\tpublic formBuilder: FormComponent<T>\n\tpublic term: GraphicsInterface\n\tpublic randomizeQuestions = true\n\tpublic originalQuestions: QuizQuestions\n\tpublic lastResults?: QuizPresentationResults<Q>\n\n\tpublic constructor(options: QuizOptions<T, Q>) {\n\t\t// We're going to build a schema from the questions and pass that to the form builder\n\t\tconst definition = this.buildSchemaFromQuestions(options.questions)\n\n\t\t// Track questions for later reference\n\t\tthis.originalQuestions = options.questions\n\n\t\t// Construct new form builder\n\t\tthis.formBuilder = new FormComponent<T>({\n\t\t\t...options,\n\t\t\tschema: definition,\n\t\t})\n\n\t\t// Set state locally\n\t\tthis.term = options.ui\n\t\tthis.randomizeQuestions = options.randomizeQuestions ?? true\n\t}\n\n\t/** Present the quiz */\n\tpublic async present(\n\t\toptions: QuizPresentationOptions<T, Q> = {}\n\t): Promise<QuizPresentationResults<Q>> {\n\t\tconst {\n\t\t\tquestions = this.formBuilder\n\t\t\t\t.getNamedFields()\n\t\t\t\t.map((nf) => nf.name) as QuizAnswerFieldNames<Q>[],\n\t\t\trandomizeQuestions = this.randomizeQuestions,\n\t\t} = options\n\n\t\tconst startTime = new Date().getTime()\n\n\t\t// Pull out answers\n\t\tconst fields = randomizeQuestions ? shuffle(questions) : questions\n\n\t\t// Ask for the answers\n\t\tconst results = await this.formBuilder.present({\n\t\t\t...options,\n\t\t\tfields: fields as SchemaFieldNames<T>[],\n\t\t})\n\n\t\t// Generate stats\n\t\tconst answers: Partial<QuizAnswers<Q>> = {}\n\t\tconst answerValidities: Partial<QuizAnswerValidities<Q>> = {}\n\n\t\tconst totalQuestions = questions.length\n\t\tlet totalCorrect = 0\n\n\t\tconst questionNames = Object.keys(results) as QuizAnswerFieldNames<Q>[]\n\n\t\tquestionNames.forEach((questionName) => {\n\t\t\tconst fieldName = questionName as SchemaFieldNames<T>\n\t\t\tconst answer = (results[fieldName] as string) || ''\n\t\t\tconst [validity, idx] = answer.split('-')\n\n\t\t\t// Get the field to tell type\n\t\t\tconst { field } =\n\t\t\t\tthis.formBuilder\n\t\t\t\t\t.getNamedFields()\n\t\t\t\t\t.find((namedField) => namedField.name === fieldName) || {}\n\n\t\t\tif (!field) {\n\t\t\t\tthrow new Error('Field issue in QuizComponent')\n\t\t\t}\n\n\t\t\tconst fieldDefinition = field.definition\n\n\t\t\tswitch (fieldDefinition.type) {\n\t\t\t\tcase 'select':\n\t\t\t\t\t// Pull the original multiple choice, we can cast it as multiple choice\n\t\t\t\t\t// question with confidence\n\t\t\t\t\tanswers[questionName] = (\n\t\t\t\t\t\tthis.originalQuestions[questionName] as QuizMultipleChoiceQuestion\n\t\t\t\t\t).answers[parseInt(idx)]\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\t// @ts-ignore TODO proper questions to schema should fix this because we only support a few fields\n\t\t\t\t\tanswers[questionName] = results[fieldName]\n\t\t\t}\n\n\t\t\t// Track validity\n\t\t\tif (validity === AnswerValidity.Correct) {\n\t\t\t\ttotalCorrect = totalCorrect + 1\n\t\t\t\tanswerValidities[questionName] = AnswerValidity.Correct\n\t\t\t} else {\n\t\t\t\tanswerValidities[questionName] = AnswerValidity.Incorrect\n\t\t\t}\n\t\t}, 0)\n\n\t\tconst totalWrong = totalQuestions - totalCorrect\n\n\t\t// Track time\n\t\tconst endTime = new Date().getTime()\n\n\t\tthis.lastResults = {\n\t\t\tpercentCorrect: totalCorrect / totalQuestions,\n\t\t\ttotalCorrect,\n\t\t\ttotalWrong,\n\t\t\tanswerValidities: answerValidities as QuizAnswerValidities<Q>,\n\t\t\tanswers: answers as QuizAnswers<Q>,\n\t\t\ttotalQuestions,\n\t\t\ttime: {\n\t\t\t\tstartTimeMs: startTime,\n\t\t\t\tendTimeMs: endTime,\n\t\t\t\ttotalTimeSec: +((endTime - startTime) / 1000).toFixed(1),\n\t\t\t},\n\t\t}\n\n\t\treturn this.lastResults\n\t}\n\n\tpublic async scorecard(\n\t\toptions: {\n\t\t\tresults?: QuizPresentationResults<Q>\n\t\t\theadline?: string\n\t\t} = {}\n\t) {\n\t\tconst { headline, results = this.lastResults } = options\n\t\tconst { term } = this\n\n\t\tif (!results) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tparameters: [],\n\t\t\t})\n\t\t}\n\n\t\tterm.clear()\n\t\tterm.renderHero(headline ?? 'Quiz results!')\n\n\t\tconst testResults: Record<string, string> = {}\n\n\t\tthis.formBuilder.getNamedFields().forEach((namedField) => {\n\t\t\tconst { name, field } = namedField\n\t\t\tconst questionFieldName = name as QuizAnswerFieldNames<Q>\n\n\t\t\t// Get results\n\t\t\tconst isCorrect =\n\t\t\t\tresults.answerValidities[questionFieldName] === AnswerValidity.Correct\n\t\t\tconst guessedAnswer = `${results.answers[questionFieldName]}`\n\n\t\t\t// Build the real answer\n\t\t\tlet correctAnswer = ''\n\n\t\t\tconst originalQuestion = this.originalQuestions[questionFieldName]\n\n\t\t\tswitch (originalQuestion.type) {\n\t\t\t\tcase 'select':\n\t\t\t\t\tcorrectAnswer = originalQuestion.answers[0]\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\t// All options just pass through the answer tied to the question during instantiation\n\t\t\t\t\tcorrectAnswer = originalQuestion.answer\n\t\t\t}\n\n\t\t\tconst objectKey = field.label || '**missing'\n\n\t\t\tif (isCorrect) {\n\t\t\t\ttestResults[objectKey] = `${chalk.bgGreenBright.black(\n\t\t\t\t\t'Correct!'\n\t\t\t\t)} ${guessedAnswer} `\n\t\t\t} else {\n\t\t\t\ttestResults[objectKey] = `${chalk.bgRedBright.black(\n\t\t\t\t\t'Wrong!'\n\t\t\t\t)} ${chalk.strikethrough(guessedAnswer)} -> ${correctAnswer}`\n\t\t\t}\n\t\t})\n\n\t\tterm.renderObject(testResults)\n\n\t\tterm.renderLine(`# questions: ${results.totalQuestions}`)\n\t\tterm.renderLine(`# correct: ${results.totalCorrect}`)\n\n\t\tterm.renderHeadline(\n\t\t\t`Your score: ${(results.percentCorrect * 100).toFixed(1)}%`\n\t\t)\n\n\t\tawait term.waitForEnter()\n\t}\n\n\t/** Takes questions and builds a schema */\n\tprivate buildSchemaFromQuestions(questions: QuizQuestions): T {\n\t\t// TODO change SchemaFields to something based on schema generated from questions\n\t\tconst fields: SchemaFieldsByName = {}\n\n\t\tObject.keys(questions).forEach((fieldName) => {\n\t\t\tconst question = questions[fieldName]\n\n\t\t\tswitch (question.type) {\n\t\t\t\tcase 'select':\n\t\t\t\t\tfields[fieldName] = {\n\t\t\t\t\t\ttype: question.type,\n\t\t\t\t\t\tlabel: question.question,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tchoices: shuffle(\n\t\t\t\t\t\t\t\tquestion.answers.map((question, idx) => ({\n\t\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\t\tidx === 0\n\t\t\t\t\t\t\t\t\t\t\t? `${AnswerValidity.Correct}-${idx}`\n\t\t\t\t\t\t\t\t\t\t\t: `${AnswerValidity.Incorrect}-${idx}`,\n\t\t\t\t\t\t\t\t\tlabel: question,\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tfields[fieldName] = {\n\t\t\t\t\t\ttype: question.type,\n\t\t\t\t\t\tlabel: question.question,\n\t\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t//@ts-ignore TODO better mapping of questions to schema definition\n\t\tconst definition: T = {\n\t\t\tid: 'quizGenerated',\n\t\t\tname: 'Generated quiz',\n\t\t\tfields,\n\t\t}\n\n\t\treturn definition\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAMA;AACA;AAEA;AAGwB;AAAA;AAAA,IAkBnBA,cAAc;AAAA,WAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc;AAAA,IAwDEC,aAAa;EAOjC,uBAAmBC,OAA0B,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,6DAJnB,IAAI;IAAA;IAAA;IAK/B;IACA,IAAMC,UAAU,GAAG,IAAI,CAACC,wBAAwB,CAACF,OAAO,CAACG,SAAS,CAAC;;IAEnE;IACA,IAAI,CAACC,iBAAiB,GAAGJ,OAAO,CAACG,SAAS;;IAE1C;IACA,IAAI,CAACE,WAAW,GAAG,IAAIC,yBAAa,iCAChCN,OAAO;MACVO,MAAM,EAAEN;IAAU,GACjB;;IAEF;IACA,IAAI,CAACO,IAAI,GAAGR,OAAO,CAACS,EAAE;IACtB,IAAI,CAACC,kBAAkB,4BAAGV,OAAO,CAACU,kBAAkB,yEAAI,IAAI;EAC7D;;EAEA;EAAA;IAAA;IAAA;MAAA,6FACA;QAAA;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBACCV,OAAsC,2DAAG,CAAC,CAAC;gBAAA,qBAOvCA,OAAO,CAJVG,SAAS,EAATA,SAAS,mCAAG,IAAI,CAACE,WAAW,CAC1BM,cAAc,EAAE,CAChBC,GAAG,CAAC,UAACC,EAAE;kBAAA,OAAKA,EAAE,CAACC,IAAI;gBAAA,EAAC,gDAEnBd,OAAO,CADVU,kBAAkB,EAAlBA,kBAAkB,uCAAG,IAAI,CAACA,kBAAkB;gBAGvCK,SAAS,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE,EAEtC;gBACMC,MAAM,GAAGR,kBAAkB,GAAG,IAAAS,eAAO,EAAChB,SAAS,CAAC,GAAGA,SAAS,EAElE;gBAAA;gBAAA,OACsB,IAAI,CAACE,WAAW,CAACe,OAAO,iCAC1CpB,OAAO;kBACVkB,MAAM,EAAEA;gBAA+B,GACtC;cAAA;gBAHIG,OAAO;gBAKb;gBACMC,OAAgC,GAAG,CAAC,CAAC;gBACrCC,gBAAkD,GAAG,CAAC,CAAC;gBAEvDC,cAAc,GAAGrB,SAAS,CAACsB,MAAM;gBACnCC,YAAY,GAAG,CAAC;gBAEdC,aAAa,GAAGC,MAAM,CAACC,IAAI,CAACR,OAAO,CAAC;gBAE1CM,aAAa,CAACG,OAAO,CAAC,UAACC,YAAY,EAAK;kBACvC,IAAMC,SAAS,GAAGD,YAAmC;kBACrD,IAAME,MAAM,GAAIZ,OAAO,CAACW,SAAS,CAAC,IAAe,EAAE;kBACnD,oBAAwBC,MAAM,CAACC,KAAK,CAAC,GAAG,CAAC;oBAAA;oBAAlCC,QAAQ;oBAAEC,GAAG;;kBAEpB;kBACA,WACC,KAAI,CAAC/B,WAAW,CACdM,cAAc,EAAE,CAChB0B,IAAI,CAAC,UAACC,UAAU;sBAAA,OAAKA,UAAU,CAACxB,IAAI,KAAKkB,SAAS;oBAAA,EAAC,IAAI,CAAC,CAAC;oBAHpDO,KAAK,QAALA,KAAK;kBAKb,IAAI,CAACA,KAAK,EAAE;oBACX,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;kBAChD;kBAEA,IAAMC,eAAe,GAAGF,KAAK,CAACtC,UAAU;kBAExC,QAAQwC,eAAe,CAACC,IAAI;oBAC3B,KAAK,QAAQ;sBACZ;sBACA;sBACApB,OAAO,CAACS,YAAY,CAAC,GACpB,KAAI,CAAC3B,iBAAiB,CAAC2B,YAAY,CAAC,CACnCT,OAAO,CAACqB,QAAQ,CAACP,GAAG,CAAC,CAAC;sBACxB;oBACD;sBACC;sBACAd,OAAO,CAACS,YAAY,CAAC,GAAGV,OAAO,CAACW,SAAS,CAAC;kBAAA;;kBAG5C;kBACA,IAAIG,QAAQ,KAAKrC,cAAc,CAAC8C,OAAO,EAAE;oBACxClB,YAAY,GAAGA,YAAY,GAAG,CAAC;oBAC/BH,gBAAgB,CAACQ,YAAY,CAAC,GAAGjC,cAAc,CAAC8C,OAAO;kBACxD,CAAC,MAAM;oBACNrB,gBAAgB,CAACQ,YAAY,CAAC,GAAGjC,cAAc,CAAC+C,SAAS;kBAC1D;gBACD,CAAC,EAAE,CAAC,CAAC;gBAECC,UAAU,GAAGtB,cAAc,GAAGE,YAAY,EAEhD;gBACMqB,OAAO,GAAG,IAAI/B,IAAI,EAAE,CAACC,OAAO,EAAE;gBAEpC,IAAI,CAAC+B,WAAW,GAAG;kBAClBC,cAAc,EAAEvB,YAAY,GAAGF,cAAc;kBAC7CE,YAAY,EAAZA,YAAY;kBACZoB,UAAU,EAAVA,UAAU;kBACVvB,gBAAgB,EAAEA,gBAA2C;kBAC7DD,OAAO,EAAEA,OAAyB;kBAClCE,cAAc,EAAdA,cAAc;kBACd0B,IAAI,EAAE;oBACLC,WAAW,EAAEpC,SAAS;oBACtBqC,SAAS,EAAEL,OAAO;oBAClBM,YAAY,EAAE,CAAC,CAAC,CAACN,OAAO,GAAGhC,SAAS,IAAI,IAAI,EAAEuC,OAAO,CAAC,CAAC;kBACxD;gBACD,CAAC;gBAAA,iCAEM,IAAI,CAACN,WAAW;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACvB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,+FAED;QAAA;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBACChD,OAGC,8DAAG,CAAC,CAAC;gBAEEuD,QAAQ,GAAiCvD,OAAO,CAAhDuD,QAAQ,qBAAiCvD,OAAO,CAAtCqB,OAAO,EAAPA,OAAO,iCAAG,IAAI,CAAC2B,WAAW;gBACpCxC,IAAI,GAAK,IAAI,CAAbA,IAAI;gBAAA,IAEPa,OAAO;kBAAA;kBAAA;gBAAA;gBAAA,MACL,IAAImC,mBAAW,CAAC;kBACrBC,IAAI,EAAE,oBAAoB;kBAC1BC,UAAU,EAAE;gBACb,CAAC,CAAC;cAAA;gBAGHlD,IAAI,CAACmD,KAAK,EAAE;gBACZnD,IAAI,CAACoD,UAAU,CAACL,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,eAAe,CAAC;gBAEtCM,WAAmC,GAAG,CAAC,CAAC;gBAE9C,IAAI,CAACxD,WAAW,CAACM,cAAc,EAAE,CAACmB,OAAO,CAAC,UAACQ,UAAU,EAAK;kBACzD,IAAQxB,IAAI,GAAYwB,UAAU,CAA1BxB,IAAI;oBAAEyB,KAAK,GAAKD,UAAU,CAApBC,KAAK;kBACnB,IAAMuB,iBAAiB,GAAGhD,IAA+B;;kBAEzD;kBACA,IAAMiD,SAAS,GACd1C,OAAO,CAACE,gBAAgB,CAACuC,iBAAiB,CAAC,KAAKhE,cAAc,CAAC8C,OAAO;kBACvE,IAAMoB,aAAa,aAAM3C,OAAO,CAACC,OAAO,CAACwC,iBAAiB,CAAC,CAAE;;kBAE7D;kBACA,IAAIG,aAAa,GAAG,EAAE;kBAEtB,IAAMC,gBAAgB,GAAG,MAAI,CAAC9D,iBAAiB,CAAC0D,iBAAiB,CAAC;kBAElE,QAAQI,gBAAgB,CAACxB,IAAI;oBAC5B,KAAK,QAAQ;sBACZuB,aAAa,GAAGC,gBAAgB,CAAC5C,OAAO,CAAC,CAAC,CAAC;sBAC3C;oBACD;sBACC;sBACA2C,aAAa,GAAGC,gBAAgB,CAACjC,MAAM;kBAAA;kBAGzC,IAAMkC,SAAS,GAAG5B,KAAK,CAAC6B,KAAK,IAAI,WAAW;kBAE5C,IAAIL,SAAS,EAAE;oBACdF,WAAW,CAACM,SAAS,CAAC,aAAME,iBAAK,CAACC,aAAa,CAACC,KAAK,CACpD,UAAU,CACV,cAAIP,aAAa,MAAG;kBACtB,CAAC,MAAM;oBACNH,WAAW,CAACM,SAAS,CAAC,aAAME,iBAAK,CAACG,WAAW,CAACD,KAAK,CAClD,QAAQ,CACR,eAAKF,iBAAK,CAACI,aAAa,CAACT,aAAa,CAAC,iBAAOC,aAAa,CAAE;kBAC/D;gBACD,CAAC,CAAC;gBAEFzD,IAAI,CAACkE,YAAY,CAACb,WAAW,CAAC;gBAE9BrD,IAAI,CAACmE,UAAU,wBAAiBtD,OAAO,CAACG,cAAc,EAAG;gBACzDhB,IAAI,CAACmE,UAAU,sBAAetD,OAAO,CAACK,YAAY,EAAG;gBAErDlB,IAAI,CAACoE,cAAc,uBACH,CAACvD,OAAO,CAAC4B,cAAc,GAAG,GAAG,EAAEK,OAAO,CAAC,CAAC,CAAC,OACxD;gBAAA;gBAAA,OAEK9C,IAAI,CAACqE,YAAY,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACzB;MAAA;QAAA;MAAA;MAAA;IAAA,IAED;EAAA;IAAA;IAAA,OACA,kCAAiC1E,SAAwB,EAAK;MAC7D;MACA,IAAMe,MAA0B,GAAG,CAAC,CAAC;MAErCU,MAAM,CAACC,IAAI,CAAC1B,SAAS,CAAC,CAAC2B,OAAO,CAAC,UAACE,SAAS,EAAK;QAC7C,IAAM8C,QAAQ,GAAG3E,SAAS,CAAC6B,SAAS,CAAC;QAErC,QAAQ8C,QAAQ,CAACpC,IAAI;UACpB,KAAK,QAAQ;YACZxB,MAAM,CAACc,SAAS,CAAC,GAAG;cACnBU,IAAI,EAAEoC,QAAQ,CAACpC,IAAI;cACnB0B,KAAK,EAAEU,QAAQ,CAACA,QAAQ;cACxB9E,OAAO,EAAE;gBACR+E,OAAO,EAAE,IAAA5D,eAAO,EACf2D,QAAQ,CAACxD,OAAO,CAACV,GAAG,CAAC,UAACkE,QAAQ,EAAE1C,GAAG;kBAAA,OAAM;oBACxC4C,KAAK,EACJ5C,GAAG,KAAK,CAAC,aACHtC,cAAc,CAAC8C,OAAO,cAAIR,GAAG,cAC7BtC,cAAc,CAAC+C,SAAS,cAAIT,GAAG,CAAE;oBACxCgC,KAAK,EAAEU;kBACR,CAAC;gBAAA,CAAC,CAAC;cAEL;YACD,CAAC;YACD;UACD;YACC5D,MAAM,CAACc,SAAS,CAAC,GAAG;cACnBU,IAAI,EAAEoC,QAAQ,CAACpC,IAAI;cACnB0B,KAAK,EAAEU,QAAQ,CAACA;YACjB,CAAC;QAAA;MAEJ,CAAC,CAAC;;MAEF;MACA,IAAM7E,UAAa,GAAG;QACrBgF,EAAE,EAAE,eAAe;QACnBnE,IAAI,EAAE,gBAAgB;QACtBI,MAAM,EAANA;MACD,CAAC;MAED,OAAOjB,UAAU;IAClB;EAAC;EAAA;AAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["DEFAULT_HOST","CLI_HERO","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP"],"sources":["../src/constants.ts"],"sourcesContent":["export const DEFAULT_HOST = 'https://mercury.spruce.ai'\nexport const CLI_HERO = 'Sprucebot'\n\nexport const FILE_ACTION_OVERWRITE = 'overwrite'\nexport const FILE_ACTION_SKIP = 'skip'\nexport const FILE_ACTION_ALWAYS_SKIP = 'alwaysSkip'\n"],"mappings":";;;;;;AAAO,IAAMA,YAAY,GAAG,2BAArB;;AACA,IAAMC,QAAQ,GAAG,WAAjB;;AAEA,IAAMC,qBAAqB,GAAG,WAA9B;;AACA,IAAMC,gBAAgB,GAAG,MAAzB;;AACA,IAAMC,uBAAuB,GAAG,YAAhC"}
1
+ {"version":3,"file":"constants.js","names":["DEFAULT_HOST","CLI_HERO","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP"],"sources":["../src/constants.ts"],"sourcesContent":["export const DEFAULT_HOST = 'https://mercury.spruce.ai'\nexport const CLI_HERO = 'Sprucebot'\n\nexport const FILE_ACTION_OVERWRITE = 'overwrite'\nexport const FILE_ACTION_SKIP = 'skip'\nexport const FILE_ACTION_ALWAYS_SKIP = 'alwaysSkip'\n"],"mappings":";;;;;;AAAO,IAAMA,YAAY,GAAG,2BAA2B;AAAA;AAChD,IAAMC,QAAQ,GAAG,WAAW;AAAA;AAE5B,IAAMC,qBAAqB,GAAG,WAAW;AAAA;AACzC,IAAMC,gBAAgB,GAAG,MAAM;AAAA;AAC/B,IAAMC,uBAAuB,GAAG,YAAY;AAAA"}