mcdev 6.0.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/.beautyamp.json +13 -0
  2. package/.eslintrc.json +7 -1
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +13 -5
  5. package/.github/workflows/close_issues_on_merge.yml +1 -1
  6. package/.github/workflows/code-test.yml +51 -3
  7. package/.github/workflows/coverage-base-update.yml +1 -1
  8. package/.github/workflows/coverage-develop-branch.yml +1 -1
  9. package/.github/workflows/coverage-main-branch.yml +1 -1
  10. package/.github/workflows/coverage.yml +2 -2
  11. package/.github/workflows/npm-publish.yml +3 -2
  12. package/.github/workflows/pr-labeler.yml +1 -1
  13. package/.husky/commit-msg +0 -2
  14. package/.husky/post-checkout +0 -3
  15. package/.husky/post-merge +2 -7
  16. package/.husky/pre-commit +5 -5
  17. package/.prettierrc +0 -8
  18. package/.vscode/extensions.json +2 -0
  19. package/.vscode/settings.json +17 -5
  20. package/@types/lib/Builder.d.ts +97 -0
  21. package/@types/lib/Builder.d.ts.map +1 -0
  22. package/@types/lib/Deployer.d.ts +99 -0
  23. package/@types/lib/Deployer.d.ts.map +1 -0
  24. package/@types/lib/MetadataTypeDefinitions.d.ts +80 -0
  25. package/@types/lib/MetadataTypeDefinitions.d.ts.map +1 -0
  26. package/@types/lib/MetadataTypeInfo.d.ts +78 -0
  27. package/@types/lib/MetadataTypeInfo.d.ts.map +1 -0
  28. package/@types/lib/Retriever.d.ts +66 -0
  29. package/@types/lib/Retriever.d.ts.map +1 -0
  30. package/@types/lib/cli.d.ts +3 -0
  31. package/@types/lib/cli.d.ts.map +1 -0
  32. package/@types/lib/index.d.ts +383 -0
  33. package/@types/lib/index.d.ts.map +1 -0
  34. package/@types/lib/metadataTypes/Asset.d.ts +1082 -0
  35. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -0
  36. package/@types/lib/metadataTypes/AttributeGroup.d.ts +290 -0
  37. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -0
  38. package/@types/lib/metadataTypes/AttributeSet.d.ts +968 -0
  39. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -0
  40. package/@types/lib/metadataTypes/Automation.d.ts +921 -0
  41. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -0
  42. package/@types/lib/metadataTypes/Campaign.d.ts +190 -0
  43. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -0
  44. package/@types/lib/metadataTypes/ContentArea.d.ts +250 -0
  45. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -0
  46. package/@types/lib/metadataTypes/DataExtension.d.ts +571 -0
  47. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -0
  48. package/@types/lib/metadataTypes/DataExtensionField.d.ts +236 -0
  49. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -0
  50. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +175 -0
  51. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -0
  52. package/@types/lib/metadataTypes/DataExtract.d.ts +217 -0
  53. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -0
  54. package/@types/lib/metadataTypes/DataExtractType.d.ts +80 -0
  55. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -0
  56. package/@types/lib/metadataTypes/DeliveryProfile.d.ts +102 -0
  57. package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -0
  58. package/@types/lib/metadataTypes/Discovery.d.ts +189 -0
  59. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -0
  60. package/@types/lib/metadataTypes/Email.d.ts +384 -0
  61. package/@types/lib/metadataTypes/Email.d.ts.map +1 -0
  62. package/@types/lib/metadataTypes/EmailSend.d.ts +652 -0
  63. package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -0
  64. package/@types/lib/metadataTypes/Event.d.ts +958 -0
  65. package/@types/lib/metadataTypes/Event.d.ts.map +1 -0
  66. package/@types/lib/metadataTypes/FileLocation.d.ts +101 -0
  67. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -0
  68. package/@types/lib/metadataTypes/FileTransfer.d.ts +228 -0
  69. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -0
  70. package/@types/lib/metadataTypes/Filter.d.ts +145 -0
  71. package/@types/lib/metadataTypes/Filter.d.ts.map +1 -0
  72. package/@types/lib/metadataTypes/Folder.d.ts +287 -0
  73. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -0
  74. package/@types/lib/metadataTypes/ImportFile.d.ts +409 -0
  75. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -0
  76. package/@types/lib/metadataTypes/Journey.d.ts +541 -0
  77. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -0
  78. package/@types/lib/metadataTypes/List.d.ts +191 -0
  79. package/@types/lib/metadataTypes/List.d.ts.map +1 -0
  80. package/@types/lib/metadataTypes/MetadataType.d.ts +680 -0
  81. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -0
  82. package/@types/lib/metadataTypes/MobileCode.d.ts +225 -0
  83. package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -0
  84. package/@types/lib/metadataTypes/MobileKeyword.d.ts +432 -0
  85. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -0
  86. package/@types/lib/metadataTypes/MobileMessage.d.ts +931 -0
  87. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -0
  88. package/@types/lib/metadataTypes/Query.d.ts +299 -0
  89. package/@types/lib/metadataTypes/Query.d.ts.map +1 -0
  90. package/@types/lib/metadataTypes/Role.d.ts +164 -0
  91. package/@types/lib/metadataTypes/Role.d.ts.map +1 -0
  92. package/@types/lib/metadataTypes/Script.d.ts +305 -0
  93. package/@types/lib/metadataTypes/Script.d.ts.map +1 -0
  94. package/@types/lib/metadataTypes/SendClassification.d.ts +221 -0
  95. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -0
  96. package/@types/lib/metadataTypes/SenderProfile.d.ts +257 -0
  97. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -0
  98. package/@types/lib/metadataTypes/TransactionalEmail.d.ts +230 -0
  99. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -0
  100. package/@types/lib/metadataTypes/TransactionalMessage.d.ts +163 -0
  101. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -0
  102. package/@types/lib/metadataTypes/TransactionalPush.d.ts +175 -0
  103. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -0
  104. package/@types/lib/metadataTypes/TransactionalSMS.d.ts +205 -0
  105. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -0
  106. package/@types/lib/metadataTypes/TriggeredSend.d.ts +671 -0
  107. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -0
  108. package/@types/lib/metadataTypes/User.d.ts +677 -0
  109. package/@types/lib/metadataTypes/User.d.ts.map +1 -0
  110. package/@types/lib/metadataTypes/Verification.d.ts +188 -0
  111. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -0
  112. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +692 -0
  113. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts.map +1 -0
  114. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +246 -0
  115. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts.map +1 -0
  116. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +893 -0
  117. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts.map +1 -0
  118. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +616 -0
  119. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts.map +1 -0
  120. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +126 -0
  121. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts.map +1 -0
  122. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +182 -0
  123. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts.map +1 -0
  124. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +237 -0
  125. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts.map +1 -0
  126. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +121 -0
  127. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts.map +1 -0
  128. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +133 -0
  129. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts.map +1 -0
  130. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +156 -0
  131. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts.map +1 -0
  132. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +34 -0
  133. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts.map +1 -0
  134. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +80 -0
  135. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts.map +1 -0
  136. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +146 -0
  137. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts.map +1 -0
  138. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +314 -0
  139. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts.map +1 -0
  140. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +582 -0
  141. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts.map +1 -0
  142. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +867 -0
  143. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts.map +1 -0
  144. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +68 -0
  145. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts.map +1 -0
  146. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +191 -0
  147. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts.map +1 -0
  148. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +147 -0
  149. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts.map +1 -0
  150. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +174 -0
  151. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts.map +1 -0
  152. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +306 -0
  153. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts.map +1 -0
  154. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +426 -0
  155. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts.map +1 -0
  156. package/@types/lib/metadataTypes/definitions/List.definition.d.ts +118 -0
  157. package/@types/lib/metadataTypes/definitions/List.definition.d.ts.map +1 -0
  158. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +167 -0
  159. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts.map +1 -0
  160. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +276 -0
  161. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts.map +1 -0
  162. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +783 -0
  163. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts.map +1 -0
  164. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +203 -0
  165. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts.map +1 -0
  166. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +108 -0
  167. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts.map +1 -0
  168. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +153 -0
  169. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts.map +1 -0
  170. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +151 -0
  171. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts.map +1 -0
  172. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +180 -0
  173. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts.map +1 -0
  174. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +167 -0
  175. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts.map +1 -0
  176. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +99 -0
  177. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts.map +1 -0
  178. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +119 -0
  179. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts.map +1 -0
  180. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +113 -0
  181. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts.map +1 -0
  182. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +560 -0
  183. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts.map +1 -0
  184. package/@types/lib/metadataTypes/definitions/User.definition.d.ts +423 -0
  185. package/@types/lib/metadataTypes/definitions/User.definition.d.ts.map +1 -0
  186. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +129 -0
  187. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts.map +1 -0
  188. package/@types/lib/retrieveChangelog.d.ts +3 -0
  189. package/@types/lib/retrieveChangelog.d.ts.map +1 -0
  190. package/@types/lib/util/auth.d.ts +41 -0
  191. package/@types/lib/util/auth.d.ts.map +1 -0
  192. package/@types/lib/util/businessUnit.d.ts +21 -0
  193. package/@types/lib/util/businessUnit.d.ts.map +1 -0
  194. package/@types/lib/util/cache.d.ts +64 -0
  195. package/@types/lib/util/cache.d.ts.map +1 -0
  196. package/@types/lib/util/cli.d.ts +125 -0
  197. package/@types/lib/util/cli.d.ts.map +1 -0
  198. package/@types/lib/util/config.d.ts +45 -0
  199. package/@types/lib/util/config.d.ts.map +1 -0
  200. package/@types/lib/util/devops.d.ts +62 -0
  201. package/@types/lib/util/devops.d.ts.map +1 -0
  202. package/@types/lib/util/file.d.ts +20 -0
  203. package/@types/lib/util/file.d.ts.map +1 -0
  204. package/@types/lib/util/init.config.d.ts +66 -0
  205. package/@types/lib/util/init.config.d.ts.map +1 -0
  206. package/@types/lib/util/init.d.ts +72 -0
  207. package/@types/lib/util/init.d.ts.map +1 -0
  208. package/@types/lib/util/init.git.d.ts +40 -0
  209. package/@types/lib/util/init.git.d.ts.map +1 -0
  210. package/@types/lib/util/init.npm.d.ts +24 -0
  211. package/@types/lib/util/init.npm.d.ts.map +1 -0
  212. package/@types/lib/util/replaceContentBlockReference.d.ts +105 -0
  213. package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -0
  214. package/@types/lib/util/util.d.ts +322 -0
  215. package/@types/lib/util/util.d.ts.map +1 -0
  216. package/@types/types/mcdev.d.d.ts +1282 -0
  217. package/@types/types/mcdev.d.d.ts.map +1 -0
  218. package/LICENSE +1 -1
  219. package/README.md +7 -3
  220. package/boilerplate/files/.beautyamp.json +13 -0
  221. package/boilerplate/files/.prettierrc +3 -0
  222. package/boilerplate/files/.vscode/extensions.json +6 -1
  223. package/boilerplate/files/.vscode/settings.json +16 -4
  224. package/boilerplate/forcedUpdates.json +9 -0
  225. package/jsconfig.json +7 -2
  226. package/lib/Builder.js +49 -45
  227. package/lib/Deployer.js +100 -45
  228. package/lib/MetadataTypeDefinitions.js +6 -0
  229. package/lib/MetadataTypeInfo.js +4 -0
  230. package/lib/Retriever.js +36 -29
  231. package/lib/cli.js +363 -28
  232. package/lib/index.js +615 -55
  233. package/lib/metadataTypes/Asset.js +811 -159
  234. package/lib/metadataTypes/AttributeGroup.js +17 -12
  235. package/lib/metadataTypes/AttributeSet.js +20 -15
  236. package/lib/metadataTypes/Automation.js +125 -93
  237. package/lib/metadataTypes/Campaign.js +18 -6
  238. package/lib/metadataTypes/ContentArea.js +21 -18
  239. package/lib/metadataTypes/DataExtension.js +238 -131
  240. package/lib/metadataTypes/DataExtensionField.js +52 -53
  241. package/lib/metadataTypes/DataExtensionTemplate.js +17 -5
  242. package/lib/metadataTypes/DataExtract.js +62 -27
  243. package/lib/metadataTypes/DataExtractType.js +17 -5
  244. package/lib/metadataTypes/DeliveryProfile.js +47 -0
  245. package/lib/metadataTypes/Discovery.js +15 -4
  246. package/lib/metadataTypes/Email.js +22 -19
  247. package/lib/metadataTypes/EmailSend.js +179 -59
  248. package/lib/metadataTypes/Event.js +95 -60
  249. package/lib/metadataTypes/FileLocation.js +17 -5
  250. package/lib/metadataTypes/FileTransfer.js +62 -26
  251. package/lib/metadataTypes/Filter.js +16 -4
  252. package/lib/metadataTypes/Folder.js +67 -39
  253. package/lib/metadataTypes/ImportFile.js +341 -91
  254. package/lib/metadataTypes/Journey.js +681 -324
  255. package/lib/metadataTypes/List.js +26 -14
  256. package/lib/metadataTypes/MetadataType.js +501 -265
  257. package/lib/metadataTypes/MobileCode.js +17 -5
  258. package/lib/metadataTypes/MobileKeyword.js +59 -43
  259. package/lib/metadataTypes/MobileMessage.js +67 -40
  260. package/lib/metadataTypes/Query.js +46 -38
  261. package/lib/metadataTypes/Role.js +34 -23
  262. package/lib/metadataTypes/Script.js +127 -39
  263. package/lib/metadataTypes/SendClassification.js +120 -5
  264. package/lib/metadataTypes/SenderProfile.js +179 -0
  265. package/lib/metadataTypes/TransactionalEmail.js +30 -17
  266. package/lib/metadataTypes/TransactionalMessage.js +25 -11
  267. package/lib/metadataTypes/TransactionalPush.js +24 -9
  268. package/lib/metadataTypes/TransactionalSMS.js +79 -67
  269. package/lib/metadataTypes/TriggeredSend.js +191 -43
  270. package/lib/metadataTypes/User.js +90 -62
  271. package/lib/metadataTypes/Verification.js +39 -21
  272. package/lib/metadataTypes/definitions/Asset.definition.js +3 -3
  273. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +7 -1
  274. package/lib/metadataTypes/definitions/AttributeSet.definition.js +2 -2
  275. package/lib/metadataTypes/definitions/Automation.definition.js +4 -1
  276. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -1
  277. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -1
  278. package/lib/metadataTypes/definitions/DataExtension.definition.js +17 -1
  279. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -1
  280. package/lib/metadataTypes/definitions/DataExtractType.definition.js +2 -2
  281. package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +59 -0
  282. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -1
  283. package/lib/metadataTypes/definitions/Email.definition.js +1 -1
  284. package/lib/metadataTypes/definitions/EmailSend.definition.js +19 -4
  285. package/lib/metadataTypes/definitions/Event.definition.js +140 -128
  286. package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -1
  287. package/lib/metadataTypes/definitions/Filter.definition.js +1 -1
  288. package/lib/metadataTypes/definitions/Folder.definition.js +25 -2
  289. package/lib/metadataTypes/definitions/ImportFile.definition.js +52 -7
  290. package/lib/metadataTypes/definitions/Journey.definition.js +12 -0
  291. package/lib/metadataTypes/definitions/List.definition.js +1 -1
  292. package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -1
  293. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -1
  294. package/lib/metadataTypes/definitions/MobileMessage.definition.js +11 -5
  295. package/lib/metadataTypes/definitions/Query.definition.js +6 -0
  296. package/lib/metadataTypes/definitions/Script.definition.js +14 -14
  297. package/lib/metadataTypes/definitions/SendClassification.definition.js +60 -20
  298. package/lib/metadataTypes/definitions/SenderProfile.definition.js +185 -0
  299. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +2 -2
  300. package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +69 -0
  301. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +6 -0
  302. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +6 -0
  303. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +15 -4
  304. package/lib/metadataTypes/definitions/Verification.definition.js +1 -1
  305. package/lib/retrieveChangelog.js +7 -2
  306. package/lib/util/auth.js +56 -21
  307. package/lib/util/businessUnit.js +20 -2
  308. package/lib/util/cache.js +37 -18
  309. package/lib/util/cli.js +72 -29
  310. package/lib/util/config.js +27 -9
  311. package/lib/util/devops.js +45 -24
  312. package/lib/util/file.js +66 -41
  313. package/lib/util/init.config.js +55 -24
  314. package/lib/util/init.git.js +6 -6
  315. package/lib/util/init.js +36 -14
  316. package/lib/util/init.npm.js +2 -2
  317. package/lib/util/replaceContentBlockReference.js +278 -0
  318. package/lib/util/util.js +152 -54
  319. package/package.json +37 -34
  320. package/test/general.test.js +1327 -4
  321. package/test/mockRoot/.mcdevrc.json +26 -4
  322. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +3 -4
  323. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +1 -4
  324. package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.json +11 -0
  325. package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.sql +4 -0
  326. package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.html +12 -0
  327. package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.json +39 -0
  328. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +6 -6
  329. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +7 -7
  330. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +3 -4
  331. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testNew_dataExtension.dataExtension-meta.json +1 -4
  332. package/test/mockRoot/deploy/testInstance/testBU/emailSend/testExisting_emailSend.emailSend-meta.json +36 -0
  333. package/test/mockRoot/deploy/testInstance/testBU/emailSend/testNew_emailSend.emailSend-meta.json +36 -0
  334. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +10 -4
  335. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +8 -4
  336. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_Quicksend.journey-meta.json +232 -0
  337. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.json +2 -4
  338. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.json +2 -4
  339. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query.query-meta.json +1 -1
  340. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +1 -1
  341. package/test/mockRoot/deploy/testInstance/testBU/query/testNew_query.query-meta.json +1 -1
  342. package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testExisting_sendClassification.sendClassification-meta.json +8 -0
  343. package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testNew_sendClassification.sendClassification-meta.json +8 -0
  344. package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testExisting_senderProfile.senderProfile-meta.json +14 -0
  345. package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testNew_senderProfile.senderProfile-meta.json +14 -0
  346. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +1 -1
  347. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -1
  348. package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testExisting_tpush.transactionalPush-meta.json +1 -3
  349. package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testNew_tpush.transactionalPush-meta.json +1 -3
  350. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +1 -2
  351. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +1 -2
  352. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +4 -5
  353. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +4 -5
  354. package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
  355. package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
  356. package/test/resourceFactory.js +118 -7
  357. package/test/resources/1111111/automation/v1/queries/get-response.json +6 -0
  358. package/test/resources/1111111/automation/v1/queries/post-response.json +18 -0
  359. package/test/resources/1111111/dataExtension/create-expected.json +4 -7
  360. package/test/resources/1111111/dataExtension/retrieve-expected.json +2 -4
  361. package/test/resources/1111111/dataExtension/update-expected.json +7 -7
  362. package/test/resources/1111111/dataExtension/update-response.xml +3 -1
  363. package/test/resources/1111111/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  364. package/test/resources/1111111/query/patch_keySuffix-expected.json +11 -0
  365. package/test/resources/1111111/query/patch_keySuffix-expected.sql +4 -0
  366. package/test/resources/9999999/asset/block-1157-retrieve-expected.html +17 -7
  367. package/test/resources/9999999/asset/build-templatebasedemail-expected.json +81 -0
  368. package/test/resources/9999999/asset/build-templatebasedemail-html-expected.html +20 -0
  369. package/test/resources/9999999/asset/build-templatebasedemail-preheader-expected.amp +1 -0
  370. package/test/resources/9999999/asset/create-expected.json +18 -0
  371. package/test/resources/9999999/asset/resolveId-1234-notFound-expected.json +1 -0
  372. package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +8 -0
  373. package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +8 -0
  374. package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +84 -0
  375. package/test/resources/9999999/asset/retrieve-templatebasedemail-html-expected.html +20 -0
  376. package/test/resources/9999999/asset/retrieve-templatebasedemail-preheader-expected.amp +1 -0
  377. package/test/resources/9999999/asset/template-templatebasedemail-expected.json +81 -0
  378. package/test/resources/9999999/asset/template-templatebasedemail-html-expected.html +20 -0
  379. package/test/resources/9999999/asset/template-templatebasedemail-preheader-expected.amp +1 -0
  380. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-id-expected.html +33 -0
  381. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +33 -0
  382. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-name-expected.html +35 -0
  383. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +4 -0
  384. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -0
  385. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +4 -0
  386. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-id-expected.amp +4 -0
  387. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -0
  388. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-name-expected.amp +4 -0
  389. package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +1 -1
  390. package/test/resources/9999999/asset/v1/content/assets/5286/get-response.json +48 -0
  391. package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +198 -0
  392. package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +4 -3
  393. package/test/resources/9999999/asset/v1/content/assets/950143/delete-response.txt +1 -0
  394. package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +105 -0
  395. package/test/resources/9999999/asset/v1/content/assets/post-response.json +59 -0
  396. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14.json +7 -0
  397. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN193,194,15.json +7 -0
  398. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN195,196,197,198,199,200,201,202,203,210,211,212,213,3.json +46 -0
  399. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +32 -0
  400. package/test/resources/9999999/asset/v1/content/assets/query/{post-response.json → post-response-assetType.idIN207,208,209,5.json} +45 -47
  401. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN214,4.json +35 -0
  402. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN215,216,217,218,219,220,221,222,223,224,225,226,227,228.json +7 -0
  403. package/test/resources/9999999/asset/v1/content/assets/query/post-response-customerKey=mcdev-issue-1157.json +46 -0
  404. package/test/resources/9999999/attributeGroup/retrieve-expected.json +1 -1
  405. package/test/resources/9999999/attributeSet/retrieve-expected.json +3 -3
  406. package/test/resources/9999999/automation/build-expected.json +7 -7
  407. package/test/resources/9999999/automation/create-expected.json +7 -7
  408. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +6 -6
  409. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +6 -6
  410. package/test/resources/9999999/automation/retrieve-expected.json +7 -7
  411. package/test/resources/9999999/automation/template-expected.json +7 -7
  412. package/test/resources/9999999/automation/update-expected.json +6 -6
  413. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/delete-response.txt +1 -0
  414. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/delete-response.json +1 -0
  415. package/test/resources/9999999/automation/v1/imports/1ebf557b-372e-eb11-b81b-48df37d1dbd7/get-response.json +78 -0
  416. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/delete-response.txt +0 -0
  417. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/get-response.json +35 -0
  418. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +14 -10
  419. package/test/resources/9999999/automation/v1/imports/get-response.json +78 -1
  420. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +1 -1
  421. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/get-response.json +17 -0
  422. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/patch-response.json +18 -0
  423. package/test/resources/9999999/automation/v1/queries/abcde-607c-4940-afef-437965094dat/get-response.json +17 -0
  424. package/test/resources/9999999/automation/v1/queries/get-response.json +20 -3
  425. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/delete-response.txt +1 -0
  426. package/test/resources/9999999/automation/v1/scripts/get-response.json +32 -2
  427. package/test/resources/9999999/dataExtension/build-expected.json +3 -4
  428. package/test/resources/9999999/dataExtension/create-expected.json +1 -4
  429. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +4 -4
  430. package/test/resources/9999999/dataExtension/retrieve-expected.json +3 -4
  431. package/test/resources/9999999/dataExtension/retrieve-response.xml +96 -1
  432. package/test/resources/9999999/dataExtension/template-expected.json +3 -4
  433. package/test/resources/9999999/dataExtension/update-expected.json +4 -3
  434. package/test/resources/9999999/dataExtension/update-response.xml +5 -3
  435. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +72 -0
  436. package/test/resources/9999999/dataFolder/retrieve-ContentType=userinitiatedsends-response.xml +48 -0
  437. package/test/resources/9999999/deliveryProfile/get-expected.json +7 -0
  438. package/test/resources/9999999/emailSend/build-expected.json +43 -0
  439. package/test/resources/9999999/emailSend/get-expected.json +43 -0
  440. package/test/resources/9999999/emailSend/patch-expected.json +41 -0
  441. package/test/resources/9999999/emailSend/post-expected.json +41 -0
  442. package/test/resources/9999999/emailSend/template-expected.json +43 -0
  443. package/test/resources/9999999/emailSendDefinition/create-response.xml +98 -0
  444. package/test/resources/9999999/emailSendDefinition/delete-response.xml +36 -0
  445. package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +18 -8
  446. package/test/resources/9999999/emailSendDefinition/update-response.xml +97 -0
  447. package/test/resources/9999999/importDefinition/retrieve-CustomerKey=testExisting_importFile-response.xml +30 -0
  448. package/test/resources/9999999/importDefinition/retrieve-Name=testExisting_importFile-response.xml +30 -0
  449. package/test/resources/9999999/importFile/build-expected.json +11 -6
  450. package/test/resources/9999999/importFile/get-expected.json +13 -7
  451. package/test/resources/9999999/importFile/get-sms-expected.json +79 -0
  452. package/test/resources/9999999/importFile/patch-expected.json +12 -7
  453. package/test/resources/9999999/importFile/post-expected.json +8 -5
  454. package/test/resources/9999999/importFile/template-expected.json +10 -5
  455. package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +124 -0
  456. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/delete-response.txt +1 -0
  457. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +253 -0
  458. package/test/resources/9999999/interaction/v1/interactions/get-response.json +83 -779
  459. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response.json +457 -0
  460. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +253 -0
  461. package/test/resources/9999999/interaction/v1/interactions/{key_0b76dccf-594c-b6dc-1acf-10c4493dcb84 → key_testExisting_temail}/get-response.json +5 -5
  462. package/test/resources/9999999/journey/build-expected.json +105 -449
  463. package/test/resources/9999999/journey/get-multistep-expected.json +413 -0
  464. package/test/resources/9999999/journey/get-quicksend-expected.json +232 -0
  465. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +232 -0
  466. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +232 -0
  467. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +232 -0
  468. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +211 -0
  469. package/test/resources/9999999/journey/template-expected.json +105 -449
  470. package/test/resources/9999999/legacy/v1/beta/messaging/deliverypolicy/get-response.json +15 -0
  471. package/test/resources/9999999/legacy/v1/beta/mobile/imports/get-response.json +112 -0
  472. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +1 -1
  473. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTQ3Ojc4OjA/get-response.json +1 -1
  474. package/test/resources/9999999/legacy/v1/beta/mobile/message/get-response.json +1 -1
  475. package/test/resources/9999999/legacy/v1/beta/object/NWQwdnhEU3dFZWVBekJRQzdISWl0QTo0NTow/get-response.json +12 -0
  476. package/test/resources/9999999/list/retrieve-response.xml +13 -0
  477. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +1 -1
  478. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +1 -1
  479. package/test/resources/9999999/messaging/v1/sms/definitions/post-response.json +3 -1
  480. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/get-response.json +3 -1
  481. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/patch-response.json +3 -1
  482. package/test/resources/9999999/mobileKeyword/build-expected.amp +5 -1
  483. package/test/resources/9999999/mobileKeyword/get-expected.amp +5 -1
  484. package/test/resources/9999999/mobileKeyword/post-create-expected.amp +1 -1
  485. package/test/resources/9999999/mobileKeyword/template-expected.amp +5 -1
  486. package/test/resources/9999999/mobileMessage/build-expected.amp +6 -1
  487. package/test/resources/9999999/mobileMessage/build-expected.json +2 -5
  488. package/test/resources/9999999/mobileMessage/get-expected.amp +6 -1
  489. package/test/resources/9999999/mobileMessage/get-expected.json +2 -5
  490. package/test/resources/9999999/mobileMessage/post-create-expected.amp +1 -1
  491. package/test/resources/9999999/mobileMessage/post-create-expected.json +2 -4
  492. package/test/resources/9999999/mobileMessage/post-update-expected.amp +1 -1
  493. package/test/resources/9999999/mobileMessage/post-update-expected.json +2 -5
  494. package/test/resources/9999999/mobileMessage/template-expected.amp +6 -1
  495. package/test/resources/9999999/mobileMessage/template-expected.json +2 -5
  496. package/test/resources/9999999/query/build-expected.json +1 -1
  497. package/test/resources/9999999/query/build-expected.sql +2 -1
  498. package/test/resources/9999999/query/get-expected.json +1 -1
  499. package/test/resources/9999999/query/get-expected.sql +2 -1
  500. package/test/resources/9999999/query/get2-expected.json +1 -1
  501. package/test/resources/9999999/query/patch-expected.json +1 -1
  502. package/test/resources/9999999/query/patch_fixKeys-expected.json +1 -1
  503. package/test/resources/9999999/query/patch_fixKeysSuffix-expected.json +11 -0
  504. package/test/resources/9999999/query/patch_fixKeysSuffix-expected.sql +6 -0
  505. package/test/resources/9999999/query/post-expected.json +1 -1
  506. package/test/resources/9999999/query/template-expected.json +1 -1
  507. package/test/resources/9999999/query/template-expected.sql +2 -1
  508. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query2ANDStatus=Active-response.xml +30 -0
  509. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysSuffixANDStatus=Active-response.xml +30 -0
  510. package/test/resources/9999999/script/get_ampincluded-expected.html +5 -0
  511. package/test/resources/9999999/script/get_ampincluded-expected.json +8 -0
  512. package/test/resources/9999999/script/get_ampincluded-rcb-id-expected.html +5 -0
  513. package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +5 -0
  514. package/test/resources/9999999/script/get_ampincluded-rcb-name-expected.html +5 -0
  515. package/test/resources/9999999/script/get_ampscript-expected.html +10 -0
  516. package/test/resources/9999999/script/get_ampscript-expected.json +8 -0
  517. package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +8 -0
  518. package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +8 -0
  519. package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +10 -0
  520. package/test/resources/9999999/script/get_mixed-expected.html +12 -0
  521. package/test/resources/9999999/script/get_mixed-expected.json +8 -0
  522. package/test/resources/9999999/script/get_mixed-rcb-id-expected.html +12 -0
  523. package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +12 -0
  524. package/test/resources/9999999/script/get_mixed-rcb-name-expected.html +14 -0
  525. package/test/resources/9999999/sendClassification/build-expected.json +8 -0
  526. package/test/resources/9999999/sendClassification/create-response.xml +51 -0
  527. package/test/resources/9999999/sendClassification/delete-response.xml +36 -0
  528. package/test/resources/9999999/sendClassification/get-expected.json +10 -0
  529. package/test/resources/9999999/sendClassification/patch-expected.json +8 -0
  530. package/test/resources/9999999/sendClassification/post-expected.json +8 -0
  531. package/test/resources/9999999/sendClassification/retrieve-response.xml +86 -0
  532. package/test/resources/9999999/sendClassification/template-expected.json +8 -0
  533. package/test/resources/9999999/sendClassification/update-response.xml +49 -0
  534. package/test/resources/9999999/senderProfile/build-expected.json +14 -0
  535. package/test/resources/9999999/senderProfile/create-response.xml +49 -0
  536. package/test/resources/9999999/senderProfile/delete-response.xml +36 -0
  537. package/test/resources/9999999/senderProfile/get-expected.json +16 -0
  538. package/test/resources/9999999/senderProfile/get-rcb-id-expected.json +16 -0
  539. package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +16 -0
  540. package/test/resources/9999999/senderProfile/get-rcb-name-expected.json +16 -0
  541. package/test/resources/9999999/senderProfile/patch-expected.json +14 -0
  542. package/test/resources/9999999/senderProfile/post-expected.json +14 -0
  543. package/test/resources/9999999/senderProfile/retrieve-CustomerKey=Default-response.xml +44 -0
  544. package/test/resources/9999999/senderProfile/retrieve-CustomerKey=wrong-key-response.xml +26 -0
  545. package/test/resources/9999999/senderProfile/retrieve-response.xml +80 -0
  546. package/test/resources/9999999/senderProfile/template-expected.json +14 -0
  547. package/test/resources/9999999/senderProfile/update-response.xml +47 -0
  548. package/test/resources/9999999/transactionalEmail/build-expected.json +3 -3
  549. package/test/resources/9999999/transactionalEmail/get-expected.json +3 -3
  550. package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -3
  551. package/test/resources/9999999/transactionalEmail/post-expected.json +2 -2
  552. package/test/resources/9999999/transactionalEmail/template-expected.json +3 -3
  553. package/test/resources/9999999/transactionalPush/build-expected.json +1 -1
  554. package/test/resources/9999999/transactionalPush/get-expected.json +1 -1
  555. package/test/resources/9999999/transactionalPush/patch-expected.json +1 -3
  556. package/test/resources/9999999/transactionalPush/post-expected.json +1 -3
  557. package/test/resources/9999999/transactionalPush/template-expected.json +1 -1
  558. package/test/resources/9999999/transactionalSMS/build-expected.amp +105 -1
  559. package/test/resources/9999999/transactionalSMS/build-expected.json +1 -2
  560. package/test/resources/9999999/transactionalSMS/get-expected.amp +105 -1
  561. package/test/resources/9999999/transactionalSMS/get-expected.json +1 -2
  562. package/test/resources/9999999/transactionalSMS/patch-expected.amp +99 -1
  563. package/test/resources/9999999/transactionalSMS/patch-expected.json +1 -2
  564. package/test/resources/9999999/transactionalSMS/post-expected.amp +99 -1
  565. package/test/resources/9999999/transactionalSMS/post-expected.json +1 -2
  566. package/test/resources/9999999/transactionalSMS/template-expected.amp +105 -1
  567. package/test/resources/9999999/transactionalSMS/template-expected.json +1 -2
  568. package/test/resources/9999999/triggeredSend/build-expected.json +5 -6
  569. package/test/resources/9999999/triggeredSend/get-expected.json +5 -6
  570. package/test/resources/9999999/triggeredSend/get-rcb-id-expected.json +29 -0
  571. package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +29 -0
  572. package/test/resources/9999999/triggeredSend/get-rcb-name-expected.json +29 -0
  573. package/test/resources/9999999/triggeredSend/patch-expected.json +5 -6
  574. package/test/resources/9999999/triggeredSend/post-expected.json +5 -6
  575. package/test/resources/9999999/triggeredSend/template-expected.json +5 -6
  576. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +6 -1
  577. package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +53 -1
  578. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +6 -1
  579. package/test/resources/9999999/verification/build-expected.json +1 -1
  580. package/test/resources/9999999/verification/get-expected.json +1 -1
  581. package/test/resources/9999999/verification/patch-expected.json +1 -1
  582. package/test/resources/9999999/verification/post-expected.json +1 -1
  583. package/test/resources/9999999/verification/template-expected.json +1 -1
  584. package/test/type.asset.test.js +733 -17
  585. package/test/type.attributeGroup.test.js +6 -2
  586. package/test/type.attributeSet.test.js +6 -2
  587. package/test/type.automation.test.js +174 -162
  588. package/test/type.dataExtension.test.js +41 -45
  589. package/test/type.dataExtract.test.js +22 -29
  590. package/test/type.deliveryProfile.test.js +45 -0
  591. package/test/type.emailSend.test.js +144 -0
  592. package/test/type.event.test.js +62 -0
  593. package/test/type.fileTransfer.test.js +21 -29
  594. package/test/type.importFile.test.js +61 -35
  595. package/test/type.journey.test.js +251 -45
  596. package/test/type.mobileKeyword.test.js +46 -54
  597. package/test/type.mobileMessage.test.js +28 -27
  598. package/test/type.query.test.js +303 -124
  599. package/test/type.script.test.js +332 -73
  600. package/test/type.sendClassification.test.js +156 -0
  601. package/test/type.senderProfile.test.js +254 -0
  602. package/test/type.transactionalEmail.test.js +15 -11
  603. package/test/type.transactionalPush.test.js +15 -11
  604. package/test/type.transactionalSMS.test.js +30 -23
  605. package/test/type.triggeredSend.test.js +130 -17
  606. package/test/type.user.test.js +22 -14
  607. package/test/type.verification.test.js +13 -10
  608. package/test/utils.js +79 -21
  609. package/tsconfig.json +21 -0
  610. package/types/mcdev.d.js +190 -66
  611. package/docs/dist/documentation.md +0 -8890
  612. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_interaction.interaction-meta.json +0 -576
  613. package/test/mockRoot/deploy/testInstance/testBU/journey/testNew_interaction.interaction-meta.json +0 -266
  614. package/test/resources/9999999/interaction/v1/EventDefinitions/get-response.json +0 -43
  615. package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +0 -1
  616. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +0 -592
  617. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/put-response.json +0 -592
  618. package/test/resources/9999999/interaction/v1/interactions/post-response.json +0 -280
  619. package/test/resources/9999999/journey/get-expected.json +0 -576
@@ -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,23 +22,22 @@ 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');
23
-
25
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
24
26
  // retrieve result
25
27
  assert.equal(
26
28
  retrieve['testInstance/testBU'].script
27
29
  ? Object.keys(retrieve['testInstance/testBU'].script).length
28
30
  : 0,
29
- 2,
30
- 'only 2 scripts expected in retrieve response'
31
+ 5,
32
+ 'only 5 scripts expected in retrieve response'
31
33
  );
32
34
 
33
35
  // get results from cache
34
36
  const result = cache.getCache();
35
37
  assert.equal(
36
38
  result.script ? Object.keys(result.script).length : 0,
37
- 2,
38
- 'only 2 scripts expected'
39
+ 5,
40
+ 'only 5 scripts expected'
39
41
  );
40
42
  // normal test
41
43
  assert.deepEqual(
@@ -43,26 +45,68 @@ describe('type: script', () => {
43
45
  await testUtils.getExpectedJson('9999999', 'script', 'get'),
44
46
  'returned metadata with correct key was not equal expected'
45
47
  );
46
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
48
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'html')).to.not
47
49
  .exist;
48
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
49
- 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')
50
52
  );
51
53
 
54
+ // test with no script tag
52
55
  assert.deepEqual(
53
56
  await testUtils.getActualJson('testExisting_script_noScriptTag', 'script'),
54
57
  await testUtils.getExpectedJson('9999999', 'script', 'get_noScriptTag'),
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
 
69
+ // test with ampscript
70
+ assert.deepEqual(
71
+ await testUtils.getActualJson('testExisting_script_ampscript', 'script'),
72
+ await testUtils.getExpectedJson('9999999', 'script', 'get_ampscript'),
73
+ 'returned metadata was not equal expected'
74
+ );
75
+ expect(
76
+ await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'html')
77
+ ).to.equal(
78
+ await testUtils.getExpectedFile('9999999', 'script', 'get_ampscript', 'html')
79
+ );
80
+ expect(await testUtils.getActualFile('testExisting_script_ampscript', 'script', 'ssjs'))
81
+ .to.not.exist;
82
+
83
+ // test with mixed code (ampscript inside of ssjs)
84
+ assert.deepEqual(
85
+ await testUtils.getActualJson('testExisting_script_ampincluded', 'script'),
86
+ await testUtils.getExpectedJson('9999999', 'script', 'get_ampincluded'),
87
+ 'returned metadata was not equal expected'
88
+ );
89
+ expect(
90
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'ssjs')
91
+ ).to.not.exist;
92
+ expect(
93
+ await testUtils.getActualFile('testExisting_script_ampincluded', 'script', 'html')
94
+ ).to.equal(
95
+ await testUtils.getExpectedFile('9999999', 'script', 'get_ampincluded', 'html')
96
+ );
97
+
98
+ // test with mixed code (ssjs and ampscript side-by-side)
99
+ assert.deepEqual(
100
+ await testUtils.getActualJson('testExisting_script_mixed', 'script'),
101
+ await testUtils.getExpectedJson('9999999', 'script', 'get_mixed'),
102
+ 'returned metadata was not equal expected'
103
+ );
104
+ expect(
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
108
+ .not.exist;
109
+
66
110
  assert.equal(
67
111
  testUtils.getAPIHistoryLength(),
68
112
  3,
@@ -70,11 +114,12 @@ describe('type: script', () => {
70
114
  );
71
115
  return;
72
116
  });
117
+
73
118
  it('Should retrieve one specific script by key', async () => {
74
119
  // WHEN
75
120
  await handler.retrieve('testInstance/testBU', ['script'], ['testExisting_script']);
76
121
  // THEN
77
- 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');
78
123
  // get results from cache
79
124
  const result = cache.getCache();
80
125
  assert.equal(
@@ -87,20 +132,20 @@ describe('type: script', () => {
87
132
  await testUtils.getExpectedJson('9999999', 'script', 'get'),
88
133
  'returned metadata was not equal expected'
89
134
  );
90
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
135
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'html')).to.not
91
136
  .exist;
92
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
93
- 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')
94
139
  );
95
140
 
96
141
  expect(
97
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json'))
142
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json')
98
143
  ).to.not.exist;
99
144
  expect(
100
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
145
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs')
101
146
  ).to.not.exist;
102
147
  expect(
103
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
148
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html')
104
149
  ).to.not.exist;
105
150
 
106
151
  assert.equal(
@@ -110,38 +155,39 @@ describe('type: script', () => {
110
155
  );
111
156
  return;
112
157
  });
158
+
113
159
  it('Should retrieve one specific script via --like', async () => {
114
160
  // WHEN
115
161
  handler.setOptions({ like: { key: '%Existing_script' } });
116
162
  await handler.retrieve('testInstance/testBU', ['script']);
117
163
 
118
164
  // THEN
119
- 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');
120
166
 
121
167
  // get results from cache
122
168
  const result = cache.getCache();
123
169
  assert.equal(
124
170
  result.script ? Object.keys(result.script).length : 0,
125
- 2,
126
- 'two scripts in cache expected'
171
+ 5,
172
+ '5 scripts in cache expected'
127
173
  );
128
174
  assert.deepEqual(
129
175
  await testUtils.getActualJson('testExisting_script', 'script'),
130
176
  await testUtils.getExpectedJson('9999999', 'script', 'get'),
131
177
  'returned metadata was not equal expected'
132
178
  );
133
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
134
- 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')
135
181
  );
136
182
 
137
183
  expect(
138
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json'))
184
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json')
139
185
  ).to.not.exist;
140
186
  expect(
141
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
187
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs')
142
188
  ).to.not.exist;
143
189
  expect(
144
- file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
190
+ await testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html')
145
191
  ).to.not.exist;
146
192
 
147
193
  assert.equal(
@@ -151,22 +197,23 @@ describe('type: script', () => {
151
197
  );
152
198
  return;
153
199
  });
200
+
154
201
  it('Should not retrieve any script via --like and key due to a mismatching filter', async () => {
155
202
  // WHEN
156
203
  handler.setOptions({ like: { key: 'NotExisting_script' } });
157
204
  await handler.retrieve('testInstance/testBU', ['script']);
158
205
  // THEN
159
- 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');
160
207
 
161
208
  // get results from cache
162
209
  const result = cache.getCache();
163
210
  assert.equal(
164
211
  result.script ? Object.keys(result.script).length : 0,
165
- 2,
166
- 'two scripts in cache expected'
212
+ 5,
213
+ '5 scripts in cache expected'
167
214
  );
168
215
 
169
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.not
216
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.not
170
217
  .exist;
171
218
  assert.equal(
172
219
  testUtils.getAPIHistoryLength(),
@@ -176,21 +223,23 @@ describe('type: script', () => {
176
223
  return;
177
224
  });
178
225
  });
226
+
179
227
  describe('Deploy ================', () => {
180
228
  beforeEach(() => {
181
229
  testUtils.mockSetup(true);
182
230
  });
231
+
183
232
  it('Should create & upsert a script', async () => {
184
233
  // WHEN
185
234
  await handler.deploy('testInstance/testBU', ['script']);
186
235
  // THEN
187
- 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');
188
237
  // get results from cache
189
238
  const result = cache.getCache();
190
239
  assert.equal(
191
240
  result.script ? Object.keys(result.script).length : 0,
192
- 3,
193
- 'three scripts expected'
241
+ 6,
242
+ '6 scripts expected'
194
243
  );
195
244
  // confirm created item
196
245
  assert.deepEqual(
@@ -198,17 +247,16 @@ describe('type: script', () => {
198
247
  await testUtils.getExpectedJson('9999999', 'script', 'post'),
199
248
  'returned metadata was not equal expected for insert script'
200
249
  );
201
- expect(file(testUtils.getActualFile('testNew_script', 'script', 'ssjs'))).to.equal(
202
- file(testUtils.getExpectedFile('9999999', 'script', 'post', 'ssjs'))
203
- );
204
250
  // confirm updated item
205
251
  assert.deepEqual(
206
252
  await testUtils.getActualJson('testExisting_script', 'script'),
207
253
  await testUtils.getExpectedJson('9999999', 'script', 'patch'),
208
254
  'returned metadata was not equal expected for insert script'
209
255
  );
210
- expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
211
- file(testUtils.getExpectedFile('9999999', 'script', 'patch', 'ssjs'))
256
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'html')).to.not
257
+ .exist;
258
+ expect(await testUtils.getActualFile('testExisting_script', 'script', 'ssjs')).to.equal(
259
+ await testUtils.getExpectedFile('9999999', 'script', 'patch', 'ssjs')
212
260
  );
213
261
  // check number of API calls
214
262
  assert.equal(
@@ -219,6 +267,7 @@ describe('type: script', () => {
219
267
  return;
220
268
  });
221
269
  });
270
+
222
271
  describe('Templating ================', () => {
223
272
  it('Should create a script template via retrieveAsTemplate and build it', async () => {
224
273
  // GIVEN there is a template
@@ -229,11 +278,7 @@ describe('type: script', () => {
229
278
  'testSourceMarket'
230
279
  );
231
280
  // WHEN
232
- assert.equal(
233
- process.exitCode,
234
- false,
235
- 'retrieveAsTemplate should not have thrown an error'
236
- );
281
+ assert.equal(process.exitCode, 0, 'retrieveAsTemplate should not have thrown an error');
237
282
  assert.equal(
238
283
  result.script ? Object.keys(result.script).length : 0,
239
284
  1,
@@ -245,20 +290,16 @@ describe('type: script', () => {
245
290
  'returned template JSON of retrieveAsTemplate was not equal expected'
246
291
  );
247
292
  expect(
248
- file(testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs'))
249
- ).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'));
250
295
  // THEN
251
296
  await handler.buildDefinition(
252
297
  'testInstance/testBU',
253
298
  'script',
254
- 'testExisting_script',
299
+ ['testExisting_script'],
255
300
  'testTargetMarket'
256
301
  );
257
- assert.equal(
258
- process.exitCode,
259
- false,
260
- 'buildDefinition should not have thrown an error'
261
- );
302
+ assert.equal(process.exitCode, 0, 'buildDefinition should not have thrown an error');
262
303
 
263
304
  assert.deepEqual(
264
305
  await testUtils.getActualDeployJson('testTemplated_script', 'script'),
@@ -266,8 +307,8 @@ describe('type: script', () => {
266
307
  'returned deployment JSON was not equal expected'
267
308
  );
268
309
  expect(
269
- file(testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs'))
270
- ).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'));
271
312
 
272
313
  assert.equal(
273
314
  testUtils.getAPIHistoryLength(),
@@ -276,6 +317,7 @@ describe('type: script', () => {
276
317
  );
277
318
  return;
278
319
  });
320
+
279
321
  it('Should create a script template via buildTemplate and build it', async () => {
280
322
  // download first before we test buildTemplate
281
323
  await handler.retrieve('testInstance/testBU', ['script']);
@@ -287,7 +329,7 @@ describe('type: script', () => {
287
329
  'testSourceMarket'
288
330
  );
289
331
  // WHEN
290
- 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');
291
333
 
292
334
  assert.equal(
293
335
  result.script ? Object.keys(result.script).length : 0,
@@ -300,20 +342,16 @@ describe('type: script', () => {
300
342
  'returned template JSON of buildTemplate was not equal expected'
301
343
  );
302
344
  expect(
303
- file(testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs'))
304
- ).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'));
305
347
  // THEN
306
348
  await handler.buildDefinition(
307
349
  'testInstance/testBU',
308
350
  'script',
309
- 'testExisting_script',
351
+ ['testExisting_script'],
310
352
  'testTargetMarket'
311
353
  );
312
- assert.equal(
313
- process.exitCode,
314
- false,
315
- 'buildDefinition should not have thrown an error'
316
- );
354
+ assert.equal(process.exitCode, 0, 'buildDefinition should not have thrown an error');
317
355
 
318
356
  assert.deepEqual(
319
357
  await testUtils.getActualDeployJson('testTemplated_script', 'script'),
@@ -321,8 +359,8 @@ describe('type: script', () => {
321
359
  'returned deployment JSON was not equal expected'
322
360
  );
323
361
  expect(
324
- file(testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs'))
325
- ).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'));
326
364
 
327
365
  assert.equal(
328
366
  testUtils.getAPIHistoryLength(),
@@ -332,7 +370,22 @@ describe('type: script', () => {
332
370
  return;
333
371
  });
334
372
  });
335
- 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
+
336
389
  describe('CI/CD ================', () => {
337
390
  it('Should return a list of files based on their type and key', async () => {
338
391
  // WHEN
@@ -340,11 +393,7 @@ describe('type: script', () => {
340
393
  'testExisting_script',
341
394
  ]);
342
395
  // THEN
343
- assert.equal(
344
- process.exitCode,
345
- false,
346
- 'getFilesToCommit should not have thrown an error'
347
- );
396
+ assert.equal(process.exitCode, 0, 'getFilesToCommit should not have thrown an error');
348
397
  assert.equal(fileList.length, 3, 'expected only 3 file paths (html, json, ssjs)');
349
398
 
350
399
  assert.equal(
@@ -365,5 +414,215 @@ describe('type: script', () => {
365
414
  return;
366
415
  });
367
416
  });
417
+
368
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
+ });
369
628
  });