@sprucelabs/spruce-cli 14.19.3 → 14.21.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 (418) hide show
  1. package/.nvmrc +1 -1
  2. package/CHANGELOG.md +38 -0
  3. package/build/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.d.ts +11 -0
  4. package/build/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.js +27 -0
  5. package/build/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.js.map +1 -0
  6. package/build/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.d.ts +10 -0
  7. package/build/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.js +24 -0
  8. package/build/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.js.map +1 -0
  9. package/build/.spruce/events/events.contract.d.ts +74 -147
  10. package/build/.spruce/events/events.contract.js +4 -10
  11. package/build/.spruce/events/events.contract.js.map +1 -1
  12. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +15 -0
  13. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +17 -2
  14. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  15. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +21 -4
  16. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +24 -7
  17. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  18. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +21 -1
  19. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +26 -6
  20. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  21. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js +11 -0
  22. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js.map +1 -1
  23. package/build/.spruce/schemas/appointments/v2021_06_23/eventSource.schema.d.ts +3 -0
  24. package/build/.spruce/schemas/appointments/v2021_06_23/eventSource.schema.js +29 -0
  25. package/build/.spruce/schemas/appointments/v2021_06_23/eventSource.schema.js.map +1 -0
  26. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.d.ts +3 -0
  27. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.js +36 -0
  28. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.js.map +1 -0
  29. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.d.ts +3 -0
  30. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.js +46 -0
  31. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.js.map +1 -0
  32. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.d.ts +3 -0
  33. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.js +35 -0
  34. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.js.map +1 -0
  35. package/build/.spruce/schemas/calendar/v2021_05_19/eventSource.schema.d.ts +3 -0
  36. package/build/.spruce/schemas/calendar/v2021_05_19/eventSource.schema.js +59 -0
  37. package/build/.spruce/schemas/calendar/v2021_05_19/eventSource.schema.js.map +1 -0
  38. package/build/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.d.ts +3 -0
  39. package/build/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.js +54 -0
  40. package/build/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.js.map +1 -0
  41. package/build/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.d.ts +3 -0
  42. package/build/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.js +37 -0
  43. package/build/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.js.map +1 -0
  44. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js +11 -0
  45. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  46. package/build/.spruce/schemas/heartwood/v2021_02_11/eventSource.schema.d.ts +3 -0
  47. package/build/.spruce/schemas/heartwood/v2021_02_11/eventSource.schema.js +29 -0
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/eventSource.schema.js.map +1 -0
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js +11 -0
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js +11 -0
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js +2 -2
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js +2 -2
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js +11 -0
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.d.ts +1 -0
  60. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/{text.schema.js → theme.schema.js} +2 -2
  61. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -0
  62. package/build/.spruce/schemas/schemas.types.d.ts +368 -851
  63. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.d.ts +3 -0
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js +46 -0
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -0
  67. package/build/GlobalEmitter.d.ts +11 -0
  68. package/build/GlobalEmitter.js +11 -0
  69. package/build/GlobalEmitter.js.map +1 -1
  70. package/build/__tests__/behavioral/DeployingToSandbox.test.d.ts +3 -2
  71. package/build/__tests__/behavioral/DeployingToSandbox.test.js +237 -162
  72. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  73. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +5 -83
  74. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  75. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.d.ts +1 -1
  76. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.d.ts +3 -2
  77. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +174 -31
  78. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  79. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.d.ts +1 -1
  80. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js +61 -61
  81. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  82. package/build/__tests__/behavioral/{CreatingAnEvent.test.d.ts → events/CreatingAnEvent.test.d.ts} +1 -1
  83. package/build/__tests__/behavioral/{CreatingAnEvent.test.js → events/CreatingAnEvent.test.js} +3 -3
  84. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -0
  85. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +4 -2
  86. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  87. package/build/__tests__/behavioral/node/CreatingANodeModule.test.d.ts +6 -0
  88. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +168 -0
  89. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -0
  90. package/build/__tests__/behavioral/{CreatingASkill.test.d.ts → skill/CreatingASkill.test.d.ts} +1 -1
  91. package/build/__tests__/behavioral/{CreatingASkill.test.js → skill/CreatingASkill.test.js} +3 -3
  92. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -0
  93. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +5 -0
  94. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +144 -19
  95. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
  96. package/build/__tests__/implementation/EventContractCleanerUtil.test.js +4 -4
  97. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  98. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +4 -4
  99. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  100. package/build/__tests__/{behavioral/node → implementation}/SettingUpANodeModule.test.d.ts +1 -1
  101. package/build/__tests__/{behavioral/node → implementation}/SettingUpANodeModule.test.js +1 -1
  102. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -0
  103. package/build/cli.js +6 -7
  104. package/build/cli.js.map +1 -1
  105. package/build/features/FeatureInstaller.d.ts +2 -32
  106. package/build/features/conversation/writers/ConversationWriter.d.ts +1 -1
  107. package/build/features/error/ErrorFeature.js +66 -35
  108. package/build/features/error/ErrorFeature.js.map +1 -1
  109. package/build/features/event/EventFeature.js +4 -4
  110. package/build/features/event/EventFeature.js.map +1 -1
  111. package/build/features/event/actions/SetRemoteAction.js +1 -1
  112. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  113. package/build/features/event/stores/EventStore.js.map +1 -1
  114. package/build/features/event/writers/EventWriter.d.ts +2 -2
  115. package/build/features/features.types.d.ts +1 -1
  116. package/build/features/log/actions/CreateTransportAction.d.ts +1 -1
  117. package/build/features/log/writers/LogWriter.d.ts +1 -1
  118. package/build/features/node/NodeFeature.d.ts +7 -22
  119. package/build/features/node/NodeFeature.js +49 -72
  120. package/build/features/node/NodeFeature.js.map +1 -1
  121. package/build/features/node/actions/CreateAction.d.ts +12 -0
  122. package/build/features/node/actions/CreateAction.js +92 -0
  123. package/build/features/node/actions/CreateAction.js.map +1 -0
  124. package/build/features/node/actions/UpdateDependenciesAction.js +13 -16
  125. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  126. package/build/features/organization/stores/OrganizationStore.d.ts +2 -2
  127. package/build/features/sandbox/actions/SetupAction.d.ts +1 -1
  128. package/build/features/schema/actions/SyncAction.js +1 -1
  129. package/build/features/schema/actions/SyncAction.js.map +1 -1
  130. package/build/features/schema/writers/SchemaWriter.js +4 -6
  131. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  132. package/build/features/skill/SkillFeature.d.ts +0 -3
  133. package/build/features/skill/SkillFeature.js +6 -31
  134. package/build/features/skill/SkillFeature.js.map +1 -1
  135. package/build/features/skill/stores/SkillStore.d.ts +1 -1
  136. package/build/features/skill/stores/SkillStore.js +8 -1
  137. package/build/features/skill/stores/SkillStore.js.map +1 -1
  138. package/build/features/skill/updaters/Updater.d.ts +3 -1
  139. package/build/features/skill/updaters/Updater.js +43 -5
  140. package/build/features/skill/updaters/Updater.js.map +1 -1
  141. package/build/features/store/actions/SyncAction.d.ts +1 -1
  142. package/build/features/store/writers/StoreWriter.d.ts +1 -1
  143. package/build/features/universalDevDependencies.d.ts +5 -0
  144. package/build/features/universalDevDependencies.js +40 -0
  145. package/build/features/universalDevDependencies.js.map +1 -0
  146. package/build/features/universalScripts.d.ts +0 -3
  147. package/build/features/universalScripts.js +0 -3
  148. package/build/features/universalScripts.js.map +1 -1
  149. package/build/features/view/stores/ViewStore.d.ts +1 -1
  150. package/build/interfaces/SpyInterface.js +7 -1
  151. package/build/interfaces/SpyInterface.js.map +1 -1
  152. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.d.ts +22 -0
  153. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js +33 -0
  154. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -0
  155. package/build/services/AuthService.d.ts +1 -0
  156. package/build/services/AuthService.js +8 -0
  157. package/build/services/AuthService.js.map +1 -1
  158. package/build/services/PkgService.d.ts +2 -1
  159. package/build/services/PkgService.js +20 -17
  160. package/build/services/PkgService.js.map +1 -1
  161. package/build/tests/AbstractCliTest.d.ts +5 -0
  162. package/build/tests/AbstractCliTest.js +31 -0
  163. package/build/tests/AbstractCliTest.js.map +1 -1
  164. package/build/tests/AbstractEventTest.d.ts +2 -2
  165. package/build/tests/buildTestCache.js +3 -0
  166. package/build/tests/buildTestCache.js.map +1 -1
  167. package/build/tests/cleanTestData.js +1 -0
  168. package/build/tests/cleanTestData.js.map +1 -1
  169. package/build/tests/fixtures/OrganizationFixture.d.ts +1 -1
  170. package/build/tests/fixtures/ViewFixture.d.ts +1 -1
  171. package/build/writers/AbstractWriter.js.map +1 -1
  172. package/package.json +4 -3
  173. package/src/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.ts +17 -0
  174. package/src/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.ts +16 -0
  175. package/src/.spruce/events/events.contract.ts +16 -34
  176. package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +15 -0
  177. package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +21 -4
  178. package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +21 -1
  179. package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.ts +7 -0
  180. package/src/.spruce/schemas/appointments/v2021_06_23/eventSource.schema.ts +23 -0
  181. package/src/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.ts +29 -0
  182. package/src/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.ts +30 -0
  183. package/src/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.ts +23 -0
  184. package/src/.spruce/schemas/calendar/v2021_05_19/eventSource.schema.ts +48 -0
  185. package/src/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.ts +39 -0
  186. package/src/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.ts +25 -0
  187. package/src/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.ts +7 -0
  188. package/src/.spruce/schemas/heartwood/v2021_02_11/eventSource.schema.ts +23 -0
  189. package/src/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.ts +7 -0
  190. package/src/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.ts +7 -0
  191. package/src/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.ts +2 -2
  192. package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.ts +2 -2
  193. package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.ts +7 -0
  194. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.ts +1 -0
  195. package/src/.spruce/schemas/schemas.types.ts +411 -1056
  196. package/src/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.ts +38 -0
  197. package/src/GlobalEmitter.ts +11 -0
  198. package/src/__tests__/behavioral/DeployingToSandbox.test.ts +47 -20
  199. package/src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts +1 -63
  200. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +110 -5
  201. package/src/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.ts +5 -5
  202. package/src/__tests__/behavioral/{CreatingAnEvent.test.ts → events/CreatingAnEvent.test.ts} +6 -6
  203. package/src/__tests__/behavioral/events/KeepingEventsInSync.test.ts +1 -2
  204. package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +47 -0
  205. package/src/__tests__/behavioral/{CreatingASkill.test.ts → skill/CreatingASkill.test.ts} +3 -3
  206. package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +69 -8
  207. package/src/__tests__/implementation/EventContractCleanerUtil.test.ts +1 -1
  208. package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +3 -5
  209. package/src/__tests__/{behavioral/node → implementation}/SettingUpANodeModule.test.ts +1 -1
  210. package/src/cli.ts +3 -1
  211. package/src/features/error/ErrorFeature.ts +11 -0
  212. package/src/features/event/EventFeature.ts +4 -4
  213. package/src/features/event/actions/SetRemoteAction.ts +1 -1
  214. package/src/features/event/stores/EventStore.ts +1 -0
  215. package/src/features/node/NodeFeature.ts +37 -41
  216. package/src/features/node/actions/CreateAction.ts +34 -0
  217. package/src/features/node/actions/UpdateDependenciesAction.ts +5 -6
  218. package/src/features/schema/actions/SyncAction.ts +1 -2
  219. package/src/features/schema/writers/SchemaWriter.ts +3 -5
  220. package/src/features/skill/SkillFeature.ts +5 -12
  221. package/src/features/skill/stores/SkillStore.ts +5 -0
  222. package/src/features/skill/updaters/Updater.ts +25 -2
  223. package/src/features/universalDevDependencies.ts +14 -0
  224. package/src/features/universalScripts.ts +0 -5
  225. package/src/interfaces/SpyInterface.ts +6 -1
  226. package/src/schemas/v2020_07_22/nodeFeatureOptions.builder.ts +24 -0
  227. package/src/services/AuthService.ts +7 -0
  228. package/src/services/PkgService.ts +10 -4
  229. package/src/tests/AbstractCliTest.ts +11 -0
  230. package/src/tests/buildTestCache.ts +2 -0
  231. package/src/tests/cleanTestData.ts +1 -0
  232. package/src/writers/AbstractWriter.ts +0 -1
  233. package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.d.ts +0 -25
  234. package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js +0 -41
  235. package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js.map +0 -1
  236. package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.d.ts +0 -25
  237. package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js +0 -41
  238. package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js.map +0 -1
  239. package/build/.spruce/events/forms/createForm.v2021_07_02.contract.d.ts +0 -25
  240. package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js +0 -41
  241. package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js.map +0 -1
  242. package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.d.ts +0 -28
  243. package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js +0 -42
  244. package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js.map +0 -1
  245. package/build/.spruce/events/forms/listForms.v2021_07_02.contract.d.ts +0 -46
  246. package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js +0 -60
  247. package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js.map +0 -1
  248. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsResponsePayload.schema.d.ts +0 -3
  249. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsResponsePayload.schema.js +0 -28
  250. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsResponsePayload.schema.js.map +0 -1
  251. package/build/.spruce/schemas/forms/v2021_07_02/builtForm.schema.d.ts +0 -3
  252. package/build/.spruce/schemas/forms/v2021_07_02/builtForm.schema.js +0 -66
  253. package/build/.spruce/schemas/forms/v2021_07_02/builtForm.schema.js.map +0 -1
  254. package/build/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.d.ts +0 -3
  255. package/build/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.js +0 -50
  256. package/build/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.js.map +0 -1
  257. package/build/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.d.ts +0 -3
  258. package/build/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.js +0 -59
  259. package/build/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.js.map +0 -1
  260. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.d.ts +0 -3
  261. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.js +0 -30
  262. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.js.map +0 -1
  263. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.d.ts +0 -3
  264. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.js +0 -35
  265. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.js.map +0 -1
  266. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.d.ts +0 -3
  267. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.js +0 -34
  268. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.js.map +0 -1
  269. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.d.ts +0 -3
  270. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.js +0 -30
  271. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.js.map +0 -1
  272. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.d.ts +0 -3
  273. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.js +0 -35
  274. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.js.map +0 -1
  275. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.d.ts +0 -3
  276. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.js +0 -33
  277. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.js.map +0 -1
  278. package/build/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.d.ts +0 -3
  279. package/build/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.js +0 -52
  280. package/build/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.js.map +0 -1
  281. package/build/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.d.ts +0 -3
  282. package/build/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.js +0 -35
  283. package/build/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.js.map +0 -1
  284. package/build/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.d.ts +0 -3
  285. package/build/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.js +0 -44
  286. package/build/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.js.map +0 -1
  287. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.d.ts +0 -3
  288. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.js +0 -29
  289. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.js.map +0 -1
  290. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  291. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.js +0 -35
  292. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  293. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.d.ts +0 -3
  294. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.js +0 -29
  295. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.js.map +0 -1
  296. package/build/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.d.ts +0 -3
  297. package/build/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.js +0 -29
  298. package/build/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.js.map +0 -1
  299. package/build/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  300. package/build/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.js +0 -35
  301. package/build/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  302. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.d.ts +0 -3
  303. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.js +0 -29
  304. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.js.map +0 -1
  305. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  306. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.js +0 -35
  307. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  308. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.d.ts +0 -3
  309. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.js +0 -78
  310. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.js.map +0 -1
  311. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.d.ts +0 -3
  312. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.js +0 -35
  313. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.js.map +0 -1
  314. package/build/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.d.ts +0 -3
  315. package/build/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.js +0 -37
  316. package/build/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.js.map +0 -1
  317. package/build/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.d.ts +0 -3
  318. package/build/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.js +0 -51
  319. package/build/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.js.map +0 -1
  320. package/build/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.d.ts +0 -3
  321. package/build/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.js +0 -37
  322. package/build/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.js.map +0 -1
  323. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.d.ts +0 -3
  324. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.js +0 -38
  325. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.js.map +0 -1
  326. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  327. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.js +0 -35
  328. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  329. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.d.ts +0 -3
  330. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.js +0 -29
  331. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.js.map +0 -1
  332. package/build/.spruce/schemas/heartwood/v2021_02_11/registerationTheme.schema.d.ts +0 -3
  333. package/build/.spruce/schemas/heartwood/v2021_02_11/registerationTheme.schema.js +0 -35
  334. package/build/.spruce/schemas/heartwood/v2021_02_11/registerationTheme.schema.js.map +0 -1
  335. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.d.ts +0 -1
  336. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.js +0 -14
  337. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.js.map +0 -1
  338. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.d.ts +0 -1
  339. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.js +0 -14
  340. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.js.map +0 -1
  341. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.d.ts +0 -1
  342. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.js +0 -14
  343. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.js.map +0 -1
  344. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.d.ts +0 -1
  345. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.js +0 -14
  346. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.js.map +0 -1
  347. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.d.ts +0 -1
  348. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.js +0 -14
  349. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.js.map +0 -1
  350. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.d.ts +0 -1
  351. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.js +0 -14
  352. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.js.map +0 -1
  353. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.d.ts +0 -1
  354. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.js +0 -14
  355. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.js.map +0 -1
  356. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.d.ts +0 -1
  357. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.js +0 -14
  358. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.js.map +0 -1
  359. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.d.ts +0 -1
  360. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.js +0 -14
  361. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.js.map +0 -1
  362. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.d.ts +0 -1
  363. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.js +0 -14
  364. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.js.map +0 -1
  365. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.d.ts +0 -1
  366. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.js.map +0 -1
  367. package/build/__tests__/behavioral/CreatingASkill.test.js.map +0 -1
  368. package/build/__tests__/behavioral/CreatingAnEvent.test.js.map +0 -1
  369. package/build/__tests__/behavioral/node/SettingUpANodeModule.test.js.map +0 -1
  370. package/build/__tests__/support/coreEventContract.d.ts +0 -3
  371. package/build/__tests__/support/coreEventContract.js +0 -5152
  372. package/build/__tests__/support/coreEventContract.js.map +0 -1
  373. package/src/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.ts +0 -33
  374. package/src/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.ts +0 -34
  375. package/src/.spruce/events/forms/createForm.v2021_07_02.contract.ts +0 -33
  376. package/src/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.ts +0 -37
  377. package/src/.spruce/events/forms/listForms.v2021_07_02.contract.ts +0 -56
  378. package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsResponsePayload.schema.ts +0 -22
  379. package/src/.spruce/schemas/forms/v2021_07_02/builtForm.schema.ts +0 -50
  380. package/src/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.ts +0 -41
  381. package/src/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.ts +0 -44
  382. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.ts +0 -24
  383. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.ts +0 -23
  384. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.ts +0 -22
  385. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.ts +0 -24
  386. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.ts +0 -23
  387. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.ts +0 -25
  388. package/src/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.ts +0 -38
  389. package/src/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.ts +0 -23
  390. package/src/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.ts +0 -29
  391. package/src/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.ts +0 -23
  392. package/src/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.ts +0 -23
  393. package/src/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.ts +0 -23
  394. package/src/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.ts +0 -23
  395. package/src/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.ts +0 -23
  396. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.ts +0 -23
  397. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.ts +0 -23
  398. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.ts +0 -58
  399. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.ts +0 -23
  400. package/src/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.ts +0 -25
  401. package/src/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.ts +0 -42
  402. package/src/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.ts +0 -25
  403. package/src/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.ts +0 -29
  404. package/src/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.ts +0 -23
  405. package/src/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.ts +0 -23
  406. package/src/.spruce/schemas/heartwood/v2021_02_11/registerationTheme.schema.ts +0 -23
  407. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.ts +0 -1
  408. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.ts +0 -1
  409. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.ts +0 -1
  410. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.ts +0 -1
  411. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.ts +0 -1
  412. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.ts +0 -1
  413. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.ts +0 -1
  414. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.ts +0 -1
  415. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.ts +0 -1
  416. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.ts +0 -1
  417. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.ts +0 -1
  418. package/src/__tests__/support/coreEventContract.ts +0 -4184
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync.test.ts"],"names":["coreContract","eventContractUtil","unifyContracts","coreEventContracts","EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","versionUtil","generateVersion","resolveHashSprucePath","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","skipInstallSkillPrompts","results","assertValidSyncEventsResults","skills","getSkillFixture","registerCurrentSkill","name","seedDemoSkill","skill2","registerEventContract","eventSignatures","isGlobal","fqen","eventNameUtil","join","eventName","version","eventNamespace","slug","assertGlobalEventsAreTyped","skillEventContractTypesFile","contents","diskUtil","readFile","eventContractPath","doesInclude","promise","syncCoreEventsPretendingToBeMercuryTypes","cli","event","getFeature","wasHit","getEventContractBuilder","assertCoreEventContractsSavedToDisk","assertCorePayloadSchemasAreCreated","isFalse","doesFileExist","oldGetter","bind","isTrue","assertValidSyncSchemasResults","match","testUtil","assertFileByNameInGeneratedFiles","files","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","EventStore","clearCache","results2","isTruthy","errors","doesThrow","isFalsy","Service","build","checkHealth","isRunningLocally","health","skill","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","todaysVersion","constValue","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","permissions","listenPermissionContract","dirValue","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","getSignatureByName","payload","options","schema","orgFixture","org","skill3","installSkillAtOrganization","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","builder","resolvePath","uninstall","assertEventsHavePayloads","assertCombinedContractContents","coreContractContents","search","doesNotInclude","signature","registerEventAndSync","filename","stamp","Date","getTime","importCombinedContractsFile","imported","isArray","localContract","sigs","getNamedEventSignatures","fullyQualifiedEventName","eventContractsFile","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tcoreEventContracts,\n\tEventContract,\n\tEventSignature,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { validateSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport EventStore from '../../../features/event/stores/EventStore'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst coreContract = eventContractUtil.unifyContracts(\n\tcoreEventContracts as any\n) as SpruceSchemas.Mercury.v2020_12_25.EventContract\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tprivate static get eventContractPath() {\n\t\treturn this.resolveHashSprucePath('events', 'events.contract.ts')\n\t}\n\n\t@test()\n\tprotected static async hasSyncEventsAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('event', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsWithoutSavingCoreEventsByDefault() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst results = await this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({})\n\t\t)\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\t}\n\n\t@test()\n\tprotected static async mergesGlobalEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skills = this.getSkillFixture()\n\t\tawait skills.registerCurrentSkill({\n\t\t\tname: 'events in sync skill',\n\t\t})\n\n\t\tconst skill2 = await skills.seedDemoSkill({ name: 'a temp skill' })\n\n\t\tawait skills.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t'test-sync::v2021_01_01': {\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-sync',\n\t\t\tversion: 'v2021_01_01',\n\t\t\teventNamespace: skill2.slug,\n\t\t})\n\t\tawait this.assertGlobalEventsAreTyped(fqen)\n\t}\n\n\t@test()\n\tprotected static async canSetSkillEventContractTypesFile() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tawait this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({\n\t\t\t\tskillEventContractTypesFile: 'testy test',\n\t\t\t})\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\t\tassert.doesInclude(contents, `declare module 'testy test'`)\n\t}\n\n\t@test()\n\tprotected static async canSyncOnlyCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst promise = this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tawait this.skipInstallSkillPrompts()\n\n\t\tconst results = await promise\n\n\t\tawait this.assertValidSyncEventsResults(results, true)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsHaveNeverBeenSynced() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tthis.assertCoreEventContractsSavedToDisk(false)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, false)\n\n\t\tassert.isFalse(wasHit)\n\t\tassert.isFalse(diskUtil.doesFileExist(this.eventContractPath))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemaAfterSyncEventsSyncsSchemasAndDoesNotWriteCoreEvents() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\tconst oldGetter = event.getEventContractBuilder.bind(event)\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t\treturn oldGetter()\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTrue(wasHit)\n\n\t\tawait this.assertValidSyncSchemasResults(results, false)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasAfterSyncingCoreEventsSavesCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\t\tawait this.assertValidSyncSchemasResults(results, true)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasWithBrokenConnectionStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\t\tawait client.disconnect()\n\n\t\tEventStore.clearCache()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ isRunningLocally: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-utils',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async assertValidSyncEventsResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents = false\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.assertValidSyncSchemasResults(results, shouldSyncOnlyCoreEvents)\n\t}\n\n\tprivate static async assertGlobalEventsAreTyped(eventName: string) {\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\n\t\tassert.doesInclude(contents, `'${eventName}':`)\n\t}\n\n\tprivate static async assertValidSyncSchemasResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertCoreEventContractsSavedToDisk(shouldSyncOnlyCoreEvents)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, shouldSyncOnlyCoreEvents)\n\n\t\tawait this.assertEventsHavePayloads(results)\n\t\tawait this.assertCombinedContractContents()\n\n\t\tconst coreContractContents = diskUtil.readFile(this.eventContractPath)\n\t\tconst search = `did-message::v2020_12_25': MercuryDidMessageEventContract_v2020_12_25['eventSignatures']['did-message::v2020_12_25']`\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tassert.doesInclude(coreContractContents, search)\n\t\t} else {\n\t\t\tassert.doesNotInclude(coreContractContents, search)\n\t\t}\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\t\treturn { results, filename }\n\t}\n\n\tprivate static async assertCombinedContractContents() {\n\t\tconst imported = await this.importCombinedContractsFile()\n\n\t\tassert.isTruthy(imported)\n\t\tassert.isArray(imported)\n\n\t\tconst localContract = eventContractUtil.unifyContracts(imported)\n\t\tassert.isTruthy(localContract)\n\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\teventContractUtil.getSignatureByName(\n\t\t\t\tlocalContract,\n\t\t\t\tsig.fullyQualifiedEventName\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate static async importCombinedContractsFile(): Promise<EventContract[]> {\n\t\tconst eventContractsFile = this.eventContractPath\n\n\t\t// hack import to bring types in when importing contract file\n\t\tif (\n\t\t\tdiskUtil.doesDirExist(\n\t\t\t\tthis.resolvePath('node_modules/@sprucelabs/mercury-types')\n\t\t\t)\n\t\t) {\n\t\t\tconst contents = diskUtil.readFile(eventContractsFile)\n\t\t\tdiskUtil.writeFile(\n\t\t\t\teventContractsFile,\n\t\t\t\t`import '@sprucelabs/mercury-types'\\n${contents}`\n\t\t\t)\n\t\t}\n\n\t\tconst imported: EventContract[] = await this.Service(\n\t\t\t'import'\n\t\t).importDefault(eventContractsFile)\n\n\t\treturn imported\n\t}\n\n\tprivate static async assertEventsHavePayloads(\n\t\tresults: FeatureActionResponse,\n\t\teventName = 'authenticate'\n\t) {\n\t\tconst imported = await this.importCombinedContractsFile()\n\t\tconst contract = eventContractUtil.unifyContracts(imported)\n\n\t\tassert.isTruthy(contract)\n\n\t\tvalidateEventContract(contract)\n\n\t\tconst signature = eventContractUtil.getSignatureByName(contract, eventName)\n\n\t\tassert.isTruthy(signature.emitPayloadSchema)\n\t\tvalidateSchema(signature.emitPayloadSchema)\n\n\t\tassert.isTruthy(signature.responsePayloadSchema)\n\t\tvalidateSchema(signature.responsePayloadSchema)\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static assertCoreEventContractsSavedToDisk(shouldHaveWritten = true) {\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t`events/mercury/${namesUtil.toCamel(\n\t\t\t\t\tsig.eventName\n\t\t\t\t)}.v2020_12_25.contract.ts`\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to write a file ${expected}.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(\n\t\t\t\t\tdoesExist,\n\t\t\t\t\t`Generated contract for ${sig.fullyQualifiedEventName} and it should not have because it's a core contract.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync.test.ts"],"names":["coreContract","eventContractUtil","unifyContracts","coreEventContracts","EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","versionUtil","generateVersion","resolveHashSprucePath","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","skipInstallSkillPrompts","results","assertValidSyncEventsResults","skills","getSkillFixture","registerCurrentSkill","name","seedDemoSkill","skill2","registerEventContract","eventSignatures","isGlobal","fqen","eventNameUtil","join","eventName","version","eventNamespace","slug","assertGlobalEventsAreTyped","skillEventContractTypesFile","contents","diskUtil","readFile","eventContractPath","doesInclude","promise","syncCoreEventsPretendingToBeMercuryTypes","cli","event","getFeature","wasHit","getEventContractBuilder","assertCoreEventContractsSavedToDisk","assertCorePayloadSchemasAreCreated","isFalse","doesFileExist","oldGetter","bind","isTrue","assertValidSyncSchemasResults","match","testUtil","assertFileByNameInGeneratedFiles","files","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","EventStore","clearCache","results2","isTruthy","errors","doesThrow","isFalsy","Service","build","checkHealth","isRunningLocally","health","skill","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","todaysVersion","constValue","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","permissions","listenPermissionContract","dirValue","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","getSignatureByName","payload","options","schema","orgFixture","org","skill3","installSkillAtOrganization","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","builder","resolvePath","uninstall","assertEventsHavePayloads","assertCombinedContractContents","coreContractContents","search","doesNotInclude","signature","registerEventAndSync","filename","stamp","Date","getTime","importCombinedContractsFile","imported","isArray","localContract","sigs","getNamedEventSignatures","fullyQualifiedEventName","eventContractsFile","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { validateSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport EventStore from '../../../features/event/stores/EventStore'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst coreContract = eventContractUtil.unifyContracts(\n\tcoreEventContracts as any\n) as SpruceSchemas.Mercury.v2020_12_25.EventContract\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tprivate static get eventContractPath() {\n\t\treturn this.resolveHashSprucePath('events', 'events.contract.ts')\n\t}\n\n\t@test()\n\tprotected static async hasSyncEventsAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('event', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsWithoutSavingCoreEventsByDefault() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst results = await this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({})\n\t\t)\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\t}\n\n\t@test()\n\tprotected static async mergesGlobalEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skills = this.getSkillFixture()\n\t\tawait skills.registerCurrentSkill({\n\t\t\tname: 'events in sync skill',\n\t\t})\n\n\t\tconst skill2 = await skills.seedDemoSkill({ name: 'a temp skill' })\n\n\t\tawait skills.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t'test-sync::v2021_01_01': {\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-sync',\n\t\t\tversion: 'v2021_01_01',\n\t\t\teventNamespace: skill2.slug,\n\t\t})\n\t\tawait this.assertGlobalEventsAreTyped(fqen)\n\t}\n\n\t@test()\n\tprotected static async canSetSkillEventContractTypesFile() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tawait this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({\n\t\t\t\tskillEventContractTypesFile: 'testy test',\n\t\t\t})\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\t\tassert.doesInclude(contents, `declare module 'testy test'`)\n\t}\n\n\t@test()\n\tprotected static async canSyncOnlyCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst promise = this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tawait this.skipInstallSkillPrompts()\n\n\t\tconst results = await promise\n\n\t\tawait this.assertValidSyncEventsResults(results, true)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsHaveNeverBeenSynced() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tthis.assertCoreEventContractsSavedToDisk(false)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, false)\n\n\t\tassert.isFalse(wasHit)\n\t\tassert.isFalse(diskUtil.doesFileExist(this.eventContractPath))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemaAfterSyncEventsSyncsSchemasAndDoesNotWriteCoreEvents() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\tconst oldGetter = event.getEventContractBuilder.bind(event)\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t\treturn oldGetter()\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTrue(wasHit)\n\n\t\tawait this.assertValidSyncSchemasResults(results, false)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasAfterSyncingCoreEventsSavesCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\t\tawait this.assertValidSyncSchemasResults(results, true)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasWithBrokenConnectionStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\t\tawait client.disconnect()\n\n\t\tEventStore.clearCache()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ isRunningLocally: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async assertValidSyncEventsResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents = false\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.assertValidSyncSchemasResults(results, shouldSyncOnlyCoreEvents)\n\t}\n\n\tprivate static async assertGlobalEventsAreTyped(eventName: string) {\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\n\t\tassert.doesInclude(contents, `'${eventName}':`)\n\t}\n\n\tprivate static async assertValidSyncSchemasResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertCoreEventContractsSavedToDisk(shouldSyncOnlyCoreEvents)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, shouldSyncOnlyCoreEvents)\n\n\t\tawait this.assertEventsHavePayloads(results)\n\t\tawait this.assertCombinedContractContents()\n\n\t\tconst coreContractContents = diskUtil.readFile(this.eventContractPath)\n\t\tconst search = `did-message::v2020_12_25': MercuryDidMessageEventContract_v2020_12_25['eventSignatures']['did-message::v2020_12_25']`\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tassert.doesInclude(coreContractContents, search)\n\t\t} else {\n\t\t\tassert.doesNotInclude(coreContractContents, search)\n\t\t}\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\t\treturn { results, filename }\n\t}\n\n\tprivate static async assertCombinedContractContents() {\n\t\tconst imported = await this.importCombinedContractsFile()\n\n\t\tassert.isTruthy(imported)\n\t\tassert.isArray(imported)\n\n\t\tconst localContract = eventContractUtil.unifyContracts(imported)\n\t\tassert.isTruthy(localContract)\n\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\teventContractUtil.getSignatureByName(\n\t\t\t\tlocalContract,\n\t\t\t\tsig.fullyQualifiedEventName\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate static async importCombinedContractsFile(): Promise<EventContract[]> {\n\t\tconst eventContractsFile = this.eventContractPath\n\n\t\t// hack import to bring types in when importing contract file\n\t\tif (\n\t\t\tdiskUtil.doesDirExist(\n\t\t\t\tthis.resolvePath('node_modules/@sprucelabs/mercury-types')\n\t\t\t)\n\t\t) {\n\t\t\tconst contents = diskUtil.readFile(eventContractsFile)\n\t\t\tdiskUtil.writeFile(\n\t\t\t\teventContractsFile,\n\t\t\t\t`import '@sprucelabs/mercury-types'\\n${contents}`\n\t\t\t)\n\t\t}\n\n\t\tconst imported: EventContract[] = await this.Service(\n\t\t\t'import'\n\t\t).importDefault(eventContractsFile)\n\n\t\treturn imported\n\t}\n\n\tprivate static async assertEventsHavePayloads(\n\t\tresults: FeatureActionResponse,\n\t\teventName = 'authenticate'\n\t) {\n\t\tconst imported = await this.importCombinedContractsFile()\n\t\tconst contract = eventContractUtil.unifyContracts(imported)\n\n\t\tassert.isTruthy(contract)\n\n\t\tvalidateEventContract(contract)\n\n\t\tconst signature = eventContractUtil.getSignatureByName(contract, eventName)\n\n\t\tassert.isTruthy(signature.emitPayloadSchema)\n\t\tvalidateSchema(signature.emitPayloadSchema)\n\n\t\tassert.isTruthy(signature.responsePayloadSchema)\n\t\tvalidateSchema(signature.responsePayloadSchema)\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static assertCoreEventContractsSavedToDisk(shouldHaveWritten = true) {\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t`events/mercury/${namesUtil.toCamel(\n\t\t\t\t\tsig.eventName\n\t\t\t\t)}.v2020_12_25.contract.ts`\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to write a file ${expected}.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(\n\t\t\t\t\tdoesExist,\n\t\t\t\t\t`Generated contract for ${sig.fullyQualifiedEventName} and it should not have because it's a core contract.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync.test.js"}
@@ -0,0 +1,6 @@
1
+ import AbstractCliTest from '../../../tests/AbstractCliTest';
2
+ export default class CreatingANodeModuleTest extends AbstractCliTest {
3
+ protected static hasCreateAction(): Promise<void>;
4
+ protected static canCreateAtDestination(): Promise<void>;
5
+ protected static canBuildNodeModule(): Promise<void>;
6
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
+
26
+ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
27
+
28
+ var _test = require("@sprucelabs/test");
29
+
30
+ var _CommandService = _interopRequireDefault(require("../../../services/CommandService"));
31
+
32
+ var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
33
+
34
+ var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
35
+
36
+ var _dec, _dec2, _dec3, _class;
37
+
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
39
+
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
42
+ var CreatingANodeModuleTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
43
+ (0, _inherits2["default"])(CreatingANodeModuleTest, _AbstractCliTest);
44
+
45
+ var _super = _createSuper(CreatingANodeModuleTest);
46
+
47
+ function CreatingANodeModuleTest() {
48
+ (0, _classCallCheck2["default"])(this, CreatingANodeModuleTest);
49
+ return _super.apply(this, arguments);
50
+ }
51
+
52
+ (0, _createClass2["default"])(CreatingANodeModuleTest, null, [{
53
+ key: "hasCreateAction",
54
+ value: function () {
55
+ var _hasCreateAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
56
+ return _regenerator["default"].wrap(function _callee$(_context) {
57
+ while (1) {
58
+ switch (_context.prev = _context.next) {
59
+ case 0:
60
+ _test.assert.isFunction(this.Action('node', 'create').execute);
61
+
62
+ case 1:
63
+ case "end":
64
+ return _context.stop();
65
+ }
66
+ }
67
+ }, _callee, this);
68
+ }));
69
+
70
+ function hasCreateAction() {
71
+ return _hasCreateAction.apply(this, arguments);
72
+ }
73
+
74
+ return hasCreateAction;
75
+ }()
76
+ }, {
77
+ key: "canCreateAtDestination",
78
+ value: function () {
79
+ var _canCreateAtDestination = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
80
+ var promise, results;
81
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
82
+ while (1) {
83
+ switch (_context2.prev = _context2.next) {
84
+ case 0:
85
+ _CommandService["default"].setMockResponse(new RegExp(/yarn add/gi), {
86
+ code: 0
87
+ });
88
+
89
+ promise = this.Action('node', 'create', {
90
+ shouldAutoHandleDependencies: true
91
+ }).execute({
92
+ destination: 'new-module'
93
+ });
94
+ _context2.next = 4;
95
+ return this.waitForInput();
96
+
97
+ case 4:
98
+ _context2.next = 6;
99
+ return this.ui.sendInput('new module');
100
+
101
+ case 6:
102
+ _context2.next = 8;
103
+ return this.ui.sendInput('such a good description!');
104
+
105
+ case 8:
106
+ _context2.next = 10;
107
+ return promise;
108
+
109
+ case 10:
110
+ results = _context2.sent;
111
+
112
+ _test2["default"].assertFileByPathInGeneratedFiles(/new\x2Dmodule\/package\.json/gi, results.files);
113
+
114
+ _test.assert.isFalse(_spruceSkillUtils.diskUtil.doesFileExist(this.resolvePath('package.json')));
115
+
116
+ case 13:
117
+ case "end":
118
+ return _context2.stop();
119
+ }
120
+ }
121
+ }, _callee2, this);
122
+ }));
123
+
124
+ function canCreateAtDestination() {
125
+ return _canCreateAtDestination.apply(this, arguments);
126
+ }
127
+
128
+ return canCreateAtDestination;
129
+ }()
130
+ }, {
131
+ key: "canBuildNodeModule",
132
+ value: function () {
133
+ var _canBuildNodeModule = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
134
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
135
+ while (1) {
136
+ switch (_context3.prev = _context3.next) {
137
+ case 0:
138
+ _context3.next = 2;
139
+ return this.Action('node', 'create', {
140
+ shouldAutoHandleDependencies: true
141
+ }).execute({
142
+ name: 'build test',
143
+ description: 'yes!'
144
+ });
145
+
146
+ case 2:
147
+ _context3.next = 4;
148
+ return this.Service('build').build();
149
+
150
+ case 4:
151
+ case "end":
152
+ return _context3.stop();
153
+ }
154
+ }
155
+ }, _callee3, this);
156
+ }));
157
+
158
+ function canBuildNodeModule() {
159
+ return _canBuildNodeModule.apply(this, arguments);
160
+ }
161
+
162
+ return canBuildNodeModule;
163
+ }()
164
+ }]);
165
+ return CreatingANodeModuleTest;
166
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasCreateAction", [_dec], Object.getOwnPropertyDescriptor(_class, "hasCreateAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canCreateAtDestination", [_dec2], Object.getOwnPropertyDescriptor(_class, "canCreateAtDestination"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canBuildNodeModule", [_dec3], Object.getOwnPropertyDescriptor(_class, "canBuildNodeModule"), _class)), _class));
167
+ exports["default"] = CreatingANodeModuleTest;
168
+ //# sourceMappingURL=CreatingANodeModule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/node/CreatingANodeModule.test.ts"],"names":["CreatingANodeModuleTest","assert","isFunction","Action","execute","CommandService","setMockResponse","RegExp","code","promise","shouldAutoHandleDependencies","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","isFalse","diskUtil","doesFileExist","resolvePath","name","description","Service","build","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,uB,WACnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;2GA5BD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,YAAX,CAA/B,EAA0D;AACzDC,kBAAAA,IAAI,EAAE;AADmD,iBAA1D;;AAGMC,gBAAAA,OALP,GAKiB,KAAKN,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;AAC7CO,kBAAAA,4BAA4B,EAAE;AADe,iBAA9B,EAEbN,OAFa,CAEL;AAAEO,kBAAAA,WAAW,EAAE;AAAf,iBAFK,CALjB;AAAA;AAAA,uBASO,KAAKC,YAAL,EATP;;AAAA;AAAA;AAAA,uBAUO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAVP;;AAAA;AAAA;AAAA,uBAWO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,0BAAlB,CAXP;;AAAA;AAAA;AAAA,uBAauBL,OAbvB;;AAAA;AAaOM,gBAAAA,OAbP;;AAeCC,kCAASC,gCAAT,CACC,gCADD,EAECF,OAAO,CAACG,KAFT;;AAKAjB,6BAAOkB,OAAP,CAAeC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiB,cAAjB,CAAvB,CAAf;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKnB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;AACnCO,kBAAAA,4BAA4B,EAAE;AADK,iBAA9B,EAEHN,OAFG,CAEK;AACVmB,kBAAAA,IAAI,EAAE,YADI;AAEVC,kBAAAA,WAAW,EAAE;AAFH,iBAFL,CAFP;;AAAA;AAAA;AAAA,uBASO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA7BoDC,4B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('node', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async canCreateAtDestination() {\n\t\tCommandService.setMockResponse(new RegExp(/yarn add/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t\tconst promise = this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'new-module' })\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('new module')\n\t\tawait this.ui.sendInput('such a good description!')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/new-module\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t}\n\n\t@test()\n\tprotected static async canBuildNodeModule() {\n\t\tawait this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({\n\t\t\tname: 'build test',\n\t\t\tdescription: 'yes!',\n\t\t})\n\n\t\tawait this.Service('build').build()\n\t}\n}\n"],"file":"CreatingANodeModule.test.js"}
@@ -1,4 +1,4 @@
1
- import AbstractCliTest from '../../tests/AbstractCliTest';
1
+ import AbstractCliTest from '../../../tests/AbstractCliTest';
2
2
  export default class CreatingASkillTest extends AbstractCliTest {
3
3
  protected static beforeEach(): Promise<void>;
4
4
  protected static creatingAtADestinationAsksForSkillDetailsOnce(): Promise<void>;
@@ -27,11 +27,11 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
27
27
 
28
28
  var _test = require("@sprucelabs/test");
29
29
 
30
- var _CommandService = _interopRequireDefault(require("../../services/CommandService"));
30
+ var _CommandService = _interopRequireDefault(require("../../../services/CommandService"));
31
31
 
32
- var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
32
+ var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
33
33
 
34
- var _test2 = _interopRequireDefault(require("../../tests/utilities/test.utility"));
34
+ var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
35
35
 
36
36
  var _dec, _class;
37
37
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/CreatingASkill.test.ts"],"names":["CreatingASkillTest","CommandService","setMockResponse","RegExp","code","promise","Action","shouldAutoHandleDependencies","execute","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","hints","assert","doesInclude","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAQnB,iB;;;;;;;;;;;;;sGAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,+BAAX,CAA/B,EAAmE;AAClEC,kBAAAA,IAAI,EAAE;AAD4D,iBAAnE;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yIAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,OAFP,GAEiB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+B;AAC9CC,kBAAAA,4BAA4B,EAAE;AADgB,iBAA/B,EAEbC,OAFa,CAEL;AAAEC,kBAAAA,WAAW,EAAE;AAAf,iBAFK,CAFjB;AAAA;AAAA,uBAMO,KAAKC,YAAL,EANP;;AAAA;AAAA;AAAA,uBAQO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,WAAlB,CARP;;AAAA;AAAA;AAAA,uBASO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,aAAlB,CATP;;AAAA;AAAA;AAAA,uBAWuBP,OAXvB;;AAAA;AAWOQ,gBAAAA,OAXP;;AAaCC,kCAASC,gCAAT,CACC,uBADD,EAECF,OAAO,CAACG,KAFT;;AAKQC,gBAAAA,KAlBT,GAkBmBJ,OAlBnB,CAkBSI,KAlBT;;AAoBCC,6BAAOC,WAAP,CAAmBF,KAAnB,EAA0B,SAA1B;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAR+CG,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tCommandService.setMockResponse(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingAtADestinationAsksForSkillDetailsOnce() {\n\t\tconst promise = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'taco' })\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('adventure')\n\t\tawait this.ui.sendInput('i would not')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/taco\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst { hints } = results\n\n\t\tassert.doesInclude(hints, 'cd taco')\n\t}\n}\n"],"file":"CreatingASkill.test.js"}
@@ -9,6 +9,11 @@ export default class UpgradingASkill2Test extends AbstractCliTest {
9
9
  protected static callsCleanAndBuildDev(): Promise<void>;
10
10
  protected static writesViewPlugin(): Promise<void>;
11
11
  protected static upgradeSyncsErrors(isInstalled?: boolean): Promise<void>;
12
+ protected static resetsErrorPluginInSkill(): Promise<void>;
13
+ protected static resetsErrorPluginWhenErrorInstalled(): Promise<void>;
14
+ private static destroyErrorPlugin;
12
15
  private static getViewsPluginPath;
13
16
  protected static assertViewPluginNotWritten(): void;
17
+ private static disableCleanBuildAndYarnAdd;
18
+ private static disableCleanAndBuild;
14
19
  }