@sprucelabs/spruce-cli 15.4.12 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  3. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  43. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  44. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  45. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  63. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  67. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  68. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  69. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  70. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  71. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  89. package/build/GlobalEmitter.js.map +1 -1
  90. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  91. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  92. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  93. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  94. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  95. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  96. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  97. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  98. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  99. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  100. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  101. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  102. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  103. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  104. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  105. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  106. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  107. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  108. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  109. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  110. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  111. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  112. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  113. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  114. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  115. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  116. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  117. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  118. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  119. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  120. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  121. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  122. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  123. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  124. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  125. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  126. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  127. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  128. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  129. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  130. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  131. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  132. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  133. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  135. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  136. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  137. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  138. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  139. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  140. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  141. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  142. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  143. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  144. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  145. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  146. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  147. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  148. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  149. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  150. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  151. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  152. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  153. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
  155. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  156. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  157. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  158. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  159. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  161. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  169. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  171. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  173. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  175. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  176. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  177. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  178. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  179. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  180. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  181. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  182. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  183. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  184. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  185. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  186. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  187. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  188. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  189. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  190. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  191. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  192. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  193. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  194. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  195. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  196. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  197. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  198. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  199. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  200. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  201. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  202. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  203. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  204. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  205. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  206. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  207. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  208. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  209. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  210. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  211. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  212. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  213. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  214. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  215. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  216. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  217. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  218. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  219. package/build/addons/filePrompt.addon.js.map +1 -1
  220. package/build/cli.js.map +1 -1
  221. package/build/components/FormComponent.js.map +1 -1
  222. package/build/components/QuizComponent.js.map +1 -1
  223. package/build/errors/SpruceError.js.map +1 -1
  224. package/build/errors/actionCancelled.builder.js.map +1 -1
  225. package/build/errors/bootError.builder.js.map +1 -1
  226. package/build/errors/buildFailed.builder.js.map +1 -1
  227. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  228. package/build/errors/commandAborted.builder.js.map +1 -1
  229. package/build/errors/commandBlocked.builder.js.map +1 -1
  230. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  231. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  232. package/build/errors/dependencyExists.builder.js.map +1 -1
  233. package/build/errors/deployFailed.builder.js.map +1 -1
  234. package/build/errors/directoryEmpty.builder.js.map +1 -1
  235. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  236. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  237. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  238. package/build/errors/failedToImport.builder.js.map +1 -1
  239. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  240. package/build/errors/fileExists.builder.js.map +1 -1
  241. package/build/errors/generic.builder.js.map +1 -1
  242. package/build/errors/invalidCommand.builder.js.map +1 -1
  243. package/build/errors/invalidEventContract.builder.js.map +1 -1
  244. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  245. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  246. package/build/errors/lintFailed.builder.js.map +1 -1
  247. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  248. package/build/errors/missingDependencies.builder.js.map +1 -1
  249. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  250. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  251. package/build/errors/notImplemented.builder.js.map +1 -1
  252. package/build/errors/notLoggedIn.builder.js.map +1 -1
  253. package/build/errors/schemaExists.builder.js.map +1 -1
  254. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  255. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  256. package/build/errors/skillNotFound.builder.js.map +1 -1
  257. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  258. package/build/errors/skillViewExists.builder.js.map +1 -1
  259. package/build/errors/storeExists.builder.js.map +1 -1
  260. package/build/errors/testFailed.builder.js.map +1 -1
  261. package/build/errors/themeExists.builder.js.map +1 -1
  262. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  263. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  264. package/build/features/AbstractAction.js.map +1 -1
  265. package/build/features/AbstractFeature.js.map +1 -1
  266. package/build/features/ActionExecuter.js.map +1 -1
  267. package/build/features/ActionFactory.js.map +1 -1
  268. package/build/features/ActionQuestionAsker.js.map +1 -1
  269. package/build/features/FeatureCommandAttacher.js.map +1 -1
  270. package/build/features/FeatureInstaller.js.map +1 -1
  271. package/build/features/OverrideActionDecorator.js.map +1 -1
  272. package/build/features/cache/CacheFeature.js.map +1 -1
  273. package/build/features/cache/actions/DisableAction.js.map +1 -1
  274. package/build/features/cache/actions/EnableAction.js.map +1 -1
  275. package/build/features/conversation/ConversationFeature.js.map +1 -1
  276. package/build/features/conversation/actions/TestAction.js.map +1 -1
  277. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  278. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  279. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  280. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  281. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  282. package/build/features/deploy/DeployFeature.js.map +1 -1
  283. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  284. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  285. package/build/features/error/ErrorFeature.js.map +1 -1
  286. package/build/features/error/ParentTestFinder.js.map +1 -1
  287. package/build/features/error/actions/CreateAction.js.map +1 -1
  288. package/build/features/error/actions/SyncAction.js.map +1 -1
  289. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  290. package/build/features/event/EventFeature.js.map +1 -1
  291. package/build/features/event/actions/CreateAction.js.map +1 -1
  292. package/build/features/event/actions/ListenAction.js.map +1 -1
  293. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  294. package/build/features/event/actions/SyncAction.js.map +1 -1
  295. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  296. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  297. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  298. package/build/features/event/stores/EventStore.js.map +1 -1
  299. package/build/features/event/stores/ListenerStore.js.map +1 -1
  300. package/build/features/event/writers/EventWriter.js.map +1 -1
  301. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  302. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  303. package/build/features/feature.utilities.js.map +1 -1
  304. package/build/features/features.types.js.map +1 -1
  305. package/build/features/log/LogFeature.js.map +1 -1
  306. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  307. package/build/features/log/writers/LogWriter.js.map +1 -1
  308. package/build/features/node/NodeFeature.js.map +1 -1
  309. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  310. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  311. package/build/features/node/writers/NodeWriter.js.map +1 -1
  312. package/build/features/onboard/OnboardFeature.js.map +1 -1
  313. package/build/features/onboard/ScriptLoader.js.map +1 -1
  314. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  318. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  319. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  320. package/build/features/organization/OrganizationFeature.js.map +1 -1
  321. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  322. package/build/features/person/PersonFeature.js.map +1 -1
  323. package/build/features/person/actions/LoginAction.js.map +1 -1
  324. package/build/features/person/actions/LogoutAction.js.map +1 -1
  325. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  326. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  327. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  328. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  329. package/build/features/schema/SchemaFeature.js.map +1 -1
  330. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  331. package/build/features/schema/actions/CreateAction.js.map +1 -1
  332. package/build/features/schema/actions/SyncAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  334. package/build/features/schema/services/SchemaService.js.map +1 -1
  335. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  336. package/build/features/schema/stores/SchemaStore.js +2 -1
  337. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  338. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  339. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  341. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  342. package/build/features/skill/SkillFeature.js.map +1 -1
  343. package/build/features/skill/actions/BootAction.js.map +1 -1
  344. package/build/features/skill/actions/CreateAction.js.map +1 -1
  345. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  346. package/build/features/skill/actions/LoginAction.js.map +1 -1
  347. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  348. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  349. package/build/features/skill/stores/SkillStore.js.map +1 -1
  350. package/build/features/skill/updaters/Updater.js.map +1 -1
  351. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  352. package/build/features/store/StoreFeature.js.map +1 -1
  353. package/build/features/store/actions/CreateAction.js.map +1 -1
  354. package/build/features/store/actions/SyncAction.js.map +1 -1
  355. package/build/features/store/stores/StoreStore.js.map +1 -1
  356. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  357. package/build/features/store/writers/StoreWriter.js.map +1 -1
  358. package/build/features/test/TestFeature.js.map +1 -1
  359. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  360. package/build/features/test/TestReporter.js.map +1 -1
  361. package/build/features/test/TestRunner.js.map +1 -1
  362. package/build/features/test/actions/CreateAction.js.map +1 -1
  363. package/build/features/test/actions/SetupAction.js.map +1 -1
  364. package/build/features/test/actions/TestAction.js.map +1 -1
  365. package/build/features/test/writers/TestWriter.js.map +1 -1
  366. package/build/features/validateAndNormalize.utility.js.map +1 -1
  367. package/build/features/view/ViewFeature.js.map +1 -1
  368. package/build/features/view/actions/CreateAction.js.map +1 -1
  369. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  370. package/build/features/view/actions/SyncAction.js.map +1 -1
  371. package/build/features/view/actions/WatchAction.js.map +1 -1
  372. package/build/features/view/stores/ViewStore.js.map +1 -1
  373. package/build/features/view/writers/ViewWriter.js.map +1 -1
  374. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  375. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  376. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  377. package/build/features/watch/WatchFeature.js.map +1 -1
  378. package/build/index.js.map +1 -1
  379. package/build/interfaces/SpyInterface.js +0 -1
  380. package/build/interfaces/SpyInterface.js.map +1 -1
  381. package/build/interfaces/TerminalInterface.js.map +1 -1
  382. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  383. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  406. package/build/services/CommandService.js.map +1 -1
  407. package/build/services/GameService.js.map +1 -1
  408. package/build/services/ImportService.js.map +1 -1
  409. package/build/services/LintService.js.map +1 -1
  410. package/build/services/PkgService.js.map +1 -1
  411. package/build/services/ServiceFactory.js.map +1 -1
  412. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  413. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  414. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  415. package/build/tests/AbstractCliTest.js.map +1 -1
  416. package/build/tests/AbstractEventTest.js.map +1 -1
  417. package/build/tests/AbstractSchemaTest.js.map +1 -1
  418. package/build/tests/AbstractTestTest.js.map +1 -1
  419. package/build/tests/CommandFaker.js.map +1 -1
  420. package/build/tests/JestJsonParser.js.map +1 -1
  421. package/build/tests/buildTestCache.js.map +1 -1
  422. package/build/tests/cleanTestCache.js.map +1 -1
  423. package/build/tests/cleanTestData.js.map +1 -1
  424. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  425. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  426. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  427. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  428. package/build/tests/utilities/test.utility.js.map +1 -1
  429. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  430. package/build/utilities/action.utility.js.map +1 -1
  431. package/build/utilities/commander.utility.js.map +1 -1
  432. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  433. package/build/utilities/form.utility.js.map +1 -1
  434. package/build/utilities/introspection.utility.js.map +1 -1
  435. package/build/utilities/tsConfig.utility.js.map +1 -1
  436. package/build/widgets/Theme.js.map +1 -1
  437. package/build/widgets/WidgetFactory.js.map +1 -1
  438. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  439. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  440. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  441. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  445. package/build/widgets/types/input.types.js.map +1 -1
  446. package/build/widgets/types/menuBar.types.js.map +1 -1
  447. package/build/widgets/types/text.types.js.map +1 -1
  448. package/build/widgets/types/window.types.js.map +1 -1
  449. package/build/writers/AbstractWriter.js.map +1 -1
  450. package/package.json +34 -34
  451. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  452. package/src/features/schema/stores/SchemaStore.ts +4 -2
  453. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  454. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  455. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  456. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaTemplateItemBuilder.test.js","names":["cowbellV1","id","version","name","fields","radius","type","cowbellV1TemplateItem","namespace","CORE_NAMESPACE","importFrom","nameCamel","namePascal","nameReadable","schema","isNested","destinationDir","cowbellV1NestedTemplateItem","cowbellV2","owner","options","schemaId","cowbellV2TemplateItem","schemaIds","cowbellV2NestedTemplateItem","personV1","personV1TemplateItem","personV2","favoriteVehicle","make","personV2TemplateItem","personV3","relatedField","schemas","personV3TemplateItem","vehicleV1TemplateItem","personV4","importsWhenLocal","importsWhenRemote","cowbells","personV4TemplateItem","imports","nestedMercuryContract","description","dynamicFieldSignature","keyName","responsePayload","valueType","emitPayload","listenPermissionsAny","emitPermissionsAny","nestedMercuryContractArray","mercuryTemplateItem","eventSignatureTemplateItem","mercuryTemplateItemArray","eventSignatureTemplateItem2","schemaWithManyNestedSchemas","firstLayer","secondLayer","lastLayer","pass","manyNestedTemplateItem","firstLayerTemplateItem","secondLayerTemplateItem","lastLayerTemplateItem","mercurySchemas","eventSignatures","isRequired","isArray","fullyQualifiedEventName","listenPermissions","emitPermissions","requireAllPermissions","defaultValue","permissions","label","hint","requireAllStatuses","defaults","groupManager","manager","teammate","guest","can","clockedIn","clockedOut","onPrem","offPrem","mercuryTemplateItems","localSchema","onlyField","localSchemaTemplateItem","SchemaTemplateItemBuilderTest","itemBuilder","SchemaTemplateItemBuilder","LOCAL_NAMESPACE","assert","isTruthy","isFunction","buildTemplateItems","results","actual","isEqualDeep","expected","localNamespace","isLength","length","forEach","idx","match","firstName","remote","local","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SchemaTemplateItemBuilder.test.ts"],"sourcesContent":["import { buildSchema, Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport { CORE_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nconst cowbellV1: Schema = {\n\tid: 'cowbell',\n\tversion: '2020_06_01',\n\tname: 'Cowbell test',\n\tfields: {\n\t\tradius: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n}\n\nconst cowbellV1TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV1.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test',\n\tschema: { ...cowbellV1, namespace: CORE_NAMESPACE },\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst cowbellV1NestedTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV1.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test',\n\tschema: { ...cowbellV1, namespace: CORE_NAMESPACE },\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst cowbellV2: Schema = {\n\tid: 'cowbell',\n\tversion: '2020_06_02',\n\tname: 'Cowbell test two!',\n\tfields: {\n\t\tradius: {\n\t\t\ttype: 'number',\n\t\t},\n\t\towner: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschemaId: { id: 'person', version: '2020_06_03' },\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst cowbellV2TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV2.id,\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test two!',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'cowbell',\n\t\tversion: '2020_06_02',\n\t\tname: 'Cowbell test two!',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tradius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\towner: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'person', version: '2020_06_03', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst cowbellV2NestedTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV2.id,\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test two!',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'cowbell',\n\t\tversion: '2020_06_02',\n\t\tname: 'Cowbell test two!',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tradius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\towner: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'person', version: '2020_06_03', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV1: Schema = {\n\tid: 'person',\n\tversion: '2020_06_01',\n\tname: 'Person test',\n\tfields: {\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n}\n\nconst personV1TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: personV1.id,\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person test',\n\tschema: { ...personV1, namespace: CORE_NAMESPACE },\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst personV2: Schema = {\n\tid: 'person',\n\tversion: '2020_06_01',\n\tname: 'Person version 2',\n\tfields: {\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t},\n\t\tfavoriteVehicle: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'vehicle',\n\t\t\t\t\tname: 'Vehicle v1',\n\t\t\t\t\tversion: '2020_06_01',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tmake: {\n\t\t\t\t\t\t\ttype: 'text',\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\nconst personV2TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: personV1.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person version 2',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'person',\n\t\tversion: '2020_06_01',\n\t\tname: 'Person version 2',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tname: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\tfavoriteVehicle: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'vehicle', version: '2020_06_01', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV3: Schema = {\n\tid: 'person',\n\tversion: '2020_06_03',\n\tname: 'Person test the 3rd',\n\tfields: {\n\t\trelatedField: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschemas: [cowbellV1, cowbellV2],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV3TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: personV3.id,\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person test the 3rd',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'person',\n\t\tversion: '2020_06_03',\n\t\tname: 'Person test the 3rd',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\trelatedField: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_01', namespace: CORE_NAMESPACE },\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_02', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst vehicleV1TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: 'vehicle',\n\tnameCamel: 'vehicle',\n\tnamePascal: 'Vehicle',\n\tnameReadable: 'Vehicle v1',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'vehicle',\n\t\tname: 'Vehicle v1',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tversion: '2020_06_01',\n\t\tfields: {\n\t\t\tmake: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV4: Schema = {\n\tid: 'person',\n\tversion: '2020_06_04',\n\tname: 'Person test the last',\n\timportsWhenLocal: [\"import BaseParent from '../../file'\"],\n\timportsWhenRemote: [\n\t\t\"import BaseParent from '@sprucelabs/spruce-core-schemas'\",\n\t],\n\tfields: {\n\t\tcowbells: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschemaIds: [\n\t\t\t\t\t{ id: 'cowbell', version: '2020_06_01' },\n\t\t\t\t\t{ id: 'cowbell', version: '2020_06_02' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV4TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: personV4.id,\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person test the last',\n\tschema: {\n\t\tid: 'person',\n\t\tversion: '2020_06_04',\n\t\tname: 'Person test the last',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportsWhenLocal: [\"import BaseParent from '../../file'\"],\n\t\timportsWhenRemote: [\n\t\t\t\"import BaseParent from '@sprucelabs/spruce-core-schemas'\",\n\t\t],\n\t\tfields: {\n\t\t\tcowbells: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_01', namespace: CORE_NAMESPACE },\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_02', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tisNested: false,\n\timports: [\"import BaseParent from '@sprucelabs/spruce-core-schemas'\"],\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst nestedMercuryContract: Schema = {\n\tid: 'mercuryContract',\n\tname: 'Mercury Contract',\n\tdescription: '',\n\tversion: '2020_09_01',\n\tdynamicFieldSignature: {\n\t\ttype: 'schema',\n\t\tkeyName: 'fullyQualifiedEventName',\n\t\toptions: {\n\t\t\tschema: {\n\t\t\t\tid: 'eventSignature',\n\t\t\t\tname: 'Event Signature',\n\t\t\t\tdescription: '',\n\t\t\t\tfields: {\n\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t},\n\t\t\t\t\temitPayload: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t},\n\t\t\t\t\tlistenPermissionsAny: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionsAny: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst nestedMercuryContractArray: Schema = {\n\tid: 'mercuryContract',\n\tname: 'Mercury Contract',\n\tdescription: '',\n\tversion: '2020_09_01',\n\n\tdynamicFieldSignature: {\n\t\ttype: 'schema',\n\t\tkeyName: 'fullyQualifiedEventName',\n\t\toptions: {\n\t\t\tschemas: [\n\t\t\t\t{\n\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\tname: 'Event Signature',\n\t\t\t\t\tdescription: '',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlistenPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'eventSignature2',\n\t\t\t\t\tname: 'Event Signature2',\n\t\t\t\t\tdescription: '',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlistenPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\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\nconst mercuryTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: nestedMercuryContract.id,\n\tnameCamel: 'mercuryContract',\n\tnamePascal: 'MercuryContract',\n\tnameReadable: nestedMercuryContract.name ?? nestedMercuryContract.id,\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'mercuryContract',\n\t\tname: 'Mercury Contract',\n\t\tdescription: '',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tversion: '2020_09_01',\n\t\tdynamicFieldSignature: {\n\t\t\ttype: 'schema',\n\t\t\tkeyName: 'fullyQualifiedEventName',\n\t\t\toptions: {\n\t\t\t\tschemaIds: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst eventSignatureTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: 'eventSignature',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'eventSignature',\n\tnamePascal: 'EventSignature',\n\tnameReadable: 'Event Signature',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'eventSignature',\n\t\tname: 'Event Signature',\n\t\tdescription: '',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tresponsePayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\temitPayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\tlistenPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\temitPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t},\n\t},\n}\nconst mercuryTemplateItemArray: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: nestedMercuryContractArray.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'mercuryContract',\n\tnamePascal: 'MercuryContract',\n\tnameReadable:\n\t\tnestedMercuryContractArray.name ?? nestedMercuryContractArray.id,\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'mercuryContract',\n\t\tname: 'Mercury Contract',\n\t\tdescription: '',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tdynamicFieldSignature: {\n\t\t\ttype: 'schema',\n\t\t\tkeyName: 'fullyQualifiedEventName',\n\t\t\toptions: {\n\t\t\t\tschemaIds: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'eventSignature2',\n\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst eventSignatureTemplateItem2: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: 'eventSignature2',\n\tnameCamel: 'eventSignature2',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnamePascal: 'EventSignature2',\n\tnameReadable: 'Event Signature2',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'eventSignature2',\n\t\tname: 'Event Signature2',\n\t\tdescription: '',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tresponsePayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\temitPayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\tlistenPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\temitPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst schemaWithManyNestedSchemas: Schema = {\n\tid: 'manyNested',\n\tversion: '2020_09_01',\n\tfields: {\n\t\tfirstLayer: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'firstLayer',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tsecondLayer: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\tid: 'secondLayer',\n\t\t\t\t\t\t\t\t\tnamespace: 'OutsideNamespace',\n\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\tlastLayer: {\n\t\t\t\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'lastLayer',\n\t\t\t\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpass: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst manyNestedTemplateItem: SchemaTemplateItem = {\n\tid: 'manyNested',\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'manyNested',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tfirstLayer: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'firstLayer',\n\t\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\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\tnameReadable: 'manyNested',\n\tnameCamel: 'manyNested',\n\tnamePascal: 'ManyNested',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst firstLayerTemplateItem: SchemaTemplateItem = {\n\tid: 'firstLayer',\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'firstLayer',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tsecondLayer: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'secondLayer',\n\t\t\t\t\t\t\tnamespace: 'OutsideNamespace',\n\t\t\t\t\t\t\tversion: '2020_09_01',\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\tnameReadable: 'firstLayer',\n\tnameCamel: 'firstLayer',\n\tnamePascal: 'FirstLayer',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst secondLayerTemplateItem: SchemaTemplateItem = {\n\tid: 'secondLayer',\n\tnamespace: 'OutsideNamespace',\n\tschema: {\n\t\tid: 'secondLayer',\n\t\tversion: '2020_09_01',\n\t\tnamespace: 'OutsideNamespace',\n\t\tfields: {\n\t\t\tlastLayer: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'lastLayer',\n\t\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\t\tnamespace: 'OutsideNamespace',\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\tnameReadable: 'secondLayer',\n\tnameCamel: 'secondLayer',\n\tnamePascal: 'SecondLayer',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst lastLayerTemplateItem: SchemaTemplateItem = {\n\tid: 'lastLayer',\n\tnamespace: 'OutsideNamespace',\n\tschema: {\n\t\tid: 'lastLayer',\n\t\tnamespace: 'OutsideNamespace',\n\t\tversion: '2020_09_01',\n\t\tfields: { pass: { type: 'boolean' } },\n\t},\n\tnameReadable: 'lastLayer',\n\tnameCamel: 'lastLayer',\n\tnamePascal: 'LastLayer',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst mercurySchemas = [\n\t{\n\t\tid: 'mercuryContract',\n\t\tname: 'Mercury Contract',\n\t\tdescription: '',\n\t\tfields: {\n\t\t\teventSignatures: {\n\t\t\t\ttype: 'schema',\n\t\t\t\tisRequired: true,\n\t\t\t\tisArray: true,\n\t\t\t\toptions: {\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\tname: 'Event Signature',\n\t\t\t\t\t\tdescription: '',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfullyQualifiedEventName: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\temitPayload: {\n\t\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlistenPermissions: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschemaId: { id: 'permission', version: 'v2020_09_01' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\temitPermissions: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschemaId: { id: 'permission', version: 'v2020_09_01' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tversion: 'v2020_09_01',\n\t},\n\t{\n\t\tid: 'permissionContract',\n\t\tname: 'Permission Contract',\n\t\tdescription: '',\n\t\tfields: {\n\t\t\trequireAllPermissions: { type: 'boolean', defaultValue: false },\n\t\t\tpermissions: {\n\t\t\t\ttype: 'schema',\n\t\t\t\tisRequired: true,\n\t\t\t\tisArray: true,\n\t\t\t\toptions: {\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\tname: 'Permission',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tlabel: 'Permission name',\n\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\thint: 'Hyphen separated name for this permission, e.g. can-unlock-doors',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trequireAllStatuses: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\tlabel: 'Require all statuses',\n\t\t\t\t\t\t\t\tdefaultValue: false,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'defaultsByRole',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\towner: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tgroupManager: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tmanager: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tteammate: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tguest: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcan: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'statusFlags',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tdefault: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tclockedIn: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'Clocked in',\n\t\t\t\t\t\t\t\t\t\t\t\thint: 'Is the person clocked in and ready to rock?',\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tclockedOut: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'Clocked out',\n\t\t\t\t\t\t\t\t\t\t\t\thint: 'When someone is not working (off the clock).',\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tonPrem: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'On premise',\n\t\t\t\t\t\t\t\t\t\t\t\thint: 'Are they at work (maybe working, maybe visiting).',\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\toffPrem: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'Off premise',\n\t\t\t\t\t\t\t\t\t\t\t\thint: \"They aren't at the office or shop.\",\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tversion: 'v2020_09_01',\n\t},\n]\n\nconst mercuryTemplateItems = [\n\t{\n\t\tid: 'statusFlags',\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'statusFlags',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tfields: {\n\t\t\t\tdefault: { type: 'boolean' },\n\t\t\t\tclockedIn: {\n\t\t\t\t\tlabel: 'Clocked in',\n\t\t\t\t\thint: 'Is the person clocked in and ready to rock?',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\tclockedOut: {\n\t\t\t\t\tlabel: 'Clocked out',\n\t\t\t\t\thint: 'When someone is not working (off the clock).',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\tonPrem: {\n\t\t\t\t\tlabel: 'On premise',\n\t\t\t\t\thint: 'Are they at work (maybe working, maybe visiting).',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\toffPrem: {\n\t\t\t\t\tlabel: 'Off premise',\n\t\t\t\t\thint: \"They aren't at the office or shop.\",\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tnameReadable: 'statusFlags',\n\t\tnameCamel: 'statusFlags',\n\t\tnamePascal: 'StatusFlags',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'defaultsByRole',\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'defaultsByRole',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tfields: {\n\t\t\t\towner: { type: 'boolean' },\n\t\t\t\tgroupManager: { type: 'boolean' },\n\t\t\t\tmanager: { type: 'boolean' },\n\t\t\t\tteammate: { type: 'boolean' },\n\t\t\t\tguest: { type: 'boolean' },\n\t\t\t},\n\t\t},\n\t\tnameReadable: 'defaultsByRole',\n\t\tnameCamel: 'defaultsByRole',\n\t\tnamePascal: 'DefaultsByRole',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'permission',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'permission',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tfields: {\n\t\t\t\tname: {\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tlabel: 'Permission name',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\thint: 'Hyphen separated name for this permission, e.g. can-unlock-doors',\n\t\t\t\t},\n\t\t\t\trequireAllStatuses: {\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\tlabel: 'Require all statuses',\n\t\t\t\t\tdefaultValue: false,\n\t\t\t\t},\n\t\t\t\tdefaults: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'defaultsByRole',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcan: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'statusFlags',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tname: 'Permission',\n\t\t},\n\t\tnameReadable: 'Permission',\n\t\tnameCamel: 'permission',\n\t\tnamePascal: 'Permission',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'permissionContract',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tid: 'permissionContract',\n\t\t\tname: 'Permission Contract',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t\trequireAllPermissions: { type: 'boolean', defaultValue: false },\n\t\t\t\tpermissions: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tversion: 'v2020_09_01',\n\t\t},\n\t\tnameReadable: 'Permission Contract',\n\t\tnameCamel: 'permissionContract',\n\t\tnamePascal: 'PermissionContract',\n\t\tisNested: false,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'eventSignature',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'eventSignature',\n\t\t\tname: 'Event Signature',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t\tfullyQualifiedEventName: { type: 'text', isRequired: true },\n\t\t\t\tresponsePayload: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t},\n\t\t\t\temitPayload: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t},\n\t\t\t\tlistenPermissions: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\temitPermissions: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tnameReadable: 'Event Signature',\n\t\tnameCamel: 'eventSignature',\n\t\tnamePascal: 'EventSignature',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'mercuryContract',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tid: 'mercuryContract',\n\t\t\tname: 'Mercury Contract',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tversion: 'v2020_09_01',\n\t\t},\n\t\tnameReadable: 'Mercury Contract',\n\t\tnameCamel: 'mercuryContract',\n\t\tnamePascal: 'MercuryContract',\n\t\tisNested: false,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n]\n\nconst localSchema = buildSchema({\n\tid: 'localNamespaceSchema',\n\tnamespace: 'Mercury',\n\tfields: {\n\t\tonlyField: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n})\n\nconst localSchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Mercury',\n\tid: 'localNamespaceSchema',\n\tnameCamel: 'localNamespaceSchema',\n\tnamePascal: 'LocalNamespaceSchema',\n\tnameReadable: 'localNamespaceSchema',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: localSchema,\n}\n\nexport default class SchemaTemplateItemBuilderTest extends AbstractCliTest {\n\tprivate static itemBuilder: SchemaTemplateItemBuilder\n\n\tprivate static readonly LOCAL_NAMESPACE = 'LocalNamespace'\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.itemBuilder = new SchemaTemplateItemBuilder(this.LOCAL_NAMESPACE)\n\t}\n\n\t@test()\n\tprotected static canInstantiate() {\n\t\tassert.isTruthy(this.itemBuilder)\n\t}\n\n\t@test()\n\tprotected static hasGenerateFunction() {\n\t\tassert.isFunction(this.itemBuilder.buildTemplateItems)\n\t}\n\n\t@test()\n\tprotected static turnsSingleDefinitionIntoTemplateItem() {\n\t\tconst results = this.itemBuilder.buildTemplateItems(\n\t\t\t{ [CORE_NAMESPACE]: [personV1] },\n\t\t\t'#spruce/schemas'\n\t\t)\n\t\tconst actual = results[0]\n\n\t\tassert.isEqualDeep(actual, personV1TemplateItem)\n\t}\n\n\t@test(\n\t\t'turns 2 definitions into 2 template items',\n\t\t[cowbellV1, personV1],\n\t\t[personV1TemplateItem, cowbellV1TemplateItem]\n\t)\n\t@test(\n\t\t'turns one nested definition into 2 items',\n\t\t[personV2],\n\t\t[vehicleV1TemplateItem, personV2TemplateItem]\n\t)\n\t@test(\n\t\t'handles recursion without looping forever',\n\t\t[personV3],\n\t\t[\n\t\t\tcowbellV1NestedTemplateItem,\n\t\t\tpersonV3TemplateItem,\n\t\t\tcowbellV2NestedTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'handles duplication',\n\t\t[cowbellV1, cowbellV1, cowbellV1],\n\t\t[cowbellV1TemplateItem]\n\t)\n\t@test(\n\t\t'handles resolving by id and version',\n\t\t[personV4, personV3, cowbellV1, cowbellV2],\n\t\t[\n\t\t\tcowbellV2TemplateItem,\n\t\t\tcowbellV1TemplateItem,\n\t\t\tpersonV3TemplateItem,\n\t\t\tpersonV4TemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'handles resolving by id and version in different order',\n\t\t[cowbellV1, personV4, personV3, cowbellV2],\n\t\t[\n\t\t\tcowbellV2TemplateItem,\n\t\t\tcowbellV1TemplateItem,\n\t\t\tpersonV3TemplateItem,\n\t\t\tpersonV4TemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'handles nested schema in dynamic key signature',\n\t\t[nestedMercuryContract],\n\t\t[eventSignatureTemplateItem, mercuryTemplateItem]\n\t)\n\t@test(\n\t\t'handles nested schemas in dynamic key signature',\n\t\t[nestedMercuryContractArray],\n\t\t[\n\t\t\teventSignatureTemplateItem2,\n\t\t\teventSignatureTemplateItem,\n\t\t\tmercuryTemplateItemArray,\n\t\t]\n\t)\n\t@test(\n\t\t'handles many layers of nested schemas',\n\t\t[schemaWithManyNestedSchemas],\n\t\t[\n\t\t\tlastLayerTemplateItem,\n\t\t\tsecondLayerTemplateItem,\n\t\t\tfirstLayerTemplateItem,\n\t\t\tmanyNestedTemplateItem,\n\t\t]\n\t)\n\t@test('can import event contracts', mercurySchemas, mercuryTemplateItems)\n\t@test(\n\t\t'import from not set if matching local namespace',\n\t\t[localSchema],\n\t\t[localSchemaTemplateItem],\n\t\t'Mercury'\n\t)\n\tprotected static generationTests(\n\t\tschemas: Schema[],\n\t\texpected: SchemaTemplateItem[],\n\t\tlocalNamespace = this.LOCAL_NAMESPACE\n\t) {\n\t\tthis.itemBuilder = new SchemaTemplateItemBuilder(localNamespace)\n\n\t\tconst results = this.itemBuilder.buildTemplateItems({\n\t\t\t[CORE_NAMESPACE]: schemas,\n\t\t})\n\n\t\tassert.isLength(results, expected.length)\n\n\t\texpected.forEach((expected, idx) => {\n\t\t\tconst match = results[idx]\n\t\t\tassert.isTruthy(match, `Did not find a template item for ${expected.id}`)\n\t\t\tassert.isEqualDeep(match, expected)\n\t\t})\n\t}\n\n\t@test()\n\tprotected static setsImports() {\n\t\tconst results = this.itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[this.LOCAL_NAMESPACE]: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'local',\n\t\t\t\t\t\timportsWhenLocal: ['import local from \"local\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote from \"remote\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\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\t'#spruce/schemas'\n\t\t)\n\n\t\tassert.isEqualDeep(results, [\n\t\t\t{\n\t\t\t\tid: 'local',\n\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tid: 'local',\n\t\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\t\timportsWhenLocal: [`import local from \"local\"`],\n\t\t\t\t\timportsWhenRemote: [`import remote from \"remote\"`],\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnameReadable: 'local',\n\t\t\t\tnameCamel: 'local',\n\t\t\t\tnamePascal: 'Local',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: [`import local from \"local\"`],\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static bringsImportsFromRemoteFromRelatedSchemas() {\n\t\tconst results = this.itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[this.LOCAL_NAMESPACE]: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'local',\n\t\t\t\t\t\timportsWhenLocal: ['import local from \"local\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote from \"remote\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: { id: 'remote', namespace: 'AnotherNamespace' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlocal: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: { id: 'local', namespace: this.LOCAL_NAMESPACE },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'local2',\n\t\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote2 from \"remote2\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: { id: 'remote', namespace: 'AnotherNamespace' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tAnotherNamespace: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'remote',\n\t\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote3 from \"remote3\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\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\t'#spruce/schemas'\n\t\t)\n\n\t\tassert.isEqualDeep(results, [\n\t\t\t{\n\t\t\t\tid: 'remote',\n\t\t\t\tnamespace: 'AnotherNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'remote',\n\t\t\t\t\tnamespace: 'AnotherNamespace',\n\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\timportsWhenRemote: ['import remote3 from \"remote3\"'],\n\t\t\t\t\tfields: { firstName: { type: 'text' } },\n\t\t\t\t},\n\t\t\t\tnameReadable: 'remote',\n\t\t\t\tnameCamel: 'remote',\n\t\t\t\tnamePascal: 'Remote',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: ['import remote3 from \"remote3\"'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'local2',\n\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\t\tid: 'local2',\n\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\timportsWhenRemote: ['import remote2 from \"remote2\"'],\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschemaIds: [{ id: 'remote', namespace: 'AnotherNamespace' }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnameReadable: 'local2',\n\t\t\t\tnameCamel: 'local2',\n\t\t\t\tnamePascal: 'Local2',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: [\n\t\t\t\t\t'import local2 from \"local2\"',\n\t\t\t\t\t'import remote3 from \"remote3\"',\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'local',\n\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'local',\n\t\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\t\timportsWhenLocal: ['import local from \"local\"'],\n\t\t\t\t\timportsWhenRemote: ['import remote from \"remote\"'],\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschemaIds: [{ id: 'remote', namespace: 'AnotherNamespace' }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlocal: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschemaIds: [{ id: 'local', namespace: 'LocalNamespace' }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnameReadable: 'local',\n\t\t\t\tnameCamel: 'local',\n\t\t\t\tnamePascal: 'Local',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: ['import local from \"local\"', 'import remote3 from \"remote3\"'],\n\t\t\t},\n\t\t])\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaTemplateItemBuilder.test.js","names":["cowbellV1","id","version","name","fields","radius","type","cowbellV1TemplateItem","namespace","CORE_NAMESPACE","importFrom","nameCamel","namePascal","nameReadable","schema","isNested","destinationDir","cowbellV1NestedTemplateItem","cowbellV2","owner","options","schemaId","cowbellV2TemplateItem","schemaIds","cowbellV2NestedTemplateItem","personV1","personV1TemplateItem","personV2","favoriteVehicle","make","personV2TemplateItem","personV3","relatedField","schemas","personV3TemplateItem","vehicleV1TemplateItem","personV4","importsWhenLocal","importsWhenRemote","cowbells","personV4TemplateItem","imports","nestedMercuryContract","description","dynamicFieldSignature","keyName","responsePayload","valueType","emitPayload","listenPermissionsAny","emitPermissionsAny","nestedMercuryContractArray","mercuryTemplateItem","eventSignatureTemplateItem","mercuryTemplateItemArray","eventSignatureTemplateItem2","schemaWithManyNestedSchemas","firstLayer","secondLayer","lastLayer","pass","manyNestedTemplateItem","firstLayerTemplateItem","secondLayerTemplateItem","lastLayerTemplateItem","mercurySchemas","eventSignatures","isRequired","isArray","fullyQualifiedEventName","listenPermissions","emitPermissions","requireAllPermissions","defaultValue","permissions","label","hint","requireAllStatuses","defaults","groupManager","manager","teammate","guest","can","clockedIn","clockedOut","onPrem","offPrem","mercuryTemplateItems","localSchema","buildSchema","onlyField","localSchemaTemplateItem","SchemaTemplateItemBuilderTest","test","itemBuilder","SchemaTemplateItemBuilder","LOCAL_NAMESPACE","assert","isTruthy","isFunction","buildTemplateItems","results","actual","isEqualDeep","expected","localNamespace","isLength","length","forEach","idx","match","firstName","remote","local","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SchemaTemplateItemBuilder.test.ts"],"sourcesContent":["import { buildSchema, Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport { CORE_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nconst cowbellV1: Schema = {\n\tid: 'cowbell',\n\tversion: '2020_06_01',\n\tname: 'Cowbell test',\n\tfields: {\n\t\tradius: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n}\n\nconst cowbellV1TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV1.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test',\n\tschema: { ...cowbellV1, namespace: CORE_NAMESPACE },\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst cowbellV1NestedTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV1.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test',\n\tschema: { ...cowbellV1, namespace: CORE_NAMESPACE },\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst cowbellV2: Schema = {\n\tid: 'cowbell',\n\tversion: '2020_06_02',\n\tname: 'Cowbell test two!',\n\tfields: {\n\t\tradius: {\n\t\t\ttype: 'number',\n\t\t},\n\t\towner: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschemaId: { id: 'person', version: '2020_06_03' },\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst cowbellV2TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV2.id,\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test two!',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'cowbell',\n\t\tversion: '2020_06_02',\n\t\tname: 'Cowbell test two!',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tradius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\towner: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'person', version: '2020_06_03', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst cowbellV2NestedTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: cowbellV2.id,\n\tnameCamel: 'cowbell',\n\tnamePascal: 'Cowbell',\n\tnameReadable: 'Cowbell test two!',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'cowbell',\n\t\tversion: '2020_06_02',\n\t\tname: 'Cowbell test two!',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tradius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\towner: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'person', version: '2020_06_03', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV1: Schema = {\n\tid: 'person',\n\tversion: '2020_06_01',\n\tname: 'Person test',\n\tfields: {\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n}\n\nconst personV1TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: personV1.id,\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person test',\n\tschema: { ...personV1, namespace: CORE_NAMESPACE },\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst personV2: Schema = {\n\tid: 'person',\n\tversion: '2020_06_01',\n\tname: 'Person version 2',\n\tfields: {\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t},\n\t\tfavoriteVehicle: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'vehicle',\n\t\t\t\t\tname: 'Vehicle v1',\n\t\t\t\t\tversion: '2020_06_01',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tmake: {\n\t\t\t\t\t\t\ttype: 'text',\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\nconst personV2TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: personV1.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person version 2',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'person',\n\t\tversion: '2020_06_01',\n\t\tname: 'Person version 2',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tname: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\tfavoriteVehicle: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'vehicle', version: '2020_06_01', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV3: Schema = {\n\tid: 'person',\n\tversion: '2020_06_03',\n\tname: 'Person test the 3rd',\n\tfields: {\n\t\trelatedField: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschemas: [cowbellV1, cowbellV2],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV3TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: personV3.id,\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person test the 3rd',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'person',\n\t\tversion: '2020_06_03',\n\t\tname: 'Person test the 3rd',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\trelatedField: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_01', namespace: CORE_NAMESPACE },\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_02', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst vehicleV1TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: 'vehicle',\n\tnameCamel: 'vehicle',\n\tnamePascal: 'Vehicle',\n\tnameReadable: 'Vehicle v1',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'vehicle',\n\t\tname: 'Vehicle v1',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tversion: '2020_06_01',\n\t\tfields: {\n\t\t\tmake: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV4: Schema = {\n\tid: 'person',\n\tversion: '2020_06_04',\n\tname: 'Person test the last',\n\timportsWhenLocal: [\"import BaseParent from '../../file'\"],\n\timportsWhenRemote: [\n\t\t\"import BaseParent from '@sprucelabs/spruce-core-schemas'\",\n\t],\n\tfields: {\n\t\tcowbells: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschemaIds: [\n\t\t\t\t\t{ id: 'cowbell', version: '2020_06_01' },\n\t\t\t\t\t{ id: 'cowbell', version: '2020_06_02' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst personV4TemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: personV4.id,\n\tnameCamel: 'person',\n\tnamePascal: 'Person',\n\tnameReadable: 'Person test the last',\n\tschema: {\n\t\tid: 'person',\n\t\tversion: '2020_06_04',\n\t\tname: 'Person test the last',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportsWhenLocal: [\"import BaseParent from '../../file'\"],\n\t\timportsWhenRemote: [\n\t\t\t\"import BaseParent from '@sprucelabs/spruce-core-schemas'\",\n\t\t],\n\t\tfields: {\n\t\t\tcowbells: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_01', namespace: CORE_NAMESPACE },\n\t\t\t\t\t\t{ id: 'cowbell', version: '2020_06_02', namespace: CORE_NAMESPACE },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tisNested: false,\n\timports: [\"import BaseParent from '@sprucelabs/spruce-core-schemas'\"],\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst nestedMercuryContract: Schema = {\n\tid: 'mercuryContract',\n\tname: 'Mercury Contract',\n\tdescription: '',\n\tversion: '2020_09_01',\n\tdynamicFieldSignature: {\n\t\ttype: 'schema',\n\t\tkeyName: 'fullyQualifiedEventName',\n\t\toptions: {\n\t\t\tschema: {\n\t\t\t\tid: 'eventSignature',\n\t\t\t\tname: 'Event Signature',\n\t\t\t\tdescription: '',\n\t\t\t\tfields: {\n\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t},\n\t\t\t\t\temitPayload: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t},\n\t\t\t\t\tlistenPermissionsAny: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionsAny: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst nestedMercuryContractArray: Schema = {\n\tid: 'mercuryContract',\n\tname: 'Mercury Contract',\n\tdescription: '',\n\tversion: '2020_09_01',\n\n\tdynamicFieldSignature: {\n\t\ttype: 'schema',\n\t\tkeyName: 'fullyQualifiedEventName',\n\t\toptions: {\n\t\t\tschemas: [\n\t\t\t\t{\n\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\tname: 'Event Signature',\n\t\t\t\t\tdescription: '',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlistenPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'eventSignature2',\n\t\t\t\t\tname: 'Event Signature2',\n\t\t\t\t\tdescription: '',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPayload: {\n\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlistenPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t\temitPermissionsAny: {\n\t\t\t\t\t\t\ttype: 'text',\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\nconst mercuryTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tid: nestedMercuryContract.id,\n\tnameCamel: 'mercuryContract',\n\tnamePascal: 'MercuryContract',\n\tnameReadable: nestedMercuryContract.name ?? nestedMercuryContract.id,\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'mercuryContract',\n\t\tname: 'Mercury Contract',\n\t\tdescription: '',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tversion: '2020_09_01',\n\t\tdynamicFieldSignature: {\n\t\t\ttype: 'schema',\n\t\t\tkeyName: 'fullyQualifiedEventName',\n\t\t\toptions: {\n\t\t\t\tschemaIds: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst eventSignatureTemplateItem: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: 'eventSignature',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'eventSignature',\n\tnamePascal: 'EventSignature',\n\tnameReadable: 'Event Signature',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'eventSignature',\n\t\tname: 'Event Signature',\n\t\tdescription: '',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tresponsePayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\temitPayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\tlistenPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\temitPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t},\n\t},\n}\nconst mercuryTemplateItemArray: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: nestedMercuryContractArray.id,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnameCamel: 'mercuryContract',\n\tnamePascal: 'MercuryContract',\n\tnameReadable:\n\t\tnestedMercuryContractArray.name ?? nestedMercuryContractArray.id,\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'mercuryContract',\n\t\tname: 'Mercury Contract',\n\t\tdescription: '',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tdynamicFieldSignature: {\n\t\t\ttype: 'schema',\n\t\t\tkeyName: 'fullyQualifiedEventName',\n\t\t\toptions: {\n\t\t\t\tschemaIds: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'eventSignature2',\n\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst eventSignatureTemplateItem2: SchemaTemplateItem = {\n\tnamespace: CORE_NAMESPACE,\n\tid: 'eventSignature2',\n\tnameCamel: 'eventSignature2',\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tnamePascal: 'EventSignature2',\n\tnameReadable: 'Event Signature2',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n\tschema: {\n\t\tid: 'eventSignature2',\n\t\tname: 'Event Signature2',\n\t\tdescription: '',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tresponsePayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\temitPayload: {\n\t\t\t\ttype: 'raw',\n\t\t\t\toptions: { valueType: 'Schema' },\n\t\t\t},\n\t\t\tlistenPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\temitPermissionsAny: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst schemaWithManyNestedSchemas: Schema = {\n\tid: 'manyNested',\n\tversion: '2020_09_01',\n\tfields: {\n\t\tfirstLayer: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'firstLayer',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tsecondLayer: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\tid: 'secondLayer',\n\t\t\t\t\t\t\t\t\tnamespace: 'OutsideNamespace',\n\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\tlastLayer: {\n\t\t\t\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'lastLayer',\n\t\t\t\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpass: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst manyNestedTemplateItem: SchemaTemplateItem = {\n\tid: 'manyNested',\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'manyNested',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tfirstLayer: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'firstLayer',\n\t\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\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\tnameReadable: 'manyNested',\n\tnameCamel: 'manyNested',\n\tnamePascal: 'ManyNested',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst firstLayerTemplateItem: SchemaTemplateItem = {\n\tid: 'firstLayer',\n\tnamespace: CORE_NAMESPACE,\n\timportFrom: '@sprucelabs/spruce-core-schemas',\n\tschema: {\n\t\tid: 'firstLayer',\n\t\tversion: '2020_09_01',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tfields: {\n\t\t\tsecondLayer: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'secondLayer',\n\t\t\t\t\t\t\tnamespace: 'OutsideNamespace',\n\t\t\t\t\t\t\tversion: '2020_09_01',\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\tnameReadable: 'firstLayer',\n\tnameCamel: 'firstLayer',\n\tnamePascal: 'FirstLayer',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst secondLayerTemplateItem: SchemaTemplateItem = {\n\tid: 'secondLayer',\n\tnamespace: 'OutsideNamespace',\n\tschema: {\n\t\tid: 'secondLayer',\n\t\tversion: '2020_09_01',\n\t\tnamespace: 'OutsideNamespace',\n\t\tfields: {\n\t\t\tlastLayer: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'lastLayer',\n\t\t\t\t\t\t\tversion: '2020_09_01',\n\t\t\t\t\t\t\tnamespace: 'OutsideNamespace',\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\tnameReadable: 'secondLayer',\n\tnameCamel: 'secondLayer',\n\tnamePascal: 'SecondLayer',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst lastLayerTemplateItem: SchemaTemplateItem = {\n\tid: 'lastLayer',\n\tnamespace: 'OutsideNamespace',\n\tschema: {\n\t\tid: 'lastLayer',\n\t\tnamespace: 'OutsideNamespace',\n\t\tversion: '2020_09_01',\n\t\tfields: { pass: { type: 'boolean' } },\n\t},\n\tnameReadable: 'lastLayer',\n\tnameCamel: 'lastLayer',\n\tnamePascal: 'LastLayer',\n\tisNested: true,\n\tdestinationDir: '#spruce/schemas',\n}\n\nconst mercurySchemas = [\n\t{\n\t\tid: 'mercuryContract',\n\t\tname: 'Mercury Contract',\n\t\tdescription: '',\n\t\tfields: {\n\t\t\teventSignatures: {\n\t\t\t\ttype: 'schema',\n\t\t\t\tisRequired: true,\n\t\t\t\tisArray: true,\n\t\t\t\toptions: {\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\tname: 'Event Signature',\n\t\t\t\t\t\tdescription: '',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfullyQualifiedEventName: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresponsePayload: {\n\t\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\temitPayload: {\n\t\t\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlistenPermissions: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschemaId: { id: 'permission', version: 'v2020_09_01' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\temitPermissions: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschemaId: { id: 'permission', version: 'v2020_09_01' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tversion: 'v2020_09_01',\n\t},\n\t{\n\t\tid: 'permissionContract',\n\t\tname: 'Permission Contract',\n\t\tdescription: '',\n\t\tfields: {\n\t\t\trequireAllPermissions: { type: 'boolean', defaultValue: false },\n\t\t\tpermissions: {\n\t\t\t\ttype: 'schema',\n\t\t\t\tisRequired: true,\n\t\t\t\tisArray: true,\n\t\t\t\toptions: {\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\tname: 'Permission',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tlabel: 'Permission name',\n\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\thint: 'Hyphen separated name for this permission, e.g. can-unlock-doors',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trequireAllStatuses: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\tlabel: 'Require all statuses',\n\t\t\t\t\t\t\t\tdefaultValue: false,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'defaultsByRole',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\towner: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tgroupManager: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tmanager: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tteammate: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tguest: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcan: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'statusFlags',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tdefault: { type: 'boolean' },\n\t\t\t\t\t\t\t\t\t\t\tclockedIn: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'Clocked in',\n\t\t\t\t\t\t\t\t\t\t\t\thint: 'Is the person clocked in and ready to rock?',\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tclockedOut: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'Clocked out',\n\t\t\t\t\t\t\t\t\t\t\t\thint: 'When someone is not working (off the clock).',\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tonPrem: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'On premise',\n\t\t\t\t\t\t\t\t\t\t\t\thint: 'Are they at work (maybe working, maybe visiting).',\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\toffPrem: {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: 'Off premise',\n\t\t\t\t\t\t\t\t\t\t\t\thint: \"They aren't at the office or shop.\",\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tversion: 'v2020_09_01',\n\t},\n]\n\nconst mercuryTemplateItems = [\n\t{\n\t\tid: 'statusFlags',\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'statusFlags',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tfields: {\n\t\t\t\tdefault: { type: 'boolean' },\n\t\t\t\tclockedIn: {\n\t\t\t\t\tlabel: 'Clocked in',\n\t\t\t\t\thint: 'Is the person clocked in and ready to rock?',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\tclockedOut: {\n\t\t\t\t\tlabel: 'Clocked out',\n\t\t\t\t\thint: 'When someone is not working (off the clock).',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\tonPrem: {\n\t\t\t\t\tlabel: 'On premise',\n\t\t\t\t\thint: 'Are they at work (maybe working, maybe visiting).',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\toffPrem: {\n\t\t\t\t\tlabel: 'Off premise',\n\t\t\t\t\thint: \"They aren't at the office or shop.\",\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tnameReadable: 'statusFlags',\n\t\tnameCamel: 'statusFlags',\n\t\tnamePascal: 'StatusFlags',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'defaultsByRole',\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tnamespace: CORE_NAMESPACE,\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'defaultsByRole',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tfields: {\n\t\t\t\towner: { type: 'boolean' },\n\t\t\t\tgroupManager: { type: 'boolean' },\n\t\t\t\tmanager: { type: 'boolean' },\n\t\t\t\tteammate: { type: 'boolean' },\n\t\t\t\tguest: { type: 'boolean' },\n\t\t\t},\n\t\t},\n\t\tnameReadable: 'defaultsByRole',\n\t\tnameCamel: 'defaultsByRole',\n\t\tnamePascal: 'DefaultsByRole',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'permission',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'permission',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tfields: {\n\t\t\t\tname: {\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tlabel: 'Permission name',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\thint: 'Hyphen separated name for this permission, e.g. can-unlock-doors',\n\t\t\t\t},\n\t\t\t\trequireAllStatuses: {\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\tlabel: 'Require all statuses',\n\t\t\t\t\tdefaultValue: false,\n\t\t\t\t},\n\t\t\t\tdefaults: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'defaultsByRole',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcan: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'statusFlags',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tname: 'Permission',\n\t\t},\n\t\tnameReadable: 'Permission',\n\t\tnameCamel: 'permission',\n\t\tnamePascal: 'Permission',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'permissionContract',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tid: 'permissionContract',\n\t\t\tname: 'Permission Contract',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t\trequireAllPermissions: { type: 'boolean', defaultValue: false },\n\t\t\t\tpermissions: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tversion: 'v2020_09_01',\n\t\t},\n\t\tnameReadable: 'Permission Contract',\n\t\tnameCamel: 'permissionContract',\n\t\tnamePascal: 'PermissionContract',\n\t\tisNested: false,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'eventSignature',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tversion: 'v2020_09_01',\n\t\t\tid: 'eventSignature',\n\t\t\tname: 'Event Signature',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t\tfullyQualifiedEventName: { type: 'text', isRequired: true },\n\t\t\t\tresponsePayload: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t},\n\t\t\t\temitPayload: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\toptions: { valueType: 'SpruceSchema.Schema' },\n\t\t\t\t},\n\t\t\t\tlistenPermissions: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\temitPermissions: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tid: 'permission',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tnameReadable: 'Event Signature',\n\t\tnameCamel: 'eventSignature',\n\t\tnamePascal: 'EventSignature',\n\t\tisNested: true,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n\t{\n\t\tid: 'mercuryContract',\n\t\tnamespace: CORE_NAMESPACE,\n\t\timportFrom: '@sprucelabs/spruce-core-schemas',\n\t\tschema: {\n\t\t\tid: 'mercuryContract',\n\t\t\tname: 'Mercury Contract',\n\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'eventSignature',\n\t\t\t\t\t\t\t\tversion: 'v2020_09_01',\n\t\t\t\t\t\t\t\tnamespace: CORE_NAMESPACE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tversion: 'v2020_09_01',\n\t\t},\n\t\tnameReadable: 'Mercury Contract',\n\t\tnameCamel: 'mercuryContract',\n\t\tnamePascal: 'MercuryContract',\n\t\tisNested: false,\n\t\tdestinationDir: '#spruce/schemas',\n\t},\n]\n\nconst localSchema = buildSchema({\n\tid: 'localNamespaceSchema',\n\tnamespace: 'Mercury',\n\tfields: {\n\t\tonlyField: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n})\n\nconst localSchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Mercury',\n\tid: 'localNamespaceSchema',\n\tnameCamel: 'localNamespaceSchema',\n\tnamePascal: 'LocalNamespaceSchema',\n\tnameReadable: 'localNamespaceSchema',\n\tisNested: false,\n\tdestinationDir: '#spruce/schemas',\n\tschema: localSchema,\n}\n\nexport default class SchemaTemplateItemBuilderTest extends AbstractCliTest {\n\tprivate static itemBuilder: SchemaTemplateItemBuilder\n\n\tprivate static readonly LOCAL_NAMESPACE = 'LocalNamespace'\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.itemBuilder = new SchemaTemplateItemBuilder(this.LOCAL_NAMESPACE)\n\t}\n\n\t@test()\n\tprotected static canInstantiate() {\n\t\tassert.isTruthy(this.itemBuilder)\n\t}\n\n\t@test()\n\tprotected static hasGenerateFunction() {\n\t\tassert.isFunction(this.itemBuilder.buildTemplateItems)\n\t}\n\n\t@test()\n\tprotected static turnsSingleDefinitionIntoTemplateItem() {\n\t\tconst results = this.itemBuilder.buildTemplateItems(\n\t\t\t{ [CORE_NAMESPACE]: [personV1] },\n\t\t\t'#spruce/schemas'\n\t\t)\n\t\tconst actual = results[0]\n\n\t\tassert.isEqualDeep(actual, personV1TemplateItem)\n\t}\n\n\t@test(\n\t\t'turns 2 definitions into 2 template items',\n\t\t[cowbellV1, personV1],\n\t\t[personV1TemplateItem, cowbellV1TemplateItem]\n\t)\n\t@test(\n\t\t'turns one nested definition into 2 items',\n\t\t[personV2],\n\t\t[vehicleV1TemplateItem, personV2TemplateItem]\n\t)\n\t@test(\n\t\t'handles recursion without looping forever',\n\t\t[personV3],\n\t\t[\n\t\t\tcowbellV1NestedTemplateItem,\n\t\t\tpersonV3TemplateItem,\n\t\t\tcowbellV2NestedTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'handles duplication',\n\t\t[cowbellV1, cowbellV1, cowbellV1],\n\t\t[cowbellV1TemplateItem]\n\t)\n\t@test(\n\t\t'handles resolving by id and version',\n\t\t[personV4, personV3, cowbellV1, cowbellV2],\n\t\t[\n\t\t\tcowbellV2TemplateItem,\n\t\t\tcowbellV1TemplateItem,\n\t\t\tpersonV3TemplateItem,\n\t\t\tpersonV4TemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'handles resolving by id and version in different order',\n\t\t[cowbellV1, personV4, personV3, cowbellV2],\n\t\t[\n\t\t\tcowbellV2TemplateItem,\n\t\t\tcowbellV1TemplateItem,\n\t\t\tpersonV3TemplateItem,\n\t\t\tpersonV4TemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'handles nested schema in dynamic key signature',\n\t\t[nestedMercuryContract],\n\t\t[eventSignatureTemplateItem, mercuryTemplateItem]\n\t)\n\t@test(\n\t\t'handles nested schemas in dynamic key signature',\n\t\t[nestedMercuryContractArray],\n\t\t[\n\t\t\teventSignatureTemplateItem2,\n\t\t\teventSignatureTemplateItem,\n\t\t\tmercuryTemplateItemArray,\n\t\t]\n\t)\n\t@test(\n\t\t'handles many layers of nested schemas',\n\t\t[schemaWithManyNestedSchemas],\n\t\t[\n\t\t\tlastLayerTemplateItem,\n\t\t\tsecondLayerTemplateItem,\n\t\t\tfirstLayerTemplateItem,\n\t\t\tmanyNestedTemplateItem,\n\t\t]\n\t)\n\t@test('can import event contracts', mercurySchemas, mercuryTemplateItems)\n\t@test(\n\t\t'import from not set if matching local namespace',\n\t\t[localSchema],\n\t\t[localSchemaTemplateItem],\n\t\t'Mercury'\n\t)\n\tprotected static generationTests(\n\t\tschemas: Schema[],\n\t\texpected: SchemaTemplateItem[],\n\t\tlocalNamespace = this.LOCAL_NAMESPACE\n\t) {\n\t\tthis.itemBuilder = new SchemaTemplateItemBuilder(localNamespace)\n\n\t\tconst results = this.itemBuilder.buildTemplateItems({\n\t\t\t[CORE_NAMESPACE]: schemas,\n\t\t})\n\n\t\tassert.isLength(results, expected.length)\n\n\t\texpected.forEach((expected, idx) => {\n\t\t\tconst match = results[idx]\n\t\t\tassert.isTruthy(match, `Did not find a template item for ${expected.id}`)\n\t\t\tassert.isEqualDeep(match, expected)\n\t\t})\n\t}\n\n\t@test()\n\tprotected static setsImports() {\n\t\tconst results = this.itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[this.LOCAL_NAMESPACE]: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'local',\n\t\t\t\t\t\timportsWhenLocal: ['import local from \"local\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote from \"remote\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\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\t'#spruce/schemas'\n\t\t)\n\n\t\tassert.isEqualDeep(results, [\n\t\t\t{\n\t\t\t\tid: 'local',\n\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tid: 'local',\n\t\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\t\timportsWhenLocal: [`import local from \"local\"`],\n\t\t\t\t\timportsWhenRemote: [`import remote from \"remote\"`],\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnameReadable: 'local',\n\t\t\t\tnameCamel: 'local',\n\t\t\t\tnamePascal: 'Local',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: [`import local from \"local\"`],\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static bringsImportsFromRemoteFromRelatedSchemas() {\n\t\tconst results = this.itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[this.LOCAL_NAMESPACE]: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'local',\n\t\t\t\t\t\timportsWhenLocal: ['import local from \"local\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote from \"remote\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: { id: 'remote', namespace: 'AnotherNamespace' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlocal: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: { id: 'local', namespace: this.LOCAL_NAMESPACE },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'local2',\n\t\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote2 from \"remote2\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: { id: 'remote', namespace: 'AnotherNamespace' },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\tAnotherNamespace: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'remote',\n\t\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\t\timportsWhenRemote: ['import remote3 from \"remote3\"'],\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tfirstName: { type: 'text' },\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\t'#spruce/schemas'\n\t\t)\n\n\t\tassert.isEqualDeep(results, [\n\t\t\t{\n\t\t\t\tid: 'remote',\n\t\t\t\tnamespace: 'AnotherNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'remote',\n\t\t\t\t\tnamespace: 'AnotherNamespace',\n\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\timportsWhenRemote: ['import remote3 from \"remote3\"'],\n\t\t\t\t\tfields: { firstName: { type: 'text' } },\n\t\t\t\t},\n\t\t\t\tnameReadable: 'remote',\n\t\t\t\tnameCamel: 'remote',\n\t\t\t\tnamePascal: 'Remote',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: ['import remote3 from \"remote3\"'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'local2',\n\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\t\tid: 'local2',\n\t\t\t\t\timportsWhenLocal: ['import local2 from \"local2\"'],\n\t\t\t\t\timportsWhenRemote: ['import remote2 from \"remote2\"'],\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschemaIds: [{ id: 'remote', namespace: 'AnotherNamespace' }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnameReadable: 'local2',\n\t\t\t\tnameCamel: 'local2',\n\t\t\t\tnamePascal: 'Local2',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: [\n\t\t\t\t\t'import local2 from \"local2\"',\n\t\t\t\t\t'import remote3 from \"remote3\"',\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'local',\n\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\tschema: {\n\t\t\t\t\tid: 'local',\n\t\t\t\t\tnamespace: 'LocalNamespace',\n\t\t\t\t\timportsWhenLocal: ['import local from \"local\"'],\n\t\t\t\t\timportsWhenRemote: ['import remote from \"remote\"'],\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tfirstName: { type: 'text' },\n\t\t\t\t\t\tremote: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschemaIds: [{ id: 'remote', namespace: 'AnotherNamespace' }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlocal: {\n\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tschemaIds: [{ id: 'local', namespace: 'LocalNamespace' }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnameReadable: 'local',\n\t\t\t\tnameCamel: 'local',\n\t\t\t\tnamePascal: 'Local',\n\t\t\t\tisNested: false,\n\t\t\t\tdestinationDir: '#spruce/schemas',\n\t\t\t\timports: ['import local from \"local\"', 'import remote3 from \"remote3\"'],\n\t\t\t},\n\t\t])\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaValueTypeWriter.test.js","names":["LOCAL_NAMESPACE","SchemaValueTypeGenerationTest","CORE_NAMESPACE","CORE_SCHEMA_VERSION","constValue","type","value","schemaType","generator","SchemaWriter","templates","term","ui","fileDescriptions","linter","Service","settings","installSchemaFeature","schemasDir","resolvePath","diskUtil","copyDir","resolveTestPath","Action","execute","assert","isFunction","writeValueTypes","resolveHashSprucePath","schemaTemplateItems","fieldTemplateItems","results","isTruthy","generateValueTypes","isAbove","length","first","path","isTrue","doesFileExist","check","expected","importDefault","valueTypes","isObject","Object","keys","doesInclude","fetchAllTemplateItems","writeFieldTypes","schemaStore","StoreFactory","Store","Promise","all","fetchSchemas","localNamespace","fetchFields","schemasByNamespace","schemaErrors","errors","fields","fieldErrors","isLength","schemaBuilder","SchemaTemplateItemBuilder","buildTemplateItems","fieldBuilder","FieldTemplateItemBuilder","generateTemplateItems","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/SchemaValueTypeWriter.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tCORE_NAMESPACE,\n\tCORE_SCHEMA_VERSION,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates, ValueTypes } from '@sprucelabs/spruce-templates'\nimport { assert, test } from '@sprucelabs/test'\nimport SchemaWriter from '../../features/schema/writers/SchemaWriter'\nimport FieldTemplateItemBuilder from '../../templateItemBuilders/FieldTemplateItemBuilder'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nconst LOCAL_NAMESPACE = 'TacoBell'\n\nexport default class SchemaValueTypeGenerationTest extends AbstractSchemaTest {\n\tprivate static generator: SchemaWriter\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.generator = new SchemaWriter({\n\t\t\ttemplates,\n\t\t\tterm: this.ui,\n\t\t\tfileDescriptions: [],\n\t\t\tlinter: this.Service('lint'),\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\t\tawait diskUtil.copyDir(this.resolveTestPath('related_schemas'), schemasDir)\n\t\tawait diskUtil.copyDir(this.resolveTestPath('test_builders'), schemasDir)\n\t\tawait diskUtil.copyDir(\n\t\t\tthis.resolveTestPath('dynamic_key_schemas'),\n\t\t\tschemasDir\n\t\t)\n\n\t\tawait this.Action('schema', 'sync').execute({})\n\t}\n\n\t@test()\n\tprotected static async hasGenerateMethod() {\n\t\tassert.isFunction(this.generator.writeValueTypes)\n\t}\n\n\t@test()\n\tprotected static async runsWithoutBreakingWithNoArgs() {\n\t\tconst results = await this.generator.writeValueTypes(\n\t\t\tthis.resolveHashSprucePath('tmp'),\n\t\t\t{\n\t\t\t\tschemaTemplateItems: [],\n\t\t\t\tfieldTemplateItems: [],\n\t\t\t}\n\t\t)\n\n\t\tassert.isTruthy(results)\n\t}\n\n\t@test()\n\tprotected static async generatesValidTypesFile() {\n\t\tconst results = await this.generateValueTypes()\n\n\t\tassert.isAbove(results.length, 0)\n\n\t\tconst first = results[0].path\n\t\tassert.isTrue(diskUtil.doesFileExist(first))\n\n\t\tawait this.Service('typeChecker').check(first)\n\t}\n\n\t@test(\n\t\t'generates person.firstName value type (string)',\n\t\t`${CORE_NAMESPACE}.person.${CORE_SCHEMA_VERSION.constValue}.firstName.valueTypes`,\n\t\t{\n\t\t\ttype: 'string',\n\t\t\tvalue: 'string',\n\t\t\tschemaType: 'string',\n\t\t}\n\t)\n\t@test(\n\t\t'generates skill.creators value type (schema)',\n\t\t`${CORE_NAMESPACE}.skill.${CORE_SCHEMA_VERSION.constValue}.creators.valueTypes`,\n\t\t{\n\t\t\ttype: `SpruceSchemas.Spruce.v2020_07_22.SkillCreator[]`,\n\t\t\tvalue: 'skillCreatorSchema_v2020_07_22',\n\t\t\tschemaType: `SpruceSchemas.Spruce.v2020_07_22.SkillCreatorSchema`,\n\t\t}\n\t)\n\t@test(\n\t\t'generates dynamic field with nested schemas',\n\t\t`${LOCAL_NAMESPACE}.mercuryContract.${CORE_SCHEMA_VERSION.constValue}.__dynamicFieldSignature.valueTypes`,\n\t\t{\n\t\t\ttype: `{ schemaId: 'eventSignature', version: 'v2020_07_22', values: SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignature } | { schemaId: 'eventSignature2', version: 'v2020_07_22', values: SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignature2 }`,\n\t\t\tvalue:\n\t\t\t\t'[eventSignatureSchema_v2020_07_22, eventSignature2Schema_v2020_07_22]',\n\t\t\tschemaType: `(SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignatureSchema | SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignature2Schema)[]`,\n\t\t}\n\t)\n\tprotected static async importsTypes(\n\t\tpath: string,\n\t\texpected: Record<string, any>\n\t) {\n\t\tconst results = await this.generateValueTypes()\n\n\t\tconst valueTypes = await this.Service('import').importDefault<ValueTypes>(\n\t\t\tresults[0].path\n\t\t)\n\n\t\tassert.isObject(valueTypes)\n\t\tassert.isAbove(\n\t\t\tObject.keys(valueTypes).length,\n\t\t\t0,\n\t\t\t'Value types came back as empty object'\n\t\t)\n\n\t\tassert.doesInclude(valueTypes, {\n\t\t\t[path]: expected,\n\t\t})\n\t}\n\n\tprivate static async generateValueTypes() {\n\t\tconst { fieldTemplateItems, schemaTemplateItems } =\n\t\t\tawait this.fetchAllTemplateItems()\n\n\t\tawait this.generator.writeFieldTypes(\n\t\t\tthis.resolveHashSprucePath('schemas'),\n\t\t\t{\n\t\t\t\tfieldTemplateItems,\n\t\t\t}\n\t\t)\n\n\t\treturn this.generator.writeValueTypes(this.resolveHashSprucePath('tmp'), {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t})\n\t}\n\n\tprivate static async fetchAllTemplateItems() {\n\t\tconst schemaStore = this.StoreFactory().Store('schema')\n\n\t\tconst [\n\t\t\t{ schemasByNamespace, errors: schemaErrors },\n\t\t\t{ fields, errors: fieldErrors },\n\t\t] = await Promise.all([\n\t\t\tschemaStore.fetchSchemas({ localNamespace: LOCAL_NAMESPACE }),\n\t\t\tschemaStore.fetchFields(),\n\t\t])\n\n\t\tassert.isLength(schemaErrors, 0)\n\t\tassert.isLength(fieldErrors, 0)\n\n\t\tconst schemaBuilder = new SchemaTemplateItemBuilder('LocalNamespace')\n\t\tconst schemaTemplateItems = schemaBuilder.buildTemplateItems(\n\t\t\tschemasByNamespace,\n\t\t\t'#spruce/schemas'\n\t\t)\n\n\t\tconst fieldBuilder = new FieldTemplateItemBuilder()\n\t\tconst fieldTemplateItems = fieldBuilder.generateTemplateItems(fields)\n\n\t\treturn {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaValueTypeWriter.test.js","names":["LOCAL_NAMESPACE","SchemaValueTypeGenerationTest","test","CORE_NAMESPACE","CORE_SCHEMA_VERSION","constValue","type","value","schemaType","generator","SchemaWriter","templates","term","ui","fileDescriptions","linter","Service","settings","installSchemaFeature","schemasDir","resolvePath","diskUtil","copyDir","resolveTestPath","Action","execute","assert","isFunction","writeValueTypes","resolveHashSprucePath","schemaTemplateItems","fieldTemplateItems","results","isTruthy","generateValueTypes","isAbove","length","first","path","isTrue","doesFileExist","check","expected","importDefault","valueTypes","isObject","Object","keys","doesInclude","fetchAllTemplateItems","writeFieldTypes","schemaStore","StoreFactory","Store","Promise","all","fetchSchemas","localNamespace","fetchFields","schemasByNamespace","schemaErrors","errors","fields","fieldErrors","isLength","schemaBuilder","SchemaTemplateItemBuilder","buildTemplateItems","fieldBuilder","FieldTemplateItemBuilder","generateTemplateItems","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/SchemaValueTypeWriter.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tCORE_NAMESPACE,\n\tCORE_SCHEMA_VERSION,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates, ValueTypes } from '@sprucelabs/spruce-templates'\nimport { assert, test } from '@sprucelabs/test'\nimport SchemaWriter from '../../features/schema/writers/SchemaWriter'\nimport FieldTemplateItemBuilder from '../../templateItemBuilders/FieldTemplateItemBuilder'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nconst LOCAL_NAMESPACE = 'TacoBell'\n\nexport default class SchemaValueTypeGenerationTest extends AbstractSchemaTest {\n\tprivate static generator: SchemaWriter\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.generator = new SchemaWriter({\n\t\t\ttemplates,\n\t\t\tterm: this.ui,\n\t\t\tfileDescriptions: [],\n\t\t\tlinter: this.Service('lint'),\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\t\tawait diskUtil.copyDir(this.resolveTestPath('related_schemas'), schemasDir)\n\t\tawait diskUtil.copyDir(this.resolveTestPath('test_builders'), schemasDir)\n\t\tawait diskUtil.copyDir(\n\t\t\tthis.resolveTestPath('dynamic_key_schemas'),\n\t\t\tschemasDir\n\t\t)\n\n\t\tawait this.Action('schema', 'sync').execute({})\n\t}\n\n\t@test()\n\tprotected static async hasGenerateMethod() {\n\t\tassert.isFunction(this.generator.writeValueTypes)\n\t}\n\n\t@test()\n\tprotected static async runsWithoutBreakingWithNoArgs() {\n\t\tconst results = await this.generator.writeValueTypes(\n\t\t\tthis.resolveHashSprucePath('tmp'),\n\t\t\t{\n\t\t\t\tschemaTemplateItems: [],\n\t\t\t\tfieldTemplateItems: [],\n\t\t\t}\n\t\t)\n\n\t\tassert.isTruthy(results)\n\t}\n\n\t@test()\n\tprotected static async generatesValidTypesFile() {\n\t\tconst results = await this.generateValueTypes()\n\n\t\tassert.isAbove(results.length, 0)\n\n\t\tconst first = results[0].path\n\t\tassert.isTrue(diskUtil.doesFileExist(first))\n\n\t\tawait this.Service('typeChecker').check(first)\n\t}\n\n\t@test(\n\t\t'generates person.firstName value type (string)',\n\t\t`${CORE_NAMESPACE}.person.${CORE_SCHEMA_VERSION.constValue}.firstName.valueTypes`,\n\t\t{\n\t\t\ttype: 'string',\n\t\t\tvalue: 'string',\n\t\t\tschemaType: 'string',\n\t\t}\n\t)\n\t@test(\n\t\t'generates skill.creators value type (schema)',\n\t\t`${CORE_NAMESPACE}.skill.${CORE_SCHEMA_VERSION.constValue}.creators.valueTypes`,\n\t\t{\n\t\t\ttype: `SpruceSchemas.Spruce.v2020_07_22.SkillCreator[]`,\n\t\t\tvalue: 'skillCreatorSchema_v2020_07_22',\n\t\t\tschemaType: `SpruceSchemas.Spruce.v2020_07_22.SkillCreatorSchema`,\n\t\t}\n\t)\n\t@test(\n\t\t'generates dynamic field with nested schemas',\n\t\t`${LOCAL_NAMESPACE}.mercuryContract.${CORE_SCHEMA_VERSION.constValue}.__dynamicFieldSignature.valueTypes`,\n\t\t{\n\t\t\ttype: `{ schemaId: 'eventSignature', version: 'v2020_07_22', values: SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignature } | { schemaId: 'eventSignature2', version: 'v2020_07_22', values: SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignature2 }`,\n\t\t\tvalue:\n\t\t\t\t'[eventSignatureSchema_v2020_07_22, eventSignature2Schema_v2020_07_22]',\n\t\t\tschemaType: `(SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignatureSchema | SpruceSchemas.${LOCAL_NAMESPACE}.v2020_07_22.EventSignature2Schema)[]`,\n\t\t}\n\t)\n\tprotected static async importsTypes(\n\t\tpath: string,\n\t\texpected: Record<string, any>\n\t) {\n\t\tconst results = await this.generateValueTypes()\n\n\t\tconst valueTypes = await this.Service('import').importDefault<ValueTypes>(\n\t\t\tresults[0].path\n\t\t)\n\n\t\tassert.isObject(valueTypes)\n\t\tassert.isAbove(\n\t\t\tObject.keys(valueTypes).length,\n\t\t\t0,\n\t\t\t'Value types came back as empty object'\n\t\t)\n\n\t\tassert.doesInclude(valueTypes, {\n\t\t\t[path]: expected,\n\t\t})\n\t}\n\n\tprivate static async generateValueTypes() {\n\t\tconst { fieldTemplateItems, schemaTemplateItems } =\n\t\t\tawait this.fetchAllTemplateItems()\n\n\t\tawait this.generator.writeFieldTypes(\n\t\t\tthis.resolveHashSprucePath('schemas'),\n\t\t\t{\n\t\t\t\tfieldTemplateItems,\n\t\t\t}\n\t\t)\n\n\t\treturn this.generator.writeValueTypes(this.resolveHashSprucePath('tmp'), {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t})\n\t}\n\n\tprivate static async fetchAllTemplateItems() {\n\t\tconst schemaStore = this.StoreFactory().Store('schema')\n\n\t\tconst [\n\t\t\t{ schemasByNamespace, errors: schemaErrors },\n\t\t\t{ fields, errors: fieldErrors },\n\t\t] = await Promise.all([\n\t\t\tschemaStore.fetchSchemas({ localNamespace: LOCAL_NAMESPACE }),\n\t\t\tschemaStore.fetchFields(),\n\t\t])\n\n\t\tassert.isLength(schemaErrors, 0)\n\t\tassert.isLength(fieldErrors, 0)\n\n\t\tconst schemaBuilder = new SchemaTemplateItemBuilder('LocalNamespace')\n\t\tconst schemaTemplateItems = schemaBuilder.buildTemplateItems(\n\t\t\tschemasByNamespace,\n\t\t\t'#spruce/schemas'\n\t\t)\n\n\t\tconst fieldBuilder = new FieldTemplateItemBuilder()\n\t\tconst fieldTemplateItems = fieldBuilder.generateTemplateItems(fields)\n\n\t\treturn {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,eAAe,GAAG,UAAxB;IAEqBC,6B,WAyBnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAaA,IAAAA,UAAA,G,UAYA,IAAAA,UAAA,EACA,gDADA,YAEGC,gCAFH,qBAE4BC,qCAAA,CAAoBC,UAFhD,4BAGA;EACCC,IAAI,EAAE,QADP;EAECC,KAAK,EAAE,QAFR;EAGCC,UAAU,EAAE;AAHb,CAHA,C,UASA,IAAAN,UAAA,EACA,8CADA,YAEGC,gCAFH,oBAE2BC,qCAAA,CAAoBC,UAF/C,2BAGA;EACCC,IAAI,mDADL;EAECC,KAAK,EAAE,gCAFR;EAGCC,UAAU;AAHX,CAHA,C,UASA,IAAAN,UAAA,EACA,6CADA,YAEGF,eAFH,8BAEsCI,qCAAA,CAAoBC,UAF1D,0CAGA;EACCC,IAAI,wFAAiFN,eAAjF,0HAAgNA,eAAhN,mCADL;EAECO,KAAK,EACJ,uEAHF;EAICC,UAAU,2BAAoBR,eAApB,+DAAwFA,eAAxF;AAJX,CAHA,C;;;;;;;;;;;;;sGAvED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKS,SAAL,GAAiB,IAAIC,wBAAJ,CAAiB;kBACjCC,SAAS,EAATA,0BADiC;kBAEjCC,IAAI,EAAE,KAAKC,EAFsB;kBAGjCC,gBAAgB,EAAE,EAHe;kBAIjCC,MAAM,EAAE,KAAKC,OAAL,CAAa,MAAb,CAJyB;kBAKjCC,QAAQ,EAAE,KAAKD,OAAL,CAAa,UAAb;gBALuB,CAAjB,CAAjB;gBAFD;gBAAA,OAUO,KAAKE,oBAAL,CAA0B,SAA1B,CAVP;;cAAA;gBAYOC,UAZP,GAYoB,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,CAZpB;gBAAA;gBAAA,OAaOC,0BAAA,CAASC,OAAT,CAAiB,KAAKC,eAAL,CAAqB,iBAArB,CAAjB,EAA0DJ,UAA1D,CAbP;;cAAA;gBAAA;gBAAA,OAcOE,0BAAA,CAASC,OAAT,CAAiB,KAAKC,eAAL,CAAqB,eAArB,CAAjB,EAAwDJ,UAAxD,CAdP;;cAAA;gBAAA;gBAAA,OAeOE,0BAAA,CAASC,OAAT,CACL,KAAKC,eAAL,CAAqB,qBAArB,CADK,EAELJ,UAFK,CAfP;;cAAA;gBAAA;gBAAA,OAoBO,KAAKK,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CApBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAuBA;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,UAAP,CAAkB,KAAKlB,SAAL,CAAemB,eAAjC;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEuB,KAAKnB,SAAL,CAAemB,eAAf,CACrB,KAAKC,qBAAL,CAA2B,KAA3B,CADqB,EAErB;kBACCC,mBAAmB,EAAE,EADtB;kBAECC,kBAAkB,EAAE;gBAFrB,CAFqB,CAFvB;;cAAA;gBAEOC,OAFP;;gBAUCN,YAAA,CAAOO,QAAP,CAAgBD,OAAhB;;cAVD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHAaA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEuB,KAAKE,kBAAL,EAFvB;;cAAA;gBAEOF,OAFP;;gBAICN,YAAA,CAAOS,OAAP,CAAeH,OAAO,CAACI,MAAvB,EAA+B,CAA/B;;gBAEMC,KANP,GAMeL,OAAO,CAAC,CAAD,CAAP,CAAWM,IAN1B;;gBAOCZ,YAAA,CAAOa,MAAP,CAAclB,0BAAA,CAASmB,aAAT,CAAuBH,KAAvB,CAAd;;gBAPD;gBAAA,OASO,KAAKrB,OAAL,CAAa,aAAb,EAA4ByB,KAA5B,CAAkCJ,KAAlC,CATP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGAYA,kBA6BCC,IA7BD,EA8BCI,QA9BD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAgCuB,KAAKR,kBAAL,EAhCvB;;cAAA;gBAgCOF,OAhCP;gBAAA;gBAAA,OAkC0B,KAAKhB,OAAL,CAAa,QAAb,EAAuB2B,aAAvB,CACxBX,OAAO,CAAC,CAAD,CAAP,CAAWM,IADa,CAlC1B;;cAAA;gBAkCOM,UAlCP;;gBAsCClB,YAAA,CAAOmB,QAAP,CAAgBD,UAAhB;;gBACAlB,YAAA,CAAOS,OAAP,CACCW,MAAM,CAACC,IAAP,CAAYH,UAAZ,EAAwBR,MADzB,EAEC,CAFD,EAGC,uCAHD;;gBAMAV,YAAA,CAAOsB,WAAP,CAAmBJ,UAAnB,uCACEN,IADF,EACSI,QADT;;cA7CD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;8GAkDA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEQ,KAAKO,qBAAL,EAFR;;cAAA;gBAAA;gBACSlB,kBADT,yBACSA,kBADT;gBAC6BD,mBAD7B,yBAC6BA,mBAD7B;gBAAA;gBAAA,OAIO,KAAKrB,SAAL,CAAeyC,eAAf,CACL,KAAKrB,qBAAL,CAA2B,SAA3B,CADK,EAEL;kBACCE,kBAAkB,EAAlBA;gBADD,CAFK,CAJP;;cAAA;gBAAA,kCAWQ,KAAKtB,SAAL,CAAemB,eAAf,CAA+B,KAAKC,qBAAL,CAA2B,KAA3B,CAA/B,EAAkE;kBACxEC,mBAAmB,EAAnBA,mBADwE;kBAExEC,kBAAkB,EAAlBA;gBAFwE,CAAlE,CAXR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAiBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOoB,WADP,GACqB,KAAKC,YAAL,GAAoBC,KAApB,CAA0B,QAA1B,CADrB;gBAAA;gBAAA,OAMWC,OAAO,CAACC,GAAR,CAAY,CACrBJ,WAAW,CAACK,YAAZ,CAAyB;kBAAEC,cAAc,EAAEzD;gBAAlB,CAAzB,CADqB,EAErBmD,WAAW,CAACO,WAAZ,EAFqB,CAAZ,CANX;;cAAA;gBAAA;gBAAA;gBAAA;gBAIIC,kBAJJ,wBAIIA,kBAJJ;gBAIgCC,YAJhC,wBAIwBC,MAJxB;gBAAA;gBAKIC,MALJ,yBAKIA,MALJ;gBAKoBC,WALpB,yBAKYF,MALZ;;gBAWCnC,YAAA,CAAOsC,QAAP,CAAgBJ,YAAhB,EAA8B,CAA9B;;gBACAlC,YAAA,CAAOsC,QAAP,CAAgBD,WAAhB,EAA6B,CAA7B;;gBAEME,aAdP,GAcuB,IAAIC,qCAAJ,CAA8B,gBAA9B,CAdvB;gBAeOpC,mBAfP,GAe6BmC,aAAa,CAACE,kBAAd,CAC3BR,kBAD2B,EAE3B,iBAF2B,CAf7B;gBAoBOS,YApBP,GAoBsB,IAAIC,oCAAJ,EApBtB;gBAqBOtC,kBArBP,GAqB4BqC,YAAY,CAACE,qBAAb,CAAmCR,MAAnC,CArB5B;gBAAA,kCAuBQ;kBACNhC,mBAAmB,EAAnBA,mBADM;kBAENC,kBAAkB,EAAlBA;gBAFM,CAvBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA1H0DwC,+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceFactory.test.js","names":["ServiceFactoryTest","factory","ServiceFactory","type","functionName","service","Service","cwd","assert","hasAllFunctions","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/ServiceFactory.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport ServiceFactory, { Service } from '../../services/ServiceFactory'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class ServiceFactoryTest extends AbstractCliTest {\n\tprivate static factory: ServiceFactory\n\n\tprotected static async beforeEach() {\n\t\tthis.factory = new ServiceFactory()\n\t\tawait super.beforeEach()\n\t}\n\n\t@test('can build pin service', 'pkg', 'readPackage')\n\t@test('can build pin service', 'vsCode', 'installExtensions')\n\tprotected static canBuild(type: Service, functionName: string) {\n\t\tconst service = this.factory.Service(this.cwd, type)\n\t\tassert.hasAllFunctions(service, [functionName])\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAQnB,gBAAK,uBAAL,EAA8B,KAA9B,EAAqC,aAArC,C,UACA,gBAAK,uBAAL,EAA8B,QAA9B,EAAwC,mBAAxC,C;;;;;;;;;;;;;sGAND;QAAA;UAAA;YAAA;cAAA;gBACC,KAAKC,OAAL,GAAe,IAAIC,0BAAJ,EAAf;gBADD;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAKA,kBAE0BC,IAF1B,EAEyCC,YAFzC,EAE+D;MAC9D,IAAMC,OAAO,GAAG,KAAKJ,OAAL,CAAaK,OAAb,CAAqB,KAAKC,GAA1B,EAA+BJ,IAA/B,CAAhB;;MACAK,aAAOC,eAAP,CAAuBJ,OAAvB,EAAgC,CAACD,YAAD,CAAhC;IACA;;;EAb8CM,4B"}
1
+ {"version":3,"file":"ServiceFactory.test.js","names":["ServiceFactoryTest","test","factory","ServiceFactory","type","functionName","service","Service","cwd","assert","hasAllFunctions","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/ServiceFactory.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport ServiceFactory, { Service } from '../../services/ServiceFactory'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class ServiceFactoryTest extends AbstractCliTest {\n\tprivate static factory: ServiceFactory\n\n\tprotected static async beforeEach() {\n\t\tthis.factory = new ServiceFactory()\n\t\tawait super.beforeEach()\n\t}\n\n\t@test('can build pin service', 'pkg', 'readPackage')\n\t@test('can build pin service', 'vsCode', 'installExtensions')\n\tprotected static canBuild(type: Service, functionName: string) {\n\t\tconst service = this.factory.Service(this.cwd, type)\n\t\tassert.hasAllFunctions(service, [functionName])\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAQnB,IAAAC,UAAA,EAAK,uBAAL,EAA8B,KAA9B,EAAqC,aAArC,C,UACA,IAAAA,UAAA,EAAK,uBAAL,EAA8B,QAA9B,EAAwC,mBAAxC,C;;;;;;;;;;;;;sGAND;QAAA;UAAA;YAAA;cAAA;gBACC,KAAKC,OAAL,GAAe,IAAIC,0BAAJ,EAAf;gBADD;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAKA,kBAE0BC,IAF1B,EAEyCC,YAFzC,EAE+D;MAC9D,IAAMC,OAAO,GAAG,KAAKJ,OAAL,CAAaK,OAAb,CAAqB,KAAKC,GAA1B,EAA+BJ,IAA/B,CAAhB;;MACAK,YAAA,CAAOC,eAAP,CAAuBJ,OAAvB,EAAgC,CAACD,YAAD,CAAhC;IACA;;;EAb8CM,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingUpANodeModule.test.js","names":["SettingUpANodeModuleTest","Cli","cli","assert","doesThrowAsync","installFeatures","features","code","options","err","errorAssert","assertError","installer","getFeatureInstaller","isInstalled","isFalse","name","description","pkgService","Service","contents","readPackage","doesInclude","version","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SettingUpANodeModule.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SettingUpANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async settingUpANodeModule() {\n\t\tconst cli = await this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tcli.installFeatures({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'node',\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\toptions: {},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async canTellIfNotInstalled() {\n\t\tconst installer = this.getFeatureInstaller()\n\t\tconst isInstalled = await installer.isInstalled('node')\n\t\tassert.isFalse(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async installsNodeModuleWithCleanedUpPackageJson() {\n\t\tconst cli = await this.Cli()\n\n\t\tawait cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'node',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Test module',\n\t\t\t\t\t\tdescription: 'so great!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tconst contents = pkgService.readPackage()\n\n\t\tassert.doesInclude(contents, {\n\t\t\tname: 'test-module',\n\t\t\tdescription: 'so great!',\n\t\t\tversion: '0.0.1',\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WACnB,iB,UAkBA,iB,UAOA,iB;;;;;;;;;;;;;gHAzBD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,GAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAGmBC,aAAOC,cAAP,CAAsB;kBAAA,OACvCF,GAAG,CAACG,eAAJ,CAAoB;oBACnBC,QAAQ,EAAE,CACT;sBACCC,IAAI,EAAE,MADP;sBAEC;sBACAC,OAAO,EAAE;oBAHV,CADS;kBADS,CAApB,CADuC;gBAAA,CAAtB,CAHnB;;cAAA;gBAGOC,GAHP;;gBAeCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,mBAA7B;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAkBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOG,SAFP,GAEmB,KAAKC,mBAAL,EAFnB;gBAAA;gBAAA,OAG2BD,SAAS,CAACE,WAAV,CAAsB,MAAtB,CAH3B;;cAAA;gBAGOA,WAHP;;gBAICX,aAAOY,OAAP,CAAeD,WAAf;;cAJD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sIAOA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKb,GAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAIOA,GAAG,CAACG,eAAJ,CAAoB;kBACzBC,QAAQ,EAAE,CACT;oBACCC,IAAI,EAAE,MADP;oBAECC,OAAO,EAAE;sBACRQ,IAAI,EAAE,aADE;sBAERC,WAAW,EAAE;oBAFL;kBAFV,CADS;gBADe,CAApB,CAJP;;cAAA;gBAgBOC,UAhBP,GAgBoB,KAAKC,OAAL,CAAa,KAAb,CAhBpB;gBAiBOC,QAjBP,GAiBkBF,UAAU,CAACG,WAAX,EAjBlB;;gBAmBClB,aAAOmB,WAAP,CAAmBF,QAAnB,EAA6B;kBAC5BJ,IAAI,EAAE,aADsB;kBAE5BC,WAAW,EAAE,WAFe;kBAG5BM,OAAO,EAAE;gBAHmB,CAA7B;;cAnBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA1BqDC,4B"}
1
+ {"version":3,"file":"SettingUpANodeModule.test.js","names":["SettingUpANodeModuleTest","test","Cli","cli","assert","doesThrowAsync","installFeatures","features","code","options","err","errorAssert","assertError","installer","getFeatureInstaller","isInstalled","isFalse","name","description","pkgService","Service","contents","readPackage","doesInclude","version","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SettingUpANodeModule.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SettingUpANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async settingUpANodeModule() {\n\t\tconst cli = await this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tcli.installFeatures({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'node',\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\toptions: {},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async canTellIfNotInstalled() {\n\t\tconst installer = this.getFeatureInstaller()\n\t\tconst isInstalled = await installer.isInstalled('node')\n\t\tassert.isFalse(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async installsNodeModuleWithCleanedUpPackageJson() {\n\t\tconst cli = await this.Cli()\n\n\t\tawait cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'node',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Test module',\n\t\t\t\t\t\tdescription: 'so great!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tconst contents = pkgService.readPackage()\n\n\t\tassert.doesInclude(contents, {\n\t\t\tname: 'test-module',\n\t\t\tdescription: 'so great!',\n\t\t\tversion: '0.0.1',\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WACnB,IAAAC,UAAA,G,UAkBA,IAAAA,UAAA,G,UAOA,IAAAA,UAAA,G;;;;;;;;;;;;;gHAzBD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,GAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAGmBC,YAAA,CAAOC,cAAP,CAAsB;kBAAA,OACvCF,GAAG,CAACG,eAAJ,CAAoB;oBACnBC,QAAQ,EAAE,CACT;sBACCC,IAAI,EAAE,MADP;sBAEC;sBACAC,OAAO,EAAE;oBAHV,CADS;kBADS,CAApB,CADuC;gBAAA,CAAtB,CAHnB;;cAAA;gBAGOC,GAHP;;gBAeCC,sBAAA,CAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,mBAA7B;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAkBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOG,SAFP,GAEmB,KAAKC,mBAAL,EAFnB;gBAAA;gBAAA,OAG2BD,SAAS,CAACE,WAAV,CAAsB,MAAtB,CAH3B;;cAAA;gBAGOA,WAHP;;gBAICX,YAAA,CAAOY,OAAP,CAAeD,WAAf;;cAJD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sIAOA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKb,GAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAIOA,GAAG,CAACG,eAAJ,CAAoB;kBACzBC,QAAQ,EAAE,CACT;oBACCC,IAAI,EAAE,MADP;oBAECC,OAAO,EAAE;sBACRQ,IAAI,EAAE,aADE;sBAERC,WAAW,EAAE;oBAFL;kBAFV,CADS;gBADe,CAApB,CAJP;;cAAA;gBAgBOC,UAhBP,GAgBoB,KAAKC,OAAL,CAAa,KAAb,CAhBpB;gBAiBOC,QAjBP,GAiBkBF,UAAU,CAACG,WAAX,EAjBlB;;gBAmBClB,YAAA,CAAOmB,WAAP,CAAmBF,QAAnB,EAA6B;kBAC5BJ,IAAI,EAAE,aADsB;kBAE5BC,WAAW,EAAE,WAFe;kBAG5BM,OAAO,EAAE;gBAHmB,CAA7B;;cAnBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA1BqDC,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkillStore.test.js","names":["SkillStoreTest","assert","isTruthy","Store","isFunction","register","doesThrowAsync","name","slug","err","errorAssert","assertError","loadCurrentSkill","isCurrentSkillRegistered","FeatureFixture","installCachedFeatures","loadCurrentSkillsNamespace","namespace","isEqual","store","setCurrentSkillsNamespace","Date","getTime","people","loginAsDemoPerson","skillStore","isRegistered","isFalse","skill","isString","apiKey","id","connectToApi","client","authenticate","skillId","results","isTrue","currentSkill","env","Service","get","pkg","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SkillStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SkillStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canInstantiateSkillStore() {\n\t\tassert.isTruthy(this.Store('skill'))\n\t}\n\n\t@test()\n\tprotected static async hasRegisterMethod() {\n\t\tassert.isFunction(this.Store('skill').register)\n\t}\n\n\t@test()\n\tprotected static async cantRegisterIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').register({\n\t\t\t\tname: 'awesome skill',\n\t\t\t\tslug: 'awesome-skill',\n\t\t\t})\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantLoadcurrentSkillIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').loadCurrentSkill()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantCheckIfSkillIsRegisteredNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').isCurrentSkillRegistered()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async canGetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst namespace = await this.Store('skill').loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'TestSkill')\n\t}\n\n\t@test()\n\tprotected static async canSetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst store = this.Store('skill')\n\t\tlet namespace = await store.loadCurrentSkillsNamespace()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('new-namespace')\n\n\t\tnamespace = await store.loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'NewNamespace')\n\t}\n\n\t@test()\n\tprotected static async canRegister() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst slug = `awesome-skill-${new Date().getTime()}`\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst skillStore = this.Store('skill')\n\n\t\tlet isRegistered = await skillStore.isCurrentSkillRegistered()\n\t\tassert.isFalse(isRegistered)\n\n\t\tconst skill = await skillStore.register({\n\t\t\tname: 'awesome skill',\n\t\t\tslug,\n\t\t})\n\n\t\tassert.isTruthy(skill)\n\t\tassert.isEqual(skill.name, 'awesome skill')\n\t\tassert.isEqual(skill.slug, slug)\n\t\tassert.isString(skill.apiKey)\n\t\tassert.isString(skill.id)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.authenticate({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tassert.isEqual(results.skill?.id, skill.id)\n\n\t\tisRegistered = await skillStore.isCurrentSkillRegistered()\n\t\tassert.isTrue(isRegistered)\n\n\t\tconst currentSkill = await skillStore.loadCurrentSkill()\n\n\t\tassert.isEqual(currentSkill.id, skill.id)\n\t\tassert.isTrue(currentSkill.isRegistered)\n\t\tassert.isEqual(currentSkill.name, 'awesome skill')\n\t\tassert.isEqual(currentSkill.slug, slug)\n\t\tassert.isEqual(currentSkill.apiKey, skill.apiKey)\n\n\t\tconst env = this.Service('env')\n\n\t\tassert.isEqual(env.get('SKILL_ID'), skill.id)\n\t\tassert.isEqual(env.get('SKILL_API_KEY'), skill.apiKey)\n\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tskillStore.setCurrentSkillsNamespace('test')\n\t\t)\n\n\t\terrorAssert.assertError(err, 'GENERIC')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst namespace = pkg.get('skill.namespace')\n\t\tassert.isEqual(namespace, slug)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,c,WACnB,iB,UAKA,iB,UAKA,iB,UAWA,iB,UAQA,iB,UAQA,iB,UAQA,iB,UAaA,iB;;;;;;;;;;;;;oHA1DD;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,QAAP,CAAgB,KAAKC,KAAL,CAAW,OAAX,CAAhB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAKA;QAAA;UAAA;YAAA;cAAA;gBAECF,aAAOG,UAAP,CAAkB,KAAKD,KAAL,CAAW,OAAX,EAAoBE,QAAtC;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAKA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmBJ,aAAOK,cAAP,CAAsB;kBAAA,OACvC,KAAI,CAACH,KAAL,CAAW,OAAX,EAAoBE,QAApB,CAA6B;oBAC5BE,IAAI,EAAE,eADsB;oBAE5BC,IAAI,EAAE;kBAFsB,CAA7B,CADuC;gBAAA,CAAtB,CAFnB;;cAAA;gBAEOC,GAFP;;gBAQCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,qBAA7B;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4HAWA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmBR,aAAOK,cAAP,CAAsB;kBAAA,OACvC,MAAI,CAACH,KAAL,CAAW,OAAX,EAAoBS,gBAApB,EADuC;gBAAA,CAAtB,CAFnB;;cAAA;gBAEOH,GAFP;;gBAKCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,qBAA7B;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kIAQA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmBR,aAAOK,cAAP,CAAsB;kBAAA,OACvC,MAAI,CAACH,KAAL,CAAW,OAAX,EAAoBU,wBAApB,EADuC;gBAAA,CAAtB,CAFnB;;cAAA;gBAEOJ,GAFP;;gBAKCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,qBAA7B;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAQA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKK,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIyB,KAAKZ,KAAL,CAAW,OAAX,EAAoBa,0BAApB,EAJzB;;cAAA;gBAIOC,SAJP;;gBAKChB,aAAOiB,OAAP,CAAeD,SAAf,EAA0B,WAA1B;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAQA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKH,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAIOI,KAJP,GAIe,KAAKhB,KAAL,CAAW,OAAX,CAJf;gBAAA;gBAAA,OAKuBgB,KAAK,CAACH,0BAAN,EALvB;;cAAA;gBAKKC,SALL;gBAAA;gBAAA,OAOO,KAAKd,KAAL,CAAW,OAAX,EAAoBiB,yBAApB,CAA8C,eAA9C,CAPP;;cAAA;gBAAA;gBAAA,OASmBD,KAAK,CAACH,0BAAN,EATnB;;cAAA;gBASCC,SATD;;gBAUChB,aAAOiB,OAAP,CAAeD,SAAf,EAA0B,cAA1B;;cAVD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uGAaA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKH,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAIOP,IAJP,2BAI+B,IAAIa,IAAJ,GAAWC,OAAX,EAJ/B;gBAAA;gBAAA,OAKO,KAAKC,MAAL,CAAYC,iBAAZ,EALP;;cAAA;gBAOOC,UAPP,GAOoB,KAAKtB,KAAL,CAAW,OAAX,CAPpB;gBAAA;gBAAA,OAS0BsB,UAAU,CAACZ,wBAAX,EAT1B;;cAAA;gBASKa,YATL;;gBAUCzB,aAAO0B,OAAP,CAAeD,YAAf;;gBAVD;gBAAA,OAYqBD,UAAU,CAACpB,QAAX,CAAoB;kBACvCE,IAAI,EAAE,eADiC;kBAEvCC,IAAI,EAAJA;gBAFuC,CAApB,CAZrB;;cAAA;gBAYOoB,KAZP;;gBAiBC3B,aAAOC,QAAP,CAAgB0B,KAAhB;;gBACA3B,aAAOiB,OAAP,CAAeU,KAAK,CAACrB,IAArB,EAA2B,eAA3B;;gBACAN,aAAOiB,OAAP,CAAeU,KAAK,CAACpB,IAArB,EAA2BA,IAA3B;;gBACAP,aAAO4B,QAAP,CAAgBD,KAAK,CAACE,MAAtB;;gBACA7B,aAAO4B,QAAP,CAAgBD,KAAK,CAACG,EAAtB;;gBArBD;gBAAA,OAuBsB,KAAKC,YAAL,EAvBtB;;cAAA;gBAuBOC,MAvBP;gBAAA;gBAAA,OAwBuBA,MAAM,CAACC,YAAP,CAAoB;kBACzCC,OAAO,EAAEP,KAAK,CAACG,EAD0B;kBAEzCD,MAAM,EAAEF,KAAK,CAACE;gBAF2B,CAApB,CAxBvB;;cAAA;gBAwBOM,OAxBP;;gBA6BCnC,aAAOiB,OAAP,mBAAekB,OAAO,CAACR,KAAvB,mDAAe,eAAeG,EAA9B,EAAkCH,KAAK,CAACG,EAAxC;;gBA7BD;gBAAA,OA+BsBN,UAAU,CAACZ,wBAAX,EA/BtB;;cAAA;gBA+BCa,YA/BD;;gBAgCCzB,aAAOoC,MAAP,CAAcX,YAAd;;gBAhCD;gBAAA,OAkC4BD,UAAU,CAACb,gBAAX,EAlC5B;;cAAA;gBAkCO0B,YAlCP;;gBAoCCrC,aAAOiB,OAAP,CAAeoB,YAAY,CAACP,EAA5B,EAAgCH,KAAK,CAACG,EAAtC;;gBACA9B,aAAOoC,MAAP,CAAcC,YAAY,CAACZ,YAA3B;;gBACAzB,aAAOiB,OAAP,CAAeoB,YAAY,CAAC/B,IAA5B,EAAkC,eAAlC;;gBACAN,aAAOiB,OAAP,CAAeoB,YAAY,CAAC9B,IAA5B,EAAkCA,IAAlC;;gBACAP,aAAOiB,OAAP,CAAeoB,YAAY,CAACR,MAA5B,EAAoCF,KAAK,CAACE,MAA1C;;gBAEMS,GA1CP,GA0Ca,KAAKC,OAAL,CAAa,KAAb,CA1Cb;;gBA4CCvC,aAAOiB,OAAP,CAAeqB,GAAG,CAACE,GAAJ,CAAQ,UAAR,CAAf,EAAoCb,KAAK,CAACG,EAA1C;;gBACA9B,aAAOiB,OAAP,CAAeqB,GAAG,CAACE,GAAJ,CAAQ,eAAR,CAAf,EAAyCb,KAAK,CAACE,MAA/C;;gBA7CD;gBAAA,OA+CmB7B,aAAOK,cAAP,CAAsB;kBAAA,OACvCmB,UAAU,CAACL,yBAAX,CAAqC,MAArC,CADuC;gBAAA,CAAtB,CA/CnB;;cAAA;gBA+COX,GA/CP;;gBAmDCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,SAA7B;;gBAEMiC,GArDP,GAqDa,KAAKF,OAAL,CAAa,KAAb,CArDb;gBAsDOvB,SAtDP,GAsDmByB,GAAG,CAACD,GAAJ,CAAQ,iBAAR,CAtDnB;;gBAuDCxC,aAAOiB,OAAP,CAAeD,SAAf,EAA0BT,IAA1B;;cAvDD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA3D2CmC,4B"}
1
+ {"version":3,"file":"SkillStore.test.js","names":["SkillStoreTest","test","assert","isTruthy","Store","isFunction","register","doesThrowAsync","name","slug","err","errorAssert","assertError","loadCurrentSkill","isCurrentSkillRegistered","FeatureFixture","installCachedFeatures","loadCurrentSkillsNamespace","namespace","isEqual","store","setCurrentSkillsNamespace","Date","getTime","people","loginAsDemoPerson","skillStore","isRegistered","isFalse","skill","isString","apiKey","id","connectToApi","client","authenticate","skillId","results","isTrue","currentSkill","env","Service","get","pkg","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SkillStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SkillStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canInstantiateSkillStore() {\n\t\tassert.isTruthy(this.Store('skill'))\n\t}\n\n\t@test()\n\tprotected static async hasRegisterMethod() {\n\t\tassert.isFunction(this.Store('skill').register)\n\t}\n\n\t@test()\n\tprotected static async cantRegisterIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').register({\n\t\t\t\tname: 'awesome skill',\n\t\t\t\tslug: 'awesome-skill',\n\t\t\t})\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantLoadcurrentSkillIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').loadCurrentSkill()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantCheckIfSkillIsRegisteredNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').isCurrentSkillRegistered()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async canGetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst namespace = await this.Store('skill').loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'TestSkill')\n\t}\n\n\t@test()\n\tprotected static async canSetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst store = this.Store('skill')\n\t\tlet namespace = await store.loadCurrentSkillsNamespace()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('new-namespace')\n\n\t\tnamespace = await store.loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'NewNamespace')\n\t}\n\n\t@test()\n\tprotected static async canRegister() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst slug = `awesome-skill-${new Date().getTime()}`\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst skillStore = this.Store('skill')\n\n\t\tlet isRegistered = await skillStore.isCurrentSkillRegistered()\n\t\tassert.isFalse(isRegistered)\n\n\t\tconst skill = await skillStore.register({\n\t\t\tname: 'awesome skill',\n\t\t\tslug,\n\t\t})\n\n\t\tassert.isTruthy(skill)\n\t\tassert.isEqual(skill.name, 'awesome skill')\n\t\tassert.isEqual(skill.slug, slug)\n\t\tassert.isString(skill.apiKey)\n\t\tassert.isString(skill.id)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.authenticate({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tassert.isEqual(results.skill?.id, skill.id)\n\n\t\tisRegistered = await skillStore.isCurrentSkillRegistered()\n\t\tassert.isTrue(isRegistered)\n\n\t\tconst currentSkill = await skillStore.loadCurrentSkill()\n\n\t\tassert.isEqual(currentSkill.id, skill.id)\n\t\tassert.isTrue(currentSkill.isRegistered)\n\t\tassert.isEqual(currentSkill.name, 'awesome skill')\n\t\tassert.isEqual(currentSkill.slug, slug)\n\t\tassert.isEqual(currentSkill.apiKey, skill.apiKey)\n\n\t\tconst env = this.Service('env')\n\n\t\tassert.isEqual(env.get('SKILL_ID'), skill.id)\n\t\tassert.isEqual(env.get('SKILL_API_KEY'), skill.apiKey)\n\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tskillStore.setCurrentSkillsNamespace('test')\n\t\t)\n\n\t\terrorAssert.assertError(err, 'GENERIC')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst namespace = pkg.get('skill.namespace')\n\t\tassert.isEqual(namespace, slug)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StoreFeature.test.js","names":["StoreFeatureTest","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","code","hitCount","emitter","getEmitter","on","featureCode","actionCode","emit","assert","isEqual","results","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/StoreFeature.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class StoreFeatureTest extends AbstractCliTest {\n\t@test()\n\tprotected static async syncsOnWillExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('stores')\n\n\t\tCommandService.fakeCommand(/yarn/, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tlet hitCount = 0\n\t\tconst emitter = this.getEmitter()\n\t\tawait emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'store' && actionCode === 'sync') {\n\t\t\t\t\thitCount++\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tawait emitter.emit('feature.will-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t})\n\n\t\tassert.isEqual(hitCount, 0)\n\n\t\tawait emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t\tresults: {},\n\t\t})\n\n\t\tassert.isEqual(hitCount, 1)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,gB,WACnB,iB;;;;;;;;;;;;;8GAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAICC,2BAAeC,WAAf,CAA2B,MAA3B,EAAmC;kBAClCC,IAAI,EAAE;gBAD4B,CAAnC;;gBAIIC,QARL,GAQgB,CARhB;gBASOC,OATP,GASiB,KAAKC,UAAL,EATjB;gBAAA;gBAAA,OAUOD,OAAO,CAACE,EAAR,CACL,sBADK;kBAAA,0FAEL;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASC,WAAT,QAASA,WAAT,EAAsBC,UAAtB,QAAsBA,UAAtB;;4BACC,IAAID,WAAW,KAAK,OAAhB,IAA2BC,UAAU,KAAK,MAA9C,EAAsD;8BACrDL,QAAQ;4BACR;;0BAHF;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CAFK;;kBAAA;oBAAA;kBAAA;gBAAA,IAVP;;cAAA;gBAAA;gBAAA,OAmBOC,OAAO,CAACK,IAAR,CAAa,sBAAb,EAAqC;kBAC1CF,WAAW,EAAE,MAD6B;kBAE1CC,UAAU,EAAE;gBAF8B,CAArC,CAnBP;;cAAA;gBAwBCE,aAAOC,OAAP,CAAeR,QAAf,EAAyB,CAAzB;;gBAxBD;gBAAA,OA0BOC,OAAO,CAACK,IAAR,CAAa,qBAAb,EAAoC;kBACzCF,WAAW,EAAE,MAD4B;kBAEzCC,UAAU,EAAE,SAF6B;kBAGzCI,OAAO,EAAE;gBAHgC,CAApC,CA1BP;;cAAA;gBAgCCF,aAAOC,OAAP,CAAeR,QAAf,EAAyB,CAAzB;;cAhCD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAD6CU,4B"}
1
+ {"version":3,"file":"StoreFeature.test.js","names":["StoreFeatureTest","test","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","code","hitCount","emitter","getEmitter","on","featureCode","actionCode","emit","assert","isEqual","results","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/StoreFeature.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class StoreFeatureTest extends AbstractCliTest {\n\t@test()\n\tprotected static async syncsOnWillExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('stores')\n\n\t\tCommandService.fakeCommand(/yarn/, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tlet hitCount = 0\n\t\tconst emitter = this.getEmitter()\n\t\tawait emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'store' && actionCode === 'sync') {\n\t\t\t\t\thitCount++\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tawait emitter.emit('feature.will-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t})\n\n\t\tassert.isEqual(hitCount, 0)\n\n\t\tawait emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t\tresults: {},\n\t\t})\n\n\t\tassert.isEqual(hitCount, 1)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,gB,WACnB,IAAAC,UAAA,G;;;;;;;;;;;;;8GAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAICC,0BAAA,CAAeC,WAAf,CAA2B,MAA3B,EAAmC;kBAClCC,IAAI,EAAE;gBAD4B,CAAnC;;gBAIIC,QARL,GAQgB,CARhB;gBASOC,OATP,GASiB,KAAKC,UAAL,EATjB;gBAAA;gBAAA,OAUOD,OAAO,CAACE,EAAR,CACL,sBADK;kBAAA,0FAEL;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASC,WAAT,QAASA,WAAT,EAAsBC,UAAtB,QAAsBA,UAAtB;;4BACC,IAAID,WAAW,KAAK,OAAhB,IAA2BC,UAAU,KAAK,MAA9C,EAAsD;8BACrDL,QAAQ;4BACR;;0BAHF;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CAFK;;kBAAA;oBAAA;kBAAA;gBAAA,IAVP;;cAAA;gBAAA;gBAAA,OAmBOC,OAAO,CAACK,IAAR,CAAa,sBAAb,EAAqC;kBAC1CF,WAAW,EAAE,MAD6B;kBAE1CC,UAAU,EAAE;gBAF8B,CAArC,CAnBP;;cAAA;gBAwBCE,YAAA,CAAOC,OAAP,CAAeR,QAAf,EAAyB,CAAzB;;gBAxBD;gBAAA,OA0BOC,OAAO,CAACK,IAAR,CAAa,qBAAb,EAAoC;kBACzCF,WAAW,EAAE,MAD4B;kBAEzCC,UAAU,EAAE,SAF6B;kBAGzCI,OAAO,EAAE;gBAHgC,CAApC,CA1BP;;cAAA;gBAgCCF,YAAA,CAAOC,OAAP,CAAeR,QAAf,EAAyB,CAAzB;;cAhCD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAD6CU,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestReporter.test.js","names":["TestReporterTest","reporter","TestReporter","assert","isTrue","isFunction","render","doesThrow","updateResults","totalTestFiles","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/TestReporter.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport TestReporter from '../../features/test/TestReporter'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class TestReporterTest extends AbstractCliTest {\n\tprivate static reporter: TestReporter\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.reporter = new TestReporter()\n\t}\n\n\t@test()\n\tprotected static async canCreateReporter() {\n\t\tassert.isTrue(this.reporter instanceof TestReporter)\n\t}\n\n\t@test()\n\tprotected static async hasRenderMethod() {\n\t\tassert.isFunction(this.reporter.render)\n\t}\n\n\t@test()\n\tprotected static async cantFeedInResultsIfNotStarted() {\n\t\tassert.doesThrow(\n\t\t\t() => this.reporter.updateResults({ totalTestFiles: 0 }),\n\t\t\t/call start/\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,gB,WAQnB,iB,UAKA,iB,UAKA,iB;;;;;;;;;;;;;sGAfD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,QAAL,GAAgB,IAAIC,wBAAJ,EAAhB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,MAAP,CAAc,KAAKH,QAAL,YAAyBC,wBAAvC;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOE,UAAP,CAAkB,KAAKJ,QAAL,CAAcK,MAAhC;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yHAKA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAECH,aAAOI,SAAP,CACC;kBAAA,OAAM,KAAI,CAACN,QAAL,CAAcO,aAAd,CAA4B;oBAAEC,cAAc,EAAE;kBAAlB,CAA5B,CAAN;gBAAA,CADD,EAEC,YAFD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAlB6CC,4B"}
1
+ {"version":3,"file":"TestReporter.test.js","names":["TestReporterTest","test","reporter","TestReporter","assert","isTrue","isFunction","render","doesThrow","updateResults","totalTestFiles","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/TestReporter.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport TestReporter from '../../features/test/TestReporter'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class TestReporterTest extends AbstractCliTest {\n\tprivate static reporter: TestReporter\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.reporter = new TestReporter()\n\t}\n\n\t@test()\n\tprotected static async canCreateReporter() {\n\t\tassert.isTrue(this.reporter instanceof TestReporter)\n\t}\n\n\t@test()\n\tprotected static async hasRenderMethod() {\n\t\tassert.isFunction(this.reporter.render)\n\t}\n\n\t@test()\n\tprotected static async cantFeedInResultsIfNotStarted() {\n\t\tassert.doesThrow(\n\t\t\t() => this.reporter.updateResults({ totalTestFiles: 0 }),\n\t\t\t/call start/\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,gB,WAQnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAKA,IAAAA,UAAA,G;;;;;;;;;;;;;sGAfD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,QAAL,GAAgB,IAAIC,wBAAJ,EAAhB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,MAAP,CAAc,KAAKH,QAAL,YAAyBC,wBAAvC;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOE,UAAP,CAAkB,KAAKJ,QAAL,CAAcK,MAAhC;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yHAKA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAECH,YAAA,CAAOI,SAAP,CACC;kBAAA,OAAM,KAAI,CAACN,QAAL,CAAcO,aAAd,CAA4B;oBAAEC,cAAc,EAAE;kBAAlB,CAA5B,CAAN;gBAAA,CADD,EAEC,YAFD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAlB6CC,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestRunner.test.js","names":["TestRunnerTest","testRunner","TestRunner","cwd","commandService","Service","assert","isTruthy","doesThrowAsync","run","err","errorAssert","assertError","dir","installTests","cli","createTest","name","results","isEqual","totalTestFiles","totalFailed","totalTests","shouldFix","testResults","totalPassed","on","payload","shouldBuild","pattern","promise","kill","isTrue","wasKilled","options","Action","execute","type","nameReadable","nameCamel","namesUtil","toCamel","namePascal","toPascal","waitForInput","ui","sendInput","file","files","fixBadTest","path","build","AbstractTestTest"],"sources":["../../../src/__tests__/implementation/TestRunner.test.ts"],"sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../cli'\nimport { SpruceTestResults } from '../../features/test/test.types'\nimport TestRunner from '../../features/test/TestRunner'\nimport AbstractTestTest from '../../tests/AbstractTestTest'\n\nexport default class TestRunnerTest extends AbstractTestTest {\n\tprotected static testRunner: TestRunner\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.testRunner = new TestRunner({\n\t\t\tcwd: this.cwd,\n\t\t\tcommandService: this.Service('command'),\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canCreateTestRunner() {\n\t\tassert.isTruthy(this.testRunner)\n\t}\n\n\t@test()\n\tprotected static async runningOnDirWithNoTestsConfiguredThrows() {\n\t\tconst err = await assert.doesThrowAsync(() => this.testRunner.run())\n\t\terrorAssert.assertError(err, 'INVALID_TEST_DIRECTORY', {\n\t\t\tdir: this.cwd,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async getsFailedResultsWhenTestFails() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can book appointment' })\n\n\t\tlet results = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\n\t\tawait this.createTest({ cli, name: 'Can cancel appointment' })\n\n\t\tresults = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 2)\n\t\tassert.isEqual(results.totalFailed, 2)\n\t\tassert.isEqual(results.totalTests, 4)\n\t}\n\n\t@test()\n\tprotected static async passesOnGoodTests() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can pass tests', shouldFix: true })\n\n\t\tconst testResults = await this.testRunner.run()\n\n\t\tassert.isEqual(testResults.totalTestFiles, 1)\n\t\tassert.isEqual(testResults.totalFailed, 0)\n\t\tassert.isEqual(testResults.totalPassed, 2)\n\t\tassert.isEqual(testResults.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async emitsEventsOnTestUpdates() {\n\t\tconst cli = await this.installTests()\n\n\t\tlet results: SpruceTestResults | undefined\n\t\tawait this.testRunner.on('did-update', (payload) => {\n\t\t\tresults = payload.results\n\t\t})\n\n\t\tawait this.createTest({ cli, name: 'Emitting test' })\n\n\t\tawait this.testRunner.run()\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async canHandlePattern() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst results = await this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async testsCanBeKilled() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst promise = this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tthis.testRunner.kill()\n\n\t\tconst results = await promise\n\n\t\tassert.isTrue(results.wasKilled)\n\t}\n\n\tprivate static async createTest(options: {\n\t\tcli: CliInterface\n\t\tname: string\n\t\tshouldFix?: boolean\n\t\tshouldBuild?: boolean\n\t}) {\n\t\tconst { name, shouldFix = false, shouldBuild = true } = options\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: name,\n\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tif (shouldFix) {\n\t\t\tconst file = results.files?.[0]\n\t\t\tassert.isTruthy(file)\n\t\t\tthis.fixBadTest(file.path)\n\t\t}\n\n\t\tif (shouldBuild) {\n\t\t\tawait this.Service('build').build()\n\t\t}\n\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;IAEqBA,c,WAWnB,iB,UAKA,iB,UAQA,iB,UAqBA,iB,UAcA,iB,UAmBA,iB,UAqBA,iB;;;;;;;;;;;;;sGAhGD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,UAAL,GAAkB,IAAIC,sBAAJ,CAAe;kBAChCC,GAAG,EAAE,KAAKA,GADsB;kBAEhCC,cAAc,EAAE,KAAKC,OAAL,CAAa,SAAb;gBAFgB,CAAf,CAAlB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAQA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,QAAP,CAAgB,KAAKN,UAArB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mIAKA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmBK,aAAOE,cAAP,CAAsB;kBAAA,OAAM,KAAI,CAACP,UAAL,CAAgBQ,GAAhB,EAAN;gBAAA,CAAtB,CAFnB;;cAAA;gBAEOC,GAFP;;gBAGCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,wBAA7B,EAAuD;kBACtDG,GAAG,EAAE,KAAKV;gBAD4C,CAAvD;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0HAQA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKW,YAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAIO,KAAKC,UAAL,CAAgB;kBAAED,GAAG,EAAHA,GAAF;kBAAOE,IAAI,EAAE;gBAAb,CAAhB,CAJP;;cAAA;gBAAA;gBAAA,OAMqB,KAAKhB,UAAL,CAAgBQ,GAAhB,EANrB;;cAAA;gBAMKS,OANL;;gBAQCZ,aAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;gBACAd,aAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;gBACAf,aAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;gBAVD;gBAAA,OAYO,KAAKN,UAAL,CAAgB;kBAAED,GAAG,EAAHA,GAAF;kBAAOE,IAAI,EAAE;gBAAb,CAAhB,CAZP;;cAAA;gBAAA;gBAAA,OAciB,KAAKhB,UAAL,CAAgBQ,GAAhB,EAdjB;;cAAA;gBAcCS,OAdD;;gBAgBCZ,aAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;gBACAd,aAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;gBACAf,aAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;cAlBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAqBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKR,YAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAIO,KAAKC,UAAL,CAAgB;kBAAED,GAAG,EAAHA,GAAF;kBAAOE,IAAI,EAAE,gBAAb;kBAA+BM,SAAS,EAAE;gBAA1C,CAAhB,CAJP;;cAAA;gBAAA;gBAAA,OAM2B,KAAKtB,UAAL,CAAgBQ,GAAhB,EAN3B;;cAAA;gBAMOe,WANP;;gBAQClB,aAAOa,OAAP,CAAeK,WAAW,CAACJ,cAA3B,EAA2C,CAA3C;;gBACAd,aAAOa,OAAP,CAAeK,WAAW,CAACH,WAA3B,EAAwC,CAAxC;;gBACAf,aAAOa,OAAP,CAAeK,WAAW,CAACC,WAA3B,EAAwC,CAAxC;;gBACAnB,aAAOa,OAAP,CAAeK,WAAW,CAACF,UAA3B,EAAuC,CAAvC;;cAXD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAcA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKR,YAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAKO,KAAKd,UAAL,CAAgByB,EAAhB,CAAmB,YAAnB,EAAiC,UAACC,OAAD,EAAa;kBACnDT,OAAO,GAAGS,OAAO,CAACT,OAAlB;gBACA,CAFK,CALP;;cAAA;gBAAA;gBAAA,OASO,KAAKF,UAAL,CAAgB;kBAAED,GAAG,EAAHA,GAAF;kBAAOE,IAAI,EAAE;gBAAb,CAAhB,CATP;;cAAA;gBAAA;gBAAA,OAWO,KAAKhB,UAAL,CAAgBQ,GAAhB,EAXP;;cAAA;gBAaCH,aAAOC,QAAP,CAAgBW,OAAhB;;gBACAZ,aAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;gBACAd,aAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;gBACAf,aAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;cAhBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAmBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKR,YAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAIO,KAAKC,UAAL,CAAgB;kBACrBD,GAAG,EAAHA,GADqB;kBAErBE,IAAI,EAAE,0BAFe;kBAGrBW,WAAW,EAAE;gBAHQ,CAAhB,CAJP;;cAAA;gBAAA;gBAAA,OASO,KAAKZ,UAAL,CAAgB;kBAAED,GAAG,EAAHA,GAAF;kBAAOE,IAAI,EAAE;gBAAb,CAAhB,CATP;;cAAA;gBAAA;gBAAA,OAWuB,KAAKhB,UAAL,CAAgBQ,GAAhB,CAAoB;kBACzCoB,OAAO,EAAE;gBADgC,CAApB,CAXvB;;cAAA;gBAWOX,OAXP;;gBAeCZ,aAAOC,QAAP,CAAgBW,OAAhB;;gBACAZ,aAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;gBACAd,aAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;gBACAf,aAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;cAlBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAqBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKR,YAAL,EAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAIO,KAAKC,UAAL,CAAgB;kBACrBD,GAAG,EAAHA,GADqB;kBAErBE,IAAI,EAAE,0BAFe;kBAGrBW,WAAW,EAAE;gBAHQ,CAAhB,CAJP;;cAAA;gBAAA;gBAAA,OASO,KAAKZ,UAAL,CAAgB;kBAAED,GAAG,EAAHA,GAAF;kBAAOE,IAAI,EAAE;gBAAb,CAAhB,CATP;;cAAA;gBAWOa,OAXP,GAWiB,KAAK7B,UAAL,CAAgBQ,GAAhB,CAAoB;kBACnCoB,OAAO,EAAE;gBAD0B,CAApB,CAXjB;gBAeC,KAAK5B,UAAL,CAAgB8B,IAAhB;gBAfD;gBAAA,OAiBuBD,OAjBvB;;cAAA;gBAiBOZ,OAjBP;;gBAmBCZ,aAAO0B,MAAP,CAAcd,OAAO,CAACe,SAAtB;;cAnBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sGAsBA,kBAAgCC,OAAhC;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAMSjB,IANT,GAMyDiB,OANzD,CAMSjB,IANT,uBAMyDiB,OANzD,CAMeX,SANf,EAMeA,SANf,mCAM2B,KAN3B,8CAMyDW,OANzD,CAMkCN,WANlC,EAMkCA,WANlC,qCAMgD,IANhD;gBAQOE,OARP,GAQiB,KAAKK,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;kBACrDC,IAAI,EAAE,YAD+C;kBAErDC,YAAY,EAAErB,IAFuC;kBAGrDsB,SAAS,EAAEC,4BAAUC,OAAV,CAAkBxB,IAAlB,CAH0C;kBAIrDyB,UAAU,EAAEF,4BAAUG,QAAV,CAAmB1B,IAAnB;gBAJyC,CAAtC,CARjB;gBAAA;gBAAA,OAeO,KAAK2B,YAAL,EAfP;;cAAA;gBAAA;gBAAA,OAgBO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,EAAlB,CAhBP;;cAAA;gBAAA;gBAAA,OAkBuBhB,OAlBvB;;cAAA;gBAkBOZ,OAlBP;;gBAoBC,IAAIK,SAAJ,EAAe;kBACRwB,IADQ,qBACD7B,OAAO,CAAC8B,KADP,mDACD,eAAgB,CAAhB,CADC;;kBAEd1C,aAAOC,QAAP,CAAgBwC,IAAhB;;kBACA,KAAKE,UAAL,CAAgBF,IAAI,CAACG,IAArB;gBACA;;gBAxBF,KA0BKtB,WA1BL;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OA2BQ,KAAKvB,OAAL,CAAa,OAAb,EAAsB8C,KAAtB,EA3BR;;cAAA;gBAAA,kCA8BQjC,OA9BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAzH2CkC,6B"}
1
+ {"version":3,"file":"TestRunner.test.js","names":["TestRunnerTest","test","testRunner","TestRunner","cwd","commandService","Service","assert","isTruthy","doesThrowAsync","run","err","errorAssert","assertError","dir","installTests","cli","createTest","name","results","isEqual","totalTestFiles","totalFailed","totalTests","shouldFix","testResults","totalPassed","on","payload","shouldBuild","pattern","promise","kill","isTrue","wasKilled","options","Action","execute","type","nameReadable","nameCamel","namesUtil","toCamel","namePascal","toPascal","waitForInput","ui","sendInput","file","files","fixBadTest","path","build","AbstractTestTest"],"sources":["../../../src/__tests__/implementation/TestRunner.test.ts"],"sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../cli'\nimport { SpruceTestResults } from '../../features/test/test.types'\nimport TestRunner from '../../features/test/TestRunner'\nimport AbstractTestTest from '../../tests/AbstractTestTest'\n\nexport default class TestRunnerTest extends AbstractTestTest {\n\tprotected static testRunner: TestRunner\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.testRunner = new TestRunner({\n\t\t\tcwd: this.cwd,\n\t\t\tcommandService: this.Service('command'),\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canCreateTestRunner() {\n\t\tassert.isTruthy(this.testRunner)\n\t}\n\n\t@test()\n\tprotected static async runningOnDirWithNoTestsConfiguredThrows() {\n\t\tconst err = await assert.doesThrowAsync(() => this.testRunner.run())\n\t\terrorAssert.assertError(err, 'INVALID_TEST_DIRECTORY', {\n\t\t\tdir: this.cwd,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async getsFailedResultsWhenTestFails() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can book appointment' })\n\n\t\tlet results = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\n\t\tawait this.createTest({ cli, name: 'Can cancel appointment' })\n\n\t\tresults = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 2)\n\t\tassert.isEqual(results.totalFailed, 2)\n\t\tassert.isEqual(results.totalTests, 4)\n\t}\n\n\t@test()\n\tprotected static async passesOnGoodTests() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can pass tests', shouldFix: true })\n\n\t\tconst testResults = await this.testRunner.run()\n\n\t\tassert.isEqual(testResults.totalTestFiles, 1)\n\t\tassert.isEqual(testResults.totalFailed, 0)\n\t\tassert.isEqual(testResults.totalPassed, 2)\n\t\tassert.isEqual(testResults.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async emitsEventsOnTestUpdates() {\n\t\tconst cli = await this.installTests()\n\n\t\tlet results: SpruceTestResults | undefined\n\t\tawait this.testRunner.on('did-update', (payload) => {\n\t\t\tresults = payload.results\n\t\t})\n\n\t\tawait this.createTest({ cli, name: 'Emitting test' })\n\n\t\tawait this.testRunner.run()\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async canHandlePattern() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst results = await this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async testsCanBeKilled() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst promise = this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tthis.testRunner.kill()\n\n\t\tconst results = await promise\n\n\t\tassert.isTrue(results.wasKilled)\n\t}\n\n\tprivate static async createTest(options: {\n\t\tcli: CliInterface\n\t\tname: string\n\t\tshouldFix?: boolean\n\t\tshouldBuild?: boolean\n\t}) {\n\t\tconst { name, shouldFix = false, shouldBuild = true } = options\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: name,\n\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tif (shouldFix) {\n\t\t\tconst file = results.files?.[0]\n\t\t\tassert.isTruthy(file)\n\t\t\tthis.fixBadTest(file.path)\n\t\t}\n\n\t\tif (shouldBuild) {\n\t\t\tawait this.Service('build').build()\n\t\t}\n\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValueTypeMapping.test.js","names":["ValueTypeMappingTest","test","skip","installSchemaFeature","Action","execute","fieldTypesFile","resolveHashSprucePath","typeContents","diskUtil","readFile","assert","doesInclude","Service","check","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/ValueTypeMapping.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nexport default class ValueTypeMappingTest extends AbstractSchemaTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tawait this.installSchemaFeature('schemas')\n\t}\n\n\t@test.skip('enable when enable introduction of new schema fields')\n\tprotected static async dropsMappersIntoFieldTypes() {\n\t\tawait this.Action('schema', 'sync').execute({})\n\n\t\tconst fieldTypesFile = this.resolveHashSprucePath(\n\t\t\t'schemas',\n\t\t\t'fields',\n\t\t\t'fields.types.ts'\n\t\t)\n\t\tconst typeContents = diskUtil.readFile(fieldTypesFile)\n\t\tassert.doesInclude(\n\t\t\ttypeContents,\n\t\t\t'SchemaFieldValueTypeMapper<F extends SchemaFieldFieldDefinition? F : SchemaFieldFieldDefinition, CreateEntityInstances>'\n\t\t)\n\t\tassert.doesInclude(\n\t\t\ttypeContents,\n\t\t\t'SelectFieldValueTypeMapper<F extends SelectFieldDefinition ? F: SelectFieldDefinition>'\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(fieldTypesFile)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,oB,WAMnBC,WAAKC,IAAL,CAAU,sDAAV,C;;;;;;;;;;;;;sGALD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAEO,KAAKC,oBAAL,CAA0B,SAA1B,CAFP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAFP;;cAAA;gBAIOC,cAJP,GAIwB,KAAKC,qBAAL,CACtB,SADsB,EAEtB,QAFsB,EAGtB,iBAHsB,CAJxB;gBASOC,YATP,GASsBC,2BAASC,QAAT,CAAkBJ,cAAlB,CATtB;;gBAUCK,aAAOC,WAAP,CACCJ,YADD,EAEC,yHAFD;;gBAIAG,aAAOC,WAAP,CACCJ,YADD,EAEC,wFAFD;;gBAdD;gBAAA,OAmBO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCR,cAAlC,CAnBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EANiDS,+B"}
1
+ {"version":3,"file":"ValueTypeMapping.test.js","names":["ValueTypeMappingTest","test","skip","installSchemaFeature","Action","execute","fieldTypesFile","resolveHashSprucePath","typeContents","diskUtil","readFile","assert","doesInclude","Service","check","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/ValueTypeMapping.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nexport default class ValueTypeMappingTest extends AbstractSchemaTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tawait this.installSchemaFeature('schemas')\n\t}\n\n\t@test.skip('enable when enable introduction of new schema fields')\n\tprotected static async dropsMappersIntoFieldTypes() {\n\t\tawait this.Action('schema', 'sync').execute({})\n\n\t\tconst fieldTypesFile = this.resolveHashSprucePath(\n\t\t\t'schemas',\n\t\t\t'fields',\n\t\t\t'fields.types.ts'\n\t\t)\n\t\tconst typeContents = diskUtil.readFile(fieldTypesFile)\n\t\tassert.doesInclude(\n\t\t\ttypeContents,\n\t\t\t'SchemaFieldValueTypeMapper<F extends SchemaFieldFieldDefinition? F : SchemaFieldFieldDefinition, CreateEntityInstances>'\n\t\t)\n\t\tassert.doesInclude(\n\t\t\ttypeContents,\n\t\t\t'SelectFieldValueTypeMapper<F extends SelectFieldDefinition ? F: SelectFieldDefinition>'\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(fieldTypesFile)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,oB,WAMnBC,UAAA,CAAKC,IAAL,CAAU,sDAAV,C;;;;;;;;;;;;;sGALD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAEO,KAAKC,oBAAL,CAA0B,SAA1B,CAFP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sHAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAFP;;cAAA;gBAIOC,cAJP,GAIwB,KAAKC,qBAAL,CACtB,SADsB,EAEtB,QAFsB,EAGtB,iBAHsB,CAJxB;gBASOC,YATP,GASsBC,0BAAA,CAASC,QAAT,CAAkBJ,cAAlB,CATtB;;gBAUCK,YAAA,CAAOC,WAAP,CACCJ,YADD,EAEC,yHAFD;;gBAIAG,YAAA,CAAOC,WAAP,CACCJ,YADD,EAEC,wFAFD;;gBAdD;gBAAA,OAmBO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCR,cAAlC,CAnBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EANiDS,+B"}