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,12 +1,14 @@
1
1
  import File from '../lib/util/file.js';
2
2
 
3
- import chai, { assert, expect } from 'chai';
3
+ import * as chai from 'chai';
4
+ const assert = chai.assert;
5
+ const expect = chai.expect;
6
+
4
7
  import chaiFiles from 'chai-files';
5
8
  import cache from '../lib/util/cache.js';
6
9
  import * as testUtils from './utils.js';
7
10
  import handler from '../lib/index.js';
8
11
  chai.use(chaiFiles);
9
- const file = chaiFiles.file;
10
12
 
11
13
  /**
12
14
  * gets file from Retrieve folder
@@ -17,10 +19,16 @@ const file = chaiFiles.file;
17
19
  * @param {string} [buName] used when we need to test on ParentBU
18
20
  * @returns {Promise.<string>} file in string form
19
21
  */
20
- function getActualJson(customerKey, type, subtype, buName = 'testBU') {
21
- return File.readJSON(
22
- `./retrieve/testInstance/${buName}/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.json`
23
- );
22
+ async function getActualJson(customerKey, type, subtype, buName = 'testBU') {
23
+ try {
24
+ return await File.readJSON(
25
+ `./retrieve/testInstance/${buName}/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.json`
26
+ );
27
+ } catch {
28
+ return await File.readJSON(
29
+ `./retrieve/testInstance/${buName}/${type}/${subtype}/${customerKey}/${customerKey}.${type}-${subtype}-meta.json`
30
+ );
31
+ }
24
32
  }
25
33
  /**
26
34
  * gets file from Retrieve folder
@@ -29,39 +37,134 @@ function getActualJson(customerKey, type, subtype, buName = 'testBU') {
29
37
  * @param {string} type of metadata
30
38
  * @param {string} subtype of metadata
31
39
  * @param {string} ext file extension
32
- * @returns {string} file path
40
+ * @param {string} [filename] optional fileprefix that differs from customerKey
41
+ * @param {string} [buName] used when we need to test on ParentBU
42
+ * @returns {Promise.<string | null>} file path
43
+ */
44
+ async function getActualFile(customerKey, type, subtype, ext, filename, buName = 'testBU') {
45
+ const path = `./retrieve/testInstance/${buName}/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.${ext}`;
46
+ const pathSub = `./retrieve/testInstance/${buName}/${type}/${subtype}/${customerKey}/${filename}.${type}-${subtype}-meta.${ext}`;
47
+
48
+ try {
49
+ return await File.readFile(filename ? pathSub : path, 'utf8');
50
+ } catch {
51
+ console.log(`File not found: ${filename ? pathSub : path}`); // eslint-disable-line no-console
52
+ return null;
53
+ }
54
+ }
55
+ /**
56
+ * gets file from Template folder
57
+ *
58
+ * @param {string} customerKey of metadata
59
+ * @param {string} type of metadata
60
+ * @param {string} subtype of metadata
61
+ * @returns {Promise.<string>} file in string form
62
+ */
63
+ async function getActualTemplateJson(customerKey, type, subtype) {
64
+ try {
65
+ return await File.readJSON(
66
+ `./template/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.json`
67
+ );
68
+ } catch {
69
+ return await File.readJSON(
70
+ `./template/${type}/${subtype}/${customerKey}/${customerKey}.${type}-${subtype}-meta.json`
71
+ );
72
+ }
73
+ }
74
+ /**
75
+ * gets file from Template folder
76
+ *
77
+ * @param {string} customerKey of metadata
78
+ * @param {string} type of metadata
79
+ * @param {string} subtype of metadata
80
+ * @param {string} ext file extension
81
+ * @param {string} [filename] optional fileprefix that differs from customerKey
82
+ * @returns {Promise.<string | undefined>} file
83
+ */
84
+ async function getActualTemplateFile(customerKey, type, subtype, ext, filename) {
85
+ const path = `./template/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.${ext}`;
86
+ const pathSub = `./template/${type}/${subtype}/${customerKey}/${filename}.${type}-${subtype}-meta.${ext}`;
87
+
88
+ try {
89
+ return File.readFile(filename ? pathSub : path, 'utf8');
90
+ } catch {
91
+ console.log(`File not found: ${filename ? pathSub : path}`); // eslint-disable-line no-console
92
+ return;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * gets file from Deploy folder
98
+ *
99
+ * @param {string} customerKey of metadata
100
+ * @param {string} type of metadata
101
+ * @param {string} subtype of metadata
102
+ * @param {string} [buName] used when we need to test on ParentBU
103
+ * @returns {Promise.<string>} file in string form
104
+ */
105
+ async function getActualDeployJson(customerKey, type, subtype, buName = 'testBU') {
106
+ try {
107
+ return await File.readJSON(
108
+ `./deploy/testInstance/${buName}/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.json`
109
+ );
110
+ } catch {
111
+ return await File.readJSON(
112
+ `./deploy/testInstance/${buName}/${type}/${subtype}/${customerKey}/${customerKey}.${type}-${subtype}-meta.json`
113
+ );
114
+ }
115
+ }
116
+ /**
117
+ * gets file from Deploy folder
118
+ *
119
+ * @param {string} customerKey of metadata
120
+ * @param {string} type of metadata
121
+ * @param {string} subtype of metadata
122
+ * @param {string} ext file extension
123
+ * @param {string} [filename] optional fileprefix that differs from customerKey
124
+ * @param {string} [buName] used when we need to test on ParentBU
125
+ * @returns {Promise.<string | undefined>} file content
33
126
  */
34
- function getActualFile(customerKey, type, subtype, ext) {
35
- return `./retrieve/testInstance/testBU/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.${ext}`;
127
+ async function getActualDeployFile(customerKey, type, subtype, ext, filename, buName = 'testBU') {
128
+ const path = `./deploy/testInstance/${buName}/${type}/${subtype}/${customerKey}.${type}-${subtype}-meta.${ext}`;
129
+ const pathSub = `./deploy/testInstance/${buName}/${type}/${subtype}/${customerKey}/${filename}.${type}-${subtype}-meta.${ext}`;
130
+
131
+ try {
132
+ return File.readFile(filename ? pathSub : path, 'utf8');
133
+ } catch {
134
+ console.log(`File not found: ${filename ? pathSub : path}`); // eslint-disable-line no-console
135
+ return;
136
+ }
36
137
  }
37
138
 
38
139
  describe('type: asset', () => {
39
140
  beforeEach(() => {
40
141
  testUtils.mockSetup();
41
142
  });
143
+
42
144
  afterEach(() => {
43
145
  testUtils.mockReset();
44
146
  });
147
+
45
148
  describe('Retrieve ================', () => {
46
149
  it('Should retrieve a asset & ensure non-ssjs code is not removed', async () => {
47
150
  // WHEN
48
151
  const retrieve = await handler.retrieve('testInstance/testBU', ['asset']);
49
152
 
50
153
  // THEN
51
- assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
154
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
52
155
  assert.equal(
53
156
  retrieve['testInstance/testBU'].asset
54
157
  ? Object.keys(retrieve['testInstance/testBU'].asset).length
55
158
  : 0,
56
- 3,
57
- 'only 3 assets expected in retrieve response'
159
+ 5,
160
+ 'only 5 assets expected in retrieve response'
58
161
  );
59
162
  // get results from cache
60
163
  const result = cache.getCache();
61
164
  assert.equal(
62
165
  result.asset ? Object.keys(result.asset).length : 0,
63
- 3,
64
- 'only 3 assets expected in cache'
166
+ 5,
167
+ 'only 5 assets expected in cache'
65
168
  );
66
169
 
67
170
  assert.deepEqual(
@@ -69,13 +172,626 @@ describe('type: asset', () => {
69
172
  await testUtils.getExpectedJson('9999999', 'asset', 'block-1157-retrieve'),
70
173
  'returned metadata was not equal expected'
71
174
  );
72
- expect(file(getActualFile('mcdev-issue-1157', 'asset', 'block', 'html'))).to.equal(
73
- file(testUtils.getExpectedFile('9999999', 'asset', 'block-1157-retrieve', 'html'))
175
+ expect(await getActualFile('mcdev-issue-1157', 'asset', 'block', 'html')).to.equal(
176
+ await testUtils.getExpectedFile('9999999', 'asset', 'block-1157-retrieve', 'html')
177
+ );
178
+
179
+ assert.deepEqual(
180
+ await getActualJson('testExisting_asset_templatebasedemail', 'asset', 'message'),
181
+ await testUtils.getExpectedJson('9999999', 'asset', 'retrieve-templatebasedemail'),
182
+ 'returned metadata was not equal expected'
183
+ );
184
+ expect(
185
+ await getActualFile(
186
+ 'testExisting_asset_templatebasedemail',
187
+ 'asset',
188
+ 'message',
189
+ 'html',
190
+ 'views.html.content'
191
+ )
192
+ ).to.equal(
193
+ await testUtils.getExpectedFile(
194
+ '9999999',
195
+ 'asset',
196
+ 'retrieve-templatebasedemail-html',
197
+ 'html'
198
+ )
199
+ );
200
+ expect(
201
+ await getActualFile(
202
+ 'testExisting_asset_templatebasedemail',
203
+ 'asset',
204
+ 'message',
205
+ 'amp',
206
+ 'views.preheader.content'
207
+ )
208
+ ).to.equal(
209
+ await testUtils.getExpectedFile(
210
+ '9999999',
211
+ 'asset',
212
+ 'retrieve-templatebasedemail-preheader',
213
+ 'amp'
214
+ )
215
+ );
216
+
217
+ assert.equal(
218
+ testUtils.getAPIHistoryLength(),
219
+ 15,
220
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
221
+ );
222
+ return;
223
+ });
224
+ });
225
+
226
+ describe('Deploy ================', () => {
227
+ beforeEach(() => {
228
+ testUtils.mockSetup(true);
229
+ });
230
+
231
+ it('Should create an asset with mis-matching memberId, automatically adding the MID suffix', async () => {
232
+ // WHEN
233
+ const deployResult = await handler.deploy(
234
+ 'testInstance/testBU',
235
+ ['asset'],
236
+ ['testNew_asset']
237
+ );
238
+ // THEN
239
+ assert.equal(process.exitCode, 0, 'deploy should not have thrown an error');
240
+
241
+ // check how many items were deployed
242
+ assert.equal(
243
+ deployResult['testInstance/testBU']?.asset
244
+ ? Object.keys(deployResult['testInstance/testBU']?.asset).length
245
+ : 0,
246
+ 1,
247
+ '1 assets to be deployed'
248
+ );
249
+ const upsertCallout = testUtils.getRestCallout('post', '/asset/v1/content/assets/');
250
+ assert.equal(
251
+ upsertCallout?.customerKey,
252
+ 'testNew_asset-9999999',
253
+ 'customerKey should be testNew_asset-9999999 due to automatic MID suffix'
254
+ );
255
+
256
+ // insert
257
+ assert.deepEqual(
258
+ await getActualJson('testNew_asset-9999999', 'asset', 'block'),
259
+ await testUtils.getExpectedJson('9999999', 'asset', 'create'),
260
+ 'returned metadata was not equal expected for create'
261
+ );
262
+
263
+ assert.equal(
264
+ testUtils.getAPIHistoryLength(),
265
+ 10,
266
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
267
+ );
268
+ return;
269
+ });
270
+
271
+ it('Should create an assetwith mis-matching memberId, --noMidSuffix and --keySuffix', async () => {
272
+ handler.setOptions({ keySuffix: '_DEV', noMidSuffix: true });
273
+ // WHEN
274
+ const deployResult = await handler.deploy(
275
+ 'testInstance/testBU',
276
+ ['asset'],
277
+ ['testNew_asset']
278
+ );
279
+ // THEN
280
+ assert.equal(process.exitCode, 0, 'deploy should not have thrown an error');
281
+
282
+ // check how many items were deployed
283
+ assert.equal(
284
+ deployResult['testInstance/testBU']?.asset
285
+ ? Object.keys(deployResult['testInstance/testBU']?.asset).length
286
+ : 0,
287
+ 1,
288
+ '1 assets to be deployed'
289
+ );
290
+ const upsertCallout = testUtils.getRestCallout('post', '/asset/v1/content/assets/');
291
+ assert.equal(
292
+ upsertCallout?.customerKey,
293
+ 'testNew_asset_DEV',
294
+ 'customerKey should be testNew_asset_DEV due to noMidSuffix and keySuffix'
295
+ );
296
+
297
+ assert.equal(
298
+ testUtils.getAPIHistoryLength(),
299
+ 10,
300
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
301
+ );
302
+ return;
303
+ });
304
+
305
+ it('Should create an assetwith mis-matching memberId, --noMidSuffix', async () => {
306
+ handler.setOptions({ noMidSuffix: true });
307
+ // WHEN
308
+ const deployResult = await handler.deploy(
309
+ 'testInstance/testBU',
310
+ ['asset'],
311
+ ['testNew_asset']
312
+ );
313
+ // THEN
314
+ assert.equal(process.exitCode, 0, 'deploy should not have thrown an error');
315
+
316
+ // check how many items were deployed
317
+ assert.equal(
318
+ deployResult['testInstance/testBU']?.asset
319
+ ? Object.keys(deployResult['testInstance/testBU']?.asset).length
320
+ : 0,
321
+ 1,
322
+ '1 assets to be deployed'
323
+ );
324
+ const upsertCallout = testUtils.getRestCallout('post', '/asset/v1/content/assets/');
325
+ assert.equal(
326
+ upsertCallout?.customerKey,
327
+ 'testNew_asset',
328
+ 'customerKey should be testNew_asset due to noMidSuffix'
329
+ );
330
+
331
+ assert.equal(
332
+ testUtils.getAPIHistoryLength(),
333
+ 10,
334
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
335
+ );
336
+ return;
337
+ });
338
+ });
339
+
340
+ describe('Templating ================', () => {
341
+ it('Should create a asset template via buildTemplate and build it', async () => {
342
+ // download first before we test buildTemplate
343
+ await handler.retrieve('testInstance/testBU', ['asset']);
344
+
345
+ const expectedApiCallsRetrieve = 15;
346
+ assert.equal(
347
+ testUtils.getAPIHistoryLength(),
348
+ expectedApiCallsRetrieve,
349
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
350
+ );
351
+
352
+ // GIVEN there is a template
353
+ const result = await handler.buildTemplate(
354
+ 'testInstance/testBU',
355
+ 'asset',
356
+ ['testExisting_asset_templatebasedemail'],
357
+ 'testSourceMarket'
358
+ );
359
+ // WHEN
360
+ assert.equal(process.exitCode, 0, 'buildTemplate should not have thrown an error');
361
+ assert.equal(
362
+ result.asset ? Object.keys(result.asset).length : 0,
363
+ 1,
364
+ 'only one asset expected'
365
+ );
366
+ assert.deepEqual(
367
+ await getActualTemplateJson(
368
+ 'testExisting_asset_templatebasedemail',
369
+ 'asset',
370
+ 'message'
371
+ ),
372
+ await testUtils.getExpectedJson('9999999', 'asset', 'template-templatebasedemail'),
373
+ 'returned template JSON of buildTemplate was not equal expected'
374
+ );
375
+
376
+ expect(
377
+ await getActualTemplateFile(
378
+ 'testExisting_asset_templatebasedemail',
379
+ 'asset',
380
+ 'message',
381
+ 'html',
382
+ 'views.html.content'
383
+ )
384
+ ).to.equal(
385
+ await testUtils.getExpectedFile(
386
+ '9999999',
387
+ 'asset',
388
+ 'template-templatebasedemail-html',
389
+ 'html'
390
+ )
391
+ );
392
+ expect(
393
+ await getActualTemplateFile(
394
+ 'testExisting_asset_templatebasedemail',
395
+ 'asset',
396
+ 'message',
397
+ 'amp',
398
+ 'views.preheader.content'
399
+ )
400
+ ).to.equal(
401
+ await testUtils.getExpectedFile(
402
+ '9999999',
403
+ 'asset',
404
+ 'template-templatebasedemail-preheader',
405
+ 'amp'
406
+ )
407
+ );
408
+ // THEN
409
+ await handler.buildDefinition(
410
+ 'testInstance/testBU',
411
+ 'asset',
412
+ ['testExisting_asset_templatebasedemail'],
413
+ 'testTargetMarket'
414
+ );
415
+ assert.equal(process.exitCode, 0, 'buildDefinition should not have thrown an error');
416
+
417
+ assert.deepEqual(
418
+ await getActualDeployJson(
419
+ 'testTemplated_asset_templatebasedemail',
420
+ 'asset',
421
+ 'message'
422
+ ),
423
+ await testUtils.getExpectedJson('9999999', 'asset', 'build-templatebasedemail'),
424
+ 'returned deployment JSON was not equal expected'
425
+ );
426
+ expect(
427
+ await getActualDeployFile(
428
+ 'testTemplated_asset_templatebasedemail',
429
+ 'asset',
430
+ 'message',
431
+ 'html',
432
+ 'views.html.content'
433
+ )
434
+ ).to.equal(
435
+ await testUtils.getExpectedFile(
436
+ '9999999',
437
+ 'asset',
438
+ 'build-templatebasedemail-html',
439
+ 'html'
440
+ )
441
+ );
442
+ expect(
443
+ await getActualDeployFile(
444
+ 'testTemplated_asset_templatebasedemail',
445
+ 'asset',
446
+ 'message',
447
+ 'amp',
448
+ 'views.preheader.content'
449
+ )
450
+ ).to.equal(
451
+ await testUtils.getExpectedFile(
452
+ '9999999',
453
+ 'asset',
454
+ 'build-templatebasedemail-preheader',
455
+ 'amp'
456
+ )
457
+ );
458
+
459
+ assert.equal(
460
+ testUtils.getAPIHistoryLength() - expectedApiCallsRetrieve,
461
+ 0,
462
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
463
+ );
464
+ return;
465
+ });
466
+ });
467
+
468
+ describe('Delete ================', () => {
469
+ it('Should delete the item', async () => {
470
+ // WHEN
471
+ const isDeleted = await handler.deleteByKey(
472
+ 'testInstance/testBU',
473
+ 'asset',
474
+ 'testExisting_asset'
475
+ );
476
+ // THEN
477
+ assert.equal(process.exitCode, 0, 'deleteByKey should not have thrown an error');
478
+ assert.equal(isDeleted, true, 'deleteByKey should have returned true');
479
+ return;
480
+ });
481
+ });
482
+
483
+ describe('ResolveID ================', () => {
484
+ it('Should resolve the id of the item but NOT find the asset locally', async () => {
485
+ // WHEN
486
+ const resolveIdJson = await handler.resolveId(
487
+ 'testInstance/testBU',
488
+ 'asset',
489
+ '1295064'
490
+ );
491
+ // THEN
492
+ assert.equal(process.exitCode, 0, 'resolveId should not have thrown an error');
493
+ assert.deepEqual(
494
+ resolveIdJson,
495
+ // @ts-expect-error bad typing of assert.deepEqual
496
+ await testUtils.getExpectedJson('9999999', 'asset', 'resolveId-1295064-noPath'),
497
+ 'returned response was not equal expected'
498
+ );
499
+ return;
500
+ });
501
+
502
+ it('Should resolve the id with --json option enabled', async () => {
503
+ handler.setOptions({ json: true });
504
+ // WHEN
505
+ await handler.resolveId('testInstance/testBU', 'asset', '1295064');
506
+ // THEN
507
+ assert.equal(process.exitCode, 0, 'resolveId should not have thrown an error');
508
+ return;
509
+ });
510
+
511
+ it('Should resolve the id of the item AND find the asset locally', async () => {
512
+ // prep test by retrieving the file
513
+ await handler.retrieve('testInstance/testBU', ['asset-block'], ['mcdev-issue-1157']);
514
+ // WHEN
515
+ const resolveIdJson = await handler.resolveId(
516
+ 'testInstance/testBU',
517
+ 'asset',
518
+ '1295064'
519
+ );
520
+ // THEN
521
+ assert.equal(process.exitCode, 0, 'resolveId should not have thrown an error');
522
+ assert.deepEqual(
523
+ resolveIdJson,
524
+ // @ts-expect-error bad typing of assert.deepEqual
525
+ await testUtils.getExpectedJson('9999999', 'asset', 'resolveId-1295064-withPath'),
526
+ 'returned response was not equal expected'
527
+ );
528
+ return;
529
+ });
530
+
531
+ it('Should NOT resolve the id of the item', async () => {
532
+ // WHEN
533
+ const resolveIdJson = await handler.resolveId('testInstance/testBU', 'asset', '-1234');
534
+ // THEN
535
+ assert.equal(process.exitCode, 404, 'resolveId should have thrown an error');
536
+ // IMPORTANT: this will throw a false "TEST-ERROR" but our testing framework currently needs to not find the file to throw a 404
537
+ assert.deepEqual(
538
+ resolveIdJson,
539
+ // @ts-expect-error bad typing of assert.deepEqual
540
+ await testUtils.getExpectedJson('9999999', 'asset', 'resolveId-1234-notFound'),
541
+ 'returned response was not equal expected'
542
+ );
543
+ return;
544
+ });
545
+ });
546
+
547
+ describe('ReplaceContentBlockByX ================', () => {
548
+ it('Should replace references with ContentBlockByName w/o deploy', async () => {
549
+ handler.setOptions({ skipDeploy: true });
550
+
551
+ // WHEN
552
+ const replace = await handler.replaceCbReference(
553
+ 'testInstance/testBU',
554
+ {
555
+ asset: null,
556
+ },
557
+ 'name'
558
+ );
559
+ // THEN
560
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
561
+ // retrieve result
562
+ assert.deepEqual(
563
+ replace['testInstance/testBU'].asset,
564
+ ['testExisting_asset_message'],
565
+ 'should have found the right assets that need updating'
566
+ );
567
+ // get results from cache
568
+ const result = cache.getCache();
569
+ assert.equal(
570
+ result.asset ? Object.keys(result.asset).length : 0,
571
+ 5,
572
+ 'only 5 assets expected'
573
+ );
574
+ // check if conversions happened
575
+ expect(
576
+ await getActualFile(
577
+ 'testExisting_asset_message',
578
+ 'asset',
579
+ 'message',
580
+ 'html',
581
+ 'views.html.content'
582
+ )
583
+ ).to.equal(
584
+ await testUtils.getExpectedFile(
585
+ '9999999',
586
+ 'asset',
587
+ 'testExisting_asset_message-html-rcb-name',
588
+ 'html'
589
+ )
590
+ );
591
+ expect(
592
+ await getActualFile(
593
+ 'testExisting_asset_message',
594
+ 'asset',
595
+ 'message',
596
+ 'amp',
597
+ 'views.preheader.content'
598
+ )
599
+ ).to.equal(
600
+ await testUtils.getExpectedFile(
601
+ '9999999',
602
+ 'asset',
603
+ 'testExisting_asset_message-preheader-rcb-name',
604
+ 'amp'
605
+ )
606
+ );
607
+ expect(
608
+ await getActualFile(
609
+ 'testExisting_asset_message',
610
+ 'asset',
611
+ 'message',
612
+ 'amp',
613
+ 'views.text.content'
614
+ )
615
+ ).to.equal(
616
+ await testUtils.getExpectedFile(
617
+ '9999999',
618
+ 'asset',
619
+ 'testExisting_asset_message-text-rcb-name',
620
+ 'amp'
621
+ )
622
+ );
623
+
624
+ assert.equal(
625
+ testUtils.getAPIHistoryLength(),
626
+ 26,
627
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
628
+ );
629
+ return;
630
+ });
631
+
632
+ it('Should replace references with ContentBlockById w/o deploy', async () => {
633
+ handler.setOptions({ skipDeploy: true });
634
+
635
+ // WHEN
636
+ const replace = await handler.replaceCbReference(
637
+ 'testInstance/testBU',
638
+ {
639
+ asset: null,
640
+ },
641
+ 'id'
642
+ );
643
+ // THEN
644
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
645
+ // retrieve result
646
+ assert.deepEqual(
647
+ replace['testInstance/testBU'].asset,
648
+ ['testExisting_asset_message'],
649
+ 'should have found the right assets that need updating'
650
+ );
651
+ // get results from cache
652
+ const result = cache.getCache();
653
+ assert.equal(
654
+ result.asset ? Object.keys(result.asset).length : 0,
655
+ 5,
656
+ 'only 5 assets expected'
657
+ );
658
+ // check if conversions happened
659
+ expect(
660
+ await getActualFile(
661
+ 'testExisting_asset_message',
662
+ 'asset',
663
+ 'message',
664
+ 'html',
665
+ 'views.html.content'
666
+ )
667
+ ).to.equal(
668
+ await testUtils.getExpectedFile(
669
+ '9999999',
670
+ 'asset',
671
+ 'testExisting_asset_message-html-rcb-id',
672
+ 'html'
673
+ )
674
+ );
675
+ expect(
676
+ await getActualFile(
677
+ 'testExisting_asset_message',
678
+ 'asset',
679
+ 'message',
680
+ 'amp',
681
+ 'views.preheader.content'
682
+ )
683
+ ).to.equal(
684
+ await testUtils.getExpectedFile(
685
+ '9999999',
686
+ 'asset',
687
+ 'testExisting_asset_message-preheader-rcb-id',
688
+ 'amp'
689
+ )
690
+ );
691
+ expect(
692
+ await getActualFile(
693
+ 'testExisting_asset_message',
694
+ 'asset',
695
+ 'message',
696
+ 'amp',
697
+ 'views.text.content'
698
+ )
699
+ ).to.equal(
700
+ await testUtils.getExpectedFile(
701
+ '9999999',
702
+ 'asset',
703
+ 'testExisting_asset_message-text-rcb-id',
704
+ 'amp'
705
+ )
706
+ );
707
+
708
+ assert.equal(
709
+ testUtils.getAPIHistoryLength(),
710
+ 26,
711
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
712
+ );
713
+ return;
714
+ });
715
+
716
+ it('Should replace references with ContentBlockByKey w/o deploy', async () => {
717
+ handler.setOptions({ skipDeploy: true });
718
+
719
+ // WHEN
720
+ const replace = await handler.replaceCbReference(
721
+ 'testInstance/testBU',
722
+ {
723
+ asset: null,
724
+ },
725
+ 'key'
726
+ );
727
+ // THEN
728
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
729
+ // retrieve result
730
+ assert.deepEqual(
731
+ replace['testInstance/testBU'].asset,
732
+ ['testExisting_asset_message'],
733
+ 'should have found the right assets that need updating'
734
+ );
735
+ // get results from cache
736
+ const result = cache.getCache();
737
+ assert.equal(
738
+ result.asset ? Object.keys(result.asset).length : 0,
739
+ 5,
740
+ 'only 5 assets expected'
741
+ );
742
+ // check if conversions happened
743
+ expect(
744
+ await getActualFile(
745
+ 'testExisting_asset_message',
746
+ 'asset',
747
+ 'message',
748
+ 'html',
749
+ 'views.html.content'
750
+ )
751
+ ).to.equal(
752
+ await testUtils.getExpectedFile(
753
+ '9999999',
754
+ 'asset',
755
+ 'testExisting_asset_message-html-rcb-key',
756
+ 'html'
757
+ )
758
+ );
759
+ expect(
760
+ await getActualFile(
761
+ 'testExisting_asset_message',
762
+ 'asset',
763
+ 'message',
764
+ 'amp',
765
+ 'views.preheader.content'
766
+ )
767
+ ).to.equal(
768
+ await testUtils.getExpectedFile(
769
+ '9999999',
770
+ 'asset',
771
+ 'testExisting_asset_message-preheader-rcb-key',
772
+ 'amp'
773
+ )
774
+ );
775
+ expect(
776
+ await getActualFile(
777
+ 'testExisting_asset_message',
778
+ 'asset',
779
+ 'message',
780
+ 'amp',
781
+ 'views.text.content'
782
+ )
783
+ ).to.equal(
784
+ await testUtils.getExpectedFile(
785
+ '9999999',
786
+ 'asset',
787
+ 'testExisting_asset_message-text-rcb-key',
788
+ 'amp'
789
+ )
74
790
  );
75
791
 
76
792
  assert.equal(
77
793
  testUtils.getAPIHistoryLength(),
78
- 30,
794
+ 26,
79
795
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
80
796
  );
81
797
  return;