@sprucelabs/spruce-cli 14.27.0 → 14.28.3

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 (330) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/.spruce/events/events.contract.d.ts +4 -621
  3. package/build/.spruce/events/events.contract.js +1 -35
  4. package/build/.spruce/events/events.contract.js.map +1 -1
  5. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +0 -15
  6. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +2 -17
  7. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  8. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +4 -21
  9. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +7 -24
  10. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  11. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +1 -24
  12. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +5 -28
  13. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  14. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.d.ts +12 -0
  15. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js +13 -1
  16. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  17. package/build/.spruce/schemas/schemas.types.d.ts +54 -1142
  18. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  19. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js +1 -1
  20. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  21. package/build/.spruce/settings.json +6 -0
  22. package/build/__tests__/behavioral/UpgradingANodeModule.test.d.ts +1 -0
  23. package/build/__tests__/behavioral/UpgradingANodeModule.test.js +50 -3
  24. package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +1 -1
  25. package/build/__tests__/behavioral/events/CreatingAListener.test.js +6 -6
  26. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  27. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +2 -2
  28. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  29. package/build/features/event/actions/ListenAction.js +66 -54
  30. package/build/features/event/actions/ListenAction.js.map +1 -1
  31. package/build/features/event/stores/EventStore.js +24 -13
  32. package/build/features/event/stores/EventStore.js.map +1 -1
  33. package/build/features/node/NodeFeature.d.ts +1 -0
  34. package/build/features/node/NodeFeature.js +83 -64
  35. package/build/features/node/NodeFeature.js.map +1 -1
  36. package/build/features/node/actions/UpgradeAction.js +20 -9
  37. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  38. package/build/features/node/writers/NodeWriter.d.ts +5 -2
  39. package/build/features/node/writers/NodeWriter.js +37 -22
  40. package/build/features/node/writers/NodeWriter.js.map +1 -1
  41. package/build/features/sandbox/actions/SetupAction.js +1 -1
  42. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  43. package/build/features/skill/updaters/Updater.js +3 -1
  44. package/build/features/skill/updaters/Updater.js.map +1 -1
  45. package/build/schemas/v2020_07_22/listenEventOptions.builder.d.ts +1 -1
  46. package/build/schemas/v2020_07_22/listenEventOptions.builder.js +1 -1
  47. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  48. package/build/tests/utilities/uiAssert.utility.d.ts +1 -0
  49. package/build/tests/utilities/uiAssert.utility.js +34 -0
  50. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  51. package/build/writers/AbstractWriter.d.ts +10 -10
  52. package/build/writers/AbstractWriter.js.map +1 -1
  53. package/package.json +30 -30
  54. package/src/.spruce/events/events.contract.ts +0 -102
  55. package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +0 -15
  56. package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +4 -21
  57. package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +1 -24
  58. package/src/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.ts +15 -0
  59. package/src/.spruce/schemas/schemas.types.ts +59 -1413
  60. package/src/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.ts +1 -1
  61. package/src/.spruce/settings.json +6 -0
  62. package/src/__tests__/behavioral/UpgradingANodeModule.test.ts +24 -0
  63. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +6 -6
  64. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +2 -2
  65. package/src/features/event/actions/ListenAction.ts +30 -20
  66. package/src/features/event/stores/EventStore.ts +7 -1
  67. package/src/features/node/NodeFeature.ts +31 -25
  68. package/src/features/node/actions/UpgradeAction.ts +8 -1
  69. package/src/features/node/writers/NodeWriter.ts +38 -23
  70. package/src/features/sandbox/actions/SetupAction.ts +1 -1
  71. package/src/features/skill/updaters/Updater.ts +2 -1
  72. package/src/schemas/v2020_07_22/listenEventOptions.builder.ts +1 -1
  73. package/src/tests/utilities/uiAssert.utility.ts +16 -0
  74. package/src/writers/AbstractWriter.ts +15 -10
  75. package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.d.ts +0 -10
  76. package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js +0 -24
  77. package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js.map +0 -1
  78. package/build/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.d.ts +0 -11
  79. package/build/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.js +0 -27
  80. package/build/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.js.map +0 -1
  81. package/build/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.d.ts +0 -10
  82. package/build/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.js +0 -24
  83. package/build/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.js.map +0 -1
  84. package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.d.ts +0 -46
  85. package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js +0 -62
  86. package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js.map +0 -1
  87. package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.d.ts +0 -46
  88. package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js +0 -62
  89. package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js.map +0 -1
  90. package/build/.spruce/events/forms/createForm.v2021_07_02.contract.d.ts +0 -46
  91. package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js +0 -62
  92. package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js.map +0 -1
  93. package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.d.ts +0 -46
  94. package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js +0 -62
  95. package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js.map +0 -1
  96. package/build/.spruce/events/forms/didUpdateCompletedForm.v2021_07_02.contract.d.ts +0 -10
  97. package/build/.spruce/events/forms/didUpdateCompletedForm.v2021_07_02.contract.js +0 -24
  98. package/build/.spruce/events/forms/didUpdateCompletedForm.v2021_07_02.contract.js.map +0 -1
  99. package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.d.ts +0 -40
  100. package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js +0 -56
  101. package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js.map +0 -1
  102. package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.d.ts +0 -45
  103. package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js +0 -59
  104. package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js.map +0 -1
  105. package/build/.spruce/events/forms/listForms.v2021_07_02.contract.d.ts +0 -80
  106. package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js +0 -94
  107. package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js.map +0 -1
  108. package/build/.spruce/events/forms/updateCompletedForm.v2021_07_02.contract.d.ts +0 -11
  109. package/build/.spruce/events/forms/updateCompletedForm.v2021_07_02.contract.js +0 -27
  110. package/build/.spruce/events/forms/updateCompletedForm.v2021_07_02.contract.js.map +0 -1
  111. package/build/.spruce/events/mySkill163362874854325100/myCoolEvent.v2021_01_22.contract.d.ts +0 -38
  112. package/build/.spruce/events/mySkill163362874854325100/myCoolEvent.v2021_01_22.contract.js +0 -48
  113. package/build/.spruce/events/mySkill163362874854325100/myCoolEvent.v2021_01_22.contract.js.map +0 -1
  114. package/build/.spruce/events/mySkill163362882591525586/myCoolEvent.v2021_01_22.contract.d.ts +0 -38
  115. package/build/.spruce/events/mySkill163362882591525586/myCoolEvent.v2021_01_22.contract.js +0 -48
  116. package/build/.spruce/events/mySkill163362882591525586/myCoolEvent.v2021_01_22.contract.js.map +0 -1
  117. package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.d.ts +0 -38
  118. package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js +0 -48
  119. package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js.map +0 -1
  120. package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.d.ts +0 -38
  121. package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js +0 -48
  122. package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js.map +0 -1
  123. package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.d.ts +0 -38
  124. package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js +0 -48
  125. package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js.map +0 -1
  126. package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.d.ts +0 -3
  127. package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js +0 -28
  128. package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js.map +0 -1
  129. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.d.ts +0 -3
  130. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js +0 -36
  131. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js.map +0 -1
  132. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.d.ts +0 -3
  133. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js +0 -28
  134. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js.map +0 -1
  135. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.d.ts +0 -3
  136. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js +0 -56
  137. package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js.map +0 -1
  138. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.d.ts +0 -3
  139. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.js +0 -36
  140. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.js.map +0 -1
  141. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.d.ts +0 -3
  142. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.js +0 -46
  143. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.js.map +0 -1
  144. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.d.ts +0 -3
  145. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.js +0 -35
  146. package/build/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.js.map +0 -1
  147. package/build/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.d.ts +0 -3
  148. package/build/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.js +0 -54
  149. package/build/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.js.map +0 -1
  150. package/build/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.d.ts +0 -3
  151. package/build/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.js +0 -37
  152. package/build/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.js.map +0 -1
  153. package/build/.spruce/schemas/forms/v2021_07_02/builtForm.schema.d.ts +0 -3
  154. package/build/.spruce/schemas/forms/v2021_07_02/builtForm.schema.js +0 -66
  155. package/build/.spruce/schemas/forms/v2021_07_02/builtForm.schema.js.map +0 -1
  156. package/build/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.d.ts +0 -3
  157. package/build/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.js +0 -50
  158. package/build/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.js.map +0 -1
  159. package/build/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.d.ts +0 -3
  160. package/build/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.js +0 -59
  161. package/build/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.js.map +0 -1
  162. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.d.ts +0 -3
  163. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.js +0 -30
  164. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.js.map +0 -1
  165. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.d.ts +0 -3
  166. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.js +0 -46
  167. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.js.map +0 -1
  168. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.d.ts +0 -3
  169. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.js +0 -34
  170. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.js.map +0 -1
  171. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.d.ts +0 -3
  172. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.js +0 -30
  173. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.js.map +0 -1
  174. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.d.ts +0 -3
  175. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.js +0 -46
  176. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.js.map +0 -1
  177. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.d.ts +0 -3
  178. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.js +0 -33
  179. package/build/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.js.map +0 -1
  180. package/build/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.d.ts +0 -3
  181. package/build/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.js +0 -52
  182. package/build/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.js.map +0 -1
  183. package/build/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.d.ts +0 -3
  184. package/build/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.js +0 -46
  185. package/build/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.js.map +0 -1
  186. package/build/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.d.ts +0 -3
  187. package/build/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.js +0 -44
  188. package/build/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.js.map +0 -1
  189. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.d.ts +0 -3
  190. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.js +0 -29
  191. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.js.map +0 -1
  192. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  193. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.js +0 -46
  194. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  195. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.d.ts +0 -3
  196. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.js +0 -29
  197. package/build/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.js.map +0 -1
  198. package/build/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.d.ts +0 -3
  199. package/build/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.js +0 -29
  200. package/build/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.js.map +0 -1
  201. package/build/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  202. package/build/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.js +0 -46
  203. package/build/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  204. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.d.ts +0 -3
  205. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.js +0 -29
  206. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.js.map +0 -1
  207. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  208. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.js +0 -46
  209. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  210. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.d.ts +0 -3
  211. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.js +0 -78
  212. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.js.map +0 -1
  213. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.d.ts +0 -3
  214. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.js +0 -35
  215. package/build/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.js.map +0 -1
  216. package/build/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.d.ts +0 -3
  217. package/build/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.js +0 -37
  218. package/build/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.js.map +0 -1
  219. package/build/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.d.ts +0 -3
  220. package/build/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.js +0 -51
  221. package/build/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.js.map +0 -1
  222. package/build/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.d.ts +0 -3
  223. package/build/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.js +0 -37
  224. package/build/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.js.map +0 -1
  225. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.d.ts +0 -3
  226. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.js +0 -38
  227. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.js.map +0 -1
  228. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.d.ts +0 -3
  229. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.js +0 -46
  230. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.js.map +0 -1
  231. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.d.ts +0 -3
  232. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.js +0 -29
  233. package/build/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.js.map +0 -1
  234. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.d.ts +0 -1
  235. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.js +0 -14
  236. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.js.map +0 -1
  237. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.d.ts +0 -1
  238. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.js +0 -14
  239. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.js.map +0 -1
  240. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.d.ts +0 -1
  241. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.js +0 -14
  242. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.js.map +0 -1
  243. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.d.ts +0 -1
  244. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.js +0 -14
  245. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.js.map +0 -1
  246. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.d.ts +0 -1
  247. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.js +0 -14
  248. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.js.map +0 -1
  249. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.d.ts +0 -1
  250. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.js +0 -14
  251. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.js.map +0 -1
  252. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.d.ts +0 -1
  253. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.js +0 -14
  254. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.js.map +0 -1
  255. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.d.ts +0 -1
  256. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.js +0 -14
  257. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.js.map +0 -1
  258. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.d.ts +0 -1
  259. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.js +0 -14
  260. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.js.map +0 -1
  261. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.d.ts +0 -1
  262. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.js +0 -14
  263. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.js.map +0 -1
  264. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.d.ts +0 -1
  265. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.js +0 -14
  266. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.js.map +0 -1
  267. package/src/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.ts +0 -15
  268. package/src/.spruce/events/calendar/createCalendarEventType.v2021_05_19.contract.ts +0 -17
  269. package/src/.spruce/events/calendar/listCalendarEventTypes.v2021_05_19.contract.ts +0 -16
  270. package/src/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.ts +0 -54
  271. package/src/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.ts +0 -55
  272. package/src/.spruce/events/forms/createForm.v2021_07_02.contract.ts +0 -54
  273. package/src/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.ts +0 -55
  274. package/src/.spruce/events/forms/didUpdateCompletedForm.v2021_07_02.contract.ts +0 -15
  275. package/src/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.ts +0 -48
  276. package/src/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.ts +0 -54
  277. package/src/.spruce/events/forms/listForms.v2021_07_02.contract.ts +0 -90
  278. package/src/.spruce/events/forms/updateCompletedForm.v2021_07_02.contract.ts +0 -17
  279. package/src/.spruce/events/mySkill163362874854325100/myCoolEvent.v2021_01_22.contract.ts +0 -45
  280. package/src/.spruce/events/mySkill163362882591525586/myCoolEvent.v2021_01_22.contract.ts +0 -45
  281. package/src/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.ts +0 -45
  282. package/src/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.ts +0 -45
  283. package/src/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.ts +0 -45
  284. package/src/.spruce/schemas/appointments/v2021_06_23/appointments.schema.ts +0 -22
  285. package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.ts +0 -24
  286. package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.ts +0 -22
  287. package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.ts +0 -36
  288. package/src/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitPayload.schema.ts +0 -29
  289. package/src/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeEmitTargetAndPayload.schema.ts +0 -30
  290. package/src/.spruce/schemas/calendar/v2021_05_19/createCalendarEventTypeResponsePayload.schema.ts +0 -23
  291. package/src/.spruce/schemas/calendar/v2021_05_19/fullCalendarEventType.schema.ts +0 -39
  292. package/src/.spruce/schemas/calendar/v2021_05_19/listCalendarEventTypesResponsePayload.schema.ts +0 -25
  293. package/src/.spruce/schemas/forms/v2021_07_02/builtForm.schema.ts +0 -50
  294. package/src/.spruce/schemas/forms/v2021_07_02/completedFormResponse.schema.ts +0 -41
  295. package/src/.spruce/schemas/forms/v2021_07_02/completedFormSourceForm.schema.ts +0 -44
  296. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitPayload.schema.ts +0 -24
  297. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToFormEmitTargetAndPayload.schema.ts +0 -30
  298. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToFormResponsePayload.schema.ts +0 -22
  299. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitPayload.schema.ts +0 -24
  300. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasEmitTargetAndPayload.schema.ts +0 -30
  301. package/src/.spruce/schemas/forms/v2021_07_02/convertPdfToSchemasResponsePayload.schema.ts +0 -25
  302. package/src/.spruce/schemas/forms/v2021_07_02/createBuiltForm.schema.ts +0 -38
  303. package/src/.spruce/schemas/forms/v2021_07_02/createFormEmitTargetAndPayload.schema.ts +0 -30
  304. package/src/.spruce/schemas/forms/v2021_07_02/createFormResponsePayload.schema.ts +0 -29
  305. package/src/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTarget.schema.ts +0 -23
  306. package/src/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormEmitTargetAndPayload.schema.ts +0 -30
  307. package/src/.spruce/schemas/forms/v2021_07_02/deleteCompletedFormResponsePayload.schema.ts +0 -23
  308. package/src/.spruce/schemas/forms/v2021_07_02/didSaveFormEmitPayload.schema.ts +0 -23
  309. package/src/.spruce/schemas/forms/v2021_07_02/didUpdateCompletedFormEmitTargetAndPayload.schema.ts +0 -30
  310. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTarget.schema.ts +0 -23
  311. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormEmitTargetAndPayload.schema.ts +0 -30
  312. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormEventForm.schema.ts +0 -58
  313. package/src/.spruce/schemas/forms/v2021_07_02/getCompletedFormResponsePayload.schema.ts +0 -23
  314. package/src/.spruce/schemas/forms/v2021_07_02/listCompletedFormsResponsePayload.schema.ts +0 -25
  315. package/src/.spruce/schemas/forms/v2021_07_02/listFormsForm.schema.ts +0 -42
  316. package/src/.spruce/schemas/forms/v2021_07_02/listFormsResponsePayload.schema.ts +0 -25
  317. package/src/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitPayload.schema.ts +0 -29
  318. package/src/.spruce/schemas/forms/v2021_07_02/updateCompletedFormEmitTargetAndPayload.schema.ts +0 -30
  319. package/src/.spruce/schemas/forms/v2021_07_02/updateCompletedFormResponsePayload.schema.ts +0 -23
  320. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/builderImportExportPage.schema.ts +0 -1
  321. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formBuilderImportExportObject.schema.ts +0 -1
  322. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/formSection.schema.ts +0 -1
  323. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/list.schema.ts +0 -1
  324. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCell.schema.ts +0 -1
  325. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listCellButton.schema.ts +0 -1
  326. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listRow.schema.ts +0 -1
  327. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listSelectInput.schema.ts +0 -1
  328. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/listTextInput.schema.ts +0 -1
  329. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/selectInputChoice.schema.ts +0 -1
  330. package/src/.spruce/schemas/heartwoodViewControllers/v2021_02_11/text.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/node/actions/UpgradeAction.ts"],"names":["UpgradeAction","upgradeSkillActionSchema","options","normalizedOptions","validateAndNormalizeOptions","updateScripts","shouldConfirm","upgradeMode","InFlightEntertainment","start","reInstallPackageDependencies","dependencyResults","actionUtil","mergeActionResults","headline","stop","ui","renderHero","Action","execute","featureInstaller","getInstalledFeatures","features","scripts","feature","scriptUpdater","ScriptUpdater","FromFeature","parent","latestScripts","update","shouldConfirmIfScriptExistsButIsDifferent","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;IAOqBA,a;;;;;;;;;;;;;;;0GACO,4B;sGACJC,+B;uGACC,CAAC,SAAD,EAAY,QAAZ,C;;;;;;;mGAExB,iBAAqBC,OAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,iBADP,GAC2B,KAAKC,2BAAL,CAAiCF,OAAjC,CAD3B;AAAA;AAAA,uBAGO,KAAKG,aAAL,CAAmB;AACxBC,kBAAAA,aAAa,EAAEH,iBAAiB,CAACI,WAAlB,KAAkC;AADzB,iBAAnB,CAHP;;AAAA;AAAA;;AAQEC,kDAAsBC,KAAtB,CAA4B,CAC3B,0BAD2B,EAE3B,wDAF2B,EAG3B,QAH2B,CAA5B;;AARF;AAAA,uBAckC,KAAKC,4BAAL,EAdlC;;AAAA;AAcQC,gBAAAA,iBAdR;AAAA,iDAgBSC,mBAAWC,kBAAX,CAA8BF,iBAA9B,EAAiD;AACvDG,kBAAAA,QAAQ,EAAE;AAD6C,iBAAjD,CAhBT;;AAAA;AAAA;;AAoBEN,kDAAsBO,IAAtB;;AAEA,qBAAKC,EAAL,CAAQC,UAAR,CAAmB,SAAnB;AAtBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wHA0BA;AAAA;AAAA;AAAA;AAAA;AAAA,kDACQ,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,EAA0CC,OAA1C,CAAkD,EAAlD,CADR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yGAIA,kBAA4BjB,OAA5B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACwB,KAAKkB,gBAAL,CAAsBC,oBAAtB,EADxB;;AAAA;AACOC,gBAAAA,QADP;AAGKC,gBAAAA,OAHL,GAGoC,EAHpC;AAAA,uDAKuBD,QALvB;;AAAA;AAKC,sEAAgC;AAArBE,oBAAAA,OAAqB;AAC/BD,oBAAAA,OAAO,mCACHA,OADG,GAEHC,OAAO,CAACD,OAFL,CAAP;AAIA;AAVF;AAAA;AAAA;AAAA;AAAA;;AAYOE,gBAAAA,aAZP,GAYuBC,0BAAcC,WAAd,CAA0B,KAAKC,MAA/B,EAAuC;AAC5DC,kBAAAA,aAAa,EAAEN;AAD6C,iBAAvC,CAZvB;AAAA;AAAA,uBAgBOE,aAAa,CAACK,MAAd,CAAqB;AAC1BC,kBAAAA,yCAAyC,EAAE7B,OAAO,CAACI;AADzB,iBAArB,CAhBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAnC0C0B,2B","sourcesContent":["import { SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport upgradeSkillActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport ScriptUpdater from '../../../updaters/ScriptUpdater'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class UpgradeAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Upgrading your skill... 💪'\n\tpublic optionsSchema = upgradeSkillActionSchema\n\tpublic commandAliases = ['upgrade', 'update']\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\tawait this.updateScripts({\n\t\t\tshouldConfirm: normalizedOptions.upgradeMode !== 'forceEverything',\n\t\t})\n\n\t\ttry {\n\t\t\tInFlightEntertainment.start([\n\t\t\t\t\"Let's start the upgrade!\",\n\t\t\t\t'While things are going, see if you can beat 1k points!',\n\t\t\t\t'Go!!!!',\n\t\t\t])\n\n\t\t\tconst dependencyResults = await this.reInstallPackageDependencies()\n\n\t\t\treturn actionUtil.mergeActionResults(dependencyResults, {\n\t\t\t\theadline: 'Upgrade',\n\t\t\t})\n\t\t} finally {\n\t\t\tInFlightEntertainment.stop()\n\n\t\t\tthis.ui.renderHero('Upgrade')\n\t\t}\n\t}\n\n\tprivate async reInstallPackageDependencies() {\n\t\treturn this.Action('node', 'updateDependencies').execute({})\n\t}\n\n\tprivate async updateScripts(options: { shouldConfirm: boolean }) {\n\t\tconst features = await this.featureInstaller.getInstalledFeatures()\n\n\t\tlet scripts: Record<string, any> = {}\n\n\t\tfor (const feature of features) {\n\t\t\tscripts = {\n\t\t\t\t...scripts,\n\t\t\t\t...feature.scripts,\n\t\t\t}\n\t\t}\n\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this.parent, {\n\t\t\tlatestScripts: scripts,\n\t\t})\n\n\t\tawait scriptUpdater.update({\n\t\t\tshouldConfirmIfScriptExistsButIsDifferent: options.shouldConfirm,\n\t\t})\n\t}\n}\n"],"file":"UpgradeAction.js"}
1
+ {"version":3,"sources":["../../../../src/features/node/actions/UpgradeAction.ts"],"names":["UpgradeAction","upgradeSkillActionSchema","options","normalizedOptions","validateAndNormalizeOptions","updateScripts","shouldConfirm","upgradeMode","Writer","writeNodeModule","cwd","shouldConfirmBeforeWriting","shouldWriteIndex","files","InFlightEntertainment","start","reInstallPackageDependencies","dependencyResults","actionUtil","mergeActionResults","headline","stop","ui","renderHero","Action","execute","featureInstaller","getInstalledFeatures","features","scripts","feature","scriptUpdater","ScriptUpdater","FromFeature","parent","latestScripts","update","shouldConfirmIfScriptExistsButIsDifferent","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;IAOqBA,a;;;;;;;;;;;;;;;0GACO,4B;sGACJC,+B;uGACC,CAAC,SAAD,EAAY,QAAZ,C;;;;;;;mGAExB,iBAAqBC,OAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,iBADP,GAC2B,KAAKC,2BAAL,CAAiCF,OAAjC,CAD3B;AAAA;AAAA,uBAGO,KAAKG,aAAL,CAAmB;AACxBC,kBAAAA,aAAa,EAAEH,iBAAiB,CAACI,WAAlB,KAAkC;AADzB,iBAAnB,CAHP;;AAAA;AAAA;AAAA;AAAA,uBAQsB,KAAKC,MAAL,CAAY,MAAZ,EAAoB;AACvCD,kBAAAA,WAAW,EAAEJ,iBAAiB,CAACI;AADQ,iBAApB,EAEjBE,eAFiB,CAED,KAAKC,GAFJ,EAES;AAC5BC,kBAAAA,0BAA0B,EAAE,IADA;AAE5BC,kBAAAA,gBAAgB,EAAE;AAFU,iBAFT,CARtB;;AAAA;AAQQC,gBAAAA,KARR;;AAeEC,kDAAsBC,KAAtB,CAA4B,CAC3B,0BAD2B,EAE3B,wDAF2B,EAG3B,QAH2B,CAA5B;;AAfF;AAAA,uBAqBkC,KAAKC,4BAAL,EArBlC;;AAAA;AAqBQC,gBAAAA,iBArBR;AAAA,iDAuBSC,mBAAWC,kBAAX,CAA8BF,iBAA9B,EAAiD;AACvDG,kBAAAA,QAAQ,EAAE,SAD6C;AAEvDP,kBAAAA,KAAK,EAALA;AAFuD,iBAAjD,CAvBT;;AAAA;AAAA;;AA4BEC,kDAAsBO,IAAtB;;AACA,qBAAKC,EAAL,CAAQC,UAAR,CAAmB,SAAnB;AA7BF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wHAiCA;AAAA;AAAA;AAAA;AAAA;AAAA,kDACQ,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,EAA0CC,OAA1C,CAAkD,EAAlD,CADR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yGAIA,kBAA4BvB,OAA5B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACwB,KAAKwB,gBAAL,CAAsBC,oBAAtB,EADxB;;AAAA;AACOC,gBAAAA,QADP;AAGKC,gBAAAA,OAHL,GAGoC,EAHpC;AAAA,uDAKuBD,QALvB;;AAAA;AAKC,sEAAgC;AAArBE,oBAAAA,OAAqB;AAC/BD,oBAAAA,OAAO,mCACHA,OADG,GAEHC,OAAO,CAACD,OAFL,CAAP;AAIA;AAVF;AAAA;AAAA;AAAA;AAAA;;AAYOE,gBAAAA,aAZP,GAYuBC,0BAAcC,WAAd,CAA0B,KAAKC,MAA/B,EAAuC;AAC5DC,kBAAAA,aAAa,EAAEN;AAD6C,iBAAvC,CAZvB;AAAA;AAAA,uBAgBOE,aAAa,CAACK,MAAd,CAAqB;AAC1BC,kBAAAA,yCAAyC,EAAEnC,OAAO,CAACI;AADzB,iBAArB,CAhBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA1C0CgC,2B","sourcesContent":["import { SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport upgradeSkillActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport ScriptUpdater from '../../../updaters/ScriptUpdater'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class UpgradeAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Upgrading your skill... 💪'\n\tpublic optionsSchema = upgradeSkillActionSchema\n\tpublic commandAliases = ['upgrade', 'update']\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\tawait this.updateScripts({\n\t\t\tshouldConfirm: normalizedOptions.upgradeMode !== 'forceEverything',\n\t\t})\n\n\t\ttry {\n\t\t\tconst files = await this.Writer('node', {\n\t\t\t\tupgradeMode: normalizedOptions.upgradeMode,\n\t\t\t}).writeNodeModule(this.cwd, {\n\t\t\t\tshouldConfirmBeforeWriting: true,\n\t\t\t\tshouldWriteIndex: false,\n\t\t\t})\n\n\t\t\tInFlightEntertainment.start([\n\t\t\t\t\"Let's start the upgrade!\",\n\t\t\t\t'While things are going, see if you can beat 1k points!',\n\t\t\t\t'Go!!!!',\n\t\t\t])\n\n\t\t\tconst dependencyResults = await this.reInstallPackageDependencies()\n\n\t\t\treturn actionUtil.mergeActionResults(dependencyResults, {\n\t\t\t\theadline: 'Upgrade',\n\t\t\t\tfiles,\n\t\t\t})\n\t\t} finally {\n\t\t\tInFlightEntertainment.stop()\n\t\t\tthis.ui.renderHero('Upgrade')\n\t\t}\n\t}\n\n\tprivate async reInstallPackageDependencies() {\n\t\treturn this.Action('node', 'updateDependencies').execute({})\n\t}\n\n\tprivate async updateScripts(options: { shouldConfirm: boolean }) {\n\t\tconst features = await this.featureInstaller.getInstalledFeatures()\n\n\t\tlet scripts: Record<string, any> = {}\n\n\t\tfor (const feature of features) {\n\t\t\tscripts = {\n\t\t\t\t...scripts,\n\t\t\t\t...feature.scripts,\n\t\t\t}\n\t\t}\n\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this.parent, {\n\t\t\tlatestScripts: scripts,\n\t\t})\n\n\t\tawait scriptUpdater.update({\n\t\t\tshouldConfirmIfScriptExistsButIsDifferent: options.shouldConfirm,\n\t\t})\n\t}\n}\n"],"file":"UpgradeAction.js"}
@@ -1,4 +1,7 @@
1
- import AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter';
1
+ import AbstractWriter, { WriteDirectoryTemplateOptions, WriteResults } from '../../../writers/AbstractWriter';
2
+ export declare const NODE_FILES_TO_UPGRADE: string[];
2
3
  export default class NodeWriter extends AbstractWriter {
3
- writeNodeModule(destinationDir: string): Promise<WriteResults>;
4
+ writeNodeModule(destinationDir: string, options?: Partial<WriteDirectoryTemplateOptions> & {
5
+ shouldWriteIndex?: boolean;
6
+ }): Promise<WriteResults>;
4
7
  }
@@ -5,12 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports["default"] = exports.NODE_FILES_TO_UPGRADE = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
17
 
16
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -29,10 +31,17 @@ var _spruceTemplates = require("@sprucelabs/spruce-templates");
29
31
 
30
32
  var _AbstractWriter2 = _interopRequireDefault(require("../../../writers/AbstractWriter"));
31
33
 
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
+
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
+
32
38
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
39
 
34
40
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
41
 
42
+ var NODE_FILES_TO_UPGRADE = ['tsconfig.json', '.eslintrc.js', '.eslintignore', '.gitignore', '.nvmrc'];
43
+ exports.NODE_FILES_TO_UPGRADE = NODE_FILES_TO_UPGRADE;
44
+
36
45
  var NodeWriter = /*#__PURE__*/function (_AbstractWriter) {
37
46
  (0, _inherits2["default"])(NodeWriter, _AbstractWriter);
38
47
 
@@ -46,38 +55,44 @@ var NodeWriter = /*#__PURE__*/function (_AbstractWriter) {
46
55
  (0, _createClass2["default"])(NodeWriter, [{
47
56
  key: "writeNodeModule",
48
57
  value: function () {
49
- var _writeNodeModule = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(destinationDir) {
50
- var contents, destination, files;
58
+ var _writeNodeModule = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(destinationDir, options) {
59
+ var files, contents, destination, directoryTemplateFiles;
51
60
  return _regenerator["default"].wrap(function _callee$(_context) {
52
61
  while (1) {
53
62
  switch (_context.prev = _context.next) {
54
63
  case 0:
55
- contents = '//exports go here\n';
56
- destination = _spruceSkillUtils.diskUtil.resolvePath(destinationDir, 'src', 'index.ts');
64
+ files = [];
57
65
 
58
- _spruceSkillUtils.diskUtil.writeFile(destination, contents);
66
+ if ((options === null || options === void 0 ? void 0 : options.shouldWriteIndex) !== false) {
67
+ contents = '//exports go here\n';
68
+ destination = _spruceSkillUtils.diskUtil.resolvePath(destinationDir, 'src', 'index.ts');
59
69
 
60
- _context.next = 5;
61
- return this.writeDirectoryTemplate({
70
+ _spruceSkillUtils.diskUtil.writeFile(destination, contents);
71
+
72
+ files.push({
73
+ name: 'src/index.ts',
74
+ description: 'Placeholder entry file!',
75
+ action: 'generated',
76
+ path: destination
77
+ });
78
+ }
79
+
80
+ _context.next = 4;
81
+ return this.writeDirectoryTemplate(_objectSpread({
62
82
  destinationDir: destinationDir,
63
83
  code: _spruceTemplates.DirectoryTemplateCode.Skill,
64
- filesToWrite: ['tsconfig.json', '.eslintrc.js', '.eslintignore', '.gitignore', '.nvmrc'],
84
+ filesToWrite: NODE_FILES_TO_UPGRADE,
65
85
  context: {
66
86
  name: 'ignored',
67
87
  description: 'ignored'
68
88
  }
69
- });
70
-
71
- case 5:
72
- files = _context.sent;
73
- return _context.abrupt("return", [{
74
- name: 'src/index.ts',
75
- description: 'Placeholder entry file!',
76
- action: 'generated',
77
- path: destination
78
- }].concat((0, _toConsumableArray2["default"])(files)));
79
-
80
- case 7:
89
+ }, options));
90
+
91
+ case 4:
92
+ directoryTemplateFiles = _context.sent;
93
+ return _context.abrupt("return", [].concat(files, (0, _toConsumableArray2["default"])(directoryTemplateFiles)));
94
+
95
+ case 6:
81
96
  case "end":
82
97
  return _context.stop();
83
98
  }
@@ -85,7 +100,7 @@ var NodeWriter = /*#__PURE__*/function (_AbstractWriter) {
85
100
  }, _callee, this);
86
101
  }));
87
102
 
88
- function writeNodeModule(_x) {
103
+ function writeNodeModule(_x, _x2) {
89
104
  return _writeNodeModule.apply(this, arguments);
90
105
  }
91
106
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/node/writers/NodeWriter.ts"],"names":["NodeWriter","destinationDir","contents","destination","diskUtil","resolvePath","writeFile","writeDirectoryTemplate","code","DirectoryTemplateCode","Skill","filesToWrite","context","name","description","files","action","path","AbstractWriter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAEqBA,U;;;;;;;;;;;;;2GACpB,iBAA6BC,cAA7B;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,QADP,GACkB,qBADlB;AAEOC,gBAAAA,WAFP,GAEqBC,2BAASC,WAAT,CAAqBJ,cAArB,EAAqC,KAArC,EAA4C,UAA5C,CAFrB;;AAICG,2CAASE,SAAT,CAAmBH,WAAnB,EAAgCD,QAAhC;;AAJD;AAAA,uBAMqB,KAAKK,sBAAL,CAA4B;AAC/CN,kBAAAA,cAAc,EAAdA,cAD+C;AAE/CO,kBAAAA,IAAI,EAAEC,uCAAsBC,KAFmB;AAG/CC,kBAAAA,YAAY,EAAE,CACb,eADa,EAEb,cAFa,EAGb,eAHa,EAIb,YAJa,EAKb,QALa,CAHiC;AAU/CC,kBAAAA,OAAO,EAAE;AAAEC,oBAAAA,IAAI,EAAE,SAAR;AAAmBC,oBAAAA,WAAW,EAAE;AAAhC;AAVsC,iBAA5B,CANrB;;AAAA;AAMOC,gBAAAA,KANP;AAAA,kDAoBE;AACCF,kBAAAA,IAAI,EAAE,cADP;AAECC,kBAAAA,WAAW,EAAE,yBAFd;AAGCE,kBAAAA,MAAM,EAAE,WAHT;AAICC,kBAAAA,IAAI,EAAEd;AAJP,iBApBF,6CA0BKY,KA1BL;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EADuCG,2B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode } from '@sprucelabs/spruce-templates'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class NodeWriter extends AbstractWriter {\n\tpublic async writeNodeModule(destinationDir: string): Promise<WriteResults> {\n\t\tconst contents = '//exports go here\\n'\n\t\tconst destination = diskUtil.resolvePath(destinationDir, 'src', 'index.ts')\n\n\t\tdiskUtil.writeFile(destination, contents)\n\n\t\tconst files = await this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.Skill,\n\t\t\tfilesToWrite: [\n\t\t\t\t'tsconfig.json',\n\t\t\t\t'.eslintrc.js',\n\t\t\t\t'.eslintignore',\n\t\t\t\t'.gitignore',\n\t\t\t\t'.nvmrc',\n\t\t\t],\n\t\t\tcontext: { name: 'ignored', description: 'ignored' },\n\t\t})\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'src/index.ts',\n\t\t\t\tdescription: 'Placeholder entry file!',\n\t\t\t\taction: 'generated',\n\t\t\t\tpath: destination,\n\t\t\t},\n\t\t\t...files,\n\t\t]\n\t}\n}\n"],"file":"NodeWriter.js"}
1
+ {"version":3,"sources":["../../../../src/features/node/writers/NodeWriter.ts"],"names":["NODE_FILES_TO_UPGRADE","NodeWriter","destinationDir","options","files","shouldWriteIndex","contents","destination","diskUtil","resolvePath","writeFile","push","name","description","action","path","writeDirectoryTemplate","code","DirectoryTemplateCode","Skill","filesToWrite","context","directoryTemplateFiles","AbstractWriter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;;;AAKO,IAAMA,qBAAqB,GAAG,CACpC,eADoC,EAEpC,cAFoC,EAGpC,eAHoC,EAIpC,YAJoC,EAKpC,QALoC,CAA9B;;;IAOcC,U;;;;;;;;;;;;;2GACpB,iBACCC,cADD,EAECC,OAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAMKC,gBAAAA,KANL,GAM8B,EAN9B;;AAOC,oBAAI,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,gBAAT,MAA8B,KAAlC,EAAyC;AAClCC,kBAAAA,QADkC,GACvB,qBADuB;AAElCC,kBAAAA,WAFkC,GAEpBC,2BAASC,WAAT,CACnBP,cADmB,EAEnB,KAFmB,EAGnB,UAHmB,CAFoB;;AAOxCM,6CAASE,SAAT,CAAmBH,WAAnB,EAAgCD,QAAhC;;AACAF,kBAAAA,KAAK,CAACO,IAAN,CAAW;AACVC,oBAAAA,IAAI,EAAE,cADI;AAEVC,oBAAAA,WAAW,EAAE,yBAFH;AAGVC,oBAAAA,MAAM,EAAE,WAHE;AAIVC,oBAAAA,IAAI,EAAER;AAJI,mBAAX;AAMA;;AArBF;AAAA,uBAuBsC,KAAKS,sBAAL;AACpCd,kBAAAA,cAAc,EAAdA,cADoC;AAEpCe,kBAAAA,IAAI,EAAEC,uCAAsBC,KAFQ;AAGpCC,kBAAAA,YAAY,EAAEpB,qBAHsB;AAIpCqB,kBAAAA,OAAO,EAAE;AAAET,oBAAAA,IAAI,EAAE,SAAR;AAAmBC,oBAAAA,WAAW,EAAE;AAAhC;AAJ2B,mBAKjCV,OALiC,EAvBtC;;AAAA;AAuBOmB,gBAAAA,sBAvBP;AAAA,2DA+BYlB,KA/BZ,sCA+BsBkB,sBA/BtB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EADuCC,2B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode } from '@sprucelabs/spruce-templates'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractWriter, {\n\tWriteDirectoryTemplateOptions,\n\tWriteResults,\n} from '../../../writers/AbstractWriter'\n\nexport const NODE_FILES_TO_UPGRADE = [\n\t'tsconfig.json',\n\t'.eslintrc.js',\n\t'.eslintignore',\n\t'.gitignore',\n\t'.nvmrc',\n]\nexport default class NodeWriter extends AbstractWriter {\n\tpublic async writeNodeModule(\n\t\tdestinationDir: string,\n\t\toptions?: Partial<WriteDirectoryTemplateOptions> & {\n\t\t\tshouldWriteIndex?: boolean\n\t\t}\n\t): Promise<WriteResults> {\n\t\tlet files: GeneratedFile[] = []\n\t\tif (options?.shouldWriteIndex !== false) {\n\t\t\tconst contents = '//exports go here\\n'\n\t\t\tconst destination = diskUtil.resolvePath(\n\t\t\t\tdestinationDir,\n\t\t\t\t'src',\n\t\t\t\t'index.ts'\n\t\t\t)\n\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\tfiles.push({\n\t\t\t\tname: 'src/index.ts',\n\t\t\t\tdescription: 'Placeholder entry file!',\n\t\t\t\taction: 'generated',\n\t\t\t\tpath: destination,\n\t\t\t})\n\t\t}\n\n\t\tconst directoryTemplateFiles = await this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.Skill,\n\t\t\tfilesToWrite: NODE_FILES_TO_UPGRADE,\n\t\t\tcontext: { name: 'ignored', description: 'ignored' },\n\t\t\t...options,\n\t\t})\n\n\t\treturn [...files, ...directoryTemplateFiles]\n\t}\n}\n"],"file":"NodeWriter.js"}
@@ -75,7 +75,7 @@ var SetupAction = /*#__PURE__*/function (_AbstractAction) {
75
75
  createListenerAction = this.Action('event', 'listen');
76
76
  _context.next = 3;
77
77
  return createListenerAction.execute({
78
- eventNamespace: 'skill',
78
+ namespace: 'skill',
79
79
  eventName: 'will-boot'
80
80
  });
81
81
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/sandbox/actions/SetupAction.ts"],"names":["optionsSchema","id","name","fields","SetupAction","setupVscodeSchema","createListenerAction","Action","execute","eventNamespace","eventName","results","errors","match","files","find","file","search","Error","description","Writer","writeDidBootListener","path","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;AACjCC,EAAAA,EAAE,EAAE,qBAD6B;AAEjCC,EAAAA,IAAI,EAAE,uBAF2B;AAGjCC,EAAAA,MAAM,EAAE;AAHyB,CAAZ,CAAtB;;IAQqBC,W;;;;;;;;;;;;;;;sGACGC,8B;0GACI,kC;;;;;;;mGAE3B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,oBADP,GAC8B,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,CAD9B;AAAA;AAAA,uBAEuBD,oBAAoB,CAACE,OAArB,CAA6B;AAClDC,kBAAAA,cAAc,EAAE,OADkC;AAElDC,kBAAAA,SAAS,EAAE;AAFuC,iBAA7B,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAAA,qBAOKA,OAAO,CAACC,MAPb;AAAA;AAAA;AAAA;;AAAA,iDAQSD,OART;;AAAA;AAWOE,gBAAAA,KAXP,GAWe,mBAACF,OAAO,CAACG,KAAT,2DAAkB,EAAlB,EAAsBC,IAAtB,CACb,UAACC,IAAD;AAAA,yBAAUA,IAAI,CAACd,IAAL,CAAUe,MAAV,CAAiB,WAAjB,MAAkC,CAA5C;AAAA,iBADa,CAXf;;AAAA,oBAeMJ,KAfN;AAAA;AAAA;AAAA;;AAAA,sBAgBQ,IAAIK,KAAJ,CAAU,wBAAV,CAhBR;;AAAA;AAmBCL,gBAAAA,KAAK,CAACM,WAAN,GAAoB,2CAApB;AAnBD;AAAA,uBAqBO,KAAKC,MAAL,CAAY,SAAZ,EAAuBC,oBAAvB,CAA4CR,KAAK,CAACS,IAAlD,CArBP;;AAAA;AAAA,iDAuBQX,OAvBR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAJwCY,2B","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport setupVscodeSchema from '#spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'setupSandboxOptions',\n\tname: 'Setup sandbox options',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class SetupAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = setupVscodeSchema\n\tpublic invocationMessage = 'Setting up sandbox support... 🏝'\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst createListenerAction = this.Action('event', 'listen')\n\t\tconst results = await createListenerAction.execute({\n\t\t\teventNamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t})\n\n\t\tif (results.errors) {\n\t\t\treturn results\n\t\t}\n\n\t\tconst match = (results.files ?? []).find(\n\t\t\t(file) => file.name.search('will-boot') === 0\n\t\t)\n\n\t\tif (!match) {\n\t\t\tthrow new Error('file was not generated')\n\t\t}\n\n\t\tmatch.description = 'Used for recovering from a sandbox reset.'\n\n\t\tawait this.Writer('sandbox').writeDidBootListener(match.path)\n\n\t\treturn results\n\t}\n}\n"],"file":"SetupAction.js"}
1
+ {"version":3,"sources":["../../../../src/features/sandbox/actions/SetupAction.ts"],"names":["optionsSchema","id","name","fields","SetupAction","setupVscodeSchema","createListenerAction","Action","execute","namespace","eventName","results","errors","match","files","find","file","search","Error","description","Writer","writeDidBootListener","path","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;AACjCC,EAAAA,EAAE,EAAE,qBAD6B;AAEjCC,EAAAA,IAAI,EAAE,uBAF2B;AAGjCC,EAAAA,MAAM,EAAE;AAHyB,CAAZ,CAAtB;;IAQqBC,W;;;;;;;;;;;;;;;sGACGC,8B;0GACI,kC;;;;;;;mGAE3B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,oBADP,GAC8B,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,CAD9B;AAAA;AAAA,uBAEuBD,oBAAoB,CAACE,OAArB,CAA6B;AAClDC,kBAAAA,SAAS,EAAE,OADuC;AAElDC,kBAAAA,SAAS,EAAE;AAFuC,iBAA7B,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAAA,qBAOKA,OAAO,CAACC,MAPb;AAAA;AAAA;AAAA;;AAAA,iDAQSD,OART;;AAAA;AAWOE,gBAAAA,KAXP,GAWe,mBAACF,OAAO,CAACG,KAAT,2DAAkB,EAAlB,EAAsBC,IAAtB,CACb,UAACC,IAAD;AAAA,yBAAUA,IAAI,CAACd,IAAL,CAAUe,MAAV,CAAiB,WAAjB,MAAkC,CAA5C;AAAA,iBADa,CAXf;;AAAA,oBAeMJ,KAfN;AAAA;AAAA;AAAA;;AAAA,sBAgBQ,IAAIK,KAAJ,CAAU,wBAAV,CAhBR;;AAAA;AAmBCL,gBAAAA,KAAK,CAACM,WAAN,GAAoB,2CAApB;AAnBD;AAAA,uBAqBO,KAAKC,MAAL,CAAY,SAAZ,EAAuBC,oBAAvB,CAA4CR,KAAK,CAACS,IAAlD,CArBP;;AAAA;AAAA,iDAuBQX,OAvBR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAJwCY,2B","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport setupVscodeSchema from '#spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'setupSandboxOptions',\n\tname: 'Setup sandbox options',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class SetupAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = setupVscodeSchema\n\tpublic invocationMessage = 'Setting up sandbox support... 🏝'\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst createListenerAction = this.Action('event', 'listen')\n\t\tconst results = await createListenerAction.execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t})\n\n\t\tif (results.errors) {\n\t\t\treturn results\n\t\t}\n\n\t\tconst match = (results.files ?? []).find(\n\t\t\t(file) => file.name.search('will-boot') === 0\n\t\t)\n\n\t\tif (!match) {\n\t\t\tthrow new Error('file was not generated')\n\t\t}\n\n\t\tmatch.description = 'Used for recovering from a sandbox reset.'\n\n\t\tawait this.Writer('sandbox').writeDidBootListener(match.path)\n\n\t\treturn results\n\t}\n}\n"],"file":"SetupAction.js"}
@@ -23,6 +23,8 @@ var _spruceEventUtils = require("@sprucelabs/spruce-event-utils");
23
23
 
24
24
  var _SpruceError = _interopRequireDefault(require("../../../errors/SpruceError"));
25
25
 
26
+ var _NodeWriter = require("../../node/writers/NodeWriter");
27
+
26
28
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
27
29
 
28
30
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -60,7 +62,7 @@ var Updater = /*#__PURE__*/function () {
60
62
  case 6:
61
63
  results = _context.sent;
62
64
  _eventResponseUtil$ge = _spruceEventUtils.eventResponseUtil.getAllResponsePayloadsAndErrors(results, _SpruceError["default"]), payloads = _eventResponseUtil$ge.payloads;
63
- filesToSkip = ['package.json'];
65
+ filesToSkip = [].concat((0, _toConsumableArray2["default"])(_NodeWriter.NODE_FILES_TO_UPGRADE), ['package.json']);
64
66
  _iterator = _createForOfIteratorHelper(payloads);
65
67
 
66
68
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/skill/updaters/Updater.ts"],"names":["Updater","skill","emitter","feature","normalizedOptions","skillWriter","Writer","upgradeMode","pkgService","Service","name","get","description","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","payloads","filesToSkip","payload","push","writeSkill","cwd","generatedFiles"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;;;IASqBA,O;AAIpB,mBAAmBC,KAAnB,EAAmCC,OAAnC,EAA2D;AAAA;AAAA;AAAA;AAC1D,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,OAAL,GAAeF,KAAf;AACA;;;;;uGAED,iBAAyBG,iBAAzB;AAAA;;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,WADP,GACqB,KAAKF,OAAL,CAAaG,MAAb,CAAoB,OAApB,EAA6B;AAChDC,kBAAAA,WAAW,EAAEH,iBAAiB,CAACG;AADiB,iBAA7B,CADrB;AAIOC,gBAAAA,UAJP,GAIoB,KAAKL,OAAL,CAAaM,OAAb,CAAqB,KAArB,CAJpB;AAKOC,gBAAAA,IALP,GAKcF,UAAU,CAACG,GAAX,CAAe,MAAf,CALd;AAMOC,gBAAAA,WANP,GAMqBJ,UAAU,CAACG,GAAX,CAAe,aAAf,CANrB;AAAA;AAAA,uBAQuB,KAAKT,OAAL,CAAaW,IAAb,CACrB,qCADqB,CARvB;;AAAA;AAQOC,gBAAAA,OARP;AAAA,wCAYsBC,oCAAkBC,+BAAlB,CACpBF,OADoB,EAEpBG,uBAFoB,CAZtB,EAYSC,QAZT,yBAYSA,QAZT;AAiBOC,gBAAAA,WAjBP,GAiBqB,CAAC,cAAD,CAjBrB;AAAA,uDAmBuBD,QAnBvB;;AAAA;AAmBC,sEAAgC;AAArBE,oBAAAA,OAAqB;;AAC/B,wBAAIA,OAAO,CAACD,WAAZ,EAAyB;AACxBA,sBAAAA,WAAW,CAACE,IAAZ,OAAAF,WAAW,sCAASC,OAAO,CAACD,WAAjB,EAAX;AACA;AACD;AAvBF;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAyB8Bd,WAAW,CAACiB,UAAZ,CAAuB,KAAKnB,OAAL,CAAaoB,GAApC,EAAyC;AACrEb,kBAAAA,IAAI,EAAJA,IADqE;AAErEE,kBAAAA,WAAW,EAAXA,WAFqE;AAGrEO,kBAAAA,WAAW,EAAXA;AAHqE,iBAAzC,CAzB9B;;AAAA;AAyBOK,gBAAAA,cAzBP;AAAA,iDA+BQA,cA/BR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O","sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport SpruceError from '../../../errors/SpruceError'\nimport { GlobalEmitter } from '../../../GlobalEmitter'\nimport AbstractFeature from '../../AbstractFeature'\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\ntype Feature =\n\tAbstractFeature<SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema>\n\nexport default class Updater {\n\tprivate feature: Feature\n\tprivate emitter: GlobalEmitter\n\n\tpublic constructor(skill: Feature, emitter: GlobalEmitter) {\n\t\tthis.emitter = emitter\n\t\tthis.feature = skill\n\t}\n\n\tpublic async updateFiles(normalizedOptions: UpgradeOptions) {\n\t\tconst skillWriter = this.feature.Writer('skill', {\n\t\t\tupgradeMode: normalizedOptions.upgradeMode,\n\t\t})\n\t\tconst pkgService = this.feature.Service('pkg')\n\t\tconst name = pkgService.get('name')\n\t\tconst description = pkgService.get('description')\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'skill.will-write-directory-template'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tconst filesToSkip = ['package.json']\n\n\t\tfor (const payload of payloads) {\n\t\t\tif (payload.filesToSkip) {\n\t\t\t\tfilesToSkip.push(...payload.filesToSkip)\n\t\t\t}\n\t\t}\n\n\t\tconst generatedFiles = await skillWriter.writeSkill(this.feature.cwd, {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tfilesToSkip,\n\t\t})\n\n\t\treturn generatedFiles\n\t}\n}\n"],"file":"Updater.js"}
1
+ {"version":3,"sources":["../../../../src/features/skill/updaters/Updater.ts"],"names":["Updater","skill","emitter","feature","normalizedOptions","skillWriter","Writer","upgradeMode","pkgService","Service","name","get","description","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","payloads","filesToSkip","NODE_FILES_TO_UPGRADE","payload","push","writeSkill","cwd","generatedFiles"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAGA;;;;;;;;IAOqBA,O;AAIpB,mBAAmBC,KAAnB,EAAmCC,OAAnC,EAA2D;AAAA;AAAA;AAAA;AAC1D,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,OAAL,GAAeF,KAAf;AACA;;;;;uGAED,iBAAyBG,iBAAzB;AAAA;;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,WADP,GACqB,KAAKF,OAAL,CAAaG,MAAb,CAAoB,OAApB,EAA6B;AAChDC,kBAAAA,WAAW,EAAEH,iBAAiB,CAACG;AADiB,iBAA7B,CADrB;AAIOC,gBAAAA,UAJP,GAIoB,KAAKL,OAAL,CAAaM,OAAb,CAAqB,KAArB,CAJpB;AAKOC,gBAAAA,IALP,GAKcF,UAAU,CAACG,GAAX,CAAe,MAAf,CALd;AAMOC,gBAAAA,WANP,GAMqBJ,UAAU,CAACG,GAAX,CAAe,aAAf,CANrB;AAAA;AAAA,uBAQuB,KAAKT,OAAL,CAAaW,IAAb,CACrB,qCADqB,CARvB;;AAAA;AAQOC,gBAAAA,OARP;AAAA,wCAYsBC,oCAAkBC,+BAAlB,CACpBF,OADoB,EAEpBG,uBAFoB,CAZtB,EAYSC,QAZT,yBAYSA,QAZT;AAiBOC,gBAAAA,WAjBP,iDAiByBC,iCAjBzB,IAiBgD,cAjBhD;AAAA,uDAmBuBF,QAnBvB;;AAAA;AAmBC,sEAAgC;AAArBG,oBAAAA,OAAqB;;AAC/B,wBAAIA,OAAO,CAACF,WAAZ,EAAyB;AACxBA,sBAAAA,WAAW,CAACG,IAAZ,OAAAH,WAAW,sCAASE,OAAO,CAACF,WAAjB,EAAX;AACA;AACD;AAvBF;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAyB8Bd,WAAW,CAACkB,UAAZ,CAAuB,KAAKpB,OAAL,CAAaqB,GAApC,EAAyC;AACrEd,kBAAAA,IAAI,EAAJA,IADqE;AAErEE,kBAAAA,WAAW,EAAXA,WAFqE;AAGrEO,kBAAAA,WAAW,EAAXA;AAHqE,iBAAzC,CAzB9B;;AAAA;AAyBOM,gBAAAA,cAzBP;AAAA,iDA+BQA,cA/BR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O","sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport SpruceError from '../../../errors/SpruceError'\nimport { GlobalEmitter } from '../../../GlobalEmitter'\nimport AbstractFeature from '../../AbstractFeature'\nimport { NODE_FILES_TO_UPGRADE } from '../../node/writers/NodeWriter'\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\ntype Feature =\n\tAbstractFeature<SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema>\n\nexport default class Updater {\n\tprivate feature: Feature\n\tprivate emitter: GlobalEmitter\n\n\tpublic constructor(skill: Feature, emitter: GlobalEmitter) {\n\t\tthis.emitter = emitter\n\t\tthis.feature = skill\n\t}\n\n\tpublic async updateFiles(normalizedOptions: UpgradeOptions) {\n\t\tconst skillWriter = this.feature.Writer('skill', {\n\t\t\tupgradeMode: normalizedOptions.upgradeMode,\n\t\t})\n\t\tconst pkgService = this.feature.Service('pkg')\n\t\tconst name = pkgService.get('name')\n\t\tconst description = pkgService.get('description')\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'skill.will-write-directory-template'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tconst filesToSkip = [...NODE_FILES_TO_UPGRADE, 'package.json']\n\n\t\tfor (const payload of payloads) {\n\t\t\tif (payload.filesToSkip) {\n\t\t\t\tfilesToSkip.push(...payload.filesToSkip)\n\t\t\t}\n\t\t}\n\n\t\tconst generatedFiles = await skillWriter.writeSkill(this.feature.cwd, {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tfilesToSkip,\n\t\t})\n\n\t\treturn generatedFiles\n\t}\n}\n"],"file":"Updater.js"}
@@ -3,7 +3,7 @@ declare const _default: {
3
3
  name: string;
4
4
  description: string;
5
5
  fields: {
6
- eventNamespace: {
6
+ namespace: {
7
7
  type: "text";
8
8
  label: string;
9
9
  };
@@ -22,7 +22,7 @@ var _default = (0, _schema.buildSchema)({
22
22
  name: 'Listen to event action',
23
23
  description: 'Options for event.listen.',
24
24
  fields: _objectSpread(_objectSpread({}, _syncEventOptions["default"].fields), {}, {
25
- eventNamespace: {
25
+ namespace: {
26
26
  type: 'text',
27
27
  label: 'Namespace'
28
28
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/v2020_07_22/listenEventOptions.builder.ts"],"names":["id","name","description","fields","syncEventOptionsBuilder","eventNamespace","type","label","eventName","listenerDestinationDir","hint","defaultValue","version","isPrivate"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,oBADsB;AAE1BC,EAAAA,IAAI,EAAE,wBAFoB;AAG1BC,EAAAA,WAAW,EAAE,2BAHa;AAI1BC,EAAAA,MAAM,kCACFC,6BAAwBD,MADtB;AAELE,IAAAA,cAAc,EAAE;AACfC,MAAAA,IAAI,EAAE,MADS;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KAFX;AAMLC,IAAAA,SAAS,EAAE;AACVF,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE;AAFG,KANN;AAULE,IAAAA,sBAAsB,EAAE;AACvBH,MAAAA,IAAI,EAAE,MADiB;AAEvBC,MAAAA,KAAK,EAAE,8BAFgB;AAGvBG,MAAAA,IAAI,EAAE,oCAHiB;AAIvBC,MAAAA,YAAY,EAAE;AAJS,KAVnB;AAgBLC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,MADE;AAERC,MAAAA,KAAK,EAAE,SAFC;AAGRG,MAAAA,IAAI,EAAE,mEAHE;AAIRG,MAAAA,SAAS,EAAE;AAJH;AAhBJ;AAJoB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport syncEventOptionsBuilder from './syncEventOptions.builder'\n\nexport default buildSchema({\n\tid: 'listenEventOptions',\n\tname: 'Listen to event action',\n\tdescription: 'Options for event.listen.',\n\tfields: {\n\t\t...syncEventOptionsBuilder.fields,\n\t\teventNamespace: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t\teventName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event name',\n\t\t},\n\t\tlistenerDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Events destination directory',\n\t\t\thint: 'Where should I add your listeners?',\n\t\t\tdefaultValue: 'src/listeners',\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t},\n})\n"],"file":"listenEventOptions.builder.js"}
1
+ {"version":3,"sources":["../../../src/schemas/v2020_07_22/listenEventOptions.builder.ts"],"names":["id","name","description","fields","syncEventOptionsBuilder","namespace","type","label","eventName","listenerDestinationDir","hint","defaultValue","version","isPrivate"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,oBADsB;AAE1BC,EAAAA,IAAI,EAAE,wBAFoB;AAG1BC,EAAAA,WAAW,EAAE,2BAHa;AAI1BC,EAAAA,MAAM,kCACFC,6BAAwBD,MADtB;AAELE,IAAAA,SAAS,EAAE;AACVC,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAFN;AAMLC,IAAAA,SAAS,EAAE;AACVF,MAAAA,IAAI,EAAE,MADI;AAEVC,MAAAA,KAAK,EAAE;AAFG,KANN;AAULE,IAAAA,sBAAsB,EAAE;AACvBH,MAAAA,IAAI,EAAE,MADiB;AAEvBC,MAAAA,KAAK,EAAE,8BAFgB;AAGvBG,MAAAA,IAAI,EAAE,oCAHiB;AAIvBC,MAAAA,YAAY,EAAE;AAJS,KAVnB;AAgBLC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,MADE;AAERC,MAAAA,KAAK,EAAE,SAFC;AAGRG,MAAAA,IAAI,EAAE,mEAHE;AAIRG,MAAAA,SAAS,EAAE;AAJH;AAhBJ;AAJoB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport syncEventOptionsBuilder from './syncEventOptions.builder'\n\nexport default buildSchema({\n\tid: 'listenEventOptions',\n\tname: 'Listen to event action',\n\tdescription: 'Options for event.listen.',\n\tfields: {\n\t\t...syncEventOptionsBuilder.fields,\n\t\tnamespace: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t\teventName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event name',\n\t\t},\n\t\tlistenerDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Events destination directory',\n\t\t\thint: 'Where should I add your listeners?',\n\t\t\tdefaultValue: 'src/listeners',\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t},\n})\n"],"file":"listenEventOptions.builder.js"}
@@ -2,5 +2,6 @@ import SpyInterface from '../../interfaces/SpyInterface';
2
2
  declare const uiAssertUtil: {
3
3
  assertRendersSelect(ui: SpyInterface): Promise<void>;
4
4
  assertSelectDidNotRenderChoice(ui: SpyInterface, value: string, label: string): void;
5
+ assertRendersConfirmWriteFile(ui: SpyInterface): Promise<void>;
5
6
  };
6
7
  export default uiAssertUtil;
@@ -44,6 +44,40 @@ var uiAssertUtil = {
44
44
  value: value,
45
45
  label: label
46
46
  });
47
+ },
48
+ assertRendersConfirmWriteFile: function assertRendersConfirmWriteFile(ui) {
49
+ return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
50
+ var last;
51
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
52
+ while (1) {
53
+ switch (_context2.prev = _context2.next) {
54
+ case 0:
55
+ _context2.next = 2;
56
+ return ui.waitForInput();
57
+
58
+ case 2:
59
+ last = ui.getLastInvocation();
60
+
61
+ _test.assert.isEqual(last.options.type, 'select');
62
+
63
+ _test.assert.isEqualDeep(last.options.options.choices, [{
64
+ label: 'Overwrite',
65
+ value: 'overwrite'
66
+ }, {
67
+ value: 'skip',
68
+ label: 'Skip'
69
+ }, {
70
+ value: 'alwaysSkip',
71
+ label: 'Always skip'
72
+ }]);
73
+
74
+ case 5:
75
+ case "end":
76
+ return _context2.stop();
77
+ }
78
+ }
79
+ }, _callee2);
80
+ }))();
47
81
  }
48
82
  };
49
83
  var _default = uiAssertUtil;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"names":["uiAssertUtil","assertRendersSelect","ui","waitForInput","last","getLastInvocation","assert","isTruthy","options","choices","assertSelectDidNotRenderChoice","value","label","doesNotInclude"],"mappings":";;;;;;;;;;;;;AAAA;;AAGA,IAAMA,YAAY,GAAG;AACdC,EAAAA,mBADc,+BACMC,EADN,EACwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACrCA,EAAE,CAACC,YAAH,EADqC;;AAAA;AAGrCC,cAAAA,IAHqC,GAG9BF,EAAE,CAACG,iBAAH,EAH8B;;AAI3CC,2BAAOC,QAAP,CACCH,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OADtB;;AAJ2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ3C,GATmB;AAWpBC,EAAAA,8BAXoB,0CAYnBR,EAZmB,EAanBS,KAbmB,EAcnBC,KAdmB,EAelB;AACD,QAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;AAEAC,iBAAOO,cAAP,CAAsBT,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAA3C,EAAoD;AACnDE,MAAAA,KAAK,EAALA,KADmD;AAEnDC,MAAAA,KAAK,EAALA;AAFmD,KAApD;AAIA;AAtBmB,CAArB;eAyBeZ,Y","sourcesContent":["import { assert } from '@sprucelabs/test'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssertUtil = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n}\n\nexport default uiAssertUtil\n"],"file":"uiAssert.utility.js"}
1
+ {"version":3,"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"names":["uiAssertUtil","assertRendersSelect","ui","waitForInput","last","getLastInvocation","assert","isTruthy","options","choices","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertRendersConfirmWriteFile","isEqual","type","isEqualDeep"],"mappings":";;;;;;;;;;;;;AAAA;;AAGA,IAAMA,YAAY,GAAG;AACdC,EAAAA,mBADc,+BACMC,EADN,EACwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACrCA,EAAE,CAACC,YAAH,EADqC;;AAAA;AAGrCC,cAAAA,IAHqC,GAG9BF,EAAE,CAACG,iBAAH,EAH8B;;AAI3CC,2BAAOC,QAAP,CACCH,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OADtB;;AAJ2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ3C,GATmB;AAWpBC,EAAAA,8BAXoB,0CAYnBR,EAZmB,EAanBS,KAbmB,EAcnBC,KAdmB,EAelB;AACD,QAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;AAEAC,iBAAOO,cAAP,CAAsBT,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAA3C,EAAoD;AACnDE,MAAAA,KAAK,EAALA,KADmD;AAEnDC,MAAAA,KAAK,EAALA;AAFmD,KAApD;AAIA,GAtBmB;AAwBdE,EAAAA,6BAxBc,yCAwBgBZ,EAxBhB,EAwBkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAC/CA,EAAE,CAACC,YAAH,EAD+C;;AAAA;AAG/CC,cAAAA,IAH+C,GAGxCF,EAAE,CAACG,iBAAH,EAHwC;;AAKrDC,2BAAOS,OAAP,CAAeX,IAAI,CAACI,OAAL,CAAaQ,IAA5B,EAAkC,QAAlC;;AACAV,2BAAOW,WAAP,CAAmBb,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD,CAChD;AACCG,gBAAAA,KAAK,EAAE,WADR;AAECD,gBAAAA,KAAK,EAAE;AAFR,eADgD,EAKhD;AAAEA,gBAAAA,KAAK,EAAE,MAAT;AAAiBC,gBAAAA,KAAK,EAAE;AAAxB,eALgD,EAMhD;AAAED,gBAAAA,KAAK,EAAE,YAAT;AAAuBC,gBAAAA,KAAK,EAAE;AAA9B,eANgD,CAAjD;;AANqD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcrD;AAtCmB,CAArB;eAyCeZ,Y","sourcesContent":["import { assert } from '@sprucelabs/test'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssertUtil = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssertUtil\n"],"file":"uiAssert.utility.js"}
@@ -7,12 +7,20 @@ export declare type WriteResults = GeneratedFile[];
7
7
  export interface WriterOptions {
8
8
  templates: Templates;
9
9
  term: GraphicsInterface;
10
- askBeforeUpdating?: boolean;
11
10
  upgradeMode?: UpgradeMode;
12
11
  fileDescriptions: FileDescription[];
13
12
  linter?: LintService;
14
13
  settings: SettingsService;
15
14
  }
15
+ export interface WriteDirectoryTemplateOptions {
16
+ destinationDir: string;
17
+ code: DirectoryTemplateCode;
18
+ filesToWrite?: string[];
19
+ filesToSkip?: string[];
20
+ context: any;
21
+ shouldConfirmBeforeWriting?: boolean;
22
+ firstFileWriteMessage?: string;
23
+ }
16
24
  export default abstract class AbstractWriter {
17
25
  protected templates: Templates;
18
26
  protected ui: GraphicsInterface;
@@ -28,15 +36,7 @@ export default abstract class AbstractWriter {
28
36
  protected lint(file: string): Promise<void>;
29
37
  static disableLinting(): void;
30
38
  static enableLinting(): void;
31
- protected writeDirectoryTemplate(options: {
32
- destinationDir: string;
33
- code: DirectoryTemplateCode;
34
- filesToWrite?: string[];
35
- filesToSkip?: string[];
36
- context: any;
37
- shouldConfirmBeforeWriting?: boolean;
38
- firstFileWriteMessage?: string;
39
- }): Promise<WriteResults>;
39
+ protected writeDirectoryTemplate(options: WriteDirectoryTemplateOptions): Promise<WriteResults>;
40
40
  protected writeFileIfChangedMixinResults(destination: string, contents: string, description: string, results?: WriteResults, cwd?: string): Promise<WriteResults>;
41
41
  private isFileDifferent;
42
42
  private cleanFilename;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/writers/AbstractWriter.ts"],"names":["AbstractWriter","options","templates","ui","term","upgradeMode","fileDescriptions","linter","settings","file","isLintingEnabled","startLoading","pathUtil","basename","fix","context","destinationDir","filesToWrite","filesToSkip","shouldConfirmBeforeWriting","firstFileWriteMessage","hasShownFirstWriteMessage","directoryTemplate","kind","code","files","results","generated","shouldWrite","indexOf","filename","shouldSkip","writeFileIfChangedMixinResults","join","relativePath","contents","destination","description","cwd","myResults","desc","name","action","diskUtil","isDir","Error","fileDescription","getFileDescription","doesFileExist","write","confirmPromptOnFirstWrite","stopLoading","confirm","writeFile","isFileDifferent","shouldOverwriteIfChanged","cleanedName","cleanFilename","skipped","get","isAlwaysSkipped","shouldAskForOverwrite","renderLine","prompt","type","label","choices","value","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP","answer","push","set","replace","path","relativeFile","sep","substr","shouldOverwriteWhenChanged","lower","toLowerCase","d","search","undefined","dirOrFile","fallbackFileName","doesDirExist","fs","lstatSync","isDirectory","extname","length","resolvePath"],"mappings":"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","sourcesContent":["import fs from 'fs'\nimport pathUtil from 'path'\nimport { diskUtil, SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode, Templates } from '@sprucelabs/spruce-templates'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../constants'\nimport LintService from '../services/LintService'\nimport { FileDescription, GeneratedFile, UpgradeMode } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\n\nexport type WriteResults = GeneratedFile[]\n\nexport interface WriterOptions {\n\ttemplates: Templates\n\tterm: GraphicsInterface\n\taskBeforeUpdating?: boolean\n\tupgradeMode?: UpgradeMode\n\tfileDescriptions: FileDescription[]\n\tlinter?: LintService\n\tsettings: SettingsService\n}\n\nexport default abstract class AbstractWriter {\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprivate linter?: LintService\n\tprivate upgradeMode: UpgradeMode\n\tprivate fileDescriptions: FileDescription[] = []\n\tprivate shouldConfirmBeforeWriting = true\n\tprivate static isLintingEnabled = true\n\tprivate firstFileWriteMessage?: string\n\tprivate hasShownFirstWriteMessage = false\n\tprivate settings: SettingsService<string>\n\n\tpublic constructor(options: WriterOptions) {\n\t\tthis.templates = options.templates\n\t\tthis.ui = options.term\n\t\tthis.upgradeMode = options.upgradeMode\n\t\tthis.fileDescriptions = options.fileDescriptions\n\t\tthis.linter = options.linter\n\t\tthis.settings = options.settings\n\t}\n\n\tprotected async lint(file: string) {\n\t\tif (AbstractWriter.isLintingEnabled) {\n\t\t\tthis.ui.startLoading(`Linting ${pathUtil.basename(file)}...`)\n\t\t\tawait this.linter?.fix(file).catch(() => {})\n\t\t}\n\t}\n\n\tpublic static disableLinting() {\n\t\tthis.isLintingEnabled = false\n\t}\n\n\tpublic static enableLinting() {\n\t\tthis.isLintingEnabled = true\n\t}\n\n\tprotected async writeDirectoryTemplate(options: {\n\t\tdestinationDir: string\n\t\tcode: DirectoryTemplateCode\n\t\tfilesToWrite?: string[]\n\t\tfilesToSkip?: string[]\n\t\tcontext: any\n\t\tshouldConfirmBeforeWriting?: boolean\n\t\tfirstFileWriteMessage?: string\n\t}) {\n\t\tconst {\n\t\t\tcontext,\n\t\t\tdestinationDir,\n\t\t\tfilesToWrite,\n\t\t\tfilesToSkip,\n\t\t\tshouldConfirmBeforeWriting = true,\n\t\t\tfirstFileWriteMessage,\n\t\t} = options\n\n\t\tthis.shouldConfirmBeforeWriting = shouldConfirmBeforeWriting\n\t\tthis.firstFileWriteMessage = firstFileWriteMessage\n\t\tthis.hasShownFirstWriteMessage = false\n\n\t\tconst files = await this.templates.directoryTemplate({\n\t\t\tkind: options.code,\n\t\t\tcontext: context ?? {},\n\t\t})\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const generated of files) {\n\t\t\tconst shouldWrite =\n\t\t\t\t!filesToWrite || filesToWrite.indexOf(generated.filename) > -1\n\t\t\tconst shouldSkip =\n\t\t\t\tfilesToSkip && filesToSkip.indexOf(generated.filename) > -1\n\t\t\tif (shouldWrite && !shouldSkip) {\n\t\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\t\tpathUtil.join(destinationDir, generated.relativePath),\n\t\t\t\t\tgenerated.contents,\n\t\t\t\t\t'',\n\t\t\t\t\tresults,\n\t\t\t\t\tdestinationDir\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprotected async writeFileIfChangedMixinResults(\n\t\tdestination: string,\n\t\tcontents: string,\n\t\tdescription: string,\n\t\tresults?: WriteResults,\n\t\tcwd = ''\n\t): Promise<WriteResults> {\n\t\tconst myResults: WriteResults = results ?? []\n\t\tlet desc: string | undefined = description\n\n\t\tconst name = pathUtil.basename(destination)\n\t\tlet action: GeneratedFile['action'] = 'skipped'\n\n\t\tif (diskUtil.isDir(destination)) {\n\t\t\tthrow new Error(`Can't write to a directory ${destination}.`)\n\t\t}\n\n\t\tconst fileDescription = this.getFileDescription(destination)\n\n\t\tif (!diskUtil.doesFileExist(destination)) {\n\t\t\tlet write = true\n\t\t\tif (\n\t\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\t\tfileDescription?.confirmPromptOnFirstWrite\n\t\t\t) {\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t\twrite = await this.ui.confirm(fileDescription.confirmPromptOnFirstWrite)\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'generated'\n\t\t\t}\n\t\t} else if (\n\t\t\tthis.isFileDifferent(destination, contents) &&\n\t\t\tthis.shouldOverwriteIfChanged(destination)\n\t\t) {\n\t\t\tconst cleanedName = this.cleanFilename(destination, cwd)\n\t\t\tconst settings = { skipped: [], ...this.settings.get('writer') }\n\t\t\tconst isAlwaysSkipped = settings.skipped.indexOf(cleanedName) > -1\n\t\t\tlet write = !isAlwaysSkipped\n\n\t\t\tif (!isAlwaysSkipped && this.shouldAskForOverwrite()) {\n\t\t\t\tif (!this.hasShownFirstWriteMessage && this.firstFileWriteMessage) {\n\t\t\t\t\tthis.hasShownFirstWriteMessage = true\n\t\t\t\t\tthis.ui.renderLine(this.firstFileWriteMessage)\n\t\t\t\t\tthis.ui.renderLine('')\n\t\t\t\t}\n\n\t\t\t\tconst answer = await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: `${cleanedName}`,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_OVERWRITE,\n\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_ALWAYS_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Always skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (answer === FILE_ACTION_ALWAYS_SKIP) {\n\t\t\t\t\tsettings.skipped.push(cleanedName)\n\t\t\t\t\tthis.settings.set('writer', settings)\n\t\t\t\t}\n\n\t\t\t\twrite = answer === FILE_ACTION_OVERWRITE\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'updated'\n\t\t\t}\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tdesc = fileDescription?.description\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tthrow new Error(\n\t\t\t\t`No FileDescription provided for ${destination.replace(\n\t\t\t\t\tcwd,\n\t\t\t\t\t''\n\t\t\t\t)}. Check your feature's fileDescriptions property.`\n\t\t\t)\n\t\t}\n\n\t\tmyResults.push({ name, description: desc, path: destination, action })\n\n\t\treturn myResults\n\t}\n\n\tprivate isFileDifferent(destination: string, contents: string) {\n\t\treturn diskUtil.isFileDifferent(destination, contents)\n\t}\n\n\tprivate cleanFilename(destination: string, cwd: string) {\n\t\tlet relativeFile = destination.replace(cwd, '')\n\t\tif (relativeFile[0] === pathUtil.sep) {\n\t\t\trelativeFile = relativeFile.substr(1)\n\t\t}\n\t\treturn relativeFile\n\t}\n\n\tprivate shouldOverwriteIfChanged(destination: string): boolean {\n\t\tif (!this.upgradeMode) {\n\t\t\treturn true\n\t\t}\n\n\t\tif (this.upgradeMode === 'forceEverything') {\n\t\t\treturn true\n\t\t}\n\n\t\tlet description: FileDescription | undefined =\n\t\t\tthis.getFileDescription(destination)\n\n\t\treturn description?.shouldOverwriteWhenChanged ?? false\n\t}\n\n\tprivate getFileDescription(destination: string): FileDescription | undefined {\n\t\tconst lower = destination.toLowerCase()\n\t\tfor (const d of this.fileDescriptions ?? []) {\n\t\t\tif (lower.search(d.path.toLowerCase()) > -1) {\n\t\t\t\treturn d\n\t\t\t}\n\t\t}\n\n\t\treturn undefined\n\t}\n\n\tprivate shouldAskForOverwrite() {\n\t\tif (\n\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\tthis.upgradeMode === 'askForChanged'\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprotected resolveFilenameWithFallback(\n\t\tdirOrFile: string,\n\t\tfallbackFileName: string\n\t) {\n\t\tconst isDir =\n\t\t\tdiskUtil.doesDirExist(dirOrFile) &&\n\t\t\tfs.lstatSync(dirOrFile).isDirectory() &&\n\t\t\tpathUtil.extname(dirOrFile).length === 0\n\t\treturn isDir ? diskUtil.resolvePath(dirOrFile, fallbackFileName) : dirOrFile\n\t}\n}\n"],"file":"AbstractWriter.js"}
1
+ {"version":3,"sources":["../../src/writers/AbstractWriter.ts"],"names":["AbstractWriter","options","templates","ui","term","upgradeMode","fileDescriptions","linter","settings","file","isLintingEnabled","startLoading","pathUtil","basename","fix","context","destinationDir","filesToWrite","filesToSkip","shouldConfirmBeforeWriting","firstFileWriteMessage","hasShownFirstWriteMessage","directoryTemplate","kind","code","files","results","generated","shouldWrite","indexOf","filename","shouldSkip","writeFileIfChangedMixinResults","join","relativePath","contents","destination","description","cwd","myResults","desc","name","action","diskUtil","isDir","Error","fileDescription","getFileDescription","doesFileExist","write","confirmPromptOnFirstWrite","stopLoading","confirm","writeFile","isFileDifferent","shouldOverwriteIfChanged","cleanedName","cleanFilename","skipped","get","isAlwaysSkipped","shouldAskForOverwrite","renderLine","prompt","type","label","choices","value","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP","answer","push","set","replace","path","relativeFile","sep","substr","shouldOverwriteWhenChanged","lower","toLowerCase","d","search","undefined","dirOrFile","fallbackFileName","doesDirExist","fs","lstatSync","isDirectory","extname","length","resolvePath"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;;;IA8B8BA,c;AAY7B,0BAAmBC,OAAnB,EAA2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+DAPG,EAOH;AAAA,yEANN,IAMM;AAAA;AAAA,wEAHP,KAGO;AAAA;AAC1C,SAAKC,SAAL,GAAiBD,OAAO,CAACC,SAAzB;AACA,SAAKC,EAAL,GAAUF,OAAO,CAACG,IAAlB;AACA,SAAKC,WAAL,GAAmBJ,OAAO,CAACI,WAA3B;AACA,SAAKC,gBAAL,GAAwBL,OAAO,CAACK,gBAAhC;AACA,SAAKC,MAAL,GAAcN,OAAO,CAACM,MAAtB;AACA,SAAKC,QAAL,GAAgBP,OAAO,CAACO,QAAxB;AACA;;;;;gGAED,iBAAqBC,IAArB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,qBACKT,cAAc,CAACU,gBADpB;AAAA;AAAA;AAAA;;AAEE,qBAAKP,EAAL,CAAQQ,YAAR,mBAAgCC,iBAASC,QAAT,CAAkBJ,IAAlB,CAAhC;AAFF;AAAA,uCAGQ,KAAKF,MAHb,iDAGQ,aAAaO,GAAb,CAAiBL,IAAjB,WAA6B,YAAM,CAAE,CAArC,CAHR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAeA,kBACCR,OADD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAIEc,gBAAAA,OAJF,GAUKd,OAVL,CAIEc,OAJF,EAKEC,cALF,GAUKf,OAVL,CAKEe,cALF,EAMEC,YANF,GAUKhB,OAVL,CAMEgB,YANF,EAOEC,WAPF,GAUKjB,OAVL,CAOEiB,WAPF,0BAUKjB,OAVL,CAQEkB,0BARF,EAQEA,0BARF,sCAQ+B,IAR/B,0BASEC,qBATF,GAUKnB,OAVL,CASEmB,qBATF;AAYC,qBAAKD,0BAAL,GAAkCA,0BAAlC;AACA,qBAAKC,qBAAL,GAA6BA,qBAA7B;AACA,qBAAKC,yBAAL,GAAiC,KAAjC;AAdD;AAAA,uBAgBqB,KAAKnB,SAAL,CAAeoB,iBAAf,CAAiC;AACpDC,kBAAAA,IAAI,EAAEtB,OAAO,CAACuB,IADsC;AAEpDT,kBAAAA,OAAO,EAAEA,OAAF,aAAEA,OAAF,cAAEA,OAAF,GAAa;AAFgC,iBAAjC,CAhBrB;;AAAA;AAgBOU,gBAAAA,KAhBP;AAqBKC,gBAAAA,OArBL,GAqB6B,EArB7B;AAAA,uDAuByBD,KAvBzB;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAuBYE,gBAAAA,SAvBZ;AAwBQC,gBAAAA,WAxBR,GAyBG,CAACX,YAAD,IAAiBA,YAAY,CAACY,OAAb,CAAqBF,SAAS,CAACG,QAA/B,IAA2C,CAAC,CAzBhE;AA0BQC,gBAAAA,UA1BR,GA2BGb,WAAW,IAAIA,WAAW,CAACW,OAAZ,CAAoBF,SAAS,CAACG,QAA9B,IAA0C,CAAC,CA3B7D;;AAAA,sBA6BMF,WAAW,IAAI,CAACG,UA7BtB;AAAA;AAAA;AAAA;;AAAA;AAAA,uBA8BmB,KAAKC,8BAAL,CACfpB,iBAASqB,IAAT,CAAcjB,cAAd,EAA8BW,SAAS,CAACO,YAAxC,CADe,EAEfP,SAAS,CAACQ,QAFK,EAGf,EAHe,EAIfT,OAJe,EAKfV,cALe,CA9BnB;;AAAA;AA8BGU,gBAAAA,OA9BH;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA,kDAwCQA,OAxCR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HA2CA,kBACCU,WADD,EAECD,QAFD,EAGCE,WAHD,EAICX,OAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAKCY,gBAAAA,GALD,8DAKO,EALP;AAOOC,gBAAAA,SAPP,GAOiCb,OAPjC,aAOiCA,OAPjC,cAOiCA,OAPjC,GAO4C,EAP5C;AAQKc,gBAAAA,IARL,GAQgCH,WARhC;AAUOI,gBAAAA,IAVP,GAUc7B,iBAASC,QAAT,CAAkBuB,WAAlB,CAVd;AAWKM,gBAAAA,MAXL,GAWuC,SAXvC;;AAAA,qBAaKC,2BAASC,KAAT,CAAeR,WAAf,CAbL;AAAA;AAAA;AAAA;;AAAA,sBAcQ,IAAIS,KAAJ,sCAAwCT,WAAxC,OAdR;;AAAA;AAiBOU,gBAAAA,eAjBP,GAiByB,KAAKC,kBAAL,CAAwBX,WAAxB,CAjBzB;;AAAA,oBAmBMO,2BAASK,aAAT,CAAuBZ,WAAvB,CAnBN;AAAA;AAAA;AAAA;;AAoBMa,gBAAAA,KApBN,GAoBc,IApBd;;AAAA,sBAuBG,KAAK9B,0BAAL,IACA2B,eADA,aACAA,eADA,eACAA,eAAe,CAAEI,yBAxBpB;AAAA;AAAA;AAAA;;AA0BG,qBAAK/C,EAAL,CAAQgD,WAAR;AA1BH;AAAA,uBA2BiB,KAAKhD,EAAL,CAAQiD,OAAR,CAAgBN,eAAe,CAACI,yBAAhC,CA3BjB;;AAAA;AA2BGD,gBAAAA,KA3BH;;AAAA;AA8BE,oBAAIA,KAAJ,EAAW;AACVN,6CAASU,SAAT,CAAmBjB,WAAnB,EAAgCD,QAAhC;;AACAO,kBAAAA,MAAM,GAAG,WAAT;AACA;;AAjCH;AAAA;;AAAA;AAAA,sBAmCE,KAAKY,eAAL,CAAqBlB,WAArB,EAAkCD,QAAlC,KACA,KAAKoB,wBAAL,CAA8BnB,WAA9B,CApCF;AAAA;AAAA;AAAA;;AAsCQoB,gBAAAA,WAtCR,GAsCsB,KAAKC,aAAL,CAAmBrB,WAAnB,EAAgCE,GAAhC,CAtCtB;AAuCQ9B,gBAAAA,QAvCR;AAuCqBkD,kBAAAA,OAAO,EAAE;AAvC9B,mBAuCqC,KAAKlD,QAAL,CAAcmD,GAAd,CAAkB,QAAlB,CAvCrC;AAwCQC,gBAAAA,eAxCR,GAwC0BpD,QAAQ,CAACkD,OAAT,CAAiB7B,OAAjB,CAAyB2B,WAAzB,IAAwC,CAAC,CAxCnE;AAyCMP,gBAAAA,MAzCN,GAyCc,CAACW,eAzCf;;AAAA,sBA2CM,CAACA,eAAD,IAAoB,KAAKC,qBAAL,EA3C1B;AAAA;AAAA;AAAA;;AA4CG,oBAAI,CAAC,KAAKxC,yBAAN,IAAmC,KAAKD,qBAA5C,EAAmE;AAClE,uBAAKC,yBAAL,GAAiC,IAAjC;AACA,uBAAKlB,EAAL,CAAQ2D,UAAR,CAAmB,KAAK1C,qBAAxB;AACA,uBAAKjB,EAAL,CAAQ2D,UAAR,CAAmB,EAAnB;AACA;;AAhDJ;AAAA,uBAkDwB,KAAK3D,EAAL,CAAQ4D,MAAR,CAAe;AACnCC,kBAAAA,IAAI,EAAE,QAD6B;AAEnCC,kBAAAA,KAAK,YAAKT,WAAL,CAF8B;AAGnCvD,kBAAAA,OAAO,EAAE;AACRiE,oBAAAA,OAAO,EAAE,CACR;AACCC,sBAAAA,KAAK,EAAEC,gCADR;AAECH,sBAAAA,KAAK,EAAE;AAFR,qBADQ,EAKR;AACCE,sBAAAA,KAAK,EAAEE,2BADR;AAECJ,sBAAAA,KAAK,EAAE;AAFR,qBALQ,EASR;AACCE,sBAAAA,KAAK,EAAEG,kCADR;AAECL,sBAAAA,KAAK,EAAE;AAFR,qBATQ;AADD;AAH0B,iBAAf,CAlDxB;;AAAA;AAkDSM,gBAAAA,MAlDT;;AAuEG,oBAAIA,MAAM,KAAKD,kCAAf,EAAwC;AACvC9D,kBAAAA,QAAQ,CAACkD,OAAT,CAAiBc,IAAjB,CAAsBhB,WAAtB;AACA,uBAAKhD,QAAL,CAAciE,GAAd,CAAkB,QAAlB,EAA4BjE,QAA5B;AACA;;AAEDyC,gBAAAA,MAAK,GAAGsB,MAAM,KAAKH,gCAAnB;;AA5EH;AA+EE,oBAAInB,MAAJ,EAAW;AACVN,6CAASU,SAAT,CAAmBjB,WAAnB,EAAgCD,QAAhC;;AACAO,kBAAAA,MAAM,GAAG,SAAT;AACA;;AAlFH;AAqFC,oBAAI,CAACF,IAAL,EAAW;AACVA,kBAAAA,IAAI,GAAGM,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAET,WAAxB;AACA;;AAvFF,oBAyFMG,IAzFN;AAAA;AAAA;AAAA;;AAAA,sBA0FQ,IAAIK,KAAJ,2CAC8BT,WAAW,CAACsC,OAAZ,CAClCpC,GADkC,EAElC,EAFkC,CAD9B,uDA1FR;;AAAA;AAkGCC,gBAAAA,SAAS,CAACiC,IAAV,CAAe;AAAE/B,kBAAAA,IAAI,EAAJA,IAAF;AAAQJ,kBAAAA,WAAW,EAAEG,IAArB;AAA2BmC,kBAAAA,IAAI,EAAEvC,WAAjC;AAA8CM,kBAAAA,MAAM,EAANA;AAA9C,iBAAf;AAlGD,kDAoGQH,SApGR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAuGA,yBAAwBH,WAAxB,EAA6CD,QAA7C,EAA+D;AAC9D,aAAOQ,2BAASW,eAAT,CAAyBlB,WAAzB,EAAsCD,QAAtC,CAAP;AACA;;;WAED,uBAAsBC,WAAtB,EAA2CE,GAA3C,EAAwD;AACvD,UAAIsC,YAAY,GAAGxC,WAAW,CAACsC,OAAZ,CAAoBpC,GAApB,EAAyB,EAAzB,CAAnB;;AACA,UAAIsC,YAAY,CAAC,CAAD,CAAZ,KAAoBhE,iBAASiE,GAAjC,EAAsC;AACrCD,QAAAA,YAAY,GAAGA,YAAY,CAACE,MAAb,CAAoB,CAApB,CAAf;AACA;;AACD,aAAOF,YAAP;AACA;;;WAED,kCAAiCxC,WAAjC,EAA+D;AAAA;;AAC9D,UAAI,CAAC,KAAK/B,WAAV,EAAuB;AACtB,eAAO,IAAP;AACA;;AAED,UAAI,KAAKA,WAAL,KAAqB,iBAAzB,EAA4C;AAC3C,eAAO,IAAP;AACA;;AAED,UAAIgC,WAAwC,GAC3C,KAAKU,kBAAL,CAAwBX,WAAxB,CADD;AAGA,sCAAOC,WAAP,aAAOA,WAAP,uBAAOA,WAAW,CAAE0C,0BAApB,yEAAkD,KAAlD;AACA;;;WAED,4BAA2B3C,WAA3B,EAA6E;AAAA;;AAC5E,UAAM4C,KAAK,GAAG5C,WAAW,CAAC6C,WAAZ,EAAd;;AAD4E,2EAE5D,KAAK3E,gBAFuD,yEAEnC,EAFmC;AAAA;;AAAA;AAE5E,+DAA6C;AAAA,cAAlC4E,CAAkC;;AAC5C,cAAIF,KAAK,CAACG,MAAN,CAAaD,CAAC,CAACP,IAAF,CAAOM,WAAP,EAAb,IAAqC,CAAC,CAA1C,EAA6C;AAC5C,mBAAOC,CAAP;AACA;AACD;AAN2E;AAAA;AAAA;AAAA;AAAA;;AAQ5E,aAAOE,SAAP;AACA;;;WAED,iCAAgC;AAC/B,UACC,KAAKjE,0BAAL,IACA,KAAKd,WAAL,KAAqB,eAFtB,EAGE;AACD,eAAO,IAAP;AACA;;AAED,aAAO,KAAP;AACA;;;WAED,qCACCgF,SADD,EAECC,gBAFD,EAGE;AACD,UAAM1C,KAAK,GACVD,2BAAS4C,YAAT,CAAsBF,SAAtB,KACAG,eAAGC,SAAH,CAAaJ,SAAb,EAAwBK,WAAxB,EADA,IAEA9E,iBAAS+E,OAAT,CAAiBN,SAAjB,EAA4BO,MAA5B,KAAuC,CAHxC;AAIA,aAAOhD,KAAK,GAAGD,2BAASkD,WAAT,CAAqBR,SAArB,EAAgCC,gBAAhC,CAAH,GAAuDD,SAAnE;AACA;;;WApND,0BAA+B;AAC9B,WAAK3E,gBAAL,GAAwB,KAAxB;AACA;;;WAED,yBAA8B;AAC7B,WAAKA,gBAAL,GAAwB,IAAxB;AACA;;;;;;iCAlC4BV,c,sBAOK,I","sourcesContent":["import fs from 'fs'\nimport pathUtil from 'path'\nimport { diskUtil, SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode, Templates } from '@sprucelabs/spruce-templates'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../constants'\nimport LintService from '../services/LintService'\nimport { FileDescription, GeneratedFile, UpgradeMode } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\n\nexport type WriteResults = GeneratedFile[]\n\nexport interface WriterOptions {\n\ttemplates: Templates\n\tterm: GraphicsInterface\n\tupgradeMode?: UpgradeMode\n\tfileDescriptions: FileDescription[]\n\tlinter?: LintService\n\tsettings: SettingsService\n}\n\nexport interface WriteDirectoryTemplateOptions {\n\tdestinationDir: string\n\tcode: DirectoryTemplateCode\n\tfilesToWrite?: string[]\n\tfilesToSkip?: string[]\n\tcontext: any\n\tshouldConfirmBeforeWriting?: boolean\n\tfirstFileWriteMessage?: string\n}\n\nexport default abstract class AbstractWriter {\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprivate linter?: LintService\n\tprivate upgradeMode: UpgradeMode\n\tprivate fileDescriptions: FileDescription[] = []\n\tprivate shouldConfirmBeforeWriting = true\n\tprivate static isLintingEnabled = true\n\tprivate firstFileWriteMessage?: string\n\tprivate hasShownFirstWriteMessage = false\n\tprivate settings: SettingsService<string>\n\n\tpublic constructor(options: WriterOptions) {\n\t\tthis.templates = options.templates\n\t\tthis.ui = options.term\n\t\tthis.upgradeMode = options.upgradeMode\n\t\tthis.fileDescriptions = options.fileDescriptions\n\t\tthis.linter = options.linter\n\t\tthis.settings = options.settings\n\t}\n\n\tprotected async lint(file: string) {\n\t\tif (AbstractWriter.isLintingEnabled) {\n\t\t\tthis.ui.startLoading(`Linting ${pathUtil.basename(file)}...`)\n\t\t\tawait this.linter?.fix(file).catch(() => {})\n\t\t}\n\t}\n\n\tpublic static disableLinting() {\n\t\tthis.isLintingEnabled = false\n\t}\n\n\tpublic static enableLinting() {\n\t\tthis.isLintingEnabled = true\n\t}\n\n\tprotected async writeDirectoryTemplate(\n\t\toptions: WriteDirectoryTemplateOptions\n\t) {\n\t\tconst {\n\t\t\tcontext,\n\t\t\tdestinationDir,\n\t\t\tfilesToWrite,\n\t\t\tfilesToSkip,\n\t\t\tshouldConfirmBeforeWriting = true,\n\t\t\tfirstFileWriteMessage,\n\t\t} = options\n\n\t\tthis.shouldConfirmBeforeWriting = shouldConfirmBeforeWriting\n\t\tthis.firstFileWriteMessage = firstFileWriteMessage\n\t\tthis.hasShownFirstWriteMessage = false\n\n\t\tconst files = await this.templates.directoryTemplate({\n\t\t\tkind: options.code,\n\t\t\tcontext: context ?? {},\n\t\t})\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const generated of files) {\n\t\t\tconst shouldWrite =\n\t\t\t\t!filesToWrite || filesToWrite.indexOf(generated.filename) > -1\n\t\t\tconst shouldSkip =\n\t\t\t\tfilesToSkip && filesToSkip.indexOf(generated.filename) > -1\n\n\t\t\tif (shouldWrite && !shouldSkip) {\n\t\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\t\tpathUtil.join(destinationDir, generated.relativePath),\n\t\t\t\t\tgenerated.contents,\n\t\t\t\t\t'',\n\t\t\t\t\tresults,\n\t\t\t\t\tdestinationDir\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprotected async writeFileIfChangedMixinResults(\n\t\tdestination: string,\n\t\tcontents: string,\n\t\tdescription: string,\n\t\tresults?: WriteResults,\n\t\tcwd = ''\n\t): Promise<WriteResults> {\n\t\tconst myResults: WriteResults = results ?? []\n\t\tlet desc: string | undefined = description\n\n\t\tconst name = pathUtil.basename(destination)\n\t\tlet action: GeneratedFile['action'] = 'skipped'\n\n\t\tif (diskUtil.isDir(destination)) {\n\t\t\tthrow new Error(`Can't write to a directory ${destination}.`)\n\t\t}\n\n\t\tconst fileDescription = this.getFileDescription(destination)\n\n\t\tif (!diskUtil.doesFileExist(destination)) {\n\t\t\tlet write = true\n\n\t\t\tif (\n\t\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\t\tfileDescription?.confirmPromptOnFirstWrite\n\t\t\t) {\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t\twrite = await this.ui.confirm(fileDescription.confirmPromptOnFirstWrite)\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'generated'\n\t\t\t}\n\t\t} else if (\n\t\t\tthis.isFileDifferent(destination, contents) &&\n\t\t\tthis.shouldOverwriteIfChanged(destination)\n\t\t) {\n\t\t\tconst cleanedName = this.cleanFilename(destination, cwd)\n\t\t\tconst settings = { skipped: [], ...this.settings.get('writer') }\n\t\t\tconst isAlwaysSkipped = settings.skipped.indexOf(cleanedName) > -1\n\t\t\tlet write = !isAlwaysSkipped\n\n\t\t\tif (!isAlwaysSkipped && this.shouldAskForOverwrite()) {\n\t\t\t\tif (!this.hasShownFirstWriteMessage && this.firstFileWriteMessage) {\n\t\t\t\t\tthis.hasShownFirstWriteMessage = true\n\t\t\t\t\tthis.ui.renderLine(this.firstFileWriteMessage)\n\t\t\t\t\tthis.ui.renderLine('')\n\t\t\t\t}\n\n\t\t\t\tconst answer = await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: `${cleanedName}`,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_OVERWRITE,\n\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_ALWAYS_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Always skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (answer === FILE_ACTION_ALWAYS_SKIP) {\n\t\t\t\t\tsettings.skipped.push(cleanedName)\n\t\t\t\t\tthis.settings.set('writer', settings)\n\t\t\t\t}\n\n\t\t\t\twrite = answer === FILE_ACTION_OVERWRITE\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'updated'\n\t\t\t}\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tdesc = fileDescription?.description\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tthrow new Error(\n\t\t\t\t`No FileDescription provided for ${destination.replace(\n\t\t\t\t\tcwd,\n\t\t\t\t\t''\n\t\t\t\t)}. Check your feature's fileDescriptions property.`\n\t\t\t)\n\t\t}\n\n\t\tmyResults.push({ name, description: desc, path: destination, action })\n\n\t\treturn myResults\n\t}\n\n\tprivate isFileDifferent(destination: string, contents: string) {\n\t\treturn diskUtil.isFileDifferent(destination, contents)\n\t}\n\n\tprivate cleanFilename(destination: string, cwd: string) {\n\t\tlet relativeFile = destination.replace(cwd, '')\n\t\tif (relativeFile[0] === pathUtil.sep) {\n\t\t\trelativeFile = relativeFile.substr(1)\n\t\t}\n\t\treturn relativeFile\n\t}\n\n\tprivate shouldOverwriteIfChanged(destination: string): boolean {\n\t\tif (!this.upgradeMode) {\n\t\t\treturn true\n\t\t}\n\n\t\tif (this.upgradeMode === 'forceEverything') {\n\t\t\treturn true\n\t\t}\n\n\t\tlet description: FileDescription | undefined =\n\t\t\tthis.getFileDescription(destination)\n\n\t\treturn description?.shouldOverwriteWhenChanged ?? false\n\t}\n\n\tprivate getFileDescription(destination: string): FileDescription | undefined {\n\t\tconst lower = destination.toLowerCase()\n\t\tfor (const d of this.fileDescriptions ?? []) {\n\t\t\tif (lower.search(d.path.toLowerCase()) > -1) {\n\t\t\t\treturn d\n\t\t\t}\n\t\t}\n\n\t\treturn undefined\n\t}\n\n\tprivate shouldAskForOverwrite() {\n\t\tif (\n\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\tthis.upgradeMode === 'askForChanged'\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprotected resolveFilenameWithFallback(\n\t\tdirOrFile: string,\n\t\tfallbackFileName: string\n\t) {\n\t\tconst isDir =\n\t\t\tdiskUtil.doesDirExist(dirOrFile) &&\n\t\t\tfs.lstatSync(dirOrFile).isDirectory() &&\n\t\t\tpathUtil.extname(dirOrFile).length === 0\n\t\treturn isDir ? diskUtil.resolvePath(dirOrFile, fallbackFileName) : dirOrFile\n\t}\n}\n"],"file":"AbstractWriter.js"}
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  ]
19
19
  },
20
20
  "license": "MIT",
21
- "version": "14.27.0",
21
+ "version": "14.28.3",
22
22
  "bin": {
23
23
  "spruce": "./build/index.js"
24
24
  },
@@ -75,26 +75,26 @@
75
75
  "@babel/cli": "^7.16.0",
76
76
  "@babel/plugin-proposal-decorators": "^7.16.4",
77
77
  "@babel/runtime": "^7.16.3",
78
- "@jest/reporters": "^27.3.1",
79
- "@sprucelabs/error": "^5.0.299",
80
- "@sprucelabs/heartwood-view-controllers": "^51.1.3",
81
- "@sprucelabs/jest-json-reporter": "^6.0.252",
82
- "@sprucelabs/mercury-client": "^17.1.113",
83
- "@sprucelabs/mercury-event-emitter": "^17.1.113",
84
- "@sprucelabs/mercury-types": "^26.1.916",
85
- "@sprucelabs/schema": "^25.4.26",
86
- "@sprucelabs/spruce-core-schemas": "^22.6.187",
87
- "@sprucelabs/spruce-event-plugin": "^14.1.11",
88
- "@sprucelabs/spruce-event-utils": "^17.1.187",
89
- "@sprucelabs/spruce-skill-booter": "^14.1.11",
90
- "@sprucelabs/spruce-skill-utils": "^22.1.17",
91
- "@sprucelabs/spruce-templates": "^14.27.0",
78
+ "@jest/reporters": "^27.4.2",
79
+ "@sprucelabs/error": "^5.0.310",
80
+ "@sprucelabs/heartwood-view-controllers": "^51.6.12",
81
+ "@sprucelabs/jest-json-reporter": "^6.0.260",
82
+ "@sprucelabs/mercury-client": "^17.4.7",
83
+ "@sprucelabs/mercury-event-emitter": "^17.4.7",
84
+ "@sprucelabs/mercury-types": "^26.1.964",
85
+ "@sprucelabs/schema": "^25.4.53",
86
+ "@sprucelabs/spruce-core-schemas": "^22.6.228",
87
+ "@sprucelabs/spruce-event-plugin": "^17.0.0",
88
+ "@sprucelabs/spruce-event-utils": "^17.1.240",
89
+ "@sprucelabs/spruce-skill-booter": "^17.0.0",
90
+ "@sprucelabs/spruce-skill-utils": "^22.1.34",
91
+ "@sprucelabs/spruce-templates": "^14.28.3",
92
92
  "cfonts": "^2.10.0",
93
93
  "chalk": "^4.1.2",
94
94
  "chokidar": "^3.5.2",
95
95
  "cli-table3": "^0.6.0",
96
96
  "commander": "^7.2.0",
97
- "core-js": "^3.19.1",
97
+ "core-js": "^3.19.2",
98
98
  "emphasize": "^4.2.0",
99
99
  "fs-extra": "^10.0.0",
100
100
  "gifwrap": "SimenB/gifwrap#patch-1",
@@ -117,16 +117,16 @@
117
117
  "uuid": "^8.3.2"
118
118
  },
119
119
  "devDependencies": {
120
- "@sprucelabs/data-stores": "^7.1.13",
121
- "@sprucelabs/jest-sheets-reporter": "^1.2.259",
122
- "@sprucelabs/mercury-core-events": "^1.6.122",
123
- "@sprucelabs/resolve-path-aliases": "^1.0.230",
124
- "@sprucelabs/spruce-conversation-plugin": "^14.1.11",
125
- "@sprucelabs/spruce-deploy-plugin": "^14.1.11",
126
- "@sprucelabs/spruce-store-plugin": "^14.1.11",
127
- "@sprucelabs/spruce-test-fixtures": "^14.1.11",
128
- "@sprucelabs/test": "^7.7.234",
129
- "@sprucelabs/test-utils": "^3.0.281",
120
+ "@sprucelabs/data-stores": "^7.1.42",
121
+ "@sprucelabs/jest-sheets-reporter": "^1.2.265",
122
+ "@sprucelabs/mercury-core-events": "^1.6.179",
123
+ "@sprucelabs/resolve-path-aliases": "^1.0.234",
124
+ "@sprucelabs/spruce-conversation-plugin": "^17.0.0",
125
+ "@sprucelabs/spruce-deploy-plugin": "^17.0.0",
126
+ "@sprucelabs/spruce-store-plugin": "^17.0.0",
127
+ "@sprucelabs/spruce-test-fixtures": "^17.0.0",
128
+ "@sprucelabs/test": "^7.7.243",
129
+ "@sprucelabs/test-utils": "^3.0.293",
130
130
  "@types/blessed": "^0.1.19",
131
131
  "@types/eslint": "^8.2.0",
132
132
  "@types/fs-extra": "^9.0.13",
@@ -136,7 +136,7 @@
136
136
  "@types/lodash": "^4.14.177",
137
137
  "@types/md5": "^2.3.1",
138
138
  "@types/mkdirp": "^1.0.2",
139
- "@types/node": "^16.11.10",
139
+ "@types/node": "^16.11.11",
140
140
  "@types/promise.allsettled": "^1.0.3",
141
141
  "@types/ps-node": "^0.1.1",
142
142
  "@types/rimraf": "^3.0.2",
@@ -153,8 +153,8 @@
153
153
  "eslint": "^8.3.0",
154
154
  "eslint-config-spruce": "^10.10.16",
155
155
  "find-process": "^1.4.7",
156
- "jest": "^27.3.1",
157
- "jest-circus": "^27.3.1",
156
+ "jest": "^27.4.3",
157
+ "jest-circus": "^27.4.2",
158
158
  "jest-junit": "^13.0.0",
159
159
  "jest-reporters": "^0.0.2",
160
160
  "prettier": "^2.5.0",
@@ -595,5 +595,5 @@
595
595
  "ora"
596
596
  ]
597
597
  },
598
- "gitHead": "dcce901d5e0509f386fc4c345bdf6ca490b4a83c"
598
+ "gitHead": "577201f4219eae0b53cce07dc9401d28adcf2497"
599
599
  }