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,15 +1,18 @@
1
- import chai, { assert, expect } from 'chai';
1
+ import * as chai from 'chai';
2
+ const assert = chai.assert;
3
+ const expect = chai.expect;
4
+
2
5
  import chaiFiles from 'chai-files';
3
6
  import cache from '../lib/util/cache.js';
4
7
  import * as testUtils from './utils.js';
5
8
  import handler from '../lib/index.js';
6
9
  chai.use(chaiFiles);
7
- const file = chaiFiles.file;
8
10
 
9
11
  describe('type: script', () => {
10
12
  beforeEach(() => {
11
13
  testUtils.mockSetup();
12
14
  });
15
+
13
16
  afterEach(() => {
14
17
  testUtils.mockReset();
15
18
  });
@@ -19,7 +22,7 @@ describe('type: script', () => {
19
22
  // WHEN
20
23
  const retrieve = await handler.retrieve('testInstance/testBU', ['script']);
21
24
  // THEN
22
- assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
25
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
23
26
  // retrieve result
24
27
  assert.equal(
25
28
  retrieve['testInstance/testBU'].script
@@ -42,10 +45,10 @@ describe('type: script', () => {
42
45
  await testUtils.getExpectedJson('9999999', 'script', 'get'),
43
46
  'returned metadata with correct key was not equal expected'
44
47
  );
45
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
48
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'html')).to.not
46
49
  .exist;
47
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
48
- file(testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs'))
50
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.equal(
51
+ await testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs')
49
52
  );
50
53
 
51
54
  // test with no script tag
@@ -55,12 +58,12 @@ describe('type: script', () => {
55
58
  'returned metadata was not equal expected'
56
59
  );
57
60
  expect(
58
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
61
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html')
59
62
  ).to.equal(
60
- file(testUtils.getExpectedFile('9999999', 'script', 'get_noScriptTag', 'html'))
63
+ await testUtils.getExpectedFile('9999999', 'script', 'get_noScriptTag', 'html')
61
64
  );
62
65
  expect(
63
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
66
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs')
64
67
  ).to.not.exist;
65
68
 
66
69
  // test with ampscript
@@ -70,11 +73,11 @@ describe('type: script', () => {
70
73
  'returned metadata was not equal expected'
71
74
  );
72
75
  expect(
73
- file(testUtils.getActualFile('testExisting_script_ampscript', 'script', 'html'))
76
+ await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'html')
74
77
  ).to.equal(
75
- file(testUtils.getExpectedFile('9999999', 'script', 'get_ampscript', 'html'))
78
+ await testUtils.getExpectedFile('9999999', 'script', 'get_ampscript', 'html')
76
79
  );
77
- expect(file(testUtils.getActualFile('testExisting_script_ampscript', 'script', 'ssjs')))
80
+ expect(await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'ssjs'))
78
81
  .to.not.exist;
79
82
 
80
83
  // test with mixed code (ampscript inside of ssjs)
@@ -84,12 +87,12 @@ describe('type: script', () => {
84
87
  'returned metadata was not equal expected'
85
88
  );
86
89
  expect(
87
- file(testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'html'))
90
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'ssjs')
88
91
  ).to.not.exist;
89
92
  expect(
90
- file(testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'ssjs'))
93
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'html')
91
94
  ).to.equal(
92
- file(testUtils.getExpectedFile('9999999', 'script', 'get_ampincluded', 'ssjs'))
95
+ await testUtils.getExpectedFile('9999999', 'script', 'get_ampincluded', 'html')
93
96
  );
94
97
 
95
98
  // test with mixed code (ssjs and ampscript side-by-side)
@@ -99,9 +102,9 @@ describe('type: script', () => {
99
102
  'returned metadata was not equal expected'
100
103
  );
101
104
  expect(
102
- file(testUtils.getActualFile('testExisting_script_mixed', 'script', 'html'))
103
- ).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'get_mixed', 'html')));
104
- expect(file(testUtils.getActualFile('testExisting_script_mixed', 'script', 'ssjs'))).to
105
+ await testUtils.getActualFile('testExisting_script_mixed', 'script', 'html')
106
+ ).to.equal(await testUtils.getExpectedFile('9999999', 'script', 'get_mixed', 'html'));
107
+ expect(await testUtils.getActualFile('testExisting_script_mixed', 'script', 'ssjs')).to
105
108
  .not.exist;
106
109
 
107
110
  assert.equal(
@@ -111,11 +114,12 @@ describe('type: script', () => {
111
114
  );
112
115
  return;
113
116
  });
117
+
114
118
  it('Should retrieve one specific script by key', async () => {
115
119
  // WHEN
116
120
  await handler.retrieve('testInstance/testBU', ['script'], ['testExisting_script']);
117
121
  // THEN
118
- assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
122
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
119
123
  // get results from cache
120
124
  const result = cache.getCache();
121
125
  assert.equal(
@@ -128,20 +132,20 @@ describe('type: script', () => {
128
132
  await testUtils.getExpectedJson('9999999', 'script', 'get'),
129
133
  'returned metadata was not equal expected'
130
134
  );
131
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
135
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'html')).to.not
132
136
  .exist;
133
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
134
- file(testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs'))
137
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.equal(
138
+ await testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs')
135
139
  );
136
140
 
137
141
  expect(
138
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json'))
142
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json')
139
143
  ).to.not.exist;
140
144
  expect(
141
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
145
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs')
142
146
  ).to.not.exist;
143
147
  expect(
144
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
148
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html')
145
149
  ).to.not.exist;
146
150
 
147
151
  assert.equal(
@@ -151,13 +155,14 @@ describe('type: script', () => {
151
155
  );
152
156
  return;
153
157
  });
158
+
154
159
  it('Should retrieve one specific script via --like', async () => {
155
160
  // WHEN
156
161
  handler.setOptions({ like: { key: '%Existing_script' } });
157
162
  await handler.retrieve('testInstance/testBU', ['script']);
158
163
 
159
164
  // THEN
160
- assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
165
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
161
166
 
162
167
  // get results from cache
163
168
  const result = cache.getCache();
@@ -171,18 +176,18 @@ describe('type: script', () => {
171
176
  await testUtils.getExpectedJson('9999999', 'script', 'get'),
172
177
  'returned metadata was not equal expected'
173
178
  );
174
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
175
- file(testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs'))
179
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.equal(
180
+ await testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs')
176
181
  );
177
182
 
178
183
  expect(
179
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json'))
184
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json')
180
185
  ).to.not.exist;
181
186
  expect(
182
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
187
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs')
183
188
  ).to.not.exist;
184
189
  expect(
185
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
190
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html')
186
191
  ).to.not.exist;
187
192
 
188
193
  assert.equal(
@@ -192,12 +197,13 @@ describe('type: script', () => {
192
197
  );
193
198
  return;
194
199
  });
200
+
195
201
  it('Should not retrieve any script via --like and key due to a mismatching filter', async () => {
196
202
  // WHEN
197
203
  handler.setOptions({ like: { key: 'NotExisting_script' } });
198
204
  await handler.retrieve('testInstance/testBU', ['script']);
199
205
  // THEN
200
- assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
206
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
201
207
 
202
208
  // get results from cache
203
209
  const result = cache.getCache();
@@ -207,7 +213,7 @@ describe('type: script', () => {
207
213
  '5 scripts in cache expected'
208
214
  );
209
215
 
210
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.not
216
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.not
211
217
  .exist;
212
218
  assert.equal(
213
219
  testUtils.getAPIHistoryLength(),
@@ -217,15 +223,17 @@ describe('type: script', () => {
217
223
  return;
218
224
  });
219
225
  });
226
+
220
227
  describe('Deploy ================', () => {
221
228
  beforeEach(() => {
222
229
  testUtils.mockSetup(true);
223
230
  });
231
+
224
232
  it('Should create & upsert a script', async () => {
225
233
  // WHEN
226
234
  await handler.deploy('testInstance/testBU', ['script']);
227
235
  // THEN
228
- assert.equal(process.exitCode, false, 'deploy should not have thrown an error');
236
+ assert.equal(process.exitCode, 0, 'deploy should not have thrown an error');
229
237
  // get results from cache
230
238
  const result = cache.getCache();
231
239
  assert.equal(
@@ -245,10 +253,10 @@ describe('type: script', () => {
245
253
  await testUtils.getExpectedJson('9999999', 'script', 'patch'),
246
254
  'returned metadata was not equal expected for insert script'
247
255
  );
248
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
256
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'html')).to.not
249
257
  .exist;
250
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
251
- file(testUtils.getExpectedFile('9999999', 'script', 'patch', 'ssjs'))
258
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.equal(
259
+ await testUtils.getExpectedFile('9999999', 'script', 'patch', 'ssjs')
252
260
  );
253
261
  // check number of API calls
254
262
  assert.equal(
@@ -259,6 +267,7 @@ describe('type: script', () => {
259
267
  return;
260
268
  });
261
269
  });
270
+
262
271
  describe('Templating ================', () => {
263
272
  it('Should create a script template via retrieveAsTemplate and build it', async () => {
264
273
  // GIVEN there is a template
@@ -269,11 +278,7 @@ describe('type: script', () => {
269
278
  'testSourceMarket'
270
279
  );
271
280
  // WHEN
272
- assert.equal(
273
- process.exitCode,
274
- false,
275
- 'retrieveAsTemplate should not have thrown an error'
276
- );
281
+ assert.equal(process.exitCode, 0, 'retrieveAsTemplate should not have thrown an error');
277
282
  assert.equal(
278
283
  result.script ? Object.keys(result.script).length : 0,
279
284
  1,
@@ -285,20 +290,16 @@ describe('type: script', () => {
285
290
  'returned template JSON of retrieveAsTemplate was not equal expected'
286
291
  );
287
292
  expect(
288
- file(testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs'))
289
- ).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'template', 'ssjs')));
293
+ await testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs')
294
+ ).to.equal(await testUtils.getExpectedFile('9999999', 'script', 'template', 'ssjs'));
290
295
  // THEN
291
296
  await handler.buildDefinition(
292
297
  'testInstance/testBU',
293
298
  'script',
294
- 'testExisting_script',
299
+ ['testExisting_script'],
295
300
  'testTargetMarket'
296
301
  );
297
- assert.equal(
298
- process.exitCode,
299
- false,
300
- 'buildDefinition should not have thrown an error'
301
- );
302
+ assert.equal(process.exitCode, 0, 'buildDefinition should not have thrown an error');
302
303
 
303
304
  assert.deepEqual(
304
305
  await testUtils.getActualDeployJson('testTemplated_script', 'script'),
@@ -306,8 +307,8 @@ describe('type: script', () => {
306
307
  'returned deployment JSON was not equal expected'
307
308
  );
308
309
  expect(
309
- file(testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs'))
310
- ).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'build', 'ssjs')));
310
+ await testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs')
311
+ ).to.equal(await testUtils.getExpectedFile('9999999', 'script', 'build', 'ssjs'));
311
312
 
312
313
  assert.equal(
313
314
  testUtils.getAPIHistoryLength(),
@@ -316,6 +317,7 @@ describe('type: script', () => {
316
317
  );
317
318
  return;
318
319
  });
320
+
319
321
  it('Should create a script template via buildTemplate and build it', async () => {
320
322
  // download first before we test buildTemplate
321
323
  await handler.retrieve('testInstance/testBU', ['script']);
@@ -327,7 +329,7 @@ describe('type: script', () => {
327
329
  'testSourceMarket'
328
330
  );
329
331
  // WHEN
330
- assert.equal(process.exitCode, false, 'buildTemplate should not have thrown an error');
332
+ assert.equal(process.exitCode, 0, 'buildTemplate should not have thrown an error');
331
333
 
332
334
  assert.equal(
333
335
  result.script ? Object.keys(result.script).length : 0,
@@ -340,20 +342,16 @@ describe('type: script', () => {
340
342
  'returned template JSON of buildTemplate was not equal expected'
341
343
  );
342
344
  expect(
343
- file(testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs'))
344
- ).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'template', 'ssjs')));
345
+ await testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs')
346
+ ).to.equal(await testUtils.getExpectedFile('9999999', 'script', 'template', 'ssjs'));
345
347
  // THEN
346
348
  await handler.buildDefinition(
347
349
  'testInstance/testBU',
348
350
  'script',
349
- 'testExisting_script',
351
+ ['testExisting_script'],
350
352
  'testTargetMarket'
351
353
  );
352
- assert.equal(
353
- process.exitCode,
354
- false,
355
- 'buildDefinition should not have thrown an error'
356
- );
354
+ assert.equal(process.exitCode, 0, 'buildDefinition should not have thrown an error');
357
355
 
358
356
  assert.deepEqual(
359
357
  await testUtils.getActualDeployJson('testTemplated_script', 'script'),
@@ -361,8 +359,8 @@ describe('type: script', () => {
361
359
  'returned deployment JSON was not equal expected'
362
360
  );
363
361
  expect(
364
- file(testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs'))
365
- ).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'build', 'ssjs')));
362
+ await testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs')
363
+ ).to.equal(await testUtils.getExpectedFile('9999999', 'script', 'build', 'ssjs'));
366
364
 
367
365
  assert.equal(
368
366
  testUtils.getAPIHistoryLength(),
@@ -372,7 +370,22 @@ describe('type: script', () => {
372
370
  return;
373
371
  });
374
372
  });
375
- describe('Delete ================', () => {});
373
+
374
+ describe('Delete ================', () => {
375
+ it('Should delete the item', async () => {
376
+ // WHEN
377
+ const isDeleted = await handler.deleteByKey(
378
+ 'testInstance/testBU',
379
+ 'script',
380
+ 'testExisting_script'
381
+ );
382
+ // THEN
383
+ assert.equal(process.exitCode, 0, 'deleteByKey should not have thrown an error');
384
+ assert.equal(isDeleted, true, 'deleteByKey should have returned true');
385
+ return;
386
+ });
387
+ });
388
+
376
389
  describe('CI/CD ================', () => {
377
390
  it('Should return a list of files based on their type and key', async () => {
378
391
  // WHEN
@@ -380,11 +393,7 @@ describe('type: script', () => {
380
393
  'testExisting_script',
381
394
  ]);
382
395
  // THEN
383
- assert.equal(
384
- process.exitCode,
385
- false,
386
- 'getFilesToCommit should not have thrown an error'
387
- );
396
+ assert.equal(process.exitCode, 0, 'getFilesToCommit should not have thrown an error');
388
397
  assert.equal(fileList.length, 3, 'expected only 3 file paths (html, json, ssjs)');
389
398
 
390
399
  assert.equal(
@@ -405,5 +414,215 @@ describe('type: script', () => {
405
414
  return;
406
415
  });
407
416
  });
417
+
408
418
  describe('Execute ================', () => {});
419
+
420
+ describe('ReplaceContentBlockByX ================', () => {
421
+ it('Should replace references with ContentBlockByName w/o deploy', async () => {
422
+ handler.setOptions({ skipDeploy: true });
423
+
424
+ // WHEN
425
+ const replace = await handler.replaceCbReference(
426
+ 'testInstance/testBU',
427
+ {
428
+ script: null,
429
+ },
430
+ 'name'
431
+ );
432
+ // THEN
433
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
434
+ // retrieve result
435
+ assert.deepEqual(
436
+ replace['testInstance/testBU'].script,
437
+ ['testExisting_script_ampincluded', 'testExisting_script_mixed'],
438
+ 'should have found the right scripts that need updating'
439
+ );
440
+ // get results from cache
441
+ const result = cache.getCache();
442
+ assert.equal(
443
+ result.script ? Object.keys(result.script).length : 0,
444
+ 5,
445
+ 'only 5 scripts expected'
446
+ );
447
+ // check if conversions happened
448
+ expect(
449
+ await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'html')
450
+ ).to.equal(
451
+ await testUtils.getExpectedFile(
452
+ '9999999',
453
+ 'script',
454
+ 'get_ampscript-rcb-name',
455
+ 'html'
456
+ )
457
+ );
458
+ expect(await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'ssjs'))
459
+ .to.not.exist;
460
+
461
+ expect(
462
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'html')
463
+ ).to.equal(
464
+ await testUtils.getExpectedFile(
465
+ '9999999',
466
+ 'script',
467
+ 'get_ampincluded-rcb-name',
468
+ 'html'
469
+ )
470
+ );
471
+ expect(
472
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'ssjs')
473
+ ).to.not.exist;
474
+
475
+ expect(
476
+ await testUtils.getActualFile('testExisting_script_mixed', 'script', 'html')
477
+ ).to.equal(
478
+ await testUtils.getExpectedFile('9999999', 'script', 'get_mixed-rcb-name', 'html')
479
+ );
480
+ expect(await testUtils.getActualFile('testExisting_script_mixed', 'script', 'ssjs')).to
481
+ .not.exist;
482
+
483
+ assert.equal(
484
+ testUtils.getAPIHistoryLength(),
485
+ 15,
486
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
487
+ );
488
+ return;
489
+ });
490
+
491
+ it('Should replace references with ContentBlockById w/o deploy', async () => {
492
+ handler.setOptions({ skipDeploy: true });
493
+
494
+ // WHEN
495
+ const replace = await handler.replaceCbReference(
496
+ 'testInstance/testBU',
497
+ {
498
+ script: null,
499
+ },
500
+ 'id'
501
+ );
502
+ // THEN
503
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
504
+ // retrieve result
505
+ assert.deepEqual(
506
+ replace['testInstance/testBU'].script,
507
+ ['testExisting_script_ampscript', 'testExisting_script_mixed'],
508
+ 'should have found the right scripts that need updating'
509
+ );
510
+
511
+ // get results from cache
512
+ const result = cache.getCache();
513
+ assert.equal(
514
+ result.script ? Object.keys(result.script).length : 0,
515
+ 5,
516
+ 'only 5 scripts expected'
517
+ );
518
+ // check if conversions happened
519
+ expect(
520
+ await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'html')
521
+ ).to.equal(
522
+ await testUtils.getExpectedFile('9999999', 'script', 'get_ampscript-rcb-id', 'html')
523
+ );
524
+ expect(await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'ssjs'))
525
+ .to.not.exist;
526
+
527
+ expect(
528
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'html')
529
+ ).to.equal(
530
+ await testUtils.getExpectedFile(
531
+ '9999999',
532
+ 'script',
533
+ 'get_ampincluded-rcb-id',
534
+ 'html'
535
+ )
536
+ );
537
+ expect(
538
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'ssjs')
539
+ ).to.not.exist;
540
+
541
+ expect(
542
+ await testUtils.getActualFile('testExisting_script_mixed', 'script', 'html')
543
+ ).to.equal(
544
+ await testUtils.getExpectedFile('9999999', 'script', 'get_mixed-rcb-id', 'html')
545
+ );
546
+ expect(await testUtils.getActualFile('testExisting_script_mixed', 'script', 'ssjs')).to
547
+ .not.exist;
548
+
549
+ assert.equal(
550
+ testUtils.getAPIHistoryLength(),
551
+ 15,
552
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
553
+ );
554
+ return;
555
+ });
556
+
557
+ it('Should replace references with ContentBlockByKey w/o deploy', async () => {
558
+ handler.setOptions({ skipDeploy: true });
559
+
560
+ // WHEN
561
+ const replace = await handler.replaceCbReference(
562
+ 'testInstance/testBU',
563
+ {
564
+ script: null,
565
+ },
566
+ 'key'
567
+ );
568
+ // THEN
569
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
570
+ // retrieve result
571
+ assert.deepEqual(
572
+ replace['testInstance/testBU'].script,
573
+ ['testExisting_script_ampscript', 'testExisting_script_ampincluded'],
574
+ 'should have found the right scripts that need updating'
575
+ );
576
+
577
+ // get results from cache
578
+ const result = cache.getCache();
579
+ assert.equal(
580
+ result.script ? Object.keys(result.script).length : 0,
581
+ 5,
582
+ 'only 5 scripts expected'
583
+ );
584
+ // check if conversions happened
585
+ expect(
586
+ await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'html')
587
+ ).to.equal(
588
+ await testUtils.getExpectedFile(
589
+ '9999999',
590
+ 'script',
591
+ 'get_ampscript-rcb-key',
592
+ 'html'
593
+ )
594
+ );
595
+ expect(await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'ssjs'))
596
+ .to.not.exist;
597
+
598
+ expect(
599
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'html')
600
+ ).to.equal(
601
+ await testUtils.getExpectedFile(
602
+ '9999999',
603
+ 'script',
604
+ 'get_ampincluded-rcb-key',
605
+ 'html'
606
+ )
607
+ );
608
+ expect(
609
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'ssjs')
610
+ ).to.not.exist;
611
+
612
+ expect(
613
+ await testUtils.getActualFile('testExisting_script_mixed', 'script', 'html')
614
+ ).to.equal(
615
+ await testUtils.getExpectedFile('9999999', 'script', 'get_mixed-rcb-key', 'html')
616
+ );
617
+ expect(await testUtils.getActualFile('testExisting_script_mixed', 'script', 'ssjs')).to
618
+ .not.exist;
619
+
620
+ assert.equal(
621
+ testUtils.getAPIHistoryLength(),
622
+ 15,
623
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
624
+ );
625
+ return;
626
+ });
627
+ });
409
628
  });