@sprucelabs/spruce-cli 15.2.24 → 15.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/errors.types.js.map +1 -1
  3. package/build/.spruce/errors/options.types.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  43. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  44. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  45. package/build/.spruce/events/events.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  49. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  50. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  51. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
  52. package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  63. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  64. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  65. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  66. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  67. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  68. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
  69. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
  70. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  71. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  89. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  90. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  91. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  92. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  93. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  94. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  95. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  96. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  97. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  98. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  99. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  100. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  101. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  102. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  103. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  104. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  105. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  106. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  107. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  108. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  109. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  110. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  111. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
  112. package/build/.spruce/skill.types.js.map +1 -1
  113. package/build/GlobalEmitter.js.map +1 -1
  114. package/build/InFlightEntertainment.js.map +1 -1
  115. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  116. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  117. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  118. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  119. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  120. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  121. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  122. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  123. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  124. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  125. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  126. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  127. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  128. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  129. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  130. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  131. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  132. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  133. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  135. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  136. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  137. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  138. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  139. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  140. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  141. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  142. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  143. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  144. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  145. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  146. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  147. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  148. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  149. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  150. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  151. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  152. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  153. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  155. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  156. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  157. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  158. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  159. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  160. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  161. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  162. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  163. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  164. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  165. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  166. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  167. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  168. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  169. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  170. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  171. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  172. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  173. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  174. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  175. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  176. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  177. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  178. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  179. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  180. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  181. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -0
  182. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +20 -14
  183. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  184. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  185. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  186. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  187. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  188. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  189. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  190. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  191. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  192. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  193. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  194. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  195. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  196. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  197. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  198. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  199. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  200. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  201. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  202. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  203. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  204. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  205. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  206. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  207. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  208. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  209. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  210. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  211. package/build/__tests__/implementation/DataStoreStore.test.d.ts +1 -0
  212. package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
  213. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  214. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  215. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  216. package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
  217. package/build/__tests__/implementation/EventStore.test.js +61 -33
  218. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  219. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  220. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  221. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  222. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  223. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  224. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  225. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  226. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  227. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  228. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  229. package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
  230. package/build/__tests__/implementation/ListenerStore.test.js +56 -0
  231. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
  232. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  233. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  234. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  235. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  236. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  237. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  238. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  239. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  240. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  241. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  242. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  243. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  244. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  245. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  246. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  247. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  248. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  249. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  250. package/build/__tests__/support/onTestFileResult.js.map +1 -1
  251. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  252. package/build/__tests__/support/scripts/second.script.js.map +1 -1
  253. package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
  254. package/build/addons/filePrompt.addon.js.map +1 -1
  255. package/build/cli.js.map +1 -1
  256. package/build/components/AbstractComponent.js.map +1 -1
  257. package/build/components/FormComponent.js.map +1 -1
  258. package/build/components/QuizComponent.js.map +1 -1
  259. package/build/constants.js.map +1 -1
  260. package/build/errors/SpruceError.js.map +1 -1
  261. package/build/errors/actionCancelled.builder.js.map +1 -1
  262. package/build/errors/bootError.builder.js.map +1 -1
  263. package/build/errors/buildFailed.builder.js.map +1 -1
  264. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  265. package/build/errors/commandAborted.builder.js.map +1 -1
  266. package/build/errors/commandBlocked.builder.js.map +1 -1
  267. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  268. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  269. package/build/errors/dependencyExists.builder.js.map +1 -1
  270. package/build/errors/deployFailed.builder.js.map +1 -1
  271. package/build/errors/directoryEmpty.builder.js.map +1 -1
  272. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  273. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  274. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  275. package/build/errors/failedToImport.builder.js.map +1 -1
  276. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  277. package/build/errors/fileExists.builder.js.map +1 -1
  278. package/build/errors/generic.builder.js.map +1 -1
  279. package/build/errors/invalidCommand.builder.js.map +1 -1
  280. package/build/errors/invalidEventContract.builder.js.map +1 -1
  281. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  282. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  283. package/build/errors/lintFailed.builder.js.map +1 -1
  284. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  285. package/build/errors/missingDependencies.builder.js.map +1 -1
  286. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  287. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  288. package/build/errors/notImplemented.builder.js.map +1 -1
  289. package/build/errors/notLoggedIn.builder.js.map +1 -1
  290. package/build/errors/schemaExists.builder.js.map +1 -1
  291. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  292. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  293. package/build/errors/skillNotFound.builder.js.map +1 -1
  294. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  295. package/build/errors/skillViewExists.builder.js.map +1 -1
  296. package/build/errors/storeExists.builder.js.map +1 -1
  297. package/build/errors/testFailed.builder.js.map +1 -1
  298. package/build/errors/themeExists.builder.js.map +1 -1
  299. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  300. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  301. package/build/features/AbstractAction.js.map +1 -1
  302. package/build/features/AbstractFeature.js.map +1 -1
  303. package/build/features/ActionExecuter.js.map +1 -1
  304. package/build/features/ActionFactory.js.map +1 -1
  305. package/build/features/ActionQuestionAsker.js.map +1 -1
  306. package/build/features/FeatureCommandAttacher.js.map +1 -1
  307. package/build/features/FeatureInstaller.js.map +1 -1
  308. package/build/features/FeatureInstallerFactory.js.map +1 -1
  309. package/build/features/OverrideActionDecorator.js.map +1 -1
  310. package/build/features/cache/CacheFeature.js.map +1 -1
  311. package/build/features/cache/actions/DisableAction.js.map +1 -1
  312. package/build/features/cache/actions/EnableAction.js.map +1 -1
  313. package/build/features/cache/constants.js.map +1 -1
  314. package/build/features/conversation/ConversationFeature.js.map +1 -1
  315. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  316. package/build/features/conversation/actions/TestAction.js.map +1 -1
  317. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  318. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  319. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  320. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  321. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  322. package/build/features/deploy/DeployFeature.js.map +1 -1
  323. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  324. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  325. package/build/features/error/ErrorFeature.js.map +1 -1
  326. package/build/features/error/ParentTestFinder.js.map +1 -1
  327. package/build/features/error/actions/CreateAction.js.map +1 -1
  328. package/build/features/error/actions/SyncAction.js.map +1 -1
  329. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  330. package/build/features/event/EventFeature.js.map +1 -1
  331. package/build/features/event/actions/CreateAction.js.map +1 -1
  332. package/build/features/event/actions/ListenAction.js.map +1 -1
  333. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  334. package/build/features/event/actions/SyncAction.js.map +1 -1
  335. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  336. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  337. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  338. package/build/features/event/services/EventSettingsService.js.map +1 -1
  339. package/build/features/event/services/RemoteService.js.map +1 -1
  340. package/build/features/event/stores/EventStore.d.ts +1 -0
  341. package/build/features/event/stores/EventStore.js +6 -1
  342. package/build/features/event/stores/EventStore.js.map +1 -1
  343. package/build/features/event/stores/ListenerStore.d.ts +1 -0
  344. package/build/features/event/stores/ListenerStore.js +6 -1
  345. package/build/features/event/stores/ListenerStore.js.map +1 -1
  346. package/build/features/event/writers/EventWriter.js +1 -1
  347. package/build/features/event/writers/EventWriter.js.map +1 -1
  348. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  349. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  350. package/build/features/feature.utilities.js.map +1 -1
  351. package/build/features/features.types.js.map +1 -1
  352. package/build/features/log/LogFeature.js.map +1 -1
  353. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  354. package/build/features/log/writers/LogWriter.js.map +1 -1
  355. package/build/features/node/NodeFeature.js.map +1 -1
  356. package/build/features/node/actions/CreateAction.js.map +1 -1
  357. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  358. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  359. package/build/features/node/writers/NodeWriter.js.map +1 -1
  360. package/build/features/onboard/OnboardFeature.js.map +1 -1
  361. package/build/features/onboard/ScriptLoader.js.map +1 -1
  362. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  363. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  364. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  365. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  366. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  367. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  368. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  369. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  370. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  371. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  372. package/build/features/organization/OrganizationFeature.js.map +1 -1
  373. package/build/features/organization/actions/CreateAction.js.map +1 -1
  374. package/build/features/organization/actions/InstallAction.js.map +1 -1
  375. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  376. package/build/features/person/PersonFeature.js.map +1 -1
  377. package/build/features/person/actions/LoginAction.js.map +1 -1
  378. package/build/features/person/actions/LogoutAction.js.map +1 -1
  379. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  380. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  381. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  382. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  383. package/build/features/schema/SchemaFeature.js.map +1 -1
  384. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  385. package/build/features/schema/actions/CreateAction.js.map +1 -1
  386. package/build/features/schema/actions/SyncAction.js.map +1 -1
  387. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  388. package/build/features/schema/services/SchemaService.js.map +1 -1
  389. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  390. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  391. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  392. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  393. package/build/features/schema/writers/SchemaWriter.js +1 -1
  394. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  395. package/build/features/skill/SkillFeature.js.map +1 -1
  396. package/build/features/skill/actions/BootAction.js.map +1 -1
  397. package/build/features/skill/actions/CreateAction.js.map +1 -1
  398. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  399. package/build/features/skill/actions/LoginAction.js.map +1 -1
  400. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  401. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  402. package/build/features/skill/stores/SkillStore.js.map +1 -1
  403. package/build/features/skill/updaters/Updater.js.map +1 -1
  404. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  405. package/build/features/store/StoreFeature.js +1 -1
  406. package/build/features/store/StoreFeature.js.map +1 -1
  407. package/build/features/store/actions/CreateAction.js.map +1 -1
  408. package/build/features/store/actions/SyncAction.js.map +1 -1
  409. package/build/features/store/stores/StoreStore.d.ts +1 -0
  410. package/build/features/store/stores/StoreStore.js +6 -1
  411. package/build/features/store/stores/StoreStore.js.map +1 -1
  412. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  413. package/build/features/store/writers/StoreWriter.js.map +1 -1
  414. package/build/features/test/TestFeature.js.map +1 -1
  415. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  416. package/build/features/test/TestReporter.js.map +1 -1
  417. package/build/features/test/TestRunner.js.map +1 -1
  418. package/build/features/test/actions/CreateAction.js +1 -1
  419. package/build/features/test/actions/CreateAction.js.map +1 -1
  420. package/build/features/test/actions/SetupAction.js.map +1 -1
  421. package/build/features/test/actions/TestAction.js.map +1 -1
  422. package/build/features/test/test.types.js.map +1 -1
  423. package/build/features/test/writers/TestWriter.js.map +1 -1
  424. package/build/features/universalDevDependencies.js.map +1 -1
  425. package/build/features/universalFileDescriptions.js.map +1 -1
  426. package/build/features/universalScripts.js.map +1 -1
  427. package/build/features/validateAndNormalize.utility.d.ts +2 -2
  428. package/build/features/validateAndNormalize.utility.js +2 -2
  429. package/build/features/validateAndNormalize.utility.js.map +1 -1
  430. package/build/features/view/ViewFeature.js.map +1 -1
  431. package/build/features/view/actions/CreateAction.js.map +1 -1
  432. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  433. package/build/features/view/actions/SyncAction.js.map +1 -1
  434. package/build/features/view/actions/WatchAction.js.map +1 -1
  435. package/build/features/view/stores/ViewStore.js.map +1 -1
  436. package/build/features/view/writers/ViewWriter.js +1 -3
  437. package/build/features/view/writers/ViewWriter.js.map +1 -1
  438. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  439. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  440. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  441. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  442. package/build/features/watch/WatchFeature.js.map +1 -1
  443. package/build/index.js.map +1 -1
  444. package/build/interfaces/SpyInterface.js.map +1 -1
  445. package/build/interfaces/TerminalInterface.js.map +1 -1
  446. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  447. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  448. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  449. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  450. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  451. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  452. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  453. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  454. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  455. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  456. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  457. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  458. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  459. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  460. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  461. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  462. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  463. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  464. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  465. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  466. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  467. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  468. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  469. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  470. package/build/services/BuildService.js.map +1 -1
  471. package/build/services/CommandService.js.map +1 -1
  472. package/build/services/DependencyService.js.map +1 -1
  473. package/build/services/GameService.js.map +1 -1
  474. package/build/services/ImportService.js.map +1 -1
  475. package/build/services/LintService.js.map +1 -1
  476. package/build/services/PkgService.js.map +1 -1
  477. package/build/services/ServiceFactory.js.map +1 -1
  478. package/build/services/TypeCheckerService.js.map +1 -1
  479. package/build/stores/AbstractLocalStore.js.map +1 -1
  480. package/build/stores/AbstractStore.js.map +1 -1
  481. package/build/stores/StoreFactory.js.map +1 -1
  482. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  483. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  484. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  485. package/build/tests/AbstractCliTest.js.map +1 -1
  486. package/build/tests/AbstractErrorTest.js.map +1 -1
  487. package/build/tests/AbstractEventTest.js.map +1 -1
  488. package/build/tests/AbstractSchemaTest.js.map +1 -1
  489. package/build/tests/AbstractSkillTest.js.map +1 -1
  490. package/build/tests/AbstractTestTest.js.map +1 -1
  491. package/build/tests/CommandFaker.d.ts +2 -1
  492. package/build/tests/CommandFaker.js +13 -7
  493. package/build/tests/CommandFaker.js.map +1 -1
  494. package/build/tests/JestJsonParser.js.map +1 -1
  495. package/build/tests/MockProgramFactory.js.map +1 -1
  496. package/build/tests/buildTestCache.js.map +1 -1
  497. package/build/tests/cleanTestCache.js.map +1 -1
  498. package/build/tests/cleanTestData.js.map +1 -1
  499. package/build/tests/constants.js.map +1 -1
  500. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  501. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  502. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  503. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  504. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  505. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  506. package/build/tests/utilities/test.utility.js.map +1 -1
  507. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  508. package/build/types/apiClient.types.js.map +1 -1
  509. package/build/types/cli.types.js.map +1 -1
  510. package/build/types/graphicsInterface.types.js.map +1 -1
  511. package/build/updaters/ScriptUpdater.js.map +1 -1
  512. package/build/utilities/action.utility.js.map +1 -1
  513. package/build/utilities/apiClient.utility.js.map +1 -1
  514. package/build/utilities/argParser.utility.js.map +1 -1
  515. package/build/utilities/commander.utility.js.map +1 -1
  516. package/build/utilities/duration.utility.js.map +1 -1
  517. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  518. package/build/utilities/form.utility.js.map +1 -1
  519. package/build/utilities/introspection.utility.js.map +1 -1
  520. package/build/utilities/isCi.js.map +1 -1
  521. package/build/utilities/tsConfig.utility.js.map +1 -1
  522. package/build/utilities/ui.utility.js.map +1 -1
  523. package/build/widgets/Theme.js.map +1 -1
  524. package/build/widgets/WidgetFactory.js.map +1 -1
  525. package/build/widgets/keySelectChoices.js.map +1 -1
  526. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  527. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  528. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  529. package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
  530. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  531. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  532. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  533. package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
  534. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  535. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  536. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  537. package/build/widgets/types/button.types.js.map +1 -1
  538. package/build/widgets/types/factory.types.js.map +1 -1
  539. package/build/widgets/types/input.types.js.map +1 -1
  540. package/build/widgets/types/layout.types.js.map +1 -1
  541. package/build/widgets/types/menuBar.types.js.map +1 -1
  542. package/build/widgets/types/popup.types.js.map +1 -1
  543. package/build/widgets/types/progressBar.types.js.map +1 -1
  544. package/build/widgets/types/table.types.js.map +1 -1
  545. package/build/widgets/types/text.types.js.map +1 -1
  546. package/build/widgets/types/widgets.types.js.map +1 -1
  547. package/build/widgets/types/window.types.js.map +1 -1
  548. package/build/widgets/widget.utilities.js.map +1 -1
  549. package/build/writers/AbstractWriter.js.map +1 -1
  550. package/build/writers/WriterFactory.js.map +1 -1
  551. package/package.json +36 -36
  552. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +21 -7
  553. package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
  554. package/src/__tests__/implementation/EventStore.test.ts +14 -0
  555. package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
  556. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  557. package/src/features/AbstractAction.ts +2 -2
  558. package/src/features/event/builders/EventContractBuilder.ts +2 -2
  559. package/src/features/event/stores/EventStore.ts +11 -8
  560. package/src/features/event/stores/ListenerStore.ts +5 -3
  561. package/src/features/event/writers/EventWriter.ts +1 -1
  562. package/src/features/schema/writers/SchemaWriter.ts +1 -1
  563. package/src/features/store/StoreFeature.ts +1 -1
  564. package/src/features/store/stores/StoreStore.ts +5 -1
  565. package/src/features/test/actions/CreateAction.ts +1 -1
  566. package/src/features/validateAndNormalize.utility.ts +2 -2
  567. package/src/features/view/writers/ViewWriter.ts +3 -2
  568. package/src/tests/CommandFaker.ts +9 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/vscode/VsCodeFeature.ts"],"names":["VsCodeFeature","diskUtil","resolvePath","__dirname","path","description","shouldOverwriteWhenChanged","confirmPromptOnFirstWrite","command","Service","execute","AbstractFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;IASqBA,a;;;;;;;;;;;;;;;qGACE,Q;oGACD,+C;6FACM,Q;mGACPC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,C;yGAEkC,CACrD;AACCC,MAAAA,IAAI,EAAE,qBADP;AAECC,MAAAA,WAAW,EAAE,kDAFd;AAGCC,MAAAA,0BAA0B,EAAE,IAH7B;AAICC,MAAAA,yBAAyB,EAAE;AAJ5B,KADqD,EAOrD;AACCH,MAAAA,IAAI,EAAE,uBADP;AAECC,MAAAA,WAAW,EAAE,yDAFd;AAGCC,MAAAA,0BAA0B,EAAE,IAH7B;AAICC,MAAAA,yBAAyB,EACxB;AALF,KAPqD,EAcrD;AACCH,MAAAA,IAAI,EAAE,oBADP;AAECC,MAAAA,WAAW,EACV,sEAHF;AAICC,MAAAA,0BAA0B,EAAE,IAJ7B;AAKCC,MAAAA,yBAAyB,EACxB;AANF,KAdqD,C;+LAwBjC;AAAA;AAAA;AAAA;AAAA;AAAA;AACdC,cAAAA,OADc,GACJ,MAAKC,OAAL,CAAa,SAAb,CADI;AAAA;AAAA;AAAA,qBAIbD,OAAO,CAACE,OAAR,CAAgB,YAAhB,CAJa;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,+CAMZ,KANY;;AAAA;AAAA,+CASb,IATa;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,K;;;;;EA9BqBC,4B","sourcesContent":["/* eslint-disable no-unreachable */\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tvscode: VsCodeFeature\n\t}\n}\n\nexport default class VsCodeFeature extends AbstractFeature {\n\tpublic nameReadable = 'VSCode'\n\tpublic description = 'Create settings and install VSCode extensions'\n\tpublic code: FeatureCode = 'vscode'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t{\n\t\t\tpath: '.vscode/launch.json',\n\t\t\tdescription: 'Sets you up for debugging in Visual Studio Code.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite: 'Want me to setup debugging for you?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/settings.json',\n\t\t\tdescription: 'Ties everything together for optimal team productivity.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/tasks.json',\n\t\t\tdescription:\n\t\t\t\t'command+shift+t to open the Test Reporter, build watch on load, etc.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to start watchers when you start vscode?',\n\t\t},\n\t]\n\n\tpublic isInstalled = async () => {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('which code')\n\t\t} catch (err) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n"],"file":"VsCodeFeature.js"}
1
+ {"version":3,"file":"VsCodeFeature.js","names":["VsCodeFeature","diskUtil","resolvePath","__dirname","path","description","shouldOverwriteWhenChanged","confirmPromptOnFirstWrite","command","Service","execute","AbstractFeature"],"sources":["../../../src/features/vscode/VsCodeFeature.ts"],"sourcesContent":["/* eslint-disable no-unreachable */\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tvscode: VsCodeFeature\n\t}\n}\n\nexport default class VsCodeFeature extends AbstractFeature {\n\tpublic nameReadable = 'VSCode'\n\tpublic description = 'Create settings and install VSCode extensions'\n\tpublic code: FeatureCode = 'vscode'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t{\n\t\t\tpath: '.vscode/launch.json',\n\t\t\tdescription: 'Sets you up for debugging in Visual Studio Code.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite: 'Want me to setup debugging for you?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/settings.json',\n\t\t\tdescription: 'Ties everything together for optimal team productivity.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t},\n\t\t{\n\t\t\tpath: '.vscode/tasks.json',\n\t\t\tdescription:\n\t\t\t\t'command+shift+t to open the Test Reporter, build watch on load, etc.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t\tconfirmPromptOnFirstWrite:\n\t\t\t\t'Want me to start watchers when you start vscode?',\n\t\t},\n\t]\n\n\tpublic isInstalled = async () => {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('which code')\n\t\t} catch (err) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;IASqBA,a;;;;;;;;;;;;;;;qGACE,Q;oGACD,+C;6FACM,Q;mGACPC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,C;yGAEkC,CACrD;MACCC,IAAI,EAAE,qBADP;MAECC,WAAW,EAAE,kDAFd;MAGCC,0BAA0B,EAAE,IAH7B;MAICC,yBAAyB,EAAE;IAJ5B,CADqD,EAOrD;MACCH,IAAI,EAAE,uBADP;MAECC,WAAW,EAAE,yDAFd;MAGCC,0BAA0B,EAAE,IAH7B;MAICC,yBAAyB,EACxB;IALF,CAPqD,EAcrD;MACCH,IAAI,EAAE,oBADP;MAECC,WAAW,EACV,sEAHF;MAICC,0BAA0B,EAAE,IAJ7B;MAKCC,yBAAyB,EACxB;IANF,CAdqD,C;+LAwBjC;MAAA;MAAA;QAAA;UAAA;YAAA;cACdC,OADc,GACJ,MAAKC,OAAL,CAAa,SAAb,CADI;cAAA;cAAA;cAAA,OAIbD,OAAO,CAACE,OAAR,CAAgB,YAAhB,CAJa;;YAAA;cAAA;cAAA;;YAAA;cAAA;cAAA;cAAA,iCAMZ,KANY;;YAAA;cAAA,iCASb,IATa;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,C;;;;;EA9BqBC,4B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/vscode/actions/SetupAction.ts"],"names":["SetupAction","id","label","setupVscodeSchema","name","isDev","options","validateAndNormalizeOptions","all","ui","startLoading","getMissingExtensions","missing","choices","map","ext","value","response","summaryLines","skipConfirmExtensions","length","stopLoading","optionallyInstallVscodeExtensions","Writer","writeVsCodeConfigurations","cwd","files","packagesInstalled","optionallyInstallEsListModules","hints","m","prompt","type","isArray","answers","answer","push","Service","installExtensions","pkg","dependencies","module","isInstalled","installEsLintModules","confirm","shouldInstallPackages","install","getVSCodeExtensions","currentExtensions","missingExtensions","recommendedExtensions","filter","recommendedExtension","currentExtension","find","e","AbstractAction"],"mappings":"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","sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport setupVscodeSchema from '#spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema'\nimport PkgService from '../../../services/PkgService'\nimport { NpmPackage } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { Extension } from '../services/VsCodeService'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SetupVscodeOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SetupVscodeOptions\n\nexport default class SetupAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Setting up Visual Studio Codez... 👾'\n\tprivate recommendedExtensions: Extension[] = [\n\t\t{\n\t\t\tid: 'dbaeumer.vscode-eslint',\n\t\t\tlabel: 'ESLint syntax validation and fixing',\n\t\t},\n\t\t{\n\t\t\tid: 'eg2.vscode-npm-script',\n\t\t\tlabel: 'NPM package.json validation and warnings',\n\t\t},\n\t\t{\n\t\t\tid: 'christian-kohler.npm-intellisense',\n\t\t\tlabel: 'Intellisense autocompletion of installed npm modules',\n\t\t},\n\t\t{\n\t\t\tid: 'mikestead.dotenv',\n\t\t\tlabel: '.env support',\n\t\t},\n\t]\n\n\tpublic optionsSchema = setupVscodeSchema\n\tprivate dependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: 'eslint',\n\t\t\tisDev: true,\n\t\t},\n\t\t{\n\t\t\tname: 'eslint-config-spruce',\n\t\t\tisDev: true,\n\t\t},\n\t]\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { all } = this.validateAndNormalizeOptions(options)\n\n\t\tthis.ui.startLoading('Checking state of vscode.')\n\n\t\tconst missing = await this.getMissingExtensions()\n\t\tconst choices = missing.map((ext) => ({ value: ext.id, label: ext.label }))\n\t\tconst response: FeatureActionResponse = {\n\t\t\tsummaryLines: [],\n\t\t}\n\n\t\tconst skipConfirmExtensions = all || missing.length === 0\n\n\t\tif (!skipConfirmExtensions) {\n\t\t\tthis.ui.stopLoading()\n\t\t}\n\n\t\tawait this.optionallyInstallVscodeExtensions(\n\t\t\tskipConfirmExtensions,\n\t\t\tmissing,\n\t\t\tchoices,\n\t\t\tresponse\n\t\t)\n\n\t\tthis.ui.startLoading('Writing vscode configurations...')\n\n\t\tconst files = await this.Writer('vscode').writeVsCodeConfigurations(\n\t\t\tthis.cwd,\n\t\t\t!all\n\t\t)\n\n\t\tresponse.files = files\n\t\tresponse.packagesInstalled = []\n\n\t\tawait this.optionallyInstallEsListModules(response, all)\n\n\t\tresponse.hints = [\n\t\t\t\"Ok, now that that's done 😅, lets make sure Visual Studio Code can run tasks whenever you open this project.\",\n\t\t\t'',\n\t\t\t'Step 1: Open the Command Palette (View -> Command Palette or cmd+shift+p) and type \"Manage\".',\n\t\t\t'Step 2: Select \"Tasks: Manage Automatic Tasks in Folder\".',\n\t\t\t'Step 3: Allow.',\n\t\t\t'Step 4: Open the Command Palette (cmd+shift+p)).',\n\t\t\t'Step 5: Select \"Developer: Reload Window\".',\n\t\t\t'💪',\n\t\t]\n\n\t\treturn response\n\t}\n\n\tprivate async optionallyInstallVscodeExtensions(\n\t\tskipConfirmExtensions: boolean,\n\t\tmissing: Extension[],\n\t\tchoices: { value: string; label: string }[],\n\t\tresponse: FeatureActionResponse\n\t) {\n\t\tconst answers = skipConfirmExtensions\n\t\t\t? missing.map((m) => m.id)\n\t\t\t: await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: 'Which extensions should I install?',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices,\n\t\t\t\t\t},\n\t\t\t })\n\n\t\tif (answers && answers?.length > 0) {\n\t\t\tthis.ui.startLoading(`Installing ${answers.length} extensions...`)\n\n\t\t\tfor (const answer of answers) {\n\t\t\t\tresponse.summaryLines?.push(`Installed ${answer} extension.`)\n\t\t\t}\n\n\t\t\tawait this.Service('vsCode').installExtensions(answers)\n\n\t\t\tthis.ui.stopLoading()\n\t\t}\n\t}\n\n\tprivate async optionallyInstallEsListModules(\n\t\tresponse: FeatureActionResponse,\n\t\tall: boolean | undefined\n\t) {\n\t\tconst pkg = this.Service('pkg')\n\n\t\tfor (const module of this.dependencies) {\n\t\t\tif (!pkg.isInstalled(module.name)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-extra-semi\n\t\t\t\t;(response.packagesInstalled ?? []).push(module)\n\t\t\t}\n\t\t}\n\n\t\tif ((response.packagesInstalled ?? []).length > 0) {\n\t\t\tawait this.installEsLintModules(all, response, pkg)\n\t\t}\n\t}\n\n\tprivate async installEsLintModules(\n\t\tall: boolean | undefined,\n\t\tresponse: FeatureActionResponse,\n\t\tpkg: PkgService\n\t) {\n\t\tthis.ui.stopLoading()\n\t\tconst shouldInstallPackages =\n\t\t\tall ||\n\t\t\t(await this.ui.confirm(\n\t\t\t\t'Last thing! Ready for me to install eslint modules?'\n\t\t\t))\n\n\t\tthis.ui.startLoading('Installing dev dependencies')\n\t\tif (shouldInstallPackages) {\n\t\t\tfor (const module of response.packagesInstalled ?? []) {\n\t\t\t\tawait pkg.install(module.name, {\n\t\t\t\t\tisDev: module.isDev,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getMissingExtensions() {\n\t\tconst currentExtensions = await this.Service('vsCode').getVSCodeExtensions()\n\n\t\tconst missingExtensions = this.recommendedExtensions.filter(\n\t\t\t(recommendedExtension) => {\n\t\t\t\tconst currentExtension = currentExtensions.find(\n\t\t\t\t\t(e) => e === recommendedExtension.id\n\t\t\t\t)\n\t\t\t\tif (currentExtension) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t}\n\t\t)\n\t\treturn missingExtensions\n\t}\n}\n"],"file":"SetupAction.js"}
1
+ {"version":3,"file":"SetupAction.js","names":["SetupAction","id","label","setupVscodeSchema","name","isDev","options","validateAndNormalizeOptions","all","ui","startLoading","getMissingExtensions","missing","choices","map","ext","value","response","summaryLines","skipConfirmExtensions","length","stopLoading","optionallyInstallVscodeExtensions","Writer","writeVsCodeConfigurations","cwd","files","packagesInstalled","optionallyInstallEsListModules","hints","m","prompt","type","isArray","answers","answer","push","Service","installExtensions","pkg","dependencies","module","isInstalled","installEsLintModules","confirm","shouldInstallPackages","install","getVSCodeExtensions","currentExtensions","missingExtensions","recommendedExtensions","filter","recommendedExtension","currentExtension","find","e","AbstractAction"],"sources":["../../../../src/features/vscode/actions/SetupAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport setupVscodeSchema from '#spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema'\nimport PkgService from '../../../services/PkgService'\nimport { NpmPackage } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { Extension } from '../services/VsCodeService'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SetupVscodeOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SetupVscodeOptions\n\nexport default class SetupAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Setting up Visual Studio Codez... 👾'\n\tprivate recommendedExtensions: Extension[] = [\n\t\t{\n\t\t\tid: 'dbaeumer.vscode-eslint',\n\t\t\tlabel: 'ESLint syntax validation and fixing',\n\t\t},\n\t\t{\n\t\t\tid: 'eg2.vscode-npm-script',\n\t\t\tlabel: 'NPM package.json validation and warnings',\n\t\t},\n\t\t{\n\t\t\tid: 'christian-kohler.npm-intellisense',\n\t\t\tlabel: 'Intellisense autocompletion of installed npm modules',\n\t\t},\n\t\t{\n\t\t\tid: 'mikestead.dotenv',\n\t\t\tlabel: '.env support',\n\t\t},\n\t]\n\n\tpublic optionsSchema = setupVscodeSchema\n\tprivate dependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: 'eslint',\n\t\t\tisDev: true,\n\t\t},\n\t\t{\n\t\t\tname: 'eslint-config-spruce',\n\t\t\tisDev: true,\n\t\t},\n\t]\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { all } = this.validateAndNormalizeOptions(options)\n\n\t\tthis.ui.startLoading('Checking state of vscode.')\n\n\t\tconst missing = await this.getMissingExtensions()\n\t\tconst choices = missing.map((ext) => ({ value: ext.id, label: ext.label }))\n\t\tconst response: FeatureActionResponse = {\n\t\t\tsummaryLines: [],\n\t\t}\n\n\t\tconst skipConfirmExtensions = all || missing.length === 0\n\n\t\tif (!skipConfirmExtensions) {\n\t\t\tthis.ui.stopLoading()\n\t\t}\n\n\t\tawait this.optionallyInstallVscodeExtensions(\n\t\t\tskipConfirmExtensions,\n\t\t\tmissing,\n\t\t\tchoices,\n\t\t\tresponse\n\t\t)\n\n\t\tthis.ui.startLoading('Writing vscode configurations...')\n\n\t\tconst files = await this.Writer('vscode').writeVsCodeConfigurations(\n\t\t\tthis.cwd,\n\t\t\t!all\n\t\t)\n\n\t\tresponse.files = files\n\t\tresponse.packagesInstalled = []\n\n\t\tawait this.optionallyInstallEsListModules(response, all)\n\n\t\tresponse.hints = [\n\t\t\t\"Ok, now that that's done 😅, lets make sure Visual Studio Code can run tasks whenever you open this project.\",\n\t\t\t'',\n\t\t\t'Step 1: Open the Command Palette (View -> Command Palette or cmd+shift+p) and type \"Manage\".',\n\t\t\t'Step 2: Select \"Tasks: Manage Automatic Tasks in Folder\".',\n\t\t\t'Step 3: Allow.',\n\t\t\t'Step 4: Open the Command Palette (cmd+shift+p)).',\n\t\t\t'Step 5: Select \"Developer: Reload Window\".',\n\t\t\t'💪',\n\t\t]\n\n\t\treturn response\n\t}\n\n\tprivate async optionallyInstallVscodeExtensions(\n\t\tskipConfirmExtensions: boolean,\n\t\tmissing: Extension[],\n\t\tchoices: { value: string; label: string }[],\n\t\tresponse: FeatureActionResponse\n\t) {\n\t\tconst answers = skipConfirmExtensions\n\t\t\t? missing.map((m) => m.id)\n\t\t\t: await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: 'Which extensions should I install?',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices,\n\t\t\t\t\t},\n\t\t\t })\n\n\t\tif (answers && answers?.length > 0) {\n\t\t\tthis.ui.startLoading(`Installing ${answers.length} extensions...`)\n\n\t\t\tfor (const answer of answers) {\n\t\t\t\tresponse.summaryLines?.push(`Installed ${answer} extension.`)\n\t\t\t}\n\n\t\t\tawait this.Service('vsCode').installExtensions(answers)\n\n\t\t\tthis.ui.stopLoading()\n\t\t}\n\t}\n\n\tprivate async optionallyInstallEsListModules(\n\t\tresponse: FeatureActionResponse,\n\t\tall: boolean | undefined\n\t) {\n\t\tconst pkg = this.Service('pkg')\n\n\t\tfor (const module of this.dependencies) {\n\t\t\tif (!pkg.isInstalled(module.name)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-extra-semi\n\t\t\t\t;(response.packagesInstalled ?? []).push(module)\n\t\t\t}\n\t\t}\n\n\t\tif ((response.packagesInstalled ?? []).length > 0) {\n\t\t\tawait this.installEsLintModules(all, response, pkg)\n\t\t}\n\t}\n\n\tprivate async installEsLintModules(\n\t\tall: boolean | undefined,\n\t\tresponse: FeatureActionResponse,\n\t\tpkg: PkgService\n\t) {\n\t\tthis.ui.stopLoading()\n\t\tconst shouldInstallPackages =\n\t\t\tall ||\n\t\t\t(await this.ui.confirm(\n\t\t\t\t'Last thing! Ready for me to install eslint modules?'\n\t\t\t))\n\n\t\tthis.ui.startLoading('Installing dev dependencies')\n\t\tif (shouldInstallPackages) {\n\t\t\tfor (const module of response.packagesInstalled ?? []) {\n\t\t\t\tawait pkg.install(module.name, {\n\t\t\t\t\tisDev: module.isDev,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getMissingExtensions() {\n\t\tconst currentExtensions = await this.Service('vsCode').getVSCodeExtensions()\n\n\t\tconst missingExtensions = this.recommendedExtensions.filter(\n\t\t\t(recommendedExtension) => {\n\t\t\t\tconst currentExtension = currentExtensions.find(\n\t\t\t\t\t(e) => e === recommendedExtension.id\n\t\t\t\t)\n\t\t\t\tif (currentExtension) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t}\n\t\t)\n\t\treturn missingExtensions\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAGA;;;;;;;;;;;;IAQqBA,W;;;;;;;;;;;;;;;0GACO,sC;8GACkB,CAC5C;MACCC,EAAE,EAAE,wBADL;MAECC,KAAK,EAAE;IAFR,CAD4C,EAK5C;MACCD,EAAE,EAAE,uBADL;MAECC,KAAK,EAAE;IAFR,CAL4C,EAS5C;MACCD,EAAE,EAAE,mCADL;MAECC,KAAK,EAAE;IAFR,CAT4C,EAa5C;MACCD,EAAE,EAAE,kBADL;MAECC,KAAK,EAAE;IAFR,CAb4C,C;sGAmBtBC,8B;qGACc,CACpC;MACCC,IAAI,EAAE,QADP;MAECC,KAAK,EAAE;IAFR,CADoC,EAKpC;MACCD,IAAI,EAAE,sBADP;MAECC,KAAK,EAAE;IAFR,CALoC,C;;;;;;;mGAWrC,iBAAqBC,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACiB,KAAKC,2BAAL,CAAiCD,OAAjC,CADjB,EACSE,GADT,yBACSA,GADT;gBAGC,KAAKC,EAAL,CAAQC,YAAR,CAAqB,2BAArB;gBAHD;gBAAA,OAKuB,KAAKC,oBAAL,EALvB;;cAAA;gBAKOC,OALP;gBAMOC,OANP,GAMiBD,OAAO,CAACE,GAAR,CAAY,UAACC,GAAD;kBAAA,OAAU;oBAAEC,KAAK,EAAED,GAAG,CAACd,EAAb;oBAAiBC,KAAK,EAAEa,GAAG,CAACb;kBAA5B,CAAV;gBAAA,CAAZ,CANjB;gBAOOe,QAPP,GAOyC;kBACvCC,YAAY,EAAE;gBADyB,CAPzC;gBAWOC,qBAXP,GAW+BX,GAAG,IAAII,OAAO,CAACQ,MAAR,KAAmB,CAXzD;;gBAaC,IAAI,CAACD,qBAAL,EAA4B;kBAC3B,KAAKV,EAAL,CAAQY,WAAR;gBACA;;gBAfF;gBAAA,OAiBO,KAAKC,iCAAL,CACLH,qBADK,EAELP,OAFK,EAGLC,OAHK,EAILI,QAJK,CAjBP;;cAAA;gBAwBC,KAAKR,EAAL,CAAQC,YAAR,CAAqB,kCAArB;gBAxBD;gBAAA,OA0BqB,KAAKa,MAAL,CAAY,QAAZ,EAAsBC,yBAAtB,CACnB,KAAKC,GADc,EAEnB,CAACjB,GAFkB,CA1BrB;;cAAA;gBA0BOkB,KA1BP;gBA+BCT,QAAQ,CAACS,KAAT,GAAiBA,KAAjB;gBACAT,QAAQ,CAACU,iBAAT,GAA6B,EAA7B;gBAhCD;gBAAA,OAkCO,KAAKC,8BAAL,CAAoCX,QAApC,EAA8CT,GAA9C,CAlCP;;cAAA;gBAoCCS,QAAQ,CAACY,KAAT,GAAiB,CAChB,8GADgB,EAEhB,EAFgB,EAGhB,8FAHgB,EAIhB,2DAJgB,EAKhB,gBALgB,EAMhB,kDANgB,EAOhB,4CAPgB,EAQhB,IARgB,CAAjB;gBApCD,iCA+CQZ,QA/CR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6HAkDA,kBACCE,qBADD,EAECP,OAFD,EAGCC,OAHD,EAICI,QAJD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,KAMiBE,qBANjB;kBAAA;kBAAA;gBAAA;;gBAAA,eAOIP,OAAO,CAACE,GAAR,CAAY,UAACgB,CAAD;kBAAA,OAAOA,CAAC,CAAC7B,EAAT;gBAAA,CAAZ,CAPJ;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAQU,KAAKQ,EAAL,CAAQsB,MAAR,CAAe;kBACrBC,IAAI,EAAE,QADe;kBAErB9B,KAAK,EAAE,oCAFc;kBAGrB+B,OAAO,EAAE,IAHY;kBAIrB3B,OAAO,EAAE;oBACRO,OAAO,EAAPA;kBADQ;gBAJY,CAAf,CARV;;cAAA;gBAAA;;cAAA;gBAMOqB,OANP;;gBAAA,MAiBKA,OAAO,IAAI,CAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEd,MAAT,IAAkB,CAjBlC;kBAAA;kBAAA;gBAAA;;gBAkBE,KAAKX,EAAL,CAAQC,YAAR,sBAAmCwB,OAAO,CAACd,MAA3C;gBAlBF,uCAoBuBc,OApBvB;;gBAAA;kBAoBE,oDAA8B;oBAAnBC,MAAmB;oBAC7B,yBAAAlB,QAAQ,CAACC,YAAT,gFAAuBkB,IAAvB,qBAAyCD,MAAzC;kBACA;gBAtBH;kBAAA;gBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAwBQ,KAAKE,OAAL,CAAa,QAAb,EAAuBC,iBAAvB,CAAyCJ,OAAzC,CAxBR;;cAAA;gBA0BE,KAAKzB,EAAL,CAAQY,WAAR;;cA1BF;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0HA8BA,kBACCJ,QADD,EAECT,GAFD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAIO+B,GAJP,GAIa,KAAKF,OAAL,CAAa,KAAb,CAJb;gBAAA,wCAMsB,KAAKG,YAN3B;;gBAAA;kBAMC,uDAAwC;oBAA7BC,MAA6B;;oBACvC,IAAI,CAACF,GAAG,CAACG,WAAJ,CAAgBD,MAAM,CAACrC,IAAvB,CAAL,EAAmC;sBAClC;sBACA;sBAAC,2BAACa,QAAQ,CAACU,iBAAV,2EAA+B,EAA/B,EAAmCS,IAAnC,CAAwCK,MAAxC;oBACD;kBACD;gBAXF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAAA,MAaK,0BAACxB,QAAQ,CAACU,iBAAV,yEAA+B,EAA/B,EAAmCP,MAAnC,GAA4C,CAbjD;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAcQ,KAAKuB,oBAAL,CAA0BnC,GAA1B,EAA+BS,QAA/B,EAAyCsB,GAAzC,CAdR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAkBA,kBACC/B,GADD,EAECS,QAFD,EAGCsB,GAHD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAKC,KAAK9B,EAAL,CAAQY,WAAR;gBALD,eAOEb,GAPF;;gBAAA;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAQS,KAAKC,EAAL,CAAQmC,OAAR,CACN,qDADM,CART;;cAAA;gBAAA;;cAAA;gBAMOC,qBANP;gBAYC,KAAKpC,EAAL,CAAQC,YAAR,CAAqB,6BAArB;;gBAZD,KAaKmC,qBAbL;kBAAA;kBAAA;gBAAA;;gBAAA,kEAcuB5B,QAAQ,CAACU,iBAdhC,2EAcqD,EAdrD;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAcac,MAdb;gBAAA;gBAAA,OAeSF,GAAG,CAACO,OAAJ,CAAYL,MAAM,CAACrC,IAAnB,EAAyB;kBAC9BC,KAAK,EAAEoC,MAAM,CAACpC;gBADgB,CAAzB,CAfT;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAsBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACiC,KAAKgC,OAAL,CAAa,QAAb,EAAuBU,mBAAvB,EADjC;;cAAA;gBACOC,iBADP;gBAGOC,iBAHP,GAG2B,KAAKC,qBAAL,CAA2BC,MAA3B,CACzB,UAACC,oBAAD,EAA0B;kBACzB,IAAMC,gBAAgB,GAAGL,iBAAiB,CAACM,IAAlB,CACxB,UAACC,CAAD;oBAAA,OAAOA,CAAC,KAAKH,oBAAoB,CAACnD,EAAlC;kBAAA,CADwB,CAAzB;;kBAGA,IAAIoD,gBAAJ,EAAsB;oBACrB,OAAO,KAAP;kBACA;;kBACD,OAAO,IAAP;gBACA,CATwB,CAH3B;gBAAA,kCAcQJ,iBAdR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAzJwCO,2B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/vscode/services/VsCodeService.ts"],"names":["VSCODE_MINIMUM_VERSION","VsCodeService","isInstalled","execute","args","stdout","lines","split","semver","satisfies","extensions","extensionIds","forEach","eId","concat","CommandService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,sBAAsB,GAAG,QAA/B;;IASqBC,a;;;;;;;;;;;;;AACpB;;uGACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,WADP,GACqB,KADrB;AAAA;AAAA;AAAA,uBAG2B,KAAKC,OAAL,CAAa,MAAb,EAAqB;AAC7CC,kBAAAA,IAAI,EAAE,CAAC,WAAD;AADuC,iBAArB,CAH3B;;AAAA;AAAA;AAGUC,gBAAAA,MAHV,uBAGUA,MAHV;AAOQC,gBAAAA,KAPR,GAOgBD,MAAM,CAACE,KAAP,CAAa,IAAb,CAPhB;;AAAA,sBASGD,KAAK,IACLA,KAAK,CAAC,CAAD,CADL,IAEAE,mBAAOC,SAAP,CAAiBH,KAAK,CAAC,CAAD,CAAtB,cAAgCN,sBAAhC,EAXH;AAAA;AAAA;AAAA;;AAAA,iDAaU,IAbV;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,iDAkBQE,WAlBR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAqBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AACKQ,gBAAAA,UADL,GAC4B,EAD5B;AAAA;AAAA;AAAA,uBAI2B,KAAKP,OAAL,CAAa,MAAb,EAAqB;AAC7CC,kBAAAA,IAAI,EAAE,CAAC,mBAAD;AADuC,iBAArB,CAJ3B;;AAAA;AAAA;AAIUC,gBAAAA,MAJV,wBAIUA,MAJV;AAQEK,gBAAAA,UAAU,GAAGL,MAAM,CAACE,KAAP,CAAa,IAAb,CAAb,CARF,CASE;;AATF;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,kDAYQG,UAZR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6GAeA,kBAA+BC,YAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AACKP,gBAAAA,IADL,GACsB,EADtB;AAECO,gBAAAA,YAAY,CAACC,OAAb,CAAqB,UAACC,GAAD,EAAS;AAC7BT,kBAAAA,IAAI,GAAGA,IAAI,CAACU,MAAL,CAAY,qBAAZ,EAAmCD,GAAnC,CAAP;AACA,iBAFD;AAFD;AAAA,uBAMO,KAAKV,OAAL,CAAa,MAAb,EAAqB;AAC1BC,kBAAAA,IAAI,EAAJA;AAD0B,iBAArB,CANP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAtC0CW,2B","sourcesContent":["import semver from 'semver'\nimport CommandService from '../../../services/CommandService'\n\nconst VSCODE_MINIMUM_VERSION = '1.44.0'\n\nexport interface Extension {\n\t/** The vscode extension id like dbaeumer.vscode-eslint */\n\tid: string\n\t/** A friendly name / description that will describe what the extension is or does */\n\tlabel: string\n}\n\nexport default class VsCodeService extends CommandService {\n\t/** Returns whether or not vscode is installed */\n\tpublic async isInstalled(): Promise<boolean> {\n\t\tconst isInstalled = false\n\t\ttry {\n\t\t\tconst { stdout } = await this.execute('code', {\n\t\t\t\targs: ['--version'],\n\t\t\t})\n\n\t\t\tconst lines = stdout.split('\\n')\n\t\t\tif (\n\t\t\t\tlines &&\n\t\t\t\tlines[0] &&\n\t\t\t\tsemver.satisfies(lines[0], `>=${VSCODE_MINIMUM_VERSION}`)\n\t\t\t) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch (e) {}\n\n\t\treturn isInstalled\n\t}\n\n\tpublic async getVSCodeExtensions(): Promise<string[]> {\n\t\tlet extensions: string[] = []\n\n\t\ttry {\n\t\t\tconst { stdout } = await this.execute('code', {\n\t\t\t\targs: ['--list-extensions'],\n\t\t\t})\n\n\t\t\textensions = stdout.split('\\n')\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch (e) {}\n\n\t\treturn extensions\n\t}\n\n\tpublic async installExtensions(extensionIds: string[]) {\n\t\tlet args: string[] = []\n\t\textensionIds.forEach((eId) => {\n\t\t\targs = args.concat('--install-extension', eId)\n\t\t})\n\n\t\tawait this.execute('code', {\n\t\t\targs,\n\t\t})\n\t}\n}\n"],"file":"VsCodeService.js"}
1
+ {"version":3,"file":"VsCodeService.js","names":["VSCODE_MINIMUM_VERSION","VsCodeService","isInstalled","execute","args","stdout","lines","split","semver","satisfies","extensions","extensionIds","forEach","eId","concat","CommandService"],"sources":["../../../../src/features/vscode/services/VsCodeService.ts"],"sourcesContent":["import semver from 'semver'\nimport CommandService from '../../../services/CommandService'\n\nconst VSCODE_MINIMUM_VERSION = '1.44.0'\n\nexport interface Extension {\n\t/** The vscode extension id like dbaeumer.vscode-eslint */\n\tid: string\n\t/** A friendly name / description that will describe what the extension is or does */\n\tlabel: string\n}\n\nexport default class VsCodeService extends CommandService {\n\t/** Returns whether or not vscode is installed */\n\tpublic async isInstalled(): Promise<boolean> {\n\t\tconst isInstalled = false\n\t\ttry {\n\t\t\tconst { stdout } = await this.execute('code', {\n\t\t\t\targs: ['--version'],\n\t\t\t})\n\n\t\t\tconst lines = stdout.split('\\n')\n\t\t\tif (\n\t\t\t\tlines &&\n\t\t\t\tlines[0] &&\n\t\t\t\tsemver.satisfies(lines[0], `>=${VSCODE_MINIMUM_VERSION}`)\n\t\t\t) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch (e) {}\n\n\t\treturn isInstalled\n\t}\n\n\tpublic async getVSCodeExtensions(): Promise<string[]> {\n\t\tlet extensions: string[] = []\n\n\t\ttry {\n\t\t\tconst { stdout } = await this.execute('code', {\n\t\t\t\targs: ['--list-extensions'],\n\t\t\t})\n\n\t\t\textensions = stdout.split('\\n')\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch (e) {}\n\n\t\treturn extensions\n\t}\n\n\tpublic async installExtensions(extensionIds: string[]) {\n\t\tlet args: string[] = []\n\t\textensionIds.forEach((eId) => {\n\t\t\targs = args.concat('--install-extension', eId)\n\t\t})\n\n\t\tawait this.execute('code', {\n\t\t\targs,\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,sBAAsB,GAAG,QAA/B;;IASqBC,a;;;;;;;;;;;;;IACpB;;uGACA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,WADP,GACqB,KADrB;gBAAA;gBAAA;gBAAA,OAG2B,KAAKC,OAAL,CAAa,MAAb,EAAqB;kBAC7CC,IAAI,EAAE,CAAC,WAAD;gBADuC,CAArB,CAH3B;;cAAA;gBAAA;gBAGUC,MAHV,uBAGUA,MAHV;gBAOQC,KAPR,GAOgBD,MAAM,CAACE,KAAP,CAAa,IAAb,CAPhB;;gBAAA,MASGD,KAAK,IACLA,KAAK,CAAC,CAAD,CADL,IAEAE,mBAAOC,SAAP,CAAiBH,KAAK,CAAC,CAAD,CAAtB,cAAgCN,sBAAhC,EAXH;kBAAA;kBAAA;gBAAA;;gBAAA,iCAaU,IAbV;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA,iCAkBQE,WAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAqBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACKQ,UADL,GAC4B,EAD5B;gBAAA;gBAAA;gBAAA,OAI2B,KAAKP,OAAL,CAAa,MAAb,EAAqB;kBAC7CC,IAAI,EAAE,CAAC,mBAAD;gBADuC,CAArB,CAJ3B;;cAAA;gBAAA;gBAIUC,MAJV,wBAIUA,MAJV;gBAQEK,UAAU,GAAGL,MAAM,CAACE,KAAP,CAAa,IAAb,CAAb,CARF,CASE;;gBATF;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA,kCAYQG,UAZR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAeA,kBAA+BC,YAA/B;QAAA;QAAA;UAAA;YAAA;cAAA;gBACKP,IADL,GACsB,EADtB;gBAECO,YAAY,CAACC,OAAb,CAAqB,UAACC,GAAD,EAAS;kBAC7BT,IAAI,GAAGA,IAAI,CAACU,MAAL,CAAY,qBAAZ,EAAmCD,GAAnC,CAAP;gBACA,CAFD;gBAFD;gBAAA,OAMO,KAAKV,OAAL,CAAa,MAAb,EAAqB;kBAC1BC,IAAI,EAAJA;gBAD0B,CAArB,CANP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAtC0CW,2B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/vscode/writers/VsCodeWriter.ts"],"names":["VsCodeWriter","destinationDir","shouldConfirmBeforeWriting","writeDirectoryTemplate","code","DirectoryTemplateCode","VsCode","context","AbstractWriter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,Y;;;;;;;;;;;;;qHACpB,iBACCC,cADD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,gBAAAA,0BAFD,2DAE8B,IAF9B;AAAA,iDAIQ,KAAKC,sBAAL,CAA4B;AAClCF,kBAAAA,cAAc,EAAdA,cADkC;AAElCG,kBAAAA,IAAI,EAAEC,uCAAsBC,MAFM;AAGlCJ,kBAAAA,0BAA0B,EAA1BA,0BAHkC;AAIlCK,kBAAAA,OAAO,EAAE;AAJyB,iBAA5B,CAJR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EADyCC,2B","sourcesContent":["import { DirectoryTemplateCode } from '@sprucelabs/spruce-templates'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class VsCodeWriter extends AbstractWriter {\n\tpublic async writeVsCodeConfigurations(\n\t\tdestinationDir: string,\n\t\tshouldConfirmBeforeWriting = true\n\t): Promise<WriteResults> {\n\t\treturn this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.VsCode,\n\t\t\tshouldConfirmBeforeWriting,\n\t\t\tcontext: {},\n\t\t})\n\t}\n}\n"],"file":"VsCodeWriter.js"}
1
+ {"version":3,"file":"VsCodeWriter.js","names":["VsCodeWriter","destinationDir","shouldConfirmBeforeWriting","writeDirectoryTemplate","code","DirectoryTemplateCode","VsCode","context","AbstractWriter"],"sources":["../../../../src/features/vscode/writers/VsCodeWriter.ts"],"sourcesContent":["import { DirectoryTemplateCode } from '@sprucelabs/spruce-templates'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class VsCodeWriter extends AbstractWriter {\n\tpublic async writeVsCodeConfigurations(\n\t\tdestinationDir: string,\n\t\tshouldConfirmBeforeWriting = true\n\t): Promise<WriteResults> {\n\t\treturn this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.VsCode,\n\t\t\tshouldConfirmBeforeWriting,\n\t\t\tcontext: {},\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,Y;;;;;;;;;;;;;qHACpB,iBACCC,cADD;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,0BAFD,2DAE8B,IAF9B;gBAAA,iCAIQ,KAAKC,sBAAL,CAA4B;kBAClCF,cAAc,EAAdA,cADkC;kBAElCG,IAAI,EAAEC,uCAAsBC,MAFM;kBAGlCJ,0BAA0B,EAA1BA,0BAHkC;kBAIlCK,OAAO,EAAE;gBAJyB,CAA5B,CAJR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADyCC,2B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/watch/WatchFeature.ts"],"names":["WatchFeature","_isWatching","options","watchDir","diskUtil","resolvePath","cwd","sourceDir","watcher","chokidar","watch","ignoreInitial","startsWith","on","action","path","changesSinceLastChange","push","schemaId","mapChokidarActionToSchemaId","version","values","mapChokidarActionToGeneratedAction","name","pathUtil","basename","timeoutId","clearTimeout","setTimeout","fireChange","delay","search","map","add","addDir","change","unlink","unlinkDir","changes","emitter","emit","close","AbstractFeature"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport chokidar from 'chokidar'\nimport { GeneratedFile, GeneratedFileOrDir } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ntype ChokidarAction = 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\twatch: WatchFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\twatch: undefined\n\t}\n}\n\nexport default class WatchFeature extends AbstractFeature {\n\tpublic description =\n\t\t'Watches for changes on the file system and emits app level events for other features to respond to.'\n\tpublic code: FeatureCode = 'watch'\n\tpublic nameReadable = 'Watch'\n\n\tprivate _isWatching = false\n\tprivate watcher?: chokidar.FSWatcher\n\t// eslint-disable-next-line no-undef\n\tprivate timeoutId?: NodeJS.Timeout\n\tprivate changesSinceLastChange: GeneratedFileOrDir[] = []\n\n\tpublic async isWatching() {\n\t\treturn this._isWatching\n\t}\n\n\tpublic async startWatching(options?: { delay?: number; sourceDir?: string }) {\n\t\tthis._isWatching = true\n\n\t\tconst watchDir = diskUtil.resolvePath(this.cwd, options?.sourceDir ?? '')\n\n\t\tthis.watcher = chokidar.watch(watchDir, {\n\t\t\tignoreInitial: true,\n\t\t})\n\n\t\tconst startsWith = diskUtil.resolvePath(watchDir, 'build')\n\n\t\tthis.watcher.on('all', async (action, path) => {\n\t\t\tif (path.startsWith(startsWith)) {\n\t\t\t\tthis.changesSinceLastChange.push({\n\t\t\t\t\tschemaId: this.mapChokidarActionToSchemaId(action),\n\t\t\t\t\tversion: 'v2020_07_22',\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\taction: this.mapChokidarActionToGeneratedAction(action),\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tname: pathUtil.basename(path),\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (this.timeoutId) {\n\t\t\t\t\tclearTimeout(this.timeoutId)\n\t\t\t\t}\n\n\t\t\t\tthis.timeoutId = setTimeout(async () => {\n\t\t\t\t\tawait this.fireChange()\n\t\t\t\t}, options?.delay ?? 500)\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate mapChokidarActionToSchemaId(\n\t\taction: ChokidarAction\n\t): GeneratedFileOrDir['schemaId'] {\n\t\treturn action.search(/dir/gi) > -1 ? 'generatedDir' : 'generatedFile'\n\t}\n\n\tprivate mapChokidarActionToGeneratedAction(chokidar: ChokidarAction) {\n\t\tconst map = {\n\t\t\tadd: 'generated',\n\t\t\taddDir: 'generated',\n\t\t\tchange: 'updated',\n\t\t\tunlink: 'deleted',\n\t\t\tunlinkDir: 'deleted',\n\t\t}\n\n\t\treturn map[chokidar] as GeneratedFile['action']\n\t}\n\n\tprivate async fireChange() {\n\t\tconst changes = this.changesSinceLastChange\n\t\tthis.changesSinceLastChange = []\n\n\t\tawait this.emitter.emit('watcher.did-detect-change', {\n\t\t\tchanges,\n\t\t})\n\t}\n\n\tpublic async stopWatching() {\n\t\tthis._isWatching = false\n\t\tawait this.watcher?.close()\n\t}\n}\n"],"file":"WatchFeature.js"}
1
+ {"version":3,"file":"WatchFeature.js","names":["WatchFeature","_isWatching","options","watchDir","diskUtil","resolvePath","cwd","sourceDir","watcher","chokidar","watch","ignoreInitial","startsWith","on","action","path","changesSinceLastChange","push","schemaId","mapChokidarActionToSchemaId","version","values","mapChokidarActionToGeneratedAction","name","pathUtil","basename","timeoutId","clearTimeout","setTimeout","fireChange","delay","search","map","add","addDir","change","unlink","unlinkDir","changes","emitter","emit","close","AbstractFeature"],"sources":["../../../src/features/watch/WatchFeature.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport chokidar from 'chokidar'\nimport { GeneratedFile, GeneratedFileOrDir } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ntype ChokidarAction = 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\twatch: WatchFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\twatch: undefined\n\t}\n}\n\nexport default class WatchFeature extends AbstractFeature {\n\tpublic description =\n\t\t'Watches for changes on the file system and emits app level events for other features to respond to.'\n\tpublic code: FeatureCode = 'watch'\n\tpublic nameReadable = 'Watch'\n\n\tprivate _isWatching = false\n\tprivate watcher?: chokidar.FSWatcher\n\t// eslint-disable-next-line no-undef\n\tprivate timeoutId?: NodeJS.Timeout\n\tprivate changesSinceLastChange: GeneratedFileOrDir[] = []\n\n\tpublic async isWatching() {\n\t\treturn this._isWatching\n\t}\n\n\tpublic async startWatching(options?: { delay?: number; sourceDir?: string }) {\n\t\tthis._isWatching = true\n\n\t\tconst watchDir = diskUtil.resolvePath(this.cwd, options?.sourceDir ?? '')\n\n\t\tthis.watcher = chokidar.watch(watchDir, {\n\t\t\tignoreInitial: true,\n\t\t})\n\n\t\tconst startsWith = diskUtil.resolvePath(watchDir, 'build')\n\n\t\tthis.watcher.on('all', async (action, path) => {\n\t\t\tif (path.startsWith(startsWith)) {\n\t\t\t\tthis.changesSinceLastChange.push({\n\t\t\t\t\tschemaId: this.mapChokidarActionToSchemaId(action),\n\t\t\t\t\tversion: 'v2020_07_22',\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\taction: this.mapChokidarActionToGeneratedAction(action),\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tname: pathUtil.basename(path),\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (this.timeoutId) {\n\t\t\t\t\tclearTimeout(this.timeoutId)\n\t\t\t\t}\n\n\t\t\t\tthis.timeoutId = setTimeout(async () => {\n\t\t\t\t\tawait this.fireChange()\n\t\t\t\t}, options?.delay ?? 500)\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate mapChokidarActionToSchemaId(\n\t\taction: ChokidarAction\n\t): GeneratedFileOrDir['schemaId'] {\n\t\treturn action.search(/dir/gi) > -1 ? 'generatedDir' : 'generatedFile'\n\t}\n\n\tprivate mapChokidarActionToGeneratedAction(chokidar: ChokidarAction) {\n\t\tconst map = {\n\t\t\tadd: 'generated',\n\t\t\taddDir: 'generated',\n\t\t\tchange: 'updated',\n\t\t\tunlink: 'deleted',\n\t\t\tunlinkDir: 'deleted',\n\t\t}\n\n\t\treturn map[chokidar] as GeneratedFile['action']\n\t}\n\n\tprivate async fireChange() {\n\t\tconst changes = this.changesSinceLastChange\n\t\tthis.changesSinceLastChange = []\n\n\t\tawait this.emitter.emit('watcher.did-detect-change', {\n\t\t\tchanges,\n\t\t})\n\t}\n\n\tpublic async stopWatching() {\n\t\tthis._isWatching = false\n\t\tawait this.watcher?.close()\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["require","config","process","argv","then","results","code","errors","length","exit","err","term","TerminalInterface","cwd","env","CLI_RENDER_STACK_TRACES","renderError"],"mappings":"AAAA;;;;;AAEA;;AACA;;AAEAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,cAAIC,OAAO,CAACC,IAAZ,EACEC,IADF,CACO,UAACC,OAAD,EAAkB;AAAA;;AACvB,MAAMC,IAAI,GAAG,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,+BAAAA,OAAO,CAAEE,MAAT,oEAAiBC,MAAjB,IAA0B,CAA1B,GAA8B,CAA9B,GAAkC,CAA/C;AACAN,EAAAA,OAAO,CAACO,IAAR,CAAaH,IAAb;AACA,CAJF,WAKQ,UAACI,GAAD,EAAS;AACf,MAAMC,IAAI,GAAG,IAAIC,6BAAJ,CACZV,OAAO,CAACW,GAAR,EADY,EAEZX,OAAO,CAACY,GAAR,CAAYC,uBAAZ,KAAwC,OAF5B,CAAb;AAIAJ,EAAAA,IAAI,CAACK,WAAL,CAAiBN,GAAjB;AACAR,EAAAA,OAAO,CAACO,IAAR,CAAa,CAAb;AACA,CAZF","sourcesContent":["#!/usr/bin/env node\n\nimport { run } from './cli'\nimport TerminalInterface from './interfaces/TerminalInterface'\n\nrequire('dotenv').config()\n\nrun(process.argv)\n\t.then((results: any) => {\n\t\tconst code = results?.errors?.length > 0 ? 1 : 0\n\t\tprocess.exit(code)\n\t})\n\t.catch((err) => {\n\t\tconst term = new TerminalInterface(\n\t\t\tprocess.cwd(),\n\t\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t\t)\n\t\tterm.renderError(err)\n\t\tprocess.exit(1)\n\t})\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["require","config","process","argv","then","results","code","errors","length","exit","err","term","TerminalInterface","cwd","env","CLI_RENDER_STACK_TRACES","renderError"],"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { run } from './cli'\nimport TerminalInterface from './interfaces/TerminalInterface'\n\nrequire('dotenv').config()\n\nrun(process.argv)\n\t.then((results: any) => {\n\t\tconst code = results?.errors?.length > 0 ? 1 : 0\n\t\tprocess.exit(code)\n\t})\n\t.catch((err) => {\n\t\tconst term = new TerminalInterface(\n\t\t\tprocess.cwd(),\n\t\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t\t)\n\t\tterm.renderError(err)\n\t\tprocess.exit(1)\n\t})\n"],"mappings":"AAAA;;;;;AAEA;;AACA;;AAEAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,cAAIC,OAAO,CAACC,IAAZ,EACEC,IADF,CACO,UAACC,OAAD,EAAkB;EAAA;;EACvB,IAAMC,IAAI,GAAG,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,+BAAAA,OAAO,CAAEE,MAAT,oEAAiBC,MAAjB,IAA0B,CAA1B,GAA8B,CAA9B,GAAkC,CAA/C;EACAN,OAAO,CAACO,IAAR,CAAaH,IAAb;AACA,CAJF,WAKQ,UAACI,GAAD,EAAS;EACf,IAAMC,IAAI,GAAG,IAAIC,6BAAJ,CACZV,OAAO,CAACW,GAAR,EADY,EAEZX,OAAO,CAACY,GAAR,CAAYC,uBAAZ,KAAwC,OAF5B,CAAb;EAIAJ,IAAI,CAACK,WAAL,CAAiBN,GAAjB;EACAR,OAAO,CAACO,IAAR,CAAa,CAAb;AACA,CAZF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interfaces/SpyInterface.ts"],"names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","ttl","checkInterval","loops","lastWriteCount","isWaitingForInput","hasWritten","testUtil","log","question","title","cursorPosition","pos"],"mappings":"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","sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"file":"SpyInterface.js"}
1
+ {"version":3,"file":"SpyInterface.js","names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","ttl","checkInterval","loops","lastWriteCount","isWaitingForInput","hasWritten","testUtil","log","question","title","cursorPosition","pos"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interfaces/TerminalInterface.ts"],"names":["terminalImage","require","fieldCount","generateInquirerFieldName","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","cwd","renderStackTraces","log","console","bind","Error","lines","forEach","line","renderLine","object","Green","renderDivider","Object","keys","key","chalk","bold","JSON","stringify","options","headline","dividerEffects","headlineEffects","Blue","bodyEffects","renderHeadline","renderLines","renderObject","bar","results","generatedFiles","files","filter","f","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","length","push","renderSection","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","name","pkg","isDev","toString","file","description","namesUtil","toPascal","hints","err","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","shouldStripVowels","process","stdout","columns","stripped","replace","gradient","Red","undefined","write","eraseBeforeRender","terminal","eraseLine","Yellow","stopLoading","loader","text","start","stop","question","inquirer","prompt","type","confirmResult","answer","label","bgGreenBright","black","clear","code","colored","emphasize","highlight","value","renderWarning","definition","isPromptActive","fieldDefinition","defaultValue","promptOptions","generatePromptLabel","field","FieldFactory","Field","transformer","toValueType","validate","id","fields","isArray","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","dirPath","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","directory","extname","response","result","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","update","image","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","saveCursor","restoreCursor","moveTo","eraseDisplayBelow","_doesSupportColor","isTTy","isTTY"],"mappings":"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","sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport {\n\tFieldFactory,\n\tFieldDefinitionValueType,\n\tareSchemaValuesValid,\n} from '@sprucelabs/schema'\nimport { IField } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\n// @ts-ignore\nimport fonts from 'cfonts'\nimport chalk from 'chalk'\n// @ts-ignore No definition available\nimport Table from 'cli-table3'\n// @ts-ignore No definition available\nimport emphasize from 'emphasize'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport inquirer from 'inquirer'\nimport _ from 'lodash'\nimport { filter } from 'lodash'\nimport ora from 'ora'\nimport { terminal } from 'terminal-kit'\nimport { ProgressBarController } from 'terminal-kit/Terminal'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport featuresUtil from '../features/feature.utilities'\nimport { ExecutionResults, GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport isCi from '../utilities/isCi'\nconst terminalImage = require('terminal-image')\n\nlet fieldCount = 0\nfunction generateInquirerFieldName() {\n\tfieldCount++\n\treturn `field-${fieldCount}`\n}\n\n/** Remove effects cfonts does not support */\nfunction filterEffectsForCFonts(effects: GraphicsTextEffect[]) {\n\treturn filter(\n\t\teffects,\n\t\t(effect) =>\n\t\t\t[\n\t\t\t\tGraphicsTextEffect.SpruceHeader,\n\t\t\t\tGraphicsTextEffect.Reset,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t\tGraphicsTextEffect.Dim,\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t\tGraphicsTextEffect.Underline,\n\t\t\t\tGraphicsTextEffect.Inverse,\n\t\t\t\tGraphicsTextEffect.Hidden,\n\t\t\t\tGraphicsTextEffect.Strikethrough,\n\t\t\t\tGraphicsTextEffect.Visible,\n\t\t\t].indexOf(effect) === -1\n\t)\n}\n\ntype TerminalSpecificOptions = {\n\teraseBeforeRender?: boolean\n}\n\nexport default class TerminalInterface implements GraphicsInterface {\n\tpublic isPromptActive = false\n\tpublic cwd: string\n\tprivate renderStackTraces = false\n\tprivate static loader?: ora.Ora | null\n\tprivate progressBar: ProgressBarController | null = null\n\tprivate static _doesSupportColor = process?.stdout?.isTTY && !isCi()\n\tprivate log: (...args: any[]) => void\n\n\tpublic constructor(\n\t\tcwd: string,\n\t\trenderStackTraces = false,\n\t\tlog = console.log.bind(console)\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.renderStackTraces = renderStackTraces\n\t\tthis.log = log\n\t}\n\n\tpublic static doesSupportColor() {\n\t\treturn this._doesSupportColor\n\t}\n\n\tpublic static setDoesSupportColor(isTTy: boolean) {\n\t\tthis._doesSupportColor = isTTy\n\t}\n\n\tpublic async sendInput(): Promise<void> {\n\t\tthrow new Error('sendInput not supported on the TerminalInterface!')\n\t}\n\n\tpublic renderLines(lines: any[], effects?: GraphicsTextEffect[]) {\n\t\tlines.forEach((line) => {\n\t\t\tthis.renderLine(line, effects)\n\t\t})\n\t}\n\n\tpublic renderObject(\n\t\tobject: Record<string, any>,\n\t\teffects: GraphicsTextEffect[] = [GraphicsTextEffect.Green]\n\t) {\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tthis.renderLine(\n\t\t\t\t`${chalk.bold(key)}: ${\n\t\t\t\t\ttypeof object[key] === 'string'\n\t\t\t\t\t\t? object[key]\n\t\t\t\t\t\t: JSON.stringify(object[key])\n\t\t\t\t}`,\n\t\t\t\teffects\n\t\t\t)\n\t\t})\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline?: string\n\t\tlines?: string[]\n\t\tobject?: Record<string, any>\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t}) {\n\t\tconst {\n\t\t\theadline,\n\t\t\tlines,\n\t\t\tobject,\n\t\t\tdividerEffects = [],\n\t\t\theadlineEffects = [GraphicsTextEffect.Blue, GraphicsTextEffect.Bold],\n\t\t\tbodyEffects = [GraphicsTextEffect.Green],\n\t\t} = options\n\n\t\tif (headline) {\n\t\t\tthis.renderHeadline(`${headline} 🌲🤖`, headlineEffects, dividerEffects)\n\t\t}\n\n\t\tif (lines) {\n\t\t\tthis.renderLines(lines, bodyEffects)\n\n\t\t\tthis.renderLine('')\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t}\n\n\t\tif (object) {\n\t\t\tthis.renderObject(object, bodyEffects)\n\t\t}\n\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[]) {\n\t\tconst bar = '=================================================='\n\t\tthis.renderLine(bar, effects)\n\t}\n\n\tpublic renderActionSummary(\n\t\tresults: ExecutionResults & { totalTime?: number }\n\t) {\n\t\tconst generatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'generated') ?? []\n\t\tconst updatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'updated') ?? []\n\t\tconst skippedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'skipped') ?? []\n\n\t\tconst errors = results.errors ?? []\n\t\tconst packagesInstalled = results.packagesInstalled ?? []\n\n\t\tthis.renderHero(`${results.headline}`)\n\n\t\tlet summaryLines: string[] = [\n\t\t\terrors.length > 0 ? `Errors: ${errors.length}` : null,\n\t\t\tgeneratedFiles.length > 0\n\t\t\t\t? `Generated files: ${generatedFiles.length}`\n\t\t\t\t: null,\n\t\t\tupdatedFiles.length > 0 ? `Updated files: ${updatedFiles.length}` : null,\n\t\t\tskippedFiles.length > 0 ? `Skipped files: ${skippedFiles.length}` : null,\n\t\t\tpackagesInstalled.length > 0\n\t\t\t\t? `NPM packages installed: ${packagesInstalled.length}`\n\t\t\t\t: null,\n\t\t\t...(results.summaryLines ?? []),\n\t\t].filter((line) => !!line) as string[]\n\n\t\tif (summaryLines.length === 0) {\n\t\t\tsummaryLines.push('Nothing to report!')\n\t\t}\n\t\tthis.renderSection({\n\t\t\theadline: `${featuresUtil.generateCommand(\n\t\t\t\tresults.featureCode,\n\t\t\t\tresults.actionCode\n\t\t\t)} summary`,\n\t\t\tlines: summaryLines,\n\t\t})\n\n\t\tif (packagesInstalled.length > 0) {\n\t\t\tconst table = new Table({\n\t\t\t\thead: ['Name', 'Dev'],\n\t\t\t\tcolWidths: [40, 5],\n\t\t\t\twordWrap: true,\n\t\t\t\tcolAligns: ['left', 'center'],\n\t\t\t})\n\t\t\tpackagesInstalled\n\t\t\t\t.sort((one, two) => (one.name > two.name ? 1 : -1))\n\t\t\t\t.forEach((pkg) => {\n\t\t\t\t\ttable.push([pkg.name, pkg.isDev ? '√' : ''])\n\t\t\t\t})\n\n\t\t\tthis.renderSection({\n\t\t\t\theadline: `NPM packages summary`,\n\t\t\t\tlines: [table.toString()],\n\t\t\t})\n\t\t}\n\n\t\tfor (let files of [generatedFiles, updatedFiles]) {\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst table = new Table({\n\t\t\t\t\thead: ['File', 'Description'],\n\t\t\t\t\twordWrap: true,\n\t\t\t\t})\n\n\t\t\t\tfiles = files.sort()\n\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\ttable.push([file.name, file.description ?? ''])\n\t\t\t\t}\n\n\t\t\t\tthis.renderSection({\n\t\t\t\t\theadline: `${namesUtil.toPascal(files[0].action)} file summary`,\n\t\t\t\t\tlines: [table.toString()],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (results.hints) {\n\t\t\tthis.renderSection({\n\t\t\t\theadline: 'Read below 👇',\n\t\t\t\tlines: results.hints,\n\t\t\t})\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.renderHeadline('Errors')\n\t\t\terrors.forEach((err) => this.renderError(err))\n\t\t}\n\n\t\tif (results.totalTime) {\n\t\t\tthis.renderLine(\n\t\t\t\t`Total time: ${durationUtil.msToFriendly(results.totalTime)}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[] = [\n\t\t\tGraphicsTextEffect.Blue,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t],\n\t\tdividerEffects: GraphicsTextEffect[] = []\n\t) {\n\t\tconst isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1\n\n\t\tif (isSpruce) {\n\t\t\tfonts.say(message, {\n\t\t\t\tfont: GraphicsTextEffect.SpruceHeader,\n\t\t\t\talign: 'left',\n\t\t\t\tspace: false,\n\t\t\t\tcolors: filterEffectsForCFonts(effects),\n\t\t\t})\n\t\t} else {\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine(message, effects)\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine('')\n\t\t}\n\t}\n\n\tpublic renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tconst stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tfonts.say(stripped, {\n\t\t\t// Font: 'tiny',\n\t\t\talign: 'left',\n\t\t\tgradient: [GraphicsTextEffect.Red, GraphicsTextEffect.Blue],\n\t\t\tcolors: effects ? filterEffectsForCFonts(effects) : undefined,\n\t\t})\n\t}\n\n\tpublic renderHint(message: string) {\n\t\treturn this.renderLine(`👨‍🏫 ${message}`)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: any,\n\t\teffects: GraphicsTextEffect[] = [],\n\t\toptions?: TerminalSpecificOptions\n\t) {\n\t\tlet write: any = chalk\n\t\teffects.forEach((effect) => {\n\t\t\twrite = write[effect]\n\t\t})\n\n\t\tif (options?.eraseBeforeRender) {\n\t\t\tterminal.eraseLine()\n\t\t}\n\n\t\tthis.log(effects.length > 0 ? write(message) : message)\n\t}\n\n\tpublic renderWarning(message: string) {\n\t\tthis.renderLine(`⚠️ ${message}`, [\n\t\t\tGraphicsTextEffect.Bold,\n\t\t\tGraphicsTextEffect.Yellow,\n\t\t])\n\t}\n\n\tpublic async startLoading(message?: string) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\t\tTerminalInterface.loader = ora({\n\t\t\ttext: message,\n\t\t}).start()\n\t}\n\n\tpublic async stopLoading() {\n\t\tTerminalInterface.loader?.stop()\n\t\tTerminalInterface.loader = null\n\t}\n\n\tpublic async confirm(question: string): Promise<boolean> {\n\t\tconst confirmResult = await inquirer.prompt({\n\t\t\ttype: 'confirm',\n\t\t\tname: 'answer',\n\t\t\tmessage: question,\n\t\t})\n\n\t\treturn !!confirmResult.answer\n\t}\n\n\tpublic async waitForEnter(message?: string) {\n\t\tawait this.prompt({\n\t\t\ttype: 'text',\n\t\t\tlabel: `${message ? message + ' ' : ''}${chalk.bgGreenBright.black(\n\t\t\t\t'hit enter'\n\t\t\t)}`,\n\t\t})\n\t\tthis.renderLine('')\n\t\treturn\n\t}\n\n\tpublic clear() {\n\t\tvoid this.stopLoading()\n\t\tconsole.clear()\n\t}\n\n\tpublic renderCodeSample(code: string) {\n\t\ttry {\n\t\t\tconst colored = emphasize.highlight('js', code).value\n\t\t\tthis.renderLine(colored)\n\t\t} catch (err: any) {\n\t\t\tthis.renderWarning(err)\n\t\t}\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(\n\t\tdefinition: T\n\t): Promise<FieldDefinitionValueType<T>> {\n\t\tthis.isPromptActive = true\n\t\tconst name = generateInquirerFieldName()\n\t\tconst fieldDefinition: FieldDefinitions = definition\n\t\tconst { defaultValue } = fieldDefinition\n\n\t\tconst promptOptions: Record<string, any> = {\n\t\t\tdefault: defaultValue,\n\t\t\tname,\n\t\t\tmessage: this.generatePromptLabel(fieldDefinition),\n\t\t}\n\n\t\tconst field = FieldFactory.Field('prompt', fieldDefinition)\n\n\t\tpromptOptions.transformer = (value: string) => {\n\t\t\treturn (field as IField<any>).toValueType(value)\n\t\t}\n\n\t\tpromptOptions.validate = (value: string) => {\n\t\t\treturn areSchemaValuesValid(\n\t\t\t\t{\n\t\t\t\t\tid: 'promptvalidateschema',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprompt: fieldDefinition,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ prompt: value }\n\t\t\t)\n\t\t\t// return field.validate(value, {}).length === 0\n\t\t}\n\n\t\tswitch (fieldDefinition.type) {\n\t\t\t// Map select options to prompt list choices\n\t\t\tcase 'boolean':\n\t\t\t\tpromptOptions.type = 'confirm'\n\t\t\t\tbreak\n\n\t\t\tcase 'select':\n\t\t\t\tpromptOptions.type = fieldDefinition.isArray ? 'checkbox' : 'list'\n\n\t\t\t\tpromptOptions.choices = fieldDefinition.options.choices.map(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t(choice) => ({\n\t\t\t\t\t\tname: choice.label,\n\t\t\t\t\t\tvalue: choice.value,\n\t\t\t\t\t\tchecked: _.includes(fieldDefinition.defaultValue, choice.value),\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\tbreak\n\t\t\t// Directory select\n\t\t\t// File select\n\t\t\tcase 'directory': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\t\t\t\tpromptOptions.onlyShowDir = true\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'file': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\t// Check if directory is empty.\n\t\t\t\tconst files = await globby(`${dirPath}**/*`)\n\n\t\t\t\tif (files.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'DIRECTORY_EMPTY',\n\t\t\t\t\t\tdirectory: dirPath,\n\t\t\t\t\t\tfriendlyMessage: `I wanted to help you select a file, but none exist in ${dirPath}.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tfs.existsSync(value) &&\n\t\t\t\t\t\t!fs.lstatSync(value).isDirectory() &&\n\t\t\t\t\t\tpath.extname(value) === '.ts'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Defaults to input\n\t\t\tdefault:\n\t\t\t\tpromptOptions.type = 'input'\n\t\t}\n\n\t\tconst response = (await inquirer.prompt(promptOptions)) as any\n\n\t\tthis.isPromptActive = false\n\n\t\tconst result =\n\t\t\ttypeof response[name] !== 'undefined'\n\t\t\t\t? (field as IField<any>).toValueType(response[name])\n\t\t\t\t: response[name]\n\n\t\treturn result\n\t}\n\tprivate generatePromptLabel(fieldDefinition: FieldDefinitions): any {\n\t\tlet label = fieldDefinition.label\n\n\t\tif (fieldDefinition.hint) {\n\t\t\tlabel = `${label} ${chalk.italic.dim(`(${fieldDefinition.hint})`)}`\n\t\t}\n\n\t\tlabel = label + ': '\n\n\t\treturn label\n\t}\n\n\tpublic renderError(err: Error) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\n\t\tconst message = err.message\n\t\t// Remove message from stack so the message is not doubled up\n\t\tconst stackLines = this.cleanStack(err)\n\t\tthis.renderSection({\n\t\t\theadline: message,\n\t\t\tlines: this.renderStackTraces ? stackLines.splice(0, 100) : undefined,\n\t\t\theadlineEffects: [GraphicsTextEffect.Bold, GraphicsTextEffect.Red],\n\t\t\tdividerEffects: [GraphicsTextEffect.Red],\n\t\t\tbodyEffects: [GraphicsTextEffect.Red],\n\t\t})\n\t}\n\n\tprivate cleanStack(err: Error) {\n\t\tconst message = err.message\n\t\tlet stack = err.stack ? err.stack.replace(message, '') : ''\n\n\t\tif (err instanceof AbstractSpruceError) {\n\t\t\tlet original = err.originalError\n\t\t\twhile (original) {\n\t\t\t\tstack = stack.replace('Error: ' + original.message, '')\n\t\t\t\toriginal = (original as AbstractSpruceError).originalError\n\t\t\t}\n\t\t}\n\n\t\tconst stackLines = stack.split('\\n')\n\n\t\treturn stackLines\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.removeProgressBar()\n\t\tthis.progressBar = terminal.progressBar({\n\t\t\t...options,\n\t\t\tpercent: options.showPercent,\n\t\t\teta: options.showEta,\n\t\t\titems: options.totalItems,\n\t\t\tinline: options.renderInline,\n\t\t})\n\t}\n\n\tpublic removeProgressBar() {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.stop()\n\t\t\tthis.progressBar = null\n\t\t}\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.update({\n\t\t\t\t...options,\n\t\t\t\titems: options.totalItems,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tconst image = await terminalImage.file(path, options)\n\t\tthis.renderLine(image)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\treturn new Promise((resolve) => {\n\t\t\tterminal.requestCursorLocation()\n\t\t\tterminal.getCursorLocation((err, x, y) => {\n\t\t\t\tresolve(err ? null : { x: x ?? 0, y: y ?? 0 })\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic saveCursor() {\n\t\tterminal.saveCursor()\n\t}\n\n\tpublic restoreCursor() {\n\t\tterminal.restoreCursor()\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tterminal.moveTo(x, y)\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tterminal.eraseDisplayBelow()\n\t}\n\n\tpublic eraseLine() {\n\t\tterminal.eraseLine()\n\t}\n}\n"],"file":"TerminalInterface.js"}
1
+ {"version":3,"file":"TerminalInterface.js","names":["terminalImage","require","fieldCount","generateInquirerFieldName","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","cwd","renderStackTraces","log","console","bind","Error","lines","forEach","line","renderLine","object","Green","renderDivider","Object","keys","key","chalk","bold","JSON","stringify","options","headline","dividerEffects","headlineEffects","Blue","bodyEffects","renderHeadline","renderLines","renderObject","bar","results","generatedFiles","files","filter","f","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","length","push","renderSection","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","name","pkg","isDev","toString","file","description","namesUtil","toPascal","hints","err","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","shouldStripVowels","process","stdout","columns","stripped","replace","gradient","Red","undefined","write","eraseBeforeRender","terminal","eraseLine","Yellow","stopLoading","loader","text","start","stop","question","inquirer","prompt","type","confirmResult","answer","label","bgGreenBright","black","clear","code","colored","emphasize","highlight","value","renderWarning","definition","isPromptActive","fieldDefinition","defaultValue","promptOptions","generatePromptLabel","field","FieldFactory","Field","transformer","toValueType","validate","id","fields","isArray","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","dirPath","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","directory","extname","response","result","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","update","image","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","saveCursor","restoreCursor","moveTo","eraseDisplayBelow","_doesSupportColor","isTTy","isTTY"],"sources":["../../src/interfaces/TerminalInterface.ts"],"sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport {\n\tFieldFactory,\n\tFieldDefinitionValueType,\n\tareSchemaValuesValid,\n} from '@sprucelabs/schema'\nimport { IField } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\n// @ts-ignore\nimport fonts from 'cfonts'\nimport chalk from 'chalk'\n// @ts-ignore No definition available\nimport Table from 'cli-table3'\n// @ts-ignore No definition available\nimport emphasize from 'emphasize'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport inquirer from 'inquirer'\nimport _ from 'lodash'\nimport { filter } from 'lodash'\nimport ora from 'ora'\nimport { terminal } from 'terminal-kit'\nimport { ProgressBarController } from 'terminal-kit/Terminal'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport featuresUtil from '../features/feature.utilities'\nimport { ExecutionResults, GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport isCi from '../utilities/isCi'\nconst terminalImage = require('terminal-image')\n\nlet fieldCount = 0\nfunction generateInquirerFieldName() {\n\tfieldCount++\n\treturn `field-${fieldCount}`\n}\n\n/** Remove effects cfonts does not support */\nfunction filterEffectsForCFonts(effects: GraphicsTextEffect[]) {\n\treturn filter(\n\t\teffects,\n\t\t(effect) =>\n\t\t\t[\n\t\t\t\tGraphicsTextEffect.SpruceHeader,\n\t\t\t\tGraphicsTextEffect.Reset,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t\tGraphicsTextEffect.Dim,\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t\tGraphicsTextEffect.Underline,\n\t\t\t\tGraphicsTextEffect.Inverse,\n\t\t\t\tGraphicsTextEffect.Hidden,\n\t\t\t\tGraphicsTextEffect.Strikethrough,\n\t\t\t\tGraphicsTextEffect.Visible,\n\t\t\t].indexOf(effect) === -1\n\t)\n}\n\ntype TerminalSpecificOptions = {\n\teraseBeforeRender?: boolean\n}\n\nexport default class TerminalInterface implements GraphicsInterface {\n\tpublic isPromptActive = false\n\tpublic cwd: string\n\tprivate renderStackTraces = false\n\tprivate static loader?: ora.Ora | null\n\tprivate progressBar: ProgressBarController | null = null\n\tprivate static _doesSupportColor = process?.stdout?.isTTY && !isCi()\n\tprivate log: (...args: any[]) => void\n\n\tpublic constructor(\n\t\tcwd: string,\n\t\trenderStackTraces = false,\n\t\tlog = console.log.bind(console)\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.renderStackTraces = renderStackTraces\n\t\tthis.log = log\n\t}\n\n\tpublic static doesSupportColor() {\n\t\treturn this._doesSupportColor\n\t}\n\n\tpublic static setDoesSupportColor(isTTy: boolean) {\n\t\tthis._doesSupportColor = isTTy\n\t}\n\n\tpublic async sendInput(): Promise<void> {\n\t\tthrow new Error('sendInput not supported on the TerminalInterface!')\n\t}\n\n\tpublic renderLines(lines: any[], effects?: GraphicsTextEffect[]) {\n\t\tlines.forEach((line) => {\n\t\t\tthis.renderLine(line, effects)\n\t\t})\n\t}\n\n\tpublic renderObject(\n\t\tobject: Record<string, any>,\n\t\teffects: GraphicsTextEffect[] = [GraphicsTextEffect.Green]\n\t) {\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tthis.renderLine(\n\t\t\t\t`${chalk.bold(key)}: ${\n\t\t\t\t\ttypeof object[key] === 'string'\n\t\t\t\t\t\t? object[key]\n\t\t\t\t\t\t: JSON.stringify(object[key])\n\t\t\t\t}`,\n\t\t\t\teffects\n\t\t\t)\n\t\t})\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline?: string\n\t\tlines?: string[]\n\t\tobject?: Record<string, any>\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t}) {\n\t\tconst {\n\t\t\theadline,\n\t\t\tlines,\n\t\t\tobject,\n\t\t\tdividerEffects = [],\n\t\t\theadlineEffects = [GraphicsTextEffect.Blue, GraphicsTextEffect.Bold],\n\t\t\tbodyEffects = [GraphicsTextEffect.Green],\n\t\t} = options\n\n\t\tif (headline) {\n\t\t\tthis.renderHeadline(`${headline} 🌲🤖`, headlineEffects, dividerEffects)\n\t\t}\n\n\t\tif (lines) {\n\t\t\tthis.renderLines(lines, bodyEffects)\n\n\t\t\tthis.renderLine('')\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t}\n\n\t\tif (object) {\n\t\t\tthis.renderObject(object, bodyEffects)\n\t\t}\n\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[]) {\n\t\tconst bar = '=================================================='\n\t\tthis.renderLine(bar, effects)\n\t}\n\n\tpublic renderActionSummary(\n\t\tresults: ExecutionResults & { totalTime?: number }\n\t) {\n\t\tconst generatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'generated') ?? []\n\t\tconst updatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'updated') ?? []\n\t\tconst skippedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'skipped') ?? []\n\n\t\tconst errors = results.errors ?? []\n\t\tconst packagesInstalled = results.packagesInstalled ?? []\n\n\t\tthis.renderHero(`${results.headline}`)\n\n\t\tlet summaryLines: string[] = [\n\t\t\terrors.length > 0 ? `Errors: ${errors.length}` : null,\n\t\t\tgeneratedFiles.length > 0\n\t\t\t\t? `Generated files: ${generatedFiles.length}`\n\t\t\t\t: null,\n\t\t\tupdatedFiles.length > 0 ? `Updated files: ${updatedFiles.length}` : null,\n\t\t\tskippedFiles.length > 0 ? `Skipped files: ${skippedFiles.length}` : null,\n\t\t\tpackagesInstalled.length > 0\n\t\t\t\t? `NPM packages installed: ${packagesInstalled.length}`\n\t\t\t\t: null,\n\t\t\t...(results.summaryLines ?? []),\n\t\t].filter((line) => !!line) as string[]\n\n\t\tif (summaryLines.length === 0) {\n\t\t\tsummaryLines.push('Nothing to report!')\n\t\t}\n\t\tthis.renderSection({\n\t\t\theadline: `${featuresUtil.generateCommand(\n\t\t\t\tresults.featureCode,\n\t\t\t\tresults.actionCode\n\t\t\t)} summary`,\n\t\t\tlines: summaryLines,\n\t\t})\n\n\t\tif (packagesInstalled.length > 0) {\n\t\t\tconst table = new Table({\n\t\t\t\thead: ['Name', 'Dev'],\n\t\t\t\tcolWidths: [40, 5],\n\t\t\t\twordWrap: true,\n\t\t\t\tcolAligns: ['left', 'center'],\n\t\t\t})\n\t\t\tpackagesInstalled\n\t\t\t\t.sort((one, two) => (one.name > two.name ? 1 : -1))\n\t\t\t\t.forEach((pkg) => {\n\t\t\t\t\ttable.push([pkg.name, pkg.isDev ? '√' : ''])\n\t\t\t\t})\n\n\t\t\tthis.renderSection({\n\t\t\t\theadline: `NPM packages summary`,\n\t\t\t\tlines: [table.toString()],\n\t\t\t})\n\t\t}\n\n\t\tfor (let files of [generatedFiles, updatedFiles]) {\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst table = new Table({\n\t\t\t\t\thead: ['File', 'Description'],\n\t\t\t\t\twordWrap: true,\n\t\t\t\t})\n\n\t\t\t\tfiles = files.sort()\n\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\ttable.push([file.name, file.description ?? ''])\n\t\t\t\t}\n\n\t\t\t\tthis.renderSection({\n\t\t\t\t\theadline: `${namesUtil.toPascal(files[0].action)} file summary`,\n\t\t\t\t\tlines: [table.toString()],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (results.hints) {\n\t\t\tthis.renderSection({\n\t\t\t\theadline: 'Read below 👇',\n\t\t\t\tlines: results.hints,\n\t\t\t})\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.renderHeadline('Errors')\n\t\t\terrors.forEach((err) => this.renderError(err))\n\t\t}\n\n\t\tif (results.totalTime) {\n\t\t\tthis.renderLine(\n\t\t\t\t`Total time: ${durationUtil.msToFriendly(results.totalTime)}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[] = [\n\t\t\tGraphicsTextEffect.Blue,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t],\n\t\tdividerEffects: GraphicsTextEffect[] = []\n\t) {\n\t\tconst isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1\n\n\t\tif (isSpruce) {\n\t\t\tfonts.say(message, {\n\t\t\t\tfont: GraphicsTextEffect.SpruceHeader,\n\t\t\t\talign: 'left',\n\t\t\t\tspace: false,\n\t\t\t\tcolors: filterEffectsForCFonts(effects),\n\t\t\t})\n\t\t} else {\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine(message, effects)\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine('')\n\t\t}\n\t}\n\n\tpublic renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tconst stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tfonts.say(stripped, {\n\t\t\t// Font: 'tiny',\n\t\t\talign: 'left',\n\t\t\tgradient: [GraphicsTextEffect.Red, GraphicsTextEffect.Blue],\n\t\t\tcolors: effects ? filterEffectsForCFonts(effects) : undefined,\n\t\t})\n\t}\n\n\tpublic renderHint(message: string) {\n\t\treturn this.renderLine(`👨‍🏫 ${message}`)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: any,\n\t\teffects: GraphicsTextEffect[] = [],\n\t\toptions?: TerminalSpecificOptions\n\t) {\n\t\tlet write: any = chalk\n\t\teffects.forEach((effect) => {\n\t\t\twrite = write[effect]\n\t\t})\n\n\t\tif (options?.eraseBeforeRender) {\n\t\t\tterminal.eraseLine()\n\t\t}\n\n\t\tthis.log(effects.length > 0 ? write(message) : message)\n\t}\n\n\tpublic renderWarning(message: string) {\n\t\tthis.renderLine(`⚠️ ${message}`, [\n\t\t\tGraphicsTextEffect.Bold,\n\t\t\tGraphicsTextEffect.Yellow,\n\t\t])\n\t}\n\n\tpublic async startLoading(message?: string) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\t\tTerminalInterface.loader = ora({\n\t\t\ttext: message,\n\t\t}).start()\n\t}\n\n\tpublic async stopLoading() {\n\t\tTerminalInterface.loader?.stop()\n\t\tTerminalInterface.loader = null\n\t}\n\n\tpublic async confirm(question: string): Promise<boolean> {\n\t\tconst confirmResult = await inquirer.prompt({\n\t\t\ttype: 'confirm',\n\t\t\tname: 'answer',\n\t\t\tmessage: question,\n\t\t})\n\n\t\treturn !!confirmResult.answer\n\t}\n\n\tpublic async waitForEnter(message?: string) {\n\t\tawait this.prompt({\n\t\t\ttype: 'text',\n\t\t\tlabel: `${message ? message + ' ' : ''}${chalk.bgGreenBright.black(\n\t\t\t\t'hit enter'\n\t\t\t)}`,\n\t\t})\n\t\tthis.renderLine('')\n\t\treturn\n\t}\n\n\tpublic clear() {\n\t\tvoid this.stopLoading()\n\t\tconsole.clear()\n\t}\n\n\tpublic renderCodeSample(code: string) {\n\t\ttry {\n\t\t\tconst colored = emphasize.highlight('js', code).value\n\t\t\tthis.renderLine(colored)\n\t\t} catch (err: any) {\n\t\t\tthis.renderWarning(err)\n\t\t}\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(\n\t\tdefinition: T\n\t): Promise<FieldDefinitionValueType<T>> {\n\t\tthis.isPromptActive = true\n\t\tconst name = generateInquirerFieldName()\n\t\tconst fieldDefinition: FieldDefinitions = definition\n\t\tconst { defaultValue } = fieldDefinition\n\n\t\tconst promptOptions: Record<string, any> = {\n\t\t\tdefault: defaultValue,\n\t\t\tname,\n\t\t\tmessage: this.generatePromptLabel(fieldDefinition),\n\t\t}\n\n\t\tconst field = FieldFactory.Field('prompt', fieldDefinition)\n\n\t\tpromptOptions.transformer = (value: string) => {\n\t\t\treturn (field as IField<any>).toValueType(value)\n\t\t}\n\n\t\tpromptOptions.validate = (value: string) => {\n\t\t\treturn areSchemaValuesValid(\n\t\t\t\t{\n\t\t\t\t\tid: 'promptvalidateschema',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprompt: fieldDefinition,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ prompt: value }\n\t\t\t)\n\t\t\t// return field.validate(value, {}).length === 0\n\t\t}\n\n\t\tswitch (fieldDefinition.type) {\n\t\t\t// Map select options to prompt list choices\n\t\t\tcase 'boolean':\n\t\t\t\tpromptOptions.type = 'confirm'\n\t\t\t\tbreak\n\n\t\t\tcase 'select':\n\t\t\t\tpromptOptions.type = fieldDefinition.isArray ? 'checkbox' : 'list'\n\n\t\t\t\tpromptOptions.choices = fieldDefinition.options.choices.map(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t(choice) => ({\n\t\t\t\t\t\tname: choice.label,\n\t\t\t\t\t\tvalue: choice.value,\n\t\t\t\t\t\tchecked: _.includes(fieldDefinition.defaultValue, choice.value),\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\tbreak\n\t\t\t// Directory select\n\t\t\t// File select\n\t\t\tcase 'directory': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\t\t\t\tpromptOptions.onlyShowDir = true\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'file': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\t// Check if directory is empty.\n\t\t\t\tconst files = await globby(`${dirPath}**/*`)\n\n\t\t\t\tif (files.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'DIRECTORY_EMPTY',\n\t\t\t\t\t\tdirectory: dirPath,\n\t\t\t\t\t\tfriendlyMessage: `I wanted to help you select a file, but none exist in ${dirPath}.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tfs.existsSync(value) &&\n\t\t\t\t\t\t!fs.lstatSync(value).isDirectory() &&\n\t\t\t\t\t\tpath.extname(value) === '.ts'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Defaults to input\n\t\t\tdefault:\n\t\t\t\tpromptOptions.type = 'input'\n\t\t}\n\n\t\tconst response = (await inquirer.prompt(promptOptions)) as any\n\n\t\tthis.isPromptActive = false\n\n\t\tconst result =\n\t\t\ttypeof response[name] !== 'undefined'\n\t\t\t\t? (field as IField<any>).toValueType(response[name])\n\t\t\t\t: response[name]\n\n\t\treturn result\n\t}\n\tprivate generatePromptLabel(fieldDefinition: FieldDefinitions): any {\n\t\tlet label = fieldDefinition.label\n\n\t\tif (fieldDefinition.hint) {\n\t\t\tlabel = `${label} ${chalk.italic.dim(`(${fieldDefinition.hint})`)}`\n\t\t}\n\n\t\tlabel = label + ': '\n\n\t\treturn label\n\t}\n\n\tpublic renderError(err: Error) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\n\t\tconst message = err.message\n\t\t// Remove message from stack so the message is not doubled up\n\t\tconst stackLines = this.cleanStack(err)\n\t\tthis.renderSection({\n\t\t\theadline: message,\n\t\t\tlines: this.renderStackTraces ? stackLines.splice(0, 100) : undefined,\n\t\t\theadlineEffects: [GraphicsTextEffect.Bold, GraphicsTextEffect.Red],\n\t\t\tdividerEffects: [GraphicsTextEffect.Red],\n\t\t\tbodyEffects: [GraphicsTextEffect.Red],\n\t\t})\n\t}\n\n\tprivate cleanStack(err: Error) {\n\t\tconst message = err.message\n\t\tlet stack = err.stack ? err.stack.replace(message, '') : ''\n\n\t\tif (err instanceof AbstractSpruceError) {\n\t\t\tlet original = err.originalError\n\t\t\twhile (original) {\n\t\t\t\tstack = stack.replace('Error: ' + original.message, '')\n\t\t\t\toriginal = (original as AbstractSpruceError).originalError\n\t\t\t}\n\t\t}\n\n\t\tconst stackLines = stack.split('\\n')\n\n\t\treturn stackLines\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.removeProgressBar()\n\t\tthis.progressBar = terminal.progressBar({\n\t\t\t...options,\n\t\t\tpercent: options.showPercent,\n\t\t\teta: options.showEta,\n\t\t\titems: options.totalItems,\n\t\t\tinline: options.renderInline,\n\t\t})\n\t}\n\n\tpublic removeProgressBar() {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.stop()\n\t\t\tthis.progressBar = null\n\t\t}\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.update({\n\t\t\t\t...options,\n\t\t\t\titems: options.totalItems,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tconst image = await terminalImage.file(path, options)\n\t\tthis.renderLine(image)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\treturn new Promise((resolve) => {\n\t\t\tterminal.requestCursorLocation()\n\t\t\tterminal.getCursorLocation((err, x, y) => {\n\t\t\t\tresolve(err ? null : { x: x ?? 0, y: y ?? 0 })\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic saveCursor() {\n\t\tterminal.saveCursor()\n\t}\n\n\tpublic restoreCursor() {\n\t\tterminal.restoreCursor()\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tterminal.moveTo(x, y)\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tterminal.eraseDisplayBelow()\n\t}\n\n\tpublic eraseLine() {\n\t\tterminal.eraseLine()\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/bootSkillOptions.builder.ts"],"names":["id","name","description","fields","local","type","label","hint","onData","options","valueType","onError","shouldReturnImmediately","isPrivate","defaultValue","undefined"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,kBADsB;AAE1BC,EAAAA,IAAI,EAAE,mBAFoB;AAG1BC,EAAAA,WAAW,EAAE,oBAHa;AAI1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,KAAK,EAAE;AACNC,MAAAA,IAAI,EAAE,SADA;AAENC,MAAAA,KAAK,EAAE,WAFD;AAGNC,MAAAA,IAAI,EAAE;AAHA,KADA;AAMPC,IAAAA,MAAM,EAAE;AACPH,MAAAA,IAAI,EAAE,KADC;AAEPI,MAAAA,OAAO,EAAE;AACRC,QAAAA,SAAS,EAAE;AADH;AAFF,KAND;AAYPC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,KADE;AAERI,MAAAA,OAAO,EAAE;AACRC,QAAAA,SAAS,EAAE;AADH;AAFD,KAZF;AAkBPE,IAAAA,uBAAuB,EAAE;AACxBN,MAAAA,KAAK,EAAE,4BADiB;AAExBD,MAAAA,IAAI,EAAE,SAFkB;AAGxBQ,MAAAA,SAAS,EAAE,IAHa;AAIxBN,MAAAA,IAAI,EAAE,4GAJkB;AAKxBO,MAAAA,YAAY,EAAE,KALU;AAMxBL,MAAAA,OAAO,EAAEM;AANe;AAlBlB;AAJkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'bootSkillOptions',\n\tname: 'Boot skill action',\n\tdescription: 'Boot your skill 💪',\n\tfields: {\n\t\tlocal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Run local',\n\t\t\thint: 'Will run using ts-node and typescript directly. Longer boot times',\n\t\t},\n\t\tonData: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: '(msg: string) => void',\n\t\t\t},\n\t\t},\n\t\tonError: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: '(msg: string) => void',\n\t\t\t},\n\t\t},\n\t\tshouldReturnImmediately: {\n\t\t\tlabel: 'Wait until skill is booted',\n\t\t\ttype: 'boolean',\n\t\t\tisPrivate: true,\n\t\t\thint: 'For testing. Returns immediately after executing test so the running tests can be managed programatically.',\n\t\t\tdefaultValue: false,\n\t\t\toptions: undefined,\n\t\t},\n\t},\n})\n"],"file":"bootSkillOptions.builder.js"}
1
+ {"version":3,"file":"bootSkillOptions.builder.js","names":["id","name","description","fields","local","type","label","hint","onData","options","valueType","onError","shouldReturnImmediately","isPrivate","defaultValue","undefined"],"sources":["../../../src/schemas/v2020_07_22/bootSkillOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'bootSkillOptions',\n\tname: 'Boot skill action',\n\tdescription: 'Boot your skill 💪',\n\tfields: {\n\t\tlocal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Run local',\n\t\t\thint: 'Will run using ts-node and typescript directly. Longer boot times',\n\t\t},\n\t\tonData: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: '(msg: string) => void',\n\t\t\t},\n\t\t},\n\t\tonError: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: '(msg: string) => void',\n\t\t\t},\n\t\t},\n\t\tshouldReturnImmediately: {\n\t\t\tlabel: 'Wait until skill is booted',\n\t\t\ttype: 'boolean',\n\t\t\tisPrivate: true,\n\t\t\thint: 'For testing. Returns immediately after executing test so the running tests can be managed programatically.',\n\t\t\tdefaultValue: false,\n\t\t\toptions: undefined,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,kBADsB;EAE1BC,IAAI,EAAE,mBAFoB;EAG1BC,WAAW,EAAE,oBAHa;EAI1BC,MAAM,EAAE;IACPC,KAAK,EAAE;MACNC,IAAI,EAAE,SADA;MAENC,KAAK,EAAE,WAFD;MAGNC,IAAI,EAAE;IAHA,CADA;IAMPC,MAAM,EAAE;MACPH,IAAI,EAAE,KADC;MAEPI,OAAO,EAAE;QACRC,SAAS,EAAE;MADH;IAFF,CAND;IAYPC,OAAO,EAAE;MACRN,IAAI,EAAE,KADE;MAERI,OAAO,EAAE;QACRC,SAAS,EAAE;MADH;IAFD,CAZF;IAkBPE,uBAAuB,EAAE;MACxBN,KAAK,EAAE,4BADiB;MAExBD,IAAI,EAAE,SAFkB;MAGxBQ,SAAS,EAAE,IAHa;MAIxBN,IAAI,EAAE,4GAJkB;MAKxBO,YAAY,EAAE,KALU;MAMxBL,OAAO,EAAEM;IANe;EAlBlB;AAJkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/createConversationTopicOptions.builder.ts"],"names":["id","name","description","fields","nameReadable","namedTemplateItemBuilder","label","hint","nameCamel"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,gCADsB;AAE1BC,EAAAA,IAAI,EAAE,6BAFoB;AAG1BC,EAAAA,WAAW,EAAE,qCAHa;AAI1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,YAAY,kCACRC,8BAAyBF,MAAzB,CAAgCC,YADxB;AAEXE,MAAAA,KAAK,EAAE,OAFI;AAGXC,MAAAA,IAAI,EAAE;AAHK,MADL;AAMPC,IAAAA,SAAS,EAAEH,8BAAyBF,MAAzB,CAAgCK;AANpC;AAJkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createConversationTopicOptions',\n\tname: 'Create conversation options',\n\tdescription: 'Define a topic you want to discuss.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Topic',\n\t\t\thint: 'What should we talk about or try and get done, e.g. Book an appointment or tell a knock knock joke.',\n\t\t},\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t},\n})\n"],"file":"createConversationTopicOptions.builder.js"}
1
+ {"version":3,"file":"createConversationTopicOptions.builder.js","names":["id","name","description","fields","nameReadable","namedTemplateItemBuilder","label","hint","nameCamel"],"sources":["../../../src/schemas/v2020_07_22/createConversationTopicOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createConversationTopicOptions',\n\tname: 'Create conversation options',\n\tdescription: 'Define a topic you want to discuss.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Topic',\n\t\t\thint: 'What should we talk about or try and get done, e.g. Book an appointment or tell a knock knock joke.',\n\t\t},\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,gCADsB;EAE1BC,IAAI,EAAE,6BAFoB;EAG1BC,WAAW,EAAE,qCAHa;EAI1BC,MAAM,EAAE;IACPC,YAAY,kCACRC,8BAAyBF,MAAzB,CAAgCC,YADxB;MAEXE,KAAK,EAAE,OAFI;MAGXC,IAAI,EAAE;IAHK,EADL;IAMPC,SAAS,EAAEH,8BAAyBF,MAAzB,CAAgCK;EANpC;AAJkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/createErrorOptions.builder.ts"],"names":["id","name","description","fields","syncErrorsOptionsBuilder","errorBuilderDestinationDir","type","label","isRequired","isPrivate","hint","defaultValue","nameReadable","namedTemplateItemBuilder","namePascal","nameCamel"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,oBADsB;AAE1BC,EAAAA,IAAI,EAAE,qBAFoB;AAG1BC,EAAAA,WAAW,EAAE,6CAHa;AAI1BC,EAAAA,MAAM,kCACFC,6BAAyBD,MADvB;AAELE,IAAAA,0BAA0B,EAAE;AAC3BC,MAAAA,IAAI,EAAE,MADqB;AAE3BC,MAAAA,KAAK,EAAE,qCAFoB;AAG3BC,MAAAA,UAAU,EAAE,IAHe;AAI3BC,MAAAA,SAAS,EAAE,IAJgB;AAK3BC,MAAAA,IAAI,EAAE,wCALqB;AAM3BC,MAAAA,YAAY,EAAE;AANa,KAFvB;AAULC,IAAAA,YAAY,EAAEC,8BAAyBV,MAAzB,CAAgCS,YAVzC;AAWLE,IAAAA,UAAU,EAAED,8BAAyBV,MAAzB,CAAgCW,UAXvC;AAYLC,IAAAA,SAAS,EAAEF,8BAAyBV,MAAzB,CAAgCY,SAZtC;AAaLb,IAAAA,WAAW,EAAEW,8BAAyBV,MAAzB,CAAgCD;AAbxC;AAJoB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\nimport syncErrorsOptionsBuilder from './syncErrorOptions.builder'\n\nexport default buildSchema({\n\tid: 'createErrorOptions',\n\tname: 'Create error action',\n\tdescription: 'Create a builder for your brand new error! ',\n\tfields: {\n\t\t...syncErrorsOptionsBuilder.fields,\n\t\terrorBuilderDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Error builder destination directory',\n\t\t\tisRequired: true,\n\t\t\tisPrivate: true,\n\t\t\thint: \"Where I'll save your new builder file?\",\n\t\t\tdefaultValue: './src/errors',\n\t\t},\n\t\tnameReadable: namedTemplateItemBuilder.fields.nameReadable,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tdescription: namedTemplateItemBuilder.fields.description,\n\t},\n})\n"],"file":"createErrorOptions.builder.js"}
1
+ {"version":3,"file":"createErrorOptions.builder.js","names":["id","name","description","fields","syncErrorsOptionsBuilder","errorBuilderDestinationDir","type","label","isRequired","isPrivate","hint","defaultValue","nameReadable","namedTemplateItemBuilder","namePascal","nameCamel"],"sources":["../../../src/schemas/v2020_07_22/createErrorOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\nimport syncErrorsOptionsBuilder from './syncErrorOptions.builder'\n\nexport default buildSchema({\n\tid: 'createErrorOptions',\n\tname: 'Create error action',\n\tdescription: 'Create a builder for your brand new error! ',\n\tfields: {\n\t\t...syncErrorsOptionsBuilder.fields,\n\t\terrorBuilderDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Error builder destination directory',\n\t\t\tisRequired: true,\n\t\t\tisPrivate: true,\n\t\t\thint: \"Where I'll save your new builder file?\",\n\t\t\tdefaultValue: './src/errors',\n\t\t},\n\t\tnameReadable: namedTemplateItemBuilder.fields.nameReadable,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tdescription: namedTemplateItemBuilder.fields.description,\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,qBAFoB;EAG1BC,WAAW,EAAE,6CAHa;EAI1BC,MAAM,kCACFC,6BAAyBD,MADvB;IAELE,0BAA0B,EAAE;MAC3BC,IAAI,EAAE,MADqB;MAE3BC,KAAK,EAAE,qCAFoB;MAG3BC,UAAU,EAAE,IAHe;MAI3BC,SAAS,EAAE,IAJgB;MAK3BC,IAAI,EAAE,wCALqB;MAM3BC,YAAY,EAAE;IANa,CAFvB;IAULC,YAAY,EAAEC,8BAAyBV,MAAzB,CAAgCS,YAVzC;IAWLE,UAAU,EAAED,8BAAyBV,MAAzB,CAAgCW,UAXvC;IAYLC,SAAS,EAAEF,8BAAyBV,MAAzB,CAAgCY,SAZtC;IAaLb,WAAW,EAAEW,8BAAyBV,MAAzB,CAAgCD;EAbxC;AAJoB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/createOrganizationOptions.builder.ts"],"names":["id","name","description","fields","nameReadable","namedTemplateItemBuilder","label","nameKebab"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,2BADsB;AAE1BC,EAAAA,IAAI,EAAE,4BAFoB;AAG1BC,EAAAA,WAAW,EACV,8KAJyB;AAK1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,YAAY,kCACRC,8BAAyBF,MAAzB,CAAgCC,YADxB;AAEXE,MAAAA,KAAK,EAAE;AAFI,MADL;AAKPC,IAAAA,SAAS,kCACLF,8BAAyBF,MAAzB,CAAgCI,SAD3B;AAERD,MAAAA,KAAK,EAAE;AAFC;AALF;AALkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createOrganizationOptions',\n\tname: 'create organization action',\n\tdescription:\n\t\t'Skills can only communicate with people and skills associated with the same organization. This ensures people can get differentiated experiences across multiple businesses.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Name',\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemBuilder.fields.nameKebab,\n\t\t\tlabel: 'Slug',\n\t\t},\n\t},\n})\n"],"file":"createOrganizationOptions.builder.js"}
1
+ {"version":3,"file":"createOrganizationOptions.builder.js","names":["id","name","description","fields","nameReadable","namedTemplateItemBuilder","label","nameKebab"],"sources":["../../../src/schemas/v2020_07_22/createOrganizationOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createOrganizationOptions',\n\tname: 'create organization action',\n\tdescription:\n\t\t'Skills can only communicate with people and skills associated with the same organization. This ensures people can get differentiated experiences across multiple businesses.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Name',\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemBuilder.fields.nameKebab,\n\t\t\tlabel: 'Slug',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,2BADsB;EAE1BC,IAAI,EAAE,4BAFoB;EAG1BC,WAAW,EACV,8KAJyB;EAK1BC,MAAM,EAAE;IACPC,YAAY,kCACRC,8BAAyBF,MAAzB,CAAgCC,YADxB;MAEXE,KAAK,EAAE;IAFI,EADL;IAKPC,SAAS,kCACLF,8BAAyBF,MAAzB,CAAgCI,SAD3B;MAERD,KAAK,EAAE;IAFC;EALF;AALkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/createSchemaOptions.builder.ts"],"names":["id","name","description","fields","syncSchemasOptionsBuilder","schemaBuilderDestinationDir","type","label","hint","defaultValue","builderFunction","isPrivate","moduleToImportFromWhenRemote","syncAfterCreate","version","nameReadable","namedTemplateItemBuilder","namePascal","nameCamel"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,qBADsB;AAE1BC,EAAAA,IAAI,EAAE,eAFoB;AAG1BC,EAAAA,WAAW,EAAE,2CAHa;AAI1BC,EAAAA,MAAM,kCACFC,+BAA0BD,MADxB;AAELE,IAAAA,2BAA2B,EAAE;AAC5BC,MAAAA,IAAI,EAAE,MADsB;AAE5BC,MAAAA,KAAK,EAAE,sCAFqB;AAG5BC,MAAAA,IAAI,EAAE,yCAHsB;AAI5BC,MAAAA,YAAY,EAAE;AAJc,KAFxB;AAQLC,IAAAA,eAAe,EAAE;AAChBJ,MAAAA,IAAI,EAAE,MADU;AAEhBC,MAAAA,KAAK,EAAE,kBAFS;AAGhBC,MAAAA,IAAI,EAAE,sCAHU;AAIhBC,MAAAA,YAAY,EAAE,aAJE;AAKhBE,MAAAA,SAAS,EAAE;AALK,KARZ;AAeLC,IAAAA,4BAA4B,EAAE;AAC7BN,MAAAA,IAAI,EAAE,MADuB;AAE7BC,MAAAA,KAAK,EAAE,eAFsB;AAG7BC,MAAAA,IAAI,EAAE;AAHuB,KAfzB;AAoBLK,IAAAA,eAAe,EAAE;AAChBP,MAAAA,IAAI,EAAE,SADU;AAEhBC,MAAAA,KAAK,EAAE,qBAFS;AAGhBC,MAAAA,IAAI,EAAE,+EAHU;AAIhBG,MAAAA,SAAS,EAAE,IAJK;AAKhBF,MAAAA,YAAY,EAAE;AALE,KApBZ;AA2BLK,IAAAA,OAAO,EAAE;AACRR,MAAAA,IAAI,EAAE,MADE;AAERC,MAAAA,KAAK,EAAE,SAFC;AAGRC,MAAAA,IAAI,EAAE,mEAHE;AAIRG,MAAAA,SAAS,EAAE;AAJH,KA3BJ;AAiCLI,IAAAA,YAAY,EAAEC,8BAAyBb,MAAzB,CAAgCY,YAjCzC;AAkCLE,IAAAA,UAAU,EAAED,8BAAyBb,MAAzB,CAAgCc,UAlCvC;AAmCLC,IAAAA,SAAS,EAAEF,8BAAyBb,MAAzB,CAAgCe,SAnCtC;AAoCLhB,IAAAA,WAAW,EAAEc,8BAAyBb,MAAzB,CAAgCD;AApCxC;AAJoB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\nimport syncSchemasOptionsBuilder from './syncSchemasOptions.builder'\n\nexport default buildSchema({\n\tid: 'createSchemaOptions',\n\tname: 'Create schema',\n\tdescription: 'Create the builder to a fresh new schema!',\n\tfields: {\n\t\t...syncSchemasOptionsBuilder.fields,\n\t\tschemaBuilderDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Schema builder destination directory',\n\t\t\thint: \"Where I'll save the new schema builder.\",\n\t\t\tdefaultValue: 'src/schemas',\n\t\t},\n\t\tbuilderFunction: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Builder function',\n\t\t\thint: 'The function that builds this schema',\n\t\t\tdefaultValue: 'buildSchema',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tmoduleToImportFromWhenRemote: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Source module',\n\t\t\thint: 'If this schema should be imported from a node module vs generated locally.',\n\t\t},\n\t\tsyncAfterCreate: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Sync after creation',\n\t\t\thint: 'This will ensure types and schemas are in sync after you create your builder.',\n\t\t\tisPrivate: true,\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tnameReadable: namedTemplateItemBuilder.fields.nameReadable,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tdescription: namedTemplateItemBuilder.fields.description,\n\t},\n})\n"],"file":"createSchemaOptions.builder.js"}
1
+ {"version":3,"file":"createSchemaOptions.builder.js","names":["id","name","description","fields","syncSchemasOptionsBuilder","schemaBuilderDestinationDir","type","label","hint","defaultValue","builderFunction","isPrivate","moduleToImportFromWhenRemote","syncAfterCreate","version","nameReadable","namedTemplateItemBuilder","namePascal","nameCamel"],"sources":["../../../src/schemas/v2020_07_22/createSchemaOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\nimport syncSchemasOptionsBuilder from './syncSchemasOptions.builder'\n\nexport default buildSchema({\n\tid: 'createSchemaOptions',\n\tname: 'Create schema',\n\tdescription: 'Create the builder to a fresh new schema!',\n\tfields: {\n\t\t...syncSchemasOptionsBuilder.fields,\n\t\tschemaBuilderDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Schema builder destination directory',\n\t\t\thint: \"Where I'll save the new schema builder.\",\n\t\t\tdefaultValue: 'src/schemas',\n\t\t},\n\t\tbuilderFunction: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Builder function',\n\t\t\thint: 'The function that builds this schema',\n\t\t\tdefaultValue: 'buildSchema',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tmoduleToImportFromWhenRemote: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Source module',\n\t\t\thint: 'If this schema should be imported from a node module vs generated locally.',\n\t\t},\n\t\tsyncAfterCreate: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Sync after creation',\n\t\t\thint: 'This will ensure types and schemas are in sync after you create your builder.',\n\t\t\tisPrivate: true,\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tnameReadable: namedTemplateItemBuilder.fields.nameReadable,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tdescription: namedTemplateItemBuilder.fields.description,\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,qBADsB;EAE1BC,IAAI,EAAE,eAFoB;EAG1BC,WAAW,EAAE,2CAHa;EAI1BC,MAAM,kCACFC,+BAA0BD,MADxB;IAELE,2BAA2B,EAAE;MAC5BC,IAAI,EAAE,MADsB;MAE5BC,KAAK,EAAE,sCAFqB;MAG5BC,IAAI,EAAE,yCAHsB;MAI5BC,YAAY,EAAE;IAJc,CAFxB;IAQLC,eAAe,EAAE;MAChBJ,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,kBAFS;MAGhBC,IAAI,EAAE,sCAHU;MAIhBC,YAAY,EAAE,aAJE;MAKhBE,SAAS,EAAE;IALK,CARZ;IAeLC,4BAA4B,EAAE;MAC7BN,IAAI,EAAE,MADuB;MAE7BC,KAAK,EAAE,eAFsB;MAG7BC,IAAI,EAAE;IAHuB,CAfzB;IAoBLK,eAAe,EAAE;MAChBP,IAAI,EAAE,SADU;MAEhBC,KAAK,EAAE,qBAFS;MAGhBC,IAAI,EAAE,+EAHU;MAIhBG,SAAS,EAAE,IAJK;MAKhBF,YAAY,EAAE;IALE,CApBZ;IA2BLK,OAAO,EAAE;MACRR,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,IAAI,EAAE,mEAHE;MAIRG,SAAS,EAAE;IAJH,CA3BJ;IAiCLI,YAAY,EAAEC,8BAAyBb,MAAzB,CAAgCY,YAjCzC;IAkCLE,UAAU,EAAED,8BAAyBb,MAAzB,CAAgCc,UAlCvC;IAmCLC,SAAS,EAAEF,8BAAyBb,MAAzB,CAAgCe,SAnCtC;IAoCLhB,WAAW,EAAEc,8BAAyBb,MAAzB,CAAgCD;EApCxC;AAJoB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/createTestOptions.builder.ts"],"names":["id","name","description","fields","type","label","isRequired","options","choices","value","nameReadable","hint","testDestinationDir","defaultValue","nameCamel","namedTemplateItemBuilder","namePascal"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,mBADsB;AAE1BC,EAAAA,IAAI,EAAE,oBAFoB;AAG1BC,EAAAA,WAAW,EAAE,iDAHa;AAI1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,IAAI,EAAE;AACLA,MAAAA,IAAI,EAAE,QADD;AAELC,MAAAA,KAAK,EAAE,cAFF;AAGLC,MAAAA,UAAU,EAAE,IAHP;AAILC,MAAAA,OAAO,EAAE;AACRC,QAAAA,OAAO,EAAE,CACR;AAAEC,UAAAA,KAAK,EAAE,YAAT;AAAuBJ,UAAAA,KAAK,EAAE;AAA9B,SADQ,EAER;AAAEI,UAAAA,KAAK,EAAE,gBAAT;AAA2BJ,UAAAA,KAAK,EAAE;AAAlC,SAFQ;AADD;AAJJ,KADC;AAYPK,IAAAA,YAAY,EAAE;AACbN,MAAAA,IAAI,EAAE,MADO;AAEbC,MAAAA,KAAK,EAAE,uBAFM;AAGbC,MAAAA,UAAU,EAAE,IAHC;AAIbK,MAAAA,IAAI,EAAE;AAJO,KAZP;AAkBPC,IAAAA,kBAAkB,EAAE;AACnBR,MAAAA,IAAI,EAAE,MADa;AAEnBC,MAAAA,KAAK,EAAE,4BAFY;AAGnBM,MAAAA,IAAI,EAAE,gCAHa;AAInBE,MAAAA,YAAY,EAAE;AAJK,KAlBb;AAwBPC,IAAAA,SAAS,EAAEC,8BAAyBZ,MAAzB,CAAgCW,SAxBpC;AAyBPE,IAAAA,UAAU,EAAED,8BAAyBZ,MAAzB,CAAgCa;AAzBrC;AAJkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createTestOptions',\n\tname: 'Create test action',\n\tdescription: 'Your first failing test just a command away! ⚔️',\n\tfields: {\n\t\ttype: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Type of test',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: 'behavioral', label: 'Behavioral' },\n\t\t\t\t\t{ value: 'implementation', label: 'Implementation' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'What are you testing?',\n\t\t\tisRequired: true,\n\t\t\thint: 'E.g. Booking an appointment or turning on a light',\n\t\t},\n\t\ttestDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Test destination directory',\n\t\t\thint: \"Where I'll save your new test.\",\n\t\t\tdefaultValue: 'src/__tests__',\n\t\t},\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t},\n})\n"],"file":"createTestOptions.builder.js"}
1
+ {"version":3,"file":"createTestOptions.builder.js","names":["id","name","description","fields","type","label","isRequired","options","choices","value","nameReadable","hint","testDestinationDir","defaultValue","nameCamel","namedTemplateItemBuilder","namePascal"],"sources":["../../../src/schemas/v2020_07_22/createTestOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createTestOptions',\n\tname: 'Create test action',\n\tdescription: 'Your first failing test just a command away! ⚔️',\n\tfields: {\n\t\ttype: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Type of test',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: 'behavioral', label: 'Behavioral' },\n\t\t\t\t\t{ value: 'implementation', label: 'Implementation' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'What are you testing?',\n\t\t\tisRequired: true,\n\t\t\thint: 'E.g. Booking an appointment or turning on a light',\n\t\t},\n\t\ttestDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Test destination directory',\n\t\t\thint: \"Where I'll save your new test.\",\n\t\t\tdefaultValue: 'src/__tests__',\n\t\t},\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t},\n})\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mBADsB;EAE1BC,IAAI,EAAE,oBAFoB;EAG1BC,WAAW,EAAE,iDAHa;EAI1BC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLA,IAAI,EAAE,QADD;MAELC,KAAK,EAAE,cAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UAAEC,KAAK,EAAE,YAAT;UAAuBJ,KAAK,EAAE;QAA9B,CADQ,EAER;UAAEI,KAAK,EAAE,gBAAT;UAA2BJ,KAAK,EAAE;QAAlC,CAFQ;MADD;IAJJ,CADC;IAYPK,YAAY,EAAE;MACbN,IAAI,EAAE,MADO;MAEbC,KAAK,EAAE,uBAFM;MAGbC,UAAU,EAAE,IAHC;MAIbK,IAAI,EAAE;IAJO,CAZP;IAkBPC,kBAAkB,EAAE;MACnBR,IAAI,EAAE,MADa;MAEnBC,KAAK,EAAE,4BAFY;MAGnBM,IAAI,EAAE,gCAHa;MAInBE,YAAY,EAAE;IAJK,CAlBb;IAwBPC,SAAS,EAAEC,8BAAyBZ,MAAzB,CAAgCW,SAxBpC;IAyBPE,UAAU,EAAED,8BAAyBZ,MAAzB,CAAgCa;EAzBrC;AAJkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.ts"],"names":["id","name","description","fields","organizationId","type","label"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,mCADsB;AAE1BC,EAAAA,IAAI,EAAE,sCAFoB;AAG1BC,EAAAA,WAAW,EAAE,8DAHa;AAI1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,cAAc,EAAE;AACfC,MAAAA,IAAI,EAAE,IADS;AAEfC,MAAAA,KAAK,EAAE;AAFQ;AADT;AAJkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'installSkillAtOrganizationOptions',\n\tname: 'install skill at organization action',\n\tdescription: 'Install your skill at any organization you are connected to.',\n\tfields: {\n\t\torganizationId: {\n\t\t\ttype: 'id',\n\t\t\tlabel: 'Organization id',\n\t\t},\n\t},\n})\n"],"file":"installSkillAtOrganizationOptions.builder.js"}
1
+ {"version":3,"file":"installSkillAtOrganizationOptions.builder.js","names":["id","name","description","fields","organizationId","type","label"],"sources":["../../../src/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'installSkillAtOrganizationOptions',\n\tname: 'install skill at organization action',\n\tdescription: 'Install your skill at any organization you are connected to.',\n\tfields: {\n\t\torganizationId: {\n\t\t\ttype: 'id',\n\t\t\tlabel: 'Organization id',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mCADsB;EAE1BC,IAAI,EAAE,sCAFoB;EAG1BC,WAAW,EAAE,8DAHa;EAI1BC,MAAM,EAAE;IACPC,cAAc,EAAE;MACfC,IAAI,EAAE,IADS;MAEfC,KAAK,EAAE;IAFQ;EADT;AAJkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/listenEventOptions.builder.ts"],"names":["id","name","description","fields","syncEventOptionsBuilder","namespace","type","label","eventName","listenerDestinationDir","hint","defaultValue","version","isPrivate"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,oBADsB;AAE1BC,EAAAA,IAAI,EAAE,wBAFoB;AAG1BC,EAAAA,WAAW,EAAE,2BAHa;AAI1BC,EAAAA,MAAM,kCACFC,6BAAwBD,MADtB;AAELE,IAAAA,SAAS,EAAE;AACVC,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAFN;AAMLC,IAAAA,SAAS,EAAE;AACVF,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE;AAFG,KANN;AAULE,IAAAA,sBAAsB,EAAE;AACvBH,MAAAA,IAAI,EAAE,MADiB;AAEvBC,MAAAA,KAAK,EAAE,8BAFgB;AAGvBG,MAAAA,IAAI,EAAE,oCAHiB;AAIvBC,MAAAA,YAAY,EAAE;AAJS,KAVnB;AAgBLC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,MADE;AAERC,MAAAA,KAAK,EAAE,SAFC;AAGRG,MAAAA,IAAI,EAAE,mEAHE;AAIRG,MAAAA,SAAS,EAAE;AAJH;AAhBJ;AAJoB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport syncEventOptionsBuilder from './syncEventOptions.builder'\n\nexport default buildSchema({\n\tid: 'listenEventOptions',\n\tname: 'Listen to event action',\n\tdescription: 'Options for event.listen.',\n\tfields: {\n\t\t...syncEventOptionsBuilder.fields,\n\t\tnamespace: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t\teventName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event name',\n\t\t},\n\t\tlistenerDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Events destination directory',\n\t\t\thint: 'Where should I add your listeners?',\n\t\t\tdefaultValue: 'src/listeners',\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t},\n})\n"],"file":"listenEventOptions.builder.js"}
1
+ {"version":3,"file":"listenEventOptions.builder.js","names":["id","name","description","fields","syncEventOptionsBuilder","namespace","type","label","eventName","listenerDestinationDir","hint","defaultValue","version","isPrivate"],"sources":["../../../src/schemas/v2020_07_22/listenEventOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport syncEventOptionsBuilder from './syncEventOptions.builder'\n\nexport default buildSchema({\n\tid: 'listenEventOptions',\n\tname: 'Listen to event action',\n\tdescription: 'Options for event.listen.',\n\tfields: {\n\t\t...syncEventOptionsBuilder.fields,\n\t\tnamespace: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t\teventName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event name',\n\t\t},\n\t\tlistenerDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Events destination directory',\n\t\t\thint: 'Where should I add your listeners?',\n\t\t\tdefaultValue: 'src/listeners',\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,wBAFoB;EAG1BC,WAAW,EAAE,2BAHa;EAI1BC,MAAM,kCACFC,6BAAwBD,MADtB;IAELE,SAAS,EAAE;MACVC,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE;IAFG,CAFN;IAMLC,SAAS,EAAE;MACVF,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE;IAFG,CANN;IAULE,sBAAsB,EAAE;MACvBH,IAAI,EAAE,MADiB;MAEvBC,KAAK,EAAE,8BAFgB;MAGvBG,IAAI,EAAE,oCAHiB;MAIvBC,YAAY,EAAE;IAJS,CAVnB;IAgBLC,OAAO,EAAE;MACRN,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRG,IAAI,EAAE,mEAHE;MAIRG,SAAS,EAAE;IAJH;EAhBJ;AAJoB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/namedTemplateItem.builder.ts"],"names":["id","name","description","fields","nameReadable","type","label","hint","isRequired","nameReadablePlural","nameCamel","nameCamelPlural","namePascal","namePascalPlural","nameConst","nameKebab","nameSnake","nameSnakePlural"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,mBADsB;AAE1BC,EAAAA,IAAI,EAAE,mBAFoB;AAG1BC,EAAAA,WAAW,EAAE,4DAHa;AAI1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,YAAY,EAAE;AACbC,MAAAA,IAAI,EAAE,MADO;AAEbC,MAAAA,KAAK,EAAE,eAFM;AAGbC,MAAAA,IAAI,EAAE,2BAHO;AAIbC,MAAAA,UAAU,EAAE;AAJC,KADP;AAOPC,IAAAA,kBAAkB,EAAE;AACnBJ,MAAAA,IAAI,EAAE,MADa;AAEnBC,MAAAA,KAAK,EAAE,wBAFY;AAGnBC,MAAAA,IAAI,EAAE,8CAHa;AAInBC,MAAAA,UAAU,EAAE;AAJO,KAPb;AAaPE,IAAAA,SAAS,EAAE;AACVL,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE,iBAFG;AAGVE,MAAAA,UAAU,EAAE,IAHF;AAIVD,MAAAA,IAAI,EAAE;AAJI,KAbJ;AAmBPI,IAAAA,eAAe,EAAE;AAChBN,MAAAA,IAAI,EAAE,MADU;AAEhBC,MAAAA,KAAK,EAAE,wBAFS;AAGhBC,MAAAA,IAAI,EAAE;AAHU,KAnBV;AAwBPK,IAAAA,UAAU,EAAE;AACXP,MAAAA,IAAI,EAAE,MADK;AAEXC,MAAAA,KAAK,EAAE,kBAFI;AAGXC,MAAAA,IAAI,EAAE;AAHK,KAxBL;AA6BPM,IAAAA,gBAAgB,EAAE;AACjBR,MAAAA,IAAI,EAAE,MADW;AAEjBC,MAAAA,KAAK,EAAE,yBAFU;AAGjBC,MAAAA,IAAI,EAAE;AAHW,KA7BX;AAkCPO,IAAAA,SAAS,EAAE;AACVT,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE,oBAFG;AAGVC,MAAAA,IAAI,EAAE;AAHI,KAlCJ;AAuCPQ,IAAAA,SAAS,EAAE;AACVV,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE,iBAFG;AAGVC,MAAAA,IAAI,EAAE;AAHI,KAvCJ;AA4CPS,IAAAA,SAAS,EAAE;AACVX,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE,iBAFG;AAGVC,MAAAA,IAAI,EAAE;AAHI,KA5CJ;AAiDPU,IAAAA,eAAe,EAAE;AAChBZ,MAAAA,IAAI,EAAE,MADU;AAEhBC,MAAAA,KAAK,EAAE,0BAFS;AAGhBC,MAAAA,IAAI,EAAE;AAHU,KAjDV;AAsDPL,IAAAA,WAAW,EAAE;AACZG,MAAAA,IAAI,EAAE,MADM;AAEZC,MAAAA,KAAK,EAAE,aAFK;AAGZC,MAAAA,IAAI,EAAE;AAHM;AAtDN;AAJkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'namedTemplateItem',\n\tname: 'NamedTemplateItem',\n\tdescription: 'Used to collect input on the names of a class or interface',\n\tfields: {\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Readable name',\n\t\t\thint: 'The name people will read',\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameReadablePlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Readable name (plural)',\n\t\t\thint: 'The plural form of the name people will read',\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Camel case name',\n\t\t\tisRequired: true,\n\t\t\thint: 'camelCase version of the name',\n\t\t},\n\t\tnameCamelPlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Plural camel case name',\n\t\t\thint: 'camelCase version of the name',\n\t\t},\n\t\tnamePascal: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Pascal case name',\n\t\t\thint: 'PascalCase of the name',\n\t\t},\n\t\tnamePascalPlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Plural Pascal case name',\n\t\t\thint: 'PascalCase of the name',\n\t\t},\n\t\tnameConst: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Constant case name',\n\t\t\thint: 'CONST_CASE of the name',\n\t\t},\n\t\tnameKebab: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Kebab case name',\n\t\t\thint: 'kebab-case of the name',\n\t\t},\n\t\tnameSnake: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Snake case name',\n\t\t\thint: 'snake_case of the name',\n\t\t},\n\t\tnameSnakePlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Snake case name (plural)',\n\t\t\thint: 'snakes_case of the name',\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Description',\n\t\t\thint: 'Describe a bit more here',\n\t\t},\n\t},\n})\n"],"file":"namedTemplateItem.builder.js"}
1
+ {"version":3,"file":"namedTemplateItem.builder.js","names":["id","name","description","fields","nameReadable","type","label","hint","isRequired","nameReadablePlural","nameCamel","nameCamelPlural","namePascal","namePascalPlural","nameConst","nameKebab","nameSnake","nameSnakePlural"],"sources":["../../../src/schemas/v2020_07_22/namedTemplateItem.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'namedTemplateItem',\n\tname: 'NamedTemplateItem',\n\tdescription: 'Used to collect input on the names of a class or interface',\n\tfields: {\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Readable name',\n\t\t\thint: 'The name people will read',\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameReadablePlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Readable name (plural)',\n\t\t\thint: 'The plural form of the name people will read',\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Camel case name',\n\t\t\tisRequired: true,\n\t\t\thint: 'camelCase version of the name',\n\t\t},\n\t\tnameCamelPlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Plural camel case name',\n\t\t\thint: 'camelCase version of the name',\n\t\t},\n\t\tnamePascal: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Pascal case name',\n\t\t\thint: 'PascalCase of the name',\n\t\t},\n\t\tnamePascalPlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Plural Pascal case name',\n\t\t\thint: 'PascalCase of the name',\n\t\t},\n\t\tnameConst: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Constant case name',\n\t\t\thint: 'CONST_CASE of the name',\n\t\t},\n\t\tnameKebab: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Kebab case name',\n\t\t\thint: 'kebab-case of the name',\n\t\t},\n\t\tnameSnake: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Snake case name',\n\t\t\thint: 'snake_case of the name',\n\t\t},\n\t\tnameSnakePlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Snake case name (plural)',\n\t\t\thint: 'snakes_case of the name',\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Description',\n\t\t\thint: 'Describe a bit more here',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mBADsB;EAE1BC,IAAI,EAAE,mBAFoB;EAG1BC,WAAW,EAAE,4DAHa;EAI1BC,MAAM,EAAE;IACPC,YAAY,EAAE;MACbC,IAAI,EAAE,MADO;MAEbC,KAAK,EAAE,eAFM;MAGbC,IAAI,EAAE,2BAHO;MAIbC,UAAU,EAAE;IAJC,CADP;IAOPC,kBAAkB,EAAE;MACnBJ,IAAI,EAAE,MADa;MAEnBC,KAAK,EAAE,wBAFY;MAGnBC,IAAI,EAAE,8CAHa;MAInBC,UAAU,EAAE;IAJO,CAPb;IAaPE,SAAS,EAAE;MACVL,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,iBAFG;MAGVE,UAAU,EAAE,IAHF;MAIVD,IAAI,EAAE;IAJI,CAbJ;IAmBPI,eAAe,EAAE;MAChBN,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,wBAFS;MAGhBC,IAAI,EAAE;IAHU,CAnBV;IAwBPK,UAAU,EAAE;MACXP,IAAI,EAAE,MADK;MAEXC,KAAK,EAAE,kBAFI;MAGXC,IAAI,EAAE;IAHK,CAxBL;IA6BPM,gBAAgB,EAAE;MACjBR,IAAI,EAAE,MADW;MAEjBC,KAAK,EAAE,yBAFU;MAGjBC,IAAI,EAAE;IAHW,CA7BX;IAkCPO,SAAS,EAAE;MACVT,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,oBAFG;MAGVC,IAAI,EAAE;IAHI,CAlCJ;IAuCPQ,SAAS,EAAE;MACVV,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,iBAFG;MAGVC,IAAI,EAAE;IAHI,CAvCJ;IA4CPS,SAAS,EAAE;MACVX,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,iBAFG;MAGVC,IAAI,EAAE;IAHI,CA5CJ;IAiDPU,eAAe,EAAE;MAChBZ,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,0BAFS;MAGhBC,IAAI,EAAE;IAHU,CAjDV;IAsDPL,WAAW,EAAE;MACZG,IAAI,EAAE,MADM;MAEZC,KAAK,EAAE,aAFK;MAGZC,IAAI,EAAE;IAHM;EAtDN;AAJkB,CAAZ,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/nodeFeatureOptions.builder.ts"],"names":["id","name","description","fields","destination","type","defaultValue","isRequired","label"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,oBADsB;AAE1BC,EAAAA,IAAI,EAAE,oBAFoB;AAG1BC,EAAAA,WAAW,EACV,uEAJyB;AAK1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,WAAW,EAAE;AACZC,MAAAA,IAAI,EAAE,MADM;AAEZC,MAAAA,YAAY,EAAE;AAFF,KADN;AAKPL,IAAAA,IAAI,EAAE;AACLI,MAAAA,IAAI,EAAE,MADD;AAELE,MAAAA,UAAU,EAAE,IAFP;AAGLC,MAAAA,KAAK,EAAE;AAHF,KALC;AAUPN,IAAAA,WAAW,EAAE;AACZG,MAAAA,IAAI,EAAE,MADM;AAEZE,MAAAA,UAAU,EAAE,IAFA;AAGZC,MAAAA,KAAK,EAAE;AAHK;AAVN;AALkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'nodeFeatureOptions',\n\tname: 'Create node module',\n\tdescription:\n\t\t'Create a new node module, to be written in typescript, ready to rock!',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tdefaultValue: '.',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: \"What's the name of your module?\",\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'How would you describe your module?',\n\t\t},\n\t},\n})\n"],"file":"nodeFeatureOptions.builder.js"}
1
+ {"version":3,"file":"nodeFeatureOptions.builder.js","names":["id","name","description","fields","destination","type","defaultValue","isRequired","label"],"sources":["../../../src/schemas/v2020_07_22/nodeFeatureOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'nodeFeatureOptions',\n\tname: 'Create node module',\n\tdescription:\n\t\t'Create a new node module, to be written in typescript, ready to rock!',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tdefaultValue: '.',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: \"What's the name of your module?\",\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'How would you describe your module?',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,oBAFoB;EAG1BC,WAAW,EACV,uEAJyB;EAK1BC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MADM;MAEZC,YAAY,EAAE;IAFF,CADN;IAKPL,IAAI,EAAE;MACLI,IAAI,EAAE,MADD;MAELE,UAAU,EAAE,IAFP;MAGLC,KAAK,EAAE;IAHF,CALC;IAUPN,WAAW,EAAE;MACZG,IAAI,EAAE,MADM;MAEZE,UAAU,EAAE,IAFA;MAGZC,KAAK,EAAE;IAHK;EAVN;AALkB,CAAZ,C"}