@sprucelabs/spruce-cli 15.2.24 → 15.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/errors.types.js.map +1 -1
  3. package/build/.spruce/errors/options.types.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  43. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  44. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  45. package/build/.spruce/events/events.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  49. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  50. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  51. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
  52. package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  63. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  64. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  65. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  66. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  67. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  68. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
  69. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
  70. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  71. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  89. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  90. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  91. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  92. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  93. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  94. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  95. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  96. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  97. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  98. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  99. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  100. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  101. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  102. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  103. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  104. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  105. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  106. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  107. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  108. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  109. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  110. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  111. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
  112. package/build/.spruce/skill.types.js.map +1 -1
  113. package/build/GlobalEmitter.js.map +1 -1
  114. package/build/InFlightEntertainment.js.map +1 -1
  115. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  116. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  117. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  118. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  119. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  120. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  121. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  122. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  123. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  124. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  125. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  126. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  127. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  128. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  129. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  130. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  131. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  132. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  133. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  135. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  136. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  137. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  138. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  139. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  140. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  141. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  142. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  143. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  144. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  145. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  146. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  147. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  148. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  149. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  150. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  151. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  152. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  153. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  155. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  156. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  157. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  158. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  159. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  160. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  161. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  162. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  163. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  164. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  165. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  166. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  167. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  168. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  169. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  170. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  171. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  172. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  173. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  174. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  175. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  176. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  177. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  178. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  179. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  180. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  181. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -0
  182. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +20 -14
  183. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  184. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  185. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  186. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  187. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  188. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  189. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  190. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  191. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  192. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  193. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  194. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  195. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  196. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  197. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  198. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  199. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  200. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  201. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  202. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  203. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  204. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  205. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  206. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  207. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  208. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  209. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  210. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  211. package/build/__tests__/implementation/DataStoreStore.test.d.ts +1 -0
  212. package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
  213. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  214. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  215. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  216. package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
  217. package/build/__tests__/implementation/EventStore.test.js +61 -33
  218. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  219. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  220. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  221. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  222. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  223. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  224. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  225. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  226. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  227. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  228. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  229. package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
  230. package/build/__tests__/implementation/ListenerStore.test.js +56 -0
  231. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
  232. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  233. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  234. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  235. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  236. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  237. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  238. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  239. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  240. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  241. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  242. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  243. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  244. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  245. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  246. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  247. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  248. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  249. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  250. package/build/__tests__/support/onTestFileResult.js.map +1 -1
  251. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  252. package/build/__tests__/support/scripts/second.script.js.map +1 -1
  253. package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
  254. package/build/addons/filePrompt.addon.js.map +1 -1
  255. package/build/cli.js.map +1 -1
  256. package/build/components/AbstractComponent.js.map +1 -1
  257. package/build/components/FormComponent.js.map +1 -1
  258. package/build/components/QuizComponent.js.map +1 -1
  259. package/build/constants.js.map +1 -1
  260. package/build/errors/SpruceError.js.map +1 -1
  261. package/build/errors/actionCancelled.builder.js.map +1 -1
  262. package/build/errors/bootError.builder.js.map +1 -1
  263. package/build/errors/buildFailed.builder.js.map +1 -1
  264. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  265. package/build/errors/commandAborted.builder.js.map +1 -1
  266. package/build/errors/commandBlocked.builder.js.map +1 -1
  267. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  268. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  269. package/build/errors/dependencyExists.builder.js.map +1 -1
  270. package/build/errors/deployFailed.builder.js.map +1 -1
  271. package/build/errors/directoryEmpty.builder.js.map +1 -1
  272. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  273. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  274. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  275. package/build/errors/failedToImport.builder.js.map +1 -1
  276. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  277. package/build/errors/fileExists.builder.js.map +1 -1
  278. package/build/errors/generic.builder.js.map +1 -1
  279. package/build/errors/invalidCommand.builder.js.map +1 -1
  280. package/build/errors/invalidEventContract.builder.js.map +1 -1
  281. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  282. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  283. package/build/errors/lintFailed.builder.js.map +1 -1
  284. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  285. package/build/errors/missingDependencies.builder.js.map +1 -1
  286. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  287. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  288. package/build/errors/notImplemented.builder.js.map +1 -1
  289. package/build/errors/notLoggedIn.builder.js.map +1 -1
  290. package/build/errors/schemaExists.builder.js.map +1 -1
  291. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  292. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  293. package/build/errors/skillNotFound.builder.js.map +1 -1
  294. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  295. package/build/errors/skillViewExists.builder.js.map +1 -1
  296. package/build/errors/storeExists.builder.js.map +1 -1
  297. package/build/errors/testFailed.builder.js.map +1 -1
  298. package/build/errors/themeExists.builder.js.map +1 -1
  299. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  300. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  301. package/build/features/AbstractAction.js.map +1 -1
  302. package/build/features/AbstractFeature.js.map +1 -1
  303. package/build/features/ActionExecuter.js.map +1 -1
  304. package/build/features/ActionFactory.js.map +1 -1
  305. package/build/features/ActionQuestionAsker.js.map +1 -1
  306. package/build/features/FeatureCommandAttacher.js.map +1 -1
  307. package/build/features/FeatureInstaller.js.map +1 -1
  308. package/build/features/FeatureInstallerFactory.js.map +1 -1
  309. package/build/features/OverrideActionDecorator.js.map +1 -1
  310. package/build/features/cache/CacheFeature.js.map +1 -1
  311. package/build/features/cache/actions/DisableAction.js.map +1 -1
  312. package/build/features/cache/actions/EnableAction.js.map +1 -1
  313. package/build/features/cache/constants.js.map +1 -1
  314. package/build/features/conversation/ConversationFeature.js.map +1 -1
  315. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  316. package/build/features/conversation/actions/TestAction.js.map +1 -1
  317. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  318. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  319. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  320. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  321. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  322. package/build/features/deploy/DeployFeature.js.map +1 -1
  323. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  324. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  325. package/build/features/error/ErrorFeature.js.map +1 -1
  326. package/build/features/error/ParentTestFinder.js.map +1 -1
  327. package/build/features/error/actions/CreateAction.js.map +1 -1
  328. package/build/features/error/actions/SyncAction.js.map +1 -1
  329. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  330. package/build/features/event/EventFeature.js.map +1 -1
  331. package/build/features/event/actions/CreateAction.js.map +1 -1
  332. package/build/features/event/actions/ListenAction.js.map +1 -1
  333. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  334. package/build/features/event/actions/SyncAction.js.map +1 -1
  335. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  336. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  337. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  338. package/build/features/event/services/EventSettingsService.js.map +1 -1
  339. package/build/features/event/services/RemoteService.js.map +1 -1
  340. package/build/features/event/stores/EventStore.d.ts +1 -0
  341. package/build/features/event/stores/EventStore.js +6 -1
  342. package/build/features/event/stores/EventStore.js.map +1 -1
  343. package/build/features/event/stores/ListenerStore.d.ts +1 -0
  344. package/build/features/event/stores/ListenerStore.js +6 -1
  345. package/build/features/event/stores/ListenerStore.js.map +1 -1
  346. package/build/features/event/writers/EventWriter.js +1 -1
  347. package/build/features/event/writers/EventWriter.js.map +1 -1
  348. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  349. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  350. package/build/features/feature.utilities.js.map +1 -1
  351. package/build/features/features.types.js.map +1 -1
  352. package/build/features/log/LogFeature.js.map +1 -1
  353. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  354. package/build/features/log/writers/LogWriter.js.map +1 -1
  355. package/build/features/node/NodeFeature.js.map +1 -1
  356. package/build/features/node/actions/CreateAction.js.map +1 -1
  357. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  358. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  359. package/build/features/node/writers/NodeWriter.js.map +1 -1
  360. package/build/features/onboard/OnboardFeature.js.map +1 -1
  361. package/build/features/onboard/ScriptLoader.js.map +1 -1
  362. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  363. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  364. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  365. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  366. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  367. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  368. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  369. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  370. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  371. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  372. package/build/features/organization/OrganizationFeature.js.map +1 -1
  373. package/build/features/organization/actions/CreateAction.js.map +1 -1
  374. package/build/features/organization/actions/InstallAction.js.map +1 -1
  375. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  376. package/build/features/person/PersonFeature.js.map +1 -1
  377. package/build/features/person/actions/LoginAction.js.map +1 -1
  378. package/build/features/person/actions/LogoutAction.js.map +1 -1
  379. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  380. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  381. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  382. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  383. package/build/features/schema/SchemaFeature.js.map +1 -1
  384. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  385. package/build/features/schema/actions/CreateAction.js.map +1 -1
  386. package/build/features/schema/actions/SyncAction.js.map +1 -1
  387. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  388. package/build/features/schema/services/SchemaService.js.map +1 -1
  389. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  390. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  391. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  392. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  393. package/build/features/schema/writers/SchemaWriter.js +1 -1
  394. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  395. package/build/features/skill/SkillFeature.js.map +1 -1
  396. package/build/features/skill/actions/BootAction.js.map +1 -1
  397. package/build/features/skill/actions/CreateAction.js.map +1 -1
  398. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  399. package/build/features/skill/actions/LoginAction.js.map +1 -1
  400. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  401. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  402. package/build/features/skill/stores/SkillStore.js.map +1 -1
  403. package/build/features/skill/updaters/Updater.js.map +1 -1
  404. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  405. package/build/features/store/StoreFeature.js +1 -1
  406. package/build/features/store/StoreFeature.js.map +1 -1
  407. package/build/features/store/actions/CreateAction.js.map +1 -1
  408. package/build/features/store/actions/SyncAction.js.map +1 -1
  409. package/build/features/store/stores/StoreStore.d.ts +1 -0
  410. package/build/features/store/stores/StoreStore.js +6 -1
  411. package/build/features/store/stores/StoreStore.js.map +1 -1
  412. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  413. package/build/features/store/writers/StoreWriter.js.map +1 -1
  414. package/build/features/test/TestFeature.js.map +1 -1
  415. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  416. package/build/features/test/TestReporter.js.map +1 -1
  417. package/build/features/test/TestRunner.js.map +1 -1
  418. package/build/features/test/actions/CreateAction.js +1 -1
  419. package/build/features/test/actions/CreateAction.js.map +1 -1
  420. package/build/features/test/actions/SetupAction.js.map +1 -1
  421. package/build/features/test/actions/TestAction.js.map +1 -1
  422. package/build/features/test/test.types.js.map +1 -1
  423. package/build/features/test/writers/TestWriter.js.map +1 -1
  424. package/build/features/universalDevDependencies.js.map +1 -1
  425. package/build/features/universalFileDescriptions.js.map +1 -1
  426. package/build/features/universalScripts.js.map +1 -1
  427. package/build/features/validateAndNormalize.utility.d.ts +2 -2
  428. package/build/features/validateAndNormalize.utility.js +2 -2
  429. package/build/features/validateAndNormalize.utility.js.map +1 -1
  430. package/build/features/view/ViewFeature.js.map +1 -1
  431. package/build/features/view/actions/CreateAction.js.map +1 -1
  432. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  433. package/build/features/view/actions/SyncAction.js.map +1 -1
  434. package/build/features/view/actions/WatchAction.js.map +1 -1
  435. package/build/features/view/stores/ViewStore.js.map +1 -1
  436. package/build/features/view/writers/ViewWriter.js +1 -3
  437. package/build/features/view/writers/ViewWriter.js.map +1 -1
  438. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  439. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  440. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  441. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  442. package/build/features/watch/WatchFeature.js.map +1 -1
  443. package/build/index.js.map +1 -1
  444. package/build/interfaces/SpyInterface.js.map +1 -1
  445. package/build/interfaces/TerminalInterface.js.map +1 -1
  446. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  447. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  448. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  449. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  450. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  451. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  452. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  453. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  454. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  455. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  456. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  457. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  458. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  459. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  460. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  461. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  462. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  463. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  464. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  465. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  466. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  467. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  468. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  469. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  470. package/build/services/BuildService.js.map +1 -1
  471. package/build/services/CommandService.js.map +1 -1
  472. package/build/services/DependencyService.js.map +1 -1
  473. package/build/services/GameService.js.map +1 -1
  474. package/build/services/ImportService.js.map +1 -1
  475. package/build/services/LintService.js.map +1 -1
  476. package/build/services/PkgService.js.map +1 -1
  477. package/build/services/ServiceFactory.js.map +1 -1
  478. package/build/services/TypeCheckerService.js.map +1 -1
  479. package/build/stores/AbstractLocalStore.js.map +1 -1
  480. package/build/stores/AbstractStore.js.map +1 -1
  481. package/build/stores/StoreFactory.js.map +1 -1
  482. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  483. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  484. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  485. package/build/tests/AbstractCliTest.js.map +1 -1
  486. package/build/tests/AbstractErrorTest.js.map +1 -1
  487. package/build/tests/AbstractEventTest.js.map +1 -1
  488. package/build/tests/AbstractSchemaTest.js.map +1 -1
  489. package/build/tests/AbstractSkillTest.js.map +1 -1
  490. package/build/tests/AbstractTestTest.js.map +1 -1
  491. package/build/tests/CommandFaker.d.ts +2 -1
  492. package/build/tests/CommandFaker.js +13 -7
  493. package/build/tests/CommandFaker.js.map +1 -1
  494. package/build/tests/JestJsonParser.js.map +1 -1
  495. package/build/tests/MockProgramFactory.js.map +1 -1
  496. package/build/tests/buildTestCache.js.map +1 -1
  497. package/build/tests/cleanTestCache.js.map +1 -1
  498. package/build/tests/cleanTestData.js.map +1 -1
  499. package/build/tests/constants.js.map +1 -1
  500. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  501. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  502. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  503. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  504. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  505. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  506. package/build/tests/utilities/test.utility.js.map +1 -1
  507. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  508. package/build/types/apiClient.types.js.map +1 -1
  509. package/build/types/cli.types.js.map +1 -1
  510. package/build/types/graphicsInterface.types.js.map +1 -1
  511. package/build/updaters/ScriptUpdater.js.map +1 -1
  512. package/build/utilities/action.utility.js.map +1 -1
  513. package/build/utilities/apiClient.utility.js.map +1 -1
  514. package/build/utilities/argParser.utility.js.map +1 -1
  515. package/build/utilities/commander.utility.js.map +1 -1
  516. package/build/utilities/duration.utility.js.map +1 -1
  517. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  518. package/build/utilities/form.utility.js.map +1 -1
  519. package/build/utilities/introspection.utility.js.map +1 -1
  520. package/build/utilities/isCi.js.map +1 -1
  521. package/build/utilities/tsConfig.utility.js.map +1 -1
  522. package/build/utilities/ui.utility.js.map +1 -1
  523. package/build/widgets/Theme.js.map +1 -1
  524. package/build/widgets/WidgetFactory.js.map +1 -1
  525. package/build/widgets/keySelectChoices.js.map +1 -1
  526. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  527. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  528. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  529. package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
  530. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  531. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  532. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  533. package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
  534. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  535. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  536. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  537. package/build/widgets/types/button.types.js.map +1 -1
  538. package/build/widgets/types/factory.types.js.map +1 -1
  539. package/build/widgets/types/input.types.js.map +1 -1
  540. package/build/widgets/types/layout.types.js.map +1 -1
  541. package/build/widgets/types/menuBar.types.js.map +1 -1
  542. package/build/widgets/types/popup.types.js.map +1 -1
  543. package/build/widgets/types/progressBar.types.js.map +1 -1
  544. package/build/widgets/types/table.types.js.map +1 -1
  545. package/build/widgets/types/text.types.js.map +1 -1
  546. package/build/widgets/types/widgets.types.js.map +1 -1
  547. package/build/widgets/types/window.types.js.map +1 -1
  548. package/build/widgets/widget.utilities.js.map +1 -1
  549. package/build/writers/AbstractWriter.js.map +1 -1
  550. package/build/writers/WriterFactory.js.map +1 -1
  551. package/package.json +36 -36
  552. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +21 -7
  553. package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
  554. package/src/__tests__/implementation/EventStore.test.ts +14 -0
  555. package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
  556. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  557. package/src/features/AbstractAction.ts +2 -2
  558. package/src/features/event/builders/EventContractBuilder.ts +2 -2
  559. package/src/features/event/stores/EventStore.ts +11 -8
  560. package/src/features/event/stores/ListenerStore.ts +5 -3
  561. package/src/features/event/writers/EventWriter.ts +1 -1
  562. package/src/features/schema/writers/SchemaWriter.ts +1 -1
  563. package/src/features/store/StoreFeature.ts +1 -1
  564. package/src/features/store/stores/StoreStore.ts +5 -1
  565. package/src/features/test/actions/CreateAction.ts +1 -1
  566. package/src/features/validateAndNormalize.utility.ts +2 -2
  567. package/src/features/view/writers/ViewWriter.ts +3 -2
  568. package/src/tests/CommandFaker.ts +9 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/templateItemBuilders/EventTemplateItemBuilder.ts"],"names":["EventTemplateItemBuilder","options","contracts","localNamespace","eventBuilderFile","eventContractTemplateItems","schemaTemplateItems","contract","buildTemplateItemsForContract","schemaItems","contractItems","push","sort","a","b","nameCamel","fullyQualifiedEventName","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","mapEventSigsToSchemaTemplateItems","signatureTemplateItem","buildEventSigTemplateItem","emitPayloadSchemaTemplateItem","emitPayloadSchema","responsePayloadSchemaTemplateItem","responsePayloadSchema","SchemaError","code","parameters","friendlyMessages","item","buildTemplateItemForEventSignature","eventNamespace","isLocal","namespacePascal","sigToNamespacePascal","namesUtil","toCamel","eventName","namePascal","toPascal","version","namespace","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","imports","filter","i","map","schemaDiskUtil","resolvePath","destination","schema","shouldIncludeFileExtension","importAs","eventSignatures","signature","listenPermissionContract","emitPermissionContract","find","id","schemasByNamespace","mapEventSigsToSchemasByNamepace","schemaTemplateItemBuilder","SchemaTemplateItemBuilder","buildTemplateItems"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { Schema, SchemaError, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\tNamedEventSignature,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tEventContractTemplateItem,\n\tEventSignatureTemplateItem,\n} from '@sprucelabs/spruce-templates'\nimport schemaDiskUtil from '../features/schema/utilities/schemaDisk.utility'\nimport SchemaTemplateItemBuilder from './SchemaTemplateItemBuilder'\n\nexport default class EventTemplateItemBuilder {\n\tpublic buildTemplateItems(options: {\n\t\tcontracts: EventContract[]\n\t\tlocalNamespace?: string\n\t\teventBuilderFile?: string\n\t}): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst { contracts, localNamespace, eventBuilderFile } = options\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] = []\n\n\t\tfor (const contract of contracts) {\n\t\t\tconst {\n\t\t\t\tschemaTemplateItems: schemaItems,\n\t\t\t\teventContractTemplateItems: contractItems,\n\t\t\t} = this.buildTemplateItemsForContract(\n\t\t\t\tcontract,\n\t\t\t\tlocalNamespace,\n\t\t\t\teventBuilderFile\n\t\t\t)\n\n\t\t\teventContractTemplateItems.push(...contractItems)\n\t\t\tschemaTemplateItems.push(...schemaItems)\n\t\t}\n\n\t\teventContractTemplateItems.sort((a, b) => {\n\t\t\tif (a.nameCamel > b.nameCamel) {\n\t\t\t\treturn 1\n\t\t\t} else if (a.nameCamel < b.nameCamel) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\treturn 0\n\t\t})\n\n\t\treturn { eventContractTemplateItems, schemaTemplateItems }\n\t}\n\n\tpublic buildEventTemplateItemForName(\n\t\tcontracts: EventContract[],\n\t\tfullyQualifiedEventName: string\n\t): {\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t} {\n\t\tfor (const contract of contracts) {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tif (namedSig.fullyQualifiedEventName === fullyQualifiedEventName) {\n\t\t\t\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\t\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\t\t\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\t\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\temitPayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.emitPayloadSchema,\n\t\t\t\t\t\tresponsePayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.responsePayloadSchema,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthrow new SchemaError({\n\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\tparameters: ['fullyQualifiedEventName'],\n\t\t\tfriendlyMessages: [\n\t\t\t\t`I could not find any events that match ${fullyQualifiedEventName}.`,\n\t\t\t],\n\t\t})\n\t}\n\n\tprivate buildTemplateItemsForContract(\n\t\tcontract: EventContract,\n\t\tlocalNamespace?: string,\n\t\teventBuilderFile?: string\n\t): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst namedSignatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst item: EventContractTemplateItem =\n\t\t\t\tthis.buildTemplateItemForEventSignature(\n\t\t\t\t\tnamedSig,\n\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\tnamedSig.eventNamespace === localNamespace,\n\t\t\t\t\teventBuilderFile\n\t\t\t\t)\n\n\t\t\teventContractTemplateItems.push(item)\n\t\t}\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t}\n\t}\n\n\tprivate buildTemplateItemForEventSignature(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaTemplateItems: SchemaTemplateItem[],\n\t\tisLocal: boolean,\n\t\teventBuilderFile?: string\n\t) {\n\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\tconst item: EventContractTemplateItem = {\n\t\t\tnameCamel: namesUtil.toCamel(namedSig.eventName),\n\t\t\tnamePascal: namesUtil.toPascal(namedSig.eventName),\n\t\t\tversion: namedSig.version ?? '***MISSING***',\n\t\t\tisLocal,\n\t\t\tnamespace: namesUtil.toKebab(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\tnamespaceCamel: namesUtil.toCamel(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\timports: [\n\t\t\t\tsignatureTemplateItem.emitPayloadSchema as SchemaTemplateItem,\n\t\t\t\tsignatureTemplateItem.responsePayloadSchema as SchemaTemplateItem,\n\t\t\t]\n\t\t\t\t.filter((i) => !!i)\n\t\t\t\t.map((item: SchemaTemplateItem) => ({\n\t\t\t\t\tpackage: schemaDiskUtil.resolvePath({\n\t\t\t\t\t\tdestination: '#spruce/schemas',\n\t\t\t\t\t\tschema: item.schema,\n\t\t\t\t\t\tshouldIncludeFileExtension: false,\n\t\t\t\t\t}),\n\t\t\t\t\timportAs: `${item.nameCamel}Schema`,\n\t\t\t\t})),\n\t\t\tnamespacePascal,\n\t\t\teventSignatures: {\n\t\t\t\t[namedSig.fullyQualifiedEventName]: signatureTemplateItem,\n\t\t\t},\n\t\t}\n\n\t\titem.imports.push({\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t})\n\n\t\tif (\n\t\t\tnamedSig.signature.listenPermissionContract ||\n\t\t\tnamedSig.signature.emitPermissionContract\n\t\t) {\n\t\t\titem.imports.push({\n\t\t\t\timportAs: '{ buildPermissionContract }',\n\t\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t\t})\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate buildEventSigTemplateItem(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaItems: SchemaTemplateItem[]\n\t) {\n\t\tconst { emitPayloadSchema, responsePayloadSchema, ...signature } =\n\t\t\tnamedSig.signature\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem = { ...signature }\n\n\t\tif (emitPayloadSchema) {\n\t\t\tsignatureTemplateItem.emitPayloadSchema = schemaItems.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.id === emitPayloadSchema.id &&\n\t\t\t\t\t(!emitPayloadSchema.namespace ||\n\t\t\t\t\t\ti.namespace === emitPayloadSchema.namespace)\n\t\t\t)\n\t\t}\n\n\t\tif (responsePayloadSchema) {\n\t\t\tsignatureTemplateItem.responsePayloadSchema = schemaItems.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.id === responsePayloadSchema.id &&\n\t\t\t\t\t(!responsePayloadSchema.namespace ||\n\t\t\t\t\t\ti.namespace === responsePayloadSchema.namespace)\n\t\t\t)\n\t\t}\n\t\treturn signatureTemplateItem\n\t}\n\n\tprivate mapEventSigsToSchemaTemplateItems(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> =\n\t\t\tthis.mapEventSigsToSchemasByNamepace(namedSignatures)\n\n\t\tconst schemaTemplateItemBuilder = new SchemaTemplateItemBuilder('Cli')\n\t\tconst schemaItems: SchemaTemplateItem[] =\n\t\t\tschemaTemplateItemBuilder.buildTemplateItems(\n\t\t\t\tschemasByNamespace,\n\t\t\t\t'#spruce/events'\n\t\t\t)\n\n\t\treturn schemaItems\n\t}\n\n\tprivate mapEventSigsToSchemasByNamepace(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> = {}\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\t\t\tconst { emitPayloadSchema, responsePayloadSchema } = namedSig.signature\n\n\t\t\tif (!schemasByNamespace[namespacePascal]) {\n\t\t\t\tschemasByNamespace[namespacePascal] = []\n\t\t\t}\n\n\t\t\tif (emitPayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...emitPayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (responsePayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...responsePayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn schemasByNamespace\n\t}\n\n\tprivate sigToNamespacePascal(namedSig: NamedEventSignature) {\n\t\treturn namesUtil.toPascal(namedSig.eventNamespace ?? MERCURY_API_NAMESPACE)\n\t}\n}\n"],"file":"EventTemplateItemBuilder.js"}
1
+ {"version":3,"file":"EventTemplateItemBuilder.js","names":["EventTemplateItemBuilder","options","contracts","localNamespace","eventBuilderFile","eventContractTemplateItems","schemaTemplateItems","contract","buildTemplateItemsForContract","schemaItems","contractItems","push","sort","a","b","nameCamel","fullyQualifiedEventName","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","mapEventSigsToSchemaTemplateItems","signatureTemplateItem","buildEventSigTemplateItem","emitPayloadSchemaTemplateItem","emitPayloadSchema","responsePayloadSchemaTemplateItem","responsePayloadSchema","SchemaError","code","parameters","friendlyMessages","item","buildTemplateItemForEventSignature","eventNamespace","isLocal","namespacePascal","sigToNamespacePascal","namesUtil","toCamel","eventName","namePascal","toPascal","version","namespace","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","imports","filter","i","map","schemaDiskUtil","resolvePath","destination","schema","shouldIncludeFileExtension","importAs","eventSignatures","signature","listenPermissionContract","emitPermissionContract","find","id","schemasByNamespace","mapEventSigsToSchemasByNamepace","schemaTemplateItemBuilder","SchemaTemplateItemBuilder","buildTemplateItems"],"sources":["../../src/templateItemBuilders/EventTemplateItemBuilder.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { Schema, SchemaError, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\tNamedEventSignature,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tEventContractTemplateItem,\n\tEventSignatureTemplateItem,\n} from '@sprucelabs/spruce-templates'\nimport schemaDiskUtil from '../features/schema/utilities/schemaDisk.utility'\nimport SchemaTemplateItemBuilder from './SchemaTemplateItemBuilder'\n\nexport default class EventTemplateItemBuilder {\n\tpublic buildTemplateItems(options: {\n\t\tcontracts: EventContract[]\n\t\tlocalNamespace?: string\n\t\teventBuilderFile?: string\n\t}): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst { contracts, localNamespace, eventBuilderFile } = options\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] = []\n\n\t\tfor (const contract of contracts) {\n\t\t\tconst {\n\t\t\t\tschemaTemplateItems: schemaItems,\n\t\t\t\teventContractTemplateItems: contractItems,\n\t\t\t} = this.buildTemplateItemsForContract(\n\t\t\t\tcontract,\n\t\t\t\tlocalNamespace,\n\t\t\t\teventBuilderFile\n\t\t\t)\n\n\t\t\teventContractTemplateItems.push(...contractItems)\n\t\t\tschemaTemplateItems.push(...schemaItems)\n\t\t}\n\n\t\teventContractTemplateItems.sort((a, b) => {\n\t\t\tif (a.nameCamel > b.nameCamel) {\n\t\t\t\treturn 1\n\t\t\t} else if (a.nameCamel < b.nameCamel) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\treturn 0\n\t\t})\n\n\t\treturn { eventContractTemplateItems, schemaTemplateItems }\n\t}\n\n\tpublic buildEventTemplateItemForName(\n\t\tcontracts: EventContract[],\n\t\tfullyQualifiedEventName: string\n\t): {\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t} {\n\t\tfor (const contract of contracts) {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tif (namedSig.fullyQualifiedEventName === fullyQualifiedEventName) {\n\t\t\t\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\t\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\t\t\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\t\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\temitPayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.emitPayloadSchema,\n\t\t\t\t\t\tresponsePayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.responsePayloadSchema,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthrow new SchemaError({\n\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\tparameters: ['fullyQualifiedEventName'],\n\t\t\tfriendlyMessages: [\n\t\t\t\t`I could not find any events that match ${fullyQualifiedEventName}.`,\n\t\t\t],\n\t\t})\n\t}\n\n\tprivate buildTemplateItemsForContract(\n\t\tcontract: EventContract,\n\t\tlocalNamespace?: string,\n\t\teventBuilderFile?: string\n\t): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst namedSignatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst item: EventContractTemplateItem =\n\t\t\t\tthis.buildTemplateItemForEventSignature(\n\t\t\t\t\tnamedSig,\n\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\tnamedSig.eventNamespace === localNamespace,\n\t\t\t\t\teventBuilderFile\n\t\t\t\t)\n\n\t\t\teventContractTemplateItems.push(item)\n\t\t}\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t}\n\t}\n\n\tprivate buildTemplateItemForEventSignature(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaTemplateItems: SchemaTemplateItem[],\n\t\tisLocal: boolean,\n\t\teventBuilderFile?: string\n\t) {\n\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\tconst item: EventContractTemplateItem = {\n\t\t\tnameCamel: namesUtil.toCamel(namedSig.eventName),\n\t\t\tnamePascal: namesUtil.toPascal(namedSig.eventName),\n\t\t\tversion: namedSig.version ?? '***MISSING***',\n\t\t\tisLocal,\n\t\t\tnamespace: namesUtil.toKebab(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\tnamespaceCamel: namesUtil.toCamel(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\timports: [\n\t\t\t\tsignatureTemplateItem.emitPayloadSchema as SchemaTemplateItem,\n\t\t\t\tsignatureTemplateItem.responsePayloadSchema as SchemaTemplateItem,\n\t\t\t]\n\t\t\t\t.filter((i) => !!i)\n\t\t\t\t.map((item: SchemaTemplateItem) => ({\n\t\t\t\t\tpackage: schemaDiskUtil.resolvePath({\n\t\t\t\t\t\tdestination: '#spruce/schemas',\n\t\t\t\t\t\tschema: item.schema,\n\t\t\t\t\t\tshouldIncludeFileExtension: false,\n\t\t\t\t\t}),\n\t\t\t\t\timportAs: `${item.nameCamel}Schema`,\n\t\t\t\t})),\n\t\t\tnamespacePascal,\n\t\t\teventSignatures: {\n\t\t\t\t[namedSig.fullyQualifiedEventName]: signatureTemplateItem,\n\t\t\t},\n\t\t}\n\n\t\titem.imports.push({\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t})\n\n\t\tif (\n\t\t\tnamedSig.signature.listenPermissionContract ||\n\t\t\tnamedSig.signature.emitPermissionContract\n\t\t) {\n\t\t\titem.imports.push({\n\t\t\t\timportAs: '{ buildPermissionContract }',\n\t\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t\t})\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate buildEventSigTemplateItem(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaItems: SchemaTemplateItem[]\n\t) {\n\t\tconst { emitPayloadSchema, responsePayloadSchema, ...signature } =\n\t\t\tnamedSig.signature\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem = { ...signature }\n\n\t\tif (emitPayloadSchema) {\n\t\t\tsignatureTemplateItem.emitPayloadSchema = schemaItems.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.id === emitPayloadSchema.id &&\n\t\t\t\t\t(!emitPayloadSchema.namespace ||\n\t\t\t\t\t\ti.namespace === emitPayloadSchema.namespace)\n\t\t\t)\n\t\t}\n\n\t\tif (responsePayloadSchema) {\n\t\t\tsignatureTemplateItem.responsePayloadSchema = schemaItems.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.id === responsePayloadSchema.id &&\n\t\t\t\t\t(!responsePayloadSchema.namespace ||\n\t\t\t\t\t\ti.namespace === responsePayloadSchema.namespace)\n\t\t\t)\n\t\t}\n\t\treturn signatureTemplateItem\n\t}\n\n\tprivate mapEventSigsToSchemaTemplateItems(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> =\n\t\t\tthis.mapEventSigsToSchemasByNamepace(namedSignatures)\n\n\t\tconst schemaTemplateItemBuilder = new SchemaTemplateItemBuilder('Cli')\n\t\tconst schemaItems: SchemaTemplateItem[] =\n\t\t\tschemaTemplateItemBuilder.buildTemplateItems(\n\t\t\t\tschemasByNamespace,\n\t\t\t\t'#spruce/events'\n\t\t\t)\n\n\t\treturn schemaItems\n\t}\n\n\tprivate mapEventSigsToSchemasByNamepace(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> = {}\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\t\t\tconst { emitPayloadSchema, responsePayloadSchema } = namedSig.signature\n\n\t\t\tif (!schemasByNamespace[namespacePascal]) {\n\t\t\t\tschemasByNamespace[namespacePascal] = []\n\t\t\t}\n\n\t\t\tif (emitPayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...emitPayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (responsePayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...responsePayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn schemasByNamespace\n\t}\n\n\tprivate sigToNamespacePascal(namedSig: NamedEventSignature) {\n\t\treturn namesUtil.toPascal(namedSig.eventNamespace ?? MERCURY_API_NAMESPACE)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/templateItemBuilders/FieldTemplateItemBuilder.ts"],"names":["FieldTemplateItemBuilder","fields","templateItems","generatedImportAsCount","field","registration","name","className","pkg","importAs","isLocal","item","namePascal","namesUtil","toPascal","nameCamel","toCamel","nameReadable","pascalType","type","camelType","description","valueTypeMapper","push"],"mappings":";;;;;;;;;;;;;AACA;;;;;;;;IAGqBA,wB;;;;;;;WACpB,+BAA6BC,MAA7B,EAAqD;AACpD,UAAMC,aAAkC,GAAG,EAA3C;AACA,UAAIC,sBAAsB,GAAG,CAA7B;;AAFoD,iDAIlCF,MAJkC;AAAA;;AAAA;AAIpD,4DAA0B;AAAA,cAAjBG,KAAiB;AACzB,cAAQC,YAAR,GAAyBD,KAAzB,CAAQC,YAAR;AACA,cAAMC,IAAI,GAAGD,YAAY,CAACE,SAA1B;AACA,cAAIC,GAAG,GAAGH,YAAY,WAAtB;AACA,cAAII,QAAQ,GAAGJ,YAAY,CAACI,QAA5B;;AAEA,cAAIL,KAAK,CAACM,OAAV,EAAmB;AAClBF,YAAAA,GAAG,+BAAwBH,YAAY,CAACE,SAArC,CAAH;AACAE,YAAAA,QAAQ,8BAAuBN,sBAAsB,EAA7C,CAAR;AACA;;AAED,cAAMQ,IAAuB,GAAG;AAC/BC,YAAAA,UAAU,EAAEC,4BAAUC,QAAV,CAAmBR,IAAnB,CADmB;AAE/BS,YAAAA,SAAS,EAAEF,4BAAUG,OAAV,CAAkBV,IAAlB,CAFoB;AAG/B,uBAASE,GAHsB;AAI/BD,YAAAA,SAAS,EAAEF,YAAY,CAACE,SAJO;AAK/BE,YAAAA,QAAQ,EAARA,QAL+B;AAM/BQ,YAAAA,YAAY,EAAEZ,YAAY,CAACE,SANI;AAO/BW,YAAAA,UAAU,EAAEL,4BAAUC,QAAV,CAAmBT,YAAY,CAACc,IAAhC,CAPmB;AAQ/BC,YAAAA,SAAS,EAAEP,4BAAUG,OAAV,CAAkBX,YAAY,CAACc,IAA/B,CARoB;AAS/BT,YAAAA,OAAO,EAAEN,KAAK,CAACM,OATgB;AAU/BW,YAAAA,WAAW,EAAEhB,YAAY,CAACgB,WAVK;AAW/BC,YAAAA,eAAe,EAAEjB,YAAY,CAACiB;AAXC,WAAhC;AAcAnB,UAAAA,sBAAsB;AAEtBD,UAAAA,aAAa,CAACqB,IAAd,CAAmBZ,IAAnB;AACA;AAhCmD;AAAA;AAAA;AAAA;AAAA;;AAkCpD,aAAOT,aAAP;AACA","sourcesContent":["import { FieldTemplateItem } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FetchedField } from '../features/schema/stores/SchemaStore'\n\nexport default class FieldTemplateItemBuilder {\n\tpublic generateTemplateItems(fields: FetchedField[]) {\n\t\tconst templateItems: FieldTemplateItem[] = []\n\t\tlet generatedImportAsCount = 0\n\n\t\tfor (let field of fields) {\n\t\t\tconst { registration } = field\n\t\t\tconst name = registration.className\n\t\t\tlet pkg = registration.package\n\t\t\tlet importAs = registration.importAs\n\n\t\t\tif (field.isLocal) {\n\t\t\t\tpkg = `#spruce/../fields/${registration.className}`\n\t\t\t\timportAs = `generated_import_${generatedImportAsCount++}`\n\t\t\t}\n\n\t\t\tconst item: FieldTemplateItem = {\n\t\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\t\tpackage: pkg,\n\t\t\t\tclassName: registration.className,\n\t\t\t\timportAs,\n\t\t\t\tnameReadable: registration.className,\n\t\t\t\tpascalType: namesUtil.toPascal(registration.type),\n\t\t\t\tcamelType: namesUtil.toCamel(registration.type),\n\t\t\t\tisLocal: field.isLocal,\n\t\t\t\tdescription: registration.description,\n\t\t\t\tvalueTypeMapper: registration.valueTypeMapper,\n\t\t\t}\n\n\t\t\tgeneratedImportAsCount++\n\n\t\t\ttemplateItems.push(item)\n\t\t}\n\n\t\treturn templateItems\n\t}\n}\n"],"file":"FieldTemplateItemBuilder.js"}
1
+ {"version":3,"file":"FieldTemplateItemBuilder.js","names":["FieldTemplateItemBuilder","fields","templateItems","generatedImportAsCount","field","registration","name","className","pkg","importAs","isLocal","item","namePascal","namesUtil","toPascal","nameCamel","toCamel","nameReadable","pascalType","type","camelType","description","valueTypeMapper","push"],"sources":["../../src/templateItemBuilders/FieldTemplateItemBuilder.ts"],"sourcesContent":["import { FieldTemplateItem } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FetchedField } from '../features/schema/stores/SchemaStore'\n\nexport default class FieldTemplateItemBuilder {\n\tpublic generateTemplateItems(fields: FetchedField[]) {\n\t\tconst templateItems: FieldTemplateItem[] = []\n\t\tlet generatedImportAsCount = 0\n\n\t\tfor (let field of fields) {\n\t\t\tconst { registration } = field\n\t\t\tconst name = registration.className\n\t\t\tlet pkg = registration.package\n\t\t\tlet importAs = registration.importAs\n\n\t\t\tif (field.isLocal) {\n\t\t\t\tpkg = `#spruce/../fields/${registration.className}`\n\t\t\t\timportAs = `generated_import_${generatedImportAsCount++}`\n\t\t\t}\n\n\t\t\tconst item: FieldTemplateItem = {\n\t\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\t\tpackage: pkg,\n\t\t\t\tclassName: registration.className,\n\t\t\t\timportAs,\n\t\t\t\tnameReadable: registration.className,\n\t\t\t\tpascalType: namesUtil.toPascal(registration.type),\n\t\t\t\tcamelType: namesUtil.toCamel(registration.type),\n\t\t\t\tisLocal: field.isLocal,\n\t\t\t\tdescription: registration.description,\n\t\t\t\tvalueTypeMapper: registration.valueTypeMapper,\n\t\t\t}\n\n\t\t\tgeneratedImportAsCount++\n\n\t\t\ttemplateItems.push(item)\n\t\t}\n\n\t\treturn templateItems\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AACA;;;;;;;;IAGqBA,wB;;;;;;;WACpB,+BAA6BC,MAA7B,EAAqD;MACpD,IAAMC,aAAkC,GAAG,EAA3C;MACA,IAAIC,sBAAsB,GAAG,CAA7B;;MAFoD,2CAIlCF,MAJkC;MAAA;;MAAA;QAIpD,oDAA0B;UAAA,IAAjBG,KAAiB;UACzB,IAAQC,YAAR,GAAyBD,KAAzB,CAAQC,YAAR;UACA,IAAMC,IAAI,GAAGD,YAAY,CAACE,SAA1B;UACA,IAAIC,GAAG,GAAGH,YAAY,WAAtB;UACA,IAAII,QAAQ,GAAGJ,YAAY,CAACI,QAA5B;;UAEA,IAAIL,KAAK,CAACM,OAAV,EAAmB;YAClBF,GAAG,+BAAwBH,YAAY,CAACE,SAArC,CAAH;YACAE,QAAQ,8BAAuBN,sBAAsB,EAA7C,CAAR;UACA;;UAED,IAAMQ,IAAuB,GAAG;YAC/BC,UAAU,EAAEC,4BAAUC,QAAV,CAAmBR,IAAnB,CADmB;YAE/BS,SAAS,EAAEF,4BAAUG,OAAV,CAAkBV,IAAlB,CAFoB;YAG/B,WAASE,GAHsB;YAI/BD,SAAS,EAAEF,YAAY,CAACE,SAJO;YAK/BE,QAAQ,EAARA,QAL+B;YAM/BQ,YAAY,EAAEZ,YAAY,CAACE,SANI;YAO/BW,UAAU,EAAEL,4BAAUC,QAAV,CAAmBT,YAAY,CAACc,IAAhC,CAPmB;YAQ/BC,SAAS,EAAEP,4BAAUG,OAAV,CAAkBX,YAAY,CAACc,IAA/B,CARoB;YAS/BT,OAAO,EAAEN,KAAK,CAACM,OATgB;YAU/BW,WAAW,EAAEhB,YAAY,CAACgB,WAVK;YAW/BC,eAAe,EAAEjB,YAAY,CAACiB;UAXC,CAAhC;UAcAnB,sBAAsB;UAEtBD,aAAa,CAACqB,IAAd,CAAmBZ,IAAnB;QACA;MAhCmD;QAAA;MAAA;QAAA;MAAA;;MAkCpD,OAAOT,aAAP;IACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/templateItemBuilders/SchemaTemplateItemBuilder.ts"],"names":["SchemaTemplateItemBuilder","localNamespace","schemasByNamespace","destinationDir","schemas","namespaces","Object","keys","namespace","push","map","s","flattenSchemas","flattened","values","schemasByKey","sorted","sort","a","b","doesADependOnB","reverse","schemaTemplateItems","buildTemplateItem","dependencies","idWithVersion","schema","find","dep","forEach","def","flattenSchema","isNested","localSchema","namedFields","pluckFields","field","name","type","schemasOrIdsWithVersion","SchemaField","mapFieldDefinitionToSchemasOrIdsWithVersion","originalOptions","options","schemaId","schemaIds","schemaOrId","related","version","moduleToImportFromWhenRemote","relatedIdWithVersion","length","SpruceError","code","id","schemaNamespace","fieldName","fieldOptions","key","schemaUtil","generateCacheKey","fields","dynamicFieldSignature","dynamicField","importFrom","getImportFromForSchema","item","generateNamesForSchema","toLowerCase","importsWhenLocal","imports","importsWhenRemote","match","CORE_NAMESPACE","undefined"],"mappings":"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","sourcesContent":["import {\n\tSchema,\n\tSchemaTemplateItem,\n\tSchemaField,\n\tSchemaIdWithVersion,\n\tnormalizeSchemaToIdWithVersion,\n\tisIdWithVersion,\n} from '@sprucelabs/schema'\nimport { CORE_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport cloneDeep from 'lodash/cloneDeep'\nimport isEqual from 'lodash/isEqual'\nimport merge from 'lodash/merge'\nimport SpruceError from '../errors/SpruceError'\nimport { SchemasByNamespace } from '../features/schema/stores/SchemaStore'\nimport schemaUtil from '../features/schema/utilities/schema.utility'\n\ninterface SchemaWithDependencies {\n\tschema: Schema\n\tdependencies: SchemaIdWithVersion[]\n\tisNested: boolean\n}\n\nexport default class SchemaTemplateItemBuilder {\n\tprivate schemasByKey: Record<string, SchemaWithDependencies> = {}\n\tprivate localNamespace: string\n\n\tpublic constructor(localNamespace: string) {\n\t\tthis.localNamespace = localNamespace\n\t}\n\n\tpublic buildTemplateItems(\n\t\tschemasByNamespace: SchemasByNamespace,\n\t\tdestinationDir = '#spruce/schemas'\n\t) {\n\t\tconst schemas: Schema[] = []\n\t\tconst namespaces = Object.keys(schemasByNamespace)\n\n\t\tfor (const namespace of namespaces) {\n\t\t\tschemas.push(\n\t\t\t\t...schemasByNamespace[namespace].map((s) => ({ namespace, ...s }))\n\t\t\t)\n\t\t}\n\n\t\tthis.flattenSchemas(schemas)\n\n\t\tconst flattened = Object.values(this.schemasByKey)\n\t\tconst sorted = flattened\n\t\t\t.sort((a, b) => {\n\t\t\t\tif (this.doesADependOnB(a, b)) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (this.doesADependOnB(b, a)) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t\t})\n\t\t\t.reverse()\n\n\t\tconst schemaTemplateItems = sorted.map((s) =>\n\t\t\tthis.buildTemplateItem({\n\t\t\t\t...s,\n\t\t\t\tdestinationDir,\n\t\t\t})\n\t\t)\n\n\t\treturn schemaTemplateItems\n\t}\n\n\tprivate doesADependOnB(a: SchemaWithDependencies, b: SchemaWithDependencies) {\n\t\tconst { dependencies } = a\n\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(b.schema)\n\n\t\tif (dependencies.find((dep) => isEqual(dep, idWithVersion))) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate flattenSchemas(schemas: Schema[]) {\n\t\tschemas.forEach((def) => {\n\t\t\tthis.flattenSchema(def)\n\t\t})\n\t}\n\n\tprivate flattenSchema(schema: Schema, isNested = false) {\n\t\tconst localSchema = cloneDeep(schema)\n\n\t\tconst namedFields = this.pluckFields(localSchema)\n\t\tconst dependencies: SchemaIdWithVersion[] = []\n\n\t\tnamedFields.forEach(({ field, name }) => {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tconst schemasOrIdsWithVersion =\n\t\t\t\t\tSchemaField.mapFieldDefinitionToSchemasOrIdsWithVersion(field)\n\n\t\t\t\tconst { ...originalOptions } = field.options\n\t\t\t\tdelete field.options.schema\n\t\t\t\tdelete field.options.schemaId\n\t\t\t\tdelete field.options.schemaIds\n\t\t\t\tdelete field.options.schemas\n\t\t\t\tfield.options.schemaIds = []\n\n\t\t\t\tschemasOrIdsWithVersion.forEach((schemaOrId) => {\n\t\t\t\t\tconst related = { ...schemaOrId }\n\n\t\t\t\t\tif (localSchema.version && !related.version) {\n\t\t\t\t\t\trelated.version = localSchema.version\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!related.namespace) {\n\t\t\t\t\t\trelated.namespace = schema.namespace\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t!related.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t!isIdWithVersion(related)\n\t\t\t\t\t) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\trelated.moduleToImportFromWhenRemote =\n\t\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relatedIdWithVersion = normalizeSchemaToIdWithVersion(related)\n\n\t\t\t\t\tfield.options.schemaIds?.push(relatedIdWithVersion)\n\t\t\t\t\tdependencies.push(relatedIdWithVersion)\n\n\t\t\t\t\tthis.flattenSchema(related, true)\n\t\t\t\t})\n\n\t\t\t\tif (field.options.schemaIds.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'SCHEMA_TEMPLATE_ITEM_BUILDING_FAILED',\n\t\t\t\t\t\tschemaId: schema.id,\n\t\t\t\t\t\tschemaNamespace: schema.namespace as string,\n\t\t\t\t\t\tfieldName: name,\n\t\t\t\t\t\tfieldOptions: originalOptions,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst key = schemaUtil.generateCacheKey(localSchema)\n\t\tthis.schemasByKey[key] = merge(this.schemasByKey[key] ?? {}, {\n\t\t\tschema: localSchema,\n\t\t\tdependencies,\n\t\t\tisNested: this.schemasByKey[key]?.isNested === false ? false : isNested,\n\t\t})\n\t}\n\n\tprivate pluckFields(localSchema: Schema) {\n\t\tconst fields = localSchema.dynamicFieldSignature\n\t\t\t? { dynamicField: localSchema.dynamicFieldSignature }\n\t\t\t: localSchema.fields ?? {}\n\n\t\tconst namedFields = Object.keys(fields).map((name) => ({\n\t\t\tname,\n\t\t\tfield: fields[name],\n\t\t}))\n\t\treturn namedFields\n\t}\n\n\tprivate buildTemplateItem(options: {\n\t\tschema: Schema\n\t\tisNested: boolean\n\t\tdestinationDir: string\n\t}): SchemaTemplateItem {\n\t\tconst { schema, isNested, destinationDir } = options\n\t\tconst namespace = schema.namespace ?? this.localNamespace\n\n\t\tconst importFrom = this.getImportFromForSchema(schema)\n\t\tconst item: SchemaTemplateItem = {\n\t\t\tid: schema.id,\n\t\t\tnamespace,\n\t\t\tschema,\n\t\t\t...schemaUtil.generateNamesForSchema(schema),\n\t\t\tisNested,\n\t\t\tdestinationDir,\n\t\t}\n\n\t\tif (importFrom) {\n\t\t\titem.importFrom = importFrom\n\t\t}\n\n\t\tif (\n\t\t\tnamespace.toLowerCase() === this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenLocal\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenLocal]\n\t\t} else if (\n\t\t\tnamespace.toLowerCase() !== this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenRemote\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenRemote]\n\t\t}\n\n\t\tconst namedFields = this.pluckFields(schema)\n\n\t\tfor (const { field } of namedFields) {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tfield.options.schemaIds?.forEach((idWithVersion) => {\n\t\t\t\t\tconst key = schemaUtil.generateCacheKey(idWithVersion)\n\t\t\t\t\tconst match = this.schemasByKey[key]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tmatch.schema.importsWhenRemote &&\n\t\t\t\t\t\tmatch.schema.namespace &&\n\t\t\t\t\t\tmatch.schema.namespace.toLowerCase() !==\n\t\t\t\t\t\t\tthis.localNamespace.toLowerCase()\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (!item.imports) {\n\t\t\t\t\t\t\titem.imports = []\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.imports.push(...match.schema.importsWhenRemote)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate getImportFromForSchema(schema: Schema): string | undefined {\n\t\tif (\n\t\t\tschema.moduleToImportFromWhenRemote &&\n\t\t\tschema.namespace !== this.localNamespace\n\t\t) {\n\t\t\treturn schema.moduleToImportFromWhenRemote\n\t\t}\n\t\tswitch (schema.namespace) {\n\t\t\tcase CORE_NAMESPACE:\n\t\t\t\tif (this.localNamespace !== CORE_NAMESPACE) {\n\t\t\t\t\treturn '@sprucelabs/spruce-core-schemas'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn undefined\n\t}\n}\n"],"file":"SchemaTemplateItemBuilder.js"}
1
+ {"version":3,"file":"SchemaTemplateItemBuilder.js","names":["SchemaTemplateItemBuilder","localNamespace","schemasByNamespace","destinationDir","schemas","namespaces","Object","keys","namespace","push","map","s","flattenSchemas","flattened","values","schemasByKey","sorted","sort","a","b","doesADependOnB","reverse","schemaTemplateItems","buildTemplateItem","dependencies","idWithVersion","schema","find","dep","forEach","def","flattenSchema","isNested","localSchema","namedFields","pluckFields","field","name","type","schemasOrIdsWithVersion","SchemaField","mapFieldDefinitionToSchemasOrIdsWithVersion","originalOptions","options","schemaId","schemaIds","schemaOrId","related","version","moduleToImportFromWhenRemote","relatedIdWithVersion","length","SpruceError","code","id","schemaNamespace","fieldName","fieldOptions","key","schemaUtil","generateCacheKey","fields","dynamicFieldSignature","dynamicField","importFrom","getImportFromForSchema","item","generateNamesForSchema","toLowerCase","importsWhenLocal","imports","importsWhenRemote","match","CORE_NAMESPACE","undefined"],"sources":["../../src/templateItemBuilders/SchemaTemplateItemBuilder.ts"],"sourcesContent":["import {\n\tSchema,\n\tSchemaTemplateItem,\n\tSchemaField,\n\tSchemaIdWithVersion,\n\tnormalizeSchemaToIdWithVersion,\n\tisIdWithVersion,\n} from '@sprucelabs/schema'\nimport { CORE_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport cloneDeep from 'lodash/cloneDeep'\nimport isEqual from 'lodash/isEqual'\nimport merge from 'lodash/merge'\nimport SpruceError from '../errors/SpruceError'\nimport { SchemasByNamespace } from '../features/schema/stores/SchemaStore'\nimport schemaUtil from '../features/schema/utilities/schema.utility'\n\ninterface SchemaWithDependencies {\n\tschema: Schema\n\tdependencies: SchemaIdWithVersion[]\n\tisNested: boolean\n}\n\nexport default class SchemaTemplateItemBuilder {\n\tprivate schemasByKey: Record<string, SchemaWithDependencies> = {}\n\tprivate localNamespace: string\n\n\tpublic constructor(localNamespace: string) {\n\t\tthis.localNamespace = localNamespace\n\t}\n\n\tpublic buildTemplateItems(\n\t\tschemasByNamespace: SchemasByNamespace,\n\t\tdestinationDir = '#spruce/schemas'\n\t) {\n\t\tconst schemas: Schema[] = []\n\t\tconst namespaces = Object.keys(schemasByNamespace)\n\n\t\tfor (const namespace of namespaces) {\n\t\t\tschemas.push(\n\t\t\t\t...schemasByNamespace[namespace].map((s) => ({ namespace, ...s }))\n\t\t\t)\n\t\t}\n\n\t\tthis.flattenSchemas(schemas)\n\n\t\tconst flattened = Object.values(this.schemasByKey)\n\t\tconst sorted = flattened\n\t\t\t.sort((a, b) => {\n\t\t\t\tif (this.doesADependOnB(a, b)) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (this.doesADependOnB(b, a)) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t\t})\n\t\t\t.reverse()\n\n\t\tconst schemaTemplateItems = sorted.map((s) =>\n\t\t\tthis.buildTemplateItem({\n\t\t\t\t...s,\n\t\t\t\tdestinationDir,\n\t\t\t})\n\t\t)\n\n\t\treturn schemaTemplateItems\n\t}\n\n\tprivate doesADependOnB(a: SchemaWithDependencies, b: SchemaWithDependencies) {\n\t\tconst { dependencies } = a\n\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(b.schema)\n\n\t\tif (dependencies.find((dep) => isEqual(dep, idWithVersion))) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate flattenSchemas(schemas: Schema[]) {\n\t\tschemas.forEach((def) => {\n\t\t\tthis.flattenSchema(def)\n\t\t})\n\t}\n\n\tprivate flattenSchema(schema: Schema, isNested = false) {\n\t\tconst localSchema = cloneDeep(schema)\n\n\t\tconst namedFields = this.pluckFields(localSchema)\n\t\tconst dependencies: SchemaIdWithVersion[] = []\n\n\t\tnamedFields.forEach(({ field, name }) => {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tconst schemasOrIdsWithVersion =\n\t\t\t\t\tSchemaField.mapFieldDefinitionToSchemasOrIdsWithVersion(field)\n\n\t\t\t\tconst { ...originalOptions } = field.options\n\t\t\t\tdelete field.options.schema\n\t\t\t\tdelete field.options.schemaId\n\t\t\t\tdelete field.options.schemaIds\n\t\t\t\tdelete field.options.schemas\n\t\t\t\tfield.options.schemaIds = []\n\n\t\t\t\tschemasOrIdsWithVersion.forEach((schemaOrId) => {\n\t\t\t\t\tconst related = { ...schemaOrId }\n\n\t\t\t\t\tif (localSchema.version && !related.version) {\n\t\t\t\t\t\trelated.version = localSchema.version\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!related.namespace) {\n\t\t\t\t\t\trelated.namespace = schema.namespace\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t!related.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t!isIdWithVersion(related)\n\t\t\t\t\t) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\trelated.moduleToImportFromWhenRemote =\n\t\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relatedIdWithVersion = normalizeSchemaToIdWithVersion(related)\n\n\t\t\t\t\tfield.options.schemaIds?.push(relatedIdWithVersion)\n\t\t\t\t\tdependencies.push(relatedIdWithVersion)\n\n\t\t\t\t\tthis.flattenSchema(related, true)\n\t\t\t\t})\n\n\t\t\t\tif (field.options.schemaIds.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'SCHEMA_TEMPLATE_ITEM_BUILDING_FAILED',\n\t\t\t\t\t\tschemaId: schema.id,\n\t\t\t\t\t\tschemaNamespace: schema.namespace as string,\n\t\t\t\t\t\tfieldName: name,\n\t\t\t\t\t\tfieldOptions: originalOptions,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst key = schemaUtil.generateCacheKey(localSchema)\n\t\tthis.schemasByKey[key] = merge(this.schemasByKey[key] ?? {}, {\n\t\t\tschema: localSchema,\n\t\t\tdependencies,\n\t\t\tisNested: this.schemasByKey[key]?.isNested === false ? false : isNested,\n\t\t})\n\t}\n\n\tprivate pluckFields(localSchema: Schema) {\n\t\tconst fields = localSchema.dynamicFieldSignature\n\t\t\t? { dynamicField: localSchema.dynamicFieldSignature }\n\t\t\t: localSchema.fields ?? {}\n\n\t\tconst namedFields = Object.keys(fields).map((name) => ({\n\t\t\tname,\n\t\t\tfield: fields[name],\n\t\t}))\n\t\treturn namedFields\n\t}\n\n\tprivate buildTemplateItem(options: {\n\t\tschema: Schema\n\t\tisNested: boolean\n\t\tdestinationDir: string\n\t}): SchemaTemplateItem {\n\t\tconst { schema, isNested, destinationDir } = options\n\t\tconst namespace = schema.namespace ?? this.localNamespace\n\n\t\tconst importFrom = this.getImportFromForSchema(schema)\n\t\tconst item: SchemaTemplateItem = {\n\t\t\tid: schema.id,\n\t\t\tnamespace,\n\t\t\tschema,\n\t\t\t...schemaUtil.generateNamesForSchema(schema),\n\t\t\tisNested,\n\t\t\tdestinationDir,\n\t\t}\n\n\t\tif (importFrom) {\n\t\t\titem.importFrom = importFrom\n\t\t}\n\n\t\tif (\n\t\t\tnamespace.toLowerCase() === this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenLocal\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenLocal]\n\t\t} else if (\n\t\t\tnamespace.toLowerCase() !== this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenRemote\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenRemote]\n\t\t}\n\n\t\tconst namedFields = this.pluckFields(schema)\n\n\t\tfor (const { field } of namedFields) {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tfield.options.schemaIds?.forEach((idWithVersion) => {\n\t\t\t\t\tconst key = schemaUtil.generateCacheKey(idWithVersion)\n\t\t\t\t\tconst match = this.schemasByKey[key]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tmatch.schema.importsWhenRemote &&\n\t\t\t\t\t\tmatch.schema.namespace &&\n\t\t\t\t\t\tmatch.schema.namespace.toLowerCase() !==\n\t\t\t\t\t\t\tthis.localNamespace.toLowerCase()\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (!item.imports) {\n\t\t\t\t\t\t\titem.imports = []\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.imports.push(...match.schema.importsWhenRemote)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate getImportFromForSchema(schema: Schema): string | undefined {\n\t\tif (\n\t\t\tschema.moduleToImportFromWhenRemote &&\n\t\t\tschema.namespace !== this.localNamespace\n\t\t) {\n\t\t\treturn schema.moduleToImportFromWhenRemote\n\t\t}\n\t\tswitch (schema.namespace) {\n\t\t\tcase CORE_NAMESPACE:\n\t\t\t\tif (this.localNamespace !== CORE_NAMESPACE) {\n\t\t\t\t\treturn '@sprucelabs/spruce-core-schemas'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn undefined\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/AbstractCliTest.ts"],"names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","emitter","undefined","featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","getEmitter","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","getFeatureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tStoreFactoryMethodOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis.emitter = undefined\n\t\tthis.featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis.emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static getEmitter() {\n\t\tif (!this.emitter) {\n\t\t\tthis.emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this.emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\tconst emitter = options?.emitter ?? this.getEmitter()\n\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.getFeatureInstaller({ emitter }),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static getFeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tif (!this.featureInstaller) {\n\t\t\tconst serviceFactory = this.ServiceFactory()\n\t\t\tconst storeFactory = this.StoreFactory(options)\n\t\t\tconst emitter = this.getEmitter()\n\t\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\t\tthis.featureInstaller = FeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui: this.ui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t\t...options,\n\t\t\t})\n\t\t}\n\n\t\treturn this.featureInstaller\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.getEmitter(),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: StoreFactoryMethodOptions\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tconst isInstalled = await featureInstaller.isInstalled(code)\n\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.getFeatureInstaller()\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"file":"AbstractCliTest.js"}
1
+ {"version":3,"file":"AbstractCliTest.js","names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","emitter","undefined","featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","getEmitter","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","getFeatureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"sources":["../../src/tests/AbstractCliTest.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tStoreFactoryMethodOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis.emitter = undefined\n\t\tthis.featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis.emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static getEmitter() {\n\t\tif (!this.emitter) {\n\t\t\tthis.emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this.emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\tconst emitter = options?.emitter ?? this.getEmitter()\n\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.getFeatureInstaller({ emitter }),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static getFeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tif (!this.featureInstaller) {\n\t\t\tconst serviceFactory = this.ServiceFactory()\n\t\t\tconst storeFactory = this.StoreFactory(options)\n\t\t\tconst emitter = this.getEmitter()\n\t\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\t\tthis.featureInstaller = FeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui: this.ui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t\t...options,\n\t\t\t})\n\t\t}\n\n\t\treturn this.featureInstaller\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.getEmitter(),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: StoreFactoryMethodOptions\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tconst isInstalled = await featureInstaller.isInstalled(code)\n\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.getFeatureInstaller()\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/AbstractErrorTest.ts"],"names":["AbstractErrorTest","resolveHashSprucePath","cacheKey","fixture","FeatureFixture","installFeatures","code","options","name","description","cli","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAE8BA,iB;;;;;;;;;;;;SAC7B,eAAsC;AACrC,aAAO,KAAKC,qBAAL,CAA2B,QAA3B,EAAqC,iBAArC,CAAP;AACA;;;;+GAED,iBAA2CC,QAA3C;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,OADP,GACiB,KAAKC,cAAL,EADjB;AAAA;AAAA,uBAEmBD,OAAO,CAACE,eAAR,CACjB,CACC;AACCC,kBAAAA,IAAI,EAAE,OADP;AAECC,kBAAAA,OAAO,EAAE;AACRC,oBAAAA,IAAI,EAAE,gBADE;AAERC,oBAAAA,WAAW,EAAE;AAFL;AAFV,iBADD,EAQC;AACCH,kBAAAA,IAAI,EAAE;AADP,iBARD,CADiB,EAajBJ,QAbiB,CAFnB;;AAAA;AAEOQ,gBAAAA,GAFP;AAAA,iDAkBQA,GAlBR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EALuDC,4B","sourcesContent":["import AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractErrorTest extends AbstractCliTest {\n\tprotected static get errorTypesFile() {\n\t\treturn this.resolveHashSprucePath('errors', 'errors.types.ts')\n\t}\n\n\tprotected static async installErrorFeature(cacheKey?: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing errors',\n\t\t\t\t\t\tdescription: 'this is also a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\n\t\treturn cli\n\t}\n}\n"],"file":"AbstractErrorTest.js"}
1
+ {"version":3,"file":"AbstractErrorTest.js","names":["AbstractErrorTest","resolveHashSprucePath","cacheKey","fixture","FeatureFixture","installFeatures","code","options","name","description","cli","AbstractCliTest"],"sources":["../../src/tests/AbstractErrorTest.ts"],"sourcesContent":["import AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractErrorTest extends AbstractCliTest {\n\tprotected static get errorTypesFile() {\n\t\treturn this.resolveHashSprucePath('errors', 'errors.types.ts')\n\t}\n\n\tprotected static async installErrorFeature(cacheKey?: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing errors',\n\t\t\t\t\t\tdescription: 'this is also a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\n\t\treturn cli\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAE8BA,iB;;;;;;;;;;;;SAC7B,eAAsC;MACrC,OAAO,KAAKC,qBAAL,CAA2B,QAA3B,EAAqC,iBAArC,CAAP;IACA;;;;+GAED,iBAA2CC,QAA3C;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,OADP,GACiB,KAAKC,cAAL,EADjB;gBAAA;gBAAA,OAEmBD,OAAO,CAACE,eAAR,CACjB,CACC;kBACCC,IAAI,EAAE,OADP;kBAECC,OAAO,EAAE;oBACRC,IAAI,EAAE,gBADE;oBAERC,WAAW,EAAE;kBAFL;gBAFV,CADD,EAQC;kBACCH,IAAI,EAAE;gBADP,CARD,CADiB,EAajBJ,QAbiB,CAFnB;;cAAA;gBAEOQ,GAFP;gBAAA,iCAkBQA,GAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALuDC,4B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/AbstractEventTest.ts"],"names":["AbstractEventTest","cacheKey","fixture","FeatureFixture","installFeatures","code","options","name","description","cli","registerCurrentSkillAndInstallToOrg","results","skillFixture","orgFixture","org","seedDemoSkill","skill2","installSkillAtOrganization","id","cliPromise","installEventFeature","getSkillFixture","getOrganizationFixture","seedDemoOrg","registerCurrentSkill","skill","currentSkill","eventName","source","resolveTestPath","dest","resolvePath","version","versionUtil","latestVersionAtPath","dirValue","diskUtil","deleteDir","copyDir","AbstractCliTest"],"mappings":"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","sourcesContent":["import { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractEventTest extends AbstractCliTest {\n\tprotected static async installEventFeature(cacheKey?: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'event',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async seedDummySkillRegisterCurrentSkillAndInstallToOrg(\n\t\tcacheKey = 'events'\n\t) {\n\t\tconst results = await this.registerCurrentSkillAndInstallToOrg(cacheKey)\n\n\t\tconst { skillFixture, orgFixture, org } = results\n\n\t\tconst skill2 = await skillFixture.seedDemoSkill({\n\t\t\tname: 'my second skill',\n\t\t})\n\n\t\tawait orgFixture.installSkillAtOrganization(skill2.id, org.id)\n\n\t\treturn { ...results, skill2 }\n\t}\n\n\tprotected static async registerCurrentSkillAndInstallToOrg(\n\t\tcacheKey = 'events'\n\t) {\n\t\tconst cliPromise = this.installEventFeature(cacheKey)\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst orgFixture = this.getOrganizationFixture()\n\n\t\tconst org = await orgFixture.seedDemoOrg({ name: 'my org' })\n\t\tconst cli = await cliPromise\n\n\t\tconst skill = await skillFixture.registerCurrentSkill({\n\t\t\tname: 'current skill',\n\t\t})\n\n\t\tawait orgFixture.installSkillAtOrganization(skill.id, org.id)\n\n\t\treturn { skillFixture, currentSkill: skill, cli, org, orgFixture }\n\t}\n\n\tprotected static async copyEventBuildersAndPermissions(eventName: string) {\n\t\tconst source = this.resolveTestPath('event_with_emit_and_response_payloads')\n\t\tlet dest = this.resolvePath('src', 'events', eventName)\n\t\tconst version = versionUtil.latestVersionAtPath(dest)\n\t\tdest = this.resolvePath(dest, version.dirValue)\n\t\tdiskUtil.deleteDir(dest)\n\n\t\tawait diskUtil.copyDir(source, dest)\n\t}\n}\n"],"file":"AbstractEventTest.js"}
1
+ {"version":3,"file":"AbstractEventTest.js","names":["AbstractEventTest","cacheKey","fixture","FeatureFixture","installFeatures","code","options","name","description","cli","registerCurrentSkillAndInstallToOrg","results","skillFixture","orgFixture","org","seedDemoSkill","skill2","installSkillAtOrganization","id","cliPromise","installEventFeature","getSkillFixture","getOrganizationFixture","seedDemoOrg","registerCurrentSkill","skill","currentSkill","eventName","source","resolveTestPath","dest","resolvePath","version","versionUtil","latestVersionAtPath","dirValue","diskUtil","deleteDir","copyDir","AbstractCliTest"],"sources":["../../src/tests/AbstractEventTest.ts"],"sourcesContent":["import { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractEventTest extends AbstractCliTest {\n\tprotected static async installEventFeature(cacheKey?: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'event',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async seedDummySkillRegisterCurrentSkillAndInstallToOrg(\n\t\tcacheKey = 'events'\n\t) {\n\t\tconst results = await this.registerCurrentSkillAndInstallToOrg(cacheKey)\n\n\t\tconst { skillFixture, orgFixture, org } = results\n\n\t\tconst skill2 = await skillFixture.seedDemoSkill({\n\t\t\tname: 'my second skill',\n\t\t})\n\n\t\tawait orgFixture.installSkillAtOrganization(skill2.id, org.id)\n\n\t\treturn { ...results, skill2 }\n\t}\n\n\tprotected static async registerCurrentSkillAndInstallToOrg(\n\t\tcacheKey = 'events'\n\t) {\n\t\tconst cliPromise = this.installEventFeature(cacheKey)\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst orgFixture = this.getOrganizationFixture()\n\n\t\tconst org = await orgFixture.seedDemoOrg({ name: 'my org' })\n\t\tconst cli = await cliPromise\n\n\t\tconst skill = await skillFixture.registerCurrentSkill({\n\t\t\tname: 'current skill',\n\t\t})\n\n\t\tawait orgFixture.installSkillAtOrganization(skill.id, org.id)\n\n\t\treturn { skillFixture, currentSkill: skill, cli, org, orgFixture }\n\t}\n\n\tprotected static async copyEventBuildersAndPermissions(eventName: string) {\n\t\tconst source = this.resolveTestPath('event_with_emit_and_response_payloads')\n\t\tlet dest = this.resolvePath('src', 'events', eventName)\n\t\tconst version = versionUtil.latestVersionAtPath(dest)\n\t\tdest = this.resolvePath(dest, version.dirValue)\n\t\tdiskUtil.deleteDir(dest)\n\n\t\tawait diskUtil.copyDir(source, dest)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/AbstractSchemaTest.ts"],"names":["AbstractSchemaTest","resolveHashSprucePath","cacheKey","syncOptions","installSchemaFeature","cli","Action","execute","schemas","expected","map","schema","id","name","version","CORE_SCHEMA_VERSION","constValue","namespace","description","expectedJSon","JSON","stringify","cleanedExpected","parse","sortSchemas","sort","a","b","bootOptions","fixture","FeatureFixture","installFeatures","code","options","graphicsInterface","ui","expectedHealth","skill","status","expectedInstalledSkills","Cli","linkLocalPackages","checkHealth","health","assert","isEqualDeep","packageContents","diskUtil","readFile","resolvePath","doesInclude","installer","getFeatureInstaller","isInstalled","isTrue","AbstractCliTest"],"mappings":"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","sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n\tHealthCheckResults,\n\tSchemaHealthCheckItem,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { CliBootOptions } from '../cli'\nimport { FeatureCode } from '../features/features.types'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSchemaTest extends AbstractCliTest {\n\tprotected static get schemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t}\n\n\tprotected static get coreSchemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'core.schemas.types.ts')\n\t}\n\n\tprotected static async syncSchemas(cacheKey?: string, syncOptions = {}) {\n\t\tconst cli = await this.installSchemaFeature(cacheKey)\n\n\t\tawait this.Action('schema', 'sync').execute(syncOptions)\n\n\t\treturn cli\n\t}\n\n\tprotected static generateExpectedHealthSchemas(schemas: Schema[]) {\n\t\tconst expected = schemas.map((schema) => ({\n\t\t\t// @ts-ignore\n\t\t\tid: schema.id,\n\t\t\t// @ts-ignore\n\t\t\tname: schema.name,\n\t\t\tversion: schema.version ?? CORE_SCHEMA_VERSION.constValue,\n\t\t\tnamespace: schema.namespace,\n\t\t\t// @ts-ignore\n\t\t\tdescription: schema.description,\n\t\t}))\n\n\t\tconst expectedJSon = JSON.stringify(expected)\n\t\tconst cleanedExpected = JSON.parse(expectedJSon)\n\n\t\treturn this.sortSchemas(cleanedExpected) as SchemaHealthCheckItem['schemas']\n\t}\n\n\tprotected static sortSchemas(schemas: Schema[]) {\n\t\treturn schemas.sort((a, b) => (a.id > b.id ? -1 : 1))\n\t}\n\n\tprotected static async installSchemaFeature(\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing',\n\t\t\t\t\t\tdescription: 'this is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'schema',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey,\n\t\t\t{ ...(bootOptions || {}), graphicsInterface: this.ui }\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async assertHealthySkillNamed(\n\t\tname: string,\n\t\texpectedHealth: HealthCheckResults = { skill: { status: 'passed' } },\n\t\texpectedInstalledSkills: FeatureCode[] = ['skill']\n\t) {\n\t\tconst cli = await this.Cli()\n\t\tawait this.linkLocalPackages()\n\n\t\tconst health = await cli.checkHealth()\n\n\t\t// @ts-ignore\n\t\tif (health.schema?.schemas) {\n\t\t\t//@ts-ignore\n\t\t\thealth.schema.schemas = this.sortSchemas(health.schema.schemas)\n\t\t}\n\n\t\tassert.isEqualDeep(health, expectedHealth)\n\n\t\tconst packageContents = diskUtil.readFile(this.resolvePath('package.json'))\n\t\tassert.doesInclude(packageContents, name)\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tfor (const code of expectedInstalledSkills) {\n\t\t\tconst isInstalled = await installer.isInstalled(code)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n}\n"],"file":"AbstractSchemaTest.js"}
1
+ {"version":3,"file":"AbstractSchemaTest.js","names":["AbstractSchemaTest","resolveHashSprucePath","cacheKey","syncOptions","installSchemaFeature","cli","Action","execute","schemas","expected","map","schema","id","name","version","CORE_SCHEMA_VERSION","constValue","namespace","description","expectedJSon","JSON","stringify","cleanedExpected","parse","sortSchemas","sort","a","b","bootOptions","fixture","FeatureFixture","installFeatures","code","options","graphicsInterface","ui","expectedHealth","skill","status","expectedInstalledSkills","Cli","linkLocalPackages","checkHealth","health","assert","isEqualDeep","packageContents","diskUtil","readFile","resolvePath","doesInclude","installer","getFeatureInstaller","isInstalled","isTrue","AbstractCliTest"],"sources":["../../src/tests/AbstractSchemaTest.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n\tHealthCheckResults,\n\tSchemaHealthCheckItem,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { CliBootOptions } from '../cli'\nimport { FeatureCode } from '../features/features.types'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSchemaTest extends AbstractCliTest {\n\tprotected static get schemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t}\n\n\tprotected static get coreSchemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'core.schemas.types.ts')\n\t}\n\n\tprotected static async syncSchemas(cacheKey?: string, syncOptions = {}) {\n\t\tconst cli = await this.installSchemaFeature(cacheKey)\n\n\t\tawait this.Action('schema', 'sync').execute(syncOptions)\n\n\t\treturn cli\n\t}\n\n\tprotected static generateExpectedHealthSchemas(schemas: Schema[]) {\n\t\tconst expected = schemas.map((schema) => ({\n\t\t\t// @ts-ignore\n\t\t\tid: schema.id,\n\t\t\t// @ts-ignore\n\t\t\tname: schema.name,\n\t\t\tversion: schema.version ?? CORE_SCHEMA_VERSION.constValue,\n\t\t\tnamespace: schema.namespace,\n\t\t\t// @ts-ignore\n\t\t\tdescription: schema.description,\n\t\t}))\n\n\t\tconst expectedJSon = JSON.stringify(expected)\n\t\tconst cleanedExpected = JSON.parse(expectedJSon)\n\n\t\treturn this.sortSchemas(cleanedExpected) as SchemaHealthCheckItem['schemas']\n\t}\n\n\tprotected static sortSchemas(schemas: Schema[]) {\n\t\treturn schemas.sort((a, b) => (a.id > b.id ? -1 : 1))\n\t}\n\n\tprotected static async installSchemaFeature(\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing',\n\t\t\t\t\t\tdescription: 'this is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'schema',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey,\n\t\t\t{ ...(bootOptions || {}), graphicsInterface: this.ui }\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async assertHealthySkillNamed(\n\t\tname: string,\n\t\texpectedHealth: HealthCheckResults = { skill: { status: 'passed' } },\n\t\texpectedInstalledSkills: FeatureCode[] = ['skill']\n\t) {\n\t\tconst cli = await this.Cli()\n\t\tawait this.linkLocalPackages()\n\n\t\tconst health = await cli.checkHealth()\n\n\t\t// @ts-ignore\n\t\tif (health.schema?.schemas) {\n\t\t\t//@ts-ignore\n\t\t\thealth.schema.schemas = this.sortSchemas(health.schema.schemas)\n\t\t}\n\n\t\tassert.isEqualDeep(health, expectedHealth)\n\n\t\tconst packageContents = diskUtil.readFile(this.resolvePath('package.json'))\n\t\tassert.doesInclude(packageContents, name)\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tfor (const code of expectedInstalledSkills) {\n\t\t\tconst isInstalled = await installer.isInstalled(code)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/AbstractSkillTest.ts"],"names":["AbstractSkillTest","skillCacheKey","Error","reInstallSkill","cwd","skillDir","Cli","cli","key","freshTmpDir","FeatureFixture","installCachedFeatures","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAE8BA,iB;;;;;;;;;;;;;qGAK7B;AAAA;AAAA;AAAA;AAAA;AAAA,oBACM,KAAKC,aADX;AAAA;AAAA;AAAA;;AAAA,sBAEQ,IAAIC,KAAJ,CACL,gEADK,CAFR;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,uBAOO,KAAKC,cAAL,EAPP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sGAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,GAAL,GAAW,KAAKC,QAAhB;AAFD;AAAA,uBAGkB,KAAKC,GAAL,EAHlB;;AAAA;AAGC,qBAAKC,GAHN;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0GAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsCC,gBAAAA,GAAtC,8DAA4C,KAAKP,aAAjD;AACC,qBAAKG,GAAL,GAAW,KAAKC,QAAL,GAAgB,KAAKI,WAAL,EAA3B;AADD;AAAA,uBAEkB,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4CH,GAA5C,CAFlB;;AAAA;AAEC,qBAAKD,GAFN;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EArBuDK,4B;;;iCAA1BZ,iB;iCAAAA,iB;iCAAAA,iB","sourcesContent":["import { CliInterface } from '../cli'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSkillTest extends AbstractCliTest {\n\tprotected static skillDir: string\n\tprotected static cli: CliInterface\n\tprotected static skillCacheKey: string\n\n\tprotected static async beforeAll() {\n\t\tif (!this.skillCacheKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"You must implement `protected static skillCacheKey = 'stores'`\"\n\t\t\t)\n\t\t}\n\t\tawait super.beforeAll()\n\t\tawait this.reInstallSkill()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cwd = this.skillDir\n\t\tthis.cli = await this.Cli()\n\t}\n\n\tprotected static async reInstallSkill(key = this.skillCacheKey) {\n\t\tthis.cwd = this.skillDir = this.freshTmpDir()\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures(key)\n\t}\n}\n"],"file":"AbstractSkillTest.js"}
1
+ {"version":3,"file":"AbstractSkillTest.js","names":["AbstractSkillTest","skillCacheKey","Error","reInstallSkill","cwd","skillDir","Cli","cli","key","freshTmpDir","FeatureFixture","installCachedFeatures","AbstractCliTest"],"sources":["../../src/tests/AbstractSkillTest.ts"],"sourcesContent":["import { CliInterface } from '../cli'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSkillTest extends AbstractCliTest {\n\tprotected static skillDir: string\n\tprotected static cli: CliInterface\n\tprotected static skillCacheKey: string\n\n\tprotected static async beforeAll() {\n\t\tif (!this.skillCacheKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"You must implement `protected static skillCacheKey = 'stores'`\"\n\t\t\t)\n\t\t}\n\t\tawait super.beforeAll()\n\t\tawait this.reInstallSkill()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cwd = this.skillDir\n\t\tthis.cli = await this.Cli()\n\t}\n\n\tprotected static async reInstallSkill(key = this.skillCacheKey) {\n\t\tthis.cwd = this.skillDir = this.freshTmpDir()\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures(key)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAE8BA,iB;;;;;;;;;;;;;qGAK7B;QAAA;UAAA;YAAA;cAAA;gBAAA,IACM,KAAKC,aADX;kBAAA;kBAAA;gBAAA;;gBAAA,MAEQ,IAAIC,KAAJ,CACL,gEADK,CAFR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAOO,KAAKC,cAAL,EAPP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sGAUA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,GAAL,GAAW,KAAKC,QAAhB;gBAFD;gBAAA,OAGkB,KAAKC,GAAL,EAHlB;;cAAA;gBAGC,KAAKC,GAHN;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0GAMA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAsCC,GAAtC,8DAA4C,KAAKP,aAAjD;gBACC,KAAKG,GAAL,GAAW,KAAKC,QAAL,GAAgB,KAAKI,WAAL,EAA3B;gBADD;gBAAA,OAEkB,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4CH,GAA5C,CAFlB;;cAAA;gBAEC,KAAKD,GAFN;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EArBuDK,4B;;;iCAA1BZ,iB;iCAAAA,iB;iCAAAA,iB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/AbstractTestTest.ts"],"names":["AbstractTestTest","cacheKey","fixture","FeatureFixture","installCachedFeatures","graphicsInterface","ui","cli","file","contents","diskUtil","readFile","passingContent","replace","writeFile","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,gB;;;;;;;;;;;;;wGACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACCC,gBAAAA,QADD,2DAC2C,OAD3C;AAGOC,gBAAAA,OAHP,GAGiB,KAAKC,cAAL,EAHjB;AAAA;AAAA,uBAImBD,OAAO,CAACE,qBAAR,CAA8BH,QAA9B,EAAwC;AACzDI,kBAAAA,iBAAiB,EAAE,KAAKC;AADiC,iBAAxC,CAJnB;;AAAA;AAIOC,gBAAAA,GAJP;AAAA,iDAOQA,GAPR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAUA,oBAA4BC,IAA5B,EAA0C;AACzC,UAAMC,QAAQ,GAAGC,2BAASC,QAAT,CAAkBH,IAAlB,CAAjB;;AACA,UAAMI,cAAc,GAAGH,QAAQ,CAACI,OAAT,CACtB,sBADsB,EAEtB,qBAFsB,CAAvB;;AAKAH,iCAASI,SAAT,CAAmBN,IAAnB,EAAyBI,cAAzB;AACA;;;EAnB4CG,4B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default class AbstractTestTest extends AbstractCliTest {\n\tprotected static async installTests(\n\t\tcacheKey: 'tests' | 'testsInNodeModule' = 'tests'\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installCachedFeatures(cacheKey, {\n\t\t\tgraphicsInterface: this.ui,\n\t\t})\n\t\treturn cli\n\t}\n\n\tprotected static fixBadTest(file: string) {\n\t\tconst contents = diskUtil.readFile(file)\n\t\tconst passingContent = contents.replace(\n\t\t\t'assert.isTrue(false)',\n\t\t\t'assert.isTrue(true)'\n\t\t)\n\n\t\tdiskUtil.writeFile(file, passingContent)\n\t}\n}\n"],"file":"AbstractTestTest.js"}
1
+ {"version":3,"file":"AbstractTestTest.js","names":["AbstractTestTest","cacheKey","fixture","FeatureFixture","installCachedFeatures","graphicsInterface","ui","cli","file","contents","diskUtil","readFile","passingContent","replace","writeFile","AbstractCliTest"],"sources":["../../src/tests/AbstractTestTest.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default class AbstractTestTest extends AbstractCliTest {\n\tprotected static async installTests(\n\t\tcacheKey: 'tests' | 'testsInNodeModule' = 'tests'\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installCachedFeatures(cacheKey, {\n\t\t\tgraphicsInterface: this.ui,\n\t\t})\n\t\treturn cli\n\t}\n\n\tprotected static fixBadTest(file: string) {\n\t\tconst contents = diskUtil.readFile(file)\n\t\tconst passingContent = contents.replace(\n\t\t\t'assert.isTrue(false)',\n\t\t\t'assert.isTrue(true)'\n\t\t)\n\n\t\tdiskUtil.writeFile(file, passingContent)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,gB;;;;;;;;;;;;;wGACpB;QAAA;QAAA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCC,QADD,2DAC2C,OAD3C;gBAGOC,OAHP,GAGiB,KAAKC,cAAL,EAHjB;gBAAA;gBAAA,OAImBD,OAAO,CAACE,qBAAR,CAA8BH,QAA9B,EAAwC;kBACzDI,iBAAiB,EAAE,KAAKC;gBADiC,CAAxC,CAJnB;;cAAA;gBAIOC,GAJP;gBAAA,iCAOQA,GAPR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAUA,oBAA4BC,IAA5B,EAA0C;MACzC,IAAMC,QAAQ,GAAGC,2BAASC,QAAT,CAAkBH,IAAlB,CAAjB;;MACA,IAAMI,cAAc,GAAGH,QAAQ,CAACI,OAAT,CACtB,sBADsB,EAEtB,qBAFsB,CAAvB;;MAKAH,2BAASI,SAAT,CAAmBN,IAAnB,EAAyBI,cAAzB;IACA;;;EAnB4CG,4B"}
@@ -1,8 +1,9 @@
1
1
  declare type Command = RegExp | string;
2
2
  export default class CommandFaker {
3
- fakeRebuild(code?: number): void;
4
3
  fakeCommand(command: Command, code?: number): void;
4
+ fakeRebuild(code?: number): void;
5
5
  fakeCleanBuild(code?: number): void;
6
6
  fakeBuild(code?: number): void;
7
+ fakeInstall(code?: number): void;
7
8
  }
8
9
  export {};
@@ -19,13 +19,6 @@ var CommandFaker = /*#__PURE__*/function () {
19
19
  }
20
20
 
21
21
  (0, _createClass2["default"])(CommandFaker, [{
22
- key: "fakeRebuild",
23
- value: function fakeRebuild() {
24
- var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
25
- var command = new RegExp(/yarn rebuild/gi);
26
- this.fakeCommand(command, code);
27
- }
28
- }, {
29
22
  key: "fakeCommand",
30
23
  value: function fakeCommand(command) {
31
24
  var code = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
@@ -34,6 +27,13 @@ var CommandFaker = /*#__PURE__*/function () {
34
27
  code: code
35
28
  });
36
29
  }
30
+ }, {
31
+ key: "fakeRebuild",
32
+ value: function fakeRebuild() {
33
+ var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
34
+ var command = new RegExp(/yarn rebuild/gi);
35
+ this.fakeCommand(command, code);
36
+ }
37
37
  }, {
38
38
  key: "fakeCleanBuild",
39
39
  value: function fakeCleanBuild() {
@@ -46,6 +46,12 @@ var CommandFaker = /*#__PURE__*/function () {
46
46
  var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
47
47
  this.fakeCommand('yarn build.dev', code);
48
48
  }
49
+ }, {
50
+ key: "fakeInstall",
51
+ value: function fakeInstall() {
52
+ var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
53
+ this.fakeCommand(/[\s\S]*?install/gi, code);
54
+ }
49
55
  }]);
50
56
  return CommandFaker;
51
57
  }();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/CommandFaker.ts"],"names":["CommandFaker","code","command","RegExp","fakeCommand","CommandService"],"mappings":";;;;;;;;;;;;;AAAA;;IAIqBA,Y;;;;;;;WACpB,uBAA6B;AAAA,UAAVC,IAAU,uEAAH,CAAG;AAC5B,UAAMC,OAAO,GAAG,IAAIC,MAAJ,CAAW,gBAAX,CAAhB;AACA,WAAKC,WAAL,CAAiBF,OAAjB,EAA0BD,IAA1B;AACA;;;WAED,qBAAmBC,OAAnB,EAA+C;AAAA,UAAVD,IAAU,uEAAH,CAAG;;AAC9CI,iCAAeD,WAAf,CAA2BF,OAA3B,EAAoC;AACnCD,QAAAA,IAAI,EAAJA;AADmC,OAApC;AAGA;;;WAED,0BAAgC;AAAA,UAAVA,IAAU,uEAAH,CAAG;AAC/B,WAAKG,WAAL,CAAiB,kBAAjB,EAAqCH,IAArC;AACA;;;WAED,qBAA2B;AAAA,UAAVA,IAAU,uEAAH,CAAG;AAC1B,WAAKG,WAAL,CAAiB,gBAAjB,EAAmCH,IAAnC;AACA","sourcesContent":["import CommandService from '../services/CommandService'\n\ntype Command = RegExp | string\n\nexport default class CommandFaker {\n\tpublic fakeRebuild(code = 0) {\n\t\tconst command = new RegExp(/yarn rebuild/gis)\n\t\tthis.fakeCommand(command, code)\n\t}\n\n\tpublic fakeCommand(command: Command, code = 0) {\n\t\tCommandService.fakeCommand(command, {\n\t\t\tcode,\n\t\t})\n\t}\n\n\tpublic fakeCleanBuild(code = 0) {\n\t\tthis.fakeCommand('yarn clean.build', code)\n\t}\n\n\tpublic fakeBuild(code = 0) {\n\t\tthis.fakeCommand('yarn build.dev', code)\n\t}\n}\n"],"file":"CommandFaker.js"}
1
+ {"version":3,"file":"CommandFaker.js","names":["CommandFaker","command","code","CommandService","fakeCommand","RegExp"],"sources":["../../src/tests/CommandFaker.ts"],"sourcesContent":["import CommandService from '../services/CommandService'\n\ntype Command = RegExp | string\n\nexport default class CommandFaker {\n\tpublic fakeCommand(command: Command, code = 0) {\n\t\tCommandService.fakeCommand(command, {\n\t\t\tcode,\n\t\t})\n\t}\n\n\tpublic fakeRebuild(code = 0) {\n\t\tconst command = new RegExp(/yarn rebuild/gis)\n\t\tthis.fakeCommand(command, code)\n\t}\n\n\tpublic fakeCleanBuild(code = 0) {\n\t\tthis.fakeCommand('yarn clean.build', code)\n\t}\n\n\tpublic fakeBuild(code = 0) {\n\t\tthis.fakeCommand('yarn build.dev', code)\n\t}\n\n\tpublic fakeInstall(code = 0) {\n\t\tthis.fakeCommand(/.*?install/gis, code)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;IAIqBA,Y;;;;;;;WACpB,qBAAmBC,OAAnB,EAA+C;MAAA,IAAVC,IAAU,uEAAH,CAAG;;MAC9CC,2BAAeC,WAAf,CAA2BH,OAA3B,EAAoC;QACnCC,IAAI,EAAJA;MADmC,CAApC;IAGA;;;WAED,uBAA6B;MAAA,IAAVA,IAAU,uEAAH,CAAG;MAC5B,IAAMD,OAAO,GAAG,IAAII,MAAJ,CAAW,gBAAX,CAAhB;MACA,KAAKD,WAAL,CAAiBH,OAAjB,EAA0BC,IAA1B;IACA;;;WAED,0BAAgC;MAAA,IAAVA,IAAU,uEAAH,CAAG;MAC/B,KAAKE,WAAL,CAAiB,kBAAjB,EAAqCF,IAArC;IACA;;;WAED,qBAA2B;MAAA,IAAVA,IAAU,uEAAH,CAAG;MAC1B,KAAKE,WAAL,CAAiB,gBAAjB,EAAmCF,IAAnC;IACA;;;WAED,uBAA6B;MAAA,IAAVA,IAAU,uEAAH,CAAG;MAC5B,KAAKE,WAAL,CAAiB,mBAAjB,EAAkCF,IAAlC;IACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/JestJsonParser.ts"],"names":["JestJsonParser","totalTestFiles","data","dataToProcess","buffer","endDividerStartIdx","search","END_DIVIDER","startDividerIdx","Math","max","START_DIVIDER","endDividerEndIdx","length","firstSegment","substr","cleanedSegment","replace","trim","result","JSON","parse","ingestJestResult","testFiles","testResults","status","results","numTotalTestSuites","relativePath","mapAbsoluteJsToRelativeTsPath","test","path","idx","findIndex","file","testCaseResultToTest","testCaseResult","tests","push","pullPathFromTestResponse","pullTestFileStatusFromTestResponse","totalTestFilesComplete","pullTestFilesCompleteFromAggregatedResults","aggregatedResult","totalFailed","numFailedTests","totalPassed","numPassedTests","totalTests","numTotalTests","totalSkipped","numPendingTests","totalTodo","numTodoTests","testResult","testFilePath","pullTestFileResultStatus","pullTestsFromTestFileResult","failureMessage","errorMessage","total","numFailedTestSuites","numPassedTestSuites","tsFile","partialPath","split","pop","Error","numFailingTests","map","name","title","errorMessages","failureMessages","duration"],"mappings":"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","sourcesContent":["import JsonParser, {\n\tAssertionResult,\n\tEND_DIVIDER,\n\tSTART_DIVIDER,\n\tretrocycle,\n} from '@sprucelabs/jest-json-reporter'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport {\n\tSpruceTestFile,\n\tTestResultStatus,\n\tSpruceTestResults,\n} from '../features/test/test.types'\n\nexport type JsonResultKeys = JsonParserResult['status']\ninterface OnTestFileResult {\n\tstatus: 'onTestFileResult'\n\ttest: Parameters<JsonParser['onTestFileResult']>[0]\n\ttestResult: Parameters<JsonParser['onTestFileResult']>[1]\n\taggregatedResult: Parameters<JsonParser['onTestFileResult']>[2]\n}\n\ntype JsonParserResult =\n\t| {\n\t\t\tstatus: 'onRunStart'\n\t\t\tresults: Parameters<JsonParser['onRunStart']>[0]\n\t }\n\t| {\n\t\t\tstatus: 'onTestCaseResult'\n\t\t\ttest: Parameters<JsonParser['onTestCaseResult']>[0]\n\t\t\ttestCaseResult: Parameters<JsonParser['onTestCaseResult']>[1]\n\t }\n\t| {\n\t\t\tstatus: 'onTestFileStart'\n\t\t\ttest: Parameters<JsonParser['onTestFileStart']>[0]\n\t }\n\t| OnTestFileResult\n\nexport default class JestJsonParser {\n\tprivate testResults: SpruceTestResults = { totalTestFiles: 0 }\n\tprivate buffer = ''\n\n\tpublic write(data: string) {\n\t\tlet dataToProcess = this.buffer + data\n\t\tlet endDividerStartIdx = -1\n\n\t\tdo {\n\t\t\tendDividerStartIdx = dataToProcess.search(escapeRegExp(END_DIVIDER))\n\t\t\tif (endDividerStartIdx > -1) {\n\t\t\t\tlet startDividerIdx = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\tdataToProcess.search(escapeRegExp(START_DIVIDER))\n\t\t\t\t)\n\t\t\t\tlet endDividerEndIdx = endDividerStartIdx + END_DIVIDER.length\n\t\t\t\tif (startDividerIdx > endDividerStartIdx) {\n\t\t\t\t\tstartDividerIdx = -1\n\t\t\t\t}\n\t\t\t\tconst firstSegment = dataToProcess.substr(\n\t\t\t\t\tstartDividerIdx,\n\t\t\t\t\tendDividerEndIdx - startDividerIdx\n\t\t\t\t)\n\t\t\t\tconst cleanedSegment = firstSegment\n\t\t\t\t\t.replace(START_DIVIDER, '')\n\t\t\t\t\t.replace(END_DIVIDER, '')\n\t\t\t\t\t.trim()\n\n\t\t\t\tconst result = retrocycle(\n\t\t\t\t\tJSON.parse(cleanedSegment)\n\t\t\t\t) as JsonParserResult\n\n\t\t\t\tthis.ingestJestResult(result)\n\n\t\t\t\tdataToProcess = dataToProcess.substr(endDividerEndIdx)\n\t\t\t}\n\t\t} while (endDividerStartIdx > -1)\n\n\t\tthis.buffer = dataToProcess\n\t}\n\n\tprivate ingestJestResult(result: JsonParserResult) {\n\t\tconst testFiles = this.testResults.testFiles ?? []\n\t\tswitch (result.status) {\n\t\t\tcase 'onRunStart':\n\t\t\t\tthis.testResults = {\n\t\t\t\t\ttotalTestFiles: result.results.numTotalTestSuites,\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestCaseResult': {\n\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\tresult.test.path\n\t\t\t\t)\n\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\tconst test = this.testCaseResultToTest(result.testCaseResult)\n\n\t\t\t\tif (!testFiles[idx].tests) {\n\t\t\t\t\ttestFiles[idx].tests = []\n\t\t\t\t}\n\t\t\t\ttestFiles[idx].tests?.push(test)\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'onTestFileStart':\n\t\t\t\ttestFiles.push({\n\t\t\t\t\tpath: this.pullPathFromTestResponse(result),\n\t\t\t\t\tstatus: this.pullTestFileStatusFromTestResponse(result),\n\t\t\t\t})\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestFileResult': {\n\t\t\t\tthis.testResults.totalTestFilesComplete =\n\t\t\t\t\tthis.pullTestFilesCompleteFromAggregatedResults(\n\t\t\t\t\t\tresult.aggregatedResult\n\t\t\t\t\t)\n\t\t\t\tthis.testResults.totalTestFiles =\n\t\t\t\t\tresult.aggregatedResult.numTotalTestSuites\n\t\t\t\tthis.testResults.totalFailed = result.aggregatedResult.numFailedTests\n\t\t\t\tthis.testResults.totalPassed = result.aggregatedResult.numPassedTests\n\t\t\t\tthis.testResults.totalTests = result.aggregatedResult.numTotalTests\n\t\t\t\tthis.testResults.totalSkipped = result.aggregatedResult.numPendingTests\n\t\t\t\tthis.testResults.totalTodo = result.aggregatedResult.numTodoTests\n\n\t\t\t\tfor (const testResult of result.aggregatedResult.testResults) {\n\t\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\t\ttestResult.testFilePath\n\t\t\t\t\t)\n\t\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\t\tconst file = {\n\t\t\t\t\t\t...(testFiles[idx] ?? {}),\n\t\t\t\t\t\tpath: relativePath,\n\t\t\t\t\t\tstatus: this.pullTestFileResultStatus(testResult),\n\t\t\t\t\t\ttests: this.pullTestsFromTestFileResult(testResult),\n\t\t\t\t\t}\n\n\t\t\t\t\tif (testResult.failureMessage) {\n\t\t\t\t\t\tfile.errorMessage = testResult.failureMessage\n\t\t\t\t\t}\n\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\ttestFiles.push(file)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttestFiles[idx] = file\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (testFiles.length > 0) {\n\t\t\tthis.testResults.testFiles = testFiles\n\t\t}\n\t}\n\n\tprivate pullTestFilesCompleteFromAggregatedResults(\n\t\taggregatedResult: OnTestFileResult['aggregatedResult']\n\t) {\n\t\tconst total =\n\t\t\taggregatedResult.numFailedTestSuites +\n\t\t\taggregatedResult.numPassedTestSuites\n\n\t\treturn total\n\t}\n\n\tprivate pullPathFromTestResponse(result: JsonParserResult) {\n\t\tlet path = ''\n\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\tcase 'onTestFileStart':\n\t\t\t\tpath = result.test.path\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst tsFile = this.mapAbsoluteJsToRelativeTsPath(path)\n\t\treturn tsFile\n\t}\n\n\tprivate mapAbsoluteJsToRelativeTsPath(path: string) {\n\t\tconst partialPath = path.split('__tests__').pop()\n\t\tif (!partialPath) {\n\t\t\tthrow new Error('INVALID TEST FILE')\n\t\t}\n\t\tconst tsFile = partialPath.substr(1, partialPath.length - 3) + 'ts'\n\t\treturn tsFile\n\t}\n\n\tprivate pullTestFileStatusFromTestResponse(\n\t\tresult: JsonParserResult\n\t): SpruceTestFile['status'] {\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\t\treturn this.pullTestFileResultStatus(result.testResult)\n\t\t\tdefault:\n\t\t\t\treturn 'running'\n\t\t}\n\t}\n\n\tprivate pullTestFileResultStatus(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): TestResultStatus {\n\t\treturn testResult.failureMessage || testResult.numFailingTests > 0\n\t\t\t? 'failed'\n\t\t\t: 'passed'\n\t}\n\n\tprivate pullTestsFromTestFileResult(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): SpruceTestFile['tests'] {\n\t\treturn testResult.testResults.map((test) => this.testCaseResultToTest(test))\n\t}\n\n\tprivate testCaseResultToTest(test: AssertionResult): {\n\t\tname: string\n\t\tstatus: AssertionResult['status']\n\t\terrorMessages: string[]\n\t\tduration: number\n\t} {\n\t\treturn {\n\t\t\tname: test.title,\n\t\t\tstatus: test.status,\n\t\t\terrorMessages: test.failureMessages,\n\t\t\tduration: test.duration ?? 0,\n\t\t}\n\t}\n\n\tpublic getResults(): SpruceTestResults {\n\t\treturn this.testResults\n\t}\n}\n"],"file":"JestJsonParser.js"}
1
+ {"version":3,"file":"JestJsonParser.js","names":["JestJsonParser","totalTestFiles","data","dataToProcess","buffer","endDividerStartIdx","search","END_DIVIDER","startDividerIdx","Math","max","START_DIVIDER","endDividerEndIdx","length","firstSegment","substr","cleanedSegment","replace","trim","result","JSON","parse","ingestJestResult","testFiles","testResults","status","results","numTotalTestSuites","relativePath","mapAbsoluteJsToRelativeTsPath","test","path","idx","findIndex","file","testCaseResultToTest","testCaseResult","tests","push","pullPathFromTestResponse","pullTestFileStatusFromTestResponse","totalTestFilesComplete","pullTestFilesCompleteFromAggregatedResults","aggregatedResult","totalFailed","numFailedTests","totalPassed","numPassedTests","totalTests","numTotalTests","totalSkipped","numPendingTests","totalTodo","numTodoTests","testResult","testFilePath","pullTestFileResultStatus","pullTestsFromTestFileResult","failureMessage","errorMessage","total","numFailedTestSuites","numPassedTestSuites","tsFile","partialPath","split","pop","Error","numFailingTests","map","name","title","errorMessages","failureMessages","duration"],"sources":["../../src/tests/JestJsonParser.ts"],"sourcesContent":["import JsonParser, {\n\tAssertionResult,\n\tEND_DIVIDER,\n\tSTART_DIVIDER,\n\tretrocycle,\n} from '@sprucelabs/jest-json-reporter'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport {\n\tSpruceTestFile,\n\tTestResultStatus,\n\tSpruceTestResults,\n} from '../features/test/test.types'\n\nexport type JsonResultKeys = JsonParserResult['status']\ninterface OnTestFileResult {\n\tstatus: 'onTestFileResult'\n\ttest: Parameters<JsonParser['onTestFileResult']>[0]\n\ttestResult: Parameters<JsonParser['onTestFileResult']>[1]\n\taggregatedResult: Parameters<JsonParser['onTestFileResult']>[2]\n}\n\ntype JsonParserResult =\n\t| {\n\t\t\tstatus: 'onRunStart'\n\t\t\tresults: Parameters<JsonParser['onRunStart']>[0]\n\t }\n\t| {\n\t\t\tstatus: 'onTestCaseResult'\n\t\t\ttest: Parameters<JsonParser['onTestCaseResult']>[0]\n\t\t\ttestCaseResult: Parameters<JsonParser['onTestCaseResult']>[1]\n\t }\n\t| {\n\t\t\tstatus: 'onTestFileStart'\n\t\t\ttest: Parameters<JsonParser['onTestFileStart']>[0]\n\t }\n\t| OnTestFileResult\n\nexport default class JestJsonParser {\n\tprivate testResults: SpruceTestResults = { totalTestFiles: 0 }\n\tprivate buffer = ''\n\n\tpublic write(data: string) {\n\t\tlet dataToProcess = this.buffer + data\n\t\tlet endDividerStartIdx = -1\n\n\t\tdo {\n\t\t\tendDividerStartIdx = dataToProcess.search(escapeRegExp(END_DIVIDER))\n\t\t\tif (endDividerStartIdx > -1) {\n\t\t\t\tlet startDividerIdx = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\tdataToProcess.search(escapeRegExp(START_DIVIDER))\n\t\t\t\t)\n\t\t\t\tlet endDividerEndIdx = endDividerStartIdx + END_DIVIDER.length\n\t\t\t\tif (startDividerIdx > endDividerStartIdx) {\n\t\t\t\t\tstartDividerIdx = -1\n\t\t\t\t}\n\t\t\t\tconst firstSegment = dataToProcess.substr(\n\t\t\t\t\tstartDividerIdx,\n\t\t\t\t\tendDividerEndIdx - startDividerIdx\n\t\t\t\t)\n\t\t\t\tconst cleanedSegment = firstSegment\n\t\t\t\t\t.replace(START_DIVIDER, '')\n\t\t\t\t\t.replace(END_DIVIDER, '')\n\t\t\t\t\t.trim()\n\n\t\t\t\tconst result = retrocycle(\n\t\t\t\t\tJSON.parse(cleanedSegment)\n\t\t\t\t) as JsonParserResult\n\n\t\t\t\tthis.ingestJestResult(result)\n\n\t\t\t\tdataToProcess = dataToProcess.substr(endDividerEndIdx)\n\t\t\t}\n\t\t} while (endDividerStartIdx > -1)\n\n\t\tthis.buffer = dataToProcess\n\t}\n\n\tprivate ingestJestResult(result: JsonParserResult) {\n\t\tconst testFiles = this.testResults.testFiles ?? []\n\t\tswitch (result.status) {\n\t\t\tcase 'onRunStart':\n\t\t\t\tthis.testResults = {\n\t\t\t\t\ttotalTestFiles: result.results.numTotalTestSuites,\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestCaseResult': {\n\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\tresult.test.path\n\t\t\t\t)\n\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\tconst test = this.testCaseResultToTest(result.testCaseResult)\n\n\t\t\t\tif (!testFiles[idx].tests) {\n\t\t\t\t\ttestFiles[idx].tests = []\n\t\t\t\t}\n\t\t\t\ttestFiles[idx].tests?.push(test)\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'onTestFileStart':\n\t\t\t\ttestFiles.push({\n\t\t\t\t\tpath: this.pullPathFromTestResponse(result),\n\t\t\t\t\tstatus: this.pullTestFileStatusFromTestResponse(result),\n\t\t\t\t})\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestFileResult': {\n\t\t\t\tthis.testResults.totalTestFilesComplete =\n\t\t\t\t\tthis.pullTestFilesCompleteFromAggregatedResults(\n\t\t\t\t\t\tresult.aggregatedResult\n\t\t\t\t\t)\n\t\t\t\tthis.testResults.totalTestFiles =\n\t\t\t\t\tresult.aggregatedResult.numTotalTestSuites\n\t\t\t\tthis.testResults.totalFailed = result.aggregatedResult.numFailedTests\n\t\t\t\tthis.testResults.totalPassed = result.aggregatedResult.numPassedTests\n\t\t\t\tthis.testResults.totalTests = result.aggregatedResult.numTotalTests\n\t\t\t\tthis.testResults.totalSkipped = result.aggregatedResult.numPendingTests\n\t\t\t\tthis.testResults.totalTodo = result.aggregatedResult.numTodoTests\n\n\t\t\t\tfor (const testResult of result.aggregatedResult.testResults) {\n\t\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\t\ttestResult.testFilePath\n\t\t\t\t\t)\n\t\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\t\tconst file = {\n\t\t\t\t\t\t...(testFiles[idx] ?? {}),\n\t\t\t\t\t\tpath: relativePath,\n\t\t\t\t\t\tstatus: this.pullTestFileResultStatus(testResult),\n\t\t\t\t\t\ttests: this.pullTestsFromTestFileResult(testResult),\n\t\t\t\t\t}\n\n\t\t\t\t\tif (testResult.failureMessage) {\n\t\t\t\t\t\tfile.errorMessage = testResult.failureMessage\n\t\t\t\t\t}\n\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\ttestFiles.push(file)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttestFiles[idx] = file\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (testFiles.length > 0) {\n\t\t\tthis.testResults.testFiles = testFiles\n\t\t}\n\t}\n\n\tprivate pullTestFilesCompleteFromAggregatedResults(\n\t\taggregatedResult: OnTestFileResult['aggregatedResult']\n\t) {\n\t\tconst total =\n\t\t\taggregatedResult.numFailedTestSuites +\n\t\t\taggregatedResult.numPassedTestSuites\n\n\t\treturn total\n\t}\n\n\tprivate pullPathFromTestResponse(result: JsonParserResult) {\n\t\tlet path = ''\n\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\tcase 'onTestFileStart':\n\t\t\t\tpath = result.test.path\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst tsFile = this.mapAbsoluteJsToRelativeTsPath(path)\n\t\treturn tsFile\n\t}\n\n\tprivate mapAbsoluteJsToRelativeTsPath(path: string) {\n\t\tconst partialPath = path.split('__tests__').pop()\n\t\tif (!partialPath) {\n\t\t\tthrow new Error('INVALID TEST FILE')\n\t\t}\n\t\tconst tsFile = partialPath.substr(1, partialPath.length - 3) + 'ts'\n\t\treturn tsFile\n\t}\n\n\tprivate pullTestFileStatusFromTestResponse(\n\t\tresult: JsonParserResult\n\t): SpruceTestFile['status'] {\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\t\treturn this.pullTestFileResultStatus(result.testResult)\n\t\t\tdefault:\n\t\t\t\treturn 'running'\n\t\t}\n\t}\n\n\tprivate pullTestFileResultStatus(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): TestResultStatus {\n\t\treturn testResult.failureMessage || testResult.numFailingTests > 0\n\t\t\t? 'failed'\n\t\t\t: 'passed'\n\t}\n\n\tprivate pullTestsFromTestFileResult(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): SpruceTestFile['tests'] {\n\t\treturn testResult.testResults.map((test) => this.testCaseResultToTest(test))\n\t}\n\n\tprivate testCaseResultToTest(test: AssertionResult): {\n\t\tname: string\n\t\tstatus: AssertionResult['status']\n\t\terrorMessages: string[]\n\t\tduration: number\n\t} {\n\t\treturn {\n\t\t\tname: test.title,\n\t\t\tstatus: test.status,\n\t\t\terrorMessages: test.failureMessages,\n\t\t\tduration: test.duration ?? 0,\n\t\t}\n\t}\n\n\tpublic getResults(): SpruceTestResults {\n\t\treturn this.testResults\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAMA;;;;;;;;;;;;IA+BqBA,c;;;0DACqB;MAAEC,cAAc,EAAE;IAAlB,C;qDACxB,E;;;;;WAEjB,eAAaC,IAAb,EAA2B;MAC1B,IAAIC,aAAa,GAAG,KAAKC,MAAL,GAAcF,IAAlC;MACA,IAAIG,kBAAkB,GAAG,CAAC,CAA1B;;MAEA,GAAG;QACFA,kBAAkB,GAAGF,aAAa,CAACG,MAAd,CAAqB,8BAAaC,6BAAb,CAArB,CAArB;;QACA,IAAIF,kBAAkB,GAAG,CAAC,CAA1B,EAA6B;UAC5B,IAAIG,eAAe,GAAGC,IAAI,CAACC,GAAL,CACrB,CADqB,EAErBP,aAAa,CAACG,MAAd,CAAqB,8BAAaK,+BAAb,CAArB,CAFqB,CAAtB;UAIA,IAAIC,gBAAgB,GAAGP,kBAAkB,GAAGE,8BAAYM,MAAxD;;UACA,IAAIL,eAAe,GAAGH,kBAAtB,EAA0C;YACzCG,eAAe,GAAG,CAAC,CAAnB;UACA;;UACD,IAAMM,YAAY,GAAGX,aAAa,CAACY,MAAd,CACpBP,eADoB,EAEpBI,gBAAgB,GAAGJ,eAFC,CAArB;UAIA,IAAMQ,cAAc,GAAGF,YAAY,CACjCG,OADqB,CACbN,+BADa,EACE,EADF,EAErBM,OAFqB,CAEbV,6BAFa,EAEA,EAFA,EAGrBW,IAHqB,EAAvB;UAKA,IAAMC,MAAM,GAAG,kCACdC,IAAI,CAACC,KAAL,CAAWL,cAAX,CADc,CAAf;UAIA,KAAKM,gBAAL,CAAsBH,MAAtB;UAEAhB,aAAa,GAAGA,aAAa,CAACY,MAAd,CAAqBH,gBAArB,CAAhB;QACA;MACD,CA5BD,QA4BSP,kBAAkB,GAAG,CAAC,CA5B/B;;MA8BA,KAAKD,MAAL,GAAcD,aAAd;IACA;;;WAED,0BAAyBgB,MAAzB,EAAmD;MAAA;MAAA;;MAClD,IAAMI,SAAS,4BAAG,KAAKC,WAAL,CAAiBD,SAApB,yEAAiC,EAAhD;;MACA,QAAQJ,MAAM,CAACM,MAAf;QACC,KAAK,YAAL;UACC,KAAKD,WAAL,GAAmB;YAClBvB,cAAc,EAAEkB,MAAM,CAACO,OAAP,CAAeC;UADb,CAAnB;UAIA;;QAED,KAAK,kBAAL;UAAyB;YAAA;;YACxB,IAAMC,YAAY,GAAG,KAAKC,6BAAL,CACpBV,MAAM,CAACW,IAAP,CAAYC,IADQ,CAArB;YAGA,IAAMC,GAAG,GAAGT,SAAS,CAACU,SAAV,CAAoB,UAACC,IAAD;cAAA,OAAUA,IAAI,CAACH,IAAL,KAAcH,YAAxB;YAAA,CAApB,CAAZ;YACA,IAAME,IAAI,GAAG,KAAKK,oBAAL,CAA0BhB,MAAM,CAACiB,cAAjC,CAAb;;YAEA,IAAI,CAACb,SAAS,CAACS,GAAD,CAAT,CAAeK,KAApB,EAA2B;cAC1Bd,SAAS,CAACS,GAAD,CAAT,CAAeK,KAAf,GAAuB,EAAvB;YACA;;YACD,wBAAAd,SAAS,CAACS,GAAD,CAAT,CAAeK,KAAf,8EAAsBC,IAAtB,CAA2BR,IAA3B;YAEA;UACA;;QACD,KAAK,iBAAL;UACCP,SAAS,CAACe,IAAV,CAAe;YACdP,IAAI,EAAE,KAAKQ,wBAAL,CAA8BpB,MAA9B,CADQ;YAEdM,MAAM,EAAE,KAAKe,kCAAL,CAAwCrB,MAAxC;UAFM,CAAf;UAKA;;QAED,KAAK,kBAAL;UAAyB;YACxB,KAAKK,WAAL,CAAiBiB,sBAAjB,GACC,KAAKC,0CAAL,CACCvB,MAAM,CAACwB,gBADR,CADD;YAIA,KAAKnB,WAAL,CAAiBvB,cAAjB,GACCkB,MAAM,CAACwB,gBAAP,CAAwBhB,kBADzB;YAEA,KAAKH,WAAL,CAAiBoB,WAAjB,GAA+BzB,MAAM,CAACwB,gBAAP,CAAwBE,cAAvD;YACA,KAAKrB,WAAL,CAAiBsB,WAAjB,GAA+B3B,MAAM,CAACwB,gBAAP,CAAwBI,cAAvD;YACA,KAAKvB,WAAL,CAAiBwB,UAAjB,GAA8B7B,MAAM,CAACwB,gBAAP,CAAwBM,aAAtD;YACA,KAAKzB,WAAL,CAAiB0B,YAAjB,GAAgC/B,MAAM,CAACwB,gBAAP,CAAwBQ,eAAxD;YACA,KAAK3B,WAAL,CAAiB4B,SAAjB,GAA6BjC,MAAM,CAACwB,gBAAP,CAAwBU,YAArD;;YAXwB,2CAaClC,MAAM,CAACwB,gBAAP,CAAwBnB,WAbzB;YAAA;;YAAA;cAAA;gBAAA;;gBAAA,IAab8B,UAba;;gBAcvB,IAAM1B,YAAY,GAAG,KAAI,CAACC,6BAAL,CACpByB,UAAU,CAACC,YADS,CAArB;;gBAGA,IAAMvB,GAAG,GAAGT,SAAS,CAACU,SAAV,CAAoB,UAACC,IAAD;kBAAA,OAAUA,IAAI,CAACH,IAAL,KAAcH,YAAxB;gBAAA,CAApB,CAAZ;;gBACA,IAAMM,IAAI,qDACLX,SAAS,CAACS,GAAD,CADJ,2DACa,EADb;kBAETD,IAAI,EAAEH,YAFG;kBAGTH,MAAM,EAAE,KAAI,CAAC+B,wBAAL,CAA8BF,UAA9B,CAHC;kBAITjB,KAAK,EAAE,KAAI,CAACoB,2BAAL,CAAiCH,UAAjC;gBAJE,EAAV;;gBAOA,IAAIA,UAAU,CAACI,cAAf,EAA+B;kBAC9BxB,IAAI,CAACyB,YAAL,GAAoBL,UAAU,CAACI,cAA/B;gBACA;;gBAED,IAAI1B,GAAG,KAAK,CAAC,CAAb,EAAgB;kBACfT,SAAS,CAACe,IAAV,CAAeJ,IAAf;gBACA,CAFD,MAEO;kBACNX,SAAS,CAACS,GAAD,CAAT,GAAiBE,IAAjB;gBACA;cAjCsB;;cAaxB,oDAA8D;gBAAA;cAqB7D;YAlCuB;cAAA;YAAA;cAAA;YAAA;;YAoCxB;UACA;MAnEF;;MAsEA,IAAIX,SAAS,CAACV,MAAV,GAAmB,CAAvB,EAA0B;QACzB,KAAKW,WAAL,CAAiBD,SAAjB,GAA6BA,SAA7B;MACA;IACD;;;WAED,oDACCoB,gBADD,EAEE;MACD,IAAMiB,KAAK,GACVjB,gBAAgB,CAACkB,mBAAjB,GACAlB,gBAAgB,CAACmB,mBAFlB;MAIA,OAAOF,KAAP;IACA;;;WAED,kCAAiCzC,MAAjC,EAA2D;MAC1D,IAAIY,IAAI,GAAG,EAAX;;MAEA,QAAQZ,MAAM,CAACM,MAAf;QACC,KAAK,kBAAL;QACA,KAAK,iBAAL;UACCM,IAAI,GAAGZ,MAAM,CAACW,IAAP,CAAYC,IAAnB;UACA;MAJF;;MAOA,IAAMgC,MAAM,GAAG,KAAKlC,6BAAL,CAAmCE,IAAnC,CAAf;MACA,OAAOgC,MAAP;IACA;;;WAED,uCAAsChC,IAAtC,EAAoD;MACnD,IAAMiC,WAAW,GAAGjC,IAAI,CAACkC,KAAL,CAAW,WAAX,EAAwBC,GAAxB,EAApB;;MACA,IAAI,CAACF,WAAL,EAAkB;QACjB,MAAM,IAAIG,KAAJ,CAAU,mBAAV,CAAN;MACA;;MACD,IAAMJ,MAAM,GAAGC,WAAW,CAACjD,MAAZ,CAAmB,CAAnB,EAAsBiD,WAAW,CAACnD,MAAZ,GAAqB,CAA3C,IAAgD,IAA/D;MACA,OAAOkD,MAAP;IACA;;;WAED,4CACC5C,MADD,EAE4B;MAC3B,QAAQA,MAAM,CAACM,MAAf;QACC,KAAK,kBAAL;UACC,OAAO,KAAK+B,wBAAL,CAA8BrC,MAAM,CAACmC,UAArC,CAAP;;QACD;UACC,OAAO,SAAP;MAJF;IAMA;;;WAED,kCACCA,UADD,EAEoB;MACnB,OAAOA,UAAU,CAACI,cAAX,IAA6BJ,UAAU,CAACc,eAAX,GAA6B,CAA1D,GACJ,QADI,GAEJ,QAFH;IAGA;;;WAED,qCACCd,UADD,EAE2B;MAAA;;MAC1B,OAAOA,UAAU,CAAC9B,WAAX,CAAuB6C,GAAvB,CAA2B,UAACvC,IAAD;QAAA,OAAU,MAAI,CAACK,oBAAL,CAA0BL,IAA1B,CAAV;MAAA,CAA3B,CAAP;IACA;;;WAED,8BAA6BA,IAA7B,EAKE;MAAA;;MACD,OAAO;QACNwC,IAAI,EAAExC,IAAI,CAACyC,KADL;QAEN9C,MAAM,EAAEK,IAAI,CAACL,MAFP;QAGN+C,aAAa,EAAE1C,IAAI,CAAC2C,eAHd;QAINC,QAAQ,oBAAE5C,IAAI,CAAC4C,QAAP,2DAAmB;MAJrB,CAAP;IAMA;;;WAED,sBAAuC;MACtC,OAAO,KAAKlD,WAAZ;IACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tests/MockProgramFactory.ts"],"names":["MockProgramFactory","_lastCommand","commandInvocations","descriptionInvocations","actionInvocations","optionInvocations","aliasesInvocations","commands","actionHandler","_options","command","str","push","description","aliases","action","cb","options","option","hint","defaultValue"],"mappings":";;;;;;;;;;;;;;;;;;;IAiBqBA,kB;AACpB,gCAAsB;AAAA;AAAE;;;;WAExB,mBAAqC;AACpC;AACA,aAAO;AACNC,QAAAA,YAAY,EAAE,EADR;AAENC,QAAAA,kBAAkB,EAAE,EAFd;AAGNC,QAAAA,sBAAsB,EAAE,EAHlB;AAINC,QAAAA,iBAAiB,EAAE,EAJb;AAKNC,QAAAA,iBAAiB,EAAE,EALb;AAMNC,QAAAA,kBAAkB,EAAE,EANd;AAONC,QAAAA,QAAQ,EAAE,EAPJ;AAQNC,QAAAA,aAAa;AAAA,6GAAE,iBAAOC,QAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,WARP;AASNC,QAAAA,OATM,mBASEC,GATF,EASe;AACpB,eAAKT,kBAAL,CAAwBU,IAAxB,CAA6BD,GAA7B;AACA,eAAKV,YAAL,GAAoBU,GAApB;AAEA,iBAAO,IAAP;AACA,SAdK;AAeN;AACAE,QAAAA,WAhBM,uBAgBMF,GAhBN,EAgBmB;AACxB,eAAKR,sBAAL,CAA4BS,IAA5B,CAAiC;AAChCF,YAAAA,OAAO,EAAE,KAAKT,YADkB;AAEhCY,YAAAA,WAAW,EAAEF;AAFmB,WAAjC;AAIA,iBAAO,IAAP;AACA,SAtBK;AAuBN;AACAG,QAAAA,OAxBM,mBAwBEA,QAxBF,EAwBqB;AAAA;;AAC1B,wCAAKR,kBAAL,EAAwBM,IAAxB,kEAAgCE,QAAhC;;AACA,iBAAO,IAAP;AACA,SA3BK;AA4BNC,QAAAA,MA5BM,kBA4BCC,EA5BD,EA4BwC;AAC7C,eAAKZ,iBAAL,CAAuBQ,IAAvB,CAA4B,KAAKX,YAAjC;;AAEA,eAAKO,aAAL;AAAA,qGAAqB,kBAAOS,OAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BACdD,EAAE,CAACC,OAAD,EAAU,EAAV,CADY;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAArB;;AAAA;AAAA;AAAA;AAAA;;AAIA,iBAAO,IAAP;AACA,SApCK;AAqCN;AACAC,QAAAA,MAtCM,kBAsCCA,OAtCD,EAsCiBC,IAtCjB,EAsC+BC,YAtC/B,EAsCqD;AAC1D,eAAKf,iBAAL,CAAuBO,IAAvB,CAA4B;AAC3BF,YAAAA,OAAO,EAAE,KAAKT,YADa;AAE3BiB,YAAAA,MAAM,EAANA,OAF2B;AAG3BC,YAAAA,IAAI,EAAJA,IAH2B;AAI3BC,YAAAA,YAAY,EAAZA;AAJ2B,WAA5B;AAMA,iBAAO,IAAP;AACA;AA9CK,OAAP;AAgDA","sourcesContent":["import { CommanderStatic } from 'commander'\n\nexport type MockProgram = CommanderStatic['program'] & {\n\tactionHandler: (options: Record<string, string>) => Promise<void>\n\tdescriptionInvocations: { command: string; description: string }[]\n\toptionInvocations: {\n\t\tcommand: string\n\t\toption: string\n\t\thint: string\n\t\tdefaultValue: string\n\t}[]\n\t_lastCommand: string\n\tcommandInvocations: string[]\n\tactionInvocations: string[]\n\taliasesInvocations: string[]\n}\n\nexport default class MockProgramFactory {\n\tprivate constructor() {}\n\n\tpublic static Program(): MockProgram {\n\t\t// @ts-ignore\n\t\treturn {\n\t\t\t_lastCommand: '',\n\t\t\tcommandInvocations: [],\n\t\t\tdescriptionInvocations: [],\n\t\t\tactionInvocations: [],\n\t\t\toptionInvocations: [],\n\t\t\taliasesInvocations: [],\n\t\t\tcommands: [],\n\t\t\tactionHandler: async (_options?: Record<string, string>) => {},\n\t\t\tcommand(str: string) {\n\t\t\t\tthis.commandInvocations.push(str)\n\t\t\t\tthis._lastCommand = str\n\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\tdescription(str: string) {\n\t\t\t\tthis.descriptionInvocations.push({\n\t\t\t\t\tcommand: this._lastCommand,\n\t\t\t\t\tdescription: str,\n\t\t\t\t})\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\taliases(aliases: string[]) {\n\t\t\t\tthis.aliasesInvocations.push(...aliases)\n\t\t\t\treturn this\n\t\t\t},\n\t\t\taction(cb: (...args: any[]) => Promise<void>) {\n\t\t\t\tthis.actionInvocations.push(this._lastCommand)\n\n\t\t\t\tthis.actionHandler = async (options: Record<string, string>) => {\n\t\t\t\t\tawait cb(options, {})\n\t\t\t\t}\n\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\toption(option: string, hint: string, defaultValue: string) {\n\t\t\t\tthis.optionInvocations.push({\n\t\t\t\t\tcommand: this._lastCommand,\n\t\t\t\t\toption,\n\t\t\t\t\thint,\n\t\t\t\t\tdefaultValue,\n\t\t\t\t})\n\t\t\t\treturn this\n\t\t\t},\n\t\t}\n\t}\n}\n"],"file":"MockProgramFactory.js"}
1
+ {"version":3,"file":"MockProgramFactory.js","names":["MockProgramFactory","_lastCommand","commandInvocations","descriptionInvocations","actionInvocations","optionInvocations","aliasesInvocations","commands","actionHandler","_options","command","str","push","description","aliases","action","cb","options","option","hint","defaultValue"],"sources":["../../src/tests/MockProgramFactory.ts"],"sourcesContent":["import { CommanderStatic } from 'commander'\n\nexport type MockProgram = CommanderStatic['program'] & {\n\tactionHandler: (options: Record<string, string>) => Promise<void>\n\tdescriptionInvocations: { command: string; description: string }[]\n\toptionInvocations: {\n\t\tcommand: string\n\t\toption: string\n\t\thint: string\n\t\tdefaultValue: string\n\t}[]\n\t_lastCommand: string\n\tcommandInvocations: string[]\n\tactionInvocations: string[]\n\taliasesInvocations: string[]\n}\n\nexport default class MockProgramFactory {\n\tprivate constructor() {}\n\n\tpublic static Program(): MockProgram {\n\t\t// @ts-ignore\n\t\treturn {\n\t\t\t_lastCommand: '',\n\t\t\tcommandInvocations: [],\n\t\t\tdescriptionInvocations: [],\n\t\t\tactionInvocations: [],\n\t\t\toptionInvocations: [],\n\t\t\taliasesInvocations: [],\n\t\t\tcommands: [],\n\t\t\tactionHandler: async (_options?: Record<string, string>) => {},\n\t\t\tcommand(str: string) {\n\t\t\t\tthis.commandInvocations.push(str)\n\t\t\t\tthis._lastCommand = str\n\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\tdescription(str: string) {\n\t\t\t\tthis.descriptionInvocations.push({\n\t\t\t\t\tcommand: this._lastCommand,\n\t\t\t\t\tdescription: str,\n\t\t\t\t})\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\taliases(aliases: string[]) {\n\t\t\t\tthis.aliasesInvocations.push(...aliases)\n\t\t\t\treturn this\n\t\t\t},\n\t\t\taction(cb: (...args: any[]) => Promise<void>) {\n\t\t\t\tthis.actionInvocations.push(this._lastCommand)\n\n\t\t\t\tthis.actionHandler = async (options: Record<string, string>) => {\n\t\t\t\t\tawait cb(options, {})\n\t\t\t\t}\n\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\toption(option: string, hint: string, defaultValue: string) {\n\t\t\t\tthis.optionInvocations.push({\n\t\t\t\t\tcommand: this._lastCommand,\n\t\t\t\t\toption,\n\t\t\t\t\thint,\n\t\t\t\t\tdefaultValue,\n\t\t\t\t})\n\t\t\t\treturn this\n\t\t\t},\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAiBqBA,kB;EACpB,8BAAsB;IAAA;EAAE;;;;WAExB,mBAAqC;MACpC;MACA,OAAO;QACNC,YAAY,EAAE,EADR;QAENC,kBAAkB,EAAE,EAFd;QAGNC,sBAAsB,EAAE,EAHlB;QAINC,iBAAiB,EAAE,EAJb;QAKNC,iBAAiB,EAAE,EALb;QAMNC,kBAAkB,EAAE,EANd;QAONC,QAAQ,EAAE,EAPJ;QAQNC,aAAa;UAAA,mGAAE,iBAAOC,QAAP;YAAA;cAAA;gBAAA;kBAAA;kBAAA;oBAAA;gBAAA;cAAA;YAAA;UAAA,CAAF;;UAAA;YAAA;UAAA;;UAAA;QAAA,GARP;QASNC,OATM,mBASEC,GATF,EASe;UACpB,KAAKT,kBAAL,CAAwBU,IAAxB,CAA6BD,GAA7B;UACA,KAAKV,YAAL,GAAoBU,GAApB;UAEA,OAAO,IAAP;QACA,CAdK;QAeN;QACAE,WAhBM,uBAgBMF,GAhBN,EAgBmB;UACxB,KAAKR,sBAAL,CAA4BS,IAA5B,CAAiC;YAChCF,OAAO,EAAE,KAAKT,YADkB;YAEhCY,WAAW,EAAEF;UAFmB,CAAjC;UAIA,OAAO,IAAP;QACA,CAtBK;QAuBN;QACAG,OAxBM,mBAwBEA,QAxBF,EAwBqB;UAAA;;UAC1B,8BAAKR,kBAAL,EAAwBM,IAAxB,kEAAgCE,QAAhC;;UACA,OAAO,IAAP;QACA,CA3BK;QA4BNC,MA5BM,kBA4BCC,EA5BD,EA4BwC;UAC7C,KAAKZ,iBAAL,CAAuBQ,IAAvB,CAA4B,KAAKX,YAAjC;;UAEA,KAAKO,aAAL;YAAA,yFAAqB,kBAAOS,OAAP;cAAA;gBAAA;kBAAA;oBAAA;sBAAA;sBAAA,OACdD,EAAE,CAACC,OAAD,EAAU,EAAV,CADY;;oBAAA;oBAAA;sBAAA;kBAAA;gBAAA;cAAA;YAAA,CAArB;;YAAA;cAAA;YAAA;UAAA;;UAIA,OAAO,IAAP;QACA,CApCK;QAqCN;QACAC,MAtCM,kBAsCCA,OAtCD,EAsCiBC,IAtCjB,EAsC+BC,YAtC/B,EAsCqD;UAC1D,KAAKf,iBAAL,CAAuBO,IAAvB,CAA4B;YAC3BF,OAAO,EAAE,KAAKT,YADa;YAE3BiB,MAAM,EAANA,OAF2B;YAG3BC,IAAI,EAAJA,IAH2B;YAI3BC,YAAY,EAAZA;UAJ2B,CAA5B;UAMA,OAAO,IAAP;QACA;MA9CK,CAAP;IAgDA"}