@sprucelabs/spruce-cli 15.4.12 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  3. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  43. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  44. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  45. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  63. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  67. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  68. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  69. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  70. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  71. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  89. package/build/GlobalEmitter.js.map +1 -1
  90. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  91. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  92. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  93. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  94. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  95. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  96. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  97. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  98. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  99. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  100. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  101. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  102. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  103. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  104. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  105. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  106. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  107. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  108. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  109. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  110. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  111. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  112. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  113. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  114. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  115. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  116. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  117. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  118. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  119. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  120. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  121. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  122. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  123. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  124. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  125. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  126. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  127. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  128. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  129. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  130. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  131. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  132. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  133. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  135. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  136. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  137. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  138. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  139. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  140. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  141. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  142. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  143. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  144. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  145. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  146. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  147. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  148. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  149. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  150. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  151. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  152. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  153. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
  155. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  156. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  157. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  158. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  159. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  161. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  169. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  171. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  173. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  175. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  176. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  177. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  178. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  179. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  180. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  181. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  182. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  183. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  184. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  185. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  186. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  187. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  188. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  189. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  190. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  191. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  192. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  193. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  194. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  195. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  196. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  197. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  198. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  199. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  200. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  201. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  202. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  203. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  204. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  205. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  206. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  207. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  208. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  209. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  210. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  211. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  212. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  213. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  214. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  215. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  216. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  217. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  218. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  219. package/build/addons/filePrompt.addon.js.map +1 -1
  220. package/build/cli.js.map +1 -1
  221. package/build/components/FormComponent.js.map +1 -1
  222. package/build/components/QuizComponent.js.map +1 -1
  223. package/build/errors/SpruceError.js.map +1 -1
  224. package/build/errors/actionCancelled.builder.js.map +1 -1
  225. package/build/errors/bootError.builder.js.map +1 -1
  226. package/build/errors/buildFailed.builder.js.map +1 -1
  227. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  228. package/build/errors/commandAborted.builder.js.map +1 -1
  229. package/build/errors/commandBlocked.builder.js.map +1 -1
  230. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  231. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  232. package/build/errors/dependencyExists.builder.js.map +1 -1
  233. package/build/errors/deployFailed.builder.js.map +1 -1
  234. package/build/errors/directoryEmpty.builder.js.map +1 -1
  235. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  236. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  237. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  238. package/build/errors/failedToImport.builder.js.map +1 -1
  239. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  240. package/build/errors/fileExists.builder.js.map +1 -1
  241. package/build/errors/generic.builder.js.map +1 -1
  242. package/build/errors/invalidCommand.builder.js.map +1 -1
  243. package/build/errors/invalidEventContract.builder.js.map +1 -1
  244. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  245. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  246. package/build/errors/lintFailed.builder.js.map +1 -1
  247. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  248. package/build/errors/missingDependencies.builder.js.map +1 -1
  249. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  250. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  251. package/build/errors/notImplemented.builder.js.map +1 -1
  252. package/build/errors/notLoggedIn.builder.js.map +1 -1
  253. package/build/errors/schemaExists.builder.js.map +1 -1
  254. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  255. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  256. package/build/errors/skillNotFound.builder.js.map +1 -1
  257. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  258. package/build/errors/skillViewExists.builder.js.map +1 -1
  259. package/build/errors/storeExists.builder.js.map +1 -1
  260. package/build/errors/testFailed.builder.js.map +1 -1
  261. package/build/errors/themeExists.builder.js.map +1 -1
  262. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  263. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  264. package/build/features/AbstractAction.d.ts +1 -1
  265. package/build/features/AbstractAction.js.map +1 -1
  266. package/build/features/AbstractFeature.js.map +1 -1
  267. package/build/features/ActionExecuter.js.map +1 -1
  268. package/build/features/ActionFactory.js.map +1 -1
  269. package/build/features/ActionQuestionAsker.js.map +1 -1
  270. package/build/features/FeatureCommandAttacher.js.map +1 -1
  271. package/build/features/FeatureInstaller.js.map +1 -1
  272. package/build/features/OverrideActionDecorator.js.map +1 -1
  273. package/build/features/cache/CacheFeature.js.map +1 -1
  274. package/build/features/cache/actions/DisableAction.js.map +1 -1
  275. package/build/features/cache/actions/EnableAction.js.map +1 -1
  276. package/build/features/conversation/ConversationFeature.js.map +1 -1
  277. package/build/features/conversation/actions/TestAction.js.map +1 -1
  278. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  279. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  280. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  281. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  282. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  283. package/build/features/deploy/DeployFeature.js.map +1 -1
  284. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  285. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  286. package/build/features/error/ErrorFeature.js.map +1 -1
  287. package/build/features/error/ParentTestFinder.js.map +1 -1
  288. package/build/features/error/actions/CreateAction.js.map +1 -1
  289. package/build/features/error/actions/SyncAction.js.map +1 -1
  290. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  291. package/build/features/event/EventFeature.js.map +1 -1
  292. package/build/features/event/actions/CreateAction.js.map +1 -1
  293. package/build/features/event/actions/ListenAction.js.map +1 -1
  294. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  295. package/build/features/event/actions/SyncAction.js.map +1 -1
  296. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  297. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  298. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  299. package/build/features/event/stores/EventStore.js.map +1 -1
  300. package/build/features/event/stores/ListenerStore.js.map +1 -1
  301. package/build/features/event/writers/EventWriter.js.map +1 -1
  302. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  303. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  304. package/build/features/feature.utilities.js.map +1 -1
  305. package/build/features/features.types.js.map +1 -1
  306. package/build/features/log/LogFeature.js.map +1 -1
  307. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  308. package/build/features/log/writers/LogWriter.js.map +1 -1
  309. package/build/features/node/NodeFeature.js.map +1 -1
  310. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  311. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  312. package/build/features/node/writers/NodeWriter.js.map +1 -1
  313. package/build/features/onboard/OnboardFeature.js.map +1 -1
  314. package/build/features/onboard/ScriptLoader.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  318. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  319. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  320. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  321. package/build/features/organization/OrganizationFeature.js.map +1 -1
  322. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  323. package/build/features/person/PersonFeature.js.map +1 -1
  324. package/build/features/person/actions/LoginAction.js.map +1 -1
  325. package/build/features/person/actions/LogoutAction.js.map +1 -1
  326. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  327. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  328. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  329. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  330. package/build/features/schema/SchemaFeature.js.map +1 -1
  331. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  332. package/build/features/schema/actions/CreateAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncAction.js.map +1 -1
  334. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  335. package/build/features/schema/services/SchemaService.js.map +1 -1
  336. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  337. package/build/features/schema/stores/SchemaStore.js +2 -1
  338. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  339. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  341. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  342. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  343. package/build/features/skill/SkillFeature.js.map +1 -1
  344. package/build/features/skill/actions/BootAction.js.map +1 -1
  345. package/build/features/skill/actions/CreateAction.js.map +1 -1
  346. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  347. package/build/features/skill/actions/LoginAction.js.map +1 -1
  348. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  349. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  350. package/build/features/skill/stores/SkillStore.js.map +1 -1
  351. package/build/features/skill/updaters/Updater.js.map +1 -1
  352. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  353. package/build/features/store/StoreFeature.js.map +1 -1
  354. package/build/features/store/actions/CreateAction.js.map +1 -1
  355. package/build/features/store/actions/SyncAction.js.map +1 -1
  356. package/build/features/store/stores/StoreStore.js.map +1 -1
  357. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  358. package/build/features/store/writers/StoreWriter.js.map +1 -1
  359. package/build/features/test/TestFeature.js.map +1 -1
  360. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  361. package/build/features/test/TestReporter.js.map +1 -1
  362. package/build/features/test/TestRunner.js.map +1 -1
  363. package/build/features/test/actions/CreateAction.js.map +1 -1
  364. package/build/features/test/actions/SetupAction.js.map +1 -1
  365. package/build/features/test/actions/TestAction.js.map +1 -1
  366. package/build/features/test/writers/TestWriter.js.map +1 -1
  367. package/build/features/validateAndNormalize.utility.js.map +1 -1
  368. package/build/features/view/ViewFeature.js.map +1 -1
  369. package/build/features/view/actions/CreateAction.js.map +1 -1
  370. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  371. package/build/features/view/actions/SyncAction.js.map +1 -1
  372. package/build/features/view/actions/WatchAction.js.map +1 -1
  373. package/build/features/view/stores/ViewStore.js.map +1 -1
  374. package/build/features/view/writers/ViewWriter.js.map +1 -1
  375. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  376. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  377. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  378. package/build/features/watch/WatchFeature.js.map +1 -1
  379. package/build/index.js.map +1 -1
  380. package/build/interfaces/SpyInterface.js +0 -1
  381. package/build/interfaces/SpyInterface.js.map +1 -1
  382. package/build/interfaces/TerminalInterface.js.map +1 -1
  383. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  406. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  407. package/build/services/CommandService.d.ts +1 -0
  408. package/build/services/CommandService.js.map +1 -1
  409. package/build/services/GameService.js.map +1 -1
  410. package/build/services/ImportService.js.map +1 -1
  411. package/build/services/LintService.js.map +1 -1
  412. package/build/services/PkgService.js.map +1 -1
  413. package/build/services/ServiceFactory.js.map +1 -1
  414. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  415. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  416. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  417. package/build/tests/AbstractCliTest.js.map +1 -1
  418. package/build/tests/AbstractEventTest.js.map +1 -1
  419. package/build/tests/AbstractSchemaTest.js.map +1 -1
  420. package/build/tests/AbstractTestTest.js.map +1 -1
  421. package/build/tests/CommandFaker.js.map +1 -1
  422. package/build/tests/JestJsonParser.js.map +1 -1
  423. package/build/tests/buildTestCache.js.map +1 -1
  424. package/build/tests/cleanTestCache.js.map +1 -1
  425. package/build/tests/cleanTestData.js.map +1 -1
  426. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  427. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  428. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  429. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  430. package/build/tests/utilities/test.utility.js.map +1 -1
  431. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  432. package/build/utilities/action.utility.js.map +1 -1
  433. package/build/utilities/apiClient.utility.d.ts +1 -1
  434. package/build/utilities/commander.utility.js.map +1 -1
  435. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  436. package/build/utilities/form.utility.js.map +1 -1
  437. package/build/utilities/introspection.utility.js.map +1 -1
  438. package/build/utilities/tsConfig.utility.js.map +1 -1
  439. package/build/widgets/Theme.js.map +1 -1
  440. package/build/widgets/WidgetFactory.js.map +1 -1
  441. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  445. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  446. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  447. package/build/widgets/terminalKit/termKit.utility.d.ts +1 -1
  448. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  449. package/build/widgets/types/input.types.js.map +1 -1
  450. package/build/widgets/types/menuBar.types.js.map +1 -1
  451. package/build/widgets/types/text.types.js.map +1 -1
  452. package/build/widgets/types/window.types.js.map +1 -1
  453. package/build/widgets/widget.utilities.d.ts +1 -1
  454. package/build/writers/AbstractWriter.js.map +1 -1
  455. package/package.json +36 -36
  456. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  457. package/src/features/schema/stores/SchemaStore.ts +4 -2
  458. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  459. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  460. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  461. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"KeepingEventsInSync2.test.js","names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","shouldRunOnSourceFiles","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ shouldRunOnSourceFiles: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"KeepingEventsInSync2.test.js","names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","shouldRunOnSourceFiles","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","buildEmitTargetAndPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","buildPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","generateEventContractFileName","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ shouldRunOnSourceFiles: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"KeepingListenersInSync.test.js","names":["KeepingListenersInSyncTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","createBootListener","results","deleteLastFile","syncResults","listenerMap","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","path","pop","isString","diskUtil","deleteFile","name","namespace","eventName","isFalsy","errors","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingListenersInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingListenersInSyncTest extends AbstractEventTest {\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('event', 'sync.listeners').execute)\n\t}\n\n\t@test()\n\tprotected static async deletingAListener() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.createBootListener('did-boot')\n\t\tconst results = await this.createBootListener('will-boot')\n\n\t\tthis.deleteLastFile(results)\n\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\n\t\tconst listenerMap = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'listeners.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerMap)\n\t}\n\n\tprivate static deleteLastFile(results: FeatureActionResponse) {\n\t\tconst path = results.files?.pop()?.path\n\t\tassert.isString(path)\n\n\t\tdiskUtil.deleteFile(path)\n\t}\n\n\tprivate static async createBootListener(name: 'will-boot' | 'did-boot') {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: name,\n\t\t})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,0B,WACnB,iB,UAKA,iB;;;;;;;;;;;;;yGALD;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAzD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIO,KAAKC,kBAAL,CAAwB,UAAxB,CAJP;;cAAA;gBAAA;gBAAA,OAKuB,KAAKA,kBAAL,CAAwB,WAAxB,CALvB;;cAAA;gBAKOC,OALP;gBAOC,KAAKC,cAAL,CAAoBD,OAApB;gBAPD;gBAAA,OAS2B,KAAKL,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAvC,CAA+C,EAA/C,CAT3B;;cAAA;gBASOM,WATP;gBAWOC,WAXP,GAWqBC,kBAASC,gCAAT,CACnB,cADmB,EAEnBH,WAAW,CAACI,KAFO,CAXrB;gBAAA;gBAAA,OAgBO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,WAAlC,CAhBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAmBA,wBAA8BH,OAA9B,EAA8D;MAAA;;MAC7D,IAAMS,IAAI,qBAAGT,OAAO,CAACM,KAAX,yEAAG,eAAeI,GAAf,EAAH,uDAAG,mBAAsBD,IAAnC;;MACAhB,aAAOkB,QAAP,CAAgBF,IAAhB;;MAEAG,2BAASC,UAAT,CAAoBJ,IAApB;IACA;;;;8GAED,kBAAwCK,IAAxC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,KAAKnB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5DmB,SAAS,EAAE,OADiD;kBAE5DC,SAAS,EAAEF;gBAFiD,CAAvC,CADvB;;cAAA;gBACOd,OADP;;gBAKCP,aAAOwB,OAAP,CAAejB,OAAO,CAACkB,MAAvB;;gBALD,kCAMQlB,OANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAhCuDmB,8B"}
1
+ {"version":3,"file":"KeepingListenersInSync.test.js","names":["KeepingListenersInSyncTest","test","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","createBootListener","results","deleteLastFile","syncResults","listenerMap","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","path","pop","isString","diskUtil","deleteFile","name","namespace","eventName","isFalsy","errors","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingListenersInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingListenersInSyncTest extends AbstractEventTest {\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('event', 'sync.listeners').execute)\n\t}\n\n\t@test()\n\tprotected static async deletingAListener() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.createBootListener('did-boot')\n\t\tconst results = await this.createBootListener('will-boot')\n\n\t\tthis.deleteLastFile(results)\n\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\n\t\tconst listenerMap = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'listeners.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerMap)\n\t}\n\n\tprivate static deleteLastFile(results: FeatureActionResponse) {\n\t\tconst path = results.files?.pop()?.path\n\t\tassert.isString(path)\n\n\t\tdiskUtil.deleteFile(path)\n\t}\n\n\tprivate static async createBootListener(name: 'will-boot' | 'did-boot') {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: name,\n\t\t})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,0B,WACnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G;;;;;;;;;;;;;yGALD;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAzD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIO,KAAKC,kBAAL,CAAwB,UAAxB,CAJP;;cAAA;gBAAA;gBAAA,OAKuB,KAAKA,kBAAL,CAAwB,WAAxB,CALvB;;cAAA;gBAKOC,OALP;gBAOC,KAAKC,cAAL,CAAoBD,OAApB;gBAPD;gBAAA,OAS2B,KAAKL,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAvC,CAA+C,EAA/C,CAT3B;;cAAA;gBASOM,WATP;gBAWOC,WAXP,GAWqBC,iBAAA,CAASC,gCAAT,CACnB,cADmB,EAEnBH,WAAW,CAACI,KAFO,CAXrB;gBAAA;gBAAA,OAgBO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,WAAlC,CAhBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAmBA,wBAA8BH,OAA9B,EAA8D;MAAA;;MAC7D,IAAMS,IAAI,qBAAGT,OAAO,CAACM,KAAX,yEAAG,eAAeI,GAAf,EAAH,uDAAG,mBAAsBD,IAAnC;;MACAhB,YAAA,CAAOkB,QAAP,CAAgBF,IAAhB;;MAEAG,0BAAA,CAASC,UAAT,CAAoBJ,IAApB;IACA;;;;8GAED,kBAAwCK,IAAxC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,KAAKnB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5DmB,SAAS,EAAE,OADiD;kBAE5DC,SAAS,EAAEF;gBAFiD,CAAvC,CADvB;;cAAA;gBACOd,OADP;;gBAKCP,YAAA,CAAOwB,OAAP,CAAejB,OAAO,CAACkB,MAAvB;;gBALD,kCAMQlB,OANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAhCuDmB,8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListeningToAnEventYouCreate.test.js","names":["ListeningToAnEventYouCreateTest","registerCurrentSkillAndInstallToOrg","currentSkill","eventName","version","fqen","eventNameUtil","join","eventNamespace","slug","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","listenPromise","Action","execute","waitForInput","ui","sendInput","results","assert","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","assertClientIsProperlyTyped","sourceFile","contents","readFile","replace","destinationFile","writeFile","Service","check","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.ts"],"sourcesContent":["import { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class ListeningToAnEventYouCreateTest extends AbstractEventTest {\n\t@test()\n\tprotected static async canListenToEventWeCreated() {\n\t\tconst { currentSkill } = await this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = 'register-skill-views'\n\t\tconst version = 'v2021_04_11'\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName,\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\tversion,\n\t\t})\n\n\t\tconst source = this.resolveTestPath('skill_register_skill_views_event/src')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst listenPromise = this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(currentSkill.slug)\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(fqen)\n\n\t\tconst results = await listenPromise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${eventName}.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tdiskUtil.resolvePath('listeners', currentSkill.slug)\n\t\t)\n\n\t\tawait this.assertClientIsProperlyTyped(currentSkill.slug)\n\t}\n\n\tprivate static async assertClientIsProperlyTyped(eventNamespace: string) {\n\t\tconst sourceFile = this.resolvePath('src/client-type-test.ts.hbs')\n\t\tconst contents = diskUtil\n\t\t\t.readFile(sourceFile)\n\t\t\t.replace('{{eventNamespace}}', eventNamespace)\n\n\t\tconst destinationFile = this.resolvePath('src/client-type-test.ts')\n\t\tdiskUtil.writeFile(destinationFile, contents)\n\n\t\tawait this.Service('typeChecker').check(destinationFile)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,+B,WACnB,iB;;;;;;;;;;;;;qHAAD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEgC,KAAKC,mCAAL,EAFhC;;cAAA;gBAAA;gBAESC,YAFT,yBAESA,YAFT;gBAIOC,SAJP,GAImB,sBAJnB;gBAKOC,OALP,GAKiB,aALjB;gBAOOC,IAPP,GAOcC,gCAAcC,IAAd,CAAmB;kBAC/BJ,SAAS,EAATA,SAD+B;kBAE/BK,cAAc,EAAEN,YAAY,CAACO,IAFE;kBAG/BL,OAAO,EAAPA;gBAH+B,CAAnB,CAPd;gBAaOM,MAbP,GAagB,KAAKC,eAAL,CAAqB,sCAArB,CAbhB;gBAcOC,WAdP,GAcqB,KAAKC,WAAL,CAAiB,KAAjB,CAdrB;gBAAA;gBAAA,OAgBOC,2BAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CAhBP;;cAAA;gBAkBOI,aAlBP,GAkBuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC,EAAvC,CAlBvB;gBAAA;gBAAA,OAoBO,KAAKC,YAAL,EApBP;;cAAA;gBAAA;gBAAA,OAqBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBnB,YAAY,CAACO,IAA/B,CArBP;;cAAA;gBAAA;gBAAA,OAuBO,KAAKU,YAAL,EAvBP;;cAAA;gBAAA;gBAAA,OAwBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBhB,IAAlB,CAxBP;;cAAA;gBAAA;gBAAA,OA0BuBW,aA1BvB;;cAAA;gBA0BOM,OA1BP;;gBA4BCC,aAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;gBAEMC,KA9BP,GA8BeC,kBAASC,gCAAT,WACVzB,SADU,cACGC,OADH,mBAEbkB,OAAO,CAACO,KAFK,CA9Bf;;gBAmCCN,aAAOO,WAAP,CACCJ,KADD,EAECZ,2BAASD,WAAT,CAAqB,WAArB,EAAkCX,YAAY,CAACO,IAA/C,CAFD;;gBAnCD;gBAAA,OAwCO,KAAKsB,2BAAL,CAAiC7B,YAAY,CAACO,IAA9C,CAxCP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uHA2CA,kBAAiDD,cAAjD;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOwB,UADP,GACoB,KAAKnB,WAAL,CAAiB,6BAAjB,CADpB;gBAEOoB,QAFP,GAEkBnB,2BACfoB,QADe,CACNF,UADM,EAEfG,OAFe,CAEP,oBAFO,EAEe3B,cAFf,CAFlB;gBAMO4B,eANP,GAMyB,KAAKvB,WAAL,CAAiB,yBAAjB,CANzB;;gBAOCC,2BAASuB,SAAT,CAAmBD,eAAnB,EAAoCH,QAApC;;gBAPD;gBAAA,OASO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCH,eAAlC,CATP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA5C4DI,8B"}
1
+ {"version":3,"file":"ListeningToAnEventYouCreate.test.js","names":["ListeningToAnEventYouCreateTest","test","registerCurrentSkillAndInstallToOrg","currentSkill","eventName","version","fqen","eventNameUtil","join","eventNamespace","slug","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","listenPromise","Action","execute","waitForInput","ui","sendInput","results","assert","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","assertClientIsProperlyTyped","sourceFile","contents","readFile","replace","destinationFile","writeFile","Service","check","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.ts"],"sourcesContent":["import { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class ListeningToAnEventYouCreateTest extends AbstractEventTest {\n\t@test()\n\tprotected static async canListenToEventWeCreated() {\n\t\tconst { currentSkill } = await this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = 'register-skill-views'\n\t\tconst version = 'v2021_04_11'\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName,\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\tversion,\n\t\t})\n\n\t\tconst source = this.resolveTestPath('skill_register_skill_views_event/src')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst listenPromise = this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(currentSkill.slug)\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(fqen)\n\n\t\tconst results = await listenPromise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${eventName}.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tdiskUtil.resolvePath('listeners', currentSkill.slug)\n\t\t)\n\n\t\tawait this.assertClientIsProperlyTyped(currentSkill.slug)\n\t}\n\n\tprivate static async assertClientIsProperlyTyped(eventNamespace: string) {\n\t\tconst sourceFile = this.resolvePath('src/client-type-test.ts.hbs')\n\t\tconst contents = diskUtil\n\t\t\t.readFile(sourceFile)\n\t\t\t.replace('{{eventNamespace}}', eventNamespace)\n\n\t\tconst destinationFile = this.resolvePath('src/client-type-test.ts')\n\t\tdiskUtil.writeFile(destinationFile, contents)\n\n\t\tawait this.Service('typeChecker').check(destinationFile)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,+B,WACnB,IAAAC,UAAA,G;;;;;;;;;;;;;qHAAD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEgC,KAAKC,mCAAL,EAFhC;;cAAA;gBAAA;gBAESC,YAFT,yBAESA,YAFT;gBAIOC,SAJP,GAImB,sBAJnB;gBAKOC,OALP,GAKiB,aALjB;gBAOOC,IAPP,GAOcC,+BAAA,CAAcC,IAAd,CAAmB;kBAC/BJ,SAAS,EAATA,SAD+B;kBAE/BK,cAAc,EAAEN,YAAY,CAACO,IAFE;kBAG/BL,OAAO,EAAPA;gBAH+B,CAAnB,CAPd;gBAaOM,MAbP,GAagB,KAAKC,eAAL,CAAqB,sCAArB,CAbhB;gBAcOC,WAdP,GAcqB,KAAKC,WAAL,CAAiB,KAAjB,CAdrB;gBAAA;gBAAA,OAgBOC,0BAAA,CAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CAhBP;;cAAA;gBAkBOI,aAlBP,GAkBuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC,EAAvC,CAlBvB;gBAAA;gBAAA,OAoBO,KAAKC,YAAL,EApBP;;cAAA;gBAAA;gBAAA,OAqBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBnB,YAAY,CAACO,IAA/B,CArBP;;cAAA;gBAAA;gBAAA,OAuBO,KAAKU,YAAL,EAvBP;;cAAA;gBAAA;gBAAA,OAwBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBhB,IAAlB,CAxBP;;cAAA;gBAAA;gBAAA,OA0BuBW,aA1BvB;;cAAA;gBA0BOM,OA1BP;;gBA4BCC,YAAA,CAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;gBAEMC,KA9BP,GA8BeC,iBAAA,CAASC,gCAAT,WACVzB,SADU,cACGC,OADH,mBAEbkB,OAAO,CAACO,KAFK,CA9Bf;;gBAmCCN,YAAA,CAAOO,WAAP,CACCJ,KADD,EAECZ,0BAAA,CAASD,WAAT,CAAqB,WAArB,EAAkCX,YAAY,CAACO,IAA/C,CAFD;;gBAnCD;gBAAA,OAwCO,KAAKsB,2BAAL,CAAiC7B,YAAY,CAACO,IAA9C,CAxCP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uHA2CA,kBAAiDD,cAAjD;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOwB,UADP,GACoB,KAAKnB,WAAL,CAAiB,6BAAjB,CADpB;gBAEOoB,QAFP,GAEkBnB,0BAAA,CACfoB,QADe,CACNF,UADM,EAEfG,OAFe,CAEP,oBAFO,EAEe3B,cAFf,CAFlB;gBAMO4B,eANP,GAMyB,KAAKvB,WAAL,CAAiB,yBAAjB,CANzB;;gBAOCC,0BAAA,CAASuB,SAAT,CAAmBD,eAAnB,EAAoCH,QAApC;;gBAPD;gBAAA,OASO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCH,eAAlC,CATP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA5C4DI,8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingUpEvents.test.js","names":["SettingUpEventsTest","installEventFeature","cli","checkHealth","health","assert","isTruthy","event","isEqual","status","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/SettingUpEvents.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SettingUpEventsTest extends AbstractEventTest {\n\t@test()\n\tprotected static async setsUpEvents() {\n\t\tconst cli = await this.installEventFeature('events')\n\t\tconst health = await cli.checkHealth()\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,mB,WACnB,iB;;;;;;;;;;;;;wGAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,mBAAL,CAAyB,QAAzB,CAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAGsBA,GAAG,CAACC,WAAJ,EAHtB;;cAAA;gBAGOC,MAHP;;gBAICC,aAAOC,QAAP,CAAgBF,MAAM,CAACG,KAAvB;;gBACAF,aAAOG,OAAP,CAAeJ,MAAM,CAACG,KAAP,CAAaE,MAA5B,EAAoC,QAApC;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADgDC,8B"}
1
+ {"version":3,"file":"SettingUpEvents.test.js","names":["SettingUpEventsTest","test","installEventFeature","cli","checkHealth","health","assert","isTruthy","event","isEqual","status","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/SettingUpEvents.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SettingUpEventsTest extends AbstractEventTest {\n\t@test()\n\tprotected static async setsUpEvents() {\n\t\tconst cli = await this.installEventFeature('events')\n\t\tconst health = await cli.checkHealth()\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,mB,WACnB,IAAAC,UAAA,G;;;;;;;;;;;;;wGAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,mBAAL,CAAyB,QAAzB,CAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAGsBA,GAAG,CAACC,WAAJ,EAHtB;;cAAA;gBAGOC,MAHP;;gBAICC,YAAA,CAAOC,QAAP,CAAgBF,MAAM,CAACG,KAAvB;;gBACAF,YAAA,CAAOG,OAAP,CAAeJ,MAAM,CAACG,KAAP,CAAaE,MAA5B,EAAoC,QAApC;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADgDC,8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkillEmitsBootEvents.test.js","names":["SkillEmitsBootEventsTest","LintService","enableLinting","installEventFeature","version","Action","execute","namespace","eventName","Service","build","response","assert","isTruthy","errors","errorAssert","assertError","doesThrowAsync","meta","promise","err","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport LintService from '../../../services/LintService'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SkillEmitsBootEventsTest extends AbstractEventTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tLintService.enableLinting()\n\t}\n\n\t@test()\n\tprotected static async skillEmitsWillBootEvents() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tassert.isTruthy(response.errors)\n\t\terrorAssert.assertError(response.errors[0], 'LISTENER_NOT_IMPLEMENTED')\n\t}\n\n\t@test()\n\tprotected static async skillEmitsDidBootEventsThatErrorAfterBoot() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'did-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tconst err = await assert.doesThrowAsync(() => response.meta?.promise)\n\t\terrorAssert.assertError(err, 'LISTENER_NOT_IMPLEMENTED')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAMnB,iB,UAkBA,iB;;;;;;;;;;;;;sGAvBD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAECC,wBAAYC,aAAZ;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAGOC,OAHP,GAGiB,aAHjB;gBAAA;gBAAA,OAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5CC,SAAS,EAAE,OADiC;kBAE5CC,SAAS,EAAE,WAFiC;kBAG5CJ,OAAO,EAAPA;gBAH4C,CAAvC,CALP;;cAAA;gBAAA;gBAAA,OAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;cAAA;gBAAA;gBAAA,OAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;cAAA;gBAaOK,QAbP;;gBAcCC,aAAOC,QAAP,CAAgBF,QAAQ,CAACG,MAAzB;;gBACAC,uBAAYC,WAAZ,CAAwBL,QAAQ,CAACG,MAAT,CAAgB,CAAhB,CAAxB,EAA4C,0BAA5C;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;qIAkBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKX,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAGOC,OAHP,GAGiB,aAHjB;gBAAA;gBAAA,OAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5CC,SAAS,EAAE,OADiC;kBAE5CC,SAAS,EAAE,UAFiC;kBAG5CJ,OAAO,EAAPA;gBAH4C,CAAvC,CALP;;cAAA;gBAAA;gBAAA,OAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;cAAA;gBAAA;gBAAA,OAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;cAAA;gBAaOK,QAbP;gBAAA;gBAAA,OAcmBC,aAAOK,cAAP,CAAsB;kBAAA;;kBAAA,yBAAMN,QAAQ,CAACO,IAAf,mDAAM,eAAeC,OAArB;gBAAA,CAAtB,CAdnB;;cAAA;gBAcOC,GAdP;;gBAeCL,uBAAYC,WAAZ,CAAwBI,GAAxB,EAA6B,0BAA7B;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAxBqDC,8B"}
1
+ {"version":3,"file":"SkillEmitsBootEvents.test.js","names":["SkillEmitsBootEventsTest","test","LintService","enableLinting","installEventFeature","version","Action","execute","namespace","eventName","Service","build","response","assert","isTruthy","errors","errorAssert","assertError","doesThrowAsync","meta","promise","err","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport LintService from '../../../services/LintService'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SkillEmitsBootEventsTest extends AbstractEventTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tLintService.enableLinting()\n\t}\n\n\t@test()\n\tprotected static async skillEmitsWillBootEvents() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tassert.isTruthy(response.errors)\n\t\terrorAssert.assertError(response.errors[0], 'LISTENER_NOT_IMPLEMENTED')\n\t}\n\n\t@test()\n\tprotected static async skillEmitsDidBootEventsThatErrorAfterBoot() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'did-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tconst err = await assert.doesThrowAsync(() => response.meta?.promise)\n\t\terrorAssert.assertError(err, 'LISTENER_NOT_IMPLEMENTED')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAMnB,IAAAC,UAAA,G,UAkBA,IAAAA,UAAA,G;;;;;;;;;;;;;sGAvBD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAECC,uBAAA,CAAYC,aAAZ;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAGOC,OAHP,GAGiB,aAHjB;gBAAA;gBAAA,OAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5CC,SAAS,EAAE,OADiC;kBAE5CC,SAAS,EAAE,WAFiC;kBAG5CJ,OAAO,EAAPA;gBAH4C,CAAvC,CALP;;cAAA;gBAAA;gBAAA,OAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;cAAA;gBAAA;gBAAA,OAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;cAAA;gBAaOK,QAbP;;gBAcCC,YAAA,CAAOC,QAAP,CAAgBF,QAAQ,CAACG,MAAzB;;gBACAC,sBAAA,CAAYC,WAAZ,CAAwBL,QAAQ,CAACG,MAAT,CAAgB,CAAhB,CAAxB,EAA4C,0BAA5C;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;qIAkBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKX,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAGOC,OAHP,GAGiB,aAHjB;gBAAA;gBAAA,OAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5CC,SAAS,EAAE,OADiC;kBAE5CC,SAAS,EAAE,UAFiC;kBAG5CJ,OAAO,EAAPA;gBAH4C,CAAvC,CALP;;cAAA;gBAAA;gBAAA,OAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;cAAA;gBAAA;gBAAA,OAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;cAAA;gBAaOK,QAbP;gBAAA;gBAAA,OAcmBC,YAAA,CAAOK,cAAP,CAAsB;kBAAA;;kBAAA,yBAAMN,QAAQ,CAACO,IAAf,mDAAM,eAAeC,OAArB;gBAAA,CAAtB,CAdnB;;cAAA;gBAcOC,GAdP;;gBAeCL,sBAAA,CAAYC,WAAZ,CAAwBI,GAAxB,EAA6B,0BAA7B;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAxBqDC,8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreatingANodeModule.test.js","names":["CreatingANodeModuleTest","assert","isFunction","Action","execute","CommandService","fakeCommand","RegExp","code","promise","shouldAutoHandleDependencies","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","isFalse","diskUtil","doesFileExist","resolvePath","name","description","Service","build","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/node/CreatingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('node', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async canCreateAtDestination() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn add/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t\tconst promise = this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'new-module' })\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('new module')\n\t\tawait this.ui.sendInput('such a good description!')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/new-module\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t}\n\n\t@test()\n\tprotected static async canBuildNodeModule() {\n\t\tawait this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({\n\t\t\tname: 'build test',\n\t\t\tdescription: 'yes!',\n\t\t})\n\n\t\tawait this.Service('build').build()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,uB,WACnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;2GA5BD;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,2BAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,YAAX,CAA3B,EAAsD;kBACrDC,IAAI,EAAE;gBAD+C,CAAtD;;gBAGMC,OALP,GAKiB,KAAKN,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;kBAC7CO,4BAA4B,EAAE;gBADe,CAA9B,EAEbN,OAFa,CAEL;kBAAEO,WAAW,EAAE;gBAAf,CAFK,CALjB;gBAAA;gBAAA,OASO,KAAKC,YAAL,EATP;;cAAA;gBAAA;gBAAA,OAUO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAVP;;cAAA;gBAAA;gBAAA,OAWO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,0BAAlB,CAXP;;cAAA;gBAAA;gBAAA,OAauBL,OAbvB;;cAAA;gBAaOM,OAbP;;gBAeCC,kBAASC,gCAAT,CACC,gCADD,EAECF,OAAO,CAACG,KAFT;;gBAKAjB,aAAOkB,OAAP,CAAeC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiB,cAAjB,CAAvB,CAAf;;cApBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;8GAuBA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKnB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;kBACnCO,4BAA4B,EAAE;gBADK,CAA9B,EAEHN,OAFG,CAEK;kBACVmB,IAAI,EAAE,YADI;kBAEVC,WAAW,EAAE;gBAFH,CAFL,CAFP;;cAAA;gBAAA;gBAAA,OASO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EATP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA7BoDC,4B"}
1
+ {"version":3,"file":"CreatingANodeModule.test.js","names":["CreatingANodeModuleTest","test","assert","isFunction","Action","execute","CommandService","fakeCommand","RegExp","code","promise","shouldAutoHandleDependencies","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","isFalse","diskUtil","doesFileExist","resolvePath","name","description","Service","build","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/node/CreatingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('node', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async canCreateAtDestination() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn add/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t\tconst promise = this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'new-module' })\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('new module')\n\t\tawait this.ui.sendInput('such a good description!')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/new-module\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t}\n\n\t@test()\n\tprotected static async canBuildNodeModule() {\n\t\tawait this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({\n\t\t\tname: 'build test',\n\t\t\tdescription: 'yes!',\n\t\t})\n\n\t\tawait this.Service('build').build()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,uB,WACnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAuBA,IAAAA,UAAA,G;;;;;;;;;;;;;2GA5BD;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,0BAAA,CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,YAAX,CAA3B,EAAsD;kBACrDC,IAAI,EAAE;gBAD+C,CAAtD;;gBAGMC,OALP,GAKiB,KAAKN,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;kBAC7CO,4BAA4B,EAAE;gBADe,CAA9B,EAEbN,OAFa,CAEL;kBAAEO,WAAW,EAAE;gBAAf,CAFK,CALjB;gBAAA;gBAAA,OASO,KAAKC,YAAL,EATP;;cAAA;gBAAA;gBAAA,OAUO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAVP;;cAAA;gBAAA;gBAAA,OAWO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,0BAAlB,CAXP;;cAAA;gBAAA;gBAAA,OAauBL,OAbvB;;cAAA;gBAaOM,OAbP;;gBAeCC,iBAAA,CAASC,gCAAT,CACC,gCADD,EAECF,OAAO,CAACG,KAFT;;gBAKAjB,YAAA,CAAOkB,OAAP,CAAeC,0BAAA,CAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiB,cAAjB,CAAvB,CAAf;;cApBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;8GAuBA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKnB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;kBACnCO,4BAA4B,EAAE;gBADK,CAA9B,EAEHN,OAFG,CAEK;kBACVmB,IAAI,EAAE,YADI;kBAEVC,WAAW,EAAE;gBAFH,CAFL,CAFP;;cAAA;gBAAA;gBAAA,OASO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EATP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA7BoDC,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"StartingOnboarding.test.js","names":["TheTestEmitter","eventName","listenersByEvent","globalContract","CliGlobalEmitter","StartingOnboardingTest","assert","isFunction","Action","execute","testEmitter","TestEmitter","Cli","emitter","isTrue","hasListeners","onboardAction","onboardPromise","waitForInput","ui","sendInput","onboardingStore","Store","isEqual","getMode","createSkillAction","shouldAutoHandleDependencies","createPromise","wait","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/onboard/StartingOnboarding.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CliGlobalEmitter, { globalContract } from '../../../GlobalEmitter'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nclass TheTestEmitter extends CliGlobalEmitter {\n\tpublic static TestEmitter() {\n\t\treturn new TheTestEmitter(globalContract)\n\t}\n\n\tpublic hasListeners(eventName: string) {\n\t\treturn !!this.listenersByEvent[eventName]\n\t}\n}\n\nexport default class StartingOnboardingTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasOnboardAction() {\n\t\tassert.isFunction(this.Action('onboard', 'onboard').execute)\n\t}\n\n\t@test()\n\tprotected static async addsCommandListeners() {\n\t\tconst testEmitter = TheTestEmitter.TestEmitter()\n\n\t\tawait this.Cli({ emitter: testEmitter })\n\n\t\tassert.isTrue(testEmitter.hasListeners('feature.will-execute'))\n\t}\n\n\t@test()\n\tprotected static async onboardingThroughSkillCreateThenShutsOff() {\n\t\tconst onboardAction = this.Action('onboard', 'onboard')\n\t\tconst onboardPromise = onboardAction.execute({})\n\n\t\t// get through first onboarding script and select short onboarding\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('short')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait onboardPromise\n\n\t\tconst onboardingStore = this.Store('onboarding')\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\n\t\tconst createSkillAction = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\n\t\tconst createPromise = createSkillAction.execute({})\n\n\t\t// create skill confirmation\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait this.wait(100)\n\n\t\t// install skill\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('my new skill')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('a description')\n\n\t\tawait createPromise\n\n\t\t//should still be on (will turn off after test reporter boots)\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;IAEMA,c;;;;;;;;;;;;WAKL,sBAAoBC,SAApB,EAAuC;MACtC,OAAO,CAAC,CAAC,KAAKC,gBAAL,CAAsBD,SAAtB,CAAT;IACA;;;WAND,uBAA4B;MAC3B,OAAO,IAAID,cAAJ,CAAmBG,6BAAnB,CAAP;IACA;;;EAH2BC,yB;;IAURC,sB,WACnB,iB,UAKA,iB,UASA,iB;;;;;;;;;;;;;4GAdD;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,SAAZ,EAAuB,SAAvB,EAAkCC,OAApD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,WAFP,GAEqBV,cAAc,CAACW,WAAf,EAFrB;gBAAA;gBAAA,OAIO,KAAKC,GAAL,CAAS;kBAAEC,OAAO,EAAEH;gBAAX,CAAT,CAJP;;cAAA;gBAMCJ,aAAOQ,MAAP,CAAcJ,WAAW,CAACK,YAAZ,CAAyB,sBAAzB,CAAd;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oIASA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,aAFP,GAEuB,KAAKR,MAAL,CAAY,SAAZ,EAAuB,SAAvB,CAFvB;gBAGOS,cAHP,GAGwBD,aAAa,CAACP,OAAd,CAAsB,EAAtB,CAHxB,EAKC;;gBALD;gBAAA,OAMO,KAAKS,YAAL,EANP;;cAAA;gBAAA;gBAAA,OAOO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,IAAlB,CAPP;;cAAA;gBAAA;gBAAA,OAQO,KAAKF,YAAL,EARP;;cAAA;gBAAA;gBAAA,OASO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,OAAlB,CATP;;cAAA;gBAAA;gBAAA,OAUO,KAAKF,YAAL,EAVP;;cAAA;gBAAA;gBAAA,OAWO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,IAAlB,CAXP;;cAAA;gBAAA;gBAAA,OAaOH,cAbP;;cAAA;gBAeOI,eAfP,GAeyB,KAAKC,KAAL,CAAW,YAAX,CAfzB;;gBAgBChB,aAAOiB,OAAP,CAAeF,eAAe,CAACG,OAAhB,EAAf,EAA0C,OAA1C;;gBAEMC,iBAlBP,GAkB2B,KAAKjB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+B;kBACxDkB,4BAA4B,EAAE;gBAD0B,CAA/B,CAlB3B;gBAsBOC,aAtBP,GAsBuBF,iBAAiB,CAAChB,OAAlB,CAA0B,EAA1B,CAtBvB,EAwBC;;gBAxBD;gBAAA,OAyBO,KAAKS,YAAL,EAzBP;;cAAA;gBAAA;gBAAA,OA0BO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,IAAlB,CA1BP;;cAAA;gBAAA;gBAAA,OA4BO,KAAKQ,IAAL,CAAU,GAAV,CA5BP;;cAAA;gBAAA;gBAAA,OA+BO,KAAKV,YAAL,EA/BP;;cAAA;gBAAA;gBAAA,OAiCO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,cAAlB,CAjCP;;cAAA;gBAAA;gBAAA,OAmCO,KAAKF,YAAL,EAnCP;;cAAA;gBAAA;gBAAA,OAqCO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,eAAlB,CArCP;;cAAA;gBAAA;gBAAA,OAuCOO,aAvCP;;cAAA;gBAyCC;gBACArB,aAAOiB,OAAP,CAAeF,eAAe,CAACG,OAAhB,EAAf,EAA0C,OAA1C;;cA1CD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAfmDK,4B"}
1
+ {"version":3,"file":"StartingOnboarding.test.js","names":["TheTestEmitter","eventName","listenersByEvent","globalContract","CliGlobalEmitter","StartingOnboardingTest","test","assert","isFunction","Action","execute","testEmitter","TestEmitter","Cli","emitter","isTrue","hasListeners","onboardAction","onboardPromise","waitForInput","ui","sendInput","onboardingStore","Store","isEqual","getMode","createSkillAction","shouldAutoHandleDependencies","createPromise","wait","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/onboard/StartingOnboarding.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CliGlobalEmitter, { globalContract } from '../../../GlobalEmitter'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nclass TheTestEmitter extends CliGlobalEmitter {\n\tpublic static TestEmitter() {\n\t\treturn new TheTestEmitter(globalContract)\n\t}\n\n\tpublic hasListeners(eventName: string) {\n\t\treturn !!this.listenersByEvent[eventName]\n\t}\n}\n\nexport default class StartingOnboardingTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasOnboardAction() {\n\t\tassert.isFunction(this.Action('onboard', 'onboard').execute)\n\t}\n\n\t@test()\n\tprotected static async addsCommandListeners() {\n\t\tconst testEmitter = TheTestEmitter.TestEmitter()\n\n\t\tawait this.Cli({ emitter: testEmitter })\n\n\t\tassert.isTrue(testEmitter.hasListeners('feature.will-execute'))\n\t}\n\n\t@test()\n\tprotected static async onboardingThroughSkillCreateThenShutsOff() {\n\t\tconst onboardAction = this.Action('onboard', 'onboard')\n\t\tconst onboardPromise = onboardAction.execute({})\n\n\t\t// get through first onboarding script and select short onboarding\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('short')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait onboardPromise\n\n\t\tconst onboardingStore = this.Store('onboarding')\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\n\t\tconst createSkillAction = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\n\t\tconst createPromise = createSkillAction.execute({})\n\n\t\t// create skill confirmation\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait this.wait(100)\n\n\t\t// install skill\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('my new skill')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('a description')\n\n\t\tawait createPromise\n\n\t\t//should still be on (will turn off after test reporter boots)\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;IAEMA,c;;;;;;;;;;;;WAKL,sBAAoBC,SAApB,EAAuC;MACtC,OAAO,CAAC,CAAC,KAAKC,gBAAL,CAAsBD,SAAtB,CAAT;IACA;;;WAND,uBAA4B;MAC3B,OAAO,IAAID,cAAJ,CAAmBG,6BAAnB,CAAP;IACA;;;EAH2BC,yB;;IAURC,sB,WACnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UASA,IAAAA,UAAA,G;;;;;;;;;;;;;4GAdD;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,SAAZ,EAAuB,SAAvB,EAAkCC,OAApD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,WAFP,GAEqBX,cAAc,CAACY,WAAf,EAFrB;gBAAA;gBAAA,OAIO,KAAKC,GAAL,CAAS;kBAAEC,OAAO,EAAEH;gBAAX,CAAT,CAJP;;cAAA;gBAMCJ,YAAA,CAAOQ,MAAP,CAAcJ,WAAW,CAACK,YAAZ,CAAyB,sBAAzB,CAAd;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oIASA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,aAFP,GAEuB,KAAKR,MAAL,CAAY,SAAZ,EAAuB,SAAvB,CAFvB;gBAGOS,cAHP,GAGwBD,aAAa,CAACP,OAAd,CAAsB,EAAtB,CAHxB,EAKC;;gBALD;gBAAA,OAMO,KAAKS,YAAL,EANP;;cAAA;gBAAA;gBAAA,OAOO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,IAAlB,CAPP;;cAAA;gBAAA;gBAAA,OAQO,KAAKF,YAAL,EARP;;cAAA;gBAAA;gBAAA,OASO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,OAAlB,CATP;;cAAA;gBAAA;gBAAA,OAUO,KAAKF,YAAL,EAVP;;cAAA;gBAAA;gBAAA,OAWO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,IAAlB,CAXP;;cAAA;gBAAA;gBAAA,OAaOH,cAbP;;cAAA;gBAeOI,eAfP,GAeyB,KAAKC,KAAL,CAAW,YAAX,CAfzB;;gBAgBChB,YAAA,CAAOiB,OAAP,CAAeF,eAAe,CAACG,OAAhB,EAAf,EAA0C,OAA1C;;gBAEMC,iBAlBP,GAkB2B,KAAKjB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+B;kBACxDkB,4BAA4B,EAAE;gBAD0B,CAA/B,CAlB3B;gBAsBOC,aAtBP,GAsBuBF,iBAAiB,CAAChB,OAAlB,CAA0B,EAA1B,CAtBvB,EAwBC;;gBAxBD;gBAAA,OAyBO,KAAKS,YAAL,EAzBP;;cAAA;gBAAA;gBAAA,OA0BO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,IAAlB,CA1BP;;cAAA;gBAAA;gBAAA,OA4BO,KAAKQ,IAAL,CAAU,GAAV,CA5BP;;cAAA;gBAAA;gBAAA,OA+BO,KAAKV,YAAL,EA/BP;;cAAA;gBAAA;gBAAA,OAiCO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,cAAlB,CAjCP;;cAAA;gBAAA;gBAAA,OAmCO,KAAKF,YAAL,EAnCP;;cAAA;gBAAA;gBAAA,OAqCO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,eAAlB,CArCP;;cAAA;gBAAA;gBAAA,OAuCOO,aAvCP;;cAAA;gBAyCC;gBACArB,YAAA,CAAOiB,OAAP,CAAeF,eAAe,CAACG,OAAhB,EAAf,EAA0C,OAA1C;;cA1CD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAfmDK,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreatingAnOrg.test.js","names":["CreatingAnOrgTest","Cli","assert","isFunction","Action","execute","slug","Date","getTime","FeatureFixture","installCachedFeatures","people","loginAsDemoPerson","nameReadable","nameKebab","results","isFalsy","errors","meta","organization","isTruthy","connectToApi","client","emit","target","organizationId","id","orgResults","eventResponseUtil","getFirstResponseOrThrow","getOrganization","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/organization/CreatingAnOrg.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class CreatingAnOrgTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('organization', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async createsAnOrg() {\n\t\tconst slug = `my-org-${new Date().getTime()}`\n\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst results = await this.Action('organization', 'create').execute({\n\t\t\tnameReadable: 'My new org',\n\t\t\tnameKebab: slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { organization } = results.meta ?? {}\n\n\t\tassert.isTruthy(organization)\n\n\t\tconst client = await this.connectToApi()\n\n\t\tconst orgResults = await client.emit('get-organization::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\torganizationId: organization.id,\n\t\t\t},\n\t\t})\n\n\t\tconst { organization: getOrganization } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(orgResults)\n\n\t\tassert.isEqual(getOrganization.slug, slug)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,iB,WACnB,iB,UAMA,iB;;;;;;;;;;;;;2GAND;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,GAAL,EAFP;;cAAA;gBAGCC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,cAAZ,EAA4B,QAA5B,EAAsCC,OAAxD;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGAMA;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOC,IAFP,oBAEwB,IAAIC,IAAJ,GAAWC,OAAX,EAFxB;gBAAA;gBAAA,OAIO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,eAA5C,CAJP;;cAAA;gBAAA;gBAAA,OAMO,KAAKC,MAAL,CAAYC,iBAAZ,EANP;;cAAA;gBAAA;gBAAA,OAQuB,KAAKR,MAAL,CAAY,cAAZ,EAA4B,QAA5B,EAAsCC,OAAtC,CAA8C;kBACnEQ,YAAY,EAAE,YADqD;kBAEnEC,SAAS,EAAER;gBAFwD,CAA9C,CARvB;;cAAA;gBAQOS,OARP;;gBAaCb,aAAOc,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBAbD,wBAe0BF,OAAO,CAACG,IAflC,yDAe0C,EAf1C,EAeSC,YAfT,QAeSA,YAfT;;gBAiBCjB,aAAOkB,QAAP,CAAgBD,YAAhB;;gBAjBD;gBAAA,OAmBsB,KAAKE,YAAL,EAnBtB;;cAAA;gBAmBOC,MAnBP;gBAAA;gBAAA,OAqB0BA,MAAM,CAACC,IAAP,CAAY,+BAAZ,EAA6C;kBACrEC,MAAM,EAAE;oBACPC,cAAc,EAAEN,YAAY,CAACO;kBADtB;gBAD6D,CAA7C,CArB1B;;cAAA;gBAqBOC,UArBP;gBAAA,wBA4BEC,oCAAkBC,uBAAlB,CAA0CF,UAA1C,CA5BF,EA2BuBG,eA3BvB,yBA2BSX,YA3BT;;gBA8BCjB,aAAO6B,OAAP,CAAeD,eAAe,CAACxB,IAA/B,EAAqCA,IAArC;;cA9BD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAP8C0B,4B"}
1
+ {"version":3,"file":"CreatingAnOrg.test.js","names":["CreatingAnOrgTest","test","Cli","assert","isFunction","Action","execute","slug","Date","getTime","FeatureFixture","installCachedFeatures","people","loginAsDemoPerson","nameReadable","nameKebab","results","isFalsy","errors","meta","organization","isTruthy","connectToApi","client","emit","target","organizationId","id","orgResults","eventResponseUtil","getFirstResponseOrThrow","getOrganization","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/organization/CreatingAnOrg.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class CreatingAnOrgTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('organization', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async createsAnOrg() {\n\t\tconst slug = `my-org-${new Date().getTime()}`\n\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst results = await this.Action('organization', 'create').execute({\n\t\t\tnameReadable: 'My new org',\n\t\t\tnameKebab: slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { organization } = results.meta ?? {}\n\n\t\tassert.isTruthy(organization)\n\n\t\tconst client = await this.connectToApi()\n\n\t\tconst orgResults = await client.emit('get-organization::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\torganizationId: organization.id,\n\t\t\t},\n\t\t})\n\n\t\tconst { organization: getOrganization } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(orgResults)\n\n\t\tassert.isEqual(getOrganization.slug, slug)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,iB,WACnB,IAAAC,UAAA,G,UAMA,IAAAA,UAAA,G;;;;;;;;;;;;;2GAND;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,GAAL,EAFP;;cAAA;gBAGCC,YAAA,CAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,cAAZ,EAA4B,QAA5B,EAAsCC,OAAxD;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGAMA;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOC,IAFP,oBAEwB,IAAIC,IAAJ,GAAWC,OAAX,EAFxB;gBAAA;gBAAA,OAIO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,eAA5C,CAJP;;cAAA;gBAAA;gBAAA,OAMO,KAAKC,MAAL,CAAYC,iBAAZ,EANP;;cAAA;gBAAA;gBAAA,OAQuB,KAAKR,MAAL,CAAY,cAAZ,EAA4B,QAA5B,EAAsCC,OAAtC,CAA8C;kBACnEQ,YAAY,EAAE,YADqD;kBAEnEC,SAAS,EAAER;gBAFwD,CAA9C,CARvB;;cAAA;gBAQOS,OARP;;gBAaCb,YAAA,CAAOc,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBAbD,wBAe0BF,OAAO,CAACG,IAflC,yDAe0C,EAf1C,EAeSC,YAfT,QAeSA,YAfT;;gBAiBCjB,YAAA,CAAOkB,QAAP,CAAgBD,YAAhB;;gBAjBD;gBAAA,OAmBsB,KAAKE,YAAL,EAnBtB;;cAAA;gBAmBOC,MAnBP;gBAAA;gBAAA,OAqB0BA,MAAM,CAACC,IAAP,CAAY,+BAAZ,EAA6C;kBACrEC,MAAM,EAAE;oBACPC,cAAc,EAAEN,YAAY,CAACO;kBADtB;gBAD6D,CAA7C,CArB1B;;cAAA;gBAqBOC,UArBP;gBAAA,wBA4BEC,mCAAA,CAAkBC,uBAAlB,CAA0CF,UAA1C,CA5BF,EA2BuBG,eA3BvB,yBA2BSX,YA3BT;;gBA8BCjB,YAAA,CAAO6B,OAAP,CAAeD,eAAe,CAACxB,IAA/B,EAAqCA,IAArC;;cA9BD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAP8C0B,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoggingInAsPerson.test.js","names":["LoggingInAsPersonTest","test","skip","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","phone","DEMO_NUMBER","waitForInput","doesInclude","ui","invocations","command","options","type","reset","sendInput","installSkillAndLoginAsDemoPerson","person","Service","getLoggedInPerson","isTruthy","isString","id","token","isTrue","isLoggedIn","results","errors","isLength","errorAssert","assertError","isFalsy","isNull","setLoggedInPerson","casualName","loginAsPerson","cli","promise","substr","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/person/LoggingInAsPerson.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { DEMO_NUMBER } from '../../../tests/fixtures/PersonFixture'\n\nexport default class LoggingInAsPersonTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasLoginAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('person', 'login').execute)\n\t}\n\n\t@test()\n\tprotected static async asksForPinWithoutBeingInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tvoid this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test.skip('enable when there are demo numbers that throw with bad pin')\n\tprotected static async badPinRendersWarningAndAsksForPinAgain() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tvoid this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('0000')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderWarning',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canLoginAsDemoPerson() {\n\t\tawait this.installSkillAndLoginAsDemoPerson()\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\n\t\tassert.isTruthy(person)\n\t\tassert.isString(person.id)\n\t\tassert.isString(person.token)\n\t\tassert.isTrue(person.isLoggedIn)\n\t}\n\n\t@test()\n\tprotected static async cantLogoutWithoutBeingLoggedIn() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst results = await this.Action('person', 'logout').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssert.assertError(results.errors[0], 'NOT_LOGGED_IN')\n\t}\n\n\t@test()\n\tprotected static async canLogOut() {\n\t\tawait this.installSkillAndLoginAsDemoPerson()\n\n\t\tconst results = await this.Action('person', 'logout').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\n\t\tassert.isNull(person)\n\t}\n\n\t@test()\n\tprotected static async canLogInWithExpiredPinWithouHavingToLogOutFirst() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('auth').setLoggedInPerson({\n\t\t\ttoken: '234',\n\t\t\tid: 'test',\n\t\t\tcasualName: 'casual test',\n\t\t})\n\n\t\tawait this.loginAsPerson()\n\t}\n\n\tprivate static async installSkillAndLoginAsDemoPerson() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.loginAsPerson()\n\n\t\treturn cli\n\t}\n\n\tprivate static async loginAsPerson() {\n\t\tconst promise = this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(DEMO_NUMBER.substr(-4))\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"LoggingInAsPerson.test.js","names":["LoggingInAsPersonTest","test","skip","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","phone","DEMO_NUMBER","waitForInput","doesInclude","ui","invocations","command","options","type","reset","sendInput","installSkillAndLoginAsDemoPerson","person","Service","getLoggedInPerson","isTruthy","isString","id","token","isTrue","isLoggedIn","results","errors","isLength","errorAssert","assertError","isFalsy","isNull","setLoggedInPerson","casualName","loginAsPerson","cli","promise","substr","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/person/LoggingInAsPerson.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { DEMO_NUMBER } from '../../../tests/fixtures/PersonFixture'\n\nexport default class LoggingInAsPersonTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasLoginAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('person', 'login').execute)\n\t}\n\n\t@test()\n\tprotected static async asksForPinWithoutBeingInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tvoid this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test.skip('enable when there are demo numbers that throw with bad pin')\n\tprotected static async badPinRendersWarningAndAsksForPinAgain() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tvoid this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('0000')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderWarning',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canLoginAsDemoPerson() {\n\t\tawait this.installSkillAndLoginAsDemoPerson()\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\n\t\tassert.isTruthy(person)\n\t\tassert.isString(person.id)\n\t\tassert.isString(person.token)\n\t\tassert.isTrue(person.isLoggedIn)\n\t}\n\n\t@test()\n\tprotected static async cantLogoutWithoutBeingLoggedIn() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst results = await this.Action('person', 'logout').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssert.assertError(results.errors[0], 'NOT_LOGGED_IN')\n\t}\n\n\t@test()\n\tprotected static async canLogOut() {\n\t\tawait this.installSkillAndLoginAsDemoPerson()\n\n\t\tconst results = await this.Action('person', 'logout').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\n\t\tassert.isNull(person)\n\t}\n\n\t@test()\n\tprotected static async canLogInWithExpiredPinWithouHavingToLogOutFirst() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('auth').setLoggedInPerson({\n\t\t\ttoken: '234',\n\t\t\tid: 'test',\n\t\t\tcasualName: 'casual test',\n\t\t})\n\n\t\tawait this.loginAsPerson()\n\t}\n\n\tprivate static async installSkillAndLoginAsDemoPerson() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.loginAsPerson()\n\n\t\treturn cli\n\t}\n\n\tprivate static async loginAsPerson() {\n\t\tconst promise = this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(DEMO_NUMBER.substr(-4))\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SeeWhoIsLoggedIn.test.js","names":["SeeWhoIsLoggedInTest","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","results","isFalsy","errors","doesInclude","summaryLines","people","loginAsDemoPerson","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class SeeWhoIsLoggedInTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasWhoAmIAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('person', 'whoami').execute)\n\t}\n\n\t@test()\n\tprotected static async noOneIsLoggedInToStart() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst results = await this.Action('person', 'whoami').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.doesInclude(results.summaryLines, 'not logged in')\n\t}\n\n\t@test()\n\tprotected static async canSeeWhoIsLoggedIn() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst results = await this.Action('person', 'whoami').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.doesInclude(results.summaryLines, 'logged in as')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,oB,WACnB,iB,UAMA,iB,UAUA,iB;;;;;;;;;;;;;2GAhBD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,GAAL,EAFP;;cAAA;gBAGCC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,EAAgCC,OAAlD;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAMA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIuB,KAAKH,MAAL,CAAY,QAAZ,EAAsB,QAAtB,EAAgCC,OAAhC,CAAwC,EAAxC,CAJvB;;cAAA;gBAIOG,OAJP;;gBAMCN,aAAOO,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBACAR,aAAOS,WAAP,CAAmBH,OAAO,CAACI,YAA3B,EAAyC,eAAzC;;cAPD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAUA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKN,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAGO,KAAKM,MAAL,CAAYC,iBAAZ,EAHP;;cAAA;gBAAA;gBAAA,OAKuB,KAAKV,MAAL,CAAY,QAAZ,EAAsB,QAAtB,EAAgCC,OAAhC,CAAwC,EAAxC,CALvB;;cAAA;gBAKOG,OALP;;gBAOCN,aAAOO,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBACAR,aAAOS,WAAP,CAAmBH,OAAO,CAACI,YAA3B,EAAyC,cAAzC;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAjBiDG,4B"}
1
+ {"version":3,"file":"SeeWhoIsLoggedIn.test.js","names":["SeeWhoIsLoggedInTest","test","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","results","isFalsy","errors","doesInclude","summaryLines","people","loginAsDemoPerson","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class SeeWhoIsLoggedInTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasWhoAmIAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('person', 'whoami').execute)\n\t}\n\n\t@test()\n\tprotected static async noOneIsLoggedInToStart() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst results = await this.Action('person', 'whoami').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.doesInclude(results.summaryLines, 'not logged in')\n\t}\n\n\t@test()\n\tprotected static async canSeeWhoIsLoggedIn() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst results = await this.Action('person', 'whoami').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.doesInclude(results.summaryLines, 'logged in as')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,oB,WACnB,IAAAC,UAAA,G,UAMA,IAAAA,UAAA,G,UAUA,IAAAA,UAAA,G;;;;;;;;;;;;;2GAhBD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,GAAL,EAFP;;cAAA;gBAGCC,YAAA,CAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,EAAgCC,OAAlD;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAMA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIuB,KAAKH,MAAL,CAAY,QAAZ,EAAsB,QAAtB,EAAgCC,OAAhC,CAAwC,EAAxC,CAJvB;;cAAA;gBAIOG,OAJP;;gBAMCN,YAAA,CAAOO,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBACAR,YAAA,CAAOS,WAAP,CAAmBH,OAAO,CAACI,YAA3B,EAAyC,eAAzC;;cAPD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAUA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKN,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAGO,KAAKM,MAAL,CAAYC,iBAAZ,EAHP;;cAAA;gBAAA;gBAAA,OAKuB,KAAKV,MAAL,CAAY,QAAZ,EAAsB,QAAtB,EAAgCC,OAAhC,CAAwC,EAAxC,CALvB;;cAAA;gBAKOG,OALP;;gBAOCN,YAAA,CAAOO,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBACAR,YAAA,CAAOS,WAAP,CAAmBH,OAAO,CAACI,YAA3B,EAAyC,cAAzC;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAjBiDG,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreatingANewSchemaBuilder.test.js","names":["CreatingANewSchemaBuilderTest","Cli","assert","doesThrowAsync","Action","execute","nameReadable","namePascal","nameCamel","description","err","errorAssert","assertError","syncSchemasAndGetCreateAction","createSchema","response","isFalsy","errors","expectedDestination","versionUtil","resolveNewLatestPath","cwd","isEqual","files","path","cacheKey","syncSchemas","buildTestSchema","checker","Service","check","schemaTypesFile","builderMatch","testUtil","assertFileByNameInGeneratedFiles","schemaMatch","schemaContents","diskUtil","readFile","doesInclude","action","version","results","isTruthy","message","firstResponse","validateSchemaFiles","secondResponse","newVersion","generateVersion","assertAnswersFirstTime","assertAnswersSecondTime","createPromise","wait","last","ui","invocations","length","command","isLength","options","choices","isEqualDeep","value","dirValue","label","sendInput","term","createResults","expectedFileName","expectedVersion","expectedSchemaInterfaceName","isUndefined","schemaFile","fail","friendlyMessage","RegExp","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts"],"sourcesContent":["import { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport {\n\tFeatureActionResponse,\n\tFeatureAction,\n} from '../../../features/features.types'\nimport SpyInterface from '../../../interfaces/SpyInterface'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANewSchemaBuilderTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async failsWhenASkillIsNotInstalled() {\n\t\tawait this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async canBuildFileWithoutCrashing() {\n\t\tconst createSchema = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isFalsy(response.errors)\n\n\t\tconst expectedDestination = versionUtil.resolveNewLatestPath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'schemas',\n\t\t\t'{{@latest}}',\n\t\t\t'test.builder.ts'\n\t\t)\n\n\t\tassert.isEqual(response.files?.[0].path, expectedDestination)\n\t}\n\n\tprivate static async syncSchemasAndGetCreateAction(cacheKey?: string) {\n\t\tawait this.syncSchemas(cacheKey)\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\treturn createSchema\n\t}\n\n\t@test()\n\tprotected static async builderAndSchemaFilesValidate() {\n\t\tconst response = await this.buildTestSchema()\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tawait checker.check(response.files?.[0].path ?? '')\n\t\tawait checker.check(this.schemaTypesFile)\n\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.builder.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(builderMatch)\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.schema.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(schemaMatch)\n\n\t\tconst schemaContents = diskUtil.readFile(schemaMatch)\n\t\tassert.doesInclude(schemaContents, `namespace: 'TestingSchemas'`)\n\t}\n\n\t@test()\n\tprotected static async errorsWithBadVersion() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst results = await action.execute({\n\t\t\tnameReadable: 'Bad schema version!',\n\t\t\tnamePascal: 'BadSchemaVersion',\n\t\t\tnameCamel: 'badSchemaVersion',\n\t\t\tversion: 'v1',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, /must be in the form/i)\n\t}\n\n\t@test()\n\tprotected static async canBuild2SpecificVersions() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst firstResponse = await action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_10',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tfirstResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\n\t\tconst secondResponse = await action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'secondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t\tversion: 'v2020_01_11',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'secondSchema.schema.ts',\n\t\t\t'v2020_01_11',\n\t\t\t'SecondSchema'\n\t\t)\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionOnSecondSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst newVersion = versionUtil.generateVersion()\n\n\t\t// create old version first\n\t\tawait action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tawait this.assertAnswersFirstTime(action, newVersion)\n\t\tawait this.assertAnswersSecondTime(action, newVersion)\n\t}\n\n\t// should ask if we want to use the old version we created above or a New Version\n\tprivate static async assertAnswersFirstTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'SecondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst last = this.ui.invocations[this.ui.invocations.length - 1]\n\n\t\tassert.isEqual(last?.command, 'prompt')\n\t\tassert.isLength(last?.options?.options?.choices, 2)\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: 'New Version',\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\tawait this.ui.sendInput(newVersion.dirValue)\n\t\tawait createPromise\n\t}\n\n\t// should only have 2 options, none of which are \"new version\" since that was created in secondAnswers\n\tprivate static async assertAnswersSecondTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Third schema',\n\t\t\tnamePascal: 'ThirdSchema',\n\t\t\tnameCamel: 'thirdSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst term = this.ui as SpyInterface\n\t\tconst last = term.invocations[term.invocations.length - 1]\n\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: newVersion.dirValue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.ui.sendInput(newVersion.dirValue)\n\n\t\tconst createResults = await createPromise\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'secondSchema.schema.ts',\n\t\t\tcreateResults.files\n\t\t)\n\n\t\tassert.doesInclude(schemaMatch, newVersion.dirValue)\n\t}\n\n\tprivate static validateSchemaFiles(\n\t\tresponse: FeatureActionResponse,\n\t\texpectedFileName: string,\n\t\texpectedVersion: string,\n\t\texpectedSchemaInterfaceName: string\n\t) {\n\t\tassert.isUndefined(response.errors)\n\n\t\tlet schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\texpectedFileName,\n\t\t\tresponse.files\n\t\t)\n\n\t\tconst errors = response.errors ?? []\n\t\tif (errors.length > 0) {\n\t\t\tassert.fail(errors[0].friendlyMessage())\n\t\t}\n\n\t\tassert.doesInclude(schemaFile, expectedVersion)\n\t\tconst schemaContents = diskUtil.readFile(schemaFile)\n\n\t\tassert.doesInclude(schemaContents, `version: '${expectedVersion}'`)\n\n\t\tassert.doesInclude(\n\t\t\tschemaContents,\n\t\t\tnew RegExp(\n\t\t\t\t'SpruceSchemas.TestingSchemas.' +\n\t\t\t\t\texpectedVersion +\n\t\t\t\t\t'.*?' +\n\t\t\t\t\texpectedSchemaInterfaceName,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static async buildTestSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await action.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'AnotherTest',\n\t\t\tnameCamel: 'anotherTest',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isUndefined(response.errors)\n\n\t\treturn response\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreatingANewSchemaBuilder.test.js","names":["CreatingANewSchemaBuilderTest","test","Cli","assert","doesThrowAsync","Action","execute","nameReadable","namePascal","nameCamel","description","err","errorAssert","assertError","syncSchemasAndGetCreateAction","createSchema","response","isFalsy","errors","expectedDestination","versionUtil","resolveNewLatestPath","cwd","isEqual","files","path","cacheKey","syncSchemas","buildTestSchema","checker","Service","check","schemaTypesFile","builderMatch","testUtil","assertFileByNameInGeneratedFiles","schemaMatch","schemaContents","diskUtil","readFile","doesInclude","action","version","results","isTruthy","message","firstResponse","validateSchemaFiles","secondResponse","newVersion","generateVersion","assertAnswersFirstTime","assertAnswersSecondTime","createPromise","wait","last","ui","invocations","length","command","isLength","options","choices","isEqualDeep","value","dirValue","label","sendInput","term","createResults","expectedFileName","expectedVersion","expectedSchemaInterfaceName","isUndefined","schemaFile","fail","friendlyMessage","RegExp","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts"],"sourcesContent":["import { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport {\n\tFeatureActionResponse,\n\tFeatureAction,\n} from '../../../features/features.types'\nimport SpyInterface from '../../../interfaces/SpyInterface'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANewSchemaBuilderTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async failsWhenASkillIsNotInstalled() {\n\t\tawait this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async canBuildFileWithoutCrashing() {\n\t\tconst createSchema = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isFalsy(response.errors)\n\n\t\tconst expectedDestination = versionUtil.resolveNewLatestPath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'schemas',\n\t\t\t'{{@latest}}',\n\t\t\t'test.builder.ts'\n\t\t)\n\n\t\tassert.isEqual(response.files?.[0].path, expectedDestination)\n\t}\n\n\tprivate static async syncSchemasAndGetCreateAction(cacheKey?: string) {\n\t\tawait this.syncSchemas(cacheKey)\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\treturn createSchema\n\t}\n\n\t@test()\n\tprotected static async builderAndSchemaFilesValidate() {\n\t\tconst response = await this.buildTestSchema()\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tawait checker.check(response.files?.[0].path ?? '')\n\t\tawait checker.check(this.schemaTypesFile)\n\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.builder.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(builderMatch)\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.schema.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(schemaMatch)\n\n\t\tconst schemaContents = diskUtil.readFile(schemaMatch)\n\t\tassert.doesInclude(schemaContents, `namespace: 'TestingSchemas'`)\n\t}\n\n\t@test()\n\tprotected static async errorsWithBadVersion() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst results = await action.execute({\n\t\t\tnameReadable: 'Bad schema version!',\n\t\t\tnamePascal: 'BadSchemaVersion',\n\t\t\tnameCamel: 'badSchemaVersion',\n\t\t\tversion: 'v1',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, /must be in the form/i)\n\t}\n\n\t@test()\n\tprotected static async canBuild2SpecificVersions() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst firstResponse = await action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_10',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tfirstResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\n\t\tconst secondResponse = await action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'secondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t\tversion: 'v2020_01_11',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'secondSchema.schema.ts',\n\t\t\t'v2020_01_11',\n\t\t\t'SecondSchema'\n\t\t)\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionOnSecondSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst newVersion = versionUtil.generateVersion()\n\n\t\t// create old version first\n\t\tawait action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tawait this.assertAnswersFirstTime(action, newVersion)\n\t\tawait this.assertAnswersSecondTime(action, newVersion)\n\t}\n\n\t// should ask if we want to use the old version we created above or a New Version\n\tprivate static async assertAnswersFirstTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'SecondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst last = this.ui.invocations[this.ui.invocations.length - 1]\n\n\t\tassert.isEqual(last?.command, 'prompt')\n\t\tassert.isLength(last?.options?.options?.choices, 2)\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: 'New Version',\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\tawait this.ui.sendInput(newVersion.dirValue)\n\t\tawait createPromise\n\t}\n\n\t// should only have 2 options, none of which are \"new version\" since that was created in secondAnswers\n\tprivate static async assertAnswersSecondTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Third schema',\n\t\t\tnamePascal: 'ThirdSchema',\n\t\t\tnameCamel: 'thirdSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst term = this.ui as SpyInterface\n\t\tconst last = term.invocations[term.invocations.length - 1]\n\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: newVersion.dirValue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.ui.sendInput(newVersion.dirValue)\n\n\t\tconst createResults = await createPromise\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'secondSchema.schema.ts',\n\t\t\tcreateResults.files\n\t\t)\n\n\t\tassert.doesInclude(schemaMatch, newVersion.dirValue)\n\t}\n\n\tprivate static validateSchemaFiles(\n\t\tresponse: FeatureActionResponse,\n\t\texpectedFileName: string,\n\t\texpectedVersion: string,\n\t\texpectedSchemaInterfaceName: string\n\t) {\n\t\tassert.isUndefined(response.errors)\n\n\t\tlet schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\texpectedFileName,\n\t\t\tresponse.files\n\t\t)\n\n\t\tconst errors = response.errors ?? []\n\t\tif (errors.length > 0) {\n\t\t\tassert.fail(errors[0].friendlyMessage())\n\t\t}\n\n\t\tassert.doesInclude(schemaFile, expectedVersion)\n\t\tconst schemaContents = diskUtil.readFile(schemaFile)\n\n\t\tassert.doesInclude(schemaContents, `version: '${expectedVersion}'`)\n\n\t\tassert.doesInclude(\n\t\t\tschemaContents,\n\t\t\tnew RegExp(\n\t\t\t\t'SpruceSchemas.TestingSchemas.' +\n\t\t\t\t\texpectedVersion +\n\t\t\t\t\t'.*?' +\n\t\t\t\t\texpectedSchemaInterfaceName,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static async buildTestSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await action.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'AnotherTest',\n\t\t\tnameCamel: 'anotherTest',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isUndefined(response.errors)\n\n\t\treturn response\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratingFieldTypesOnly.test.js","names":["GeneratingFieldTypesOnlyTest","action","Action","assert","isTruthy","installSchemaFeature","execute","results","isFalsy","errors","matches","globby","sync","resolveHashSprucePath","isLength","expectedFields","typeChecker","Service","file","match","testUtil","assertFileByNameInGeneratedFiles","files","check","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport globby from 'globby'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingFieldTypesOnlyTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async syncFieldsActionExists() {\n\t\tconst action = this.Action('schema', 'syncFields')\n\t\tassert.isTruthy(action)\n\t}\n\n\t@test()\n\tprotected static async generatesOnlyFieldTypes() {\n\t\tawait this.installSchemaFeature('schemas')\n\t\tconst results = await this.Action('schema', 'syncFields').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst matches = globby.sync(this.resolveHashSprucePath('schemas'))\n\t\tassert.isLength(matches, 2)\n\n\t\tconst expectedFields = ['fields.types.ts', 'fieldClassMap.ts']\n\n\t\tconst typeChecker = this.Service('typeChecker')\n\t\tfor (const file of expectedFields) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files ?? []\n\t\t\t)\n\t\t\tawait typeChecker.check(match)\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,4B,WACnB,iB,UAMA,iB;;;;;;;;;;;;;kHAND;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,MAFP,GAEgB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,YAAtB,CAFhB;;gBAGCC,aAAOC,QAAP,CAAgBH,MAAhB;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHAMA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKI,oBAAL,CAA0B,SAA1B,CAFP;;cAAA;gBAAA;gBAAA,OAGuB,KAAKH,MAAL,CAAY,QAAZ,EAAsB,YAAtB,EAAoCI,OAApC,CAA4C,EAA5C,CAHvB;;cAAA;gBAGOC,OAHP;;gBAKCJ,aAAOK,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBAEMC,OAPP,GAOiBC,mBAAOC,IAAP,CAAY,KAAKC,qBAAL,CAA2B,SAA3B,CAAZ,CAPjB;;gBAQCV,aAAOW,QAAP,CAAgBJ,OAAhB,EAAyB,CAAzB;;gBAEMK,cAVP,GAUwB,CAAC,iBAAD,EAAoB,kBAApB,CAVxB;gBAYOC,WAZP,GAYqB,KAAKC,OAAL,CAAa,aAAb,CAZrB;gBAAA,0BAaoBF,cAbpB;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAaYG,IAbZ;gBAcQC,KAdR,GAcgBC,kBAASC,gCAAT,CACbH,IADa,oBAEbX,OAAO,CAACe,KAFK,2DAEI,EAFJ,CAdhB;gBAAA;gBAAA,OAkBQN,WAAW,CAACO,KAAZ,CAAkBJ,KAAlB,CAlBR;;cAAA;gBAAA;gBAAA;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAPyDK,+B"}
1
+ {"version":3,"file":"GeneratingFieldTypesOnly.test.js","names":["GeneratingFieldTypesOnlyTest","test","action","Action","assert","isTruthy","installSchemaFeature","execute","results","isFalsy","errors","matches","globby","sync","resolveHashSprucePath","isLength","expectedFields","typeChecker","Service","file","match","testUtil","assertFileByNameInGeneratedFiles","files","check","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport globby from 'globby'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingFieldTypesOnlyTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async syncFieldsActionExists() {\n\t\tconst action = this.Action('schema', 'syncFields')\n\t\tassert.isTruthy(action)\n\t}\n\n\t@test()\n\tprotected static async generatesOnlyFieldTypes() {\n\t\tawait this.installSchemaFeature('schemas')\n\t\tconst results = await this.Action('schema', 'syncFields').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst matches = globby.sync(this.resolveHashSprucePath('schemas'))\n\t\tassert.isLength(matches, 2)\n\n\t\tconst expectedFields = ['fields.types.ts', 'fieldClassMap.ts']\n\n\t\tconst typeChecker = this.Service('typeChecker')\n\t\tfor (const file of expectedFields) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files ?? []\n\t\t\t)\n\t\t\tawait typeChecker.check(match)\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,4B,WACnB,IAAAC,UAAA,G,UAMA,IAAAA,UAAA,G;;;;;;;;;;;;;kHAND;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,MAFP,GAEgB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,YAAtB,CAFhB;;gBAGCC,YAAA,CAAOC,QAAP,CAAgBH,MAAhB;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHAMA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKI,oBAAL,CAA0B,SAA1B,CAFP;;cAAA;gBAAA;gBAAA,OAGuB,KAAKH,MAAL,CAAY,QAAZ,EAAsB,YAAtB,EAAoCI,OAApC,CAA4C,EAA5C,CAHvB;;cAAA;gBAGOC,OAHP;;gBAKCJ,YAAA,CAAOK,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBAEMC,OAPP,GAOiBC,kBAAA,CAAOC,IAAP,CAAY,KAAKC,qBAAL,CAA2B,SAA3B,CAAZ,CAPjB;;gBAQCV,YAAA,CAAOW,QAAP,CAAgBJ,OAAhB,EAAyB,CAAzB;;gBAEMK,cAVP,GAUwB,CAAC,iBAAD,EAAoB,kBAApB,CAVxB;gBAYOC,WAZP,GAYqB,KAAKC,OAAL,CAAa,aAAb,CAZrB;gBAAA,0BAaoBF,cAbpB;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAaYG,IAbZ;gBAcQC,KAdR,GAcgBC,iBAAA,CAASC,gCAAT,CACbH,IADa,oBAEbX,OAAO,CAACe,KAFK,2DAEI,EAFJ,CAdhB;gBAAA;gBAAA,OAkBQN,WAAW,CAACO,KAAZ,CAAkBJ,KAAlB,CAlBR;;cAAA;gBAAA;gBAAA;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAPyDK,+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"GettingSchemasFromHealthCheck.test.js","names":["GettingSchemasFromHealthCheckTest","installAndSyncSchemas","cli","cleanedExpected","generateExpectedHealthSchemas","Object","values","coreSchemas","assertExpectedSchemas","expected","checkHealth","health","assert","isFalsy","skill","errors","isTruthy","schema","isEqual","status","isEqualDeep","sortSchemas","schemas","createSchema","Action","execute","nameReadable","namePascal","nameCamel","description","id","name","version","versionUtil","generateVersion","constValue","namespace","installSchemaFeature","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport { coreSchemas } from '../../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\n\nexport default class GettingSchemasFromHealthCheckTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async getsCoreSchemasFromHealthCheck() {\n\t\tconst cli = await this.installAndSyncSchemas()\n\n\t\tconst cleanedExpected = this.generateExpectedHealthSchemas(\n\t\t\tObject.values(coreSchemas)\n\t\t)\n\n\t\tawait this.assertExpectedSchemas(cli, cleanedExpected)\n\t}\n\n\tprivate static async assertExpectedSchemas(\n\t\tcli: CliInterface,\n\t\texpected: Schema[]\n\t) {\n\t\tconst health = await cli.checkHealth()\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.schema)\n\t\tassert.isEqual(health.schema.status, 'passed')\n\n\t\tassert.isEqualDeep(this.sortSchemas(health.schema.schemas), expected)\n\t}\n\n\t@test()\n\tprotected static async getsCoreAndLocalSchemasFromHealthCheck() {\n\t\tconst cli = await this.installAndSyncSchemas()\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\tawait createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tconst cleanedExpected = this.generateExpectedHealthSchemas([\n\t\t\t...Object.values(coreSchemas),\n\t\t\t{\n\t\t\t\tid: 'test',\n\t\t\t\tname: 'Test schema!',\n\t\t\t\tversion: versionUtil.generateVersion().constValue,\n\t\t\t\tnamespace: 'TestingSchemas',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t},\n\t\t])\n\n\t\tawait this.assertExpectedSchemas(cli, cleanedExpected)\n\t}\n\n\tprivate static async installAndSyncSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\t\tawait this.Action('schema', 'sync').execute({})\n\t\treturn cli\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,iC,WACnB,iB,UAuBA,iB;;;;;;;;;;;;;0HAvBD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,qBAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAIOC,eAJP,GAIyB,KAAKC,6BAAL,CACvBC,MAAM,CAACC,MAAP,CAAcC,wBAAd,CADuB,CAJzB;gBAAA;gBAAA,OAQO,KAAKC,qBAAL,CAA2BN,GAA3B,EAAgCC,eAAhC,CARP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAWA,kBACCD,GADD,EAECO,QAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAIsBP,GAAG,CAACQ,WAAJ,EAJtB;;cAAA;gBAIOC,MAJP;;gBAKCC,aAAOC,OAAP,CAAeF,MAAM,CAACG,KAAP,CAAaC,MAA5B;;gBACAH,aAAOI,QAAP,CAAgBL,MAAM,CAACM,MAAvB;;gBACAL,aAAOM,OAAP,CAAeP,MAAM,CAACM,MAAP,CAAcE,MAA7B,EAAqC,QAArC;;gBAEAP,aAAOQ,WAAP,CAAmB,KAAKC,WAAL,CAAiBV,MAAM,CAACM,MAAP,CAAcK,OAA/B,CAAnB,EAA4Db,QAA5D;;cATD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kIAYA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKR,qBAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAGOqB,YAHP,GAGsB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,CAHtB;gBAAA;gBAAA,OAKOD,YAAY,CAACE,OAAb,CAAqB;kBAC1BC,YAAY,EAAE,cADY;kBAE1BC,UAAU,EAAE,MAFc;kBAG1BC,SAAS,EAAE,MAHe;kBAI1BC,WAAW,EAAE;gBAJa,CAArB,CALP;;cAAA;gBAYO1B,eAZP,GAYyB,KAAKC,6BAAL,+CACpBC,MAAM,CAACC,MAAP,CAAcC,wBAAd,CADoB,IAEvB;kBACCuB,EAAE,EAAE,MADL;kBAECC,IAAI,EAAE,cAFP;kBAGCC,OAAO,EAAEC,8BAAYC,eAAZ,GAA8BC,UAHxC;kBAICC,SAAS,EAAE,gBAJZ;kBAKCP,WAAW,EAAE;gBALd,CAFuB,GAZzB;gBAAA;gBAAA,OAuBO,KAAKrB,qBAAL,CAA2BN,GAA3B,EAAgCC,eAAhC,CAvBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHA0BA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACmB,KAAKkC,oBAAL,CAA0B,SAA1B,CADnB;;cAAA;gBACOnC,GADP;gBAAA;gBAAA,OAEO,KAAKsB,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAFP;;cAAA;gBAAA,kCAGQvB,GAHR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAlD8DoC,+B"}
1
+ {"version":3,"file":"GettingSchemasFromHealthCheck.test.js","names":["GettingSchemasFromHealthCheckTest","test","installAndSyncSchemas","cli","cleanedExpected","generateExpectedHealthSchemas","Object","values","coreSchemas","assertExpectedSchemas","expected","checkHealth","health","assert","isFalsy","skill","errors","isTruthy","schema","isEqual","status","isEqualDeep","sortSchemas","schemas","createSchema","Action","execute","nameReadable","namePascal","nameCamel","description","id","name","version","versionUtil","generateVersion","constValue","namespace","installSchemaFeature","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport { coreSchemas } from '../../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\n\nexport default class GettingSchemasFromHealthCheckTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async getsCoreSchemasFromHealthCheck() {\n\t\tconst cli = await this.installAndSyncSchemas()\n\n\t\tconst cleanedExpected = this.generateExpectedHealthSchemas(\n\t\t\tObject.values(coreSchemas)\n\t\t)\n\n\t\tawait this.assertExpectedSchemas(cli, cleanedExpected)\n\t}\n\n\tprivate static async assertExpectedSchemas(\n\t\tcli: CliInterface,\n\t\texpected: Schema[]\n\t) {\n\t\tconst health = await cli.checkHealth()\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.schema)\n\t\tassert.isEqual(health.schema.status, 'passed')\n\n\t\tassert.isEqualDeep(this.sortSchemas(health.schema.schemas), expected)\n\t}\n\n\t@test()\n\tprotected static async getsCoreAndLocalSchemasFromHealthCheck() {\n\t\tconst cli = await this.installAndSyncSchemas()\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\tawait createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tconst cleanedExpected = this.generateExpectedHealthSchemas([\n\t\t\t...Object.values(coreSchemas),\n\t\t\t{\n\t\t\t\tid: 'test',\n\t\t\t\tname: 'Test schema!',\n\t\t\t\tversion: versionUtil.generateVersion().constValue,\n\t\t\t\tnamespace: 'TestingSchemas',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t},\n\t\t])\n\n\t\tawait this.assertExpectedSchemas(cli, cleanedExpected)\n\t}\n\n\tprivate static async installAndSyncSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\t\tawait this.Action('schema', 'sync').execute({})\n\t\treturn cli\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,iC,WACnB,IAAAC,UAAA,G,UAuBA,IAAAA,UAAA,G;;;;;;;;;;;;;0HAvBD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,qBAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAIOC,eAJP,GAIyB,KAAKC,6BAAL,CACvBC,MAAM,CAACC,MAAP,CAAcC,wBAAd,CADuB,CAJzB;gBAAA;gBAAA,OAQO,KAAKC,qBAAL,CAA2BN,GAA3B,EAAgCC,eAAhC,CARP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAWA,kBACCD,GADD,EAECO,QAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAIsBP,GAAG,CAACQ,WAAJ,EAJtB;;cAAA;gBAIOC,MAJP;;gBAKCC,YAAA,CAAOC,OAAP,CAAeF,MAAM,CAACG,KAAP,CAAaC,MAA5B;;gBACAH,YAAA,CAAOI,QAAP,CAAgBL,MAAM,CAACM,MAAvB;;gBACAL,YAAA,CAAOM,OAAP,CAAeP,MAAM,CAACM,MAAP,CAAcE,MAA7B,EAAqC,QAArC;;gBAEAP,YAAA,CAAOQ,WAAP,CAAmB,KAAKC,WAAL,CAAiBV,MAAM,CAACM,MAAP,CAAcK,OAA/B,CAAnB,EAA4Db,QAA5D;;cATD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kIAYA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKR,qBAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAGOqB,YAHP,GAGsB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,CAHtB;gBAAA;gBAAA,OAKOD,YAAY,CAACE,OAAb,CAAqB;kBAC1BC,YAAY,EAAE,cADY;kBAE1BC,UAAU,EAAE,MAFc;kBAG1BC,SAAS,EAAE,MAHe;kBAI1BC,WAAW,EAAE;gBAJa,CAArB,CALP;;cAAA;gBAYO1B,eAZP,GAYyB,KAAKC,6BAAL,+CACpBC,MAAM,CAACC,MAAP,CAAcC,wBAAd,CADoB,IAEvB;kBACCuB,EAAE,EAAE,MADL;kBAECC,IAAI,EAAE,cAFP;kBAGCC,OAAO,EAAEC,6BAAA,CAAYC,eAAZ,GAA8BC,UAHxC;kBAICC,SAAS,EAAE,gBAJZ;kBAKCP,WAAW,EAAE;gBALd,CAFuB,GAZzB;gBAAA;gBAAA,OAuBO,KAAKrB,qBAAL,CAA2BN,GAA3B,EAAgCC,eAAhC,CAvBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHA0BA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACmB,KAAKkC,oBAAL,CAA0B,SAA1B,CADnB;;cAAA;gBACOnC,GADP;gBAAA;gBAAA,OAEO,KAAKsB,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAFP;;cAAA;gBAAA,kCAGQvB,GAHR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAlD8DoC,+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"HandlesRelatedSchemas.test.js","names":["HandlesRelatedSchemasTest","installCopyAndSync","results","syncResults","assert","isUndefined","errors","testUtil","assertFileByNameInGeneratedFiles","files","assertValidActionResponseFiles","installSchemaFeature","schemasDir","resolvePath","diskUtil","copyDir","resolveTestPath","Action","execute","typesPath","resolveHashSprucePath","typesContent","readFile","doesInclude","Service","check","schemaMatch","isFalsy","isTruthy","assertCountsByAction","generated","length","updated","skipped","matches","filter","f","name","isLength","path","CORE_SCHEMA_VERSION","dirValue","CORE_NAMESPACE","toLowerCase","doesNotInclude","testDir","cli","source","destination","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.ts"],"sourcesContent":["import {\n\tCORE_NAMESPACE,\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class HandlesRelatedSchemasTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async relatedSchemasGeneratesValidFiles() {\n\t\tconst { syncResults: results } = await this.installCopyAndSync()\n\n\t\tassert.isUndefined(results.errors)\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testPerson\\.schema/,\n\t\t\tresults.files\n\t\t)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(/pet\\.schema/, results.files)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/nested-schema\\.schema/,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n\n\t@test()\n\tprotected static async nestedSchemasInDynamicFields() {\n\t\tawait this.installSchemaFeature('schemas')\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(\n\t\t\tthis.resolveTestPath('dynamic_key_schemas'),\n\t\t\tschemasDir\n\t\t)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst typesPath = this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t\tconst typesContent = diskUtil.readFile(typesPath)\n\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t\"[fullyQualifiedEventName:string]: { schemaId: 'eventSignature', version: 'v2020_07_22', values: SpruceSchemas.TestingSchemas.v2020_07_22.EventSignature } | { schemaId: 'eventSignature2', version: 'v2020_07_22', values: SpruceSchemas.TestingSchemas.v2020_07_22.EventSignature2 }\"\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(typesPath)\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'mercuryContract.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaMatch)\n\t}\n\n\t@test()\n\tprotected static async generatesCoreSchemasFirstSoSchemasCanRelateToThem() {\n\t\tconst { syncResults } = await this.installCopyAndSync()\n\n\t\tassert.isFalsy(syncResults.errors)\n\t\tassert.isTruthy(syncResults.files)\n\n\t\ttestUtil.assertCountsByAction(syncResults.files, {\n\t\t\tgenerated: syncResults.files.length,\n\t\t\tupdated: 0,\n\t\t\tskipped: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async makesSureMixinSchemaFieldsDontCopySchemaToLocal() {\n\t\tconst { syncResults } = await this.installCopyAndSync()\n\n\t\tassert.isFalsy(syncResults.errors)\n\t\tassert.isTruthy(syncResults.files)\n\n\t\tconst matches = syncResults.files.filter(\n\t\t\t(f) => f.name === 'skillCreator.schema.ts'\n\t\t)\n\n\t\tassert.isLength(matches, 1)\n\t\tassert.doesInclude(matches[0].path, CORE_SCHEMA_VERSION.dirValue)\n\t\tassert.doesInclude(matches[0].path, CORE_NAMESPACE.toLowerCase())\n\t\tassert.doesNotInclude(matches[0].path, 'testing')\n\t}\n\n\tprivate static async installCopyAndSync(testDir = 'related_schemas') {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\t\tconst source = this.resolveTestPath(testDir)\n\t\tconst destination = this.resolvePath('src/schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst syncResults = await this.Action('schema', 'sync').execute({})\n\n\t\treturn { cli, syncResults }\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"HandlesRelatedSchemas.test.js","names":["HandlesRelatedSchemasTest","test","installCopyAndSync","results","syncResults","assert","isUndefined","errors","testUtil","assertFileByNameInGeneratedFiles","files","assertValidActionResponseFiles","installSchemaFeature","schemasDir","resolvePath","diskUtil","copyDir","resolveTestPath","Action","execute","typesPath","resolveHashSprucePath","typesContent","readFile","doesInclude","Service","check","schemaMatch","isFalsy","isTruthy","assertCountsByAction","generated","length","updated","skipped","matches","filter","f","name","isLength","path","CORE_SCHEMA_VERSION","dirValue","CORE_NAMESPACE","toLowerCase","doesNotInclude","testDir","cli","source","destination","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.ts"],"sourcesContent":["import {\n\tCORE_NAMESPACE,\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class HandlesRelatedSchemasTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async relatedSchemasGeneratesValidFiles() {\n\t\tconst { syncResults: results } = await this.installCopyAndSync()\n\n\t\tassert.isUndefined(results.errors)\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testPerson\\.schema/,\n\t\t\tresults.files\n\t\t)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(/pet\\.schema/, results.files)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/nested-schema\\.schema/,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n\n\t@test()\n\tprotected static async nestedSchemasInDynamicFields() {\n\t\tawait this.installSchemaFeature('schemas')\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(\n\t\t\tthis.resolveTestPath('dynamic_key_schemas'),\n\t\t\tschemasDir\n\t\t)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst typesPath = this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t\tconst typesContent = diskUtil.readFile(typesPath)\n\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t\"[fullyQualifiedEventName:string]: { schemaId: 'eventSignature', version: 'v2020_07_22', values: SpruceSchemas.TestingSchemas.v2020_07_22.EventSignature } | { schemaId: 'eventSignature2', version: 'v2020_07_22', values: SpruceSchemas.TestingSchemas.v2020_07_22.EventSignature2 }\"\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(typesPath)\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'mercuryContract.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaMatch)\n\t}\n\n\t@test()\n\tprotected static async generatesCoreSchemasFirstSoSchemasCanRelateToThem() {\n\t\tconst { syncResults } = await this.installCopyAndSync()\n\n\t\tassert.isFalsy(syncResults.errors)\n\t\tassert.isTruthy(syncResults.files)\n\n\t\ttestUtil.assertCountsByAction(syncResults.files, {\n\t\t\tgenerated: syncResults.files.length,\n\t\t\tupdated: 0,\n\t\t\tskipped: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async makesSureMixinSchemaFieldsDontCopySchemaToLocal() {\n\t\tconst { syncResults } = await this.installCopyAndSync()\n\n\t\tassert.isFalsy(syncResults.errors)\n\t\tassert.isTruthy(syncResults.files)\n\n\t\tconst matches = syncResults.files.filter(\n\t\t\t(f) => f.name === 'skillCreator.schema.ts'\n\t\t)\n\n\t\tassert.isLength(matches, 1)\n\t\tassert.doesInclude(matches[0].path, CORE_SCHEMA_VERSION.dirValue)\n\t\tassert.doesInclude(matches[0].path, CORE_NAMESPACE.toLowerCase())\n\t\tassert.doesNotInclude(matches[0].path, 'testing')\n\t}\n\n\tprivate static async installCopyAndSync(testDir = 'related_schemas') {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\t\tconst source = this.resolveTestPath(testDir)\n\t\tconst destination = this.resolvePath('src/schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst syncResults = await this.Action('schema', 'sync').execute({})\n\n\t\treturn { cli, syncResults }\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImportingSchemaImports.test.js","names":["ImportingSchemaImportsTest","installSchemaFeature","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","writeFile","Action","execute","results","assert","isFalsy","errors","isTruthy","files","match","testUtil","assertFileByNameInGeneratedFiles","contents","readFile","doesInclude","assertValidActionResponseFiles","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/ImportingSchemaImports.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class ImportingSchemaImportsTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async schemaImportsLocalImports() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst source = this.resolveTestPath('schemas_with_imports')\n\n\t\tconst destination = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tdiskUtil.writeFile(\n\t\t\tthis.resolvePath('src', 'widgets', 'widgets.types.ts'),\n\t\t\t'export type BaseWidget = {}'\n\t\t)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { BaseWidget } from '\" + \"#spruce/../widgets/widgets.types'\"\n\t\t)\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,0B,WACnB,iB;;;;;;;;;;;;;qHAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,oBAAL,CAA0B,SAA1B,CAFP;;cAAA;gBAIOC,MAJP,GAIgB,KAAKC,eAAL,CAAqB,sBAArB,CAJhB;gBAMOC,WANP,GAMqB,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,CANrB;gBAAA;gBAAA,OAQOC,2BAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CARP;;cAAA;gBAUCE,2BAASE,SAAT,CACC,KAAKH,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,EAAmC,kBAAnC,CADD,EAEC,6BAFD;;gBAVD;gBAAA,OAeuB,KAAKI,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAfvB;;cAAA;gBAeOC,OAfP;;gBAiBCC,aAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;gBACAF,aAAOG,QAAP,CAAgBJ,OAAO,CAACK,KAAxB;;gBAEMC,KApBP,GAoBeC,kBAASC,gCAAT,CACb,kBADa,EAEbR,OAAO,CAACK,KAFK,CApBf;gBAyBOI,QAzBP,GAyBkBd,2BAASe,QAAT,CAAkBJ,KAAlB,CAzBlB;;gBA0BCL,aAAOU,WAAP,CACCF,QADD,EAEC,iCAAiC,mCAFlC;;gBA1BD;gBAAA,OA+BO,KAAKG,8BAAL,CAAoCZ,OAApC,CA/BP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADuDa,+B"}
1
+ {"version":3,"file":"ImportingSchemaImports.test.js","names":["ImportingSchemaImportsTest","test","installSchemaFeature","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","writeFile","Action","execute","results","assert","isFalsy","errors","isTruthy","files","match","testUtil","assertFileByNameInGeneratedFiles","contents","readFile","doesInclude","assertValidActionResponseFiles","AbstractSchemaTest"],"sources":["../../../../src/__tests__/behavioral/schemas/ImportingSchemaImports.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class ImportingSchemaImportsTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async schemaImportsLocalImports() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst source = this.resolveTestPath('schemas_with_imports')\n\n\t\tconst destination = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tdiskUtil.writeFile(\n\t\t\tthis.resolvePath('src', 'widgets', 'widgets.types.ts'),\n\t\t\t'export type BaseWidget = {}'\n\t\t)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { BaseWidget } from '\" + \"#spruce/../widgets/widgets.types'\"\n\t\t)\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,0B,WACnB,IAAAC,UAAA,G;;;;;;;;;;;;;qHAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,oBAAL,CAA0B,SAA1B,CAFP;;cAAA;gBAIOC,MAJP,GAIgB,KAAKC,eAAL,CAAqB,sBAArB,CAJhB;gBAMOC,WANP,GAMqB,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,CANrB;gBAAA;gBAAA,OAQOC,0BAAA,CAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CARP;;cAAA;gBAUCE,0BAAA,CAASE,SAAT,CACC,KAAKH,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,EAAmC,kBAAnC,CADD,EAEC,6BAFD;;gBAVD;gBAAA,OAeuB,KAAKI,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAfvB;;cAAA;gBAeOC,OAfP;;gBAiBCC,YAAA,CAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;gBACAF,YAAA,CAAOG,QAAP,CAAgBJ,OAAO,CAACK,KAAxB;;gBAEMC,KApBP,GAoBeC,iBAAA,CAASC,gCAAT,CACb,kBADa,EAEbR,OAAO,CAACK,KAFK,CApBf;gBAyBOI,QAzBP,GAyBkBd,0BAAA,CAASe,QAAT,CAAkBJ,KAAlB,CAzBlB;;gBA0BCL,YAAA,CAAOU,WAAP,CACCF,QADD,EAEC,iCAAiC,mCAFlC;;gBA1BD;gBAAA,OA+BO,KAAKG,8BAAL,CAAoCZ,OAApC,CA/BP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADuDa,+B"}