@sprucelabs/spruce-cli 18.1.8 → 18.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/CHANGELOG.md +12 -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/SkillEmitsBootEvents.test.d.ts +1 -0
  35. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
  36. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  37. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
  38. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
  39. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  40. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
  41. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
  42. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
  43. package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +12 -2
  44. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +248 -36
  45. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  46. package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
  47. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
  48. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
  49. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
  50. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
  51. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  52. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
  53. package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
  54. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
  55. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
  56. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
  57. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
  58. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
  59. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
  60. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
  61. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
  62. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
  63. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
  64. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
  65. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
  66. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  67. package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
  68. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  69. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
  70. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  71. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
  72. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  73. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
  74. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  75. package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
  76. package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
  77. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  78. package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
  79. package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
  80. package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
  81. package/build/__tests__/implementation/SkillStore.test.js +3 -4
  82. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  83. package/build/__tests__/support/EventFaker.d.ts +5 -0
  84. package/build/__tests__/support/EventFaker.js +48 -0
  85. package/build/__tests__/support/EventFaker.js.map +1 -0
  86. package/build/features/AbstractAction.d.ts +1 -1
  87. package/build/features/AbstractAction.js.map +1 -1
  88. package/build/features/AbstractFeature.d.ts +3 -3
  89. package/build/features/AbstractFeature.js +8 -8
  90. package/build/features/AbstractFeature.js.map +1 -1
  91. package/build/features/ActionExecuter.d.ts +1 -1
  92. package/build/features/ActionExecuter.js +3 -4
  93. package/build/features/ActionExecuter.js.map +1 -1
  94. package/build/features/ActionFactory.d.ts +12 -5
  95. package/build/features/ActionFactory.js +27 -6
  96. package/build/features/ActionFactory.js.map +1 -1
  97. package/build/features/ActionQuestionAsker.d.ts +1 -1
  98. package/build/features/ActionQuestionAsker.js +6 -6
  99. package/build/features/ActionQuestionAsker.js.map +1 -1
  100. package/build/features/conversation/ConversationFeature.js +1 -1
  101. package/build/features/conversation/ConversationFeature.js.map +1 -1
  102. package/build/features/dependencies/DependencyFeature.js +1 -1
  103. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  104. package/build/features/deploy/actions/HerokuAction.js +31 -33
  105. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  106. package/build/features/error/ErrorFeature.js +4 -4
  107. package/build/features/error/ErrorFeature.js.map +1 -1
  108. package/build/features/event/EventFeature.d.ts +8 -8
  109. package/build/features/event/EventFeature.js +7 -4
  110. package/build/features/event/EventFeature.js.map +1 -1
  111. package/build/features/event/actions/CreateAction.js.map +1 -1
  112. package/build/features/event/actions/ListenAction.js.map +1 -1
  113. package/build/features/event/stores/EventStore.d.ts +9 -9
  114. package/build/features/event/stores/EventStore.js +26 -26
  115. package/build/features/event/stores/EventStore.js.map +1 -1
  116. package/build/features/eventContract/EventContractFeature.js +4 -1
  117. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  118. package/build/features/eventContract/actions/PullAction.js +10 -5
  119. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  120. package/build/features/features.types.d.ts +2 -37
  121. package/build/features/features.types.js +0 -41
  122. package/build/features/features.types.js.map +1 -1
  123. package/build/features/log/LogFeature.js +1 -1
  124. package/build/features/log/LogFeature.js.map +1 -1
  125. package/build/features/node/NodeFeature.js.map +1 -1
  126. package/build/features/organization/actions/InstallAction.js.map +1 -1
  127. package/build/features/permission/PermissionFeature.d.ts +12 -2
  128. package/build/features/permission/PermissionFeature.js +140 -15
  129. package/build/features/permission/PermissionFeature.js.map +1 -1
  130. package/build/features/permission/actions/CreateAction.js +4 -1
  131. package/build/features/permission/actions/CreateAction.js.map +1 -1
  132. package/build/features/permission/actions/SyncAction.d.ts +5 -1
  133. package/build/features/permission/actions/SyncAction.js +28 -10
  134. package/build/features/permission/actions/SyncAction.js.map +1 -1
  135. package/build/features/permission/stores/PermissionStore.d.ts +7 -1
  136. package/build/features/permission/stores/PermissionStore.js +92 -23
  137. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  138. package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
  139. package/build/features/permission/writers/PermissionWriter.js +66 -17
  140. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  141. package/build/features/person/PersonFeature.js +1 -1
  142. package/build/features/person/PersonFeature.js.map +1 -1
  143. package/build/features/sandbox/SandboxFeature.js +1 -1
  144. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  145. package/build/features/schema/SchemaFeature.d.ts +8 -8
  146. package/build/features/schema/SchemaFeature.js +4 -4
  147. package/build/features/schema/SchemaFeature.js.map +1 -1
  148. package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
  149. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  150. package/build/features/skill/SkillFeature.d.ts +11 -11
  151. package/build/features/skill/SkillFeature.js +2 -2
  152. package/build/features/skill/SkillFeature.js.map +1 -1
  153. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  154. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  155. package/build/features/skill/stores/SkillStore.js +1 -2
  156. package/build/features/skill/stores/SkillStore.js.map +1 -1
  157. package/build/features/store/StoreFeature.js +1 -1
  158. package/build/features/store/StoreFeature.js.map +1 -1
  159. package/build/features/store/actions/SyncAction.d.ts +1 -1
  160. package/build/features/store/actions/SyncAction.js.map +1 -1
  161. package/build/features/test/TestFeature.js +1 -1
  162. package/build/features/test/TestFeature.js.map +1 -1
  163. package/build/features/view/ViewFeature.js +1 -1
  164. package/build/features/view/ViewFeature.js.map +1 -1
  165. package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
  166. package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
  167. package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
  168. package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
  169. package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
  170. package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
  171. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
  172. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  173. package/build/services/CommandService.d.ts +2 -2
  174. package/build/services/CommandService.js +6 -6
  175. package/build/services/CommandService.js.map +1 -1
  176. package/build/services/PkgService.d.ts +1 -0
  177. package/build/services/PkgService.js +5 -0
  178. package/build/services/PkgService.js.map +1 -1
  179. package/build/tests/AbstractCliTest.d.ts +7 -3
  180. package/build/tests/AbstractCliTest.js +81 -45
  181. package/build/tests/AbstractCliTest.js.map +1 -1
  182. package/build/tests/buildTestCache.js +7 -0
  183. package/build/tests/buildTestCache.js.map +1 -1
  184. package/build/tests/fixtures/FeatureFixture.js +1 -0
  185. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  186. package/build/tests/utilities/test.utility.d.ts +2 -0
  187. package/build/tests/utilities/test.utility.js +6 -0
  188. package/build/tests/utilities/test.utility.js.map +1 -1
  189. package/node_modules/@typescript-eslint/parser/package.json +6 -6
  190. package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +9 -9
  191. package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map +1 -1
  192. package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts +1 -1
  193. package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts.map +1 -1
  194. package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map +1 -1
  195. package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map +1 -1
  196. package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js +1 -0
  197. package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map +1 -1
  198. package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js +21 -7
  199. package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map +1 -1
  200. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.d.ts.map +1 -1
  201. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts +3 -0
  202. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts.map +1 -0
  203. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js +12 -0
  204. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js.map +1 -0
  205. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js +2 -1
  206. package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js.map +1 -1
  207. package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts +1 -0
  208. package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map +1 -1
  209. package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js +2 -0
  210. package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map +1 -1
  211. package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map +1 -1
  212. package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map +1 -1
  213. package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js +2 -0
  214. package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map +1 -1
  215. package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js +39 -1
  216. package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map +1 -1
  217. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
  218. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
  219. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
  220. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
  221. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts +1 -1
  222. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts.map +1 -1
  223. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts +2 -2
  224. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts.map +1 -1
  225. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +9 -9
  226. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map +1 -1
  227. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +17 -17
  228. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map +1 -1
  229. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
  230. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
  231. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
  232. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
  233. package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts +1 -1
  234. package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts.map +1 -1
  235. package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts +1 -1
  236. package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map +1 -1
  237. package/node_modules/@typescript-eslint/scope-manager/package.json +12 -12
  238. package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +27 -3
  239. package/node_modules/@typescript-eslint/types/_ts3.4/dist/lib.d.ts +1 -1
  240. package/node_modules/@typescript-eslint/types/_ts3.4/dist/parser-options.d.ts +3 -3
  241. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +27 -3
  242. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
  243. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +3 -0
  244. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
  245. package/node_modules/@typescript-eslint/types/dist/lib.d.ts +1 -1
  246. package/node_modules/@typescript-eslint/types/dist/lib.d.ts.map +1 -1
  247. package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +3 -3
  248. package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +1 -1
  249. package/node_modules/@typescript-eslint/types/package.json +3 -3
  250. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/shared.d.ts +1 -1
  251. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/index.d.ts +2 -2
  252. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser-options.d.ts +1 -1
  253. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser.d.ts +1 -1
  254. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/simple-traverse.d.ts +1 -1
  255. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +4 -1
  256. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +4 -2
  257. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
  258. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +22 -3
  259. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
  260. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +1 -1
  261. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js +9 -0
  262. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +1 -1
  263. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts +1 -1
  264. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map +1 -1
  265. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts +2 -2
  266. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts.map +1 -1
  267. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +1 -1
  268. package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +1 -1
  269. package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +1 -1
  270. package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts +1 -1
  271. package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map +1 -1
  272. package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts +1 -1
  273. package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map +1 -1
  274. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +4 -1
  275. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
  276. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +4 -2
  277. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
  278. package/node_modules/@typescript-eslint/typescript-estree/package.json +6 -6
  279. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
  280. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -48
  281. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
  282. package/node_modules/@typescript-eslint/visitor-keys/package.json +4 -4
  283. package/package.json +65 -33
  284. package/src/.spruce/events/events.contract.ts +24 -0
  285. package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
  286. package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
  287. package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
  288. package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
  289. package/src/.spruce/schemas/schemas.types.ts +171 -52
  290. package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
  291. package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
  292. package/src/.spruce/settings.json +2 -1
  293. package/src/GlobalEmitter.ts +2 -7
  294. package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
  295. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
  296. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
  297. package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
  298. package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
  299. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +204 -23
  300. package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +23 -0
  301. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
  302. package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
  303. package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
  304. package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
  305. package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
  306. package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
  307. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
  308. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
  309. package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
  310. package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
  311. package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
  312. package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
  313. package/src/__tests__/implementation/SkillStore.test.ts +1 -2
  314. package/src/__tests__/support/EventFaker.ts +23 -0
  315. package/src/features/AbstractAction.ts +2 -2
  316. package/src/features/AbstractFeature.ts +8 -8
  317. package/src/features/ActionExecuter.ts +4 -5
  318. package/src/features/ActionFactory.ts +44 -20
  319. package/src/features/ActionQuestionAsker.ts +17 -17
  320. package/src/features/conversation/ConversationFeature.ts +1 -1
  321. package/src/features/dependencies/DependencyFeature.ts +1 -1
  322. package/src/features/deploy/actions/HerokuAction.ts +2 -2
  323. package/src/features/error/ErrorFeature.ts +4 -4
  324. package/src/features/event/EventFeature.ts +15 -14
  325. package/src/features/event/actions/CreateAction.ts +1 -1
  326. package/src/features/event/actions/ListenAction.ts +1 -1
  327. package/src/features/event/stores/EventStore.ts +37 -37
  328. package/src/features/eventContract/EventContractFeature.ts +6 -1
  329. package/src/features/eventContract/actions/PullAction.ts +7 -3
  330. package/src/features/features.types.ts +4 -41
  331. package/src/features/log/LogFeature.ts +1 -1
  332. package/src/features/node/NodeFeature.ts +1 -1
  333. package/src/features/organization/actions/InstallAction.ts +1 -1
  334. package/src/features/permission/PermissionFeature.ts +66 -11
  335. package/src/features/permission/actions/CreateAction.ts +2 -0
  336. package/src/features/permission/actions/SyncAction.ts +22 -3
  337. package/src/features/permission/stores/PermissionStore.ts +44 -3
  338. package/src/features/permission/writers/PermissionWriter.ts +64 -3
  339. package/src/features/person/PersonFeature.ts +1 -1
  340. package/src/features/sandbox/SandboxFeature.ts +1 -3
  341. package/src/features/schema/SchemaFeature.ts +14 -14
  342. package/src/features/schema/writers/SchemaWriter.ts +14 -15
  343. package/src/features/skill/SkillFeature.ts +18 -18
  344. package/src/features/skill/actions/RebuildAction.ts +1 -1
  345. package/src/features/skill/actions/RegisterAction.ts +1 -1
  346. package/src/features/skill/stores/SkillStore.ts +1 -2
  347. package/src/features/store/StoreFeature.ts +1 -1
  348. package/src/features/store/actions/SyncAction.ts +1 -1
  349. package/src/features/test/TestFeature.ts +1 -1
  350. package/src/features/view/ViewFeature.ts +1 -1
  351. package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
  352. package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
  353. package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
  354. package/src/services/CommandService.ts +5 -5
  355. package/src/services/PkgService.ts +4 -0
  356. package/src/tests/AbstractCliTest.ts +31 -13
  357. package/src/tests/buildTestCache.ts +7 -0
  358. package/src/tests/fixtures/FeatureFixture.ts +2 -0
  359. package/src/tests/utilities/test.utility.ts +13 -0
  360. package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
  361. package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
  362. package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractCliTest.js","names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","_emitter","undefined","_featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","globby","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","featureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","installer","FeatureInstaller","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"sources":["../../src/tests/AbstractCliTest.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test-utils'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static _emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static _featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis._emitter = undefined\n\t\tthis._featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis._emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static get emitter() {\n\t\tif (!this._emitter) {\n\t\t\tthis._emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this._emitter\n\t}\n\n\tprotected static set emitter(emitter: GlobalEmitter) {\n\t\tthis._emitter = emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\temitter: this.emitter,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static get featureInstaller() {\n\t\tif (!this._featureInstaller) {\n\t\t\tconst installer = this.FeatureInstaller()\n\t\t\tthis._featureInstaller = installer\n\t\t}\n\n\t\treturn this._featureInstaller\n\t}\n\n\tprotected static set featureInstaller(installer: FeatureInstaller) {\n\t\tthis._featureInstaller = installer\n\t}\n\n\tprotected static FeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst storeFactory = this.StoreFactory(options)\n\t\tconst emitter = options?.emitter ?? this.emitter\n\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\tconst installer = FeatureInstallerFactory.WithAllFeatures({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tactionExecuter,\n\t\t\t...options,\n\t\t})\n\t\treturn installer\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.emitter,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...(options as any),\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(code)\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter: this.emitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter: this.emitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.featureInstaller\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AbstractCliTest.js","names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","_writers","ActionFactory","clearActionOverrides","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","_emitter","undefined","_featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearFakedResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupAfterEach","FeatureFixture","deleteOldSkillDirs","shouldCleanupAfterAll","pattern","resolveTestPath","globby","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","featureInstaller","MercuryFixture","PersonFixture","viewWriter","writers","Writer","fileDescriptions","ViewFixture","Action","WriterFactory","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","installer","FeatureInstaller","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","assertFilePassesTypeChecks","path","checker","check","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","writerFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"sources":["../../src/tests/AbstractCliTest.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test-utils'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static _emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static _featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\tprivate static _writers?: WriterFactory\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tdelete this._writers\n\n\t\tActionFactory.clearActionOverrides()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis._emitter = undefined\n\t\tthis._featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearFakedResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\n\t\tif (testUtil.shouldCleanupAfterEach()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupAfterAll()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis._emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static get emitter() {\n\t\tif (!this._emitter) {\n\t\t\tthis._emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this._emitter\n\t}\n\n\tprotected static set emitter(emitter: GlobalEmitter) {\n\t\tthis._emitter = emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\temitter: this.emitter,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst viewWriter = this.writers.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprotected static get writers() {\n\t\tif (!this._writers) {\n\t\t\tthis._writers = this.WriterFactory()\n\t\t}\n\n\t\treturn this._writers\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static get featureInstaller() {\n\t\tif (!this._featureInstaller) {\n\t\t\tconst installer = this.FeatureInstaller()\n\t\t\tthis._featureInstaller = installer\n\t\t}\n\n\t\treturn this._featureInstaller\n\t}\n\n\tprotected static set featureInstaller(installer: FeatureInstaller) {\n\t\tthis._featureInstaller = installer\n\t}\n\n\tprotected static FeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst storeFactory = this.StoreFactory(options)\n\t\tconst emitter = options?.emitter ?? this.emitter\n\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\tconst installer = FeatureInstallerFactory.WithAllFeatures({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tactionExecuter,\n\t\t\t...options,\n\t\t})\n\t\treturn installer\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.emitter,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...(options as any),\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(code)\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tawait this.assertFilePassesTypeChecks(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async assertFilePassesTypeChecks(file: string) {\n\t\tconst checker = this.Service('typeChecker')\n\t\tawait checker.check(file)\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory: this.writers,\n\t\t\tui: this.ui,\n\t\t\temitter: this.emitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter: this.emitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.featureInstaller\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAGA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAEjBA,eAAe;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,+FAgB5C;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,qBAAqB,EAAE;cAAA;gBAElCC,uBAAW,CAACC,cAAc,EAAE;gBAE5BC,yBAAa,CAACC,WAAW,CAACC,0BAAQ,CAACC,mBAAmB,EAAE,CAAC;gBACzDH,yBAAa,CAACI,aAAa,EAAE;gBAE7BC,OAAO,CAACC,GAAG,CAACC,4BAA4B,GAAG,OAAO;gBAElD,IAAI,CAACC,WAAW,qBAAQH,OAAO,CAACC,GAAG,CAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACrC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,gGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAGC,OAAO,IAAI,CAACG,QAAQ;gBAEpBC,yBAAa,CAACC,oBAAoB,EAAE;;gBAEpC;gBACAN,OAAO,CAACC,GAAG,qBAAQ,IAAI,CAACE,WAAW,CAAE;gBAErCI,gBAAQ,CAACC,aAAa,EAAE;gBAExBC,sBAAc,CAACC,WAAW,EAAE,CAACC,gBAAgB,EAAE;gBAE/C,IAAI,CAACC,GAAG,GAAG,IAAI,CAACC,WAAW,EAAE;gBAC7B,IAAI,CAACC,OAAO,GAAG,IAAI,CAACD,WAAW,EAAE;gBAEjC,IAAI,CAACE,QAAQ,GAAGC,SAAS;gBACzB,IAAI,CAACC,iBAAiB,GAAGD,SAAS;gBAElCE,2BAAe,CAACC,WAAW,CAACtB,0BAAQ,CAACC,mBAAmB,EAAE,CAAC;gBAE3D,IAAI,CAACsB,EAAE,CAACC,KAAK,EAAE;gBACf,IAAI,CAACD,EAAE,CAACE,WAAW,GAAG,EAAE;gBACxB,IAAI,CAACF,EAAE,CAACG,iBAAiB,CAAC;kBAAEC,CAAC,EAAE,CAAC;kBAAEC,CAAC,EAAE;gBAAE,CAAC,CAAC;gBAEzC,IAAI,CAACC,aAAa,EAAE;gBAEpB/B,yBAAa,CAACgC,UAAU,EAAE;gBAC1BC,sBAAU,CAACC,iBAAiB,EAAE;gBAC9BC,sBAAU,CAACH,UAAU,EAAE;gBACvBI,0BAAc,CAACC,mBAAmB,EAAE;gBACpCC,mCAAoB,CAACZ,KAAK,EAAE;gBAC5BY,mCAAoB,CAACC,aAAa,CAAC,KAAK,CAAC;gBAEzC,IAAI,CAACC,YAAY,GAAG,IAAIC,wBAAY,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACtC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,+FAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA,gCAGO,IAAI,CAACC,mBAAmB,0DAAxB,sBAA0BC,YAAY,EAAE;cAAA;gBAAA;gBAAA,+BACxC,IAAI,CAACC,cAAc,yDAAnB,qBAAqBC,aAAa,EAAE;cAAA;gBAE1C,IAAI,CAACd,aAAa,EAAE;gBAAA,mBAEhB,IAAI,CAACe,GAAG,sCAAR,UAAUC,iBAAiB,EAAE;kBAAA;kBAAA;gBAAA;gBAAA,MAC1B,IAAIC,KAAK,sHAEd;cAAA;gBAGF,IAAI9C,0BAAQ,CAAC+C,YAAY,CAAC,IAAI,CAAChC,GAAG,CAAC,IAAIL,gBAAQ,CAACsC,gBAAgB,EAAE,EAAE;kBACnEhD,0BAAQ,CAACiD,SAAS,CAAC,IAAI,CAAClC,GAAG,CAAC;gBAC7B;gBAEA,IAAIf,0BAAQ,CAAC+C,YAAY,CAAC,IAAI,CAAC9B,OAAO,CAAC,IAAIP,gBAAQ,CAACsC,gBAAgB,EAAE,EAAE;kBACvEhD,0BAAQ,CAACiD,SAAS,CAAC,IAAI,CAAChC,OAAO,CAAC;gBACjC;gBAEA,IAAIP,gBAAQ,CAACwC,sBAAsB,EAAE,EAAE;kBACtCC,2BAAc,CAACC,kBAAkB,EAAE;gBACpC;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,8FAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAEC,IAAI1C,gBAAQ,CAAC2C,qBAAqB,EAAE,EAAE;kBACrCF,2BAAc,CAACC,kBAAkB,EAAE;gBACpC;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,2GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOE,OAAO,GAAG,IAAI,CAACC,eAAe,CAAC,WAAW,CAAC;gBAAA;gBAAA,OAC3B,IAAAC,kBAAM,EAACF,OAAO,CAAC;cAAA;gBAA/BG,OAAO;gBAAA,uCAEOA,OAAO;gBAAA;kBAA3B,oDAA6B;oBAAlBC,KAAK;oBACf1D,0BAAQ,CAAC2D,UAAU,CAACD,KAAK,CAAC;kBAC3B;gBAAC;kBAAA;gBAAA;kBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,yBAA+B;MAC9B,IAAI,CAACxC,QAAQ,GAAGC,SAAS;MACzB,IAAI,CAACuB,cAAc,GAAGvB,SAAS;MAC/B,IAAI,CAACqB,mBAAmB,GAAGrB,SAAS;MACpC,IAAI,CAACyC,aAAa,GAAGzC,SAAS;MAC9B,IAAI,CAAC0C,YAAY,GAAG1C,SAAS;MAC7B,IAAI,CAAC2C,WAAW,GAAG3C,SAAS;IAC7B;EAAC;IAAA;IAAA,OAED,uBAA+B;MAC9B,IAAM4C,YAAY,GAAGrD,gBAAQ,CAACsD,cAAc,CAACC,IAAI,CAACC,EAAE,EAAE,CAAC;MACvDC,mBAAE,CAACC,aAAa,CAACL,YAAY,CAAC;MAC9B,OAAOA,YAAY;IACpB;EAAC;IAAA;IAAA,KAED,eAA0B;MACzB,IAAI,CAAC,IAAI,CAACnB,GAAG,EAAE;QACd,IAAI,CAACA,GAAG,GAAG,IAAIyB,wBAAY,EAAE;MAC9B;MAEA,OAAO,IAAI,CAACzB,GAAG;IAChB;EAAC;IAAA;IAAA,KAED,eAA+B;MAC9B,IAAI,CAAC,IAAI,CAAC1B,QAAQ,EAAE;QACnB,IAAI,CAACA,QAAQ,GAAGoD,yBAAgB,CAACC,OAAO,EAAE;MAC3C;MACA,OAAO,IAAI,CAACrD,QAAQ;IACrB,CAAC;IAAA,KAED,aAA6BsD,OAAsB,EAAE;MACpD,IAAI,CAACtD,QAAQ,GAAGsD,OAAO;IACxB;EAAC;IAAA;IAAA,OAED,2BAAyE;MAAA,kCAArCC,yBAAyB;QAAzBA,yBAAyB;MAAA;MAC5D,OAAOC,gBAAQ,CAACC,IAAI,OAAbD,gBAAQ,GACd,IAAI,CAACE,OAAO,EACZ,WAAW,EACX,kBAAkB,SACfH,yBAAyB,EAC5B;IACF;EAAC;IAAA;IAAA;MAAA,yFAED,kBAA2BI,OAAwB;QAAA;UAAA;YAAA;cAAA;gBAAA,kCAC3C,IAAI,CAAC1B,cAAc,CAAC0B,OAAO,CAAC,CAACC,GAAG;kBACtC/D,GAAG,EAAE,IAAI,CAACA,GAAG;kBACbE,OAAO,EAAE,IAAI,CAACA;gBAAO,GACjB4D,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,CAAC,CAAC,EAChB;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,uGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOE,OAAO,GAAG,IAAI,CAAC5B,cAAc,EAAE;gBAAA;gBAAA,OAC/B4B,OAAO,CAACC,iBAAiB,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACjC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA;QAAA;MAAA;MAAA;QAAA;MAAA;MAAA;IAAA,EAED,UACCC,IAAO,EACPlE,GAAY,EACI;MAChB,IAAMmE,EAAE,GAAG,IAAI,CAACC,cAAc,EAAE;MAChC,OAAOD,EAAE,CAACE,OAAO,CAACrE,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,IAAI,CAACA,GAAG,EAAEkE,IAAI,CAAC;IACzC,CAAC;EAAA;IAAA;IAAA,OAED,0BAAkC;MACjC,OAAO,IAAIE,2BAAc,EAAE;IAC5B;EAAC;IAAA;IAAA,OAED,wBAAgCN,OAAwC,EAAE;MACzE,OAAO,IAAI1B,2BAAc;QACxBpC,GAAG,EAAE,IAAI,CAACA,GAAG;QACbsE,cAAc,EAAE,IAAI,CAACF,cAAc,EAAE;QACrC5D,EAAE,EAAE,IAAI,CAACA,EAAE;QACX+D,gBAAgB,EAAE,IAAI,CAACC,iBAAiB,EAAE,CAACC,mBAAmB,EAAE;QAChEC,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;QACvCjB,OAAO,EAAE,IAAI,CAACA;MAAO,GAClBK,OAAO,EACT;IACH;EAAC;IAAA;IAAA,OAED,6BAAqC;MACpC,IAAI,CAAC,IAAI,CAACnC,cAAc,EAAE;QACzB,IAAI,CAACA,cAAc,GAAG,IAAIgD,0BAAc,CAAC,IAAI,CAAC3E,GAAG,EAAE,IAAI,CAACoE,cAAc,EAAE,CAAC;MAC1E;MAEA,OAAO,IAAI,CAACzC,cAAc;IAC3B;EAAC;IAAA;IAAA,KAED,eAA8B;MAC7B,IAAI,CAAC,IAAI,CAACkB,aAAa,EAAE;QACxB,IAAI,CAACA,aAAa,GAAG,IAAI+B,yBAAa,CACrC,IAAI,CAACJ,iBAAiB,EAAE,CAACC,mBAAmB,EAAE,CAC9C;MACF;MAEA,OAAO,IAAI,CAAC5B,aAAa;IAC1B;EAAC;IAAA;IAAA,OAED,0BAAkC;MACjC,IAAI,CAAC,IAAI,CAACE,WAAW,EAAE;QACtB,IAAM8B,UAAU,GAAG,IAAI,CAACC,OAAO,CAACC,MAAM,CAAC,MAAM,EAAE;UAAEC,gBAAgB,EAAE;QAAG,CAAC,CAAC;QACxE,IAAI,CAACjC,WAAW,GAAG,IAAIkC,uBAAW,CACjC,IAAI,CAACjF,GAAG,EACR6E,UAAU,EACV,IAAI,CAACK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAC3B;MACF;MAEA,OAAO,IAAI,CAACnC,WAAW;IACxB;EAAC;IAAA;IAAA,KAED,eAA+B;MAC9B,IAAI,CAAC,IAAI,CAACvD,QAAQ,EAAE;QACnB,IAAI,CAACA,QAAQ,GAAG,IAAI,CAAC2F,aAAa,EAAE;MACrC;MAEA,OAAO,IAAI,CAAC3F,QAAQ;IACrB;EAAC;IAAA;IAAA,OAED,yBAA+B;MAC9B,OAAO,IAAI2F,0BAAa,CAAC;QACxBC,SAAS,EAATA,0BAAS;QACT5E,EAAE,EAAE,IAAI,CAACA,EAAE;QACX6E,QAAQ,EAAE,IAAI,CAAChB,OAAO,CAAC,UAAU;MAClC,CAAC,CAAC;IACH;EAAC;IAAA;IAAA;MAAA,6GAED,kBAGCiB,OAAW;QAAA;QAAA;UAAA;YAAA;cAAA;gBAELC,OAAO,GAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;gBAAA;gBAAA,OAErB,IAAI,CAACE,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAAChF,EAAE,CAACiF,SAAS,CAAC,GAAG,CAAC;cAAA;gBAAA;gBAAA,OAEtB,IAAI,CAACD,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAAChF,EAAE,CAACiF,SAAS,CAAC,EAAE,CAAC;cAAA;gBAAA;gBAAA,OAELF,OAAO;cAAA;gBAAvBG,OAAO;gBAAA,kCAENA,OAAO;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACd;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,kCAA0C;MACzC,IAAI,CAAC,IAAI,CAACjE,mBAAmB,EAAE;QAC9B,IAAI,CAACA,mBAAmB,GAAG,IAAIkE,+BAAmB,CACjD,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,YAAY,EAAE,CACnB;MACF;MAEA,OAAO,IAAI,CAACpE,mBAAmB;IAChC;EAAC;IAAA;IAAA,OAED,2BAAmC;MAClC,IAAI,CAAC,IAAI,CAACqB,YAAY,EAAE;QACvB,IAAI,CAACA,YAAY,GAAG,IAAIgD,wBAAY,CACnC,IAAI,CAACF,MAAM,EACX,IAAI,CAACC,YAAY,EAAE,EACnB,IAAI,CAACrB,iBAAiB,EAAE,CAACC,mBAAmB,EAAE,CAC9C;MACF;MAEA,OAAO,IAAI,CAAC3B,YAAY;IACzB;EAAC;IAAA;IAAA,OAED,iCAA8D;MAAA,mCAApBiD,QAAQ;QAARA,QAAQ;MAAA;MACjD,OAAO9G,0BAAQ,CAAC+G,qBAAqB,OAA9B/G,0BAAQ,GAAuB,IAAI,CAACe,GAAG,SAAK+F,QAAQ,EAAC;IAC7D;EAAC;IAAA;IAAA,KAED,eAAwC;MACvC,IAAI,CAAC,IAAI,CAAC1F,iBAAiB,EAAE;QAC5B,IAAM4F,SAAS,GAAG,IAAI,CAACC,gBAAgB,EAAE;QACzC,IAAI,CAAC7F,iBAAiB,GAAG4F,SAAS;MACnC;MAEA,OAAO,IAAI,CAAC5F,iBAAiB;IAC9B,CAAC;IAAA,KAED,aAAsC4F,SAA2B,EAAE;MAClE,IAAI,CAAC5F,iBAAiB,GAAG4F,SAAS;IACnC;EAAC;IAAA;IAAA,OAED,0BAAkCnC,OAAiC,EAAE;MAAA;MACpE,IAAMQ,cAAc,GAAG,IAAI,CAACF,cAAc,EAAE;MAC5C,IAAM+B,YAAY,GAAG,IAAI,CAACN,YAAY,CAAC/B,OAAO,CAAC;MAC/C,IAAML,OAAO,uBAAGK,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEL,OAAO,+DAAI,IAAI,CAACA,OAAO;MAChD,IAAMc,gBAAgB,GAAG,IAAI,CAACC,iBAAiB,EAAE,CAACC,mBAAmB,EAAE;MAEvE,IAAM2B,cAAc,GAAG,IAAI,CAACC,cAAc,EAAE;MAE5C,IAAMJ,SAAS,GAAGK,mCAAuB,CAACC,eAAe;QACxDvG,GAAG,EAAE,IAAI,CAACA,GAAG;QACbsE,cAAc,EAAdA,cAAc;QACd6B,YAAY,EAAZA,YAAY;QACZ3F,EAAE,EAAE,IAAI,CAACA,EAAE;QACXiD,OAAO,EAAPA,OAAO;QACPc,gBAAgB,EAAhBA,gBAAgB;QAChB6B,cAAc,EAAdA;MAAc,GACXtC,OAAO,EACT;MACF,OAAOmC,SAAS;IACjB;EAAC;IAAA;IAAA,OAED,sBAA8BnC,OAAsC,EAAE;MACrE,IAAMQ,cAAc,GAAG,IAAI,CAACF,cAAc,EAAE;MAE5C,OAAO,IAAIyB,yBAAY;QACtB7F,GAAG,EAAE,IAAI,CAACA,GAAG;QACbsE,cAAc,EAAdA,cAAc;QACdpE,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBqE,gBAAgB,EAAE,IAAI,CAACC,iBAAiB,EAAE,CAACC,mBAAmB,EAAE;QAChEhB,OAAO,EAAE,IAAI,CAACA;MAAO,GAClBK,OAAO,EACT;IACH;EAAC;IAAA;IAAA,OAED,eACC0C,IAAO,EACP1C,OAA+B,EACjB;MACd,OAAO,IAAI,CAAC+B,YAAY,EAAE,CAACY,KAAK,CAACD,IAAI;QACpCxG,GAAG,EAAE,IAAI,CAACA;MAAG,GACT8D,OAAO,EACV;IACH;EAAC;IAAA;IAAA;MAAA,kGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAI,CAACtD,EAAE,CAACgF,YAAY,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC7B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,8GAED,mBAAgDgB,IAAiB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACtC,IAAI,CAAC9B,gBAAgB,CAACgC,WAAW,CAACF,IAAI,CAAC;cAAA;gBAA3DE,WAAW;gBACjBC,iBAAM,CAACC,MAAM,CAACF,WAAW,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oHAED,mBACChB,OAA8B;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,0DAEXA,OAAO,CAACmB,KAAK,2DAAI,EAAE;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAA3BC,IAAI;gBAAA;gBAAA,OACR,IAAI,CAACC,0BAA0B,CAACD,IAAI,CAACE,IAAI,CAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CASjD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,gHAED,mBAAkDF,IAAY;QAAA;QAAA;UAAA;YAAA;cAAA;gBACvDG,OAAO,GAAG,IAAI,CAAC5C,OAAO,CAAC,aAAa,CAAC;gBAAA;gBAAA,OACrC4C,OAAO,CAACC,KAAK,CAACJ,IAAI,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACzB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kGAED,mBAAoChD,OAAiC;QAAA;UAAA;YAAA;cAAA;gBAAA,mCAC7D,IAAI,CAACU,iBAAiB,EAAE,CAAC2C,YAAY,CAACrD,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACrD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kGAED,mBAAoCA,OAInC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACM,IAAI,CAACoB,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAACI,OAAO,CAAC;kBAAE8B,GAAG,EAAE;gBAAK,CAAC,CAAC;cAAA;gBAAA;gBAAA,OAErD,IAAI,CAAC/C,OAAO,CAAC,SAAS,CAAC,CAACiB,OAAO,yCAC5BxB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEgD,IAAI,yDAAIhD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEuD,GAAG,uCAAI,IAAI,CAACrH,GAAG,EACjD;cAAA;gBAAA;gBAAA,OACK,IAAI,CAACsH,IAAI,qBAACxD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEyD,OAAO,+DAAI,QAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC7C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kGAED,mBAAoCzD,OAInC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACM,IAAI,CAACO,OAAO,CAAC,SAAS,CAAC,CAACiB,OAAO,2CAC5BxB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEgD,IAAI,2DAAIhD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEuD,GAAG,yCAAI,IAAI,CAACrH,GAAG,EACjD;cAAA;gBAAA;gBAAA,OACK,IAAI,CAACsH,IAAI,sBAACxD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEyD,OAAO,iEAAI,QAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC7C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,eAAqC;MACpC5H,gBAAQ,CAAC6H,GAAG,OAAZ7H,gBAAQ,YAAa;IACtB;EAAC;IAAA;IAAA;MAAA;QAAA;MAAA;MAAA;QAAA;MAAA;MAAA;IAAA,EAED,UAGE8H,WAAc,EAAEC,UAAkB,EAAE5D,OAAyB,EAAU;MACxE,IAAM6D,QAAQ,GAAG,IAAI,CAACtB,cAAc;QACnCuB,0BAA0B,EAAE;MAAI,GAC7B9D,OAAO,EACT,CAACoB,MAAM,CAACuC,WAAW,EAAEC,UAAU,CAAC;MAElC,OAAOC,QAAQ;IAChB,CAAC;EAAA;IAAA;IAAA,OAED,wBAAgC7D,OAAyB,EAAE;MAAA;MAC1D,IAAMQ,cAAc,GAAG,IAAI,CAACF,cAAc,EAAE;MAE5C,IAAMyD,aAAa,GAAG,IAAIpI,yBAAa,CAAC;QACvCqI,aAAa,EAAE,IAAI,CAAChD,OAAO;QAC3BtE,EAAE,EAAE,IAAI,CAACA,EAAE;QACXiD,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBc,gBAAgB,EAAE,IAAI,CAACC,iBAAiB,EAAE,CAACC,mBAAmB,EAAE;QAChEzE,GAAG,EAAE,IAAI,CAACA,GAAG;QACbsE,cAAc,EAAdA,cAAc;QACd6B,YAAY,EAAE,IAAI,CAACN,YAAY,EAAE;QACjCT,SAAS,EAATA,0BAAS;QACT2C,eAAe;UACd,cAAc,EAAE;YACfC,gCAAgC,EAAE;UACnC;QAAC,GACElE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiE,eAAe;MAE7B,CAAC,CAAC;MAEF,IAAMJ,QAAQ,GAAG,IAAItB,2BAAc;QAClC7F,EAAE,EAAE,IAAI,CAACA,EAAE;QACXiD,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBoE,aAAa,EAAbA,aAAa;QACbI,uBAAuB,EAAE,mCAAM;UAC9B,OAAO,KAAI,CAACvD,gBAAgB;QAC7B,CAAC;QACDwD,4BAA4B,EAAE;MAAK,GAChCpE,OAAO,EACT;MAEF,OAAO6D,QAAQ;IAChB;EAAC;IAAA;IAAA,OAED,kCAA0CQ,KAAa,EAAE;MACxD,IAAMC,IAAI,GAAG,IAAI,CAAC5H,EAAE,CAAC6H,iBAAiB,EAAE;MACxC1B,iBAAM,CAAC2B,WAAW,CAACF,IAAI,CAACtE,OAAO,CAACA,OAAO,CAACyE,OAAO,EAAE;QAChDJ,KAAK,EAALA;MACD,CAAC,CAAC;MAEF,IAAMxF,KAAK,GAAGyF,IAAI,CAACtE,OAAO,CAACA,OAAO,CAACyE,OAAO,CAACC,IAAI,CAC9C,UAACC,CAAM;QAAA,OAAKA,CAAC,CAACN,KAAK,KAAKA,KAAK;MAAA,EAC7B;MAED,KAAK,IAAI,CAAC3H,EAAE,CAACiF,SAAS,WAAI9C,KAAK,CAAC+F,KAAK,EAAG;IACzC;EAAC;EAAA;AAAA,EA1coDC,qBAAkB;AAAA;AAAA,iCAA1ChK,eAAe,aACjBgF,gBAAQ,CAACC,IAAI,CAACgF,SAAS,EAAE,IAAI,CAAC;AAAA,iCAD5BjK,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe;AAAA,iCAAfA,eAAe"}
@@ -173,6 +173,13 @@ function _run() {
173
173
  term.clear();
174
174
  if (process.env.WILL_BUILD_CACHE_SCRIPT) {
175
175
  term.renderLine('Running pre build cache script');
176
+ if (process.env.CLEAN_CACHE_SCRIPT) {
177
+ try {
178
+ (0, _child_process.execSync)(process.env.CLEAN_CACHE_SCRIPT);
179
+ } catch (_unused) {
180
+ /* Empty */
181
+ }
182
+ }
176
183
  (0, _child_process.execSync)(process.env.WILL_BUILD_CACHE_SCRIPT);
177
184
  }
178
185
  term.renderHeadline("Found ".concat(testKeys.length, " skills to cache."));
@@ -1 +1 @@
1
- {"version":3,"file":"buildTestCache.js","names":["require","config","packageJsonContents","diskUtil","readFile","resolvePath","__dirname","packageJson","JSON","parse","testSkillCache","testKeys","Object","keys","remaining","length","term","TerminalInterface","start","Date","getTime","testSkillsToCache","process","env","TEST_SKILLS_TO_CACHE","undefined","onlyInstall","split","map","t","trim","shouldRunSequentially","argv","find","a","maxSimultaneous","MAX_SIMULTANEOUS_SKILL_CACHERS","totalSimultaneous","progressInterval","doesSupportColor","didMessagesChange","run","getTimeSpent","renderLine","renderWarning","cacheOrSkip","setup","cache","lineNum","cwd","cacheKey","fixture","options","doesDirExist","GraphicsTextEffect","Italic","deleteDir","Green","installFeatures","durationUtil","msToFriendly","Bold","Red","stack","importCacheDir","testUtil","resolveTestDir","ImportService","setCacheDir","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","FeatureFixture","ui","shouldGenerateCacheIfMissing","apiClientFactory","getApiClientFactory","cacheTracker","loadCacheTracker","indexOf","Yellow","message","effects","messages","render","console","log","now","delta","clear","WILL_BUILD_CACHE_SCRIPT","execSync","renderHeadline","moveCursorTo","eraseLine","stopLoading","startLoading","dropInS","clearBelowCursor","setInterval","Promise","all","idx","promises","resolve","setTimeout","then","DID_BUILD_CACHE_SCRIPT","clearInterval","err","renderError"],"sources":["../../src/tests/buildTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ImportService from '../services/ImportService'\nimport ServiceFactory from '../services/ServiceFactory'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport FeatureFixture from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nrequire('dotenv').config()\n\nconst packageJsonContents = diskUtil.readFile(\n\tdiskUtil.resolvePath(__dirname, '..', '..', 'package.json')\n)\n\nconst packageJson = JSON.parse(packageJsonContents)\nconst { testSkillCache } = packageJson\nconst testKeys = Object.keys(testSkillCache)\n\nlet remaining = testKeys.length\nconst term = new TerminalInterface(__dirname, true)\nconst start = new Date().getTime()\nconst testSkillsToCache =\n\tprocess.env.TEST_SKILLS_TO_CACHE === '*'\n\t\t? undefined\n\t\t: process.env.TEST_SKILLS_TO_CACHE\nconst onlyInstall = testSkillsToCache?.split(',').map((t) => t.trim()) as\n\t| string[]\n\t| undefined\n\nconst shouldRunSequentially = !!process.argv.find(\n\t(a) => a === '--shouldRunSequentially=true' || a === '--shouldRunSequentially'\n)\nconst maxSimultaneous = process.env.MAX_SIMULTANEOUS_SKILL_CACHERS ?? 10\nlet totalSimultaneous = 0\nlet progressInterval: any\nconst doesSupportColor = TerminalInterface.doesSupportColor()\n\nlet didMessagesChange = true\n\nasync function run() {\n\tterm.clear()\n\n\tif (process.env.WILL_BUILD_CACHE_SCRIPT) {\n\t\tterm.renderLine('Running pre build cache script')\n\t\texecSync(process.env.WILL_BUILD_CACHE_SCRIPT)\n\t}\n\n\tterm.renderHeadline(`Found ${testKeys.length} skills to cache.`)\n\n\tlet messages: [string, any][] = []\n\n\tconst render = async () => {\n\t\tif (didMessagesChange) {\n\t\t\tterm.moveCursorTo(0, 6)\n\n\t\t\tfor (const message of messages) {\n\t\t\t\tterm.eraseLine()\n\t\t\t\tterm.renderLine(message[0], message[1])\n\t\t\t}\n\n\t\t\tawait term.stopLoading()\n\n\t\t\tterm.eraseLine()\n\t\t\tterm.renderLine('')\n\t\t}\n\n\t\tdidMessagesChange = false\n\n\t\tawait term.startLoading(\n\t\t\t`${`Building ${remaining} skill${dropInS(\n\t\t\t\tremaining\n\t\t\t)}`}. ${durationUtil.msToFriendly(getTimeSpent())}`\n\t\t)\n\n\t\tterm.clearBelowCursor()\n\t}\n\n\tprogressInterval = doesSupportColor && setInterval(render, 1000)\n\n\tfunction getTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - start\n\t\treturn delta\n\t}\n\n\tfunction renderLine(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tfunction renderWarning(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tif (doesSupportColor) {\n\t\tawait term.startLoading(\n\t\t\t`Building ${remaining} remaining skill${dropInS(remaining)}...`\n\t\t)\n\t}\n\n\tif (shouldRunSequentially) {\n\t\tawait Promise.all(\n\t\t\ttestKeys.map((cacheKey, idx) => cacheOrSkip(idx, cacheKey))\n\t\t)\n\t} else {\n\t\tconst promises = testKeys.map(async (cacheKey, idx) => {\n\t\t\twhile (totalSimultaneous >= maxSimultaneous) {\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000))\n\t\t\t}\n\t\t\ttotalSimultaneous++\n\t\t\tawait cacheOrSkip(idx, cacheKey)\n\t\t\ttotalSimultaneous--\n\t\t})\n\n\t\tawait Promise.all(promises)\n\t}\n\n\tawait term.stopLoading()\n\tterm.renderLine(`Done! ${durationUtil.msToFriendly(getTimeSpent())}`)\n\n\tasync function cacheOrSkip(lineNum: number, cacheKey: string) {\n\t\tconst { cacheTracker, cwd, fixture, options } = setup(cacheKey)\n\n\t\tif (onlyInstall && onlyInstall.indexOf(cacheKey) === -1) {\n\t\t\trenderLine(lineNum, `Skipping '${cacheKey}'.`, [\n\t\t\t\tGraphicsTextEffect.Yellow,\n\t\t\t])\n\t\t\tremaining--\n\t\t} else if (\n\t\t\tcacheTracker[cacheKey] &&\n\t\t\tdiskUtil.doesDirExist(diskUtil.resolvePath(cwd, 'node_modules'))\n\t\t) {\n\t\t\tremaining--\n\t\t\trenderLine(lineNum, `'${cacheKey}' already cached. Skipping...`, [\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t])\n\t\t} else {\n\t\t\tawait cache(lineNum, cwd, cacheKey, fixture, options)\n\t\t\tremaining--\n\t\t}\n\t}\n\n\tfunction setup(cacheKey: string) {\n\t\tconst options = testSkillCache[cacheKey]\n\n\t\tconst importCacheDir = testUtil.resolveTestDir('spruce-cli-import-cache')\n\t\tImportService.setCacheDir(importCacheDir)\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst cwd = testUtil.resolveTestDir(cacheKey)\n\n\t\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\t\tconst fixture = new FeatureFixture({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tui: new TerminalInterface(cwd),\n\t\t\tshouldGenerateCacheIfMissing: true,\n\t\t\tapiClientFactory: mercuryFixture.getApiClientFactory(),\n\t\t})\n\n\t\tconst cacheTracker = fixture.loadCacheTracker()\n\t\treturn { cacheTracker, cwd, fixture, options }\n\t}\n\n\tasync function cache(\n\t\tlineNum: number,\n\t\tcwd: string,\n\t\tcacheKey: string,\n\t\tfixture: FeatureFixture,\n\t\toptions: any\n\t) {\n\t\tif (diskUtil.doesDirExist(cwd)) {\n\t\t\trenderWarning(\n\t\t\t\tlineNum,\n\t\t\t\t`Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`,\n\t\t\t\t[GraphicsTextEffect.Italic]\n\t\t\t)\n\t\t\tdiskUtil.deleteDir(cwd)\n\t\t}\n\n\t\trenderLine(lineNum, `Starting to build '${cacheKey}'...`, [\n\t\t\tGraphicsTextEffect.Green,\n\t\t])\n\n\t\ttry {\n\t\t\tawait fixture.installFeatures(options, cacheKey)\n\t\t\trenderLine(\n\t\t\t\tlineNum,\n\t\t\t\t`Done caching '${cacheKey}'. ${\n\t\t\t\t\tremaining - 1\n\t\t\t\t} remaining (${durationUtil.msToFriendly(getTimeSpent())})...`,\n\t\t\t\t[GraphicsTextEffect.Green, GraphicsTextEffect.Bold]\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\trenderLine(lineNum, `Error caching '${cacheKey}'...`, [\n\t\t\t\tGraphicsTextEffect.Red,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t])\n\n\t\t\trenderLine(lineNum, `Error caching ${cacheKey}:\\n\\n${err.stack}`)\n\t\t}\n\t}\n}\n\nfunction dropInS(remaining: number) {\n\treturn remaining === 1 ? '' : 's'\n}\n\nvoid run()\n\t.then(() => {\n\t\tif (process.env.DID_BUILD_CACHE_SCRIPT) {\n\t\t\tterm.renderLine('Running pre build cache script')\n\t\t\texecSync(process.env.DID_BUILD_CACHE_SCRIPT)\n\t\t}\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n"],"mappings":"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"}
1
+ {"version":3,"file":"buildTestCache.js","names":["require","config","packageJsonContents","diskUtil","readFile","resolvePath","__dirname","packageJson","JSON","parse","testSkillCache","testKeys","Object","keys","remaining","length","term","TerminalInterface","start","Date","getTime","testSkillsToCache","process","env","TEST_SKILLS_TO_CACHE","undefined","onlyInstall","split","map","t","trim","shouldRunSequentially","argv","find","a","maxSimultaneous","MAX_SIMULTANEOUS_SKILL_CACHERS","totalSimultaneous","progressInterval","doesSupportColor","didMessagesChange","run","getTimeSpent","renderLine","renderWarning","cacheOrSkip","setup","cache","lineNum","cwd","cacheKey","fixture","options","doesDirExist","GraphicsTextEffect","Italic","deleteDir","Green","installFeatures","durationUtil","msToFriendly","Bold","Red","stack","importCacheDir","testUtil","resolveTestDir","ImportService","setCacheDir","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","FeatureFixture","ui","shouldGenerateCacheIfMissing","apiClientFactory","getApiClientFactory","cacheTracker","loadCacheTracker","indexOf","Yellow","message","effects","messages","render","console","log","now","delta","clear","WILL_BUILD_CACHE_SCRIPT","CLEAN_CACHE_SCRIPT","execSync","renderHeadline","moveCursorTo","eraseLine","stopLoading","startLoading","dropInS","clearBelowCursor","setInterval","Promise","all","idx","promises","resolve","setTimeout","then","DID_BUILD_CACHE_SCRIPT","clearInterval","err","renderError"],"sources":["../../src/tests/buildTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ImportService from '../services/ImportService'\nimport ServiceFactory from '../services/ServiceFactory'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport FeatureFixture from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nrequire('dotenv').config()\n\nconst packageJsonContents = diskUtil.readFile(\n\tdiskUtil.resolvePath(__dirname, '..', '..', 'package.json')\n)\n\nconst packageJson = JSON.parse(packageJsonContents)\nconst { testSkillCache } = packageJson\nconst testKeys = Object.keys(testSkillCache)\n\nlet remaining = testKeys.length\nconst term = new TerminalInterface(__dirname, true)\nconst start = new Date().getTime()\nconst testSkillsToCache =\n\tprocess.env.TEST_SKILLS_TO_CACHE === '*'\n\t\t? undefined\n\t\t: process.env.TEST_SKILLS_TO_CACHE\nconst onlyInstall = testSkillsToCache?.split(',').map((t) => t.trim()) as\n\t| string[]\n\t| undefined\n\nconst shouldRunSequentially = !!process.argv.find(\n\t(a) => a === '--shouldRunSequentially=true' || a === '--shouldRunSequentially'\n)\nconst maxSimultaneous = process.env.MAX_SIMULTANEOUS_SKILL_CACHERS ?? 10\nlet totalSimultaneous = 0\nlet progressInterval: any\nconst doesSupportColor = TerminalInterface.doesSupportColor()\n\nlet didMessagesChange = true\n\nasync function run() {\n\tterm.clear()\n\n\tif (process.env.WILL_BUILD_CACHE_SCRIPT) {\n\t\tterm.renderLine('Running pre build cache script')\n\t\tif (process.env.CLEAN_CACHE_SCRIPT) {\n\t\t\ttry {\n\t\t\t\texecSync(process.env.CLEAN_CACHE_SCRIPT)\n\t\t\t} catch {\n\t\t\t\t/* Empty */\n\t\t\t}\n\t\t}\n\t\texecSync(process.env.WILL_BUILD_CACHE_SCRIPT)\n\t}\n\n\tterm.renderHeadline(`Found ${testKeys.length} skills to cache.`)\n\n\tlet messages: [string, any][] = []\n\n\tconst render = async () => {\n\t\tif (didMessagesChange) {\n\t\t\tterm.moveCursorTo(0, 6)\n\n\t\t\tfor (const message of messages) {\n\t\t\t\tterm.eraseLine()\n\t\t\t\tterm.renderLine(message[0], message[1])\n\t\t\t}\n\n\t\t\tawait term.stopLoading()\n\n\t\t\tterm.eraseLine()\n\t\t\tterm.renderLine('')\n\t\t}\n\n\t\tdidMessagesChange = false\n\n\t\tawait term.startLoading(\n\t\t\t`${`Building ${remaining} skill${dropInS(\n\t\t\t\tremaining\n\t\t\t)}`}. ${durationUtil.msToFriendly(getTimeSpent())}`\n\t\t)\n\n\t\tterm.clearBelowCursor()\n\t}\n\n\tprogressInterval = doesSupportColor && setInterval(render, 1000)\n\n\tfunction getTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - start\n\t\treturn delta\n\t}\n\n\tfunction renderLine(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tfunction renderWarning(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tif (doesSupportColor) {\n\t\tawait term.startLoading(\n\t\t\t`Building ${remaining} remaining skill${dropInS(remaining)}...`\n\t\t)\n\t}\n\n\tif (shouldRunSequentially) {\n\t\tawait Promise.all(\n\t\t\ttestKeys.map((cacheKey, idx) => cacheOrSkip(idx, cacheKey))\n\t\t)\n\t} else {\n\t\tconst promises = testKeys.map(async (cacheKey, idx) => {\n\t\t\twhile (totalSimultaneous >= maxSimultaneous) {\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000))\n\t\t\t}\n\t\t\ttotalSimultaneous++\n\t\t\tawait cacheOrSkip(idx, cacheKey)\n\t\t\ttotalSimultaneous--\n\t\t})\n\n\t\tawait Promise.all(promises)\n\t}\n\n\tawait term.stopLoading()\n\tterm.renderLine(`Done! ${durationUtil.msToFriendly(getTimeSpent())}`)\n\n\tasync function cacheOrSkip(lineNum: number, cacheKey: string) {\n\t\tconst { cacheTracker, cwd, fixture, options } = setup(cacheKey)\n\n\t\tif (onlyInstall && onlyInstall.indexOf(cacheKey) === -1) {\n\t\t\trenderLine(lineNum, `Skipping '${cacheKey}'.`, [\n\t\t\t\tGraphicsTextEffect.Yellow,\n\t\t\t])\n\t\t\tremaining--\n\t\t} else if (\n\t\t\tcacheTracker[cacheKey] &&\n\t\t\tdiskUtil.doesDirExist(diskUtil.resolvePath(cwd, 'node_modules'))\n\t\t) {\n\t\t\tremaining--\n\t\t\trenderLine(lineNum, `'${cacheKey}' already cached. Skipping...`, [\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t])\n\t\t} else {\n\t\t\tawait cache(lineNum, cwd, cacheKey, fixture, options)\n\t\t\tremaining--\n\t\t}\n\t}\n\n\tfunction setup(cacheKey: string) {\n\t\tconst options = testSkillCache[cacheKey]\n\n\t\tconst importCacheDir = testUtil.resolveTestDir('spruce-cli-import-cache')\n\t\tImportService.setCacheDir(importCacheDir)\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst cwd = testUtil.resolveTestDir(cacheKey)\n\n\t\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\t\tconst fixture = new FeatureFixture({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tui: new TerminalInterface(cwd),\n\t\t\tshouldGenerateCacheIfMissing: true,\n\t\t\tapiClientFactory: mercuryFixture.getApiClientFactory(),\n\t\t})\n\n\t\tconst cacheTracker = fixture.loadCacheTracker()\n\t\treturn { cacheTracker, cwd, fixture, options }\n\t}\n\n\tasync function cache(\n\t\tlineNum: number,\n\t\tcwd: string,\n\t\tcacheKey: string,\n\t\tfixture: FeatureFixture,\n\t\toptions: any\n\t) {\n\t\tif (diskUtil.doesDirExist(cwd)) {\n\t\t\trenderWarning(\n\t\t\t\tlineNum,\n\t\t\t\t`Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`,\n\t\t\t\t[GraphicsTextEffect.Italic]\n\t\t\t)\n\t\t\tdiskUtil.deleteDir(cwd)\n\t\t}\n\n\t\trenderLine(lineNum, `Starting to build '${cacheKey}'...`, [\n\t\t\tGraphicsTextEffect.Green,\n\t\t])\n\n\t\ttry {\n\t\t\tawait fixture.installFeatures(options, cacheKey)\n\t\t\trenderLine(\n\t\t\t\tlineNum,\n\t\t\t\t`Done caching '${cacheKey}'. ${\n\t\t\t\t\tremaining - 1\n\t\t\t\t} remaining (${durationUtil.msToFriendly(getTimeSpent())})...`,\n\t\t\t\t[GraphicsTextEffect.Green, GraphicsTextEffect.Bold]\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\trenderLine(lineNum, `Error caching '${cacheKey}'...`, [\n\t\t\t\tGraphicsTextEffect.Red,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t])\n\n\t\t\trenderLine(lineNum, `Error caching ${cacheKey}:\\n\\n${err.stack}`)\n\t\t}\n\t}\n}\n\nfunction dropInS(remaining: number) {\n\treturn remaining === 1 ? '' : 's'\n}\n\nvoid run()\n\t.then(() => {\n\t\tif (process.env.DID_BUILD_CACHE_SCRIPT) {\n\t\t\tterm.renderLine('Running pre build cache script')\n\t\t\texecSync(process.env.DID_BUILD_CACHE_SCRIPT)\n\t\t}\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n"],"mappings":"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"}
@@ -381,6 +381,7 @@ var FeatureFixture = /*#__PURE__*/function () {
381
381
  } finally {
382
382
  _iterator.f();
383
383
  }
384
+ this.dirsToDelete = [];
384
385
  }
385
386
  }]);
386
387
  return FeatureFixture;
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFixture.js","names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FeatureFixture.js","names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\n\t\tthis.dirsToDelete = []\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -4,6 +4,8 @@ declare const testUtil: {
4
4
  isCacheEnabled(): boolean;
5
5
  resolveTestDir(cacheKey?: string): string;
6
6
  shouldCleanupTestSkillDirs(): boolean;
7
+ shouldCleanupAfterEach(): boolean;
8
+ shouldCleanupAfterAll(): boolean;
7
9
  getTestRootDir(): string;
8
10
  assertCountsByAction(files: GeneratedFile[] | undefined, options: {
9
11
  generated: number;
@@ -31,6 +31,12 @@ var testUtil = {
31
31
  shouldCleanupTestSkillDirs: function shouldCleanupTestSkillDirs() {
32
32
  return process.env.CLEANUP_TEST_SKILL_DIRS !== 'false';
33
33
  },
34
+ shouldCleanupAfterEach: function shouldCleanupAfterEach() {
35
+ return this.shouldCleanupTestSkillDirs() && process.env.CLEANUP_TEST_SKILL_DIRS_ON === 'afterEach';
36
+ },
37
+ shouldCleanupAfterAll: function shouldCleanupAfterAll() {
38
+ return this.shouldCleanupTestSkillDirs() && process.env.CLEANUP_TEST_SKILL_DIRS_ON !== 'afterEach';
39
+ },
34
40
  getTestRootDir: function getTestRootDir() {
35
41
  var _process$env$TEST_CAC;
36
42
  return (_process$env$TEST_CAC = process.env.TEST_CACHE_ROOT_DIR) !== null && _process$env$TEST_CAC !== void 0 ? _process$env$TEST_CAC : _path["default"].join(_os["default"].tmpdir());
@@ -1 +1 @@
1
- {"version":3,"file":"test.utility.js","names":["require","config","hasArg","regex","process","argv","find","arg","search","testUtil","shouldClearCache","isCacheEnabled","resolveTestDir","cacheKey","diskUtil","resolvePath","getTestRootDir","shouldCleanupTestSkillDirs","env","CLEANUP_TEST_SKILL_DIRS","TEST_CACHE_ROOT_DIR","pathUtil","join","os","tmpdir","assertCountsByAction","files","options","generated","filter","f","action","length","updated","skipped","assert","isEqual","assertFileByNameInGeneratedFiles","name","file","path","isTruthy","JSON","stringify","assertFileByPathInGeneratedFiles","startTime","startLogTimer","Date","getTime","log","prefix","global","activeTest","test","TEST_LOG_FILTER","match","RegExp","args","stderr","write","getTimeSpentFormatted","getTimeSpent","now","delta","spent","durationUtil","msToFriendly"],"sources":["../../../src/tests/utilities/test.utility.ts"],"sourcesContent":["import os from 'os'\nimport pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { GeneratedFile } from '../../types/cli.types'\nimport durationUtil from '../../utilities/duration.utility'\nrequire('dotenv').config()\n\nfunction hasArg(regex: RegExp) {\n\treturn !!process.argv?.find((arg) => arg.search(regex) > -1)\n}\n\nconst testUtil = {\n\tshouldClearCache() {\n\t\treturn hasArg(/clear.*?cache/gi)\n\t},\n\tisCacheEnabled() {\n\t\treturn !hasArg(/no.*?cache/gi)\n\t},\n\n\tresolveTestDir(cacheKey = '') {\n\t\treturn diskUtil.resolvePath(this.getTestRootDir(), 'spruce-cli', cacheKey)\n\t},\n\n\tshouldCleanupTestSkillDirs() {\n\t\treturn process.env.CLEANUP_TEST_SKILL_DIRS !== 'false'\n\t},\n\n\tgetTestRootDir() {\n\t\treturn process.env.TEST_CACHE_ROOT_DIR ?? pathUtil.join(os.tmpdir())\n\t},\n\n\tassertCountsByAction(\n\t\tfiles: GeneratedFile[] | undefined,\n\t\toptions: {\n\t\t\tgenerated: number\n\t\t\tupdated: number\n\t\t\tskipped: number\n\t\t}\n\t) {\n\t\tconst generated = (files ?? []).filter(\n\t\t\t(f) => f.action === 'generated'\n\t\t).length\n\t\tconst updated = (files ?? []).filter((f) => f.action === 'updated').length\n\t\tconst skipped = (files ?? []).filter((f) => f.action === 'skipped').length\n\n\t\tassert.isEqual(\n\t\t\tgenerated,\n\t\t\toptions.generated,\n\t\t\t`Generated the wrong number of files. Got ${generated} but expected ${options.generated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tupdated,\n\t\t\toptions.updated,\n\t\t\t`Updated the wrong number of files. Got ${updated} but expected ${options.updated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tskipped,\n\t\t\toptions.skipped,\n\t\t\t`Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`\n\t\t)\n\t},\n\n\tassertFileByNameInGeneratedFiles(\n\t\tname: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.name.search(name) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file named '${name}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tassertFileByPathInGeneratedFiles(\n\t\tpath: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.path.search(path) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file with path '${path}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tstartTime: 0,\n\tstartLogTimer() {\n\t\tthis.startTime = new Date().getTime()\n\t},\n\n\tlog(...args: any[]) {\n\t\t//@ts-ignore\n\t\tconst prefix = global.activeTest\n\t\t\t? //@ts-ignore\n\t\t\t `${global.activeTest?.file}::${global.activeTest?.test} :: `\n\t\t\t: ''\n\n\t\tif (process.env.TEST_LOG_FILTER) {\n\t\t\tconst match = prefix.search(\n\t\t\t\tnew RegExp(process.env.TEST_LOG_FILTER, 'igm')\n\t\t\t)\n\t\t\tif (match < 0) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tprocess.stderr.write(\n\t\t\tprefix + this.getTimeSpentFormatted() + ': ' + args.join(' ')\n\t\t)\n\t},\n\n\tgetTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - this.startTime\n\t\treturn delta\n\t},\n\n\tgetTimeSpentFormatted() {\n\t\tconst spent = this.getTimeSpent()\n\t\treturn durationUtil.msToFriendly(spent)\n\t},\n}\n\nexport default testUtil\n"],"mappings":"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"}
1
+ {"version":3,"file":"test.utility.js","names":["require","config","hasArg","regex","process","argv","find","arg","search","testUtil","shouldClearCache","isCacheEnabled","resolveTestDir","cacheKey","diskUtil","resolvePath","getTestRootDir","shouldCleanupTestSkillDirs","env","CLEANUP_TEST_SKILL_DIRS","shouldCleanupAfterEach","CLEANUP_TEST_SKILL_DIRS_ON","shouldCleanupAfterAll","TEST_CACHE_ROOT_DIR","pathUtil","join","os","tmpdir","assertCountsByAction","files","options","generated","filter","f","action","length","updated","skipped","assert","isEqual","assertFileByNameInGeneratedFiles","name","file","path","isTruthy","JSON","stringify","assertFileByPathInGeneratedFiles","startTime","startLogTimer","Date","getTime","log","prefix","global","activeTest","test","TEST_LOG_FILTER","match","RegExp","args","stderr","write","getTimeSpentFormatted","getTimeSpent","now","delta","spent","durationUtil","msToFriendly"],"sources":["../../../src/tests/utilities/test.utility.ts"],"sourcesContent":["import os from 'os'\nimport pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { GeneratedFile } from '../../types/cli.types'\nimport durationUtil from '../../utilities/duration.utility'\nrequire('dotenv').config()\n\nfunction hasArg(regex: RegExp) {\n\treturn !!process.argv?.find((arg) => arg.search(regex) > -1)\n}\n\nconst testUtil = {\n\tshouldClearCache() {\n\t\treturn hasArg(/clear.*?cache/gi)\n\t},\n\tisCacheEnabled() {\n\t\treturn !hasArg(/no.*?cache/gi)\n\t},\n\n\tresolveTestDir(cacheKey = '') {\n\t\treturn diskUtil.resolvePath(this.getTestRootDir(), 'spruce-cli', cacheKey)\n\t},\n\n\tshouldCleanupTestSkillDirs() {\n\t\treturn process.env.CLEANUP_TEST_SKILL_DIRS !== 'false'\n\t},\n\n\tshouldCleanupAfterEach() {\n\t\treturn (\n\t\t\tthis.shouldCleanupTestSkillDirs() &&\n\t\t\tprocess.env.CLEANUP_TEST_SKILL_DIRS_ON === 'afterEach'\n\t\t)\n\t},\n\tshouldCleanupAfterAll() {\n\t\treturn (\n\t\t\tthis.shouldCleanupTestSkillDirs() &&\n\t\t\tprocess.env.CLEANUP_TEST_SKILL_DIRS_ON !== 'afterEach'\n\t\t)\n\t},\n\n\tgetTestRootDir() {\n\t\treturn process.env.TEST_CACHE_ROOT_DIR ?? pathUtil.join(os.tmpdir())\n\t},\n\n\tassertCountsByAction(\n\t\tfiles: GeneratedFile[] | undefined,\n\t\toptions: {\n\t\t\tgenerated: number\n\t\t\tupdated: number\n\t\t\tskipped: number\n\t\t}\n\t) {\n\t\tconst generated = (files ?? []).filter(\n\t\t\t(f) => f.action === 'generated'\n\t\t).length\n\t\tconst updated = (files ?? []).filter((f) => f.action === 'updated').length\n\t\tconst skipped = (files ?? []).filter((f) => f.action === 'skipped').length\n\n\t\tassert.isEqual(\n\t\t\tgenerated,\n\t\t\toptions.generated,\n\t\t\t`Generated the wrong number of files. Got ${generated} but expected ${options.generated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tupdated,\n\t\t\toptions.updated,\n\t\t\t`Updated the wrong number of files. Got ${updated} but expected ${options.updated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tskipped,\n\t\t\toptions.skipped,\n\t\t\t`Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`\n\t\t)\n\t},\n\n\tassertFileByNameInGeneratedFiles(\n\t\tname: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.name.search(name) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file named '${name}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tassertFileByPathInGeneratedFiles(\n\t\tpath: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.path.search(path) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file with path '${path}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tstartTime: 0,\n\tstartLogTimer() {\n\t\tthis.startTime = new Date().getTime()\n\t},\n\n\tlog(...args: any[]) {\n\t\t//@ts-ignore\n\t\tconst prefix = global.activeTest\n\t\t\t? //@ts-ignore\n\t\t\t `${global.activeTest?.file}::${global.activeTest?.test} :: `\n\t\t\t: ''\n\n\t\tif (process.env.TEST_LOG_FILTER) {\n\t\t\tconst match = prefix.search(\n\t\t\t\tnew RegExp(process.env.TEST_LOG_FILTER, 'igm')\n\t\t\t)\n\t\t\tif (match < 0) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tprocess.stderr.write(\n\t\t\tprefix + this.getTimeSpentFormatted() + ': ' + args.join(' ')\n\t\t)\n\t},\n\n\tgetTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - this.startTime\n\t\treturn delta\n\t},\n\n\tgetTimeSpentFormatted() {\n\t\tconst spent = this.getTimeSpent()\n\t\treturn durationUtil.msToFriendly(spent)\n\t},\n}\n\nexport default testUtil\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/parser",
3
- "version": "5.43.0",
3
+ "version": "5.45.0",
4
4
  "description": "An ESLint custom parser which leverages TypeScript ESTree",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  "clean": "tsc -b tsconfig.build.json --clean",
38
38
  "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage",
39
39
  "format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore",
40
- "lint": "eslint . --ignore-path='../../.eslintignore'",
40
+ "lint": "nx lint",
41
41
  "test": "jest --coverage",
42
42
  "typecheck": "tsc -p tsconfig.json --noEmit"
43
43
  },
@@ -45,9 +45,9 @@
45
45
  "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
46
46
  },
47
47
  "dependencies": {
48
- "@typescript-eslint/scope-manager": "5.43.0",
49
- "@typescript-eslint/types": "5.43.0",
50
- "@typescript-eslint/typescript-estree": "5.43.0",
48
+ "@typescript-eslint/scope-manager": "5.45.0",
49
+ "@typescript-eslint/types": "5.45.0",
50
+ "@typescript-eslint/typescript-estree": "5.45.0",
51
51
  "debug": "^4.3.4"
52
52
  },
53
53
  "devDependencies": {
@@ -71,5 +71,5 @@
71
71
  ]
72
72
  }
73
73
  },
74
- "gitHead": "8af1b4d970438b27ea041717bddadc41af8fc72a"
74
+ "gitHead": "267da4e416f7de6892336db8a2360d7af702b73c"
75
75
  }
@@ -18,15 +18,6 @@ const scope_1 = require("./scope");
18
18
  const ClassFieldInitializerScope_1 = require("./scope/ClassFieldInitializerScope");
19
19
  const ClassStaticBlockScope_1 = require("./scope/ClassStaticBlockScope");
20
20
  class ScopeManager {
21
- constructor(options) {
22
- _ScopeManager_options.set(this, void 0);
23
- this.scopes = [];
24
- this.globalScope = null;
25
- this.nodeToScope = new WeakMap();
26
- this.currentScope = null;
27
- __classPrivateFieldSet(this, _ScopeManager_options, options, "f");
28
- this.declaredVariables = new WeakMap();
29
- }
30
21
  get variables() {
31
22
  const variables = new Set();
32
23
  function recurse(scope) {
@@ -36,6 +27,15 @@ class ScopeManager {
36
27
  this.scopes.forEach(recurse);
37
28
  return Array.from(variables).sort((a, b) => a.$id - b.$id);
38
29
  }
30
+ constructor(options) {
31
+ _ScopeManager_options.set(this, void 0);
32
+ this.scopes = [];
33
+ this.globalScope = null;
34
+ this.nodeToScope = new WeakMap();
35
+ this.currentScope = null;
36
+ __classPrivateFieldSet(this, _ScopeManager_options, options, "f");
37
+ this.declaredVariables = new WeakMap();
38
+ }
39
39
  isGlobalReturn() {
40
40
  return __classPrivateFieldGet(this, _ScopeManager_options, "f").globalReturn === true;
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../src/ScopeManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../src/ScopeManager.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,6 @@ import type { TSEnumNameDefinition } from './TSEnumNameDefinition';
9
9
  import type { TSModuleNameDefinition } from './TSModuleNameDefinition';
10
10
  import type { TypeDefinition } from './TypeDefinition';
11
11
  import type { VariableDefinition } from './VariableDefinition';
12
- declare type Definition = CatchClauseDefinition | ClassNameDefinition | FunctionNameDefinition | ImplicitGlobalVariableDefinition | ImportBindingDefinition | ParameterDefinition | TSEnumMemberDefinition | TSEnumNameDefinition | TSModuleNameDefinition | TypeDefinition | VariableDefinition;
12
+ type Definition = CatchClauseDefinition | ClassNameDefinition | FunctionNameDefinition | ImplicitGlobalVariableDefinition | ImportBindingDefinition | ParameterDefinition | TSEnumMemberDefinition | TSEnumNameDefinition | TSModuleNameDefinition | TypeDefinition | VariableDefinition;
13
13
  export { Definition };
14
14
  //# sourceMappingURL=Definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/definition/Definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,aAAK,UAAU,GACX,qBAAqB,GACrB,mBAAmB,GACnB,sBAAsB,GACtB,gCAAgC,GAChC,uBAAuB,GACvB,mBAAmB,GACnB,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,kBAAkB,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/definition/Definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,KAAK,UAAU,GACX,qBAAqB,GACrB,mBAAmB,GACnB,sBAAsB,GACtB,gCAAgC,GAChC,uBAAuB,GACvB,mBAAmB,GACnB,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,kBAAkB,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/lib/dom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG9D,eAAO,MAAM,GAAG,4CAyvC+B,CAAC"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/lib/dom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG9D,eAAO,MAAM,GAAG,4CAuwC+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG9D,eAAO,MAAM,YAAY,4CAwDsB,CAAC"}
1
+ {"version":3,"file":"dom.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG9D,eAAO,MAAM,YAAY,4CAyDsB,CAAC"}
@@ -13,6 +13,7 @@ exports.dom_iterable = {
13
13
  CSSRuleList: base_config_1.TYPE,
14
14
  CSSStyleDeclaration: base_config_1.TYPE,
15
15
  Cache: base_config_1.TYPE,
16
+ CanvasPath: base_config_1.TYPE,
16
17
  CanvasPathDrawingStyles: base_config_1.TYPE,
17
18
  DOMRectList: base_config_1.TYPE,
18
19
  DOMStringList: base_config_1.TYPE,
@@ -1 +1 @@
1
- {"version":3,"file":"dom.iterable.js","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mEAAmE;AACnE,uDAAuD;;;AAGvD,+CAAqC;AAExB,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,kBAAI;IAChB,aAAa,EAAE,kBAAI;IACnB,gBAAgB,EAAE,kBAAI;IACtB,WAAW,EAAE,kBAAI;IACjB,mBAAmB,EAAE,kBAAI;IACzB,KAAK,EAAE,kBAAI;IACX,uBAAuB,EAAE,kBAAI;IAC7B,WAAW,EAAE,kBAAI;IACjB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,oBAAoB,EAAE,kBAAI;IAC1B,WAAW,EAAE,kBAAI;IACjB,QAAQ,EAAE,kBAAI;IACd,WAAW,EAAE,kBAAI;IACjB,QAAQ,EAAE,kBAAI;IACd,iBAAiB,EAAE,kBAAI;IACvB,kBAAkB,EAAE,kBAAI;IACxB,gBAAgB,EAAE,kBAAI;IACtB,eAAe,EAAE,kBAAI;IACrB,iBAAiB,EAAE,kBAAI;IACvB,OAAO,EAAE,kBAAI;IACb,WAAW,EAAE,kBAAI;IACjB,cAAc,EAAE,kBAAI;IACpB,iBAAiB,EAAE,kBAAI;IACvB,SAAS,EAAE,kBAAI;IACf,YAAY,EAAE,kBAAI;IAClB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,SAAS,EAAE,kBAAI;IACf,QAAQ,EAAE,kBAAI;IACd,UAAU,EAAE,kBAAI;IAChB,MAAM,EAAE,kBAAI;IACZ,WAAW,EAAE,kBAAI;IACjB,iBAAiB,EAAE,kBAAI;IACvB,cAAc,EAAE,kBAAI;IACpB,aAAa,EAAE,kBAAI;IACnB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,aAAa,EAAE,kBAAI;IACnB,gBAAgB,EAAE,kBAAI;IACtB,gBAAgB,EAAE,kBAAI;IACtB,uBAAuB,EAAE,kBAAI;IAC7B,2BAA2B,EAAE,kBAAI;IACjC,cAAc,EAAE,kBAAI;IACpB,YAAY,EAAE,kBAAI;IAClB,gBAAgB,EAAE,kBAAI;IACtB,aAAa,EAAE,kBAAI;IACnB,SAAS,EAAE,kBAAI;IACf,eAAe,EAAE,kBAAI;IACrB,kBAAkB,EAAE,kBAAI;IACxB,gBAAgB,EAAE,kBAAI;IACtB,0BAA0B,EAAE,kBAAI;IAChC,+BAA+B,EAAE,kBAAI;IACrC,yBAAyB,EAAE,kBAAI;IAC/B,8BAA8B,EAAE,kBAAI;CACS,CAAC"}
1
+ {"version":3,"file":"dom.iterable.js","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mEAAmE;AACnE,uDAAuD;;;AAGvD,+CAAqC;AAExB,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,kBAAI;IAChB,aAAa,EAAE,kBAAI;IACnB,gBAAgB,EAAE,kBAAI;IACtB,WAAW,EAAE,kBAAI;IACjB,mBAAmB,EAAE,kBAAI;IACzB,KAAK,EAAE,kBAAI;IACX,UAAU,EAAE,kBAAI;IAChB,uBAAuB,EAAE,kBAAI;IAC7B,WAAW,EAAE,kBAAI;IACjB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,oBAAoB,EAAE,kBAAI;IAC1B,WAAW,EAAE,kBAAI;IACjB,QAAQ,EAAE,kBAAI;IACd,WAAW,EAAE,kBAAI;IACjB,QAAQ,EAAE,kBAAI;IACd,iBAAiB,EAAE,kBAAI;IACvB,kBAAkB,EAAE,kBAAI;IACxB,gBAAgB,EAAE,kBAAI;IACtB,eAAe,EAAE,kBAAI;IACrB,iBAAiB,EAAE,kBAAI;IACvB,OAAO,EAAE,kBAAI;IACb,WAAW,EAAE,kBAAI;IACjB,cAAc,EAAE,kBAAI;IACpB,iBAAiB,EAAE,kBAAI;IACvB,SAAS,EAAE,kBAAI;IACf,YAAY,EAAE,kBAAI;IAClB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,SAAS,EAAE,kBAAI;IACf,QAAQ,EAAE,kBAAI;IACd,UAAU,EAAE,kBAAI;IAChB,MAAM,EAAE,kBAAI;IACZ,WAAW,EAAE,kBAAI;IACjB,iBAAiB,EAAE,kBAAI;IACvB,cAAc,EAAE,kBAAI;IACpB,aAAa,EAAE,kBAAI;IACnB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,aAAa,EAAE,kBAAI;IACnB,gBAAgB,EAAE,kBAAI;IACtB,gBAAgB,EAAE,kBAAI;IACtB,uBAAuB,EAAE,kBAAI;IAC7B,2BAA2B,EAAE,kBAAI;IACjC,cAAc,EAAE,kBAAI;IACpB,YAAY,EAAE,kBAAI;IAClB,gBAAgB,EAAE,kBAAI;IACtB,aAAa,EAAE,kBAAI;IACnB,SAAS,EAAE,kBAAI;IACf,eAAe,EAAE,kBAAI;IACrB,kBAAkB,EAAE,kBAAI;IACxB,gBAAgB,EAAE,kBAAI;IACtB,0BAA0B,EAAE,kBAAI;IAChC,+BAA+B,EAAE,kBAAI;IACrC,yBAAyB,EAAE,kBAAI;IAC/B,8BAA8B,EAAE,kBAAI;CACS,CAAC"}