mcdev 5.1.0 → 5.3.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 (256) hide show
  1. package/.eslintrc.json +4 -4
  2. package/.fork/custom-commands.json +12 -0
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +19 -0
  5. package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  6. package/.github/workflows/coverage-develop-branch.yml +0 -2
  7. package/.github/workflows/coverage-main-branch.yml +0 -2
  8. package/.github/workflows/coverage.yml +0 -2
  9. package/.husky/post-checkout +1 -0
  10. package/.husky/post-merge +1 -0
  11. package/.vscode/extensions.json +4 -0
  12. package/docs/dist/documentation.md +1034 -296
  13. package/lib/Deployer.js +25 -25
  14. package/lib/MetadataTypeDefinitions.js +2 -1
  15. package/lib/MetadataTypeInfo.js +2 -1
  16. package/lib/Retriever.js +1 -1
  17. package/lib/cli.js +165 -10
  18. package/lib/index.js +398 -95
  19. package/lib/metadataTypes/Asset.js +10 -11
  20. package/lib/metadataTypes/AttributeGroup.js +76 -2
  21. package/lib/metadataTypes/AttributeSet.js +367 -0
  22. package/lib/metadataTypes/Automation.js +483 -137
  23. package/lib/metadataTypes/DataExtension.js +465 -68
  24. package/lib/metadataTypes/DataExtensionField.js +31 -14
  25. package/lib/metadataTypes/Event.js +2 -3
  26. package/lib/metadataTypes/Folder.js +1 -1
  27. package/lib/metadataTypes/Journey.js +13 -7
  28. package/lib/metadataTypes/MetadataType.js +212 -54
  29. package/lib/metadataTypes/MobileKeyword.js +9 -9
  30. package/lib/metadataTypes/MobileMessage.js +5 -5
  31. package/lib/metadataTypes/Query.js +26 -10
  32. package/lib/metadataTypes/Script.js +3 -3
  33. package/lib/metadataTypes/TransactionalEmail.js +94 -17
  34. package/lib/metadataTypes/TransactionalMessage.js +3 -2
  35. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  36. package/lib/metadataTypes/TriggeredSend.js +25 -50
  37. package/lib/metadataTypes/User.js +7 -4
  38. package/lib/metadataTypes/Verification.js +230 -0
  39. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +119 -108
  40. package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +123 -43
  41. package/lib/metadataTypes/definitions/Automation.definition.js +23 -15
  42. package/lib/metadataTypes/definitions/ImportFile.definition.js +36 -6
  43. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +19 -1
  44. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
  45. package/lib/metadataTypes/definitions/Verification.definition.js +88 -0
  46. package/lib/util/cache.js +9 -4
  47. package/lib/util/cli.js +40 -0
  48. package/lib/util/file.js +2 -2
  49. package/lib/util/init.js +84 -0
  50. package/lib/util/util.js +121 -13
  51. package/package.json +13 -13
  52. package/test/mockRoot/.mcdevrc.json +1 -1
  53. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +59 -0
  54. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +23 -0
  55. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +1 -2
  56. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +9 -6
  57. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +1 -0
  58. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
  59. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
  60. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
  61. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
  62. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
  63. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
  64. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
  65. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
  66. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
  67. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
  68. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
  69. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
  70. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +3 -4
  71. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -6
  72. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
  73. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
  74. package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
  75. package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
  76. package/test/resourceFactory.js +77 -12
  77. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
  78. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
  79. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
  80. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
  81. package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
  82. package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
  83. package/test/resources/1111111/data/v1/customobjectdata/key/testExisting_dataExtensionShared/rowset/get-response.json +13 -0
  84. package/test/resources/1111111/dataExtension/create-expected.json +23 -0
  85. package/test/resources/1111111/dataExtension/create-response.xml +59 -0
  86. package/test/resources/1111111/dataExtension/retrieve-expected.json +55 -0
  87. package/test/resources/1111111/dataExtension/retrieve-expected.md +18 -0
  88. package/test/resources/1111111/dataExtension/retrieve-response.xml +27 -1
  89. package/test/resources/1111111/dataExtension/update-expected.json +55 -0
  90. package/test/resources/1111111/dataExtension/update-response.xml +57 -0
  91. package/test/resources/1111111/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtensionShared].[TriggerUpdate_randomNumber_]-response.xml +45 -0
  92. package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
  93. package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionSharedORDataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
  94. package/test/resources/1111111/dataExtensionField/retrieve-response.xml +98 -0
  95. package/test/resources/1111111/dataExtensionTemplate/retrieve-response.xml +303 -0
  96. package/test/resources/1111111/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +387 -0
  97. package/test/resources/1111111/dataFolder/retrieve-response.xml +353 -9
  98. package/test/resources/1111111/user/retrieve-expected.md +4 -2
  99. package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
  100. package/test/resources/9999999/attributeSet/retrieve-expected.json +143 -0
  101. package/test/resources/9999999/automation/build-expected.json +5 -2
  102. package/test/resources/9999999/automation/create-expected.json +11 -8
  103. package/test/resources/9999999/automation/create-testNew_automation-expected.md +5 -4
  104. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
  105. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
  106. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  107. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
  108. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
  109. package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  110. package/test/resources/9999999/automation/retrieve-expected.json +5 -2
  111. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +3 -2
  112. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  113. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
  114. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
  115. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
  116. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  117. package/test/resources/9999999/automation/template-expected.json +5 -2
  118. package/test/resources/9999999/automation/update-expected.json +1 -2
  119. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +2 -2
  120. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +7 -0
  121. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
  122. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
  123. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
  124. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
  125. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
  126. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
  127. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +1 -1
  128. package/test/resources/9999999/automation/v1/automations/post-response.json +27 -19
  129. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
  130. package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
  131. package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
  132. package/test/resources/9999999/automation/v1/dataverifications/post-response.json +12 -0
  133. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/delete-response.json +0 -0
  134. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/get-response.json +12 -0
  135. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/patch-response.json +12 -0
  136. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
  137. package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
  138. package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
  139. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
  140. package/test/resources/9999999/automation/v1/imports/get-response.json +1 -1
  141. package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
  142. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
  143. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
  144. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
  145. package/test/resources/9999999/automation/v1/queries/get-response.json +18 -1
  146. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
  147. package/test/resources/9999999/automation/v1/scripts/get-response.json +12 -2
  148. package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
  149. package/test/resources/9999999/dataExtension/build-expected.json +16 -0
  150. package/test/resources/9999999/dataExtension/delete-response.xml +42 -0
  151. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
  152. package/test/resources/9999999/dataExtension/retrieve-expected.json +16 -0
  153. package/test/resources/9999999/dataExtension/retrieve-expected.md +3 -1
  154. package/test/resources/9999999/dataExtension/template-expected.json +16 -0
  155. package/test/resources/9999999/dataExtension/update-expected.json +17 -1
  156. package/test/resources/9999999/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtension].[LastName]-response.xml +44 -0
  157. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +133 -0
  158. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
  159. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +36 -1
  160. package/test/resources/9999999/dataExtract/build-expected.json +35 -0
  161. package/test/resources/9999999/dataExtract/get-expected.json +39 -0
  162. package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
  163. package/test/resources/9999999/dataExtract/post-expected.json +37 -0
  164. package/test/resources/9999999/dataExtract/template-expected.json +35 -0
  165. package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
  166. package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
  167. package/test/resources/9999999/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +117 -0
  168. package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
  169. package/test/resources/9999999/dataFolder/retrieve-response.xml +23 -0
  170. package/test/resources/9999999/email/retrieve-response.xml +203 -0
  171. package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
  172. package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
  173. package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
  174. package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
  175. package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
  176. package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +628 -0
  177. package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +20194 -0
  178. package/test/resources/9999999/importFile/build-expected.json +27 -0
  179. package/test/resources/9999999/importFile/get-expected.json +29 -0
  180. package/test/resources/9999999/importFile/patch-expected.json +29 -0
  181. package/test/resources/9999999/importFile/post-expected.json +29 -0
  182. package/test/resources/9999999/importFile/template-expected.json +27 -0
  183. package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +1 -0
  184. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +1 -1
  185. package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
  186. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/delete-response.json +6 -0
  187. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
  188. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
  189. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
  190. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
  191. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
  192. package/test/resources/9999999/program/retrieve-response.xml +21 -3
  193. package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
  194. package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
  195. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
  196. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
  197. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
  198. package/test/resources/9999999/script/build-expected.json +6 -0
  199. package/test/resources/9999999/script/build-expected.ssjs +1 -0
  200. package/test/resources/9999999/script/get-expected.json +8 -0
  201. package/test/resources/9999999/script/get-expected.ssjs +1 -0
  202. package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
  203. package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
  204. package/test/resources/9999999/script/patch-expected.json +8 -0
  205. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  206. package/test/resources/9999999/script/post-expected.json +8 -0
  207. package/test/resources/9999999/script/post-expected.ssjs +1 -0
  208. package/test/resources/9999999/script/template-expected.json +6 -0
  209. package/test/resources/9999999/script/template-expected.ssjs +1 -0
  210. package/test/resources/9999999/transactionalEmail/build-expected.json +3 -7
  211. package/test/resources/9999999/transactionalEmail/get-expected.json +3 -7
  212. package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -7
  213. package/test/resources/9999999/transactionalEmail/post-expected.json +3 -7
  214. package/test/resources/9999999/transactionalEmail/template-expected.json +3 -7
  215. package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
  216. package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
  217. package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
  218. package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
  219. package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
  220. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
  221. package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
  222. package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
  223. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
  224. package/test/resources/9999999/verification/build-expected.json +11 -0
  225. package/test/resources/9999999/verification/get-expected.json +11 -0
  226. package/test/resources/9999999/verification/patch-expected.json +11 -0
  227. package/test/resources/9999999/verification/post-expected.json +11 -0
  228. package/test/resources/9999999/verification/template-expected.json +11 -0
  229. package/test/type.attributeGroup.test.js +55 -0
  230. package/test/type.attributeSet.test.js +55 -0
  231. package/test/type.automation.test.js +650 -17
  232. package/test/type.dataExtension.test.js +205 -46
  233. package/test/type.dataExtract.test.js +194 -0
  234. package/test/type.fileTransfer.test.js +192 -0
  235. package/test/type.importFile.test.js +193 -0
  236. package/test/type.journey.test.js +38 -11
  237. package/test/type.mobileKeyword.test.js +6 -5
  238. package/test/type.mobileMessage.test.js +6 -4
  239. package/test/type.query.test.js +470 -17
  240. package/test/type.script.test.js +372 -0
  241. package/test/type.transactionalEmail.test.js +12 -11
  242. package/test/type.transactionalPush.test.js +2 -4
  243. package/test/type.transactionalSMS.test.js +2 -4
  244. package/test/type.triggeredSend.test.js +154 -0
  245. package/test/type.user.test.js +22 -10
  246. package/test/type.verification.test.js +173 -0
  247. package/test/utils.js +11 -2
  248. package/types/mcdev.d.js +14 -0
  249. package/lib/metadataTypes/SetDefinition.js +0 -37
  250. /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
  251. /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
  252. /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
  253. /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
  254. /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
  255. /package/test/resources/9999999/emailSendDefinition/{retrieve-response.xml → retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml} +0 -0
  256. /package/test/resources/9999999/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "testExisting_dataExtract",
3
+ "key": "testExisting_dataExtract",
4
+ "description": "updated on deploy",
5
+ "r__dataExtractType_name": "Data Extension Extract",
6
+ "fileSpec": "testExisting-%%Year%%-%%Month%%-%%Day%%",
7
+ "intervalType": 0,
8
+ "dataFields": [
9
+ {
10
+ "name": "ColumnDelimiter",
11
+ "type": "string",
12
+ "value": ","
13
+ },
14
+ {
15
+ "name": "DECustomerKey",
16
+ "type": "string",
17
+ "value": "testExisting_dataExtension"
18
+ },
19
+ {
20
+ "name": "HasColumnHeaders",
21
+ "type": "bool",
22
+ "value": "False"
23
+ },
24
+ {
25
+ "name": "TextQualified",
26
+ "type": "bool",
27
+ "value": "False"
28
+ },
29
+ {
30
+ "name": "UsesLineFeed",
31
+ "type": "bool",
32
+ "value": "False"
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "testNew_dataExtract",
3
+ "key": "testNew_dataExtract",
4
+ "description": "created via deploy",
5
+ "r__dataExtractType_name": "Data Extension Extract",
6
+ "fileSpec": "testNew-%%Year%%-%%Month%%-%%Day%%",
7
+ "intervalType": 0,
8
+ "dataFields": [
9
+ {
10
+ "name": "ColumnDelimiter",
11
+ "type": "string",
12
+ "value": ","
13
+ },
14
+ {
15
+ "name": "DECustomerKey",
16
+ "type": "string",
17
+ "value": "testExisting_dataExtension"
18
+ },
19
+ {
20
+ "name": "HasColumnHeaders",
21
+ "type": "bool",
22
+ "value": "False"
23
+ },
24
+ {
25
+ "name": "TextQualified",
26
+ "type": "bool",
27
+ "value": "False"
28
+ },
29
+ {
30
+ "name": "UsesLineFeed",
31
+ "type": "bool",
32
+ "value": "False"
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "createdDate": "2022-11-09T05:31:56.477",
3
+ "customerKey": "testExisting_fileTransfer",
4
+ "description": "17.11.2022",
5
+ "fileSpec": "%%Year%% updated via deploy",
6
+ "isCompressed": false,
7
+ "isEncrypted": false,
8
+ "isFileSpecLocalized": false,
9
+ "isPgp": false,
10
+ "isUpload": true,
11
+ "maxFileAge": 0,
12
+ "maxFileAgeScheduleOffset": 0,
13
+ "maxImportFrequency": 0,
14
+ "modifiedDate": "2022-11-17T07:13:20.05",
15
+ "name": "testExisting_fileTransfer",
16
+ "r__fileLocation_name": "ExactTarget Enhanced FTP"
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "createdDate": "2022-11-09T05:31:56.477",
3
+ "customerKey": "testNew_fileTransfer",
4
+ "description": "17.11.2022",
5
+ "fileSpec": "%%Year%% created on deploy",
6
+ "isCompressed": false,
7
+ "isEncrypted": false,
8
+ "isFileSpecLocalized": false,
9
+ "isPgp": false,
10
+ "isUpload": true,
11
+ "maxFileAge": 0,
12
+ "maxFileAgeScheduleOffset": 0,
13
+ "maxImportFrequency": 0,
14
+ "modifiedDate": "2022-11-17T07:13:20.05",
15
+ "name": "testNew_fileTransfer",
16
+ "r__fileLocation_name": "ExactTarget Enhanced FTP"
17
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "allowErrors": true,
3
+ "createdDate": "2022-11-09T05:32:30.533",
4
+ "customerKey": "testExisting_importFile",
5
+ "dateFormatLocale": "en-US",
6
+ "deleteFile": false,
7
+ "description": "updated on deploy",
8
+ "fieldMappingType": "InferFromColumnHeadings",
9
+ "fieldMappings": [],
10
+ "fileNamingPattern": "blabla",
11
+ "fileTransferLocationTypeId": 0,
12
+ "fileType": "CSV",
13
+ "filter": "",
14
+ "hasColumnHeader": true,
15
+ "isOrderedImport": true,
16
+ "isSequential": true,
17
+ "maxFileAgeHours": 0,
18
+ "maxFileAgeScheduleOffsetHours": 0,
19
+ "maxImportFrequencyHours": 0,
20
+ "modifiedDate": "2022-11-17T07:13:03.95",
21
+ "name": "testExisting_importFile",
22
+ "sendEmailNotification": false,
23
+ "standardQuotedStrings": true,
24
+ "r__fileLocation_name": "ExactTarget Enhanced FTP",
25
+ "c__destinationType": "DataExtension",
26
+ "r__dataExtension_CustomerKey": "testExisting_dataExtension",
27
+ "c__subscriberImportType": "DataExtension",
28
+ "c__dataAction": "AddUpdate"
29
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "allowErrors": true,
3
+ "createdDate": "2022-11-09T05:32:30.533",
4
+ "customerKey": "testNew_importFile",
5
+ "dateFormatLocale": "en-US",
6
+ "deleteFile": false,
7
+ "description": "created via deploy",
8
+ "fieldMappingType": "InferFromColumnHeadings",
9
+ "fieldMappings": [],
10
+ "fileNamingPattern": "blabla",
11
+ "fileTransferLocationTypeId": 0,
12
+ "fileType": "CSV",
13
+ "filter": "",
14
+ "hasColumnHeader": true,
15
+ "isOrderedImport": true,
16
+ "isSequential": true,
17
+ "maxFileAgeHours": 0,
18
+ "maxFileAgeScheduleOffsetHours": 0,
19
+ "maxImportFrequencyHours": 0,
20
+ "modifiedDate": "2022-11-17T07:13:03.95",
21
+ "name": "testNew_importFile",
22
+ "sendEmailNotification": false,
23
+ "standardQuotedStrings": true,
24
+ "r__fileLocation_name": "ExactTarget Enhanced FTP",
25
+ "c__destinationType": "DataExtension",
26
+ "r__dataExtension_CustomerKey": "testExisting_dataExtension",
27
+ "c__subscriberImportType": "DataExtension",
28
+ "c__dataAction": "AddUpdate"
29
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "testExisting_query_fixedKeys",
3
+ "key": "testExisting_query_fixKeys",
4
+ "description": "updated on deploy",
5
+ "targetKey": "testExisting_dataExtension",
6
+ "createdDate": "2022-04-26T15:21:16.453",
7
+ "modifiedDate": "2022-04-26T16:04:15.88",
8
+ "targetUpdateTypeName": "Overwrite",
9
+ "isFrozen": false,
10
+ "r__folder_Path": "Query"
11
+ }
@@ -0,0 +1,6 @@
1
+ SELECT
2
+ SubscriberKey as testField
3
+ FROM
4
+ _Subscribers
5
+ WHERE
6
+ country IN ('test')
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "updated on deploy",
3
+ "key": "testExisting_script",
4
+ "name": "testExisting_script",
5
+ "r__folder_Path": "Scripts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "created on deploy",
3
+ "key": "testNew_script",
4
+ "name": "testNew_script",
5
+ "r__folder_Path": "Scripts"
6
+ }
@@ -6,9 +6,6 @@
6
6
  "status": "Active",
7
7
  "createdDate": "2020-09-10T03:29:00",
8
8
  "modifiedDate": "2020-09-10T03:29:00",
9
- "content": {
10
- "customerKey": "testExisting_asset_message"
11
- },
12
9
  "subscriptions": {
13
10
  "dataExtension": "testExisting_dataExtension",
14
11
  "autoAddSubscriber": true,
@@ -17,5 +14,7 @@
17
14
  },
18
15
  "options": {
19
16
  "trackLinks": true
20
- }
17
+ },
18
+ "r__journey_key": "testExisting_interaction",
19
+ "r__asset_customerKey": "testExisting_asset_message"
21
20
  }
@@ -6,9 +6,6 @@
6
6
  "status": "Active",
7
7
  "createdDate": "2020-09-10T03:29:00",
8
8
  "modifiedDate": "2020-09-10T03:29:00",
9
- "content": {
10
- "customerKey": "testExisting_asset_message"
11
- },
12
9
  "subscriptions": {
13
10
  "dataExtension": "testExisting_dataExtension",
14
11
  "autoAddSubscriber": true,
@@ -18,7 +15,5 @@
18
15
  "options": {
19
16
  "trackLinks": true
20
17
  },
21
- "journey": {
22
- "interactionKey": "testExisting_interaction"
23
- }
18
+ "r__asset_customerKey": "testExisting_asset_message"
24
19
  }
@@ -0,0 +1,29 @@
1
+ {
2
+ "AllowedSlots": 0,
3
+ "AutoAddSubscribers": false,
4
+ "AutoUpdateSubscribers": false,
5
+ "BatchInterval": 0,
6
+ "BccEmail": "",
7
+ "CreatedDate": "2018-06-25T05:58:00",
8
+ "CustomerKey": "testExisting_triggeredSend",
9
+ "Description": "updated on deploy",
10
+ "DynamicEmailSubject": "You are successfully unsubscribed",
11
+ "EmailSubject": "You are successfully unsubscribed",
12
+ "FromAddress": "unsubscribe@emails.mcdev.accenture.com",
13
+ "FromName": "unsubscribe",
14
+ "IsMultipart": false,
15
+ "IsWrapped": true,
16
+ "Keyword": "",
17
+ "ModifiedDate": "2018-06-25T05:58:00",
18
+ "Name": "testExisting_triggeredSend",
19
+ "NewSlotTrigger": 0,
20
+ "Priority": 4,
21
+ "SendClassification": {
22
+ "CustomerKey": "Default Transactional"
23
+ },
24
+ "SuppressTracking": false,
25
+ "TriggeredSendStatus": "New",
26
+ "TriggeredSendType": "Continuous",
27
+ "r__email_Name": "Sporting Goods for September",
28
+ "r__folder_Path": "Triggered Sends"
29
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "AllowedSlots": 0,
3
+ "AutoAddSubscribers": false,
4
+ "AutoUpdateSubscribers": false,
5
+ "BatchInterval": 0,
6
+ "BccEmail": "",
7
+ "CreatedDate": "2018-06-25T05:58:00",
8
+ "CustomerKey": "testNew_triggeredSend",
9
+ "Description": "created on deploy",
10
+ "DynamicEmailSubject": "You are successfully unsubscribed",
11
+ "EmailSubject": "You are successfully unsubscribed",
12
+ "FromAddress": "unsubscribe@emails.mcdev.accenture.com",
13
+ "FromName": "unsubscribe",
14
+ "IsMultipart": false,
15
+ "IsWrapped": true,
16
+ "Keyword": "",
17
+ "ModifiedDate": "2018-06-25T05:58:00",
18
+ "Name": "testNew_triggeredSend",
19
+ "NewSlotTrigger": 0,
20
+ "Priority": 4,
21
+ "SendClassification": {
22
+ "CustomerKey": "Default Transactional"
23
+ },
24
+ "SuppressTracking": false,
25
+ "TriggeredSendStatus": "New",
26
+ "TriggeredSendType": "Continuous",
27
+ "r__email_Name": "Sporting Goods for September",
28
+ "r__folder_Path": "Triggered Sends"
29
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "dataVerificationDefinitionId": "testExisting_39f6a488-20eb-4ba0-b0b9",
3
+ "notificationEmailAddress": "test@accenture.com",
4
+ "notificationEmailMessage": "",
5
+ "r__dataExtension_CustomerKey": "testExisting_dataExtension",
6
+ "shouldEmailOnFailure": true,
7
+ "shouldStopOnFailure": true,
8
+ "value1": 1,
9
+ "value2": 0,
10
+ "verificationType": "IsEqualTo"
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "dataVerificationDefinitionId": "testNew_39f6a488-20eb-4ba0-b0b9",
3
+ "notificationEmailAddress": "",
4
+ "notificationEmailMessage": "",
5
+ "r__dataExtension_CustomerKey": "testExisting_dataExtension",
6
+ "shouldEmailOnFailure": false,
7
+ "shouldStopOnFailure": false,
8
+ "value1": 2,
9
+ "value2": 0,
10
+ "verificationType": "IsEqualTo"
11
+ }
@@ -1,22 +1,50 @@
1
1
  const fs = require('fs-extra');
2
2
  const path = require('node:path');
3
3
  const { XMLParser } = require('fast-xml-parser');
4
- const { color } = require('../lib/util/util');
4
+ const Util = require('../lib/util/util');
5
5
  const parser = new XMLParser();
6
6
  const attributeParser = new XMLParser({ ignoreAttributes: false });
7
+ let color;
8
+
9
+ /* eslint-disable unicorn/prefer-ternary */
10
+ if (
11
+ process.env.VSCODE_AMD_ENTRYPOINT === 'vs/workbench/api/node/extensionHostProcess' ||
12
+ process.env.VSCODE_CRASH_REPORTER_PROCESS_TYPE === 'extensionHost'
13
+ ) {
14
+ // when we execute the test in a VSCode extension host, we don't want CLI color codes.
15
+ color = new Proxy(
16
+ {},
17
+ {
18
+ /**
19
+ * catch-all for color
20
+ *
21
+ * @returns {string} empty string
22
+ */
23
+ get() {
24
+ return '';
25
+ },
26
+ }
27
+ );
28
+ } else {
29
+ // test is executed directly in a command prompt. Use colors.
30
+ color = Util.color;
31
+ }
32
+ /* eslint-enable unicorn/prefer-ternary */
33
+
7
34
  /**
8
35
  * gets mock SOAP metadata for responding
9
36
  *
10
37
  * @param {string} mcdevAction SOAP action
11
38
  * @param {string} type metadata Type
12
39
  * @param {string} mid of Business Unit
13
- * @param {object} filter likely for customer key
40
+ * @param {object|string} filter likely for customer key
14
41
  * @returns {string} relevant metadata stringified
15
42
  */
16
43
  exports.loadSOAPRecords = async (mcdevAction, type, mid, filter) => {
17
44
  type = type[0].toLowerCase() + type.slice(1);
18
45
  const testPath = path.join('test', 'resources', mid.toString(), type, mcdevAction);
19
- const filterPath = this.filterToPath(filter);
46
+ const filterPath =
47
+ typeof filter === 'string' && filter ? '-' + filter : this.filterToPath(filter);
20
48
  if (await fs.pathExists(testPath + filterPath + '-response.xml')) {
21
49
  return fs.readFile(testPath + filterPath + '-response.xml', {
22
50
  encoding: 'utf8',
@@ -25,7 +53,7 @@ exports.loadSOAPRecords = async (mcdevAction, type, mid, filter) => {
25
53
  if (filterPath) {
26
54
  /* eslint-disable no-console */
27
55
  console.log(
28
- `${color.bgYellow}${color.fgBlack}test-warning${
56
+ `${color.bgYellow}${color.fgBlack}TEST-WARNING${
29
57
  color.reset
30
58
  }: You are loading your reponse from ${
31
59
  testPath + '-response.xml'
@@ -41,9 +69,9 @@ exports.loadSOAPRecords = async (mcdevAction, type, mid, filter) => {
41
69
  }
42
70
  /* eslint-disable no-console */
43
71
  console.log(
44
- `${color.bgRed}${color.fgBlack}test-error${color.reset}: Please create file ${
45
- testPath + filterPath + '-response.xml'
46
- } or ${testPath + '-response.xml'}`
72
+ `${color.bgRed}${color.fgBlack}TEST-ERROR${color.reset}: Please create file ${
73
+ filterPath ? testPath + filterPath + '-response.xml or ' : ''
74
+ }${testPath + '-response.xml'}`
47
75
  );
48
76
  /* eslint-enable no-console */
49
77
 
@@ -54,11 +82,26 @@ exports.loadSOAPRecords = async (mcdevAction, type, mid, filter) => {
54
82
  });
55
83
  };
56
84
  exports.filterToPath = (filter) => {
57
- if (filter && filter.Property && filter.SimpleOperator && filter.Value) {
58
- return `-${filter.Property}${filter.SimpleOperator.replace('equals', '=')}${filter.Value}`;
85
+ if (filter) {
86
+ return '-' + this._filterToPath(filter);
59
87
  }
60
88
  return '';
61
89
  };
90
+ exports._filterToPath = (filter) => {
91
+ if (filter.Property && filter.SimpleOperator) {
92
+ return `${filter.Property}${filter.SimpleOperator.replace('equals', '=')}${
93
+ filter.Value === undefined ? '' : filter.Value
94
+ }`;
95
+ } else if (filter.LeftOperand && filter.LogicalOperator && filter.RightOperand) {
96
+ return (
97
+ this._filterToPath(filter.LeftOperand) +
98
+ filter.LogicalOperator +
99
+ this._filterToPath(filter.RightOperand)
100
+ );
101
+ } else {
102
+ throw new Error('unknown filter type');
103
+ }
104
+ };
62
105
  /**
63
106
  * based on request, respond with different soap data
64
107
  *
@@ -123,8 +166,30 @@ exports.handleSOAPRequest = async (config) => {
123
166
 
124
167
  break;
125
168
  }
169
+ case 'Schedule': {
170
+ responseXML = await this.loadSOAPRecords(
171
+ config.headers.SOAPAction.toLocaleLowerCase(),
172
+ fullObj.Envelope.Body.ScheduleRequestMsg.Interactions.Interaction['@_xsi:type'],
173
+ jObj.Envelope.Header.fueloauth,
174
+ fullObj.Envelope.Body.ScheduleRequestMsg.Interactions.Interaction.ObjectID
175
+ );
176
+
177
+ break;
178
+ }
179
+ case 'Perform': {
180
+ responseXML = await this.loadSOAPRecords(
181
+ config.headers.SOAPAction.toLocaleLowerCase(),
182
+ fullObj.Envelope.Body.PerformRequestMsg.Definitions.Definition['@_xsi:type'],
183
+ jObj.Envelope.Header.fueloauth,
184
+ fullObj.Envelope.Body.PerformRequestMsg.Definitions.Definition.ObjectID
185
+ );
186
+
187
+ break;
188
+ }
126
189
  default: {
127
- throw new Error('This SOAP Action is not supported by test handler');
190
+ throw new Error(
191
+ `The SOAP Action ${config.headers.SOAPAction} is not supported by test handler`
192
+ );
128
193
  }
129
194
  }
130
195
 
@@ -190,14 +255,14 @@ exports.handleRESTRequest = async (config) => {
190
255
  } else {
191
256
  /* eslint-disable no-console */
192
257
  console.log(
193
- `${color.bgRed}${color.fgBlack}test-error${color.reset}: Please create file ${testPath}.json/.txt`
258
+ `${color.bgRed}${color.fgBlack}TEST-ERROR${color.reset}: Please create file ${testPath}.json/.txt`
194
259
  );
195
260
  /* eslint-enable no-console */
196
261
  process.exitCode = 404;
197
262
 
198
263
  return [
199
264
  404,
200
- fs.readFile(path.join('test', 'resources', 'rest404-response.json'), {
265
+ await fs.readFile(path.join('test', 'resources', 'rest404-response.json'), {
201
266
  encoding: 'utf8',
202
267
  }),
203
268
  ];
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
4
+ xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
5
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
6
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
7
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
8
+ <soap:Header>
9
+ <wsa:Action>RetrieveResponse</wsa:Action>
10
+ <wsa:MessageID>urn:uuid:1babdae0-9282-4bba-b69f-2f1843deaf11</wsa:MessageID>
11
+ <wsa:RelatesTo>urn:uuid:39d1c021-b3df-49f9-a8f7-bb444172d2d3</wsa:RelatesTo>
12
+ <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
13
+ <wsse:Security>
14
+ <wsu:Timestamp wsu:Id="Timestamp-291db2ee-625d-49f7-8f6f-110317b081a5">
15
+ <wsu:Created>2023-03-11T13:53:00Z</wsu:Created>
16
+ <wsu:Expires>2023-03-11T13:58:00Z</wsu:Expires>
17
+ </wsu:Timestamp>
18
+ </wsse:Security>
19
+ </soap:Header>
20
+ <soap:Body>
21
+ <RetrieveResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
22
+ <OverallStatus>OK</OverallStatus>
23
+ <RequestID>5347bf1d-e801-486a-b4a9-c2d46a8909b6</RequestID>
24
+
25
+ </RetrieveResponseMsg>
26
+ </soap:Body>
27
+ </soap:Envelope>