mcdev 5.0.1 → 5.1.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 (138) hide show
  1. package/.coverage-comment-template.svelte +177 -161
  2. package/.eslintrc.json +1 -0
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/dependabot.yml +8 -0
  5. package/.github/workflows/coverage-base-update.yml +6 -2
  6. package/.github/workflows/coverage-develop-branch.yml +7 -6
  7. package/.github/workflows/coverage-main-branch.yml +7 -6
  8. package/.github/workflows/coverage.yml +7 -2
  9. package/.husky/commit-msg +1 -1
  10. package/.husky/post-checkout +35 -3
  11. package/.husky/post-merge +21 -0
  12. package/.husky/pre-commit +1 -0
  13. package/docs/dist/documentation.md +222 -62
  14. package/lib/Deployer.js +3 -4
  15. package/lib/cli.js +36 -8
  16. package/lib/index.js +175 -3
  17. package/lib/metadataTypes/Asset.js +4 -2
  18. package/lib/metadataTypes/Automation.js +413 -195
  19. package/lib/metadataTypes/DataExtension.js +6 -8
  20. package/lib/metadataTypes/DataExtensionField.js +5 -5
  21. package/lib/metadataTypes/Journey.js +11 -10
  22. package/lib/metadataTypes/MetadataType.js +76 -22
  23. package/lib/metadataTypes/MobileKeyword.js +165 -20
  24. package/lib/metadataTypes/MobileMessage.js +20 -28
  25. package/lib/metadataTypes/Query.js +26 -0
  26. package/lib/metadataTypes/Role.js +2 -3
  27. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  28. package/lib/metadataTypes/User.js +3 -17
  29. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  30. package/lib/metadataTypes/definitions/Automation.definition.js +52 -6
  31. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  32. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
  33. package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
  34. package/lib/metadataTypes/definitions/Event.definition.js +1 -0
  35. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  36. package/lib/metadataTypes/definitions/ImportFile.definition.js +1 -0
  37. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +20 -7
  38. package/lib/metadataTypes/definitions/MobileMessage.definition.js +50 -8
  39. package/lib/metadataTypes/definitions/Query.definition.js +1 -0
  40. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  41. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
  42. package/lib/metadataTypes/definitions/User.definition.js +2 -0
  43. package/lib/util/auth.js +4 -1
  44. package/lib/util/cli.js +1 -1
  45. package/lib/util/devops.js +13 -11
  46. package/lib/util/file.js +5 -3
  47. package/lib/util/util.js +153 -129
  48. package/package.json +11 -11
  49. package/test/general.test.js +26 -0
  50. package/test/mockRoot/.mcdevrc.json +3 -1
  51. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +53 -0
  52. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +46 -0
  53. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword.mobileKeyword-meta.json → 4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.json} +1 -4
  54. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword_blocked.mobileKeyword-meta.json → 4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.json} +1 -4
  55. package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.json → testExisting_query.query-meta.json} +2 -2
  56. package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.json → testNew_query.query-meta.json} +2 -2
  57. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +1 -1
  58. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +1 -1
  59. package/test/resourceFactory.js +64 -21
  60. package/test/resources/1111111/user/retrieve-expected.md +19 -0
  61. package/test/resources/9999999/automation/build-expected.json +58 -0
  62. package/test/resources/9999999/automation/create-expected.json +46 -0
  63. package/test/resources/9999999/automation/create-testNew_automation-expected.md +28 -0
  64. package/test/resources/9999999/automation/delete-response.xml +40 -0
  65. package/test/resources/9999999/automation/retrieve-expected.json +58 -0
  66. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +30 -0
  67. package/test/resources/9999999/automation/template-expected.json +58 -0
  68. package/test/resources/9999999/automation/update-expected.json +46 -0
  69. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +28 -0
  70. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  71. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/patch-response.json +85 -0
  72. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  73. package/test/resources/9999999/automation/v1/automations/post-response.json +85 -0
  74. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/get-response.json +38 -0
  75. package/test/resources/9999999/automation/v1/dataextracts/get-response.json +20 -0
  76. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/get-response.json +18 -0
  77. package/test/resources/9999999/automation/v1/filetransfers/get-response.json +15 -0
  78. package/test/resources/9999999/automation/v1/imports/get-response.json +38 -0
  79. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/actions/start/post-response.txt +1 -0
  80. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +2 -2
  81. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
  82. package/test/resources/9999999/automation/v1/queries/get-response.json +4 -4
  83. package/test/resources/9999999/automation/v1/queries/post-response.json +2 -2
  84. package/test/resources/9999999/automation/v1/scripts/get-response.json +17 -0
  85. package/test/resources/9999999/dataExtension/retrieve-expected.md +18 -0
  86. package/test/resources/9999999/dataFolder/retrieve-ContentType=automations-response.xml +48 -0
  87. package/test/resources/9999999/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  88. package/test/resources/9999999/dataFolder/retrieve-response.xml +22 -0
  89. package/test/resources/9999999/emailSendDefinition/retrieve-response.xml +85 -0
  90. package/test/resources/9999999/journey/build-expected.json +1 -1
  91. package/test/resources/9999999/journey/get-expected.json +1 -1
  92. package/test/resources/9999999/journey/put-expected.json +1 -1
  93. package/test/resources/9999999/journey/template-expected.json +1 -1
  94. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +21 -0
  95. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/post-response.json +0 -0
  96. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +30 -0
  97. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/NXV4ZFMwTEFwRVczd3RaLUF5X3p5dzo4Njow/get-response.json +1 -1
  98. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +1 -1
  99. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/get-response.json +1 -1
  100. package/test/resources/9999999/legacy/v1/beta/mobile/message/get-response.json +1 -1
  101. package/test/resources/9999999/messaging/v1/sms/definitions/post-response.json +1 -1
  102. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/get-response.json +1 -1
  103. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/patch-response.json +1 -1
  104. package/test/resources/9999999/mobileKeyword/build-expected.json +1 -4
  105. package/test/resources/9999999/mobileKeyword/get-expected.json +1 -4
  106. package/test/resources/9999999/mobileKeyword/post-create-expected.json +1 -4
  107. package/test/resources/9999999/mobileKeyword/template-expected.json +1 -4
  108. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation-response.xml +30 -0
  109. package/test/resources/9999999/program/retrieve-CustomerKey=testNew_automation-response.xml +30 -0
  110. package/test/resources/9999999/program/retrieve-Name=testExisting_automation-response.xml +31 -0
  111. package/test/resources/9999999/program/retrieve-response.xml +32 -0
  112. package/test/resources/9999999/query/build-expected.json +2 -2
  113. package/test/resources/9999999/query/build-expected.sql +1 -1
  114. package/test/resources/9999999/query/get-expected.json +2 -2
  115. package/test/resources/9999999/query/get-expected.sql +1 -1
  116. package/test/resources/9999999/query/get2-expected.json +2 -2
  117. package/test/resources/9999999/query/patch-expected.json +2 -2
  118. package/test/resources/9999999/query/patch-expected.sql +1 -1
  119. package/test/resources/9999999/query/post-expected.json +2 -2
  120. package/test/resources/9999999/query/post-expected.sql +1 -1
  121. package/test/resources/9999999/query/template-expected.json +2 -2
  122. package/test/resources/9999999/query/template-expected.sql +1 -1
  123. package/test/resources/9999999/transactionalSMS/build-expected.json +1 -1
  124. package/test/resources/9999999/transactionalSMS/get-expected.json +1 -1
  125. package/test/resources/9999999/transactionalSMS/patch-expected.json +1 -1
  126. package/test/resources/9999999/transactionalSMS/post-expected.json +1 -1
  127. package/test/resources/9999999/transactionalSMS/template-expected.json +1 -1
  128. package/test/type.automation.test.js +259 -0
  129. package/test/type.dataExtension.test.js +16 -1
  130. package/test/type.mobileKeyword.test.js +57 -19
  131. package/test/type.query.test.js +39 -26
  132. package/test/type.user.test.js +44 -1
  133. package/test/utils.js +16 -5
  134. package/.coverage-comment-template.md +0 -20
  135. /package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword.mobileKeyword-meta.amp → 4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.amp} +0 -0
  136. /package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword_blocked.mobileKeyword-meta.amp → 4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.amp} +0 -0
  137. /package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.sql → testExisting_query.query-meta.sql} +0 -0
  138. /package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.sql → testNew_query.query-meta.sql} +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
@@ -84,6 +84,7 @@
84
84
  }
85
85
  }
86
86
  ],
87
+ "jsdoc/tag-lines": ["warn", "any", { "startLines": 1 }],
87
88
  "spaced-comment": ["warn", "always", { "block": { "exceptions": ["*"], "balanced": true } }]
88
89
  },
89
90
  "overrides": [
@@ -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.1.0
43
+ - 5.0.2
42
44
  - 5.0.1
43
45
  - 5.0.0
44
46
  - 4.3.4
@@ -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,24 +1,25 @@
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
@@ -1,24 +1,25 @@
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
@@ -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
@@ -69,7 +74,7 @@ jobs:
69
74
  files: 'base-artifacts/coverage-summary.json'
70
75
 
71
76
  - name: Report coverage
72
- uses: sidx1024/report-nyc-coverage-github-action@v1.2.6
77
+ uses: sidx1024/report-nyc-coverage-github-action@v1.2.7
73
78
  id: report
74
79
  with:
75
80
  coverage_file: 'artifacts/test-coverage-output/coverage-summary.json'
package/.husky/commit-msg CHANGED
@@ -2,7 +2,7 @@
2
2
  . "$(dirname "$0")/_/husky.sh"
3
3
  INPUT_FILE=$1
4
4
  START_LINE=`head -n1 $INPUT_FILE`
5
- PATTERN="^(#[[:digit:]]|Merge)"
5
+ PATTERN="^(#[[:digit:]]|Merge|Revert)"
6
6
 
7
7
  if ! [[ "$START_LINE" =~ $PATTERN ]] ; then
8
8
  echo "Bad commit message, see example: \"#431 commit message\", you provided: \"$START_LINE\""
@@ -1,5 +1,37 @@
1
1
  #!/bin/sh
2
+ . "$(dirname "$0")/_/husky.sh"
3
+
4
+ # ### git commit message template ###
2
5
  git config commit.template .git/templatemessage
3
- TICKETID=`git rev-parse --abbrev-ref HEAD | LC_ALL=en_US.utf8 grep -oP '((feature|bug|bugfix|fix|hotfix|task|chore)\/)\K\d{1,7}'`
4
- echo "[POST_CHECKOUT] Setting template commit to $TICKETID"
5
- echo "#$TICKETID: " > ".git/templatemessage"
6
+ TICKETID=`git rev-parse --abbrev-ref HEAD | LC_ALL=en_US.utf8 grep -oP '^((feature|bug|bugfix|fix|hotfix|task|chore)\/)?\K\d{1,7}' || true`
7
+ if [ -z "$TICKETID" ]
8
+ then
9
+ TICKETID="0"
10
+ fi
11
+ TEMPLATE="#$TICKETID: "
12
+ echo "[POST_CHECKOUT] Setting template commit to '$TEMPLATE'"
13
+ # wrap $TEMPLATE in quotes or else it is trimmed automatically
14
+ echo "$TEMPLATE" > ".git/templatemessage"
15
+
16
+
17
+ # ### run npm install ###
18
+ echo "[POST-CHECKOUT] 📦 Checking for changes to dependencies"
19
+ # define how to split strings into array elements
20
+ IFS=$'\n'
21
+ # $1 is the new HEAD pointer
22
+ NEWHEAD=$1
23
+ # $2 is the previous HEAD pointer
24
+ OLDHEAD=$2
25
+ # extract all paths to package-lock.json files
26
+ PACKAGE_LOCK_REGEX="(^package-lock\.json)"
27
+ PACKAGES=$(git diff --name-only $NEWHEAD $OLDHEAD | grep -E $PACKAGE_LOCK_REGEX || true)
28
+
29
+ if [[ ${PACKAGES[@]} ]]; then
30
+ for package in $PACKAGES; do
31
+ echo "📦 $package was changed."
32
+ done
33
+ echo "📦 Running npm install to update your dependencies..."
34
+ npm install
35
+ else
36
+ echo "📦 All packages up-to-date. No need to run npm install."
37
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ # ### run npm install ###
3
+ . "$(dirname "$0")/_/husky.sh"
4
+
5
+
6
+ echo "[POST-MERGE] 📦 Checking for changes to dependencies"
7
+
8
+ IFS=$'\n'
9
+ # extract all paths to package-lock.json files
10
+ PACKAGE_LOCK_REGEX="(^package-lock\.json)"
11
+ PACKAGES=$(git diff --name-only HEAD^1 HEAD | grep -E $PACKAGE_LOCK_REGEX || true)
12
+
13
+ if [[ ${PACKAGES[@]} ]]; then
14
+ for package in $PACKAGES; do
15
+ echo "📦 $package was changed."
16
+ done
17
+ echo "📦 Running npm install to update your dependencies..."
18
+ npm install
19
+ else
20
+ echo "📦 All packages up-to-date. No need to run npm install."
21
+ fi
package/.husky/pre-commit CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/bin/sh
2
2
  . "$(dirname "$0")/_/husky.sh"
3
+
3
4
  npm run docs
4
5
  git update-index --add docs/dist/documentation.md
5
6
  npx --no lint-staged