@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
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var universalDevDependencies = [{
8
+ name: '@sprucelabs/resolve-path-aliases',
9
+ isDev: true
10
+ }, {
11
+ name: '@types/node',
12
+ isDev: true
13
+ }, {
14
+ name: 'typescript',
15
+ isDev: true
16
+ }, {
17
+ name: 'eslint',
18
+ isDev: true
19
+ }, {
20
+ name: 'eslint-config-spruce',
21
+ isDev: true
22
+ }, {
23
+ name: 'prettier',
24
+ isDev: true
25
+ }, {
26
+ name: 'chokidar-cli',
27
+ isDev: true
28
+ }, {
29
+ name: 'concurrently',
30
+ isDev: true
31
+ }, {
32
+ name: 'tsc-watch',
33
+ isDev: true
34
+ }, {
35
+ name: 'ts-node',
36
+ isDev: true
37
+ }];
38
+ var _default = universalDevDependencies;
39
+ exports["default"] = _default;
40
+ //# sourceMappingURL=universalDevDependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/universalDevDependencies.ts"],"names":["universalDevDependencies","name","isDev"],"mappings":";;;;;;AAAA,IAAMA,wBAAwB,GAAG,CAChC;AAAEC,EAAAA,IAAI,EAAE,kCAAR;AAA4CC,EAAAA,KAAK,EAAE;AAAnD,CADgC,EAEhC;AAAED,EAAAA,IAAI,EAAE,aAAR;AAAuBC,EAAAA,KAAK,EAAE;AAA9B,CAFgC,EAGhC;AAAED,EAAAA,IAAI,EAAE,YAAR;AAAsBC,EAAAA,KAAK,EAAE;AAA7B,CAHgC,EAIhC;AAAED,EAAAA,IAAI,EAAE,QAAR;AAAkBC,EAAAA,KAAK,EAAE;AAAzB,CAJgC,EAKhC;AAAED,EAAAA,IAAI,EAAE,sBAAR;AAAgCC,EAAAA,KAAK,EAAE;AAAvC,CALgC,EAMhC;AAAED,EAAAA,IAAI,EAAE,UAAR;AAAoBC,EAAAA,KAAK,EAAE;AAA3B,CANgC,EAOhC;AAAED,EAAAA,IAAI,EAAE,cAAR;AAAwBC,EAAAA,KAAK,EAAE;AAA/B,CAPgC,EAQhC;AAAED,EAAAA,IAAI,EAAE,cAAR;AAAwBC,EAAAA,KAAK,EAAE;AAA/B,CARgC,EAShC;AAAED,EAAAA,IAAI,EAAE,WAAR;AAAqBC,EAAAA,KAAK,EAAE;AAA5B,CATgC,EAUhC;AAAED,EAAAA,IAAI,EAAE,SAAR;AAAmBC,EAAAA,KAAK,EAAE;AAA1B,CAVgC,CAAjC;eAaeF,wB","sourcesContent":["const universalDevDependencies = [\n\t{ name: '@sprucelabs/resolve-path-aliases', isDev: true },\n\t{ name: '@types/node', isDev: true },\n\t{ name: 'typescript', isDev: true },\n\t{ name: 'eslint', isDev: true },\n\t{ name: 'eslint-config-spruce', isDev: true },\n\t{ name: 'prettier', isDev: true },\n\t{ name: 'chokidar-cli', isDev: true },\n\t{ name: 'concurrently', isDev: true },\n\t{ name: 'tsc-watch', isDev: true },\n\t{ name: 'ts-node', isDev: true },\n]\n\nexport default universalDevDependencies\n"],"file":"universalDevDependencies.js"}
@@ -16,9 +16,6 @@ declare const universalScripts: {
16
16
  'update.dependencies': string;
17
17
  'resolve-paths.lint': string;
18
18
  test: string;
19
- 'upgrade.packages': string;
20
- 'upgrade.packages.all': string;
21
- 'upgrade.packages.test': string;
22
19
  'watch.build.dev': string;
23
20
  'watch.lint': string;
24
21
  'watch.rebuild': string;
@@ -22,9 +22,6 @@ var universalScripts = {
22
22
  'update.dependencies': 'yarn clean.dependencies && yarn',
23
23
  'resolve-paths.lint': 'yarn build.resolve-paths ; yarn lint',
24
24
  test: 'jest',
25
- 'upgrade.packages': 'yarn-upgrade-all && rm -f yarn.lock ; yarn ; yarn fix.lint ; true',
26
- 'upgrade.packages.all': 'yarn install && yarn upgrade.packages',
27
- 'upgrade.packages.test': 'yarn upgrade.packages.all && yarn lint && yarn build.dev && yarn test',
28
25
  'watch.build.dev': "tsc-watch --sourceMap --onCompilationComplete 'yarn post.watch.build'",
29
26
  'watch.lint': "concurrently 'yarn lint' \"chokidar 'src/**/*' -c 'yarn lint.tsc'\"",
30
27
  'watch.rebuild': 'yarn clean.all && yarn && yarn watch.build.dev',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/features/universalScripts.ts"],"names":["universalScripts","clean","lint","rebuild","test"],"mappings":";;;;;;AAAA,IAAMA,gBAAgB,GAAG;AACxB,cAAY,yDADY;AAExB,eAAa,sDAFW;AAGxB,sBACC,gEAJuB;AAKxB,yBACC,oEANuB;AAOxB,eAAa,8BAPW;AAQxBC,EAAAA,KAAK,EAAE,kBARiB;AASxB,eAAa,6CATW;AAUxB,iBAAe,eAVS;AAWxB,wBAAsB,kDAXE;AAYxB,cAAY,gCAZY;AAaxBC,EAAAA,IAAI,EAAE,0BAbkB;AAcxB,cAAY,mBAdY;AAexB,sBAAoB,mDAfI;AAgBxBC,EAAAA,OAAO,EAAE,0CAhBe;AAiBxB,yBAAuB,iCAjBC;AAkBxB,wBAAsB,sCAlBE;AAmBxBC,EAAAA,IAAI,EAAE,MAnBkB;AAoBxB,sBACC,mEArBuB;AAsBxB,0BAAwB,uCAtBA;AAuBxB,2BACC,uEAxBuB;AAyBxB,qBACC,uEA1BuB;AA2BxB,gBACC,qEA5BuB;AA6BxB,mBAAiB,gDA7BO;AA8BxB,eAAa;AA9BW,CAAzB;eAiCeJ,gB","sourcesContent":["const universalScripts = {\n\t'build.ci': 'yarn build.tsc && yarn build.resolve-paths && yarn lint',\n\t'build.dev': 'yarn build.tsc --sourceMap ; yarn resolve-paths.lint',\n\t'build.copy-files':\n\t\t\"mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/\",\n\t'build.resolve-paths':\n\t\t\"resolve-path-aliases --target build --patterns '**/*.js,**/*.d.ts'\",\n\t'build.tsc': 'yarn build.copy-files && tsc',\n\tclean: 'yarn clean.build',\n\t'clean.all': 'yarn clean.dependencies && yarn clean.build',\n\t'clean.build': 'rm -rf build/',\n\t'clean.dependencies': 'rm -rf node_modules/ package-lock.json yarn.lock',\n\t'fix.lint': \"eslint --fix --cache '**/*.ts'\",\n\tlint: \"eslint --cache '**/*.ts'\",\n\t'lint.tsc': 'tsc -p . --noEmit',\n\t'post.watch.build': 'yarn build.copy-files && yarn build.resolve-paths',\n\trebuild: 'yarn clean.all && yarn && yarn build.dev',\n\t'update.dependencies': 'yarn clean.dependencies && yarn',\n\t'resolve-paths.lint': 'yarn build.resolve-paths ; yarn lint',\n\ttest: 'jest',\n\t'upgrade.packages':\n\t\t'yarn-upgrade-all && rm -f yarn.lock ; yarn ; yarn fix.lint ; true',\n\t'upgrade.packages.all': 'yarn install && yarn upgrade.packages',\n\t'upgrade.packages.test':\n\t\t'yarn upgrade.packages.all && yarn lint && yarn build.dev && yarn test',\n\t'watch.build.dev':\n\t\t\"tsc-watch --sourceMap --onCompilationComplete 'yarn post.watch.build'\",\n\t'watch.lint':\n\t\t\"concurrently 'yarn lint' \\\"chokidar 'src/**/*' -c 'yarn lint.tsc'\\\"\",\n\t'watch.rebuild': 'yarn clean.all && yarn && yarn watch.build.dev',\n\t'watch.tsc': 'tsc -w',\n}\n\nexport default universalScripts\n"],"file":"universalScripts.js"}
1
+ {"version":3,"sources":["../../src/features/universalScripts.ts"],"names":["universalScripts","clean","lint","rebuild","test"],"mappings":";;;;;;AAAA,IAAMA,gBAAgB,GAAG;AACxB,cAAY,yDADY;AAExB,eAAa,sDAFW;AAGxB,sBACC,gEAJuB;AAKxB,yBACC,oEANuB;AAOxB,eAAa,8BAPW;AAQxBC,EAAAA,KAAK,EAAE,kBARiB;AASxB,eAAa,6CATW;AAUxB,iBAAe,eAVS;AAWxB,wBAAsB,kDAXE;AAYxB,cAAY,gCAZY;AAaxBC,EAAAA,IAAI,EAAE,0BAbkB;AAcxB,cAAY,mBAdY;AAexB,sBAAoB,mDAfI;AAgBxBC,EAAAA,OAAO,EAAE,0CAhBe;AAiBxB,yBAAuB,iCAjBC;AAkBxB,wBAAsB,sCAlBE;AAmBxBC,EAAAA,IAAI,EAAE,MAnBkB;AAoBxB,qBACC,uEArBuB;AAsBxB,gBACC,qEAvBuB;AAwBxB,mBAAiB,gDAxBO;AAyBxB,eAAa;AAzBW,CAAzB;eA4BeJ,gB","sourcesContent":["const universalScripts = {\n\t'build.ci': 'yarn build.tsc && yarn build.resolve-paths && yarn lint',\n\t'build.dev': 'yarn build.tsc --sourceMap ; yarn resolve-paths.lint',\n\t'build.copy-files':\n\t\t\"mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/\",\n\t'build.resolve-paths':\n\t\t\"resolve-path-aliases --target build --patterns '**/*.js,**/*.d.ts'\",\n\t'build.tsc': 'yarn build.copy-files && tsc',\n\tclean: 'yarn clean.build',\n\t'clean.all': 'yarn clean.dependencies && yarn clean.build',\n\t'clean.build': 'rm -rf build/',\n\t'clean.dependencies': 'rm -rf node_modules/ package-lock.json yarn.lock',\n\t'fix.lint': \"eslint --fix --cache '**/*.ts'\",\n\tlint: \"eslint --cache '**/*.ts'\",\n\t'lint.tsc': 'tsc -p . --noEmit',\n\t'post.watch.build': 'yarn build.copy-files && yarn build.resolve-paths',\n\trebuild: 'yarn clean.all && yarn && yarn build.dev',\n\t'update.dependencies': 'yarn clean.dependencies && yarn',\n\t'resolve-paths.lint': 'yarn build.resolve-paths ; yarn lint',\n\ttest: 'jest',\n\t'watch.build.dev':\n\t\t\"tsc-watch --sourceMap --onCompilationComplete 'yarn post.watch.build'\",\n\t'watch.lint':\n\t\t\"concurrently 'yarn lint' \\\"chokidar 'src/**/*' -c 'yarn lint.tsc'\\\"\",\n\t'watch.rebuild': 'yarn clean.all && yarn && yarn watch.build.dev',\n\t'watch.tsc': 'tsc -w',\n}\n\nexport default universalScripts\n"],"file":"universalScripts.js"}
@@ -1,5 +1,5 @@
1
1
  import AbstractStore from '../../../stores/AbstractStore';
2
2
  export default class ViewStore extends AbstractStore {
3
3
  name: string;
4
- fetchSkillViews(): Promise<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/spruce-core-schemas").SpruceSchemas.Heartwood.v2021_02_11.GetSkillViewsResponsePayloadSchema, false, "theme", import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/spruce-core-schemas").SpruceSchemas.Heartwood.v2021_02_11.GetSkillViewsResponsePayloadSchema, false>> | null>;
4
+ fetchSkillViews(): Promise<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Heartwood.v2021_02_11.GetSkillViewsResponsePayloadSchema, false, "theme", import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Heartwood.v2021_02_11.GetSkillViewsResponsePayloadSchema, false>> | null>;
5
5
  }
@@ -19,6 +19,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
19
19
 
20
20
  var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
21
21
 
22
+ var _test = require("@sprucelabs/test");
23
+
22
24
  var _duration = _interopRequireDefault(require("../utilities/duration.utility"));
23
25
 
24
26
  var _TerminalInterface = _interopRequireDefault(require("./TerminalInterface"));
@@ -354,7 +356,11 @@ var SpyInterface = /*#__PURE__*/function () {
354
356
  _this2.promptTimeout = setTimeout(function () {
355
357
  _this2.reset();
356
358
 
357
- reject("Timed out waiting for input: ".concat(definition.label));
359
+ try {
360
+ _test.assert.fail("Timed out waiting for input: ".concat(definition.label));
361
+ } catch (err) {
362
+ reject(err);
363
+ }
358
364
  }, 10000);
359
365
  _this2.promptDefaultValue = definition.defaultValue;
360
366
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interfaces/SpyInterface.ts"],"names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","defaultValue","question","title","cursorPosition","pos"],"mappings":"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","sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic lastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' || input.length === 0 || input.toLowerCase() === 'y'\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\treject(`Timed out waiting for input: ${definition.label}`)\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"file":"SpyInterface.js"}
1
+ {"version":3,"sources":["../../src/interfaces/SpyInterface.ts"],"names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","question","title","cursorPosition","pos"],"mappings":"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","sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic lastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' || input.length === 0 || input.toLowerCase() === 'y'\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(`Timed out waiting for input: ${definition.label}`)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"file":"SpyInterface.js"}
@@ -0,0 +1,22 @@
1
+ declare const _default: {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ fields: {
6
+ destination: {
7
+ type: "text";
8
+ defaultValue: string;
9
+ };
10
+ name: {
11
+ type: "text";
12
+ isRequired: true;
13
+ label: string;
14
+ };
15
+ description: {
16
+ type: "text";
17
+ isRequired: true;
18
+ label: string;
19
+ };
20
+ };
21
+ };
22
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _schema = require("@sprucelabs/schema");
9
+
10
+ var _default = (0, _schema.buildSchema)({
11
+ id: 'nodeFeatureOptions',
12
+ name: 'Create node module',
13
+ description: 'Create a new node module, to be written in typescript, ready to rock!',
14
+ fields: {
15
+ destination: {
16
+ type: 'text',
17
+ defaultValue: '.'
18
+ },
19
+ name: {
20
+ type: 'text',
21
+ isRequired: true,
22
+ label: "What's the name of your module?"
23
+ },
24
+ description: {
25
+ type: 'text',
26
+ isRequired: true,
27
+ label: 'How would you describe your module?'
28
+ }
29
+ }
30
+ });
31
+
32
+ exports["default"] = _default;
33
+ //# sourceMappingURL=nodeFeatureOptions.builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/schemas/v2020_07_22/nodeFeatureOptions.builder.ts"],"names":["id","name","description","fields","destination","type","defaultValue","isRequired","label"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,oBADsB;AAE1BC,EAAAA,IAAI,EAAE,oBAFoB;AAG1BC,EAAAA,WAAW,EACV,uEAJyB;AAK1BC,EAAAA,MAAM,EAAE;AACPC,IAAAA,WAAW,EAAE;AACZC,MAAAA,IAAI,EAAE,MADM;AAEZC,MAAAA,YAAY,EAAE;AAFF,KADN;AAKPL,IAAAA,IAAI,EAAE;AACLI,MAAAA,IAAI,EAAE,MADD;AAELE,MAAAA,UAAU,EAAE,IAFP;AAGLC,MAAAA,KAAK,EAAE;AAHF,KALC;AAUPN,IAAAA,WAAW,EAAE;AACZG,MAAAA,IAAI,EAAE,MADM;AAEZE,MAAAA,UAAU,EAAE,IAFA;AAGZC,MAAAA,KAAK,EAAE;AAHK;AAVN;AALkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'nodeFeatureOptions',\n\tname: 'Create node module',\n\tdescription:\n\t\t'Create a new node module, to be written in typescript, ready to rock!',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tdefaultValue: '.',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: \"What's the name of your module?\",\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'How would you describe your module?',\n\t\t},\n\t},\n})\n"],"file":"nodeFeatureOptions.builder.js"}
@@ -14,6 +14,7 @@ export default class AuthService {
14
14
  setLoggedInPerson(person: PersonWithToken): void;
15
15
  logOutPerson(): void;
16
16
  getCurrentSkill(): SkillAuth | null;
17
+ logoutCurrentSkill(): void;
17
18
  updateCurrentSkill(skill: SkillAuth): void;
18
19
  }
19
20
  export {};
@@ -74,6 +74,14 @@ var AuthService = /*#__PURE__*/function () {
74
74
 
75
75
  return null;
76
76
  }
77
+ }, {
78
+ key: "logoutCurrentSkill",
79
+ value: function logoutCurrentSkill() {
80
+ this.env.unset('SKILL_ID');
81
+ this.env.unset('SKILL_API_KEY');
82
+ this.env.unset('SKILL_NAME');
83
+ this.env.unset('SKILL_SLUG');
84
+ }
77
85
  }, {
78
86
  key: "updateCurrentSkill",
79
87
  value: function updateCurrentSkill(skill) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/AuthService.ts"],"names":["LOGGED_IN_PERSON_KEY","AuthService","envService","env","p","get","JSON","parse","person","normalized","personWithTokenSchema","set","stringify","isLoggedIn","unset","id","apiKey","name","slug","skill"],"mappings":";;;;;;;;;;;;;;;AACA;;AAEA;;;;;;AAWA,IAAMA,oBAAoB,GAAG,kBAA7B;;IAEqBC,W;AAGpB,uBAAmBC,UAAnB,EAA2C;AAAA;AAAA;AAC1C,SAAKC,GAAL,GAAWD,UAAX;AACA;;;;WAED,6BAAmD;AAClD,UAAME,CAAC,GAAG,KAAKD,GAAL,CAASE,GAAT,CAAaL,oBAAb,CAAV;;AACA,UAAI,OAAOI,CAAP,KAAa,QAAjB,EAA2B;AAC1B,eAAOE,IAAI,CAACC,KAAL,CAAWH,CAAX,CAAP;AACA;;AAED,aAAO,IAAP;AACA;;;WAED,2BAAyBI,MAAzB,EAAkD;AACjD,UAAMC,UAAU,GAAG,mCAAsBC,2BAAtB,EAA6CF,MAA7C,CAAnB;AACA,wCAAqBE,2BAArB,EAA4CD,UAA5C;AAEA,WAAKN,GAAL,CAASQ,GAAT,CACCX,oBADD,EAECM,IAAI,CAACM,SAAL,iCACIH,UADJ;AAECI,QAAAA,UAAU,EAAE;AAFb,SAFD;AAOA;;;WAED,wBAAsB;AACrB,WAAKV,GAAL,CAASW,KAAT,CAAed,oBAAf;AACA;;;WAED,2BAA2C;AAC1C,UAAMe,EAAE,GAAG,KAAKZ,GAAL,CAASE,GAAT,CAAa,UAAb,CAAX;AACA,UAAMW,MAAM,GAAG,KAAKb,GAAL,CAASE,GAAT,CAAa,eAAb,CAAf;AACA,UAAMY,IAAI,GAAG,KAAKd,GAAL,CAASE,GAAT,CAAa,YAAb,CAAb;AACA,UAAMa,IAAI,GAAG,KAAKf,GAAL,CAASE,GAAT,CAAa,YAAb,CAAb;;AAEA,UAAIU,EAAE,IAAIC,MAAV,EAAkB;AACjB,eAAO;AACND,UAAAA,EAAE,EAAFA,EADM;AAENC,UAAAA,MAAM,EAANA,MAFM;AAGNC,UAAAA,IAAI,EAAJA,IAHM;AAINC,UAAAA,IAAI,EAAJA;AAJM,SAAP;AAMA;;AAED,aAAO,IAAP;AACA;;;WAED,4BAA0BC,KAA1B,EAA4C;AAC3C,WAAKhB,GAAL,CAASQ,GAAT,CAAa,UAAb,EAAyBQ,KAAK,CAACJ,EAA/B;AACA,WAAKZ,GAAL,CAASQ,GAAT,CAAa,eAAb,EAA8BQ,KAAK,CAACH,MAApC;AACA,WAAKb,GAAL,CAASQ,GAAT,CAAa,YAAb,EAA2BQ,KAAK,CAACF,IAAjC;AACA,WAAKd,GAAL,CAASQ,GAAT,CAAa,YAAb,EAA2BQ,KAAK,CAACD,IAAjC;AACA","sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { normalizeSchemaValues, validateSchemaValues } from '@sprucelabs/schema'\nimport { EnvService } from '@sprucelabs/spruce-skill-utils'\nimport personWithTokenSchema from '#spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema'\n\ntype PersonWithToken = SpruceSchemas.SpruceCli.v2020_07_22.PersonWithToken\n\nexport interface SkillAuth {\n\tid: string\n\tapiKey: string\n\tname: string\n\tslug: string\n}\n\nconst LOGGED_IN_PERSON_KEY = 'LOGGED_IN_PERSON'\n\nexport default class AuthService {\n\tprivate env: EnvService\n\n\tpublic constructor(envService: EnvService) {\n\t\tthis.env = envService\n\t}\n\n\tpublic getLoggedInPerson(): PersonWithToken | null {\n\t\tconst p = this.env.get(LOGGED_IN_PERSON_KEY)\n\t\tif (typeof p === 'string') {\n\t\t\treturn JSON.parse(p)\n\t\t}\n\n\t\treturn null\n\t}\n\n\tpublic setLoggedInPerson(person: PersonWithToken) {\n\t\tconst normalized = normalizeSchemaValues(personWithTokenSchema, person)\n\t\tvalidateSchemaValues(personWithTokenSchema, normalized)\n\n\t\tthis.env.set(\n\t\t\tLOGGED_IN_PERSON_KEY,\n\t\t\tJSON.stringify({\n\t\t\t\t...normalized,\n\t\t\t\tisLoggedIn: true,\n\t\t\t})\n\t\t)\n\t}\n\n\tpublic logOutPerson() {\n\t\tthis.env.unset(LOGGED_IN_PERSON_KEY)\n\t}\n\n\tpublic getCurrentSkill(): SkillAuth | null {\n\t\tconst id = this.env.get('SKILL_ID') as string\n\t\tconst apiKey = this.env.get('SKILL_API_KEY') as string\n\t\tconst name = this.env.get('SKILL_NAME') as string\n\t\tconst slug = this.env.get('SKILL_SLUG') as string\n\n\t\tif (id && apiKey) {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tapiKey,\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n\n\tpublic updateCurrentSkill(skill: SkillAuth) {\n\t\tthis.env.set('SKILL_ID', skill.id)\n\t\tthis.env.set('SKILL_API_KEY', skill.apiKey)\n\t\tthis.env.set('SKILL_NAME', skill.name)\n\t\tthis.env.set('SKILL_SLUG', skill.slug)\n\t}\n}\n"],"file":"AuthService.js"}
1
+ {"version":3,"sources":["../../src/services/AuthService.ts"],"names":["LOGGED_IN_PERSON_KEY","AuthService","envService","env","p","get","JSON","parse","person","normalized","personWithTokenSchema","set","stringify","isLoggedIn","unset","id","apiKey","name","slug","skill"],"mappings":";;;;;;;;;;;;;;;AACA;;AAEA;;;;;;AAWA,IAAMA,oBAAoB,GAAG,kBAA7B;;IAEqBC,W;AAGpB,uBAAmBC,UAAnB,EAA2C;AAAA;AAAA;AAC1C,SAAKC,GAAL,GAAWD,UAAX;AACA;;;;WAED,6BAAmD;AAClD,UAAME,CAAC,GAAG,KAAKD,GAAL,CAASE,GAAT,CAAaL,oBAAb,CAAV;;AACA,UAAI,OAAOI,CAAP,KAAa,QAAjB,EAA2B;AAC1B,eAAOE,IAAI,CAACC,KAAL,CAAWH,CAAX,CAAP;AACA;;AAED,aAAO,IAAP;AACA;;;WAED,2BAAyBI,MAAzB,EAAkD;AACjD,UAAMC,UAAU,GAAG,mCAAsBC,2BAAtB,EAA6CF,MAA7C,CAAnB;AACA,wCAAqBE,2BAArB,EAA4CD,UAA5C;AAEA,WAAKN,GAAL,CAASQ,GAAT,CACCX,oBADD,EAECM,IAAI,CAACM,SAAL,iCACIH,UADJ;AAECI,QAAAA,UAAU,EAAE;AAFb,SAFD;AAOA;;;WAED,wBAAsB;AACrB,WAAKV,GAAL,CAASW,KAAT,CAAed,oBAAf;AACA;;;WAED,2BAA2C;AAC1C,UAAMe,EAAE,GAAG,KAAKZ,GAAL,CAASE,GAAT,CAAa,UAAb,CAAX;AACA,UAAMW,MAAM,GAAG,KAAKb,GAAL,CAASE,GAAT,CAAa,eAAb,CAAf;AACA,UAAMY,IAAI,GAAG,KAAKd,GAAL,CAASE,GAAT,CAAa,YAAb,CAAb;AACA,UAAMa,IAAI,GAAG,KAAKf,GAAL,CAASE,GAAT,CAAa,YAAb,CAAb;;AAEA,UAAIU,EAAE,IAAIC,MAAV,EAAkB;AACjB,eAAO;AACND,UAAAA,EAAE,EAAFA,EADM;AAENC,UAAAA,MAAM,EAANA,MAFM;AAGNC,UAAAA,IAAI,EAAJA,IAHM;AAINC,UAAAA,IAAI,EAAJA;AAJM,SAAP;AAMA;;AAED,aAAO,IAAP;AACA;;;WAED,8BAA4B;AAC3B,WAAKf,GAAL,CAASW,KAAT,CAAe,UAAf;AACA,WAAKX,GAAL,CAASW,KAAT,CAAe,eAAf;AACA,WAAKX,GAAL,CAASW,KAAT,CAAe,YAAf;AACA,WAAKX,GAAL,CAASW,KAAT,CAAe,YAAf;AACA;;;WAED,4BAA0BK,KAA1B,EAA4C;AAC3C,WAAKhB,GAAL,CAASQ,GAAT,CAAa,UAAb,EAAyBQ,KAAK,CAACJ,EAA/B;AACA,WAAKZ,GAAL,CAASQ,GAAT,CAAa,eAAb,EAA8BQ,KAAK,CAACH,MAApC;AACA,WAAKb,GAAL,CAASQ,GAAT,CAAa,YAAb,EAA2BQ,KAAK,CAACF,IAAjC;AACA,WAAKd,GAAL,CAASQ,GAAT,CAAa,YAAb,EAA2BQ,KAAK,CAACD,IAAjC;AACA","sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { normalizeSchemaValues, validateSchemaValues } from '@sprucelabs/schema'\nimport { EnvService } from '@sprucelabs/spruce-skill-utils'\nimport personWithTokenSchema from '#spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema'\n\ntype PersonWithToken = SpruceSchemas.SpruceCli.v2020_07_22.PersonWithToken\n\nexport interface SkillAuth {\n\tid: string\n\tapiKey: string\n\tname: string\n\tslug: string\n}\n\nconst LOGGED_IN_PERSON_KEY = 'LOGGED_IN_PERSON'\n\nexport default class AuthService {\n\tprivate env: EnvService\n\n\tpublic constructor(envService: EnvService) {\n\t\tthis.env = envService\n\t}\n\n\tpublic getLoggedInPerson(): PersonWithToken | null {\n\t\tconst p = this.env.get(LOGGED_IN_PERSON_KEY)\n\t\tif (typeof p === 'string') {\n\t\t\treturn JSON.parse(p)\n\t\t}\n\n\t\treturn null\n\t}\n\n\tpublic setLoggedInPerson(person: PersonWithToken) {\n\t\tconst normalized = normalizeSchemaValues(personWithTokenSchema, person)\n\t\tvalidateSchemaValues(personWithTokenSchema, normalized)\n\n\t\tthis.env.set(\n\t\t\tLOGGED_IN_PERSON_KEY,\n\t\t\tJSON.stringify({\n\t\t\t\t...normalized,\n\t\t\t\tisLoggedIn: true,\n\t\t\t})\n\t\t)\n\t}\n\n\tpublic logOutPerson() {\n\t\tthis.env.unset(LOGGED_IN_PERSON_KEY)\n\t}\n\n\tpublic getCurrentSkill(): SkillAuth | null {\n\t\tconst id = this.env.get('SKILL_ID') as string\n\t\tconst apiKey = this.env.get('SKILL_API_KEY') as string\n\t\tconst name = this.env.get('SKILL_NAME') as string\n\t\tconst slug = this.env.get('SKILL_SLUG') as string\n\n\t\tif (id && apiKey) {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tapiKey,\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n\n\tpublic logoutCurrentSkill() {\n\t\tthis.env.unset('SKILL_ID')\n\t\tthis.env.unset('SKILL_API_KEY')\n\t\tthis.env.unset('SKILL_NAME')\n\t\tthis.env.unset('SKILL_SLUG')\n\t}\n\n\tpublic updateCurrentSkill(skill: SkillAuth) {\n\t\tthis.env.set('SKILL_ID', skill.id)\n\t\tthis.env.set('SKILL_API_KEY', skill.apiKey)\n\t\tthis.env.set('SKILL_NAME', skill.name)\n\t\tthis.env.set('SKILL_SLUG', skill.slug)\n\t}\n}\n"],"file":"AuthService.js"}
@@ -3,6 +3,7 @@ import CommandService from './CommandService';
3
3
  export interface AddOptions {
4
4
  isDev?: boolean;
5
5
  shouldForceInstall?: boolean;
6
+ shouldCleanupLockFiles?: boolean;
6
7
  }
7
8
  export default class PkgService extends CommandService {
8
9
  private _parsedPkg?;
@@ -24,7 +25,7 @@ export default class PkgService extends CommandService {
24
25
  executable: string;
25
26
  args: any[];
26
27
  };
27
- private deleteLockFile;
28
+ deleteLockFile(): void;
28
29
  uninstall(pkg: string[] | string): Promise<void>;
29
30
  stripLatest(name: string): string;
30
31
  buildPackageName(dep: NpmPackage): string;
@@ -146,31 +146,34 @@ var PkgService = /*#__PURE__*/function (_CommandService) {
146
146
  key: "install",
147
147
  value: function () {
148
148
  var _install = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(pkg, options) {
149
- var packages, toInstall, labsModules, totalInstalled, totalSkipped, _iterator, _step, thisPackage, isInstalled, _PkgService$buildComm, executable, args;
149
+ var shouldCleanupLockFiles, deleteLockFile, packages, toInstall, labsModules, totalInstalled, totalSkipped, _iterator, _step, thisPackage, isInstalled, _PkgService$buildComm, executable, args;
150
150
 
151
151
  return _regenerator["default"].wrap(function _callee$(_context) {
152
152
  while (1) {
153
153
  switch (_context.prev = _context.next) {
154
154
  case 0:
155
+ shouldCleanupLockFiles = (options === null || options === void 0 ? void 0 : options.shouldCleanupLockFiles) !== false;
156
+ deleteLockFile = shouldCleanupLockFiles ? this.deleteLockFile.bind(this) : function () {};
157
+
155
158
  if (pkg) {
156
- _context.next = 5;
159
+ _context.next = 7;
157
160
  break;
158
161
  }
159
162
 
160
- _context.next = 3;
163
+ _context.next = 5;
161
164
  return this.execute('yarn', {
162
165
  args: ['install']
163
166
  });
164
167
 
165
- case 3:
166
- this.deleteLockFile();
168
+ case 5:
169
+ deleteLockFile();
167
170
  return _context.abrupt("return", {
168
171
  totalInstalled: -1,
169
172
  totalSkipped: -1
170
173
  });
171
174
 
172
- case 5:
173
- this.deleteLockFile();
175
+ case 7:
176
+ deleteLockFile();
174
177
  packages = Array.isArray(pkg) ? pkg : [pkg];
175
178
  toInstall = [];
176
179
  labsModules = [];
@@ -197,40 +200,40 @@ var PkgService = /*#__PURE__*/function (_CommandService) {
197
200
  }
198
201
 
199
202
  if (!(totalInstalled > 0)) {
200
- _context.next = 19;
203
+ _context.next = 21;
201
204
  break;
202
205
  }
203
206
 
204
207
  _PkgService$buildComm = PkgService.buildCommandAndArgs(toInstall, options), executable = _PkgService$buildComm.executable, args = _PkgService$buildComm.args;
205
- _context.next = 17;
208
+ _context.next = 19;
206
209
  return this.execute(executable, {
207
210
  args: args
208
211
  });
209
212
 
210
- case 17:
211
- _context.next = 22;
213
+ case 19:
214
+ _context.next = 24;
212
215
  break;
213
216
 
214
- case 19:
217
+ case 21:
215
218
  if (_spruceSkillUtils.diskUtil.doesDirExist(_path["default"].join(this.cwd, 'node_modules'))) {
216
- _context.next = 22;
219
+ _context.next = 24;
217
220
  break;
218
221
  }
219
222
 
220
- _context.next = 22;
223
+ _context.next = 24;
221
224
  return this.execute('yarn', {
222
225
  args: ['install']
223
226
  });
224
227
 
225
- case 22:
226
- this.deleteLockFile();
228
+ case 24:
229
+ deleteLockFile();
227
230
  this._parsedPkg = undefined;
228
231
  return _context.abrupt("return", {
229
232
  totalInstalled: totalInstalled + labsModules.length,
230
233
  totalSkipped: totalSkipped
231
234
  });
232
235
 
233
- case 25:
236
+ case 27:
234
237
  case "end":
235
238
  return _context.stop();
236
239
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/PkgService.ts"],"names":["PkgService","path","contents","readPackage","options","value","updated","destination","buildPath","fs","outputFileSync","JSON","stringify","_parsedPkg","undefined","diskUtil","doesFileExist","set","packagePath","readFileSync","toString","parsed","parse","err","SpruceError","code","file","originalError","pathUtil","join","cwd","pkg","dependencies","devDependencies","e","execute","args","deleteLockFile","totalInstalled","totalSkipped","packages","Array","isArray","toInstall","labsModules","thisPackage","isInstalled","shouldForceInstall","startsWith","push","stripLatest","buildCommandAndArgs","executable","doesDirExist","length","files","lock","deleteFile","install","name","replace","dep","version","createRandomTempDir","filter","a","isDev","CommandService"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport fs from 'fs-extra'\nimport { set, get } from 'lodash'\nimport SpruceError from '../errors/SpruceError'\nimport { NpmPackage } from '../types/cli.types'\nimport isCi from '../utilities/isCi'\nimport CommandService from './CommandService'\n\nexport interface AddOptions {\n\tisDev?: boolean\n\tshouldForceInstall?: boolean\n}\n\nexport default class PkgService extends CommandService {\n\tprivate _parsedPkg?: Record<string, any>\n\n\tpublic get(path: string | string[]) {\n\t\tconst contents = this.readPackage()\n\t\treturn get(contents, path)\n\t}\n\n\tpublic set(options: {\n\t\tpath: string | string[]\n\t\tvalue: string | Record<string, any> | undefined\n\t}) {\n\t\tconst { path, value } = options\n\t\tconst contents = this.readPackage()\n\t\tconst updated = set(contents, path, value)\n\t\tconst destination = this.buildPath()\n\n\t\tfs.outputFileSync(destination, JSON.stringify(updated, null, 2))\n\t\tthis._parsedPkg = undefined\n\t}\n\n\tpublic doesExist() {\n\t\treturn diskUtil.doesFileExist(this.buildPath())\n\t}\n\n\tpublic unset(path: string | string[]) {\n\t\tthis.set({ path, value: undefined })\n\t}\n\n\tpublic readPackage(): Record<string, any | undefined> {\n\t\tif (this._parsedPkg) {\n\t\t\treturn this._parsedPkg\n\t\t}\n\t\tconst packagePath = this.buildPath()\n\n\t\ttry {\n\t\t\tconst contents = fs.readFileSync(packagePath).toString()\n\t\t\tconst parsed = JSON.parse(contents)\n\t\t\tthis._parsedPkg = parsed\n\n\t\t\treturn parsed\n\t\t} catch (err: any) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile: packagePath,\n\t\t\t\toriginalError: err,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate buildPath() {\n\t\treturn pathUtil.join(this.cwd, 'package.json')\n\t}\n\n\tpublic isInstalled(pkg: string) {\n\t\ttry {\n\t\t\tconst contents = this.readPackage()\n\n\t\t\treturn !!contents.dependencies?.[pkg] || !!contents.devDependencies?.[pkg]\n\t\t} catch (e) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tpublic async install(pkg?: string[] | string, options?: AddOptions) {\n\t\tif (!pkg) {\n\t\t\tawait this.execute('yarn', { args: ['install'] })\n\t\t\tthis.deleteLockFile()\n\t\t\treturn { totalInstalled: -1, totalSkipped: -1 }\n\t\t}\n\n\t\tthis.deleteLockFile()\n\n\t\tconst packages = Array.isArray(pkg) ? pkg : [pkg]\n\t\tconst toInstall = []\n\t\tconst labsModules: string[] = []\n\n\t\tlet totalInstalled = 0\n\t\tlet totalSkipped = 0\n\n\t\tfor (const thisPackage of packages) {\n\t\t\tconst isInstalled =\n\t\t\t\t!options?.shouldForceInstall && this.isInstalled(thisPackage)\n\t\t\tif (thisPackage.startsWith('@sprucelabs/') || !isInstalled) {\n\t\t\t\ttoInstall.push(this.stripLatest(thisPackage))\n\t\t\t\ttotalInstalled++\n\t\t\t} else {\n\t\t\t\ttotalSkipped++\n\t\t\t}\n\t\t}\n\n\t\tif (totalInstalled > 0) {\n\t\t\tconst { executable, args } = PkgService.buildCommandAndArgs(\n\t\t\t\ttoInstall,\n\t\t\t\toptions\n\t\t\t)\n\n\t\t\tawait this.execute(executable, {\n\t\t\t\targs,\n\t\t\t})\n\t\t} else if (\n\t\t\t!diskUtil.doesDirExist(pathUtil.join(this.cwd, 'node_modules'))\n\t\t) {\n\t\t\tawait this.execute('yarn', { args: ['install'] })\n\t\t}\n\n\t\tthis.deleteLockFile()\n\n\t\tthis._parsedPkg = undefined\n\n\t\treturn { totalInstalled: totalInstalled + labsModules.length, totalSkipped }\n\t}\n\n\tpublic static buildCommandAndArgs(\n\t\ttoInstall: string[],\n\t\toptions: AddOptions | undefined\n\t) {\n\t\tconst args: any[] = [\n\t\t\tisCi() && '--cache-folder',\n\t\t\tisCi() && diskUtil.createRandomTempDir(),\n\t\t\t'add',\n\t\t\t...toInstall,\n\t\t].filter((a) => !!a)\n\n\t\tif (options?.isDev) {\n\t\t\targs.push('-D')\n\t\t}\n\n\t\tconst executable = 'yarn'\n\t\treturn { executable, args }\n\t}\n\n\tprivate deleteLockFile() {\n\t\tconst files = ['package-lock.json', 'yarn.lock']\n\t\tfor (const file of files) {\n\t\t\tconst lock = pathUtil.join(this.cwd, file)\n\t\t\tif (diskUtil.doesFileExist(lock)) {\n\t\t\t\tdiskUtil.deleteFile(lock)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async uninstall(pkg: string[] | string) {\n\t\tconst packages = Array.isArray(pkg) ? pkg : [pkg]\n\t\tconst args: string[] = ['uninstall', ...packages]\n\t\tawait this.execute('npm', {\n\t\t\targs,\n\t\t})\n\n\t\tthis._parsedPkg = undefined\n\n\t\tawait this.install()\n\t}\n\n\tpublic stripLatest(name: string): string {\n\t\treturn name.replace('@latest', '')\n\t}\n\n\tpublic buildPackageName(dep: NpmPackage): string {\n\t\tconst { name, version } = dep\n\t\tif (!version) {\n\t\t\treturn name\n\t\t}\n\n\t\treturn `${name}@${version}`\n\t}\n}\n"],"file":"PkgService.js"}
1
+ {"version":3,"sources":["../../src/services/PkgService.ts"],"names":["PkgService","path","contents","readPackage","options","value","updated","destination","buildPath","fs","outputFileSync","JSON","stringify","_parsedPkg","undefined","diskUtil","doesFileExist","set","packagePath","readFileSync","toString","parsed","parse","err","SpruceError","code","file","originalError","pathUtil","join","cwd","pkg","dependencies","devDependencies","e","shouldCleanupLockFiles","deleteLockFile","bind","execute","args","totalInstalled","totalSkipped","packages","Array","isArray","toInstall","labsModules","thisPackage","isInstalled","shouldForceInstall","startsWith","push","stripLatest","buildCommandAndArgs","executable","doesDirExist","length","files","lock","deleteFile","install","name","replace","dep","version","createRandomTempDir","filter","a","isDev","CommandService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;;;IAQqBA,U;;;;;;;;;;;;;;;;;;;;;WAGpB,aAAWC,IAAX,EAAoC;AACnC,UAAMC,QAAQ,GAAG,KAAKC,WAAL,EAAjB;AACA,aAAO,iBAAID,QAAJ,EAAcD,IAAd,CAAP;AACA;;;WAED,aAAWG,OAAX,EAGG;AACF,UAAQH,IAAR,GAAwBG,OAAxB,CAAQH,IAAR;AAAA,UAAcI,KAAd,GAAwBD,OAAxB,CAAcC,KAAd;AACA,UAAMH,QAAQ,GAAG,KAAKC,WAAL,EAAjB;AACA,UAAMG,OAAO,GAAG,iBAAIJ,QAAJ,EAAcD,IAAd,EAAoBI,KAApB,CAAhB;AACA,UAAME,WAAW,GAAG,KAAKC,SAAL,EAApB;;AAEAC,0BAAGC,cAAH,CAAkBH,WAAlB,EAA+BI,IAAI,CAACC,SAAL,CAAeN,OAAf,EAAwB,IAAxB,EAA8B,CAA9B,CAA/B;;AACA,WAAKO,UAAL,GAAkBC,SAAlB;AACA;;;WAED,qBAAmB;AAClB,aAAOC,2BAASC,aAAT,CAAuB,KAAKR,SAAL,EAAvB,CAAP;AACA;;;WAED,eAAaP,IAAb,EAAsC;AACrC,WAAKgB,GAAL,CAAS;AAAEhB,QAAAA,IAAI,EAAJA,IAAF;AAAQI,QAAAA,KAAK,EAAES;AAAf,OAAT;AACA;;;WAED,uBAAsD;AACrD,UAAI,KAAKD,UAAT,EAAqB;AACpB,eAAO,KAAKA,UAAZ;AACA;;AACD,UAAMK,WAAW,GAAG,KAAKV,SAAL,EAApB;;AAEA,UAAI;AACH,YAAMN,QAAQ,GAAGO,oBAAGU,YAAH,CAAgBD,WAAhB,EAA6BE,QAA7B,EAAjB;;AACA,YAAMC,MAAM,GAAGV,IAAI,CAACW,KAAL,CAAWpB,QAAX,CAAf;AACA,aAAKW,UAAL,GAAkBQ,MAAlB;AAEA,eAAOA,MAAP;AACA,OAND,CAME,OAAOE,GAAP,EAAiB;AAClB,cAAM,IAAIC,uBAAJ,CAAgB;AACrBC,UAAAA,IAAI,EAAE,kBADe;AAErBC,UAAAA,IAAI,EAAER,WAFe;AAGrBS,UAAAA,aAAa,EAAEJ;AAHM,SAAhB,CAAN;AAKA;AACD;;;WAED,qBAAoB;AACnB,aAAOK,iBAASC,IAAT,CAAc,KAAKC,GAAnB,EAAwB,cAAxB,CAAP;AACA;;;WAED,qBAAmBC,GAAnB,EAAgC;AAC/B,UAAI;AAAA;;AACH,YAAM7B,QAAQ,GAAG,KAAKC,WAAL,EAAjB;AAEA,eAAO,CAAC,2BAACD,QAAQ,CAAC8B,YAAV,kDAAC,sBAAwBD,GAAxB,CAAD,CAAD,IAAkC,CAAC,2BAAC7B,QAAQ,CAAC+B,eAAV,kDAAC,sBAA2BF,GAA3B,CAAD,CAA1C;AACA,OAJD,CAIE,OAAOG,CAAP,EAAU;AACX,eAAO,KAAP;AACA;AACD;;;;mGAED,iBAAqBH,GAArB,EAA8C3B,OAA9C;AAAA;;AAAA;AAAA;AAAA;AAAA;AACO+B,gBAAAA,sBADP,GACgC,CAAA/B,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE+B,sBAAT,MAAoC,KADpE;AAEOC,gBAAAA,cAFP,GAEwBD,sBAAsB,GAC1C,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAD0C,GAE1C,YAAM,CAAE,CAJZ;;AAAA,oBAMMN,GANN;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAOQ,KAAKO,OAAL,CAAa,MAAb,EAAqB;AAAEC,kBAAAA,IAAI,EAAE,CAAC,SAAD;AAAR,iBAArB,CAPR;;AAAA;AAQEH,gBAAAA,cAAc;AARhB,iDASS;AAAEI,kBAAAA,cAAc,EAAE,CAAC,CAAnB;AAAsBC,kBAAAA,YAAY,EAAE,CAAC;AAArC,iBATT;;AAAA;AAYCL,gBAAAA,cAAc;AAERM,gBAAAA,QAdP,GAckBC,KAAK,CAACC,OAAN,CAAcb,GAAd,IAAqBA,GAArB,GAA2B,CAACA,GAAD,CAd7C;AAeOc,gBAAAA,SAfP,GAemB,EAfnB;AAgBOC,gBAAAA,WAhBP,GAgB+B,EAhB/B;AAkBKN,gBAAAA,cAlBL,GAkBsB,CAlBtB;AAmBKC,gBAAAA,YAnBL,GAmBoB,CAnBpB;AAAA,uDAqB2BC,QArB3B;;AAAA;AAqBC,sEAAoC;AAAzBK,oBAAAA,WAAyB;AAC7BC,oBAAAA,WAD6B,GAElC,EAAC5C,OAAD,aAACA,OAAD,eAACA,OAAO,CAAE6C,kBAAV,KAAgC,KAAKD,WAAL,CAAiBD,WAAjB,CAFE;;AAGnC,wBAAIA,WAAW,CAACG,UAAZ,CAAuB,cAAvB,KAA0C,CAACF,WAA/C,EAA4D;AAC3DH,sBAAAA,SAAS,CAACM,IAAV,CAAe,KAAKC,WAAL,CAAiBL,WAAjB,CAAf;AACAP,sBAAAA,cAAc;AACd,qBAHD,MAGO;AACNC,sBAAAA,YAAY;AACZ;AACD;AA9BF;AAAA;AAAA;AAAA;AAAA;;AAAA,sBAgCKD,cAAc,GAAG,CAhCtB;AAAA;AAAA;AAAA;;AAAA,wCAiC+BxC,UAAU,CAACqD,mBAAX,CAC5BR,SAD4B,EAE5BzC,OAF4B,CAjC/B,EAiCUkD,UAjCV,yBAiCUA,UAjCV,EAiCsBf,IAjCtB,yBAiCsBA,IAjCtB;AAAA;AAAA,uBAsCQ,KAAKD,OAAL,CAAagB,UAAb,EAAyB;AAC9Bf,kBAAAA,IAAI,EAAJA;AAD8B,iBAAzB,CAtCR;;AAAA;AAAA;AAAA;;AAAA;AAAA,oBA0CGxB,2BAASwC,YAAT,CAAsB3B,iBAASC,IAAT,CAAc,KAAKC,GAAnB,EAAwB,cAAxB,CAAtB,CA1CH;AAAA;AAAA;AAAA;;AAAA;AAAA,uBA4CQ,KAAKQ,OAAL,CAAa,MAAb,EAAqB;AAAEC,kBAAAA,IAAI,EAAE,CAAC,SAAD;AAAR,iBAArB,CA5CR;;AAAA;AA+CCH,gBAAAA,cAAc;AAEd,qBAAKvB,UAAL,GAAkBC,SAAlB;AAjDD,iDAmDQ;AAAE0B,kBAAAA,cAAc,EAAEA,cAAc,GAAGM,WAAW,CAACU,MAA/C;AAAuDf,kBAAAA,YAAY,EAAZA;AAAvD,iBAnDR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAyEA,0BAAwB;AACvB,UAAMgB,KAAK,GAAG,CAAC,mBAAD,EAAsB,WAAtB,CAAd;;AACA,gCAAmBA,KAAnB,4BAA0B;AAArB,YAAM/B,IAAI,aAAV;;AACJ,YAAMgC,IAAI,GAAG9B,iBAASC,IAAT,CAAc,KAAKC,GAAnB,EAAwBJ,IAAxB,CAAb;;AACA,YAAIX,2BAASC,aAAT,CAAuB0C,IAAvB,CAAJ,EAAkC;AACjC3C,qCAAS4C,UAAT,CAAoBD,IAApB;AACA;AACD;AACD;;;;qGAED,kBAAuB3B,GAAvB;AAAA;AAAA;AAAA;AAAA;AAAA;AACOW,gBAAAA,QADP,GACkBC,KAAK,CAACC,OAAN,CAAcb,GAAd,IAAqBA,GAArB,GAA2B,CAACA,GAAD,CAD7C;AAEOQ,gBAAAA,IAFP,IAEyB,WAFzB,6CAEyCG,QAFzC;AAAA;AAAA,uBAGO,KAAKJ,OAAL,CAAa,KAAb,EAAoB;AACzBC,kBAAAA,IAAI,EAAJA;AADyB,iBAApB,CAHP;;AAAA;AAOC,qBAAK1B,UAAL,GAAkBC,SAAlB;AAPD;AAAA,uBASO,KAAK8C,OAAL,EATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAYA,qBAAmBC,IAAnB,EAAyC;AACxC,aAAOA,IAAI,CAACC,OAAL,CAAa,SAAb,EAAwB,EAAxB,CAAP;AACA;;;WAED,0BAAwBC,GAAxB,EAAiD;AAChD,UAAQF,IAAR,GAA0BE,GAA1B,CAAQF,IAAR;AAAA,UAAcG,OAAd,GAA0BD,GAA1B,CAAcC,OAAd;;AACA,UAAI,CAACA,OAAL,EAAc;AACb,eAAOH,IAAP;AACA;;AAED,uBAAUA,IAAV,cAAkBG,OAAlB;AACA;;;WApDD,6BACCnB,SADD,EAECzC,OAFD,EAGE;AACD,UAAMmC,IAAW,GAAG,CACnB,2BAAU,gBADS,EAEnB,2BAAUxB,2BAASkD,mBAAT,EAFS,EAGnB,KAHmB,6CAIhBpB,SAJgB,GAKlBqB,MALkB,CAKX,UAACC,CAAD;AAAA,eAAO,CAAC,CAACA,CAAT;AAAA,OALW,CAApB;;AAOA,UAAI/D,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEgE,KAAb,EAAoB;AACnB7B,QAAAA,IAAI,CAACY,IAAL,CAAU,IAAV;AACA;;AAED,UAAMG,UAAU,GAAG,MAAnB;AACA,aAAO;AAAEA,QAAAA,UAAU,EAAVA,UAAF;AAAcf,QAAAA,IAAI,EAAJA;AAAd,OAAP;AACA;;;EAvIsC8B,2B","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport fs from 'fs-extra'\nimport { set, get } from 'lodash'\nimport SpruceError from '../errors/SpruceError'\nimport { NpmPackage } from '../types/cli.types'\nimport isCi from '../utilities/isCi'\nimport CommandService from './CommandService'\n\nexport interface AddOptions {\n\tisDev?: boolean\n\tshouldForceInstall?: boolean\n\tshouldCleanupLockFiles?: boolean\n}\n\nexport default class PkgService extends CommandService {\n\tprivate _parsedPkg?: Record<string, any>\n\n\tpublic get(path: string | string[]) {\n\t\tconst contents = this.readPackage()\n\t\treturn get(contents, path)\n\t}\n\n\tpublic set(options: {\n\t\tpath: string | string[]\n\t\tvalue: string | Record<string, any> | undefined\n\t}) {\n\t\tconst { path, value } = options\n\t\tconst contents = this.readPackage()\n\t\tconst updated = set(contents, path, value)\n\t\tconst destination = this.buildPath()\n\n\t\tfs.outputFileSync(destination, JSON.stringify(updated, null, 2))\n\t\tthis._parsedPkg = undefined\n\t}\n\n\tpublic doesExist() {\n\t\treturn diskUtil.doesFileExist(this.buildPath())\n\t}\n\n\tpublic unset(path: string | string[]) {\n\t\tthis.set({ path, value: undefined })\n\t}\n\n\tpublic readPackage(): Record<string, any | undefined> {\n\t\tif (this._parsedPkg) {\n\t\t\treturn this._parsedPkg\n\t\t}\n\t\tconst packagePath = this.buildPath()\n\n\t\ttry {\n\t\t\tconst contents = fs.readFileSync(packagePath).toString()\n\t\t\tconst parsed = JSON.parse(contents)\n\t\t\tthis._parsedPkg = parsed\n\n\t\t\treturn parsed\n\t\t} catch (err: any) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile: packagePath,\n\t\t\t\toriginalError: err,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate buildPath() {\n\t\treturn pathUtil.join(this.cwd, 'package.json')\n\t}\n\n\tpublic isInstalled(pkg: string) {\n\t\ttry {\n\t\t\tconst contents = this.readPackage()\n\n\t\t\treturn !!contents.dependencies?.[pkg] || !!contents.devDependencies?.[pkg]\n\t\t} catch (e) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tpublic async install(pkg?: string[] | string, options?: AddOptions) {\n\t\tconst shouldCleanupLockFiles = options?.shouldCleanupLockFiles !== false\n\t\tconst deleteLockFile = shouldCleanupLockFiles\n\t\t\t? this.deleteLockFile.bind(this)\n\t\t\t: () => {}\n\n\t\tif (!pkg) {\n\t\t\tawait this.execute('yarn', { args: ['install'] })\n\t\t\tdeleteLockFile()\n\t\t\treturn { totalInstalled: -1, totalSkipped: -1 }\n\t\t}\n\n\t\tdeleteLockFile()\n\n\t\tconst packages = Array.isArray(pkg) ? pkg : [pkg]\n\t\tconst toInstall = []\n\t\tconst labsModules: string[] = []\n\n\t\tlet totalInstalled = 0\n\t\tlet totalSkipped = 0\n\n\t\tfor (const thisPackage of packages) {\n\t\t\tconst isInstalled =\n\t\t\t\t!options?.shouldForceInstall && this.isInstalled(thisPackage)\n\t\t\tif (thisPackage.startsWith('@sprucelabs/') || !isInstalled) {\n\t\t\t\ttoInstall.push(this.stripLatest(thisPackage))\n\t\t\t\ttotalInstalled++\n\t\t\t} else {\n\t\t\t\ttotalSkipped++\n\t\t\t}\n\t\t}\n\n\t\tif (totalInstalled > 0) {\n\t\t\tconst { executable, args } = PkgService.buildCommandAndArgs(\n\t\t\t\ttoInstall,\n\t\t\t\toptions\n\t\t\t)\n\n\t\t\tawait this.execute(executable, {\n\t\t\t\targs,\n\t\t\t})\n\t\t} else if (\n\t\t\t!diskUtil.doesDirExist(pathUtil.join(this.cwd, 'node_modules'))\n\t\t) {\n\t\t\tawait this.execute('yarn', { args: ['install'] })\n\t\t}\n\n\t\tdeleteLockFile()\n\n\t\tthis._parsedPkg = undefined\n\n\t\treturn { totalInstalled: totalInstalled + labsModules.length, totalSkipped }\n\t}\n\n\tpublic static buildCommandAndArgs(\n\t\ttoInstall: string[],\n\t\toptions: AddOptions | undefined\n\t) {\n\t\tconst args: any[] = [\n\t\t\tisCi() && '--cache-folder',\n\t\t\tisCi() && diskUtil.createRandomTempDir(),\n\t\t\t'add',\n\t\t\t...toInstall,\n\t\t].filter((a) => !!a)\n\n\t\tif (options?.isDev) {\n\t\t\targs.push('-D')\n\t\t}\n\n\t\tconst executable = 'yarn'\n\t\treturn { executable, args }\n\t}\n\n\tpublic deleteLockFile() {\n\t\tconst files = ['package-lock.json', 'yarn.lock']\n\t\tfor (const file of files) {\n\t\t\tconst lock = pathUtil.join(this.cwd, file)\n\t\t\tif (diskUtil.doesFileExist(lock)) {\n\t\t\t\tdiskUtil.deleteFile(lock)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async uninstall(pkg: string[] | string) {\n\t\tconst packages = Array.isArray(pkg) ? pkg : [pkg]\n\t\tconst args: string[] = ['uninstall', ...packages]\n\t\tawait this.execute('npm', {\n\t\t\targs,\n\t\t})\n\n\t\tthis._parsedPkg = undefined\n\n\t\tawait this.install()\n\t}\n\n\tpublic stripLatest(name: string): string {\n\t\treturn name.replace('@latest', '')\n\t}\n\n\tpublic buildPackageName(dep: NpmPackage): string {\n\t\tconst { name, version } = dep\n\t\tif (!version) {\n\t\t\treturn name\n\t\t}\n\n\t\treturn `${name}@${version}`\n\t}\n}\n"],"file":"PkgService.js"}
@@ -67,6 +67,11 @@ export default abstract class AbstractCliTest extends AbstractSpruceTest {
67
67
  dir?: string;
68
68
  timeout?: number;
69
69
  }): Promise<void>;
70
+ protected static openInFinder(options?: {
71
+ file?: string;
72
+ dir?: string;
73
+ timeout?: number;
74
+ }): Promise<void>;
70
75
  protected static log(...args: any[]): void;
71
76
  protected static Action<Action extends AbstractAction = AbstractAction, F extends FeatureCode = FeatureCode>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action;
72
77
  protected static ActionExecuter(options?: ExecuterOptions): ActionExecuter;
@@ -843,6 +843,37 @@ var AbstractCliTest = /*#__PURE__*/function (_AbstractSpruceTest) {
843
843
 
844
844
  return openInVsCode;
845
845
  }()
846
+ }, {
847
+ key: "openInFinder",
848
+ value: function () {
849
+ var _openInFinder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(options) {
850
+ var _ref2, _options$file2, _options$timeout2;
851
+
852
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
853
+ while (1) {
854
+ switch (_context14.prev = _context14.next) {
855
+ case 0:
856
+ _context14.next = 2;
857
+ return this.Service('command').execute("open ".concat((_ref2 = (_options$file2 = options === null || options === void 0 ? void 0 : options.file) !== null && _options$file2 !== void 0 ? _options$file2 : options === null || options === void 0 ? void 0 : options.dir) !== null && _ref2 !== void 0 ? _ref2 : this.cwd));
858
+
859
+ case 2:
860
+ _context14.next = 4;
861
+ return this.wait((_options$timeout2 = options === null || options === void 0 ? void 0 : options.timeout) !== null && _options$timeout2 !== void 0 ? _options$timeout2 : 99999999);
862
+
863
+ case 4:
864
+ case "end":
865
+ return _context14.stop();
866
+ }
867
+ }
868
+ }, _callee14, this);
869
+ }));
870
+
871
+ function openInFinder(_x12) {
872
+ return _openInFinder.apply(this, arguments);
873
+ }
874
+
875
+ return openInFinder;
876
+ }()
846
877
  }, {
847
878
  key: "log",
848
879
  value: function log() {