@sprucelabs/spruce-cli 15.4.12 → 17.0.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 (461) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  3. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  43. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  44. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  45. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  63. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  67. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  68. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  69. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  70. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  71. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  89. package/build/GlobalEmitter.js.map +1 -1
  90. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  91. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  92. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  93. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  94. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  95. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  96. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  97. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  98. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  99. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  100. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  101. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  102. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  103. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  104. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  105. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  106. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  107. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  108. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  109. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  110. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  111. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  112. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  113. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  114. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  115. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  116. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  117. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  118. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  119. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  120. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  121. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  122. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  123. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  124. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  125. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  126. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  127. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  128. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  129. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  130. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  131. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  132. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  133. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  135. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  136. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  137. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  138. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  139. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  140. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  141. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  142. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  143. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  144. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  145. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  146. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  147. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  148. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  149. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  150. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  151. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  152. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  153. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
  155. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  156. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  157. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  158. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  159. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  161. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  169. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  171. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  173. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  175. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  176. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  177. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  178. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  179. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  180. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  181. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  182. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  183. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  184. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  185. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  186. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  187. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  188. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  189. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  190. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  191. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  192. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  193. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  194. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  195. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  196. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  197. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  198. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  199. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  200. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  201. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  202. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  203. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  204. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  205. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  206. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  207. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  208. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  209. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  210. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  211. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  212. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  213. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  214. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  215. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  216. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  217. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  218. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  219. package/build/addons/filePrompt.addon.js.map +1 -1
  220. package/build/cli.js.map +1 -1
  221. package/build/components/FormComponent.js.map +1 -1
  222. package/build/components/QuizComponent.js.map +1 -1
  223. package/build/errors/SpruceError.js.map +1 -1
  224. package/build/errors/actionCancelled.builder.js.map +1 -1
  225. package/build/errors/bootError.builder.js.map +1 -1
  226. package/build/errors/buildFailed.builder.js.map +1 -1
  227. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  228. package/build/errors/commandAborted.builder.js.map +1 -1
  229. package/build/errors/commandBlocked.builder.js.map +1 -1
  230. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  231. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  232. package/build/errors/dependencyExists.builder.js.map +1 -1
  233. package/build/errors/deployFailed.builder.js.map +1 -1
  234. package/build/errors/directoryEmpty.builder.js.map +1 -1
  235. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  236. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  237. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  238. package/build/errors/failedToImport.builder.js.map +1 -1
  239. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  240. package/build/errors/fileExists.builder.js.map +1 -1
  241. package/build/errors/generic.builder.js.map +1 -1
  242. package/build/errors/invalidCommand.builder.js.map +1 -1
  243. package/build/errors/invalidEventContract.builder.js.map +1 -1
  244. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  245. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  246. package/build/errors/lintFailed.builder.js.map +1 -1
  247. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  248. package/build/errors/missingDependencies.builder.js.map +1 -1
  249. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  250. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  251. package/build/errors/notImplemented.builder.js.map +1 -1
  252. package/build/errors/notLoggedIn.builder.js.map +1 -1
  253. package/build/errors/schemaExists.builder.js.map +1 -1
  254. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  255. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  256. package/build/errors/skillNotFound.builder.js.map +1 -1
  257. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  258. package/build/errors/skillViewExists.builder.js.map +1 -1
  259. package/build/errors/storeExists.builder.js.map +1 -1
  260. package/build/errors/testFailed.builder.js.map +1 -1
  261. package/build/errors/themeExists.builder.js.map +1 -1
  262. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  263. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  264. package/build/features/AbstractAction.d.ts +1 -1
  265. package/build/features/AbstractAction.js.map +1 -1
  266. package/build/features/AbstractFeature.js.map +1 -1
  267. package/build/features/ActionExecuter.js.map +1 -1
  268. package/build/features/ActionFactory.js.map +1 -1
  269. package/build/features/ActionQuestionAsker.js.map +1 -1
  270. package/build/features/FeatureCommandAttacher.js.map +1 -1
  271. package/build/features/FeatureInstaller.js.map +1 -1
  272. package/build/features/OverrideActionDecorator.js.map +1 -1
  273. package/build/features/cache/CacheFeature.js.map +1 -1
  274. package/build/features/cache/actions/DisableAction.js.map +1 -1
  275. package/build/features/cache/actions/EnableAction.js.map +1 -1
  276. package/build/features/conversation/ConversationFeature.js.map +1 -1
  277. package/build/features/conversation/actions/TestAction.js.map +1 -1
  278. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  279. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  280. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  281. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  282. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  283. package/build/features/deploy/DeployFeature.js.map +1 -1
  284. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  285. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  286. package/build/features/error/ErrorFeature.js.map +1 -1
  287. package/build/features/error/ParentTestFinder.js.map +1 -1
  288. package/build/features/error/actions/CreateAction.js.map +1 -1
  289. package/build/features/error/actions/SyncAction.js.map +1 -1
  290. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  291. package/build/features/event/EventFeature.js.map +1 -1
  292. package/build/features/event/actions/CreateAction.js.map +1 -1
  293. package/build/features/event/actions/ListenAction.js.map +1 -1
  294. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  295. package/build/features/event/actions/SyncAction.js.map +1 -1
  296. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  297. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  298. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  299. package/build/features/event/stores/EventStore.js.map +1 -1
  300. package/build/features/event/stores/ListenerStore.js.map +1 -1
  301. package/build/features/event/writers/EventWriter.js.map +1 -1
  302. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  303. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  304. package/build/features/feature.utilities.js.map +1 -1
  305. package/build/features/features.types.js.map +1 -1
  306. package/build/features/log/LogFeature.js.map +1 -1
  307. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  308. package/build/features/log/writers/LogWriter.js.map +1 -1
  309. package/build/features/node/NodeFeature.js.map +1 -1
  310. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  311. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  312. package/build/features/node/writers/NodeWriter.js.map +1 -1
  313. package/build/features/onboard/OnboardFeature.js.map +1 -1
  314. package/build/features/onboard/ScriptLoader.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  318. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  319. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  320. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  321. package/build/features/organization/OrganizationFeature.js.map +1 -1
  322. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  323. package/build/features/person/PersonFeature.js.map +1 -1
  324. package/build/features/person/actions/LoginAction.js.map +1 -1
  325. package/build/features/person/actions/LogoutAction.js.map +1 -1
  326. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  327. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  328. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  329. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  330. package/build/features/schema/SchemaFeature.js.map +1 -1
  331. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  332. package/build/features/schema/actions/CreateAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncAction.js.map +1 -1
  334. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  335. package/build/features/schema/services/SchemaService.js.map +1 -1
  336. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  337. package/build/features/schema/stores/SchemaStore.js +2 -1
  338. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  339. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  341. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  342. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  343. package/build/features/skill/SkillFeature.js.map +1 -1
  344. package/build/features/skill/actions/BootAction.js.map +1 -1
  345. package/build/features/skill/actions/CreateAction.js.map +1 -1
  346. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  347. package/build/features/skill/actions/LoginAction.js.map +1 -1
  348. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  349. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  350. package/build/features/skill/stores/SkillStore.js.map +1 -1
  351. package/build/features/skill/updaters/Updater.js.map +1 -1
  352. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  353. package/build/features/store/StoreFeature.js.map +1 -1
  354. package/build/features/store/actions/CreateAction.js.map +1 -1
  355. package/build/features/store/actions/SyncAction.js.map +1 -1
  356. package/build/features/store/stores/StoreStore.js.map +1 -1
  357. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  358. package/build/features/store/writers/StoreWriter.js.map +1 -1
  359. package/build/features/test/TestFeature.js.map +1 -1
  360. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  361. package/build/features/test/TestReporter.js.map +1 -1
  362. package/build/features/test/TestRunner.js.map +1 -1
  363. package/build/features/test/actions/CreateAction.js.map +1 -1
  364. package/build/features/test/actions/SetupAction.js.map +1 -1
  365. package/build/features/test/actions/TestAction.js.map +1 -1
  366. package/build/features/test/writers/TestWriter.js.map +1 -1
  367. package/build/features/validateAndNormalize.utility.js.map +1 -1
  368. package/build/features/view/ViewFeature.js.map +1 -1
  369. package/build/features/view/actions/CreateAction.js.map +1 -1
  370. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  371. package/build/features/view/actions/SyncAction.js.map +1 -1
  372. package/build/features/view/actions/WatchAction.js.map +1 -1
  373. package/build/features/view/stores/ViewStore.js.map +1 -1
  374. package/build/features/view/writers/ViewWriter.js.map +1 -1
  375. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  376. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  377. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  378. package/build/features/watch/WatchFeature.js.map +1 -1
  379. package/build/index.js.map +1 -1
  380. package/build/interfaces/SpyInterface.js +0 -1
  381. package/build/interfaces/SpyInterface.js.map +1 -1
  382. package/build/interfaces/TerminalInterface.js.map +1 -1
  383. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  406. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  407. package/build/services/CommandService.d.ts +1 -0
  408. package/build/services/CommandService.js.map +1 -1
  409. package/build/services/GameService.js.map +1 -1
  410. package/build/services/ImportService.js.map +1 -1
  411. package/build/services/LintService.js.map +1 -1
  412. package/build/services/PkgService.js.map +1 -1
  413. package/build/services/ServiceFactory.js.map +1 -1
  414. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  415. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  416. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  417. package/build/tests/AbstractCliTest.js.map +1 -1
  418. package/build/tests/AbstractEventTest.js.map +1 -1
  419. package/build/tests/AbstractSchemaTest.js.map +1 -1
  420. package/build/tests/AbstractTestTest.js.map +1 -1
  421. package/build/tests/CommandFaker.js.map +1 -1
  422. package/build/tests/JestJsonParser.js.map +1 -1
  423. package/build/tests/buildTestCache.js.map +1 -1
  424. package/build/tests/cleanTestCache.js.map +1 -1
  425. package/build/tests/cleanTestData.js.map +1 -1
  426. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  427. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  428. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  429. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  430. package/build/tests/utilities/test.utility.js.map +1 -1
  431. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  432. package/build/utilities/action.utility.js.map +1 -1
  433. package/build/utilities/apiClient.utility.d.ts +1 -1
  434. package/build/utilities/commander.utility.js.map +1 -1
  435. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  436. package/build/utilities/form.utility.js.map +1 -1
  437. package/build/utilities/introspection.utility.js.map +1 -1
  438. package/build/utilities/tsConfig.utility.js.map +1 -1
  439. package/build/widgets/Theme.js.map +1 -1
  440. package/build/widgets/WidgetFactory.js.map +1 -1
  441. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  445. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  446. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  447. package/build/widgets/terminalKit/termKit.utility.d.ts +1 -1
  448. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  449. package/build/widgets/types/input.types.js.map +1 -1
  450. package/build/widgets/types/menuBar.types.js.map +1 -1
  451. package/build/widgets/types/text.types.js.map +1 -1
  452. package/build/widgets/types/window.types.js.map +1 -1
  453. package/build/widgets/widget.utilities.d.ts +1 -1
  454. package/build/writers/AbstractWriter.js.map +1 -1
  455. package/package.json +36 -36
  456. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  457. package/src/features/schema/stores/SchemaStore.ts +4 -2
  458. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  459. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  460. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  461. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAction.js","names":["CreateAction","createErrorActionSchema","options","normalizedOptions","validateAndNormalizeOptions","schemaCreateAction","Action","createSchemaOptions","createSchemaActionSchema","builderFunction","shouldEnableVersioning","syncAfterCreate","schemaBuilderDestinationDir","errorBuilderDestinationDir","execute","createResults","syncOptions","syncErrorActionSchema","syncResults","mergedResults","actionUtil","mergeActionResults","AbstractAction"],"sources":["../../../../src/features/error/actions/CreateAction.ts"],"sourcesContent":["import { normalizeSchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createErrorActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema'\nimport createSchemaActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema'\nimport syncErrorActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.CreateErrorOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateErrorOptions\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createErrorActionSchema\n\tpublic invocationMessage = 'Creating a new error builder... 🤾‍♀️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\tconst schemaCreateAction = this.Action('schema', 'create')\n\n\t\tconst createSchemaOptions = normalizeSchemaValues(\n\t\t\tcreateSchemaActionSchema,\n\t\t\t{\n\t\t\t\t...normalizedOptions,\n\t\t\t\tbuilderFunction: 'buildErrorSchema',\n\t\t\t\tshouldEnableVersioning: false,\n\t\t\t\tsyncAfterCreate: false,\n\t\t\t\tschemaBuilderDestinationDir:\n\t\t\t\t\tnormalizedOptions.errorBuilderDestinationDir,\n\t\t\t}\n\t\t)\n\n\t\tconst createResults = await schemaCreateAction.execute(createSchemaOptions)\n\n\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\tsyncErrorActionSchema,\n\t\t\tnormalizedOptions\n\t\t)\n\t\tconst syncResults = await this.Action('error', 'sync').execute(syncOptions)\n\t\tconst mergedResults = actionUtil.mergeActionResults(\n\t\t\tcreateResults,\n\t\t\tsyncResults\n\t\t)\n\n\t\treturn mergedResults\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAMqBA,Y;;;;;;;;;;;;;;;sGACGC,8B;0GACI,uC;;;;;;;mGAE3B,iBAAqBC,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,iBADP,GAC2B,KAAKC,2BAAL,CAAiCF,OAAjC,CAD3B;gBAGOG,kBAHP,GAG4B,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,CAH5B;gBAKOC,mBALP,GAK6B,mCAC3BC,+BAD2B,kCAGvBL,iBAHuB;kBAI1BM,eAAe,EAAE,kBAJS;kBAK1BC,sBAAsB,EAAE,KALE;kBAM1BC,eAAe,EAAE,KANS;kBAO1BC,2BAA2B,EAC1BT,iBAAiB,CAACU;gBARO,GAL7B;gBAAA;gBAAA,OAiB6BR,kBAAkB,CAACS,OAAnB,CAA2BP,mBAA3B,CAjB7B;;cAAA;gBAiBOQ,aAjBP;gBAmBOC,WAnBP,GAmBqB,mCACnBC,4BADmB,EAEnBd,iBAFmB,CAnBrB;gBAAA;gBAAA,OAuB2B,KAAKG,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BQ,OAA7B,CAAqCE,WAArC,CAvB3B;;cAAA;gBAuBOE,WAvBP;gBAwBOC,aAxBP,GAwBuBC,mBAAWC,kBAAX,CACrBN,aADqB,EAErBG,WAFqB,CAxBvB;gBAAA,iCA6BQC,aA7BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAJyCG,2B"}
1
+ {"version":3,"file":"CreateAction.js","names":["CreateAction","createErrorActionSchema","options","normalizedOptions","validateAndNormalizeOptions","schemaCreateAction","Action","createSchemaOptions","normalizeSchemaValues","createSchemaActionSchema","builderFunction","shouldEnableVersioning","syncAfterCreate","schemaBuilderDestinationDir","errorBuilderDestinationDir","execute","createResults","syncOptions","syncErrorActionSchema","syncResults","mergedResults","actionUtil","mergeActionResults","AbstractAction"],"sources":["../../../../src/features/error/actions/CreateAction.ts"],"sourcesContent":["import { normalizeSchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createErrorActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema'\nimport createSchemaActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema'\nimport syncErrorActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.CreateErrorOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateErrorOptions\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createErrorActionSchema\n\tpublic invocationMessage = 'Creating a new error builder... 🤾‍♀️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\tconst schemaCreateAction = this.Action('schema', 'create')\n\n\t\tconst createSchemaOptions = normalizeSchemaValues(\n\t\t\tcreateSchemaActionSchema,\n\t\t\t{\n\t\t\t\t...normalizedOptions,\n\t\t\t\tbuilderFunction: 'buildErrorSchema',\n\t\t\t\tshouldEnableVersioning: false,\n\t\t\t\tsyncAfterCreate: false,\n\t\t\t\tschemaBuilderDestinationDir:\n\t\t\t\t\tnormalizedOptions.errorBuilderDestinationDir,\n\t\t\t}\n\t\t)\n\n\t\tconst createResults = await schemaCreateAction.execute(createSchemaOptions)\n\n\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\tsyncErrorActionSchema,\n\t\t\tnormalizedOptions\n\t\t)\n\t\tconst syncResults = await this.Action('error', 'sync').execute(syncOptions)\n\t\tconst mergedResults = actionUtil.mergeActionResults(\n\t\t\tcreateResults,\n\t\t\tsyncResults\n\t\t)\n\n\t\treturn mergedResults\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAMqBA,Y;;;;;;;;;;;;;;;sGACGC,8B;0GACI,uC;;;;;;;mGAE3B,iBAAqBC,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,iBADP,GAC2B,KAAKC,2BAAL,CAAiCF,OAAjC,CAD3B;gBAGOG,kBAHP,GAG4B,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,CAH5B;gBAKOC,mBALP,GAK6B,IAAAC,6BAAA,EAC3BC,+BAD2B,kCAGvBN,iBAHuB;kBAI1BO,eAAe,EAAE,kBAJS;kBAK1BC,sBAAsB,EAAE,KALE;kBAM1BC,eAAe,EAAE,KANS;kBAO1BC,2BAA2B,EAC1BV,iBAAiB,CAACW;gBARO,GAL7B;gBAAA;gBAAA,OAiB6BT,kBAAkB,CAACU,OAAnB,CAA2BR,mBAA3B,CAjB7B;;cAAA;gBAiBOS,aAjBP;gBAmBOC,WAnBP,GAmBqB,IAAAT,6BAAA,EACnBU,4BADmB,EAEnBf,iBAFmB,CAnBrB;gBAAA;gBAAA,OAuB2B,KAAKG,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BS,OAA7B,CAAqCE,WAArC,CAvB3B;;cAAA;gBAuBOE,WAvBP;gBAwBOC,aAxBP,GAwBuBC,kBAAA,CAAWC,kBAAX,CACrBN,aADqB,EAErBG,WAFqB,CAxBvB;gBAAA,iCA6BQC,aA7BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAJyCG,2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SyncAction.js","names":["SyncAction","syncErrorActionSchema","options","normalizedOptions","validateAndNormalizeOptions","errorTypesDestinationDir","errorClassDestinationDir","schemaSyncAction","Action","syncErrors","errorSyncResults","errors","areSyncResultsEmpty","deleteOrphanedDirs","meta","schemaTemplateItems","errorTemplateItems","map","item","code","namesUtil","toConst","namePascal","errorWriter","Writer","generateOptionTypes","optionsResults","writeOrAppendErrorsToClass","diskUtil","resolvePath","cwd","errorClassGeneratedFiles","files","deleteDir","resolvedErrorTypesDestinationDir","syncOptions","syncSchemasActionSchema","schemaTypesDestinationDirOrFile","schemaLookupDir","errorLookupDir","shouldEnableVersioning","globalSchemaNamespace","shouldFetchRemoteSchemas","generateFieldTypes","generateStandaloneTypesFile","deleteDestinationDirIfNoSchemas","shouldFetchCoreSchemas","syncingMessage","execute","length","errorGenerator","resolvedTypesDestination","topLevelItems","filter","i","isNested","writeOptionsTypesFile","AbstractAction"],"sources":["../../../../src/features/error/actions/SyncAction.ts"],"sourcesContent":["import {\n\tSchemaTemplateItem,\n\tnormalizeSchemaValues,\n\tSchemaValuesWithDefaults,\n} from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ErrorTemplateItem } from '@sprucelabs/spruce-templates'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport syncErrorActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema'\nimport syncSchemasActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse, FeatureAction } from '../../features.types'\nimport ErrorWriter from '../writers/ErrorWriter'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptions\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = syncErrorActionSchema\n\tpublic commandAliases = ['sync.errors']\n\tpublic invocationMessage = 'Generating error types... 🤾‍♀️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { errorTypesDestinationDir, errorClassDestinationDir } =\n\t\t\tnormalizedOptions\n\n\t\tconst schemaSyncAction = this.Action(\n\t\t\t'schema',\n\t\t\t'sync'\n\t\t) as any as FeatureAction<SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema>\n\n\t\tconst errorSyncResults = await this.syncErrors(\n\t\t\tschemaSyncAction,\n\t\t\tnormalizedOptions\n\t\t)\n\n\t\tif (errorSyncResults.errors) {\n\t\t\treturn errorSyncResults\n\t\t}\n\n\t\tif (this.areSyncResultsEmpty(errorSyncResults)) {\n\t\t\tthis.deleteOrphanedDirs(errorTypesDestinationDir)\n\t\t\treturn {}\n\t\t}\n\n\t\tconst { schemaTemplateItems } = errorSyncResults.meta as {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t}\n\n\t\tconst errorTemplateItems = schemaTemplateItems.map((item) => ({\n\t\t\t...item,\n\t\t\tcode: namesUtil.toConst(item.namePascal),\n\t\t}))\n\n\t\tconst errorWriter = this.Writer('error')\n\n\t\tconst optionsResults = await this.generateOptionTypes(\n\t\t\terrorWriter,\n\t\t\terrorTemplateItems,\n\t\t\terrorTypesDestinationDir\n\t\t)\n\n\t\tconst errorClassGeneratedFiles =\n\t\t\tawait errorWriter.writeOrAppendErrorsToClass(\n\t\t\t\tdiskUtil.resolvePath(this.cwd, errorClassDestinationDir),\n\t\t\t\terrorTemplateItems\n\t\t\t)\n\n\t\treturn {\n\t\t\tfiles: [\n\t\t\t\t...(errorSyncResults.files ?? []),\n\t\t\t\t...errorClassGeneratedFiles,\n\t\t\t\t...optionsResults,\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate deleteOrphanedDirs(errorTypesDestinationDir: string) {\n\t\tdiskUtil.deleteDir(diskUtil.resolvePath(this.cwd, errorTypesDestinationDir))\n\t}\n\n\tprivate async syncErrors(\n\t\tschemaSyncAction: FeatureAction<SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema>,\n\t\tnormalizedOptions: SchemaValuesWithDefaults<SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptionsSchema>\n\t) {\n\t\tconst resolvedErrorTypesDestinationDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tnormalizedOptions.errorTypesDestinationDir,\n\t\t\t'errors.types.ts'\n\t\t)\n\n\t\tconst syncOptions = normalizeSchemaValues(syncSchemasActionSchema, {\n\t\t\t...normalizedOptions,\n\t\t\tschemaTypesDestinationDirOrFile: resolvedErrorTypesDestinationDir,\n\t\t\tschemaLookupDir: normalizedOptions.errorLookupDir,\n\t\t\tshouldEnableVersioning: false,\n\t\t\tglobalSchemaNamespace: 'SpruceErrors',\n\t\t\tshouldFetchRemoteSchemas: false,\n\t\t\tgenerateFieldTypes: true,\n\t\t\tgenerateStandaloneTypesFile: true,\n\t\t\tdeleteDestinationDirIfNoSchemas: true,\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t\tsyncingMessage: 'Syncing errors...',\n\t\t})\n\n\t\tconst errorSyncResults = await schemaSyncAction.execute(syncOptions)\n\n\t\treturn errorSyncResults\n\t}\n\n\tprivate areSyncResultsEmpty(errorSyncResults: FeatureActionResponse) {\n\t\treturn (\n\t\t\t!errorSyncResults.meta ||\n\t\t\t!errorSyncResults.files ||\n\t\t\terrorSyncResults.files.length === 0\n\t\t)\n\t}\n\n\tprivate async generateOptionTypes(\n\t\terrorGenerator: ErrorWriter,\n\t\terrorTemplateItems: ErrorTemplateItem[],\n\t\terrorTypesDestinationDir: string\n\t) {\n\t\tif (errorTemplateItems.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst resolvedTypesDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\terrorTypesDestinationDir\n\t\t)\n\n\t\tconst topLevelItems = errorTemplateItems.filter((i) => !i.isNested)\n\n\t\tconst optionsResults = await errorGenerator.writeOptionsTypesFile(\n\t\t\tresolvedTypesDestination,\n\t\t\ttopLevelItems\n\t\t)\n\n\t\treturn optionsResults\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SyncAction.js","names":["SyncAction","syncErrorActionSchema","options","normalizedOptions","validateAndNormalizeOptions","errorTypesDestinationDir","errorClassDestinationDir","schemaSyncAction","Action","syncErrors","errorSyncResults","errors","areSyncResultsEmpty","deleteOrphanedDirs","meta","schemaTemplateItems","errorTemplateItems","map","item","code","namesUtil","toConst","namePascal","errorWriter","Writer","generateOptionTypes","optionsResults","writeOrAppendErrorsToClass","diskUtil","resolvePath","cwd","errorClassGeneratedFiles","files","deleteDir","resolvedErrorTypesDestinationDir","syncOptions","normalizeSchemaValues","syncSchemasActionSchema","schemaTypesDestinationDirOrFile","schemaLookupDir","errorLookupDir","shouldEnableVersioning","globalSchemaNamespace","shouldFetchRemoteSchemas","generateFieldTypes","generateStandaloneTypesFile","deleteDestinationDirIfNoSchemas","shouldFetchCoreSchemas","syncingMessage","execute","length","errorGenerator","resolvedTypesDestination","topLevelItems","filter","i","isNested","writeOptionsTypesFile","AbstractAction"],"sources":["../../../../src/features/error/actions/SyncAction.ts"],"sourcesContent":["import {\n\tSchemaTemplateItem,\n\tnormalizeSchemaValues,\n\tSchemaValuesWithDefaults,\n} from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ErrorTemplateItem } from '@sprucelabs/spruce-templates'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport syncErrorActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema'\nimport syncSchemasActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse, FeatureAction } from '../../features.types'\nimport ErrorWriter from '../writers/ErrorWriter'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptions\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = syncErrorActionSchema\n\tpublic commandAliases = ['sync.errors']\n\tpublic invocationMessage = 'Generating error types... 🤾‍♀️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { errorTypesDestinationDir, errorClassDestinationDir } =\n\t\t\tnormalizedOptions\n\n\t\tconst schemaSyncAction = this.Action(\n\t\t\t'schema',\n\t\t\t'sync'\n\t\t) as any as FeatureAction<SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema>\n\n\t\tconst errorSyncResults = await this.syncErrors(\n\t\t\tschemaSyncAction,\n\t\t\tnormalizedOptions\n\t\t)\n\n\t\tif (errorSyncResults.errors) {\n\t\t\treturn errorSyncResults\n\t\t}\n\n\t\tif (this.areSyncResultsEmpty(errorSyncResults)) {\n\t\t\tthis.deleteOrphanedDirs(errorTypesDestinationDir)\n\t\t\treturn {}\n\t\t}\n\n\t\tconst { schemaTemplateItems } = errorSyncResults.meta as {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t}\n\n\t\tconst errorTemplateItems = schemaTemplateItems.map((item) => ({\n\t\t\t...item,\n\t\t\tcode: namesUtil.toConst(item.namePascal),\n\t\t}))\n\n\t\tconst errorWriter = this.Writer('error')\n\n\t\tconst optionsResults = await this.generateOptionTypes(\n\t\t\terrorWriter,\n\t\t\terrorTemplateItems,\n\t\t\terrorTypesDestinationDir\n\t\t)\n\n\t\tconst errorClassGeneratedFiles =\n\t\t\tawait errorWriter.writeOrAppendErrorsToClass(\n\t\t\t\tdiskUtil.resolvePath(this.cwd, errorClassDestinationDir),\n\t\t\t\terrorTemplateItems\n\t\t\t)\n\n\t\treturn {\n\t\t\tfiles: [\n\t\t\t\t...(errorSyncResults.files ?? []),\n\t\t\t\t...errorClassGeneratedFiles,\n\t\t\t\t...optionsResults,\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate deleteOrphanedDirs(errorTypesDestinationDir: string) {\n\t\tdiskUtil.deleteDir(diskUtil.resolvePath(this.cwd, errorTypesDestinationDir))\n\t}\n\n\tprivate async syncErrors(\n\t\tschemaSyncAction: FeatureAction<SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema>,\n\t\tnormalizedOptions: SchemaValuesWithDefaults<SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptionsSchema>\n\t) {\n\t\tconst resolvedErrorTypesDestinationDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tnormalizedOptions.errorTypesDestinationDir,\n\t\t\t'errors.types.ts'\n\t\t)\n\n\t\tconst syncOptions = normalizeSchemaValues(syncSchemasActionSchema, {\n\t\t\t...normalizedOptions,\n\t\t\tschemaTypesDestinationDirOrFile: resolvedErrorTypesDestinationDir,\n\t\t\tschemaLookupDir: normalizedOptions.errorLookupDir,\n\t\t\tshouldEnableVersioning: false,\n\t\t\tglobalSchemaNamespace: 'SpruceErrors',\n\t\t\tshouldFetchRemoteSchemas: false,\n\t\t\tgenerateFieldTypes: true,\n\t\t\tgenerateStandaloneTypesFile: true,\n\t\t\tdeleteDestinationDirIfNoSchemas: true,\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t\tsyncingMessage: 'Syncing errors...',\n\t\t})\n\n\t\tconst errorSyncResults = await schemaSyncAction.execute(syncOptions)\n\n\t\treturn errorSyncResults\n\t}\n\n\tprivate areSyncResultsEmpty(errorSyncResults: FeatureActionResponse) {\n\t\treturn (\n\t\t\t!errorSyncResults.meta ||\n\t\t\t!errorSyncResults.files ||\n\t\t\terrorSyncResults.files.length === 0\n\t\t)\n\t}\n\n\tprivate async generateOptionTypes(\n\t\terrorGenerator: ErrorWriter,\n\t\terrorTemplateItems: ErrorTemplateItem[],\n\t\terrorTypesDestinationDir: string\n\t) {\n\t\tif (errorTemplateItems.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst resolvedTypesDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\terrorTypesDestinationDir\n\t\t)\n\n\t\tconst topLevelItems = errorTemplateItems.filter((i) => !i.isNested)\n\n\t\tconst optionsResults = await errorGenerator.writeOptionsTypesFile(\n\t\t\tresolvedTypesDestination,\n\t\t\ttopLevelItems\n\t\t)\n\n\t\treturn optionsResults\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorWriter.js","names":["ErrorWriter","destinationDir","errors","results","length","Error","resolvedDestination","diskUtil","resolvePath","doesFileExist","ui","startLoading","errorContents","templates","error","filter","isNested","writeFileIfChangedMixinResults","dropInNewErrorCases","updates","push","description","lint","destinationFile","dropInErrorCaseIfMissing","dropInResults","errorBlock","renderClassDefinition","currentErrorContents","readFile","blockMatches","search","doesErrorCaseExist","newErrorContents","substring","code","currentContents","RegExp","errorTemplateItems","contents","errorOptionsTypes","options","destination","cwd","resolveHashSprucePath","pluginContents","errorPlugin","AbstractWriter"],"sources":["../../../../src/features/error/writers/ErrorWriter.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ErrorTemplateItem } from '@sprucelabs/spruce-templates'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class ErrorWriter extends AbstractWriter {\n\tpublic async writeOrAppendErrorsToClass(\n\t\tdestinationDir: string,\n\t\terrors: ErrorTemplateItem[]\n\t): Promise<WriteResults> {\n\t\tlet results: WriteResults = []\n\n\t\tif (errors.length === 0) {\n\t\t\t// todo move to proper error\n\t\t\tthrow new Error('Need at least one error')\n\t\t}\n\n\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\tdestinationDir,\n\t\t\t`SpruceError.ts`\n\t\t)\n\n\t\tif (!diskUtil.doesFileExist(resolvedDestination)) {\n\t\t\tthis.ui.startLoading('Creating Error class')\n\n\t\t\tconst errorContents = this.templates.error({\n\t\t\t\terrors: errors.filter((error) => !error.isNested),\n\t\t\t})\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedDestination,\n\t\t\t\terrorContents,\n\t\t\t\t'A new subclass of SpruceBaseError where you can control your error messaging.',\n\t\t\t\tresults\n\t\t\t)\n\t\t} else {\n\t\t\tthis.ui.startLoading('Updating Error class')\n\n\t\t\tconst updates = await this.dropInNewErrorCases(\n\t\t\t\terrors,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\t\t\tif (updates.length > 0) {\n\t\t\t\tresults.push({\n\t\t\t\t\t...updates[0],\n\t\t\t\t\tdescription: `${updates.length} new error cases were dropped in.`,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tawait this.lint(resolvedDestination)\n\n\t\treturn results\n\t}\n\n\tprivate async dropInNewErrorCases(\n\t\terrors: ErrorTemplateItem[],\n\t\tdestinationFile: string\n\t) {\n\t\tlet results: GeneratedFile[] = []\n\n\t\tfor (const error of errors) {\n\t\t\tif (!error.isNested) {\n\t\t\t\tconst dropInResults = await this.dropInErrorCaseIfMissing(\n\t\t\t\t\terror,\n\t\t\t\t\tdestinationFile\n\t\t\t\t)\n\t\t\t\tresults.push(...dropInResults)\n\t\t\t}\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async dropInErrorCaseIfMissing(\n\t\terror: ErrorTemplateItem,\n\t\tdestinationFile: string\n\t) {\n\t\tlet results: GeneratedFile[] = []\n\t\tconst errorBlock = this.templates.error({\n\t\t\terrors: [error],\n\t\t\trenderClassDefinition: false,\n\t\t})\n\n\t\t// Try and drop in the block right before \"default:\"\n\t\tconst currentErrorContents = diskUtil.readFile(destinationFile)\n\t\tconst blockMatches = currentErrorContents.search(/default:/g)\n\t\tif (\n\t\t\tblockMatches > -1 &&\n\t\t\t!this.doesErrorCaseExist(currentErrorContents, error)\n\t\t) {\n\t\t\tconst newErrorContents =\n\t\t\t\tcurrentErrorContents.substring(0, blockMatches) +\n\t\t\t\t'\\n' +\n\t\t\t\terrorBlock +\n\t\t\t\t'\\n' +\n\t\t\t\tcurrentErrorContents.substring(blockMatches)\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tdestinationFile,\n\t\t\t\tnewErrorContents,\n\t\t\t\t`A new block was added to handle ${error.code}.`,\n\t\t\t\tresults\n\t\t\t)\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate doesErrorCaseExist(\n\t\tcurrentContents: string,\n\t\terror: ErrorTemplateItem\n\t) {\n\t\treturn currentContents.search(new RegExp(`case '${error.code}':`)) > -1\n\t}\n\n\tpublic async writeOptionsTypesFile(\n\t\tdestinationDir: string,\n\t\terrorTemplateItems: ErrorTemplateItem[]\n\t): Promise<WriteResults> {\n\t\tconst contents = this.templates.errorOptionsTypes({\n\t\t\toptions: errorTemplateItems,\n\t\t})\n\n\t\tconst destination = diskUtil.resolvePath(destinationDir, 'options.types.ts')\n\n\t\tthis.ui.startLoading('Updating error options...')\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'A union of all possible error codes and their options.'\n\t\t)\n\n\t\tawait this.lint(destination)\n\n\t\treturn results\n\t}\n\n\tpublic async writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'error.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.errorPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Supports your skill with Error generation and handling.'\n\t\t)\n\n\t\tawait this.lint(destination)\n\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ErrorWriter.js","names":["ErrorWriter","destinationDir","errors","results","length","Error","resolvedDestination","diskUtil","resolvePath","doesFileExist","ui","startLoading","errorContents","templates","error","filter","isNested","writeFileIfChangedMixinResults","dropInNewErrorCases","updates","push","description","lint","destinationFile","dropInErrorCaseIfMissing","dropInResults","errorBlock","renderClassDefinition","currentErrorContents","readFile","blockMatches","search","doesErrorCaseExist","newErrorContents","substring","code","currentContents","RegExp","errorTemplateItems","contents","errorOptionsTypes","options","destination","cwd","resolveHashSprucePath","pluginContents","errorPlugin","AbstractWriter"],"sources":["../../../../src/features/error/writers/ErrorWriter.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ErrorTemplateItem } from '@sprucelabs/spruce-templates'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class ErrorWriter extends AbstractWriter {\n\tpublic async writeOrAppendErrorsToClass(\n\t\tdestinationDir: string,\n\t\terrors: ErrorTemplateItem[]\n\t): Promise<WriteResults> {\n\t\tlet results: WriteResults = []\n\n\t\tif (errors.length === 0) {\n\t\t\t// todo move to proper error\n\t\t\tthrow new Error('Need at least one error')\n\t\t}\n\n\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\tdestinationDir,\n\t\t\t`SpruceError.ts`\n\t\t)\n\n\t\tif (!diskUtil.doesFileExist(resolvedDestination)) {\n\t\t\tthis.ui.startLoading('Creating Error class')\n\n\t\t\tconst errorContents = this.templates.error({\n\t\t\t\terrors: errors.filter((error) => !error.isNested),\n\t\t\t})\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedDestination,\n\t\t\t\terrorContents,\n\t\t\t\t'A new subclass of SpruceBaseError where you can control your error messaging.',\n\t\t\t\tresults\n\t\t\t)\n\t\t} else {\n\t\t\tthis.ui.startLoading('Updating Error class')\n\n\t\t\tconst updates = await this.dropInNewErrorCases(\n\t\t\t\terrors,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\t\t\tif (updates.length > 0) {\n\t\t\t\tresults.push({\n\t\t\t\t\t...updates[0],\n\t\t\t\t\tdescription: `${updates.length} new error cases were dropped in.`,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tawait this.lint(resolvedDestination)\n\n\t\treturn results\n\t}\n\n\tprivate async dropInNewErrorCases(\n\t\terrors: ErrorTemplateItem[],\n\t\tdestinationFile: string\n\t) {\n\t\tlet results: GeneratedFile[] = []\n\n\t\tfor (const error of errors) {\n\t\t\tif (!error.isNested) {\n\t\t\t\tconst dropInResults = await this.dropInErrorCaseIfMissing(\n\t\t\t\t\terror,\n\t\t\t\t\tdestinationFile\n\t\t\t\t)\n\t\t\t\tresults.push(...dropInResults)\n\t\t\t}\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async dropInErrorCaseIfMissing(\n\t\terror: ErrorTemplateItem,\n\t\tdestinationFile: string\n\t) {\n\t\tlet results: GeneratedFile[] = []\n\t\tconst errorBlock = this.templates.error({\n\t\t\terrors: [error],\n\t\t\trenderClassDefinition: false,\n\t\t})\n\n\t\t// Try and drop in the block right before \"default:\"\n\t\tconst currentErrorContents = diskUtil.readFile(destinationFile)\n\t\tconst blockMatches = currentErrorContents.search(/default:/g)\n\t\tif (\n\t\t\tblockMatches > -1 &&\n\t\t\t!this.doesErrorCaseExist(currentErrorContents, error)\n\t\t) {\n\t\t\tconst newErrorContents =\n\t\t\t\tcurrentErrorContents.substring(0, blockMatches) +\n\t\t\t\t'\\n' +\n\t\t\t\terrorBlock +\n\t\t\t\t'\\n' +\n\t\t\t\tcurrentErrorContents.substring(blockMatches)\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tdestinationFile,\n\t\t\t\tnewErrorContents,\n\t\t\t\t`A new block was added to handle ${error.code}.`,\n\t\t\t\tresults\n\t\t\t)\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate doesErrorCaseExist(\n\t\tcurrentContents: string,\n\t\terror: ErrorTemplateItem\n\t) {\n\t\treturn currentContents.search(new RegExp(`case '${error.code}':`)) > -1\n\t}\n\n\tpublic async writeOptionsTypesFile(\n\t\tdestinationDir: string,\n\t\terrorTemplateItems: ErrorTemplateItem[]\n\t): Promise<WriteResults> {\n\t\tconst contents = this.templates.errorOptionsTypes({\n\t\t\toptions: errorTemplateItems,\n\t\t})\n\n\t\tconst destination = diskUtil.resolvePath(destinationDir, 'options.types.ts')\n\n\t\tthis.ui.startLoading('Updating error options...')\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'A union of all possible error codes and their options.'\n\t\t)\n\n\t\tawait this.lint(destination)\n\n\t\treturn results\n\t}\n\n\tpublic async writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'error.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.errorPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Supports your skill with Error generation and handling.'\n\t\t)\n\n\t\tawait this.lint(destination)\n\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventFeature.js","names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","featureInstaller","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","isRemoteRelevant","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","isUpgrade","syncListenersAndMixinResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"sources":["../../../src/features/event/EventFeature.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\t\tconst isRemoteRelevant =\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\n\t\tif (isRemoteRelevant) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async syncListenersAndMixinResults(results: FeatureActionResponse) {\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled && featureCode === 'node' && actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tresults = await this.Action('event', 'sync').execute({})\n\t\t\tresults = await this.syncListenersAndMixinResults(results)\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EventFeature.js","names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","featureInstaller","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","isRemoteRelevant","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","isUpgrade","syncListenersAndMixinResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"sources":["../../../src/features/event/EventFeature.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\t\tconst isRemoteRelevant =\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\n\t\tif (isRemoteRelevant) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async syncListenersAndMixinResults(results: FeatureActionResponse) {\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled && featureCode === 'node' && actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tresults = await this.Action('event', 'sync').execute({})\n\t\t\tresults = await this.syncListenersAndMixinResults(results)\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAKA;;AACA;;;;;;IAYqBA,Y;;;;;EA+BpB,sBAAmBC,OAAnB,EAA4C;IAAA;;IAAA;IAC3C,0BAAMA,OAAN;IAD2C,yFA9BjB,OA8BiB;IAAA,iGA7BtB,QA6BsB;IAAA,gGA5BvB,sCA4BuB;IAAA,iGA3BD,CAC1C;MAAEC,IAAI,EAAE,QAAR;MAAkBC,UAAU,EAAE;IAA9B,CAD0C,CA2BC;IAAA,wGAxBf,CAC5B;MACCC,IAAI,EAAE;IADP,CAD4B,EAI5B;MACCA,IAAI,EAAE;IADP,CAJ4B,EAO5B;MACCA,IAAI,EAAE;IADP,CAP4B,EAU5B;MACCA,IAAI,EAAE;IADP,CAV4B,EAa5B;MACCA,IAAI,EAAE;IADP,CAb4B,CAwBe;IAAA,+FANxBC,0BAAA,CAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,CAMwB;IAAA,qGAJU,EAIV;IAAA;IAAA;IAG3C,KAAK,MAAKC,OAAL,CAAaC,EAAb,CACJ,0BADI,EAEJ,MAAKC,qBAAL,CAA2BC,IAA3B,gDAFI,CAAL;IAKA,KAAK,MAAKH,OAAL,CAAaC,EAAb,CACJ,sBADI,EAEJ,MAAKG,iBAAL,CAAuBD,IAAvB,gDAFI,CAAL;IAKA,KAAK,MAAKH,OAAL,CAAaC,EAAb,CACJ,qBADI,EAEJ,MAAKI,gBAAL,CAAsBF,IAAtB,gDAFI,CAAL;IAb2C;EAiB3C;;;;;+GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCN,0BAAA,CAASS,SAAT,CAAmBT,0BAAA,CAASC,WAAT,CAAqB,KAAKS,GAA1B,EAA+B,KAA/B,EAAsC,QAAtC,CAAnB;;gBADD;gBAAA,OAEgC,KAAKC,gBAAL,CAAsBC,WAAtB,CAAkC,OAAlC,CAFhC;;cAAA;gBAEOC,gBAFP;;gBAAA,KAGKA,gBAHL;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAIe,KAAKC,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAvC,CAA+C,EAA/C,CAJf;;cAAA;gBAAA;;cAAA;gBAAA,iCAOQ,EAPR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAUA,kBAAgCC,OAAhC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAISC,WAJT,GAIqCD,OAJrC,CAISC,WAJT,EAIsBC,UAJtB,GAIqCF,OAJrC,CAIsBE,UAJtB;gBAMKC,OANL,GAMsC,EANtC;;gBAQC,IAAI,CAAC,KAAKC,gBAAV,EAA4B;kBAC3BC,sBAAA,CAAWC,UAAX;;kBACMC,QAFqB,GAEV,KAAKC,YAAL,CAAkBP,WAAlB,EAA+BC,UAA/B,CAFU;kBAG3B,KAAKE,gBAAL,GAAwBG,QAAxB;gBACA;;gBAED,IAAIN,WAAW,KAAK,MAAhB,IAA0BA,WAAW,KAAK,SAA9C,EAAyD;kBAClDQ,QADkD,GACvC,KAAKC,OAAL,CAAa,eAAb,CADuC;kBAExDD,QAAQ,CAACE,kBAAT;gBACA;;gBAjBF;gBAAA,OAmB2B,KAAKhB,gBAAL,CAAsBC,WAAtB,CAAkC,OAAlC,CAnB3B;;cAAA;gBAmBOA,WAnBP;gBAoBOgB,gBApBP,GAqBEhB,WAAW,KACVK,WAAW,KAAK,OAAhB,IACAA,WAAW,KAAK,eADhB,IAEAC,UAAU,KAAK,OAHL,CAAX,IAIAA,UAAU,KAAK,WAzBjB;;gBAAA,KA2BKU,gBA3BL;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OA4B8B,KAAKC,6BAAL,EA5B9B;;cAAA;gBA4BQC,aA5BR;gBA6BEX,OAAO,GAAGY,kBAAA,CAAWC,kBAAX,CAA8Bb,OAA9B,EAAuCW,aAAvC,CAAV;;cA7BF;gBAAA,kCAgCQX,OAhCR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wHAmCA,kBAA2CA,OAA3C;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAC2B,KAAKL,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAvC,CAA+C,EAA/C,CAD3B;;cAAA;gBACOkB,WADP;gBAECd,OAAO,GAAGY,kBAAA,CAAWC,kBAAX,CAA8Bb,OAA9B,EAAuCc,WAAvC,CAAV;gBAFD,kCAGQd,OAHR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAMA,kBAA+BH,OAA/B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAISC,WAJT,GAIqCD,OAJrC,CAISC,WAJT,EAIsBC,UAJtB,GAIqCF,OAJrC,CAIsBE,UAJtB;gBAAA;gBAAA,OAK2B,KAAKP,gBAAL,CAAsBC,WAAtB,CAAkC,OAAlC,CAL3B;;cAAA;gBAKOA,WALP;gBAOKO,OAPL,GAOe,EAPf;gBASOe,SATP,GAUEtB,WAAW,IAAIK,WAAW,KAAK,MAA/B,IAAyCC,UAAU,KAAK,SAV1D;;gBAAA,KAYKgB,SAZL;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAakB,KAAKpB,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAblB;;cAAA;gBAaEI,OAbF;gBAAA;gBAAA,OAckB,KAAKgB,4BAAL,CAAkChB,OAAlC,CAdlB;;cAAA;gBAcEA,OAdF;;cAAA;gBAiBC,IAAI,KAAKC,gBAAL,KAA0B,KAAKI,YAAL,CAAkBP,WAAlB,EAA+BC,UAA/B,CAA9B,EAA0E;kBACzEG,sBAAA,CAAWC,UAAX;gBACA;;gBAnBF,kCAqBQH,OArBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAwBA,sBAAqBF,WAArB,EAA0CC,UAA1C,EAA8D;MAC7D,iBAAUD,WAAV,cAAyBC,UAAzB;IACA;;;;yHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOkB,MADP,GACgB,KAAKV,OAAL,CAAa,QAAb,CADhB;gBAEOW,CAFP,GAEWD,MAAM,CAACE,SAAP,EAFX;;gBAAA,IAIMD,CAJN;kBAAA;kBAAA;gBAAA;;gBAAA,IAKOE,6BAAA,CAAkBC,gBAAlB,EALP;kBAAA;kBAAA;gBAAA;;gBAAA,MAMS,IAAIC,KAAJ,qEANT;;cAAA;gBAWE,KAAKC,EAAL,CAAQC,WAAR;gBACA,KAAKD,EAAL,CAAQE,UAAR;gBAZF;gBAAA,OAgBwB,KAAK9B,MAAL,CAAY,OAAZ,EAAqB,WAArB,EAAkCC,OAAlC,CAA0C,EAA1C,CAhBxB;;cAAA;gBAgBQI,OAhBR;gBAAA,kCAkBSA,OAlBT;;cAAA;gBAAA,kCAoBS;kBACN0B,YAAY,EAAE,mBAAYR,CAAZ,mBAA0BD,MAAM,CAACU,OAAP,EAA1B;gBADR,CApBT;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHA0BA,kBAAoC9B,OAApC;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAC2B,KAAKL,gBAAL,CAAsBC,WAAtB,CAAkC,KAAKf,IAAvC,CAD3B;;cAAA;gBACOe,WADP;gBAGOmC,QAHP,GAGkB,KAAKrB,OAAL,CAAa,eAAb,EAA8BsB,kBAA9B,EAHlB;;gBAAA,MAKKD,QAAQ,IAAInC,WALjB;kBAAA;kBAAA;gBAAA;;gBAMQqC,MANR,GAMiB,KAAKC,uBAAL,EANjB;gBAAA;gBAAA,OAQ8BD,MAAM,CAACE,sCAAP,qBAC3BnC,OAAO,CAACoC,OADmB,+DACR,EADQ,EAE3BL,QAAQ,CAACM,wBAFkB,CAR9B;;cAAA;gBAQQC,aARR;gBAAA,kCAaS;kBACNF,OAAO,2BAAEE,aAAa,CAACF,OAAhB,yEAA2B;gBAD5B,CAbT;;cAAA;gBAAA,kCAkBQ;kBACNA,OAAO,EAAE;gBADH,CAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAuBA,mCAAiC;MAChC,IAAI,CAAC,KAAKG,eAAV,EAA2B;QAC1B,KAAKA,eAAL,GAAuB,IAAIC,gCAAJ,CAAyB;UAC/C9C,GAAG,EAAE,KAAKA,GADqC;UAE/C+C,aAAa,EAAEC,4BAFgC;UAG/ChB,EAAE,EAAE,KAAKA,EAHsC;UAI/CiB,cAAc,EAAE,KAAKC,MAAL,CAAY,OAAZ,CAJ+B;UAK/CC,UAAU,EAAE,KAAKC,KAAL,CAAW,OAAX,CALmC;UAM/CC,UAAU,EAAE,KAAKD,KAAL,CAAW,OAAX,CANmC;UAO/CE,iBAAiB,EAAE,KAAKtC,OAAL,CAAa,YAAb;QAP4B,CAAzB,CAAvB;MASA;;MAED,OAAO,KAAK6B,eAAZ;IACA;;;WAED,yBAAuB;MACtB,IAAIvD,0BAAA,CAASiE,uBAAT,CAAiC,KAAKvD,GAAtC,CAAJ,EAAgD;QAC/C,IAAMuC,MAAM,GAAG,KAAKW,MAAL,CAAY,OAAZ,CAAf;QAEA,OAAOX,MAAM,CAACiB,8BAAP,CAAsC,KAAKxD,GAA3C,CAAP;MACA;;MAED,OAAO,KAAP;IACA;;;EA1MwCyD,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAction.js","names":["optionsSchema","id","description","fields","nameReadable","namedTemplateItemBuilder","isRequired","nameKebab","label","hint","nameCamel","isGlobal","type","version","isPrivate","syncEventActionBuilder","CreateAction","options","validateAndNormalizeOptions","Store","loadCurrentSkill","skill","slug","errors","SpruceError","code","destinationDir","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","Writer","writeEvent","files","syncOptions","syncEventActionSchema","shouldIncludePrivateFields","Action","execute","syncResponse","fqen","eventNameUtil","join","eventName","eventNamespace","actionUtil","mergeActionResults","meta","AbstractAction"],"sources":["../../../../src/features/event/actions/CreateAction.ts"],"sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaValues,\n\tSchemaValues,\n} from '@sprucelabs/schema'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport namedTemplateItemBuilder from '../../../schemas/v2020_07_22/namedTemplateItem.builder'\nimport syncEventActionBuilder from '../../../schemas/v2020_07_22/syncEventOptions.builder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'createEventAction',\n\tdescription:\n\t\t\"Create a new event and I'll register it with Mercury when you boot the skill!\",\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemBuilder.fields.nameKebab,\n\t\t\tlabel: 'Event name',\n\t\t\thint: `kebab-case`,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\t...namedTemplateItemBuilder.fields.nameCamel,\n\t\t\tisRequired: true,\n\t\t},\n\t\tisGlobal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Is this a global event?',\n\t\t\thint: \"This will allow skills to listen without being installed at the same organization. You'll need permission to make this happen.\",\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\tisPrivate: true,\n\t\t},\n\t\t...syncEventActionBuilder.fields,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Creating a new event signature... 🜒'\n\n\tpublic async execute(\n\t\toptions: SchemaValues<OptionsSchema>\n\t): Promise<FeatureActionResponse> {\n\t\tlet { nameKebab, nameReadable, nameCamel, version, isGlobal } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tif (!skill.id || !skill.slug) {\n\t\t\treturn {\n\t\t\t\terrors: [new SpruceError({ code: 'SKILL_NOT_REGISTERED' })],\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst destinationDir = diskUtil.resolvePath(this.cwd, 'src', 'events')\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tdiskUtil.resolvePath(destinationDir, '**', '*')\n\t\t\t)\n\n\t\t\tconst files = await this.Writer('event').writeEvent(destinationDir, {\n\t\t\t\tnameKebab,\n\t\t\t\tnameCamel,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\tnameReadable,\n\t\t\t\tisGlobal,\n\t\t\t})\n\n\t\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\t\tsyncEventActionSchema,\n\t\t\t\toptions,\n\t\t\t\t{\n\t\t\t\t\tshouldIncludePrivateFields: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tconst syncResponse = await this.Action('event', 'sync').execute(\n\t\t\t\tsyncOptions\n\t\t\t)\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName: nameKebab,\n\t\t\t\teventNamespace: skill.slug,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t})\n\n\t\t\treturn actionUtil.mergeActionResults(\n\t\t\t\t{ files, meta: { fqen } },\n\t\t\t\tsyncResponse\n\t\t\t)\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreateAction.js","names":["optionsSchema","buildSchema","id","description","fields","nameReadable","namedTemplateItemBuilder","isRequired","nameKebab","label","hint","nameCamel","isGlobal","type","version","isPrivate","syncEventActionBuilder","CreateAction","options","validateAndNormalizeOptions","Store","loadCurrentSkill","skill","slug","errors","SpruceError","code","destinationDir","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","Writer","writeEvent","files","syncOptions","normalizeSchemaValues","syncEventActionSchema","shouldIncludePrivateFields","Action","execute","syncResponse","fqen","eventNameUtil","join","eventName","eventNamespace","actionUtil","mergeActionResults","meta","AbstractAction"],"sources":["../../../../src/features/event/actions/CreateAction.ts"],"sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaValues,\n\tSchemaValues,\n} from '@sprucelabs/schema'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport namedTemplateItemBuilder from '../../../schemas/v2020_07_22/namedTemplateItem.builder'\nimport syncEventActionBuilder from '../../../schemas/v2020_07_22/syncEventOptions.builder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'createEventAction',\n\tdescription:\n\t\t\"Create a new event and I'll register it with Mercury when you boot the skill!\",\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemBuilder.fields.nameKebab,\n\t\t\tlabel: 'Event name',\n\t\t\thint: `kebab-case`,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\t...namedTemplateItemBuilder.fields.nameCamel,\n\t\t\tisRequired: true,\n\t\t},\n\t\tisGlobal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Is this a global event?',\n\t\t\thint: \"This will allow skills to listen without being installed at the same organization. You'll need permission to make this happen.\",\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\tisPrivate: true,\n\t\t},\n\t\t...syncEventActionBuilder.fields,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Creating a new event signature... 🜒'\n\n\tpublic async execute(\n\t\toptions: SchemaValues<OptionsSchema>\n\t): Promise<FeatureActionResponse> {\n\t\tlet { nameKebab, nameReadable, nameCamel, version, isGlobal } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tif (!skill.id || !skill.slug) {\n\t\t\treturn {\n\t\t\t\terrors: [new SpruceError({ code: 'SKILL_NOT_REGISTERED' })],\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst destinationDir = diskUtil.resolvePath(this.cwd, 'src', 'events')\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tdiskUtil.resolvePath(destinationDir, '**', '*')\n\t\t\t)\n\n\t\t\tconst files = await this.Writer('event').writeEvent(destinationDir, {\n\t\t\t\tnameKebab,\n\t\t\t\tnameCamel,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\tnameReadable,\n\t\t\t\tisGlobal,\n\t\t\t})\n\n\t\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\t\tsyncEventActionSchema,\n\t\t\t\toptions,\n\t\t\t\t{\n\t\t\t\t\tshouldIncludePrivateFields: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tconst syncResponse = await this.Action('event', 'sync').execute(\n\t\t\t\tsyncOptions\n\t\t\t)\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName: nameKebab,\n\t\t\t\teventNamespace: skill.slug,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t})\n\n\t\t\treturn actionUtil.mergeActionResults(\n\t\t\t\t{ files, meta: { fqen } },\n\t\t\t\tsyncResponse\n\t\t\t)\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListenAction.js","names":["SKILL_EVENT_NAMESPACE","CORE_EVENT_NAMESPACE","MERCURY_API_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","ui","startLoading","fetchEventContracts","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","isCoreEvent","undefined","fqen","eventNameUtil","eventNamespace","split","assertIsValidChoice","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writeListener","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncEvents","errors","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","getDependencyNamespaces","didUpdateHandler","msg","slug","localNamespace","length","namespaces","Service","get","map","d","syncOptions","syncEventActionSchema","Action","execute","resolvedSchemaTypesLookupDir","writer","Writer","fullyQualifiedEventName","isValidEvent","find","e","value","i","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","o","push","namesUtil","toPascal","AbstractAction"],"sources":["../../../../src/features/event/actions/ListenAction.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { FetchContractsOptions } from '../stores/EventStore'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\nexport const CORE_EVENT_NAMESPACE = MERCURY_API_NAMESPACE\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst contracts = await this.fetchEventContracts(namespace)\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst isCoreEvent = namespace === CORE_EVENT_NAMESPACE\n\t\t\tif (isCoreEvent) {\n\t\t\t\tnamespace = undefined\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tthis.assertIsValidChoice(\n\t\t\t\teventChoicesByNamespace,\n\t\t\t\tnamespace ?? 'mercury',\n\t\t\t\teventName,\n\t\t\t\tfqen\n\t\t\t)\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: !isCoreEvent ? namespace : undefined,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tresponse.files = await this.writeListener({\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tresolvedDestination,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncResults = await this.syncEvents(options)\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchEventContracts(namespace?: string) {\n\t\tconst eventStore = this.Store('event')\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tconst namespacesForFetch =\n\t\t\tnamespace &&\n\t\t\tnamespace !== SKILL_EVENT_NAMESPACE &&\n\t\t\tnamespace !== CORE_EVENT_NAMESPACE\n\t\t\t\t? [namespace]\n\t\t\t\t: [...this.getDependencyNamespaces(), 'mercury']\n\n\t\tconst options: FetchContractsOptions = {\n\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t}\n\n\t\tif (skill.slug) {\n\t\t\toptions.localNamespace = skill.slug\n\t\t}\n\n\t\tif (namespacesForFetch.length > 0) {\n\t\t\toptions.namespaces = namespacesForFetch\n\t\t}\n\n\t\tconst { contracts } = await eventStore.fetchEventContracts(options)\n\n\t\treturn contracts\n\t}\n\n\tprivate getDependencyNamespaces() {\n\t\treturn this.Service('dependency')\n\t\t\t.get()\n\t\t\t.map((d) => d.namespace)\n\t}\n\n\tprivate async syncEvents(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t) {\n\t\tconst syncOptions = normalizeSchemaValues(syncEventActionSchema, options)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute(syncOptions)\n\t\treturn syncResults\n\t}\n\n\tprivate async writeListener(options: {\n\t\tresolvedDestination: string\n\t\tschemaTypesLookupDir: string\n\t\tnamespace?: string | undefined\n\t\teventName: string\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\tversion: string\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t}) {\n\t\tconst {\n\t\t\tresolvedDestination,\n\t\t\tschemaTypesLookupDir,\n\t\t\tnamespace,\n\t\t\teventName,\n\t\t\tversion,\n\t\t} = options\n\n\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tschemaTypesLookupDir\n\t\t)\n\t\tconst writer = this.Writer('event')\n\t\tconst files = await writer.writeListener(resolvedDestination, {\n\t\t\t...options,\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion,\n\t\t\t}),\n\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tprivate assertIsValidChoice(\n\t\teventChoicesByNamespace: Record<string, SelectChoice[]>,\n\t\tnamespace: string,\n\t\teventName: string | undefined,\n\t\tfqen: string\n\t) {\n\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t)\n\n\t\tif (!isValidEvent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\tnamespace\n\t\t\t\t]\n\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t\tparameters: ['eventName'],\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ListenAction.js","names":["SKILL_EVENT_NAMESPACE","CORE_EVENT_NAMESPACE","MERCURY_API_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","ui","startLoading","fetchEventContracts","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","isCoreEvent","undefined","fqen","eventNameUtil","eventNamespace","split","assertIsValidChoice","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writeListener","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncEvents","errors","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","getDependencyNamespaces","didUpdateHandler","msg","slug","localNamespace","length","namespaces","Service","get","map","d","syncOptions","normalizeSchemaValues","syncEventActionSchema","Action","execute","resolvedSchemaTypesLookupDir","writer","Writer","fullyQualifiedEventName","isValidEvent","find","e","value","i","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","o","push","namesUtil","toPascal","AbstractAction"],"sources":["../../../../src/features/event/actions/ListenAction.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { FetchContractsOptions } from '../stores/EventStore'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\nexport const CORE_EVENT_NAMESPACE = MERCURY_API_NAMESPACE\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst contracts = await this.fetchEventContracts(namespace)\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst isCoreEvent = namespace === CORE_EVENT_NAMESPACE\n\t\t\tif (isCoreEvent) {\n\t\t\t\tnamespace = undefined\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tthis.assertIsValidChoice(\n\t\t\t\teventChoicesByNamespace,\n\t\t\t\tnamespace ?? 'mercury',\n\t\t\t\teventName,\n\t\t\t\tfqen\n\t\t\t)\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: !isCoreEvent ? namespace : undefined,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tresponse.files = await this.writeListener({\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tresolvedDestination,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncResults = await this.syncEvents(options)\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchEventContracts(namespace?: string) {\n\t\tconst eventStore = this.Store('event')\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tconst namespacesForFetch =\n\t\t\tnamespace &&\n\t\t\tnamespace !== SKILL_EVENT_NAMESPACE &&\n\t\t\tnamespace !== CORE_EVENT_NAMESPACE\n\t\t\t\t? [namespace]\n\t\t\t\t: [...this.getDependencyNamespaces(), 'mercury']\n\n\t\tconst options: FetchContractsOptions = {\n\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t}\n\n\t\tif (skill.slug) {\n\t\t\toptions.localNamespace = skill.slug\n\t\t}\n\n\t\tif (namespacesForFetch.length > 0) {\n\t\t\toptions.namespaces = namespacesForFetch\n\t\t}\n\n\t\tconst { contracts } = await eventStore.fetchEventContracts(options)\n\n\t\treturn contracts\n\t}\n\n\tprivate getDependencyNamespaces() {\n\t\treturn this.Service('dependency')\n\t\t\t.get()\n\t\t\t.map((d) => d.namespace)\n\t}\n\n\tprivate async syncEvents(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t) {\n\t\tconst syncOptions = normalizeSchemaValues(syncEventActionSchema, options)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute(syncOptions)\n\t\treturn syncResults\n\t}\n\n\tprivate async writeListener(options: {\n\t\tresolvedDestination: string\n\t\tschemaTypesLookupDir: string\n\t\tnamespace?: string | undefined\n\t\teventName: string\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\tversion: string\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t}) {\n\t\tconst {\n\t\t\tresolvedDestination,\n\t\t\tschemaTypesLookupDir,\n\t\t\tnamespace,\n\t\t\teventName,\n\t\t\tversion,\n\t\t} = options\n\n\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tschemaTypesLookupDir\n\t\t)\n\t\tconst writer = this.Writer('event')\n\t\tconst files = await writer.writeListener(resolvedDestination, {\n\t\t\t...options,\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion,\n\t\t\t}),\n\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tprivate assertIsValidChoice(\n\t\teventChoicesByNamespace: Record<string, SelectChoice[]>,\n\t\tnamespace: string,\n\t\teventName: string | undefined,\n\t\tfqen: string\n\t) {\n\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t)\n\n\t\tif (!isValidEvent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\tnamespace\n\t\t\t\t]\n\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t\tparameters: ['eventName'],\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SetRemoteAction.js","names":["optionsSchema","id","description","fields","remote","label","type","isRequired","options","choices","value","SyncAction","validateAndNormalizeOptions","r","Service","set","summaryLines","getHost","AbstractAction"],"sources":["../../../../src/features/event/actions/SetRemoteAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { Remote } from '@sprucelabs/spruce-event-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'setRemoteOptions',\n\tdescription: 'Point your skill to different Mercury environments.',\n\tfields: {\n\t\tremote: {\n\t\t\tlabel: 'Where should remote point?',\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'local',\n\t\t\t\t\t\tlabel: 'Local',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'developer',\n\t\t\t\t\t\tlabel: 'Development',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'sandbox',\n\t\t\t\t\t\tlabel: 'Sandbox',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'production',\n\t\t\t\t\t\tlabel: 'Production',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['set.remote [remote]']\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Set remote... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { remote } = this.validateAndNormalizeOptions(options)\n\n\t\tconst r = this.Service('remote')\n\t\tr.set(remote as Remote)\n\n\t\treturn {\n\t\t\tsummaryLines: [`Remote: ${remote}`, `Host: ${r.getHost()}`],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;EACjCC,EAAE,EAAE,kBAD6B;EAEjCC,WAAW,EAAE,qDAFoB;EAGjCC,MAAM,EAAE;IACPC,MAAM,EAAE;MACPC,KAAK,EAAE,4BADA;MAEPC,IAAI,EAAE,QAFC;MAGPC,UAAU,EAAE,IAHL;MAIPC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,OADR;UAECL,KAAK,EAAE;QAFR,CADQ,EAKR;UACCK,KAAK,EAAE,WADR;UAECL,KAAK,EAAE;QAFR,CALQ,EASR;UACCK,KAAK,EAAE,SADR;UAECL,KAAK,EAAE;QAFR,CATQ,EAaR;UACCK,KAAK,EAAE,YADR;UAECL,KAAK,EAAE;QAFR,CAbQ;MADD;IAJF;EADD;AAHyB,CAAZ,CAAtB;;IAmCqBM,U;;;;;;;;;;;;;;;uGACI,CAAC,qBAAD,C;sGACcX,a;0GACX,kB;;;;;;;mGAE3B,iBAAqBQ,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACoB,KAAKI,2BAAL,CAAiCJ,OAAjC,CADpB,EACSJ,MADT,yBACSA,MADT;gBAGOS,CAHP,GAGW,KAAKC,OAAL,CAAa,QAAb,CAHX;gBAICD,CAAC,CAACE,GAAF,CAAMX,MAAN;gBAJD,iCAMQ;kBACNY,YAAY,EAAE,mBAAYZ,MAAZ,mBAA+BS,CAAC,CAACI,OAAF,EAA/B;gBADR,CANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALuCC,2B"}
1
+ {"version":3,"file":"SetRemoteAction.js","names":["optionsSchema","buildSchema","id","description","fields","remote","label","type","isRequired","options","choices","value","SyncAction","validateAndNormalizeOptions","r","Service","set","summaryLines","getHost","AbstractAction"],"sources":["../../../../src/features/event/actions/SetRemoteAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { Remote } from '@sprucelabs/spruce-event-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'setRemoteOptions',\n\tdescription: 'Point your skill to different Mercury environments.',\n\tfields: {\n\t\tremote: {\n\t\t\tlabel: 'Where should remote point?',\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'local',\n\t\t\t\t\t\tlabel: 'Local',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'developer',\n\t\t\t\t\t\tlabel: 'Development',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'sandbox',\n\t\t\t\t\t\tlabel: 'Sandbox',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'production',\n\t\t\t\t\t\tlabel: 'Production',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['set.remote [remote]']\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Set remote... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { remote } = this.validateAndNormalizeOptions(options)\n\n\t\tconst r = this.Service('remote')\n\t\tr.set(remote as Remote)\n\n\t\treturn {\n\t\t\tsummaryLines: [`Remote: ${remote}`, `Host: ${r.getHost()}`],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;AAGA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,kBAD6B;EAEjCC,WAAW,EAAE,qDAFoB;EAGjCC,MAAM,EAAE;IACPC,MAAM,EAAE;MACPC,KAAK,EAAE,4BADA;MAEPC,IAAI,EAAE,QAFC;MAGPC,UAAU,EAAE,IAHL;MAIPC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,OADR;UAECL,KAAK,EAAE;QAFR,CADQ,EAKR;UACCK,KAAK,EAAE,WADR;UAECL,KAAK,EAAE;QAFR,CALQ,EASR;UACCK,KAAK,EAAE,SADR;UAECL,KAAK,EAAE;QAFR,CATQ,EAaR;UACCK,KAAK,EAAE,YADR;UAECL,KAAK,EAAE;QAFR,CAbQ;MADD;IAJF;EADD;AAHyB,CAAZ,CAAtB;;IAmCqBM,U;;;;;;;;;;;;;;;uGACI,CAAC,qBAAD,C;sGACcZ,a;0GACX,kB;;;;;;;mGAE3B,iBAAqBS,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACoB,KAAKI,2BAAL,CAAiCJ,OAAjC,CADpB,EACSJ,MADT,yBACSA,MADT;gBAGOS,CAHP,GAGW,KAAKC,OAAL,CAAa,QAAb,CAHX;gBAICD,CAAC,CAACE,GAAF,CAAMX,MAAN;gBAJD,iCAMQ;kBACNY,YAAY,EAAE,mBAAYZ,MAAZ,mBAA+BS,CAAC,CAACI,OAAF,EAA/B;gBADR,CANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALuCC,2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SyncAction.js","names":["SyncAction","syncEventActionSchema","options","builder","ContractBuilder","fetchAndWriteContracts","results","errors","Service","setLastSyncOptions","Action","execute","schemaSyncResults","mergedResults","actionUtil","mergeActionResults","parent","getEventContractBuilder","AbstractAction"],"sources":["../../../../src/features/event/actions/SyncAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport EventFeature from '../EventFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptions\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['sync.events']\n\tpublic optionsSchema: OptionsSchema = syncEventActionSchema\n\tpublic invocationMessage = 'Syncing event contracts... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst builder = this.ContractBuilder()\n\n\t\tconst results: FeatureActionResponse = await builder.fetchAndWriteContracts(\n\t\t\toptions\n\t\t)\n\n\t\tif (results.errors) {\n\t\t\treturn {\n\t\t\t\terrors: results.errors,\n\t\t\t}\n\t\t}\n\n\t\tthis.Service('eventSettings').setLastSyncOptions(options)\n\n\t\tconst schemaSyncResults = await this.Action('schema', 'sync').execute({})\n\n\t\tconst mergedResults = actionUtil.mergeActionResults(\n\t\t\tschemaSyncResults,\n\t\t\tresults\n\t\t)\n\n\t\treturn mergedResults\n\t}\n\n\tprivate ContractBuilder() {\n\t\treturn (this.parent as EventFeature).getEventContractBuilder()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;IAOqBA,U;;;;;;;;;;;;;;;uGACI,CAAC,aAAD,C;sGACcC,4B;0GACX,+B;;;;;;;mGAE3B,iBAAqBC,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,OADP,GACiB,KAAKC,eAAL,EADjB;gBAAA;gBAAA,OAG8CD,OAAO,CAACE,sBAAR,CAC5CH,OAD4C,CAH9C;;cAAA;gBAGOI,OAHP;;gBAAA,KAOKA,OAAO,CAACC,MAPb;kBAAA;kBAAA;gBAAA;;gBAAA,iCAQS;kBACNA,MAAM,EAAED,OAAO,CAACC;gBADV,CART;;cAAA;gBAaC,KAAKC,OAAL,CAAa,eAAb,EAA8BC,kBAA9B,CAAiDP,OAAjD;gBAbD;gBAAA,OAeiC,KAAKQ,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAfjC;;cAAA;gBAeOC,iBAfP;gBAiBOC,aAjBP,GAiBuBC,mBAAWC,kBAAX,CACrBH,iBADqB,EAErBN,OAFqB,CAjBvB;gBAAA,iCAsBQO,aAtBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAyBA,2BAA0B;MACzB,OAAQ,KAAKG,MAAN,CAA8BC,uBAA9B,EAAP;IACA;;;EAhCsCC,2B"}
1
+ {"version":3,"file":"SyncAction.js","names":["SyncAction","syncEventActionSchema","options","builder","ContractBuilder","fetchAndWriteContracts","results","errors","Service","setLastSyncOptions","Action","execute","schemaSyncResults","mergedResults","actionUtil","mergeActionResults","parent","getEventContractBuilder","AbstractAction"],"sources":["../../../../src/features/event/actions/SyncAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport EventFeature from '../EventFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptions\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['sync.events']\n\tpublic optionsSchema: OptionsSchema = syncEventActionSchema\n\tpublic invocationMessage = 'Syncing event contracts... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst builder = this.ContractBuilder()\n\n\t\tconst results: FeatureActionResponse = await builder.fetchAndWriteContracts(\n\t\t\toptions\n\t\t)\n\n\t\tif (results.errors) {\n\t\t\treturn {\n\t\t\t\terrors: results.errors,\n\t\t\t}\n\t\t}\n\n\t\tthis.Service('eventSettings').setLastSyncOptions(options)\n\n\t\tconst schemaSyncResults = await this.Action('schema', 'sync').execute({})\n\n\t\tconst mergedResults = actionUtil.mergeActionResults(\n\t\t\tschemaSyncResults,\n\t\t\tresults\n\t\t)\n\n\t\treturn mergedResults\n\t}\n\n\tprivate ContractBuilder() {\n\t\treturn (this.parent as EventFeature).getEventContractBuilder()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;IAOqBA,U;;;;;;;;;;;;;;;uGACI,CAAC,aAAD,C;sGACcC,4B;0GACX,+B;;;;;;;mGAE3B,iBAAqBC,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,OADP,GACiB,KAAKC,eAAL,EADjB;gBAAA;gBAAA,OAG8CD,OAAO,CAACE,sBAAR,CAC5CH,OAD4C,CAH9C;;cAAA;gBAGOI,OAHP;;gBAAA,KAOKA,OAAO,CAACC,MAPb;kBAAA;kBAAA;gBAAA;;gBAAA,iCAQS;kBACNA,MAAM,EAAED,OAAO,CAACC;gBADV,CART;;cAAA;gBAaC,KAAKC,OAAL,CAAa,eAAb,EAA8BC,kBAA9B,CAAiDP,OAAjD;gBAbD;gBAAA,OAeiC,KAAKQ,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAfjC;;cAAA;gBAeOC,iBAfP;gBAiBOC,aAjBP,GAiBuBC,kBAAA,CAAWC,kBAAX,CACrBH,iBADqB,EAErBN,OAFqB,CAjBvB;gBAAA,iCAsBQO,aAtBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAyBA,2BAA0B;MACzB,OAAQ,KAAKG,MAAN,CAA8BC,uBAA9B,EAAP;IACA;;;EAhCsCC,2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SyncListenersAction.js","names":["syncListenersOptionScheam","id","fields","SyncListenerAction","Store","loadListeners","listeners","builder","ListenerTemplateItemBuilder","templateItems","buildTemplateItems","cwd","Writer","writeListenerMap","diskUtil","resolveHashSprucePath","files","AbstractAction"],"sources":["../../../../src/features/event/actions/SyncListenersAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport ListenerTemplateItemBuilder from '../builders/ListenerTemplateItemBuilder'\n\nconst syncListenersOptionScheam = buildSchema({\n\tid: 'syncListenersOptions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof syncListenersOptionScheam\n\nexport default class SyncListenerAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = syncListenersOptionScheam\n\tpublic invocationMessage = 'Syncing listeners... 🎧'\n\tpublic commandAliases = ['sync.listeners']\n\n\tpublic async execute() {\n\t\tconst listeners = await this.Store('listener').loadListeners()\n\t\tconst builder = new ListenerTemplateItemBuilder()\n\n\t\tconst templateItems = builder.buildTemplateItems({\n\t\t\tlisteners,\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst files = await this.Writer('event').writeListenerMap(\n\t\t\tdiskUtil.resolveHashSprucePath(this.cwd, 'events'),\n\t\t\t{\n\t\t\t\tlisteners: templateItems,\n\t\t\t}\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,yBAAyB,GAAG,yBAAY;EAC7CC,EAAE,EAAE,sBADyC;EAE7CC,MAAM,EAAE;AAFqC,CAAZ,CAAlC;;IAOqBC,kB;;;;;;;;;;;;;;;sGACkBH,yB;0GACX,yB;uGACH,CAAC,gBAAD,C;;;;;;;mGAExB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACyB,KAAKI,KAAL,CAAW,UAAX,EAAuBC,aAAvB,EADzB;;cAAA;gBACOC,SADP;gBAEOC,OAFP,GAEiB,IAAIC,uCAAJ,EAFjB;gBAIOC,aAJP,GAIuBF,OAAO,CAACG,kBAAR,CAA2B;kBAChDJ,SAAS,EAATA,SADgD;kBAEhDK,GAAG,EAAE,KAAKA;gBAFsC,CAA3B,CAJvB;gBAAA;gBAAA,OASqB,KAAKC,MAAL,CAAY,OAAZ,EAAqBC,gBAArB,CACnBC,2BAASC,qBAAT,CAA+B,KAAKJ,GAApC,EAAyC,QAAzC,CADmB,EAEnB;kBACCL,SAAS,EAAEG;gBADZ,CAFmB,CATrB;;cAAA;gBASOO,KATP;gBAAA,iCAgBQ;kBACNA,KAAK,EAALA;gBADM,CAhBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAL+CC,2B"}
1
+ {"version":3,"file":"SyncListenersAction.js","names":["syncListenersOptionScheam","buildSchema","id","fields","SyncListenerAction","Store","loadListeners","listeners","builder","ListenerTemplateItemBuilder","templateItems","buildTemplateItems","cwd","Writer","writeListenerMap","diskUtil","resolveHashSprucePath","files","AbstractAction"],"sources":["../../../../src/features/event/actions/SyncListenersAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport ListenerTemplateItemBuilder from '../builders/ListenerTemplateItemBuilder'\n\nconst syncListenersOptionScheam = buildSchema({\n\tid: 'syncListenersOptions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof syncListenersOptionScheam\n\nexport default class SyncListenerAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = syncListenersOptionScheam\n\tpublic invocationMessage = 'Syncing listeners... 🎧'\n\tpublic commandAliases = ['sync.listeners']\n\n\tpublic async execute() {\n\t\tconst listeners = await this.Store('listener').loadListeners()\n\t\tconst builder = new ListenerTemplateItemBuilder()\n\n\t\tconst templateItems = builder.buildTemplateItems({\n\t\t\tlisteners,\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst files = await this.Writer('event').writeListenerMap(\n\t\t\tdiskUtil.resolveHashSprucePath(this.cwd, 'events'),\n\t\t\t{\n\t\t\t\tlisteners: templateItems,\n\t\t\t}\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,yBAAyB,GAAG,IAAAC,mBAAA,EAAY;EAC7CC,EAAE,EAAE,sBADyC;EAE7CC,MAAM,EAAE;AAFqC,CAAZ,CAAlC;;IAOqBC,kB;;;;;;;;;;;;;;;sGACkBJ,yB;0GACX,yB;uGACH,CAAC,gBAAD,C;;;;;;;mGAExB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACyB,KAAKK,KAAL,CAAW,UAAX,EAAuBC,aAAvB,EADzB;;cAAA;gBACOC,SADP;gBAEOC,OAFP,GAEiB,IAAIC,uCAAJ,EAFjB;gBAIOC,aAJP,GAIuBF,OAAO,CAACG,kBAAR,CAA2B;kBAChDJ,SAAS,EAATA,SADgD;kBAEhDK,GAAG,EAAE,KAAKA;gBAFsC,CAA3B,CAJvB;gBAAA;gBAAA,OASqB,KAAKC,MAAL,CAAY,OAAZ,EAAqBC,gBAArB,CACnBC,0BAAA,CAASC,qBAAT,CAA+B,KAAKJ,GAApC,EAAyC,QAAzC,CADmB,EAEnB;kBACCL,SAAS,EAAEG;gBADZ,CAFmB,CATrB;;cAAA;gBASOO,KATP;gBAAA,iCAgBQ;kBACNA,KAAK,EAALA;gBADM,CAhBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAL+CC,2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventContractBuilder.js","names":["EventContractBuilder","options","optionsSchema","ui","eventWriter","eventGenerator","cwd","eventStore","skillStore","dependencyService","normalizedOptions","validateAndNormalizer","validateAndNormalize","contractDestinationDir","resolvedDestination","diskUtil","resolvePath","fetchAndBuildTemplateItems","shouldSyncOnlyCoreEvents","eventBuilderFile","errors","schemaTemplateItems","eventContractTemplateItems","length","startLoading","writeContracts","shouldImportCoreEvents","files","deleteOrphanedEventContracts","map","a","path","lookupDir","existingContracts","matches","diff","filter","m","includes","forEach","f","deleteFile","deleteEmptyDirs","existingSchemas","filteredSchemas","filterSchemasBasedOnCallbackPayload","schemas","i","schema","idWithVersion","find","s","loadCurrentSkillsNamespace","namespace","namespaces","get","d","fetchEventContracts","localNamespace","didUpdateHandler","msg","contractResults","undefined","namesUtil","toKebab","itemBuilder","EventTemplateItemBuilder","buildTemplateItems","contracts"],"sources":["../../../../src/features/event/builders/EventContractBuilder.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tSchemaTemplateItem,\n} from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { isEqual } from 'lodash'\nimport DependencyService from '../../../services/DependencyService'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport { GraphicsInterface } from '../../../types/cli.types'\nimport { FeatureActionResponse } from '../../features.types'\nimport SkillStore from '../../skill/stores/SkillStore'\nimport validateAndNormalizer from '../../validateAndNormalize.utility'\nimport EventStore from '../stores/EventStore'\nimport EventWriter from '../writers/EventWriter'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptions\n\nexport default class EventContractBuilder {\n\tprivate optionsSchema: OptionsSchema\n\tprivate ui: GraphicsInterface\n\tprivate eventWriter: EventWriter\n\tprivate cwd: string\n\tprivate eventStore: EventStore\n\tprivate skillStore: SkillStore\n\tprivate dependencyService: DependencyService\n\n\tpublic constructor(options: {\n\t\toptionsSchema: OptionsSchema\n\t\tui: GraphicsInterface\n\t\teventGenerator: EventWriter\n\t\tcwd: string\n\t\teventStore: EventStore\n\t\tskillStore: SkillStore\n\t\tdependencyService: DependencyService\n\t}) {\n\t\tthis.optionsSchema = options.optionsSchema\n\t\tthis.ui = options.ui\n\t\tthis.eventWriter = options.eventGenerator\n\t\tthis.cwd = options.cwd\n\t\tthis.eventStore = options.eventStore\n\t\tthis.skillStore = options.skillStore\n\t\tthis.dependencyService = options.dependencyService\n\t}\n\n\tpublic async fetchAndWriteContracts(\n\t\toptions: Options\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = validateAndNormalizer.validateAndNormalize(\n\t\t\tthis.optionsSchema,\n\t\t\toptions\n\t\t)\n\n\t\tconst { contractDestinationDir } = normalizedOptions\n\n\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tcontractDestinationDir\n\t\t)\n\n\t\tconst { errors, schemaTemplateItems, eventContractTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({\n\t\t\t\tshouldSyncOnlyCoreEvents: options.shouldSyncOnlyCoreEvents ?? false,\n\t\t\t\teventBuilderFile: normalizedOptions.eventBuilderFile,\n\t\t\t})\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tthis.ui.startLoading('Generating contracts...')\n\n\t\tconst files = await this.eventWriter.writeContracts(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tshouldImportCoreEvents: !options.shouldSyncOnlyCoreEvents,\n\t\t})\n\n\t\tawait this.deleteOrphanedEventContracts(\n\t\t\tresolvedDestination,\n\t\t\tfiles.map((a) => a.path)\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n\n\tprivate async deleteOrphanedEventContracts(\n\t\tlookupDir: string,\n\t\texistingContracts: string[]\n\t) {\n\t\tconst matches = await globby(lookupDir + '/**/*.contract.ts')\n\t\tconst diff = matches.filter((m) => !existingContracts.includes(m))\n\n\t\tdiff.forEach((f) => diskUtil.deleteFile(f))\n\n\t\tdiskUtil.deleteEmptyDirs(lookupDir)\n\t}\n\n\tpublic async fetchContractsAndGenerateUniqueSchemas(\n\t\texistingSchemas: Schema[],\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t): Promise<FeatureActionResponse & { schemas?: Schema[] }> {\n\t\tconst { errors, schemaTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({ shouldSyncOnlyCoreEvents })\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tconst filteredSchemas = this.filterSchemasBasedOnCallbackPayload(\n\t\t\texistingSchemas,\n\t\t\tschemaTemplateItems\n\t\t)\n\n\t\treturn {\n\t\t\tschemas: filteredSchemas,\n\t\t}\n\t}\n\n\tprivate filterSchemasBasedOnCallbackPayload(\n\t\texistingSchemas: Schema[],\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t) {\n\t\tconst schemas = schemaTemplateItems.map((i) => i.schema)\n\t\tconst filteredSchemas = schemas.filter((schema) => {\n\t\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(schema)\n\t\t\treturn !existingSchemas.find((s) =>\n\t\t\t\tisEqual(normalizeSchemaToIdWithVersion(s), idWithVersion)\n\t\t\t)\n\t\t})\n\n\t\treturn filteredSchemas\n\t}\n\n\tprivate async fetchAndBuildTemplateItems(options: {\n\t\tshouldSyncOnlyCoreEvents?: boolean\n\t\teventBuilderFile?: string\n\t}) {\n\t\tconst { shouldSyncOnlyCoreEvents, eventBuilderFile } = options\n\n\t\tthis.ui.startLoading('Loading skill details...')\n\n\t\tlet namespace: string | undefined =\n\t\t\tawait this.skillStore.loadCurrentSkillsNamespace()\n\n\t\tthis.ui.startLoading('Fetching event contracts...')\n\n\t\tconst namespaces = shouldSyncOnlyCoreEvents\n\t\t\t? ['core']\n\t\t\t: this.dependencyService.get().map((d) => d.namespace)\n\n\t\tconst contractResults = await this.eventStore.fetchEventContracts({\n\t\t\tlocalNamespace: namespace,\n\t\t\tnamespaces,\n\t\t\tdidUpdateHandler: (msg) => {\n\t\t\t\tthis.ui.startLoading(msg)\n\t\t\t},\n\t\t})\n\n\t\tif (contractResults.errors.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors: contractResults.errors,\n\t\t\t\teventContractTemplateItems: [],\n\t\t\t\tschemaTemplateItems: [],\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tnamespace = undefined\n\t\t} else {\n\t\t\tnamespace = namesUtil.toKebab(namespace)\n\t\t}\n\n\t\tthis.ui.startLoading('Building contracts...')\n\n\t\tconst itemBuilder = new EventTemplateItemBuilder()\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\titemBuilder.buildTemplateItems({\n\t\t\t\tcontracts: contractResults.contracts,\n\t\t\t\tlocalNamespace: namespace,\n\t\t\t\teventBuilderFile,\n\t\t\t})\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\terrors: [],\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EventContractBuilder.js","names":["EventContractBuilder","options","optionsSchema","ui","eventWriter","eventGenerator","cwd","eventStore","skillStore","dependencyService","normalizedOptions","validateAndNormalizer","validateAndNormalize","contractDestinationDir","resolvedDestination","diskUtil","resolvePath","fetchAndBuildTemplateItems","shouldSyncOnlyCoreEvents","eventBuilderFile","errors","schemaTemplateItems","eventContractTemplateItems","length","startLoading","writeContracts","shouldImportCoreEvents","files","deleteOrphanedEventContracts","map","a","path","lookupDir","existingContracts","globby","matches","diff","filter","m","includes","forEach","f","deleteFile","deleteEmptyDirs","existingSchemas","filteredSchemas","filterSchemasBasedOnCallbackPayload","schemas","i","schema","idWithVersion","normalizeSchemaToIdWithVersion","find","s","isEqual","loadCurrentSkillsNamespace","namespace","namespaces","get","d","fetchEventContracts","localNamespace","didUpdateHandler","msg","contractResults","undefined","namesUtil","toKebab","itemBuilder","EventTemplateItemBuilder","buildTemplateItems","contracts"],"sources":["../../../../src/features/event/builders/EventContractBuilder.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tSchemaTemplateItem,\n} from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { isEqual } from 'lodash'\nimport DependencyService from '../../../services/DependencyService'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport { GraphicsInterface } from '../../../types/cli.types'\nimport { FeatureActionResponse } from '../../features.types'\nimport SkillStore from '../../skill/stores/SkillStore'\nimport validateAndNormalizer from '../../validateAndNormalize.utility'\nimport EventStore from '../stores/EventStore'\nimport EventWriter from '../writers/EventWriter'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptions\n\nexport default class EventContractBuilder {\n\tprivate optionsSchema: OptionsSchema\n\tprivate ui: GraphicsInterface\n\tprivate eventWriter: EventWriter\n\tprivate cwd: string\n\tprivate eventStore: EventStore\n\tprivate skillStore: SkillStore\n\tprivate dependencyService: DependencyService\n\n\tpublic constructor(options: {\n\t\toptionsSchema: OptionsSchema\n\t\tui: GraphicsInterface\n\t\teventGenerator: EventWriter\n\t\tcwd: string\n\t\teventStore: EventStore\n\t\tskillStore: SkillStore\n\t\tdependencyService: DependencyService\n\t}) {\n\t\tthis.optionsSchema = options.optionsSchema\n\t\tthis.ui = options.ui\n\t\tthis.eventWriter = options.eventGenerator\n\t\tthis.cwd = options.cwd\n\t\tthis.eventStore = options.eventStore\n\t\tthis.skillStore = options.skillStore\n\t\tthis.dependencyService = options.dependencyService\n\t}\n\n\tpublic async fetchAndWriteContracts(\n\t\toptions: Options\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = validateAndNormalizer.validateAndNormalize(\n\t\t\tthis.optionsSchema,\n\t\t\toptions\n\t\t)\n\n\t\tconst { contractDestinationDir } = normalizedOptions\n\n\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tcontractDestinationDir\n\t\t)\n\n\t\tconst { errors, schemaTemplateItems, eventContractTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({\n\t\t\t\tshouldSyncOnlyCoreEvents: options.shouldSyncOnlyCoreEvents ?? false,\n\t\t\t\teventBuilderFile: normalizedOptions.eventBuilderFile,\n\t\t\t})\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tthis.ui.startLoading('Generating contracts...')\n\n\t\tconst files = await this.eventWriter.writeContracts(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tshouldImportCoreEvents: !options.shouldSyncOnlyCoreEvents,\n\t\t})\n\n\t\tawait this.deleteOrphanedEventContracts(\n\t\t\tresolvedDestination,\n\t\t\tfiles.map((a) => a.path)\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n\n\tprivate async deleteOrphanedEventContracts(\n\t\tlookupDir: string,\n\t\texistingContracts: string[]\n\t) {\n\t\tconst matches = await globby(lookupDir + '/**/*.contract.ts')\n\t\tconst diff = matches.filter((m) => !existingContracts.includes(m))\n\n\t\tdiff.forEach((f) => diskUtil.deleteFile(f))\n\n\t\tdiskUtil.deleteEmptyDirs(lookupDir)\n\t}\n\n\tpublic async fetchContractsAndGenerateUniqueSchemas(\n\t\texistingSchemas: Schema[],\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t): Promise<FeatureActionResponse & { schemas?: Schema[] }> {\n\t\tconst { errors, schemaTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({ shouldSyncOnlyCoreEvents })\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tconst filteredSchemas = this.filterSchemasBasedOnCallbackPayload(\n\t\t\texistingSchemas,\n\t\t\tschemaTemplateItems\n\t\t)\n\n\t\treturn {\n\t\t\tschemas: filteredSchemas,\n\t\t}\n\t}\n\n\tprivate filterSchemasBasedOnCallbackPayload(\n\t\texistingSchemas: Schema[],\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t) {\n\t\tconst schemas = schemaTemplateItems.map((i) => i.schema)\n\t\tconst filteredSchemas = schemas.filter((schema) => {\n\t\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(schema)\n\t\t\treturn !existingSchemas.find((s) =>\n\t\t\t\tisEqual(normalizeSchemaToIdWithVersion(s), idWithVersion)\n\t\t\t)\n\t\t})\n\n\t\treturn filteredSchemas\n\t}\n\n\tprivate async fetchAndBuildTemplateItems(options: {\n\t\tshouldSyncOnlyCoreEvents?: boolean\n\t\teventBuilderFile?: string\n\t}) {\n\t\tconst { shouldSyncOnlyCoreEvents, eventBuilderFile } = options\n\n\t\tthis.ui.startLoading('Loading skill details...')\n\n\t\tlet namespace: string | undefined =\n\t\t\tawait this.skillStore.loadCurrentSkillsNamespace()\n\n\t\tthis.ui.startLoading('Fetching event contracts...')\n\n\t\tconst namespaces = shouldSyncOnlyCoreEvents\n\t\t\t? ['core']\n\t\t\t: this.dependencyService.get().map((d) => d.namespace)\n\n\t\tconst contractResults = await this.eventStore.fetchEventContracts({\n\t\t\tlocalNamespace: namespace,\n\t\t\tnamespaces,\n\t\t\tdidUpdateHandler: (msg) => {\n\t\t\t\tthis.ui.startLoading(msg)\n\t\t\t},\n\t\t})\n\n\t\tif (contractResults.errors.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors: contractResults.errors,\n\t\t\t\teventContractTemplateItems: [],\n\t\t\t\tschemaTemplateItems: [],\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tnamespace = undefined\n\t\t} else {\n\t\t\tnamespace = namesUtil.toKebab(namespace)\n\t\t}\n\n\t\tthis.ui.startLoading('Building contracts...')\n\n\t\tconst itemBuilder = new EventTemplateItemBuilder()\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\titemBuilder.buildTemplateItems({\n\t\t\t\tcontracts: contractResults.contracts,\n\t\t\t\tlocalNamespace: namespace,\n\t\t\t\teventBuilderFile,\n\t\t\t})\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\terrors: [],\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListenerTemplateItemBuilder.js","names":["ListenerTemplateItemBuilder","options","destination","diskUtil","resolveHashSprucePath","cwd","listeners","match","push","path","pathUtil","relative","dirname","replace"],"sources":["../../../../src/features/event/builders/ListenerTemplateItemBuilder.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ListenerTemplateItem } from '@sprucelabs/spruce-templates'\nimport { Listener } from '../stores/ListenerStore'\n\nexport default class ListenerTemplateItemBuilder {\n\tpublic buildTemplateItems(options: { listeners: Listener[]; cwd: string }) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\toptions.cwd,\n\t\t\t'events',\n\t\t\t'listeners.ts'\n\t\t)\n\n\t\tconst listeners: ListenerTemplateItem[] = []\n\n\t\tfor (const match of options.listeners) {\n\t\t\tlisteners.push({\n\t\t\t\t...match,\n\t\t\t\tpath: pathUtil\n\t\t\t\t\t.relative(pathUtil.dirname(destination), match.path)\n\t\t\t\t\t.replace('.ts', ''),\n\t\t\t})\n\t\t}\n\n\t\treturn listeners\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;;;;IAIqBA,2B;;;;;;;WACpB,4BAA0BC,OAA1B,EAA2E;MAC1E,IAAMC,WAAW,GAAGC,2BAASC,qBAAT,CACnBH,OAAO,CAACI,GADW,EAEnB,QAFmB,EAGnB,cAHmB,CAApB;;MAMA,IAAMC,SAAiC,GAAG,EAA1C;;MAP0E,2CAStDL,OAAO,CAACK,SAT8C;MAAA;;MAAA;QAS1E,oDAAuC;UAAA,IAA5BC,KAA4B;UACtCD,SAAS,CAACE,IAAV,iCACID,KADJ;YAECE,IAAI,EAAEC,iBACJC,QADI,CACKD,iBAASE,OAAT,CAAiBV,WAAjB,CADL,EACoCK,KAAK,CAACE,IAD1C,EAEJI,OAFI,CAEI,KAFJ,EAEW,EAFX;UAFP;QAMA;MAhByE;QAAA;MAAA;QAAA;MAAA;;MAkB1E,OAAOP,SAAP;IACA"}
1
+ {"version":3,"file":"ListenerTemplateItemBuilder.js","names":["ListenerTemplateItemBuilder","options","destination","diskUtil","resolveHashSprucePath","cwd","listeners","match","push","path","pathUtil","relative","dirname","replace"],"sources":["../../../../src/features/event/builders/ListenerTemplateItemBuilder.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ListenerTemplateItem } from '@sprucelabs/spruce-templates'\nimport { Listener } from '../stores/ListenerStore'\n\nexport default class ListenerTemplateItemBuilder {\n\tpublic buildTemplateItems(options: { listeners: Listener[]; cwd: string }) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\toptions.cwd,\n\t\t\t'events',\n\t\t\t'listeners.ts'\n\t\t)\n\n\t\tconst listeners: ListenerTemplateItem[] = []\n\n\t\tfor (const match of options.listeners) {\n\t\t\tlisteners.push({\n\t\t\t\t...match,\n\t\t\t\tpath: pathUtil\n\t\t\t\t\t.relative(pathUtil.dirname(destination), match.path)\n\t\t\t\t\t.replace('.ts', ''),\n\t\t\t})\n\t\t}\n\n\t\treturn listeners\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;;;;IAIqBA,2B;;;;;;;WACpB,4BAA0BC,OAA1B,EAA2E;MAC1E,IAAMC,WAAW,GAAGC,0BAAA,CAASC,qBAAT,CACnBH,OAAO,CAACI,GADW,EAEnB,QAFmB,EAGnB,cAHmB,CAApB;;MAMA,IAAMC,SAAiC,GAAG,EAA1C;;MAP0E,2CAStDL,OAAO,CAACK,SAT8C;MAAA;;MAAA;QAS1E,oDAAuC;UAAA,IAA5BC,KAA4B;UACtCD,SAAS,CAACE,IAAV,iCACID,KADJ;YAECE,IAAI,EAAEC,gBAAA,CACJC,QADI,CACKD,gBAAA,CAASE,OAAT,CAAiBV,WAAjB,CADL,EACoCK,KAAK,CAACE,IAD1C,EAEJI,OAFI,CAEI,KAFJ,EAEW,EAFX;UAFP;QAMA;MAhByE;QAAA;MAAA;QAAA;MAAA;;MAkB1E,OAAOP,SAAP;IACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventStore.js","names":["eventFileNamesImportKeyMap","key","isSchema","EventStore","options","localNamespace","didUpdateHandler","namespaces","fetchRemoteContracts","contracts","error","responseErrors","loadLocalContract","localContract","filterOutLocalEventsFromRemoteContractsMutating","push","errors","join","contractCache","connectToApi","shouldAuthAsCurrentSkill","client","emitAndFlattenResponses","target","remoteContracts","ns","namesUtil","toKebab","contract","sigs","eventContractUtil","getNamedEventSignatures","sig","eventNamespace","eventSignatures","fullyQualifiedEventName","localEventCache","generateGlobbyForLocalEvents","localMatches","filesByFqenAndEventKey","length","Promise","all","map","match","eventDiskUtil","splitPathToEvent","eventName","version","fqen","eventNameUtil","filename","pathUtil","basename","eventKey","SpruceError","code","brokenProperty","originalError","matches","o","Service","bulkImport","importsInOrder","importsByName","idx","imported","Object","keys","forEach","split","emitPayloadSchema","payloadSchema","emitPayload","targetSchema","emitTarget","responsePayloadSchema","responsePayload","emitPermissionContract","emitPermissions","listenPermissionContract","listenPermissions","cleaned","eventContractCleanerUtil","cleanPayloadsAndPermissions","diskUtil","resolvePath","cwd","emit","payload","eventContract","results","eventResponseUtil","getFirstResponseOrThrow","undefined","AbstractStore"],"sources":["../../../../src/features/event/stores/EventStore.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tEventContract,\n\tEventSignature,\n\tPermissionContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { Schema, validateSchema } from '@sprucelabs/schema'\nimport {\n\teventResponseUtil,\n\teventDiskUtil,\n\teventNameUtil,\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { cloneDeep } from 'lodash'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { InternalUpdateHandler } from '../../../types/cli.types'\nimport { eventContractCleanerUtil } from '../../../utilities/eventContractCleaner.utility'\n\nexport interface EventStoreFetchEventContractsResponse {\n\terrors: SpruceError[]\n\tcontracts: EventContract[]\n}\n\ntype Options = Omit<\n\tEventSignature,\n\t| 'responsePayloadSchema'\n\t| 'emitPayloadSchema'\n\t| 'listenPermissionContract'\n\t| 'emitPermissionContract'\n>\n\ninterface EventImport {\n\toptions?: Options\n\temitPayload?: Schema\n\temitTarget?: Schema\n\tresponsePayload?: Schema\n\temitPermissions?: PermissionContract\n\tlistenPermissions?: PermissionContract\n}\n\nconst eventFileNamesImportKeyMap = {\n\t'event.options.ts': { key: 'options', isSchema: false },\n\t'emitPayload.builder.ts': { key: 'emitPayload', isSchema: true },\n\t'emitTarget.builder.ts': { key: 'emitTarget', isSchema: true },\n\t'responsePayload.builder.ts': { key: 'responsePayload', isSchema: true },\n\t'emitPermissions.builder.ts': { key: 'emitPermissions', isSchema: false },\n\t'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },\n}\n\nexport interface FetchContractsOptions {\n\tlocalNamespace?: string\n\tnamespaces?: string[]\n\tdidUpdateHandler?: InternalUpdateHandler\n}\n\nexport default class EventStore extends AbstractStore {\n\tpublic name = 'event'\n\tprotected static contractCache: Record<string, any> = {}\n\tprivate static localEventCache?: SpruceSchemas.Mercury.v2020_12_25.EventContract\n\n\tpublic static clearCache() {\n\t\tEventStore.localEventCache = undefined\n\t\tEventStore.contractCache = {}\n\t}\n\n\tpublic async fetchEventContracts(\n\t\toptions?: FetchContractsOptions\n\t): Promise<EventStoreFetchEventContractsResponse> {\n\t\tconst { localNamespace, didUpdateHandler, namespaces } = options ?? {}\n\n\t\tdidUpdateHandler?.('Pulling remote contracts...')\n\n\t\tlet contracts\n\t\ttry {\n\t\t\tcontracts = await this.fetchRemoteContracts(namespaces)\n\t\t} catch (err: any) {\n\t\t\tconst error = err.options.responseErrors?.[0] ?? err\n\t\t\tthrow error\n\t\t}\n\n\t\tconst localContract =\n\t\t\tlocalNamespace &&\n\t\t\t(await this.loadLocalContract(localNamespace, didUpdateHandler))\n\n\t\tif (localNamespace) {\n\t\t\tthis.filterOutLocalEventsFromRemoteContractsMutating(\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace\n\t\t\t)\n\t\t}\n\n\t\tif (localContract) {\n\t\t\tcontracts.push(localContract)\n\t\t}\n\n\t\treturn {\n\t\t\tcontracts,\n\t\t\terrors: [],\n\t\t}\n\t}\n\n\tprivate async fetchRemoteContracts(namespaces?: string[]) {\n\t\tconst key = namespaces?.join('|') ?? '_'\n\n\t\tif (!EventStore.contractCache[key]) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst [{ contracts }] = await client.emitAndFlattenResponses(\n\t\t\t\t'get-event-contracts::v2020_12_25',\n\t\t\t\t{\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tnamespaces,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tEventStore.contractCache[key] = contracts\n\t\t}\n\n\t\treturn cloneDeep(EventStore.contractCache[key])\n\t}\n\n\tprivate filterOutLocalEventsFromRemoteContractsMutating(\n\t\tremoteContracts: EventContract[],\n\t\tlocalNamespace: string\n\t) {\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\n\t\tfor (const contract of remoteContracts) {\n\t\t\tconst sigs = eventContractUtil.getNamedEventSignatures(contract)\n\t\t\tfor (const sig of sigs) {\n\t\t\t\tif (sig.eventNamespace === ns) {\n\t\t\t\t\tdelete contract.eventSignatures[sig.fullyQualifiedEventName]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async loadLocalContract(\n\t\tlocalNamespace: string,\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t): Promise<EventContract | null> {\n\t\tif (EventStore.localEventCache) {\n\t\t\treturn EventStore.localEventCache\n\t\t}\n\n\t\tconst localMatches = await globby(this.generateGlobbyForLocalEvents())\n\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\t\tconst eventSignatures: Record<string, EventSignature> = {}\n\t\tconst filesByFqenAndEventKey: {\n\t\t\tfqen: string\n\t\t\tisSchema: boolean\n\t\t\tmatch: string\n\t\t\teventKey: string\n\t\t}[] = []\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Importing ${localMatches.length} local event signature files...`\n\t\t)\n\n\t\tawait Promise.all(\n\t\t\tlocalMatches.map(async (match) => {\n\t\t\t\tlet fqen: string | undefined\n\t\t\t\tlet eventKey: keyof EventImport | undefined\n\n\t\t\t\ttry {\n\t\t\t\t\tconst { eventName, version } = eventDiskUtil.splitPathToEvent(match)\n\t\t\t\t\tfqen = eventNameUtil.join({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\teventNamespace: ns,\n\t\t\t\t\t})\n\n\t\t\t\t\tconst filename = pathUtil.basename(\n\t\t\t\t\t\tmatch\n\t\t\t\t\t) as keyof typeof eventFileNamesImportKeyMap\n\n\t\t\t\t\tconst map = eventFileNamesImportKeyMap[filename]\n\n\t\t\t\t\tif (map) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\teventKey = map.key\n\n\t\t\t\t\t\tfilesByFqenAndEventKey.push({\n\t\t\t\t\t\t\tfqen,\n\t\t\t\t\t\t\tisSchema: map.isSchema,\n\t\t\t\t\t\t\tmatch,\n\t\t\t\t\t\t\teventKey: eventKey as string,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen ?? 'Bad event name',\n\t\t\t\t\t\tbrokenProperty: eventKey ?? '*** major failure ***',\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst matches = filesByFqenAndEventKey.map((o) => o.match)\n\t\tconst importsInOrder = (await this.Service('import').bulkImport(\n\t\t\tmatches\n\t\t)) as Record<string, any>[]\n\t\tconst importsByName: Record<string, EventImport> = {}\n\n\t\tfor (let idx = 0; idx < filesByFqenAndEventKey.length; idx++) {\n\t\t\tconst imported = importsInOrder[idx]\n\t\t\tconst { fqen, eventKey, isSchema } = filesByFqenAndEventKey[idx]\n\n\t\t\tif (isSchema) {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateSchema(imported)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen,\n\t\t\t\t\t\tbrokenProperty: eventKey,\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!importsByName[fqen]) {\n\t\t\t\timportsByName[fqen] = {}\n\t\t\t}\n\n\t\t\t//@ts-ignore\n\t\t\timportsByName[fqen][eventKey] = imported\n\t\t}\n\n\t\tObject.keys(importsByName).forEach((fqen) => {\n\t\t\tconst imported = importsByName[fqen]\n\t\t\tconst { eventName } = eventNameUtil.split(fqen)\n\t\t\teventSignatures[fqen] = {\n\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\teventName,\n\t\t\t\t\tpayloadSchema: imported.emitPayload,\n\t\t\t\t\ttargetSchema: imported.emitTarget,\n\t\t\t\t}),\n\t\t\t\tresponsePayloadSchema: imported.responsePayload,\n\t\t\t\temitPermissionContract: imported.emitPermissions,\n\t\t\t\tlistenPermissionContract: imported.listenPermissions,\n\t\t\t\t...imported.options,\n\t\t\t}\n\t\t})\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Loaded ${Object.keys(eventSignatures).length} local event signatures...`\n\t\t)\n\n\t\tif (Object.keys(eventSignatures).length > 0) {\n\t\t\tconst cleaned = eventContractCleanerUtil.cleanPayloadsAndPermissions({\n\t\t\t\teventSignatures,\n\t\t\t})\n\n\t\t\tvalidateEventContract(cleaned)\n\n\t\t\tEventStore.localEventCache = cleaned\n\n\t\t\treturn cleaned\n\t\t}\n\n\t\treturn null\n\t}\n\n\tprivate generateGlobbyForLocalEvents(): string | readonly string[] {\n\t\treturn diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'**',\n\t\t\t'events',\n\t\t\t'**/*.(builder|options).ts'\n\t\t)\n\t}\n\n\tpublic async registerEventContract(options: {\n\t\teventContract: EventContract\n\t}) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('register-events::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tcontract: options.eventContract,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\n\t\treturn results\n\t}\n\n\tpublic async unRegisterEvents(\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('unregister-events::v2020_12_25', {\n\t\t\tpayload: options,\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAOA;;AACA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;AAwBA,IAAMA,0BAA0B,GAAG;EAClC,oBAAoB;IAAEC,GAAG,EAAE,SAAP;IAAkBC,QAAQ,EAAE;EAA5B,CADc;EAElC,0BAA0B;IAAED,GAAG,EAAE,aAAP;IAAsBC,QAAQ,EAAE;EAAhC,CAFQ;EAGlC,yBAAyB;IAAED,GAAG,EAAE,YAAP;IAAqBC,QAAQ,EAAE;EAA/B,CAHS;EAIlC,8BAA8B;IAAED,GAAG,EAAE,iBAAP;IAA0BC,QAAQ,EAAE;EAApC,CAJI;EAKlC,8BAA8B;IAAED,GAAG,EAAE,iBAAP;IAA0BC,QAAQ,EAAE;EAApC,CALI;EAMlC,gCAAgC;IAAED,GAAG,EAAE,mBAAP;IAA4BC,QAAQ,EAAE;EAAtC;AANE,CAAnC;;IAeqBC,U;;;;;;;;;;;;;;;6FACN,O;;;;;;;+GASd,iBACCC,OADD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,OAG0DA,OAH1D,aAG0DA,OAH1D,cAG0DA,OAH1D,GAGqE,EAHrE,EAGSC,cAHT,QAGSA,cAHT,EAGyBC,gBAHzB,QAGyBA,gBAHzB,EAG2CC,UAH3C,QAG2CA,UAH3C;gBAKCD,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAG,6BAAH,CAAhB;gBALD;gBAAA;gBAAA,OASoB,KAAKE,oBAAL,CAA0BD,UAA1B,CATpB;;cAAA;gBASEE,SATF;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;gBAWQC,KAXR,sDAWgB,YAAIN,OAAJ,CAAYO,cAX5B,2DAWgB,uBAA6B,CAA7B,CAXhB;gBAAA,MAYQD,KAZR;;cAAA;gBAAA,cAgBEL,cAhBF;;gBAAA;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAiBS,KAAKO,iBAAL,CAAuBP,cAAvB,EAAuCC,gBAAvC,CAjBT;;cAAA;gBAAA;;cAAA;gBAeOO,aAfP;;gBAmBC,IAAIR,cAAJ,EAAoB;kBACnB,KAAKS,+CAAL,CACCL,SADD,EAECJ,cAFD;gBAIA;;gBAED,IAAIQ,aAAJ,EAAmB;kBAClBJ,SAAS,CAACM,IAAV,CAAeF,aAAf;gBACA;;gBA5BF,iCA8BQ;kBACNJ,SAAS,EAATA,SADM;kBAENO,MAAM,EAAE;gBAFF,CA9BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAoCA,kBAAmCT,UAAnC;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACON,GADP,uBACaM,UADb,aACaA,UADb,uBACaA,UAAU,CAAEU,IAAZ,CAAiB,GAAjB,CADb,+DACsC,GADtC;;gBAAA,IAGMd,UAAU,CAACe,aAAX,CAAyBjB,GAAzB,CAHN;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAIuB,KAAKkB,YAAL,CAAkB;kBAAEC,wBAAwB,EAAE;gBAA5B,CAAlB,CAJvB;;cAAA;gBAIQC,MAJR;gBAAA;gBAAA,OAMgCA,MAAM,CAACC,uBAAP,CAC7B,kCAD6B,EAE7B;kBACCC,MAAM,EAAE;oBACPhB,UAAU,EAAVA;kBADO;gBADT,CAF6B,CANhC;;cAAA;gBAAA;gBAAA;gBAMWE,SANX,6BAMWA,SANX;gBAeEN,UAAU,CAACe,aAAX,CAAyBjB,GAAzB,IAAgCQ,SAAhC;;cAfF;gBAAA,kCAkBQ,uBAAUN,UAAU,CAACe,aAAX,CAAyBjB,GAAzB,CAAV,CAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAqBA,yDACCuB,eADD,EAECnB,cAFD,EAGE;MACD,IAAMoB,EAAE,GAAGC,4BAAUC,OAAV,CAAkBtB,cAAlB,CAAX;;MADC,2CAGsBmB,eAHtB;MAAA;;MAAA;QAGD,oDAAwC;UAAA,IAA7BI,QAA6B;;UACvC,IAAMC,IAAI,GAAGC,oCAAkBC,uBAAlB,CAA0CH,QAA1C,CAAb;;UADuC,4CAErBC,IAFqB;UAAA;;UAAA;YAEvC,uDAAwB;cAAA,IAAbG,GAAa;;cACvB,IAAIA,GAAG,CAACC,cAAJ,KAAuBR,EAA3B,EAA+B;gBAC9B,OAAOG,QAAQ,CAACM,eAAT,CAAyBF,GAAG,CAACG,uBAA7B,CAAP;cACA;YACD;UANsC;YAAA;UAAA;YAAA;UAAA;QAOvC;MAVA;QAAA;MAAA;QAAA;MAAA;IAWD;;;;6GAED,kBACC9B,cADD,EAECC,gBAFD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,KAIKH,UAAU,CAACiC,eAJhB;kBAAA;kBAAA;gBAAA;;gBAAA,kCAKSjC,UAAU,CAACiC,eALpB;;cAAA;gBAAA;gBAAA,OAQ4B,wBAAO,KAAKC,4BAAL,EAAP,CAR5B;;cAAA;gBAQOC,YARP;gBAUOb,EAVP,GAUYC,4BAAUC,OAAV,CAAkBtB,cAAlB,CAVZ;gBAWO6B,eAXP,GAWyD,EAXzD;gBAYOK,sBAZP,GAiBO,EAjBP;gBAmBCjC,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,qBACFgC,YAAY,CAACE,MADX,qCAAhB;gBAnBD;gBAAA,OAuBOC,OAAO,CAACC,GAAR,CACLJ,YAAY,CAACK,GAAb;kBAAA,0FAAiB,kBAAOC,KAAP;oBAAA;;oBAAA;sBAAA;wBAAA;0BAAA;4BAAA;4BAAA,wBAKgBC,gCAAcC,gBAAd,CAA+BF,KAA/B,CALhB,EAKPG,SALO,yBAKPA,SALO,EAKIC,OALJ,yBAKIA,OALJ;4BAMfC,IAAI,GAAGC,gCAAcjC,IAAd,CAAmB;8BACzB8B,SAAS,EAATA,SADyB;8BAEzBC,OAAO,EAAPA,OAFyB;8BAGzBf,cAAc,EAAER;4BAHS,CAAnB,CAAP;4BAMM0B,QAZS,GAYEC,iBAASC,QAAT,CAChBT,KADgB,CAZF;4BAgBTD,GAhBS,GAgBH3C,0BAA0B,CAACmD,QAAD,CAhBvB;;4BAkBf,IAAIR,GAAJ,EAAS;8BACR;8BACAW,QAAQ,GAAGX,GAAG,CAAC1C,GAAf;8BAEAsC,sBAAsB,CAACxB,IAAvB,CAA4B;gCAC3BkC,IAAI,EAAJA,IAD2B;gCAE3B/C,QAAQ,EAAEyC,GAAG,CAACzC,QAFa;gCAG3B0C,KAAK,EAALA,KAH2B;gCAI3BU,QAAQ,EAAEA;8BAJiB,CAA5B;4BAMA;;4BA5Bc;4BAAA;;0BAAA;4BAAA;4BAAA;4BAAA,MA8BT,IAAIC,uBAAJ,CAAgB;8BACrBC,IAAI,EAAE,wBADe;8BAErBrB,uBAAuB,WAAEc,IAAF,yCAAU,gBAFZ;8BAGrBQ,cAAc,eAAEH,QAAF,iDAAc,uBAHP;8BAIrBI,aAAa;4BAJQ,CAAhB,CA9BS;;0BAAA;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CAAjB;;kBAAA;oBAAA;kBAAA;gBAAA,IADK,CAvBP;;cAAA;gBAgEOC,OAhEP,GAgEiBpB,sBAAsB,CAACI,GAAvB,CAA2B,UAACiB,CAAD;kBAAA,OAAOA,CAAC,CAAChB,KAAT;gBAAA,CAA3B,CAhEjB;gBAAA;gBAAA,OAiE+B,KAAKiB,OAAL,CAAa,QAAb,EAAuBC,UAAvB,CAC7BH,OAD6B,CAjE/B;;cAAA;gBAiEOI,cAjEP;gBAoEOC,aApEP,GAoEoD,EApEpD;gBAsEUC,GAtEV,GAsEgB,CAtEhB;;cAAA;gBAAA,MAsEmBA,GAAG,GAAG1B,sBAAsB,CAACC,MAtEhD;kBAAA;kBAAA;gBAAA;;gBAuEQ0B,QAvER,GAuEmBH,cAAc,CAACE,GAAD,CAvEjC;gBAAA,wBAwEuC1B,sBAAsB,CAAC0B,GAAD,CAxE7D,EAwEUhB,IAxEV,yBAwEUA,IAxEV,EAwEgBK,QAxEhB,yBAwEgBA,QAxEhB,EAwE0BpD,QAxE1B,yBAwE0BA,QAxE1B;;gBAAA,KA0EMA,QA1EN;kBAAA;kBAAA;gBAAA;;gBAAA;gBA4EI,4BAAegE,QAAf;gBA5EJ;gBAAA;;cAAA;gBAAA;gBAAA;gBAAA,MA8EU,IAAIX,uBAAJ,CAAgB;kBACrBC,IAAI,EAAE,wBADe;kBAErBrB,uBAAuB,EAAEc,IAFJ;kBAGrBQ,cAAc,EAAEH,QAHK;kBAIrBI,aAAa;gBAJQ,CAAhB,CA9EV;;cAAA;gBAuFE,IAAI,CAACM,aAAa,CAACf,IAAD,CAAlB,EAA0B;kBACzBe,aAAa,CAACf,IAAD,CAAb,GAAsB,EAAtB;gBACA,CAzFH,CA2FE;;;gBACAe,aAAa,CAACf,IAAD,CAAb,CAAoBK,QAApB,IAAgCY,QAAhC;;cA5FF;gBAsEwDD,GAAG,EAtE3D;gBAAA;gBAAA;;cAAA;gBA+FCE,MAAM,CAACC,IAAP,CAAYJ,aAAZ,EAA2BK,OAA3B,CAAmC,UAACpB,IAAD,EAAU;kBAC5C,IAAMiB,QAAQ,GAAGF,aAAa,CAACf,IAAD,CAA9B;;kBACA,2BAAsBC,gCAAcoB,KAAd,CAAoBrB,IAApB,CAAtB;kBAAA,IAAQF,SAAR,wBAAQA,SAAR;;kBACAb,eAAe,CAACe,IAAD,CAAf;oBACCsB,iBAAiB,EAAE,uDAAgC;sBAClDxB,SAAS,EAATA,SADkD;sBAElDyB,aAAa,EAAEN,QAAQ,CAACO,WAF0B;sBAGlDC,YAAY,EAAER,QAAQ,CAACS;oBAH2B,CAAhC,CADpB;oBAMCC,qBAAqB,EAAEV,QAAQ,CAACW,eANjC;oBAOCC,sBAAsB,EAAEZ,QAAQ,CAACa,eAPlC;oBAQCC,wBAAwB,EAAEd,QAAQ,CAACe;kBARpC,GASIf,QAAQ,CAAC9D,OATb;gBAWA,CAdD;gBAgBAE,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,kBACL6D,MAAM,CAACC,IAAP,CAAYlC,eAAZ,EAA6BM,MADxB,gCAAhB;;gBA/GD,MAmHK2B,MAAM,CAACC,IAAP,CAAYlC,eAAZ,EAA6BM,MAA7B,GAAsC,CAnH3C;kBAAA;kBAAA;gBAAA;;gBAoHQ0C,OApHR,GAoHkBC,+CAAyBC,2BAAzB,CAAqD;kBACpElD,eAAe,EAAfA;gBADoE,CAArD,CApHlB;gBAwHE,yCAAsBgD,OAAtB;gBAEA/E,UAAU,CAACiC,eAAX,GAA6B8C,OAA7B;gBA1HF,kCA4HSA,OA5HT;;cAAA;gBAAA,kCA+HQ,IA/HR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAkIA,wCAAmE;MAClE,OAAOG,2BAASC,WAAT,CACN,KAAKC,GADC,EAEN,KAFM,EAGN,IAHM,EAIN,QAJM,EAKN,2BALM,CAAP;IAOA;;;;iHAED,kBAAmCnF,OAAnC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGsB,KAAKe,YAAL,CAAkB;kBAAEC,wBAAwB,EAAE;gBAA5B,CAAlB,CAHtB;;cAAA;gBAGOC,MAHP;gBAAA;gBAAA,OAKuBA,MAAM,CAACmE,IAAP,CAAY,8BAAZ,EAA4C;kBACjEC,OAAO,EAAE;oBACR7D,QAAQ,EAAExB,OAAO,CAACsF;kBADV;gBADwD,CAA5C,CALvB;;cAAA;gBAKOC,OALP;;gBAWCC,oCAAkBC,uBAAlB,CAA0CF,OAA1C;;gBAEAxF,UAAU,CAACe,aAAX,GAA2B,EAA3B;gBAbD,kCAeQyE,OAfR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAkBA,kBACCvF,OADD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGsB,KAAKe,YAAL,CAAkB;kBAAEC,wBAAwB,EAAE;gBAA5B,CAAlB,CAHtB;;cAAA;gBAGOC,MAHP;gBAAA;gBAAA,OAKuBA,MAAM,CAACmE,IAAP,CAAY,gCAAZ,EAA8C;kBACnEC,OAAO,EAAErF;gBAD0D,CAA9C,CALvB;;cAAA;gBAKOuF,OALP;;gBASCC,oCAAkBC,uBAAlB,CAA0CF,OAA1C;;gBAEAxF,UAAU,CAACe,aAAX,GAA2B,EAA3B;;cAXD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WA5OA,sBAA2B;MAC1Bf,UAAU,CAACiC,eAAX,GAA6B0D,SAA7B;MACA3F,UAAU,CAACe,aAAX,GAA2B,EAA3B;IACA;;;EARsC6E,0B;;;iCAAnB5F,U,mBAEkC,E;iCAFlCA,U"}
1
+ {"version":3,"file":"EventStore.js","names":["eventFileNamesImportKeyMap","key","isSchema","EventStore","options","localNamespace","didUpdateHandler","namespaces","fetchRemoteContracts","contracts","error","responseErrors","loadLocalContract","localContract","filterOutLocalEventsFromRemoteContractsMutating","push","errors","join","contractCache","connectToApi","shouldAuthAsCurrentSkill","client","emitAndFlattenResponses","target","cloneDeep","remoteContracts","ns","namesUtil","toKebab","contract","sigs","eventContractUtil","getNamedEventSignatures","sig","eventNamespace","eventSignatures","fullyQualifiedEventName","localEventCache","globby","generateGlobbyForLocalEvents","localMatches","filesByFqenAndEventKey","length","Promise","all","map","match","eventDiskUtil","splitPathToEvent","eventName","version","fqen","eventNameUtil","filename","pathUtil","basename","eventKey","SpruceError","code","brokenProperty","originalError","matches","o","Service","bulkImport","importsInOrder","importsByName","idx","imported","validateSchema","Object","keys","forEach","split","emitPayloadSchema","buildEmitTargetAndPayloadSchema","payloadSchema","emitPayload","targetSchema","emitTarget","responsePayloadSchema","responsePayload","emitPermissionContract","emitPermissions","listenPermissionContract","listenPermissions","cleaned","eventContractCleanerUtil","cleanPayloadsAndPermissions","validateEventContract","diskUtil","resolvePath","cwd","emit","payload","eventContract","results","eventResponseUtil","getFirstResponseOrThrow","undefined","AbstractStore"],"sources":["../../../../src/features/event/stores/EventStore.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tEventContract,\n\tEventSignature,\n\tPermissionContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { Schema, validateSchema } from '@sprucelabs/schema'\nimport {\n\teventResponseUtil,\n\teventDiskUtil,\n\teventNameUtil,\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { cloneDeep } from 'lodash'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { InternalUpdateHandler } from '../../../types/cli.types'\nimport { eventContractCleanerUtil } from '../../../utilities/eventContractCleaner.utility'\n\nexport interface EventStoreFetchEventContractsResponse {\n\terrors: SpruceError[]\n\tcontracts: EventContract[]\n}\n\ntype Options = Omit<\n\tEventSignature,\n\t| 'responsePayloadSchema'\n\t| 'emitPayloadSchema'\n\t| 'listenPermissionContract'\n\t| 'emitPermissionContract'\n>\n\ninterface EventImport {\n\toptions?: Options\n\temitPayload?: Schema\n\temitTarget?: Schema\n\tresponsePayload?: Schema\n\temitPermissions?: PermissionContract\n\tlistenPermissions?: PermissionContract\n}\n\nconst eventFileNamesImportKeyMap = {\n\t'event.options.ts': { key: 'options', isSchema: false },\n\t'emitPayload.builder.ts': { key: 'emitPayload', isSchema: true },\n\t'emitTarget.builder.ts': { key: 'emitTarget', isSchema: true },\n\t'responsePayload.builder.ts': { key: 'responsePayload', isSchema: true },\n\t'emitPermissions.builder.ts': { key: 'emitPermissions', isSchema: false },\n\t'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },\n}\n\nexport interface FetchContractsOptions {\n\tlocalNamespace?: string\n\tnamespaces?: string[]\n\tdidUpdateHandler?: InternalUpdateHandler\n}\n\nexport default class EventStore extends AbstractStore {\n\tpublic name = 'event'\n\tprotected static contractCache: Record<string, any> = {}\n\tprivate static localEventCache?: SpruceSchemas.Mercury.v2020_12_25.EventContract\n\n\tpublic static clearCache() {\n\t\tEventStore.localEventCache = undefined\n\t\tEventStore.contractCache = {}\n\t}\n\n\tpublic async fetchEventContracts(\n\t\toptions?: FetchContractsOptions\n\t): Promise<EventStoreFetchEventContractsResponse> {\n\t\tconst { localNamespace, didUpdateHandler, namespaces } = options ?? {}\n\n\t\tdidUpdateHandler?.('Pulling remote contracts...')\n\n\t\tlet contracts\n\t\ttry {\n\t\t\tcontracts = await this.fetchRemoteContracts(namespaces)\n\t\t} catch (err: any) {\n\t\t\tconst error = err.options.responseErrors?.[0] ?? err\n\t\t\tthrow error\n\t\t}\n\n\t\tconst localContract =\n\t\t\tlocalNamespace &&\n\t\t\t(await this.loadLocalContract(localNamespace, didUpdateHandler))\n\n\t\tif (localNamespace) {\n\t\t\tthis.filterOutLocalEventsFromRemoteContractsMutating(\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace\n\t\t\t)\n\t\t}\n\n\t\tif (localContract) {\n\t\t\tcontracts.push(localContract)\n\t\t}\n\n\t\treturn {\n\t\t\tcontracts,\n\t\t\terrors: [],\n\t\t}\n\t}\n\n\tprivate async fetchRemoteContracts(namespaces?: string[]) {\n\t\tconst key = namespaces?.join('|') ?? '_'\n\n\t\tif (!EventStore.contractCache[key]) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst [{ contracts }] = await client.emitAndFlattenResponses(\n\t\t\t\t'get-event-contracts::v2020_12_25',\n\t\t\t\t{\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tnamespaces,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tEventStore.contractCache[key] = contracts\n\t\t}\n\n\t\treturn cloneDeep(EventStore.contractCache[key])\n\t}\n\n\tprivate filterOutLocalEventsFromRemoteContractsMutating(\n\t\tremoteContracts: EventContract[],\n\t\tlocalNamespace: string\n\t) {\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\n\t\tfor (const contract of remoteContracts) {\n\t\t\tconst sigs = eventContractUtil.getNamedEventSignatures(contract)\n\t\t\tfor (const sig of sigs) {\n\t\t\t\tif (sig.eventNamespace === ns) {\n\t\t\t\t\tdelete contract.eventSignatures[sig.fullyQualifiedEventName]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async loadLocalContract(\n\t\tlocalNamespace: string,\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t): Promise<EventContract | null> {\n\t\tif (EventStore.localEventCache) {\n\t\t\treturn EventStore.localEventCache\n\t\t}\n\n\t\tconst localMatches = await globby(this.generateGlobbyForLocalEvents())\n\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\t\tconst eventSignatures: Record<string, EventSignature> = {}\n\t\tconst filesByFqenAndEventKey: {\n\t\t\tfqen: string\n\t\t\tisSchema: boolean\n\t\t\tmatch: string\n\t\t\teventKey: string\n\t\t}[] = []\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Importing ${localMatches.length} local event signature files...`\n\t\t)\n\n\t\tawait Promise.all(\n\t\t\tlocalMatches.map(async (match) => {\n\t\t\t\tlet fqen: string | undefined\n\t\t\t\tlet eventKey: keyof EventImport | undefined\n\n\t\t\t\ttry {\n\t\t\t\t\tconst { eventName, version } = eventDiskUtil.splitPathToEvent(match)\n\t\t\t\t\tfqen = eventNameUtil.join({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\teventNamespace: ns,\n\t\t\t\t\t})\n\n\t\t\t\t\tconst filename = pathUtil.basename(\n\t\t\t\t\t\tmatch\n\t\t\t\t\t) as keyof typeof eventFileNamesImportKeyMap\n\n\t\t\t\t\tconst map = eventFileNamesImportKeyMap[filename]\n\n\t\t\t\t\tif (map) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\teventKey = map.key\n\n\t\t\t\t\t\tfilesByFqenAndEventKey.push({\n\t\t\t\t\t\t\tfqen,\n\t\t\t\t\t\t\tisSchema: map.isSchema,\n\t\t\t\t\t\t\tmatch,\n\t\t\t\t\t\t\teventKey: eventKey as string,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen ?? 'Bad event name',\n\t\t\t\t\t\tbrokenProperty: eventKey ?? '*** major failure ***',\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst matches = filesByFqenAndEventKey.map((o) => o.match)\n\t\tconst importsInOrder = (await this.Service('import').bulkImport(\n\t\t\tmatches\n\t\t)) as Record<string, any>[]\n\t\tconst importsByName: Record<string, EventImport> = {}\n\n\t\tfor (let idx = 0; idx < filesByFqenAndEventKey.length; idx++) {\n\t\t\tconst imported = importsInOrder[idx]\n\t\t\tconst { fqen, eventKey, isSchema } = filesByFqenAndEventKey[idx]\n\n\t\t\tif (isSchema) {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateSchema(imported)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen,\n\t\t\t\t\t\tbrokenProperty: eventKey,\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!importsByName[fqen]) {\n\t\t\t\timportsByName[fqen] = {}\n\t\t\t}\n\n\t\t\t//@ts-ignore\n\t\t\timportsByName[fqen][eventKey] = imported\n\t\t}\n\n\t\tObject.keys(importsByName).forEach((fqen) => {\n\t\t\tconst imported = importsByName[fqen]\n\t\t\tconst { eventName } = eventNameUtil.split(fqen)\n\t\t\teventSignatures[fqen] = {\n\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\teventName,\n\t\t\t\t\tpayloadSchema: imported.emitPayload,\n\t\t\t\t\ttargetSchema: imported.emitTarget,\n\t\t\t\t}),\n\t\t\t\tresponsePayloadSchema: imported.responsePayload,\n\t\t\t\temitPermissionContract: imported.emitPermissions,\n\t\t\t\tlistenPermissionContract: imported.listenPermissions,\n\t\t\t\t...imported.options,\n\t\t\t}\n\t\t})\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Loaded ${Object.keys(eventSignatures).length} local event signatures...`\n\t\t)\n\n\t\tif (Object.keys(eventSignatures).length > 0) {\n\t\t\tconst cleaned = eventContractCleanerUtil.cleanPayloadsAndPermissions({\n\t\t\t\teventSignatures,\n\t\t\t})\n\n\t\t\tvalidateEventContract(cleaned)\n\n\t\t\tEventStore.localEventCache = cleaned\n\n\t\t\treturn cleaned\n\t\t}\n\n\t\treturn null\n\t}\n\n\tprivate generateGlobbyForLocalEvents(): string | readonly string[] {\n\t\treturn diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'**',\n\t\t\t'events',\n\t\t\t'**/*.(builder|options).ts'\n\t\t)\n\t}\n\n\tpublic async registerEventContract(options: {\n\t\teventContract: EventContract\n\t}) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('register-events::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tcontract: options.eventContract,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\n\t\treturn results\n\t}\n\n\tpublic async unRegisterEvents(\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('unregister-events::v2020_12_25', {\n\t\t\tpayload: options,\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListenerStore.js","names":["ListenerStore","generateGlobbyPattern","matches","listeners","match","listener","eventDiskUtil","splitPathToListener","push","path","diskUtil","resolvePath","cwd","AbstractStore"],"sources":["../../../../src/features/event/stores/ListenerStore.ts"],"sourcesContent":["import { eventDiskUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ListenerTemplateItem } from '@sprucelabs/spruce-templates'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport type Listener = ListenerTemplateItem & {\n\tpath: string\n}\n\nexport default class ListenerStore extends AbstractStore {\n\tpublic name = 'listener'\n\n\tpublic async loadListeners() {\n\t\tconst matches = await globby(this.generateGlobbyPattern())\n\n\t\tconst listeners: Listener[] = []\n\n\t\tfor (const match of matches) {\n\t\t\tconst listener = eventDiskUtil.splitPathToListener(match)\n\n\t\t\tlisteners.push({\n\t\t\t\t...listener,\n\t\t\t\tpath: match,\n\t\t\t})\n\t\t}\n\n\t\treturn listeners\n\t}\n\n\tprivate generateGlobbyPattern(): string {\n\t\treturn diskUtil.resolvePath(this.cwd, 'src', '**/*.listener.ts')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;;;IAMqBA,a;;;;;;;;;;;;;;;6FACN,U;;;;;;;yGAEd;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,wBAAO,KAAKC,qBAAL,EAAP,CADvB;;cAAA;gBACOC,OADP;gBAGOC,SAHP,GAG+B,EAH/B;gBAAA,uCAKqBD,OALrB;;gBAAA;kBAKC,oDAA6B;oBAAlBE,KAAkB;oBACtBC,QADsB,GACXC,gCAAcC,mBAAd,CAAkCH,KAAlC,CADW;oBAG5BD,SAAS,CAACK,IAAV,iCACIH,QADJ;sBAECI,IAAI,EAAEL;oBAFP;kBAIA;gBAZF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAAA,iCAcQD,SAdR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAiBA,iCAAwC;MACvC,OAAOO,2BAASC,WAAT,CAAqB,KAAKC,GAA1B,EAA+B,KAA/B,EAAsC,kBAAtC,CAAP;IACA;;;EAtByCC,0B"}
1
+ {"version":3,"file":"ListenerStore.js","names":["ListenerStore","globby","generateGlobbyPattern","matches","listeners","match","listener","eventDiskUtil","splitPathToListener","push","path","diskUtil","resolvePath","cwd","AbstractStore"],"sources":["../../../../src/features/event/stores/ListenerStore.ts"],"sourcesContent":["import { eventDiskUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ListenerTemplateItem } from '@sprucelabs/spruce-templates'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport type Listener = ListenerTemplateItem & {\n\tpath: string\n}\n\nexport default class ListenerStore extends AbstractStore {\n\tpublic name = 'listener'\n\n\tpublic async loadListeners() {\n\t\tconst matches = await globby(this.generateGlobbyPattern())\n\n\t\tconst listeners: Listener[] = []\n\n\t\tfor (const match of matches) {\n\t\t\tconst listener = eventDiskUtil.splitPathToListener(match)\n\n\t\t\tlisteners.push({\n\t\t\t\t...listener,\n\t\t\t\tpath: match,\n\t\t\t})\n\t\t}\n\n\t\treturn listeners\n\t}\n\n\tprivate generateGlobbyPattern(): string {\n\t\treturn diskUtil.resolvePath(this.cwd, 'src', '**/*.listener.ts')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;;;IAMqBA,a;;;;;;;;;;;;;;;6FACN,U;;;;;;;yGAEd;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,IAAAC,kBAAA,EAAO,KAAKC,qBAAL,EAAP,CADvB;;cAAA;gBACOC,OADP;gBAGOC,SAHP,GAG+B,EAH/B;gBAAA,uCAKqBD,OALrB;;gBAAA;kBAKC,oDAA6B;oBAAlBE,KAAkB;oBACtBC,QADsB,GACXC,+BAAA,CAAcC,mBAAd,CAAkCH,KAAlC,CADW;oBAG5BD,SAAS,CAACK,IAAV,iCACIH,QADJ;sBAECI,IAAI,EAAEL;oBAFP;kBAIA;gBAZF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAAA,iCAcQD,SAdR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAiBA,iCAAwC;MACvC,OAAOO,0BAAA,CAASC,WAAT,CAAqB,KAAKC,GAA1B,EAA+B,KAA/B,EAAsC,kBAAtC,CAAP;IACA;;;EAtByCC,0B"}