mcdev 6.0.1 → 7.0.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 (619) hide show
  1. package/.beautyamp.json +13 -0
  2. package/.eslintrc.json +7 -1
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +13 -5
  5. package/.github/workflows/close_issues_on_merge.yml +1 -1
  6. package/.github/workflows/code-test.yml +51 -3
  7. package/.github/workflows/coverage-base-update.yml +1 -1
  8. package/.github/workflows/coverage-develop-branch.yml +1 -1
  9. package/.github/workflows/coverage-main-branch.yml +1 -1
  10. package/.github/workflows/coverage.yml +2 -2
  11. package/.github/workflows/npm-publish.yml +3 -2
  12. package/.github/workflows/pr-labeler.yml +1 -1
  13. package/.husky/commit-msg +0 -2
  14. package/.husky/post-checkout +0 -3
  15. package/.husky/post-merge +2 -7
  16. package/.husky/pre-commit +5 -5
  17. package/.prettierrc +0 -8
  18. package/.vscode/extensions.json +2 -0
  19. package/.vscode/settings.json +17 -5
  20. package/@types/lib/Builder.d.ts +97 -0
  21. package/@types/lib/Builder.d.ts.map +1 -0
  22. package/@types/lib/Deployer.d.ts +99 -0
  23. package/@types/lib/Deployer.d.ts.map +1 -0
  24. package/@types/lib/MetadataTypeDefinitions.d.ts +80 -0
  25. package/@types/lib/MetadataTypeDefinitions.d.ts.map +1 -0
  26. package/@types/lib/MetadataTypeInfo.d.ts +78 -0
  27. package/@types/lib/MetadataTypeInfo.d.ts.map +1 -0
  28. package/@types/lib/Retriever.d.ts +66 -0
  29. package/@types/lib/Retriever.d.ts.map +1 -0
  30. package/@types/lib/cli.d.ts +3 -0
  31. package/@types/lib/cli.d.ts.map +1 -0
  32. package/@types/lib/index.d.ts +383 -0
  33. package/@types/lib/index.d.ts.map +1 -0
  34. package/@types/lib/metadataTypes/Asset.d.ts +1082 -0
  35. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -0
  36. package/@types/lib/metadataTypes/AttributeGroup.d.ts +290 -0
  37. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -0
  38. package/@types/lib/metadataTypes/AttributeSet.d.ts +968 -0
  39. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -0
  40. package/@types/lib/metadataTypes/Automation.d.ts +921 -0
  41. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -0
  42. package/@types/lib/metadataTypes/Campaign.d.ts +190 -0
  43. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -0
  44. package/@types/lib/metadataTypes/ContentArea.d.ts +250 -0
  45. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -0
  46. package/@types/lib/metadataTypes/DataExtension.d.ts +571 -0
  47. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -0
  48. package/@types/lib/metadataTypes/DataExtensionField.d.ts +236 -0
  49. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -0
  50. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +175 -0
  51. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -0
  52. package/@types/lib/metadataTypes/DataExtract.d.ts +217 -0
  53. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -0
  54. package/@types/lib/metadataTypes/DataExtractType.d.ts +80 -0
  55. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -0
  56. package/@types/lib/metadataTypes/DeliveryProfile.d.ts +102 -0
  57. package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -0
  58. package/@types/lib/metadataTypes/Discovery.d.ts +189 -0
  59. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -0
  60. package/@types/lib/metadataTypes/Email.d.ts +384 -0
  61. package/@types/lib/metadataTypes/Email.d.ts.map +1 -0
  62. package/@types/lib/metadataTypes/EmailSend.d.ts +652 -0
  63. package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -0
  64. package/@types/lib/metadataTypes/Event.d.ts +958 -0
  65. package/@types/lib/metadataTypes/Event.d.ts.map +1 -0
  66. package/@types/lib/metadataTypes/FileLocation.d.ts +101 -0
  67. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -0
  68. package/@types/lib/metadataTypes/FileTransfer.d.ts +228 -0
  69. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -0
  70. package/@types/lib/metadataTypes/Filter.d.ts +145 -0
  71. package/@types/lib/metadataTypes/Filter.d.ts.map +1 -0
  72. package/@types/lib/metadataTypes/Folder.d.ts +287 -0
  73. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -0
  74. package/@types/lib/metadataTypes/ImportFile.d.ts +409 -0
  75. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -0
  76. package/@types/lib/metadataTypes/Journey.d.ts +541 -0
  77. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -0
  78. package/@types/lib/metadataTypes/List.d.ts +191 -0
  79. package/@types/lib/metadataTypes/List.d.ts.map +1 -0
  80. package/@types/lib/metadataTypes/MetadataType.d.ts +680 -0
  81. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -0
  82. package/@types/lib/metadataTypes/MobileCode.d.ts +225 -0
  83. package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -0
  84. package/@types/lib/metadataTypes/MobileKeyword.d.ts +432 -0
  85. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -0
  86. package/@types/lib/metadataTypes/MobileMessage.d.ts +931 -0
  87. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -0
  88. package/@types/lib/metadataTypes/Query.d.ts +299 -0
  89. package/@types/lib/metadataTypes/Query.d.ts.map +1 -0
  90. package/@types/lib/metadataTypes/Role.d.ts +164 -0
  91. package/@types/lib/metadataTypes/Role.d.ts.map +1 -0
  92. package/@types/lib/metadataTypes/Script.d.ts +305 -0
  93. package/@types/lib/metadataTypes/Script.d.ts.map +1 -0
  94. package/@types/lib/metadataTypes/SendClassification.d.ts +221 -0
  95. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -0
  96. package/@types/lib/metadataTypes/SenderProfile.d.ts +257 -0
  97. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -0
  98. package/@types/lib/metadataTypes/TransactionalEmail.d.ts +230 -0
  99. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -0
  100. package/@types/lib/metadataTypes/TransactionalMessage.d.ts +163 -0
  101. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -0
  102. package/@types/lib/metadataTypes/TransactionalPush.d.ts +175 -0
  103. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -0
  104. package/@types/lib/metadataTypes/TransactionalSMS.d.ts +205 -0
  105. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -0
  106. package/@types/lib/metadataTypes/TriggeredSend.d.ts +671 -0
  107. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -0
  108. package/@types/lib/metadataTypes/User.d.ts +677 -0
  109. package/@types/lib/metadataTypes/User.d.ts.map +1 -0
  110. package/@types/lib/metadataTypes/Verification.d.ts +188 -0
  111. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -0
  112. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +692 -0
  113. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts.map +1 -0
  114. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +246 -0
  115. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts.map +1 -0
  116. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +893 -0
  117. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts.map +1 -0
  118. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +616 -0
  119. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts.map +1 -0
  120. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +126 -0
  121. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts.map +1 -0
  122. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +182 -0
  123. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts.map +1 -0
  124. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +237 -0
  125. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts.map +1 -0
  126. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +121 -0
  127. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts.map +1 -0
  128. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +133 -0
  129. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts.map +1 -0
  130. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +156 -0
  131. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts.map +1 -0
  132. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +34 -0
  133. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts.map +1 -0
  134. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +80 -0
  135. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts.map +1 -0
  136. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +146 -0
  137. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts.map +1 -0
  138. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +314 -0
  139. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts.map +1 -0
  140. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +582 -0
  141. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts.map +1 -0
  142. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +867 -0
  143. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts.map +1 -0
  144. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +68 -0
  145. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts.map +1 -0
  146. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +191 -0
  147. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts.map +1 -0
  148. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +147 -0
  149. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts.map +1 -0
  150. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +174 -0
  151. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts.map +1 -0
  152. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +306 -0
  153. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts.map +1 -0
  154. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +426 -0
  155. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts.map +1 -0
  156. package/@types/lib/metadataTypes/definitions/List.definition.d.ts +118 -0
  157. package/@types/lib/metadataTypes/definitions/List.definition.d.ts.map +1 -0
  158. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +167 -0
  159. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts.map +1 -0
  160. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +276 -0
  161. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts.map +1 -0
  162. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +783 -0
  163. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts.map +1 -0
  164. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +203 -0
  165. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts.map +1 -0
  166. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +108 -0
  167. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts.map +1 -0
  168. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +153 -0
  169. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts.map +1 -0
  170. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +151 -0
  171. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts.map +1 -0
  172. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +180 -0
  173. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts.map +1 -0
  174. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +167 -0
  175. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts.map +1 -0
  176. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +99 -0
  177. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts.map +1 -0
  178. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +119 -0
  179. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts.map +1 -0
  180. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +113 -0
  181. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts.map +1 -0
  182. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +560 -0
  183. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts.map +1 -0
  184. package/@types/lib/metadataTypes/definitions/User.definition.d.ts +423 -0
  185. package/@types/lib/metadataTypes/definitions/User.definition.d.ts.map +1 -0
  186. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +129 -0
  187. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts.map +1 -0
  188. package/@types/lib/retrieveChangelog.d.ts +3 -0
  189. package/@types/lib/retrieveChangelog.d.ts.map +1 -0
  190. package/@types/lib/util/auth.d.ts +41 -0
  191. package/@types/lib/util/auth.d.ts.map +1 -0
  192. package/@types/lib/util/businessUnit.d.ts +21 -0
  193. package/@types/lib/util/businessUnit.d.ts.map +1 -0
  194. package/@types/lib/util/cache.d.ts +64 -0
  195. package/@types/lib/util/cache.d.ts.map +1 -0
  196. package/@types/lib/util/cli.d.ts +125 -0
  197. package/@types/lib/util/cli.d.ts.map +1 -0
  198. package/@types/lib/util/config.d.ts +45 -0
  199. package/@types/lib/util/config.d.ts.map +1 -0
  200. package/@types/lib/util/devops.d.ts +62 -0
  201. package/@types/lib/util/devops.d.ts.map +1 -0
  202. package/@types/lib/util/file.d.ts +20 -0
  203. package/@types/lib/util/file.d.ts.map +1 -0
  204. package/@types/lib/util/init.config.d.ts +66 -0
  205. package/@types/lib/util/init.config.d.ts.map +1 -0
  206. package/@types/lib/util/init.d.ts +72 -0
  207. package/@types/lib/util/init.d.ts.map +1 -0
  208. package/@types/lib/util/init.git.d.ts +40 -0
  209. package/@types/lib/util/init.git.d.ts.map +1 -0
  210. package/@types/lib/util/init.npm.d.ts +24 -0
  211. package/@types/lib/util/init.npm.d.ts.map +1 -0
  212. package/@types/lib/util/replaceContentBlockReference.d.ts +105 -0
  213. package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -0
  214. package/@types/lib/util/util.d.ts +322 -0
  215. package/@types/lib/util/util.d.ts.map +1 -0
  216. package/@types/types/mcdev.d.d.ts +1282 -0
  217. package/@types/types/mcdev.d.d.ts.map +1 -0
  218. package/LICENSE +1 -1
  219. package/README.md +7 -3
  220. package/boilerplate/files/.beautyamp.json +13 -0
  221. package/boilerplate/files/.prettierrc +3 -0
  222. package/boilerplate/files/.vscode/extensions.json +6 -1
  223. package/boilerplate/files/.vscode/settings.json +16 -4
  224. package/boilerplate/forcedUpdates.json +9 -0
  225. package/jsconfig.json +7 -2
  226. package/lib/Builder.js +49 -45
  227. package/lib/Deployer.js +100 -45
  228. package/lib/MetadataTypeDefinitions.js +6 -0
  229. package/lib/MetadataTypeInfo.js +4 -0
  230. package/lib/Retriever.js +36 -29
  231. package/lib/cli.js +363 -28
  232. package/lib/index.js +615 -55
  233. package/lib/metadataTypes/Asset.js +811 -159
  234. package/lib/metadataTypes/AttributeGroup.js +17 -12
  235. package/lib/metadataTypes/AttributeSet.js +20 -15
  236. package/lib/metadataTypes/Automation.js +125 -93
  237. package/lib/metadataTypes/Campaign.js +18 -6
  238. package/lib/metadataTypes/ContentArea.js +21 -18
  239. package/lib/metadataTypes/DataExtension.js +238 -131
  240. package/lib/metadataTypes/DataExtensionField.js +52 -53
  241. package/lib/metadataTypes/DataExtensionTemplate.js +17 -5
  242. package/lib/metadataTypes/DataExtract.js +62 -27
  243. package/lib/metadataTypes/DataExtractType.js +17 -5
  244. package/lib/metadataTypes/DeliveryProfile.js +47 -0
  245. package/lib/metadataTypes/Discovery.js +15 -4
  246. package/lib/metadataTypes/Email.js +22 -19
  247. package/lib/metadataTypes/EmailSend.js +179 -59
  248. package/lib/metadataTypes/Event.js +95 -60
  249. package/lib/metadataTypes/FileLocation.js +17 -5
  250. package/lib/metadataTypes/FileTransfer.js +62 -26
  251. package/lib/metadataTypes/Filter.js +16 -4
  252. package/lib/metadataTypes/Folder.js +67 -39
  253. package/lib/metadataTypes/ImportFile.js +341 -91
  254. package/lib/metadataTypes/Journey.js +681 -324
  255. package/lib/metadataTypes/List.js +26 -14
  256. package/lib/metadataTypes/MetadataType.js +501 -265
  257. package/lib/metadataTypes/MobileCode.js +17 -5
  258. package/lib/metadataTypes/MobileKeyword.js +59 -43
  259. package/lib/metadataTypes/MobileMessage.js +67 -40
  260. package/lib/metadataTypes/Query.js +46 -38
  261. package/lib/metadataTypes/Role.js +34 -23
  262. package/lib/metadataTypes/Script.js +127 -39
  263. package/lib/metadataTypes/SendClassification.js +120 -5
  264. package/lib/metadataTypes/SenderProfile.js +179 -0
  265. package/lib/metadataTypes/TransactionalEmail.js +30 -17
  266. package/lib/metadataTypes/TransactionalMessage.js +25 -11
  267. package/lib/metadataTypes/TransactionalPush.js +24 -9
  268. package/lib/metadataTypes/TransactionalSMS.js +79 -67
  269. package/lib/metadataTypes/TriggeredSend.js +191 -43
  270. package/lib/metadataTypes/User.js +90 -62
  271. package/lib/metadataTypes/Verification.js +39 -21
  272. package/lib/metadataTypes/definitions/Asset.definition.js +3 -3
  273. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +7 -1
  274. package/lib/metadataTypes/definitions/AttributeSet.definition.js +2 -2
  275. package/lib/metadataTypes/definitions/Automation.definition.js +4 -1
  276. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -1
  277. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -1
  278. package/lib/metadataTypes/definitions/DataExtension.definition.js +17 -1
  279. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -1
  280. package/lib/metadataTypes/definitions/DataExtractType.definition.js +2 -2
  281. package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +59 -0
  282. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -1
  283. package/lib/metadataTypes/definitions/Email.definition.js +1 -1
  284. package/lib/metadataTypes/definitions/EmailSend.definition.js +19 -4
  285. package/lib/metadataTypes/definitions/Event.definition.js +140 -128
  286. package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -1
  287. package/lib/metadataTypes/definitions/Filter.definition.js +1 -1
  288. package/lib/metadataTypes/definitions/Folder.definition.js +25 -2
  289. package/lib/metadataTypes/definitions/ImportFile.definition.js +52 -7
  290. package/lib/metadataTypes/definitions/Journey.definition.js +12 -0
  291. package/lib/metadataTypes/definitions/List.definition.js +1 -1
  292. package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -1
  293. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -1
  294. package/lib/metadataTypes/definitions/MobileMessage.definition.js +11 -5
  295. package/lib/metadataTypes/definitions/Query.definition.js +6 -0
  296. package/lib/metadataTypes/definitions/Script.definition.js +14 -14
  297. package/lib/metadataTypes/definitions/SendClassification.definition.js +60 -20
  298. package/lib/metadataTypes/definitions/SenderProfile.definition.js +185 -0
  299. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +2 -2
  300. package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +69 -0
  301. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +6 -0
  302. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +6 -0
  303. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +15 -4
  304. package/lib/metadataTypes/definitions/Verification.definition.js +1 -1
  305. package/lib/retrieveChangelog.js +7 -2
  306. package/lib/util/auth.js +56 -21
  307. package/lib/util/businessUnit.js +20 -2
  308. package/lib/util/cache.js +37 -18
  309. package/lib/util/cli.js +72 -29
  310. package/lib/util/config.js +27 -9
  311. package/lib/util/devops.js +45 -24
  312. package/lib/util/file.js +66 -41
  313. package/lib/util/init.config.js +55 -24
  314. package/lib/util/init.git.js +6 -6
  315. package/lib/util/init.js +36 -14
  316. package/lib/util/init.npm.js +2 -2
  317. package/lib/util/replaceContentBlockReference.js +278 -0
  318. package/lib/util/util.js +152 -54
  319. package/package.json +37 -34
  320. package/test/general.test.js +1327 -4
  321. package/test/mockRoot/.mcdevrc.json +26 -4
  322. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +3 -4
  323. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +1 -4
  324. package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.json +11 -0
  325. package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.sql +4 -0
  326. package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.html +12 -0
  327. package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.json +39 -0
  328. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +6 -6
  329. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +7 -7
  330. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +3 -4
  331. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testNew_dataExtension.dataExtension-meta.json +1 -4
  332. package/test/mockRoot/deploy/testInstance/testBU/emailSend/testExisting_emailSend.emailSend-meta.json +36 -0
  333. package/test/mockRoot/deploy/testInstance/testBU/emailSend/testNew_emailSend.emailSend-meta.json +36 -0
  334. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +10 -4
  335. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +8 -4
  336. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_Quicksend.journey-meta.json +232 -0
  337. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.json +2 -4
  338. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.json +2 -4
  339. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query.query-meta.json +1 -1
  340. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +1 -1
  341. package/test/mockRoot/deploy/testInstance/testBU/query/testNew_query.query-meta.json +1 -1
  342. package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testExisting_sendClassification.sendClassification-meta.json +8 -0
  343. package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testNew_sendClassification.sendClassification-meta.json +8 -0
  344. package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testExisting_senderProfile.senderProfile-meta.json +14 -0
  345. package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testNew_senderProfile.senderProfile-meta.json +14 -0
  346. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +1 -1
  347. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -1
  348. package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testExisting_tpush.transactionalPush-meta.json +1 -3
  349. package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testNew_tpush.transactionalPush-meta.json +1 -3
  350. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +1 -2
  351. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +1 -2
  352. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +4 -5
  353. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +4 -5
  354. package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
  355. package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
  356. package/test/resourceFactory.js +118 -7
  357. package/test/resources/1111111/automation/v1/queries/get-response.json +6 -0
  358. package/test/resources/1111111/automation/v1/queries/post-response.json +18 -0
  359. package/test/resources/1111111/dataExtension/create-expected.json +4 -7
  360. package/test/resources/1111111/dataExtension/retrieve-expected.json +2 -4
  361. package/test/resources/1111111/dataExtension/update-expected.json +7 -7
  362. package/test/resources/1111111/dataExtension/update-response.xml +3 -1
  363. package/test/resources/1111111/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  364. package/test/resources/1111111/query/patch_keySuffix-expected.json +11 -0
  365. package/test/resources/1111111/query/patch_keySuffix-expected.sql +4 -0
  366. package/test/resources/9999999/asset/block-1157-retrieve-expected.html +17 -7
  367. package/test/resources/9999999/asset/build-templatebasedemail-expected.json +81 -0
  368. package/test/resources/9999999/asset/build-templatebasedemail-html-expected.html +20 -0
  369. package/test/resources/9999999/asset/build-templatebasedemail-preheader-expected.amp +1 -0
  370. package/test/resources/9999999/asset/create-expected.json +18 -0
  371. package/test/resources/9999999/asset/resolveId-1234-notFound-expected.json +1 -0
  372. package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +8 -0
  373. package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +8 -0
  374. package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +84 -0
  375. package/test/resources/9999999/asset/retrieve-templatebasedemail-html-expected.html +20 -0
  376. package/test/resources/9999999/asset/retrieve-templatebasedemail-preheader-expected.amp +1 -0
  377. package/test/resources/9999999/asset/template-templatebasedemail-expected.json +81 -0
  378. package/test/resources/9999999/asset/template-templatebasedemail-html-expected.html +20 -0
  379. package/test/resources/9999999/asset/template-templatebasedemail-preheader-expected.amp +1 -0
  380. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-id-expected.html +33 -0
  381. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +33 -0
  382. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-name-expected.html +35 -0
  383. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +4 -0
  384. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -0
  385. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +4 -0
  386. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-id-expected.amp +4 -0
  387. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -0
  388. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-name-expected.amp +4 -0
  389. package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +1 -1
  390. package/test/resources/9999999/asset/v1/content/assets/5286/get-response.json +48 -0
  391. package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +198 -0
  392. package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +4 -3
  393. package/test/resources/9999999/asset/v1/content/assets/950143/delete-response.txt +1 -0
  394. package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +105 -0
  395. package/test/resources/9999999/asset/v1/content/assets/post-response.json +59 -0
  396. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14.json +7 -0
  397. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN193,194,15.json +7 -0
  398. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN195,196,197,198,199,200,201,202,203,210,211,212,213,3.json +46 -0
  399. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +32 -0
  400. package/test/resources/9999999/asset/v1/content/assets/query/{post-response.json → post-response-assetType.idIN207,208,209,5.json} +45 -47
  401. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN214,4.json +35 -0
  402. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN215,216,217,218,219,220,221,222,223,224,225,226,227,228.json +7 -0
  403. package/test/resources/9999999/asset/v1/content/assets/query/post-response-customerKey=mcdev-issue-1157.json +46 -0
  404. package/test/resources/9999999/attributeGroup/retrieve-expected.json +1 -1
  405. package/test/resources/9999999/attributeSet/retrieve-expected.json +3 -3
  406. package/test/resources/9999999/automation/build-expected.json +7 -7
  407. package/test/resources/9999999/automation/create-expected.json +7 -7
  408. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +6 -6
  409. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +6 -6
  410. package/test/resources/9999999/automation/retrieve-expected.json +7 -7
  411. package/test/resources/9999999/automation/template-expected.json +7 -7
  412. package/test/resources/9999999/automation/update-expected.json +6 -6
  413. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/delete-response.txt +1 -0
  414. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/delete-response.json +1 -0
  415. package/test/resources/9999999/automation/v1/imports/1ebf557b-372e-eb11-b81b-48df37d1dbd7/get-response.json +78 -0
  416. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/delete-response.txt +0 -0
  417. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/get-response.json +35 -0
  418. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +14 -10
  419. package/test/resources/9999999/automation/v1/imports/get-response.json +78 -1
  420. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +1 -1
  421. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/get-response.json +17 -0
  422. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/patch-response.json +18 -0
  423. package/test/resources/9999999/automation/v1/queries/abcde-607c-4940-afef-437965094dat/get-response.json +17 -0
  424. package/test/resources/9999999/automation/v1/queries/get-response.json +20 -3
  425. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/delete-response.txt +1 -0
  426. package/test/resources/9999999/automation/v1/scripts/get-response.json +32 -2
  427. package/test/resources/9999999/dataExtension/build-expected.json +3 -4
  428. package/test/resources/9999999/dataExtension/create-expected.json +1 -4
  429. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +4 -4
  430. package/test/resources/9999999/dataExtension/retrieve-expected.json +3 -4
  431. package/test/resources/9999999/dataExtension/retrieve-response.xml +96 -1
  432. package/test/resources/9999999/dataExtension/template-expected.json +3 -4
  433. package/test/resources/9999999/dataExtension/update-expected.json +4 -3
  434. package/test/resources/9999999/dataExtension/update-response.xml +5 -3
  435. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +72 -0
  436. package/test/resources/9999999/dataFolder/retrieve-ContentType=userinitiatedsends-response.xml +48 -0
  437. package/test/resources/9999999/deliveryProfile/get-expected.json +7 -0
  438. package/test/resources/9999999/emailSend/build-expected.json +43 -0
  439. package/test/resources/9999999/emailSend/get-expected.json +43 -0
  440. package/test/resources/9999999/emailSend/patch-expected.json +41 -0
  441. package/test/resources/9999999/emailSend/post-expected.json +41 -0
  442. package/test/resources/9999999/emailSend/template-expected.json +43 -0
  443. package/test/resources/9999999/emailSendDefinition/create-response.xml +98 -0
  444. package/test/resources/9999999/emailSendDefinition/delete-response.xml +36 -0
  445. package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +18 -8
  446. package/test/resources/9999999/emailSendDefinition/update-response.xml +97 -0
  447. package/test/resources/9999999/importDefinition/retrieve-CustomerKey=testExisting_importFile-response.xml +30 -0
  448. package/test/resources/9999999/importDefinition/retrieve-Name=testExisting_importFile-response.xml +30 -0
  449. package/test/resources/9999999/importFile/build-expected.json +11 -6
  450. package/test/resources/9999999/importFile/get-expected.json +13 -7
  451. package/test/resources/9999999/importFile/get-sms-expected.json +79 -0
  452. package/test/resources/9999999/importFile/patch-expected.json +12 -7
  453. package/test/resources/9999999/importFile/post-expected.json +8 -5
  454. package/test/resources/9999999/importFile/template-expected.json +10 -5
  455. package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +124 -0
  456. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/delete-response.txt +1 -0
  457. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +253 -0
  458. package/test/resources/9999999/interaction/v1/interactions/get-response.json +83 -779
  459. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response.json +457 -0
  460. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +253 -0
  461. package/test/resources/9999999/interaction/v1/interactions/{key_0b76dccf-594c-b6dc-1acf-10c4493dcb84 → key_testExisting_temail}/get-response.json +5 -5
  462. package/test/resources/9999999/journey/build-expected.json +105 -449
  463. package/test/resources/9999999/journey/get-multistep-expected.json +413 -0
  464. package/test/resources/9999999/journey/get-quicksend-expected.json +232 -0
  465. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +232 -0
  466. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +232 -0
  467. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +232 -0
  468. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +211 -0
  469. package/test/resources/9999999/journey/template-expected.json +105 -449
  470. package/test/resources/9999999/legacy/v1/beta/messaging/deliverypolicy/get-response.json +15 -0
  471. package/test/resources/9999999/legacy/v1/beta/mobile/imports/get-response.json +112 -0
  472. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +1 -1
  473. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTQ3Ojc4OjA/get-response.json +1 -1
  474. package/test/resources/9999999/legacy/v1/beta/mobile/message/get-response.json +1 -1
  475. package/test/resources/9999999/legacy/v1/beta/object/NWQwdnhEU3dFZWVBekJRQzdISWl0QTo0NTow/get-response.json +12 -0
  476. package/test/resources/9999999/list/retrieve-response.xml +13 -0
  477. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +1 -1
  478. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +1 -1
  479. package/test/resources/9999999/messaging/v1/sms/definitions/post-response.json +3 -1
  480. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/get-response.json +3 -1
  481. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/patch-response.json +3 -1
  482. package/test/resources/9999999/mobileKeyword/build-expected.amp +5 -1
  483. package/test/resources/9999999/mobileKeyword/get-expected.amp +5 -1
  484. package/test/resources/9999999/mobileKeyword/post-create-expected.amp +1 -1
  485. package/test/resources/9999999/mobileKeyword/template-expected.amp +5 -1
  486. package/test/resources/9999999/mobileMessage/build-expected.amp +6 -1
  487. package/test/resources/9999999/mobileMessage/build-expected.json +2 -5
  488. package/test/resources/9999999/mobileMessage/get-expected.amp +6 -1
  489. package/test/resources/9999999/mobileMessage/get-expected.json +2 -5
  490. package/test/resources/9999999/mobileMessage/post-create-expected.amp +1 -1
  491. package/test/resources/9999999/mobileMessage/post-create-expected.json +2 -4
  492. package/test/resources/9999999/mobileMessage/post-update-expected.amp +1 -1
  493. package/test/resources/9999999/mobileMessage/post-update-expected.json +2 -5
  494. package/test/resources/9999999/mobileMessage/template-expected.amp +6 -1
  495. package/test/resources/9999999/mobileMessage/template-expected.json +2 -5
  496. package/test/resources/9999999/query/build-expected.json +1 -1
  497. package/test/resources/9999999/query/build-expected.sql +2 -1
  498. package/test/resources/9999999/query/get-expected.json +1 -1
  499. package/test/resources/9999999/query/get-expected.sql +2 -1
  500. package/test/resources/9999999/query/get2-expected.json +1 -1
  501. package/test/resources/9999999/query/patch-expected.json +1 -1
  502. package/test/resources/9999999/query/patch_fixKeys-expected.json +1 -1
  503. package/test/resources/9999999/query/patch_fixKeysSuffix-expected.json +11 -0
  504. package/test/resources/9999999/query/patch_fixKeysSuffix-expected.sql +6 -0
  505. package/test/resources/9999999/query/post-expected.json +1 -1
  506. package/test/resources/9999999/query/template-expected.json +1 -1
  507. package/test/resources/9999999/query/template-expected.sql +2 -1
  508. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query2ANDStatus=Active-response.xml +30 -0
  509. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysSuffixANDStatus=Active-response.xml +30 -0
  510. package/test/resources/9999999/script/get_ampincluded-expected.html +5 -0
  511. package/test/resources/9999999/script/get_ampincluded-expected.json +8 -0
  512. package/test/resources/9999999/script/get_ampincluded-rcb-id-expected.html +5 -0
  513. package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +5 -0
  514. package/test/resources/9999999/script/get_ampincluded-rcb-name-expected.html +5 -0
  515. package/test/resources/9999999/script/get_ampscript-expected.html +10 -0
  516. package/test/resources/9999999/script/get_ampscript-expected.json +8 -0
  517. package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +8 -0
  518. package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +8 -0
  519. package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +10 -0
  520. package/test/resources/9999999/script/get_mixed-expected.html +12 -0
  521. package/test/resources/9999999/script/get_mixed-expected.json +8 -0
  522. package/test/resources/9999999/script/get_mixed-rcb-id-expected.html +12 -0
  523. package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +12 -0
  524. package/test/resources/9999999/script/get_mixed-rcb-name-expected.html +14 -0
  525. package/test/resources/9999999/sendClassification/build-expected.json +8 -0
  526. package/test/resources/9999999/sendClassification/create-response.xml +51 -0
  527. package/test/resources/9999999/sendClassification/delete-response.xml +36 -0
  528. package/test/resources/9999999/sendClassification/get-expected.json +10 -0
  529. package/test/resources/9999999/sendClassification/patch-expected.json +8 -0
  530. package/test/resources/9999999/sendClassification/post-expected.json +8 -0
  531. package/test/resources/9999999/sendClassification/retrieve-response.xml +86 -0
  532. package/test/resources/9999999/sendClassification/template-expected.json +8 -0
  533. package/test/resources/9999999/sendClassification/update-response.xml +49 -0
  534. package/test/resources/9999999/senderProfile/build-expected.json +14 -0
  535. package/test/resources/9999999/senderProfile/create-response.xml +49 -0
  536. package/test/resources/9999999/senderProfile/delete-response.xml +36 -0
  537. package/test/resources/9999999/senderProfile/get-expected.json +16 -0
  538. package/test/resources/9999999/senderProfile/get-rcb-id-expected.json +16 -0
  539. package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +16 -0
  540. package/test/resources/9999999/senderProfile/get-rcb-name-expected.json +16 -0
  541. package/test/resources/9999999/senderProfile/patch-expected.json +14 -0
  542. package/test/resources/9999999/senderProfile/post-expected.json +14 -0
  543. package/test/resources/9999999/senderProfile/retrieve-CustomerKey=Default-response.xml +44 -0
  544. package/test/resources/9999999/senderProfile/retrieve-CustomerKey=wrong-key-response.xml +26 -0
  545. package/test/resources/9999999/senderProfile/retrieve-response.xml +80 -0
  546. package/test/resources/9999999/senderProfile/template-expected.json +14 -0
  547. package/test/resources/9999999/senderProfile/update-response.xml +47 -0
  548. package/test/resources/9999999/transactionalEmail/build-expected.json +3 -3
  549. package/test/resources/9999999/transactionalEmail/get-expected.json +3 -3
  550. package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -3
  551. package/test/resources/9999999/transactionalEmail/post-expected.json +2 -2
  552. package/test/resources/9999999/transactionalEmail/template-expected.json +3 -3
  553. package/test/resources/9999999/transactionalPush/build-expected.json +1 -1
  554. package/test/resources/9999999/transactionalPush/get-expected.json +1 -1
  555. package/test/resources/9999999/transactionalPush/patch-expected.json +1 -3
  556. package/test/resources/9999999/transactionalPush/post-expected.json +1 -3
  557. package/test/resources/9999999/transactionalPush/template-expected.json +1 -1
  558. package/test/resources/9999999/transactionalSMS/build-expected.amp +105 -1
  559. package/test/resources/9999999/transactionalSMS/build-expected.json +1 -2
  560. package/test/resources/9999999/transactionalSMS/get-expected.amp +105 -1
  561. package/test/resources/9999999/transactionalSMS/get-expected.json +1 -2
  562. package/test/resources/9999999/transactionalSMS/patch-expected.amp +99 -1
  563. package/test/resources/9999999/transactionalSMS/patch-expected.json +1 -2
  564. package/test/resources/9999999/transactionalSMS/post-expected.amp +99 -1
  565. package/test/resources/9999999/transactionalSMS/post-expected.json +1 -2
  566. package/test/resources/9999999/transactionalSMS/template-expected.amp +105 -1
  567. package/test/resources/9999999/transactionalSMS/template-expected.json +1 -2
  568. package/test/resources/9999999/triggeredSend/build-expected.json +5 -6
  569. package/test/resources/9999999/triggeredSend/get-expected.json +5 -6
  570. package/test/resources/9999999/triggeredSend/get-rcb-id-expected.json +29 -0
  571. package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +29 -0
  572. package/test/resources/9999999/triggeredSend/get-rcb-name-expected.json +29 -0
  573. package/test/resources/9999999/triggeredSend/patch-expected.json +5 -6
  574. package/test/resources/9999999/triggeredSend/post-expected.json +5 -6
  575. package/test/resources/9999999/triggeredSend/template-expected.json +5 -6
  576. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +6 -1
  577. package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +53 -1
  578. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +6 -1
  579. package/test/resources/9999999/verification/build-expected.json +1 -1
  580. package/test/resources/9999999/verification/get-expected.json +1 -1
  581. package/test/resources/9999999/verification/patch-expected.json +1 -1
  582. package/test/resources/9999999/verification/post-expected.json +1 -1
  583. package/test/resources/9999999/verification/template-expected.json +1 -1
  584. package/test/type.asset.test.js +733 -17
  585. package/test/type.attributeGroup.test.js +6 -2
  586. package/test/type.attributeSet.test.js +6 -2
  587. package/test/type.automation.test.js +174 -162
  588. package/test/type.dataExtension.test.js +41 -45
  589. package/test/type.dataExtract.test.js +22 -29
  590. package/test/type.deliveryProfile.test.js +45 -0
  591. package/test/type.emailSend.test.js +144 -0
  592. package/test/type.event.test.js +62 -0
  593. package/test/type.fileTransfer.test.js +21 -29
  594. package/test/type.importFile.test.js +61 -35
  595. package/test/type.journey.test.js +251 -45
  596. package/test/type.mobileKeyword.test.js +46 -54
  597. package/test/type.mobileMessage.test.js +28 -27
  598. package/test/type.query.test.js +303 -124
  599. package/test/type.script.test.js +332 -73
  600. package/test/type.sendClassification.test.js +156 -0
  601. package/test/type.senderProfile.test.js +254 -0
  602. package/test/type.transactionalEmail.test.js +15 -11
  603. package/test/type.transactionalPush.test.js +15 -11
  604. package/test/type.transactionalSMS.test.js +30 -23
  605. package/test/type.triggeredSend.test.js +130 -17
  606. package/test/type.user.test.js +22 -14
  607. package/test/type.verification.test.js +13 -10
  608. package/test/utils.js +79 -21
  609. package/tsconfig.json +21 -0
  610. package/types/mcdev.d.js +190 -66
  611. package/docs/dist/documentation.md +0 -8890
  612. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_interaction.interaction-meta.json +0 -576
  613. package/test/mockRoot/deploy/testInstance/testBU/journey/testNew_interaction.interaction-meta.json +0 -266
  614. package/test/resources/9999999/interaction/v1/EventDefinitions/get-response.json +0 -43
  615. package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +0 -1
  616. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +0 -592
  617. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/put-response.json +0 -592
  618. package/test/resources/9999999/interaction/v1/interactions/post-response.json +0 -280
  619. package/test/resources/9999999/journey/get-expected.json +0 -576
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcdev.d.d.ts","sourceRoot":"","sources":["../../types/mcdev.d.js"],"names":[],"mappings":"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"}
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2023 Accenture
3
+ Copyright (c) 2020-2024 Accenture
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -19,6 +19,10 @@ Run the following to install Accenture SFMC DevTools on your computer:
19
19
  npm install -g mcdev
20
20
  ```
21
21
 
22
+ ### VSCode Extension
23
+
24
+ We also provide a [VSCode extension](https://marketplace.visualstudio.com/items?itemName=Accenture-oss.sfmc-devtools-vscode) that integrates SFMC DevTools into your IDE. You can install it from the [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=Accenture-oss.sfmc-devtools-vscode).
25
+
22
26
  ### Include in your package
23
27
 
24
28
  First, install it as dependency:
@@ -27,10 +31,10 @@ First, install it as dependency:
27
31
  npm install mcdev --save
28
32
  ```
29
33
 
30
- You can then include it in your code with:
34
+ You can then include it in your code with JavaScript/ES module imports:
31
35
 
32
36
  ```javascript
33
- const mcdev = require('mcdev');
37
+ import mcdev from 'mcdev';
34
38
  ```
35
39
 
36
40
  That will load `node_packages/mcdev/lib/index.js`. It can make sense to directly include other files if you have a special scenario. We've done that in our example for [retrieveChangelog.js](https://github.com/Accenture/sfmc-devtools/blob/main/lib/retrieveChangelog.js) or in more detail, in our child-project [sfmc-devtools-copado](https://github.com/Accenture/sfmc-devtools-copado) to get full control over certain aspects.
@@ -69,4 +73,4 @@ The people that lead this project:
69
73
 
70
74
  ## Copyright
71
75
 
72
- Copyright (c) 2020-2023 Accenture. [MIT licensed](https://github.com/Accenture/sfmc-devtools/blob/main/LICENSE).
76
+ Copyright (c) 2020-2024 Accenture. [MIT licensed](https://github.com/Accenture/sfmc-devtools/blob/main/LICENSE).
@@ -0,0 +1,13 @@
1
+ {
2
+ "ampscript": {
3
+ "capitalizeAndOrNot": true,
4
+ "capitalizeIfFor": true,
5
+ "capitalizeSet": true,
6
+ "capitalizeVar": true,
7
+ "maxParametersPerLine": 4
8
+ },
9
+ "editor": {
10
+ "insertSpaces": true,
11
+ "tabSize": 4
12
+ }
13
+ }
@@ -17,6 +17,9 @@
17
17
  "options": {
18
18
  "formatter": "sql-formatter",
19
19
  "language": "tsql",
20
+ "identifierCase": "preserve",
21
+ "dataTypeCase": "preserve",
22
+ "functionCase": "upper",
20
23
  "keywordCase": "upper"
21
24
  }
22
25
  }
@@ -5,7 +5,6 @@
5
5
  // List of extensions which should be recommended for users of this workspace.
6
6
  "recommendations": [
7
7
  // collaboration
8
- "gruntfuggly.todo-tree",
9
8
  "aaron-bond.better-comments",
10
9
 
11
10
  // Linters
@@ -17,6 +16,12 @@
17
16
  "xnerd.ampscript-language",
18
17
  "FiB.beautyAmp",
19
18
 
19
+ // coding helper
20
+ "MarketingThibs.ampscriptsnippets",
21
+
22
+ // file icons for ampscript
23
+ "vscode-icons-team.vscode-icons",
24
+
20
25
  // Markdown / Readme.md
21
26
  "joernberkefeld.markdown-preview-bitbucket-innersource"
22
27
  ]
@@ -32,11 +32,12 @@
32
32
  "*.txt": "${capture}.asset-textfile-meta.json"
33
33
  },
34
34
  "editor.codeActionsOnSave": {
35
- "source.fixAll.eslint": true
35
+ "source.fixAll.eslint": "explicit"
36
36
  },
37
37
  "editor.formatOnSave": true,
38
38
  "files.associations": {
39
- "*.ssjs": "javascript"
39
+ "*.ssjs": "javascript",
40
+ "*.html": "ampscript"
40
41
  },
41
42
  "files.eol": "\n",
42
43
  "files.exclude": {
@@ -47,7 +48,7 @@
47
48
  "editor.defaultFormatter": "esbenp.prettier-vscode"
48
49
  },
49
50
  "[html]": {
50
- "editor.defaultFormatter": "esbenp.prettier-vscode"
51
+ "editor.defaultFormatter": "FiB.beautyAmp"
51
52
  },
52
53
  "[javascript]": {
53
54
  "editor.defaultFormatter": "esbenp.prettier-vscode"
@@ -63,5 +64,16 @@
63
64
  },
64
65
  "[AMPscript]": {
65
66
  "editor.defaultFormatter": "FiB.beautyAmp"
66
- }
67
+ },
68
+ "vsicons.associations.files": [
69
+ {
70
+ "icon": "apex",
71
+ "languages": [
72
+ { "ids": "ampscript", "defaultExtension": "amp" },
73
+ { "ids": "AMPscript", "defaultExtension": "amp" }
74
+ ],
75
+ "light": true,
76
+ "format": "FileFormat.svg"
77
+ }
78
+ ]
67
79
  }
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "version": "7.0.0",
4
+ "files": [
5
+ ".vscode/extensions.json",
6
+ ".vscode/settings.json",
7
+ ".beautyamp.json",
8
+ ".prettierrc"
9
+ ]
10
+ },
2
11
  {
3
12
  "version": "5.0.0",
4
13
  "files": [".vscode/settings.json", ".prettierrc"]
package/jsconfig.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "include": ["lib/**/*.js", "types/**/*.js", "test/**/*.js"],
3
+ "exclude": ["node_modules"],
3
4
  "compilerOptions": {
4
- "module": "es6",
5
- "target": "esnext"
5
+ "module": "NodeNext",
6
+ "moduleResolution": "nodenext",
7
+ "target": "es2022",
8
+ "checkJs": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true
6
11
  }
7
12
  }
package/lib/Builder.js CHANGED
@@ -1,13 +1,26 @@
1
1
  'use strict';
2
2
 
3
- import TYPE from '../types/mcdev.d.js';
4
3
  import { Util } from './util/util.js';
5
4
  import File from './util/file.js';
6
5
  import config from './util/config.js';
7
6
  import Cli from './util/cli.js';
8
7
  import auth from './util/auth.js';
9
8
  import MetadataTypeInfo from './MetadataTypeInfo.js';
10
- // @ts-ignore
9
+
10
+ /**
11
+ * @typedef {import('../types/mcdev.d.js').BuObject} BuObject
12
+ * @typedef {import('../types/mcdev.d.js').CodeExtract} CodeExtract
13
+ * @typedef {import('../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
14
+ * @typedef {import('../types/mcdev.d.js').Mcdevrc} Mcdevrc
15
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
16
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
17
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
18
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
19
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
20
+ * @typedef {import('../types/mcdev.d.js').MultiMetadataTypeList} MultiMetadataTypeList
21
+ * @typedef {import('../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
22
+ * @typedef {import('../types/mcdev.d.js').TemplateMap} TemplateMap
23
+ */
11
24
 
12
25
  /**
13
26
  * Builds metadata from a template using market specific customisation
@@ -16,9 +29,9 @@ class Builder {
16
29
  /**
17
30
  * Creates a Builder, uses v2 auth if v2AuthOptions are passed.
18
31
  *
19
- * @param {TYPE.Mcdevrc} properties properties for auth
32
+ * @param {Mcdevrc} properties properties for auth
20
33
  saved
21
- * @param {TYPE.BuObject} buObject properties for auth
34
+ * @param {BuObject} buObject properties for auth
22
35
  */
23
36
  constructor(properties, buObject) {
24
37
  this.properties = properties;
@@ -40,7 +53,7 @@ saved
40
53
  );
41
54
 
42
55
  /**
43
- * @type {TYPE.MultiMetadataTypeList}
56
+ * @type {MultiMetadataTypeList}
44
57
  */
45
58
  this.metadata = {};
46
59
  }
@@ -49,23 +62,11 @@ saved
49
62
  * Builds a specific metadata file by name
50
63
  *
51
64
  * @param {string} metadataType metadata type to build
52
- * @param {string} name name of metadata to build
53
- * @param {TYPE.TemplateMap} templateVariables variables to be replaced in the metadata
54
- * @returns {Promise.<TYPE.MultiMetadataTypeList>} Promise
65
+ * @param {string[]} nameArr name of metadata to build
66
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
67
+ * @returns {Promise.<MultiMetadataTypeList>} Promise
55
68
  */
56
- async _buildDefinition(metadataType, name, templateVariables) {
57
- let nameArr;
58
- /* eslint-disable unicorn/prefer-ternary */
59
- if (name.includes(',')) {
60
- nameArr = name.split(',').map((item) =>
61
- // allow whitespace in comma-separated lists
62
- item.trim()
63
- );
64
- } else {
65
- nameArr = [name.trim()];
66
- }
67
- /* eslint-enable unicorn/prefer-ternary */
68
-
69
+ async _buildDefinition(metadataType, nameArr, templateVariables) {
69
70
  const type = metadataType;
70
71
  try {
71
72
  const result = await Promise.all(
@@ -85,11 +86,9 @@ saved
85
86
  );
86
87
  })
87
88
  );
88
- if (result) {
89
- this.metadata[result[0].type] = [];
90
- for (const element of result) {
91
- this.metadata[result[0].type].push(element.metadata);
92
- }
89
+ if (result && type === result[0]?.type) {
90
+ // result elements can be undefined for each key that we did not find
91
+ this.metadata[type] = result.filter(Boolean).map((element) => element.metadata);
93
92
  }
94
93
  } catch (ex) {
95
94
  Util.logger.errorStack(ex, 'mcdev.buildDefinition');
@@ -103,7 +102,7 @@ saved
103
102
  * @param {string} selectedType supported metadata type
104
103
  * @param {string[]} keyArr customerkey of the metadata
105
104
  * @param {string} market market localizations
106
- * @returns {Promise.<TYPE.MultiMetadataTypeList>} -
105
+ * @returns {Promise.<MultiMetadataTypeList>} -
107
106
  */
108
107
  static async buildTemplate(businessUnit, selectedType, keyArr, market) {
109
108
  const properties = await config.getProperties();
@@ -132,20 +131,19 @@ saved
132
131
  *
133
132
  * @param {string} metadataType metadata type to create a template of
134
133
  * @param {string[]} keyArr customerkey of metadata to create a template of
135
- * @param {TYPE.TemplateMap} templateVariables variables to be replaced in the metadata
136
- * @returns {Promise.<TYPE.MultiMetadataTypeList>} Promise
134
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
135
+ * @returns {Promise.<MultiMetadataTypeList>} Promise
137
136
  */
138
137
  async _buildTemplate(metadataType, keyArr, templateVariables) {
139
138
  const type = metadataType;
140
139
  try {
141
- /** @type {TYPE.MetadataTypeItemObj[]} */
140
+ /** @type {MetadataTypeItemObj[]} */
142
141
  const result = await Promise.all(
143
142
  keyArr.map((key) => {
144
- MetadataTypeInfo[type].client = this.client;
145
143
  MetadataTypeInfo[type].properties = this.properties;
146
144
  MetadataTypeInfo[type].buObject = this.buObject;
147
145
 
148
- /** @type {TYPE.MetadataTypeItemObj} */
146
+ /** @type {MetadataTypeItemObj} */
149
147
  return MetadataTypeInfo[type].buildTemplate(
150
148
  this.retrieveDir,
151
149
  this.templateDir,
@@ -154,8 +152,9 @@ saved
154
152
  );
155
153
  })
156
154
  );
157
- if (result) {
158
- this.metadata[result[0].type] = result.map((element) => element.metadata);
155
+ if (result && type === result[0]?.type) {
156
+ // result elements can be undefined for each key that we did not find
157
+ this.metadata[type] = result.filter(Boolean).map((element) => element.metadata);
159
158
  }
160
159
  } catch (ex) {
161
160
  Util.logger.errorStack(ex, 'mcdev.buildTemplate');
@@ -167,11 +166,11 @@ saved
167
166
  *
168
167
  * @param {string} businessUnit references credentials from properties.json
169
168
  * @param {string} selectedType supported metadata type
170
- * @param {string} name name of the metadata
169
+ * @param {string[]} nameArr name of the metadata
171
170
  * @param {string} market market localizations
172
- * @returns {Promise.<TYPE.MultiMetadataTypeList>} -
171
+ * @returns {Promise.<MultiMetadataTypeList>} -
173
172
  */
174
- static async buildDefinition(businessUnit, selectedType, name, market) {
173
+ static async buildDefinition(businessUnit, selectedType, nameArr, market) {
175
174
  const properties = await config.getProperties();
176
175
  if (!(await config.checkProperties(properties))) {
177
176
  return null;
@@ -189,7 +188,7 @@ saved
189
188
  if (buObject !== null) {
190
189
  const builder = new Builder(properties, buObject);
191
190
  if (Util.checkMarket(market, properties)) {
192
- return builder._buildDefinition(selectedType, name, properties.markets[market]);
191
+ return builder._buildDefinition(selectedType, nameArr, properties.markets[market]);
193
192
  }
194
193
  }
195
194
  }
@@ -198,10 +197,10 @@ saved
198
197
  *
199
198
  * @param {string} listName name of list of BU-market combos
200
199
  * @param {string} type supported metadata type
201
- * @param {string} name name of the metadata
202
- * @returns {Promise.<TYPE.MultiMetadataTypeList[]>} -
200
+ * @param {string[]} nameArr name of the metadata
201
+ * @returns {Promise.<object>} -
203
202
  */
204
- static async buildDefinitionBulk(listName, type, name) {
203
+ static async buildDefinitionBulk(listName, type, nameArr) {
205
204
  const properties = await config.getProperties();
206
205
  if (!(await config.checkProperties(properties))) {
207
206
  return null;
@@ -217,8 +216,8 @@ saved
217
216
  return;
218
217
  }
219
218
  let i = 0;
220
- const bdPromises = [];
221
219
 
220
+ const responseObj = {};
222
221
  for (const businessUnit in properties.marketList[listName]) {
223
222
  if (businessUnit === 'description') {
224
223
  // skip, it's just a metadata on this list and not a BU
@@ -236,16 +235,21 @@ saved
236
235
  if (Util.checkMarket(market, properties)) {
237
236
  Util.logger.info(`Executing for '${businessUnit}': '${market}'`);
238
237
  // omitting "await" to speed up creation
239
- bdPromises.push(this.buildDefinition(businessUnit, type, name, market));
238
+ responseObj[businessUnit] ||= {};
239
+ responseObj[businessUnit][market] = await this.buildDefinition(
240
+ businessUnit,
241
+ type,
242
+ nameArr,
243
+ market
244
+ );
240
245
  }
241
246
  }
242
247
  }
243
- const response = await Promise.all(bdPromises);
244
248
 
245
249
  if (!i) {
246
250
  Util.logger.error('Please define properties.marketList in your config');
247
251
  }
248
- return response;
252
+ return responseObj;
249
253
  }
250
254
  }
251
255
 
package/lib/Deployer.js CHANGED
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- import TYPE from '../types/mcdev.d.js';
4
3
  import MetadataTypeInfo from './MetadataTypeInfo.js';
5
4
  import path from 'node:path';
6
5
  import Cli from './util/cli.js';
@@ -10,6 +9,23 @@ import config from './util/config.js';
10
9
  import cache from './util/cache.js';
11
10
  import auth from './util/auth.js';
12
11
 
12
+ /**
13
+ * @typedef {import('../types/mcdev.d.js').BuObject} BuObject
14
+ * @typedef {import('../types/mcdev.d.js').CodeExtract} CodeExtract
15
+ * @typedef {import('../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
16
+ * @typedef {import('../types/mcdev.d.js').Mcdevrc} Mcdevrc
17
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
18
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
19
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
20
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
21
+ * @typedef {import('../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
22
+ * @typedef {import('../types/mcdev.d.js').MultiMetadataTypeList} MultiMetadataTypeList
23
+ * @typedef {import('../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
24
+ * @typedef {import('../types/mcdev.d.js').TemplateMap} TemplateMap
25
+ * @typedef {import('../types/mcdev.d.js').MultiMetadataTypeMap} MultiMetadataTypeMap
26
+ * @typedef {import('../types/mcdev.d.js').TypeKeyCombo} TypeKeyCombo
27
+ */
28
+
13
29
  /**
14
30
  * Reads metadata from local directory and deploys it to specified target business unit.
15
31
  * Source and target business units are also compared before the deployment to apply metadata specific patches.
@@ -18,8 +34,8 @@ class Deployer {
18
34
  /**
19
35
  * Creates a Deployer, uses v2 auth if v2AuthOptions are passed.
20
36
  *
21
- * @param {TYPE.Mcdevrc} properties General configuration to be used in retrieve
22
- * @param {TYPE.BuObject} buObject properties for auth
37
+ * @param {Mcdevrc} properties General configuration to be used in retrieve
38
+ * @param {BuObject} buObject properties for auth
23
39
  */
24
40
  constructor(properties, buObject) {
25
41
  this.buObject = buObject;
@@ -42,12 +58,13 @@ class Deployer {
42
58
  * Deploys all metadata located in the 'deploy' directory to the specified business unit
43
59
  *
44
60
  * @param {string} businessUnit references credentials from properties.json
45
- * @param {TYPE.SupportedMetadataTypes[]} [selectedTypesArr] limit deployment to given metadata type
61
+ * @param {string[] | TypeKeyCombo} [selectedTypesArr] limit deployment to given metadata type
46
62
  * @param {string[]} [keyArr] limit deployment to given metadata keys
47
- * @returns {Promise.<Object.<string,TYPE.MultiMetadataTypeMap>>} deployed metadata per BU (first key: bu name, second key: metadata type)
63
+ * @returns {Promise.<Object.<string, MultiMetadataTypeMap>>} deployed metadata per BU (first key: bu name, second key: metadata type)
48
64
  */
49
65
  static async deploy(businessUnit, selectedTypesArr, keyArr) {
50
66
  Util.logger.info('mcdev:: Deploy');
67
+ /** @type {Object.<string, MultiMetadataTypeMap>} */
51
68
  const buMultiMetadataTypeMap = {};
52
69
  const properties = await config.getProperties();
53
70
  if (!(await config.checkProperties(properties))) {
@@ -57,25 +74,45 @@ class Deployer {
57
74
  if (Util.OPTIONS.fromRetrieve) {
58
75
  properties.directories.deploy = properties.directories.retrieve;
59
76
  }
60
- if (Array.isArray(selectedTypesArr)) {
61
- // types and keys can be provided but for each type all provided keys are applied as filter
62
- for (const selectedType of selectedTypesArr) {
77
+ if (selectedTypesArr) {
78
+ for (const selectedType of Array.isArray(selectedTypesArr)
79
+ ? selectedTypesArr
80
+ : Object.keys(selectedTypesArr)) {
63
81
  if (!Util._isValidType(selectedType)) {
64
82
  return;
65
83
  }
66
84
  }
67
85
  }
68
- if (
69
- Util.OPTIONS.fromRetrieve &&
70
- (!selectedTypesArr ||
71
- !Array.isArray(selectedTypesArr) ||
72
- !selectedTypesArr.length ||
73
- !keyArr ||
74
- !Array.isArray(keyArr) ||
75
- !keyArr.length)
76
- ) {
77
- Util.logger.error('type & key need to be defined to deploy from retrieve folder');
78
- return;
86
+ if (Util.OPTIONS.fromRetrieve) {
87
+ // check if either type & key or typeKeyCombo including keys was supplied
88
+ // we dont want to allow deploying without key from the retrieve dir for safety reasons
89
+ let keysFound = false;
90
+ if (
91
+ Array.isArray(selectedTypesArr) &&
92
+ selectedTypesArr.length &&
93
+ Array.isArray(keyArr) &&
94
+ keyArr.length
95
+ ) {
96
+ // check legacy way of passing in type(s) and key(s)
97
+ keysFound = true;
98
+ } else if (
99
+ selectedTypesArr &&
100
+ !Array.isArray(selectedTypesArr) &&
101
+ Object.values(selectedTypesArr).length
102
+ ) {
103
+ // TypeKeyCombo - a single null value (== no keys for one type) should lead to the error
104
+ keysFound = true;
105
+ for (const keys of Object.values(selectedTypesArr)) {
106
+ if (keys === null) {
107
+ keysFound = false;
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ if (!keysFound) {
113
+ Util.logger.error('type & key need to be defined to deploy from retrieve folder');
114
+ return;
115
+ }
79
116
  }
80
117
  let counter_credBu = 0;
81
118
  if (businessUnit === '*') {
@@ -184,10 +221,10 @@ class Deployer {
184
221
  *
185
222
  * @param {string} cred name of Credential
186
223
  * @param {string} bu name of BU
187
- * @param {TYPE.Mcdevrc} properties General configuration to be used in retrieve
188
- * @param {TYPE.SupportedMetadataTypes[]} [typeArr] limit deployment to given metadata type
224
+ * @param {Mcdevrc} properties General configuration to be used in retrieve
225
+ * @param {string[] | TypeKeyCombo} [typeArr] limit deployment to given metadata type
189
226
  * @param {string[]} [keyArr] limit deployment to given metadata keys
190
- * @returns {Promise.<TYPE.MultiMetadataTypeMap>} ensure that BUs are worked on sequentially
227
+ * @returns {Promise.<MultiMetadataTypeMap>} ensure that BUs are worked on sequentially
191
228
  */
192
229
  static async _deployBU(cred, bu, properties, typeArr, keyArr) {
193
230
  const buPath = `${cred}/${bu}`;
@@ -211,20 +248,32 @@ class Deployer {
211
248
  /**
212
249
  * Deploy all metadata that is located in the deployDir
213
250
  *
214
- * @param {TYPE.SupportedMetadataTypes[]} [typeArr] limit deployment to given metadata type (can include subtype)
251
+ * @param {string[] | TypeKeyCombo} [types] limit deployment to given metadata type (can include subtype)
215
252
  * @param {string[]} [keyArr] limit deployment to given metadata keys
216
- * @returns {Promise.<TYPE.MultiMetadataTypeMap>} Promise of all deployed metadata
253
+ * @returns {Promise.<MultiMetadataTypeMap>} Promise of all deployed metadata
217
254
  */
218
- async _deploy(typeArr, keyArr) {
255
+ async _deploy(types, keyArr) {
256
+ const typeArr = !types || Array.isArray(types) ? types : Object.keys(types);
257
+ const typeKeyCombo = Array.isArray(types)
258
+ ? Util.createTypeKeyCombo(typeArr, keyArr, true)
259
+ : types;
219
260
  if (await File.pathExists(this.deployDir)) {
220
- /** @type {TYPE.MultiMetadataTypeMap} */
221
- this.metadata = Deployer.readBUMetadata(this.deployDir, typeArr);
222
-
261
+ /** @type {MultiMetadataTypeMap} */
262
+ this.metadata = await Deployer.readBUMetadata(this.deployDir, typeArr);
223
263
  // filter found metadata by key if given
224
- if (typeArr && Array.isArray(keyArr)) {
264
+ if (typeArr && Array.isArray(typeArr)) {
225
265
  for (const selectedType of typeArr) {
226
266
  const type = selectedType.split('-')[0];
227
- this.metadata[type] = Util.filterObjByKeys(this.metadata[type], keyArr);
267
+ this.metadata[type] = Util.filterObjByKeys(
268
+ this.metadata[type],
269
+ typeKeyCombo[selectedType]
270
+ );
271
+ if (!Object.keys(this.metadata[type]).length) {
272
+ Util.logger.warn(
273
+ `No deployable metadata found for type ${type} for selected keys`
274
+ );
275
+ delete this.metadata[type];
276
+ }
228
277
  }
229
278
  }
230
279
  } else {
@@ -282,7 +331,7 @@ class Deployer {
282
331
  const result = await MetadataTypeInfo[type].retrieveForCache(null, subTypeArr);
283
332
  cache.setMetadata(type, result.metadata);
284
333
  }
285
- /** @type {TYPE.MultiMetadataTypeMap} */
334
+ /** @type {MultiMetadataTypeMap} */
286
335
  const multiMetadataTypeMap = {};
287
336
  // deploy metadata files, extending cache once deploys
288
337
  for (const metadataType in deployOrder) {
@@ -313,21 +362,21 @@ class Deployer {
313
362
  * @param {string} deployDir root directory of metadata.
314
363
  * @param {string[]} [typeArr] limit deployment to given metadata type
315
364
  * @param {boolean} [listBadKeys] do not print errors, used for badKeys()
316
- * @returns {TYPE.MultiMetadataTypeMap} Metadata of BU in local directory
365
+ * @returns {Promise.<MultiMetadataTypeMap>} Metadata of BU in local directory
317
366
  */
318
- static readBUMetadata(deployDir, typeArr, listBadKeys) {
319
- /** @type {TYPE.MultiMetadataTypeMap} */
367
+ static async readBUMetadata(deployDir, typeArr, listBadKeys) {
368
+ /** @type {MultiMetadataTypeMap} */
320
369
  const buMetadata = {};
321
370
  try {
322
- File.ensureDirSync(deployDir);
323
- const metadataTypes = File.readdirSync(deployDir);
371
+ await File.ensureDir(deployDir);
372
+ const metadataTypes = await File.readdir(deployDir);
324
373
  for (const metadataType of metadataTypes) {
325
374
  if (
326
375
  MetadataTypeInfo[metadataType] &&
327
376
  (!typeArr || Util.includesStartsWith(typeArr, metadataType))
328
377
  ) {
329
378
  // check if folder name is a valid metadataType, then check if the user limited to a certain type in the command params
330
- buMetadata[metadataType] = MetadataTypeInfo[metadataType].getJsonFromFS(
379
+ buMetadata[metadataType] = await MetadataTypeInfo[metadataType].getJsonFromFS(
331
380
  File.normalizePath([deployDir, metadataType]),
332
381
  listBadKeys,
333
382
  typeArr
@@ -347,9 +396,9 @@ class Deployer {
347
396
  * parses asset metadata to auto-create folders in target folder
348
397
  *
349
398
  * @param {string} deployDir root directory of metadata.
350
- * @param {TYPE.MultiMetadataTypeMap} metadata list of metadata
351
- * @param {TYPE.SupportedMetadataTypes[]} metadataTypeArr list of metadata types
352
- * @returns {void}
399
+ * @param {MultiMetadataTypeMap} metadata list of metadata
400
+ * @param {string[]} metadataTypeArr list of metadata types
401
+ * @returns {Promise.<object>} folder metadata
353
402
  */
354
403
  static async createFolderDefinitions(deployDir, metadata, metadataTypeArr) {
355
404
  let i = 0;
@@ -426,14 +475,20 @@ class Deployer {
426
475
  ) {
427
476
  contentType = 'shared_dataextension';
428
477
  }
478
+ if (
479
+ metadataType === 'triggeredSend' &&
480
+ folder.startsWith('Journey Builder Sends/')
481
+ ) {
482
+ contentType = 'triggered_send_journeybuilder';
483
+ }
429
484
  folderMetadata[`on-the-fly-${i}`] = {
430
485
  Path: folder,
431
486
  Name: folder.split('/').pop(),
432
- Description: '',
487
+ Description: '', // required for Create, omitted for update via definition file
433
488
  ContentType: contentType,
434
- IsActive: true,
435
- IsEditable: true,
436
- AllowChildren: true,
489
+ IsActive: true, // would be auto-updated for existing folders if needed
490
+ IsEditable: true, // would be auto-updated for existing folders if needed
491
+ AllowChildren: true, // would be auto-updated for existing folders if needed
437
492
  _generated: true,
438
493
  };
439
494
  }
@@ -447,7 +502,7 @@ class Deployer {
447
502
  Util.logger.info(`Created folders in deploy dir: ${i}`);
448
503
 
449
504
  // reload from file system to ensure we use the same logic for building the temporary JSON
450
- metadata.folder = MetadataTypeInfo.folder.getJsonFromFS(
505
+ metadata.folder = await MetadataTypeInfo.folder.getJsonFromFS(
451
506
  File.normalizePath([deployDir, 'folder'])
452
507
  );
453
508
  }