@sprucelabs/spruce-cli 15.4.12 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  3. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  43. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  44. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  45. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  63. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  67. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  68. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  69. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  70. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  71. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  89. package/build/GlobalEmitter.js.map +1 -1
  90. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  91. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  92. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  93. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  94. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  95. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  96. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  97. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  98. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  99. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  100. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  101. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  102. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  103. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  104. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  105. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  106. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  107. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  108. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  109. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  110. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  111. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  112. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  113. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  114. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  115. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  116. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  117. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  118. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  119. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  120. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  121. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  122. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  123. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  124. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  125. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  126. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  127. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  128. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  129. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  130. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  131. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  132. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  133. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  135. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  136. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  137. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  138. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  139. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  140. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  141. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  142. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  143. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  144. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  145. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  146. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  147. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  148. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  149. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  150. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  151. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  152. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  153. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
  155. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  156. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  157. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  158. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  159. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  161. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  169. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  171. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  173. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  175. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  176. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  177. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  178. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  179. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  180. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  181. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  182. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  183. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  184. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  185. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  186. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  187. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  188. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  189. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  190. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  191. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  192. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  193. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  194. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  195. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  196. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  197. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  198. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  199. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  200. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  201. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  202. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  203. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  204. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  205. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  206. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  207. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  208. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  209. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  210. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  211. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  212. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  213. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  214. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  215. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  216. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  217. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  218. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  219. package/build/addons/filePrompt.addon.js.map +1 -1
  220. package/build/cli.js.map +1 -1
  221. package/build/components/FormComponent.js.map +1 -1
  222. package/build/components/QuizComponent.js.map +1 -1
  223. package/build/errors/SpruceError.js.map +1 -1
  224. package/build/errors/actionCancelled.builder.js.map +1 -1
  225. package/build/errors/bootError.builder.js.map +1 -1
  226. package/build/errors/buildFailed.builder.js.map +1 -1
  227. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  228. package/build/errors/commandAborted.builder.js.map +1 -1
  229. package/build/errors/commandBlocked.builder.js.map +1 -1
  230. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  231. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  232. package/build/errors/dependencyExists.builder.js.map +1 -1
  233. package/build/errors/deployFailed.builder.js.map +1 -1
  234. package/build/errors/directoryEmpty.builder.js.map +1 -1
  235. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  236. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  237. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  238. package/build/errors/failedToImport.builder.js.map +1 -1
  239. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  240. package/build/errors/fileExists.builder.js.map +1 -1
  241. package/build/errors/generic.builder.js.map +1 -1
  242. package/build/errors/invalidCommand.builder.js.map +1 -1
  243. package/build/errors/invalidEventContract.builder.js.map +1 -1
  244. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  245. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  246. package/build/errors/lintFailed.builder.js.map +1 -1
  247. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  248. package/build/errors/missingDependencies.builder.js.map +1 -1
  249. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  250. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  251. package/build/errors/notImplemented.builder.js.map +1 -1
  252. package/build/errors/notLoggedIn.builder.js.map +1 -1
  253. package/build/errors/schemaExists.builder.js.map +1 -1
  254. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  255. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  256. package/build/errors/skillNotFound.builder.js.map +1 -1
  257. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  258. package/build/errors/skillViewExists.builder.js.map +1 -1
  259. package/build/errors/storeExists.builder.js.map +1 -1
  260. package/build/errors/testFailed.builder.js.map +1 -1
  261. package/build/errors/themeExists.builder.js.map +1 -1
  262. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  263. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  264. package/build/features/AbstractAction.d.ts +1 -1
  265. package/build/features/AbstractAction.js.map +1 -1
  266. package/build/features/AbstractFeature.js.map +1 -1
  267. package/build/features/ActionExecuter.js.map +1 -1
  268. package/build/features/ActionFactory.js.map +1 -1
  269. package/build/features/ActionQuestionAsker.js.map +1 -1
  270. package/build/features/FeatureCommandAttacher.js.map +1 -1
  271. package/build/features/FeatureInstaller.js.map +1 -1
  272. package/build/features/OverrideActionDecorator.js.map +1 -1
  273. package/build/features/cache/CacheFeature.js.map +1 -1
  274. package/build/features/cache/actions/DisableAction.js.map +1 -1
  275. package/build/features/cache/actions/EnableAction.js.map +1 -1
  276. package/build/features/conversation/ConversationFeature.js.map +1 -1
  277. package/build/features/conversation/actions/TestAction.js.map +1 -1
  278. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  279. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  280. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  281. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  282. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  283. package/build/features/deploy/DeployFeature.js.map +1 -1
  284. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  285. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  286. package/build/features/error/ErrorFeature.js.map +1 -1
  287. package/build/features/error/ParentTestFinder.js.map +1 -1
  288. package/build/features/error/actions/CreateAction.js.map +1 -1
  289. package/build/features/error/actions/SyncAction.js.map +1 -1
  290. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  291. package/build/features/event/EventFeature.js.map +1 -1
  292. package/build/features/event/actions/CreateAction.js.map +1 -1
  293. package/build/features/event/actions/ListenAction.js.map +1 -1
  294. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  295. package/build/features/event/actions/SyncAction.js.map +1 -1
  296. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  297. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  298. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  299. package/build/features/event/stores/EventStore.js.map +1 -1
  300. package/build/features/event/stores/ListenerStore.js.map +1 -1
  301. package/build/features/event/writers/EventWriter.js.map +1 -1
  302. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  303. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  304. package/build/features/feature.utilities.js.map +1 -1
  305. package/build/features/features.types.js.map +1 -1
  306. package/build/features/log/LogFeature.js.map +1 -1
  307. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  308. package/build/features/log/writers/LogWriter.js.map +1 -1
  309. package/build/features/node/NodeFeature.js.map +1 -1
  310. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  311. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  312. package/build/features/node/writers/NodeWriter.js.map +1 -1
  313. package/build/features/onboard/OnboardFeature.js.map +1 -1
  314. package/build/features/onboard/ScriptLoader.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  318. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  319. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  320. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  321. package/build/features/organization/OrganizationFeature.js.map +1 -1
  322. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  323. package/build/features/person/PersonFeature.js.map +1 -1
  324. package/build/features/person/actions/LoginAction.js.map +1 -1
  325. package/build/features/person/actions/LogoutAction.js.map +1 -1
  326. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  327. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  328. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  329. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  330. package/build/features/schema/SchemaFeature.js.map +1 -1
  331. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  332. package/build/features/schema/actions/CreateAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncAction.js.map +1 -1
  334. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  335. package/build/features/schema/services/SchemaService.js.map +1 -1
  336. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  337. package/build/features/schema/stores/SchemaStore.js +2 -1
  338. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  339. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  341. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  342. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  343. package/build/features/skill/SkillFeature.js.map +1 -1
  344. package/build/features/skill/actions/BootAction.js.map +1 -1
  345. package/build/features/skill/actions/CreateAction.js.map +1 -1
  346. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  347. package/build/features/skill/actions/LoginAction.js.map +1 -1
  348. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  349. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  350. package/build/features/skill/stores/SkillStore.js.map +1 -1
  351. package/build/features/skill/updaters/Updater.js.map +1 -1
  352. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  353. package/build/features/store/StoreFeature.js.map +1 -1
  354. package/build/features/store/actions/CreateAction.js.map +1 -1
  355. package/build/features/store/actions/SyncAction.js.map +1 -1
  356. package/build/features/store/stores/StoreStore.js.map +1 -1
  357. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  358. package/build/features/store/writers/StoreWriter.js.map +1 -1
  359. package/build/features/test/TestFeature.js.map +1 -1
  360. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  361. package/build/features/test/TestReporter.js.map +1 -1
  362. package/build/features/test/TestRunner.js.map +1 -1
  363. package/build/features/test/actions/CreateAction.js.map +1 -1
  364. package/build/features/test/actions/SetupAction.js.map +1 -1
  365. package/build/features/test/actions/TestAction.js.map +1 -1
  366. package/build/features/test/writers/TestWriter.js.map +1 -1
  367. package/build/features/validateAndNormalize.utility.js.map +1 -1
  368. package/build/features/view/ViewFeature.js.map +1 -1
  369. package/build/features/view/actions/CreateAction.js.map +1 -1
  370. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  371. package/build/features/view/actions/SyncAction.js.map +1 -1
  372. package/build/features/view/actions/WatchAction.js.map +1 -1
  373. package/build/features/view/stores/ViewStore.js.map +1 -1
  374. package/build/features/view/writers/ViewWriter.js.map +1 -1
  375. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  376. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  377. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  378. package/build/features/watch/WatchFeature.js.map +1 -1
  379. package/build/index.js.map +1 -1
  380. package/build/interfaces/SpyInterface.js +0 -1
  381. package/build/interfaces/SpyInterface.js.map +1 -1
  382. package/build/interfaces/TerminalInterface.js.map +1 -1
  383. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  406. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  407. package/build/services/CommandService.d.ts +1 -0
  408. package/build/services/CommandService.js.map +1 -1
  409. package/build/services/GameService.js.map +1 -1
  410. package/build/services/ImportService.js.map +1 -1
  411. package/build/services/LintService.js.map +1 -1
  412. package/build/services/PkgService.js.map +1 -1
  413. package/build/services/ServiceFactory.js.map +1 -1
  414. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  415. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  416. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  417. package/build/tests/AbstractCliTest.js.map +1 -1
  418. package/build/tests/AbstractEventTest.js.map +1 -1
  419. package/build/tests/AbstractSchemaTest.js.map +1 -1
  420. package/build/tests/AbstractTestTest.js.map +1 -1
  421. package/build/tests/CommandFaker.js.map +1 -1
  422. package/build/tests/JestJsonParser.js.map +1 -1
  423. package/build/tests/buildTestCache.js.map +1 -1
  424. package/build/tests/cleanTestCache.js.map +1 -1
  425. package/build/tests/cleanTestData.js.map +1 -1
  426. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  427. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  428. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  429. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  430. package/build/tests/utilities/test.utility.js.map +1 -1
  431. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  432. package/build/utilities/action.utility.js.map +1 -1
  433. package/build/utilities/apiClient.utility.d.ts +1 -1
  434. package/build/utilities/commander.utility.js.map +1 -1
  435. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  436. package/build/utilities/form.utility.js.map +1 -1
  437. package/build/utilities/introspection.utility.js.map +1 -1
  438. package/build/utilities/tsConfig.utility.js.map +1 -1
  439. package/build/widgets/Theme.js.map +1 -1
  440. package/build/widgets/WidgetFactory.js.map +1 -1
  441. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  445. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  446. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  447. package/build/widgets/terminalKit/termKit.utility.d.ts +1 -1
  448. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  449. package/build/widgets/types/input.types.js.map +1 -1
  450. package/build/widgets/types/menuBar.types.js.map +1 -1
  451. package/build/widgets/types/text.types.js.map +1 -1
  452. package/build/widgets/types/window.types.js.map +1 -1
  453. package/build/widgets/widget.utilities.d.ts +1 -1
  454. package/build/writers/AbstractWriter.js.map +1 -1
  455. package/package.json +36 -36
  456. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  457. package/src/features/schema/stores/SchemaStore.ts +4 -2
  458. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  459. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  460. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  461. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"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
+ {"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,"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
+ {"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,"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
+ {"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,0BAAA,CAASC,QAAT,CAAkBH,IAAlB,CAAjB;;MACA,IAAMI,cAAc,GAAGH,QAAQ,CAACI,OAAT,CACtB,sBADsB,EAEtB,qBAFsB,CAAvB;;MAKAH,0BAAA,CAASI,SAAT,CAAmBN,IAAnB,EAAyBI,cAAzB;IACA;;;EAnB4CG,4B"}
@@ -1 +1 @@
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
+ {"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,0BAAA,CAAeC,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,"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":"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"}
1
+ {"version":3,"file":"JestJsonParser.js","names":["JestJsonParser","totalTestFiles","data","dataToProcess","buffer","endDividerStartIdx","search","escapeRegExp","END_DIVIDER","startDividerIdx","Math","max","START_DIVIDER","endDividerEndIdx","length","firstSegment","substr","cleanedSegment","replace","trim","result","retrocycle","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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildTestCache.js","names":["require","config","packageJsonContents","diskUtil","readFile","resolvePath","__dirname","packageJson","JSON","parse","testSkillCache","testKeys","Object","keys","remaining","length","term","TerminalInterface","start","Date","getTime","testSkillsToCache","process","env","TEST_SKILLS_TO_CACHE","undefined","onlyInstall","split","map","t","trim","shouldRunSequentially","argv","find","a","maxSimultaneous","MAX_SIMULTANEOUS_SKILL_CACHERS","totalSimultaneous","progressInterval","doesSupportColor","didMessagesChange","run","getTimeSpent","renderLine","renderWarning","cacheOrSkip","setup","cache","lineNum","cwd","cacheKey","fixture","options","doesDirExist","GraphicsTextEffect","Italic","deleteDir","Green","installFeatures","durationUtil","msToFriendly","Bold","Red","stack","importCacheDir","testUtil","resolveTestDir","ImportService","setCacheDir","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","FeatureFixture","ui","shouldGenerateCacheIfMissing","apiClientFactory","getApiClientFactory","cacheTracker","loadCacheTracker","indexOf","Yellow","message","effects","messages","render","console","log","now","delta","clear","WILL_BUILD_CACHE_SCRIPT","renderHeadline","moveCursorTo","eraseLine","stopLoading","startLoading","dropInS","clearBelowCursor","setInterval","Promise","all","idx","promises","resolve","setTimeout","then","DID_BUILD_CACHE_SCRIPT","clearInterval","err","renderError"],"sources":["../../src/tests/buildTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ImportService from '../services/ImportService'\nimport ServiceFactory from '../services/ServiceFactory'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport FeatureFixture from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nrequire('dotenv').config()\n\nconst packageJsonContents = diskUtil.readFile(\n\tdiskUtil.resolvePath(__dirname, '..', '..', 'package.json')\n)\n\nconst packageJson = JSON.parse(packageJsonContents)\nconst { testSkillCache } = packageJson\nconst testKeys = Object.keys(testSkillCache)\n\nlet remaining = testKeys.length\nconst term = new TerminalInterface(__dirname, true)\nconst start = new Date().getTime()\nconst testSkillsToCache =\n\tprocess.env.TEST_SKILLS_TO_CACHE === '*'\n\t\t? undefined\n\t\t: process.env.TEST_SKILLS_TO_CACHE\nconst onlyInstall = testSkillsToCache?.split(',').map((t) => t.trim()) as\n\t| string[]\n\t| undefined\n\nconst shouldRunSequentially = !!process.argv.find(\n\t(a) => a === '--shouldRunSequentially=true' || a === '--shouldRunSequentially'\n)\nconst maxSimultaneous = process.env.MAX_SIMULTANEOUS_SKILL_CACHERS ?? 10\nlet totalSimultaneous = 0\nlet progressInterval: any\nconst doesSupportColor = TerminalInterface.doesSupportColor()\n\nlet didMessagesChange = true\n\nasync function run() {\n\tterm.clear()\n\n\tif (process.env.WILL_BUILD_CACHE_SCRIPT) {\n\t\tterm.renderLine('Running pre build cache script')\n\t\texecSync(process.env.WILL_BUILD_CACHE_SCRIPT)\n\t}\n\n\tterm.renderHeadline(`Found ${testKeys.length} skills to cache.`)\n\n\tlet messages: [string, any][] = []\n\n\tconst render = async () => {\n\t\tif (didMessagesChange) {\n\t\t\tterm.moveCursorTo(0, 6)\n\n\t\t\tfor (const message of messages) {\n\t\t\t\tterm.eraseLine()\n\t\t\t\tterm.renderLine(message[0], message[1])\n\t\t\t}\n\n\t\t\tawait term.stopLoading()\n\n\t\t\tterm.eraseLine()\n\t\t\tterm.renderLine('')\n\t\t}\n\n\t\tdidMessagesChange = false\n\n\t\tawait term.startLoading(\n\t\t\t`${`Building ${remaining} skill${dropInS(\n\t\t\t\tremaining\n\t\t\t)}`}. ${durationUtil.msToFriendly(getTimeSpent())}`\n\t\t)\n\n\t\tterm.clearBelowCursor()\n\t}\n\n\tprogressInterval = doesSupportColor && setInterval(render, 1000)\n\n\tfunction getTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - start\n\t\treturn delta\n\t}\n\n\tfunction renderLine(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tfunction renderWarning(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tif (doesSupportColor) {\n\t\tawait term.startLoading(\n\t\t\t`Building ${remaining} remaining skill${dropInS(remaining)}...`\n\t\t)\n\t}\n\n\tif (shouldRunSequentially) {\n\t\tawait Promise.all(\n\t\t\ttestKeys.map((cacheKey, idx) => cacheOrSkip(idx, cacheKey))\n\t\t)\n\t} else {\n\t\tconst promises = testKeys.map(async (cacheKey, idx) => {\n\t\t\twhile (totalSimultaneous >= maxSimultaneous) {\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000))\n\t\t\t}\n\t\t\ttotalSimultaneous++\n\t\t\tawait cacheOrSkip(idx, cacheKey)\n\t\t\ttotalSimultaneous--\n\t\t})\n\n\t\tawait Promise.all(promises)\n\t}\n\n\tawait term.stopLoading()\n\tterm.renderLine(`Done! ${durationUtil.msToFriendly(getTimeSpent())}`)\n\n\tasync function cacheOrSkip(lineNum: number, cacheKey: string) {\n\t\tconst { cacheTracker, cwd, fixture, options } = setup(cacheKey)\n\n\t\tif (onlyInstall && onlyInstall.indexOf(cacheKey) === -1) {\n\t\t\trenderLine(lineNum, `Skipping '${cacheKey}'.`, [\n\t\t\t\tGraphicsTextEffect.Yellow,\n\t\t\t])\n\t\t\tremaining--\n\t\t} else if (\n\t\t\tcacheTracker[cacheKey] &&\n\t\t\tdiskUtil.doesDirExist(diskUtil.resolvePath(cwd, 'node_modules'))\n\t\t) {\n\t\t\tremaining--\n\t\t\trenderLine(lineNum, `'${cacheKey}' already cached. Skipping...`, [\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t])\n\t\t} else {\n\t\t\tawait cache(lineNum, cwd, cacheKey, fixture, options)\n\t\t\tremaining--\n\t\t}\n\t}\n\n\tfunction setup(cacheKey: string) {\n\t\tconst options = testSkillCache[cacheKey]\n\n\t\tconst importCacheDir = testUtil.resolveTestDir('spruce-cli-import-cache')\n\t\tImportService.setCacheDir(importCacheDir)\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst cwd = testUtil.resolveTestDir(cacheKey)\n\n\t\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\t\tconst fixture = new FeatureFixture({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tui: new TerminalInterface(cwd),\n\t\t\tshouldGenerateCacheIfMissing: true,\n\t\t\tapiClientFactory: mercuryFixture.getApiClientFactory(),\n\t\t})\n\n\t\tconst cacheTracker = fixture.loadCacheTracker()\n\t\treturn { cacheTracker, cwd, fixture, options }\n\t}\n\n\tasync function cache(\n\t\tlineNum: number,\n\t\tcwd: string,\n\t\tcacheKey: string,\n\t\tfixture: FeatureFixture,\n\t\toptions: any\n\t) {\n\t\tif (diskUtil.doesDirExist(cwd)) {\n\t\t\trenderWarning(\n\t\t\t\tlineNum,\n\t\t\t\t`Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`,\n\t\t\t\t[GraphicsTextEffect.Italic]\n\t\t\t)\n\t\t\tdiskUtil.deleteDir(cwd)\n\t\t}\n\n\t\trenderLine(lineNum, `Starting to build '${cacheKey}'...`, [\n\t\t\tGraphicsTextEffect.Green,\n\t\t])\n\n\t\ttry {\n\t\t\tawait fixture.installFeatures(options, cacheKey)\n\t\t\trenderLine(\n\t\t\t\tlineNum,\n\t\t\t\t`Done caching '${cacheKey}'. ${\n\t\t\t\t\tremaining - 1\n\t\t\t\t} remaining (${durationUtil.msToFriendly(getTimeSpent())})...`,\n\t\t\t\t[GraphicsTextEffect.Green, GraphicsTextEffect.Bold]\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\trenderLine(lineNum, `Error caching '${cacheKey}'...`, [\n\t\t\t\tGraphicsTextEffect.Red,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t])\n\n\t\t\trenderLine(lineNum, `Error caching ${cacheKey}:\\n\\n${err.stack}`)\n\t\t}\n\t}\n}\n\nfunction dropInS(remaining: number) {\n\treturn remaining === 1 ? '' : 's'\n}\n\nvoid run()\n\t.then(() => {\n\t\tif (process.env.DID_BUILD_CACHE_SCRIPT) {\n\t\t\tterm.renderLine('Running pre build cache script')\n\t\t\texecSync(process.env.DID_BUILD_CACHE_SCRIPT)\n\t\t}\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n"],"mappings":"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"}
1
+ {"version":3,"file":"buildTestCache.js","names":["require","config","packageJsonContents","diskUtil","readFile","resolvePath","__dirname","packageJson","JSON","parse","testSkillCache","testKeys","Object","keys","remaining","length","term","TerminalInterface","start","Date","getTime","testSkillsToCache","process","env","TEST_SKILLS_TO_CACHE","undefined","onlyInstall","split","map","t","trim","shouldRunSequentially","argv","find","a","maxSimultaneous","MAX_SIMULTANEOUS_SKILL_CACHERS","totalSimultaneous","progressInterval","doesSupportColor","didMessagesChange","run","getTimeSpent","renderLine","renderWarning","cacheOrSkip","setup","cache","lineNum","cwd","cacheKey","fixture","options","doesDirExist","GraphicsTextEffect","Italic","deleteDir","Green","installFeatures","durationUtil","msToFriendly","Bold","Red","stack","importCacheDir","testUtil","resolveTestDir","ImportService","setCacheDir","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","FeatureFixture","ui","shouldGenerateCacheIfMissing","apiClientFactory","getApiClientFactory","cacheTracker","loadCacheTracker","indexOf","Yellow","message","effects","messages","render","console","log","now","delta","clear","WILL_BUILD_CACHE_SCRIPT","execSync","renderHeadline","moveCursorTo","eraseLine","stopLoading","startLoading","dropInS","clearBelowCursor","setInterval","Promise","all","idx","promises","resolve","setTimeout","then","DID_BUILD_CACHE_SCRIPT","clearInterval","err","renderError"],"sources":["../../src/tests/buildTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ImportService from '../services/ImportService'\nimport ServiceFactory from '../services/ServiceFactory'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport FeatureFixture from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nrequire('dotenv').config()\n\nconst packageJsonContents = diskUtil.readFile(\n\tdiskUtil.resolvePath(__dirname, '..', '..', 'package.json')\n)\n\nconst packageJson = JSON.parse(packageJsonContents)\nconst { testSkillCache } = packageJson\nconst testKeys = Object.keys(testSkillCache)\n\nlet remaining = testKeys.length\nconst term = new TerminalInterface(__dirname, true)\nconst start = new Date().getTime()\nconst testSkillsToCache =\n\tprocess.env.TEST_SKILLS_TO_CACHE === '*'\n\t\t? undefined\n\t\t: process.env.TEST_SKILLS_TO_CACHE\nconst onlyInstall = testSkillsToCache?.split(',').map((t) => t.trim()) as\n\t| string[]\n\t| undefined\n\nconst shouldRunSequentially = !!process.argv.find(\n\t(a) => a === '--shouldRunSequentially=true' || a === '--shouldRunSequentially'\n)\nconst maxSimultaneous = process.env.MAX_SIMULTANEOUS_SKILL_CACHERS ?? 10\nlet totalSimultaneous = 0\nlet progressInterval: any\nconst doesSupportColor = TerminalInterface.doesSupportColor()\n\nlet didMessagesChange = true\n\nasync function run() {\n\tterm.clear()\n\n\tif (process.env.WILL_BUILD_CACHE_SCRIPT) {\n\t\tterm.renderLine('Running pre build cache script')\n\t\texecSync(process.env.WILL_BUILD_CACHE_SCRIPT)\n\t}\n\n\tterm.renderHeadline(`Found ${testKeys.length} skills to cache.`)\n\n\tlet messages: [string, any][] = []\n\n\tconst render = async () => {\n\t\tif (didMessagesChange) {\n\t\t\tterm.moveCursorTo(0, 6)\n\n\t\t\tfor (const message of messages) {\n\t\t\t\tterm.eraseLine()\n\t\t\t\tterm.renderLine(message[0], message[1])\n\t\t\t}\n\n\t\t\tawait term.stopLoading()\n\n\t\t\tterm.eraseLine()\n\t\t\tterm.renderLine('')\n\t\t}\n\n\t\tdidMessagesChange = false\n\n\t\tawait term.startLoading(\n\t\t\t`${`Building ${remaining} skill${dropInS(\n\t\t\t\tremaining\n\t\t\t)}`}. ${durationUtil.msToFriendly(getTimeSpent())}`\n\t\t)\n\n\t\tterm.clearBelowCursor()\n\t}\n\n\tprogressInterval = doesSupportColor && setInterval(render, 1000)\n\n\tfunction getTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - start\n\t\treturn delta\n\t}\n\n\tfunction renderLine(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tfunction renderWarning(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tif (doesSupportColor) {\n\t\tawait term.startLoading(\n\t\t\t`Building ${remaining} remaining skill${dropInS(remaining)}...`\n\t\t)\n\t}\n\n\tif (shouldRunSequentially) {\n\t\tawait Promise.all(\n\t\t\ttestKeys.map((cacheKey, idx) => cacheOrSkip(idx, cacheKey))\n\t\t)\n\t} else {\n\t\tconst promises = testKeys.map(async (cacheKey, idx) => {\n\t\t\twhile (totalSimultaneous >= maxSimultaneous) {\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000))\n\t\t\t}\n\t\t\ttotalSimultaneous++\n\t\t\tawait cacheOrSkip(idx, cacheKey)\n\t\t\ttotalSimultaneous--\n\t\t})\n\n\t\tawait Promise.all(promises)\n\t}\n\n\tawait term.stopLoading()\n\tterm.renderLine(`Done! ${durationUtil.msToFriendly(getTimeSpent())}`)\n\n\tasync function cacheOrSkip(lineNum: number, cacheKey: string) {\n\t\tconst { cacheTracker, cwd, fixture, options } = setup(cacheKey)\n\n\t\tif (onlyInstall && onlyInstall.indexOf(cacheKey) === -1) {\n\t\t\trenderLine(lineNum, `Skipping '${cacheKey}'.`, [\n\t\t\t\tGraphicsTextEffect.Yellow,\n\t\t\t])\n\t\t\tremaining--\n\t\t} else if (\n\t\t\tcacheTracker[cacheKey] &&\n\t\t\tdiskUtil.doesDirExist(diskUtil.resolvePath(cwd, 'node_modules'))\n\t\t) {\n\t\t\tremaining--\n\t\t\trenderLine(lineNum, `'${cacheKey}' already cached. Skipping...`, [\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t])\n\t\t} else {\n\t\t\tawait cache(lineNum, cwd, cacheKey, fixture, options)\n\t\t\tremaining--\n\t\t}\n\t}\n\n\tfunction setup(cacheKey: string) {\n\t\tconst options = testSkillCache[cacheKey]\n\n\t\tconst importCacheDir = testUtil.resolveTestDir('spruce-cli-import-cache')\n\t\tImportService.setCacheDir(importCacheDir)\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst cwd = testUtil.resolveTestDir(cacheKey)\n\n\t\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\t\tconst fixture = new FeatureFixture({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tui: new TerminalInterface(cwd),\n\t\t\tshouldGenerateCacheIfMissing: true,\n\t\t\tapiClientFactory: mercuryFixture.getApiClientFactory(),\n\t\t})\n\n\t\tconst cacheTracker = fixture.loadCacheTracker()\n\t\treturn { cacheTracker, cwd, fixture, options }\n\t}\n\n\tasync function cache(\n\t\tlineNum: number,\n\t\tcwd: string,\n\t\tcacheKey: string,\n\t\tfixture: FeatureFixture,\n\t\toptions: any\n\t) {\n\t\tif (diskUtil.doesDirExist(cwd)) {\n\t\t\trenderWarning(\n\t\t\t\tlineNum,\n\t\t\t\t`Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`,\n\t\t\t\t[GraphicsTextEffect.Italic]\n\t\t\t)\n\t\t\tdiskUtil.deleteDir(cwd)\n\t\t}\n\n\t\trenderLine(lineNum, `Starting to build '${cacheKey}'...`, [\n\t\t\tGraphicsTextEffect.Green,\n\t\t])\n\n\t\ttry {\n\t\t\tawait fixture.installFeatures(options, cacheKey)\n\t\t\trenderLine(\n\t\t\t\tlineNum,\n\t\t\t\t`Done caching '${cacheKey}'. ${\n\t\t\t\t\tremaining - 1\n\t\t\t\t} remaining (${durationUtil.msToFriendly(getTimeSpent())})...`,\n\t\t\t\t[GraphicsTextEffect.Green, GraphicsTextEffect.Bold]\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\trenderLine(lineNum, `Error caching '${cacheKey}'...`, [\n\t\t\t\tGraphicsTextEffect.Red,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t])\n\n\t\t\trenderLine(lineNum, `Error caching ${cacheKey}:\\n\\n${err.stack}`)\n\t\t}\n\t}\n}\n\nfunction dropInS(remaining: number) {\n\treturn remaining === 1 ? '' : 's'\n}\n\nvoid run()\n\t.then(() => {\n\t\tif (process.env.DID_BUILD_CACHE_SCRIPT) {\n\t\t\tterm.renderLine('Running pre build cache script')\n\t\t\texecSync(process.env.DID_BUILD_CACHE_SCRIPT)\n\t\t}\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cleanTestCache.js","names":["require","config","term","TerminalInterface","__dirname","dir","testUtil","resolveTestDir","process","env","CLEAN_CACHE_SCRIPT","renderHeadline","diskUtil","deleteDir","renderLine","GraphicsTextEffect","Green"],"sources":["../../src/tests/cleanTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nrequire('dotenv').config()\n\nconst term = new TerminalInterface(__dirname)\n\nconst dir = testUtil.resolveTestDir()\n\nif (process.env.CLEAN_CACHE_SCRIPT) {\n\tterm.renderHeadline('Running CLEAN_CACHE_SCRIPT')\n\texecSync(process.env.CLEAN_CACHE_SCRIPT)\n} else {\n\tterm.renderHeadline(`Clearing test cache at ${dir}.`)\n\tdiskUtil.deleteDir(dir)\n}\n\nterm.renderLine('Test cache cleared!', [GraphicsTextEffect.Green])\n"],"mappings":"AAAA;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,IAAI,GAAG,IAAIC,6BAAJ,CAAsBC,SAAtB,CAAb;;AAEA,IAAMC,GAAG,GAAGC,iBAASC,cAAT,EAAZ;;AAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,kBAAhB,EAAoC;EACnCR,IAAI,CAACS,cAAL,CAAoB,4BAApB;EACA,6BAASH,OAAO,CAACC,GAAR,CAAYC,kBAArB;AACA,CAHD,MAGO;EACNR,IAAI,CAACS,cAAL,kCAA8CN,GAA9C;;EACAO,2BAASC,SAAT,CAAmBR,GAAnB;AACA;;AAEDH,IAAI,CAACY,UAAL,CAAgB,qBAAhB,EAAuC,CAACC,sCAAmBC,KAApB,CAAvC"}
1
+ {"version":3,"file":"cleanTestCache.js","names":["require","config","term","TerminalInterface","__dirname","dir","testUtil","resolveTestDir","process","env","CLEAN_CACHE_SCRIPT","renderHeadline","execSync","diskUtil","deleteDir","renderLine","GraphicsTextEffect","Green"],"sources":["../../src/tests/cleanTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nrequire('dotenv').config()\n\nconst term = new TerminalInterface(__dirname)\n\nconst dir = testUtil.resolveTestDir()\n\nif (process.env.CLEAN_CACHE_SCRIPT) {\n\tterm.renderHeadline('Running CLEAN_CACHE_SCRIPT')\n\texecSync(process.env.CLEAN_CACHE_SCRIPT)\n} else {\n\tterm.renderHeadline(`Clearing test cache at ${dir}.`)\n\tdiskUtil.deleteDir(dir)\n}\n\nterm.renderLine('Test cache cleared!', [GraphicsTextEffect.Green])\n"],"mappings":"AAAA;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,IAAI,GAAG,IAAIC,6BAAJ,CAAsBC,SAAtB,CAAb;;AAEA,IAAMC,GAAG,GAAGC,gBAAA,CAASC,cAAT,EAAZ;;AAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,kBAAhB,EAAoC;EACnCR,IAAI,CAACS,cAAL,CAAoB,4BAApB;EACA,IAAAC,uBAAA,EAASJ,OAAO,CAACC,GAAR,CAAYC,kBAArB;AACA,CAHD,MAGO;EACNR,IAAI,CAACS,cAAL,kCAA8CN,GAA9C;;EACAQ,0BAAA,CAASC,SAAT,CAAmBT,GAAnB;AACA;;AAEDH,IAAI,CAACa,UAAL,CAAgB,qBAAhB,EAAuC,CAACC,qCAAA,CAAmBC,KAApB,CAAvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cleanTestData.js","names":["demoNumbers","Object","values","demoNumbersByName","cwd","process","term","TerminalInterface","run","renderHeadline","length","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","apiClientFactory","getApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","emitter","CliGlobalEmitter","Emitter","personFixture","PersonFixture","orgFixture","OrganizationFixture","skillFixture","SkillFixture","number","renderLine","loginAsDemoPerson","clearAllOrgs","totalOrgs","clearAllSkills","totalSkills","disconnectAll","then","err","renderError","exit"],"sources":["../../src/tests/cleanTestData.ts"],"sourcesContent":["import osUtil from 'os'\nimport CliGlobalEmitter from '../GlobalEmitter'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ServiceFactory from '../services/ServiceFactory'\nimport StoreFactory from '../stores/StoreFactory'\nimport * as demoNumbersByName from '../tests/constants'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\n\nconst demoNumbers = Object.values(demoNumbersByName)\n\nconst cwd = process.cwd()\nconst term = new TerminalInterface(cwd, true)\n\nasync function run() {\n\tterm.renderHeadline(\n\t\t`Starting cleanup for ${demoNumbers.length} demo numbers.`\n\t)\n\n\tconst serviceFactory = new ServiceFactory()\n\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\tconst apiClientFactory = mercuryFixture.getApiClientFactory()\n\tconst storeFactory = new StoreFactory({\n\t\tcwd,\n\t\tserviceFactory,\n\t\thomeDir: osUtil.homedir(),\n\t\temitter: CliGlobalEmitter.Emitter(),\n\t\tapiClientFactory,\n\t})\n\n\tconst personFixture = new PersonFixture(apiClientFactory)\n\tconst orgFixture = new OrganizationFixture(personFixture, storeFactory)\n\tconst skillFixture = new SkillFixture(\n\t\tpersonFixture,\n\t\tstoreFactory,\n\t\tapiClientFactory\n\t)\n\n\tfor (const number of demoNumbers) {\n\t\tterm.renderLine(`Starting cleanup for ${number}`)\n\t\tterm.renderLine(`Logging in...`)\n\n\t\tawait personFixture.loginAsDemoPerson(number)\n\n\t\tterm.renderLine(`Success`)\n\n\t\tterm.renderLine(`Deleting organizations`)\n\t\tconst totalOrgs = await orgFixture.clearAllOrgs()\n\t\tterm.renderLine(`${totalOrgs} orgs deleted`)\n\n\t\tterm.renderLine('Deleting skills')\n\t\tconst totalSkills = await skillFixture.clearAllSkills()\n\t\tterm.renderLine(`${totalSkills} deleted`)\n\t}\n\n\tawait mercuryFixture.disconnectAll()\n}\n\nvoid run()\n\t.then(() => {\n\t\tterm.renderLine('Done cleaning up!')\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tprocess.exit(1)\n\t})\n"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,MAAM,CAACC,MAAP,CAAcC,iBAAd,CAApB;AAEA,IAAMC,GAAG,GAAGC,OAAO,CAACD,GAAR,EAAZ;AACA,IAAME,IAAI,GAAG,IAAIC,6BAAJ,CAAsBH,GAAtB,EAA2B,IAA3B,CAAb;;SAEeI,G;;;;;uFAAf;IAAA;;IAAA;MAAA;QAAA;UAAA;YACCF,IAAI,CAACG,cAAL,gCACyBT,WAAW,CAACU,MADrC;YAIMC,cALP,GAKwB,IAAIC,0BAAJ,EALxB;YAMOC,cANP,GAMwB,IAAIC,0BAAJ,CAAmBV,GAAnB,EAAwBO,cAAxB,CANxB;YAOOI,gBAPP,GAO0BF,cAAc,CAACG,mBAAf,EAP1B;YAQOC,YARP,GAQsB,IAAIC,wBAAJ,CAAiB;cACrCd,GAAG,EAAHA,GADqC;cAErCO,cAAc,EAAdA,cAFqC;cAGrCQ,OAAO,EAAEC,eAAOC,OAAP,EAH4B;cAIrCC,OAAO,EAAEC,0BAAiBC,OAAjB,EAJ4B;cAKrCT,gBAAgB,EAAhBA;YALqC,CAAjB,CARtB;YAgBOU,aAhBP,GAgBuB,IAAIC,yBAAJ,CAAkBX,gBAAlB,CAhBvB;YAiBOY,UAjBP,GAiBoB,IAAIC,+BAAJ,CAAwBH,aAAxB,EAAuCR,YAAvC,CAjBpB;YAkBOY,YAlBP,GAkBsB,IAAIC,wBAAJ,CACpBL,aADoB,EAEpBR,YAFoB,EAGpBF,gBAHoB,CAlBtB;YAAA,uCAwBsBf,WAxBtB;YAAA;;YAAA;;UAAA;YAAA;cAAA;cAAA;YAAA;;YAwBY+B,MAxBZ;YAyBEzB,IAAI,CAAC0B,UAAL,gCAAwCD,MAAxC;YACAzB,IAAI,CAAC0B,UAAL;YA1BF;YAAA,OA4BQP,aAAa,CAACQ,iBAAd,CAAgCF,MAAhC,CA5BR;;UAAA;YA8BEzB,IAAI,CAAC0B,UAAL;YAEA1B,IAAI,CAAC0B,UAAL;YAhCF;YAAA,OAiC0BL,UAAU,CAACO,YAAX,EAjC1B;;UAAA;YAiCQC,SAjCR;YAkCE7B,IAAI,CAAC0B,UAAL,WAAmBG,SAAnB;YAEA7B,IAAI,CAAC0B,UAAL,CAAgB,iBAAhB;YApCF;YAAA,OAqC4BH,YAAY,CAACO,cAAb,EArC5B;;UAAA;YAqCQC,WArCR;YAsCE/B,IAAI,CAAC0B,UAAL,WAAmBK,WAAnB;;UAtCF;YAAA;YAAA;;UAAA;YAAA;YAAA;;UAAA;YAAA;YAAA;;YAAA;;UAAA;YAAA;;YAAA;;YAAA;;UAAA;YAAA;YAAA,OAyCOxB,cAAc,CAACyB,aAAf,EAzCP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;AA4CA,KAAK9B,GAAG,GACN+B,IADG,CACE,YAAM;EACXjC,IAAI,CAAC0B,UAAL,CAAgB,mBAAhB;AACA,CAHG,WAIG,UAACQ,GAAD,EAAS;EACflC,IAAI,CAACmC,WAAL,CAAiBD,GAAjB;EACAnC,OAAO,CAACqC,IAAR,CAAa,CAAb;AACA,CAPG,CAAL"}
1
+ {"version":3,"file":"cleanTestData.js","names":["demoNumbers","Object","values","demoNumbersByName","cwd","process","term","TerminalInterface","run","renderHeadline","length","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","apiClientFactory","getApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","emitter","CliGlobalEmitter","Emitter","personFixture","PersonFixture","orgFixture","OrganizationFixture","skillFixture","SkillFixture","number","renderLine","loginAsDemoPerson","clearAllOrgs","totalOrgs","clearAllSkills","totalSkills","disconnectAll","then","err","renderError","exit"],"sources":["../../src/tests/cleanTestData.ts"],"sourcesContent":["import osUtil from 'os'\nimport CliGlobalEmitter from '../GlobalEmitter'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ServiceFactory from '../services/ServiceFactory'\nimport StoreFactory from '../stores/StoreFactory'\nimport * as demoNumbersByName from '../tests/constants'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\n\nconst demoNumbers = Object.values(demoNumbersByName)\n\nconst cwd = process.cwd()\nconst term = new TerminalInterface(cwd, true)\n\nasync function run() {\n\tterm.renderHeadline(\n\t\t`Starting cleanup for ${demoNumbers.length} demo numbers.`\n\t)\n\n\tconst serviceFactory = new ServiceFactory()\n\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\tconst apiClientFactory = mercuryFixture.getApiClientFactory()\n\tconst storeFactory = new StoreFactory({\n\t\tcwd,\n\t\tserviceFactory,\n\t\thomeDir: osUtil.homedir(),\n\t\temitter: CliGlobalEmitter.Emitter(),\n\t\tapiClientFactory,\n\t})\n\n\tconst personFixture = new PersonFixture(apiClientFactory)\n\tconst orgFixture = new OrganizationFixture(personFixture, storeFactory)\n\tconst skillFixture = new SkillFixture(\n\t\tpersonFixture,\n\t\tstoreFactory,\n\t\tapiClientFactory\n\t)\n\n\tfor (const number of demoNumbers) {\n\t\tterm.renderLine(`Starting cleanup for ${number}`)\n\t\tterm.renderLine(`Logging in...`)\n\n\t\tawait personFixture.loginAsDemoPerson(number)\n\n\t\tterm.renderLine(`Success`)\n\n\t\tterm.renderLine(`Deleting organizations`)\n\t\tconst totalOrgs = await orgFixture.clearAllOrgs()\n\t\tterm.renderLine(`${totalOrgs} orgs deleted`)\n\n\t\tterm.renderLine('Deleting skills')\n\t\tconst totalSkills = await skillFixture.clearAllSkills()\n\t\tterm.renderLine(`${totalSkills} deleted`)\n\t}\n\n\tawait mercuryFixture.disconnectAll()\n}\n\nvoid run()\n\t.then(() => {\n\t\tterm.renderLine('Done cleaning up!')\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tprocess.exit(1)\n\t})\n"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,MAAM,CAACC,MAAP,CAAcC,iBAAd,CAApB;AAEA,IAAMC,GAAG,GAAGC,OAAO,CAACD,GAAR,EAAZ;AACA,IAAME,IAAI,GAAG,IAAIC,6BAAJ,CAAsBH,GAAtB,EAA2B,IAA3B,CAAb;;SAEeI,G;;;;;uFAAf;IAAA;;IAAA;MAAA;QAAA;UAAA;YACCF,IAAI,CAACG,cAAL,gCACyBT,WAAW,CAACU,MADrC;YAIMC,cALP,GAKwB,IAAIC,0BAAJ,EALxB;YAMOC,cANP,GAMwB,IAAIC,0BAAJ,CAAmBV,GAAnB,EAAwBO,cAAxB,CANxB;YAOOI,gBAPP,GAO0BF,cAAc,CAACG,mBAAf,EAP1B;YAQOC,YARP,GAQsB,IAAIC,wBAAJ,CAAiB;cACrCd,GAAG,EAAHA,GADqC;cAErCO,cAAc,EAAdA,cAFqC;cAGrCQ,OAAO,EAAEC,cAAA,CAAOC,OAAP,EAH4B;cAIrCC,OAAO,EAAEC,yBAAA,CAAiBC,OAAjB,EAJ4B;cAKrCT,gBAAgB,EAAhBA;YALqC,CAAjB,CARtB;YAgBOU,aAhBP,GAgBuB,IAAIC,yBAAJ,CAAkBX,gBAAlB,CAhBvB;YAiBOY,UAjBP,GAiBoB,IAAIC,+BAAJ,CAAwBH,aAAxB,EAAuCR,YAAvC,CAjBpB;YAkBOY,YAlBP,GAkBsB,IAAIC,wBAAJ,CACpBL,aADoB,EAEpBR,YAFoB,EAGpBF,gBAHoB,CAlBtB;YAAA,uCAwBsBf,WAxBtB;YAAA;;YAAA;;UAAA;YAAA;cAAA;cAAA;YAAA;;YAwBY+B,MAxBZ;YAyBEzB,IAAI,CAAC0B,UAAL,gCAAwCD,MAAxC;YACAzB,IAAI,CAAC0B,UAAL;YA1BF;YAAA,OA4BQP,aAAa,CAACQ,iBAAd,CAAgCF,MAAhC,CA5BR;;UAAA;YA8BEzB,IAAI,CAAC0B,UAAL;YAEA1B,IAAI,CAAC0B,UAAL;YAhCF;YAAA,OAiC0BL,UAAU,CAACO,YAAX,EAjC1B;;UAAA;YAiCQC,SAjCR;YAkCE7B,IAAI,CAAC0B,UAAL,WAAmBG,SAAnB;YAEA7B,IAAI,CAAC0B,UAAL,CAAgB,iBAAhB;YApCF;YAAA,OAqC4BH,YAAY,CAACO,cAAb,EArC5B;;UAAA;YAqCQC,WArCR;YAsCE/B,IAAI,CAAC0B,UAAL,WAAmBK,WAAnB;;UAtCF;YAAA;YAAA;;UAAA;YAAA;YAAA;;UAAA;YAAA;YAAA;;YAAA;;UAAA;YAAA;;YAAA;;YAAA;;UAAA;YAAA;YAAA,OAyCOxB,cAAc,CAACyB,aAAf,EAzCP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;AA4CA,KAAK9B,GAAG,GACN+B,IADG,CACE,YAAM;EACXjC,IAAI,CAAC0B,UAAL,CAAgB,mBAAhB;AACA,CAHG,WAIG,UAACQ,GAAD,EAAS;EACflC,IAAI,CAACmC,WAAL,CAAiBD,GAAjB;EACAnC,OAAO,CAACqC,IAAR,CAAa,CAAb;AACA,CAPG,CAAL"}
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFixture.js","names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FeatureFixture.js","names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MercuryFixture.js","names":["require","config","TEST_HOST","process","env","DEFAULT_HOST","MercuryFixture","cwd","serviceFactory","apiClientFactory","Cli","buildApiClientFactory","host","shouldReconnect","options","getApiClientFactory","resetApiClients"],"sources":["../../../src/tests/fixtures/MercuryFixture.ts"],"sourcesContent":["import Cli from '../../cli'\nimport { DEFAULT_HOST } from '../../constants'\nimport ServiceFactory from '../../services/ServiceFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nrequire('dotenv').config()\n\nconst TEST_HOST = process.env.TEST_HOST ?? DEFAULT_HOST\n\nexport default class MercuryFixture {\n\tprivate cwd: string\n\tprivate serviceFactory: ServiceFactory\n\tprivate apiClientFactory: any\n\n\tpublic constructor(cwd: string, serviceFactory: ServiceFactory) {\n\t\tthis.cwd = cwd\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.apiClientFactory = Cli.buildApiClientFactory(\n\t\t\tthis.cwd,\n\t\t\tthis.serviceFactory,\n\t\t\t{ host: TEST_HOST, shouldReconnect: false }\n\t\t)\n\t}\n\n\tpublic getApiClientFactory(): ApiClientFactory {\n\t\treturn this.apiClientFactory\n\t}\n\n\tpublic connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getApiClientFactory()(options)\n\t}\n\n\tpublic async disconnectAll() {\n\t\tawait Cli.resetApiClients()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAMAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,SAAS,4BAAGC,OAAO,CAACC,GAAR,CAAYF,SAAf,yEAA4BG,uBAA3C;;IAEqBC,c;EAKpB,wBAAmBC,GAAnB,EAAgCC,cAAhC,EAAgE;IAAA;IAAA;IAAA;IAAA;IAC/D,KAAKD,GAAL,GAAWA,GAAX;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,gBAAL,GAAwBC,gBAAIC,qBAAJ,CACvB,KAAKJ,GADkB,EAEvB,KAAKC,cAFkB,EAGvB;MAAEI,IAAI,EAAEV,SAAR;MAAmBW,eAAe,EAAE;IAApC,CAHuB,CAAxB;EAKA;;;;WAED,+BAA+C;MAC9C,OAAO,KAAKJ,gBAAZ;IACA;;;WAED,sBAAoBK,OAApB,EAAuD;MACtD,OAAO,KAAKC,mBAAL,GAA2BD,OAA3B,CAAP;IACA;;;;yGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACOJ,gBAAIM,eAAJ,EADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
1
+ {"version":3,"file":"MercuryFixture.js","names":["require","config","TEST_HOST","process","env","DEFAULT_HOST","MercuryFixture","cwd","serviceFactory","apiClientFactory","Cli","buildApiClientFactory","host","shouldReconnect","options","getApiClientFactory","resetApiClients"],"sources":["../../../src/tests/fixtures/MercuryFixture.ts"],"sourcesContent":["import Cli from '../../cli'\nimport { DEFAULT_HOST } from '../../constants'\nimport ServiceFactory from '../../services/ServiceFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nrequire('dotenv').config()\n\nconst TEST_HOST = process.env.TEST_HOST ?? DEFAULT_HOST\n\nexport default class MercuryFixture {\n\tprivate cwd: string\n\tprivate serviceFactory: ServiceFactory\n\tprivate apiClientFactory: any\n\n\tpublic constructor(cwd: string, serviceFactory: ServiceFactory) {\n\t\tthis.cwd = cwd\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.apiClientFactory = Cli.buildApiClientFactory(\n\t\t\tthis.cwd,\n\t\t\tthis.serviceFactory,\n\t\t\t{ host: TEST_HOST, shouldReconnect: false }\n\t\t)\n\t}\n\n\tpublic getApiClientFactory(): ApiClientFactory {\n\t\treturn this.apiClientFactory\n\t}\n\n\tpublic connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getApiClientFactory()(options)\n\t}\n\n\tpublic async disconnectAll() {\n\t\tawait Cli.resetApiClients()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAMAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,SAAS,4BAAGC,OAAO,CAACC,GAAR,CAAYF,SAAf,yEAA4BG,uBAA3C;;IAEqBC,c;EAKpB,wBAAmBC,GAAnB,EAAgCC,cAAhC,EAAgE;IAAA;IAAA;IAAA;IAAA;IAC/D,KAAKD,GAAL,GAAWA,GAAX;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,gBAAL,GAAwBC,eAAA,CAAIC,qBAAJ,CACvB,KAAKJ,GADkB,EAEvB,KAAKC,cAFkB,EAGvB;MAAEI,IAAI,EAAEV,SAAR;MAAmBW,eAAe,EAAE;IAApC,CAHuB,CAAxB;EAKA;;;;WAED,+BAA+C;MAC9C,OAAO,KAAKJ,gBAAZ;IACA;;;WAED,sBAAoBK,OAApB,EAAuD;MACtD,OAAO,KAAKC,mBAAL,GAA2BD,OAA3B,CAAP;IACA;;;;yGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACOJ,eAAA,CAAIM,eAAJ,EADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonFixture.js","names":["require","config","DEMO_NUMBER","process","env","PersonFixture","apiClientFactory","connectToApi","phone","client","auth","person","SchemaError","code","parameters","emit","payload","requestPinResults","eventResponseUtil","getFirstResponseOrThrow","challenge","pin","substr","confirmPinResults","token","personWithToken"],"sources":["../../../src/tests/fixtures/PersonFixture.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { SchemaError } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { ApiClientFactory } from '../../types/apiClient.types'\n\nrequire('dotenv').config()\n\nexport const DEMO_NUMBER = process.env.DEMO_NUMBER as string\n\nexport default class PersonFixture {\n\tprivate connectToApi: ApiClientFactory\n\n\tpublic constructor(apiClientFactory: ApiClientFactory) {\n\t\tthis.connectToApi = apiClientFactory\n\t}\n\n\tpublic async loginAsDemoPerson(\n\t\tphone?: string\n\t): Promise<SpruceSchemas.SpruceCli.v2020_07_22.PersonWithToken> {\n\t\tconst client = await this.connectToApi()\n\n\t\t//@ts-ignore\n\t\tif (!phone && client.auth?.person) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tphone = phone || DEMO_NUMBER\n\n\t\tif (!phone) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['env.DEMO_NUMBER'],\n\t\t\t})\n\t\t}\n\n\t\t//@ts-ignore\n\t\tif (client.auth?.person?.phone === phone) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tconst requestPinResults = await client.emit('request-pin::v2020_12_25', {\n\t\t\tpayload: { phone },\n\t\t})\n\n\t\tconst { challenge } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(requestPinResults)\n\n\t\tconst confirmPinResults = await client.emit('confirm-pin::v2020_12_25', {\n\t\t\tpayload: { challenge, pin: phone.substr(-4) },\n\t\t})\n\n\t\tconst { person, token } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(confirmPinResults)\n\n\t\tconst personWithToken = { ...person, token }\n\n\t\t//@ts-ignore\n\t\tclient.auth = { person: personWithToken }\n\n\t\treturn personWithToken\n\t}\n\n\tpublic async logout() {\n\t\tconst client = await this.connectToApi()\n\n\t\tawait client.emit('logout::v2020_12_25')\n\n\t\t//@ts-ignore\n\t\tdelete client.auth\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAGAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEO,IAAMC,WAAW,GAAGC,OAAO,CAACC,GAAR,CAAYF,WAAhC;;;IAEcG,a;EAGpB,uBAAmBC,gBAAnB,EAAuD;IAAA;IAAA;IACtD,KAAKC,YAAL,GAAoBD,gBAApB;EACA;;;;;6GAED,iBACCE,KADD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGsB,KAAKD,YAAL,EAHtB;;cAAA;gBAGOE,MAHP;;gBAAA,MAMK,CAACD,KAAD,oBAAUC,MAAM,CAACC,IAAjB,yCAAU,aAAaC,MAN5B;kBAAA;kBAAA;gBAAA;;gBAAA,iCAQSF,MAAM,CAACC,IAAP,CAAYC,MARrB;;cAAA;gBAWCH,KAAK,GAAGA,KAAK,IAAIN,WAAjB;;gBAXD,IAaMM,KAbN;kBAAA;kBAAA;gBAAA;;gBAAA,MAcQ,IAAII,mBAAJ,CAAgB;kBACrBC,IAAI,EAAE,oBADe;kBAErBC,UAAU,EAAE,CAAC,iBAAD;gBAFS,CAAhB,CAdR;;cAAA;gBAAA,MAqBK,kBAAAL,MAAM,CAACC,IAAP,wFAAaC,MAAb,8EAAqBH,KAArB,MAA+BA,KArBpC;kBAAA;kBAAA;gBAAA;;gBAAA,iCAuBSC,MAAM,CAACC,IAAP,CAAYC,MAvBrB;;cAAA;gBAAA;gBAAA,OA0BiCF,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAER,KAAK,EAALA;kBAAF;gBAD8D,CAAxC,CA1BjC;;cAAA;gBA0BOS,iBA1BP;gBAAA,wBA+BEC,oCAAkBC,uBAAlB,CAA0CF,iBAA1C,CA/BF,EA8BSG,SA9BT,yBA8BSA,SA9BT;gBAAA;gBAAA,OAiCiCX,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAEI,SAAS,EAATA,SAAF;oBAAaC,GAAG,EAAEb,KAAK,CAACc,MAAN,CAAa,CAAC,CAAd;kBAAlB;gBAD8D,CAAxC,CAjCjC;;cAAA;gBAiCOC,iBAjCP;gBAAA,yBAsCEL,oCAAkBC,uBAAlB,CAA0CI,iBAA1C,CAtCF,EAqCSZ,MArCT,0BAqCSA,MArCT,EAqCiBa,KArCjB,0BAqCiBA,KArCjB;gBAwCOC,eAxCP,mCAwC8Bd,MAxC9B;kBAwCsCa,KAAK,EAALA;gBAxCtC,IA0CC;;gBACAf,MAAM,CAACC,IAAP,GAAc;kBAAEC,MAAM,EAAEc;gBAAV,CAAd;gBA3CD,iCA6CQA,eA7CR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kGAgDA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,KAAKlB,YAAL,EADtB;;cAAA;gBACOE,MADP;gBAAA;gBAAA,OAGOA,MAAM,CAACM,IAAP,CAAY,qBAAZ,CAHP;;cAAA;gBAKC;gBACA,OAAON,MAAM,CAACC,IAAd;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
1
+ {"version":3,"file":"PersonFixture.js","names":["require","config","DEMO_NUMBER","process","env","PersonFixture","apiClientFactory","connectToApi","phone","client","auth","person","SchemaError","code","parameters","emit","payload","requestPinResults","eventResponseUtil","getFirstResponseOrThrow","challenge","pin","substr","confirmPinResults","token","personWithToken"],"sources":["../../../src/tests/fixtures/PersonFixture.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { SchemaError } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { ApiClientFactory } from '../../types/apiClient.types'\n\nrequire('dotenv').config()\n\nexport const DEMO_NUMBER = process.env.DEMO_NUMBER as string\n\nexport default class PersonFixture {\n\tprivate connectToApi: ApiClientFactory\n\n\tpublic constructor(apiClientFactory: ApiClientFactory) {\n\t\tthis.connectToApi = apiClientFactory\n\t}\n\n\tpublic async loginAsDemoPerson(\n\t\tphone?: string\n\t): Promise<SpruceSchemas.SpruceCli.v2020_07_22.PersonWithToken> {\n\t\tconst client = await this.connectToApi()\n\n\t\t//@ts-ignore\n\t\tif (!phone && client.auth?.person) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tphone = phone || DEMO_NUMBER\n\n\t\tif (!phone) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['env.DEMO_NUMBER'],\n\t\t\t})\n\t\t}\n\n\t\t//@ts-ignore\n\t\tif (client.auth?.person?.phone === phone) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tconst requestPinResults = await client.emit('request-pin::v2020_12_25', {\n\t\t\tpayload: { phone },\n\t\t})\n\n\t\tconst { challenge } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(requestPinResults)\n\n\t\tconst confirmPinResults = await client.emit('confirm-pin::v2020_12_25', {\n\t\t\tpayload: { challenge, pin: phone.substr(-4) },\n\t\t})\n\n\t\tconst { person, token } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(confirmPinResults)\n\n\t\tconst personWithToken = { ...person, token }\n\n\t\t//@ts-ignore\n\t\tclient.auth = { person: personWithToken }\n\n\t\treturn personWithToken\n\t}\n\n\tpublic async logout() {\n\t\tconst client = await this.connectToApi()\n\n\t\tawait client.emit('logout::v2020_12_25')\n\n\t\t//@ts-ignore\n\t\tdelete client.auth\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAGAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEO,IAAMC,WAAW,GAAGC,OAAO,CAACC,GAAR,CAAYF,WAAhC;;;IAEcG,a;EAGpB,uBAAmBC,gBAAnB,EAAuD;IAAA;IAAA;IACtD,KAAKC,YAAL,GAAoBD,gBAApB;EACA;;;;;6GAED,iBACCE,KADD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGsB,KAAKD,YAAL,EAHtB;;cAAA;gBAGOE,MAHP;;gBAAA,MAMK,CAACD,KAAD,oBAAUC,MAAM,CAACC,IAAjB,yCAAU,aAAaC,MAN5B;kBAAA;kBAAA;gBAAA;;gBAAA,iCAQSF,MAAM,CAACC,IAAP,CAAYC,MARrB;;cAAA;gBAWCH,KAAK,GAAGA,KAAK,IAAIN,WAAjB;;gBAXD,IAaMM,KAbN;kBAAA;kBAAA;gBAAA;;gBAAA,MAcQ,IAAII,mBAAJ,CAAgB;kBACrBC,IAAI,EAAE,oBADe;kBAErBC,UAAU,EAAE,CAAC,iBAAD;gBAFS,CAAhB,CAdR;;cAAA;gBAAA,MAqBK,kBAAAL,MAAM,CAACC,IAAP,wFAAaC,MAAb,8EAAqBH,KAArB,MAA+BA,KArBpC;kBAAA;kBAAA;gBAAA;;gBAAA,iCAuBSC,MAAM,CAACC,IAAP,CAAYC,MAvBrB;;cAAA;gBAAA;gBAAA,OA0BiCF,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAER,KAAK,EAALA;kBAAF;gBAD8D,CAAxC,CA1BjC;;cAAA;gBA0BOS,iBA1BP;gBAAA,wBA+BEC,mCAAA,CAAkBC,uBAAlB,CAA0CF,iBAA1C,CA/BF,EA8BSG,SA9BT,yBA8BSA,SA9BT;gBAAA;gBAAA,OAiCiCX,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAEI,SAAS,EAATA,SAAF;oBAAaC,GAAG,EAAEb,KAAK,CAACc,MAAN,CAAa,CAAC,CAAd;kBAAlB;gBAD8D,CAAxC,CAjCjC;;cAAA;gBAiCOC,iBAjCP;gBAAA,yBAsCEL,mCAAA,CAAkBC,uBAAlB,CAA0CI,iBAA1C,CAtCF,EAqCSZ,MArCT,0BAqCSA,MArCT,EAqCiBa,KArCjB,0BAqCiBA,KArCjB;gBAwCOC,eAxCP,mCAwC8Bd,MAxC9B;kBAwCsCa,KAAK,EAALA;gBAxCtC,IA0CC;;gBACAf,MAAM,CAACC,IAAP,GAAc;kBAAEC,MAAM,EAAEc;gBAAV,CAAd;gBA3CD,iCA6CQA,eA7CR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kGAgDA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,KAAKlB,YAAL,EADtB;;cAAA;gBACOE,MADP;gBAAA;gBAAA,OAGOA,MAAM,CAACM,IAAP,CAAY,qBAAZ,CAHP;;cAAA;gBAKC;gBACA,OAAON,MAAM,CAACC,IAAd;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkillFixture.js","names":["SkillFixture","personFixture","storeFactory","apiClientFactory","values","options","registerCurrentSkill","isRegisteringCurrentSkill","loginAsDemoPerson","phone","Store","register","slug","generateSkillSlug","name","skillCount","namesUtil","toKebab","Date","getTime","auth","contract","skillAuth","apiClientUtil","skillOrAuthToAuth","client","eventStore","registerEventContract","eventContract","unRegisterEvents","skillStore","fetchMySkills","skills","skill","unregisterSkill","id","length","Math","round","random"],"sources":["../../../src/tests/fixtures/SkillFixture.ts"],"sourcesContent":["import { EventContract, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { RegisterSkillOptions } from '../../features/skill/stores/SkillStore'\nimport StoreFactory from '../../stores/StoreFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nimport apiClientUtil from '../../utilities/apiClient.utility'\nimport PersonFixture from './PersonFixture'\n\nexport default class SkillFixture {\n\tprivate storeFactory: StoreFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate personFixture: PersonFixture\n\n\tprivate static skillCount = Math.round(Math.random() * 100)\n\n\tpublic constructor(\n\t\tpersonFixture: PersonFixture,\n\t\tstoreFactory: StoreFactory,\n\t\tapiClientFactory: ApiClientFactory\n\t) {\n\t\tthis.personFixture = personFixture\n\t\tthis.storeFactory = storeFactory\n\t\tthis.apiClientFactory = apiClientFactory\n\t}\n\n\tpublic async seedDemoSkill(\n\t\tvalues: { name: string },\n\t\toptions?: { phone?: string }\n\t) {\n\t\treturn this.registerCurrentSkill(values, {\n\t\t\tisRegisteringCurrentSkill: false,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic async registerCurrentSkill(\n\t\tvalues: { name: string; slug?: string },\n\t\toptions?: RegisterSkillOptions & { phone?: string }\n\t) {\n\t\tawait this.personFixture.loginAsDemoPerson(options?.phone)\n\n\t\treturn this.storeFactory.Store('skill').register(\n\t\t\t{\n\t\t\t\tslug: values.slug ?? this.generateSkillSlug(values.name),\n\t\t\t\t...values,\n\t\t\t},\n\t\t\toptions\n\t\t)\n\t}\n\n\tprivate generateSkillSlug(name: string): string {\n\t\tSkillFixture.skillCount++\n\t\treturn `${namesUtil.toKebab(name)}-${new Date().getTime()}-count-${\n\t\t\tSkillFixture.skillCount\n\t\t}-cli-test`\n\t}\n\n\tpublic async registerEventContract(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\tcontract: EventContract\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.registerEventContract({\n\t\t\teventContract: contract,\n\t\t})\n\t}\n\n\tpublic async unRegisterEvents(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.unRegisterEvents(options)\n\t}\n\n\tpublic async clearAllSkills() {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\tconst skillStore = this.storeFactory.Store('skill')\n\t\tconst skills = await skillStore.fetchMySkills()\n\n\t\tfor (const skill of skills) {\n\t\t\tawait skillStore.unregisterSkill(skill.id)\n\t\t}\n\n\t\treturn skills.length\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SkillFixture.js","names":["SkillFixture","personFixture","storeFactory","apiClientFactory","values","options","registerCurrentSkill","isRegisteringCurrentSkill","loginAsDemoPerson","phone","Store","register","slug","generateSkillSlug","name","skillCount","namesUtil","toKebab","Date","getTime","auth","contract","skillAuth","apiClientUtil","skillOrAuthToAuth","client","eventStore","registerEventContract","eventContract","unRegisterEvents","skillStore","fetchMySkills","skills","skill","unregisterSkill","id","length","Math","round","random"],"sources":["../../../src/tests/fixtures/SkillFixture.ts"],"sourcesContent":["import { EventContract, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { RegisterSkillOptions } from '../../features/skill/stores/SkillStore'\nimport StoreFactory from '../../stores/StoreFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nimport apiClientUtil from '../../utilities/apiClient.utility'\nimport PersonFixture from './PersonFixture'\n\nexport default class SkillFixture {\n\tprivate storeFactory: StoreFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate personFixture: PersonFixture\n\n\tprivate static skillCount = Math.round(Math.random() * 100)\n\n\tpublic constructor(\n\t\tpersonFixture: PersonFixture,\n\t\tstoreFactory: StoreFactory,\n\t\tapiClientFactory: ApiClientFactory\n\t) {\n\t\tthis.personFixture = personFixture\n\t\tthis.storeFactory = storeFactory\n\t\tthis.apiClientFactory = apiClientFactory\n\t}\n\n\tpublic async seedDemoSkill(\n\t\tvalues: { name: string },\n\t\toptions?: { phone?: string }\n\t) {\n\t\treturn this.registerCurrentSkill(values, {\n\t\t\tisRegisteringCurrentSkill: false,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic async registerCurrentSkill(\n\t\tvalues: { name: string; slug?: string },\n\t\toptions?: RegisterSkillOptions & { phone?: string }\n\t) {\n\t\tawait this.personFixture.loginAsDemoPerson(options?.phone)\n\n\t\treturn this.storeFactory.Store('skill').register(\n\t\t\t{\n\t\t\t\tslug: values.slug ?? this.generateSkillSlug(values.name),\n\t\t\t\t...values,\n\t\t\t},\n\t\t\toptions\n\t\t)\n\t}\n\n\tprivate generateSkillSlug(name: string): string {\n\t\tSkillFixture.skillCount++\n\t\treturn `${namesUtil.toKebab(name)}-${new Date().getTime()}-count-${\n\t\t\tSkillFixture.skillCount\n\t\t}-cli-test`\n\t}\n\n\tpublic async registerEventContract(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\tcontract: EventContract\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.registerEventContract({\n\t\t\teventContract: contract,\n\t\t})\n\t}\n\n\tpublic async unRegisterEvents(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.unRegisterEvents(options)\n\t}\n\n\tpublic async clearAllSkills() {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\tconst skillStore = this.storeFactory.Store('skill')\n\t\tconst skills = await skillStore.fetchMySkills()\n\n\t\tfor (const skill of skills) {\n\t\t\tawait skillStore.unregisterSkill(skill.id)\n\t\t}\n\n\t\treturn skills.length\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AAOA;;;;;;;;;;;;IAGqBA,Y;EAOpB,sBACCC,aADD,EAECC,YAFD,EAGCC,gBAHD,EAIE;IAAA;IAAA;IAAA;IAAA;IACD,KAAKF,aAAL,GAAqBA,aAArB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;EACA;;;;;yGAED,iBACCC,MADD,EAECC,OAFD;QAAA;UAAA;YAAA;cAAA;gBAAA,iCAIQ,KAAKC,oBAAL,CAA0BF,MAA1B;kBACNG,yBAAyB,EAAE;gBADrB,GAEHF,OAFG,EAJR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAUA,kBACCD,MADD,EAECC,OAFD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAIO,KAAKJ,aAAL,CAAmBO,iBAAnB,CAAqCH,OAArC,aAAqCA,OAArC,uBAAqCA,OAAO,CAAEI,KAA9C,CAJP;;cAAA;gBAAA,kCAMQ,KAAKP,YAAL,CAAkBQ,KAAlB,CAAwB,OAAxB,EAAiCC,QAAjC;kBAELC,IAAI,kBAAER,MAAM,CAACQ,IAAT,uDAAiB,KAAKC,iBAAL,CAAuBT,MAAM,CAACU,IAA9B;gBAFhB,GAGFV,MAHE,GAKNC,OALM,CANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAeA,2BAA0BS,IAA1B,EAAgD;MAC/Cd,YAAY,CAACe,UAAb;MACA,iBAAUC,2BAAA,CAAUC,OAAV,CAAkBH,IAAlB,CAAV,cAAqC,IAAII,IAAJ,GAAWC,OAAX,EAArC,oBACCnB,YAAY,CAACe,UADd;IAGA;;;;iHAED,kBACCK,IADD,EAECC,QAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAIOC,SAJP,GAImBC,qBAAA,CAAcC,iBAAd,CAAgCJ,IAAhC,CAJnB;gBAAA;gBAAA,OAKsB,KAAKjB,gBAAL,CAAsBmB,SAAtB,CALtB;;cAAA;gBAKOG,MALP;gBAOOC,UAPP,GAOoB,KAAKxB,YAAL,CAAkBQ,KAAlB,CAAwB,OAAxB,EAAiC;kBACnDP,gBAAgB;oBAAA,sGAAE;sBAAA;wBAAA;0BAAA;4BAAA;8BAAA,kCACVsB,MADU;;4BAAA;4BAAA;8BAAA;0BAAA;wBAAA;sBAAA;oBAAA,CAAF;;oBAAA;sBAAA;oBAAA;;oBAAA;kBAAA;gBADmC,CAAjC,CAPpB;gBAAA;gBAAA,OAaOC,UAAU,CAACC,qBAAX,CAAiC;kBACtCC,aAAa,EAAEP;gBADuB,CAAjC,CAbP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAkBA,kBACCD,IADD,EAECf,OAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAIOiB,SAJP,GAImBC,qBAAA,CAAcC,iBAAd,CAAgCJ,IAAhC,CAJnB;gBAAA;gBAAA,OAKsB,KAAKjB,gBAAL,CAAsBmB,SAAtB,CALtB;;cAAA;gBAKOG,MALP;gBAOOC,UAPP,GAOoB,KAAKxB,YAAL,CAAkBQ,KAAlB,CAAwB,OAAxB,EAAiC;kBACnDP,gBAAgB;oBAAA,uGAAE;sBAAA;wBAAA;0BAAA;4BAAA;8BAAA,kCACVsB,MADU;;4BAAA;4BAAA;8BAAA;0BAAA;wBAAA;sBAAA;oBAAA,CAAF;;oBAAA;sBAAA;oBAAA;;oBAAA;kBAAA;gBADmC,CAAjC,CAPpB;gBAAA;gBAAA,OAaOC,UAAU,CAACG,gBAAX,CAA4BxB,OAA5B,CAbP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0GAgBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKJ,aAAL,CAAmBO,iBAAnB,EADP;;cAAA;gBAGOsB,UAHP,GAGoB,KAAK5B,YAAL,CAAkBQ,KAAlB,CAAwB,OAAxB,CAHpB;gBAAA;gBAAA,OAIsBoB,UAAU,CAACC,aAAX,EAJtB;;cAAA;gBAIOC,MAJP;gBAAA,uCAMqBA,MANrB;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAMYC,KANZ;gBAAA;gBAAA,OAOQH,UAAU,CAACI,eAAX,CAA2BD,KAAK,CAACE,EAAjC,CAPR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCAUQH,MAAM,CAACI,MAVf;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;;;iCAnFoBpC,Y,gBAKQqC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,MAAL,KAAgB,GAA3B,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"test.utility.js","names":["require","config","hasArg","regex","process","argv","find","arg","search","testUtil","shouldClearCache","isCacheEnabled","resolveTestDir","cacheKey","diskUtil","resolvePath","getTestRootDir","shouldCleanupTestSkillDirs","env","CLEANUP_TEST_SKILL_DIRS","TEST_CACHE_ROOT_DIR","pathUtil","join","os","tmpdir","assertCountsByAction","files","options","generated","filter","f","action","length","updated","skipped","assert","isEqual","assertFileByNameInGeneratedFiles","name","file","path","isTruthy","JSON","stringify","assertFileByPathInGeneratedFiles","startTime","startLogTimer","Date","getTime","log","prefix","global","activeTest","test","TEST_LOG_FILTER","match","RegExp","args","stderr","write","getTimeSpentFormatted","getTimeSpent","now","delta","spent","durationUtil","msToFriendly"],"sources":["../../../src/tests/utilities/test.utility.ts"],"sourcesContent":["import os from 'os'\nimport pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { GeneratedFile } from '../../types/cli.types'\nimport durationUtil from '../../utilities/duration.utility'\nrequire('dotenv').config()\n\nfunction hasArg(regex: RegExp) {\n\treturn !!process.argv?.find((arg) => arg.search(regex) > -1)\n}\n\nconst testUtil = {\n\tshouldClearCache() {\n\t\treturn hasArg(/clear.*?cache/gi)\n\t},\n\tisCacheEnabled() {\n\t\treturn !hasArg(/no.*?cache/gi)\n\t},\n\n\tresolveTestDir(cacheKey = '') {\n\t\treturn diskUtil.resolvePath(this.getTestRootDir(), 'spruce-cli', cacheKey)\n\t},\n\n\tshouldCleanupTestSkillDirs() {\n\t\treturn process.env.CLEANUP_TEST_SKILL_DIRS !== 'false'\n\t},\n\n\tgetTestRootDir() {\n\t\treturn process.env.TEST_CACHE_ROOT_DIR ?? pathUtil.join(os.tmpdir())\n\t},\n\n\tassertCountsByAction(\n\t\tfiles: GeneratedFile[] | undefined,\n\t\toptions: {\n\t\t\tgenerated: number\n\t\t\tupdated: number\n\t\t\tskipped: number\n\t\t}\n\t) {\n\t\tconst generated = (files ?? []).filter(\n\t\t\t(f) => f.action === 'generated'\n\t\t).length\n\t\tconst updated = (files ?? []).filter((f) => f.action === 'updated').length\n\t\tconst skipped = (files ?? []).filter((f) => f.action === 'skipped').length\n\n\t\tassert.isEqual(\n\t\t\tgenerated,\n\t\t\toptions.generated,\n\t\t\t`Generated the wrong number of files. Got ${generated} but expected ${options.generated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tupdated,\n\t\t\toptions.updated,\n\t\t\t`Updated the wrong number of files. Got ${updated} but expected ${options.updated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tskipped,\n\t\t\toptions.skipped,\n\t\t\t`Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`\n\t\t)\n\t},\n\n\tassertFileByNameInGeneratedFiles(\n\t\tname: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.name.search(name) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file named '${name}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tassertFileByPathInGeneratedFiles(\n\t\tpath: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.path.search(path) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file with path '${path}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tstartTime: 0,\n\tstartLogTimer() {\n\t\tthis.startTime = new Date().getTime()\n\t},\n\n\tlog(...args: any[]) {\n\t\t//@ts-ignore\n\t\tconst prefix = global.activeTest\n\t\t\t? //@ts-ignore\n\t\t\t `${global.activeTest?.file}::${global.activeTest?.test} :: `\n\t\t\t: ''\n\n\t\tif (process.env.TEST_LOG_FILTER) {\n\t\t\tconst match = prefix.search(\n\t\t\t\tnew RegExp(process.env.TEST_LOG_FILTER, 'igm')\n\t\t\t)\n\t\t\tif (match < 0) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tprocess.stderr.write(\n\t\t\tprefix + this.getTimeSpentFormatted() + ': ' + args.join(' ')\n\t\t)\n\t},\n\n\tgetTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - this.startTime\n\t\treturn delta\n\t},\n\n\tgetTimeSpentFormatted() {\n\t\tconst spent = this.getTimeSpent()\n\t\treturn durationUtil.msToFriendly(spent)\n\t},\n}\n\nexport default testUtil\n"],"mappings":"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"}
1
+ {"version":3,"file":"test.utility.js","names":["require","config","hasArg","regex","process","argv","find","arg","search","testUtil","shouldClearCache","isCacheEnabled","resolveTestDir","cacheKey","diskUtil","resolvePath","getTestRootDir","shouldCleanupTestSkillDirs","env","CLEANUP_TEST_SKILL_DIRS","TEST_CACHE_ROOT_DIR","pathUtil","join","os","tmpdir","assertCountsByAction","files","options","generated","filter","f","action","length","updated","skipped","assert","isEqual","assertFileByNameInGeneratedFiles","name","file","path","isTruthy","JSON","stringify","assertFileByPathInGeneratedFiles","startTime","startLogTimer","Date","getTime","log","prefix","global","activeTest","test","TEST_LOG_FILTER","match","RegExp","args","stderr","write","getTimeSpentFormatted","getTimeSpent","now","delta","spent","durationUtil","msToFriendly"],"sources":["../../../src/tests/utilities/test.utility.ts"],"sourcesContent":["import os from 'os'\nimport pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { GeneratedFile } from '../../types/cli.types'\nimport durationUtil from '../../utilities/duration.utility'\nrequire('dotenv').config()\n\nfunction hasArg(regex: RegExp) {\n\treturn !!process.argv?.find((arg) => arg.search(regex) > -1)\n}\n\nconst testUtil = {\n\tshouldClearCache() {\n\t\treturn hasArg(/clear.*?cache/gi)\n\t},\n\tisCacheEnabled() {\n\t\treturn !hasArg(/no.*?cache/gi)\n\t},\n\n\tresolveTestDir(cacheKey = '') {\n\t\treturn diskUtil.resolvePath(this.getTestRootDir(), 'spruce-cli', cacheKey)\n\t},\n\n\tshouldCleanupTestSkillDirs() {\n\t\treturn process.env.CLEANUP_TEST_SKILL_DIRS !== 'false'\n\t},\n\n\tgetTestRootDir() {\n\t\treturn process.env.TEST_CACHE_ROOT_DIR ?? pathUtil.join(os.tmpdir())\n\t},\n\n\tassertCountsByAction(\n\t\tfiles: GeneratedFile[] | undefined,\n\t\toptions: {\n\t\t\tgenerated: number\n\t\t\tupdated: number\n\t\t\tskipped: number\n\t\t}\n\t) {\n\t\tconst generated = (files ?? []).filter(\n\t\t\t(f) => f.action === 'generated'\n\t\t).length\n\t\tconst updated = (files ?? []).filter((f) => f.action === 'updated').length\n\t\tconst skipped = (files ?? []).filter((f) => f.action === 'skipped').length\n\n\t\tassert.isEqual(\n\t\t\tgenerated,\n\t\t\toptions.generated,\n\t\t\t`Generated the wrong number of files. Got ${generated} but expected ${options.generated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tupdated,\n\t\t\toptions.updated,\n\t\t\t`Updated the wrong number of files. Got ${updated} but expected ${options.updated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tskipped,\n\t\t\toptions.skipped,\n\t\t\t`Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`\n\t\t)\n\t},\n\n\tassertFileByNameInGeneratedFiles(\n\t\tname: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.name.search(name) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file named '${name}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tassertFileByPathInGeneratedFiles(\n\t\tpath: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.path.search(path) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file with path '${path}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tstartTime: 0,\n\tstartLogTimer() {\n\t\tthis.startTime = new Date().getTime()\n\t},\n\n\tlog(...args: any[]) {\n\t\t//@ts-ignore\n\t\tconst prefix = global.activeTest\n\t\t\t? //@ts-ignore\n\t\t\t `${global.activeTest?.file}::${global.activeTest?.test} :: `\n\t\t\t: ''\n\n\t\tif (process.env.TEST_LOG_FILTER) {\n\t\t\tconst match = prefix.search(\n\t\t\t\tnew RegExp(process.env.TEST_LOG_FILTER, 'igm')\n\t\t\t)\n\t\t\tif (match < 0) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tprocess.stderr.write(\n\t\t\tprefix + this.getTimeSpentFormatted() + ': ' + args.join(' ')\n\t\t)\n\t},\n\n\tgetTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - this.startTime\n\t\treturn delta\n\t},\n\n\tgetTimeSpentFormatted() {\n\t\tconst spent = this.getTimeSpent()\n\t\treturn durationUtil.msToFriendly(spent)\n\t},\n}\n\nexport default testUtil\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"uiAssert.utility.js","names":["uiAssert","assertRendersSelect","ui","waitForInput","last","getLastInvocation","assert","isTruthy","options","choices","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertSelectRenderChoice","doesInclude","assertRendersConfirmWriteFile","isEqual","type","isEqualDeep"],"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"sourcesContent":["import { assert } from '@sprucelabs/test'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssert = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\n\t\treturn last.options\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertSelectRenderChoice(ui: SpyInterface, value: string, label: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssert\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAGA,IAAMA,QAAQ,GAAG;EACVC,mBADU,+BACUC,EADV,EAC4B;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACrCA,EAAE,CAACC,YAAH,EADqC;;YAAA;cAGrCC,IAHqC,GAG9BF,EAAE,CAACG,iBAAH,EAH8B;;cAI3CC,aAAOC,QAAP,CACCH,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OADtB;;cAJ2C,iCASpCL,IAAI,CAACI,OAT+B;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAU3C,CAXe;EAahBE,8BAbgB,0CAcfR,EAde,EAefS,KAfe,EAgBfC,KAhBe,EAiBd;IACD,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,aAAOO,cAAP,CAAsBT,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAA3C,EAAoD;MACnDE,KAAK,EAALA,KADmD;MAEnDC,KAAK,EAALA;IAFmD,CAApD;EAIA,CAxBe;EA0BhBE,wBA1BgB,oCA0BSZ,EA1BT,EA0B2BS,KA1B3B,EA0B0CC,KA1B1C,EA0ByD;IACxE,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,aAAOS,WAAP,CAAmBX,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD;MAChDE,KAAK,EAALA,KADgD;MAEhDC,KAAK,EAALA;IAFgD,CAAjD;EAIA,CAjCe;EAmCVI,6BAnCU,yCAmCoBd,EAnCpB,EAmCsC;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC/CA,EAAE,CAACC,YAAH,EAD+C;;YAAA;cAG/CC,IAH+C,GAGxCF,EAAE,CAACG,iBAAH,EAHwC;;cAKrDC,aAAOW,OAAP,CAAeb,IAAI,CAACI,OAAL,CAAaU,IAA5B,EAAkC,QAAlC;;cACAZ,aAAOa,WAAP,CAAmBf,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD,CAChD;gBACCG,KAAK,EAAE,WADR;gBAECD,KAAK,EAAE;cAFR,CADgD,EAKhD;gBAAEA,KAAK,EAAE,MAAT;gBAAiBC,KAAK,EAAE;cAAxB,CALgD,EAMhD;gBAAED,KAAK,EAAE,YAAT;gBAAuBC,KAAK,EAAE;cAA9B,CANgD,CAAjD;;YANqD;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAcrD;AAjDe,CAAjB;eAoDeZ,Q"}
1
+ {"version":3,"file":"uiAssert.utility.js","names":["uiAssert","assertRendersSelect","ui","waitForInput","last","getLastInvocation","assert","isTruthy","options","choices","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertSelectRenderChoice","doesInclude","assertRendersConfirmWriteFile","isEqual","type","isEqualDeep"],"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"sourcesContent":["import { assert } from '@sprucelabs/test'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssert = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\n\t\treturn last.options\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertSelectRenderChoice(ui: SpyInterface, value: string, label: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssert\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAGA,IAAMA,QAAQ,GAAG;EACVC,mBADU,+BACUC,EADV,EAC4B;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACrCA,EAAE,CAACC,YAAH,EADqC;;YAAA;cAGrCC,IAHqC,GAG9BF,EAAE,CAACG,iBAAH,EAH8B;;cAI3CC,YAAA,CAAOC,QAAP,CACCH,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OADtB;;cAJ2C,iCASpCL,IAAI,CAACI,OAT+B;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAU3C,CAXe;EAahBE,8BAbgB,0CAcfR,EAde,EAefS,KAfe,EAgBfC,KAhBe,EAiBd;IACD,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,YAAA,CAAOO,cAAP,CAAsBT,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAA3C,EAAoD;MACnDE,KAAK,EAALA,KADmD;MAEnDC,KAAK,EAALA;IAFmD,CAApD;EAIA,CAxBe;EA0BhBE,wBA1BgB,oCA0BSZ,EA1BT,EA0B2BS,KA1B3B,EA0B0CC,KA1B1C,EA0ByD;IACxE,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,YAAA,CAAOS,WAAP,CAAmBX,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD;MAChDE,KAAK,EAALA,KADgD;MAEhDC,KAAK,EAALA;IAFgD,CAAjD;EAIA,CAjCe;EAmCVI,6BAnCU,yCAmCoBd,EAnCpB,EAmCsC;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC/CA,EAAE,CAACC,YAAH,EAD+C;;YAAA;cAG/CC,IAH+C,GAGxCF,EAAE,CAACG,iBAAH,EAHwC;;cAKrDC,YAAA,CAAOW,OAAP,CAAeb,IAAI,CAACI,OAAL,CAAaU,IAA5B,EAAkC,QAAlC;;cACAZ,YAAA,CAAOa,WAAP,CAAmBf,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD,CAChD;gBACCG,KAAK,EAAE,WADR;gBAECD,KAAK,EAAE;cAFR,CADgD,EAKhD;gBAAEA,KAAK,EAAE,MAAT;gBAAiBC,KAAK,EAAE;cAAxB,CALgD,EAMhD;gBAAED,KAAK,EAAE,YAAT;gBAAuBC,KAAK,EAAE;cAA9B,CANgD,CAAjD;;YANqD;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAcrD;AAjDe,CAAjB;eAoDeZ,Q"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.utility.js","names":["actionUtil","mergeActionResults","isObject","obj","objects","reduce","prev","Object","keys","forEach","key","pVal","oVal","Array","isArray","concat","makeUnique","val","a","b","path","assertNoErrorsInResponse","response","eventResponseUtil","getFirstResponseOrThrow"],"sources":["../../src/utilities/action.utility.ts"],"sourcesContent":["import { MercuryAggregateResponse } from '@sprucelabs/mercury-types'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport isEqual from 'lodash/isEqual'\nimport uniqWith from 'lodash/uniqWith'\n\nconst actionUtil = {\n\tmergeActionResults(...objects: any[]) {\n\t\tconst isObject = (obj: any) => obj && typeof obj === 'object'\n\t\treturn objects.reduce((prev, obj) => {\n\t\t\tObject.keys(obj || {}).forEach((key) => {\n\t\t\t\tconst pVal = prev[key]\n\t\t\t\tconst oVal = obj[key]\n\n\t\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\n\t\t\t\t\tprev[key] = pVal.concat(...oVal)\n\t\t\t\t\tprev[key] = this.makeUnique(prev[key])\n\t\t\t\t} else if (isObject(pVal) && isObject(oVal)) {\n\t\t\t\t\tprev[key] = this.mergeActionResults(pVal, oVal)\n\t\t\t\t} else if (typeof oVal !== 'undefined') {\n\t\t\t\t\tprev[key] = oVal\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn prev\n\t\t}, {})\n\t},\n\n\tmakeUnique(val: any[]): any[] {\n\t\treturn uniqWith(val, (a: any, b: any) => {\n\t\t\treturn isEqual(a, b) || (a.path && b.path && a.path === b.path)\n\t\t})\n\t},\n\n\tassertNoErrorsInResponse(response: MercuryAggregateResponse<any>) {\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\t},\n}\n\nexport default actionUtil\n"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA,IAAMA,UAAU,GAAG;EAClBC,kBADkB,gCACoB;IAAA;;IACrC,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;MAAA,OAAcA,GAAG,IAAI,yBAAOA,GAAP,MAAe,QAApC;IAAA,CAAjB;;IADqC,kCAAhBC,OAAgB;MAAhBA,OAAgB;IAAA;;IAErC,OAAOA,OAAO,CAACC,MAAR,CAAe,UAACC,IAAD,EAAOH,GAAP,EAAe;MACpCI,MAAM,CAACC,IAAP,CAAYL,GAAG,IAAI,EAAnB,EAAuBM,OAAvB,CAA+B,UAACC,GAAD,EAAS;QACvC,IAAMC,IAAI,GAAGL,IAAI,CAACI,GAAD,CAAjB;QACA,IAAME,IAAI,GAAGT,GAAG,CAACO,GAAD,CAAhB;;QAEA,IAAIG,KAAK,CAACC,OAAN,CAAcH,IAAd,KAAuBE,KAAK,CAACC,OAAN,CAAcF,IAAd,CAA3B,EAAgD;UAC/CN,IAAI,CAACI,GAAD,CAAJ,GAAYC,IAAI,CAACI,MAAL,OAAAJ,IAAI,sCAAWC,IAAX,EAAhB;UACAN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACM,UAAL,CAAgBV,IAAI,CAACI,GAAD,CAApB,CAAZ;QACA,CAHD,MAGO,IAAIR,QAAQ,CAACS,IAAD,CAAR,IAAkBT,QAAQ,CAACU,IAAD,CAA9B,EAAsC;UAC5CN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACT,kBAAL,CAAwBU,IAAxB,EAA8BC,IAA9B,CAAZ;QACA,CAFM,MAEA,IAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;UACvCN,IAAI,CAACI,GAAD,CAAJ,GAAYE,IAAZ;QACA;MACD,CAZD;MAaA,OAAON,IAAP;IACA,CAfM,EAeJ,EAfI,CAAP;EAgBA,CAnBiB;EAqBlBU,UArBkB,sBAqBPC,GArBO,EAqBY;IAC7B,OAAO,0BAASA,GAAT,EAAc,UAACC,CAAD,EAASC,CAAT,EAAoB;MACxC,OAAO,yBAAQD,CAAR,EAAWC,CAAX,KAAkBD,CAAC,CAACE,IAAF,IAAUD,CAAC,CAACC,IAAZ,IAAoBF,CAAC,CAACE,IAAF,KAAWD,CAAC,CAACC,IAA1D;IACA,CAFM,CAAP;EAGA,CAzBiB;EA2BlBC,wBA3BkB,oCA2BOC,QA3BP,EA2BgD;IACjEC,oCAAkBC,uBAAlB,CAA0CF,QAA1C;EACA;AA7BiB,CAAnB;eAgCetB,U"}
1
+ {"version":3,"file":"action.utility.js","names":["actionUtil","mergeActionResults","isObject","obj","objects","reduce","prev","Object","keys","forEach","key","pVal","oVal","Array","isArray","concat","makeUnique","val","uniqWith","a","b","isEqual","path","assertNoErrorsInResponse","response","eventResponseUtil","getFirstResponseOrThrow"],"sources":["../../src/utilities/action.utility.ts"],"sourcesContent":["import { MercuryAggregateResponse } from '@sprucelabs/mercury-types'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport isEqual from 'lodash/isEqual'\nimport uniqWith from 'lodash/uniqWith'\n\nconst actionUtil = {\n\tmergeActionResults(...objects: any[]) {\n\t\tconst isObject = (obj: any) => obj && typeof obj === 'object'\n\t\treturn objects.reduce((prev, obj) => {\n\t\t\tObject.keys(obj || {}).forEach((key) => {\n\t\t\t\tconst pVal = prev[key]\n\t\t\t\tconst oVal = obj[key]\n\n\t\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\n\t\t\t\t\tprev[key] = pVal.concat(...oVal)\n\t\t\t\t\tprev[key] = this.makeUnique(prev[key])\n\t\t\t\t} else if (isObject(pVal) && isObject(oVal)) {\n\t\t\t\t\tprev[key] = this.mergeActionResults(pVal, oVal)\n\t\t\t\t} else if (typeof oVal !== 'undefined') {\n\t\t\t\t\tprev[key] = oVal\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn prev\n\t\t}, {})\n\t},\n\n\tmakeUnique(val: any[]): any[] {\n\t\treturn uniqWith(val, (a: any, b: any) => {\n\t\t\treturn isEqual(a, b) || (a.path && b.path && a.path === b.path)\n\t\t})\n\t},\n\n\tassertNoErrorsInResponse(response: MercuryAggregateResponse<any>) {\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\t},\n}\n\nexport default actionUtil\n"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA,IAAMA,UAAU,GAAG;EAClBC,kBADkB,gCACoB;IAAA;;IACrC,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;MAAA,OAAcA,GAAG,IAAI,yBAAOA,GAAP,MAAe,QAApC;IAAA,CAAjB;;IADqC,kCAAhBC,OAAgB;MAAhBA,OAAgB;IAAA;;IAErC,OAAOA,OAAO,CAACC,MAAR,CAAe,UAACC,IAAD,EAAOH,GAAP,EAAe;MACpCI,MAAM,CAACC,IAAP,CAAYL,GAAG,IAAI,EAAnB,EAAuBM,OAAvB,CAA+B,UAACC,GAAD,EAAS;QACvC,IAAMC,IAAI,GAAGL,IAAI,CAACI,GAAD,CAAjB;QACA,IAAME,IAAI,GAAGT,GAAG,CAACO,GAAD,CAAhB;;QAEA,IAAIG,KAAK,CAACC,OAAN,CAAcH,IAAd,KAAuBE,KAAK,CAACC,OAAN,CAAcF,IAAd,CAA3B,EAAgD;UAC/CN,IAAI,CAACI,GAAD,CAAJ,GAAYC,IAAI,CAACI,MAAL,OAAAJ,IAAI,sCAAWC,IAAX,EAAhB;UACAN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACM,UAAL,CAAgBV,IAAI,CAACI,GAAD,CAApB,CAAZ;QACA,CAHD,MAGO,IAAIR,QAAQ,CAACS,IAAD,CAAR,IAAkBT,QAAQ,CAACU,IAAD,CAA9B,EAAsC;UAC5CN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACT,kBAAL,CAAwBU,IAAxB,EAA8BC,IAA9B,CAAZ;QACA,CAFM,MAEA,IAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;UACvCN,IAAI,CAACI,GAAD,CAAJ,GAAYE,IAAZ;QACA;MACD,CAZD;MAaA,OAAON,IAAP;IACA,CAfM,EAeJ,EAfI,CAAP;EAgBA,CAnBiB;EAqBlBU,UArBkB,sBAqBPC,GArBO,EAqBY;IAC7B,OAAO,IAAAC,oBAAA,EAASD,GAAT,EAAc,UAACE,CAAD,EAASC,CAAT,EAAoB;MACxC,OAAO,IAAAC,mBAAA,EAAQF,CAAR,EAAWC,CAAX,KAAkBD,CAAC,CAACG,IAAF,IAAUF,CAAC,CAACE,IAAZ,IAAoBH,CAAC,CAACG,IAAF,KAAWF,CAAC,CAACE,IAA1D;IACA,CAFM,CAAP;EAGA,CAzBiB;EA2BlBC,wBA3BkB,oCA2BOC,QA3BP,EA2BgD;IACjEC,mCAAA,CAAkBC,uBAAlB,CAA0CF,QAA1C;EACA;AA7BiB,CAAnB;eAgCexB,U"}
@@ -2,7 +2,7 @@ import { SpruceSchemas } from '@sprucelabs/spruce-core-schemas';
2
2
  import { ApiClientFactoryOptions } from '../types/apiClient.types';
3
3
  declare type Skill = SpruceSchemas.Spruce.v2020_07_22.Skill;
4
4
  declare const apiClientUtil: {
5
- generateClientCacheKey: (options?: ApiClientFactoryOptions | undefined) => string;
5
+ generateClientCacheKey: (options?: ApiClientFactoryOptions) => string;
6
6
  skillOrAuthToAuth(auth: ApiClientFactoryOptions | Skill): {
7
7
  skillId: string;
8
8
  apiKey: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"commander.utility.js","names":["commanderUtil","mapIncomingToOptions","args","strings","filter","a","possibleSchema","length","schema","id","fields","undefined","originalOptions","find","options","fieldNames","Object","keys","c"],"sources":["../../src/utilities/commander.utility.ts"],"sourcesContent":["import { isObjectLike } from 'lodash'\n\nconst commanderUtil = {\n\tmapIncomingToOptions(...args: any[]) {\n\t\tconst strings = args.filter((a) => typeof a === 'string')\n\t\tconst possibleSchema = args[args.length - 1]\n\t\tconst schema =\n\t\t\tpossibleSchema?.id && possibleSchema?.fields ? possibleSchema : undefined\n\n\t\tconst originalOptions = args.find((a) => isObjectLike(a)) ?? {}\n\t\tconst options: Record<string, any> = {}\n\n\t\tif (schema) {\n\t\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\t\tfor (let c = 0; c < strings.length; c++) {\n\t\t\t\toptions[fieldNames[c]] = strings[c]\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t...originalOptions,\n\t\t\t...options,\n\t\t}\n\t},\n}\n\nexport default commanderUtil\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,aAAa,GAAG;EACrBC,oBADqB,kCACgB;IAAA;;IAAA,kCAAbC,IAAa;MAAbA,IAAa;IAAA;;IACpC,IAAMC,OAAO,GAAGD,IAAI,CAACE,MAAL,CAAY,UAACC,CAAD;MAAA,OAAO,OAAOA,CAAP,KAAa,QAApB;IAAA,CAAZ,CAAhB;IACA,IAAMC,cAAc,GAAGJ,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAA3B;IACA,IAAMC,MAAM,GACXF,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEG,EAAhB,IAAsBH,cAAtB,aAAsBA,cAAtB,eAAsBA,cAAc,CAAEI,MAAtC,GAA+CJ,cAA/C,GAAgEK,SADjE;IAGA,IAAMC,eAAe,iBAAGV,IAAI,CAACW,IAAL,CAAU,UAACR,CAAD;MAAA,OAAO,0BAAaA,CAAb,CAAP;IAAA,CAAV,CAAH,mDAAwC,EAA7D;IACA,IAAMS,OAA4B,GAAG,EAArC;;IAEA,IAAIN,MAAJ,EAAY;MAAA;;MACX,IAAMO,UAAU,GAAGC,MAAM,CAACC,IAAP,mBAAYT,MAAM,CAACE,MAAnB,2DAA6B,EAA7B,CAAnB;;MACA,KAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGf,OAAO,CAACI,MAA5B,EAAoCW,CAAC,EAArC,EAAyC;QACxCJ,OAAO,CAACC,UAAU,CAACG,CAAD,CAAX,CAAP,GAAyBf,OAAO,CAACe,CAAD,CAAhC;MACA;IACD;;IAED,uCACIN,eADJ,GAEIE,OAFJ;EAIA;AArBoB,CAAtB;eAwBed,a"}
1
+ {"version":3,"file":"commander.utility.js","names":["commanderUtil","mapIncomingToOptions","args","strings","filter","a","possibleSchema","length","schema","id","fields","undefined","originalOptions","find","isObjectLike","options","fieldNames","Object","keys","c"],"sources":["../../src/utilities/commander.utility.ts"],"sourcesContent":["import { isObjectLike } from 'lodash'\n\nconst commanderUtil = {\n\tmapIncomingToOptions(...args: any[]) {\n\t\tconst strings = args.filter((a) => typeof a === 'string')\n\t\tconst possibleSchema = args[args.length - 1]\n\t\tconst schema =\n\t\t\tpossibleSchema?.id && possibleSchema?.fields ? possibleSchema : undefined\n\n\t\tconst originalOptions = args.find((a) => isObjectLike(a)) ?? {}\n\t\tconst options: Record<string, any> = {}\n\n\t\tif (schema) {\n\t\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\t\tfor (let c = 0; c < strings.length; c++) {\n\t\t\t\toptions[fieldNames[c]] = strings[c]\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t...originalOptions,\n\t\t\t...options,\n\t\t}\n\t},\n}\n\nexport default commanderUtil\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,aAAa,GAAG;EACrBC,oBADqB,kCACgB;IAAA;;IAAA,kCAAbC,IAAa;MAAbA,IAAa;IAAA;;IACpC,IAAMC,OAAO,GAAGD,IAAI,CAACE,MAAL,CAAY,UAACC,CAAD;MAAA,OAAO,OAAOA,CAAP,KAAa,QAApB;IAAA,CAAZ,CAAhB;IACA,IAAMC,cAAc,GAAGJ,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAA3B;IACA,IAAMC,MAAM,GACXF,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEG,EAAhB,IAAsBH,cAAtB,aAAsBA,cAAtB,eAAsBA,cAAc,CAAEI,MAAtC,GAA+CJ,cAA/C,GAAgEK,SADjE;IAGA,IAAMC,eAAe,iBAAGV,IAAI,CAACW,IAAL,CAAU,UAACR,CAAD;MAAA,OAAO,IAAAS,oBAAA,EAAaT,CAAb,CAAP;IAAA,CAAV,CAAH,mDAAwC,EAA7D;IACA,IAAMU,OAA4B,GAAG,EAArC;;IAEA,IAAIP,MAAJ,EAAY;MAAA;;MACX,IAAMQ,UAAU,GAAGC,MAAM,CAACC,IAAP,mBAAYV,MAAM,CAACE,MAAnB,2DAA6B,EAA7B,CAAnB;;MACA,KAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGhB,OAAO,CAACI,MAA5B,EAAoCY,CAAC,EAArC,EAAyC;QACxCJ,OAAO,CAACC,UAAU,CAACG,CAAD,CAAX,CAAP,GAAyBhB,OAAO,CAACgB,CAAD,CAAhC;MACA;IACD;;IAED,uCACIP,eADJ,GAEIG,OAFJ;EAIA;AArBoB,CAAtB;eAwBef,a"}
@@ -1 +1 @@
1
- {"version":3,"file":"eventContractCleaner.utility.js","names":["eventContractCleanerUtil","cleanPayloadsAndPermissions","contract","cleaned","eventSignatures","signatures","eventContractUtil","getNamedEventSignatures","sig","cleanedSig","signature","emitPayloadFields","Object","keys","emitPayloadSchema","fields","payload","options","schema","length","targetPayloadFields","target","responsePayloadSchema","emitPermissionContract","permissions","listenPermissionContract","fullyQualifiedEventName"],"sources":["../../src/utilities/eventContractCleaner.utility.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventContractUtil } from '@sprucelabs/spruce-event-utils'\n\nexport const eventContractCleanerUtil = {\n\tcleanPayloadsAndPermissions(contract: EventContract): EventContract {\n\t\tconst cleaned: EventContract = {\n\t\t\teventSignatures: {},\n\t\t}\n\n\t\tconst signatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tfor (const sig of signatures) {\n\t\t\tconst cleanedSig = {\n\t\t\t\t...sig.signature,\n\t\t\t}\n\n\t\t\tconst emitPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.payload?.options?.schema\n\t\t\t\t\t?.fields ?? {}\n\t\t\t).length\n\n\t\t\tconst targetPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.target?.options?.schema?.fields ??\n\t\t\t\t\t{}\n\t\t\t).length\n\n\t\t\tif (emitPayloadFields + targetPayloadFields === 0) {\n\t\t\t\tdelete cleanedSig.emitPayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.responsePayloadSchema?.fields &&\n\t\t\t\tObject.keys(cleanedSig.responsePayloadSchema?.fields).length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.responsePayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.emitPermissionContract &&\n\t\t\t\tcleanedSig.emitPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.emitPermissionContract\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.listenPermissionContract &&\n\t\t\t\tcleanedSig.listenPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.listenPermissionContract\n\t\t\t}\n\n\t\t\tcleaned.eventSignatures[sig.fullyQualifiedEventName] = cleanedSig\n\t\t}\n\n\t\treturn cleaned\n\t},\n}\n"],"mappings":";;;;;;;;;;;AACA;;;;;;;;;;;;AAEO,IAAMA,wBAAwB,GAAG;EACvCC,2BADuC,uCACXC,QADW,EAC6B;IACnE,IAAMC,OAAsB,GAAG;MAC9BC,eAAe,EAAE;IADa,CAA/B;;IAIA,IAAMC,UAAU,GAAGC,oCAAkBC,uBAAlB,CAA0CL,QAA1C,CAAnB;;IALmE,2CAOjDG,UAPiD;IAAA;;IAAA;MAOnE,oDAA8B;QAAA;;QAAA,IAAnBG,GAAmB;;QAC7B,IAAMC,UAAU,qBACZD,GAAG,CAACE,SADQ,CAAhB;;QAIA,IAAMC,iBAAiB,GAAGC,MAAM,CAACC,IAAP,EACzB;QADyB,mDAEzBJ,UAAU,CAACK,iBAFc,qFAEzB,uBAA8BC,MAFL,qFAEzB,uBAAsCC,OAFb,qFAEzB,uBAA+CC,OAFtB,qFAEzB,uBAAwDC,MAF/B,2DAEzB,uBACGH,MAHsB,yEAGZ,EAHY,EAIxBI,MAJF;QAMA,IAAMC,mBAAmB,GAAGR,MAAM,CAACC,IAAP,EAC3B;QAD2B,oDAE3BJ,UAAU,CAACK,iBAFgB,qFAE3B,uBAA8BC,MAFH,sFAE3B,uBAAsCM,MAFX,uFAE3B,wBAA8CJ,OAFnB,uFAE3B,wBAAuDC,MAF5B,4DAE3B,wBAA+DH,MAFpC,2EAG1B,EAH0B,EAI1BI,MAJF;;QAMA,IAAIR,iBAAiB,GAAGS,mBAApB,KAA4C,CAAhD,EAAmD;UAClD,OAAOX,UAAU,CAACK,iBAAlB;QACA;;QAED,IACC,yBAAAL,UAAU,CAACa,qBAAX,wEAAkCP,MAAlC,IACAH,MAAM,CAACC,IAAP,2BAAYJ,UAAU,CAACa,qBAAvB,2DAAY,uBAAkCP,MAA9C,EAAsDI,MAAtD,KAAiE,CAFlE,EAGE;UACD,OAAOV,UAAU,CAACa,qBAAlB;QACA;;QAED,IACCb,UAAU,CAACc,sBAAX,IACAd,UAAU,CAACc,sBAAX,CAAkCC,WAAlC,CAA8CL,MAA9C,KAAyD,CAF1D,EAGE;UACD,OAAOV,UAAU,CAACc,sBAAlB;QACA;;QAED,IACCd,UAAU,CAACgB,wBAAX,IACAhB,UAAU,CAACgB,wBAAX,CAAoCD,WAApC,CAAgDL,MAAhD,KAA2D,CAF5D,EAGE;UACD,OAAOV,UAAU,CAACgB,wBAAlB;QACA;;QAEDtB,OAAO,CAACC,eAAR,CAAwBI,GAAG,CAACkB,uBAA5B,IAAuDjB,UAAvD;MACA;IAlDkE;MAAA;IAAA;MAAA;IAAA;;IAoDnE,OAAON,OAAP;EACA;AAtDsC,CAAjC"}
1
+ {"version":3,"file":"eventContractCleaner.utility.js","names":["eventContractCleanerUtil","cleanPayloadsAndPermissions","contract","cleaned","eventSignatures","signatures","eventContractUtil","getNamedEventSignatures","sig","cleanedSig","signature","emitPayloadFields","Object","keys","emitPayloadSchema","fields","payload","options","schema","length","targetPayloadFields","target","responsePayloadSchema","emitPermissionContract","permissions","listenPermissionContract","fullyQualifiedEventName"],"sources":["../../src/utilities/eventContractCleaner.utility.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventContractUtil } from '@sprucelabs/spruce-event-utils'\n\nexport const eventContractCleanerUtil = {\n\tcleanPayloadsAndPermissions(contract: EventContract): EventContract {\n\t\tconst cleaned: EventContract = {\n\t\t\teventSignatures: {},\n\t\t}\n\n\t\tconst signatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tfor (const sig of signatures) {\n\t\t\tconst cleanedSig = {\n\t\t\t\t...sig.signature,\n\t\t\t}\n\n\t\t\tconst emitPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.payload?.options?.schema\n\t\t\t\t\t?.fields ?? {}\n\t\t\t).length\n\n\t\t\tconst targetPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.target?.options?.schema?.fields ??\n\t\t\t\t\t{}\n\t\t\t).length\n\n\t\t\tif (emitPayloadFields + targetPayloadFields === 0) {\n\t\t\t\tdelete cleanedSig.emitPayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.responsePayloadSchema?.fields &&\n\t\t\t\tObject.keys(cleanedSig.responsePayloadSchema?.fields).length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.responsePayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.emitPermissionContract &&\n\t\t\t\tcleanedSig.emitPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.emitPermissionContract\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.listenPermissionContract &&\n\t\t\t\tcleanedSig.listenPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.listenPermissionContract\n\t\t\t}\n\n\t\t\tcleaned.eventSignatures[sig.fullyQualifiedEventName] = cleanedSig\n\t\t}\n\n\t\treturn cleaned\n\t},\n}\n"],"mappings":";;;;;;;;;;;AACA;;;;;;;;;;;;AAEO,IAAMA,wBAAwB,GAAG;EACvCC,2BADuC,uCACXC,QADW,EAC6B;IACnE,IAAMC,OAAsB,GAAG;MAC9BC,eAAe,EAAE;IADa,CAA/B;;IAIA,IAAMC,UAAU,GAAGC,mCAAA,CAAkBC,uBAAlB,CAA0CL,QAA1C,CAAnB;;IALmE,2CAOjDG,UAPiD;IAAA;;IAAA;MAOnE,oDAA8B;QAAA;;QAAA,IAAnBG,GAAmB;;QAC7B,IAAMC,UAAU,qBACZD,GAAG,CAACE,SADQ,CAAhB;;QAIA,IAAMC,iBAAiB,GAAGC,MAAM,CAACC,IAAP,EACzB;QADyB,mDAEzBJ,UAAU,CAACK,iBAFc,qFAEzB,uBAA8BC,MAFL,qFAEzB,uBAAsCC,OAFb,qFAEzB,uBAA+CC,OAFtB,qFAEzB,uBAAwDC,MAF/B,2DAEzB,uBACGH,MAHsB,yEAGZ,EAHY,EAIxBI,MAJF;QAMA,IAAMC,mBAAmB,GAAGR,MAAM,CAACC,IAAP,EAC3B;QAD2B,oDAE3BJ,UAAU,CAACK,iBAFgB,qFAE3B,uBAA8BC,MAFH,sFAE3B,uBAAsCM,MAFX,uFAE3B,wBAA8CJ,OAFnB,uFAE3B,wBAAuDC,MAF5B,4DAE3B,wBAA+DH,MAFpC,2EAG1B,EAH0B,EAI1BI,MAJF;;QAMA,IAAIR,iBAAiB,GAAGS,mBAApB,KAA4C,CAAhD,EAAmD;UAClD,OAAOX,UAAU,CAACK,iBAAlB;QACA;;QAED,IACC,yBAAAL,UAAU,CAACa,qBAAX,wEAAkCP,MAAlC,IACAH,MAAM,CAACC,IAAP,2BAAYJ,UAAU,CAACa,qBAAvB,2DAAY,uBAAkCP,MAA9C,EAAsDI,MAAtD,KAAiE,CAFlE,EAGE;UACD,OAAOV,UAAU,CAACa,qBAAlB;QACA;;QAED,IACCb,UAAU,CAACc,sBAAX,IACAd,UAAU,CAACc,sBAAX,CAAkCC,WAAlC,CAA8CL,MAA9C,KAAyD,CAF1D,EAGE;UACD,OAAOV,UAAU,CAACc,sBAAlB;QACA;;QAED,IACCd,UAAU,CAACgB,wBAAX,IACAhB,UAAU,CAACgB,wBAAX,CAAoCD,WAApC,CAAgDL,MAAhD,KAA2D,CAF5D,EAGE;UACD,OAAOV,UAAU,CAACgB,wBAAlB;QACA;;QAEDtB,OAAO,CAACC,eAAR,CAAwBI,GAAG,CAACkB,uBAA5B,IAAuDjB,UAAvD;MACA;IAlDkE;MAAA;IAAA;MAAA;IAAA;;IAoDnE,OAAON,OAAP;EACA;AAtDsC,CAAjC"}