mcdev 6.0.2 → 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 (602) hide show
  1. package/.beautyamp.json +13 -0
  2. package/.eslintrc.json +7 -1
  3. package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
  4. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +10 -3
  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 +15 -3
  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 +33 -27
  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 +229 -113
  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 +135 -35
  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 +78 -46
  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/MobileMessage.definition.js +11 -5
  294. package/lib/metadataTypes/definitions/Query.definition.js +6 -0
  295. package/lib/metadataTypes/definitions/Script.definition.js +14 -14
  296. package/lib/metadataTypes/definitions/SendClassification.definition.js +60 -20
  297. package/lib/metadataTypes/definitions/SenderProfile.definition.js +185 -0
  298. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +2 -2
  299. package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +69 -0
  300. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +6 -0
  301. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +6 -0
  302. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +15 -4
  303. package/lib/metadataTypes/definitions/Verification.definition.js +1 -1
  304. package/lib/retrieveChangelog.js +7 -2
  305. package/lib/util/auth.js +56 -21
  306. package/lib/util/businessUnit.js +20 -2
  307. package/lib/util/cache.js +37 -18
  308. package/lib/util/cli.js +72 -29
  309. package/lib/util/config.js +27 -9
  310. package/lib/util/devops.js +45 -24
  311. package/lib/util/file.js +58 -33
  312. package/lib/util/init.config.js +55 -24
  313. package/lib/util/init.git.js +6 -6
  314. package/lib/util/init.js +36 -14
  315. package/lib/util/init.npm.js +2 -2
  316. package/lib/util/replaceContentBlockReference.js +278 -0
  317. package/lib/util/util.js +152 -54
  318. package/package.json +33 -30
  319. package/test/general.test.js +1327 -4
  320. package/test/mockRoot/.mcdevrc.json +26 -4
  321. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +3 -4
  322. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +1 -4
  323. package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.json +11 -0
  324. package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.sql +4 -0
  325. package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.html +12 -0
  326. package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.json +39 -0
  327. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +6 -6
  328. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +7 -7
  329. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +3 -4
  330. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testNew_dataExtension.dataExtension-meta.json +1 -4
  331. package/test/mockRoot/deploy/testInstance/testBU/emailSend/testExisting_emailSend.emailSend-meta.json +36 -0
  332. package/test/mockRoot/deploy/testInstance/testBU/emailSend/testNew_emailSend.emailSend-meta.json +36 -0
  333. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +10 -4
  334. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +8 -4
  335. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_Quicksend.journey-meta.json +232 -0
  336. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.json +2 -4
  337. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.json +2 -4
  338. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query.query-meta.json +1 -1
  339. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +1 -1
  340. package/test/mockRoot/deploy/testInstance/testBU/query/testNew_query.query-meta.json +1 -1
  341. package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testExisting_sendClassification.sendClassification-meta.json +8 -0
  342. package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testNew_sendClassification.sendClassification-meta.json +8 -0
  343. package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testExisting_senderProfile.senderProfile-meta.json +14 -0
  344. package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testNew_senderProfile.senderProfile-meta.json +14 -0
  345. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +1 -1
  346. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -1
  347. package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testExisting_tpush.transactionalPush-meta.json +1 -3
  348. package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testNew_tpush.transactionalPush-meta.json +1 -3
  349. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +1 -2
  350. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +1 -2
  351. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +4 -5
  352. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +4 -5
  353. package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
  354. package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
  355. package/test/resourceFactory.js +118 -7
  356. package/test/resources/1111111/automation/v1/queries/get-response.json +6 -0
  357. package/test/resources/1111111/automation/v1/queries/post-response.json +18 -0
  358. package/test/resources/1111111/dataExtension/create-expected.json +4 -7
  359. package/test/resources/1111111/dataExtension/retrieve-expected.json +2 -4
  360. package/test/resources/1111111/dataExtension/update-expected.json +7 -7
  361. package/test/resources/1111111/dataExtension/update-response.xml +3 -1
  362. package/test/resources/1111111/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  363. package/test/resources/1111111/query/patch_keySuffix-expected.json +11 -0
  364. package/test/resources/1111111/query/patch_keySuffix-expected.sql +4 -0
  365. package/test/resources/9999999/asset/block-1157-retrieve-expected.html +4 -3
  366. package/test/resources/9999999/asset/build-templatebasedemail-expected.json +81 -0
  367. package/test/resources/9999999/asset/build-templatebasedemail-html-expected.html +20 -0
  368. package/test/resources/9999999/asset/build-templatebasedemail-preheader-expected.amp +1 -0
  369. package/test/resources/9999999/asset/create-expected.json +18 -0
  370. package/test/resources/9999999/asset/resolveId-1234-notFound-expected.json +1 -0
  371. package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +8 -0
  372. package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +8 -0
  373. package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +84 -0
  374. package/test/resources/9999999/asset/retrieve-templatebasedemail-html-expected.html +20 -0
  375. package/test/resources/9999999/asset/retrieve-templatebasedemail-preheader-expected.amp +1 -0
  376. package/test/resources/9999999/asset/template-templatebasedemail-expected.json +81 -0
  377. package/test/resources/9999999/asset/template-templatebasedemail-html-expected.html +20 -0
  378. package/test/resources/9999999/asset/template-templatebasedemail-preheader-expected.amp +1 -0
  379. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-id-expected.html +33 -0
  380. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +33 -0
  381. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-name-expected.html +35 -0
  382. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +4 -0
  383. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -0
  384. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +4 -0
  385. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-id-expected.amp +4 -0
  386. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -0
  387. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-name-expected.amp +4 -0
  388. package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +1 -1
  389. package/test/resources/9999999/asset/v1/content/assets/5286/get-response.json +48 -0
  390. package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +198 -0
  391. package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +4 -3
  392. package/test/resources/9999999/asset/v1/content/assets/950143/delete-response.txt +1 -0
  393. package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +105 -0
  394. package/test/resources/9999999/asset/v1/content/assets/post-response.json +59 -0
  395. 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
  396. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN193,194,15.json +7 -0
  397. 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
  398. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +32 -0
  399. package/test/resources/9999999/asset/v1/content/assets/query/{post-response.json → post-response-assetType.idIN207,208,209,5.json} +45 -47
  400. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN214,4.json +35 -0
  401. 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
  402. package/test/resources/9999999/asset/v1/content/assets/query/post-response-customerKey=mcdev-issue-1157.json +46 -0
  403. package/test/resources/9999999/attributeGroup/retrieve-expected.json +1 -1
  404. package/test/resources/9999999/attributeSet/retrieve-expected.json +3 -3
  405. package/test/resources/9999999/automation/build-expected.json +7 -7
  406. package/test/resources/9999999/automation/create-expected.json +7 -7
  407. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +6 -6
  408. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +6 -6
  409. package/test/resources/9999999/automation/retrieve-expected.json +7 -7
  410. package/test/resources/9999999/automation/template-expected.json +7 -7
  411. package/test/resources/9999999/automation/update-expected.json +6 -6
  412. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/delete-response.txt +1 -0
  413. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/delete-response.json +1 -0
  414. package/test/resources/9999999/automation/v1/imports/1ebf557b-372e-eb11-b81b-48df37d1dbd7/get-response.json +78 -0
  415. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/delete-response.txt +0 -0
  416. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/get-response.json +35 -0
  417. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +14 -10
  418. package/test/resources/9999999/automation/v1/imports/get-response.json +78 -1
  419. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +1 -1
  420. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/get-response.json +17 -0
  421. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/patch-response.json +18 -0
  422. package/test/resources/9999999/automation/v1/queries/abcde-607c-4940-afef-437965094dat/get-response.json +17 -0
  423. package/test/resources/9999999/automation/v1/queries/get-response.json +20 -3
  424. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/delete-response.txt +1 -0
  425. package/test/resources/9999999/automation/v1/scripts/get-response.json +3 -3
  426. package/test/resources/9999999/dataExtension/build-expected.json +3 -4
  427. package/test/resources/9999999/dataExtension/create-expected.json +1 -4
  428. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +4 -4
  429. package/test/resources/9999999/dataExtension/retrieve-expected.json +3 -4
  430. package/test/resources/9999999/dataExtension/retrieve-response.xml +96 -1
  431. package/test/resources/9999999/dataExtension/template-expected.json +3 -4
  432. package/test/resources/9999999/dataExtension/update-expected.json +4 -3
  433. package/test/resources/9999999/dataExtension/update-response.xml +5 -3
  434. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +72 -0
  435. package/test/resources/9999999/dataFolder/retrieve-ContentType=userinitiatedsends-response.xml +48 -0
  436. package/test/resources/9999999/deliveryProfile/get-expected.json +7 -0
  437. package/test/resources/9999999/emailSend/build-expected.json +43 -0
  438. package/test/resources/9999999/emailSend/get-expected.json +43 -0
  439. package/test/resources/9999999/emailSend/patch-expected.json +41 -0
  440. package/test/resources/9999999/emailSend/post-expected.json +41 -0
  441. package/test/resources/9999999/emailSend/template-expected.json +43 -0
  442. package/test/resources/9999999/emailSendDefinition/create-response.xml +98 -0
  443. package/test/resources/9999999/emailSendDefinition/delete-response.xml +36 -0
  444. package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +18 -8
  445. package/test/resources/9999999/emailSendDefinition/update-response.xml +97 -0
  446. package/test/resources/9999999/importDefinition/retrieve-CustomerKey=testExisting_importFile-response.xml +30 -0
  447. package/test/resources/9999999/importDefinition/retrieve-Name=testExisting_importFile-response.xml +30 -0
  448. package/test/resources/9999999/importFile/build-expected.json +11 -6
  449. package/test/resources/9999999/importFile/get-expected.json +13 -7
  450. package/test/resources/9999999/importFile/get-sms-expected.json +79 -0
  451. package/test/resources/9999999/importFile/patch-expected.json +12 -7
  452. package/test/resources/9999999/importFile/post-expected.json +8 -5
  453. package/test/resources/9999999/importFile/template-expected.json +10 -5
  454. package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +124 -0
  455. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/delete-response.txt +1 -0
  456. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +253 -0
  457. package/test/resources/9999999/interaction/v1/interactions/get-response.json +83 -779
  458. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response.json +457 -0
  459. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +253 -0
  460. package/test/resources/9999999/interaction/v1/interactions/{key_0b76dccf-594c-b6dc-1acf-10c4493dcb84 → key_testExisting_temail}/get-response.json +5 -5
  461. package/test/resources/9999999/journey/build-expected.json +105 -449
  462. package/test/resources/9999999/journey/get-multistep-expected.json +413 -0
  463. package/test/resources/9999999/journey/get-quicksend-expected.json +232 -0
  464. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +232 -0
  465. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +232 -0
  466. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +232 -0
  467. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +211 -0
  468. package/test/resources/9999999/journey/template-expected.json +105 -449
  469. package/test/resources/9999999/legacy/v1/beta/messaging/deliverypolicy/get-response.json +15 -0
  470. package/test/resources/9999999/legacy/v1/beta/mobile/imports/get-response.json +112 -0
  471. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTQ3Ojc4OjA/get-response.json +1 -1
  472. package/test/resources/9999999/legacy/v1/beta/object/NWQwdnhEU3dFZWVBekJRQzdISWl0QTo0NTow/get-response.json +12 -0
  473. package/test/resources/9999999/list/retrieve-response.xml +13 -0
  474. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +1 -1
  475. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +1 -1
  476. package/test/resources/9999999/mobileMessage/build-expected.json +2 -5
  477. package/test/resources/9999999/mobileMessage/get-expected.json +2 -5
  478. package/test/resources/9999999/mobileMessage/post-create-expected.json +2 -4
  479. package/test/resources/9999999/mobileMessage/post-update-expected.json +2 -5
  480. package/test/resources/9999999/mobileMessage/template-expected.json +2 -5
  481. package/test/resources/9999999/query/build-expected.json +1 -1
  482. package/test/resources/9999999/query/build-expected.sql +2 -1
  483. package/test/resources/9999999/query/get-expected.json +1 -1
  484. package/test/resources/9999999/query/get-expected.sql +2 -1
  485. package/test/resources/9999999/query/get2-expected.json +1 -1
  486. package/test/resources/9999999/query/patch-expected.json +1 -1
  487. package/test/resources/9999999/query/patch_fixKeys-expected.json +1 -1
  488. package/test/resources/9999999/query/patch_fixKeysSuffix-expected.json +11 -0
  489. package/test/resources/9999999/query/patch_fixKeysSuffix-expected.sql +6 -0
  490. package/test/resources/9999999/query/post-expected.json +1 -1
  491. package/test/resources/9999999/query/template-expected.json +1 -1
  492. package/test/resources/9999999/query/template-expected.sql +2 -1
  493. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query2ANDStatus=Active-response.xml +30 -0
  494. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysSuffixANDStatus=Active-response.xml +30 -0
  495. package/test/resources/9999999/script/get_ampincluded-expected.html +5 -0
  496. package/test/resources/9999999/script/get_ampincluded-rcb-id-expected.html +5 -0
  497. package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +5 -0
  498. package/test/resources/9999999/script/get_ampincluded-rcb-name-expected.html +5 -0
  499. package/test/resources/9999999/script/get_ampscript-expected.html +6 -1
  500. package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +8 -0
  501. package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +8 -0
  502. package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +10 -0
  503. package/test/resources/9999999/script/get_mixed-expected.html +5 -2
  504. package/test/resources/9999999/script/get_mixed-rcb-id-expected.html +12 -0
  505. package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +12 -0
  506. package/test/resources/9999999/script/get_mixed-rcb-name-expected.html +14 -0
  507. package/test/resources/9999999/sendClassification/build-expected.json +8 -0
  508. package/test/resources/9999999/sendClassification/create-response.xml +51 -0
  509. package/test/resources/9999999/sendClassification/delete-response.xml +36 -0
  510. package/test/resources/9999999/sendClassification/get-expected.json +10 -0
  511. package/test/resources/9999999/sendClassification/patch-expected.json +8 -0
  512. package/test/resources/9999999/sendClassification/post-expected.json +8 -0
  513. package/test/resources/9999999/sendClassification/retrieve-response.xml +86 -0
  514. package/test/resources/9999999/sendClassification/template-expected.json +8 -0
  515. package/test/resources/9999999/sendClassification/update-response.xml +49 -0
  516. package/test/resources/9999999/senderProfile/build-expected.json +14 -0
  517. package/test/resources/9999999/senderProfile/create-response.xml +49 -0
  518. package/test/resources/9999999/senderProfile/delete-response.xml +36 -0
  519. package/test/resources/9999999/senderProfile/get-expected.json +16 -0
  520. package/test/resources/9999999/senderProfile/get-rcb-id-expected.json +16 -0
  521. package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +16 -0
  522. package/test/resources/9999999/senderProfile/get-rcb-name-expected.json +16 -0
  523. package/test/resources/9999999/senderProfile/patch-expected.json +14 -0
  524. package/test/resources/9999999/senderProfile/post-expected.json +14 -0
  525. package/test/resources/9999999/senderProfile/retrieve-CustomerKey=Default-response.xml +44 -0
  526. package/test/resources/9999999/senderProfile/retrieve-CustomerKey=wrong-key-response.xml +26 -0
  527. package/test/resources/9999999/senderProfile/retrieve-response.xml +80 -0
  528. package/test/resources/9999999/senderProfile/template-expected.json +14 -0
  529. package/test/resources/9999999/senderProfile/update-response.xml +47 -0
  530. package/test/resources/9999999/transactionalEmail/build-expected.json +3 -3
  531. package/test/resources/9999999/transactionalEmail/get-expected.json +3 -3
  532. package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -3
  533. package/test/resources/9999999/transactionalEmail/post-expected.json +2 -2
  534. package/test/resources/9999999/transactionalEmail/template-expected.json +3 -3
  535. package/test/resources/9999999/transactionalPush/build-expected.json +1 -1
  536. package/test/resources/9999999/transactionalPush/get-expected.json +1 -1
  537. package/test/resources/9999999/transactionalPush/patch-expected.json +1 -3
  538. package/test/resources/9999999/transactionalPush/post-expected.json +1 -3
  539. package/test/resources/9999999/transactionalPush/template-expected.json +1 -1
  540. package/test/resources/9999999/transactionalSMS/build-expected.amp +1 -1
  541. package/test/resources/9999999/transactionalSMS/build-expected.json +1 -2
  542. package/test/resources/9999999/transactionalSMS/get-expected.amp +1 -1
  543. package/test/resources/9999999/transactionalSMS/get-expected.json +1 -2
  544. package/test/resources/9999999/transactionalSMS/patch-expected.amp +1 -1
  545. package/test/resources/9999999/transactionalSMS/patch-expected.json +1 -2
  546. package/test/resources/9999999/transactionalSMS/post-expected.amp +1 -1
  547. package/test/resources/9999999/transactionalSMS/post-expected.json +1 -2
  548. package/test/resources/9999999/transactionalSMS/template-expected.amp +1 -1
  549. package/test/resources/9999999/transactionalSMS/template-expected.json +1 -2
  550. package/test/resources/9999999/triggeredSend/build-expected.json +5 -6
  551. package/test/resources/9999999/triggeredSend/get-expected.json +5 -6
  552. package/test/resources/9999999/triggeredSend/get-rcb-id-expected.json +29 -0
  553. package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +29 -0
  554. package/test/resources/9999999/triggeredSend/get-rcb-name-expected.json +29 -0
  555. package/test/resources/9999999/triggeredSend/patch-expected.json +5 -6
  556. package/test/resources/9999999/triggeredSend/post-expected.json +5 -6
  557. package/test/resources/9999999/triggeredSend/template-expected.json +5 -6
  558. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +6 -1
  559. package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +53 -1
  560. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +6 -1
  561. package/test/resources/9999999/verification/build-expected.json +1 -1
  562. package/test/resources/9999999/verification/get-expected.json +1 -1
  563. package/test/resources/9999999/verification/patch-expected.json +1 -1
  564. package/test/resources/9999999/verification/post-expected.json +1 -1
  565. package/test/resources/9999999/verification/template-expected.json +1 -1
  566. package/test/type.asset.test.js +733 -17
  567. package/test/type.attributeGroup.test.js +6 -2
  568. package/test/type.attributeSet.test.js +6 -2
  569. package/test/type.automation.test.js +174 -162
  570. package/test/type.dataExtension.test.js +41 -45
  571. package/test/type.dataExtract.test.js +22 -29
  572. package/test/type.deliveryProfile.test.js +45 -0
  573. package/test/type.emailSend.test.js +144 -0
  574. package/test/type.event.test.js +62 -0
  575. package/test/type.fileTransfer.test.js +21 -29
  576. package/test/type.importFile.test.js +61 -35
  577. package/test/type.journey.test.js +251 -45
  578. package/test/type.mobileKeyword.test.js +46 -54
  579. package/test/type.mobileMessage.test.js +28 -27
  580. package/test/type.query.test.js +303 -124
  581. package/test/type.script.test.js +288 -69
  582. package/test/type.sendClassification.test.js +156 -0
  583. package/test/type.senderProfile.test.js +254 -0
  584. package/test/type.transactionalEmail.test.js +15 -11
  585. package/test/type.transactionalPush.test.js +15 -11
  586. package/test/type.transactionalSMS.test.js +30 -23
  587. package/test/type.triggeredSend.test.js +130 -17
  588. package/test/type.user.test.js +22 -14
  589. package/test/type.verification.test.js +13 -10
  590. package/test/utils.js +76 -21
  591. package/tsconfig.json +21 -0
  592. package/types/mcdev.d.js +190 -66
  593. package/docs/dist/documentation.md +0 -8878
  594. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_interaction.interaction-meta.json +0 -576
  595. package/test/mockRoot/deploy/testInstance/testBU/journey/testNew_interaction.interaction-meta.json +0 -266
  596. package/test/resources/9999999/interaction/v1/EventDefinitions/get-response.json +0 -43
  597. package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +0 -1
  598. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +0 -592
  599. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/put-response.json +0 -592
  600. package/test/resources/9999999/interaction/v1/interactions/post-response.json +0 -280
  601. package/test/resources/9999999/journey/get-expected.json +0 -576
  602. package/test/resources/9999999/script/get_ampincluded-expected.ssjs +0 -5
@@ -1,10 +1,22 @@
1
1
  'use strict';
2
2
 
3
- import TYPE from '../../types/mcdev.d.js';
4
3
  import MetadataType from './MetadataType.js';
5
4
  import { Util } from '../util/util.js';
6
5
  import cache from '../util/cache.js';
7
6
 
7
+ /**
8
+ * @typedef {import('../../types/mcdev.d.js').BuObject} BuObject
9
+ * @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract
10
+ * @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
11
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
12
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
13
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
14
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
15
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
16
+ * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
17
+ * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
18
+ */
19
+
8
20
  /**
9
21
  * MessageSendActivity MetadataType
10
22
  *
@@ -14,14 +26,14 @@ class EmailSend extends MetadataType {
14
26
  /**
15
27
  * Retrieves SOAP based metadata of metadata type into local filesystem. executes callback with retrieved metadata
16
28
  *
17
- * @param {string} retrieveDir Directory where retrieved metadata directory will be saved
18
- * @param {void} [_] unused parameter
19
- * @param {void} [__] unused parameter
29
+ * @param {string} [retrieveDir] Directory where retrieved metadata directory will be saved
30
+ * @param {void | string[]} [_] unused parameter
31
+ * @param {void | string[]} [__] unused parameter
20
32
  * @param {string} [key] customer key of single item to retrieve
21
- * @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise of metadata
33
+ * @returns {Promise.<MetadataTypeMapObj>} Promise of metadata
22
34
  */
23
35
  static retrieve(retrieveDir, _, __, key) {
24
- /** @type {TYPE.SoapRequestParams} */
36
+ /** @type {SoapRequestParams} */
25
37
  let requestParams = {
26
38
  filter: {
27
39
  leftOperand: {
@@ -58,7 +70,7 @@ class EmailSend extends MetadataType {
58
70
  /**
59
71
  * Updates a single item
60
72
  *
61
- * @param {TYPE.MetadataTypeItem} metadataItem a single item
73
+ * @param {MetadataTypeItem} metadataItem a single item
62
74
  * @returns {Promise} Promise
63
75
  */
64
76
  static update(metadataItem) {
@@ -68,7 +80,7 @@ class EmailSend extends MetadataType {
68
80
  /**
69
81
  * Creates a single item
70
82
  *
71
- * @param {TYPE.MetadataTypeItem} metadataItem a single item
83
+ * @param {MetadataTypeItem} metadataItem a single item
72
84
  * @returns {Promise} Promise
73
85
  */
74
86
  static create(metadataItem) {
@@ -88,8 +100,8 @@ class EmailSend extends MetadataType {
88
100
  /**
89
101
  * prepares a single item for deployment
90
102
  *
91
- * @param {TYPE.MetadataTypeItem} metadata a single script activity definition
92
- * @returns {Promise.<TYPE.MetadataTypeItem>} Promise
103
+ * @param {MetadataTypeItem} metadata a single script activity definition
104
+ * @returns {Promise.<MetadataTypeItem>} Promise
93
105
  */
94
106
  static async preDeployTasks(metadata) {
95
107
  // re-add IsPlatformObject, required for visibility
@@ -98,24 +110,24 @@ class EmailSend extends MetadataType {
98
110
  super.setFolderId(metadata);
99
111
  // email; in case we still have Email.ID, keep it but warn
100
112
  metadata.Email ||= {};
101
- if (metadata.r__email_Name) {
113
+ if (metadata.r__email_name) {
102
114
  // classic
103
- metadata.Email.ID = cache.searchForField('email', metadata.r__email_Name, 'Name', 'ID');
104
- delete metadata.r__email_Name;
105
- } else if (metadata.r__assetMessage_Key) {
115
+ metadata.Email.ID = cache.searchForField('email', metadata.r__email_name, 'Name', 'ID');
116
+ delete metadata.r__email_name;
117
+ } else if (metadata.r__asset_key) {
106
118
  // content builder
107
- // * this ignores r__assetMessage_Name on purpose\ as that is only unique per parent folder but useful during PR reviews
119
+ // * this ignores r__asset_name_readOnly on purpose\ as that is only unique per parent folder but useful during PR reviews
108
120
  // will try to find the key with the bu mid at the end, if unable, will try to find the key without it
109
121
  try {
110
122
  // check asset key as provided
111
123
  metadata.Email.ID = cache.searchForField(
112
124
  'asset',
113
- metadata.r__assetMessage_Key,
125
+ metadata.r__asset_key,
114
126
  'customerKey',
115
127
  'legacyData.legacyId'
116
128
  );
117
- delete metadata.r__assetMessage_Key;
118
- delete metadata.r__assetMessage_Name;
129
+ delete metadata.r__asset_key;
130
+ delete metadata.r__asset_name_readOnly;
119
131
  } catch {
120
132
  // if we deploy to another BU, try applying the BU's MID to the end, which we do in preDeployTasks for assets
121
133
 
@@ -124,18 +136,18 @@ class EmailSend extends MetadataType {
124
136
 
125
137
  metadata.Email.ID = cache.searchForField(
126
138
  'asset',
127
- metadata.r__assetMessage_Key.slice(0, Math.max(0, 36 - suffix.length)) + suffix,
139
+ metadata.r__asset_key.slice(0, Math.max(0, 36 - suffix.length)) + suffix,
128
140
  'customerKey',
129
141
  'legacyData.legacyId'
130
142
  );
131
- delete metadata.r__assetMessage_Key;
132
- delete metadata.r__assetMessage_Name;
143
+ delete metadata.r__asset_key;
144
+ delete metadata.r__asset_name_readOnly;
133
145
  }
134
146
  } else if (metadata.Email.ID) {
135
147
  Util.logger.warn(
136
148
  ` - ${this.definition.type} ${metadata[this.definition.nameField]} (${
137
149
  metadata[this.definition.keyField]
138
- }): Email.ID was provided manually in your deployment file. We recommend using r__assetMessage_Key instead.`
150
+ }): Email.ID was provided manually in your deployment file. We recommend using r__asset_key instead.`
139
151
  );
140
152
  try {
141
153
  // content builder - test only
@@ -168,22 +180,22 @@ class EmailSend extends MetadataType {
168
180
  // - DataSourceTypeID=List --> List is source; DE is not defined
169
181
  for (const sdl of metadata.SendDefinitionList) {
170
182
  // get DataExtension (optional)
171
- if (sdl.r__dataExtension_Key) {
183
+ if (sdl.r__dataExtension_key) {
172
184
  if (sdl.DataSourceTypeID !== 'CustomObject') {
173
185
  throw new Error(
174
- ` ☇ skipping ${this.definition.type} ${metadata.Name} (${metadata.CustomerKey}): Expecting DataSourceTypeID to equal 'CustomObject' when r__dataExtension_Key is defined; Found '${sdl.DataSourceTypeID}'`
186
+ `Expecting DataSourceTypeID to equal 'CustomObject' when r__dataExtension_key is defined; Found '${sdl.DataSourceTypeID}'`
175
187
  );
176
188
  }
177
189
  sdl.CustomObjectID = cache.searchForField(
178
190
  'dataExtension',
179
- sdl.r__dataExtension_Key,
191
+ sdl.r__dataExtension_key,
180
192
  'CustomerKey',
181
193
  'ObjectID'
182
194
  );
183
- delete sdl.r__dataExtension_Key;
195
+ delete sdl.r__dataExtension_key;
184
196
  } else if (sdl.DataSourceTypeID === 'CustomObject') {
185
197
  throw new Error(
186
- ` ☇ skipping ${this.definition.type} ${metadata.Name} (${metadata.CustomerKey}): Expecting r__dataExtension_Key to be defined if DataSourceTypeID='CustomObject'`
198
+ `Expecting r__dataExtension_key to be defined if DataSourceTypeID='CustomObject'`
187
199
  );
188
200
  }
189
201
  if (!sdl.SalesForceObjectID || sdl.SalesForceObjectID === '') {
@@ -196,21 +208,57 @@ class EmailSend extends MetadataType {
196
208
  ID: cache.getListObjectId(sdl.r__list_PathName, 'ID'),
197
209
  };
198
210
  delete sdl.r__list_PathName;
199
- } else {
211
+ } else if (sdl.SendDefinitionListType === 'SourceList') {
212
+ // dont throw an error for type 'ExclusionList'
200
213
  throw new Error(
201
- ` ☇ skipping ${this.definition.type} ${metadata.Name} (${metadata.CustomerKey}) Field SendDefinitionList.r__list_PathName was not defined. Please try re-retrieving this ESD from your source BU.`
214
+ `Field SendDefinitionList.r__list_PathName was not defined. Please try re-retrieving this ESD from your source BU.`
202
215
  );
203
216
  }
204
217
  }
205
218
 
219
+ // sender profile
220
+ if (metadata.r__senderProfile_key) {
221
+ cache.searchForField(
222
+ 'senderProfile',
223
+ metadata.r__senderProfile_key,
224
+ 'CustomerKey',
225
+ 'CustomerKey'
226
+ );
227
+ metadata.SenderProfile = {
228
+ CustomerKey: metadata.r__senderProfile_key,
229
+ };
230
+ delete metadata.r__senderProfile_key;
231
+ }
232
+ // send classification
233
+ if (metadata.r__sendClassification_key) {
234
+ cache.searchForField(
235
+ 'sendClassification',
236
+ metadata.r__sendClassification_key,
237
+ 'CustomerKey',
238
+ 'CustomerKey'
239
+ );
240
+ metadata.SendClassification = {
241
+ CustomerKey: metadata.r__sendClassification_key,
242
+ };
243
+ delete metadata.r__sendClassification_key;
244
+ }
245
+ // delivery profile
246
+ if (metadata.r__deliveryProfile_key) {
247
+ cache.searchForField('deliveryProfile', metadata.r__deliveryProfile_key, 'key', 'key');
248
+ metadata.DeliveryProfile = {
249
+ CustomerKey: metadata.r__deliveryProfile_key,
250
+ };
251
+ delete metadata.r__deliveryProfile_key;
252
+ }
253
+
206
254
  return metadata;
207
255
  }
208
256
 
209
257
  /**
210
258
  * manages post retrieve steps
211
259
  *
212
- * @param {TYPE.MetadataTypeItem} metadata a single query
213
- * @returns {TYPE.MetadataTypeItem} Array with one metadata object and one query string
260
+ * @param {MetadataTypeItem} metadata a single query
261
+ * @returns {MetadataTypeItem} Array with one metadata object and one query string
214
262
  */
215
263
  static postRetrieveTasks(metadata) {
216
264
  // remove IsPlatformObject, always has to be 'false'
@@ -228,14 +276,14 @@ class EmailSend extends MetadataType {
228
276
  'legacyData.legacyId',
229
277
  'name'
230
278
  );
231
- metadata.r__assetMessage_Name = contentBuilderEmailName;
279
+ metadata.r__asset_name_readOnly = contentBuilderEmailName;
232
280
  const contentBuilderEmailKey = cache.searchForField(
233
281
  'asset',
234
282
  metadata.Email.ID,
235
283
  'legacyData.legacyId',
236
284
  'customerKey'
237
285
  );
238
- metadata.r__assetMessage_Key = contentBuilderEmailKey;
286
+ metadata.r__asset_key = contentBuilderEmailKey;
239
287
  delete metadata.Email;
240
288
  } catch {
241
289
  try {
@@ -246,7 +294,7 @@ class EmailSend extends MetadataType {
246
294
  'ID',
247
295
  'Name'
248
296
  );
249
- metadata.r__email_Name = classicEmail;
297
+ metadata.r__email_name = classicEmail;
250
298
  delete metadata.Email;
251
299
  } catch {
252
300
  Util.logger.warn(
@@ -271,7 +319,7 @@ class EmailSend extends MetadataType {
271
319
  // get DataExtension keys
272
320
  if (sdl.CustomObjectID) {
273
321
  try {
274
- sdl.r__dataExtension_Key = cache.searchForField(
322
+ sdl.r__dataExtension_key = cache.searchForField(
275
323
  'dataExtension',
276
324
  sdl.CustomObjectID,
277
325
  'ObjectID',
@@ -307,6 +355,58 @@ class EmailSend extends MetadataType {
307
355
  }
308
356
  }
309
357
 
358
+ // sender profile
359
+ if (metadata.SenderProfile?.CustomerKey) {
360
+ try {
361
+ cache.searchForField(
362
+ 'senderProfile',
363
+ metadata.SenderProfile.CustomerKey,
364
+ 'CustomerKey',
365
+ 'CustomerKey'
366
+ );
367
+ metadata.r__senderProfile_key = metadata.SenderProfile.CustomerKey;
368
+ delete metadata.SenderProfile;
369
+ } catch (ex) {
370
+ Util.logger.warn(
371
+ ` - ${this.definition.type} ${metadata.CustomerKey}: ${ex.message}`
372
+ );
373
+ }
374
+ }
375
+ // send classification
376
+ if (metadata.SendClassification?.CustomerKey) {
377
+ try {
378
+ cache.searchForField(
379
+ 'sendClassification',
380
+ metadata.SendClassification.CustomerKey,
381
+ 'CustomerKey',
382
+ 'CustomerKey'
383
+ );
384
+ metadata.r__sendClassification_key = metadata.SendClassification.CustomerKey;
385
+ delete metadata.SendClassification;
386
+ } catch (ex) {
387
+ Util.logger.warn(
388
+ ` - ${this.definition.type} ${metadata.CustomerKey}: ${ex.message}`
389
+ );
390
+ }
391
+ }
392
+ // delivery profile
393
+ if (metadata.DeliveryProfile?.CustomerKey) {
394
+ try {
395
+ cache.searchForField(
396
+ 'deliveryProfile',
397
+ metadata.DeliveryProfile.CustomerKey,
398
+ 'key',
399
+ 'key'
400
+ );
401
+ metadata.r__deliveryProfile_key = metadata.DeliveryProfile.CustomerKey;
402
+ delete metadata.DeliveryProfile;
403
+ } catch (ex) {
404
+ Util.logger.warn(
405
+ ` - ${this.definition.type} ${metadata.CustomerKey}: ${ex.message}`
406
+ );
407
+ }
408
+ }
409
+
310
410
  return metadata;
311
411
  }
312
412
  }
@@ -1,11 +1,23 @@
1
1
  'use strict';
2
2
 
3
- import TYPE from '../../types/mcdev.d.js';
4
3
  import MetadataType from './MetadataType.js';
5
4
  import { Util } from '../util/util.js';
6
5
  import File from '../util/file.js';
7
6
  import cache from '../util/cache.js';
8
7
 
8
+ /**
9
+ * @typedef {import('../../types/mcdev.d.js').BuObject} BuObject
10
+ * @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract
11
+ * @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
12
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
13
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
14
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
15
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
16
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
17
+ * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
18
+ * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
19
+ */
20
+
9
21
  /**
10
22
  * Event MetadataType
11
23
  *
@@ -14,34 +26,46 @@ import cache from '../util/cache.js';
14
26
  class Event extends MetadataType {
15
27
  /**
16
28
  * Retrieves Metadata of Event Definition.
17
- * Endpoint /interaction/v1/EventDefinitions return all Event Definitions with all details.
18
- * Currently it is not needed to loop over Imports with endpoint /interaction/v1/EventDefinitions/{id}
29
+ * Endpoint /interaction/v1/eventDefinitions return all Event Definitions with all details.
30
+ * Currently it is not needed to loop over Imports with endpoint /interaction/v1/eventDefinitions/{id}
19
31
  *
20
32
  * @param {string} retrieveDir Directory where retrieved metadata directory will be saved
21
- * @param {void} [_] unused parameter
22
- * @param {void} [__] unused parameter
33
+ * @param {void | string[]} [_] unused parameter
34
+ * @param {void | string[]} [__] unused parameter
23
35
  * @param {string} [key] customer key of single item to retrieve
24
- * @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise of metadata
36
+ * @returns {Promise.<MetadataTypeMapObj>} Promise of metadata
25
37
  */
26
38
  static retrieve(retrieveDir, _, __, key) {
27
39
  Util.logBeta(this.definition.type);
28
- return super.retrieveREST(
29
- retrieveDir,
30
- `/interaction/v1/EventDefinitions${
31
- key ? '/key:' + encodeURIComponent(key) : ''
32
- }?extras=all`,
33
- null,
34
- key
35
- );
40
+ try {
41
+ return super.retrieveREST(
42
+ retrieveDir,
43
+ `/interaction/v1/eventDefinitions${
44
+ key ? '/key:' + encodeURIComponent(key) : ''
45
+ }?extras=all`,
46
+ null,
47
+ key
48
+ );
49
+ } catch (ex) {
50
+ // if the event does not exist, the API returns the error "Request failed with status code 400 (ERR_BAD_REQUEST)" which would otherwise bring execution to a hold
51
+ if (key && ex.code === 'ERR_BAD_REQUEST') {
52
+ Util.logger.info(
53
+ `Downloaded: ${this.definition.type} (0)${Util.getKeysString(key)}`
54
+ );
55
+ } else {
56
+ throw ex;
57
+ }
58
+ }
59
+ return;
36
60
  }
37
61
 
38
62
  /**
39
63
  * Retrieves event definition metadata for caching
40
64
  *
41
- * @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise of metadata
65
+ * @returns {Promise.<MetadataTypeMapObj>} Promise of metadata
42
66
  */
43
67
  static retrieveForCache() {
44
- return super.retrieveREST(null, '/interaction/v1/EventDefinitions/');
68
+ return this.retrieve(null);
45
69
  }
46
70
 
47
71
  /**
@@ -49,13 +73,13 @@ class Event extends MetadataType {
49
73
  *
50
74
  * @param {string} templateDir Directory where retrieved metadata directory will be saved
51
75
  * @param {string} name name of the metadata file
52
- * @param {TYPE.TemplateMap} templateVariables variables to be replaced in the metadata
53
- * @returns {Promise.<TYPE.MetadataTypeItemObj>} Promise of metadata
76
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
77
+ * @returns {Promise.<MetadataTypeItemObj>} Promise of metadata
54
78
  */
55
79
  static async retrieveAsTemplate(templateDir, name, templateVariables) {
56
80
  Util.logBeta(this.definition.type);
57
81
  const res = await this.client.rest.get(
58
- '/interaction/v1/EventDefinitions?name=' + encodeURIComponent(name)
82
+ '/interaction/v1/eventDefinitions?name=' + encodeURIComponent(name)
59
83
  );
60
84
  const event = res.items.filter((item) => item.name === name);
61
85
  try {
@@ -70,13 +94,13 @@ class Event extends MetadataType {
70
94
  const originalKey = event[0][this.definition.keyField];
71
95
  const eventDef = JSON.parse(
72
96
  Util.replaceByObject(
73
- JSON.stringify(this.parseMetadata(event[0])),
97
+ JSON.stringify(this.postRetrieveTasks(event[0])),
74
98
  templateVariables
75
99
  )
76
100
  );
77
101
  if (!eventDef.dataExtensionId) {
78
102
  throw new Error(
79
- `Event.parseMetadata:: ` +
103
+ `Event.postRetrieveTasks:: ` +
80
104
  `No Data Extension found for ` +
81
105
  `event: ${eventDef.name}. ` +
82
106
  `This cannot be templated`
@@ -105,17 +129,6 @@ class Event extends MetadataType {
105
129
  }
106
130
  }
107
131
 
108
- /**
109
- * manages post retrieve steps
110
- *
111
- * @param {TYPE.MetadataTypeItem} eventDef a single item of Event Definition
112
- * @returns {TYPE.MetadataTypeItem} metadata
113
- */
114
- static postRetrieveTasks(eventDef) {
115
- const val = this.parseMetadata(eventDef);
116
- this.keepRetrieveFields(val);
117
- return val;
118
- }
119
132
  /**
120
133
  * Delete a metadata item from the specified business unit
121
134
  *
@@ -133,10 +146,10 @@ class Event extends MetadataType {
133
146
  /**
134
147
  * Deploys metadata - merely kept here to be able to print {@link Util.logBeta} once per deploy
135
148
  *
136
- * @param {TYPE.MetadataTypeMap} metadata metadata mapped by their keyField
149
+ * @param {MetadataTypeMap} metadata metadata mapped by their keyField
137
150
  * @param {string} deployDir directory where deploy metadata are saved
138
151
  * @param {string} retrieveDir directory where metadata after deploy should be saved
139
- * @returns {Promise.<TYPE.MetadataTypeMap>} Promise of keyField => metadata map
152
+ * @returns {Promise.<MetadataTypeMap>} Promise of keyField => metadata map
140
153
  */
141
154
  static async deploy(metadata, deployDir, retrieveDir) {
142
155
  Util.logBeta(this.definition.type);
@@ -146,23 +159,23 @@ class Event extends MetadataType {
146
159
  /**
147
160
  * Creates a single Event Definition
148
161
  *
149
- * @param {TYPE.MetadataTypeItem} metadata a single Event Definition
162
+ * @param {MetadataTypeItem} metadata a single Event Definition
150
163
  * @returns {Promise} Promise
151
164
  */
152
165
  static create(metadata) {
153
- return super.createREST(metadata, '/interaction/v1/EventDefinitions/');
166
+ return super.createREST(metadata, '/interaction/v1/eventDefinitions/');
154
167
  }
155
168
 
156
169
  /**
157
170
  * Updates a single Event Definition (using PUT method since PATCH isn't supported)
158
171
  *
159
- * @param {TYPE.MetadataTypeItem} metadataEntry a single Event Definition
172
+ * @param {MetadataTypeItem} metadataEntry a single Event Definition
160
173
  * @returns {Promise} Promise
161
174
  */
162
175
  static async update(metadataEntry) {
163
176
  return super.updateREST(
164
177
  metadataEntry,
165
- '/interaction/v1/EventDefinitions/' + metadataEntry.id,
178
+ '/interaction/v1/eventDefinitions/' + metadataEntry.id,
166
179
  'put'
167
180
  );
168
181
  }
@@ -170,45 +183,67 @@ class Event extends MetadataType {
170
183
  /**
171
184
  * prepares an event definition for deployment
172
185
  *
173
- * @param {TYPE.MetadataTypeItem} metadata a single eventDefinition
174
- * @returns {TYPE.MetadataTypeItem} parsed version
186
+ * @param {MetadataTypeItem} metadata a single eventDefinition
187
+ * @returns {MetadataTypeItem} parsed version
175
188
  */
176
189
  static preDeployTasks(metadata) {
177
- metadata.dataExtensionId = cache.searchForField(
178
- 'dataExtension',
179
- metadata.dataExtensionName,
180
- 'Name',
181
- 'ObjectID'
182
- );
183
- metadata.arguments.dataExtensionId = metadata.dataExtensionId;
190
+ if (metadata.r__dataExtension_key) {
191
+ metadata.dataExtensionId = cache.searchForField(
192
+ 'dataExtension',
193
+ metadata.r__dataExtension_key,
194
+ 'CustomerKey',
195
+ 'ObjectID'
196
+ );
197
+ metadata.dataExtensionName = cache.searchForField(
198
+ 'dataExtension',
199
+ metadata.r__dataExtension_key,
200
+ 'CustomerKey',
201
+ 'Name'
202
+ );
203
+ metadata.arguments.dataExtensionId = metadata.dataExtensionId;
204
+ if (metadata.schema) {
205
+ metadata.schema.id = metadata.dataExtensionId;
206
+ metadata.schema.name = metadata.dataExtensionName;
207
+ }
208
+ }
209
+ metadata.arguments.eventDefinitionKey = metadata.eventDefinitionKey;
210
+
211
+ // standard values
212
+ metadata.isVisibleInPicker ||= false;
213
+ metadata.isPlatformObject = false;
214
+ metadata.mode = 'Production'; // potentially needs to be set to "1" instead
184
215
  return metadata;
185
216
  }
186
217
 
187
218
  /**
188
219
  * parses retrieved Metadata before saving
189
220
  *
190
- * @param {TYPE.MetadataTypeItem} metadata a single event definition
191
- * @returns {TYPE.MetadataTypeItem} parsed metadata
221
+ * @param {MetadataTypeItem} metadata a single event definition
222
+ * @returns {MetadataTypeItem} parsed metadata
192
223
  */
193
- static parseMetadata(metadata) {
224
+ static postRetrieveTasks(metadata) {
194
225
  try {
195
- metadata.dataExtensionId = cache.searchForField(
226
+ metadata.r__dataExtension_key = cache.searchForField(
196
227
  'dataExtension',
197
228
  metadata.dataExtensionId,
198
229
  'ObjectID',
199
230
  'CustomerKey'
200
231
  );
201
- metadata.arguments.dataExtensionId = metadata.dataExtensionId;
202
- return JSON.parse(JSON.stringify(metadata));
203
- } catch {
204
- Util.metadataLogger(
205
- 'verbose',
206
- this.definition.type,
207
- 'parseMetadata',
208
- `No related Data Extension found for Event '${metadata.name}'. Consider deleting the event definition`
232
+ delete metadata.dataExtensionId;
233
+ delete metadata.dataExtensionName;
234
+ delete metadata.arguments.dataExtensionId;
235
+ if (metadata.schema) {
236
+ delete metadata.schema.id;
237
+ delete metadata.schema.name;
238
+ }
239
+ } catch (ex) {
240
+ Util.logger.verbose(
241
+ ` - ${this.definition.type} ${metadata[this.definition.nameField]} (${
242
+ metadata[this.definition.keyField]
243
+ }): ${ex.message}.`
209
244
  );
210
- return metadata;
211
245
  }
246
+ return metadata;
212
247
  }
213
248
  }
214
249
 
@@ -1,8 +1,20 @@
1
1
  'use strict';
2
2
 
3
- import TYPE from '../../types/mcdev.d.js';
4
3
  import MetadataType from './MetadataType.js';
5
4
 
5
+ /**
6
+ * @typedef {import('../../types/mcdev.d.js').BuObject} BuObject
7
+ * @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract
8
+ * @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
9
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
10
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
11
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
12
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
13
+ * @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
14
+ * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
15
+ * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
16
+ */
17
+
6
18
  /**
7
19
  * ImportFile MetadataType
8
20
  *
@@ -14,10 +26,10 @@ class FtpLocation extends MetadataType {
14
26
  * Endpoint /automation/v1/ftplocations/ return all FtpLocations
15
27
  *
16
28
  * @param {string} retrieveDir Directory where retrieved metadata directory will be saved
17
- * @param {void} [_] unused parameter
18
- * @param {void} [__] unused parameter
29
+ * @param {void | string[]} [_] unused parameter
30
+ * @param {void | string[]} [__] unused parameter
19
31
  * @param {string} [key] customer key of single item to retrieve
20
- * @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
32
+ * @returns {Promise.<MetadataTypeMapObj>} Promise
21
33
  */
22
34
  static retrieve(retrieveDir, _, __, key) {
23
35
  return super.retrieveREST(retrieveDir, '/automation/v1/ftplocations/', null, key);
@@ -26,7 +38,7 @@ class FtpLocation extends MetadataType {
26
38
  /**
27
39
  * Retrieves folder metadata into local filesystem. Also creates a uniquePath attribute for each folder.
28
40
  *
29
- * @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
41
+ * @returns {Promise.<MetadataTypeMapObj>} Promise
30
42
  */
31
43
  static async retrieveForCache() {
32
44
  return super.retrieveREST(null, '/automation/v1/ftplocations/');