mcdev 7.0.4 → 7.1.1

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 (350) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.husky/post-checkout +1 -1
  3. package/.husky/post-merge +7 -1
  4. package/.husky/pre-commit +2 -0
  5. package/@types/lib/Builder.d.ts.map +1 -1
  6. package/@types/lib/Deployer.d.ts +3 -0
  7. package/@types/lib/Deployer.d.ts.map +1 -1
  8. package/@types/lib/Retriever.d.ts.map +1 -1
  9. package/@types/lib/index.d.ts +70 -19
  10. package/@types/lib/index.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/Asset.d.ts +107 -16
  12. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/AttributeGroup.d.ts +3 -0
  14. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/AttributeSet.d.ts +80 -0
  16. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Automation.d.ts +11 -0
  18. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/Campaign.d.ts +1 -0
  20. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/ContentArea.d.ts +1 -0
  22. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/DataExtension.d.ts +5 -2
  24. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/DataExtensionField.d.ts +3 -4
  26. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  27. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +1 -0
  28. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -1
  29. package/@types/lib/metadataTypes/DataExtract.d.ts +1 -0
  30. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  31. package/@types/lib/metadataTypes/DataExtractType.d.ts +1 -0
  32. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
  33. package/@types/lib/metadataTypes/DeliveryProfile.d.ts +1 -0
  34. package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -1
  35. package/@types/lib/metadataTypes/Discovery.d.ts +1 -0
  36. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
  37. package/@types/lib/metadataTypes/Email.d.ts +1 -0
  38. package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
  39. package/@types/lib/metadataTypes/EmailSend.d.ts +9 -1
  40. package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -1
  41. package/@types/lib/metadataTypes/Event.d.ts +99 -0
  42. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  43. package/@types/lib/metadataTypes/FileLocation.d.ts +1 -0
  44. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
  45. package/@types/lib/metadataTypes/FileTransfer.d.ts +1 -0
  46. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
  47. package/@types/lib/metadataTypes/Filter.d.ts +1 -0
  48. package/@types/lib/metadataTypes/Filter.d.ts.map +1 -1
  49. package/@types/lib/metadataTypes/Folder.d.ts +39 -25
  50. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  51. package/@types/lib/metadataTypes/ImportFile.d.ts +30 -1
  52. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  53. package/@types/lib/metadataTypes/Journey.d.ts +123 -3
  54. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  55. package/@types/lib/metadataTypes/List.d.ts +1 -0
  56. package/@types/lib/metadataTypes/List.d.ts.map +1 -1
  57. package/@types/lib/metadataTypes/MetadataType.d.ts +50 -3
  58. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  59. package/@types/lib/metadataTypes/MobileCode.d.ts +1 -0
  60. package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -1
  61. package/@types/lib/metadataTypes/MobileKeyword.d.ts +9 -0
  62. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
  63. package/@types/lib/metadataTypes/MobileMessage.d.ts +4 -0
  64. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  65. package/@types/lib/metadataTypes/Query.d.ts +3 -0
  66. package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
  67. package/@types/lib/metadataTypes/Role.d.ts +1 -0
  68. package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
  69. package/@types/lib/metadataTypes/Script.d.ts +3 -1
  70. package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
  71. package/@types/lib/metadataTypes/SendClassification.d.ts +3 -0
  72. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
  73. package/@types/lib/metadataTypes/SenderProfile.d.ts +1 -6
  74. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  75. package/@types/lib/metadataTypes/TransactionalEmail.d.ts +6 -0
  76. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
  77. package/@types/lib/metadataTypes/TransactionalMessage.d.ts +1 -0
  78. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
  79. package/@types/lib/metadataTypes/TransactionalPush.d.ts +3 -0
  80. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
  81. package/@types/lib/metadataTypes/TransactionalSMS.d.ts +4 -0
  82. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
  83. package/@types/lib/metadataTypes/TriggeredSend.d.ts +6 -6
  84. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
  85. package/@types/lib/metadataTypes/User.d.ts +1 -0
  86. package/@types/lib/metadataTypes/User.d.ts.map +1 -1
  87. package/@types/lib/metadataTypes/Verification.d.ts +3 -0
  88. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
  89. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +78 -14
  90. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +3 -0
  91. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +80 -0
  92. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +16 -0
  93. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +1 -0
  94. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +1 -0
  95. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +1 -0
  96. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +1 -0
  97. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +1 -0
  98. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +1 -0
  99. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +1 -0
  100. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +1 -0
  101. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +1 -0
  102. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +1 -0
  103. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +9 -1
  104. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +99 -0
  105. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +1 -0
  106. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +1 -0
  107. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +1 -0
  108. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +1 -0
  109. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +30 -1
  110. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +94 -0
  111. package/@types/lib/metadataTypes/definitions/List.definition.d.ts +1 -0
  112. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +1 -0
  113. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +9 -0
  114. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +4 -0
  115. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +3 -0
  116. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +1 -0
  117. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +1 -0
  118. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +3 -0
  119. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +1 -0
  120. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +6 -0
  121. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +1 -0
  122. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +3 -0
  123. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +4 -0
  124. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +6 -0
  125. package/@types/lib/metadataTypes/definitions/User.definition.d.ts +1 -0
  126. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +3 -0
  127. package/@types/lib/util/cache.d.ts +10 -0
  128. package/@types/lib/util/cache.d.ts.map +1 -1
  129. package/@types/lib/util/cli.d.ts +3 -6
  130. package/@types/lib/util/cli.d.ts.map +1 -1
  131. package/@types/lib/util/config.d.ts.map +1 -1
  132. package/@types/lib/util/devops.d.ts.map +1 -1
  133. package/@types/lib/util/file.d.ts.map +1 -1
  134. package/@types/lib/util/init.config.d.ts.map +1 -1
  135. package/@types/lib/util/init.d.ts.map +1 -1
  136. package/@types/lib/util/init.git.d.ts.map +1 -1
  137. package/@types/lib/util/replaceContentBlockReference.d.ts +27 -4
  138. package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
  139. package/@types/lib/util/util.d.ts +32 -3
  140. package/@types/lib/util/util.d.ts.map +1 -1
  141. package/@types/types/mcdev.d.d.ts +87 -0
  142. package/@types/types/mcdev.d.d.ts.map +1 -1
  143. package/boilerplate/files/.vscode/settings.json +1 -0
  144. package/boilerplate/forcedUpdates.json +4 -0
  145. package/boilerplate/gitignore-template +0 -1
  146. package/lib/Builder.js +13 -8
  147. package/lib/Deployer.js +15 -7
  148. package/lib/Retriever.js +13 -2
  149. package/lib/cli.js +179 -14
  150. package/lib/index.js +543 -205
  151. package/lib/metadataTypes/Asset.js +469 -218
  152. package/lib/metadataTypes/Automation.js +34 -0
  153. package/lib/metadataTypes/DataExtension.js +34 -29
  154. package/lib/metadataTypes/DataExtensionField.js +2 -2
  155. package/lib/metadataTypes/Event.js +28 -2
  156. package/lib/metadataTypes/Folder.js +63 -48
  157. package/lib/metadataTypes/ImportFile.js +70 -28
  158. package/lib/metadataTypes/Journey.js +475 -95
  159. package/lib/metadataTypes/MetadataType.js +280 -61
  160. package/lib/metadataTypes/MobileKeyword.js +12 -1
  161. package/lib/metadataTypes/Script.js +4 -3
  162. package/lib/metadataTypes/SenderProfile.js +17 -5
  163. package/lib/metadataTypes/TriggeredSend.js +20 -5
  164. package/lib/metadataTypes/definitions/Asset.definition.js +66 -4
  165. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +1 -0
  166. package/lib/metadataTypes/definitions/AttributeSet.definition.js +86 -0
  167. package/lib/metadataTypes/definitions/Automation.definition.js +9 -0
  168. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -0
  169. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -0
  170. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  171. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -0
  172. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -0
  173. package/lib/metadataTypes/definitions/DataExtract.definition.js +2 -1
  174. package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -0
  175. package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +1 -0
  176. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -0
  177. package/lib/metadataTypes/definitions/Email.definition.js +1 -0
  178. package/lib/metadataTypes/definitions/EmailSend.definition.js +9 -1
  179. package/lib/metadataTypes/definitions/Event.definition.js +97 -96
  180. package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -0
  181. package/lib/metadataTypes/definitions/FileTransfer.definition.js +4 -0
  182. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  183. package/lib/metadataTypes/definitions/Folder.definition.js +10 -8
  184. package/lib/metadataTypes/definitions/ImportFile.definition.js +37 -2
  185. package/lib/metadataTypes/definitions/Journey.definition.js +111 -2
  186. package/lib/metadataTypes/definitions/List.definition.js +1 -0
  187. package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -0
  188. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +7 -0
  189. package/lib/metadataTypes/definitions/MobileMessage.definition.js +9 -0
  190. package/lib/metadataTypes/definitions/Query.definition.js +3 -0
  191. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  192. package/lib/metadataTypes/definitions/Script.definition.js +1 -0
  193. package/lib/metadataTypes/definitions/SendClassification.definition.js +4 -0
  194. package/lib/metadataTypes/definitions/SenderProfile.definition.js +1 -0
  195. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +7 -0
  196. package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +1 -0
  197. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +3 -0
  198. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +4 -0
  199. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +12 -5
  200. package/lib/metadataTypes/definitions/User.definition.js +3 -0
  201. package/lib/metadataTypes/definitions/Verification.definition.js +1 -0
  202. package/lib/util/cache.js +35 -0
  203. package/lib/util/cli.js +96 -139
  204. package/lib/util/config.js +11 -19
  205. package/lib/util/devops.js +41 -41
  206. package/lib/util/file.js +1 -12
  207. package/lib/util/init.config.js +6 -10
  208. package/lib/util/init.git.js +43 -57
  209. package/lib/util/init.js +35 -59
  210. package/lib/util/replaceContentBlockReference.js +107 -60
  211. package/lib/util/util.js +90 -4
  212. package/package.json +14 -13
  213. package/test/general.test.js +1121 -167
  214. package/test/mockRoot/.mcdevrc.json +1 -1
  215. package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withExistingDE.event-meta.json +1 -0
  216. package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withSchema.event-meta.json +1 -0
  217. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.json +1 -0
  218. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.json +1 -0
  219. package/test/resourceFactory.js +43 -11
  220. package/test/resources/1111111/dataFolder/retrieve-ContentTypeINshared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +364 -0
  221. package/test/resources/9999999/asset/{block-1157-retrieve-expected.html → build-asset_htmlblock-expected.html} +1 -1
  222. package/test/resources/9999999/asset/build-asset_htmlblock-expected.json +29 -0
  223. package/test/resources/9999999/asset/build-templatebasedemail-expected.json +65 -0
  224. package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +3 -3
  225. package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +3 -3
  226. package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +65 -0
  227. package/test/resources/9999999/asset/template-emailTemplate-expected.json +20 -0
  228. package/test/resources/9999999/asset/template-templatebasedemail-expected.json +65 -0
  229. package/test/resources/9999999/asset/template-testExisting_asset_htmlblock-expected.json +29 -0
  230. package/test/resources/9999999/asset/testExisting_asset_htmlblock-retrieve-expected.html +23 -0
  231. package/test/resources/9999999/asset/{block-1157-retrieve-expected.json → testExisting_asset_htmlblock-retrieve-expected.json} +3 -3
  232. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +6 -6
  233. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +1 -1
  234. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -4
  235. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +1 -1
  236. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -4
  237. package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +4 -4
  238. package/test/resources/9999999/asset/v1/content/assets/1295065/get-response.json +60 -0
  239. package/test/resources/9999999/asset/v1/content/assets/1295066/get-response.json +60 -0
  240. package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +75 -0
  241. package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +3 -3
  242. package/test/resources/9999999/asset/v1/content/assets/950143/get-response.json +97 -0
  243. package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +1 -1
  244. 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 +78 -2
  245. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14,193,194,15,195,196,197,198,199,200,201,202,203,210,211,212,213,3,207,208,209,5,214,4,215,216.json +370 -0
  246. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14,193,194,15,195,196,197,198,199,200,201,202,203,210,211,212,213,3,215,216,217,218,219,220,221,222.json +243 -0
  247. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,207,208,209,5.json +229 -0
  248. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +98 -1
  249. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN217,218,219,220,221,222,223,224,225,226,227,228.json +7 -0
  250. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN223,224,225,226,227,228,214,4.json +35 -0
  251. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN223,224,225,226,227,228.json +7 -0
  252. package/test/resources/9999999/asset/v1/content/assets/query/{post-response-customerKey=mcdev-issue-1157.json → post-response-customerKey=testExisting_asset_htmlblock.json} +2 -2
  253. package/test/resources/9999999/automation/v1/imports/d2474efb-a449-ef11-b876-f40343c95928/get-response.json +37 -0
  254. package/test/resources/9999999/automation/v1/imports/get-response.json +32 -1
  255. package/test/resources/9999999/automation/v1/queries/get-response-Name=testExisting_query.json +24 -0
  256. package/test/resources/9999999/automation/v1/scripts/get-response-name=testExisting_script.json +17 -0
  257. package/test/resources/9999999/automation/v1/scripts/get-response.json +2 -2
  258. package/test/resources/9999999/dataFolder/retrieve-ContentType=asset-shared-QAA-response.xml +70 -0
  259. package/test/resources/9999999/dataFolder/retrieve-ContentType=asset-shared-response.xml +70 -0
  260. package/test/resources/9999999/dataFolder/retrieve-ContentType=journey-response.xml +48 -0
  261. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml +519 -0
  262. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-sha,dataexten,salesforc,shared_da,shared_da,shared_sa,synchroni,automatio,useriniti,journey,mysubs,list,publicati,queryacti,ssjsactiv,triggered,triggered-response.xml +519 -0
  263. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,journey-response.xml +92 -0
  264. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +115 -0
  265. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,ssjsactivity-response.xml +92 -0
  266. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared-QAA-response.xml +70 -0
  267. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset-shared,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +431 -0
  268. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINautomations,queryactivity-response.xml +70 -0
  269. package/test/resources/9999999/dataFolder/{retrieve-response.xml → retrieve-ContentTypeINdataextension,hidden,queryactivity,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +32 -119
  270. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINdataextension,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +117 -0
  271. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINhidden,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +46 -0
  272. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINshared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +251 -0
  273. package/test/resources/9999999/dataFolder/retrieve-response-.xml +519 -0
  274. package/test/resources/9999999/event/build-expected.json +0 -1
  275. package/test/resources/9999999/event/get-expected.json +0 -1
  276. package/test/resources/9999999/event/post_withExistingDE-callout-expected.json +3 -0
  277. package/test/resources/9999999/event/post_withExistingDE-expected.json +2 -0
  278. package/test/resources/9999999/event/post_withSchema-callout-expected.json +3 -0
  279. package/test/resources/9999999/event/post_withSchema-expected.json +2 -0
  280. package/test/resources/9999999/event/put-callout-expected.json +3 -1
  281. package/test/resources/9999999/event/put-expected.json +2 -2
  282. package/test/resources/9999999/event/template-expected.json +0 -1
  283. package/test/resources/9999999/importFile/build-expected.json +2 -4
  284. package/test/resources/9999999/importFile/get-dataImport-expected.json +36 -0
  285. package/test/resources/9999999/importFile/get-expected.json +2 -4
  286. package/test/resources/9999999/importFile/get-sms-expected.json +2 -1
  287. package/test/resources/9999999/importFile/patch-expected.json +2 -4
  288. package/test/resources/9999999/importFile/post-expected.json +2 -4
  289. package/test/resources/9999999/importFile/template-expected.json +2 -4
  290. package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/put-response.json +2 -1
  291. package/test/resources/9999999/interaction/v1/eventDefinitions/post_withExistingDE-response.json +2 -0
  292. package/test/resources/9999999/interaction/v1/eventDefinitions/post_withSchema-response.json +2 -0
  293. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +4 -4
  294. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +4 -4
  295. package/test/resources/9999999/interaction/v1/interactions/publishAsync/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/post-response.json +4 -0
  296. package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-failed.json +34 -0
  297. package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-success.json +5 -0
  298. package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-successWarnings.json +36 -0
  299. package/test/resources/9999999/journey/build-expected.json +5 -5
  300. package/test/resources/9999999/journey/get-multistep-expected.json +1 -1
  301. package/test/resources/9999999/journey/get-quicksend-expected.json +5 -5
  302. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +1 -1
  303. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +7 -7
  304. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +1 -1
  305. package/test/resources/9999999/journey/post-expected.json +1 -1
  306. package/test/resources/9999999/journey/publish-callout-expected.json +1 -0
  307. package/test/resources/9999999/journey/put-expected.json +1 -1
  308. package/test/resources/9999999/journey/template-expected.json +5 -5
  309. package/test/resources/9999999/mobileKeyword/build-expected.json +1 -0
  310. package/test/resources/9999999/mobileKeyword/get-expected.json +1 -0
  311. package/test/resources/9999999/mobileKeyword/post-create-expected.json +1 -0
  312. package/test/resources/9999999/mobileKeyword/template-expected.json +1 -0
  313. package/test/resources/{1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml → 9999999/queryDefinition/retrieve-CustomerKey=badANDStatus=Active-response.xml} +10 -11
  314. package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +2 -2
  315. package/test/resources/9999999/script/get_ampscript-expected.html +1 -0
  316. package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +1 -0
  317. package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +3 -2
  318. package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +3 -0
  319. package/test/resources/9999999/script/get_mixed-expected.html +2 -2
  320. package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +2 -2
  321. package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +4 -4
  322. package/test/resources/9999999/senderProfile/retrieve-response.xml +1 -1
  323. package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +4 -4
  324. package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +1 -1
  325. package/test/type.asset.test.js +232 -39
  326. package/test/type.automation.test.js +121 -77
  327. package/test/type.dataExtract.test.js +4 -4
  328. package/test/type.emailSend.test.js +3 -3
  329. package/test/type.event.test.js +0 -2
  330. package/test/type.importFile.test.js +12 -7
  331. package/test/type.journey.test.js +322 -9
  332. package/test/type.query.test.js +33 -29
  333. package/test/type.script.test.js +61 -11
  334. package/test/type.senderProfile.test.js +36 -3
  335. package/test/type.transactionalEmail.test.js +3 -3
  336. package/test/type.triggeredSend.test.js +75 -6
  337. package/test/utils.js +13 -3
  338. package/types/mcdev.d.js +27 -1
  339. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml → retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-QAA-response.xml} +0 -0
  340. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=falseANDEmaillike@-response.xml → retrieve-ActiveFlag=falseANDEmaillike@-QAA-response.xml} +0 -0
  341. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-QAA-response.xml} +0 -0
  342. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml → retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-QAA-response.xml} +0 -0
  343. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDEmaillike@-response.xml → retrieve-ActiveFlag=trueANDEmaillike@-QAA-response.xml} +0 -0
  344. /package/test/resources/1111111/businessUnit/{retrieve-ID=1111111-response.xml → retrieve-ID=1111111-QAA-response.xml} +0 -0
  345. /package/test/resources/1111111/dataFolder/{retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml → retrieve-ContentTypeINdataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +0 -0
  346. /package/test/resources/1111111/dataFolder/{retrieve-response.xml → retrieve-response-.xml} +0 -0
  347. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=asset-sharedORContentType=asset-response.xml → retrieve-ContentTypeINasset,asset-shared-response.xml} +0 -0
  348. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml → retrieve-ContentTypeINcontextual_suppression_list,list,mysubs,publication,suppression_list-response.xml} +0 -0
  349. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml → retrieve-ContentTypeINdataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +0 -0
  350. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml → retrieve-ContentTypeINhidden,triggered_send,triggered_send_journeybuilder-response.xml} +0 -0
@@ -1,6 +1,13 @@
1
1
  export default {
2
2
  bodyIteratorField: 'items',
3
- dependencies: ['fileLocation', 'dataExtension', 'list'],
3
+ dependencies: ['fileLocation', 'dataExtension', 'list', 'mobileKeyword'],
4
+ dependencyGraph: {
5
+ // fileLocation cannot be deployed
6
+ // fileLocation: ['source.r__fileLocation_name'],
7
+ dataExtension: ['destination.r__dataExtension_key', 'source.r__dataExtension_key'],
8
+ list: ['destination.r__list_PathName'],
9
+ mobileKeyword: ['destination.r__mobileKeyword_key'],
10
+ },
4
11
  destinationObjectTypeMapping: {
5
12
  unknown: 783,
6
13
  DataExtension: 310,
@@ -124,6 +131,14 @@ export default {
124
131
  skipValidation: true,
125
132
  },
126
133
  fileNamingPattern: {
134
+ // for FTP-import: pattern to look for; for DE-import: "_CustomObject"
135
+ isCreateable: true,
136
+ isUpdateable: true,
137
+ retrieving: true,
138
+ template: true,
139
+ },
140
+ fileSpec: {
141
+ // same as fileNamingPattern
127
142
  isCreateable: true,
128
143
  isUpdateable: true,
129
144
  retrieving: true,
@@ -249,6 +264,20 @@ export default {
249
264
  retrieving: true,
250
265
  template: true,
251
266
  },
267
+ sourceCustomObjectId: {
268
+ // for FTP-import: empty string; for DE-import: dataExtension id
269
+ isCreateable: true,
270
+ isUpdateable: true,
271
+ retrieving: true,
272
+ template: true,
273
+ },
274
+ sourceDataExtensionName: {
275
+ // for FTP-import: empty string; for DE-import: dataExtension name
276
+ isCreateable: true,
277
+ isUpdateable: true,
278
+ retrieving: true,
279
+ template: true,
280
+ },
252
281
  c__dataAction: {
253
282
  isCreateable: false,
254
283
  isUpdateable: false,
@@ -273,7 +302,13 @@ export default {
273
302
  retrieving: true,
274
303
  template: true,
275
304
  },
276
- 'destination.c__destinationType': {
305
+ 'source.c__type': {
306
+ isCreateable: false,
307
+ isUpdateable: false,
308
+ retrieving: true,
309
+ template: true,
310
+ },
311
+ 'destination.c__type': {
277
312
  isCreateable: false,
278
313
  isUpdateable: false,
279
314
  retrieving: true,
@@ -20,6 +20,34 @@ export default {
20
20
  'sendClassification', // for EMAILV2-activity
21
21
  'senderProfile', // for EMAILV2-activity
22
22
  ], // ! interaction and transactionalEmail both link to each other. caching transactionalEmail here "manually" instead of via dependencies array, assuming that it is quicker than the other way round
23
+ dependencyGraph: {
24
+ // classic email cannot be deployed anymore
25
+ event: ['triggers.metaData.r__event_key'],
26
+ transactionalEmail: ['activities.configurationArguments.r__transactionalEmail_key'],
27
+ dataExtension: [
28
+ 'activities.metaData.highThroughput.r__dataExtension_key',
29
+ 'activities.configurationArguments.triggeredSend.r__dataExtension_key.domainExclusions',
30
+ ],
31
+ triggeredSend: ['activities.configurationArguments.r__triggeredSend_key'],
32
+ list: [
33
+ 'activities.configurationArguments.triggeredSend.r__list_PathName.publicationList',
34
+ 'activities.configurationArguments.triggeredSend.r__list_PathName.suppressionLists',
35
+ ],
36
+ senderProfile: ['activities.configurationArguments.triggeredSend.r__senderProfile_key'],
37
+ sendClassification: [
38
+ 'activities.configurationArguments.triggeredSend.r__sendClassification_key',
39
+ ],
40
+ asset: [
41
+ 'activities.configurationArguments.triggeredSend.r__asset_key',
42
+ 'activities.configurationArguments.r__asset_key',
43
+ ],
44
+ mobileMessage: ['activities.configurationArguments.r__mobileMessage_key'],
45
+ mobileKeyword: [
46
+ 'activities.configurationArguments.r__mobileKeyword_key.current',
47
+ 'activities.configurationArguments.r__mobileKeyword_key.next',
48
+ ],
49
+ mobileCode: ['activities.configurationArguments.r__mobileCode_key'],
50
+ },
23
51
  folderIdField: 'categoryId',
24
52
  hasExtended: false,
25
53
  idField: 'id',
@@ -75,6 +103,9 @@ export default {
75
103
  retrieving: null,
76
104
  template: null,
77
105
  },
106
+ 'defaults.properties': {
107
+ skipValidation: true,
108
+ },
78
109
  'defaults.properties.analyticsTracking.analyticsType': {
79
110
  isCreateable: null,
80
111
  isUpdateable: null,
@@ -256,6 +287,48 @@ export default {
256
287
  retrieving: true,
257
288
  template: true,
258
289
  },
290
+ 'triggers[].arguments.serializedObjectType': {
291
+ isCreateable: true,
292
+ isUpdateable: true,
293
+ retrieving: true,
294
+ template: true,
295
+ },
296
+ 'triggers[].arguments.eventDefinitionId': {
297
+ isCreateable: true,
298
+ isUpdateable: true,
299
+ retrieving: true,
300
+ template: true,
301
+ },
302
+ 'triggers[].arguments.eventDefinitionKey': {
303
+ isCreateable: true,
304
+ isUpdateable: true,
305
+ retrieving: true,
306
+ template: true,
307
+ },
308
+ 'triggers[].arguments.dataExtensionId': {
309
+ isCreateable: true,
310
+ isUpdateable: true,
311
+ retrieving: true,
312
+ template: true,
313
+ },
314
+ 'triggers[].arguments.automationId': {
315
+ isCreateable: true,
316
+ isUpdateable: true,
317
+ retrieving: true,
318
+ template: true,
319
+ },
320
+ 'triggers[].arguments.r__event_key': {
321
+ isCreateable: false,
322
+ isUpdateable: false,
323
+ retrieving: true,
324
+ template: true,
325
+ },
326
+ 'triggers[].arguments.r__dataExtension_key': {
327
+ isCreateable: false,
328
+ isUpdateable: false,
329
+ retrieving: true,
330
+ template: true,
331
+ },
259
332
  'triggers[].configurationArguments': {
260
333
  isCreateable: true,
261
334
  isUpdateable: true,
@@ -365,6 +438,24 @@ export default {
365
438
  retrieving: true,
366
439
  template: true,
367
440
  },
441
+ 'triggers[].configurationArguments.whoToInject': {
442
+ isCreateable: true,
443
+ isUpdateable: true,
444
+ retrieving: true,
445
+ template: true,
446
+ },
447
+ 'triggers[].configurationArguments.objectApiName': {
448
+ isCreateable: true,
449
+ isUpdateable: true,
450
+ retrieving: true,
451
+ template: true,
452
+ },
453
+ 'triggers[].configurationArguments.additionalObjectFilterCriteria': {
454
+ isCreateable: true,
455
+ isUpdateable: true,
456
+ retrieving: true,
457
+ template: true,
458
+ },
368
459
  'triggers[].metaData': {
369
460
  isCreateable: true,
370
461
  isUpdateable: true,
@@ -372,10 +463,28 @@ export default {
372
463
  template: true,
373
464
  },
374
465
  'triggers[].metaData.sourceInteractionId': {
466
+ isCreateable: true,
467
+ isUpdateable: true,
468
+ retrieving: true,
469
+ template: true,
470
+ },
471
+ 'triggers[].metaData.entrySourceGroupConfigUrl': {
472
+ isCreateable: true,
473
+ isUpdateable: true,
474
+ retrieving: true,
475
+ template: true,
476
+ },
477
+ 'triggers[].metaData.r__event_key': {
375
478
  isCreateable: false,
376
479
  isUpdateable: false,
377
- retrieving: false,
378
- template: false,
480
+ retrieving: true,
481
+ template: true,
482
+ },
483
+ 'triggers[].metaData.category': {
484
+ isCreateable: true,
485
+ isUpdateable: true,
486
+ retrieving: true,
487
+ template: true,
379
488
  },
380
489
  'triggers[].metaData.eventDefinitionId': {
381
490
  isCreateable: false,
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'Results',
3
3
  dependencies: ['folder-mysubs', 'folder-list', 'folder-publication'],
4
+ dependencyGraph: null,
4
5
  folderType: 'list',
5
6
  hasExtended: false,
6
7
  idField: 'ObjectID',
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'entry',
3
3
  dependencies: [],
4
+ dependencyGraph: null,
4
5
  hasExtended: false,
5
6
  idField: 'id',
6
7
  keyIsFixed: true,
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'entry',
3
3
  dependencies: ['mobileCode'],
4
+ dependencyGraph: { mobileCode: ['r__mobileCode_key'] },
4
5
  hasExtended: false,
5
6
  idField: 'id',
6
7
  keyIsFixed: false, // custom field but mapped to normal fields
@@ -31,6 +32,12 @@ export default {
31
32
  retrieving: true,
32
33
  template: true,
33
34
  },
35
+ r__mobileCode_key: {
36
+ isCreateable: false,
37
+ isUpdateable: false,
38
+ retrieving: true,
39
+ template: true,
40
+ },
34
41
  keyword: {
35
42
  isCreateable: true,
36
43
  isUpdateable: true,
@@ -1,6 +1,15 @@
1
1
  export default {
2
2
  bodyIteratorField: 'entry',
3
3
  dependencies: ['mobileCode', 'mobileKeyword', 'campaign'],
4
+ dependencyGraph: {
5
+ mobileCode: ['r__mobileCode_key'],
6
+ mobileKeyword: [
7
+ 'keyword.r__mobileKeyword_key',
8
+ 'subscriptionKeyword.r__mobileKeyword_key',
9
+ 'nextKeyword.r__mobileKeyword_key',
10
+ ],
11
+ // campaign: ['r__campaign_key'], // campaign cannot be deployed
12
+ },
4
13
  hasExtended: false,
5
14
  idField: 'id',
6
15
  keepId: true,
@@ -1,6 +1,9 @@
1
1
  export default {
2
2
  bodyIteratorField: 'items',
3
3
  dependencies: ['folder-queryactivity', 'dataExtension'],
4
+ dependencyGraph: {
5
+ dataExtension: ['r__dataExtension_key'],
6
+ },
4
7
  folderType: 'queryactivity',
5
8
  filter: {
6
9
  description: ['Query created by Query Studio'],
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'Results',
3
3
  dependencies: [],
4
+ dependencyGraph: null,
4
5
  deployBlacklist: [
5
6
  'SYS_DEF_ADMIN',
6
7
  'SYS_DEF_ANALYST',
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'items',
3
3
  dependencies: ['folder-ssjsactivity'],
4
+ dependencyGraph: null,
4
5
  folderType: 'ssjsactivity',
5
6
  hasExtended: false,
6
7
  idField: 'ssjsActivityId',
@@ -2,6 +2,10 @@
2
2
  export default {
3
3
  bodyIteratorField: 'Results',
4
4
  dependencies: ['senderProfile', 'deliveryProfile'],
5
+ dependencyGraph: {
6
+ senderProfile: ['r__senderProfile_key'],
7
+ // deliveryProfile: ['r__deliveryProfile_key'], // deliveryProfile cannot be deployed
8
+ },
5
9
  filter: {},
6
10
  hasExtended: false,
7
11
  idField: 'ObjectID',
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'Results',
3
3
  dependencies: [],
4
+ dependencyGraph: null,
4
5
  filter: {},
5
6
  hasExtended: false,
6
7
  idField: 'ObjectID',
@@ -1,6 +1,13 @@
1
1
  export default {
2
2
  bodyIteratorField: 'definitions',
3
3
  dependencies: ['asset-message', 'dataExtension', 'list', 'journey'],
4
+ dependencyGraph: {
5
+ // classic email cannot be deployed anymore
6
+ asset: ['r__asset_key'],
7
+ dataExtension: ['subscriptions.r__dataExtension_key'],
8
+ list: ['subscriptions.r__list_PathName'],
9
+ journey: ['r__journey_key'],
10
+ },
4
11
  hasExtended: false,
5
12
  idField: 'definitionId',
6
13
  keyIsFixed: true, // sending definitionKey in update call not allowed by API
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'definitions',
3
3
  dependencies: [],
4
+ dependencyGraph: null,
4
5
  hasExtended: false,
5
6
  idField: 'definitionId',
6
7
  keyIsFixed: true, // sending definitionKey in update call not allowed by API
@@ -1,6 +1,9 @@
1
1
  export default {
2
2
  bodyIteratorField: 'definitions',
3
3
  dependencies: ['asset-asset'],
4
+ dependencyGraph: {
5
+ asset: ['r__asset_key'],
6
+ },
4
7
  hasExtended: false,
5
8
  idField: 'definitionId',
6
9
  keyIsFixed: true, // sending definitionKey in update call not allowed by API
@@ -1,6 +1,10 @@
1
1
  export default {
2
2
  bodyIteratorField: 'definitions',
3
3
  dependencies: ['mobileCode', 'mobileKeyword'],
4
+ dependencyGraph: {
5
+ mobileKeyword: ['subscriptions.r__mobileKeyword_key'],
6
+ mobileCode: ['subscriptions.r__mobileCode_key'],
7
+ },
4
8
  hasExtended: false,
5
9
  idField: 'definitionId',
6
10
  keyIsFixed: true, // sending definitionKey in update call not allowed by API
@@ -10,6 +10,13 @@ export default {
10
10
  'sendClassification',
11
11
  'senderProfile',
12
12
  ],
13
+ dependencyGraph: {
14
+ // classic email cannot be deployed anymore
15
+ asset: ['r__asset_key'],
16
+ list: ['r__list_PathName'],
17
+ sendClassification: ['r__sendClassification_key'],
18
+ senderProfile: ['r__senderProfile_key'],
19
+ },
13
20
  folderType: 'triggered_send',
14
21
  hasExtended: false,
15
22
  idField: 'ObjectID',
@@ -72,8 +79,8 @@ export default {
72
79
  templating: true,
73
80
  },
74
81
  CCEmail: {
75
- isCreateable: false,
76
- isUpdateable: false,
82
+ isCreateable: true,
83
+ isUpdateable: true,
77
84
  retrieving: false,
78
85
  templating: false,
79
86
  },
@@ -360,9 +367,9 @@ export default {
360
367
  templating: false,
361
368
  },
362
369
  PreHeader: {
363
- // not supported by API
364
- isCreateable: false,
365
- isUpdateable: false,
370
+ // retrieve not supported by API
371
+ isCreateable: true,
372
+ isUpdateable: true,
366
373
  retrieving: false,
367
374
  templating: false,
368
375
  },
@@ -1,6 +1,9 @@
1
1
  export default {
2
2
  bodyIteratorField: 'Results',
3
3
  dependencies: ['role'],
4
+ dependencyGraph: {
5
+ // role: ['c__RoleNamesGlobal'] // roles should rarely ever be deployed and hence this is not needed here
6
+ },
4
7
  folderType: null,
5
8
  hasExtended: false,
6
9
  idField: 'AccountUserID', // ID contains the same value as AccountUserID but is not required by API
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  bodyIteratorField: 'items',
3
3
  dependencies: ['dataExtension'],
4
+ dependencyGraph: { dataExtension: ['r__dataExtension_key'] },
4
5
  hasExtended: false,
5
6
  idField: 'dataVerificationDefinitionId',
6
7
  keyIsFixed: true,
package/lib/util/cache.js CHANGED
@@ -18,6 +18,9 @@ import { Util } from './util.js';
18
18
  * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
19
19
  * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
20
20
  * @typedef {import('../../types/mcdev.d.js').TypeKeyCombo} TypeKeyCombo
21
+ *
22
+ * @typedef {import('../../types/mcdev.d.js').ListItem} ListItem
23
+ * @typedef {import('../../types/mcdev.d.js').ListMap} ListMap
21
24
  */
22
25
 
23
26
  /** @type {Cache} */
@@ -144,6 +147,38 @@ export default {
144
147
  `Dependent ${metadataType} with ${searchField}='${searchValue}' was not found on your BU`
145
148
  );
146
149
  },
150
+ /**
151
+ * helper for setFolderId
152
+ *
153
+ * @param {string} r__folder_Path folder path value
154
+ * @param {number} [overrideMID] ignore currentMID and use alternative (for example parent MID)
155
+ * @returns {number} folder ID
156
+ */
157
+ getFolderId(r__folder_Path, overrideMID) {
158
+ if (!r__folder_Path) {
159
+ throw new Error('r__folder_Path not set');
160
+ }
161
+ /** @type {ListMap} */
162
+ const folderMap = dataStore[overrideMID || currentMID]?.['folder'];
163
+ if (!folderMap) {
164
+ throw new Error('No folders found in cache');
165
+ }
166
+ const potentialFolders = [];
167
+ for (const folder of Object.values(folderMap)) {
168
+ if (folder.Path === r__folder_Path) {
169
+ if (folder.Client.ID === (overrideMID || currentMID)) {
170
+ return folder.ID;
171
+ } else {
172
+ potentialFolders.push(folder);
173
+ }
174
+ }
175
+ }
176
+ if (potentialFolders.length >= 1) {
177
+ return potentialFolders[0].ID;
178
+ } else {
179
+ throw new Error(`No folders found with path ${r__folder_Path}`);
180
+ }
181
+ },
147
182
  /**
148
183
  * standardized method for getting data from cache - adapted for special case of lists
149
184
  * ! keeping this in util/cache.js rather than in metadataTypes/List.js to avoid potential circular dependencies