mcdev 5.2.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/.eslintrc.json +1 -1
  2. package/.fork/custom-commands.json +12 -0
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +19 -0
  5. package/.github/workflows/code-test.yml +1 -1
  6. package/.github/workflows/coverage-base-update.yml +1 -1
  7. package/.github/workflows/coverage-develop-branch.yml +2 -2
  8. package/.github/workflows/coverage-main-branch.yml +2 -2
  9. package/.github/workflows/coverage.yml +2 -2
  10. package/.github/workflows/npm-publish.yml +2 -2
  11. package/.prettierrc +7 -0
  12. package/docs/dist/documentation.md +388 -482
  13. package/jsconfig.json +5 -1
  14. package/lib/Builder.js +8 -8
  15. package/lib/Deployer.js +10 -10
  16. package/lib/MetadataTypeDefinitions.js +73 -38
  17. package/lib/MetadataTypeInfo.js +72 -37
  18. package/lib/Retriever.js +8 -8
  19. package/lib/cli.js +12 -7
  20. package/lib/index.js +28 -18
  21. package/lib/metadataTypes/Asset.js +12 -10
  22. package/lib/metadataTypes/AttributeGroup.js +7 -6
  23. package/lib/metadataTypes/AttributeSet.js +126 -18
  24. package/lib/metadataTypes/Automation.js +107 -78
  25. package/lib/metadataTypes/Campaign.js +7 -6
  26. package/lib/metadataTypes/ContentArea.js +7 -6
  27. package/lib/metadataTypes/DataExtension.js +475 -78
  28. package/lib/metadataTypes/DataExtensionField.js +36 -18
  29. package/lib/metadataTypes/DataExtensionTemplate.js +5 -4
  30. package/lib/metadataTypes/DataExtract.js +8 -7
  31. package/lib/metadataTypes/DataExtractType.js +5 -4
  32. package/lib/metadataTypes/Discovery.js +6 -5
  33. package/lib/metadataTypes/Email.js +6 -5
  34. package/lib/metadataTypes/EmailSend.js +7 -6
  35. package/lib/metadataTypes/Event.js +8 -7
  36. package/lib/metadataTypes/FileLocation.js +5 -4
  37. package/lib/metadataTypes/FileTransfer.js +8 -7
  38. package/lib/metadataTypes/Filter.js +5 -4
  39. package/lib/metadataTypes/Folder.js +9 -8
  40. package/lib/metadataTypes/ImportFile.js +8 -7
  41. package/lib/metadataTypes/Journey.js +17 -9
  42. package/lib/metadataTypes/List.js +9 -8
  43. package/lib/metadataTypes/MetadataType.js +100 -34
  44. package/lib/metadataTypes/MobileCode.js +5 -4
  45. package/lib/metadataTypes/MobileKeyword.js +9 -8
  46. package/lib/metadataTypes/MobileMessage.js +8 -7
  47. package/lib/metadataTypes/Query.js +9 -8
  48. package/lib/metadataTypes/Role.js +8 -7
  49. package/lib/metadataTypes/Script.js +7 -6
  50. package/lib/metadataTypes/SendClassification.js +5 -4
  51. package/lib/metadataTypes/TransactionalEmail.js +101 -23
  52. package/lib/metadataTypes/TransactionalMessage.js +9 -7
  53. package/lib/metadataTypes/TransactionalPush.js +7 -6
  54. package/lib/metadataTypes/TransactionalSMS.js +9 -8
  55. package/lib/metadataTypes/TriggeredSend.js +15 -12
  56. package/lib/metadataTypes/User.js +8 -7
  57. package/lib/metadataTypes/Verification.js +230 -0
  58. package/lib/metadataTypes/definitions/Asset.definition.js +1 -1
  59. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +3 -3
  60. package/lib/metadataTypes/definitions/AttributeSet.definition.js +75 -22
  61. package/lib/metadataTypes/definitions/Automation.definition.js +2 -1
  62. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -1
  63. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -1
  64. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -1
  65. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -1
  66. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -1
  67. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -1
  68. package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -1
  69. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -1
  70. package/lib/metadataTypes/definitions/Email.definition.js +1 -1
  71. package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -1
  72. package/lib/metadataTypes/definitions/Event.definition.js +1 -1
  73. package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -1
  74. package/lib/metadataTypes/definitions/FileTransfer.definition.js +1 -1
  75. package/lib/metadataTypes/definitions/Filter.definition.js +1 -1
  76. package/lib/metadataTypes/definitions/Folder.definition.js +1 -1
  77. package/lib/metadataTypes/definitions/ImportFile.definition.js +1 -1
  78. package/lib/metadataTypes/definitions/Journey.definition.js +1 -1
  79. package/lib/metadataTypes/definitions/List.definition.js +1 -1
  80. package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -1
  81. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -1
  82. package/lib/metadataTypes/definitions/MobileMessage.definition.js +1 -1
  83. package/lib/metadataTypes/definitions/Query.definition.js +1 -1
  84. package/lib/metadataTypes/definitions/Role.definition.js +1 -1
  85. package/lib/metadataTypes/definitions/Script.definition.js +1 -1
  86. package/lib/metadataTypes/definitions/SendClassification.definition.js +1 -1
  87. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +20 -2
  88. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +1 -1
  89. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +1 -1
  90. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -1
  91. package/lib/metadataTypes/definitions/User.definition.js +1 -1
  92. package/lib/metadataTypes/definitions/Verification.definition.js +88 -0
  93. package/lib/retrieveChangelog.js +4 -3
  94. package/lib/util/auth.js +11 -8
  95. package/lib/util/businessUnit.js +5 -5
  96. package/lib/util/cache.js +3 -3
  97. package/lib/util/cli.js +15 -13
  98. package/lib/util/config.js +10 -7
  99. package/lib/util/devops.js +12 -11
  100. package/lib/util/file.js +15 -14
  101. package/lib/util/init.config.js +11 -9
  102. package/lib/util/init.git.js +8 -7
  103. package/lib/util/init.js +12 -12
  104. package/lib/util/init.npm.js +7 -5
  105. package/lib/util/util.js +14 -12
  106. package/package.json +32 -27
  107. package/test/general.test.js +4 -6
  108. package/test/mockRoot/.mcdevrc.json +1 -1
  109. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +59 -0
  110. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +23 -0
  111. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +4 -0
  112. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +1 -0
  113. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +3 -4
  114. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -6
  115. package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
  116. package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
  117. package/test/resourceFactory.js +52 -26
  118. package/test/resources/1111111/data/v1/customobjectdata/key/testExisting_dataExtensionShared/rowset/get-response.json +13 -0
  119. package/test/resources/1111111/dataExtension/create-expected.json +23 -0
  120. package/test/resources/1111111/dataExtension/create-response.xml +59 -0
  121. package/test/resources/1111111/dataExtension/retrieve-expected.json +55 -0
  122. package/test/resources/1111111/dataExtension/retrieve-expected.md +18 -0
  123. package/test/resources/1111111/dataExtension/retrieve-response.xml +27 -1
  124. package/test/resources/1111111/dataExtension/update-expected.json +55 -0
  125. package/test/resources/1111111/dataExtension/update-response.xml +57 -0
  126. package/test/resources/1111111/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtensionShared].[TriggerUpdate_randomNumber_]-response.xml +45 -0
  127. package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
  128. package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionSharedORDataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
  129. package/test/resources/1111111/dataExtensionField/retrieve-response.xml +98 -0
  130. package/test/resources/1111111/dataExtensionTemplate/retrieve-response.xml +303 -0
  131. package/test/resources/1111111/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +387 -0
  132. package/test/resources/1111111/dataFolder/retrieve-response.xml +353 -9
  133. package/test/resources/9999999/attributeSet/retrieve-expected.json +89 -694
  134. package/test/resources/9999999/automation/build-expected.json +4 -0
  135. package/test/resources/9999999/automation/create-expected.json +4 -0
  136. package/test/resources/9999999/automation/create-testNew_automation-expected.md +1 -0
  137. package/test/resources/9999999/automation/retrieve-expected.json +4 -0
  138. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +1 -0
  139. package/test/resources/9999999/automation/template-expected.json +4 -0
  140. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +7 -0
  141. package/test/resources/9999999/automation/v1/automations/post-response.json +7 -0
  142. package/test/resources/9999999/automation/v1/dataverifications/post-response.json +12 -0
  143. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/delete-response.json +0 -0
  144. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/get-response.json +12 -0
  145. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/patch-response.json +12 -0
  146. package/test/resources/9999999/dataExtension/build-expected.json +16 -0
  147. package/test/resources/9999999/dataExtension/delete-response.xml +42 -0
  148. package/test/resources/9999999/dataExtension/retrieve-expected.json +16 -0
  149. package/test/resources/9999999/dataExtension/retrieve-expected.md +3 -1
  150. package/test/resources/9999999/dataExtension/template-expected.json +16 -0
  151. package/test/resources/9999999/dataExtension/update-expected.json +17 -1
  152. package/test/resources/9999999/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtension].[LastName]-response.xml +44 -0
  153. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +36 -1
  154. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +36 -1
  155. package/test/resources/9999999/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +117 -0
  156. package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +43 -0
  157. package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +387 -0
  158. package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +1 -0
  159. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +1 -1
  160. package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
  161. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/delete-response.json +6 -0
  162. package/test/resources/9999999/transactionalEmail/build-expected.json +3 -7
  163. package/test/resources/9999999/transactionalEmail/get-expected.json +3 -7
  164. package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -7
  165. package/test/resources/9999999/transactionalEmail/post-expected.json +3 -7
  166. package/test/resources/9999999/transactionalEmail/template-expected.json +3 -7
  167. package/test/resources/9999999/verification/build-expected.json +11 -0
  168. package/test/resources/9999999/verification/get-expected.json +11 -0
  169. package/test/resources/9999999/verification/patch-expected.json +11 -0
  170. package/test/resources/9999999/verification/post-expected.json +11 -0
  171. package/test/resources/9999999/verification/template-expected.json +11 -0
  172. package/test/type.attributeGroup.test.js +9 -12
  173. package/test/type.attributeSet.test.js +10 -13
  174. package/test/type.automation.test.js +34 -32
  175. package/test/type.dataExtension.test.js +210 -54
  176. package/test/type.dataExtract.test.js +15 -9
  177. package/test/type.fileTransfer.test.js +15 -9
  178. package/test/type.importFile.test.js +15 -9
  179. package/test/type.journey.test.js +43 -17
  180. package/test/type.mobileKeyword.test.js +11 -11
  181. package/test/type.mobileMessage.test.js +11 -11
  182. package/test/type.query.test.js +13 -14
  183. package/test/type.script.test.js +11 -9
  184. package/test/type.transactionalEmail.test.js +17 -17
  185. package/test/type.transactionalPush.test.js +7 -10
  186. package/test/type.transactionalSMS.test.js +7 -11
  187. package/test/type.triggeredSend.test.js +11 -10
  188. package/test/type.user.test.js +6 -8
  189. package/test/type.verification.test.js +172 -0
  190. package/test/utils.js +68 -48
  191. package/types/mcdev.d.js +16 -2
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
6
 
7
7
  /**
8
8
  * DataExtensionField MetadataType
@@ -99,6 +99,10 @@ class DataExtensionField extends MetadataType {
99
99
  * @returns {Promise.<Object.<string, TYPE.DataExtensionFieldItem>>} existing fields by their original name to allow re-adding FieldType after update
100
100
  */
101
101
  static async prepareDeployColumnsOnUpdate(deployColumns, deKey) {
102
+ // create list of DE keys that had changes to their fields to be able to use it as a filter in the --fixShared logic
103
+ this.fixShared_fields ||= {};
104
+ this.fixShared_fields[deKey] ||= {};
105
+
102
106
  // get row count to know which field restrictions apply
103
107
  let hasData = false;
104
108
  try {
@@ -184,6 +188,10 @@ class DataExtensionField extends MetadataType {
184
188
  changeFound = true;
185
189
  }
186
190
  }
191
+ // share fields with fixShared logic
192
+ this.fixShared_fields[deKey][item.Name] = JSON.parse(JSON.stringify(item));
193
+ this.fixShared_fields[deKey][item.Name].FieldType = itemOld.FieldType;
194
+
187
195
  if (!changeFound) {
188
196
  deployColumns.splice(i, 1);
189
197
  Util.logger.verbose(`no change - removed field [${deKey}].[${item.Name}]`);
@@ -217,6 +225,8 @@ class DataExtensionField extends MetadataType {
217
225
  }
218
226
  // Field doesn't exist in target, therefore Remove ObjectID if present
219
227
  delete item.ObjectID;
228
+
229
+ this.fixShared_fields[deKey][item.Name] = JSON.parse(JSON.stringify(item));
220
230
  }
221
231
  if (Util.isTrue(item.IsPrimaryKey) && Util.isFalse(item.IsRequired)) {
222
232
  // applicable: with or without data
@@ -248,6 +258,7 @@ class DataExtensionField extends MetadataType {
248
258
  }` + deployColumns.map((item) => item.Name).join(', ')
249
259
  )
250
260
  );
261
+
251
262
  return existingFieldByName;
252
263
  }
253
264
 
@@ -265,24 +276,28 @@ class DataExtensionField extends MetadataType {
265
276
  * Delete a data extension from the specified business unit
266
277
  *
267
278
  * @param {string} customerKey Identifier of metadata
279
+ * @param {string} [fieldId] for programmatic deletes only one can pass in the ID directly
268
280
  * @returns {boolean} deletion success flag
269
281
  */
270
- static async deleteByKeySOAP(customerKey) {
282
+ static async deleteByKeySOAP(customerKey, fieldId) {
271
283
  const [deKey, fieldKey] = customerKey.split('.');
272
284
  customerKey = `[${deKey}].[${fieldKey}]`;
273
285
 
286
+ let fieldObjectID = fieldId;
274
287
  // get the object id
275
- const response = await this.retrieveForCache(
276
- {
277
- filter: {
278
- leftOperand: 'CustomerKey',
279
- operator: 'equals',
280
- rightOperand: customerKey,
288
+ if (!fieldObjectID) {
289
+ const response = await this.retrieveForCache(
290
+ {
291
+ filter: {
292
+ leftOperand: 'CustomerKey',
293
+ operator: 'equals',
294
+ rightOperand: customerKey,
295
+ },
281
296
  },
282
- },
283
- ['Name', 'ObjectID']
284
- );
285
- const fieldObjectID = response.metadata[customerKey].ObjectID;
297
+ ['Name', 'ObjectID']
298
+ );
299
+ fieldObjectID = response.metadata[customerKey]?.ObjectID;
300
+ }
286
301
  if (!fieldObjectID) {
287
302
  Util.logger.error(`Could not find ${customerKey} on your BU`);
288
303
  return false;
@@ -304,8 +319,10 @@ class DataExtensionField extends MetadataType {
304
319
  null
305
320
  );
306
321
 
307
- Util.logger.info(`- deleted ${this.definition.type}: ${customerKey}`);
308
- this.postDeleteTasks(customerKey);
322
+ if (!fieldId) {
323
+ Util.logger.info(` - deleted ${this.definition.type}: ${customerKey}`);
324
+ this.postDeleteTasks(customerKey);
325
+ }
309
326
  return true;
310
327
  } catch (ex) {
311
328
  const errorMsg = ex.results?.length
@@ -333,6 +350,7 @@ class DataExtensionField extends MetadataType {
333
350
  }
334
351
 
335
352
  // Assign definition to static attributes
336
- DataExtensionField.definition = require('../MetadataTypeDefinitions').dataExtensionField;
353
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
354
+ DataExtensionField.definition = MetadataTypeDefinitions.dataExtensionField;
337
355
 
338
- module.exports = DataExtensionField;
356
+ export default DataExtensionField;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
5
 
6
6
  /**
7
7
  * DataExtensionTemplate MetadataType
@@ -35,6 +35,7 @@ class DataExtensionTemplate extends MetadataType {
35
35
  }
36
36
 
37
37
  // Assign definition to static attributes
38
- DataExtensionTemplate.definition = require('../MetadataTypeDefinitions').dataExtensionTemplate;
38
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
39
+ DataExtensionTemplate.definition = MetadataTypeDefinitions.dataExtensionTemplate;
39
40
 
40
- module.exports = DataExtensionTemplate;
41
+ export default DataExtensionTemplate;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
6
- const File = require('../util/file');
7
- const cache = require('../util/cache');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
+ import File from '../util/file.js';
7
+ import cache from '../util/cache.js';
8
8
 
9
9
  /**
10
10
  * DataExtract MetadataType
@@ -160,6 +160,7 @@ class DataExtract extends MetadataType {
160
160
  }
161
161
 
162
162
  // Assign definition to static attributes
163
- DataExtract.definition = require('../MetadataTypeDefinitions').dataExtract;
163
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
164
+ DataExtract.definition = MetadataTypeDefinitions.dataExtract;
164
165
 
165
- module.exports = DataExtract;
166
+ export default DataExtract;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
5
 
6
6
  /**
7
7
  * DataExtractType MetadataType
@@ -34,6 +34,7 @@ class DataExtractType extends MetadataType {
34
34
  }
35
35
 
36
36
  // Assign definition to static attributes
37
- DataExtractType.definition = require('../MetadataTypeDefinitions').dataExtractType;
37
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
38
+ DataExtractType.definition = MetadataTypeDefinitions.dataExtractType;
38
39
 
39
- module.exports = DataExtractType;
40
+ export default DataExtractType;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
6
 
7
7
  /**
8
8
  * ImportFile MetadataType
@@ -48,6 +48,7 @@ class Discovery extends MetadataType {
48
48
  }
49
49
 
50
50
  // Assign definition to static attributes
51
- Discovery.definition = require('../MetadataTypeDefinitions').discovery;
51
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
52
+ Discovery.definition = MetadataTypeDefinitions.discovery;
52
53
 
53
- module.exports = Discovery;
54
+ export default Discovery;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
6
 
7
7
  /**
8
8
  * Email MetadataType
@@ -87,6 +87,7 @@ class Email extends MetadataType {
87
87
  }
88
88
 
89
89
  // Assign definition to static attributes
90
- Email.definition = require('../MetadataTypeDefinitions').email;
90
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
91
+ Email.definition = MetadataTypeDefinitions.email;
91
92
 
92
- module.exports = Email;
93
+ export default Email;
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
6
- const cache = require('../util/cache');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
+ import cache from '../util/cache.js';
7
7
 
8
8
  /**
9
9
  * MessageSendActivity MetadataType
@@ -292,6 +292,7 @@ class EmailSend extends MetadataType {
292
292
  }
293
293
 
294
294
  // Assign definition to static attributes
295
- EmailSend.definition = require('../MetadataTypeDefinitions').emailSend;
295
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
296
+ EmailSend.definition = MetadataTypeDefinitions.emailSend;
296
297
 
297
- module.exports = EmailSend;
298
+ export default EmailSend;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
6
- const File = require('../util/file');
7
- const cache = require('../util/cache');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
+ import File from '../util/file.js';
7
+ import cache from '../util/cache.js';
8
8
 
9
9
  /**
10
10
  * Event MetadataType
@@ -213,6 +213,7 @@ class Event extends MetadataType {
213
213
  }
214
214
 
215
215
  // Assign definition to static attributes
216
- Event.definition = require('../MetadataTypeDefinitions').event;
216
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
217
+ Event.definition = MetadataTypeDefinitions.event;
217
218
 
218
- module.exports = Event;
219
+ export default Event;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
5
 
6
6
  /**
7
7
  * ImportFile MetadataType
@@ -34,6 +34,7 @@ class FtpLocation extends MetadataType {
34
34
  }
35
35
 
36
36
  // Assign definition to static attributes
37
- FtpLocation.definition = require('../MetadataTypeDefinitions').fileLocation;
37
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
38
+ FtpLocation.definition = MetadataTypeDefinitions.fileLocation;
38
39
 
39
- module.exports = FtpLocation;
40
+ export default FtpLocation;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
6
- const File = require('../util/file');
7
- const cache = require('../util/cache');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
+ import File from '../util/file.js';
7
+ import cache from '../util/cache.js';
8
8
 
9
9
  /**
10
10
  * FileTransfer MetadataType
@@ -165,6 +165,7 @@ class FileTransfer extends MetadataType {
165
165
  }
166
166
 
167
167
  // Assign definition to static attributes
168
- FileTransfer.definition = require('../MetadataTypeDefinitions').fileTransfer;
168
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
169
+ FileTransfer.definition = MetadataTypeDefinitions.fileTransfer;
169
170
 
170
- module.exports = FileTransfer;
171
+ export default FileTransfer;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
5
 
6
6
  /**
7
7
  * Filter MetadataType
@@ -27,6 +27,7 @@ class Filter extends MetadataType {
27
27
  }
28
28
 
29
29
  // Assign definition to static attributes
30
- Filter.definition = require('../MetadataTypeDefinitions').filter;
30
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
31
+ Filter.definition = MetadataTypeDefinitions.filter;
31
32
 
32
- module.exports = Filter;
33
+ export default Filter;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const toposort = require('toposort');
6
- const Util = require('../util/util');
7
- const File = require('../util/file');
8
- const cache = require('../util/cache');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import toposort from 'toposort';
6
+ import { Util } from '../util/util.js';
7
+ import File from '../util/file.js';
8
+ import cache from '../util/cache.js';
9
9
 
10
10
  /**
11
11
  * Folder MetadataType
@@ -629,6 +629,7 @@ class Folder extends MetadataType {
629
629
  }
630
630
 
631
631
  // Assign definition to static attributes
632
- Folder.definition = require('../MetadataTypeDefinitions').folder;
632
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
633
+ Folder.definition = MetadataTypeDefinitions.folder;
633
634
 
634
- module.exports = Folder;
635
+ export default Folder;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Util = require('../util/util');
6
- const File = require('../util/file');
7
- const cache = require('../util/cache');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import { Util } from '../util/util.js';
6
+ import File from '../util/file.js';
7
+ import cache from '../util/cache.js';
8
8
 
9
9
  /**
10
10
  * ImportFile MetadataType
@@ -232,6 +232,7 @@ class ImportFile extends MetadataType {
232
232
  }
233
233
 
234
234
  // Assign definition to static attributes
235
- ImportFile.definition = require('../MetadataTypeDefinitions').importFile;
235
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
236
+ ImportFile.definition = MetadataTypeDefinitions.importFile;
236
237
 
237
- module.exports = ImportFile;
238
+ export default ImportFile;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const TransactionalEmail = require('./TransactionalEmail');
6
- const Util = require('../util/util');
7
- const cache = require('../util/cache');
8
- const File = require('../util/file');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import TransactionalEmail from './TransactionalEmail.js';
6
+ import { Util } from '../util/util.js';
7
+ import cache from '../util/cache.js';
8
+ import File from '../util/file.js';
9
9
 
10
10
  /**
11
11
  * Journey MetadataType
@@ -191,14 +191,21 @@ class Journey extends MetadataType {
191
191
  );
192
192
  const results = this.parseResponseBody(response, key);
193
193
  singleKey = results[key].id;
194
+ if (version && version > results[key].version) {
195
+ Util.logger.error(
196
+ `The chosen version (${version}) is higher than the latest known version (${results[key].version}). Please choose a lower version.`
197
+ );
198
+ return false;
199
+ }
194
200
  Util.logger.debug(`Deleting interaction ${key} via its ID ${singleKey}`);
195
201
  }
196
202
  if (!/^\d+$/.test(version)) {
197
- throw new TypeError(
203
+ Util.logger.error(
198
204
  'Version is required for deleting interactions to avoid accidental deletion of the wrong item. Please append it at the end of the key or id, separated by forward-slash. Example for deleting version 4: ' +
199
205
  key +
200
206
  '/4'
201
207
  );
208
+ return false;
202
209
  }
203
210
  Util.logger.warn(
204
211
  `Deleting Journeys via this command breaks following retrieve-by-key/id requests until you've deployed/created a new draft version! You can get still get the latest available version of your journey by retrieving all interactions on this BU.`
@@ -929,6 +936,7 @@ class Journey extends MetadataType {
929
936
  }
930
937
 
931
938
  // Assign definition to static attributes
932
- Journey.definition = require('../MetadataTypeDefinitions').journey;
939
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
940
+ Journey.definition = MetadataTypeDefinitions.journey;
933
941
 
934
- module.exports = Journey;
942
+ export default Journey;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../../types/mcdev.d');
4
- const MetadataType = require('./MetadataType');
5
- const Folder = require('./Folder');
6
- const Util = require('../util/util');
7
- const cache = require('../util/cache');
8
- const auth = require('../util/auth');
3
+ import TYPE from '../../types/mcdev.d.js';
4
+ import MetadataType from './MetadataType.js';
5
+ import Folder from './Folder.js';
6
+ import { Util } from '../util/util.js';
7
+ import cache from '../util/cache.js';
8
+ import auth from '../util/auth.js';
9
9
 
10
10
  /**
11
11
  * List MetadataType
@@ -205,6 +205,7 @@ class List extends MetadataType {
205
205
  }
206
206
  }
207
207
  // Assign definition to static attributes
208
- List.definition = require('../MetadataTypeDefinitions').list;
208
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
209
+ List.definition = MetadataTypeDefinitions.list;
209
210
 
210
- module.exports = List;
211
+ export default List;