@sprucelabs/spruce-cli 18.2.0 → 18.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/.spruce/events/events.contract.d.ts +159 -0
  3. package/build/.spruce/events/events.contract.js +5 -1
  4. package/build/.spruce/events/events.contract.js.map +1 -1
  5. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +46 -0
  6. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +57 -0
  7. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -0
  8. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +68 -0
  9. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +78 -0
  10. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -0
  11. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +40 -0
  12. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +51 -0
  13. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -0
  14. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +9 -0
  15. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +17 -0
  16. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -0
  17. package/build/.spruce/schemas/schemas.types.d.ts +158 -55
  18. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  19. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.d.ts +3 -0
  20. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +70 -0
  21. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -0
  22. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.d.ts +3 -0
  23. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +35 -0
  24. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -0
  25. package/build/.spruce/settings.json +2 -1
  26. package/build/GlobalEmitter.d.ts +13 -38
  27. package/build/GlobalEmitter.js +3 -6
  28. package/build/GlobalEmitter.js.map +1 -1
  29. package/build/__tests__/behavioral/TestingAConversation.test.d.ts +2 -1
  30. package/build/__tests__/behavioral/TestingAConversation.test.js +74 -84
  31. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  32. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +38 -13
  33. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  34. package/build/__tests__/behavioral/events/EventWriter.test.d.ts +4 -0
  35. package/build/__tests__/behavioral/events/EventWriter.test.js +116 -0
  36. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -0
  37. package/build/__tests__/behavioral/{ListeningToCoreEvents.test.d.ts → events/ListeningToCoreEvents.test.d.ts} +1 -1
  38. package/build/__tests__/behavioral/{ListeningToCoreEvents.test.js → events/ListeningToCoreEvents.test.js} +1 -1
  39. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -0
  40. package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.d.ts → events/RegisteringEventsOnBoot.test.d.ts} +1 -1
  41. package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.js → events/RegisteringEventsOnBoot.test.js} +2 -2
  42. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -0
  43. package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.d.ts → events/RegisteringGlobalEvents.test.d.ts} +2 -3
  44. package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.js → events/RegisteringGlobalEvents.test.js} +45 -70
  45. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -0
  46. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
  47. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
  48. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  49. package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.d.ts → events/SyncingEventsOnlyFromDependencies.test.d.ts} +1 -1
  50. package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.js → events/SyncingEventsOnlyFromDependencies.test.js} +1 -1
  51. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
  52. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
  53. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
  54. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  55. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
  56. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
  57. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
  58. package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +5 -4
  59. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +97 -63
  60. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  61. package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
  62. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
  63. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
  64. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
  65. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
  66. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  67. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
  68. package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
  69. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
  70. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
  71. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
  72. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
  73. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
  74. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
  75. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
  76. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
  77. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
  78. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
  79. package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.d.ts → schemas/CreatingSchemasWithGenerics.test.d.ts} +1 -1
  80. package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.js → schemas/CreatingSchemasWithGenerics.test.js} +2 -2
  81. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -0
  82. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
  83. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
  84. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  85. package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.d.ts → schemas/SettingUpSchemasForModuleDistribution.test.d.ts} +1 -1
  86. package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.js → schemas/SettingUpSchemasForModuleDistribution.test.js} +3 -3
  87. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -0
  88. package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.d.ts → skill/InstallingASkillAtAnOrg.test.d.ts} +1 -1
  89. package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.js → skill/InstallingASkillAtAnOrg.test.js} +2 -2
  90. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -0
  91. package/build/__tests__/behavioral/{LoggingInAsASkill.test.d.ts → skill/LoggingInAsASkill.test.d.ts} +1 -1
  92. package/build/__tests__/behavioral/{LoggingInAsASkill.test.js → skill/LoggingInAsASkill.test.js} +2 -2
  93. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -0
  94. package/build/__tests__/behavioral/{RebuildingASkill.test.d.ts → skill/RebuildingASkill.test.d.ts} +1 -1
  95. package/build/__tests__/behavioral/{RebuildingASkill.test.js → skill/RebuildingASkill.test.js} +2 -2
  96. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -0
  97. package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
  98. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  99. package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.d.ts → tests/SettingUpASkillForTesting.test.d.ts} +1 -1
  100. package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.js → tests/SettingUpASkillForTesting.test.js} +2 -2
  101. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -0
  102. package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.d.ts → tests/TestReporterSettingsRemembered.test.d.ts} +1 -1
  103. package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.js → tests/TestReporterSettingsRemembered.test.js} +1 -1
  104. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -0
  105. package/build/__tests__/behavioral/{TestingDataStores.test.d.ts → tests/TestingDataStores.test.d.ts} +1 -1
  106. package/build/__tests__/behavioral/{TestingDataStores.test.js → tests/TestingDataStores.test.js} +3 -3
  107. package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -0
  108. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
  109. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  110. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
  111. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  112. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
  113. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  114. package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.d.ts → views/RegisteringSkillViewOnBoot.test.d.ts} +4 -4
  115. package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.js → views/RegisteringSkillViewOnBoot.test.js} +2 -2
  116. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -0
  117. package/build/__tests__/behavioral/{WatchingSkillViews.test.d.ts → views/WatchingSkillViews.test.d.ts} +1 -1
  118. package/build/__tests__/behavioral/{WatchingSkillViews.test.js → views/WatchingSkillViews.test.js} +2 -2
  119. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -0
  120. package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
  121. package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
  122. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  123. package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
  124. package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
  125. package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
  126. package/build/__tests__/implementation/SkillStore.test.js +3 -4
  127. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  128. package/build/features/AbstractAction.d.ts +1 -1
  129. package/build/features/AbstractAction.js.map +1 -1
  130. package/build/features/AbstractFeature.d.ts +3 -3
  131. package/build/features/AbstractFeature.js +8 -8
  132. package/build/features/AbstractFeature.js.map +1 -1
  133. package/build/features/ActionExecuter.d.ts +1 -1
  134. package/build/features/ActionExecuter.js +3 -4
  135. package/build/features/ActionExecuter.js.map +1 -1
  136. package/build/features/ActionFactory.d.ts +12 -5
  137. package/build/features/ActionFactory.js +27 -6
  138. package/build/features/ActionFactory.js.map +1 -1
  139. package/build/features/ActionQuestionAsker.d.ts +1 -1
  140. package/build/features/ActionQuestionAsker.js +6 -6
  141. package/build/features/ActionQuestionAsker.js.map +1 -1
  142. package/build/features/conversation/ConversationFeature.js +1 -1
  143. package/build/features/conversation/ConversationFeature.js.map +1 -1
  144. package/build/features/dependencies/DependencyFeature.js +1 -1
  145. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  146. package/build/features/deploy/actions/HerokuAction.js +31 -33
  147. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  148. package/build/features/error/ErrorFeature.js +4 -4
  149. package/build/features/error/ErrorFeature.js.map +1 -1
  150. package/build/features/event/EventFeature.d.ts +8 -8
  151. package/build/features/event/EventFeature.js +7 -4
  152. package/build/features/event/EventFeature.js.map +1 -1
  153. package/build/features/event/actions/CreateAction.js.map +1 -1
  154. package/build/features/event/actions/ListenAction.js.map +1 -1
  155. package/build/features/event/stores/EventStore.d.ts +9 -9
  156. package/build/features/event/stores/EventStore.js +26 -26
  157. package/build/features/event/stores/EventStore.js.map +1 -1
  158. package/build/features/eventContract/EventContractFeature.js +4 -1
  159. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  160. package/build/features/eventContract/actions/PullAction.js +10 -5
  161. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  162. package/build/features/features.types.d.ts +2 -37
  163. package/build/features/features.types.js +0 -41
  164. package/build/features/features.types.js.map +1 -1
  165. package/build/features/log/LogFeature.js +1 -1
  166. package/build/features/log/LogFeature.js.map +1 -1
  167. package/build/features/node/NodeFeature.js.map +1 -1
  168. package/build/features/organization/actions/InstallAction.js.map +1 -1
  169. package/build/features/permission/PermissionFeature.d.ts +12 -2
  170. package/build/features/permission/PermissionFeature.js +138 -15
  171. package/build/features/permission/PermissionFeature.js.map +1 -1
  172. package/build/features/permission/actions/CreateAction.js +4 -1
  173. package/build/features/permission/actions/CreateAction.js.map +1 -1
  174. package/build/features/permission/actions/SyncAction.d.ts +5 -1
  175. package/build/features/permission/actions/SyncAction.js +28 -10
  176. package/build/features/permission/actions/SyncAction.js.map +1 -1
  177. package/build/features/permission/stores/PermissionStore.d.ts +6 -1
  178. package/build/features/permission/stores/PermissionStore.js +43 -31
  179. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  180. package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
  181. package/build/features/permission/writers/PermissionWriter.js +67 -18
  182. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  183. package/build/features/person/PersonFeature.js +1 -1
  184. package/build/features/person/PersonFeature.js.map +1 -1
  185. package/build/features/sandbox/SandboxFeature.js +1 -1
  186. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  187. package/build/features/schema/SchemaFeature.d.ts +8 -8
  188. package/build/features/schema/SchemaFeature.js +4 -4
  189. package/build/features/schema/SchemaFeature.js.map +1 -1
  190. package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
  191. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  192. package/build/features/skill/SkillFeature.d.ts +11 -11
  193. package/build/features/skill/SkillFeature.js +2 -2
  194. package/build/features/skill/SkillFeature.js.map +1 -1
  195. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  196. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  197. package/build/features/skill/stores/SkillStore.js +1 -2
  198. package/build/features/skill/stores/SkillStore.js.map +1 -1
  199. package/build/features/store/StoreFeature.js +1 -1
  200. package/build/features/store/StoreFeature.js.map +1 -1
  201. package/build/features/store/actions/SyncAction.d.ts +1 -1
  202. package/build/features/store/actions/SyncAction.js.map +1 -1
  203. package/build/features/test/TestFeature.js +1 -1
  204. package/build/features/test/TestFeature.js.map +1 -1
  205. package/build/features/view/ViewFeature.js +1 -1
  206. package/build/features/view/ViewFeature.js.map +1 -1
  207. package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
  208. package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
  209. package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
  210. package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
  211. package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
  212. package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
  213. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
  214. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  215. package/build/services/CommandService.d.ts +2 -2
  216. package/build/services/CommandService.js +6 -6
  217. package/build/services/CommandService.js.map +1 -1
  218. package/build/services/PkgService.d.ts +1 -0
  219. package/build/services/PkgService.js +5 -0
  220. package/build/services/PkgService.js.map +1 -1
  221. package/build/tests/AbstractCliTest.d.ts +7 -3
  222. package/build/tests/AbstractCliTest.js +81 -45
  223. package/build/tests/AbstractCliTest.js.map +1 -1
  224. package/build/tests/buildTestCache.js +7 -0
  225. package/build/tests/buildTestCache.js.map +1 -1
  226. package/build/tests/fixtures/FeatureFixture.js +1 -0
  227. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  228. package/build/tests/utilities/test.utility.d.ts +2 -0
  229. package/build/tests/utilities/test.utility.js +6 -0
  230. package/build/tests/utilities/test.utility.js.map +1 -1
  231. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  232. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
  233. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
  234. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
  235. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
  236. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
  237. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
  238. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
  239. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
  240. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  241. package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +20 -2
  242. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +20 -2
  243. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
  244. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +2 -0
  245. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
  246. package/node_modules/@typescript-eslint/types/package.json +2 -2
  247. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
  248. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +2 -0
  249. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
  250. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +15 -3
  251. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
  252. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
  253. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
  254. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +2 -0
  255. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
  256. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  257. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
  258. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -49
  259. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
  260. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  261. package/package.json +65 -33
  262. package/src/.spruce/events/events.contract.ts +24 -0
  263. package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
  264. package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
  265. package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
  266. package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
  267. package/src/.spruce/schemas/schemas.types.ts +171 -52
  268. package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
  269. package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
  270. package/src/.spruce/settings.json +2 -1
  271. package/src/GlobalEmitter.ts +2 -7
  272. package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
  273. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
  274. package/src/__tests__/behavioral/events/EventWriter.test.ts +75 -0
  275. package/src/__tests__/behavioral/{ListeningToCoreEvents.test.ts → events/ListeningToCoreEvents.test.ts} +1 -1
  276. package/src/__tests__/behavioral/{RegisteringEventsOnBoot.test.ts → events/RegisteringEventsOnBoot.test.ts} +2 -2
  277. package/src/__tests__/behavioral/{RegisteringGlobalEvents.test.ts → events/RegisteringGlobalEvents.test.ts} +4 -12
  278. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
  279. package/src/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.ts → events/SyncingEventsOnlyFromDependencies.test.ts} +2 -2
  280. package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
  281. package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
  282. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +96 -38
  283. package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +24 -0
  284. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
  285. package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
  286. package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
  287. package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
  288. package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
  289. package/src/__tests__/behavioral/{CreatingSchemasWithGenerics.test.ts → schemas/CreatingSchemasWithGenerics.test.ts} +2 -2
  290. package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
  291. package/src/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.ts → schemas/SettingUpSchemasForModuleDistribution.test.ts} +4 -4
  292. package/src/__tests__/behavioral/{InstallingASkillAtAnOrg.test.ts → skill/InstallingASkillAtAnOrg.test.ts} +2 -2
  293. package/src/__tests__/behavioral/{LoggingInAsASkill.test.ts → skill/LoggingInAsASkill.test.ts} +3 -3
  294. package/src/__tests__/behavioral/{RebuildingASkill.test.ts → skill/RebuildingASkill.test.ts} +2 -2
  295. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
  296. package/src/__tests__/behavioral/{SettingUpASkillForTesting.test.ts → tests/SettingUpASkillForTesting.test.ts} +2 -2
  297. package/src/__tests__/behavioral/{TestReporterSettingsRemembered.test.ts → tests/TestReporterSettingsRemembered.test.ts} +2 -2
  298. package/src/__tests__/behavioral/{TestingDataStores.test.ts → tests/TestingDataStores.test.ts} +3 -3
  299. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
  300. package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
  301. package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
  302. package/src/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.ts → views/RegisteringSkillViewOnBoot.test.ts} +2 -2
  303. package/src/__tests__/behavioral/{WatchingSkillViews.test.ts → views/WatchingSkillViews.test.ts} +3 -3
  304. package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
  305. package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
  306. package/src/__tests__/implementation/SkillStore.test.ts +1 -2
  307. package/src/features/AbstractAction.ts +2 -2
  308. package/src/features/AbstractFeature.ts +8 -8
  309. package/src/features/ActionExecuter.ts +4 -5
  310. package/src/features/ActionFactory.ts +44 -20
  311. package/src/features/ActionQuestionAsker.ts +17 -17
  312. package/src/features/conversation/ConversationFeature.ts +1 -1
  313. package/src/features/dependencies/DependencyFeature.ts +1 -1
  314. package/src/features/deploy/actions/HerokuAction.ts +2 -2
  315. package/src/features/error/ErrorFeature.ts +4 -4
  316. package/src/features/event/EventFeature.ts +15 -14
  317. package/src/features/event/actions/CreateAction.ts +1 -1
  318. package/src/features/event/actions/ListenAction.ts +1 -1
  319. package/src/features/event/stores/EventStore.ts +37 -37
  320. package/src/features/eventContract/EventContractFeature.ts +6 -1
  321. package/src/features/eventContract/actions/PullAction.ts +7 -3
  322. package/src/features/features.types.ts +4 -41
  323. package/src/features/log/LogFeature.ts +1 -1
  324. package/src/features/node/NodeFeature.ts +1 -1
  325. package/src/features/organization/actions/InstallAction.ts +1 -1
  326. package/src/features/permission/PermissionFeature.ts +68 -11
  327. package/src/features/permission/actions/CreateAction.ts +2 -0
  328. package/src/features/permission/actions/SyncAction.ts +22 -3
  329. package/src/features/permission/stores/PermissionStore.ts +27 -8
  330. package/src/features/permission/writers/PermissionWriter.ts +62 -4
  331. package/src/features/person/PersonFeature.ts +1 -1
  332. package/src/features/sandbox/SandboxFeature.ts +1 -3
  333. package/src/features/schema/SchemaFeature.ts +14 -14
  334. package/src/features/schema/writers/SchemaWriter.ts +14 -15
  335. package/src/features/skill/SkillFeature.ts +18 -18
  336. package/src/features/skill/actions/RebuildAction.ts +1 -1
  337. package/src/features/skill/actions/RegisterAction.ts +1 -1
  338. package/src/features/skill/stores/SkillStore.ts +1 -2
  339. package/src/features/store/StoreFeature.ts +1 -1
  340. package/src/features/store/actions/SyncAction.ts +1 -1
  341. package/src/features/test/TestFeature.ts +1 -1
  342. package/src/features/view/ViewFeature.ts +1 -1
  343. package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
  344. package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
  345. package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
  346. package/src/services/CommandService.ts +5 -5
  347. package/src/services/PkgService.ts +4 -0
  348. package/src/tests/AbstractCliTest.ts +31 -13
  349. package/src/tests/buildTestCache.ts +7 -0
  350. package/src/tests/fixtures/FeatureFixture.ts +2 -0
  351. package/src/tests/utilities/test.utility.ts +13 -0
  352. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +0 -1
  353. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +0 -1
  354. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +0 -1
  355. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +0 -1
  356. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +0 -1
  357. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +0 -1
  358. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +0 -1
  359. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +0 -1
  360. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +0 -1
  361. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +0 -1
  362. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +0 -1
  363. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +0 -1
  364. package/build/__tests__/behavioral/TestingDataStores.test.js.map +0 -1
  365. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +0 -1
  366. package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
  367. package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
  368. package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
@@ -1,12 +1,22 @@
1
- import AbstractFeature, { FeatureDependency } from '../AbstractFeature';
1
+ import { NpmPackage } from '@sprucelabs/spruce-skill-utils';
2
+ import AbstractFeature, { FeatureDependency, FeatureOptions, InstallResults } from '../AbstractFeature';
2
3
  import { FeatureCode } from '../features.types';
3
4
  export default class PermissionFeature extends AbstractFeature {
4
5
  code: FeatureCode;
5
6
  nameReadable: string;
6
7
  description: string;
7
8
  dependencies: FeatureDependency[];
8
- packageDependencies: never[];
9
9
  actionsDir: string;
10
+ packageDependencies: NpmPackage[];
11
+ private writer;
12
+ constructor(options: FeatureOptions);
13
+ handleDidExecuteAction({ featureCode, actionCode, }: {
14
+ featureCode: string;
15
+ actionCode: string;
16
+ }): Promise<import("../features.types").FeatureActionResponse>;
17
+ afterPackageInstall(): Promise<InstallResults>;
18
+ private writeTypesFile;
19
+ private writePlugin;
10
20
  }
11
21
  declare module '../../features/features.types' {
12
22
  interface FeatureMap {
@@ -5,8 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
13
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
15
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -19,28 +22,148 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
19
22
  var PermissionFeature = /*#__PURE__*/function (_AbstractFeature) {
20
23
  (0, _inherits2["default"])(PermissionFeature, _AbstractFeature);
21
24
  var _super = _createSuper(PermissionFeature);
22
- function PermissionFeature() {
25
+ function PermissionFeature(options) {
23
26
  var _this;
24
27
  (0, _classCallCheck2["default"])(this, PermissionFeature);
25
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
- args[_key] = arguments[_key];
27
- }
28
- _this = _super.call.apply(_super, [this].concat(args));
28
+ _this = _super.call(this, options);
29
29
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "code", 'permission');
30
30
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "nameReadable", 'permission');
31
31
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "description", 'Manage permissions for your skill');
32
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", [{
33
- code: 'skill',
34
- isRequired: true
35
- }, {
36
- code: 'event',
37
- isRequired: true
38
- }]);
39
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", []);
32
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", []);
40
33
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "actionsDir", _spruceSkillUtils.diskUtil.resolvePath(__dirname, 'actions'));
34
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", [{
35
+ name: '@sprucelabs/spruce-permission-plugin@latest'
36
+ }]);
37
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "writer", void 0);
38
+ _this.writer = _this.Writer('permission');
39
+ void _this.emitter.on('feature.did-execute', _this.handleDidExecuteAction.bind((0, _assertThisInitialized2["default"])(_this)));
41
40
  return _this;
42
41
  }
43
- return (0, _createClass2["default"])(PermissionFeature);
42
+ (0, _createClass2["default"])(PermissionFeature, [{
43
+ key: "handleDidExecuteAction",
44
+ value: function () {
45
+ var _handleDidExecuteAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
46
+ var featureCode, actionCode, isInstalled, isSkillInstalled, _results$files, combinedFile, results;
47
+ return _regenerator["default"].wrap(function _callee$(_context) {
48
+ while (1) {
49
+ switch (_context.prev = _context.next) {
50
+ case 0:
51
+ featureCode = _ref.featureCode, actionCode = _ref.actionCode;
52
+ _context.next = 3;
53
+ return this.features.isInstalled('permission');
54
+ case 3:
55
+ isInstalled = _context.sent;
56
+ _context.next = 6;
57
+ return this.features.isInstalled('skill');
58
+ case 6:
59
+ isSkillInstalled = _context.sent;
60
+ if (!(isSkillInstalled && isInstalled && featureCode === 'node' && actionCode === 'upgrade')) {
61
+ _context.next = 16;
62
+ break;
63
+ }
64
+ _context.next = 10;
65
+ return this.writePlugin();
66
+ case 10:
67
+ combinedFile = _context.sent;
68
+ _context.next = 13;
69
+ return this.Action('permission', 'sync').execute({});
70
+ case 13:
71
+ results = _context.sent;
72
+ results.files = [].concat((0, _toConsumableArray2["default"])((_results$files = results.files) !== null && _results$files !== void 0 ? _results$files : []), (0, _toConsumableArray2["default"])(combinedFile));
73
+ return _context.abrupt("return", results);
74
+ case 16:
75
+ return _context.abrupt("return", {});
76
+ case 17:
77
+ case "end":
78
+ return _context.stop();
79
+ }
80
+ }
81
+ }, _callee, this);
82
+ }));
83
+ function handleDidExecuteAction(_x) {
84
+ return _handleDidExecuteAction.apply(this, arguments);
85
+ }
86
+ return handleDidExecuteAction;
87
+ }()
88
+ }, {
89
+ key: "afterPackageInstall",
90
+ value: function () {
91
+ var _afterPackageInstall = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
92
+ var files, combinedFile;
93
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
94
+ while (1) {
95
+ switch (_context2.prev = _context2.next) {
96
+ case 0:
97
+ _context2.next = 2;
98
+ return this.writePlugin();
99
+ case 2:
100
+ files = _context2.sent;
101
+ _context2.next = 5;
102
+ return this.writeTypesFile();
103
+ case 5:
104
+ combinedFile = _context2.sent;
105
+ return _context2.abrupt("return", {
106
+ files: [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(combinedFile))
107
+ });
108
+ case 7:
109
+ case "end":
110
+ return _context2.stop();
111
+ }
112
+ }
113
+ }, _callee2, this);
114
+ }));
115
+ function afterPackageInstall() {
116
+ return _afterPackageInstall.apply(this, arguments);
117
+ }
118
+ return afterPackageInstall;
119
+ }()
120
+ }, {
121
+ key: "writeTypesFile",
122
+ value: function () {
123
+ var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
124
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
125
+ while (1) {
126
+ switch (_context3.prev = _context3.next) {
127
+ case 0:
128
+ _context3.next = 2;
129
+ return this.writer.writeTypesFile(this.cwd, {});
130
+ case 2:
131
+ return _context3.abrupt("return", _context3.sent);
132
+ case 3:
133
+ case "end":
134
+ return _context3.stop();
135
+ }
136
+ }
137
+ }, _callee3, this);
138
+ }));
139
+ function writeTypesFile() {
140
+ return _writeTypesFile.apply(this, arguments);
141
+ }
142
+ return writeTypesFile;
143
+ }()
144
+ }, {
145
+ key: "writePlugin",
146
+ value: function () {
147
+ var _writePlugin = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
148
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
149
+ while (1) {
150
+ switch (_context4.prev = _context4.next) {
151
+ case 0:
152
+ return _context4.abrupt("return", this.writer.writePlugin(this.cwd));
153
+ case 1:
154
+ case "end":
155
+ return _context4.stop();
156
+ }
157
+ }
158
+ }, _callee4, this);
159
+ }));
160
+ function writePlugin() {
161
+ return _writePlugin.apply(this, arguments);
162
+ }
163
+ return writePlugin;
164
+ }()
165
+ }]);
166
+ return PermissionFeature;
44
167
  }(_AbstractFeature2["default"]);
45
168
  exports["default"] = PermissionFeature;
46
169
  //# sourceMappingURL=PermissionFeature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionFeature.js","names":["PermissionFeature","code","isRequired","diskUtil","resolvePath","__dirname","AbstractFeature"],"sources":["../../../src/features/permission/PermissionFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\nexport default class PermissionFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'permission'\n\tpublic nameReadable = 'permission'\n\tpublic description = 'Manage permissions for your skill'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'skill',\n\t\t\tisRequired: true,\n\t\t},\n\t\t{\n\t\t\tcode: 'event',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tpermission: PermissionFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAAuE;AAAA;AAAA,IAGlDA,iBAAiB;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACV,YAAY;IAAA,iGACjB,YAAY;IAAA,gGACb,mCAAmC;IAAA,iGACb,CAC1C;MACCC,IAAI,EAAE,OAAO;MACbC,UAAU,EAAE;IACb,CAAC,EACD;MACCD,IAAI,EAAE,OAAO;MACbC,UAAU,EAAE;IACb,CAAC,CACD;IAAA,wGAC4B,EAAE;IAAA,+FAEXC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA;EAAA;EAAA;AAAA,EAhBhBC,4BAAe;AAAA"}
1
+ {"version":3,"file":"PermissionFeature.js","names":["PermissionFeature","options","diskUtil","resolvePath","__dirname","name","writer","Writer","emitter","on","handleDidExecuteAction","bind","featureCode","actionCode","features","isInstalled","isSkillInstalled","writePlugin","combinedFile","Action","execute","results","files","writeTypesFile","cwd","AbstractFeature"],"sources":["../../../src/features/permission/PermissionFeature.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { diskUtil, NpmPackage } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n\tInstallResults,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport PermissionWriter from './writers/PermissionWriter'\n\nexport default class PermissionFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'permission'\n\tpublic nameReadable = 'permission'\n\tpublic description = 'Manage permissions for your skill'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-permission-plugin@latest',\n\t\t},\n\t]\n\tprivate writer: PermissionWriter\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\t\tthis.writer = this.Writer('permission')\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecuteAction.bind(this)\n\t\t)\n\t}\n\n\tpublic async handleDidExecuteAction({\n\t\tfeatureCode,\n\t\tactionCode,\n\t}: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst isInstalled = await this.features.isInstalled('permission')\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (\n\t\t\tisSkillInstalled &&\n\t\t\tisInstalled &&\n\t\t\tfeatureCode === 'node' &&\n\t\t\tactionCode === 'upgrade'\n\t\t) {\n\t\t\tconst combinedFile = await this.writePlugin()\n\t\t\tconst results = await this.Action('permission', 'sync').execute({})\n\n\t\t\tresults.files = [...(results.files ?? []), ...combinedFile]\n\t\t\treturn results\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(): Promise<InstallResults> {\n\t\tconst files = await this.writePlugin()\n\t\tconst combinedFile = await this.writeTypesFile()\n\n\t\treturn {\n\t\t\tfiles: [...files, ...combinedFile],\n\t\t}\n\t}\n\n\tprivate async writeTypesFile() {\n\t\treturn await this.writer.writeTypesFile(\n\t\t\tthis.cwd,\n\t\t\t{} as PermissionContractMap\n\t\t)\n\t}\n\n\tprivate async writePlugin() {\n\t\treturn this.writer.writePlugin(this.cwd)\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tpermission: PermissionFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;AACA;AAI2B;AAAA;AAAA,IAINA,iBAAiB;EAAA;EAAA;EAarC,2BAAmBC,OAAuB,EAAE;IAAA;IAAA;IAC3C,0BAAMA,OAAO;IAAC,yFAbY,YAAY;IAAA,iGACjB,YAAY;IAAA,gGACb,mCAAmC;IAAA,iGACb,EAAE;IAAA,+FACzBC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,wGACnB,CAC1C;MACCC,IAAI,EAAE;IACP,CAAC,CACD;IAAA;IAKA,MAAKC,MAAM,GAAG,MAAKC,MAAM,CAAC,YAAY,CAAC;IAEvC,KAAK,MAAKC,OAAO,CAACC,EAAE,CACnB,qBAAqB,EACrB,MAAKC,sBAAsB,CAACC,IAAI,gDAAM,CACtC;IAAA;EACF;EAAC;IAAA;IAAA;MAAA,4GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCC,WAAW,QAAXA,WAAW,EACXC,UAAU,QAAVA,UAAU;gBAAA;gBAAA,OAKgB,IAAI,CAACC,QAAQ,CAACC,WAAW,CAAC,YAAY,CAAC;cAAA;gBAA3DA,WAAW;gBAAA;gBAAA,OACc,IAAI,CAACD,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;cAAA;gBAA3DC,gBAAgB;gBAAA,MAGrBA,gBAAgB,IAChBD,WAAW,IACXH,WAAW,KAAK,MAAM,IACtBC,UAAU,KAAK,SAAS;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OAEG,IAAI,CAACI,WAAW,EAAE;cAAA;gBAAvCC,YAAY;gBAAA;gBAAA,OACI,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA7DC,OAAO;gBAEbA,OAAO,CAACC,KAAK,mEAAQD,OAAO,CAACC,KAAK,2DAAI,EAAE,uCAAMJ,YAAY,EAAC;gBAAA,iCACpDG,OAAO;cAAA;gBAAA,iCAGR,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACT;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACqB,IAAI,CAACJ,WAAW,EAAE;cAAA;gBAAhCK,KAAK;gBAAA;gBAAA,OACgB,IAAI,CAACC,cAAc,EAAE;cAAA;gBAA1CL,YAAY;gBAAA,kCAEX;kBACNI,KAAK,gDAAMA,KAAK,uCAAKJ,YAAY;gBAClC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACc,IAAI,CAACZ,MAAM,CAACiB,cAAc,CACtC,IAAI,CAACC,GAAG,EACR,CAAC,CAAC,CACF;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,iGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAI,CAAClB,MAAM,CAACW,WAAW,CAAC,IAAI,CAACO,GAAG,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAnE6CC,4BAAe;AAAA"}
@@ -58,10 +58,13 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
58
58
  });
59
59
  case 5:
60
60
  files = _context.sent;
61
+ _context.next = 8;
62
+ return this.Action('permission', 'sync').execute({});
63
+ case 8:
61
64
  return _context.abrupt("return", {
62
65
  files: files
63
66
  });
64
- case 7:
67
+ case 9:
65
68
  case "end":
66
69
  return _context.stop();
67
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAction.js","names":["CreateAction","schema","options","validateAndNormalizeOptions","nameKebab","nameReadable","nameCamel","description","destination","diskUtil","resolvePath","cwd","writer","Writer","writeContract","namesUtil","toKebab","files","AbstractAction","buildSchema","id","fields","namedTemplateItemSchema","label","hint","pickFields"],"sources":["../../../../src/features/permission/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, pickFields, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemSchema from '#spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = schema\n\tpublic invocationMessage = 'Creating a permission contract... 🛡'\n\tpublic readonly commandAliases: string[] = [\n\t\t'create.permissions',\n\t\t'create.permission',\n\t]\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameKebab, nameReadable, nameCamel, description } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst destination = diskUtil.resolvePath(this.cwd, 'src', 'permissions')\n\n\t\tconst writer = this.Writer('permission')\n\t\tconst files = await writer.writeContract(destination, {\n\t\t\tnameKebab: nameKebab ?? namesUtil.toKebab(nameReadable),\n\t\t\tnameReadable,\n\t\t\tnameCamel,\n\t\t\tdescription,\n\t\t})\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'createPermission',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemSchema.fields.nameReadable,\n\t\t\tlabel: `Name your permission contract`,\n\t\t\thint: `A contract contains many permissions grouped by a responsibility`,\n\t\t},\n\t\t...pickFields(namedTemplateItemSchema.fields, ['nameCamel', 'nameKebab']),\n\t\tdescription: {\n\t\t\t...namedTemplateItemSchema.fields.description,\n\t\t\tlabel: `Describe this contract`,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof schema\ntype Options = SchemaValues<OptionsSchema>\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAiD;AAAA;AAAA;AAAA;AAAA,IAG5BA,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,kGACTC,MAAM;IAAA,sGACF,sCAAsC;IAAA,mGACtB,CAC1C,oBAAoB,EACpB,mBAAmB,CACnB;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAED,iBAAqBC,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEnC,IAAI,CAACC,2BAA2B,CAACD,OAAO,CAAC,EADlCE,SAAS,yBAATA,SAAS,EAAEC,YAAY,yBAAZA,YAAY,EAAEC,SAAS,yBAATA,SAAS,EAAEC,WAAW,yBAAXA,WAAW;gBAGjDC,WAAW,GAAGC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC;gBAElEC,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,YAAY,CAAC;gBAAA;gBAAA,OACpBD,MAAM,CAACE,aAAa,CAACN,WAAW,EAAE;kBACrDJ,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIW,2BAAS,CAACC,OAAO,CAACX,YAAY,CAAC;kBACvDA,YAAY,EAAZA,YAAY;kBACZC,SAAS,EAATA,SAAS;kBACTC,WAAW,EAAXA;gBACD,CAAC,CAAC;cAAA;gBALIU,KAAK;gBAAA,iCAOJ;kBACNA,KAAK,EAALA;gBACD,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAzBwCC,2BAAc;AAAA;AA4BxD,IAAMjB,MAAM,GAAG,IAAAkB,mBAAW,EAAC;EAC1BC,EAAE,EAAE,kBAAkB;EACtBC,MAAM;IACLhB,YAAY,kCACRiB,6BAAuB,CAACD,MAAM,CAAChB,YAAY;MAC9CkB,KAAK,iCAAiC;MACtCC,IAAI;IAAoE;EACxE,GACE,IAAAC,kBAAU,EAACH,6BAAuB,CAACD,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzEd,WAAW,kCACPe,6BAAuB,CAACD,MAAM,CAACd,WAAW;MAC7CgB,KAAK;IAA0B;EAC/B;AAEH,CAAC,CAAC"}
1
+ {"version":3,"file":"CreateAction.js","names":["CreateAction","schema","options","validateAndNormalizeOptions","nameKebab","nameReadable","nameCamel","description","destination","diskUtil","resolvePath","cwd","writer","Writer","writeContract","namesUtil","toKebab","files","Action","execute","AbstractAction","buildSchema","id","fields","namedTemplateItemSchema","label","hint","pickFields"],"sources":["../../../../src/features/permission/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, pickFields, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemSchema from '#spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = schema\n\tpublic invocationMessage = 'Creating a permission contract... 🛡'\n\tpublic readonly commandAliases: string[] = [\n\t\t'create.permissions',\n\t\t'create.permission',\n\t]\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameKebab, nameReadable, nameCamel, description } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst destination = diskUtil.resolvePath(this.cwd, 'src', 'permissions')\n\n\t\tconst writer = this.Writer('permission')\n\t\tconst files = await writer.writeContract(destination, {\n\t\t\tnameKebab: nameKebab ?? namesUtil.toKebab(nameReadable),\n\t\t\tnameReadable,\n\t\t\tnameCamel,\n\t\t\tdescription,\n\t\t})\n\n\t\tawait this.Action('permission', 'sync').execute({})\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'createPermission',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemSchema.fields.nameReadable,\n\t\t\tlabel: `Name your permission contract`,\n\t\t\thint: `A contract contains many permissions grouped by a responsibility`,\n\t\t},\n\t\t...pickFields(namedTemplateItemSchema.fields, ['nameCamel', 'nameKebab']),\n\t\tdescription: {\n\t\t\t...namedTemplateItemSchema.fields.description,\n\t\t\tlabel: `Describe this contract`,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof schema\ntype Options = SchemaValues<OptionsSchema>\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAiD;AAAA;AAAA;AAAA;AAAA,IAG5BA,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,kGACTC,MAAM;IAAA,sGACF,sCAAsC;IAAA,mGACtB,CAC1C,oBAAoB,EACpB,mBAAmB,CACnB;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAED,iBAAqBC,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEnC,IAAI,CAACC,2BAA2B,CAACD,OAAO,CAAC,EADlCE,SAAS,yBAATA,SAAS,EAAEC,YAAY,yBAAZA,YAAY,EAAEC,SAAS,yBAATA,SAAS,EAAEC,WAAW,yBAAXA,WAAW;gBAGjDC,WAAW,GAAGC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC;gBAElEC,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,YAAY,CAAC;gBAAA;gBAAA,OACpBD,MAAM,CAACE,aAAa,CAACN,WAAW,EAAE;kBACrDJ,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIW,2BAAS,CAACC,OAAO,CAACX,YAAY,CAAC;kBACvDA,YAAY,EAAZA,YAAY;kBACZC,SAAS,EAATA,SAAS;kBACTC,WAAW,EAAXA;gBACD,CAAC,CAAC;cAAA;gBALIU,KAAK;gBAAA;gBAAA,OAOL,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAAA,iCAE5C;kBACNF,KAAK,EAALA;gBACD,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA3BwCG,2BAAc;AAAA;AA8BxD,IAAMnB,MAAM,GAAG,IAAAoB,mBAAW,EAAC;EAC1BC,EAAE,EAAE,kBAAkB;EACtBC,MAAM;IACLlB,YAAY,kCACRmB,6BAAuB,CAACD,MAAM,CAAClB,YAAY;MAC9CoB,KAAK,iCAAiC;MACtCC,IAAI;IAAoE;EACxE,GACE,IAAAC,kBAAU,EAACH,6BAAuB,CAACD,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzEhB,WAAW,kCACPiB,6BAAuB,CAACD,MAAM,CAAChB,WAAW;MAC7CkB,KAAK;IAA0B;EAC/B;AAEH,CAAC,CAAC"}
@@ -1,11 +1,15 @@
1
1
  import AbstractAction from '../../AbstractAction';
2
- import { FeatureActionResponse } from '../../features.types';
2
+ import { ActionOptions, FeatureActionResponse } from '../../features.types';
3
3
  export default class SyncAction extends AbstractAction<OptionsSchema> {
4
4
  invocationMessage: string;
5
5
  optionsSchema: {
6
6
  id: string;
7
7
  fields: {};
8
8
  };
9
+ readonly commandAliases: string[];
10
+ private permissions;
11
+ private writer;
12
+ constructor(options: ActionOptions);
9
13
  execute(): Promise<FeatureActionResponse>;
10
14
  }
11
15
  declare const schema: {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -21,34 +22,51 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
21
22
  var SyncAction = /*#__PURE__*/function (_AbstractAction) {
22
23
  (0, _inherits2["default"])(SyncAction, _AbstractAction);
23
24
  var _super = _createSuper(SyncAction);
24
- function SyncAction() {
25
+ function SyncAction(options) {
25
26
  var _this;
26
27
  (0, _classCallCheck2["default"])(this, SyncAction);
27
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
- args[_key] = arguments[_key];
29
- }
30
- _this = _super.call.apply(_super, [this].concat(args));
28
+ _this = _super.call(this, options);
31
29
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "invocationMessage", 'Syncing permissions... 🛡');
32
30
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "optionsSchema", schema);
31
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "commandAliases", ['sync.permissions']);
32
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "permissions", void 0);
33
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "writer", void 0);
34
+ _this.permissions = _this.Store('permission');
35
+ _this.writer = _this.Writer('permission');
33
36
  return _this;
34
37
  }
35
38
  (0, _createClass2["default"])(SyncAction, [{
36
39
  key: "execute",
37
40
  value: function () {
38
41
  var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
39
- var files;
42
+ var map, typesFiles, local, combinedFiles;
40
43
  return _regenerator["default"].wrap(function _callee$(_context) {
41
44
  while (1) {
42
45
  switch (_context.prev = _context.next) {
43
46
  case 0:
44
47
  _context.next = 2;
45
- return this.Writer('permission').writeTypesFile(this.cwd);
48
+ return this.permissions.fetchContracts();
46
49
  case 2:
47
- files = _context.sent;
50
+ map = _context.sent;
51
+ _context.next = 5;
52
+ return this.writer.writeTypesFile(this.cwd, map);
53
+ case 5:
54
+ typesFiles = _context.sent;
55
+ _context.next = 8;
56
+ return this.permissions.loadLocalPermissions();
57
+ case 8:
58
+ local = _context.sent;
59
+ _context.next = 11;
60
+ return this.writer.writeCombinedFile(this.cwd, {
61
+ contracts: local
62
+ });
63
+ case 11:
64
+ combinedFiles = _context.sent;
48
65
  return _context.abrupt("return", {
49
- files: files
66
+ files: [].concat((0, _toConsumableArray2["default"])(typesFiles), (0, _toConsumableArray2["default"])(combinedFiles)),
67
+ summaryLines: ['Permissions synced']
50
68
  });
51
- case 4:
69
+ case 13:
52
70
  case "end":
53
71
  return _context.stop();
54
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SyncAction.js","names":["SyncAction","schema","Writer","writeTypesFile","cwd","files","AbstractAction","buildSchema","id","fields"],"sources":["../../../../src/features/permission/actions/SyncAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Syncing permissions... 🛡'\n\tpublic optionsSchema = schema\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst files = await this.Writer('permission').writeTypesFile(this.cwd)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'syncPermissions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof schema\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAAiD;AAAA;AAAA,IAG5BA,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,sGACH,2BAA2B;IAAA,kGAC/BC,MAAM;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAE7B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACqB,IAAI,CAACC,MAAM,CAAC,YAAY,CAAC,CAACC,cAAc,CAAC,IAAI,CAACC,GAAG,CAAC;cAAA;gBAAhEC,KAAK;gBAAA,iCAEJ;kBACNA,KAAK,EAALA;gBACD,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAVsCC,2BAAc;AAAA;AAatD,IAAML,MAAM,GAAG,IAAAM,mBAAW,EAAC;EAC1BC,EAAE,EAAE,iBAAiB;EACrBC,MAAM,EAAE,CAAC;AACV,CAAC,CAAC"}
1
+ {"version":3,"file":"SyncAction.js","names":["SyncAction","options","schema","permissions","Store","writer","Writer","fetchContracts","map","writeTypesFile","cwd","typesFiles","loadLocalPermissions","local","writeCombinedFile","contracts","combinedFiles","files","summaryLines","AbstractAction","buildSchema","id","fields"],"sources":["../../../../src/features/permission/actions/SyncAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { ActionOptions, FeatureActionResponse } from '../../features.types'\nimport PermissionStore from '../stores/PermissionStore'\nimport PermissionWriter from '../writers/PermissionWriter'\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Syncing permissions... 🛡'\n\tpublic optionsSchema = schema\n\tpublic readonly commandAliases: string[] = ['sync.permissions']\n\n\tprivate permissions: PermissionStore\n\tprivate writer: PermissionWriter\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\t\tthis.permissions = this.Store('permission')\n\t\tthis.writer = this.Writer('permission')\n\t}\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst map = await this.permissions.fetchContracts()\n\t\tconst typesFiles = await this.writer.writeTypesFile(this.cwd, map)\n\n\t\tconst local = await this.permissions.loadLocalPermissions()\n\t\tconst combinedFiles = await this.writer.writeCombinedFile(this.cwd, {\n\t\t\tcontracts: local,\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: [...typesFiles, ...combinedFiles],\n\t\t\tsummaryLines: ['Permissions synced'],\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'syncPermissions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof schema\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAAiD;AAAA;AAAA,IAK5BA,UAAU;EAAA;EAAA;EAQ9B,oBAAmBC,OAAsB,EAAE;IAAA;IAAA;IAC1C,0BAAMA,OAAO;IAAC,sGARY,2BAA2B;IAAA,kGAC/BC,MAAM;IAAA,mGACc,CAAC,kBAAkB,CAAC;IAAA;IAAA;IAO9D,MAAKC,WAAW,GAAG,MAAKC,KAAK,CAAC,YAAY,CAAC;IAC3C,MAAKC,MAAM,GAAG,MAAKC,MAAM,CAAC,YAAY,CAAC;IAAA;EACxC;EAAC;IAAA;IAAA;MAAA,6FAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACmB,IAAI,CAACH,WAAW,CAACI,cAAc,EAAE;cAAA;gBAA7CC,GAAG;gBAAA;gBAAA,OACgB,IAAI,CAACH,MAAM,CAACI,cAAc,CAAC,IAAI,CAACC,GAAG,EAAEF,GAAG,CAAC;cAAA;gBAA5DG,UAAU;gBAAA;gBAAA,OAEI,IAAI,CAACR,WAAW,CAACS,oBAAoB,EAAE;cAAA;gBAArDC,KAAK;gBAAA;gBAAA,OACiB,IAAI,CAACR,MAAM,CAACS,iBAAiB,CAAC,IAAI,CAACJ,GAAG,EAAE;kBACnEK,SAAS,EAAEF;gBACZ,CAAC,CAAC;cAAA;gBAFIG,aAAa;gBAAA,iCAIZ;kBACNC,KAAK,gDAAMN,UAAU,uCAAKK,aAAa,EAAC;kBACxCE,YAAY,EAAE,CAAC,oBAAoB;gBACpC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA3BsCC,2BAAc;AAAA;AA8BtD,IAAMjB,MAAM,GAAG,IAAAkB,mBAAW,EAAC;EAC1BC,EAAE,EAAE,iBAAiB;EACrBC,MAAM,EAAE,CAAC;AACV,CAAC,CAAC"}
@@ -2,6 +2,11 @@ import { PermissionContractMap } from '@sprucelabs/mercury-types';
2
2
  import AbstractStore from '../../../stores/AbstractStore';
3
3
  export default class PermissionStore extends AbstractStore {
4
4
  name: string;
5
- private loadLocalPermissions;
5
+ loadLocalPermissions(): Promise<ImportedPermission[]>;
6
6
  fetchContracts(): Promise<PermissionContractMap>;
7
7
  }
8
+ export interface ImportedPermission {
9
+ id: string;
10
+ permissions: string[];
11
+ path: string;
12
+ }
@@ -40,7 +40,7 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
40
40
  key: "loadLocalPermissions",
41
41
  value: function () {
42
42
  var _loadLocalPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
43
- var matches, map, _iterator, _step, file, contract;
43
+ var matches, namespace, imported, _iterator, _step, file, path, contract;
44
44
  return _regenerator["default"].wrap(function _callee$(_context) {
45
45
  while (1) {
46
46
  switch (_context.prev = _context.next) {
@@ -51,45 +51,51 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
51
51
  });
52
52
  case 2:
53
53
  matches = _context.sent;
54
- map = {};
54
+ namespace = this.Service('pkg').getSkillNamespace();
55
+ imported = [];
55
56
  _iterator = _createForOfIteratorHelper(matches);
56
- _context.prev = 5;
57
+ _context.prev = 6;
57
58
  _iterator.s();
58
- case 7:
59
+ case 8:
59
60
  if ((_step = _iterator.n()).done) {
60
- _context.next = 15;
61
+ _context.next = 17;
61
62
  break;
62
63
  }
63
64
  file = _step.value;
64
- _context.next = 11;
65
- return this.Service('import').importDefault(_spruceSkillUtils.diskUtil.resolvePath(this.cwd, file));
66
- case 11:
65
+ path = _spruceSkillUtils.diskUtil.resolvePath(this.cwd, file);
66
+ _context.next = 13;
67
+ return this.Service('import').importDefault(path);
68
+ case 13:
67
69
  contract = _context.sent;
68
- map[contract.id] = contract.permissions.map(function (p) {
69
- return p.id;
70
+ imported.push({
71
+ id: "".concat(namespace, ".").concat(contract.id),
72
+ permissions: contract.permissions.map(function (p) {
73
+ return p.id;
74
+ }),
75
+ path: path
70
76
  });
71
- case 13:
72
- _context.next = 7;
73
- break;
74
77
  case 15:
75
- _context.next = 20;
78
+ _context.next = 8;
76
79
  break;
77
80
  case 17:
78
- _context.prev = 17;
79
- _context.t0 = _context["catch"](5);
81
+ _context.next = 22;
82
+ break;
83
+ case 19:
84
+ _context.prev = 19;
85
+ _context.t0 = _context["catch"](6);
80
86
  _iterator.e(_context.t0);
81
- case 20:
82
- _context.prev = 20;
87
+ case 22:
88
+ _context.prev = 22;
83
89
  _iterator.f();
84
- return _context.finish(20);
85
- case 23:
86
- return _context.abrupt("return", map);
87
- case 24:
90
+ return _context.finish(22);
91
+ case 25:
92
+ return _context.abrupt("return", imported);
93
+ case 26:
88
94
  case "end":
89
95
  return _context.stop();
90
96
  }
91
97
  }
92
- }, _callee, this, [[5, 17, 20, 23]]);
98
+ }, _callee, this, [[6, 19, 22, 25]]);
93
99
  }));
94
100
  function loadLocalPermissions() {
95
101
  return _loadLocalPermissions.apply(this, arguments);
@@ -100,17 +106,27 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
100
106
  key: "fetchContracts",
101
107
  value: function () {
102
108
  var _fetchContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
103
- var client, deps, _yield$client$emitAnd, _yield$client$emitAnd2, permissionContracts, map, _iterator2, _step2, result;
109
+ var client, deps, local, map, _yield$client$emitAnd, _yield$client$emitAnd2, permissionContracts, _iterator2, _step2, result;
104
110
  return _regenerator["default"].wrap(function _callee2$(_context2) {
105
111
  while (1) {
106
112
  switch (_context2.prev = _context2.next) {
107
113
  case 0:
108
114
  _context2.next = 2;
109
- return this.connectToApi();
115
+ return this.connectToApi({
116
+ shouldAuthAsCurrentSkill: true
117
+ });
110
118
  case 2:
111
119
  client = _context2.sent;
112
120
  deps = this.Service('dependency').get();
113
121
  _context2.next = 6;
122
+ return this.loadLocalPermissions();
123
+ case 6:
124
+ local = _context2.sent;
125
+ map = local.reduce(function (map, local) {
126
+ map[local.id] = local.permissions;
127
+ return map;
128
+ }, {});
129
+ _context2.next = 10;
114
130
  return client.emitAndFlattenResponses('list-permission-contracts::v2020_12_25', {
115
131
  target: {
116
132
  namespaces: deps.map(function (d) {
@@ -118,14 +134,10 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
118
134
  })
119
135
  }
120
136
  });
121
- case 6:
137
+ case 10:
122
138
  _yield$client$emitAnd = _context2.sent;
123
139
  _yield$client$emitAnd2 = (0, _slicedToArray2["default"])(_yield$client$emitAnd, 1);
124
140
  permissionContracts = _yield$client$emitAnd2[0].permissionContracts;
125
- _context2.next = 11;
126
- return this.loadLocalPermissions();
127
- case 11:
128
- map = _context2.sent;
129
141
  _iterator2 = _createForOfIteratorHelper(permissionContracts);
130
142
  try {
131
143
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -140,7 +152,7 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
140
152
  _iterator2.f();
141
153
  }
142
154
  return _context2.abrupt("return", map);
143
- case 15:
155
+ case 16:
144
156
  case "end":
145
157
  return _context2.stop();
146
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","map","file","Service","importDefault","diskUtil","resolvePath","contract","id","permissions","p","connectToApi","client","deps","get","emitAndFlattenResponses","target","namespaces","d","namespace","permissionContracts","loadLocalPermissions","result","AbstractStore"],"sources":["../../../../src/features/permission/stores/PermissionStore.ts"],"sourcesContent":["import {\n\tPermissionContract,\n\tPermissionContractMap,\n} from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class PermissionStore extends AbstractStore {\n\tpublic name = 'permission'\n\n\tprivate async loadLocalPermissions() {\n\t\tconst matches = await globby('**/*.permissions.ts', {\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst map: PermissionContractMap = {}\n\n\t\tfor (const file of matches) {\n\t\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\t\tdiskUtil.resolvePath(this.cwd, file)\n\t\t\t)) as PermissionContract\n\n\t\t\tmap[contract.id] = contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n\n\tpublic async fetchContracts() {\n\t\tconst client = await this.connectToApi()\n\t\tconst deps = this.Service('dependency').get()\n\n\t\tconst [{ permissionContracts }] = await client.emitAndFlattenResponses(\n\t\t\t'list-permission-contracts::v2020_12_25',\n\t\t\t{\n\t\t\t\ttarget: {\n\t\t\t\t\tnamespaces: deps.map((d) => d.namespace),\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tconst map: PermissionContractMap = await this.loadLocalPermissions()\n\n\t\tfor (const result of permissionContracts) {\n\t\t\tmap[result.contract.id] = result.contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AAAyD;AAAA;AAAA;AAAA;AAAA;AAAA,IAEpCA,eAAe;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACrB,YAAY;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,0GAE1B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,IAAAC,kBAAM,EAAC,qBAAqB,EAAE;kBACnDC,GAAG,EAAE,IAAI,CAACA;gBACX,CAAC,CAAC;cAAA;gBAFIC,OAAO;gBAIPC,GAA0B,GAAG,CAAC,CAAC;gBAAA,uCAElBD,OAAO;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAfE,IAAI;gBAAA;gBAAA,OACU,IAAI,CAACC,OAAO,CAAC,QAAQ,CAAC,CAACC,aAAa,CAC3DC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACP,GAAG,EAAEG,IAAI,CAAC,CACpC;cAAA;gBAFKK,QAAQ;gBAIdN,GAAG,CAACM,QAAQ,CAACC,EAAE,CAAC,GAAGD,QAAQ,CAACE,WAAW,CAACR,GAAG,CAAC,UAACS,CAAC;kBAAA,OAAKA,CAAC,CAACF,EAAE;gBAAA,EAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA,iCAGlDP,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,IAAI,CAACU,YAAY,EAAE;cAAA;gBAAlCC,MAAM;gBACNC,IAAI,GAAG,IAAI,CAACV,OAAO,CAAC,YAAY,CAAC,CAACW,GAAG,EAAE;gBAAA;gBAAA,OAELF,MAAM,CAACG,uBAAuB,CACrE,wCAAwC,EACxC;kBACCC,MAAM,EAAE;oBACPC,UAAU,EAAEJ,IAAI,CAACZ,GAAG,CAAC,UAACiB,CAAC;sBAAA,OAAKA,CAAC,CAACC,SAAS;oBAAA;kBACxC;gBACD,CAAC,CACD;cAAA;gBAAA;gBAAA;gBAPQC,mBAAmB,6BAAnBA,mBAAmB;gBAAA;gBAAA,OASa,IAAI,CAACC,oBAAoB,EAAE;cAAA;gBAA9DpB,GAA0B;gBAAA,wCAEXmB,mBAAmB;gBAAA;kBAAxC,uDAA0C;oBAA/BE,MAAM;oBAChBrB,GAAG,CAACqB,MAAM,CAACf,QAAQ,CAACC,EAAE,CAAC,GAAGc,MAAM,CAACf,QAAQ,CAACE,WAAW,CAACR,GAAG,CAAC,UAACS,CAAC;sBAAA,OAAKA,CAAC,CAACF,EAAE;oBAAA,EAAC;kBACvE;gBAAC;kBAAA;gBAAA;kBAAA;gBAAA;gBAAA,kCAEMP,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAzC2CsB,0BAAa;AAAA"}
1
+ {"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","namespace","Service","getSkillNamespace","imported","file","path","diskUtil","resolvePath","importDefault","contract","push","id","permissions","map","p","connectToApi","shouldAuthAsCurrentSkill","client","deps","get","loadLocalPermissions","local","reduce","emitAndFlattenResponses","target","namespaces","d","permissionContracts","result","AbstractStore"],"sources":["../../../../src/features/permission/stores/PermissionStore.ts"],"sourcesContent":["import {\n\tPermissionContract,\n\tPermissionContractMap,\n} from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class PermissionStore extends AbstractStore {\n\tpublic name = 'permission'\n\n\tpublic async loadLocalPermissions() {\n\t\tconst matches = await globby('**/*.permissions.ts', {\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst namespace = this.Service('pkg').getSkillNamespace()\n\t\tconst imported: ImportedPermission[] = []\n\n\t\tfor (const file of matches) {\n\t\t\tconst path = diskUtil.resolvePath(this.cwd, file)\n\t\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\t\tpath\n\t\t\t)) as PermissionContract\n\n\t\t\timported.push({\n\t\t\t\tid: `${namespace}.${contract.id}`,\n\t\t\t\tpermissions: contract.permissions.map((p) => p.id),\n\t\t\t\tpath,\n\t\t\t})\n\t\t}\n\n\t\treturn imported\n\t}\n\n\tpublic async fetchContracts() {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\t\tconst deps = this.Service('dependency').get()\n\n\t\tconst local = await this.loadLocalPermissions()\n\t\tconst map: PermissionContractMap = local.reduce<PermissionContractMap>(\n\t\t\t(map, local) => {\n\t\t\t\tmap[local.id] = local.permissions\n\t\t\t\treturn map\n\t\t\t},\n\t\t\t{} as any\n\t\t)\n\n\t\tconst [{ permissionContracts }] = await client.emitAndFlattenResponses(\n\t\t\t'list-permission-contracts::v2020_12_25',\n\t\t\t{\n\t\t\t\ttarget: {\n\t\t\t\t\tnamespaces: deps.map((d) => d.namespace),\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor (const result of permissionContracts) {\n\t\t\tmap[result.contract.id] = result.contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n}\n\nexport interface ImportedPermission {\n\tid: string\n\tpermissions: string[]\n\tpath: string\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AAAyD;AAAA;AAAA;AAAA;AAAA;AAAA,IAEpCA,eAAe;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACrB,YAAY;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,0GAE1B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,IAAAC,kBAAM,EAAC,qBAAqB,EAAE;kBACnDC,GAAG,EAAE,IAAI,CAACA;gBACX,CAAC,CAAC;cAAA;gBAFIC,OAAO;gBAIPC,SAAS,GAAG,IAAI,CAACC,OAAO,CAAC,KAAK,CAAC,CAACC,iBAAiB,EAAE;gBACnDC,QAA8B,GAAG,EAAE;gBAAA,uCAEtBJ,OAAO;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAfK,IAAI;gBACRC,IAAI,GAAGC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACT,GAAG,EAAEM,IAAI,CAAC;gBAAA;gBAAA,OACzB,IAAI,CAACH,OAAO,CAAC,QAAQ,CAAC,CAACO,aAAa,CAC3DH,IAAI,CACJ;cAAA;gBAFKI,QAAQ;gBAIdN,QAAQ,CAACO,IAAI,CAAC;kBACbC,EAAE,YAAKX,SAAS,cAAIS,QAAQ,CAACE,EAAE,CAAE;kBACjCC,WAAW,EAAEH,QAAQ,CAACG,WAAW,CAACC,GAAG,CAAC,UAACC,CAAC;oBAAA,OAAKA,CAAC,CAACH,EAAE;kBAAA,EAAC;kBAClDN,IAAI,EAAJA;gBACD,CAAC,CAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA,iCAGIF,QAAQ;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACf;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,IAAI,CAACY,YAAY,CAAC;kBAAEC,wBAAwB,EAAE;gBAAK,CAAC,CAAC;cAAA;gBAApEC,MAAM;gBACNC,IAAI,GAAG,IAAI,CAACjB,OAAO,CAAC,YAAY,CAAC,CAACkB,GAAG,EAAE;gBAAA;gBAAA,OAEzB,IAAI,CAACC,oBAAoB,EAAE;cAAA;gBAAzCC,KAAK;gBACLR,GAA0B,GAAGQ,KAAK,CAACC,MAAM,CAC9C,UAACT,GAAG,EAAEQ,KAAK,EAAK;kBACfR,GAAG,CAACQ,KAAK,CAACV,EAAE,CAAC,GAAGU,KAAK,CAACT,WAAW;kBACjC,OAAOC,GAAG;gBACX,CAAC,EACD,CAAC,CAAC,CACF;gBAAA;gBAAA,OAEuCI,MAAM,CAACM,uBAAuB,CACrE,wCAAwC,EACxC;kBACCC,MAAM,EAAE;oBACPC,UAAU,EAAEP,IAAI,CAACL,GAAG,CAAC,UAACa,CAAC;sBAAA,OAAKA,CAAC,CAAC1B,SAAS;oBAAA;kBACxC;gBACD,CAAC,CACD;cAAA;gBAAA;gBAAA;gBAPQ2B,mBAAmB,6BAAnBA,mBAAmB;gBAAA,wCASPA,mBAAmB;gBAAA;kBAAxC,uDAA0C;oBAA/BC,MAAM;oBAChBf,GAAG,CAACe,MAAM,CAACnB,QAAQ,CAACE,EAAE,CAAC,GAAGiB,MAAM,CAACnB,QAAQ,CAACG,WAAW,CAACC,GAAG,CAAC,UAACC,CAAC;sBAAA,OAAKA,CAAC,CAACH,EAAE;oBAAA,EAAC;kBACvE;gBAAC;kBAAA;gBAAA;kBAAA;gBAAA;gBAAA,kCAEME,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAtD2CgB,0BAAa;AAAA"}
@@ -1,10 +1,16 @@
1
+ import { PermissionContractMap } from '@sprucelabs/mercury-types';
1
2
  import AbstractWriter from '../../../writers/AbstractWriter';
3
+ import { ImportedPermission } from '../stores/PermissionStore';
2
4
  export default class PermissionWriter extends AbstractWriter {
3
- writeTypesFile(destinationDir: string): Promise<import("../../../writers/AbstractWriter").WriteResults>;
5
+ writeTypesFile(cwd: string, map: PermissionContractMap): Promise<import("../../../writers/AbstractWriter").WriteResults>;
6
+ writeCombinedFile(destinationDir: string, options: {
7
+ contracts: ImportedPermission[];
8
+ }): Promise<import("../../../writers/AbstractWriter").WriteResults>;
4
9
  writeContract(destinationDir: string, options: {
5
10
  nameReadable: string;
6
11
  nameKebab: string;
7
12
  nameCamel: string;
8
13
  description?: string;
9
14
  }): Promise<import("../../../writers/AbstractWriter").WriteResults>;
15
+ writePlugin(cwd: string): Promise<import("../../../writers/AbstractWriter").WriteResults>;
10
16
  }