@sprucelabs/spruce-cli 15.4.11 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/CHANGELOG.md +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.js.map +1 -1
  265. package/build/features/AbstractFeature.js.map +1 -1
  266. package/build/features/ActionExecuter.js.map +1 -1
  267. package/build/features/ActionFactory.js.map +1 -1
  268. package/build/features/ActionQuestionAsker.js.map +1 -1
  269. package/build/features/FeatureCommandAttacher.js.map +1 -1
  270. package/build/features/FeatureInstaller.js.map +1 -1
  271. package/build/features/OverrideActionDecorator.js.map +1 -1
  272. package/build/features/cache/CacheFeature.js.map +1 -1
  273. package/build/features/cache/actions/DisableAction.js.map +1 -1
  274. package/build/features/cache/actions/EnableAction.js.map +1 -1
  275. package/build/features/conversation/ConversationFeature.js.map +1 -1
  276. package/build/features/conversation/actions/TestAction.js.map +1 -1
  277. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  278. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  279. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  280. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  281. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  282. package/build/features/deploy/DeployFeature.js.map +1 -1
  283. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  284. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  285. package/build/features/error/ErrorFeature.js.map +1 -1
  286. package/build/features/error/ParentTestFinder.js.map +1 -1
  287. package/build/features/error/actions/CreateAction.js.map +1 -1
  288. package/build/features/error/actions/SyncAction.js.map +1 -1
  289. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  290. package/build/features/event/EventFeature.js.map +1 -1
  291. package/build/features/event/actions/CreateAction.js.map +1 -1
  292. package/build/features/event/actions/ListenAction.js.map +1 -1
  293. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  294. package/build/features/event/actions/SyncAction.js.map +1 -1
  295. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  296. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  297. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  298. package/build/features/event/stores/EventStore.js.map +1 -1
  299. package/build/features/event/stores/ListenerStore.js.map +1 -1
  300. package/build/features/event/writers/EventWriter.js.map +1 -1
  301. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  302. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  303. package/build/features/feature.utilities.js.map +1 -1
  304. package/build/features/features.types.js.map +1 -1
  305. package/build/features/log/LogFeature.js.map +1 -1
  306. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  307. package/build/features/log/writers/LogWriter.js.map +1 -1
  308. package/build/features/node/NodeFeature.js.map +1 -1
  309. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  310. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  311. package/build/features/node/writers/NodeWriter.js.map +1 -1
  312. package/build/features/onboard/OnboardFeature.js.map +1 -1
  313. package/build/features/onboard/ScriptLoader.js.map +1 -1
  314. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  318. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  319. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  320. package/build/features/organization/OrganizationFeature.js.map +1 -1
  321. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  322. package/build/features/person/PersonFeature.js.map +1 -1
  323. package/build/features/person/actions/LoginAction.js.map +1 -1
  324. package/build/features/person/actions/LogoutAction.js.map +1 -1
  325. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  326. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  327. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  328. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  329. package/build/features/schema/SchemaFeature.js.map +1 -1
  330. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  331. package/build/features/schema/actions/CreateAction.js.map +1 -1
  332. package/build/features/schema/actions/SyncAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  334. package/build/features/schema/services/SchemaService.js.map +1 -1
  335. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  336. package/build/features/schema/stores/SchemaStore.js +2 -1
  337. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  338. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  339. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  341. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  342. package/build/features/skill/SkillFeature.js.map +1 -1
  343. package/build/features/skill/actions/BootAction.js.map +1 -1
  344. package/build/features/skill/actions/CreateAction.js.map +1 -1
  345. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  346. package/build/features/skill/actions/LoginAction.js.map +1 -1
  347. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  348. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  349. package/build/features/skill/stores/SkillStore.js.map +1 -1
  350. package/build/features/skill/updaters/Updater.js.map +1 -1
  351. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  352. package/build/features/store/StoreFeature.js.map +1 -1
  353. package/build/features/store/actions/CreateAction.js.map +1 -1
  354. package/build/features/store/actions/SyncAction.js.map +1 -1
  355. package/build/features/store/stores/StoreStore.js.map +1 -1
  356. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  357. package/build/features/store/writers/StoreWriter.js.map +1 -1
  358. package/build/features/test/TestFeature.js.map +1 -1
  359. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  360. package/build/features/test/TestReporter.js.map +1 -1
  361. package/build/features/test/TestRunner.js.map +1 -1
  362. package/build/features/test/actions/CreateAction.js.map +1 -1
  363. package/build/features/test/actions/SetupAction.js.map +1 -1
  364. package/build/features/test/actions/TestAction.js.map +1 -1
  365. package/build/features/test/writers/TestWriter.js.map +1 -1
  366. package/build/features/validateAndNormalize.utility.js.map +1 -1
  367. package/build/features/view/ViewFeature.js.map +1 -1
  368. package/build/features/view/actions/CreateAction.js.map +1 -1
  369. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  370. package/build/features/view/actions/SyncAction.js.map +1 -1
  371. package/build/features/view/actions/WatchAction.js.map +1 -1
  372. package/build/features/view/stores/ViewStore.js.map +1 -1
  373. package/build/features/view/writers/ViewWriter.js.map +1 -1
  374. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  375. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  376. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  377. package/build/features/watch/WatchFeature.js.map +1 -1
  378. package/build/index.js.map +1 -1
  379. package/build/interfaces/SpyInterface.js +0 -1
  380. package/build/interfaces/SpyInterface.js.map +1 -1
  381. package/build/interfaces/TerminalInterface.js.map +1 -1
  382. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  383. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  406. package/build/services/CommandService.js.map +1 -1
  407. package/build/services/GameService.js.map +1 -1
  408. package/build/services/ImportService.js.map +1 -1
  409. package/build/services/LintService.js.map +1 -1
  410. package/build/services/PkgService.js.map +1 -1
  411. package/build/services/ServiceFactory.js.map +1 -1
  412. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  413. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  414. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  415. package/build/tests/AbstractCliTest.js.map +1 -1
  416. package/build/tests/AbstractEventTest.js.map +1 -1
  417. package/build/tests/AbstractSchemaTest.js.map +1 -1
  418. package/build/tests/AbstractTestTest.js.map +1 -1
  419. package/build/tests/CommandFaker.js.map +1 -1
  420. package/build/tests/JestJsonParser.js.map +1 -1
  421. package/build/tests/buildTestCache.js.map +1 -1
  422. package/build/tests/cleanTestCache.js.map +1 -1
  423. package/build/tests/cleanTestData.js.map +1 -1
  424. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  425. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  426. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  427. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  428. package/build/tests/utilities/test.utility.js.map +1 -1
  429. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  430. package/build/utilities/action.utility.js.map +1 -1
  431. package/build/utilities/commander.utility.js.map +1 -1
  432. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  433. package/build/utilities/form.utility.js.map +1 -1
  434. package/build/utilities/introspection.utility.js.map +1 -1
  435. package/build/utilities/tsConfig.utility.js.map +1 -1
  436. package/build/widgets/Theme.js.map +1 -1
  437. package/build/widgets/WidgetFactory.js.map +1 -1
  438. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  439. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  440. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  441. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  445. package/build/widgets/types/input.types.js.map +1 -1
  446. package/build/widgets/types/menuBar.types.js.map +1 -1
  447. package/build/widgets/types/text.types.js.map +1 -1
  448. package/build/widgets/types/window.types.js.map +1 -1
  449. package/build/writers/AbstractWriter.js.map +1 -1
  450. package/package.json +36 -36
  451. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  452. package/src/features/schema/stores/SchemaStore.ts +4 -2
  453. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  454. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  455. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  456. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAGA;;;;;;;;;;;;;;;;IAEqBA,W;;;;;;;;;;;;;sHACpB,iBACCC,cADD,EAECC,MAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAIKC,OAJL,GAI6B,EAJ7B;;gBAAA,MAMKD,MAAM,CAACE,MAAP,KAAkB,CANvB;kBAAA;kBAAA;gBAAA;;gBAAA,MAQQ,IAAIC,KAAJ,CAAU,yBAAV,CARR;;cAAA;gBAWOC,mBAXP,GAW6BC,0BAAA,CAASC,WAAT,CAC3BP,cAD2B,mBAX7B;;gBAAA,IAgBMM,0BAAA,CAASE,aAAT,CAAuBH,mBAAvB,CAhBN;kBAAA;kBAAA;gBAAA;;gBAiBE,KAAKI,EAAL,CAAQC,YAAR,CAAqB,sBAArB;gBAEMC,aAnBR,GAmBwB,KAAKC,SAAL,CAAeC,KAAf,CAAqB;kBAC1CZ,MAAM,EAAEA,MAAM,CAACa,MAAP,CAAc,UAACD,KAAD;oBAAA,OAAW,CAACA,KAAK,CAACE,QAAlB;kBAAA,CAAd;gBADkC,CAArB,CAnBxB;gBAAA;gBAAA,OAsBkB,KAAKC,8BAAL,CACfX,mBADe,EAEfM,aAFe,EAGf,+EAHe,EAIfT,OAJe,CAtBlB;;cAAA;gBAsBEA,OAtBF;gBAAA;gBAAA;;cAAA;gBA6BE,KAAKO,EAAL,CAAQC,YAAR,CAAqB,sBAArB;gBA7BF;gBAAA,OA+BwB,KAAKO,mBAAL,CACrBhB,MADqB,EAErBI,mBAFqB,CA/BxB;;cAAA;gBA+BQa,OA/BR;;gBAmCE,IAAIA,OAAO,CAACf,MAAR,GAAiB,CAArB,EAAwB;kBACvBD,OAAO,CAACiB,IAAR,iCACID,OAAO,CAAC,CAAD,CADX;oBAECE,WAAW,YAAKF,OAAO,CAACf,MAAb;kBAFZ;gBAIA;;cAxCH;gBAAA;gBAAA,OA2CO,KAAKkB,IAAL,CAAUhB,mBAAV,CA3CP;;cAAA;gBAAA,iCA6CQH,OA7CR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAgDA,kBACCD,MADD,EAECqB,eAFD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAIKpB,OAJL,GAIgC,EAJhC;gBAAA,uCAMqBD,MANrB;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAMYY,KANZ;;gBAAA,IAOOA,KAAK,CAACE,QAPb;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAQ+B,KAAKQ,wBAAL,CAC3BV,KAD2B,EAE3BS,eAF2B,CAR/B;;cAAA;gBAQSE,aART;gBAYGtB,OAAO,CAACiB,IAAR,OAAAjB,OAAO,sCAASsB,aAAT,EAAP;;cAZH;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCAgBQtB,OAhBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAmBA,kBACCW,KADD,EAECS,eAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAIKpB,OAJL,GAIgC,EAJhC;gBAKOuB,UALP,GAKoB,KAAKb,SAAL,CAAeC,KAAf,CAAqB;kBACvCZ,MAAM,EAAE,CAACY,KAAD,CAD+B;kBAEvCa,qBAAqB,EAAE;gBAFgB,CAArB,CALpB,EAUC;;gBACMC,oBAXP,GAW8BrB,0BAAA,CAASsB,QAAT,CAAkBN,eAAlB,CAX9B;gBAYOO,YAZP,GAYsBF,oBAAoB,CAACG,MAArB,CAA4B,WAA5B,CAZtB;;gBAAA,MAcED,YAAY,GAAG,CAAC,CAAhB,IACA,CAAC,KAAKE,kBAAL,CAAwBJ,oBAAxB,EAA8Cd,KAA9C,CAfH;kBAAA;kBAAA;gBAAA;;gBAiBQmB,gBAjBR,GAkBGL,oBAAoB,CAACM,SAArB,CAA+B,CAA/B,EAAkCJ,YAAlC,IACA,IADA,GAEAJ,UAFA,GAGA,IAHA,GAIAE,oBAAoB,CAACM,SAArB,CAA+BJ,YAA/B,CAtBH;gBAAA;gBAAA,OAwBkB,KAAKb,8BAAL,CACfM,eADe,EAEfU,gBAFe,4CAGoBnB,KAAK,CAACqB,IAH1B,QAIfhC,OAJe,CAxBlB;;cAAA;gBAwBEA,OAxBF;;cAAA;gBAAA,kCA+BQA,OA/BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAkCA,4BACCiC,eADD,EAECtB,KAFD,EAGE;MACD,OAAOsB,eAAe,CAACL,MAAhB,CAAuB,IAAIM,MAAJ,iBAAoBvB,KAAK,CAACqB,IAA1B,QAAvB,IAA8D,CAAC,CAAtE;IACA;;;;iHAED,kBACClC,cADD,EAECqC,kBAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAIOC,QAJP,GAIkB,KAAK1B,SAAL,CAAe2B,iBAAf,CAAiC;kBACjDC,OAAO,EAAEH;gBADwC,CAAjC,CAJlB;gBAQOI,WARP,GAQqBnC,0BAAA,CAASC,WAAT,CAAqBP,cAArB,EAAqC,kBAArC,CARrB;gBAUC,KAAKS,EAAL,CAAQC,YAAR,CAAqB,2BAArB;gBAEMR,OAZP,GAYiB,KAAKc,8BAAL,CACfyB,WADe,EAEfH,QAFe,EAGf,wDAHe,CAZjB;gBAAA;gBAAA,OAkBO,KAAKjB,IAAL,CAAUoB,WAAV,CAlBP;;cAAA;gBAAA,kCAoBQvC,OApBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uGAuBA,kBAAyBwC,GAAzB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOD,WADP,GACqBnC,0BAAA,CAASqC,qBAAT,CACnBD,GADmB,EAEnB,UAFmB,EAGnB,iBAHmB,CADrB;gBAOOE,cAPP,GAOwB,KAAKhC,SAAL,CAAeiC,WAAf,EAPxB;gBASO3C,OATP,GASiB,KAAKc,8BAAL,CACfyB,WADe,EAEfG,cAFe,EAGf,yDAHe,CATjB;gBAAA;gBAAA,OAeO,KAAKvB,IAAL,CAAUoB,WAAV,CAfP;;cAAA;gBAAA,kCAiBQvC,OAjBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EApIwC4C,2B"}
@@ -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":"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"}
@@ -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":"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"}
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"}