mcdev 7.7.1 → 7.8.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 (199) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.github/workflows/coverage-base-update.yml +2 -2
  3. package/.github/workflows/coverage.yml +1 -1
  4. package/@types/lib/Builder.d.ts.map +1 -1
  5. package/@types/lib/index.d.ts +1 -0
  6. package/@types/lib/index.d.ts.map +1 -1
  7. package/@types/lib/metadataTypes/Asset.d.ts +1 -0
  8. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/AttributeGroup.d.ts +1 -0
  10. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/AttributeSet.d.ts +1 -0
  12. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/Automation.d.ts +1 -0
  14. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/Campaign.d.ts +1 -0
  16. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/ContentArea.d.ts +1 -0
  18. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/DataExtension.d.ts +1 -0
  20. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/DataExtensionField.d.ts +1 -0
  22. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +1 -0
  24. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/DataExtract.d.ts +1 -0
  26. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  27. package/@types/lib/metadataTypes/DataExtractType.d.ts +1 -0
  28. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
  29. package/@types/lib/metadataTypes/DeliveryProfile.d.ts +1 -0
  30. package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -1
  31. package/@types/lib/metadataTypes/Discovery.d.ts +1 -0
  32. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
  33. package/@types/lib/metadataTypes/DomainVerification.d.ts +1 -0
  34. package/@types/lib/metadataTypes/DomainVerification.d.ts.map +1 -1
  35. package/@types/lib/metadataTypes/Email.d.ts +1 -0
  36. package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
  37. package/@types/lib/metadataTypes/EmailSend.d.ts +1 -0
  38. package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -1
  39. package/@types/lib/metadataTypes/Event.d.ts +1 -0
  40. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  41. package/@types/lib/metadataTypes/FileLocation.d.ts +1 -0
  42. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
  43. package/@types/lib/metadataTypes/FileTransfer.d.ts +1 -0
  44. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
  45. package/@types/lib/metadataTypes/Filter.d.ts +1 -0
  46. package/@types/lib/metadataTypes/Filter.d.ts.map +1 -1
  47. package/@types/lib/metadataTypes/Folder.d.ts +1 -0
  48. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  49. package/@types/lib/metadataTypes/ImportFile.d.ts +1 -0
  50. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  51. package/@types/lib/metadataTypes/Journey.d.ts +7 -1
  52. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  53. package/@types/lib/metadataTypes/List.d.ts +1 -0
  54. package/@types/lib/metadataTypes/List.d.ts.map +1 -1
  55. package/@types/lib/metadataTypes/MetadataType.d.ts +3 -3
  56. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  57. package/@types/lib/metadataTypes/MobileCode.d.ts +1 -0
  58. package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -1
  59. package/@types/lib/metadataTypes/MobileKeyword.d.ts +1 -0
  60. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
  61. package/@types/lib/metadataTypes/MobileMessage.d.ts +1 -0
  62. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  63. package/@types/lib/metadataTypes/Query.d.ts +1 -0
  64. package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
  65. package/@types/lib/metadataTypes/Role.d.ts +1 -0
  66. package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
  67. package/@types/lib/metadataTypes/Script.d.ts +1 -0
  68. package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
  69. package/@types/lib/metadataTypes/SendClassification.d.ts +1 -0
  70. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
  71. package/@types/lib/metadataTypes/SenderProfile.d.ts +1 -0
  72. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  73. package/@types/lib/metadataTypes/TransactionalEmail.d.ts +1 -0
  74. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
  75. package/@types/lib/metadataTypes/TransactionalMessage.d.ts +1 -0
  76. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
  77. package/@types/lib/metadataTypes/TransactionalPush.d.ts +1 -0
  78. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
  79. package/@types/lib/metadataTypes/TransactionalSMS.d.ts +1 -0
  80. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
  81. package/@types/lib/metadataTypes/TriggeredSend.d.ts +1 -0
  82. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
  83. package/@types/lib/metadataTypes/User.d.ts +1 -0
  84. package/@types/lib/metadataTypes/User.d.ts.map +1 -1
  85. package/@types/lib/metadataTypes/Verification.d.ts +1 -0
  86. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
  87. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +1 -0
  88. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +1 -0
  89. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +1 -0
  90. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +1 -0
  91. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +1 -0
  92. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +1 -0
  93. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +1 -0
  94. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +1 -0
  95. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +1 -0
  96. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +1 -0
  97. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +1 -0
  98. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +1 -0
  99. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +1 -0
  100. package/@types/lib/metadataTypes/definitions/DomainVerification.definition.d.ts +1 -0
  101. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +1 -0
  102. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +1 -0
  103. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +1 -0
  104. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +1 -0
  105. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +1 -0
  106. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +1 -0
  107. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +1 -0
  108. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +1 -0
  109. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +7 -0
  110. package/@types/lib/metadataTypes/definitions/List.definition.d.ts +1 -0
  111. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +1 -0
  112. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +1 -0
  113. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +1 -0
  114. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +1 -0
  115. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +1 -0
  116. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +1 -0
  117. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +1 -0
  118. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +1 -0
  119. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +1 -0
  120. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +1 -0
  121. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +1 -0
  122. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +1 -0
  123. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +1 -0
  124. package/@types/lib/metadataTypes/definitions/User.definition.d.ts +1 -0
  125. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +1 -0
  126. package/@types/lib/util/config.d.ts.map +1 -1
  127. package/@types/lib/util/devops.d.ts +9 -0
  128. package/@types/lib/util/devops.d.ts.map +1 -1
  129. package/@types/lib/util/util.d.ts +2 -2
  130. package/@types/lib/util/util.d.ts.map +1 -1
  131. package/@types/lib/util/validations.d.ts +3 -2
  132. package/@types/lib/util/validations.d.ts.map +1 -1
  133. package/@types/types/mcdev.d.d.ts +6 -0
  134. package/@types/types/mcdev.d.d.ts.map +1 -1
  135. package/boilerplate/config.json +2 -1
  136. package/boilerplate/files/.vscode/extensions.json +1 -0
  137. package/boilerplate/forcedUpdates.json +4 -0
  138. package/lib/Builder.js +7 -0
  139. package/lib/cli.js +5 -0
  140. package/lib/index.js +57 -44
  141. package/lib/metadataTypes/Asset.js +32 -1
  142. package/lib/metadataTypes/Automation.js +5 -2
  143. package/lib/metadataTypes/DataExtension.js +5 -1
  144. package/lib/metadataTypes/Event.js +1 -0
  145. package/lib/metadataTypes/ImportFile.js +1 -0
  146. package/lib/metadataTypes/Journey.js +3 -1
  147. package/lib/metadataTypes/MetadataType.js +45 -9
  148. package/lib/metadataTypes/MobileKeyword.js +1 -0
  149. package/lib/metadataTypes/MobileMessage.js +1 -0
  150. package/lib/metadataTypes/TransactionalMessage.js +3 -0
  151. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  152. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +1 -0
  153. package/lib/metadataTypes/definitions/AttributeSet.definition.js +1 -0
  154. package/lib/metadataTypes/definitions/Automation.definition.js +1 -0
  155. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -0
  156. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -0
  157. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  158. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -0
  159. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -0
  160. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
  161. package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -0
  162. package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +1 -0
  163. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -0
  164. package/lib/metadataTypes/definitions/DomainVerification.definition.js +1 -0
  165. package/lib/metadataTypes/definitions/Email.definition.js +1 -0
  166. package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
  167. package/lib/metadataTypes/definitions/Event.definition.js +1 -0
  168. package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -0
  169. package/lib/metadataTypes/definitions/FileTransfer.definition.js +1 -0
  170. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  171. package/lib/metadataTypes/definitions/Folder.definition.js +1 -0
  172. package/lib/metadataTypes/definitions/ImportFile.definition.js +1 -0
  173. package/lib/metadataTypes/definitions/Journey.definition.js +1 -0
  174. package/lib/metadataTypes/definitions/List.definition.js +1 -0
  175. package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -0
  176. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -0
  177. package/lib/metadataTypes/definitions/MobileMessage.definition.js +1 -0
  178. package/lib/metadataTypes/definitions/Query.definition.js +1 -0
  179. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  180. package/lib/metadataTypes/definitions/Script.definition.js +1 -0
  181. package/lib/metadataTypes/definitions/SendClassification.definition.js +1 -0
  182. package/lib/metadataTypes/definitions/SenderProfile.definition.js +1 -0
  183. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +1 -0
  184. package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +1 -0
  185. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +1 -0
  186. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +1 -0
  187. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
  188. package/lib/metadataTypes/definitions/User.definition.js +1 -0
  189. package/lib/metadataTypes/definitions/Verification.definition.js +1 -0
  190. package/lib/util/config.js +3 -1
  191. package/lib/util/devops.js +131 -1
  192. package/lib/util/util.js +4 -3
  193. package/lib/util/validations.js +25 -3
  194. package/package.json +9 -9
  195. package/test/general.test.js +28 -0
  196. package/test/mockRoot/.mcdev-validations.js +40 -12
  197. package/test/mockRoot/.mcdevrc.json +23 -1
  198. package/test/utils.js +10 -38
  199. package/types/mcdev.d.js +7 -4
@@ -194,7 +194,7 @@ class MetadataType {
194
194
  }
195
195
 
196
196
  /**
197
- * helper for {@link MetadataType.updateREST}
197
+ * helper for {@link MetadataType.updateREST} and {@link MetadataType.updateSOAP}
198
198
  *
199
199
  * @param {MetadataTypeItem} metadataEntry a single metadata Entry
200
200
  * @param {object} apiResponse varies depending on the API call
@@ -1329,7 +1329,7 @@ class MetadataType {
1329
1329
  const soapType = this.definition.soapType || this.definition.type;
1330
1330
  this.removeNotUpdateableFields(metadataEntry);
1331
1331
  try {
1332
- const response = await this.client.soap.update(
1332
+ let response = await this.client.soap.update(
1333
1333
  Util.capitalizeFirstLetter(soapType),
1334
1334
  metadataEntry,
1335
1335
  null
@@ -1340,6 +1340,8 @@ class MetadataType {
1340
1340
  );
1341
1341
  }
1342
1342
  await this._postChangeKeyTasks(metadataEntry);
1343
+ response = await this.postUpdateTasks(metadataEntry, response);
1344
+
1343
1345
  return response;
1344
1346
  } catch (ex) {
1345
1347
  this._handleSOAPErrors(ex, 'updating', metadataEntry, handleOutside);
@@ -1413,7 +1415,11 @@ class MetadataType {
1413
1415
  `Downloaded: ${this.definition.type} (${Object.keys(savedMetadata).length})` +
1414
1416
  Util.getKeysString(singleRetrieve)
1415
1417
  );
1416
- await this.runDocumentOnRetrieve(singleRetrieve, savedMetadata);
1418
+ if (Object.keys(savedMetadata).length > 0) {
1419
+ await this.runDocumentOnRetrieve(singleRetrieve, savedMetadata);
1420
+ } else if (singleRetrieve) {
1421
+ this.postDeleteTasks(singleRetrieve);
1422
+ }
1417
1423
  }
1418
1424
  return { metadata: metadata, type: this.definition.type };
1419
1425
  }
@@ -1462,7 +1468,11 @@ class MetadataType {
1462
1468
  `Downloaded: ${this.definition.type} (${Object.keys(savedMetadata).length})` +
1463
1469
  Util.getKeysString(singleRetrieve)
1464
1470
  );
1465
- await this.runDocumentOnRetrieve(singleRetrieve, savedMetadata);
1471
+ if (Object.keys(savedMetadata).length > 0) {
1472
+ await this.runDocumentOnRetrieve(singleRetrieve, savedMetadata);
1473
+ } else if (singleRetrieve) {
1474
+ await this.postDeleteTasks(singleRetrieve);
1475
+ }
1466
1476
  }
1467
1477
 
1468
1478
  return {
@@ -2901,6 +2911,7 @@ class MetadataType {
2901
2911
  );
2902
2912
 
2903
2913
  // run validation rules
2914
+ const info = [];
2904
2915
  const warnings = [];
2905
2916
  let fixed = false;
2906
2917
  for (const rule of Object.keys(validationRules)) {
@@ -2909,8 +2920,25 @@ class MetadataType {
2909
2920
  validationConfig[rule] !== 'off' &&
2910
2921
  !this.definition.skipValidation?.[rule]
2911
2922
  ) {
2912
- const mode = Util.OPTIONS.fix ? 'fix' : validationConfig[rule];
2913
- const passed = await validationRules[rule].passed(mode);
2923
+ const fixable = Object.prototype.hasOwnProperty.call(validationRules[rule], 'fix');
2924
+ if (!fixable && validationConfig[rule] === 'fix') {
2925
+ // reduce from fix to error if not fixable
2926
+ validationConfig[rule] = 'error';
2927
+ }
2928
+ const mode = Util.OPTIONS.fix && fixable ? 'fix' : validationConfig[rule];
2929
+ let passed;
2930
+
2931
+ try {
2932
+ passed = await (mode === 'fix'
2933
+ ? validationRules[rule].fix()
2934
+ : validationRules[rule].passed());
2935
+ } catch (ex) {
2936
+ Util.logger.errorStack(
2937
+ ex,
2938
+ `Error while running validation rule ${rule} (check log file for details!)`
2939
+ );
2940
+ continue;
2941
+ }
2914
2942
  if (mode === 'fix') {
2915
2943
  // potentially fixed really
2916
2944
  fixed = true;
@@ -2918,12 +2946,14 @@ class MetadataType {
2918
2946
  if (!passed) {
2919
2947
  if (mode === 'fix') {
2920
2948
  if (passed === false) {
2921
- warnings.push(validationRules[rule].failedMsg);
2949
+ info.push('😎 auto-fixed: ' + validationRules[rule].failedMsg);
2922
2950
  } else if (passed === null) {
2923
2951
  // ensure this item no longer exists outside of the validation rule
2924
2952
  item = null;
2925
- warnings.push(
2926
- ` filtered item via validation rule fix: ` +
2953
+ warnings.length = 0;
2954
+ info.length = 0;
2955
+ info.push(
2956
+ `🚫 ☇ filtered item via validation rule fix: ` +
2927
2957
  validationRules[rule].failedMsg
2928
2958
  );
2929
2959
  break;
@@ -2943,6 +2973,12 @@ class MetadataType {
2943
2973
  }
2944
2974
  }
2945
2975
  }
2976
+ if (info.length) {
2977
+ Util.logger.info(
2978
+ Util.getMsgPrefix(this.definition, metadataItem) +
2979
+ `:${info.length > 1 ? '\n ·' : ''} ${info.join('\n · ')}`
2980
+ );
2981
+ }
2946
2982
  if (warnings.length) {
2947
2983
  Util.logger.warn(
2948
2984
  Util.getMsgPrefix(this.definition, metadataItem) +
@@ -51,6 +51,7 @@ class MobileKeyword extends MetadataType {
51
51
  Util.logger.info(
52
52
  `Downloaded: ${this.definition.type} (0)${Util.getKeysString(key)}`
53
53
  );
54
+ this.postDeleteTasks(key);
54
55
  } else {
55
56
  throw ex;
56
57
  }
@@ -53,6 +53,7 @@ class MobileMessage extends MetadataType {
53
53
  Util.logger.info(
54
54
  `Downloaded: ${this.definition.type} (0)${Util.getKeysString(key)}`
55
55
  );
56
+ this.postDeleteTasks(key);
56
57
  } else {
57
58
  throw ex;
58
59
  }
@@ -72,6 +72,9 @@ class TransactionalMessage extends MetadataType {
72
72
  `Downloaded: ${this.definition.type} (${Object.keys(savedMetadata).length})` +
73
73
  Util.getKeysString(key)
74
74
  );
75
+ if (!Object.keys(savedMetadata).length && key) {
76
+ this.postDeleteTasks(key);
77
+ }
75
78
  }
76
79
 
77
80
  return { metadata: savedMetadata || parsed, type: this.definition.type };
@@ -19,6 +19,7 @@ export default {
19
19
  type: 'asset',
20
20
  typeDescription: 'Assets from Content Builder grouped into subtypes.',
21
21
  typeRetrieveByDefault: ['asset', 'code', 'textfile', 'block', 'message', 'template', 'other'],
22
+ typeCdpByDefault: true,
22
23
  typeName: 'Asset-[Subtype]',
23
24
  stringifyFieldsBeforeTemplate: ['memberId', 'enterpriseId'],
24
25
  allowMatchingByName: true,
@@ -11,6 +11,7 @@ export default {
11
11
  type: 'attributeGroup',
12
12
  typeDescription: 'Groupings of Attribute Sets (Data Extensions) in Data Designer.',
13
13
  typeRetrieveByDefault: true,
14
+ typeCdpByDefault: false,
14
15
  typeName: 'Data Designer Attribute Groups',
15
16
  fields: {
16
17
  applicationID: {
@@ -35,6 +35,7 @@ export default {
35
35
  type: 'attributeSet',
36
36
  typeDescription: 'Data Extensions linked together in Attribute Groups in Data Designer.',
37
37
  typeRetrieveByDefault: true,
38
+ typeCdpByDefault: false,
38
39
  typeName: 'Data Designer Attribute Sets',
39
40
  fields: {
40
41
  applicationID: {
@@ -276,6 +276,7 @@ export default {
276
276
  typeDescription:
277
277
  'Used via Automation Studio directly - or indirectly via Journey Builder & MC Connect.',
278
278
  typeRetrieveByDefault: true,
279
+ typeCdpByDefault: true,
279
280
  typeName: 'Automation',
280
281
  customDeployTypes: ['wait'],
281
282
  manualDeployTypes: [],
@@ -17,6 +17,7 @@ export default {
17
17
  type: 'campaign',
18
18
  typeDescription: 'Way of tagging/categorizing emails, journeys and alike.',
19
19
  typeRetrieveByDefault: false,
20
+ typeCdpByDefault: false,
20
21
  typeName: 'Campaign Tag',
21
22
  fields: {
22
23
  id: {
@@ -14,6 +14,7 @@ export default {
14
14
  typeDescription:
15
15
  'DEPRECATED: Old way of saving Content Blocks; please migrate these to new Content Blocks (`Asset: ...`).',
16
16
  typeRetrieveByDefault: false,
17
+ typeCdpByDefault: false,
17
18
  typeName: 'Content Area (Classic)',
18
19
  fields: {
19
20
  // https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/contentarea.htm
@@ -108,6 +108,7 @@ export default {
108
108
  type: 'dataExtension',
109
109
  typeDescription: 'Database table schemas.',
110
110
  typeRetrieveByDefault: true,
111
+ typeCdpByDefault: true,
111
112
  typeName: 'Data Extension',
112
113
  fields: {
113
114
  CategoryID: {
@@ -12,6 +12,7 @@ export default {
12
12
  type: 'dataExtensionField',
13
13
  typeDescription: 'Internal Type: Fields for type dataExtension.',
14
14
  typeRetrieveByDefault: false,
15
+ typeCdpByDefault: false,
15
16
  typeName: 'Data Extension Field',
16
17
  fields: {
17
18
  'Client.ID': {
@@ -12,6 +12,7 @@ export default {
12
12
  type: 'dataExtensionTemplate',
13
13
  typeDescription: 'Templates used for special DE use cases like Triggered Send.',
14
14
  typeRetrieveByDefault: false,
15
+ typeCdpByDefault: false,
15
16
  typeName: 'Data Extension Template',
16
17
  fields: {
17
18
  'Client.ID': {
@@ -16,6 +16,7 @@ export default {
16
16
  type: 'dataExtract',
17
17
  typeDescription: 'Creates zipped files in your FTP directory or convert XML into CSV.',
18
18
  typeRetrieveByDefault: true,
19
+ typeCdpByDefault: true,
19
20
  typeName: 'Automation: Data Extract Activity',
20
21
  fields: {
21
22
  createdBy: {
@@ -12,6 +12,7 @@ export default {
12
12
  typeDescription:
13
13
  'Types of Data Extracts enabled for a specific business unit. This normally should not be stored.',
14
14
  typeRetrieveByDefault: false,
15
+ typeCdpByDefault: false,
15
16
  typeName: 'Data Extract Type',
16
17
  fields: {
17
18
  name: {
@@ -18,6 +18,7 @@ export default {
18
18
  typeDescription:
19
19
  'Delivery profiles specify details such as IP address, domain, header inclusion, and footer; Via API we can only check for their existence but not see any details.',
20
20
  typeRetrieveByDefault: false,
21
+ typeCdpByDefault: false,
21
22
  typeName: 'Delivery Profile',
22
23
  fields: {
23
24
  id: {
@@ -35,6 +35,7 @@ export default {
35
35
  typeDescription:
36
36
  'Description of all API endpoints accessible via REST API; only relevant for developers of Accenture SFMC DevTools.',
37
37
  typeRetrieveByDefault: false,
38
+ typeCdpByDefault: false,
38
39
  typeName: 'API Discovery',
39
40
  fields: {
40
41
  basePath: {
@@ -16,6 +16,7 @@ export default {
16
16
  type: 'domainVerification',
17
17
  typeDescription: 'Domains emails that are verified for sending',
18
18
  typeRetrieveByDefault: true,
19
+ typeCdpByDefault: false,
19
20
  typeName: 'Domain Verification',
20
21
  fields: {
21
22
  domain: {
@@ -14,6 +14,7 @@ export default {
14
14
  typeDescription:
15
15
  'DEPRECATED: Old way of saving E-Mails; please migrate these to new E-Mail (`Asset: message`).',
16
16
  typeRetrieveByDefault: false,
17
+ typeCdpByDefault: false,
17
18
  typeName: 'E-Mail (Classic)',
18
19
  fields: {
19
20
  CategoryID: {
@@ -36,6 +36,7 @@ export default {
36
36
  soapType: 'emailSendDefinition',
37
37
  typeDescription: 'Mainly used in Automations as "Send Email Activity".',
38
38
  typeRetrieveByDefault: true,
39
+ typeCdpByDefault: true,
39
40
  typeName: 'E-Mail Send Definition',
40
41
  fields: {
41
42
  Additional: {
@@ -16,6 +16,7 @@ export default {
16
16
  type: 'event',
17
17
  typeDescription: 'Used in Journeys (Interactions) to define Entry Events.',
18
18
  typeRetrieveByDefault: true,
19
+ typeCdpByDefault: true,
19
20
  typeName: 'Journey: Entry Event Definition',
20
21
  validTypes: [
21
22
  'EmailAudience', // category: Audience; DEAudience-...
@@ -16,6 +16,7 @@ export default {
16
16
  typeDescription:
17
17
  'Used for export or import of files to/from Marketing Cloud. Previously this was labeled ftpLocation.',
18
18
  typeRetrieveByDefault: true,
19
+ typeCdpByDefault: false,
19
20
  typeName: 'File Location',
20
21
  locationTypeMapping: {
21
22
  'Enhanced FTP Site Import Directory': 0,
@@ -19,6 +19,7 @@ export default {
19
19
  typeDescription:
20
20
  'Unzip, decrypt a file or move a file from secure location into FTP directory.',
21
21
  typeRetrieveByDefault: true,
22
+ typeCdpByDefault: true,
22
23
  typeName: 'Automation: File Transfer Activity',
23
24
  fields: {
24
25
  createdDate: {
@@ -17,6 +17,7 @@ export default {
17
17
  typeDescription:
18
18
  'BETA: Part of how filtered Data Extensions are created. Depends on type "FilterDefinitions".',
19
19
  typeRetrieveByDefault: false,
20
+ typeCdpByDefault: true,
20
21
  typeName: 'Automation: Filter Activity',
21
22
  fields: {
22
23
  categoryId: {
@@ -86,6 +86,7 @@ export default {
86
86
  soapType: 'DataFolder',
87
87
  typeDescription: 'Used to structure all kinds of other metadata.',
88
88
  typeRetrieveByDefault: false,
89
+ typeCdpByDefault: false,
89
90
  typeName: 'Folder',
90
91
  fields: {
91
92
  $: {
@@ -33,6 +33,7 @@ export default {
33
33
  type: 'importFile',
34
34
  typeDescription: 'Reads files in FTP directory for further processing.',
35
35
  typeRetrieveByDefault: true,
36
+ typeCdpByDefault: true,
36
37
  typeName: 'Automation: Import File Activity',
37
38
  updateTypeMapping: {
38
39
  Add: 1,
@@ -64,6 +64,7 @@ export default {
64
64
  type: 'journey',
65
65
  typeDescription: 'Journey (internally called "Interaction").',
66
66
  typeRetrieveByDefault: true,
67
+ typeCdpByDefault: true,
67
68
  typeName: 'Journey',
68
69
  priorityMapping: {
69
70
  High: 3,
@@ -12,6 +12,7 @@ export default {
12
12
  type: 'list',
13
13
  typeDescription: 'Old way of storing data. Still used for central Email Subscriber DB.',
14
14
  typeRetrieveByDefault: true,
15
+ typeCdpByDefault: false,
15
16
  typeName: 'List',
16
17
  fields: {
17
18
  'AutomatedEmail.ID': {
@@ -16,6 +16,7 @@ export default {
16
16
  type: 'mobileCode',
17
17
  typeDescription: 'Used to send SMS Messages',
18
18
  typeRetrieveByDefault: true,
19
+ typeCdpByDefault: true,
19
20
  typeName: 'Mobile Code',
20
21
  fields: {
21
22
  id: {
@@ -17,6 +17,7 @@ export default {
17
17
  type: 'mobileKeyword',
18
18
  typeDescription: 'Used for managing subscriptions for Mobile numbers in Mobile Connect',
19
19
  typeRetrieveByDefault: true,
20
+ typeCdpByDefault: true,
20
21
  typeName: 'Mobile Keyword',
21
22
  fields: {
22
23
  id: {
@@ -26,6 +26,7 @@ export default {
26
26
  typeDescription:
27
27
  'Used by Journey Builder and to send SMS from MobileConnect triggered by API or manually on-the-fly',
28
28
  typeRetrieveByDefault: true,
29
+ typeCdpByDefault: true,
29
30
  typeName: 'MobileConnect SMS',
30
31
  fields: {
31
32
  allowSingleOptin: {
@@ -28,6 +28,7 @@ export default {
28
28
  type: 'query',
29
29
  typeDescription: 'Select & transform data using SQL.',
30
30
  typeRetrieveByDefault: true,
31
+ typeCdpByDefault: true,
31
32
  typeName: 'Automation: SQL Query Activity',
32
33
  fields: {
33
34
  categoryId: {
@@ -29,6 +29,7 @@ export default {
29
29
  typeDescription:
30
30
  'User Roles define groups that are used to grant users access to SFMC systems.',
31
31
  typeRetrieveByDefault: true,
32
+ typeCdpByDefault: false,
32
33
  typeName: 'Role',
33
34
  fields: {
34
35
  CreatedDate: {
@@ -17,6 +17,7 @@ export default {
17
17
  type: 'script',
18
18
  typeDescription: 'Execute more complex tasks via SSJS or AMPScript.',
19
19
  typeRetrieveByDefault: true,
20
+ typeCdpByDefault: true,
20
21
  typeName: 'Automation: Script Activity',
21
22
  fields: {
22
23
  categoryId: {
@@ -22,6 +22,7 @@ export default {
22
22
  typeDescription:
23
23
  'Lets admins define Delivery Profile, Sender Profile and CAN-SPAM for an email job in a central location.',
24
24
  typeRetrieveByDefault: true,
25
+ typeCdpByDefault: true,
25
26
  typeName: 'Send Classification',
26
27
  sendClassificationTypeMapping: {
27
28
  Commercial: 'Marketing',
@@ -17,6 +17,7 @@ export default {
17
17
  type: 'senderProfile',
18
18
  typeDescription: 'Specifies the From information for a send in a central location',
19
19
  typeRetrieveByDefault: true,
20
+ typeCdpByDefault: true,
20
21
  typeName: 'Sender Profile',
21
22
  fields: {
22
23
  'Client.ID': {
@@ -24,6 +24,7 @@ export default {
24
24
  type: 'transactionalEmail',
25
25
  typeDescription: 'Lets you send immediate Email messages via API events',
26
26
  typeRetrieveByDefault: true,
27
+ typeCdpByDefault: false,
27
28
  typeName: 'Transactional Email',
28
29
  fields: {
29
30
  name: {
@@ -16,6 +16,7 @@ export default {
16
16
  type: '',
17
17
  typeDescription: 'here as a placeholder to have auto completion',
18
18
  typeRetrieveByDefault: false,
19
+ typeCdpByDefault: true,
19
20
  typeName: '',
20
21
  fields: {
21
22
  name: {
@@ -18,6 +18,7 @@ export default {
18
18
  type: 'transactionalPush',
19
19
  typeDescription: 'Lets you send immediate Push messages via API events',
20
20
  typeRetrieveByDefault: true,
21
+ typeCdpByDefault: true,
21
22
  typeName: 'Transactional Push',
22
23
  fields: {
23
24
  name: {
@@ -19,6 +19,7 @@ export default {
19
19
  type: 'transactionalSMS',
20
20
  typeDescription: 'Lets you send immediate SMS messages via API events',
21
21
  typeRetrieveByDefault: true,
22
+ typeCdpByDefault: true,
22
23
  typeName: 'Transactional SMS',
23
24
  fields: {
24
25
  name: {
@@ -41,6 +41,7 @@ export default {
41
41
  soapType: 'triggeredSendDefinition',
42
42
  typeDescription: 'DEPRECATED: Sends emails via API or DataExtension Event.',
43
43
  typeRetrieveByDefault: true,
44
+ typeCdpByDefault: true,
44
45
  typeName: 'Triggered Send',
45
46
  priorityMapping: {
46
47
  High: 3,
@@ -21,6 +21,7 @@ export default {
21
21
  typeDescription: 'Marketing Cloud users',
22
22
  typeName: 'User',
23
23
  typeRetrieveByDefault: false,
24
+ typeCdpByDefault: false,
24
25
  documentInOneFile: true,
25
26
  stringifyFieldsBeforeTemplate: ['DefaultBusinessUnit', 'c__AssociatedBusinessUnits'],
26
27
  fields: {
@@ -16,6 +16,7 @@ export default {
16
16
  type: 'verification',
17
17
  typeDescription: 'Check DataExtension for a row count',
18
18
  typeRetrieveByDefault: true,
19
+ typeCdpByDefault: true,
19
20
  typeName: 'Automation: Verification Activity',
20
21
  fields: {
21
22
  createdBy: {
@@ -322,7 +322,9 @@ const config = {
322
322
  // set default name for parent BU
323
323
  defaultProperties.credentials.default.businessUnits[Util.parentBuName] = 0;
324
324
  // set default retrieve values
325
- defaultProperties.metaDataTypes.retrieve = Util.getRetrieveTypeChoices();
325
+ defaultProperties.metaDataTypes.retrieve = Util.getTypeChoices('typeRetrieveByDefault');
326
+ // set default retrieve values
327
+ defaultProperties.metaDataTypes.createDeltaPkg = Util.getTypeChoices('typeCdpByDefault');
326
328
 
327
329
  return defaultProperties;
328
330
  },