mcdev 5.1.0 → 5.2.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 (192) hide show
  1. package/.eslintrc.json +4 -4
  2. package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  4. package/.github/workflows/coverage-develop-branch.yml +0 -2
  5. package/.github/workflows/coverage-main-branch.yml +0 -2
  6. package/.github/workflows/coverage.yml +0 -2
  7. package/.husky/post-checkout +1 -0
  8. package/.husky/post-merge +1 -0
  9. package/.vscode/extensions.json +4 -0
  10. package/docs/dist/documentation.md +633 -286
  11. package/lib/Deployer.js +25 -25
  12. package/lib/MetadataTypeDefinitions.js +1 -1
  13. package/lib/MetadataTypeInfo.js +1 -1
  14. package/lib/Retriever.js +1 -1
  15. package/lib/cli.js +159 -9
  16. package/lib/index.js +395 -95
  17. package/lib/metadataTypes/Asset.js +10 -11
  18. package/lib/metadataTypes/AttributeGroup.js +76 -2
  19. package/lib/metadataTypes/AttributeSet.js +260 -0
  20. package/lib/metadataTypes/Automation.js +413 -96
  21. package/lib/metadataTypes/DataExtension.js +2 -2
  22. package/lib/metadataTypes/DataExtensionField.js +1 -1
  23. package/lib/metadataTypes/Event.js +2 -3
  24. package/lib/metadataTypes/Folder.js +1 -1
  25. package/lib/metadataTypes/Journey.js +5 -6
  26. package/lib/metadataTypes/MetadataType.js +149 -49
  27. package/lib/metadataTypes/MobileKeyword.js +8 -8
  28. package/lib/metadataTypes/MobileMessage.js +5 -5
  29. package/lib/metadataTypes/Query.js +26 -10
  30. package/lib/metadataTypes/Script.js +3 -3
  31. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  32. package/lib/metadataTypes/TriggeredSend.js +25 -50
  33. package/lib/metadataTypes/User.js +7 -4
  34. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +117 -106
  35. package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +54 -27
  36. package/lib/metadataTypes/definitions/Automation.definition.js +22 -15
  37. package/lib/metadataTypes/definitions/ImportFile.definition.js +36 -6
  38. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
  39. package/lib/util/cache.js +9 -4
  40. package/lib/util/cli.js +40 -0
  41. package/lib/util/file.js +2 -2
  42. package/lib/util/init.js +84 -0
  43. package/lib/util/util.js +121 -13
  44. package/package.json +11 -11
  45. package/test/mockRoot/.mcdevrc.json +1 -1
  46. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +1 -2
  47. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +5 -6
  48. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
  49. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
  50. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
  51. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
  52. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
  53. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
  54. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
  55. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
  56. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
  57. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
  58. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
  59. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
  60. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
  61. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
  62. package/test/resourceFactory.js +77 -12
  63. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
  64. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
  65. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
  66. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
  67. package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
  68. package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
  69. package/test/resources/1111111/user/retrieve-expected.md +4 -2
  70. package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
  71. package/test/resources/9999999/attributeSet/retrieve-expected.json +748 -0
  72. package/test/resources/9999999/automation/build-expected.json +1 -2
  73. package/test/resources/9999999/automation/create-expected.json +7 -8
  74. package/test/resources/9999999/automation/create-testNew_automation-expected.md +4 -4
  75. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
  76. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
  77. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  78. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
  79. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
  80. package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  81. package/test/resources/9999999/automation/retrieve-expected.json +1 -2
  82. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +2 -2
  83. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  84. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
  85. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
  86. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
  87. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  88. package/test/resources/9999999/automation/template-expected.json +1 -2
  89. package/test/resources/9999999/automation/update-expected.json +1 -2
  90. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +2 -2
  91. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
  92. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
  93. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
  94. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
  95. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
  96. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
  97. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +1 -1
  98. package/test/resources/9999999/automation/v1/automations/post-response.json +20 -19
  99. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
  100. package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
  101. package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
  102. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
  103. package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
  104. package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
  105. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
  106. package/test/resources/9999999/automation/v1/imports/get-response.json +1 -1
  107. package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
  108. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
  109. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
  110. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
  111. package/test/resources/9999999/automation/v1/queries/get-response.json +18 -1
  112. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
  113. package/test/resources/9999999/automation/v1/scripts/get-response.json +12 -2
  114. package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
  115. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
  116. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +98 -0
  117. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
  118. package/test/resources/9999999/dataExtract/build-expected.json +35 -0
  119. package/test/resources/9999999/dataExtract/get-expected.json +39 -0
  120. package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
  121. package/test/resources/9999999/dataExtract/post-expected.json +37 -0
  122. package/test/resources/9999999/dataExtract/template-expected.json +35 -0
  123. package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
  124. package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
  125. package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
  126. package/test/resources/9999999/dataFolder/retrieve-response.xml +23 -0
  127. package/test/resources/9999999/email/retrieve-response.xml +203 -0
  128. package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
  129. package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
  130. package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
  131. package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
  132. package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
  133. package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +585 -0
  134. package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +19807 -0
  135. package/test/resources/9999999/importFile/build-expected.json +27 -0
  136. package/test/resources/9999999/importFile/get-expected.json +29 -0
  137. package/test/resources/9999999/importFile/patch-expected.json +29 -0
  138. package/test/resources/9999999/importFile/post-expected.json +29 -0
  139. package/test/resources/9999999/importFile/template-expected.json +27 -0
  140. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
  141. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
  142. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
  143. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
  144. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
  145. package/test/resources/9999999/program/retrieve-response.xml +21 -3
  146. package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
  147. package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
  148. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
  149. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
  150. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
  151. package/test/resources/9999999/script/build-expected.json +6 -0
  152. package/test/resources/9999999/script/build-expected.ssjs +1 -0
  153. package/test/resources/9999999/script/get-expected.json +8 -0
  154. package/test/resources/9999999/script/get-expected.ssjs +1 -0
  155. package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
  156. package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
  157. package/test/resources/9999999/script/patch-expected.json +8 -0
  158. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  159. package/test/resources/9999999/script/post-expected.json +8 -0
  160. package/test/resources/9999999/script/post-expected.ssjs +1 -0
  161. package/test/resources/9999999/script/template-expected.json +6 -0
  162. package/test/resources/9999999/script/template-expected.ssjs +1 -0
  163. package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
  164. package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
  165. package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
  166. package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
  167. package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
  168. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
  169. package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
  170. package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
  171. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
  172. package/test/type.attributeGroup.test.js +55 -0
  173. package/test/type.attributeSet.test.js +55 -0
  174. package/test/type.automation.test.js +638 -11
  175. package/test/type.dataExtension.test.js +0 -1
  176. package/test/type.dataExtract.test.js +187 -0
  177. package/test/type.fileTransfer.test.js +185 -0
  178. package/test/type.importFile.test.js +186 -0
  179. package/test/type.mobileKeyword.test.js +0 -1
  180. package/test/type.query.test.js +464 -13
  181. package/test/type.script.test.js +367 -0
  182. package/test/type.triggeredSend.test.js +152 -0
  183. package/test/type.user.test.js +22 -10
  184. package/test/utils.js +4 -1
  185. package/lib/metadataTypes/SetDefinition.js +0 -37
  186. /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
  187. /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
  188. /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
  189. /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
  190. /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
  191. /package/test/resources/9999999/emailSendDefinition/{retrieve-response.xml → retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml} +0 -0
  192. /package/test/resources/9999999/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
@@ -17,6 +17,9 @@ Source and target business units are also compared before the deployment to appl
17
17
  <dt><a href="#AttributeGroup">AttributeGroup</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
18
18
  <dd><p>AttributeGroup MetadataType</p>
19
19
  </dd>
20
+ <dt><a href="#AttributeSet">AttributeSet</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
21
+ <dd><p>AttributeSet MetadataType</p>
22
+ </dd>
20
23
  <dt><a href="#Automation">Automation</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
21
24
  <dd><p>Automation MetadataType</p>
22
25
  </dd>
@@ -105,9 +108,6 @@ Provides default functionality that can be overwritten by child metadata type cl
105
108
  <dt><a href="#SendClassification">SendClassification</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
106
109
  <dd><p>SendClassification MetadataType</p>
107
110
  </dd>
108
- <dt><a href="#SetDefinition">SetDefinition</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
109
- <dd><p>SetDefinition MetadataType</p>
110
- </dd>
111
111
  <dt><a href="#TransactionalEmail">TransactionalEmail</a> ⇐ <code><a href="#TransactionalMessage">TransactionalMessage</a></code></dt>
112
112
  <dd><p>TransactionalEmail MetadataType</p>
113
113
  </dd>
@@ -186,11 +186,38 @@ Provides default functionality that can be overwritten by child metadata type cl
186
186
  <dt><a href="#csvToArray">csvToArray(csv)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
187
187
  <dd><p>helper to convert CSVs into an array. if only one value was given, it&#39;s also returned as an array</p>
188
188
  </dd>
189
+ <dt><a href="#Mcdev.">Mcdev.(methodName, businessUnit, [selectedType], [keys])</a> ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code></dt>
190
+ <dd><p>run a method across BUs</p>
191
+ </dd>
192
+ <dt><a href="#Mcdev.">Mcdev.(methodName, cred, bu, [type], keyArr)</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
193
+ <dd><p>helper for <a href="Mcdev.#runMethod">Mcdev.#runMethod</a></p>
194
+ </dd>
195
+ <dt><a href="#Mcdev.">Mcdev.(selectedType, buObject)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
196
+ <dd><p>helper for <a href="Mcdev.#runOnBU">Mcdev.#runOnBU</a></p>
197
+ </dd>
198
+ <dt><a href="#Mcdev.">Mcdev.(cred, bu, type, [keyArr])</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
199
+ <dd><p>Updates the key to match the name field</p>
200
+ </dd>
201
+ <dt><a href="#Automation.">Automation.(metadata)</a> ⇒ <code>boolean</code></dt>
202
+ <dd><p>helper for <a href="#Automation.postRetrieveTasks">postRetrieveTasks</a> and <a href="#Automation.execute">execute</a></p>
203
+ </dd>
204
+ <dt><a href="#Automation.">Automation.(metadataMap, key)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
205
+ <dd><p>helper for <a href="#Automation.execute">execute</a></p>
206
+ </dd>
207
+ <dt><a href="#Automation.">Automation.(metadataEntry)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
208
+ <dd><p>helper for <a href="#Automation.execute">execute</a></p>
209
+ </dd>
210
+ <dt><a href="#Automation.">Automation.(metadata)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
211
+ <dd><p>helper for <a href="#Automation.pause">pause</a></p>
212
+ </dd>
213
+ <dt><a href="#Automation.">Automation.(metadata)</a></dt>
214
+ <dd><p>helper for <a href="#Automation.preDeployTasks">preDeployTasks</a> and <a href="#Automation.execute">execute</a></p>
215
+ </dd>
189
216
  <dt><a href="#Automation.">Automation.(metadataMap, key)</a> ⇒ <code>Promise.&lt;void&gt;</code></dt>
190
217
  <dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
191
218
  </dd>
192
- <dt><a href="#Automation.">Automation.(metadataMap, originalMetadataMap, key)</a></dt>
193
- <dd><p>helper for <a href="postDeployTasks">postDeployTasks</a></p>
219
+ <dt><a href="#Automation.">Automation.(metadataMap, originalMetadataMap, key, [oldKey])</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
220
+ <dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
194
221
  </dd>
195
222
  <dt><a href="#getUserName">getUserName(userList, item, fieldname)</a> ⇒ <code>string</code></dt>
196
223
  <dd></dd>
@@ -371,10 +398,10 @@ Source and target business units are also compared before the deployment to appl
371
398
  * [new Deployer(properties, buObject)](#new_Deployer_new)
372
399
  * _instance_
373
400
  * [.metadata](#Deployer+metadata) : <code>TYPE.MultiMetadataTypeMap</code>
374
- * [._deploy([typeArr], [keyArr], [fromRetrieve], [isRefresh])](#Deployer+_deploy) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
401
+ * [._deploy([typeArr], [keyArr])](#Deployer+_deploy) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
375
402
  * _static_
376
- * [.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve])](#Deployer.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
377
- * [._deployBU(cred, bu, properties, [typeArr], [keyArr], [fromRetrieve])](#Deployer._deployBU) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
403
+ * [.deploy(businessUnit, [selectedTypesArr], [keyArr])](#Deployer.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
404
+ * [._deployBU(cred, bu, properties, [typeArr], [keyArr])](#Deployer._deployBU) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
378
405
  * [.readBUMetadata(deployDir, [typeArr], [listBadKeys])](#Deployer.readBUMetadata) ⇒ <code>TYPE.MultiMetadataTypeMap</code>
379
406
  * [.createFolderDefinitions(deployDir, metadata, metadataTypeArr)](#Deployer.createFolderDefinitions) ⇒ <code>void</code>
380
407
 
@@ -395,7 +422,7 @@ Creates a Deployer, uses v2 auth if v2AuthOptions are passed.
395
422
  **Kind**: instance property of [<code>Deployer</code>](#Deployer)
396
423
  <a name="Deployer+_deploy"></a>
397
424
 
398
- ### deployer.\_deploy([typeArr], [keyArr], [fromRetrieve], [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
425
+ ### deployer.\_deploy([typeArr], [keyArr]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
399
426
  Deploy all metadata that is located in the deployDir
400
427
 
401
428
  **Kind**: instance method of [<code>Deployer</code>](#Deployer)
@@ -405,12 +432,10 @@ Deploy all metadata that is located in the deployDir
405
432
  | --- | --- | --- |
406
433
  | [typeArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type (can include subtype) |
407
434
  | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
408
- | [fromRetrieve] | <code>boolean</code> | if true, no folders will be updated/created |
409
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
410
435
 
411
436
  <a name="Deployer.deploy"></a>
412
437
 
413
- ### Deployer.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
438
+ ### Deployer.deploy(businessUnit, [selectedTypesArr], [keyArr]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
414
439
  Deploys all metadata located in the 'deploy' directory to the specified business unit
415
440
 
416
441
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
@@ -421,12 +446,11 @@ Deploys all metadata located in the 'deploy' directory to the specified business
421
446
  | businessUnit | <code>string</code> | references credentials from properties.json |
422
447
  | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
423
448
  | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
424
- | [fromRetrieve] | <code>boolean</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
425
449
 
426
450
  <a name="Deployer._deployBU"></a>
427
451
 
428
- ### Deployer.\_deployBU(cred, bu, properties, [typeArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
429
- helper for [deploy](deploy)
452
+ ### Deployer.\_deployBU(cred, bu, properties, [typeArr], [keyArr]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
453
+ helper for [deploy](#Deployer.deploy)
430
454
 
431
455
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
432
456
  **Returns**: <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code> - ensure that BUs are worked on sequentially
@@ -438,7 +462,6 @@ helper for [deploy](deploy)
438
462
  | properties | <code>TYPE.Mcdevrc</code> | General configuration to be used in retrieve |
439
463
  | [typeArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
440
464
  | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
441
- | [fromRetrieve] | <code>boolean</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
442
465
 
443
466
  <a name="Deployer.readBUMetadata"></a>
444
467
 
@@ -448,11 +471,11 @@ Returns metadata of a business unit that is saved locally
448
471
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
449
472
  **Returns**: <code>TYPE.MultiMetadataTypeMap</code> - Metadata of BU in local directory
450
473
 
451
- | Param | Type | Default | Description |
452
- | --- | --- | --- | --- |
453
- | deployDir | <code>string</code> | | root directory of metadata. |
454
- | [typeArr] | <code>Array.&lt;string&gt;</code> | | limit deployment to given metadata type |
455
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
474
+ | Param | Type | Description |
475
+ | --- | --- | --- |
476
+ | deployDir | <code>string</code> | root directory of metadata. |
477
+ | [typeArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata type |
478
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
456
479
 
457
480
  <a name="Deployer.createFolderDefinitions"></a>
458
481
 
@@ -483,7 +506,7 @@ main class
483
506
  * [.explainTypes()](#Mcdev.explainTypes) ⇒ <code>Array.&lt;object&gt;</code>
484
507
  * [.upgrade()](#Mcdev.upgrade) ⇒ <code>Promise.&lt;boolean&gt;</code>
485
508
  * [.retrieve(businessUnit, [selectedTypesArr], [keys], [changelogOnly])](#Mcdev.retrieve) ⇒ <code>Promise.&lt;object&gt;</code>
486
- * [.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve])](#Mcdev.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
509
+ * [.deploy(businessUnit, [selectedTypesArr], [keyArr])](#Mcdev.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
487
510
  * [.initProject([credentialsName])](#Mcdev.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
488
511
  * [.joinProject()](#Mcdev.joinProject) ⇒ <code>Promise.&lt;void&gt;</code>
489
512
  * [.findBUs(credentialsName)](#Mcdev.findBUs) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -496,8 +519,10 @@ main class
496
519
  * [.buildDefinition(businessUnit, selectedType, name, market)](#Mcdev.buildDefinition) ⇒ <code>Promise.&lt;void&gt;</code>
497
520
  * [.buildDefinitionBulk(listName, type, name)](#Mcdev.buildDefinitionBulk) ⇒ <code>Promise.&lt;void&gt;</code>
498
521
  * [.getFilesToCommit(businessUnit, selectedType, keyArr)](#Mcdev.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
499
- * [.execute(businessUnit, [selectedTypesArr], keys)](#Mcdev.execute) ⇒ <code>Promise.&lt;boolean&gt;</code>
500
- * [._executeBU(cred, bu, [selectedTypesArr], keyArr)](#Mcdev._executeBU) ⇒ <code>Promise.&lt;boolean&gt;</code>
522
+ * [.schedule(businessUnit, [selectedType], [keys])](#Mcdev.schedule) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
523
+ * [.execute(businessUnit, [selectedType], [keys])](#Mcdev.execute) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
524
+ * [.pause(businessUnit, [selectedType], [keys])](#Mcdev.pause) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
525
+ * [.fixKeys(businessUnit, selectedType, [keys])](#Mcdev.fixKeys) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
501
526
 
502
527
  <a name="Mcdev.setSkipInteraction"></a>
503
528
 
@@ -582,18 +607,17 @@ Retrieve all metadata from the specified business unit into the local file syste
582
607
 
583
608
  <a name="Mcdev.deploy"></a>
584
609
 
585
- ### Mcdev.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
610
+ ### Mcdev.deploy(businessUnit, [selectedTypesArr], [keyArr]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
586
611
  Deploys all metadata located in the 'deploy' directory to the specified business unit
587
612
 
588
613
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
589
614
  **Returns**: <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code> - deployed metadata per BU (first key: bu name, second key: metadata type)
590
615
 
591
- | Param | Type | Default | Description |
592
- | --- | --- | --- | --- |
593
- | businessUnit | <code>string</code> | | references credentials from properties.json |
594
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | | limit deployment to given metadata type |
595
- | [keyArr] | <code>Array.&lt;string&gt;</code> | | limit deployment to given metadata keys |
596
- | [fromRetrieve] | <code>boolean</code> | <code>false</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
616
+ | Param | Type | Description |
617
+ | --- | --- | --- |
618
+ | businessUnit | <code>string</code> | references credentials from properties.json |
619
+ | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
620
+ | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
597
621
 
598
622
  <a name="Mcdev.initProject"></a>
599
623
 
@@ -750,34 +774,61 @@ Build a specific metadata file based on a template using a list of bu-market com
750
774
  | selectedType | <code>string</code> | supported metadata type |
751
775
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
752
776
 
777
+ <a name="Mcdev.schedule"></a>
778
+
779
+ ### Mcdev.schedule(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
780
+ Schedule an item (shortcut for execute --schedule)
781
+
782
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
783
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of scheduled item keys
784
+
785
+ | Param | Type | Description |
786
+ | --- | --- | --- |
787
+ | businessUnit | <code>string</code> | name of BU |
788
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
789
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
790
+
753
791
  <a name="Mcdev.execute"></a>
754
792
 
755
- ### Mcdev.execute(businessUnit, [selectedTypesArr], keys) ⇒ <code>Promise.&lt;boolean&gt;</code>
756
- Start an item (query)
793
+ ### Mcdev.execute(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
794
+ Start/execute an item
757
795
 
758
796
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
759
- **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if all started successfully, false if not
797
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of executed item keys
760
798
 
761
799
  | Param | Type | Description |
762
800
  | --- | --- | --- |
763
801
  | businessUnit | <code>string</code> | name of BU |
764
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit to given metadata types |
765
- | keys | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
802
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
803
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
766
804
 
767
- <a name="Mcdev._executeBU"></a>
805
+ <a name="Mcdev.pause"></a>
768
806
 
769
- ### Mcdev.\_executeBU(cred, bu, [selectedTypesArr], keyArr) ⇒ <code>Promise.&lt;boolean&gt;</code>
770
- helper for [execute](execute)
807
+ ### Mcdev.pause(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
808
+ pause an item
771
809
 
772
810
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
773
- **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if all items were executed, false otherwise
811
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of paused item keys
774
812
 
775
813
  | Param | Type | Description |
776
814
  | --- | --- | --- |
777
- | cred | <code>string</code> | name of Credential |
778
- | bu | <code>string</code> | name of BU |
779
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit execution to given metadata type |
780
- | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
815
+ | businessUnit | <code>string</code> | name of BU |
816
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
817
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
818
+
819
+ <a name="Mcdev.fixKeys"></a>
820
+
821
+ ### Mcdev.fixKeys(businessUnit, selectedType, [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
822
+ Updates the key to match the name field
823
+
824
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
825
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of paused item keys
826
+
827
+ | Param | Type | Description |
828
+ | --- | --- | --- |
829
+ | businessUnit | <code>string</code> | name of BU |
830
+ | selectedType | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
831
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
781
832
 
782
833
  <a name="Asset"></a>
783
834
 
@@ -798,7 +849,7 @@ FileTransfer MetadataType
798
849
  * [._retrieveExtendedFile(metadata, subType, retrieveDir)](#Asset._retrieveExtendedFile) ⇒ <code>Promise.&lt;void&gt;</code>
799
850
  * [._readExtendedFileFromFS(metadata, subType, deployDir, [pathOnly])](#Asset._readExtendedFileFromFS) ⇒ <code>Promise.&lt;string&gt;</code>
800
851
  * [.postRetrieveTasks(metadata)](#Asset.postRetrieveTasks) ⇒ <code>TYPE.CodeExtractItem</code>
801
- * [.postDeployTasks(metadata, _, createdUpdated, [isRefresh])](#Asset.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
852
+ * [.postDeployTasks(metadata, _, createdUpdated)](#Asset.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
802
853
  * [.preDeployTasks(metadata, deployDir)](#Asset.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.AssetItem&gt;</code>
803
854
  * [._getMainSubtype(extendedSubType)](#Asset._getMainSubtype) ⇒ <code>string</code>
804
855
  * [.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Asset.buildDefinitionForNested) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -931,7 +982,7 @@ This method retrieves these and saves them alongside the metadata json
931
982
  <a name="Asset._readExtendedFileFromFS"></a>
932
983
 
933
984
  ### Asset.\_readExtendedFileFromFS(metadata, subType, deployDir, [pathOnly]) ⇒ <code>Promise.&lt;string&gt;</code>
934
- helper for [preDeployTasks](preDeployTasks)
985
+ helper for [preDeployTasks](#Asset.preDeployTasks)
935
986
  Some metadata types store their actual content as a separate file, e.g. images
936
987
  This method reads these from the local FS stores them in the metadata object allowing to deploy it
937
988
 
@@ -959,7 +1010,7 @@ manages post retrieve steps
959
1010
 
960
1011
  <a name="Asset.postDeployTasks"></a>
961
1012
 
962
- ### Asset.postDeployTasks(metadata, _, createdUpdated, [isRefresh]) ⇒ <code>Promise.&lt;void&gt;</code>
1013
+ ### Asset.postDeployTasks(metadata, _, createdUpdated) ⇒ <code>Promise.&lt;void&gt;</code>
963
1014
  Gets executed after deployment of metadata type
964
1015
 
965
1016
  **Kind**: static method of [<code>Asset</code>](#Asset)
@@ -970,7 +1021,6 @@ Gets executed after deployment of metadata type
970
1021
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
971
1022
  | _ | <code>TYPE.MetadataTypeMap</code> | originalMetadata to be updated (contains additioanl fields) |
972
1023
  | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
973
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
974
1024
 
975
1025
  <a name="Asset.preDeployTasks"></a>
976
1026
 
@@ -1078,7 +1128,7 @@ Asset-specific script that retrieves the folder ID from cache and updates the gi
1078
1128
  <a name="Asset._mergeCode"></a>
1079
1129
 
1080
1130
  ### Asset.\_mergeCode(metadata, deployDir, subType, [templateName], [fileListOnly]) ⇒ <code>Promise.&lt;Array.&lt;TYPE.CodeExtract&gt;&gt;</code>
1081
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
1131
+ helper for [preDeployTasks](#Asset.preDeployTasks) that loads extracted code content back into JSON
1082
1132
 
1083
1133
  **Kind**: static method of [<code>Asset</code>](#Asset)
1084
1134
  **Returns**: <code>Promise.&lt;Array.&lt;TYPE.CodeExtract&gt;&gt;</code> - fileList for templating (disregarded during deployment)
@@ -1094,7 +1144,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
1094
1144
  <a name="Asset._mergeCode_slots"></a>
1095
1145
 
1096
1146
  ### Asset.\_mergeCode\_slots(prefix, metadataSlots, readDirArr, subtypeExtension, subDirArr, fileList, customerKey, [templateName], [fileListOnly]) ⇒ <code>Promise.&lt;void&gt;</code>
1097
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
1147
+ helper for [preDeployTasks](#Asset.preDeployTasks) that loads extracted code content back into JSON
1098
1148
 
1099
1149
  **Kind**: static method of [<code>Asset</code>](#Asset)
1100
1150
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -1114,7 +1164,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
1114
1164
  <a name="Asset._extractCode"></a>
1115
1165
 
1116
1166
  ### Asset.\_extractCode(metadata) ⇒ <code>TYPE.CodeExtractItem</code>
1117
- helper for [postRetrieveTasks](postRetrieveTasks) that finds code content in JSON and extracts it
1167
+ helper for [postRetrieveTasks](#Asset.postRetrieveTasks) that finds code content in JSON and extracts it
1118
1168
  to allow saving that separately and formatted
1119
1169
 
1120
1170
  **Kind**: static method of [<code>Asset</code>](#Asset)
@@ -1201,6 +1251,7 @@ AttributeGroup MetadataType
1201
1251
  * [AttributeGroup](#AttributeGroup) ⇐ [<code>MetadataType</code>](#MetadataType)
1202
1252
  * [.retrieve(retrieveDir, [_], [__], [key])](#AttributeGroup.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1203
1253
  * [.retrieveForCache()](#AttributeGroup.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1254
+ * [.postRetrieveTasks(metadata)](#AttributeGroup.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
1204
1255
 
1205
1256
  <a name="AttributeGroup.retrieve"></a>
1206
1257
 
@@ -1224,6 +1275,87 @@ Retrieves Metadata of schema attribute groups for caching.
1224
1275
 
1225
1276
  **Kind**: static method of [<code>AttributeGroup</code>](#AttributeGroup)
1226
1277
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of metadata
1278
+ <a name="AttributeGroup.postRetrieveTasks"></a>
1279
+
1280
+ ### AttributeGroup.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
1281
+ manages post retrieve steps
1282
+
1283
+ **Kind**: static method of [<code>AttributeGroup</code>](#AttributeGroup)
1284
+ **Returns**: <code>TYPE.MetadataTypeItem</code> - metadata
1285
+
1286
+ | Param | Type | Description |
1287
+ | --- | --- | --- |
1288
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata |
1289
+
1290
+ <a name="AttributeSet"></a>
1291
+
1292
+ ## AttributeSet ⇐ [<code>MetadataType</code>](#MetadataType)
1293
+ AttributeSet MetadataType
1294
+
1295
+ **Kind**: global class
1296
+ **Extends**: [<code>MetadataType</code>](#MetadataType)
1297
+
1298
+ * [AttributeSet](#AttributeSet) ⇐ [<code>MetadataType</code>](#MetadataType)
1299
+ * [.retrieve(retrieveDir, [_], [__], [key])](#AttributeSet.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1300
+ * [.retrieveForCache()](#AttributeSet.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1301
+ * [.parseResponseBody(body, [singleRetrieve])](#AttributeSet.parseResponseBody) ⇒ <code>TYPE.MetadataTypeMap</code>
1302
+ * [.postRetrieveTasks(metadata)](#AttributeSet.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
1303
+ * [._getSystemValueDefinitions()](#AttributeSet._getSystemValueDefinitions) ⇒ <code>Array.&lt;object&gt;</code>
1304
+
1305
+ <a name="AttributeSet.retrieve"></a>
1306
+
1307
+ ### AttributeSet.retrieve(retrieveDir, [_], [__], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1308
+ Retrieves Metadata of schema set Definitions.
1309
+
1310
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1311
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
1312
+
1313
+ | Param | Type | Description |
1314
+ | --- | --- | --- |
1315
+ | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
1316
+ | [_] | <code>void</code> | unused parameter |
1317
+ | [__] | <code>void</code> | unused parameter |
1318
+ | [key] | <code>string</code> | customer key of single item to retrieve |
1319
+
1320
+ <a name="AttributeSet.retrieveForCache"></a>
1321
+
1322
+ ### AttributeSet.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1323
+ Retrieves Metadata of schema set definitions for caching.
1324
+
1325
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1326
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
1327
+ <a name="AttributeSet.parseResponseBody"></a>
1328
+
1329
+ ### AttributeSet.parseResponseBody(body, [singleRetrieve]) ⇒ <code>TYPE.MetadataTypeMap</code>
1330
+ Builds map of metadata entries mapped to their keyfields
1331
+
1332
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1333
+ **Returns**: <code>TYPE.MetadataTypeMap</code> - keyField => metadata map
1334
+
1335
+ | Param | Type | Description |
1336
+ | --- | --- | --- |
1337
+ | body | <code>object</code> | json of response body |
1338
+ | [singleRetrieve] | <code>string</code> \| <code>number</code> | key of single item to filter by |
1339
+
1340
+ <a name="AttributeSet.postRetrieveTasks"></a>
1341
+
1342
+ ### AttributeSet.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
1343
+ manages post retrieve steps
1344
+
1345
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1346
+ **Returns**: <code>TYPE.MetadataTypeItem</code> - metadata
1347
+
1348
+ | Param | Type | Description |
1349
+ | --- | --- | --- |
1350
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata |
1351
+
1352
+ <a name="AttributeSet._getSystemValueDefinitions"></a>
1353
+
1354
+ ### AttributeSet.\_getSystemValueDefinitions() ⇒ <code>Array.&lt;object&gt;</code>
1355
+ helper for [postRetrieveTasks](#AttributeSet.postRetrieveTasks)
1356
+
1357
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1358
+ **Returns**: <code>Array.&lt;object&gt;</code> - all system value definitions
1227
1359
  <a name="Automation"></a>
1228
1360
 
1229
1361
  ## Automation ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -1238,7 +1370,10 @@ Automation MetadataType
1238
1370
  * [.retrieveForCache()](#Automation.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
1239
1371
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Automation.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.AutomationItemObj&gt;</code>
1240
1372
  * [.postRetrieveTasks(metadata)](#Automation.postRetrieveTasks) ⇒ <code>TYPE.AutomationItem</code> \| <code>void</code>
1241
- * [.deploy(metadata, targetBU, retrieveDir, [isRefresh])](#Automation.deploy) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1373
+ * [.execute(keyArr)](#Automation.execute) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1374
+ * [.getErrorsREST(ex)](#Automation.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
1375
+ * [.pause(keyArr)](#Automation.pause) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1376
+ * [.deploy(metadata, targetBU, retrieveDir)](#Automation.deploy) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1242
1377
  * [.create(metadata)](#Automation.create) ⇒ <code>Promise</code>
1243
1378
  * [.update(metadata, metadataBefore)](#Automation.update) ⇒ <code>Promise</code>
1244
1379
  * [.preDeployTasks(metadata)](#Automation.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.AutomationItem&gt;</code>
@@ -1308,9 +1443,45 @@ manages post retrieve steps
1308
1443
  | --- | --- | --- |
1309
1444
  | metadata | <code>TYPE.AutomationItem</code> | a single automation |
1310
1445
 
1446
+ <a name="Automation.execute"></a>
1447
+
1448
+ ### Automation.execute(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1449
+ a function to start query execution via API
1450
+
1451
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1452
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were executed
1453
+
1454
+ | Param | Type | Description |
1455
+ | --- | --- | --- |
1456
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
1457
+
1458
+ <a name="Automation.getErrorsREST"></a>
1459
+
1460
+ ### Automation.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
1461
+ Standardizes a check for multiple messages but adds query specific filters to error texts
1462
+
1463
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1464
+ **Returns**: <code>Array.&lt;string&gt;</code> \| <code>void</code> - formatted Error Message
1465
+
1466
+ | Param | Type | Description |
1467
+ | --- | --- | --- |
1468
+ | ex | <code>object</code> | response payload from REST API |
1469
+
1470
+ <a name="Automation.pause"></a>
1471
+
1472
+ ### Automation.pause(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1473
+ a function to start query execution via API
1474
+
1475
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1476
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were paused
1477
+
1478
+ | Param | Type | Description |
1479
+ | --- | --- | --- |
1480
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
1481
+
1311
1482
  <a name="Automation.deploy"></a>
1312
1483
 
1313
- ### Automation.deploy(metadata, targetBU, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1484
+ ### Automation.deploy(metadata, targetBU, retrieveDir) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1314
1485
  Deploys automation - the saved file is the original one due to large differences required for deployment
1315
1486
 
1316
1487
  **Kind**: static method of [<code>Automation</code>](#Automation)
@@ -1321,7 +1492,6 @@ Deploys automation - the saved file is the original one due to large differences
1321
1492
  | metadata | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
1322
1493
  | targetBU | <code>string</code> | name/shorthand of target businessUnit for mapping |
1323
1494
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
1324
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by automation |
1325
1495
 
1326
1496
  <a name="Automation.create"></a>
1327
1497
 
@@ -1869,7 +2039,7 @@ Retrieves all records for caching
1869
2039
  <a name="DataExtensionField.convertToSortedArray"></a>
1870
2040
 
1871
2041
  ### DataExtensionField.convertToSortedArray(fieldsObj) ⇒ <code>Array.&lt;TYPE.DataExtensionFieldItem&gt;</code>
1872
- helper for [DataExtension._retrieveFieldsForSingleDe](DataExtension._retrieveFieldsForSingleDe) that sorts the fields into an array
2042
+ helper for DataExtension.retrieveFieldsForSingleDe that sorts the fields into an array
1873
2043
 
1874
2044
  **Kind**: static method of [<code>DataExtensionField</code>](#DataExtensionField)
1875
2045
  **Returns**: <code>Array.&lt;TYPE.DataExtensionFieldItem&gt;</code> - sorted array of field objects
@@ -2335,7 +2505,7 @@ Event MetadataType
2335
2505
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Event.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.MetadataTypeItemObj&gt;</code>
2336
2506
  * [.postRetrieveTasks(eventDef)](#Event.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
2337
2507
  * [.deleteByKey(key)](#Event.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
2338
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#Event.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2508
+ * [.deploy(metadata, deployDir, retrieveDir)](#Event.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2339
2509
  * [.create(metadata)](#Event.create) ⇒ <code>Promise</code>
2340
2510
  * [.update(metadataEntry)](#Event.update) ⇒ <code>Promise</code>
2341
2511
  * [.preDeployTasks(metadata)](#Event.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
@@ -2405,7 +2575,7 @@ Delete a metadata item from the specified business unit
2405
2575
 
2406
2576
  <a name="Event.deploy"></a>
2407
2577
 
2408
- ### Event.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2578
+ ### Event.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2409
2579
  Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta) once per deploy
2410
2580
 
2411
2581
  **Kind**: static method of [<code>Event</code>](#Event)
@@ -2416,7 +2586,6 @@ Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta)
2416
2586
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
2417
2587
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
2418
2588
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
2419
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by eventDefinition |
2420
2589
 
2421
2590
  <a name="Event.create"></a>
2422
2591
 
@@ -2747,10 +2916,10 @@ Returns file contents mapped to their filename without '.json' ending
2747
2916
  **Kind**: static method of [<code>Folder</code>](#Folder)
2748
2917
  **Returns**: <code>TYPE.MetadataTypeMap</code> - fileName => fileContent map
2749
2918
 
2750
- | Param | Type | Default | Description |
2751
- | --- | --- | --- | --- |
2752
- | dir | <code>string</code> | | directory that contains '.json' files to be read |
2753
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
2919
+ | Param | Type | Description |
2920
+ | --- | --- | --- |
2921
+ | dir | <code>string</code> | directory that contains '.json' files to be read |
2922
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
2754
2923
 
2755
2924
  <a name="Folder.retrieveHelper"></a>
2756
2925
 
@@ -2923,7 +3092,7 @@ definitionId: A unique UUID provided by Salesforce Marketing Cloud. Each version
2923
3092
  * [Journey](#Journey) ⇐ [<code>MetadataType</code>](#MetadataType)
2924
3093
  * [.retrieve(retrieveDir, [_], [__], [key])](#Journey.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
2925
3094
  * [.deleteByKey(key)](#Journey.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
2926
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#Journey.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3095
+ * [.deploy(metadata, deployDir, retrieveDir)](#Journey.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2927
3096
  * [.update(metadata)](#Journey.update) ⇒ <code>Promise</code>
2928
3097
  * [.create(metadata)](#Journey.create) ⇒ <code>Promise</code>
2929
3098
  * [.saveResults(results, retrieveDir, [overrideType], [templateVariables])](#Journey.saveResults) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
@@ -2961,7 +3130,7 @@ Delete a metadata item from the specified business unit
2961
3130
 
2962
3131
  <a name="Journey.deploy"></a>
2963
3132
 
2964
- ### Journey.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3133
+ ### Journey.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2965
3134
  Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta) once per deploy
2966
3135
 
2967
3136
  **Kind**: static method of [<code>Journey</code>](#Journey)
@@ -2972,7 +3141,6 @@ Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta)
2972
3141
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
2973
3142
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
2974
3143
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
2975
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by interaction |
2976
3144
 
2977
3145
  <a name="Journey.update"></a>
2978
3146
 
@@ -3016,7 +3184,7 @@ Helper for writing Metadata to disk, used for Retrieve and deploy
3016
3184
  <a name="Journey._postRetrieveTasksBulk"></a>
3017
3185
 
3018
3186
  ### Journey.\_postRetrieveTasksBulk(metadataMap)
3019
- helper for Journey's [saveResults](saveResults). Gets executed after retreive of metadata type and
3187
+ helper for Journey's [saveResults](#Journey.saveResults). Gets executed after retreive of metadata type and
3020
3188
 
3021
3189
  **Kind**: static method of [<code>Journey</code>](#Journey)
3022
3190
 
@@ -3155,8 +3323,8 @@ Provides default functionality that can be overwritten by child metadata type cl
3155
3323
  * [.buObject](#MetadataType.buObject) : <code>TYPE.BuObject</code>
3156
3324
  * [.getJsonFromFS(dir, [listBadKeys])](#MetadataType.getJsonFromFS) ⇒ <code>TYPE.MetadataTypeMap</code>
3157
3325
  * [.getFieldNamesToRetrieve([additionalFields], [isCaching])](#MetadataType.getFieldNamesToRetrieve) ⇒ <code>Array.&lt;string&gt;</code>
3158
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#MetadataType.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3159
- * [.postDeployTasks(upsertResults, originalMetadata, createdUpdated, [isRefresh])](#MetadataType.postDeployTasks) ⇒ <code>void</code>
3326
+ * [.deploy(metadata, deployDir, retrieveDir)](#MetadataType.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3327
+ * [.postDeployTasks(upsertResults, originalMetadata, createdUpdated)](#MetadataType.postDeployTasks) ⇒ <code>void</code>
3160
3328
  * [.postCreateTasks(metadataEntry, apiResponse)](#MetadataType.postCreateTasks) ⇒ <code>void</code>
3161
3329
  * [.postUpdateTasks(metadataEntry, apiResponse)](#MetadataType.postUpdateTasks) ⇒ <code>void</code>
3162
3330
  * [.postDeployTasks_legacyApi(metadataEntry, apiResponse)](#MetadataType.postDeployTasks_legacyApi) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -3174,9 +3342,10 @@ Provides default functionality that can be overwritten by child metadata type cl
3174
3342
  * [.update(metadata, [metadataBefore])](#MetadataType.update) ⇒ <code>void</code>
3175
3343
  * [.refresh()](#MetadataType.refresh) ⇒ <code>void</code>
3176
3344
  * [.execute()](#MetadataType.execute) ⇒ <code>void</code>
3345
+ * [.pause()](#MetadataType.pause) ⇒ <code>void</code>
3177
3346
  * [.hasChanged(cachedVersion, metadata, [fieldName])](#MetadataType.hasChanged) ⇒ <code>boolean</code>
3178
3347
  * [.hasChangedGeneric(cachedVersion, metadata, [fieldName], [silent])](#MetadataType.hasChangedGeneric) ⇒ <code>boolean</code>
3179
- * [.upsert(metadataMap, deployDir, [isRefresh])](#MetadataType.upsert) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3348
+ * [.upsert(metadataMap, deployDir)](#MetadataType.upsert) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3180
3349
  * [.createOrUpdate(metadataMap, metadataKey, hasError, metadataToUpdate, metadataToCreate)](#MetadataType.createOrUpdate) ⇒ <code>&#x27;create&#x27;</code> \| <code>&#x27;update&#x27;</code> \| <code>&#x27;skip&#x27;</code>
3181
3350
  * [.createREST(metadataEntry, uri)](#MetadataType.createREST) ⇒ <code>Promise.&lt;object&gt;</code> \| <code>null</code>
3182
3351
  * [.createSOAP(metadataEntry, [handleOutside])](#MetadataType.createSOAP) ⇒ <code>Promise.&lt;object&gt;</code> \| <code>null</code>
@@ -3186,7 +3355,8 @@ Provides default functionality that can be overwritten by child metadata type cl
3186
3355
  * [.getSOAPErrorMsg(ex)](#MetadataType.getSOAPErrorMsg) ⇒ <code>string</code>
3187
3356
  * [.retrieveSOAP(retrieveDir, [requestParams], [singleRetrieve], [additionalFields])](#MetadataType.retrieveSOAP) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3188
3357
  * [.retrieveREST(retrieveDir, uri, [templateVariables], [singleRetrieve])](#MetadataType.retrieveREST) ⇒ <code>Promise.&lt;{metadata: (TYPE.MetadataTypeMap\|TYPE.MetadataTypeItem), type: string}&gt;</code>
3189
- * [.executeREST(uri, key)](#MetadataType.executeREST) ⇒ <code>Promise.&lt;string&gt;</code>
3358
+ * [.executeREST(uri, key)](#MetadataType.executeREST) ⇒ <code>Promise.&lt;{key:string, response:string}&gt;</code>
3359
+ * [.executeSOAP([metadataEntry])](#MetadataType.executeSOAP) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
3190
3360
  * [.runDocumentOnRetrieve([singleRetrieve], metadataMap)](#MetadataType.runDocumentOnRetrieve) ⇒ <code>Promise.&lt;void&gt;</code>
3191
3361
  * [.parseResponseBody(body, [singleRetrieve])](#MetadataType.parseResponseBody) ⇒ <code>TYPE.MetadataTypeMap</code>
3192
3362
  * [.deleteFieldByDefinition(metadataEntry, fieldPath, definitionProperty, origin)](#MetadataType.deleteFieldByDefinition) ⇒ <code>void</code>
@@ -3204,7 +3374,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3204
3374
  * [.findSubType(templateDir, templateName)](#MetadataType.findSubType) ⇒ <code>Promise.&lt;string&gt;</code>
3205
3375
  * [.readSecondaryFolder(templateDir, typeDirArr, templateName, fileName, ex)](#MetadataType.readSecondaryFolder) ⇒ <code>object</code>
3206
3376
  * [.buildDefinition(templateDir, targetDir, templateName, variables)](#MetadataType.buildDefinition) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3207
- * [.checkForErrors(ex)](#MetadataType.checkForErrors) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3377
+ * [.getErrorsREST(ex)](#MetadataType.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3208
3378
  * [.document([metadata], [isDeploy])](#MetadataType.document) ⇒ <code>void</code>
3209
3379
  * [.deleteByKey(customerKey)](#MetadataType.deleteByKey) ⇒ <code>boolean</code>
3210
3380
  * [.postDeleteTasks(customerKey, [additionalExtensions])](#MetadataType.postDeleteTasks) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -3212,6 +3382,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3212
3382
  * [.deleteByKeyREST(url, key, [handleOutside])](#MetadataType.deleteByKeyREST) ⇒ <code>boolean</code>
3213
3383
  * [.readBUMetadataForType(readDir, [listBadKeys], [buMetadata])](#MetadataType.readBUMetadataForType) ⇒ <code>object</code>
3214
3384
  * [.getFilesToCommit(keyArr)](#MetadataType.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
3385
+ * [.getKeysForFixing(metadataMap)](#MetadataType.getKeysForFixing) ⇒ <code>Array.&lt;string&gt;</code>
3215
3386
 
3216
3387
  <a name="MetadataType.client"></a>
3217
3388
 
@@ -3237,10 +3408,10 @@ Returns file contents mapped to their filename without '.json' ending
3237
3408
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3238
3409
  **Returns**: <code>TYPE.MetadataTypeMap</code> - fileName => fileContent map
3239
3410
 
3240
- | Param | Type | Default | Description |
3241
- | --- | --- | --- | --- |
3242
- | dir | <code>string</code> | | directory that contains '.json' files to be read |
3243
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
3411
+ | Param | Type | Description |
3412
+ | --- | --- | --- |
3413
+ | dir | <code>string</code> | directory that contains '.json' files to be read |
3414
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
3244
3415
 
3245
3416
  <a name="MetadataType.getFieldNamesToRetrieve"></a>
3246
3417
 
@@ -3257,7 +3428,7 @@ Returns fieldnames of Metadata Type. 'this.definition.fields' variable only set
3257
3428
 
3258
3429
  <a name="MetadataType.deploy"></a>
3259
3430
 
3260
- ### MetadataType.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3431
+ ### MetadataType.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3261
3432
  Deploys metadata
3262
3433
 
3263
3434
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3268,11 +3439,10 @@ Deploys metadata
3268
3439
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
3269
3440
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
3270
3441
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
3271
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3272
3442
 
3273
3443
  <a name="MetadataType.postDeployTasks"></a>
3274
3444
 
3275
- ### MetadataType.postDeployTasks(upsertResults, originalMetadata, createdUpdated, [isRefresh]) ⇒ <code>void</code>
3445
+ ### MetadataType.postDeployTasks(upsertResults, originalMetadata, createdUpdated) ⇒ <code>void</code>
3276
3446
  Gets executed after deployment of metadata type
3277
3447
 
3278
3448
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3282,12 +3452,11 @@ Gets executed after deployment of metadata type
3282
3452
  | upsertResults | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField as returned by update/create |
3283
3453
  | originalMetadata | <code>TYPE.MetadataTypeMap</code> | metadata to be updated (contains additioanl fields) |
3284
3454
  | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
3285
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3286
3455
 
3287
3456
  <a name="MetadataType.postCreateTasks"></a>
3288
3457
 
3289
3458
  ### MetadataType.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
3290
- helper for [createREST](createREST)
3459
+ helper for [createREST](#MetadataType.createREST)
3291
3460
 
3292
3461
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3293
3462
 
@@ -3299,7 +3468,7 @@ helper for [createREST](createREST)
3299
3468
  <a name="MetadataType.postUpdateTasks"></a>
3300
3469
 
3301
3470
  ### MetadataType.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
3302
- helper for [updateREST](updateREST)
3471
+ helper for [updateREST](#MetadataType.updateREST)
3303
3472
 
3304
3473
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3305
3474
 
@@ -3311,7 +3480,7 @@ helper for [updateREST](updateREST)
3311
3480
  <a name="MetadataType.postDeployTasks_legacyApi"></a>
3312
3481
 
3313
3482
  ### MetadataType.postDeployTasks\_legacyApi(metadataEntry, apiResponse) ⇒ <code>Promise.&lt;void&gt;</code>
3314
- helper for [createREST](createREST) when legacy API endpoints as these do not return the created item but only their new id
3483
+ helper for [createREST](#MetadataType.createREST) when legacy API endpoints as these do not return the created item but only their new id
3315
3484
 
3316
3485
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3317
3486
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -3492,6 +3661,12 @@ Abstract refresh method that needs to be implemented in child metadata type
3492
3661
  ### MetadataType.execute() ⇒ <code>void</code>
3493
3662
  Abstract execute method that needs to be implemented in child metadata type
3494
3663
 
3664
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3665
+ <a name="MetadataType.pause"></a>
3666
+
3667
+ ### MetadataType.pause() ⇒ <code>void</code>
3668
+ Abstract pause method that needs to be implemented in child metadata type
3669
+
3495
3670
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3496
3671
  <a name="MetadataType.hasChanged"></a>
3497
3672
 
@@ -3524,7 +3699,7 @@ test if metadata was actually changed or not to potentially skip it during deplo
3524
3699
 
3525
3700
  <a name="MetadataType.upsert"></a>
3526
3701
 
3527
- ### MetadataType.upsert(metadataMap, deployDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3702
+ ### MetadataType.upsert(metadataMap, deployDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3528
3703
  MetadataType upsert, after retrieving from target and comparing to check if create or update operation is needed.
3529
3704
 
3530
3705
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3534,7 +3709,6 @@ MetadataType upsert, after retrieving from target and comparing to check if crea
3534
3709
  | --- | --- | --- |
3535
3710
  | metadataMap | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
3536
3711
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
3537
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3538
3712
 
3539
3713
  <a name="MetadataType.createOrUpdate"></a>
3540
3714
 
@@ -3590,7 +3764,7 @@ Updates a single metadata entry via REST
3590
3764
  | --- | --- | --- | --- |
3591
3765
  | metadataEntry | <code>TYPE.MetadataTypeItem</code> | | a single metadata Entry |
3592
3766
  | uri | <code>string</code> | | rest endpoint for PATCH |
3593
- | [httpMethod] | <code>&#x27;patch&#x27;</code> \| <code>&#x27;post&#x27;</code> \| <code>&#x27;put&#x27;</code> | <code>&#x27;patch&#x27;</code> | defaults to 'patch'; some update requests require PUT instead of PATCH |
3767
+ | [httpMethod] | <code>&#x27;patch&#x27;</code> \| <code>&#x27;post&#x27;</code> \| <code>&#x27;put&#x27;</code> | <code>patch</code> | defaults to 'patch'; some update requests require PUT instead of PATCH |
3594
3768
 
3595
3769
  <a name="MetadataType.updateSOAP"></a>
3596
3770
 
@@ -3620,7 +3794,7 @@ Updates a single metadata entry via fuel-soap (generic lib not wrapper)
3620
3794
  <a name="MetadataType.getSOAPErrorMsg"></a>
3621
3795
 
3622
3796
  ### MetadataType.getSOAPErrorMsg(ex) ⇒ <code>string</code>
3623
- helper for [_handleSOAPErrors](_handleSOAPErrors)
3797
+ helper for [_handleSOAPErrors](#MetadataType._handleSOAPErrors)
3624
3798
 
3625
3799
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3626
3800
  **Returns**: <code>string</code> - error message
@@ -3661,21 +3835,33 @@ Retrieves Metadata for Rest Types
3661
3835
 
3662
3836
  <a name="MetadataType.executeREST"></a>
3663
3837
 
3664
- ### MetadataType.executeREST(uri, key) ⇒ <code>Promise.&lt;string&gt;</code>
3838
+ ### MetadataType.executeREST(uri, key) ⇒ <code>Promise.&lt;{key:string, response:string}&gt;</code>
3665
3839
  Used to execute a query/automation etc.
3666
3840
 
3667
3841
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3668
- **Returns**: <code>Promise.&lt;string&gt;</code> - 'OK' if started execution successfully, otherwise - 'Error'
3842
+ **Returns**: <code>Promise.&lt;{key:string, response:string}&gt;</code> - metadata key and API response (OK or error)
3669
3843
 
3670
3844
  | Param | Type | Description |
3671
3845
  | --- | --- | --- |
3672
3846
  | uri | <code>string</code> | REST endpoint where the POST request should be sent |
3673
3847
  | key | <code>string</code> | item key |
3674
3848
 
3849
+ <a name="MetadataType.executeSOAP"></a>
3850
+
3851
+ ### MetadataType.executeSOAP([metadataEntry]) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
3852
+ Used to execute a query/automation etc.
3853
+
3854
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3855
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
3856
+
3857
+ | Param | Type | Description |
3858
+ | --- | --- | --- |
3859
+ | [metadataEntry] | <code>TYPE.MetadataTypeItem</code> | single metadata entry |
3860
+
3675
3861
  <a name="MetadataType.runDocumentOnRetrieve"></a>
3676
3862
 
3677
3863
  ### MetadataType.runDocumentOnRetrieve([singleRetrieve], metadataMap) ⇒ <code>Promise.&lt;void&gt;</code>
3678
- helper for [retrieveREST](retrieveREST) and [retrieveSOAP](retrieveSOAP)
3864
+ helper for [retrieveREST](#MetadataType.retrieveREST) and [retrieveSOAP](#MetadataType.retrieveSOAP)
3679
3865
 
3680
3866
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3681
3867
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -3769,10 +3955,10 @@ checks if the current metadata entry should be saved on retrieve or not
3769
3955
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3770
3956
  **Returns**: <code>boolean</code> - true: skip saving == filtered; false: continue with saving
3771
3957
 
3772
- | Param | Type | Default | Description |
3773
- | --- | --- | --- | --- |
3774
- | metadataEntry | <code>TYPE.MetadataTypeItem</code> | | metadata entry |
3775
- | [include] | <code>boolean</code> | <code>false</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3958
+ | Param | Type | Description |
3959
+ | --- | --- | --- |
3960
+ | metadataEntry | <code>TYPE.MetadataTypeItem</code> | metadata entry |
3961
+ | [include] | <code>boolean</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3776
3962
 
3777
3963
  <a name="MetadataType.isFilteredFolder"></a>
3778
3964
 
@@ -3782,10 +3968,10 @@ optionally filter by what folder something is in
3782
3968
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3783
3969
  **Returns**: <code>boolean</code> - true: filtered == do NOT save; false: not filtered == do save
3784
3970
 
3785
- | Param | Type | Default | Description |
3786
- | --- | --- | --- | --- |
3787
- | metadataEntry | <code>object</code> | | metadata entry |
3788
- | [include] | <code>boolean</code> | <code>false</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3971
+ | Param | Type | Description |
3972
+ | --- | --- | --- |
3973
+ | metadataEntry | <code>object</code> | metadata entry |
3974
+ | [include] | <code>boolean</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3789
3975
 
3790
3976
  <a name="MetadataType.saveResults"></a>
3791
3977
 
@@ -3805,7 +3991,7 @@ Helper for writing Metadata to disk, used for Retrieve and deploy
3805
3991
  <a name="MetadataType.applyTemplateValues"></a>
3806
3992
 
3807
3993
  ### MetadataType.applyTemplateValues(code, templateVariables) ⇒ <code>string</code>
3808
- helper for [buildDefinitionForNested](buildDefinitionForNested)
3994
+ helper for [buildDefinitionForNested](#MetadataType.buildDefinitionForNested)
3809
3995
  searches extracted file for template variable names and applies the market values
3810
3996
 
3811
3997
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3819,7 +4005,7 @@ searches extracted file for template variable names and applies the market value
3819
4005
  <a name="MetadataType.applyTemplateNames"></a>
3820
4006
 
3821
4007
  ### MetadataType.applyTemplateNames(code, templateVariables) ⇒ <code>string</code>
3822
- helper for [buildTemplateForNested](buildTemplateForNested)
4008
+ helper for [buildTemplateForNested](#MetadataType.buildTemplateForNested)
3823
4009
  searches extracted file for template variable values and applies the market variable names
3824
4010
 
3825
4011
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3833,7 +4019,7 @@ searches extracted file for template variable values and applies the market vari
3833
4019
  <a name="MetadataType.buildDefinitionForNested"></a>
3834
4020
 
3835
4021
  ### MetadataType.buildDefinitionForNested(templateDir, targetDir, metadata, variables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
3836
- helper for [buildDefinition](buildDefinition)
4022
+ helper for [buildDefinition](#MetadataType.buildDefinition)
3837
4023
  handles extracted code if any are found for complex types (e.g script, asset, query)
3838
4024
 
3839
4025
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3850,7 +4036,7 @@ handles extracted code if any are found for complex types (e.g script, asset, qu
3850
4036
  <a name="MetadataType.buildTemplateForNested"></a>
3851
4037
 
3852
4038
  ### MetadataType.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
3853
- helper for [buildTemplate](buildTemplate)
4039
+ helper for [buildTemplate](#MetadataType.buildTemplate)
3854
4040
  handles extracted code if any are found for complex types
3855
4041
 
3856
4042
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3910,9 +4096,9 @@ parsing is required (for example scripts & queries)
3910
4096
  | templateName | <code>string</code> | name of the metadata file |
3911
4097
  | variables | <code>TYPE.TemplateMap</code> | variables to be replaced in the metadata |
3912
4098
 
3913
- <a name="MetadataType.checkForErrors"></a>
4099
+ <a name="MetadataType.getErrorsREST"></a>
3914
4100
 
3915
- ### MetadataType.checkForErrors(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4101
+ ### MetadataType.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3916
4102
  Standardizes a check for multiple messages
3917
4103
 
3918
4104
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3995,11 +4181,11 @@ Returns metadata of a business unit that is saved locally
3995
4181
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3996
4182
  **Returns**: <code>object</code> - Metadata of BU in local directory
3997
4183
 
3998
- | Param | Type | Default | Description |
3999
- | --- | --- | --- | --- |
4000
- | readDir | <code>string</code> | | root directory of metadata. |
4001
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
4002
- | [buMetadata] | <code>object</code> | | Metadata of BU in local directory |
4184
+ | Param | Type | Description |
4185
+ | --- | --- | --- |
4186
+ | readDir | <code>string</code> | root directory of metadata. |
4187
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
4188
+ | [buMetadata] | <code>object</code> | Metadata of BU in local directory |
4003
4189
 
4004
4190
  <a name="MetadataType.getFilesToCommit"></a>
4005
4191
 
@@ -4014,6 +4200,16 @@ additionally, the documentation for dataExtension and automation should be retur
4014
4200
  | --- | --- | --- |
4015
4201
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
4016
4202
 
4203
+ <a name="MetadataType.getKeysForFixing"></a>
4204
+
4205
+ ### MetadataType.getKeysForFixing(metadataMap) ⇒ <code>Array.&lt;string&gt;</code>
4206
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
4207
+ **Returns**: <code>Array.&lt;string&gt;</code> - list of keys
4208
+
4209
+ | Param | Type | Description |
4210
+ | --- | --- | --- |
4211
+ | metadataMap | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
4212
+
4017
4213
  <a name="MobileCode"></a>
4018
4214
 
4019
4215
  ## MobileCode ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -4190,7 +4386,7 @@ manages post retrieve steps
4190
4386
  <a name="MobileKeyword.prepExtractedCode"></a>
4191
4387
 
4192
4388
  ### MobileKeyword.prepExtractedCode(metadataScript) ⇒ <code>Object</code>
4193
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
4389
+ helper for [postRetrieveTasks](#MobileKeyword.postRetrieveTasks) and [_buildForNested](#MobileKeyword._buildForNested)
4194
4390
 
4195
4391
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4196
4392
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -4240,7 +4436,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
4240
4436
  <a name="MobileKeyword._buildForNested"></a>
4241
4437
 
4242
4438
  ### MobileKeyword.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4243
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
4439
+ helper for [buildTemplateForNested](#MobileKeyword.buildTemplateForNested) / [buildDefinitionForNested](#MobileKeyword.buildDefinitionForNested)
4244
4440
  handles extracted code if any are found for complex types
4245
4441
 
4246
4442
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
@@ -4271,7 +4467,7 @@ prepares an event definition for deployment
4271
4467
  <a name="MobileKeyword.postCreateTasks"></a>
4272
4468
 
4273
4469
  ### MobileKeyword.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4274
- helper for [createREST](createREST)
4470
+ helper for [createREST](#MetadataType.createREST)
4275
4471
 
4276
4472
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4277
4473
 
@@ -4283,7 +4479,7 @@ helper for [createREST](createREST)
4283
4479
  <a name="MobileKeyword.postUpdateTasks"></a>
4284
4480
 
4285
4481
  ### MobileKeyword.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4286
- helper for [updateREST](updateREST)
4482
+ helper for [updateREST](#MetadataType.updateREST)
4287
4483
 
4288
4484
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4289
4485
 
@@ -4295,7 +4491,7 @@ helper for [updateREST](updateREST)
4295
4491
  <a name="MobileKeyword._mergeCode"></a>
4296
4492
 
4297
4493
  ### MobileKeyword.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4298
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
4494
+ helper for [preDeployTasks](#MobileKeyword.preDeployTasks) that loads extracted code content back into JSON
4299
4495
 
4300
4496
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4301
4497
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -4423,7 +4619,7 @@ Creates a single item
4423
4619
  <a name="MobileMessage._mergeCode"></a>
4424
4620
 
4425
4621
  ### MobileMessage.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4426
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
4622
+ helper for [preDeployTasks](#MobileMessage.preDeployTasks) that loads extracted code content back into JSON
4427
4623
 
4428
4624
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4429
4625
  **Returns**: <code>Promise.&lt;string&gt;</code> - code
@@ -4437,7 +4633,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
4437
4633
  <a name="MobileMessage.prepExtractedCode"></a>
4438
4634
 
4439
4635
  ### MobileMessage.prepExtractedCode(code) ⇒ <code>Object</code>
4440
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
4636
+ helper for [postRetrieveTasks](#MobileMessage.postRetrieveTasks) and [_buildForNested](#MobileMessage._buildForNested)
4441
4637
 
4442
4638
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4443
4639
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -4487,7 +4683,7 @@ prepares an event definition for deployment
4487
4683
  <a name="MobileMessage.postCreateTasks"></a>
4488
4684
 
4489
4685
  ### MobileMessage.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4490
- helper for [createREST](createREST)
4686
+ helper for [createREST](#MetadataType.createREST)
4491
4687
 
4492
4688
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4493
4689
 
@@ -4499,7 +4695,7 @@ helper for [createREST](createREST)
4499
4695
  <a name="MobileMessage.postUpdateTasks"></a>
4500
4696
 
4501
4697
  ### MobileMessage.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4502
- helper for [updateREST](updateREST)
4698
+ helper for [updateREST](#MetadataType.updateREST)
4503
4699
 
4504
4700
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4505
4701
 
@@ -4549,7 +4745,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
4549
4745
  <a name="MobileMessage._buildForNested"></a>
4550
4746
 
4551
4747
  ### MobileMessage.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4552
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
4748
+ helper for [buildTemplateForNested](#MobileMessage.buildTemplateForNested) / [buildDefinitionForNested](#MobileMessage.buildDefinitionForNested)
4553
4749
  handles extracted code if any are found for complex types
4554
4750
 
4555
4751
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
@@ -4587,7 +4783,7 @@ Query MetadataType
4587
4783
 
4588
4784
  * [Query](#Query) ⇐ [<code>MetadataType</code>](#MetadataType)
4589
4785
  * [.retrieve(retrieveDir, [_], [__], [key])](#Query.retrieve) ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
4590
- * [.execute(keyArr)](#Query.execute) ⇒ <code>Promise.&lt;boolean&gt;</code>
4786
+ * [.execute(keyArr)](#Query.execute) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
4591
4787
  * [.retrieveForCache()](#Query.retrieveForCache) ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
4592
4788
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Query.retrieveAsTemplate) ⇒ <code>Promise.&lt;{metadata: Query, type: string}&gt;</code>
4593
4789
  * [.postRetrieveTasks(metadata)](#Query.postRetrieveTasks) ⇒ <code>TYPE.CodeExtractItem</code>
@@ -4598,9 +4794,10 @@ Query MetadataType
4598
4794
  * [.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Query.buildDefinitionForNested) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4599
4795
  * [.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Query.buildTemplateForNested) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4600
4796
  * [.getFilesToCommit(keyArr)](#Query.getFilesToCommit) ⇒ <code>Array.&lt;string&gt;</code>
4601
- * [.checkForErrors(ex)](#Query.checkForErrors) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4797
+ * [.getErrorsREST(ex)](#Query.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4602
4798
  * [.deleteByKey(customerKey)](#Query.deleteByKey) ⇒ <code>boolean</code>
4603
4799
  * [.postDeleteTasks(customerKey)](#Query.postDeleteTasks) ⇒ <code>void</code>
4800
+ * [.postDeployTasks(upsertResults)](#Query.postDeployTasks)
4604
4801
 
4605
4802
  <a name="Query.retrieve"></a>
4606
4803
 
@@ -4619,11 +4816,11 @@ Retrieves Metadata of queries
4619
4816
 
4620
4817
  <a name="Query.execute"></a>
4621
4818
 
4622
- ### Query.execute(keyArr) ⇒ <code>Promise.&lt;boolean&gt;</code>
4819
+ ### Query.execute(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
4623
4820
  a function to start query execution via API
4624
4821
 
4625
4822
  **Kind**: static method of [<code>Query</code>](#Query)
4626
- **Returns**: <code>Promise.&lt;boolean&gt;</code> - Returns true if all items were executed successfully, otherwise false
4823
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were executed successfully
4627
4824
 
4628
4825
  | Param | Type | Description |
4629
4826
  | --- | --- | --- |
@@ -4702,7 +4899,7 @@ prepares a Query for deployment
4702
4899
  <a name="Query.applyTemplateValues"></a>
4703
4900
 
4704
4901
  ### Query.applyTemplateValues(code, templateVariables) ⇒ <code>string</code>
4705
- helper for [buildDefinitionForNested](buildDefinitionForNested)
4902
+ helper for [buildDefinitionForNested](#Query.buildDefinitionForNested)
4706
4903
  searches extracted SQL file for template variables and applies the market values
4707
4904
 
4708
4905
  **Kind**: static method of [<code>Query</code>](#Query)
@@ -4764,9 +4961,9 @@ additionally, the documentation for dataExtension and automation should be retur
4764
4961
  | --- | --- | --- |
4765
4962
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
4766
4963
 
4767
- <a name="Query.checkForErrors"></a>
4964
+ <a name="Query.getErrorsREST"></a>
4768
4965
 
4769
- ### Query.checkForErrors(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4966
+ ### Query.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4770
4967
  Standardizes a check for multiple messages but adds query specific filters to error texts
4771
4968
 
4772
4969
  **Kind**: static method of [<code>Query</code>](#Query)
@@ -4799,6 +4996,17 @@ clean up after deleting a metadata item
4799
4996
  | --- | --- | --- |
4800
4997
  | customerKey | <code>string</code> | Identifier of metadata item |
4801
4998
 
4999
+ <a name="Query.postDeployTasks"></a>
5000
+
5001
+ ### Query.postDeployTasks(upsertResults)
5002
+ Gets executed after deployment of metadata type
5003
+
5004
+ **Kind**: static method of [<code>Query</code>](#Query)
5005
+
5006
+ | Param | Type | Description |
5007
+ | --- | --- | --- |
5008
+ | upsertResults | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField as returned by update/create |
5009
+
4802
5010
  <a name="Role"></a>
4803
5011
 
4804
5012
  ## Role ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -4992,7 +5200,7 @@ Creates a single Script
4992
5200
  <a name="Script._mergeCode"></a>
4993
5201
 
4994
5202
  ### Script.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4995
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
5203
+ helper for [preDeployTasks](#Script.preDeployTasks) that loads extracted code content back into JSON
4996
5204
 
4997
5205
  **Kind**: static method of [<code>Script</code>](#Script)
4998
5206
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -5057,7 +5265,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
5057
5265
  <a name="Script._buildForNested"></a>
5058
5266
 
5059
5267
  ### Script.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5060
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
5268
+ helper for [buildTemplateForNested](#Script.buildTemplateForNested) / [buildDefinitionForNested](#Script.buildDefinitionForNested)
5061
5269
  handles extracted code if any are found for complex types
5062
5270
 
5063
5271
  **Kind**: static method of [<code>Script</code>](#Script)
@@ -5087,7 +5295,7 @@ Splits the script metadata into two parts and parses in a standard manner
5087
5295
  <a name="Script.prepExtractedCode"></a>
5088
5296
 
5089
5297
  ### Script.prepExtractedCode(metadataScript, metadataName) ⇒ <code>Object</code>
5090
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5298
+ helper for [parseMetadata](#Script.parseMetadata) and [_buildForNested](#Script._buildForNested)
5091
5299
 
5092
5300
  **Kind**: static method of [<code>Script</code>](#Script)
5093
5301
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -5132,40 +5340,6 @@ Retrieves SOAP based metadata of metadata type into local filesystem. executes c
5132
5340
  | [__] | <code>void</code> | unused parameter |
5133
5341
  | [key] | <code>string</code> | customer key of single item to retrieve |
5134
5342
 
5135
- <a name="SetDefinition"></a>
5136
-
5137
- ## SetDefinition ⇐ [<code>MetadataType</code>](#MetadataType)
5138
- SetDefinition MetadataType
5139
-
5140
- **Kind**: global class
5141
- **Extends**: [<code>MetadataType</code>](#MetadataType)
5142
-
5143
- * [SetDefinition](#SetDefinition) ⇐ [<code>MetadataType</code>](#MetadataType)
5144
- * [.retrieve(retrieveDir, [_], [__], [key])](#SetDefinition.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5145
- * [.retrieveForCache()](#SetDefinition.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5146
-
5147
- <a name="SetDefinition.retrieve"></a>
5148
-
5149
- ### SetDefinition.retrieve(retrieveDir, [_], [__], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5150
- Retrieves Metadata of schema set Definitions.
5151
-
5152
- **Kind**: static method of [<code>SetDefinition</code>](#SetDefinition)
5153
- **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
5154
-
5155
- | Param | Type | Description |
5156
- | --- | --- | --- |
5157
- | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
5158
- | [_] | <code>void</code> | unused parameter |
5159
- | [__] | <code>void</code> | unused parameter |
5160
- | [key] | <code>string</code> | customer key of single item to retrieve |
5161
-
5162
- <a name="SetDefinition.retrieveForCache"></a>
5163
-
5164
- ### SetDefinition.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5165
- Retrieves Metadata of schema set definitions for caching.
5166
-
5167
- **Kind**: static method of [<code>SetDefinition</code>](#SetDefinition)
5168
- **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
5169
5343
  <a name="TransactionalEmail"></a>
5170
5344
 
5171
5345
  ## TransactionalEmail ⇐ [<code>TransactionalMessage</code>](#TransactionalMessage)
@@ -5371,7 +5545,7 @@ prepares for deployment
5371
5545
  <a name="TransactionalSMS._mergeCode"></a>
5372
5546
 
5373
5547
  ### TransactionalSMS.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
5374
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
5548
+ helper for [preDeployTasks](#TransactionalSMS.preDeployTasks) that loads extracted code content back into JSON
5375
5549
 
5376
5550
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
5377
5551
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -5397,7 +5571,7 @@ manages post retrieve steps
5397
5571
  <a name="TransactionalSMS.prepExtractedCode"></a>
5398
5572
 
5399
5573
  ### TransactionalSMS.prepExtractedCode(metadataScript) ⇒ <code>Object</code>
5400
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5574
+ helper for [postRetrieveTasks](#TransactionalSMS.postRetrieveTasks) and [_buildForNested](#TransactionalSMS._buildForNested)
5401
5575
 
5402
5576
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
5403
5577
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -5409,7 +5583,7 @@ helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5409
5583
  <a name="TransactionalSMS.buildDefinitionForNested"></a>
5410
5584
 
5411
5585
  ### TransactionalSMS.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5412
- helper for [buildDefinition](#MetadataType.buildDefinition)
5586
+ helper for [TransactionalMessage.buildDefinition](TransactionalMessage.buildDefinition)
5413
5587
  handles extracted code if any are found for complex types
5414
5588
 
5415
5589
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5426,7 +5600,7 @@ handles extracted code if any are found for complex types
5426
5600
  <a name="TransactionalSMS.buildTemplateForNested"></a>
5427
5601
 
5428
5602
  ### TransactionalSMS.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5429
- helper for [buildTemplate](#MetadataType.buildTemplate)
5603
+ helper for [TransactionalMessage.buildTemplate](TransactionalMessage.buildTemplate)
5430
5604
  handles extracted code if any are found for complex types
5431
5605
 
5432
5606
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5447,7 +5621,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
5447
5621
  <a name="TransactionalSMS._buildForNested"></a>
5448
5622
 
5449
5623
  ### TransactionalSMS.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5450
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
5624
+ helper for [buildTemplateForNested](#TransactionalSMS.buildTemplateForNested) / [buildDefinitionForNested](#TransactionalSMS.buildDefinitionForNested)
5451
5625
  handles extracted code if any are found for complex types
5452
5626
 
5453
5627
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5500,13 +5674,11 @@ MessageSendActivity MetadataType
5500
5674
  * [.create(metadata)](#TriggeredSend.create) ⇒ <code>Promise</code>
5501
5675
  * [.update(metadata)](#TriggeredSend.update) ⇒ <code>Promise</code>
5502
5676
  * [.deleteByKey(customerKey)](#TriggeredSend.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5503
- * [.postRetrieveTasks(metadata)](#TriggeredSend.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5504
- * [.setFolderPath(metadata)](#TriggeredSend.setFolderPath)
5505
- * [.parseMetadata(metadata)](#TriggeredSend.parseMetadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5677
+ * [.postRetrieveTasks(metadata)](#TriggeredSend.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5506
5678
  * [.preDeployTasks(metadata)](#TriggeredSend.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5507
5679
  * [.refresh([keyArr], [checkKey])](#TriggeredSend.refresh) ⇒ <code>Promise.&lt;void&gt;</code>
5508
5680
  * [.getKeysForValidTSDs(metadata)](#TriggeredSend.getKeysForValidTSDs) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
5509
- * [.findRefreshableItems()](#TriggeredSend.findRefreshableItems) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5681
+ * [.findRefreshableItems([assetLoaded])](#TriggeredSend.findRefreshableItems) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5510
5682
  * [._refreshItem(key, checkKey)](#TriggeredSend._refreshItem) ⇒ <code>Promise.&lt;boolean&gt;</code>
5511
5683
 
5512
5684
  <a name="TriggeredSend.retrieve"></a>
@@ -5562,30 +5734,7 @@ Delete a metadata item from the specified business unit
5562
5734
 
5563
5735
  <a name="TriggeredSend.postRetrieveTasks"></a>
5564
5736
 
5565
- ### TriggeredSend.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
5566
- manages post retrieve steps
5567
-
5568
- **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5569
- **Returns**: <code>TYPE.MetadataTypeItem</code> - Array with one metadata object and one query string
5570
-
5571
- | Param | Type | Description |
5572
- | --- | --- | --- |
5573
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single query |
5574
-
5575
- <a name="TriggeredSend.setFolderPath"></a>
5576
-
5577
- ### TriggeredSend.setFolderPath(metadata)
5578
- generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
5579
-
5580
- **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5581
-
5582
- | Param | Type | Description |
5583
- | --- | --- | --- |
5584
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single script activity definition |
5585
-
5586
- <a name="TriggeredSend.parseMetadata"></a>
5587
-
5588
- ### TriggeredSend.parseMetadata(metadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5737
+ ### TriggeredSend.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5589
5738
  parses retrieved Metadata before saving
5590
5739
 
5591
5740
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
@@ -5593,7 +5742,7 @@ parses retrieved Metadata before saving
5593
5742
 
5594
5743
  | Param | Type | Description |
5595
5744
  | --- | --- | --- |
5596
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single query activity definition |
5745
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
5597
5746
 
5598
5747
  <a name="TriggeredSend.preDeployTasks"></a>
5599
5748
 
@@ -5623,7 +5772,7 @@ TSD-specific refresh method that finds active TSDs and refreshes them
5623
5772
  <a name="TriggeredSend.getKeysForValidTSDs"></a>
5624
5773
 
5625
5774
  ### TriggeredSend.getKeysForValidTSDs(metadata) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
5626
- helper for [refresh](refresh) that extracts the keys from the TSD item map and eli
5775
+ helper for [refresh](#TriggeredSend.refresh) that extracts the keys from the TSD item map and eli
5627
5776
 
5628
5777
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5629
5778
  **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - keyArr
@@ -5634,15 +5783,20 @@ helper for [refresh](refresh) that extracts the keys from the TSD item map and e
5634
5783
 
5635
5784
  <a name="TriggeredSend.findRefreshableItems"></a>
5636
5785
 
5637
- ### TriggeredSend.findRefreshableItems() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5638
- helper for [refresh](refresh) that finds active TSDs on the server and filters it by the same rules that [retrieve](retrieve) is using to avoid refreshing TSDs with broken dependencies
5786
+ ### TriggeredSend.findRefreshableItems([assetLoaded]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5787
+ helper for [refresh](#TriggeredSend.refresh) that finds active TSDs on the server and filters it by the same rules that [retrieve](#TriggeredSend.retrieve) is using to avoid refreshing TSDs with broken dependencies
5639
5788
 
5640
5789
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5641
5790
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of TSD item map
5791
+
5792
+ | Param | Type | Default | Description |
5793
+ | --- | --- | --- | --- |
5794
+ | [assetLoaded] | <code>boolean</code> | <code>false</code> | if run after Asset.deploy via --refresh option this will skip caching assets |
5795
+
5642
5796
  <a name="TriggeredSend._refreshItem"></a>
5643
5797
 
5644
5798
  ### TriggeredSend.\_refreshItem(key, checkKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5645
- helper for [refresh](refresh) that pauses, publishes and starts a triggered send
5799
+ helper for [refresh](#TriggeredSend.refresh) that pauses, publishes and starts a triggered send
5646
5800
 
5647
5801
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5648
5802
  **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if refresh was successful
@@ -5862,7 +6016,7 @@ Retrieve metadata of specified types into local file system and Retriever.metada
5862
6016
  <a name="Retriever+_getTypeDependencies"></a>
5863
6017
 
5864
6018
  ### retriever.\_getTypeDependencies(metadataTypes) ⇒ <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code>
5865
- helper for [retrieve](retrieve) to get all dependencies of the given types
6019
+ helper for [Retriever.retrieve](Retriever.retrieve) to get all dependencies of the given types
5866
6020
 
5867
6021
  **Kind**: instance method of [<code>Retriever</code>](#Retriever)
5868
6022
  **Returns**: <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> - unique list dependent metadata types
@@ -5897,6 +6051,7 @@ CLI entry for SFMC DevTools
5897
6051
  * [.metadataLogger(level, type, method, payload, [source])](#Util.metadataLogger) ⇒ <code>void</code>
5898
6052
  * [.replaceByObject(str, obj)](#Util.replaceByObject) ⇒ <code>string</code> \| <code>object</code>
5899
6053
  * [.inverseGet(objs, val)](#Util.inverseGet) ⇒ <code>string</code>
6054
+ * [.getDependentMetadata(fixedType)](#Util.getDependentMetadata) ⇒ <code>Array.&lt;string&gt;</code>
5900
6055
  * [.getMetadataHierachy(metadataTypes)](#Util.getMetadataHierachy) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
5901
6056
  * [.resolveObjPath(path, obj)](#Util.resolveObjPath) ⇒ <code>any</code>
5902
6057
  * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code> \| <code>void</code>
@@ -5908,6 +6063,9 @@ CLI entry for SFMC DevTools
5908
6063
  * [.getKeysString(keyArr, [isId])](#Util.getKeysString) ⇒ <code>string</code>
5909
6064
  * [.sleep(ms)](#Util.sleep) ⇒ <code>Promise.&lt;void&gt;</code>
5910
6065
  * [.getSsjs(code)](#Util.getSsjs) ⇒ <code>string</code>
6066
+ * [.stringLike(testString, search)](#Util.stringLike) ⇒ <code>boolean</code>
6067
+ * [.fieldsLike(metadata, [filters])](#Util.fieldsLike) ⇒ <code>boolean</code>
6068
+ * [.capitalizeFirstLetter(str)](#Util.capitalizeFirstLetter) ⇒ <code>string</code>
5911
6069
 
5912
6070
  <a name="Util.skipInteraction"></a>
5913
6071
 
@@ -5992,7 +6150,8 @@ used to ensure the program tells surrounding software that an unrecoverable erro
5992
6150
  <a name="Util.isTrue"></a>
5993
6151
 
5994
6152
  ### Util.isTrue(attrValue) ⇒ <code>boolean</code>
5995
- SFMC accepts multiple true values for Boolean attributes for which we are checking here
6153
+ SFMC accepts multiple true values for Boolean attributes for which we are checking here.
6154
+ The same problem occurs when evaluating boolean CLI flags
5996
6155
 
5997
6156
  **Kind**: static method of [<code>Util</code>](#Util)
5998
6157
  **Returns**: <code>boolean</code> - attribute value == true ? true : false
@@ -6004,7 +6163,8 @@ SFMC accepts multiple true values for Boolean attributes for which we are checki
6004
6163
  <a name="Util.isFalse"></a>
6005
6164
 
6006
6165
  ### Util.isFalse(attrValue) ⇒ <code>boolean</code>
6007
- SFMC accepts multiple false values for Boolean attributes for which we are checking here
6166
+ SFMC accepts multiple false values for Boolean attributes for which we are checking here.
6167
+ The same problem occurs when evaluating boolean CLI flags
6008
6168
 
6009
6169
  **Kind**: static method of [<code>Util</code>](#Util)
6010
6170
  **Returns**: <code>boolean</code> - attribute value == false ? true : false
@@ -6016,7 +6176,7 @@ SFMC accepts multiple false values for Boolean attributes for which we are check
6016
6176
  <a name="Util._isValidType"></a>
6017
6177
 
6018
6178
  ### Util.\_isValidType(selectedType, [handleOutside]) ⇒ <code>boolean</code>
6019
- helper for [retrieve](#Mcdev.retrieve), [retrieveAsTemplate](#Mcdev.retrieveAsTemplate) and [deploy](#Mcdev.deploy)
6179
+ helper for Mcdev.retrieve, Mcdev.retrieveAsTemplate and Mcdev.deploy
6020
6180
 
6021
6181
  **Kind**: static method of [<code>Util</code>](#Util)
6022
6182
  **Returns**: <code>boolean</code> - type ok or not
@@ -6053,9 +6213,9 @@ wrapper around our standard winston logging to console and logfile
6053
6213
  **Kind**: static method of [<code>Util</code>](#Util)
6054
6214
  **Returns**: <code>object</code> - initiated logger for console and file
6055
6215
 
6056
- | Param | Type | Default | Description |
6057
- | --- | --- | --- | --- |
6058
- | [noLogFile] | <code>boolean</code> | <code>false</code> | optional flag to indicate if we should log to file; CLI logs are always on |
6216
+ | Param | Type | Description |
6217
+ | --- | --- | --- |
6218
+ | [noLogFile] | <code>boolean</code> | optional flag to indicate if we should log to file; CLI logs are always on |
6059
6219
 
6060
6220
  <a name="Util.startLogger"></a>
6061
6221
 
@@ -6064,10 +6224,10 @@ initiate winston logger
6064
6224
 
6065
6225
  **Kind**: static method of [<code>Util</code>](#Util)
6066
6226
 
6067
- | Param | Type | Default | Description |
6068
- | --- | --- | --- | --- |
6069
- | [restart] | <code>boolean</code> | <code>false</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
6070
- | [noLogFile] | <code>boolean</code> | <code>false</code> | if false, logger will log to file; otherwise, only to console |
6227
+ | Param | Type | Description |
6228
+ | --- | --- | --- |
6229
+ | [restart] | <code>boolean</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
6230
+ | [noLogFile] | <code>boolean</code> | if false, logger will log to file; otherwise, only to console |
6071
6231
 
6072
6232
  <a name="Util.metadataLogger"></a>
6073
6233
 
@@ -6111,6 +6271,18 @@ get key of an object based on the first matching value
6111
6271
  | objs | <code>object</code> | object of objects to be searched |
6112
6272
  | val | <code>string</code> | value to be searched for |
6113
6273
 
6274
+ <a name="Util.getDependentMetadata"></a>
6275
+
6276
+ ### Util.getDependentMetadata(fixedType) ⇒ <code>Array.&lt;string&gt;</code>
6277
+ helper for Mcdev.fixKeys. Retrieve dependent metadata
6278
+
6279
+ **Kind**: static method of [<code>Util</code>](#Util)
6280
+ **Returns**: <code>Array.&lt;string&gt;</code> - array of types that depend on the given type
6281
+
6282
+ | Param | Type | Description |
6283
+ | --- | --- | --- |
6284
+ | fixedType | <code>string</code> | type of the metadata passed as a parameter to fixKeys function |
6285
+
6114
6286
  <a name="Util.getMetadataHierachy"></a>
6115
6287
 
6116
6288
  ### Util.getMetadataHierachy(metadataTypes) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
@@ -6240,7 +6412,7 @@ pause execution of code; useful when multiple server calls are dependent on each
6240
6412
  <a name="Util.getSsjs"></a>
6241
6413
 
6242
6414
  ### Util.getSsjs(code) ⇒ <code>string</code>
6243
- helper for [_extractCode](#Asset._extractCode) and [prepExtractedCode](#Script.prepExtractedCode) to determine if a code block is a valid SSJS block
6415
+ helper for Asset.extractCode and Script.prepExtractedCode to determine if a code block is a valid SSJS block
6244
6416
 
6245
6417
  **Kind**: static method of [<code>Util</code>](#Util)
6246
6418
  **Returns**: <code>string</code> - the SSJS code if code block is a valid SSJS block, otherwise null
@@ -6264,6 +6436,44 @@ the following is invalid:
6264
6436
  // 3
6265
6437
  </script>
6266
6438
  ```
6439
+ <a name="Util.stringLike"></a>
6440
+
6441
+ ### Util.stringLike(testString, search) ⇒ <code>boolean</code>
6442
+ allows us to filter just like with SQL's LIKE operator
6443
+
6444
+ **Kind**: static method of [<code>Util</code>](#Util)
6445
+ **Returns**: <code>boolean</code> - true if testString matches search
6446
+
6447
+ | Param | Type | Description |
6448
+ | --- | --- | --- |
6449
+ | testString | <code>string</code> | field value to test |
6450
+ | search | <code>string</code> | search string in SQL LIKE format |
6451
+
6452
+ <a name="Util.fieldsLike"></a>
6453
+
6454
+ ### Util.fieldsLike(metadata, [filters]) ⇒ <code>boolean</code>
6455
+ returns true if no LIKE filter is defined or if all filters match
6456
+
6457
+ **Kind**: static method of [<code>Util</code>](#Util)
6458
+ **Returns**: <code>boolean</code> - true if no LIKE filter is defined or if all filters match
6459
+
6460
+ | Param | Type | Description |
6461
+ | --- | --- | --- |
6462
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata item |
6463
+ | [filters] | <code>object</code> | only used in recursive calls |
6464
+
6465
+ <a name="Util.capitalizeFirstLetter"></a>
6466
+
6467
+ ### Util.capitalizeFirstLetter(str) ⇒ <code>string</code>
6468
+ helper used by SOAP methods to ensure the type always uses an upper-cased first letter
6469
+
6470
+ **Kind**: static method of [<code>Util</code>](#Util)
6471
+ **Returns**: <code>string</code> - str with first letter capitalized
6472
+
6473
+ | Param | Type | Description |
6474
+ | --- | --- | --- |
6475
+ | str | <code>string</code> | string to capitalize |
6476
+
6267
6477
  <a name="MetadataTypeDefinitions"></a>
6268
6478
 
6269
6479
  ## MetadataTypeDefinitions
@@ -6327,6 +6537,7 @@ CLI helper class
6327
6537
  * [Cli](#Cli)
6328
6538
  * [.initMcdevConfig()](#Cli.initMcdevConfig) ⇒ <code>Promise.&lt;boolean&gt;</code>
6329
6539
  * [.addExtraCredential(properties)](#Cli.addExtraCredential) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
6540
+ * [.postFixKeysReretrieve(type, dependentTypes)](#Cli.postFixKeysReretrieve) ⇒ <code>Promise.&lt;boolean&gt;</code>
6330
6541
  * [.logExistingCredentials(properties)](#Cli.logExistingCredentials) ⇒ <code>void</code>
6331
6542
  * [.updateCredential(properties, credName)](#Cli.updateCredential) ⇒ <code>Promise.&lt;boolean&gt;</code>
6332
6543
  * [.getCredentialObject(properties, target, [isCredentialOnly], [allowAll])](#Cli.getCredentialObject) ⇒ <code>Promise.&lt;TYPE.BuObject&gt;</code>
@@ -6357,6 +6568,17 @@ Extends template file for properties.json
6357
6568
  | --- | --- | --- |
6358
6569
  | properties | <code>TYPE.Mcdevrc</code> | config file's json |
6359
6570
 
6571
+ <a name="Cli.postFixKeysReretrieve"></a>
6572
+
6573
+ ### Cli.postFixKeysReretrieve(type, dependentTypes) ⇒ <code>Promise.&lt;boolean&gt;</code>
6574
+ **Kind**: static method of [<code>Cli</code>](#Cli)
6575
+ **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if user wants to continue with retrieve
6576
+
6577
+ | Param | Type | Description |
6578
+ | --- | --- | --- |
6579
+ | type | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
6580
+ | dependentTypes | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | types that depent on type |
6581
+
6360
6582
  <a name="Cli.logExistingCredentials"></a>
6361
6583
 
6362
6584
  ### Cli.logExistingCredentials(properties) ⇒ <code>void</code>
@@ -6801,12 +7023,12 @@ reads file from local file system.
6801
7023
  **Kind**: static method of [<code>File</code>](#File)
6802
7024
  **Returns**: <code>Promise.&lt;string&gt;</code> \| <code>void</code> - file contents; void on error
6803
7025
 
6804
- | Param | Type | Default | Description |
6805
- | --- | --- | --- | --- |
6806
- | directory | <code>string</code> \| <code>Array.&lt;string&gt;</code> | | directory where the file is stored |
6807
- | filename | <code>string</code> | | name of the file without '.json' ending |
6808
- | filetype | <code>string</code> | | filetype suffix |
6809
- | [encoding] | <code>string</code> | <code>&quot;&#x27;utf8&#x27;&quot;</code> | read file with encoding (defaults to utf-8) |
7026
+ | Param | Type | Description |
7027
+ | --- | --- | --- |
7028
+ | directory | <code>string</code> \| <code>Array.&lt;string&gt;</code> | directory where the file is stored |
7029
+ | filename | <code>string</code> | name of the file without '.json' ending |
7030
+ | filetype | <code>string</code> | filetype suffix |
7031
+ | [encoding] | <code>string</code> | read file with encoding (defaults to utf-8) |
6810
7032
 
6811
7033
  <a name="File.readDirectories"></a>
6812
7034
 
@@ -6869,9 +7091,9 @@ Initalises Prettier formatting lib async.
6869
7091
  **Kind**: static method of [<code>File</code>](#File)
6870
7092
  **Returns**: <code>Promise.&lt;boolean&gt;</code> - success of config load
6871
7093
 
6872
- | Param | Type | Default | Description |
6873
- | --- | --- | --- | --- |
6874
- | [filetype] | <code>string</code> | <code>&quot;&#x27;html&#x27;&quot;</code> | filetype ie. JSON or SSJS |
7094
+ | Param | Type | Description |
7095
+ | --- | --- | --- |
7096
+ | [filetype] | <code>string</code> | filetype ie. JSON or SSJS |
6875
7097
 
6876
7098
  <a name="Init"></a>
6877
7099
 
@@ -6897,7 +7119,6 @@ CLI helper class
6897
7119
  * [._initMarkets()](#Init._initMarkets)
6898
7120
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
6899
7121
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
6900
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
6901
7122
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
6902
7123
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
6903
7124
 
@@ -7057,18 +7278,6 @@ wrapper around npm dependency & configuration file setup
7057
7278
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7058
7279
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7059
7280
 
7060
- <a name="Init._getMissingCredentials"></a>
7061
-
7062
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7063
- finds credentials that are set up in config but not in auth file
7064
-
7065
- **Kind**: static method of [<code>Init</code>](#Init)
7066
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7067
-
7068
- | Param | Type | Description |
7069
- | --- | --- | --- |
7070
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7071
-
7072
7281
  <a name="Init.installDependencies"></a>
7073
7282
 
7074
7283
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7119,7 +7328,6 @@ CLI helper class
7119
7328
  * [._initMarkets()](#Init._initMarkets)
7120
7329
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7121
7330
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7122
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7123
7331
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7124
7332
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7125
7333
 
@@ -7279,18 +7487,6 @@ wrapper around npm dependency & configuration file setup
7279
7487
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7280
7488
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7281
7489
 
7282
- <a name="Init._getMissingCredentials"></a>
7283
-
7284
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7285
- finds credentials that are set up in config but not in auth file
7286
-
7287
- **Kind**: static method of [<code>Init</code>](#Init)
7288
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7289
-
7290
- | Param | Type | Description |
7291
- | --- | --- | --- |
7292
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7293
-
7294
7490
  <a name="Init.installDependencies"></a>
7295
7491
 
7296
7492
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7341,7 +7537,6 @@ CLI helper class
7341
7537
  * [._initMarkets()](#Init._initMarkets)
7342
7538
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7343
7539
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7344
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7345
7540
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7346
7541
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7347
7542
 
@@ -7501,18 +7696,6 @@ wrapper around npm dependency & configuration file setup
7501
7696
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7502
7697
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7503
7698
 
7504
- <a name="Init._getMissingCredentials"></a>
7505
-
7506
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7507
- finds credentials that are set up in config but not in auth file
7508
-
7509
- **Kind**: static method of [<code>Init</code>](#Init)
7510
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7511
-
7512
- | Param | Type | Description |
7513
- | --- | --- | --- |
7514
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7515
-
7516
7699
  <a name="Init.installDependencies"></a>
7517
7700
 
7518
7701
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7563,7 +7746,6 @@ CLI helper class
7563
7746
  * [._initMarkets()](#Init._initMarkets)
7564
7747
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7565
7748
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7566
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7567
7749
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7568
7750
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7569
7751
 
@@ -7723,18 +7905,6 @@ wrapper around npm dependency & configuration file setup
7723
7905
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7724
7906
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7725
7907
 
7726
- <a name="Init._getMissingCredentials"></a>
7727
-
7728
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7729
- finds credentials that are set up in config but not in auth file
7730
-
7731
- **Kind**: static method of [<code>Init</code>](#Init)
7732
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7733
-
7734
- | Param | Type | Description |
7735
- | --- | --- | --- |
7736
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7737
-
7738
7908
  <a name="Init.installDependencies"></a>
7739
7909
 
7740
7910
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7787,6 +7957,7 @@ Util that contains logger and simple util methods
7787
7957
  * [.metadataLogger(level, type, method, payload, [source])](#Util.metadataLogger) ⇒ <code>void</code>
7788
7958
  * [.replaceByObject(str, obj)](#Util.replaceByObject) ⇒ <code>string</code> \| <code>object</code>
7789
7959
  * [.inverseGet(objs, val)](#Util.inverseGet) ⇒ <code>string</code>
7960
+ * [.getDependentMetadata(fixedType)](#Util.getDependentMetadata) ⇒ <code>Array.&lt;string&gt;</code>
7790
7961
  * [.getMetadataHierachy(metadataTypes)](#Util.getMetadataHierachy) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
7791
7962
  * [.resolveObjPath(path, obj)](#Util.resolveObjPath) ⇒ <code>any</code>
7792
7963
  * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code> \| <code>void</code>
@@ -7798,6 +7969,9 @@ Util that contains logger and simple util methods
7798
7969
  * [.getKeysString(keyArr, [isId])](#Util.getKeysString) ⇒ <code>string</code>
7799
7970
  * [.sleep(ms)](#Util.sleep) ⇒ <code>Promise.&lt;void&gt;</code>
7800
7971
  * [.getSsjs(code)](#Util.getSsjs) ⇒ <code>string</code>
7972
+ * [.stringLike(testString, search)](#Util.stringLike) ⇒ <code>boolean</code>
7973
+ * [.fieldsLike(metadata, [filters])](#Util.fieldsLike) ⇒ <code>boolean</code>
7974
+ * [.capitalizeFirstLetter(str)](#Util.capitalizeFirstLetter) ⇒ <code>string</code>
7801
7975
 
7802
7976
  <a name="Util.skipInteraction"></a>
7803
7977
 
@@ -7882,7 +8056,8 @@ used to ensure the program tells surrounding software that an unrecoverable erro
7882
8056
  <a name="Util.isTrue"></a>
7883
8057
 
7884
8058
  ### Util.isTrue(attrValue) ⇒ <code>boolean</code>
7885
- SFMC accepts multiple true values for Boolean attributes for which we are checking here
8059
+ SFMC accepts multiple true values for Boolean attributes for which we are checking here.
8060
+ The same problem occurs when evaluating boolean CLI flags
7886
8061
 
7887
8062
  **Kind**: static method of [<code>Util</code>](#Util)
7888
8063
  **Returns**: <code>boolean</code> - attribute value == true ? true : false
@@ -7894,7 +8069,8 @@ SFMC accepts multiple true values for Boolean attributes for which we are checki
7894
8069
  <a name="Util.isFalse"></a>
7895
8070
 
7896
8071
  ### Util.isFalse(attrValue) ⇒ <code>boolean</code>
7897
- SFMC accepts multiple false values for Boolean attributes for which we are checking here
8072
+ SFMC accepts multiple false values for Boolean attributes for which we are checking here.
8073
+ The same problem occurs when evaluating boolean CLI flags
7898
8074
 
7899
8075
  **Kind**: static method of [<code>Util</code>](#Util)
7900
8076
  **Returns**: <code>boolean</code> - attribute value == false ? true : false
@@ -7906,7 +8082,7 @@ SFMC accepts multiple false values for Boolean attributes for which we are check
7906
8082
  <a name="Util._isValidType"></a>
7907
8083
 
7908
8084
  ### Util.\_isValidType(selectedType, [handleOutside]) ⇒ <code>boolean</code>
7909
- helper for [retrieve](#Mcdev.retrieve), [retrieveAsTemplate](#Mcdev.retrieveAsTemplate) and [deploy](#Mcdev.deploy)
8085
+ helper for Mcdev.retrieve, Mcdev.retrieveAsTemplate and Mcdev.deploy
7910
8086
 
7911
8087
  **Kind**: static method of [<code>Util</code>](#Util)
7912
8088
  **Returns**: <code>boolean</code> - type ok or not
@@ -7943,9 +8119,9 @@ wrapper around our standard winston logging to console and logfile
7943
8119
  **Kind**: static method of [<code>Util</code>](#Util)
7944
8120
  **Returns**: <code>object</code> - initiated logger for console and file
7945
8121
 
7946
- | Param | Type | Default | Description |
7947
- | --- | --- | --- | --- |
7948
- | [noLogFile] | <code>boolean</code> | <code>false</code> | optional flag to indicate if we should log to file; CLI logs are always on |
8122
+ | Param | Type | Description |
8123
+ | --- | --- | --- |
8124
+ | [noLogFile] | <code>boolean</code> | optional flag to indicate if we should log to file; CLI logs are always on |
7949
8125
 
7950
8126
  <a name="Util.startLogger"></a>
7951
8127
 
@@ -7954,10 +8130,10 @@ initiate winston logger
7954
8130
 
7955
8131
  **Kind**: static method of [<code>Util</code>](#Util)
7956
8132
 
7957
- | Param | Type | Default | Description |
7958
- | --- | --- | --- | --- |
7959
- | [restart] | <code>boolean</code> | <code>false</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
7960
- | [noLogFile] | <code>boolean</code> | <code>false</code> | if false, logger will log to file; otherwise, only to console |
8133
+ | Param | Type | Description |
8134
+ | --- | --- | --- |
8135
+ | [restart] | <code>boolean</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
8136
+ | [noLogFile] | <code>boolean</code> | if false, logger will log to file; otherwise, only to console |
7961
8137
 
7962
8138
  <a name="Util.metadataLogger"></a>
7963
8139
 
@@ -8001,6 +8177,18 @@ get key of an object based on the first matching value
8001
8177
  | objs | <code>object</code> | object of objects to be searched |
8002
8178
  | val | <code>string</code> | value to be searched for |
8003
8179
 
8180
+ <a name="Util.getDependentMetadata"></a>
8181
+
8182
+ ### Util.getDependentMetadata(fixedType) ⇒ <code>Array.&lt;string&gt;</code>
8183
+ helper for Mcdev.fixKeys. Retrieve dependent metadata
8184
+
8185
+ **Kind**: static method of [<code>Util</code>](#Util)
8186
+ **Returns**: <code>Array.&lt;string&gt;</code> - array of types that depend on the given type
8187
+
8188
+ | Param | Type | Description |
8189
+ | --- | --- | --- |
8190
+ | fixedType | <code>string</code> | type of the metadata passed as a parameter to fixKeys function |
8191
+
8004
8192
  <a name="Util.getMetadataHierachy"></a>
8005
8193
 
8006
8194
  ### Util.getMetadataHierachy(metadataTypes) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
@@ -8130,7 +8318,7 @@ pause execution of code; useful when multiple server calls are dependent on each
8130
8318
  <a name="Util.getSsjs"></a>
8131
8319
 
8132
8320
  ### Util.getSsjs(code) ⇒ <code>string</code>
8133
- helper for [_extractCode](#Asset._extractCode) and [prepExtractedCode](#Script.prepExtractedCode) to determine if a code block is a valid SSJS block
8321
+ helper for Asset.extractCode and Script.prepExtractedCode to determine if a code block is a valid SSJS block
8134
8322
 
8135
8323
  **Kind**: static method of [<code>Util</code>](#Util)
8136
8324
  **Returns**: <code>string</code> - the SSJS code if code block is a valid SSJS block, otherwise null
@@ -8154,6 +8342,44 @@ the following is invalid:
8154
8342
  // 3
8155
8343
  </script>
8156
8344
  ```
8345
+ <a name="Util.stringLike"></a>
8346
+
8347
+ ### Util.stringLike(testString, search) ⇒ <code>boolean</code>
8348
+ allows us to filter just like with SQL's LIKE operator
8349
+
8350
+ **Kind**: static method of [<code>Util</code>](#Util)
8351
+ **Returns**: <code>boolean</code> - true if testString matches search
8352
+
8353
+ | Param | Type | Description |
8354
+ | --- | --- | --- |
8355
+ | testString | <code>string</code> | field value to test |
8356
+ | search | <code>string</code> | search string in SQL LIKE format |
8357
+
8358
+ <a name="Util.fieldsLike"></a>
8359
+
8360
+ ### Util.fieldsLike(metadata, [filters]) ⇒ <code>boolean</code>
8361
+ returns true if no LIKE filter is defined or if all filters match
8362
+
8363
+ **Kind**: static method of [<code>Util</code>](#Util)
8364
+ **Returns**: <code>boolean</code> - true if no LIKE filter is defined or if all filters match
8365
+
8366
+ | Param | Type | Description |
8367
+ | --- | --- | --- |
8368
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata item |
8369
+ | [filters] | <code>object</code> | only used in recursive calls |
8370
+
8371
+ <a name="Util.capitalizeFirstLetter"></a>
8372
+
8373
+ ### Util.capitalizeFirstLetter(str) ⇒ <code>string</code>
8374
+ helper used by SOAP methods to ensure the type always uses an upper-cased first letter
8375
+
8376
+ **Kind**: static method of [<code>Util</code>](#Util)
8377
+ **Returns**: <code>string</code> - str with first letter capitalized
8378
+
8379
+ | Param | Type | Description |
8380
+ | --- | --- | --- |
8381
+ | str | <code>string</code> | string to capitalize |
8382
+
8157
8383
  <a name="csvToArray"></a>
8158
8384
 
8159
8385
  ## csvToArray(csv) ⇒ <code>Array.&lt;string&gt;</code>
@@ -8166,6 +8392,125 @@ helper to convert CSVs into an array. if only one value was given, it's also ret
8166
8392
  | --- | --- | --- |
8167
8393
  | csv | <code>string</code> | potentially comma-separated value or null |
8168
8394
 
8395
+ <a name="Mcdev."></a>
8396
+
8397
+ ## Mcdev.(methodName, businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
8398
+ run a method across BUs
8399
+
8400
+ **Kind**: global function
8401
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of affected item keys
8402
+
8403
+ | Param | Type | Description |
8404
+ | --- | --- | --- |
8405
+ | methodName | <code>&#x27;execute&#x27;</code> \| <code>&#x27;pause&#x27;</code> \| <code>&#x27;fixKeys&#x27;</code> | what to run |
8406
+ | businessUnit | <code>string</code> | name of BU |
8407
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
8408
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8409
+
8410
+ <a name="Mcdev."></a>
8411
+
8412
+ ## Mcdev.(methodName, cred, bu, [type], keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8413
+ helper for [Mcdev.#runMethod](Mcdev.#runMethod)
8414
+
8415
+ **Kind**: global function
8416
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - list of keys that were affected
8417
+
8418
+ | Param | Type | Description |
8419
+ | --- | --- | --- |
8420
+ | methodName | <code>&#x27;execute&#x27;</code> \| <code>&#x27;pause&#x27;</code> \| <code>&#x27;fixKeys&#x27;</code> | what to run |
8421
+ | cred | <code>string</code> | name of Credential |
8422
+ | bu | <code>string</code> | name of BU |
8423
+ | [type] | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8424
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8425
+
8426
+ <a name="Mcdev."></a>
8427
+
8428
+ ## Mcdev.(selectedType, buObject) ⇒ <code>Array.&lt;string&gt;</code>
8429
+ helper for [Mcdev.#runOnBU](Mcdev.#runOnBU)
8430
+
8431
+ **Kind**: global function
8432
+ **Returns**: <code>Array.&lt;string&gt;</code> - keyArr
8433
+
8434
+ | Param | Type | Description |
8435
+ | --- | --- | --- |
8436
+ | selectedType | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8437
+ | buObject | <code>TYPE.BuObject</code> | properties for auth |
8438
+
8439
+ <a name="Mcdev."></a>
8440
+
8441
+ ## Mcdev.(cred, bu, type, [keyArr]) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8442
+ Updates the key to match the name field
8443
+
8444
+ **Kind**: global function
8445
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - list of keys that were affected
8446
+
8447
+ | Param | Type | Description |
8448
+ | --- | --- | --- |
8449
+ | cred | <code>string</code> | name of Credential |
8450
+ | bu | <code>string</code> | name of BU |
8451
+ | type | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8452
+ | [keyArr] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8453
+
8454
+ <a name="Automation."></a>
8455
+
8456
+ ## Automation.(metadata) ⇒ <code>boolean</code>
8457
+ helper for [postRetrieveTasks](#Automation.postRetrieveTasks) and [execute](#Automation.execute)
8458
+
8459
+ **Kind**: global function
8460
+ **Returns**: <code>boolean</code> - true if the automation schedule is valid
8461
+
8462
+ | Param | Type | Description |
8463
+ | --- | --- | --- |
8464
+ | metadata | <code>TYPE.AutomationItem</code> | a single automation |
8465
+
8466
+ <a name="Automation."></a>
8467
+
8468
+ ## Automation.(metadataMap, key) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8469
+ helper for [execute](#Automation.execute)
8470
+
8471
+ **Kind**: global function
8472
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8473
+
8474
+ | Param | Type | Description |
8475
+ | --- | --- | --- |
8476
+ | metadataMap | <code>TYPE.AutomationMap</code> | map of metadata |
8477
+ | key | <code>string</code> | key of the metadata |
8478
+
8479
+ <a name="Automation."></a>
8480
+
8481
+ ## Automation.(metadataEntry) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8482
+ helper for [execute](#Automation.execute)
8483
+
8484
+ **Kind**: global function
8485
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8486
+
8487
+ | Param | Type | Description |
8488
+ | --- | --- | --- |
8489
+ | metadataEntry | <code>TYPE.AutomationItem</code> | metadata object |
8490
+
8491
+ <a name="Automation."></a>
8492
+
8493
+ ## Automation.(metadata) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8494
+ helper for [pause](#Automation.pause)
8495
+
8496
+ **Kind**: global function
8497
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8498
+
8499
+ | Param | Type | Description |
8500
+ | --- | --- | --- |
8501
+ | metadata | <code>TYPE.AutomationItem</code> | automation metadata |
8502
+
8503
+ <a name="Automation."></a>
8504
+
8505
+ ## Automation.(metadata)
8506
+ helper for [preDeployTasks](#Automation.preDeployTasks) and [execute](#Automation.execute)
8507
+
8508
+ **Kind**: global function
8509
+
8510
+ | Param | Type | Description |
8511
+ | --- | --- | --- |
8512
+ | metadata | <code>TYPE.AutomationItem</code> | metadata mapped by their keyField |
8513
+
8169
8514
  <a name="Automation."></a>
8170
8515
 
8171
8516
  ## Automation.(metadataMap, key) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -8181,16 +8526,18 @@ helper for [postDeployTasks](#Automation.postDeployTasks)
8181
8526
 
8182
8527
  <a name="Automation."></a>
8183
8528
 
8184
- ## Automation.(metadataMap, originalMetadataMap, key)
8185
- helper for [postDeployTasks](postDeployTasks)
8529
+ ## Automation.(metadataMap, originalMetadataMap, key, [oldKey]) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8530
+ helper for [postDeployTasks](#Automation.postDeployTasks)
8186
8531
 
8187
8532
  **Kind**: global function
8533
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8188
8534
 
8189
8535
  | Param | Type | Description |
8190
8536
  | --- | --- | --- |
8191
8537
  | metadataMap | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
8192
8538
  | originalMetadataMap | <code>TYPE.AutomationMap</code> | metadata to be updated (contains additioanl fields) |
8193
8539
  | key | <code>string</code> | current customer key |
8540
+ | [oldKey] | <code>string</code> | old customer key before fixKey / changeKeyValue / changeKeyField |
8194
8541
 
8195
8542
  <a name="getUserName"></a>
8196
8543