@sprucelabs/spruce-cli 15.4.10 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  3. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  43. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  44. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  45. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  63. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  67. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  68. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  69. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  70. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  71. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  89. package/build/GlobalEmitter.js.map +1 -1
  90. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  91. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  92. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  93. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  94. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  95. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  96. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  97. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  98. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  99. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  100. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  101. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  102. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  103. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  104. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  105. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  106. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  107. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  108. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  109. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  110. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  111. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  112. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  113. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  114. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  115. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  116. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  117. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  118. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  119. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  120. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  121. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  122. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  123. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  124. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  125. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  126. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  127. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  128. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  129. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  130. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  131. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  132. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  133. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  135. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  136. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  137. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  138. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  139. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  140. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  141. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  142. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  143. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  144. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  145. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  146. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  147. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  148. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  149. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  150. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  151. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  152. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  153. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
  155. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  156. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  157. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  158. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  159. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  161. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  169. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  171. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  173. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  175. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  176. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  177. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  178. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  179. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  180. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  181. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  182. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  183. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  184. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  185. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  186. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  187. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  188. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  189. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  190. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  191. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  192. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  193. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  194. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  195. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  196. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  197. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  198. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  199. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  200. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  201. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  202. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  203. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  204. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  205. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  206. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  207. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  208. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  209. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  210. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  211. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  212. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  213. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  214. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  215. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  216. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  217. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  218. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  219. package/build/addons/filePrompt.addon.js.map +1 -1
  220. package/build/cli.js.map +1 -1
  221. package/build/components/FormComponent.js.map +1 -1
  222. package/build/components/QuizComponent.js.map +1 -1
  223. package/build/errors/SpruceError.js.map +1 -1
  224. package/build/errors/actionCancelled.builder.js.map +1 -1
  225. package/build/errors/bootError.builder.js.map +1 -1
  226. package/build/errors/buildFailed.builder.js.map +1 -1
  227. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  228. package/build/errors/commandAborted.builder.js.map +1 -1
  229. package/build/errors/commandBlocked.builder.js.map +1 -1
  230. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  231. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  232. package/build/errors/dependencyExists.builder.js.map +1 -1
  233. package/build/errors/deployFailed.builder.js.map +1 -1
  234. package/build/errors/directoryEmpty.builder.js.map +1 -1
  235. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  236. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  237. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  238. package/build/errors/failedToImport.builder.js.map +1 -1
  239. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  240. package/build/errors/fileExists.builder.js.map +1 -1
  241. package/build/errors/generic.builder.js.map +1 -1
  242. package/build/errors/invalidCommand.builder.js.map +1 -1
  243. package/build/errors/invalidEventContract.builder.js.map +1 -1
  244. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  245. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  246. package/build/errors/lintFailed.builder.js.map +1 -1
  247. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  248. package/build/errors/missingDependencies.builder.js.map +1 -1
  249. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  250. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  251. package/build/errors/notImplemented.builder.js.map +1 -1
  252. package/build/errors/notLoggedIn.builder.js.map +1 -1
  253. package/build/errors/schemaExists.builder.js.map +1 -1
  254. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  255. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  256. package/build/errors/skillNotFound.builder.js.map +1 -1
  257. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  258. package/build/errors/skillViewExists.builder.js.map +1 -1
  259. package/build/errors/storeExists.builder.js.map +1 -1
  260. package/build/errors/testFailed.builder.js.map +1 -1
  261. package/build/errors/themeExists.builder.js.map +1 -1
  262. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  263. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  264. package/build/features/AbstractAction.js.map +1 -1
  265. package/build/features/AbstractFeature.js.map +1 -1
  266. package/build/features/ActionExecuter.js.map +1 -1
  267. package/build/features/ActionFactory.js.map +1 -1
  268. package/build/features/ActionQuestionAsker.js.map +1 -1
  269. package/build/features/FeatureCommandAttacher.js.map +1 -1
  270. package/build/features/FeatureInstaller.js.map +1 -1
  271. package/build/features/OverrideActionDecorator.js.map +1 -1
  272. package/build/features/cache/CacheFeature.js.map +1 -1
  273. package/build/features/cache/actions/DisableAction.js.map +1 -1
  274. package/build/features/cache/actions/EnableAction.js.map +1 -1
  275. package/build/features/conversation/ConversationFeature.js.map +1 -1
  276. package/build/features/conversation/actions/TestAction.js.map +1 -1
  277. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  278. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  279. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  280. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  281. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  282. package/build/features/deploy/DeployFeature.js.map +1 -1
  283. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  284. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  285. package/build/features/error/ErrorFeature.js.map +1 -1
  286. package/build/features/error/ParentTestFinder.js.map +1 -1
  287. package/build/features/error/actions/CreateAction.js.map +1 -1
  288. package/build/features/error/actions/SyncAction.js.map +1 -1
  289. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  290. package/build/features/event/EventFeature.js.map +1 -1
  291. package/build/features/event/actions/CreateAction.js.map +1 -1
  292. package/build/features/event/actions/ListenAction.js.map +1 -1
  293. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  294. package/build/features/event/actions/SyncAction.js.map +1 -1
  295. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  296. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  297. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  298. package/build/features/event/stores/EventStore.js.map +1 -1
  299. package/build/features/event/stores/ListenerStore.js.map +1 -1
  300. package/build/features/event/writers/EventWriter.js.map +1 -1
  301. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  302. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  303. package/build/features/feature.utilities.js.map +1 -1
  304. package/build/features/features.types.js.map +1 -1
  305. package/build/features/log/LogFeature.js.map +1 -1
  306. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  307. package/build/features/log/writers/LogWriter.js.map +1 -1
  308. package/build/features/node/NodeFeature.js.map +1 -1
  309. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  310. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  311. package/build/features/node/writers/NodeWriter.js.map +1 -1
  312. package/build/features/onboard/OnboardFeature.js.map +1 -1
  313. package/build/features/onboard/ScriptLoader.js.map +1 -1
  314. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  318. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  319. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  320. package/build/features/organization/OrganizationFeature.js.map +1 -1
  321. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  322. package/build/features/person/PersonFeature.js.map +1 -1
  323. package/build/features/person/actions/LoginAction.js.map +1 -1
  324. package/build/features/person/actions/LogoutAction.js.map +1 -1
  325. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  326. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  327. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  328. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  329. package/build/features/schema/SchemaFeature.js.map +1 -1
  330. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  331. package/build/features/schema/actions/CreateAction.js.map +1 -1
  332. package/build/features/schema/actions/SyncAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  334. package/build/features/schema/services/SchemaService.js.map +1 -1
  335. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  336. package/build/features/schema/stores/SchemaStore.js +2 -1
  337. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  338. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  339. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  341. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  342. package/build/features/skill/SkillFeature.js.map +1 -1
  343. package/build/features/skill/actions/BootAction.js.map +1 -1
  344. package/build/features/skill/actions/CreateAction.js.map +1 -1
  345. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  346. package/build/features/skill/actions/LoginAction.js.map +1 -1
  347. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  348. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  349. package/build/features/skill/stores/SkillStore.js.map +1 -1
  350. package/build/features/skill/updaters/Updater.js.map +1 -1
  351. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  352. package/build/features/store/StoreFeature.js.map +1 -1
  353. package/build/features/store/actions/CreateAction.js.map +1 -1
  354. package/build/features/store/actions/SyncAction.js.map +1 -1
  355. package/build/features/store/stores/StoreStore.js.map +1 -1
  356. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  357. package/build/features/store/writers/StoreWriter.js.map +1 -1
  358. package/build/features/test/TestFeature.js.map +1 -1
  359. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  360. package/build/features/test/TestReporter.js.map +1 -1
  361. package/build/features/test/TestRunner.js.map +1 -1
  362. package/build/features/test/actions/CreateAction.js.map +1 -1
  363. package/build/features/test/actions/SetupAction.js.map +1 -1
  364. package/build/features/test/actions/TestAction.js.map +1 -1
  365. package/build/features/test/writers/TestWriter.js.map +1 -1
  366. package/build/features/validateAndNormalize.utility.js.map +1 -1
  367. package/build/features/view/ViewFeature.js.map +1 -1
  368. package/build/features/view/actions/CreateAction.js.map +1 -1
  369. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  370. package/build/features/view/actions/SyncAction.js.map +1 -1
  371. package/build/features/view/actions/WatchAction.js.map +1 -1
  372. package/build/features/view/stores/ViewStore.js.map +1 -1
  373. package/build/features/view/writers/ViewWriter.js.map +1 -1
  374. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  375. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  376. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  377. package/build/features/watch/WatchFeature.js.map +1 -1
  378. package/build/index.js.map +1 -1
  379. package/build/interfaces/SpyInterface.js +0 -1
  380. package/build/interfaces/SpyInterface.js.map +1 -1
  381. package/build/interfaces/TerminalInterface.js.map +1 -1
  382. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  383. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  406. package/build/services/CommandService.js.map +1 -1
  407. package/build/services/GameService.js.map +1 -1
  408. package/build/services/ImportService.js.map +1 -1
  409. package/build/services/LintService.js.map +1 -1
  410. package/build/services/PkgService.js.map +1 -1
  411. package/build/services/ServiceFactory.js.map +1 -1
  412. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  413. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  414. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  415. package/build/tests/AbstractCliTest.js.map +1 -1
  416. package/build/tests/AbstractEventTest.js.map +1 -1
  417. package/build/tests/AbstractSchemaTest.js.map +1 -1
  418. package/build/tests/AbstractTestTest.js.map +1 -1
  419. package/build/tests/CommandFaker.js.map +1 -1
  420. package/build/tests/JestJsonParser.js.map +1 -1
  421. package/build/tests/buildTestCache.js.map +1 -1
  422. package/build/tests/cleanTestCache.js.map +1 -1
  423. package/build/tests/cleanTestData.js.map +1 -1
  424. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  425. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  426. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  427. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  428. package/build/tests/utilities/test.utility.js.map +1 -1
  429. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  430. package/build/utilities/action.utility.js.map +1 -1
  431. package/build/utilities/commander.utility.js.map +1 -1
  432. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  433. package/build/utilities/form.utility.js.map +1 -1
  434. package/build/utilities/introspection.utility.js.map +1 -1
  435. package/build/utilities/tsConfig.utility.js.map +1 -1
  436. package/build/widgets/Theme.js.map +1 -1
  437. package/build/widgets/WidgetFactory.js.map +1 -1
  438. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  439. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  440. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  441. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  445. package/build/widgets/types/input.types.js.map +1 -1
  446. package/build/widgets/types/menuBar.types.js.map +1 -1
  447. package/build/widgets/types/text.types.js.map +1 -1
  448. package/build/widgets/types/window.types.js.map +1 -1
  449. package/build/writers/AbstractWriter.js.map +1 -1
  450. package/package.json +35 -35
  451. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  452. package/src/features/schema/stores/SchemaStore.ts +4 -2
  453. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  454. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  455. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  456. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Widgets.test.js","names":["WidgetsTest","test","skip","factory","WidgetFactory","assert","isTruthy","log","buildText","text","isEqualDeep","getFrame","left","top","width","height","window","Widget","progress","layout","parent","rows","id","columns","column","getChildById","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/Widgets.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport WidgetFactory from '../../widgets/WidgetFactory'\n\nexport default class WidgetsTest extends AbstractCliTest {\n\tprivate static factory: WidgetFactory\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.factory = new WidgetFactory()\n\t}\n\n\t@test()\n\tprotected static async canCreateFactory() {\n\t\tassert.isTruthy(this.factory)\n\t}\n\n\t@test()\n\tprotected static async canCreateTextWidget() {\n\t\tconst log = this.buildText()\n\t\tassert.isTruthy(log)\n\t}\n\n\t@test()\n\tprotected static async setsStartingFrame() {\n\t\tconst text = this.buildText()\n\t\tassert.isEqualDeep(text.getFrame(), {\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canCreateWindow() {\n\t\tconst window = this.factory.Widget('window', {})\n\t\tassert.isTruthy(window)\n\t}\n\n\t@test()\n\tprotected static canCreateProgressBar() {\n\t\tconst progress = this.factory.Widget('progressBar', {\n\t\t\tprogress: 0,\n\t\t})\n\t\tassert.isTruthy(progress)\n\t}\n\n\t@test()\n\tprotected static canCreateText() {\n\t\tconst text = this.factory.Widget('text', {})\n\t\tassert.isTruthy(text)\n\t}\n\n\t@test.skip('enable when ready to fake termkit')\n\tprotected static canCreateLayout() {\n\t\tconst window = this.factory.Widget('window', {})\n\t\tconst layout = this.factory.Widget('layout', {\n\t\t\tparent: window,\n\t\t\twidth: '100%',\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\tid: 'row_1',\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tcolumns: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'column_1',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t\tassert.isTruthy(layout)\n\n\t\tconst column = layout.getChildById('results')\n\n\t\tassert.isTruthy(column)\n\t}\n\n\tprivate static buildText() {\n\t\treturn this.factory.Widget('text', { left: 0, top: 0, width: 4, height: 4 })\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,W,WAQnB,iB,UAKA,iB,UAMA,iB,UAWA,iB,UAMA,iB,UAQA,iB,UAMAC,WAAKC,IAAL,CAAU,mCAAV,C;;;;;;;;;;;;;sGA/CD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,OAAL,GAAe,IAAIC,yBAAJ,EAAf;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,QAAP,CAAgB,KAAKH,OAArB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOI,GAFP,GAEa,KAAKC,SAAL,EAFb;;gBAGCH,aAAOC,QAAP,CAAgBC,GAAhB;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAMA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOE,IAFP,GAEc,KAAKD,SAAL,EAFd;;gBAGCH,aAAOK,WAAP,CAAmBD,IAAI,CAACE,QAAL,EAAnB,EAAoC;kBACnCC,IAAI,EAAE,CAD6B;kBAEnCC,GAAG,EAAE,CAF8B;kBAGnCC,KAAK,EAAE,CAH4B;kBAInCC,MAAM,EAAE;gBAJ2B,CAApC;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAWA,2BACmC;MAClC,IAAMC,MAAM,GAAG,KAAKb,OAAL,CAAac,MAAb,CAAoB,QAApB,EAA8B,EAA9B,CAAf;;MACAZ,aAAOC,QAAP,CAAgBU,MAAhB;IACA;;;WAED,gCACwC;MACvC,IAAME,QAAQ,GAAG,KAAKf,OAAL,CAAac,MAAb,CAAoB,aAApB,EAAmC;QACnDC,QAAQ,EAAE;MADyC,CAAnC,CAAjB;;MAGAb,aAAOC,QAAP,CAAgBY,QAAhB;IACA;;;WAED,yBACiC;MAChC,IAAMT,IAAI,GAAG,KAAKN,OAAL,CAAac,MAAb,CAAoB,MAApB,EAA4B,EAA5B,CAAb;;MACAZ,aAAOC,QAAP,CAAgBG,IAAhB;IACA;;;WAED,2BACmC;MAClC,IAAMO,MAAM,GAAG,KAAKb,OAAL,CAAac,MAAb,CAAoB,QAApB,EAA8B,EAA9B,CAAf;MACA,IAAME,MAAM,GAAG,KAAKhB,OAAL,CAAac,MAAb,CAAoB,QAApB,EAA8B;QAC5CG,MAAM,EAAEJ,MADoC;QAE5CF,KAAK,EAAE,MAFqC;QAG5CO,IAAI,EAAE,CACL;UACCC,EAAE,EAAE,OADL;UAECP,MAAM,EAAE,MAFT;UAGCQ,OAAO,EAAE,CACR;YACCD,EAAE,EAAE,UADL;YAECR,KAAK,EAAE;UAFR,CADQ;QAHV,CADK;MAHsC,CAA9B,CAAf;;MAgBAT,aAAOC,QAAP,CAAgBa,MAAhB;;MAEA,IAAMK,MAAM,GAAGL,MAAM,CAACM,YAAP,CAAoB,SAApB,CAAf;;MAEApB,aAAOC,QAAP,CAAgBkB,MAAhB;IACA;;;WAED,qBAA2B;MAC1B,OAAO,KAAKrB,OAAL,CAAac,MAAb,CAAoB,MAApB,EAA4B;QAAEL,IAAI,EAAE,CAAR;QAAWC,GAAG,EAAE,CAAhB;QAAmBC,KAAK,EAAE,CAA1B;QAA6BC,MAAM,EAAE;MAArC,CAA5B,CAAP;IACA;;;EA9EuCW,4B"}
1
+ {"version":3,"file":"Widgets.test.js","names":["WidgetsTest","test","skip","factory","WidgetFactory","assert","isTruthy","log","buildText","text","isEqualDeep","getFrame","left","top","width","height","window","Widget","progress","layout","parent","rows","id","columns","column","getChildById","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/Widgets.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport WidgetFactory from '../../widgets/WidgetFactory'\n\nexport default class WidgetsTest extends AbstractCliTest {\n\tprivate static factory: WidgetFactory\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.factory = new WidgetFactory()\n\t}\n\n\t@test()\n\tprotected static async canCreateFactory() {\n\t\tassert.isTruthy(this.factory)\n\t}\n\n\t@test()\n\tprotected static async canCreateTextWidget() {\n\t\tconst log = this.buildText()\n\t\tassert.isTruthy(log)\n\t}\n\n\t@test()\n\tprotected static async setsStartingFrame() {\n\t\tconst text = this.buildText()\n\t\tassert.isEqualDeep(text.getFrame(), {\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canCreateWindow() {\n\t\tconst window = this.factory.Widget('window', {})\n\t\tassert.isTruthy(window)\n\t}\n\n\t@test()\n\tprotected static canCreateProgressBar() {\n\t\tconst progress = this.factory.Widget('progressBar', {\n\t\t\tprogress: 0,\n\t\t})\n\t\tassert.isTruthy(progress)\n\t}\n\n\t@test()\n\tprotected static canCreateText() {\n\t\tconst text = this.factory.Widget('text', {})\n\t\tassert.isTruthy(text)\n\t}\n\n\t@test.skip('enable when ready to fake termkit')\n\tprotected static canCreateLayout() {\n\t\tconst window = this.factory.Widget('window', {})\n\t\tconst layout = this.factory.Widget('layout', {\n\t\t\tparent: window,\n\t\t\twidth: '100%',\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\tid: 'row_1',\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tcolumns: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'column_1',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t\tassert.isTruthy(layout)\n\n\t\tconst column = layout.getChildById('results')\n\n\t\tassert.isTruthy(column)\n\t}\n\n\tprivate static buildText() {\n\t\treturn this.factory.Widget('text', { left: 0, top: 0, width: 4, height: 4 })\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,W,WAQnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAMA,IAAAA,UAAA,G,UAWA,IAAAA,UAAA,G,UAMA,IAAAA,UAAA,G,UAQA,IAAAA,UAAA,G,UAMAA,UAAA,CAAKC,IAAL,CAAU,mCAAV,C;;;;;;;;;;;;;sGA/CD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,OAAL,GAAe,IAAIC,yBAAJ,EAAf;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,QAAP,CAAgB,KAAKH,OAArB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOI,GAFP,GAEa,KAAKC,SAAL,EAFb;;gBAGCH,YAAA,CAAOC,QAAP,CAAgBC,GAAhB;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAMA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOE,IAFP,GAEc,KAAKD,SAAL,EAFd;;gBAGCH,YAAA,CAAOK,WAAP,CAAmBD,IAAI,CAACE,QAAL,EAAnB,EAAoC;kBACnCC,IAAI,EAAE,CAD6B;kBAEnCC,GAAG,EAAE,CAF8B;kBAGnCC,KAAK,EAAE,CAH4B;kBAInCC,MAAM,EAAE;gBAJ2B,CAApC;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAWA,2BACmC;MAClC,IAAMC,MAAM,GAAG,KAAKb,OAAL,CAAac,MAAb,CAAoB,QAApB,EAA8B,EAA9B,CAAf;;MACAZ,YAAA,CAAOC,QAAP,CAAgBU,MAAhB;IACA;;;WAED,gCACwC;MACvC,IAAME,QAAQ,GAAG,KAAKf,OAAL,CAAac,MAAb,CAAoB,aAApB,EAAmC;QACnDC,QAAQ,EAAE;MADyC,CAAnC,CAAjB;;MAGAb,YAAA,CAAOC,QAAP,CAAgBY,QAAhB;IACA;;;WAED,yBACiC;MAChC,IAAMT,IAAI,GAAG,KAAKN,OAAL,CAAac,MAAb,CAAoB,MAApB,EAA4B,EAA5B,CAAb;;MACAZ,YAAA,CAAOC,QAAP,CAAgBG,IAAhB;IACA;;;WAED,2BACmC;MAClC,IAAMO,MAAM,GAAG,KAAKb,OAAL,CAAac,MAAb,CAAoB,QAApB,EAA8B,EAA9B,CAAf;MACA,IAAME,MAAM,GAAG,KAAKhB,OAAL,CAAac,MAAb,CAAoB,QAApB,EAA8B;QAC5CG,MAAM,EAAEJ,MADoC;QAE5CF,KAAK,EAAE,MAFqC;QAG5CO,IAAI,EAAE,CACL;UACCC,EAAE,EAAE,OADL;UAECP,MAAM,EAAE,MAFT;UAGCQ,OAAO,EAAE,CACR;YACCD,EAAE,EAAE,UADL;YAECR,KAAK,EAAE;UAFR,CADQ;QAHV,CADK;MAHsC,CAA9B,CAAf;;MAgBAT,YAAA,CAAOC,QAAP,CAAgBa,MAAhB;;MAEA,IAAMK,MAAM,GAAGL,MAAM,CAACM,YAAP,CAAoB,SAApB,CAAf;;MAEApB,YAAA,CAAOC,QAAP,CAAgBkB,MAAhB;IACA;;;WAED,qBAA2B;MAC1B,OAAO,KAAKrB,OAAL,CAAac,MAAb,CAAoB,MAApB,EAA4B;QAAEL,IAAI,EAAE,CAAR;QAAWC,GAAG,EAAE,CAAhB;QAAmBC,KAAK,EAAE,CAA1B;QAA6BC,MAAM,EAAE;MAArC,CAA5B,CAAP;IACA;;;EA9EuCW,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"first.script.js","names":["firstScript","player","executeCommand","ScriptPlayer","redirect"],"sources":["../../../../src/__tests__/support/scripts/first.script.ts"],"sourcesContent":["import ScriptPlayer, { Script } from '../../../features/onboard/ScriptPlayer'\n\nconst firstScript: Script = [\n\t'hello world',\n\tasync (player) => {\n\t\tawait player.executeCommand('first script command executed')\n\t},\n\tScriptPlayer.redirect('second'),\n]\n\nexport default firstScript\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA,IAAMA,WAAmB,GAAG,CAC3B,aAD2B;EAAA,yFAE3B,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,cAAP,CAAsB,+BAAtB,CADP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAF2B;;EAAA;IAAA;EAAA;AAAA,KAK3BC,yBAAaC,QAAb,CAAsB,QAAtB,CAL2B,CAA5B;eAQeJ,W"}
1
+ {"version":3,"file":"first.script.js","names":["firstScript","player","executeCommand","ScriptPlayer","redirect"],"sources":["../../../../src/__tests__/support/scripts/first.script.ts"],"sourcesContent":["import ScriptPlayer, { Script } from '../../../features/onboard/ScriptPlayer'\n\nconst firstScript: Script = [\n\t'hello world',\n\tasync (player) => {\n\t\tawait player.executeCommand('first script command executed')\n\t},\n\tScriptPlayer.redirect('second'),\n]\n\nexport default firstScript\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA,IAAMA,WAAmB,GAAG,CAC3B,aAD2B;EAAA,yFAE3B,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,cAAP,CAAsB,+BAAtB,CADP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAF2B;;EAAA;IAAA;EAAA;AAAA,KAK3BC,wBAAA,CAAaC,QAAb,CAAsB,QAAtB,CAL2B,CAA5B;eAQeJ,W"}
@@ -1 +1 @@
1
- {"version":3,"file":"filePrompt.addon.js","names":["inquirer","registerPrompt","fileSelect"],"sources":["../../src/addons/filePrompt.addon.ts"],"sourcesContent":["import inquirer from 'inquirer'\n// @ts-ignore No definition available\nimport fileSelect from 'inquirer-file-tree-selection-prompt'\n\ninquirer.registerPrompt('file', fileSelect)\n"],"mappings":";;;;AAAA;;AAEA;;AADA;AAGAA,qBAASC,cAAT,CAAwB,MAAxB,EAAgCC,2CAAhC"}
1
+ {"version":3,"file":"filePrompt.addon.js","names":["inquirer","registerPrompt","fileSelect"],"sources":["../../src/addons/filePrompt.addon.ts"],"sourcesContent":["import inquirer from 'inquirer'\n// @ts-ignore No definition available\nimport fileSelect from 'inquirer-file-tree-selection-prompt'\n\ninquirer.registerPrompt('file', fileSelect)\n"],"mappings":";;;;AAAA;;AAEA;;AADA;AAGAA,oBAAA,CAASC,cAAT,CAAwB,MAAxB,EAAgCC,2CAAhC"}
package/build/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","names":["Cli","cwd","featureInstaller","serviceFactory","emitter","attacher","actionExecuter","on","off","emit","emitAndFlattenResponses","options","install","code","getFeature","isInstalled","skill","status","errors","SpruceError","commandService","Service","command","shouldRunOnSourceFiles","execute","results","resultParts","stdout","split","HEALTH_DIVIDER","JSON","parse","error","originalError","apiClients","key","disconnect","program","CliGlobalEmitter","Emitter","process","ImportService","enableCaching","ServiceFactory","apiClientFactory","buildApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","ui","graphicsInterface","TerminalInterface","writerFactory","WriterFactory","templates","settings","linter","optionOverrides","loadOptionOverrides","blockedCommands","loadCommandBlocks","actionFactory","ActionFactory","ActionExecuter","featureInstallerFactory","FeatureInstallerFactory","WithAllFeatures","FeatureCommandAttacher","codes","featureCodes","feature","attachFeature","commands","sort","a","b","_name","localeCompare","action","_","args","cli","pkg","blocks","doesExist","get","mapped","overrides","Object","keys","forEach","argParserUtil","bootOptions","apiClientUtil","generateClientCacheKey","connectToApi","connect","eventsContracts","require","MercuryClientFactory","Client","contracts","host","DEFAULT_HOST","allowSelfSignedCrt","client","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","auth","doesPkgExist","skillId","apiKey","getCurrentSkill","id","person","getLoggedInPerson","token","length","authenticate","run","argv","Command","storeOptionsAsProperties","option","dirIdx","findIndex","v","dir","newCwd","diskUtil","resolvePath","terminal","env","CLI_RENDER_STACK_TRACES","clear","renderHero","CLI_HERO","isAskingForVersion","json","renderHeadline","version","Boot","HOST","setupInFlightEntertainment","parseAsync","_actionResults","getClients","doesSupportColor","ENABLE_INSTALL_ENTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"sources":["../src/cli.ts"],"sourcesContent":["import osUtil from 'os'\nimport {\n\tConnectionOptions,\n\tMercuryClientFactory,\n} from '@sprucelabs/mercury-client'\nimport { MercuryEventEmitter, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tdiskUtil,\n\tHealthCheckResults,\n\tHEALTH_DIVIDER,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport { Command, CommanderStatic } from 'commander'\nimport './addons/filePrompt.addon'\nimport { CLI_HERO, DEFAULT_HOST } from './constants'\nimport SpruceError from './errors/SpruceError'\nimport ActionExecuter from './features/ActionExecuter'\nimport ActionFactory from './features/ActionFactory'\nimport FeatureCommandAttacher, {\n\tBlockedCommands,\n\tOptionOverrides,\n} from './features/FeatureCommandAttacher'\nimport FeatureInstaller from './features/FeatureInstaller'\nimport FeatureInstallerFactory from './features/FeatureInstallerFactory'\nimport { FeatureCode, InstallFeatureOptions } from './features/features.types'\nimport CliGlobalEmitter, {\n\tGlobalEmitter,\n\tGlobalEventContract,\n} from './GlobalEmitter'\nimport InFlightEntertainment from './InFlightEntertainment'\nimport TerminalInterface from './interfaces/TerminalInterface'\nimport CommandService from './services/CommandService'\nimport ImportService from './services/ImportService'\nimport PkgService from './services/PkgService'\nimport ServiceFactory from './services/ServiceFactory'\nimport StoreFactory from './stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from './types/apiClient.types'\nimport { GraphicsInterface } from './types/cli.types'\nimport apiClientUtil from './utilities/apiClient.utility'\nimport { argParserUtil } from './utilities/argParser.utility'\nimport WriterFactory from './writers/WriterFactory'\n\ninterface HealthOptions {\n\tshouldRunOnSourceFiles?: boolean\n}\n\nexport interface CliInterface extends MercuryEventEmitter<GlobalEventContract> {\n\tinstallFeatures: FeatureInstaller['install']\n\tgetFeature: FeatureInstaller['getFeature']\n\tcheckHealth(options?: HealthOptions): Promise<HealthCheckResults>\n}\n\nexport interface CliBootOptions {\n\tcwd?: string\n\thomeDir?: string\n\tprogram?: CommanderStatic['program']\n\tgraphicsInterface?: GraphicsInterface\n\temitter?: GlobalEmitter\n\tapiClientFactory?: ApiClientFactory\n\tfeatureInstaller?: FeatureInstaller\n\thost?: string\n}\n\ntype PromiseCache = Record<string, Promise<ApiClient>>\n\nexport default class Cli implements CliInterface {\n\tprivate cwd: string\n\tprivate featureInstaller: FeatureInstaller\n\tprivate serviceFactory: ServiceFactory\n\tpublic readonly emitter: GlobalEmitter\n\tprivate static apiClients: PromiseCache = {}\n\tprivate attacher?: FeatureCommandAttacher\n\tprivate actionExecuter?: ActionExecuter\n\n\tprivate constructor(\n\t\tcwd: string,\n\t\tfeatureInstaller: FeatureInstaller,\n\t\tserviceFactory: ServiceFactory,\n\t\temitter: GlobalEmitter,\n\t\tattacher?: FeatureCommandAttacher,\n\t\tactionExecuter?: ActionExecuter\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.featureInstaller = featureInstaller\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.emitter = emitter\n\t\tthis.attacher = attacher\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic static async resetApiClients() {\n\t\tfor (const key in this.apiClients) {\n\t\t\tawait (await this.apiClients[key]).disconnect()\n\t\t}\n\n\t\tthis.apiClients = {}\n\t}\n\n\tpublic getAttacher() {\n\t\treturn this.attacher\n\t}\n\n\tpublic getActionExecuter() {\n\t\treturn this.actionExecuter\n\t}\n\n\tpublic async on(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.on(...args)\n\t}\n\n\tpublic async off(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.off(...args)\n\t}\n\n\tpublic async emit(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emit(...args)\n\t}\n\n\tpublic async emitAndFlattenResponses(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emitAndFlattenResponses(...args)\n\t}\n\n\tpublic async installFeatures(options: InstallFeatureOptions) {\n\t\treturn this.featureInstaller.install(options)\n\t}\n\n\tpublic getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tpublic async checkHealth(\n\t\toptions?: HealthOptions\n\t): Promise<HealthCheckResults> {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_INSTALLED',\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst commandService = this.serviceFactory.Service(this.cwd, 'command')\n\t\t\tconst command =\n\t\t\t\toptions?.shouldRunOnSourceFiles === false\n\t\t\t\t\t? 'yarn health'\n\t\t\t\t\t: 'yarn health.local'\n\t\t\tconst results = await commandService.execute(command)\n\t\t\tconst resultParts = results.stdout.split(HEALTH_DIVIDER)\n\n\t\t\treturn JSON.parse(resultParts[1]) as HealthCheckResults\n\t\t} catch (originalError: any) {\n\t\t\tconst error = new SpruceError({\n\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\toriginalError,\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [error],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static async Boot(options?: CliBootOptions): Promise<CliInterface> {\n\t\tconst program = options?.program\n\t\tconst emitter = options?.emitter ?? CliGlobalEmitter.Emitter()\n\n\t\tlet cwd = options?.cwd ?? process.cwd()\n\n\t\tImportService.enableCaching()\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst apiClientFactory =\n\t\t\toptions?.apiClientFactory ??\n\t\t\tCli.buildApiClientFactory(cwd, serviceFactory, options)\n\n\t\tconst storeFactory = new StoreFactory({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: options?.homeDir ?? osUtil.homedir(),\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t})\n\n\t\tconst ui = options?.graphicsInterface ?? new TerminalInterface(cwd)\n\t\tlet featureInstaller: FeatureInstaller | undefined\n\n\t\tconst writerFactory = new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui,\n\t\t\tsettings: serviceFactory.Service(cwd, 'settings'),\n\t\t\tlinter: serviceFactory.Service(cwd, 'lint'),\n\t\t})\n\n\t\tconst optionOverrides = this.loadOptionOverrides(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst blockedCommands = this.loadCommandBlocks(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\tui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\ttemplates,\n\t\t\twriterFactory,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t})\n\n\t\tconst actionExecuter = new ActionExecuter({\n\t\t\tactionFactory,\n\t\t\tui,\n\t\t\temitter,\n\t\t\t//@ts-ignore\n\t\t\tfeatureInstallerFactory: () => featureInstaller,\n\t\t})\n\n\t\tfeatureInstaller =\n\t\t\toptions?.featureInstaller ??\n\t\t\tFeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\tlet attacher: FeatureCommandAttacher | undefined\n\n\t\tif (program) {\n\t\t\tattacher = new FeatureCommandAttacher({\n\t\t\t\tprogram,\n\t\t\t\tui,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\t\tconst codes = FeatureInstallerFactory.featureCodes\n\n\t\t\tfor (const code of codes) {\n\t\t\t\tconst feature = featureInstaller.getFeature(code)\n\t\t\t\tawait attacher.attachFeature(feature)\n\t\t\t}\n\n\t\t\tprogram.commands.sort((a: any, b: any) => a._name.localeCompare(b._name))\n\n\t\t\tprogram.action((_, command) => {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'INVALID_COMMAND',\n\t\t\t\t\targs: command.args || [],\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\tconst cli = new Cli(\n\t\t\tcwd,\n\t\t\tfeatureInstaller,\n\t\t\tserviceFactory,\n\t\t\temitter,\n\t\t\tattacher,\n\t\t\tactionExecuter\n\t\t)\n\n\t\treturn cli as CliInterface\n\t}\n\n\tprivate static loadCommandBlocks(pkg: PkgService): BlockedCommands {\n\t\tlet blocks: BlockedCommands = {}\n\t\tif (pkg.doesExist()) {\n\t\t\tblocks = pkg.get('skill.blockedCommands') ?? {}\n\t\t}\n\t\treturn blocks\n\t}\n\n\tprivate static loadOptionOverrides(pkg: PkgService): OptionOverrides {\n\t\tconst mapped: OptionOverrides = {}\n\n\t\tif (pkg.doesExist()) {\n\t\t\tconst overrides = pkg.get('skill.commandOverrides')\n\n\t\t\tObject.keys(overrides ?? {}).forEach((command) => {\n\t\t\t\tconst options = argParserUtil.parse(overrides[command])\n\t\t\t\tmapped[command] = options\n\t\t\t})\n\t\t}\n\t\treturn mapped\n\t}\n\n\tpublic static buildApiClientFactory(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): ApiClientFactory {\n\t\tconst apiClientFactory = async (options?: ApiClientFactoryOptions) => {\n\t\t\tconst key = apiClientUtil.generateClientCacheKey(options)\n\n\t\t\tif (!Cli.apiClients[key]) {\n\t\t\t\tCli.apiClients[key] = Cli.connectToApi(\n\t\t\t\t\tcwd,\n\t\t\t\t\tserviceFactory,\n\t\t\t\t\toptions,\n\t\t\t\t\tbootOptions\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn Cli.apiClients[key]\n\t\t}\n\n\t\treturn apiClientFactory\n\t}\n\n\tprivate static async connectToApi(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\toptions?: ApiClientFactoryOptions,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): Promise<ApiClient> {\n\t\tconst connect = bootOptions?.apiClientFactory\n\t\t\t? bootOptions.apiClientFactory\n\t\t\t: async () => {\n\t\t\t\t\tconst eventsContracts =\n\t\t\t\t\t\trequire('#spruce/events/events.contract').default\n\n\t\t\t\t\tconst client: ApiClient = await MercuryClientFactory.Client({\n\t\t\t\t\t\tcontracts: eventsContracts as any,\n\t\t\t\t\t\thost: bootOptions?.host ?? DEFAULT_HOST,\n\t\t\t\t\t\tallowSelfSignedCrt: true,\n\t\t\t\t\t\t...bootOptions,\n\t\t\t\t\t})\n\n\t\t\t\t\treturn client\n\t\t\t }\n\n\t\tconst {\n\t\t\tshouldAuthAsCurrentSkill = false,\n\t\t\tshouldAuthAsLoggedInPerson = true,\n\t\t} = options ?? {}\n\n\t\tconst client = await connect()\n\n\t\tlet auth: SpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload = {}\n\n\t\tconst pkg = serviceFactory.Service(cwd, 'pkg')\n\t\tconst doesPkgExist = pkg.doesExist()\n\n\t\tif (options?.skillId && options?.apiKey) {\n\t\t\tauth = {\n\t\t\t\tskillId: options.skillId,\n\t\t\t\tapiKey: options.apiKey,\n\t\t\t}\n\t\t} else if (shouldAuthAsCurrentSkill) {\n\t\t\tconst skill = serviceFactory.Service(cwd, 'auth').getCurrentSkill()\n\n\t\t\tif (skill) {\n\t\t\t\tauth = {\n\t\t\t\t\tskillId: skill.id,\n\t\t\t\t\tapiKey: skill.apiKey,\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (doesPkgExist && shouldAuthAsLoggedInPerson) {\n\t\t\tconst person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson()\n\n\t\t\tif (person) {\n\t\t\t\tauth.token = person.token\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(auth).length > 0) {\n\t\t\tawait client.authenticate({\n\t\t\t\t...(auth as any),\n\t\t\t})\n\n\t\t\t//@ts-ignore\n\t\t\tclient.auth = auth\n\t\t}\n\n\t\treturn client\n\t}\n}\n\nexport async function run(argv: string[] = []): Promise<void> {\n\tconst program = new Command()\n\tlet cwd = process.cwd()\n\n\tprogram.storeOptionsAsProperties(false)\n\tprogram.option('--no-color', 'Disable color output in the console')\n\tprogram.option(\n\t\t'-d, --directory <path>',\n\t\t'The working directory to execute the command'\n\t)\n\tprogram.option('-v, --version', 'The version of the cli')\n\n\tconst dirIdx = process.argv.findIndex(\n\t\t(v) => v === '--directory' || v === '-d'\n\t)\n\n\tif (dirIdx > -1) {\n\t\tconst dir = process.argv[dirIdx + 1]\n\t\tconst newCwd = diskUtil.resolvePath(cwd, dir)\n\t\tcwd = newCwd\n\t}\n\n\tconst terminal = new TerminalInterface(\n\t\tcwd,\n\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t)\n\tterminal.clear()\n\tterminal.renderHero(CLI_HERO)\n\n\tconst isAskingForVersion =\n\t\tprocess.argv.findIndex((v) => v === '--version' || v === '-v') > -1\n\n\tif (isAskingForVersion) {\n\t\tconst json = require('../package.json')\n\t\tterminal.renderHeadline(`Version ${json.version}`)\n\t\treturn\n\t}\n\n\tawait Cli.Boot({\n\t\tprogram,\n\t\tcwd,\n\t\thost: process.env.HOST,\n\t\tgraphicsInterface: terminal,\n\t})\n\n\tawait setupInFlightEntertainment(terminal)\n\n\tconst command = await program.parseAsync(argv)\n\n\t//@ts-ignore\n\tconst results = await command._actionResults[0]\n\n\tfor (const client of MercuryClientFactory.getClients()) {\n\t\tawait client.disconnect()\n\t}\n\n\treturn results\n}\n\nasync function setupInFlightEntertainment(ui: TerminalInterface) {\n\tif (\n\t\tTerminalInterface.doesSupportColor() &&\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstaller.startInFlightIntertainmentHandler = (didUpdateHandler) => {\n\t\t\tInFlightEntertainment.start()\n\t\t\tdidUpdateHandler((message) => {\n\t\t\t\tInFlightEntertainment.writeStatus(message)\n\t\t\t})\n\t\t}\n\n\t\tFeatureInstaller.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","names":["Cli","cwd","featureInstaller","serviceFactory","emitter","attacher","actionExecuter","on","off","emit","emitAndFlattenResponses","options","install","code","getFeature","isInstalled","skill","status","errors","SpruceError","commandService","Service","command","shouldRunOnSourceFiles","execute","results","resultParts","stdout","split","HEALTH_DIVIDER","JSON","parse","error","originalError","apiClients","key","disconnect","program","CliGlobalEmitter","Emitter","process","ImportService","enableCaching","ServiceFactory","apiClientFactory","buildApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","ui","graphicsInterface","TerminalInterface","writerFactory","WriterFactory","templates","settings","linter","optionOverrides","loadOptionOverrides","blockedCommands","loadCommandBlocks","actionFactory","ActionFactory","ActionExecuter","featureInstallerFactory","FeatureInstallerFactory","WithAllFeatures","FeatureCommandAttacher","codes","featureCodes","feature","attachFeature","commands","sort","a","b","_name","localeCompare","action","_","args","cli","pkg","blocks","doesExist","get","mapped","overrides","Object","keys","forEach","argParserUtil","bootOptions","apiClientUtil","generateClientCacheKey","connectToApi","connect","eventsContracts","require","MercuryClientFactory","Client","contracts","host","DEFAULT_HOST","allowSelfSignedCrt","client","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","auth","doesPkgExist","skillId","apiKey","getCurrentSkill","id","person","getLoggedInPerson","token","length","authenticate","run","argv","Command","storeOptionsAsProperties","option","dirIdx","findIndex","v","dir","newCwd","diskUtil","resolvePath","terminal","env","CLI_RENDER_STACK_TRACES","clear","renderHero","CLI_HERO","isAskingForVersion","json","renderHeadline","version","Boot","HOST","setupInFlightEntertainment","parseAsync","_actionResults","getClients","doesSupportColor","ENABLE_INSTALL_ENTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"sources":["../src/cli.ts"],"sourcesContent":["import osUtil from 'os'\nimport {\n\tConnectionOptions,\n\tMercuryClientFactory,\n} from '@sprucelabs/mercury-client'\nimport { MercuryEventEmitter, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tdiskUtil,\n\tHealthCheckResults,\n\tHEALTH_DIVIDER,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport { Command, CommanderStatic } from 'commander'\nimport './addons/filePrompt.addon'\nimport { CLI_HERO, DEFAULT_HOST } from './constants'\nimport SpruceError from './errors/SpruceError'\nimport ActionExecuter from './features/ActionExecuter'\nimport ActionFactory from './features/ActionFactory'\nimport FeatureCommandAttacher, {\n\tBlockedCommands,\n\tOptionOverrides,\n} from './features/FeatureCommandAttacher'\nimport FeatureInstaller from './features/FeatureInstaller'\nimport FeatureInstallerFactory from './features/FeatureInstallerFactory'\nimport { FeatureCode, InstallFeatureOptions } from './features/features.types'\nimport CliGlobalEmitter, {\n\tGlobalEmitter,\n\tGlobalEventContract,\n} from './GlobalEmitter'\nimport InFlightEntertainment from './InFlightEntertainment'\nimport TerminalInterface from './interfaces/TerminalInterface'\nimport CommandService from './services/CommandService'\nimport ImportService from './services/ImportService'\nimport PkgService from './services/PkgService'\nimport ServiceFactory from './services/ServiceFactory'\nimport StoreFactory from './stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from './types/apiClient.types'\nimport { GraphicsInterface } from './types/cli.types'\nimport apiClientUtil from './utilities/apiClient.utility'\nimport { argParserUtil } from './utilities/argParser.utility'\nimport WriterFactory from './writers/WriterFactory'\n\ninterface HealthOptions {\n\tshouldRunOnSourceFiles?: boolean\n}\n\nexport interface CliInterface extends MercuryEventEmitter<GlobalEventContract> {\n\tinstallFeatures: FeatureInstaller['install']\n\tgetFeature: FeatureInstaller['getFeature']\n\tcheckHealth(options?: HealthOptions): Promise<HealthCheckResults>\n}\n\nexport interface CliBootOptions {\n\tcwd?: string\n\thomeDir?: string\n\tprogram?: CommanderStatic['program']\n\tgraphicsInterface?: GraphicsInterface\n\temitter?: GlobalEmitter\n\tapiClientFactory?: ApiClientFactory\n\tfeatureInstaller?: FeatureInstaller\n\thost?: string\n}\n\ntype PromiseCache = Record<string, Promise<ApiClient>>\n\nexport default class Cli implements CliInterface {\n\tprivate cwd: string\n\tprivate featureInstaller: FeatureInstaller\n\tprivate serviceFactory: ServiceFactory\n\tpublic readonly emitter: GlobalEmitter\n\tprivate static apiClients: PromiseCache = {}\n\tprivate attacher?: FeatureCommandAttacher\n\tprivate actionExecuter?: ActionExecuter\n\n\tprivate constructor(\n\t\tcwd: string,\n\t\tfeatureInstaller: FeatureInstaller,\n\t\tserviceFactory: ServiceFactory,\n\t\temitter: GlobalEmitter,\n\t\tattacher?: FeatureCommandAttacher,\n\t\tactionExecuter?: ActionExecuter\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.featureInstaller = featureInstaller\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.emitter = emitter\n\t\tthis.attacher = attacher\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic static async resetApiClients() {\n\t\tfor (const key in this.apiClients) {\n\t\t\tawait (await this.apiClients[key]).disconnect()\n\t\t}\n\n\t\tthis.apiClients = {}\n\t}\n\n\tpublic getAttacher() {\n\t\treturn this.attacher\n\t}\n\n\tpublic getActionExecuter() {\n\t\treturn this.actionExecuter\n\t}\n\n\tpublic async on(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.on(...args)\n\t}\n\n\tpublic async off(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.off(...args)\n\t}\n\n\tpublic async emit(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emit(...args)\n\t}\n\n\tpublic async emitAndFlattenResponses(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emitAndFlattenResponses(...args)\n\t}\n\n\tpublic async installFeatures(options: InstallFeatureOptions) {\n\t\treturn this.featureInstaller.install(options)\n\t}\n\n\tpublic getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tpublic async checkHealth(\n\t\toptions?: HealthOptions\n\t): Promise<HealthCheckResults> {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_INSTALLED',\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst commandService = this.serviceFactory.Service(this.cwd, 'command')\n\t\t\tconst command =\n\t\t\t\toptions?.shouldRunOnSourceFiles === false\n\t\t\t\t\t? 'yarn health'\n\t\t\t\t\t: 'yarn health.local'\n\t\t\tconst results = await commandService.execute(command)\n\t\t\tconst resultParts = results.stdout.split(HEALTH_DIVIDER)\n\n\t\t\treturn JSON.parse(resultParts[1]) as HealthCheckResults\n\t\t} catch (originalError: any) {\n\t\t\tconst error = new SpruceError({\n\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\toriginalError,\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [error],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static async Boot(options?: CliBootOptions): Promise<CliInterface> {\n\t\tconst program = options?.program\n\t\tconst emitter = options?.emitter ?? CliGlobalEmitter.Emitter()\n\n\t\tlet cwd = options?.cwd ?? process.cwd()\n\n\t\tImportService.enableCaching()\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst apiClientFactory =\n\t\t\toptions?.apiClientFactory ??\n\t\t\tCli.buildApiClientFactory(cwd, serviceFactory, options)\n\n\t\tconst storeFactory = new StoreFactory({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: options?.homeDir ?? osUtil.homedir(),\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t})\n\n\t\tconst ui = options?.graphicsInterface ?? new TerminalInterface(cwd)\n\t\tlet featureInstaller: FeatureInstaller | undefined\n\n\t\tconst writerFactory = new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui,\n\t\t\tsettings: serviceFactory.Service(cwd, 'settings'),\n\t\t\tlinter: serviceFactory.Service(cwd, 'lint'),\n\t\t})\n\n\t\tconst optionOverrides = this.loadOptionOverrides(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst blockedCommands = this.loadCommandBlocks(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\tui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\ttemplates,\n\t\t\twriterFactory,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t})\n\n\t\tconst actionExecuter = new ActionExecuter({\n\t\t\tactionFactory,\n\t\t\tui,\n\t\t\temitter,\n\t\t\t//@ts-ignore\n\t\t\tfeatureInstallerFactory: () => featureInstaller,\n\t\t})\n\n\t\tfeatureInstaller =\n\t\t\toptions?.featureInstaller ??\n\t\t\tFeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\tlet attacher: FeatureCommandAttacher | undefined\n\n\t\tif (program) {\n\t\t\tattacher = new FeatureCommandAttacher({\n\t\t\t\tprogram,\n\t\t\t\tui,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\t\tconst codes = FeatureInstallerFactory.featureCodes\n\n\t\t\tfor (const code of codes) {\n\t\t\t\tconst feature = featureInstaller.getFeature(code)\n\t\t\t\tawait attacher.attachFeature(feature)\n\t\t\t}\n\n\t\t\tprogram.commands.sort((a: any, b: any) => a._name.localeCompare(b._name))\n\n\t\t\tprogram.action((_, command) => {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'INVALID_COMMAND',\n\t\t\t\t\targs: command.args || [],\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\tconst cli = new Cli(\n\t\t\tcwd,\n\t\t\tfeatureInstaller,\n\t\t\tserviceFactory,\n\t\t\temitter,\n\t\t\tattacher,\n\t\t\tactionExecuter\n\t\t)\n\n\t\treturn cli as CliInterface\n\t}\n\n\tprivate static loadCommandBlocks(pkg: PkgService): BlockedCommands {\n\t\tlet blocks: BlockedCommands = {}\n\t\tif (pkg.doesExist()) {\n\t\t\tblocks = pkg.get('skill.blockedCommands') ?? {}\n\t\t}\n\t\treturn blocks\n\t}\n\n\tprivate static loadOptionOverrides(pkg: PkgService): OptionOverrides {\n\t\tconst mapped: OptionOverrides = {}\n\n\t\tif (pkg.doesExist()) {\n\t\t\tconst overrides = pkg.get('skill.commandOverrides')\n\n\t\t\tObject.keys(overrides ?? {}).forEach((command) => {\n\t\t\t\tconst options = argParserUtil.parse(overrides[command])\n\t\t\t\tmapped[command] = options\n\t\t\t})\n\t\t}\n\t\treturn mapped\n\t}\n\n\tpublic static buildApiClientFactory(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): ApiClientFactory {\n\t\tconst apiClientFactory = async (options?: ApiClientFactoryOptions) => {\n\t\t\tconst key = apiClientUtil.generateClientCacheKey(options)\n\n\t\t\tif (!Cli.apiClients[key]) {\n\t\t\t\tCli.apiClients[key] = Cli.connectToApi(\n\t\t\t\t\tcwd,\n\t\t\t\t\tserviceFactory,\n\t\t\t\t\toptions,\n\t\t\t\t\tbootOptions\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn Cli.apiClients[key]\n\t\t}\n\n\t\treturn apiClientFactory\n\t}\n\n\tprivate static async connectToApi(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\toptions?: ApiClientFactoryOptions,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): Promise<ApiClient> {\n\t\tconst connect = bootOptions?.apiClientFactory\n\t\t\t? bootOptions.apiClientFactory\n\t\t\t: async () => {\n\t\t\t\t\tconst eventsContracts =\n\t\t\t\t\t\trequire('#spruce/events/events.contract').default\n\n\t\t\t\t\tconst client: ApiClient = await MercuryClientFactory.Client({\n\t\t\t\t\t\tcontracts: eventsContracts as any,\n\t\t\t\t\t\thost: bootOptions?.host ?? DEFAULT_HOST,\n\t\t\t\t\t\tallowSelfSignedCrt: true,\n\t\t\t\t\t\t...bootOptions,\n\t\t\t\t\t})\n\n\t\t\t\t\treturn client\n\t\t\t }\n\n\t\tconst {\n\t\t\tshouldAuthAsCurrentSkill = false,\n\t\t\tshouldAuthAsLoggedInPerson = true,\n\t\t} = options ?? {}\n\n\t\tconst client = await connect()\n\n\t\tlet auth: SpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload = {}\n\n\t\tconst pkg = serviceFactory.Service(cwd, 'pkg')\n\t\tconst doesPkgExist = pkg.doesExist()\n\n\t\tif (options?.skillId && options?.apiKey) {\n\t\t\tauth = {\n\t\t\t\tskillId: options.skillId,\n\t\t\t\tapiKey: options.apiKey,\n\t\t\t}\n\t\t} else if (shouldAuthAsCurrentSkill) {\n\t\t\tconst skill = serviceFactory.Service(cwd, 'auth').getCurrentSkill()\n\n\t\t\tif (skill) {\n\t\t\t\tauth = {\n\t\t\t\t\tskillId: skill.id,\n\t\t\t\t\tapiKey: skill.apiKey,\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (doesPkgExist && shouldAuthAsLoggedInPerson) {\n\t\t\tconst person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson()\n\n\t\t\tif (person) {\n\t\t\t\tauth.token = person.token\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(auth).length > 0) {\n\t\t\tawait client.authenticate({\n\t\t\t\t...(auth as any),\n\t\t\t})\n\n\t\t\t//@ts-ignore\n\t\t\tclient.auth = auth\n\t\t}\n\n\t\treturn client\n\t}\n}\n\nexport async function run(argv: string[] = []): Promise<void> {\n\tconst program = new Command()\n\tlet cwd = process.cwd()\n\n\tprogram.storeOptionsAsProperties(false)\n\tprogram.option('--no-color', 'Disable color output in the console')\n\tprogram.option(\n\t\t'-d, --directory <path>',\n\t\t'The working directory to execute the command'\n\t)\n\tprogram.option('-v, --version', 'The version of the cli')\n\n\tconst dirIdx = process.argv.findIndex(\n\t\t(v) => v === '--directory' || v === '-d'\n\t)\n\n\tif (dirIdx > -1) {\n\t\tconst dir = process.argv[dirIdx + 1]\n\t\tconst newCwd = diskUtil.resolvePath(cwd, dir)\n\t\tcwd = newCwd\n\t}\n\n\tconst terminal = new TerminalInterface(\n\t\tcwd,\n\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t)\n\tterminal.clear()\n\tterminal.renderHero(CLI_HERO)\n\n\tconst isAskingForVersion =\n\t\tprocess.argv.findIndex((v) => v === '--version' || v === '-v') > -1\n\n\tif (isAskingForVersion) {\n\t\tconst json = require('../package.json')\n\t\tterminal.renderHeadline(`Version ${json.version}`)\n\t\treturn\n\t}\n\n\tawait Cli.Boot({\n\t\tprogram,\n\t\tcwd,\n\t\thost: process.env.HOST,\n\t\tgraphicsInterface: terminal,\n\t})\n\n\tawait setupInFlightEntertainment(terminal)\n\n\tconst command = await program.parseAsync(argv)\n\n\t//@ts-ignore\n\tconst results = await command._actionResults[0]\n\n\tfor (const client of MercuryClientFactory.getClients()) {\n\t\tawait client.disconnect()\n\t}\n\n\treturn results\n}\n\nasync function setupInFlightEntertainment(ui: TerminalInterface) {\n\tif (\n\t\tTerminalInterface.doesSupportColor() &&\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstaller.startInFlightIntertainmentHandler = (didUpdateHandler) => {\n\t\t\tInFlightEntertainment.start()\n\t\t\tdidUpdateHandler((message) => {\n\t\t\t\tInFlightEntertainment.writeStatus(message)\n\t\t\t})\n\t\t}\n\n\t\tFeatureInstaller.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -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","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 +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","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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpruceError.js","names":["SpruceError","options","message","code","args","length","join","friendlyMessage","originalError","stack","name","command","file","pattern","cmd","cwd","stderr","cleanStdErr","stdout","schemaId","destination","featureCode","fileName","testName","errorMessage","split","map","line","errors","responseErrors","errorMessages","err","push","fullyQualifiedEventName","brokenProperty","dependencies","d","hint","namesUtil","toPascal","schemaNamespace","fieldName","JSON","stringify","fieldOptions","namespace","replace","trim","AbstractSpruceError"],"sources":["../../src/errors/SpruceError.ts"],"sourcesContent":["import AbstractSpruceError from '@sprucelabs/error'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport upperFirst from 'lodash/upperFirst'\nimport ErrorOptions from '#spruce/errors/options.types'\n\nexport default class SpruceError extends AbstractSpruceError<ErrorOptions> {\n\t/** An easy to understand version of the errors */\n\tpublic friendlyMessage(): string {\n\t\tconst { options } = this\n\t\tlet message\n\n\t\tswitch (options?.code) {\n\t\t\tcase 'INVALID_COMMAND':\n\t\t\t\tif (!options.args || options.args.length === 0) {\n\t\t\t\t\tmessage = `Hey friend 👋.. I don't support the command you tried.`\n\t\t\t\t} else {\n\t\t\t\t\tmessage = `Hey friend 👋. I don't know the command: ${options.args.join(\n\t\t\t\t\t\t' '\n\t\t\t\t\t)}.`\n\t\t\t\t}\n\t\t\t\tmessage += ' Try running `spruce --help`'\n\t\t\t\tbreak\n\n\t\t\tcase 'GENERIC':\n\t\t\t\tmessage = options.friendlyMessage ?? 'Oh shoot! 🤔'\n\n\t\t\t\tif (options.originalError) {\n\t\t\t\t\tmessage += `\\n\\n${\n\t\t\t\t\t\toptions.originalError.stack ?? options.originalError.name\n\t\t\t\t\t}`\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'NOT_IMPLEMENTED':\n\t\t\t\tmessage = ''\n\t\t\t\tif (options.friendlyMessage) {\n\t\t\t\t\tmessage += `\\n\\n${options.friendlyMessage}`\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'COMMAND_NOT_IMPLEMENTED':\n\t\t\t\tmessage = `${options.command} has not yet been implemented. ${\n\t\t\t\t\toptions.args ? `Args: ${options.args.join(', ')}` : ''\n\t\t\t\t}`\n\t\t\t\tif (options.friendlyMessage) {\n\t\t\t\t\tmessage += `\\n\\n${options.friendlyMessage}`\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'SCHEMA_FAILED_TO_IMPORT':\n\t\t\t\tmessage = `Error importing \"${options.file}\". Original error:\\n\\n${\n\t\t\t\t\toptions.originalError?.message ?? '**MISSING**'\n\t\t\t\t}`\n\t\t\t\tbreak\n\n\t\t\tcase 'BUILD_FAILED':\n\t\t\t\tmessage = `Build${\n\t\t\t\t\toptions.file ? `ing ${options.file}` : ''\n\t\t\t\t} failed. It looks like you're not running 'yarn watch'. Run it and then run 'spruce all:sync'.`\n\n\t\t\t\tbreak\n\n\t\t\tcase 'FAILED_TO_IMPORT':\n\t\t\t\tmessage =\n\t\t\t\t\toptions.friendlyMessage ??\n\t\t\t\t\t`Failed to import \"${options.file}\". Original error:\\n\\n${\n\t\t\t\t\t\toptions.originalError?.message ?? '**MISSING**'\n\t\t\t\t\t}`\n\t\t\t\tbreak\n\n\t\t\tcase 'LINT_FAILED':\n\t\t\t\tmessage = options.friendlyMessage\n\n\t\t\t\tif (!message) {\n\t\t\t\t\tmessage = `Lint failed on pattern ${options.pattern}.`\n\n\t\t\t\t\tif (options.originalError) {\n\t\t\t\t\t\tmessage += `\\n\\nOriginal error:${\n\t\t\t\t\t\t\toptions.originalError.stack ?? options.originalError.message\n\t\t\t\t\t\t}`\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'EXECUTING_COMMAND_FAILED':\n\t\t\t\tif (this.originalError && this.originalError.message) {\n\t\t\t\t\tmessage = this.originalError.message + '\\n\\n'\n\t\t\t\t} else {\n\t\t\t\t\tmessage = ''\n\t\t\t\t}\n\t\t\t\tmessage += `Executing command failed '${options.cmd}'.\\n\\n`\n\t\t\t\tif (options.cwd) {\n\t\t\t\t\tmessage += `cwd: ${options.cwd}\\n\\n`\n\t\t\t\t}\n\n\t\t\t\tif (options.stderr) {\n\t\t\t\t\tmessage += this.cleanStdErr(options.stderr) + '\\n\\n'\n\t\t\t\t}\n\n\t\t\t\tif (options.stdout) {\n\t\t\t\t\tmessage += options.stdout\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'CREATE_AUTOLOADER_FAILED':\n\t\t\t\tmessage = 'A Could not create an autoloader just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'DIRECTORY_EMPTY':\n\t\t\t\tmessage = 'A directory empty just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'FILE_EXISTS':\n\t\t\t\tmessage = 'A fail already exists.'\n\t\t\t\tbreak\n\n\t\t\tcase 'VSCODE_NOT_INSTALLED':\n\t\t\t\tmessage =\n\t\t\t\t\t\"vscode's 'code' is not installed.\\n\\nMac instructions: https://code.visualstudio.com/docs/setup/mac\\n\\nLinux instructions: https://code.visualstudio.com/docs/setup/linux\\n\\nWindows instructions: https://code.visualstudio.com/docs/setup/windows\"\n\t\t\t\tbreak\n\n\t\t\tcase 'SCHEMA_EXISTS':\n\t\t\t\tmessage = `A schema called ${options.schemaId} already exists at ${options.destination}`\n\t\t\t\tbreak\n\n\t\t\tcase 'COMMAND_ABORTED':\n\t\t\t\tmessage = 'Aborted! See ya later! ✌️'\n\t\t\t\tbreak\n\n\t\t\tcase 'INVALID_FEATURE_CODE':\n\t\t\t\tmessage = `Oh no! I couldn't find a feature with the code '${options.featureCode}'.`\n\t\t\t\tbreak\n\n\t\t\tcase 'TEST_FAILED':\n\t\t\t\tmessage = `${options.fileName}\\n - ${\n\t\t\t\t\toptions.testName\n\t\t\t\t}\\n\\n${options.errorMessage\n\t\t\t\t\t.split('\\n')\n\t\t\t\t\t.map((line) => ` ${line}`)\n\t\t\t\t\t.join('\\n')}`\n\n\t\t\t\tbreak\n\n\t\t\tcase 'FEATURE_NOT_INSTALLED':\n\t\t\t\tmessage = `\\`${upperFirst(\n\t\t\t\t\toptions.featureCode\n\t\t\t\t)}\\` feature is not installed. Install it first, then try again.`\n\t\t\t\tbreak\n\n\t\t\tcase 'MERCURY_RESPONSE_ERROR': {\n\t\t\t\tconst errors = options.responseErrors\n\t\t\t\tmessage = `Got ${\n\t\t\t\t\terrors.length === 1 ? 'an error' : `${errors.length} errors`\n\t\t\t\t} from the server:\\n\\n`\n\n\t\t\t\tconst errorMessages: string[] = []\n\t\t\t\tfor (const err of errors) {\n\t\t\t\t\terrorMessages.push(err.message)\n\t\t\t\t}\n\n\t\t\t\tmessage += errorMessages.join('\\n')\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'INVALID_TEST_DIRECTORY':\n\t\t\t\tmessage = `You are missing dependencies I need to run tests. Try \\`spruce test.install\\` to reinstall.`\n\t\t\t\tbreak\n\n\t\t\tcase 'DIRECTORY_NOT_SKILL':\n\t\t\t\tmessage = 'The directory you are in is not a skill!'\n\t\t\t\tbreak\n\n\t\t\tcase 'SKILL_NOT_REGISTERED':\n\t\t\t\tmessage = `Dang! I can't continue until you register your skill! Run \\`spruce login\\` and then \\`spruce register.skill\\` to get the ball rolling!`\n\t\t\t\tbreak\n\n\t\t\tcase 'NO_ORGANIZATIONS_FOUND':\n\t\t\t\tmessage =\n\t\t\t\t\t\"It looks like you don't have any organizations setup yet. Try `spruce create.organization` first.\"\n\t\t\t\tbreak\n\n\t\t\tcase 'INVALID_EVENT_CONTRACT':\n\t\t\t\tmessage = `The event named \\`${options.fullyQualifiedEventName}\\` is not valid. Check ${options.brokenProperty}. The original error is:\\n\\n${options.originalError?.message}`\n\t\t\t\tbreak\n\n\t\t\tcase 'BOOT_ERROR':\n\t\t\t\tmessage = `Booting your skill failed: ${\n\t\t\t\t\toptions.friendlyMessage ??\n\t\t\t\t\toptions.originalError?.message ??\n\t\t\t\t\t'Not sure why, tho.'\n\t\t\t\t}`\n\t\t\t\tbreak\n\n\t\t\tcase 'DEPLOY_FAILED':\n\t\t\t\tmessage = 'Deploy halted!'\n\t\t\t\tbreak\n\n\t\t\tcase 'MISSING_DEPENDENCIES':\n\t\t\t\tmessage = `Looks like you're missing some dependencies:\\n\\n${options.dependencies\n\t\t\t\t\t.map((d) => `${d.name}: ${d.hint}`)\n\t\t\t\t\t.join('\\n')}`\n\t\t\t\tbreak\n\n\t\t\tcase 'STORE_EXISTS':\n\t\t\t\tmessage = 'A Store exists just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'NOT_LOGGED_IN':\n\t\t\t\tmessage = 'You have to be logged in to do that!'\n\t\t\t\tbreak\n\n\t\t\tcase 'SKILL_NOT_FOUND':\n\t\t\t\tmessage = options.friendlyMessage ?? `I couldn't find that skill!`\n\t\t\t\tbreak\n\n\t\t\tcase 'NO_SKILLS_REGISTERED':\n\t\t\t\tmessage = `Whoa! Looks like you haven't registered your skill yet! Try \\`spruce register\\` to get that done!`\n\t\t\t\tbreak\n\n\t\t\tcase 'COMMAND_BLOCKED':\n\t\t\t\tmessage = `${options.command} is blocked! ${options.hint}`\n\t\t\t\tbreak\n\n\t\t\tcase 'SKILL_VIEW_EXISTS':\n\t\t\t\tmessage = `A skill view controller already exists named ${options.name}!`\n\t\t\t\tbreak\n\n\t\t\tcase 'THEME_EXISTS':\n\t\t\t\tmessage = `Yikes! You can't create a new theme. One per skill for now.`\n\t\t\t\tbreak\n\n\t\t\tcase 'CACHE_NOT_ENABLED':\n\t\t\t\tmessage = \"Cache is not enabled, so it can't be disabled!\"\n\t\t\t\tbreak\n\n\t\t\tcase 'DOCKER_NOT_STARTED':\n\t\t\t\tmessage = 'Docker has not been started! Start it and try again!'\n\t\t\t\tbreak\n\n\t\t\tcase 'SCHEMA_TEMPLATE_ITEM_BUILDING_FAILED':\n\t\t\t\tmessage = `Failed to build schema template item for '${namesUtil.toPascal(\n\t\t\t\t\toptions.schemaNamespace\n\t\t\t\t)}.${options.schemaId}'. The field I had an issue on was '${\n\t\t\t\t\toptions.fieldName\n\t\t\t\t}'. It's options are:\\n\\n${JSON.stringify(\n\t\t\t\t\toptions.fieldOptions\n\t\t\t\t)}.\\n\\nChances are you have a circular reference in your schemas. You'll need to extract shared fields to a new file and have your schemas mix those in, vs referencing eath other.`\n\t\t\t\tbreak\n\n\t\t\tcase 'ACTION_CANCELLED':\n\t\t\t\tmessage = 'A Action cancelled just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'TRANSPORT_ALREADY_EXISTS':\n\t\t\t\tmessage = `A transport named '${options.name}' already exists!`\n\t\t\t\tbreak\n\n\t\t\tcase 'DEPENDENCY_EXISTS':\n\t\t\t\tmessage = `You already have ${options.namespace} as a dependency!`\n\t\t\t\tbreak\n\n\t\t\tdefault:\n\t\t\t\tmessage = super.friendlyMessage()\n\t\t}\n\n\t\treturn message\n\t}\n\n\tprivate cleanStdErr(stderr: string) {\n\t\treturn stderr.replace('warning package.json: No license field', '').trim()\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SpruceError.js","names":["SpruceError","options","message","code","args","length","join","friendlyMessage","originalError","stack","name","command","file","pattern","cmd","cwd","stderr","cleanStdErr","stdout","schemaId","destination","featureCode","fileName","testName","errorMessage","split","map","line","upperFirst","errors","responseErrors","errorMessages","err","push","fullyQualifiedEventName","brokenProperty","dependencies","d","hint","namesUtil","toPascal","schemaNamespace","fieldName","JSON","stringify","fieldOptions","namespace","replace","trim","AbstractSpruceError"],"sources":["../../src/errors/SpruceError.ts"],"sourcesContent":["import AbstractSpruceError from '@sprucelabs/error'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport upperFirst from 'lodash/upperFirst'\nimport ErrorOptions from '#spruce/errors/options.types'\n\nexport default class SpruceError extends AbstractSpruceError<ErrorOptions> {\n\t/** An easy to understand version of the errors */\n\tpublic friendlyMessage(): string {\n\t\tconst { options } = this\n\t\tlet message\n\n\t\tswitch (options?.code) {\n\t\t\tcase 'INVALID_COMMAND':\n\t\t\t\tif (!options.args || options.args.length === 0) {\n\t\t\t\t\tmessage = `Hey friend 👋.. I don't support the command you tried.`\n\t\t\t\t} else {\n\t\t\t\t\tmessage = `Hey friend 👋. I don't know the command: ${options.args.join(\n\t\t\t\t\t\t' '\n\t\t\t\t\t)}.`\n\t\t\t\t}\n\t\t\t\tmessage += ' Try running `spruce --help`'\n\t\t\t\tbreak\n\n\t\t\tcase 'GENERIC':\n\t\t\t\tmessage = options.friendlyMessage ?? 'Oh shoot! 🤔'\n\n\t\t\t\tif (options.originalError) {\n\t\t\t\t\tmessage += `\\n\\n${\n\t\t\t\t\t\toptions.originalError.stack ?? options.originalError.name\n\t\t\t\t\t}`\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'NOT_IMPLEMENTED':\n\t\t\t\tmessage = ''\n\t\t\t\tif (options.friendlyMessage) {\n\t\t\t\t\tmessage += `\\n\\n${options.friendlyMessage}`\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'COMMAND_NOT_IMPLEMENTED':\n\t\t\t\tmessage = `${options.command} has not yet been implemented. ${\n\t\t\t\t\toptions.args ? `Args: ${options.args.join(', ')}` : ''\n\t\t\t\t}`\n\t\t\t\tif (options.friendlyMessage) {\n\t\t\t\t\tmessage += `\\n\\n${options.friendlyMessage}`\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'SCHEMA_FAILED_TO_IMPORT':\n\t\t\t\tmessage = `Error importing \"${options.file}\". Original error:\\n\\n${\n\t\t\t\t\toptions.originalError?.message ?? '**MISSING**'\n\t\t\t\t}`\n\t\t\t\tbreak\n\n\t\t\tcase 'BUILD_FAILED':\n\t\t\t\tmessage = `Build${\n\t\t\t\t\toptions.file ? `ing ${options.file}` : ''\n\t\t\t\t} failed. It looks like you're not running 'yarn watch'. Run it and then run 'spruce all:sync'.`\n\n\t\t\t\tbreak\n\n\t\t\tcase 'FAILED_TO_IMPORT':\n\t\t\t\tmessage =\n\t\t\t\t\toptions.friendlyMessage ??\n\t\t\t\t\t`Failed to import \"${options.file}\". Original error:\\n\\n${\n\t\t\t\t\t\toptions.originalError?.message ?? '**MISSING**'\n\t\t\t\t\t}`\n\t\t\t\tbreak\n\n\t\t\tcase 'LINT_FAILED':\n\t\t\t\tmessage = options.friendlyMessage\n\n\t\t\t\tif (!message) {\n\t\t\t\t\tmessage = `Lint failed on pattern ${options.pattern}.`\n\n\t\t\t\t\tif (options.originalError) {\n\t\t\t\t\t\tmessage += `\\n\\nOriginal error:${\n\t\t\t\t\t\t\toptions.originalError.stack ?? options.originalError.message\n\t\t\t\t\t\t}`\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'EXECUTING_COMMAND_FAILED':\n\t\t\t\tif (this.originalError && this.originalError.message) {\n\t\t\t\t\tmessage = this.originalError.message + '\\n\\n'\n\t\t\t\t} else {\n\t\t\t\t\tmessage = ''\n\t\t\t\t}\n\t\t\t\tmessage += `Executing command failed '${options.cmd}'.\\n\\n`\n\t\t\t\tif (options.cwd) {\n\t\t\t\t\tmessage += `cwd: ${options.cwd}\\n\\n`\n\t\t\t\t}\n\n\t\t\t\tif (options.stderr) {\n\t\t\t\t\tmessage += this.cleanStdErr(options.stderr) + '\\n\\n'\n\t\t\t\t}\n\n\t\t\t\tif (options.stdout) {\n\t\t\t\t\tmessage += options.stdout\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'CREATE_AUTOLOADER_FAILED':\n\t\t\t\tmessage = 'A Could not create an autoloader just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'DIRECTORY_EMPTY':\n\t\t\t\tmessage = 'A directory empty just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'FILE_EXISTS':\n\t\t\t\tmessage = 'A fail already exists.'\n\t\t\t\tbreak\n\n\t\t\tcase 'VSCODE_NOT_INSTALLED':\n\t\t\t\tmessage =\n\t\t\t\t\t\"vscode's 'code' is not installed.\\n\\nMac instructions: https://code.visualstudio.com/docs/setup/mac\\n\\nLinux instructions: https://code.visualstudio.com/docs/setup/linux\\n\\nWindows instructions: https://code.visualstudio.com/docs/setup/windows\"\n\t\t\t\tbreak\n\n\t\t\tcase 'SCHEMA_EXISTS':\n\t\t\t\tmessage = `A schema called ${options.schemaId} already exists at ${options.destination}`\n\t\t\t\tbreak\n\n\t\t\tcase 'COMMAND_ABORTED':\n\t\t\t\tmessage = 'Aborted! See ya later! ✌️'\n\t\t\t\tbreak\n\n\t\t\tcase 'INVALID_FEATURE_CODE':\n\t\t\t\tmessage = `Oh no! I couldn't find a feature with the code '${options.featureCode}'.`\n\t\t\t\tbreak\n\n\t\t\tcase 'TEST_FAILED':\n\t\t\t\tmessage = `${options.fileName}\\n - ${\n\t\t\t\t\toptions.testName\n\t\t\t\t}\\n\\n${options.errorMessage\n\t\t\t\t\t.split('\\n')\n\t\t\t\t\t.map((line) => ` ${line}`)\n\t\t\t\t\t.join('\\n')}`\n\n\t\t\t\tbreak\n\n\t\t\tcase 'FEATURE_NOT_INSTALLED':\n\t\t\t\tmessage = `\\`${upperFirst(\n\t\t\t\t\toptions.featureCode\n\t\t\t\t)}\\` feature is not installed. Install it first, then try again.`\n\t\t\t\tbreak\n\n\t\t\tcase 'MERCURY_RESPONSE_ERROR': {\n\t\t\t\tconst errors = options.responseErrors\n\t\t\t\tmessage = `Got ${\n\t\t\t\t\terrors.length === 1 ? 'an error' : `${errors.length} errors`\n\t\t\t\t} from the server:\\n\\n`\n\n\t\t\t\tconst errorMessages: string[] = []\n\t\t\t\tfor (const err of errors) {\n\t\t\t\t\terrorMessages.push(err.message)\n\t\t\t\t}\n\n\t\t\t\tmessage += errorMessages.join('\\n')\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'INVALID_TEST_DIRECTORY':\n\t\t\t\tmessage = `You are missing dependencies I need to run tests. Try \\`spruce test.install\\` to reinstall.`\n\t\t\t\tbreak\n\n\t\t\tcase 'DIRECTORY_NOT_SKILL':\n\t\t\t\tmessage = 'The directory you are in is not a skill!'\n\t\t\t\tbreak\n\n\t\t\tcase 'SKILL_NOT_REGISTERED':\n\t\t\t\tmessage = `Dang! I can't continue until you register your skill! Run \\`spruce login\\` and then \\`spruce register.skill\\` to get the ball rolling!`\n\t\t\t\tbreak\n\n\t\t\tcase 'NO_ORGANIZATIONS_FOUND':\n\t\t\t\tmessage =\n\t\t\t\t\t\"It looks like you don't have any organizations setup yet. Try `spruce create.organization` first.\"\n\t\t\t\tbreak\n\n\t\t\tcase 'INVALID_EVENT_CONTRACT':\n\t\t\t\tmessage = `The event named \\`${options.fullyQualifiedEventName}\\` is not valid. Check ${options.brokenProperty}. The original error is:\\n\\n${options.originalError?.message}`\n\t\t\t\tbreak\n\n\t\t\tcase 'BOOT_ERROR':\n\t\t\t\tmessage = `Booting your skill failed: ${\n\t\t\t\t\toptions.friendlyMessage ??\n\t\t\t\t\toptions.originalError?.message ??\n\t\t\t\t\t'Not sure why, tho.'\n\t\t\t\t}`\n\t\t\t\tbreak\n\n\t\t\tcase 'DEPLOY_FAILED':\n\t\t\t\tmessage = 'Deploy halted!'\n\t\t\t\tbreak\n\n\t\t\tcase 'MISSING_DEPENDENCIES':\n\t\t\t\tmessage = `Looks like you're missing some dependencies:\\n\\n${options.dependencies\n\t\t\t\t\t.map((d) => `${d.name}: ${d.hint}`)\n\t\t\t\t\t.join('\\n')}`\n\t\t\t\tbreak\n\n\t\t\tcase 'STORE_EXISTS':\n\t\t\t\tmessage = 'A Store exists just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'NOT_LOGGED_IN':\n\t\t\t\tmessage = 'You have to be logged in to do that!'\n\t\t\t\tbreak\n\n\t\t\tcase 'SKILL_NOT_FOUND':\n\t\t\t\tmessage = options.friendlyMessage ?? `I couldn't find that skill!`\n\t\t\t\tbreak\n\n\t\t\tcase 'NO_SKILLS_REGISTERED':\n\t\t\t\tmessage = `Whoa! Looks like you haven't registered your skill yet! Try \\`spruce register\\` to get that done!`\n\t\t\t\tbreak\n\n\t\t\tcase 'COMMAND_BLOCKED':\n\t\t\t\tmessage = `${options.command} is blocked! ${options.hint}`\n\t\t\t\tbreak\n\n\t\t\tcase 'SKILL_VIEW_EXISTS':\n\t\t\t\tmessage = `A skill view controller already exists named ${options.name}!`\n\t\t\t\tbreak\n\n\t\t\tcase 'THEME_EXISTS':\n\t\t\t\tmessage = `Yikes! You can't create a new theme. One per skill for now.`\n\t\t\t\tbreak\n\n\t\t\tcase 'CACHE_NOT_ENABLED':\n\t\t\t\tmessage = \"Cache is not enabled, so it can't be disabled!\"\n\t\t\t\tbreak\n\n\t\t\tcase 'DOCKER_NOT_STARTED':\n\t\t\t\tmessage = 'Docker has not been started! Start it and try again!'\n\t\t\t\tbreak\n\n\t\t\tcase 'SCHEMA_TEMPLATE_ITEM_BUILDING_FAILED':\n\t\t\t\tmessage = `Failed to build schema template item for '${namesUtil.toPascal(\n\t\t\t\t\toptions.schemaNamespace\n\t\t\t\t)}.${options.schemaId}'. The field I had an issue on was '${\n\t\t\t\t\toptions.fieldName\n\t\t\t\t}'. It's options are:\\n\\n${JSON.stringify(\n\t\t\t\t\toptions.fieldOptions\n\t\t\t\t)}.\\n\\nChances are you have a circular reference in your schemas. You'll need to extract shared fields to a new file and have your schemas mix those in, vs referencing eath other.`\n\t\t\t\tbreak\n\n\t\t\tcase 'ACTION_CANCELLED':\n\t\t\t\tmessage = 'A Action cancelled just happened!'\n\t\t\t\tbreak\n\n\t\t\tcase 'TRANSPORT_ALREADY_EXISTS':\n\t\t\t\tmessage = `A transport named '${options.name}' already exists!`\n\t\t\t\tbreak\n\n\t\t\tcase 'DEPENDENCY_EXISTS':\n\t\t\t\tmessage = `You already have ${options.namespace} as a dependency!`\n\t\t\t\tbreak\n\n\t\t\tdefault:\n\t\t\t\tmessage = super.friendlyMessage()\n\t\t}\n\n\t\treturn message\n\t}\n\n\tprivate cleanStdErr(stderr: string) {\n\t\treturn stderr.replace('warning package.json: No license field', '').trim()\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"actionCancelled.builder.js","names":["id","name","fields"],"sources":["../../src/errors/actionCancelled.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'actionCancelled',\n\tname: 'Action cancelled',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,iBAD2B;EAE/BC,IAAI,EAAE,kBAFyB;EAG/BC,MAAM,EAAE;AAHuB,CAAjB,C"}
1
+ {"version":3,"file":"actionCancelled.builder.js","names":["buildErrorSchema","id","name","fields"],"sources":["../../src/errors/actionCancelled.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'actionCancelled',\n\tname: 'Action cancelled',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,iBAD2B;EAE/BC,IAAI,EAAE,kBAFyB;EAG/BC,MAAM,EAAE;AAHuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootError.builder.js","names":["id","name","description","fields"],"sources":["../../src/errors/bootError.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'bootError',\n\tname: 'boot error',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,WAD2B;EAE/BC,IAAI,EAAE,YAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"bootError.builder.js","names":["buildErrorSchema","id","name","description","fields"],"sources":["../../src/errors/bootError.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'bootError',\n\tname: 'boot error',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,WAD2B;EAE/BC,IAAI,EAAE,YAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildFailed.builder.js","names":["id","name","description","fields","file","type","label","hint"],"sources":["../../src/errors/buildFailed.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'buildFailed',\n\tname: 'BuildFailed',\n\tdescription:\n\t\t'Error thrown when building or linting failed. Happens when a yarn command fails inside the package utility.',\n\tfields: {\n\t\tfile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'File',\n\t\t\thint: 'File we wanted to build, if not set we wanted to build everything..',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,aAD2B;EAE/BC,IAAI,EAAE,aAFyB;EAG/BC,WAAW,EACV,6GAJ8B;EAK/BC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,IAAI,EAAE;IAHD;EADC;AALuB,CAAjB,C"}
1
+ {"version":3,"file":"buildFailed.builder.js","names":["buildErrorSchema","id","name","description","fields","file","type","label","hint"],"sources":["../../src/errors/buildFailed.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'buildFailed',\n\tname: 'BuildFailed',\n\tdescription:\n\t\t'Error thrown when building or linting failed. Happens when a yarn command fails inside the package utility.',\n\tfields: {\n\t\tfile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'File',\n\t\t\thint: 'File we wanted to build, if not set we wanted to build everything..',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,aAD2B;EAE/BC,IAAI,EAAE,aAFyB;EAG/BC,WAAW,EACV,6GAJ8B;EAK/BC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,IAAI,EAAE;IAHD;EADC;AALuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"cacheNotEnabled.builder.js","names":["id","name","description","fields"],"sources":["../../src/errors/cacheNotEnabled.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'cacheNotEnabled',\n\tname: 'Cache not enabled',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,iBAD2B;EAE/BC,IAAI,EAAE,mBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"cacheNotEnabled.builder.js","names":["buildErrorSchema","id","name","description","fields"],"sources":["../../src/errors/cacheNotEnabled.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'cacheNotEnabled',\n\tname: 'Cache not enabled',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,iBAD2B;EAE/BC,IAAI,EAAE,mBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"commandAborted.builder.js","names":["id","name","description","fields","command","type","label","isRequired"],"sources":["../../src/errors/commandAborted.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'commandAborted',\n\tname: 'Command aborted',\n\tdescription: '',\n\tfields: {\n\t\tcommand: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Command',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,gBAD2B;EAE/BC,IAAI,EAAE,iBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,UAAU,EAAE;IAHJ;EADF;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"commandAborted.builder.js","names":["buildErrorSchema","id","name","description","fields","command","type","label","isRequired"],"sources":["../../src/errors/commandAborted.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'commandAborted',\n\tname: 'Command aborted',\n\tdescription: '',\n\tfields: {\n\t\tcommand: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Command',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,gBAD2B;EAE/BC,IAAI,EAAE,iBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,UAAU,EAAE;IAHJ;EADF;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"commandBlocked.builder.js","names":["id","name","description","fields","command","type","isRequired","hint"],"sources":["../../src/errors/commandBlocked.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'commandBlocked',\n\tname: 'Command blocked',\n\tdescription: '',\n\tfields: {\n\t\tcommand: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t\thint: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,gBAD2B;EAE/BC,IAAI,EAAE,iBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,MADE;MAERC,UAAU,EAAE;IAFJ,CADF;IAKPC,IAAI,EAAE;MACLF,IAAI,EAAE,MADD;MAELC,UAAU,EAAE;IAFP;EALC;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"commandBlocked.builder.js","names":["buildErrorSchema","id","name","description","fields","command","type","isRequired","hint"],"sources":["../../src/errors/commandBlocked.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'commandBlocked',\n\tname: 'Command blocked',\n\tdescription: '',\n\tfields: {\n\t\tcommand: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t\thint: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,gBAD2B;EAE/BC,IAAI,EAAE,iBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,MADE;MAERC,UAAU,EAAE;IAFJ,CADF;IAKPC,IAAI,EAAE;MACLF,IAAI,EAAE,MADD;MAELC,UAAU,EAAE;IAFP;EALC;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"commandNotImplemented.builder.js","names":["id","name","description","fields","command","type","label","isRequired","hint","args","isArray"],"sources":["../../src/errors/commandNotImplemented.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'commandNotImplemented',\n\tname: 'Command not implemented',\n\tdescription: 'This command has not yet been implemented ',\n\tfields: {\n\t\tcommand: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Command',\n\t\t\tisRequired: true,\n\t\t\thint: 'the command being run!',\n\t\t},\n\t\targs: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Args',\n\t\t\tisRequired: false,\n\t\t\tisArray: true,\n\t\t\thint: 'Arguments passed to the command',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,uBAD2B;EAE/BC,IAAI,EAAE,yBAFyB;EAG/BC,WAAW,EAAE,4CAHkB;EAI/BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,UAAU,EAAE,IAHJ;MAIRC,IAAI,EAAE;IAJE,CADF;IAOPC,IAAI,EAAE;MACLJ,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,KAHP;MAILG,OAAO,EAAE,IAJJ;MAKLF,IAAI,EAAE;IALD;EAPC;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"commandNotImplemented.builder.js","names":["buildErrorSchema","id","name","description","fields","command","type","label","isRequired","hint","args","isArray"],"sources":["../../src/errors/commandNotImplemented.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'commandNotImplemented',\n\tname: 'Command not implemented',\n\tdescription: 'This command has not yet been implemented ',\n\tfields: {\n\t\tcommand: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Command',\n\t\t\tisRequired: true,\n\t\t\thint: 'the command being run!',\n\t\t},\n\t\targs: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Args',\n\t\t\tisRequired: false,\n\t\t\tisArray: true,\n\t\t\thint: 'Arguments passed to the command',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,uBAD2B;EAE/BC,IAAI,EAAE,yBAFyB;EAG/BC,WAAW,EAAE,4CAHkB;EAI/BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,UAAU,EAAE,IAHJ;MAIRC,IAAI,EAAE;IAJE,CADF;IAOPC,IAAI,EAAE;MACLJ,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,KAHP;MAILG,OAAO,EAAE,IAJJ;MAKLF,IAAI,EAAE;IALD;EAPC;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"createAutoloaderFailed.builder.js","names":["id","name","description","fields","globbyPattern","type","label","isRequired","hint","filePaths","isArray","suffix","directory"],"sources":["../../src/errors/createAutoloaderFailed.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'createAutoloaderFailed',\n\tname: 'Could not create an autoloader',\n\tdescription: 'Autoloader creation failed',\n\tfields: {\n\t\tglobbyPattern: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The globby pattern used to find files',\n\t\t\tisRequired: true,\n\t\t\thint: 'Globby pattern',\n\t\t},\n\t\tfilePaths: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The files that were loaded',\n\t\t\tisArray: true,\n\t\t\tisRequired: true,\n\t\t\thint: 'The files that were loaded',\n\t\t},\n\t\tsuffix: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The suffix for classes to autoload',\n\t\t\tisRequired: true,\n\t\t\thint: 'Class suffix',\n\t\t},\n\t\tdirectory: {\n\t\t\ttype: 'text',\n\t\t\tlabel: \"The directory we're trying to create the autoloader for\",\n\t\t\tisRequired: true,\n\t\t\thint: 'Directory to autoload',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,wBAD2B;EAE/BC,IAAI,EAAE,gCAFyB;EAG/BC,WAAW,EAAE,4BAHkB;EAI/BC,MAAM,EAAE;IACPC,aAAa,EAAE;MACdC,IAAI,EAAE,MADQ;MAEdC,KAAK,EAAE,uCAFO;MAGdC,UAAU,EAAE,IAHE;MAIdC,IAAI,EAAE;IAJQ,CADR;IAOPC,SAAS,EAAE;MACVJ,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,4BAFG;MAGVI,OAAO,EAAE,IAHC;MAIVH,UAAU,EAAE,IAJF;MAKVC,IAAI,EAAE;IALI,CAPJ;IAcPG,MAAM,EAAE;MACPN,IAAI,EAAE,MADC;MAEPC,KAAK,EAAE,oCAFA;MAGPC,UAAU,EAAE,IAHL;MAIPC,IAAI,EAAE;IAJC,CAdD;IAoBPI,SAAS,EAAE;MACVP,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,yDAFG;MAGVC,UAAU,EAAE,IAHF;MAIVC,IAAI,EAAE;IAJI;EApBJ;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"createAutoloaderFailed.builder.js","names":["buildErrorSchema","id","name","description","fields","globbyPattern","type","label","isRequired","hint","filePaths","isArray","suffix","directory"],"sources":["../../src/errors/createAutoloaderFailed.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'createAutoloaderFailed',\n\tname: 'Could not create an autoloader',\n\tdescription: 'Autoloader creation failed',\n\tfields: {\n\t\tglobbyPattern: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The globby pattern used to find files',\n\t\t\tisRequired: true,\n\t\t\thint: 'Globby pattern',\n\t\t},\n\t\tfilePaths: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The files that were loaded',\n\t\t\tisArray: true,\n\t\t\tisRequired: true,\n\t\t\thint: 'The files that were loaded',\n\t\t},\n\t\tsuffix: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The suffix for classes to autoload',\n\t\t\tisRequired: true,\n\t\t\thint: 'Class suffix',\n\t\t},\n\t\tdirectory: {\n\t\t\ttype: 'text',\n\t\t\tlabel: \"The directory we're trying to create the autoloader for\",\n\t\t\tisRequired: true,\n\t\t\thint: 'Directory to autoload',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,wBAD2B;EAE/BC,IAAI,EAAE,gCAFyB;EAG/BC,WAAW,EAAE,4BAHkB;EAI/BC,MAAM,EAAE;IACPC,aAAa,EAAE;MACdC,IAAI,EAAE,MADQ;MAEdC,KAAK,EAAE,uCAFO;MAGdC,UAAU,EAAE,IAHE;MAIdC,IAAI,EAAE;IAJQ,CADR;IAOPC,SAAS,EAAE;MACVJ,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,4BAFG;MAGVI,OAAO,EAAE,IAHC;MAIVH,UAAU,EAAE,IAJF;MAKVC,IAAI,EAAE;IALI,CAPJ;IAcPG,MAAM,EAAE;MACPN,IAAI,EAAE,MADC;MAEPC,KAAK,EAAE,oCAFA;MAGPC,UAAU,EAAE,IAHL;MAIPC,IAAI,EAAE;IAJC,CAdD;IAoBPI,SAAS,EAAE;MACVP,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,yDAFG;MAGVC,UAAU,EAAE,IAHF;MAIVC,IAAI,EAAE;IAJI;EApBJ;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyExists.builder.js","names":["id","name","fields","namespace","type","isRequired"],"sources":["../../src/errors/dependencyExists.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'dependencyExists',\n\tname: 'Dependency exists',\n\tfields: {\n\t\tnamespace: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,kBAD2B;EAE/BC,IAAI,EAAE,mBAFyB;EAG/BC,MAAM,EAAE;IACPC,SAAS,EAAE;MACVC,IAAI,EAAE,MADI;MAEVC,UAAU,EAAE;IAFF;EADJ;AAHuB,CAAjB,C"}
1
+ {"version":3,"file":"dependencyExists.builder.js","names":["buildErrorSchema","id","name","fields","namespace","type","isRequired"],"sources":["../../src/errors/dependencyExists.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'dependencyExists',\n\tname: 'Dependency exists',\n\tfields: {\n\t\tnamespace: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,kBAD2B;EAE/BC,IAAI,EAAE,mBAFyB;EAG/BC,MAAM,EAAE;IACPC,SAAS,EAAE;MACVC,IAAI,EAAE,MADI;MAEVC,UAAU,EAAE;IAFF;EADJ;AAHuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"deployFailed.builder.js","names":["id","name","description","fields","stage","type","isRequired","options","choices","label","value"],"sources":["../../src/errors/deployFailed.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'deployFailed',\n\tname: 'Deploy Failed',\n\tdescription: '',\n\tfields: {\n\t\tstage: {\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Skill',\n\t\t\t\t\t\tvalue: 'skill',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Building',\n\t\t\t\t\t\tvalue: 'building',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Testing',\n\t\t\t\t\t\tvalue: 'testing',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Git',\n\t\t\t\t\t\tvalue: 'git',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Procfile',\n\t\t\t\t\t\tvalue: 'procfile',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Remote',\n\t\t\t\t\t\tvalue: 'remote',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Heroku',\n\t\t\t\t\t\tvalue: 'heroku',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,cAD2B;EAE/BC,IAAI,EAAE,eAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,KAAK,EAAE;MACNC,IAAI,EAAE,QADA;MAENC,UAAU,EAAE,IAFN;MAGNC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,OADR;UAECC,KAAK,EAAE;QAFR,CADQ,EAKR;UACCD,KAAK,EAAE,UADR;UAECC,KAAK,EAAE;QAFR,CALQ,EASR;UACCD,KAAK,EAAE,SADR;UAECC,KAAK,EAAE;QAFR,CATQ,EAaR;UACCD,KAAK,EAAE,KADR;UAECC,KAAK,EAAE;QAFR,CAbQ,EAiBR;UACCD,KAAK,EAAE,UADR;UAECC,KAAK,EAAE;QAFR,CAjBQ,EAqBR;UACCD,KAAK,EAAE,QADR;UAECC,KAAK,EAAE;QAFR,CArBQ,EAyBR;UACCD,KAAK,EAAE,QADR;UAECC,KAAK,EAAE;QAFR,CAzBQ;MADD;IAHH;EADA;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"deployFailed.builder.js","names":["buildErrorSchema","id","name","description","fields","stage","type","isRequired","options","choices","label","value"],"sources":["../../src/errors/deployFailed.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'deployFailed',\n\tname: 'Deploy Failed',\n\tdescription: '',\n\tfields: {\n\t\tstage: {\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Skill',\n\t\t\t\t\t\tvalue: 'skill',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Building',\n\t\t\t\t\t\tvalue: 'building',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Testing',\n\t\t\t\t\t\tvalue: 'testing',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Git',\n\t\t\t\t\t\tvalue: 'git',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Procfile',\n\t\t\t\t\t\tvalue: 'procfile',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Remote',\n\t\t\t\t\t\tvalue: 'remote',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Heroku',\n\t\t\t\t\t\tvalue: 'heroku',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,cAD2B;EAE/BC,IAAI,EAAE,eAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,KAAK,EAAE;MACNC,IAAI,EAAE,QADA;MAENC,UAAU,EAAE,IAFN;MAGNC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,OADR;UAECC,KAAK,EAAE;QAFR,CADQ,EAKR;UACCD,KAAK,EAAE,UADR;UAECC,KAAK,EAAE;QAFR,CALQ,EASR;UACCD,KAAK,EAAE,SADR;UAECC,KAAK,EAAE;QAFR,CATQ,EAaR;UACCD,KAAK,EAAE,KADR;UAECC,KAAK,EAAE;QAFR,CAbQ,EAiBR;UACCD,KAAK,EAAE,UADR;UAECC,KAAK,EAAE;QAFR,CAjBQ,EAqBR;UACCD,KAAK,EAAE,QADR;UAECC,KAAK,EAAE;QAFR,CArBQ,EAyBR;UACCD,KAAK,EAAE,QADR;UAECC,KAAK,EAAE;QAFR,CAzBQ;MADD;IAHH;EADA;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"directoryEmpty.builder.js","names":["id","name","description","fields","directory","type","isRequired"],"sources":["../../src/errors/directoryEmpty.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'directoryEmpty',\n\tname: 'directory empty',\n\tdescription: '',\n\tfields: {\n\t\tdirectory: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,gBAD2B;EAE/BC,IAAI,EAAE,iBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,SAAS,EAAE;MACVC,IAAI,EAAE,MADI;MAEVC,UAAU,EAAE;IAFF;EADJ;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"directoryEmpty.builder.js","names":["buildErrorSchema","id","name","description","fields","directory","type","isRequired"],"sources":["../../src/errors/directoryEmpty.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'directoryEmpty',\n\tname: 'directory empty',\n\tdescription: '',\n\tfields: {\n\t\tdirectory: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,gBAD2B;EAE/BC,IAAI,EAAE,iBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,SAAS,EAAE;MACVC,IAAI,EAAE,MADI;MAEVC,UAAU,EAAE;IAFF;EADJ;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"directoryNotSkill.builder.js","names":["id","name","description","fields"],"sources":["../../src/errors/directoryNotSkill.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'directoryNotSkill',\n\tname: 'Dir not skill',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,mBAD2B;EAE/BC,IAAI,EAAE,eAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"directoryNotSkill.builder.js","names":["buildErrorSchema","id","name","description","fields"],"sources":["../../src/errors/directoryNotSkill.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'directoryNotSkill',\n\tname: 'Dir not skill',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,mBAD2B;EAE/BC,IAAI,EAAE,eAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"dockerNotStarted.builder.js","names":["id","name","description","fields"],"sources":["../../src/errors/dockerNotStarted.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'dockerNotStarted',\n\tname: 'Docker not started',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,kBAD2B;EAE/BC,IAAI,EAAE,oBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"dockerNotStarted.builder.js","names":["buildErrorSchema","id","name","description","fields"],"sources":["../../src/errors/dockerNotStarted.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'dockerNotStarted',\n\tname: 'Docker not started',\n\tdescription: '',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,kBAD2B;EAE/BC,IAAI,EAAE,oBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"executingCommandFailed.builder.js","names":["id","name","description","fields","cmd","type","label","args","isArray","cwd","stdout","stderr"],"sources":["../../src/errors/executingCommandFailed.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'executingCommandFailed',\n\tname: 'Executing command failed',\n\tdescription: 'The command that was being executed failed',\n\tfields: {\n\t\tcmd: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The command being run',\n\t\t},\n\t\targs: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Args',\n\t\t\tisArray: true,\n\t\t},\n\t\tcwd: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Cwd',\n\t\t},\n\t\tstdout: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Stdout',\n\t\t},\n\t\tstderr: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'stderr',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,wBADsB;EAE1BC,IAAI,EAAE,0BAFoB;EAG1BC,WAAW,EAAE,4CAHa;EAI1BC,MAAM,EAAE;IACPC,GAAG,EAAE;MACJC,IAAI,EAAE,MADF;MAEJC,KAAK,EAAE;IAFH,CADE;IAKPC,IAAI,EAAE;MACLF,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLE,OAAO,EAAE;IAHJ,CALC;IAUPC,GAAG,EAAE;MACJJ,IAAI,EAAE,MADF;MAEJC,KAAK,EAAE;IAFH,CAVE;IAcPI,MAAM,EAAE;MACPL,IAAI,EAAE,MADC;MAEPC,KAAK,EAAE;IAFA,CAdD;IAkBPK,MAAM,EAAE;MACPN,IAAI,EAAE,MADC;MAEPC,KAAK,EAAE;IAFA;EAlBD;AAJkB,CAAZ,C"}
1
+ {"version":3,"file":"executingCommandFailed.builder.js","names":["buildSchema","id","name","description","fields","cmd","type","label","args","isArray","cwd","stdout","stderr"],"sources":["../../src/errors/executingCommandFailed.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'executingCommandFailed',\n\tname: 'Executing command failed',\n\tdescription: 'The command that was being executed failed',\n\tfields: {\n\t\tcmd: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'The command being run',\n\t\t},\n\t\targs: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Args',\n\t\t\tisArray: true,\n\t\t},\n\t\tcwd: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Cwd',\n\t\t},\n\t\tstdout: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Stdout',\n\t\t},\n\t\tstderr: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'stderr',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,mBAAA,EAAY;EAC1BC,EAAE,EAAE,wBADsB;EAE1BC,IAAI,EAAE,0BAFoB;EAG1BC,WAAW,EAAE,4CAHa;EAI1BC,MAAM,EAAE;IACPC,GAAG,EAAE;MACJC,IAAI,EAAE,MADF;MAEJC,KAAK,EAAE;IAFH,CADE;IAKPC,IAAI,EAAE;MACLF,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLE,OAAO,EAAE;IAHJ,CALC;IAUPC,GAAG,EAAE;MACJJ,IAAI,EAAE,MADF;MAEJC,KAAK,EAAE;IAFH,CAVE;IAcPI,MAAM,EAAE;MACPL,IAAI,EAAE,MADC;MAEPC,KAAK,EAAE;IAFA,CAdD;IAkBPK,MAAM,EAAE;MACPN,IAAI,EAAE,MADC;MAEPC,KAAK,EAAE;IAFA;EAlBD;AAJkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"failedToImport.builder.js","names":["failedToImportDefinition","id","name","description","fields","file","type","label","isRequired","hint"],"sources":["../../src/errors/failedToImport.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nconst failedToImportDefinition = buildErrorSchema({\n\tid: 'failedToImport',\n\tname: 'FailedToImport',\n\tdescription: 'Failed to import a file through VM',\n\tfields: {\n\t\tfile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'File',\n\t\t\tisRequired: true,\n\t\t\thint: 'The file I tried to import',\n\t\t},\n\t},\n})\n\nexport default failedToImportDefinition\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,wBAAwB,GAAG,8BAAiB;EACjDC,EAAE,EAAE,gBAD6C;EAEjDC,IAAI,EAAE,gBAF2C;EAGjDC,WAAW,EAAE,oCAHoC;EAIjDC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,IAAI,EAAE;IAJD;EADC;AAJyC,CAAjB,CAAjC;eAceT,wB"}
1
+ {"version":3,"file":"failedToImport.builder.js","names":["failedToImportDefinition","buildErrorSchema","id","name","description","fields","file","type","label","isRequired","hint"],"sources":["../../src/errors/failedToImport.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nconst failedToImportDefinition = buildErrorSchema({\n\tid: 'failedToImport',\n\tname: 'FailedToImport',\n\tdescription: 'Failed to import a file through VM',\n\tfields: {\n\t\tfile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'File',\n\t\t\tisRequired: true,\n\t\t\thint: 'The file I tried to import',\n\t\t},\n\t},\n})\n\nexport default failedToImportDefinition\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,wBAAwB,GAAG,IAAAC,wBAAA,EAAiB;EACjDC,EAAE,EAAE,gBAD6C;EAEjDC,IAAI,EAAE,gBAF2C;EAGjDC,WAAW,EAAE,oCAHoC;EAIjDC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,IAAI,EAAE;IAJD;EADC;AAJyC,CAAjB,CAAjC;eAceV,wB"}
@@ -1 +1 @@
1
- {"version":3,"file":"featureNotInstalled.builder.js","names":["id","name","description","fields","featureCode","type","isRequired"],"sources":["../../src/errors/featureNotInstalled.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'featureNotInstalled',\n\tname: 'Feature not installed',\n\tdescription: '',\n\tfields: {\n\t\tfeatureCode: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,8BAAiB;EAC/BA,EAAE,EAAE,qBAD2B;EAE/BC,IAAI,EAAE,uBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MADM;MAEZC,UAAU,EAAE;IAFA;EADN;AAJuB,CAAjB,C"}
1
+ {"version":3,"file":"featureNotInstalled.builder.js","names":["buildErrorSchema","id","name","description","fields","featureCode","type","isRequired"],"sources":["../../src/errors/featureNotInstalled.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nexport default buildErrorSchema({\n\tid: 'featureNotInstalled',\n\tname: 'Feature not installed',\n\tdescription: '',\n\tfields: {\n\t\tfeatureCode: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,wBAAA,EAAiB;EAC/BC,EAAE,EAAE,qBAD2B;EAE/BC,IAAI,EAAE,uBAFyB;EAG/BC,WAAW,EAAE,EAHkB;EAI/BC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MADM;MAEZC,UAAU,EAAE;IAFA;EADN;AAJuB,CAAjB,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileExists.builder.js","names":["fileExistsDefinition","id","name","description","fields","file","type","label","isRequired","hint"],"sources":["../../src/errors/fileExists.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nconst fileExistsDefinition = buildErrorSchema({\n\tid: 'fileExists',\n\tname: 'fileExists',\n\tdescription: 'The file already exists',\n\tfields: {\n\t\tfile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'File',\n\t\t\tisRequired: true,\n\t\t\thint: 'The file being created',\n\t\t},\n\t},\n})\n\nexport default fileExistsDefinition\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,oBAAoB,GAAG,8BAAiB;EAC7CC,EAAE,EAAE,YADyC;EAE7CC,IAAI,EAAE,YAFuC;EAG7CC,WAAW,EAAE,yBAHgC;EAI7CC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,IAAI,EAAE;IAJD;EADC;AAJqC,CAAjB,CAA7B;eAceT,oB"}
1
+ {"version":3,"file":"fileExists.builder.js","names":["fileExistsDefinition","buildErrorSchema","id","name","description","fields","file","type","label","isRequired","hint"],"sources":["../../src/errors/fileExists.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nconst fileExistsDefinition = buildErrorSchema({\n\tid: 'fileExists',\n\tname: 'fileExists',\n\tdescription: 'The file already exists',\n\tfields: {\n\t\tfile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'File',\n\t\t\tisRequired: true,\n\t\t\thint: 'The file being created',\n\t\t},\n\t},\n})\n\nexport default fileExistsDefinition\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,oBAAoB,GAAG,IAAAC,wBAAA,EAAiB;EAC7CC,EAAE,EAAE,YADyC;EAE7CC,IAAI,EAAE,YAFuC;EAG7CC,WAAW,EAAE,yBAHgC;EAI7CC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,IAAI,EAAE;IAJD;EADC;AAJqC,CAAjB,CAA7B;eAceV,oB"}
@@ -1 +1 @@
1
- {"version":3,"file":"generic.builder.js","names":["genericDefinition","id","name","description","fields","friendlyMessageSet","type","label"],"sources":["../../src/errors/generic.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nconst genericDefinition = buildErrorSchema({\n\tid: 'generic',\n\tname: 'generic',\n\tdescription: \"When you're too lazy to make a new error\",\n\tfields: {\n\t\tfriendlyMessageSet: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Friendly message',\n\t\t},\n\t},\n})\n\nexport default genericDefinition\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,iBAAiB,GAAG,8BAAiB;EAC1CC,EAAE,EAAE,SADsC;EAE1CC,IAAI,EAAE,SAFoC;EAG1CC,WAAW,EAAE,0CAH6B;EAI1CC,MAAM,EAAE;IACPC,kBAAkB,EAAE;MACnBC,IAAI,EAAE,MADa;MAEnBC,KAAK,EAAE;IAFY;EADb;AAJkC,CAAjB,CAA1B;eAYeP,iB"}
1
+ {"version":3,"file":"generic.builder.js","names":["genericDefinition","buildErrorSchema","id","name","description","fields","friendlyMessageSet","type","label"],"sources":["../../src/errors/generic.builder.ts"],"sourcesContent":["import { buildErrorSchema } from '@sprucelabs/schema'\n\nconst genericDefinition = buildErrorSchema({\n\tid: 'generic',\n\tname: 'generic',\n\tdescription: \"When you're too lazy to make a new error\",\n\tfields: {\n\t\tfriendlyMessageSet: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Friendly message',\n\t\t},\n\t},\n})\n\nexport default genericDefinition\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,iBAAiB,GAAG,IAAAC,wBAAA,EAAiB;EAC1CC,EAAE,EAAE,SADsC;EAE1CC,IAAI,EAAE,SAFoC;EAG1CC,WAAW,EAAE,0CAH6B;EAI1CC,MAAM,EAAE;IACPC,kBAAkB,EAAE;MACnBC,IAAI,EAAE,MADa;MAEnBC,KAAK,EAAE;IAFY;EADb;AAJkC,CAAjB,CAA1B;eAYeR,iB"}