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
@@ -0,0 +1,680 @@
1
+ export default MetadataType;
2
+ export type BuObject = import('../../types/mcdev.d.js').BuObject;
3
+ export type CodeExtract = import('../../types/mcdev.d.js').CodeExtract;
4
+ export type CodeExtractItem = import('../../types/mcdev.d.js').CodeExtractItem;
5
+ export type Mcdevrc = import('../../types/mcdev.d.js').Mcdevrc;
6
+ export type MetadataTypeItem = import('../../types/mcdev.d.js').MetadataTypeItem;
7
+ export type MetadataTypeItemDiff = import('../../types/mcdev.d.js').MetadataTypeItemDiff;
8
+ export type MetadataTypeItemObj = import('../../types/mcdev.d.js').MetadataTypeItemObj;
9
+ export type MetadataTypeMap = import('../../types/mcdev.d.js').MetadataTypeMap;
10
+ export type MetadataTypeMapObj = import('../../types/mcdev.d.js').MetadataTypeMapObj;
11
+ export type SoapRequestParams = import('../../types/mcdev.d.js').SoapRequestParams;
12
+ export type TemplateMap = import('../../types/mcdev.d.js').TemplateMap;
13
+ export type SDK = import('../../types/mcdev.d.js').SDK;
14
+ export type SDKError = import('../../types/mcdev.d.js').SDKError;
15
+ export type SOAPError = import('../../types/mcdev.d.js').SOAPError;
16
+ export type RestError = import('../../types/mcdev.d.js').RestError;
17
+ /**
18
+ * MetadataType class that gets extended by their specific metadata type class.
19
+ * Provides default functionality that can be overwritten by child metadata type classes
20
+ *
21
+ */
22
+ declare class MetadataType {
23
+ /**
24
+ * Returns file contents mapped to their filename without '.json' ending
25
+ *
26
+ * @param {string} dir directory that contains '.json' files to be read
27
+ * @param {boolean} [listBadKeys] do not print errors, used for badKeys()
28
+ * @param {string[]} [selectedSubType] asset, message, ...
29
+ * @returns {Promise.<MetadataTypeMap>} fileName => fileContent map
30
+ */
31
+ static getJsonFromFS(dir: string, listBadKeys?: boolean, selectedSubType?: string[]): Promise<MetadataTypeMap>;
32
+ /**
33
+ * Returns fieldnames of Metadata Type. 'this.definition.fields' variable only set in child classes.
34
+ *
35
+ * @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
36
+ * @param {boolean} [isCaching] if true, then check if field should be skipped for caching
37
+ * @returns {string[]} Fieldnames
38
+ */
39
+ static getFieldNamesToRetrieve(additionalFields?: string[], isCaching?: boolean): string[];
40
+ /**
41
+ * Deploys metadata
42
+ *
43
+ * @param {MetadataTypeMap} metadata metadata mapped by their keyField
44
+ * @param {string} deployDir directory where deploy metadata are saved
45
+ * @param {string} retrieveDir directory where metadata after deploy should be saved
46
+ * @returns {Promise.<MetadataTypeMap>} Promise of keyField => metadata map
47
+ */
48
+ static deploy(metadata: MetadataTypeMap, deployDir: string, retrieveDir: string): Promise<MetadataTypeMap>;
49
+ /**
50
+ * Gets executed after deployment of metadata type
51
+ *
52
+ * @param {MetadataTypeMap} upsertResults metadata mapped by their keyField as returned by update/create
53
+ * @param {MetadataTypeMap} originalMetadata metadata to be updated (contains additioanl fields)
54
+ * @param {{created: number, updated: number}} createdUpdated counter representing successful creates/updates
55
+ * @returns {void}
56
+ */
57
+ static postDeployTasks(upsertResults: MetadataTypeMap, originalMetadata: MetadataTypeMap, createdUpdated: {
58
+ created: number;
59
+ updated: number;
60
+ }): void;
61
+ /**
62
+ * helper for {@link MetadataType.createREST}
63
+ *
64
+ * @param {MetadataTypeItem} metadataEntry a single metadata Entry
65
+ * @param {object} apiResponse varies depending on the API call
66
+ * @param {MetadataTypeItem} metadataEntryWithAllFields like metadataEntry but before non-creatable fields were stripped
67
+ * @returns {void}
68
+ */
69
+ static postCreateTasks(metadataEntry: MetadataTypeItem, apiResponse: object, metadataEntryWithAllFields: MetadataTypeItem): void;
70
+ /**
71
+ * helper for {@link MetadataType.updateREST}
72
+ *
73
+ * @param {MetadataTypeItem} metadataEntry a single metadata Entry
74
+ * @param {object} apiResponse varies depending on the API call
75
+ * @returns {void}
76
+ */
77
+ static postUpdateTasks(metadataEntry: MetadataTypeItem, apiResponse: object): void;
78
+ /**
79
+ * helper for {@link MetadataType.createREST} when legacy API endpoints as these do not return the created item but only their new id
80
+ *
81
+ * @param {MetadataTypeItem} metadataEntry a single metadata Entry
82
+ * @param {object} apiResponse varies depending on the API call
83
+ * @returns {Promise.<void>} -
84
+ */
85
+ static postDeployTasks_legacyApi(metadataEntry: MetadataTypeItem, apiResponse: object): Promise<void>;
86
+ /**
87
+ * Gets executed after retreive of metadata type
88
+ *
89
+ * @param {MetadataTypeItem} metadata a single item
90
+ * @param {string} targetDir folder where retrieves should be saved
91
+ * @param {boolean} [isTemplating] signals that we are retrieving templates
92
+ * @returns {MetadataTypeItem} cloned metadata
93
+ */
94
+ static postRetrieveTasks(metadata: MetadataTypeItem, targetDir: string, isTemplating?: boolean): MetadataTypeItem;
95
+ /**
96
+ * generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
97
+ *
98
+ * @param {MetadataTypeItem} metadata a single item
99
+ */
100
+ static setFolderPath(metadata: MetadataTypeItem): void;
101
+ /**
102
+ * generic script that retrieves the folder ID from cache and updates the given metadata with it before deploy
103
+ *
104
+ * @param {MetadataTypeItem} metadata a single item
105
+ */
106
+ static setFolderId(metadata: MetadataTypeItem): void;
107
+ /**
108
+ * Gets metadata from Marketing Cloud
109
+ *
110
+ * @param {string} retrieveDir Directory where retrieved metadata directory will be saved
111
+ * @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
112
+ * @param {string[]} [subTypeArr] optionally limit to a single subtype
113
+ * @param {string} [key] customer key of single item to retrieve
114
+ * @returns {Promise.<MetadataTypeMapObj>} metadata
115
+ */
116
+ static retrieve(retrieveDir: string, additionalFields?: string[], subTypeArr?: string[], key?: string): Promise<MetadataTypeMapObj>;
117
+ /**
118
+ * Gets metadata from Marketing Cloud
119
+ *
120
+ * @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
121
+ * @param {string[]} [subTypeArr] optionally limit to a single subtype
122
+ * @returns {Promise.<MetadataTypeMapObj>} metadata
123
+ */
124
+ static retrieveChangelog(additionalFields?: string[], subTypeArr?: string[]): Promise<MetadataTypeMapObj>;
125
+ /**
126
+ * Gets metadata cache with limited fields and does not store value to disk
127
+ *
128
+ * @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
129
+ * @param {string[]} [subTypeArr] optionally limit to a single subtype
130
+ * @param {string} [key] customer key of single item to retrieve
131
+ * @returns {Promise.<MetadataTypeMapObj>} metadata
132
+ */
133
+ static retrieveForCache(additionalFields?: string[], subTypeArr?: string[], key?: string): Promise<MetadataTypeMapObj>;
134
+ /**
135
+ * Gets metadata cache with limited fields and does not store value to disk
136
+ *
137
+ * @param {string} templateDir Directory where retrieved metadata directory will be saved
138
+ * @param {string} name name of the metadata file
139
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
140
+ * @param {string} [subType] optionally limit to a single subtype
141
+ * @returns {Promise.<MetadataTypeItemObj>} metadata
142
+ */
143
+ static retrieveAsTemplate(templateDir: string, name: string, templateVariables: TemplateMap, subType?: string): Promise<MetadataTypeItemObj>;
144
+ /**
145
+ * Retrieve a specific Script by Name
146
+ *
147
+ * @param {string} templateDir Directory where retrieved metadata directory will be saved
148
+ * @param {string} uri rest endpoint for GET
149
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
150
+ * @param {string} name name (not key) of the metadata item
151
+ * @returns {Promise.<{metadata: MetadataTypeItem, type: string}>} Promise
152
+ */
153
+ static retrieveTemplateREST(templateDir: string, uri: string, templateVariables: TemplateMap, name: string): Promise<{
154
+ metadata: MetadataTypeItem;
155
+ type: string;
156
+ }>;
157
+ /**
158
+ * Gets metadata cache with limited fields and does not store value to disk
159
+ *
160
+ * @param {string} retrieveDir Directory where retrieved metadata directory will be saved
161
+ * @param {string} templateDir (List of) Directory where built definitions will be saved
162
+ * @param {string} key name of the metadata file
163
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
164
+ * @returns {Promise.<MetadataTypeItemObj>} single metadata
165
+ */
166
+ static buildTemplate(retrieveDir: string, templateDir: string, key: string, templateVariables: TemplateMap): Promise<MetadataTypeItemObj>;
167
+ /**
168
+ * Gets executed before deploying metadata
169
+ *
170
+ * @param {MetadataTypeItem} metadata a single metadata item
171
+ * @param {string} deployDir folder where files for deployment are stored
172
+ * @returns {Promise.<MetadataTypeItem>} Promise of a single metadata item
173
+ */
174
+ static preDeployTasks(metadata: MetadataTypeItem, deployDir: string): Promise<MetadataTypeItem>;
175
+ /**
176
+ * Abstract create method that needs to be implemented in child metadata type
177
+ *
178
+ * @param {MetadataTypeItem} metadata single metadata entry
179
+ * @param {string} deployDir directory where deploy metadata are saved
180
+ * @returns {Promise.<object> | null} Promise of API response or null in case of an error
181
+ */
182
+ static create(metadata: MetadataTypeItem, deployDir: string): Promise<object> | null;
183
+ /**
184
+ * Abstract update method that needs to be implemented in child metadata type
185
+ *
186
+ * @param {MetadataTypeItem} metadata single metadata entry
187
+ * @param {MetadataTypeItem} [metadataBefore] metadata mapped by their keyField
188
+ * @returns {Promise.<object> | null} Promise of API response or null in case of an error
189
+ */
190
+ static update(metadata: MetadataTypeItem, metadataBefore?: MetadataTypeItem): Promise<object> | null;
191
+ /**
192
+ * Abstract refresh method that needs to be implemented in child metadata type
193
+ *
194
+ * @returns {void}
195
+ */
196
+ static refresh(): void;
197
+ /**
198
+ * this iterates over all items found in the retrieve folder and executes the type-specific method for replacing references
199
+ *
200
+ * @param {MetadataTypeMap} metadataMap list of metadata (keyField => metadata)
201
+ * @param {string} retrieveDir retrieve dir including cred and bu
202
+ * @returns {Promise.<string[]>} Returns list of keys for which references were replaced
203
+ */
204
+ static replaceCbReferenceLoop(metadataMap: MetadataTypeMap, retrieveDir: string): Promise<string[]>;
205
+ /**
206
+ * Abstract execute method that needs to be implemented in child metadata type
207
+ *
208
+ * @param {MetadataTypeItem} item single metadata item
209
+ * @param {string} [retrieveDir] directory where metadata is saved
210
+ * @returns {Promise.<MetadataTypeItem | CodeExtractItem>} key of the item that was updated
211
+ */
212
+ static replaceCbReference(item: MetadataTypeItem, retrieveDir?: string): Promise<MetadataTypeItem | CodeExtractItem>;
213
+ /**
214
+ * Abstract execute method that needs to be implemented in child metadata type
215
+ *
216
+ * @param {string[]} keyArr customerkey of the metadata
217
+ * @returns {Promise.<string[]>} Returns list of keys that were executed
218
+ */
219
+ static execute(keyArr: string[]): Promise<string[]>;
220
+ /**
221
+ * Abstract pause method that needs to be implemented in child metadata type
222
+ *
223
+ * @param {string[]} keyArr customerkey of the metadata
224
+ * @returns {Promise.<string[]>} Returns list of keys that were paused
225
+ */
226
+ static pause(keyArr: string[]): Promise<string[]>;
227
+ /**
228
+ * test if metadata was actually changed or not to potentially skip it during deployment
229
+ *
230
+ * @param {MetadataTypeItem} cachedVersion cached version from the server
231
+ * @param {MetadataTypeItem} metadata item to upload
232
+ * @param {string} [fieldName] optional field name to use for identifying the record in logs
233
+ * @returns {boolean} true if metadata was changed
234
+ */
235
+ static hasChanged(cachedVersion: MetadataTypeItem, metadata: MetadataTypeItem, fieldName?: string): boolean;
236
+ /**
237
+ * test if metadata was actually changed or not to potentially skip it during deployment
238
+ *
239
+ * @param {MetadataTypeItem} cachedVersion cached version from the server
240
+ * @param {MetadataTypeItem} metadata item to upload
241
+ * @param {string} [fieldName] optional field name to use for identifying the record in logs
242
+ * @param {boolean} [silent] optionally suppress logging
243
+ * @returns {boolean} true on first identified deviation or false if none are found
244
+ */
245
+ static hasChangedGeneric(cachedVersion: MetadataTypeItem, metadata: MetadataTypeItem, fieldName?: string, silent?: boolean): boolean;
246
+ /**
247
+ * MetadataType upsert, after retrieving from target and comparing to check if create or update operation is needed.
248
+ *
249
+ * @param {MetadataTypeMap} metadataMap metadata mapped by their keyField
250
+ * @param {string} deployDir directory where deploy metadata are saved
251
+ * @returns {Promise.<MetadataTypeMap>} keyField => metadata map
252
+ */
253
+ static upsert(metadataMap: MetadataTypeMap, deployDir: string): Promise<MetadataTypeMap>;
254
+ /**
255
+ * helper for {@link MetadataType.upsert}
256
+ *
257
+ * @param {MetadataTypeMap} metadataMap list of metadata
258
+ * @param {string} metadataKey key of item we are looking at
259
+ * @param {boolean} hasError error flag from previous code
260
+ * @param {MetadataTypeItemDiff[]} metadataToUpdate list of items to update
261
+ * @param {MetadataTypeItem[]} metadataToCreate list of items to create
262
+ * @returns {Promise.<'create' | 'update' | 'skip'>} action to take
263
+ */
264
+ static createOrUpdate(metadataMap: MetadataTypeMap, metadataKey: string, hasError: boolean, metadataToUpdate: MetadataTypeItemDiff[], metadataToCreate: MetadataTypeItem[]): Promise<'create' | 'update' | 'skip'>;
265
+ /**
266
+ * Creates a single metadata entry via REST
267
+ *
268
+ * @param {MetadataTypeItem} metadataEntry a single metadata Entry
269
+ * @param {string} uri rest endpoint for POST
270
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
271
+ * @returns {Promise.<object> | null} Promise of API response or null in case of an error
272
+ */
273
+ static createREST(metadataEntry: MetadataTypeItem, uri: string, handleOutside?: boolean): Promise<object> | null;
274
+ /**
275
+ * Creates a single metadata entry via fuel-soap (generic lib not wrapper)
276
+ *
277
+ * @param {MetadataTypeItem} metadataEntry single metadata entry
278
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
279
+ * @returns {Promise.<object> | null} Promise of API response or null in case of an error
280
+ */
281
+ static createSOAP(metadataEntry: MetadataTypeItem, handleOutside?: boolean): Promise<object> | null;
282
+ /**
283
+ * Updates a single metadata entry via REST
284
+ *
285
+ * @param {MetadataTypeItem} metadataEntry a single metadata Entry
286
+ * @param {string} uri rest endpoint for PATCH
287
+ * @param {'patch'|'post'|'put'} [httpMethod] defaults to 'patch'; some update requests require PUT instead of PATCH
288
+ * @returns {Promise.<object> | null} Promise of API response or null in case of an error
289
+ */
290
+ static updateREST(metadataEntry: MetadataTypeItem, uri: string, httpMethod?: 'patch' | 'post' | 'put'): Promise<object> | null;
291
+ /**
292
+ * helper for {@link MetadataType.updateREST} and {@link MetadataType.updateSOAP} that removes old files after the key was changed
293
+ *
294
+ * @param {MetadataTypeItem} metadataEntry a single metadata Entry
295
+ * @param {boolean} [keepMap] some types require to check the old-key new-key relationship in their postDeployTasks; currently used by dataExtension only
296
+ * @returns {Promise.<void>} -
297
+ */
298
+ static _postChangeKeyTasks(metadataEntry: MetadataTypeItem, keepMap?: boolean): Promise<void>;
299
+ /**
300
+ * Updates a single metadata entry via fuel-soap (generic lib not wrapper)
301
+ *
302
+ * @param {MetadataTypeItem} metadataEntry single metadata entry
303
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
304
+ * @returns {Promise.<object> | null} Promise of API response or null in case of an error
305
+ */
306
+ static updateSOAP(metadataEntry: MetadataTypeItem, handleOutside?: boolean): Promise<object> | null;
307
+ /**
308
+ *
309
+ * @param {SOAPError} ex error that occured
310
+ * @param {'creating'|'updating'|'retrieving'|'executing'|'pausing'} msg what to print in the log
311
+ * @param {MetadataTypeItem} [metadataEntry] single metadata entry
312
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
313
+ */
314
+ static _handleSOAPErrors(ex: any, msg: 'creating' | 'updating' | 'retrieving' | 'executing' | 'pausing', metadataEntry?: MetadataTypeItem, handleOutside?: boolean): void;
315
+ /**
316
+ * helper for {@link MetadataType._handleSOAPErrors}
317
+ *
318
+ * @param {SOAPError} ex error that occured
319
+ * @returns {string} error message
320
+ */
321
+ static getSOAPErrorMsg(ex: any): string;
322
+ /**
323
+ * Retrieves SOAP via generic fuel-soap wrapper based metadata of metadata type into local filesystem. executes callback with retrieved metadata
324
+ *
325
+ * @param {string} [retrieveDir] Directory where retrieved metadata directory will be saved
326
+ * @param {SoapRequestParams} [requestParams] required for the specific request (filter for example)
327
+ * @param {string} [singleRetrieve] key of single item to filter by
328
+ * @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
329
+ * @returns {Promise.<MetadataTypeMapObj>} Promise of item map
330
+ */
331
+ static retrieveSOAP(retrieveDir?: string, requestParams?: SoapRequestParams, singleRetrieve?: string, additionalFields?: string[]): Promise<MetadataTypeMapObj>;
332
+ /**
333
+ * Retrieves Metadata for Rest Types
334
+ *
335
+ * @param {string} retrieveDir Directory where retrieved metadata directory will be saved
336
+ * @param {string} uri rest endpoint for GET
337
+ * @param {TemplateMap} [templateVariables] variables to be replaced in the metadata
338
+ * @param {string} [singleRetrieve] key of single item to filter by
339
+ * @returns {Promise.<{metadata: (MetadataTypeMap | MetadataTypeItem), type: string}>} Promise of item map (single item for templated result)
340
+ */
341
+ static retrieveREST(retrieveDir: string, uri: string, templateVariables?: TemplateMap, singleRetrieve?: string): Promise<{
342
+ metadata: (MetadataTypeMap | MetadataTypeItem);
343
+ type: string;
344
+ }>;
345
+ /**
346
+ *
347
+ * @param {object[]} urlArray {uri: string, id: string} combo of URL and ID/key of metadata
348
+ * @param {number} [concurrentRequests] optionally set a different amount of concurrent requests
349
+ * @param {boolean} [logAmountOfUrls] if true, prints an info message about to-be loaded amount of metadata
350
+ * @returns {Promise.<{metadata: (MetadataTypeMap | MetadataTypeItem), type: string}>} Promise of item map (single item for templated result)
351
+ */
352
+ static retrieveRESTcollection(urlArray: object[], concurrentRequests?: number, logAmountOfUrls?: boolean): Promise<{
353
+ metadata: (MetadataTypeMap | MetadataTypeItem);
354
+ type: string;
355
+ }>;
356
+ /**
357
+ * helper for {@link this.retrieveRESTcollection}
358
+ *
359
+ * @param {RestError} ex exception
360
+ * @param {string} id id or key of item
361
+ * @returns {Promise.<any>} -
362
+ */
363
+ static handleRESTErrors(ex: any, id: string): Promise<any>;
364
+ /**
365
+ * Used to execute a query/automation etc.
366
+ *
367
+ * @param {string} uri REST endpoint where the POST request should be sent
368
+ * @param {string} key item key
369
+ * @returns {Promise.<{key:string, response:string}>} metadata key and API response (OK or error)
370
+ */
371
+ static executeREST(uri: string, key: string): Promise<{
372
+ key: string;
373
+ response: string;
374
+ }>;
375
+ /**
376
+ * Used to execute a query/automation etc.
377
+ *
378
+ * @param {MetadataTypeItem} [metadataEntry] single metadata entry
379
+ * @returns {Promise.<{key:string, response:object}>} metadata key and API response
380
+ */
381
+ static executeSOAP(metadataEntry?: MetadataTypeItem): Promise<{
382
+ key: string;
383
+ response: object;
384
+ }>;
385
+ /**
386
+ * helper for {@link MetadataType.retrieveREST} and {@link MetadataType.retrieveSOAP}
387
+ *
388
+ * @param {string|number} singleRetrieve key of single item to filter by
389
+ * @param {MetadataTypeMap} metadataMap saved metadata
390
+ * @returns {Promise.<void>} -
391
+ */
392
+ static runDocumentOnRetrieve(singleRetrieve: string | number, metadataMap: MetadataTypeMap): Promise<void>;
393
+ /**
394
+ * Builds map of metadata entries mapped to their keyfields
395
+ *
396
+ * @param {object} body json of response body
397
+ * @param {string} [singleRetrieve] key of single item to filter by
398
+ * @returns {MetadataTypeMap} keyField => metadata map
399
+ */
400
+ static parseResponseBody(body: object, singleRetrieve?: string): MetadataTypeMap;
401
+ /**
402
+ * Deletes a field in a metadata entry if the selected definition property equals false.
403
+ *
404
+ * @example
405
+ * Removes field (or nested fields childs) that are not updateable
406
+ * deleteFieldByDefinition(metadataEntry, 'CustomerKey', 'isUpdateable');
407
+ * @param {MetadataTypeItem} metadataEntry One entry of a metadataType
408
+ * @param {string} fieldPath field path to be checked if it conforms to the definition (dot seperated if nested): 'fuu.bar'
409
+ * @param {'isCreateable'|'isUpdateable'|'retrieving'|'template'} definitionProperty delete field if definitionProperty equals false for specified field. Options: [isCreateable | isUpdateable]
410
+ * @param {string} origin string of parent object, required when using arrays as these are parsed slightly differently.
411
+ * @returns {void}
412
+ */
413
+ static deleteFieldByDefinition(metadataEntry: MetadataTypeItem, fieldPath: string, definitionProperty: 'isCreateable' | 'isUpdateable' | 'retrieving' | 'template', origin: string): void;
414
+ /**
415
+ * Remove fields from metadata entry that are not createable
416
+ *
417
+ * @param {MetadataTypeItem} metadataEntry metadata entry
418
+ * @returns {void}
419
+ */
420
+ static removeNotCreateableFields(metadataEntry: MetadataTypeItem): void;
421
+ /**
422
+ * Remove fields from metadata entry that are not updateable
423
+ *
424
+ * @param {MetadataTypeItem} metadataEntry metadata entry
425
+ * @returns {void}
426
+ */
427
+ static removeNotUpdateableFields(metadataEntry: MetadataTypeItem): void;
428
+ /**
429
+ * Remove fields from metadata entry that are not needed in the template
430
+ *
431
+ * @param {MetadataTypeItem} metadataEntry metadata entry
432
+ * @returns {void}
433
+ */
434
+ static keepTemplateFields(metadataEntry: MetadataTypeItem): void;
435
+ /**
436
+ * Remove fields from metadata entry that are not needed in the stored metadata
437
+ *
438
+ * @param {MetadataTypeItem} metadataEntry metadata entry
439
+ * @returns {void}
440
+ */
441
+ static keepRetrieveFields(metadataEntry: MetadataTypeItem): void;
442
+ /**
443
+ * checks if the current metadata entry should be saved on retrieve or not
444
+ *
445
+ * @static
446
+ * @param {MetadataTypeItem} metadataEntry metadata entry
447
+ * @param {boolean} [include] true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude
448
+ * @returns {boolean} true: skip saving == filtered; false: continue with saving
449
+ * @memberof MetadataType
450
+ */
451
+ static isFiltered(metadataEntry: MetadataTypeItem, include?: boolean): boolean;
452
+ /**
453
+ * optionally filter by what folder something is in
454
+ *
455
+ * @static
456
+ * @param {object} metadataEntry metadata entry
457
+ * @param {boolean} [include] true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude
458
+ * @returns {boolean} true: filtered == do NOT save; false: not filtered == do save
459
+ * @memberof MetadataType
460
+ */
461
+ static isFilteredFolder(metadataEntry: object, include?: boolean): boolean;
462
+ /**
463
+ * internal helper
464
+ *
465
+ * @private
466
+ * @param {object} myFilter include/exclude filter object
467
+ * @param {string} r__folder_Path already determined folder path
468
+ * @returns {?boolean} true: filter value found; false: filter value not found; null: no filter defined
469
+ */
470
+ private static _filterFolder;
471
+ /**
472
+ * internal helper
473
+ *
474
+ * @private
475
+ * @param {object} myFilter include/exclude filter object
476
+ * @param {object} metadataEntry metadata entry
477
+ * @returns {?boolean} true: filter value found; false: filter value not found; null: no filter defined
478
+ */
479
+ private static _filterOther;
480
+ /**
481
+ * Helper for writing Metadata to disk, used for Retrieve and deploy
482
+ *
483
+ * @param {MetadataTypeMap} results metadata results from deploy
484
+ * @param {string} retrieveDir directory where metadata should be stored after deploy/retrieve
485
+ * @param {string} [overrideType] for use when there is a subtype (such as folder-queries)
486
+ * @param {TemplateMap} [templateVariables] variables to be replaced in the metadata
487
+ * @returns {Promise.<MetadataTypeMap>} Promise of saved metadata
488
+ */
489
+ static saveResults(results: MetadataTypeMap, retrieveDir: string, overrideType?: string, templateVariables?: TemplateMap): Promise<MetadataTypeMap>;
490
+ /**
491
+ *
492
+ * @param {MetadataTypeMap} results metadata results from deploy
493
+ * @param {string} originalKey key of metadata
494
+ * @param {string[]} baseDir [retrieveDir, ...overrideType.split('-')]
495
+ * @param {string} [subtypeExtension] e.g. ".asset-meta" or ".query-meta"
496
+ * @param {TemplateMap} [templateVariables] variables to be replaced in the metadata
497
+ * @returns {MetadataTypeItem} saved metadata
498
+ */
499
+ static saveToDisk(results: MetadataTypeMap, originalKey: string, baseDir: string[], subtypeExtension?: string, templateVariables?: TemplateMap): MetadataTypeItem;
500
+ /**
501
+ * helper for {@link MetadataType.buildDefinitionForNested}
502
+ * searches extracted file for template variable names and applies the market values
503
+ *
504
+ * @param {string} code code from extracted code
505
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
506
+ * @returns {string} code with markets applied
507
+ */
508
+ static applyTemplateValues(code: string, templateVariables: TemplateMap): string;
509
+ /**
510
+ * helper for {@link MetadataType.buildTemplateForNested}
511
+ * searches extracted file for template variable values and applies the market variable names
512
+ *
513
+ * @param {string} code code from extracted code
514
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
515
+ * @returns {string} code with markets applied
516
+ */
517
+ static applyTemplateNames(code: string, templateVariables: TemplateMap): string;
518
+ /**
519
+ * helper for {@link MetadataType.buildDefinition}
520
+ * handles extracted code if any are found for complex types (e.g script, asset, query)
521
+ *
522
+ * @param {string} templateDir Directory where metadata templates are stored
523
+ * @param {string | string[]} targetDir Directory where built definitions will be saved
524
+ * @param {MetadataTypeItem} metadata main JSON file that was read from file system
525
+ * @param {TemplateMap} variables variables to be replaced in the metadata
526
+ * @param {string} templateName name of the template to be built
527
+ * @returns {Promise.<string[][]>} list of extracted files with path-parts provided as an array
528
+ */
529
+ static buildDefinitionForNested(templateDir: string, targetDir: string | string[], metadata: MetadataTypeItem, variables: TemplateMap, templateName: string): Promise<string[][]>;
530
+ /**
531
+ * helper for {@link MetadataType.buildTemplate}
532
+ * handles extracted code if any are found for complex types
533
+ *
534
+ * @param {string} templateDir Directory where metadata templates are stored
535
+ * @param {string|string[]} targetDir (List of) Directory where built definitions will be saved
536
+ * @param {MetadataTypeItem} metadata main JSON file that was read from file system
537
+ * @param {TemplateMap} templateVariables variables to be replaced in the metadata
538
+ * @param {string} templateName name of the template to be built
539
+ * @returns {Promise.<string[][]>} list of extracted files with path-parts provided as an array
540
+ */
541
+ static buildTemplateForNested(templateDir: string, targetDir: string | string[], metadata: MetadataTypeItem, templateVariables: TemplateMap, templateName: string): Promise<string[][]>;
542
+ /**
543
+ * check template directory for complex types that open subfolders for their subtypes
544
+ *
545
+ * @param {string} templateDir Directory where metadata templates are stored
546
+ * @param {string} templateName name of the metadata file
547
+ * @returns {Promise.<string>} subtype name
548
+ */
549
+ static findSubType(templateDir: string, templateName: string): Promise<string>;
550
+ /**
551
+ * optional method used for some types to try a different folder structure
552
+ *
553
+ * @param {string} templateDir Directory where metadata templates are stored
554
+ * @param {string[]} typeDirArr current subdir for this type
555
+ * @param {string} templateName name of the metadata template
556
+ * @param {string} fileName name of the metadata template file w/o extension
557
+ * @param {Error} ex error from first attempt
558
+ * @returns {Promise.<string>} metadata in string form
559
+ */
560
+ static readSecondaryFolder(templateDir: string, typeDirArr: string[], templateName: string, fileName: string, ex: Error): Promise<string>;
561
+ /**
562
+ * Builds definition based on template
563
+ * NOTE: Most metadata files should use this generic method, unless custom
564
+ * parsing is required (for example scripts & queries)
565
+ *
566
+ * @param {string} templateDir Directory where metadata templates are stored
567
+ * @param {string | string[]} targetDir (List of) Directory where built definitions will be saved
568
+ * @param {string} templateName name of the metadata file
569
+ * @param {TemplateMap} variables variables to be replaced in the metadata
570
+ * @returns {Promise.<MetadataTypeMapObj>} Promise of item map
571
+ */
572
+ static buildDefinition(templateDir: string, targetDir: string | string[], templateName: string, variables: TemplateMap): Promise<MetadataTypeMapObj>;
573
+ /**
574
+ * Standardizes a check for multiple messages
575
+ *
576
+ * @param {object} ex response payload from REST API
577
+ * @returns {string[]} formatted Error Message
578
+ */
579
+ static getErrorsREST(ex: object): string[];
580
+ /**
581
+ * Gets metadata cache with limited fields and does not store value to disk
582
+ *
583
+ * @param {MetadataTypeMap} [metadata] a list of type definitions
584
+ * @param {boolean} [isDeploy] used to skip non-supported message during deploy
585
+ * @returns {void}
586
+ */
587
+ static document(metadata?: MetadataTypeMap, isDeploy?: boolean): void;
588
+ /**
589
+ * get name & key for provided id
590
+ *
591
+ * @param {string} id Identifier of metadata
592
+ * @returns {Promise.<{key:string, name:string}>} key, name and path of metadata; null if not found
593
+ */
594
+ static resolveId(id: string): Promise<{
595
+ key: string;
596
+ name: string;
597
+ }>;
598
+ /**
599
+ * Delete a metadata item from the specified business unit
600
+ *
601
+ * @param {string} customerKey Identifier of data extension
602
+ * @returns {Promise.<boolean>} deletion success status
603
+ */
604
+ static deleteByKey(customerKey: string): Promise<boolean>;
605
+ /**
606
+ * clean up after deleting a metadata item
607
+ *
608
+ * @param {string} customerKey Identifier of metadata item
609
+ * @param {string[]} [additionalExtensions] additional file extensions to delete on top of `${this.definition.type}-meta.json`
610
+ * @returns {Promise.<void>} - Promise
611
+ */
612
+ static postDeleteTasks(customerKey: string, additionalExtensions?: string[]): Promise<void>;
613
+ /**
614
+ * Delete a data extension from the specified business unit
615
+ *
616
+ * @param {string} customerKey Identifier of metadata
617
+ * @param {string} [overrideKeyField] optionally change the name of the key field if the api uses a different name
618
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
619
+ * @returns {Promise.<boolean>} deletion success flag
620
+ */
621
+ static deleteByKeySOAP(customerKey: string, overrideKeyField?: string, handleOutside?: boolean): Promise<boolean>;
622
+ /**
623
+ * Delete a data extension from the specified business unit
624
+ *
625
+ * @param {string} url endpoint
626
+ * @param {string} key Identifier of metadata
627
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
628
+ * @returns {Promise.<boolean>} deletion success flag
629
+ */
630
+ static deleteByKeyREST(url: string, key: string, handleOutside?: boolean): Promise<boolean>;
631
+ /**
632
+ * Returns metadata of a business unit that is saved locally
633
+ *
634
+ * @param {string} readDir root directory of metadata.
635
+ * @param {boolean} [listBadKeys] do not print errors, used for badKeys()
636
+ * @param {object} [buMetadata] Metadata of BU in local directory
637
+ * @returns {Promise.<object>} Metadata of BU in local directory
638
+ */
639
+ static readBUMetadataForType(readDir: string, listBadKeys?: boolean, buMetadata?: object): Promise<object>;
640
+ /**
641
+ * should return only the json for all but asset, query and script that are saved as multiple files
642
+ * additionally, the documentation for dataExtension and automation should be returned
643
+ *
644
+ * @param {string[]} keyArr customerkey of the metadata
645
+ * @returns {Promise.<string[]>} list of all files that need to be committed in a flat array ['path/file1.ext', 'path/file2.ext']
646
+ */
647
+ static getFilesToCommit(keyArr: string[]): Promise<string[]>;
648
+ /**
649
+ *
650
+ * @param {MetadataTypeMap} metadataMap metadata mapped by their keyField
651
+ * @returns {string[]} list of keys
652
+ */
653
+ static getKeysForFixing(metadataMap: MetadataTypeMap): string[];
654
+ /**
655
+ * helper for getKeysForFixing and createOrUpdate
656
+ *
657
+ * @param {string} baseField name of the field to start the new key with
658
+ * @param {MetadataTypeItem} metadataItem -
659
+ * @param {number} maxKeyLength -
660
+ * @returns {string} newKey
661
+ */
662
+ static getNewKey(baseField: string, metadataItem: MetadataTypeItem, maxKeyLength: number): string;
663
+ }
664
+ declare namespace MetadataType {
665
+ namespace definition {
666
+ let bodyIteratorField: string;
667
+ let dependencies: any[];
668
+ let fields: any;
669
+ let hasExtended: any;
670
+ let idField: string;
671
+ let keyField: string;
672
+ let nameField: string;
673
+ let type: string;
674
+ }
675
+ let client: SDK;
676
+ let properties: Mcdevrc;
677
+ let subType: string;
678
+ let buObject: BuObject;
679
+ }
680
+ //# sourceMappingURL=MetadataType.d.ts.map