mcdev 5.0.2 → 5.2.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 (237) hide show
  1. package/.coverage-comment-template.svelte +177 -161
  2. package/.eslintrc.json +4 -4
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  5. package/.github/dependabot.yml +8 -0
  6. package/.github/workflows/coverage-base-update.yml +6 -2
  7. package/.github/workflows/coverage-develop-branch.yml +7 -8
  8. package/.github/workflows/coverage-main-branch.yml +7 -8
  9. package/.github/workflows/coverage.yml +7 -4
  10. package/.husky/post-checkout +4 -2
  11. package/.husky/post-merge +1 -0
  12. package/.vscode/extensions.json +4 -0
  13. package/docs/dist/documentation.md +756 -294
  14. package/lib/Deployer.js +28 -28
  15. package/lib/MetadataTypeDefinitions.js +1 -1
  16. package/lib/MetadataTypeInfo.js +1 -1
  17. package/lib/Retriever.js +1 -1
  18. package/lib/cli.js +184 -6
  19. package/lib/index.js +493 -22
  20. package/lib/metadataTypes/Asset.js +10 -11
  21. package/lib/metadataTypes/AttributeGroup.js +76 -2
  22. package/lib/metadataTypes/AttributeSet.js +260 -0
  23. package/lib/metadataTypes/Automation.js +771 -247
  24. package/lib/metadataTypes/DataExtension.js +7 -7
  25. package/lib/metadataTypes/DataExtensionField.js +1 -1
  26. package/lib/metadataTypes/Event.js +2 -3
  27. package/lib/metadataTypes/Folder.js +1 -1
  28. package/lib/metadataTypes/Journey.js +5 -6
  29. package/lib/metadataTypes/MetadataType.js +187 -60
  30. package/lib/metadataTypes/MobileKeyword.js +8 -8
  31. package/lib/metadataTypes/MobileMessage.js +5 -5
  32. package/lib/metadataTypes/Query.js +47 -5
  33. package/lib/metadataTypes/Script.js +3 -3
  34. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  35. package/lib/metadataTypes/TriggeredSend.js +25 -50
  36. package/lib/metadataTypes/User.js +7 -4
  37. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  38. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +117 -106
  39. package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +54 -27
  40. package/lib/metadataTypes/definitions/Automation.definition.js +74 -21
  41. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  42. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
  43. package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
  44. package/lib/metadataTypes/definitions/Event.definition.js +1 -0
  45. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  46. package/lib/metadataTypes/definitions/ImportFile.definition.js +37 -6
  47. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -0
  48. package/lib/metadataTypes/definitions/Query.definition.js +1 -0
  49. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  50. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +2 -0
  51. package/lib/metadataTypes/definitions/User.definition.js +1 -0
  52. package/lib/util/cache.js +9 -4
  53. package/lib/util/cli.js +40 -0
  54. package/lib/util/devops.js +13 -11
  55. package/lib/util/file.js +2 -2
  56. package/lib/util/init.js +84 -0
  57. package/lib/util/util.js +268 -137
  58. package/package.json +11 -11
  59. package/test/general.test.js +26 -0
  60. package/test/mockRoot/.mcdevrc.json +1 -1
  61. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +52 -0
  62. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +45 -0
  63. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
  64. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
  65. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
  66. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
  67. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
  68. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
  69. package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.json → testExisting_query.query-meta.json} +2 -2
  70. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
  71. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
  72. package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.json → testNew_query.query-meta.json} +2 -2
  73. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
  74. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
  75. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
  76. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
  77. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
  78. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
  79. package/test/resourceFactory.js +132 -24
  80. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
  81. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
  82. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
  83. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
  84. package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
  85. package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
  86. package/test/resources/1111111/user/retrieve-expected.md +4 -2
  87. package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
  88. package/test/resources/9999999/attributeSet/retrieve-expected.json +748 -0
  89. package/test/resources/9999999/automation/build-expected.json +57 -0
  90. package/test/resources/9999999/automation/create-expected.json +45 -0
  91. package/test/resources/9999999/automation/create-testNew_automation-expected.md +28 -0
  92. package/test/resources/9999999/automation/delete-response.xml +40 -0
  93. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
  94. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
  95. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  96. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
  97. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
  98. package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  99. package/test/resources/9999999/automation/retrieve-expected.json +57 -0
  100. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +30 -0
  101. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  102. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
  103. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
  104. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
  105. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  106. package/test/resources/9999999/automation/template-expected.json +57 -0
  107. package/test/resources/9999999/automation/update-expected.json +45 -0
  108. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +28 -0
  109. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  110. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/patch-response.json +85 -0
  111. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
  112. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
  113. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
  114. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
  115. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
  116. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
  117. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  118. package/test/resources/9999999/automation/v1/automations/post-response.json +86 -0
  119. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/get-response.json +38 -0
  120. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
  121. package/test/resources/9999999/automation/v1/dataextracts/get-response.json +20 -0
  122. package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
  123. package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
  124. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/get-response.json +18 -0
  125. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
  126. package/test/resources/9999999/automation/v1/filetransfers/get-response.json +15 -0
  127. package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
  128. package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
  129. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
  130. package/test/resources/9999999/automation/v1/imports/get-response.json +38 -0
  131. package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
  132. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
  133. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/actions/start/post-response.txt +1 -0
  134. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +2 -2
  135. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
  136. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
  137. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
  138. package/test/resources/9999999/automation/v1/queries/get-response.json +22 -5
  139. package/test/resources/9999999/automation/v1/queries/post-response.json +2 -2
  140. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
  141. package/test/resources/9999999/automation/v1/scripts/get-response.json +27 -0
  142. package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
  143. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
  144. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +98 -0
  145. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
  146. package/test/resources/9999999/dataExtract/build-expected.json +35 -0
  147. package/test/resources/9999999/dataExtract/get-expected.json +39 -0
  148. package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
  149. package/test/resources/9999999/dataExtract/post-expected.json +37 -0
  150. package/test/resources/9999999/dataExtract/template-expected.json +35 -0
  151. package/test/resources/9999999/dataFolder/retrieve-ContentType=automations-response.xml +48 -0
  152. package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
  153. package/test/resources/9999999/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  154. package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
  155. package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
  156. package/test/resources/9999999/dataFolder/retrieve-response.xml +45 -0
  157. package/test/resources/9999999/email/retrieve-response.xml +203 -0
  158. package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +85 -0
  159. package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
  160. package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
  161. package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
  162. package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
  163. package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
  164. package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +585 -0
  165. package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +19807 -0
  166. package/test/resources/9999999/importFile/build-expected.json +27 -0
  167. package/test/resources/9999999/importFile/get-expected.json +29 -0
  168. package/test/resources/9999999/importFile/patch-expected.json +29 -0
  169. package/test/resources/9999999/importFile/post-expected.json +29 -0
  170. package/test/resources/9999999/importFile/template-expected.json +27 -0
  171. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +21 -0
  172. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/post-response.json +0 -0
  173. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +30 -0
  174. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation-response.xml +30 -0
  175. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
  176. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
  177. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
  178. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
  179. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
  180. package/test/resources/9999999/program/retrieve-CustomerKey=testNew_automation-response.xml +30 -0
  181. package/test/resources/9999999/program/retrieve-Name=testExisting_automation-response.xml +31 -0
  182. package/test/resources/9999999/program/retrieve-response.xml +50 -0
  183. package/test/resources/9999999/query/build-expected.json +2 -2
  184. package/test/resources/9999999/query/get-expected.json +2 -2
  185. package/test/resources/9999999/query/get2-expected.json +2 -2
  186. package/test/resources/9999999/query/patch-expected.json +2 -2
  187. package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
  188. package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
  189. package/test/resources/9999999/query/post-expected.json +2 -2
  190. package/test/resources/9999999/query/template-expected.json +2 -2
  191. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
  192. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
  193. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
  194. package/test/resources/9999999/script/build-expected.json +6 -0
  195. package/test/resources/9999999/script/build-expected.ssjs +1 -0
  196. package/test/resources/9999999/script/get-expected.json +8 -0
  197. package/test/resources/9999999/script/get-expected.ssjs +1 -0
  198. package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
  199. package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
  200. package/test/resources/9999999/script/patch-expected.json +8 -0
  201. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  202. package/test/resources/9999999/script/post-expected.json +8 -0
  203. package/test/resources/9999999/script/post-expected.ssjs +1 -0
  204. package/test/resources/9999999/script/template-expected.json +6 -0
  205. package/test/resources/9999999/script/template-expected.ssjs +1 -0
  206. package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
  207. package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
  208. package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
  209. package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
  210. package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
  211. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
  212. package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
  213. package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
  214. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
  215. package/test/type.attributeGroup.test.js +55 -0
  216. package/test/type.attributeSet.test.js +55 -0
  217. package/test/type.automation.test.js +886 -0
  218. package/test/type.dataExtension.test.js +3 -1
  219. package/test/type.dataExtract.test.js +187 -0
  220. package/test/type.fileTransfer.test.js +185 -0
  221. package/test/type.importFile.test.js +186 -0
  222. package/test/type.mobileKeyword.test.js +0 -1
  223. package/test/type.query.test.js +497 -33
  224. package/test/type.script.test.js +367 -0
  225. package/test/type.triggeredSend.test.js +152 -0
  226. package/test/type.user.test.js +37 -11
  227. package/test/utils.js +10 -6
  228. package/.coverage-comment-template.md +0 -20
  229. package/lib/metadataTypes/SetDefinition.js +0 -37
  230. /package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.sql → testExisting_query.query-meta.sql} +0 -0
  231. /package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.sql → testNew_query.query-meta.sql} +0 -0
  232. /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
  233. /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
  234. /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
  235. /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
  236. /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
  237. /package/test/resources/9999999/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
@@ -1,178 +1,194 @@
1
1
  <script>
2
- export let total_statements_coverage_percent_raw;
3
- export let total_branches_coverage_percent_raw;
4
- export let total_functions_coverage_percent_raw;
5
- export let total_lines_coverage_percent_raw;
6
-
7
- export let base_total_statements_coverage_percent_raw;
8
- export let base_total_branches_coverage_percent_raw;
9
- export let base_total_functions_coverage_percent_raw;
10
- export let base_total_lines_coverage_percent_raw;
11
-
12
- export let commit_sha;
13
- export let short_commit_sha;
14
- export let commit_link;
15
-
16
- export let base_commit_sha;
17
- export let base_short_commit_sha;
18
- export let base_commit_link;
19
- export let base_ref;
20
-
21
- export let changed_files_coverage_data;
22
-
23
- const has_base_data = base_total_branches_coverage_percent_raw !== '?';
24
- const summary_list = [
25
- {
26
- type: 'Total Statements Coverage',
27
- percent: {
28
- total: total_statements_coverage_percent_raw,
29
- base: has_base_data ? base_total_statements_coverage_percent_raw: null,
30
- diff: has_base_data ? (total_statements_coverage_percent_raw - base_total_statements_coverage_percent_raw) : null,
31
- }
32
- },
33
- {
34
- type: 'Total Branches Coverage',
35
- percent: {
36
- total: total_branches_coverage_percent_raw,
37
- base: has_base_data ? base_total_branches_coverage_percent_raw: null,
38
- diff: has_base_data ? (total_branches_coverage_percent_raw - base_total_branches_coverage_percent_raw) : null,
39
- }
40
- },
41
- {
42
- type: 'Total Functions Coverage',
43
- percent: {
44
- total: total_functions_coverage_percent_raw,
45
- base: has_base_data ? base_total_functions_coverage_percent_raw: null,
46
- diff: has_base_data ? (total_functions_coverage_percent_raw - base_total_functions_coverage_percent_raw) : null,
47
- }
48
- },
49
- {
50
- type: 'Total Lines Coverage',
51
- percent: {
52
- total: total_lines_coverage_percent_raw,
53
- base: has_base_data ? base_total_lines_coverage_percent_raw: null,
54
- diff: has_base_data ? (total_lines_coverage_percent_raw - base_total_lines_coverage_percent_raw) : null,
55
- }
56
- }];
57
-
58
- const LETTER_LABEL = {
59
- S: 'Statements',
60
- B: 'Branches',
61
- F: 'Functions',
62
- L: 'Lines',
63
- };
64
-
65
- const COVERAGE_LEVEL_IMAGE = {
66
- low: 'https://user-images.githubusercontent.com/11299391/159445221-fe3dc085-8c56-4e03-9642-219784c88fe7.svg',
67
- medium:
68
- 'https://user-images.githubusercontent.com/11299391/159445212-f135c6d7-f354-4e8c-9a9f-28bb3ff1b7b5.svg',
69
- high: 'https://user-images.githubusercontent.com/11299391/159445220-d88b3624-0814-4664-80c8-09f0f2b8e68b.svg',
70
- };
71
-
72
- function formatPercentDiff(percent) {
73
- if (!Number.isFinite(percent)) {
74
- return '';
2
+ export let total_statements_coverage_percent_raw;
3
+ export let total_branches_coverage_percent_raw;
4
+ export let total_functions_coverage_percent_raw;
5
+ export let total_lines_coverage_percent_raw;
6
+
7
+ export let base_total_statements_coverage_percent_raw;
8
+ export let base_total_branches_coverage_percent_raw;
9
+ export let base_total_functions_coverage_percent_raw;
10
+ export let base_total_lines_coverage_percent_raw;
11
+
12
+ export let commit_sha;
13
+ export let short_commit_sha;
14
+ export let commit_link;
15
+
16
+ export let base_commit_sha;
17
+ export let base_short_commit_sha;
18
+ export let base_commit_link;
19
+ export let base_ref;
20
+
21
+ export let changed_files_coverage_data;
22
+
23
+ const has_base_data = base_total_branches_coverage_percent_raw !== '?';
24
+ const summary_list = [
25
+ {
26
+ type: 'Total Statements Coverage',
27
+ percent: {
28
+ total: total_statements_coverage_percent_raw,
29
+ base: has_base_data ? base_total_statements_coverage_percent_raw : null,
30
+ diff: has_base_data
31
+ ? total_statements_coverage_percent_raw -
32
+ base_total_statements_coverage_percent_raw
33
+ : null,
34
+ },
35
+ },
36
+ {
37
+ type: 'Total Branches Coverage',
38
+ percent: {
39
+ total: total_branches_coverage_percent_raw,
40
+ base: has_base_data ? base_total_branches_coverage_percent_raw : null,
41
+ diff: has_base_data
42
+ ? total_branches_coverage_percent_raw - base_total_branches_coverage_percent_raw
43
+ : null,
44
+ },
45
+ },
46
+ {
47
+ type: 'Total Functions Coverage',
48
+ percent: {
49
+ total: total_functions_coverage_percent_raw,
50
+ base: has_base_data ? base_total_functions_coverage_percent_raw : null,
51
+ diff: has_base_data
52
+ ? total_functions_coverage_percent_raw -
53
+ base_total_functions_coverage_percent_raw
54
+ : null,
55
+ },
56
+ },
57
+ {
58
+ type: 'Total Lines Coverage',
59
+ percent: {
60
+ total: total_lines_coverage_percent_raw,
61
+ base: has_base_data ? base_total_lines_coverage_percent_raw : null,
62
+ diff: has_base_data
63
+ ? total_lines_coverage_percent_raw - base_total_lines_coverage_percent_raw
64
+ : null,
65
+ },
66
+ },
67
+ ];
68
+
69
+ const LETTER_LABEL = {
70
+ S: 'Statements',
71
+ B: 'Branches',
72
+ F: 'Functions',
73
+ L: 'Lines',
74
+ };
75
+
76
+ const COVERAGE_LEVEL_IMAGE = {
77
+ low: 'https://user-images.githubusercontent.com/11299391/159445221-fe3dc085-8c56-4e03-9642-219784c88fe7.svg',
78
+ medium: 'https://user-images.githubusercontent.com/11299391/159445212-f135c6d7-f354-4e8c-9a9f-28bb3ff1b7b5.svg',
79
+ high: 'https://user-images.githubusercontent.com/11299391/159445220-d88b3624-0814-4664-80c8-09f0f2b8e68b.svg',
80
+ };
81
+
82
+ function formatPercentDiff(percent) {
83
+ if (!Number.isFinite(percent)) {
84
+ return '';
85
+ }
86
+
87
+ const roundedPercent = `${Number(percent.toFixed(2))}%`;
88
+
89
+ if (percent >= 0) {
90
+ return '+' + roundedPercent;
91
+ }
92
+
93
+ return roundedPercent;
75
94
  }
76
95
 
77
- const roundedPercent = `${Number(percent.toFixed(2))}%`;
78
-
79
- if (percent >= 0) {
80
- return '+' + roundedPercent;
96
+ function getCoverageLevelImage(percent) {
97
+ // https://github.com/istanbuljs/istanbuljs/blob/c1559005b3bb318da01f505740adb0e782aaf14e/packages/istanbul-lib-report/lib/watermarks.js
98
+ if (percent >= 80) {
99
+ return COVERAGE_LEVEL_IMAGE.high;
100
+ } else if (percent >= 50) {
101
+ return COVERAGE_LEVEL_IMAGE.medium;
102
+ } else {
103
+ return COVERAGE_LEVEL_IMAGE.low;
104
+ }
81
105
  }
82
106
 
83
- return roundedPercent;
84
- }
85
-
86
- function getCoverageLevelImage(percent) {
87
- // https://github.com/istanbuljs/istanbuljs/blob/c1559005b3bb318da01f505740adb0e782aaf14e/packages/istanbul-lib-report/lib/watermarks.js
88
- if (percent >= 80) {
89
- return COVERAGE_LEVEL_IMAGE.high;
90
- } else if (percent >= 50) {
91
- return COVERAGE_LEVEL_IMAGE.medium;
92
- } else {
93
- return COVERAGE_LEVEL_IMAGE.low;
107
+ function getFilePrefix() {
108
+ return `../blob/${commit_sha}/`;
94
109
  }
95
- }
96
-
97
- function getFilePrefix() {
98
- return `../blob/${commit_sha}/`;
99
- }
100
110
  </script>
101
111
 
102
112
  <h2>Coverage Report</h2>
103
113
 
104
- Commit: <a href="{commit_link}">{short_commit_sha}</a><br>
105
- Base: <a href="{base_commit_link}">{base_ref}@{base_short_commit_sha}</a><br><br>
114
+ Commit:<a href={commit_link}>{short_commit_sha}</a><br />
115
+ Base: <a href={base_commit_link}>{base_ref}@{base_short_commit_sha}</a><br /><br />
106
116
 
107
117
  <table>
108
- <thead>
109
- <th>Type</th>
110
- {#if has_base_data}
111
- <th>Base</th>
112
- {/if}
113
- <th>This PR</th>
114
- </thead>
115
- <tbody>
116
- {#each summary_list as {type, percent}}
117
- <tr>
118
- <td>{type}</td>
118
+ <thead>
119
+ <th>Type</th>
119
120
  {#if has_base_data}
120
- <td>
121
- {#if Number.isFinite(percent.base)}
122
- <img src="{getCoverageLevelImage(percent.base)}" alt="">&nbsp;{percent.base}%
123
- {:else}
124
- -
125
- {/if}
126
- </td>
121
+ <th>Base</th>
127
122
  {/if}
128
- <td>
129
- {#if Number.isFinite(percent.total)}
130
- <img src="{getCoverageLevelImage(percent.total)}" alt="">&nbsp;{percent.total}%
131
- {#if has_base_data}
132
- &nbsp;({formatPercentDiff(percent.diff)})
133
- {/if}
134
- {:else}
135
- -
136
- {/if}
137
- </td>
138
- </tr>
139
- {/each}
140
- </tbody>
141
- </table>
142
-
143
- <details>
144
- <summary>Details (changed testable files):</summary><br>
145
- <table>
146
- <thead>
147
- <th>File</th>
148
- <th>Statements</th>
149
- <th>Branches</th>
150
- <th>Functions</th>
151
- <th>Lines</th>
123
+ <th>This PR</th>
152
124
  </thead>
153
125
  <tbody>
154
- {#each changed_files_coverage_data as [file, data]}
155
- {@const percents = [
156
- data.statements.pct,
157
- data.branches.pct,
158
- data.functions.pct,
159
- data.lines.pct
160
- ]}
161
- <tr>
162
- <td>
163
- <a href="{getFilePrefix()}{file}">{file}</a>
164
- </td>
165
- {#each percents as percent}
166
- <td>
167
- {#if Number.isFinite(percent)}
168
- <img src="{getCoverageLevelImage(percent)}" alt="">&nbsp;{percent}%
169
- {:else}
170
- -
171
- {/if}
172
- </td>
173
- {/each}
174
- </tr>
175
- {/each}
126
+ {#each summary_list as { type, percent }}
127
+ <tr>
128
+ <td>{type}</td>
129
+ {#if has_base_data}
130
+ <td>
131
+ {#if Number.isFinite(percent.base)}
132
+ <img
133
+ src={getCoverageLevelImage(percent.base)}
134
+ alt=""
135
+ />&nbsp;{percent.base}%
136
+ {:else}
137
+ -
138
+ {/if}
139
+ </td>
140
+ {/if}
141
+ <td>
142
+ {#if Number.isFinite(percent.total)}
143
+ <img
144
+ src={getCoverageLevelImage(percent.total)}
145
+ alt=""
146
+ />&nbsp;{percent.total}%
147
+ {#if has_base_data}
148
+ &nbsp;({formatPercentDiff(percent.diff)})
149
+ {/if}
150
+ {:else}
151
+ -
152
+ {/if}
153
+ </td>
154
+ </tr>
155
+ {/each}
176
156
  </tbody>
177
- </table>
178
- </details>
157
+ </table>
158
+
159
+ <details>
160
+ <summary>Details (changed files):</summary><br />
161
+ <table>
162
+ <thead>
163
+ <th>File</th>
164
+ <th>Statements</th>
165
+ <th>Branches</th>
166
+ <th>Functions</th>
167
+ <th>Lines</th>
168
+ </thead>
169
+ <tbody>
170
+ {#each changed_files_coverage_data as [file, data]}
171
+ {@const percents = [
172
+ data.statements.pct,
173
+ data.branches.pct,
174
+ data.functions.pct,
175
+ data.lines.pct,
176
+ ]}
177
+ <tr>
178
+ <td>
179
+ <a href="{getFilePrefix()}{file}">{file}</a>
180
+ </td>
181
+ {#each percents as percent}
182
+ <td>
183
+ {#if Number.isFinite(percent)}
184
+ <img src={getCoverageLevelImage(percent)} alt="" />&nbsp;{percent}%
185
+ {:else}
186
+ -
187
+ {/if}
188
+ </td>
189
+ {/each}
190
+ </tr>
191
+ {/each}
192
+ </tbody>
193
+ </table>
194
+ </details>
package/.eslintrc.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "env": {
3
3
  "es6": true,
4
- "node": true,
5
- "mocha": true
4
+ "node": true
6
5
  },
7
6
  "extends": [
8
7
  "eslint:recommended",
@@ -67,7 +66,6 @@
67
66
  "unicorn/prefer-set-has": "off",
68
67
  "unicorn/prefer-spread": "off",
69
68
  "unicorn/prefer-string-replace-all": "error",
70
- "unicorn/unicorn/no-lonely-if": "off",
71
69
  "arrow-body-style": ["error", "as-needed"],
72
70
  "curly": "error",
73
71
  "no-console": "error",
@@ -84,6 +82,7 @@
84
82
  }
85
83
  }
86
84
  ],
85
+ "jsdoc/require-param-type": "error",
87
86
  "jsdoc/tag-lines": ["warn", "any", { "startLines": 1 }],
88
87
  "spaced-comment": ["warn", "always", { "block": { "exceptions": ["*"], "balanced": true } }]
89
88
  },
@@ -103,7 +102,8 @@
103
102
  "extends": ["plugin:mocha/recommended"],
104
103
  "plugins": ["mocha"],
105
104
  "rules": {
106
- "mocha/no-mocha-arrows": "off"
105
+ "mocha/no-mocha-arrows": "off",
106
+ "mocha/no-pending-tests": "off"
107
107
  }
108
108
  }
109
109
  ]
@@ -39,6 +39,8 @@ body:
39
39
  label: Version
40
40
  description: What version of our software are you running? (mcdev --version)
41
41
  options:
42
+ - 5.2.0
43
+ - 5.1.0
42
44
  - 5.0.2
43
45
  - 5.0.1
44
46
  - 5.0.0
@@ -2,9 +2,9 @@
2
2
 
3
3
  ## What changes did you make? (Give an overview)
4
4
 
5
- ...
5
+ - closes #1234
6
6
 
7
- ## Is there anything you'd like reviewers to focus on?
7
+ ## Further details (optional)
8
8
 
9
9
  ...
10
10
 
@@ -12,3 +12,11 @@ updates:
12
12
  target-branch: 'develop'
13
13
  labels:
14
14
  - 'dependencies'
15
+ - package-ecosystem: 'github-actions'
16
+ directory: '/'
17
+ schedule:
18
+ interval: 'weekly'
19
+ target-branch: 'main'
20
+ labels:
21
+ - 'dependencies'
22
+ - 'github-action'
@@ -1,8 +1,12 @@
1
- name: Update coverage comment
1
+ name: Update coverage comment # base-update.yml
2
2
  on:
3
3
  pull_request:
4
4
  types: [edited]
5
5
 
6
+ permissions:
7
+ # allow dependabot to execute this workflow
8
+ pull-requests: write
9
+
6
10
  jobs:
7
11
  hello_world_job:
8
12
  runs-on: ubuntu-latest
@@ -48,7 +52,7 @@ jobs:
48
52
  files: 'base-artifacts/coverage-summary.json, artifacts/coverage-summary.json'
49
53
 
50
54
  - name: Update Coverage comment
51
- uses: sidx1024/report-nyc-coverage-github-action@v1.2.6
55
+ uses: sidx1024/report-nyc-coverage-github-action@v1.2.7
52
56
  if: steps.check_files.outputs.files_exists == 'true'
53
57
  # Only runs if all of the files exists
54
58
  with:
@@ -1,32 +1,31 @@
1
- name: Test coverage for develop branch
1
+ name: Test coverage for develop branch # default-branch.yml
2
2
 
3
3
  on:
4
4
  push:
5
5
  branches:
6
6
  - develop
7
7
 
8
+ permissions:
9
+ # allow dependabot to execute this workflow
10
+ pull-requests: write
11
+
8
12
  jobs:
9
13
  hello_world_job:
10
14
  runs-on: ubuntu-latest
11
- name: Test and report
15
+ name: Test and upload coverage
12
16
  steps:
13
17
  - name: Checkout
14
18
  uses: actions/checkout@v3
15
19
  with:
16
- ref: ${{ github.event.pull_request.head.sha }}
20
+ ref: ${{ github.event.ref }}
17
21
  fetch-depth: 1000
18
22
 
19
- - name: Fetch base
20
- run: git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1000
21
-
22
23
  - uses: actions/setup-node@v3
23
24
  with:
24
25
  node-version: 16
25
26
 
26
27
  - run: npm ci --ignore-scripts
27
28
 
28
- - run: npm run lint
29
-
30
29
  - name: Run mcdev-tests with coverage
31
30
  run: npm run coverage
32
31
 
@@ -1,32 +1,31 @@
1
- name: Test coverage for main branch
1
+ name: Test coverage for main branch # default-branch.yml
2
2
 
3
3
  on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
7
 
8
+ permissions:
9
+ # allow dependabot to execute this workflow
10
+ pull-requests: write
11
+
8
12
  jobs:
9
13
  hello_world_job:
10
14
  runs-on: ubuntu-latest
11
- name: Test and report
15
+ name: Test and upload coverage
12
16
  steps:
13
17
  - name: Checkout
14
18
  uses: actions/checkout@v3
15
19
  with:
16
- ref: ${{ github.event.pull_request.head.sha }}
20
+ ref: ${{ github.event.ref }}
17
21
  fetch-depth: 1000
18
22
 
19
- - name: Fetch base
20
- run: git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1000
21
-
22
23
  - uses: actions/setup-node@v3
23
24
  with:
24
25
  node-version: 16
25
26
 
26
27
  - run: npm ci --ignore-scripts
27
28
 
28
- - run: npm run lint
29
-
30
29
  - name: Run mcdev-tests with coverage
31
30
  run: npm run coverage
32
31
 
@@ -1,6 +1,11 @@
1
1
  on: [pull_request]
2
2
 
3
- name: Test coverage report
3
+ name: Test coverage report # main.yml
4
+
5
+ permissions:
6
+ # allow dependabot to execute this workflow
7
+ pull-requests: write
8
+
4
9
  jobs:
5
10
  hello_world_job:
6
11
  runs-on: ubuntu-latest
@@ -18,8 +23,6 @@ jobs:
18
23
 
19
24
  - run: npm ci --ignore-scripts
20
25
 
21
- - run: npm run lint
22
-
23
26
  - name: Run mcdev-tests with coverage
24
27
  run: npm run coverage
25
28
 
@@ -69,7 +72,7 @@ jobs:
69
72
  files: 'base-artifacts/coverage-summary.json'
70
73
 
71
74
  - name: Report coverage
72
- uses: sidx1024/report-nyc-coverage-github-action@v1.2.6
75
+ uses: sidx1024/report-nyc-coverage-github-action@v1.2.7
73
76
  id: report
74
77
  with:
75
78
  coverage_file: 'artifacts/test-coverage-output/coverage-summary.json'
@@ -10,7 +10,8 @@ then
10
10
  fi
11
11
  TEMPLATE="#$TICKETID: "
12
12
  echo "[POST_CHECKOUT] Setting template commit to '$TEMPLATE'"
13
- echo $TEMPLATE > ".git/templatemessage"
13
+ # wrap $TEMPLATE in quotes or else it is trimmed automatically
14
+ echo "$TEMPLATE" > ".git/templatemessage"
14
15
 
15
16
 
16
17
  # ### run npm install ###
@@ -21,7 +22,7 @@ IFS=$'\n'
21
22
  NEWHEAD=$1
22
23
  # $2 is the previous HEAD pointer
23
24
  OLDHEAD=$2
24
- # extract all paths to package-lock.json files
25
+ # extract all paths to package-lock.json files
25
26
  PACKAGE_LOCK_REGEX="(^package-lock\.json)"
26
27
  PACKAGES=$(git diff --name-only $NEWHEAD $OLDHEAD | grep -E $PACKAGE_LOCK_REGEX || true)
27
28
 
@@ -31,6 +32,7 @@ if [[ ${PACKAGES[@]} ]]; then
31
32
  done
32
33
  echo "📦 Running npm install to update your dependencies..."
33
34
  npm install
35
+ npm run lint:fix
34
36
  else
35
37
  echo "📦 All packages up-to-date. No need to run npm install."
36
38
  fi
package/.husky/post-merge CHANGED
@@ -16,6 +16,7 @@ if [[ ${PACKAGES[@]} ]]; then
16
16
  done
17
17
  echo "📦 Running npm install to update your dependencies..."
18
18
  npm install
19
+ npm run lint:fix
19
20
  else
20
21
  echo "📦 All packages up-to-date. No need to run npm install."
21
22
  fi
@@ -15,6 +15,10 @@
15
15
  "editorconfig.editorconfig",
16
16
  "esbenp.prettier-vscode",
17
17
 
18
+ // mcdev tests
19
+ "hbenl.vscode-mocha-test-adapter",
20
+ "IBM.output-colorizer",
21
+
18
22
  // Markdown / Readme.md
19
23
  "joernberkefeld.markdown-preview-bitbucket-innersource"
20
24
  ]