mcdev 7.0.3 → 7.0.4

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 (185) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
  2. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +1 -0
  3. package/.github/workflows/code-test.yml +48 -0
  4. package/.husky/pre-commit +1 -1
  5. package/@types/lib/Builder.d.ts +13 -13
  6. package/@types/lib/Builder.d.ts.map +1 -1
  7. package/@types/lib/Deployer.d.ts +16 -16
  8. package/@types/lib/Deployer.d.ts.map +1 -1
  9. package/@types/lib/Retriever.d.ts +15 -15
  10. package/@types/lib/Retriever.d.ts.map +1 -1
  11. package/@types/lib/cli.d.ts +1 -1
  12. package/@types/lib/cli.d.ts.map +1 -1
  13. package/@types/lib/index.d.ts +34 -34
  14. package/@types/lib/index.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/Asset.d.ts +18 -43
  16. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/AttributeGroup.d.ts +3 -8
  18. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/AttributeSet.d.ts +5 -21
  20. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/Automation.d.ts +36 -49
  22. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/Campaign.d.ts +11 -18
  24. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/ContentArea.d.ts +12 -31
  26. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
  27. package/@types/lib/metadataTypes/DataExtension.d.ts +23 -31
  28. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  29. package/@types/lib/metadataTypes/DataExtensionField.d.ts +12 -18
  30. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  31. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +11 -11
  32. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -1
  33. package/@types/lib/metadataTypes/DataExtract.d.ts +12 -28
  34. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  35. package/@types/lib/metadataTypes/DataExtractType.d.ts +10 -10
  36. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
  37. package/@types/lib/metadataTypes/DeliveryProfile.d.ts +10 -10
  38. package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -1
  39. package/@types/lib/metadataTypes/Discovery.d.ts +10 -10
  40. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
  41. package/@types/lib/metadataTypes/Email.d.ts +13 -34
  42. package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
  43. package/@types/lib/metadataTypes/EmailSend.d.ts +10 -10
  44. package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -1
  45. package/@types/lib/metadataTypes/Event.d.ts +19 -16
  46. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  47. package/@types/lib/metadataTypes/FileLocation.d.ts +10 -10
  48. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
  49. package/@types/lib/metadataTypes/FileTransfer.d.ts +11 -18
  50. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
  51. package/@types/lib/metadataTypes/Filter.d.ts +10 -10
  52. package/@types/lib/metadataTypes/Filter.d.ts.map +1 -1
  53. package/@types/lib/metadataTypes/Folder.d.ts +10 -10
  54. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  55. package/@types/lib/metadataTypes/ImportFile.d.ts +11 -15
  56. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  57. package/@types/lib/metadataTypes/Journey.d.ts +13 -32
  58. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  59. package/@types/lib/metadataTypes/List.d.ts +12 -12
  60. package/@types/lib/metadataTypes/List.d.ts.map +1 -1
  61. package/@types/lib/metadataTypes/MetadataType.d.ts +23 -23
  62. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  63. package/@types/lib/metadataTypes/MobileCode.d.ts +11 -20
  64. package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -1
  65. package/@types/lib/metadataTypes/MobileKeyword.d.ts +14 -14
  66. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
  67. package/@types/lib/metadataTypes/MobileMessage.d.ts +14 -42
  68. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  69. package/@types/lib/metadataTypes/Query.d.ts +12 -12
  70. package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
  71. package/@types/lib/metadataTypes/Role.d.ts +11 -11
  72. package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
  73. package/@types/lib/metadataTypes/Script.d.ts +15 -24
  74. package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
  75. package/@types/lib/metadataTypes/SendClassification.d.ts +10 -10
  76. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
  77. package/@types/lib/metadataTypes/SenderProfile.d.ts +11 -19
  78. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  79. package/@types/lib/metadataTypes/TransactionalEmail.d.ts +12 -12
  80. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
  81. package/@types/lib/metadataTypes/TransactionalMessage.d.ts +11 -32
  82. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
  83. package/@types/lib/metadataTypes/TransactionalPush.d.ts +12 -21
  84. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
  85. package/@types/lib/metadataTypes/TransactionalSMS.d.ts +12 -18
  86. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
  87. package/@types/lib/metadataTypes/TriggeredSend.d.ts +13 -18
  88. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
  89. package/@types/lib/metadataTypes/User.d.ts +22 -40
  90. package/@types/lib/metadataTypes/User.d.ts.map +1 -1
  91. package/@types/lib/metadataTypes/Verification.d.ts +13 -13
  92. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
  93. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +7 -1
  94. package/@types/lib/util/auth.d.ts +19 -18
  95. package/@types/lib/util/auth.d.ts.map +1 -1
  96. package/@types/lib/util/businessUnit.d.ts +17 -17
  97. package/@types/lib/util/businessUnit.d.ts.map +1 -1
  98. package/@types/lib/util/cache.d.ts +24 -32
  99. package/@types/lib/util/cache.d.ts.map +1 -1
  100. package/@types/lib/util/cli.d.ts +27 -27
  101. package/@types/lib/util/cli.d.ts.map +1 -1
  102. package/@types/lib/util/config.d.ts +20 -20
  103. package/@types/lib/util/config.d.ts.map +1 -1
  104. package/@types/lib/util/devops.d.ts +21 -21
  105. package/@types/lib/util/devops.d.ts.map +1 -1
  106. package/@types/lib/util/file.d.ts +179 -18
  107. package/@types/lib/util/file.d.ts.map +1 -1
  108. package/@types/lib/util/init.config.d.ts +19 -19
  109. package/@types/lib/util/init.config.d.ts.map +1 -1
  110. package/@types/lib/util/init.d.ts +20 -20
  111. package/@types/lib/util/init.d.ts.map +1 -1
  112. package/@types/lib/util/init.git.d.ts +2 -2
  113. package/@types/lib/util/init.git.d.ts.map +1 -1
  114. package/@types/lib/util/init.npm.d.ts +2 -2
  115. package/@types/lib/util/init.npm.d.ts.map +1 -1
  116. package/@types/lib/util/replaceContentBlockReference.d.ts +28 -28
  117. package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
  118. package/@types/lib/util/util.d.ts +33 -37
  119. package/@types/lib/util/util.d.ts.map +1 -1
  120. package/@types/types/mcdev.d.d.ts +73 -52
  121. package/@types/types/mcdev.d.d.ts.map +1 -1
  122. package/eslint.config.js +0 -1
  123. package/lib/Deployer.js +1 -1
  124. package/lib/Retriever.js +4 -1
  125. package/lib/cli.js +209 -278
  126. package/lib/index.js +89 -43
  127. package/lib/metadataTypes/Asset.js +1 -0
  128. package/lib/metadataTypes/DataExtension.js +3 -3
  129. package/lib/metadataTypes/DataExtensionField.js +0 -1
  130. package/lib/metadataTypes/Event.js +199 -35
  131. package/lib/metadataTypes/Folder.js +1 -1
  132. package/lib/metadataTypes/Journey.js +10 -2
  133. package/lib/metadataTypes/MetadataType.js +3 -4
  134. package/lib/metadataTypes/Role.js +9 -7
  135. package/lib/metadataTypes/SenderProfile.js +1 -0
  136. package/lib/metadataTypes/TransactionalEmail.js +2 -2
  137. package/lib/metadataTypes/TriggeredSend.js +1 -0
  138. package/lib/metadataTypes/User.js +31 -27
  139. package/lib/metadataTypes/definitions/Event.definition.js +8 -8
  140. package/lib/util/auth.js +0 -1
  141. package/lib/util/cli.js +0 -1
  142. package/lib/util/devops.js +2 -3
  143. package/lib/util/file.js +7 -10
  144. package/lib/util/replaceContentBlockReference.js +3 -1
  145. package/package.json +11 -9
  146. package/test/general.test.js +20 -2
  147. package/test/mockRoot/.mcdevrc.json +1 -1
  148. package/test/mockRoot/deploy/testInstance/testBU/event/testExisting_event.event-meta.json +201 -0
  149. package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withExistingDE.event-meta.json +232 -0
  150. package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withSchema.event-meta.json +193 -0
  151. package/test/resources/9999999/dataExtension/retrieve-CustomerKey=testNew_event_withSchema-response.xml +50 -0
  152. package/test/resources/9999999/dataExtension/retrieve-createdViaEvent-response.xml +50 -0
  153. package/test/resources/9999999/dataExtension/retrieve-response.xml +48 -0
  154. package/test/resources/9999999/dataExtension/retrieve_event_withSchema-expected.json +219 -0
  155. package/test/resources/9999999/dataExtension/update-afterCreatedViaEvent-response.xml +55 -0
  156. package/test/resources/9999999/dataExtension/update-callout-afterCreatedViaEvent-expected.xml +1 -0
  157. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_event_withSchema-response.xml +461 -0
  158. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKeyINtestExisting_dataExtension,testNew_dataExtension-response.xml +133 -0
  159. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +870 -0
  160. package/test/resources/9999999/event/build-expected.json +228 -0
  161. package/test/resources/9999999/event/get-expected.json +235 -0
  162. package/test/resources/9999999/event/post_withExistingDE-callout-expected.json +17 -0
  163. package/test/resources/9999999/event/post_withExistingDE-expected.json +21 -0
  164. package/test/resources/9999999/event/post_withSchema-callout-expected.json +196 -0
  165. package/test/resources/9999999/event/post_withSchema-expected.json +232 -0
  166. package/test/resources/9999999/event/put-callout-expected.json +202 -0
  167. package/test/resources/9999999/event/put-expected.json +233 -0
  168. package/test/resources/9999999/event/template-expected.json +228 -0
  169. package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +252 -2
  170. package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/delete-response.txt +0 -0
  171. package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/put-response.json +241 -0
  172. package/test/resources/9999999/interaction/v1/eventDefinitions/post_withExistingDE-response.json +26 -0
  173. package/test/resources/9999999/interaction/v1/eventDefinitions/post_withSchema-response.json +241 -0
  174. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/delete-response.txt +1 -0
  175. package/test/type.asset.test.js +0 -3
  176. package/test/type.automation.test.js +1 -1
  177. package/test/type.dataExtension.test.js +4 -4
  178. package/test/type.event.test.js +287 -6
  179. package/test/type.journey.test.js +13 -0
  180. package/test/type.user.test.js +1 -1
  181. package/test/utils.js +18 -6
  182. package/tsconfig.json +6 -1
  183. package/{jsconfig.json → tsconfig.npmScripts.json} +1 -1
  184. package/tsconfig.precommit.json +26 -0
  185. package/types/mcdev.d.js +12 -13
package/lib/cli.js CHANGED
@@ -10,18 +10,18 @@ import yargs from 'yargs';
10
10
  import { hideBin } from 'yargs/helpers';
11
11
  import Mcdev from './index.js';
12
12
 
13
+ // use this instead of setting "true" directly to more easily find deprecated commands in this file
14
+ const isDeprecated = true;
13
15
  /**
14
16
  * @typedef {import('../types/mcdev.d.js').TypeKeyCombo} TypeKeyCombo
15
17
  */
16
18
  yargs(hideBin(process.argv))
17
19
  .scriptName('mcdev')
18
20
  .usage('$0 <command> [options]')
19
- // @ts-expect-error
20
- .command({
21
- command: 'retrieve [BU] [TYPE] [KEY]',
22
- aliases: ['r'],
23
- desc: 'retrieves metadata of a business unit',
24
- builder: (yargs) => {
21
+ .command(
22
+ ['retrieve [BU] [TYPE] [KEY]', 'r'],
23
+ 'retrieves metadata of a business unit',
24
+ (yargs) =>
25
25
  yargs
26
26
  .positional('BU', {
27
27
  type: 'string',
@@ -48,9 +48,8 @@ yargs(hideBin(process.argv))
48
48
  group: 'Options for retrieve:',
49
49
  describe:
50
50
  'filter metadata components (can include % as wildcard or _ for a single character)',
51
- });
52
- },
53
- handler: (argv) => {
51
+ }),
52
+ (argv) => {
54
53
  Mcdev.setOptions(argv);
55
54
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
56
55
  if ('undefined' === typeof typeKeyCombo) {
@@ -58,14 +57,12 @@ yargs(hideBin(process.argv))
58
57
  } else {
59
58
  Mcdev.retrieve(argv.BU, typeKeyCombo);
60
59
  }
61
- },
62
- })
63
- // @ts-expect-error
64
- .command({
65
- command: 'deploy [BU] [TYPE] [KEY]',
66
- aliases: ['d'],
67
- desc: 'deploys local metadata to a business unit',
68
- builder: (yargs) => {
60
+ }
61
+ )
62
+ .command(
63
+ ['deploy [BU] [TYPE] [KEY]', 'd'],
64
+ 'deploys local metadata to a business unit',
65
+ (yargs) =>
69
66
  yargs
70
67
  .positional('BU', {
71
68
  type: 'string',
@@ -144,9 +141,8 @@ yargs(hideBin(process.argv))
144
141
  group: 'Options for deploy:',
145
142
  describe:
146
143
  "ensure that updates to shared DataExtensions become visible in child BU's data designer (SF Known issue W-11031095)",
147
- });
148
- },
149
- handler: (argv) => {
144
+ }),
145
+ (argv) => {
150
146
  Mcdev.setOptions(argv);
151
147
 
152
148
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
@@ -155,69 +151,55 @@ yargs(hideBin(process.argv))
155
151
  } else {
156
152
  Mcdev.deploy(argv.BU, typeKeyCombo);
157
153
  }
158
- },
159
- })
160
- // @ts-expect-error
161
- .command({
162
- command: 'init [credentialsName]',
163
- desc: `creates '${Util.configFileName}' in your root or adds additional credentials to the existing one`,
164
- builder: (yargs) => {
154
+ }
155
+ )
156
+ .command(
157
+ ['init [credentialsName]'],
158
+ `creates '${Util.configFileName}' in your root or adds additional credentials to the existing one`,
159
+ (yargs) =>
165
160
  yargs.positional('credentialsName', {
166
161
  type: 'string',
167
162
  describe: 'name of your installed package',
168
- });
169
- },
170
- handler: (argv) => {
163
+ }),
164
+ (argv) => {
171
165
  Mcdev.setOptions(argv);
172
166
  Mcdev.initProject(argv.credentialsName);
173
- },
174
- })
175
- // @ts-expect-error
176
- .command({
177
- command: 'join',
178
- desc: `clones an existing project from git`,
179
- handler: (argv) => {
180
- Mcdev.setOptions(argv);
181
- Mcdev.joinProject();
182
- },
183
- })
184
- // @ts-expect-error
185
- .command({
186
- command: 'reloadBUs [credentialsName]',
187
- aliases: ['rb', 'refreshBUs'],
188
- desc: 'loads the list of available BUs from the server and saves it to your config',
189
- builder: (yargs) => {
167
+ }
168
+ )
169
+ .command(['join'], `clones an existing project from git`, {}, (argv) => {
170
+ Mcdev.setOptions(argv);
171
+ Mcdev.joinProject();
172
+ })
173
+ .command(
174
+ ['reloadBUs [credentialsName]', 'rb', 'refreshBUs'],
175
+ 'loads the list of available BUs from the server and saves it to your config',
176
+ (yargs) =>
190
177
  yargs.positional('credentialsName', {
191
178
  type: 'string',
192
179
  describe: 'name of your installed package',
193
- });
194
- },
195
- handler: (argv) => {
180
+ }),
181
+ (argv) => {
196
182
  Mcdev.setOptions(argv);
197
183
  Mcdev.findBUs(argv.credentialsName);
198
- },
199
- })
200
- // @ts-expect-error
201
- .command({
202
- command: 'badKeys [BU]',
203
- desc: 'lists metadata with random API names in specified Business Unit directory',
204
- builder: (yargs) => {
184
+ }
185
+ )
186
+ .command(
187
+ ['badKeys [BU]'],
188
+ 'lists metadata with random API names in specified Business Unit directory',
189
+ (yargs) =>
205
190
  yargs.positional('BU', {
206
191
  type: 'string',
207
192
  describe: 'the business unit to deploy to',
208
- });
209
- },
210
- handler: (argv) => {
193
+ }),
194
+ (argv) => {
211
195
  Mcdev.setOptions(argv);
212
196
  Mcdev.badKeys(argv.BU);
213
- },
214
- })
215
- // @ts-expect-error
216
- .command({
217
- command: 'document <BU> <TYPE>',
218
- aliases: ['doc'],
219
- desc: 'Creates Markdown or HTML documentation for the selected type',
220
- builder: (yargs) => {
197
+ }
198
+ )
199
+ .command(
200
+ ['document <BU> <TYPE>', 'doc'],
201
+ 'Creates Markdown or HTML documentation for the selected type',
202
+ (yargs) =>
221
203
  yargs
222
204
  .positional('BU', {
223
205
  type: 'string',
@@ -228,19 +210,16 @@ yargs(hideBin(process.argv))
228
210
  type: 'string',
229
211
  describe:
230
212
  'metadata type to generate docs for; currently supported: dataExtension, role',
231
- });
232
- },
233
- handler: (argv) => {
213
+ }),
214
+ (argv) => {
234
215
  Mcdev.setOptions(argv);
235
216
  Mcdev.document(argv.BU, argv.TYPE);
236
- },
237
- })
238
- // @ts-expect-error
239
- .command({
240
- command: 'delete <BU> [TYPE] [KEY]',
241
- aliases: ['del'],
242
- desc: 'deletes metadata of selected type and external key',
243
- builder: (yargs) => {
217
+ }
218
+ )
219
+ .command(
220
+ ['delete <BU> [TYPE] [KEY]', 'del'],
221
+ 'deletes metadata of selected type and external key',
222
+ (yargs) =>
244
223
  yargs
245
224
  .positional('BU', {
246
225
  type: 'string',
@@ -258,30 +237,25 @@ yargs(hideBin(process.argv))
258
237
  .option('metadata', {
259
238
  type: 'string',
260
239
  alias: 'm',
261
- group: 'Options for retrieve:',
262
- describe:
263
- 'type or type:key or type:i:id or type:n:name to retrieve; if not provided, all metadata will be retrieved',
264
- });
265
- },
266
- handler: (argv) => {
240
+ group: 'Options for delete:',
241
+ describe: 'type or type:key or type:i:id or type:n:name to delete',
242
+ }),
243
+ (argv) => {
267
244
  Mcdev.setOptions(argv);
268
- const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata, ['key', 'id'], true);
245
+ const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata, ['key', 'id']);
269
246
  if ('undefined' === typeof typeKeyCombo) {
270
247
  if (argv.TYPE && argv.KEY) {
271
- Mcdev.deleteByKey(argv.BU, argv.TYPE, argv.KEY);
248
+ Mcdev.deleteByKey(argv.BU, argv.TYPE, csvToArray(argv.KEY));
272
249
  }
273
250
  } else {
274
- const type = Object.keys(typeKeyCombo)[0];
275
- Mcdev.deleteByKey(argv.BU, type, typeKeyCombo[type][0]);
251
+ Mcdev.deleteByKey(argv.BU, typeKeyCombo, null);
276
252
  }
277
- },
278
- })
279
- // @ts-expect-error
280
- .command({
281
- command: 'resolveId <BU> <TYPE> <ID>',
282
- aliases: ['rid'],
283
- desc: 'resolves metadata key by ID',
284
- builder: (yargs) => {
253
+ }
254
+ )
255
+ .command(
256
+ ['resolveId <BU> <TYPE> <ID>', 'rid'],
257
+ 'resolves metadata key by ID',
258
+ (yargs) =>
285
259
  yargs
286
260
  .positional('BU', {
287
261
  type: 'string',
@@ -300,20 +274,17 @@ yargs(hideBin(process.argv))
300
274
  type: 'boolean',
301
275
  group: 'Options for resolveId:',
302
276
  describe: 'optionaly return info in json format',
303
- });
304
- // TODO: add option --metadata
305
- },
306
- handler: (argv) => {
277
+ }),
278
+ // TODO: add option --metadata
279
+ (argv) => {
307
280
  Mcdev.setOptions(argv);
308
281
  Mcdev.resolveId(argv.BU, argv.TYPE, argv.ID);
309
- },
310
- })
311
- // @ts-expect-error
312
- .command({
313
- command: 'retrieveAsTemplate <BU> <TYPE> <NAME> <MARKET>',
314
- aliases: ['rt'],
315
- desc: '[DEPRECATED] Retrieves a specific metadata file by name from the server for templating',
316
- builder: (yargs) => {
282
+ }
283
+ )
284
+ .command(
285
+ ['retrieveAsTemplate <BU> <TYPE> <NAME> <MARKET>', 'rt'],
286
+ '[DEPRECATED] Retrieves a specific metadata file by name from the server for templating',
287
+ (yargs) =>
317
288
  yargs
318
289
  .positional('BU', {
319
290
  type: 'string',
@@ -331,19 +302,19 @@ yargs(hideBin(process.argv))
331
302
  .positional('MARKET', {
332
303
  type: 'string',
333
304
  describe: 'market used for reverse building template',
334
- });
335
- },
336
- handler: (argv) => {
305
+ }),
306
+
307
+ (argv) => {
337
308
  Mcdev.setOptions(argv);
338
309
  Mcdev.retrieveAsTemplate(argv.BU, argv.TYPE, csvToArray(argv.NAME), argv.MARKET);
339
310
  },
340
- deprecated: true,
341
- })
342
- // @ts-expect-error
343
- .command({
344
- command: 'build',
345
- desc: 'runs buildTemplate followed by buildDefinition',
346
- builder: (yargs) => {
311
+ [],
312
+ isDeprecated
313
+ )
314
+ .command(
315
+ ['build'],
316
+ 'runs buildTemplate followed by buildDefinition',
317
+ (yargs) =>
347
318
  yargs
348
319
  .option('metadata', {
349
320
  type: 'string',
@@ -386,9 +357,8 @@ yargs(hideBin(process.argv))
386
357
  describe:
387
358
  'if defined, the marketTo parameter has to be a marketList and buildDefinitionBulk is executed',
388
359
  demandOption: true,
389
- });
390
- },
391
- handler: (argv) => {
360
+ }),
361
+ (argv) => {
392
362
  Mcdev.setOptions(argv);
393
363
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
394
364
  if ('undefined' !== typeof typeKeyCombo) {
@@ -401,14 +371,12 @@ yargs(hideBin(process.argv))
401
371
  argv.bulk
402
372
  );
403
373
  }
404
- },
405
- })
406
- // @ts-expect-error
407
- .command({
408
- command: 'buildTemplate <BU> [TYPE] [KEY] [MARKET]',
409
- aliases: ['bt'],
410
- desc: 'builds a template out of a specific metadata file already in your retrieve folder',
411
- builder: (yargs) => {
374
+ }
375
+ )
376
+ .command(
377
+ ['buildTemplate <BU> [TYPE] [KEY] [MARKET]', 'bt'],
378
+ 'builds a template out of a specific metadata file already in your retrieve folder',
379
+ (yargs) =>
412
380
  yargs
413
381
  .positional('BU', {
414
382
  type: 'string',
@@ -437,9 +405,8 @@ yargs(hideBin(process.argv))
437
405
  type: 'string',
438
406
  group: 'Options for buildTemplate:',
439
407
  describe: 'market used for reverse building template',
440
- });
441
- },
442
- handler: (argv) => {
408
+ }),
409
+ (argv) => {
443
410
  Mcdev.setOptions(argv);
444
411
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
445
412
  if ('undefined' === typeof typeKeyCombo) {
@@ -452,14 +419,12 @@ yargs(hideBin(process.argv))
452
419
  } else {
453
420
  Mcdev.buildTemplate(argv.BU, typeKeyCombo, null, argv.MARKET || argv.market);
454
421
  }
455
- },
456
- })
457
- // @ts-expect-error
458
- .command({
459
- command: 'buildDefinition <BU> [TYPE] [FILENAME] [MARKET]',
460
- aliases: ['bd'],
461
- desc: 'builds metadata definition based on template',
462
- builder: (yargs) => {
422
+ }
423
+ )
424
+ .command(
425
+ ['buildDefinition <BU> [TYPE] [FILENAME] [MARKET]', 'bd'],
426
+ 'builds metadata definition based on template',
427
+ (yargs) =>
463
428
  yargs
464
429
  .positional('BU', {
465
430
  type: 'string',
@@ -487,9 +452,8 @@ yargs(hideBin(process.argv))
487
452
  type: 'string',
488
453
  group: 'Options for buildDefinition:',
489
454
  describe: 'market used for building deployable definition',
490
- });
491
- },
492
- handler: (argv) => {
455
+ }),
456
+ (argv) => {
493
457
  Mcdev.setOptions(argv);
494
458
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
495
459
  if ('undefined' === typeof typeKeyCombo) {
@@ -502,14 +466,12 @@ yargs(hideBin(process.argv))
502
466
  } else {
503
467
  Mcdev.buildDefinition(argv.BU, typeKeyCombo, null, argv.MARKET || argv.market);
504
468
  }
505
- },
506
- })
507
- // @ts-expect-error
508
- .command({
509
- command: 'buildDefinitionBulk <LISTNAME> [TYPE] [FILENAME]',
510
- aliases: ['bdb'],
511
- desc: 'builds metadata definition based on template en bulk',
512
- builder: (yargs) => {
469
+ }
470
+ )
471
+ .command(
472
+ ['buildDefinitionBulk <LISTNAME> [TYPE] [FILENAME]', 'bdb'],
473
+ 'builds metadata definition based on template en bulk',
474
+ (yargs) =>
513
475
  yargs
514
476
  .positional('LISTNAME', {
515
477
  type: 'string',
@@ -528,9 +490,8 @@ yargs(hideBin(process.argv))
528
490
  alias: 'm',
529
491
  group: 'Options for buildDefinitionBulk:',
530
492
  describe: 'type:templateName combos to build template for',
531
- });
532
- },
533
- handler: (argv) => {
493
+ }),
494
+ (argv) => {
534
495
  Mcdev.setOptions(argv);
535
496
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
536
497
  if ('undefined' === typeof typeKeyCombo) {
@@ -538,41 +499,35 @@ yargs(hideBin(process.argv))
538
499
  } else {
539
500
  Mcdev.buildDefinitionBulk(argv.LISTNAME, typeKeyCombo);
540
501
  }
541
- },
542
- })
543
- // @ts-expect-error
544
- .command({
545
- command: 'selectTypes',
546
- aliases: ['st'],
547
- desc: 'lets you choose what metadata types to retrieve',
548
- handler: (argv) => {
502
+ }
503
+ )
504
+ .command(
505
+ ['selectTypes', 'st'],
506
+ 'lets you choose what metadata types to retrieve',
507
+ {},
508
+ (argv) => {
549
509
  Mcdev.setOptions(argv);
550
510
  Mcdev.selectTypes();
551
- },
552
- })
553
- // @ts-expect-error
554
- .command({
555
- command: 'explainTypes',
556
- aliases: ['et'],
557
- desc: 'explains metadata types that can be retrieved',
558
- builder: (yargs) => {
511
+ }
512
+ )
513
+ .command(
514
+ ['explainTypes', 'et'],
515
+ 'explains metadata types that can be retrieved',
516
+ (yargs) =>
559
517
  yargs.option('json', {
560
518
  type: 'boolean',
561
519
  group: 'Options for explainTypes:',
562
520
  describe: 'optionaly return info in json format',
563
- });
564
- },
565
- handler: (argv) => {
521
+ }),
522
+ (argv) => {
566
523
  Mcdev.setOptions(argv);
567
524
  Mcdev.explainTypes();
568
- },
569
- })
570
- // @ts-expect-error
571
- .command({
572
- command: 'createDeltaPkg [range]',
573
- aliases: ['cdp'],
574
- desc: 'Copies commit-based file delta into deploy folder',
575
- builder: (yargs) => {
525
+ }
526
+ )
527
+ .command(
528
+ ['createDeltaPkg [range]', 'cdp'],
529
+ 'Copies commit-based file delta into deploy folder',
530
+ (yargs) =>
576
531
  yargs
577
532
  .positional('range', {
578
533
  type: 'string',
@@ -588,20 +543,16 @@ yargs(hideBin(process.argv))
588
543
  type: 'number',
589
544
  group: 'Options for createDeltaPkg:',
590
545
  describe: 'Number of commits to look back for changes (supersedes config)',
591
- });
592
- },
593
- handler: (argv) => {
546
+ }),
547
+ (argv) => {
594
548
  Mcdev.setOptions(argv);
595
- // @ts-expect-error - us passing in argv directly here is a bit lazy and ts warns us about it...
596
549
  Mcdev.createDeltaPkg(argv);
597
- },
598
- })
599
- // @ts-expect-error
600
- .command({
601
- command: 'getFilesToCommit <BU> <TYPE> <KEY>',
602
- aliases: ['fc'],
603
- desc: 'returns a list of relative paths to files one needs to include in a commit',
604
- builder: (yargs) => {
550
+ }
551
+ )
552
+ .command(
553
+ ['getFilesToCommit <BU> <TYPE> <KEY>', 'fc'],
554
+ 'returns a list of relative paths to files one needs to include in a commit',
555
+ (yargs) =>
605
556
  yargs
606
557
  .positional('BU', {
607
558
  type: 'string',
@@ -615,20 +566,17 @@ yargs(hideBin(process.argv))
615
566
  .positional('KEY', {
616
567
  type: 'string',
617
568
  describe: 'key(s) of the metadata component(s)',
618
- });
619
- // TODO: add option --metadata
620
- },
621
- handler: (argv) => {
569
+ }),
570
+ // TODO: add option --metadata
571
+ (argv) => {
622
572
  Mcdev.setOptions(argv);
623
573
  Mcdev.getFilesToCommit(argv.BU, argv.TYPE, csvToArray(argv.KEY));
624
- },
625
- })
626
- // @ts-expect-error
627
- .command({
628
- command: 'refresh <BU> [TYPE] [KEY]',
629
- aliases: ['re'],
630
- desc: 'ensures that updates are properly published',
631
- builder: (yargs) => {
574
+ }
575
+ )
576
+ .command(
577
+ ['refresh <BU> [TYPE] [KEY]', 're'],
578
+ 'ensures that updates are properly published',
579
+ (yargs) =>
632
580
  yargs
633
581
  .positional('BU', {
634
582
  type: 'string',
@@ -641,20 +589,17 @@ yargs(hideBin(process.argv))
641
589
  .positional('KEY', {
642
590
  type: 'string',
643
591
  describe: 'key(s) of the metadata component(s)',
644
- });
645
- // TODO: add option --metadata
646
- },
647
- handler: (argv) => {
592
+ }),
593
+ // TODO: add option --metadata
594
+ (argv) => {
648
595
  Mcdev.setOptions(argv);
649
596
  Mcdev.refresh(argv.BU, argv.TYPE, csvToArray(argv.KEY));
650
- },
651
- })
652
- // @ts-expect-error
653
- .command({
654
- command: 'execute <BU> <TYPE> [KEY]',
655
- aliases: ['exec', 'start'],
656
- desc: 'executes the entity (query/journey/automation etc.)',
657
- builder: (yargs) => {
597
+ }
598
+ )
599
+ .command(
600
+ ['execute <BU> <TYPE> [KEY]', 'exec', 'start'],
601
+ 'executes the entity (query/journey/automation etc.)',
602
+ (yargs) =>
658
603
  yargs
659
604
  .positional('BU', {
660
605
  type: 'string',
@@ -679,21 +624,18 @@ yargs(hideBin(process.argv))
679
624
  group: 'Options for execute:',
680
625
  describe:
681
626
  'optionally start existing schedule instead of running item once immediately (only works for automations)',
682
- });
683
- // TODO: add option --metadata
684
- },
685
- handler: (argv) => {
627
+ }),
628
+ // TODO: add option --metadata
629
+ (argv) => {
686
630
  Mcdev.setOptions(argv);
687
631
  // ! do not allow multiple types to be passed in here via csvToArray
688
632
  Mcdev.execute(argv.BU, argv.TYPE, csvToArray(argv.KEY));
689
- },
690
- })
691
- // @ts-expect-error
692
- .command({
693
- command: 'schedule <BU> <TYPE> [KEY]',
694
- aliases: ['sched'],
695
- desc: 'starts the predefined schedule of the item (shortcut for running execute --schedule)',
696
- builder: (yargs) => {
633
+ }
634
+ )
635
+ .command(
636
+ ['schedule <BU> <TYPE> [KEY]', 'sched'],
637
+ 'starts the predefined schedule of the item (shortcut for running execute --schedule)',
638
+ (yargs) =>
697
639
  yargs
698
640
  .positional('BU', {
699
641
  type: 'string',
@@ -712,21 +654,18 @@ yargs(hideBin(process.argv))
712
654
  group: 'Options for execute:',
713
655
  describe:
714
656
  'filter metadata components (can include % as wildcard or _ for a single character)',
715
- });
716
- // TODO: add option --metadata
717
- },
718
- handler: (argv) => {
657
+ }),
658
+ // TODO: add option --metadata
659
+ (argv) => {
719
660
  Mcdev.setOptions(argv);
720
661
  // ! do not allow multiple types to be passed in here via csvToArray
721
662
  Mcdev.schedule(argv.BU, argv.TYPE, csvToArray(argv.KEY));
722
- },
723
- })
724
- // @ts-expect-error
725
- .command({
726
- command: 'pause <BU> <TYPE> [KEY]',
727
- aliases: ['p', 'stop'],
728
- desc: 'pauses the entity (automation etc.)',
729
- builder: (yargs) => {
663
+ }
664
+ )
665
+ .command(
666
+ ['pause <BU> <TYPE> [KEY]', 'p', 'stop'],
667
+ 'pauses the entity (automation etc.)',
668
+ (yargs) =>
730
669
  yargs
731
670
  .positional('BU', {
732
671
  type: 'string',
@@ -745,21 +684,18 @@ yargs(hideBin(process.argv))
745
684
  group: 'Options for pause:',
746
685
  describe:
747
686
  'filter metadata components (can include % as wildcard or _ for a single character)',
748
- });
749
- // TODO: add option --metadata
750
- },
751
- handler: (argv) => {
687
+ }),
688
+ // TODO: add option --metadata
689
+ (argv) => {
752
690
  Mcdev.setOptions(argv);
753
691
  // ! do not allow multiple types to be passed in here via csvToArray
754
692
  Mcdev.pause(argv.BU, argv.TYPE, csvToArray(argv.KEY));
755
- },
756
- })
757
- // @ts-expect-error
758
- .command({
759
- command: 'fixKeys <BU> [TYPE] [KEY]',
760
- aliases: ['fx'],
761
- desc: 'changes the key of the items to match the name',
762
- builder: (yargs) => {
693
+ }
694
+ )
695
+ .command(
696
+ ['fixKeys <BU> [TYPE] [KEY]', 'fx'],
697
+ 'changes the key of the items to match the name',
698
+ (yargs) =>
763
699
  yargs
764
700
  .positional('BU', {
765
701
  type: 'string',
@@ -805,9 +741,8 @@ yargs(hideBin(process.argv))
805
741
  group: 'Options for fixKeys:',
806
742
  describe:
807
743
  'optionally start existing schedule instead of running item once immediately (only works for automations)',
808
- });
809
- },
810
- handler: (argv) => {
744
+ }),
745
+ (argv) => {
811
746
  Mcdev.setOptions(argv);
812
747
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
813
748
  if ('undefined' === typeof typeKeyCombo) {
@@ -815,14 +750,12 @@ yargs(hideBin(process.argv))
815
750
  } else {
816
751
  Mcdev.fixKeys(argv.BU, typeKeyCombo);
817
752
  }
818
- },
819
- })
820
- // @ts-expect-error
821
- .command({
822
- command: 'replaceContentBlock',
823
- aliases: ['rcb'],
824
- desc: 'Replaces ContentBlockById, ContentBlockByKey or ContentBlockByName functions with each other in AMPscript',
825
- builder: (yargs) => {
753
+ }
754
+ )
755
+ .command(
756
+ ['replaceContentBlock', 'rcb'],
757
+ 'Replaces ContentBlockById, ContentBlockByKey or ContentBlockByName functions with each other in AMPscript',
758
+ (yargs) =>
826
759
  yargs
827
760
  .option('bu', {
828
761
  type: 'string',
@@ -882,24 +815,22 @@ yargs(hideBin(process.argv))
882
815
  }
883
816
  }
884
817
  return true;
885
- });
886
- },
887
- handler: (argv) => {
818
+ }),
819
+ (argv) => {
888
820
  Mcdev.setOptions(argv);
889
821
  const typeKeyCombo = Mcdev.metadataToTypeKey(argv.metadata);
890
822
  Mcdev.replaceCbReference(argv.bu, typeKeyCombo, argv.to, argv.from);
891
- },
892
- })
893
- // @ts-expect-error
894
- .command({
895
- command: 'upgrade',
896
- aliases: ['up'],
897
- desc: 'Add NPM dependencies and IDE configuration files to your project',
898
- handler: (argv) => {
823
+ }
824
+ )
825
+ .command(
826
+ ['upgrade', 'up'],
827
+ 'Add NPM dependencies and IDE configuration files to your project',
828
+ {},
829
+ (argv) => {
899
830
  Mcdev.setOptions(argv);
900
831
  Mcdev.upgrade();
901
- },
902
- })
832
+ }
833
+ )
903
834
  .option('verbose', {
904
835
  type: 'boolean',
905
836
  description: 'Run with verbose CLI output',