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
package/jsconfig.json CHANGED
@@ -1,3 +1,7 @@
1
1
  {
2
- "include": ["lib/**/*.js", "types/**/*.js"]
2
+ "include": ["lib/**/*.js", "types/**/*.js", "test/**/*.js"],
3
+ "compilerOptions": {
4
+ "module": "es6",
5
+ "target": "esnext"
6
+ }
3
7
  }
package/lib/Builder.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../types/mcdev.d');
4
- const Util = require('./util/util');
5
- const File = require('./util/file');
6
- const config = require('./util/config');
7
- const Cli = require('./util/cli');
8
- const auth = require('./util/auth');
9
- const MetadataTypeInfo = require('./MetadataTypeInfo');
3
+ import TYPE from '../types/mcdev.d.js';
4
+ import { Util } from './util/util.js';
5
+ import File from './util/file.js';
6
+ import config from './util/config.js';
7
+ import Cli from './util/cli.js';
8
+ import auth from './util/auth.js';
9
+ import MetadataTypeInfo from './MetadataTypeInfo.js';
10
10
  // @ts-ignore
11
11
 
12
12
  /**
@@ -249,4 +249,4 @@ saved
249
249
  }
250
250
  }
251
251
 
252
- module.exports = Builder;
252
+ export default Builder;
package/lib/Deployer.js CHANGED
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../types/mcdev.d');
4
- const MetadataTypeInfo = require('./MetadataTypeInfo');
5
- const path = require('node:path');
6
- const Cli = require('./util/cli');
7
- const Util = require('./util/util');
8
- const File = require('./util/file');
9
- const config = require('./util/config');
10
- const cache = require('./util/cache');
11
- const auth = require('./util/auth');
3
+ import TYPE from '../types/mcdev.d.js';
4
+ import MetadataTypeInfo from './MetadataTypeInfo.js';
5
+ import path from 'node:path';
6
+ import Cli from './util/cli.js';
7
+ import { Util } from './util/util.js';
8
+ import File from './util/file.js';
9
+ import config from './util/config.js';
10
+ import cache from './util/cache.js';
11
+ import auth from './util/auth.js';
12
12
 
13
13
  /**
14
14
  * Reads metadata from local directory and deploys it to specified target business unit.
@@ -455,4 +455,4 @@ class Deployer {
455
455
  }
456
456
  }
457
457
 
458
- module.exports = Deployer;
458
+ export default Deployer;
@@ -1,43 +1,78 @@
1
1
  'use strict';
2
2
 
3
+ import asset from './metadataTypes/definitions/Asset.definition.js';
4
+ import attributeGroup from './metadataTypes/definitions/AttributeGroup.definition.js';
5
+ import attributeSet from './metadataTypes/definitions/AttributeSet.definition.js';
6
+ import automation from './metadataTypes/definitions/Automation.definition.js';
7
+ import campaign from './metadataTypes/definitions/Campaign.definition.js';
8
+ import contentArea from './metadataTypes/definitions/ContentArea.definition.js';
9
+ import dataExtension from './metadataTypes/definitions/DataExtension.definition.js';
10
+ import dataExtensionField from './metadataTypes/definitions/DataExtensionField.definition.js';
11
+ import dataExtensionTemplate from './metadataTypes/definitions/DataExtensionTemplate.definition.js';
12
+ import dataExtract from './metadataTypes/definitions/DataExtract.definition.js';
13
+ import dataExtractType from './metadataTypes/definitions/DataExtractType.definition.js';
14
+ import discovery from './metadataTypes/definitions/Discovery.definition.js';
15
+ import email from './metadataTypes/definitions/Email.definition.js';
16
+ import emailSend from './metadataTypes/definitions/EmailSend.definition.js';
17
+ import event from './metadataTypes/definitions/Event.definition.js';
18
+ import fileLocation from './metadataTypes/definitions/FileLocation.definition.js';
19
+ import fileTransfer from './metadataTypes/definitions/FileTransfer.definition.js';
20
+ import filter from './metadataTypes/definitions/Filter.definition.js';
21
+ import folder from './metadataTypes/definitions/Folder.definition.js';
22
+ import importFile from './metadataTypes/definitions/ImportFile.definition.js';
23
+ import journey from './metadataTypes/definitions/Journey.definition.js';
24
+ import list from './metadataTypes/definitions/List.definition.js';
25
+ import mobileCode from './metadataTypes/definitions/MobileCode.definition.js';
26
+ import mobileKeyword from './metadataTypes/definitions/MobileKeyword.definition.js';
27
+ import mobileMessage from './metadataTypes/definitions/MobileMessage.definition.js';
28
+ import query from './metadataTypes/definitions/Query.definition.js';
29
+ import role from './metadataTypes/definitions/Role.definition.js';
30
+ import script from './metadataTypes/definitions/Script.definition.js';
31
+ import sendClassification from './metadataTypes/definitions/SendClassification.definition.js';
32
+ import transactionalEmail from './metadataTypes/definitions/TransactionalEmail.definition.js';
33
+ import transactionalPush from './metadataTypes/definitions/TransactionalPush.definition.js';
34
+ import transactionalSMS from './metadataTypes/definitions/TransactionalSMS.definition.js';
35
+ import triggeredSend from './metadataTypes/definitions/TriggeredSend.definition.js';
36
+ import user from './metadataTypes/definitions/User.definition.js';
37
+ import verification from './metadataTypes/definitions/Verification.definition.js';
38
+
3
39
  /**
4
- * Provides access to all metadataType classes
40
+ * Provides access to definitions of all metadataType classes
5
41
  */
6
- const MetadataTypeDefinitions = {
7
- asset: require('./metadataTypes/definitions/Asset.definition'),
8
- attributeGroup: require('./metadataTypes/definitions/AttributeGroup.definition'),
9
- attributeSet: require('./metadataTypes/definitions/AttributeSet.definition'),
10
- automation: require('./metadataTypes/definitions/Automation.definition'),
11
- campaign: require('./metadataTypes/definitions/Campaign.definition'),
12
- contentArea: require('./metadataTypes/definitions/ContentArea.definition'),
13
- dataExtension: require('./metadataTypes/definitions/DataExtension.definition'),
14
- dataExtensionField: require('./metadataTypes/definitions/DataExtensionField.definition'),
15
- dataExtensionTemplate: require('./metadataTypes/definitions/DataExtensionTemplate.definition'),
16
- dataExtract: require('./metadataTypes/definitions/DataExtract.definition'),
17
- dataExtractType: require('./metadataTypes/definitions/DataExtractType.definition'),
18
- discovery: require('./metadataTypes/definitions/Discovery.definition'),
19
- email: require('./metadataTypes/definitions/Email.definition'),
20
- emailSend: require('./metadataTypes/definitions/EmailSend.definition'),
21
- event: require('./metadataTypes/definitions/Event.definition'),
22
- fileLocation: require('./metadataTypes/definitions/FileLocation.definition'),
23
- fileTransfer: require('./metadataTypes/definitions/FileTransfer.definition'),
24
- filter: require('./metadataTypes/definitions/Filter.definition'),
25
- folder: require('./metadataTypes/definitions/Folder.definition'),
26
- importFile: require('./metadataTypes/definitions/ImportFile.definition'),
27
- journey: require('./metadataTypes/definitions/Journey.definition'),
28
- list: require('./metadataTypes/definitions/List.definition'),
29
- mobileCode: require('./metadataTypes/definitions/MobileCode.definition'),
30
- mobileKeyword: require('./metadataTypes/definitions/MobileKeyword.definition'),
31
- mobileMessage: require('./metadataTypes/definitions/MobileMessage.definition'),
32
- query: require('./metadataTypes/definitions/Query.definition'),
33
- role: require('./metadataTypes/definitions/Role.definition'),
34
- script: require('./metadataTypes/definitions/Script.definition'),
35
- sendClassification: require('./metadataTypes/definitions/SendClassification.definition'),
36
- transactionalEmail: require('./metadataTypes/definitions/TransactionalEmail.definition'),
37
- transactionalPush: require('./metadataTypes/definitions/TransactionalPush.definition'),
38
- transactionalSMS: require('./metadataTypes/definitions/TransactionalSMS.definition'),
39
- triggeredSend: require('./metadataTypes/definitions/TriggeredSend.definition'),
40
- user: require('./metadataTypes/definitions/User.definition'),
42
+ export default {
43
+ asset,
44
+ attributeGroup,
45
+ attributeSet,
46
+ automation,
47
+ campaign,
48
+ contentArea,
49
+ dataExtension,
50
+ dataExtensionField,
51
+ dataExtensionTemplate,
52
+ dataExtract,
53
+ dataExtractType,
54
+ discovery,
55
+ email,
56
+ emailSend,
57
+ event,
58
+ fileLocation,
59
+ fileTransfer,
60
+ filter,
61
+ folder,
62
+ importFile,
63
+ journey,
64
+ list,
65
+ mobileCode,
66
+ mobileKeyword,
67
+ mobileMessage,
68
+ query,
69
+ role,
70
+ script,
71
+ sendClassification,
72
+ transactionalEmail,
73
+ transactionalPush,
74
+ transactionalSMS,
75
+ triggeredSend,
76
+ user,
77
+ verification,
41
78
  };
42
-
43
- module.exports = MetadataTypeDefinitions;
@@ -1,43 +1,78 @@
1
1
  'use strict';
2
2
 
3
+ import asset from './metadataTypes/Asset.js';
4
+ import attributeGroup from './metadataTypes/AttributeGroup.js';
5
+ import attributeSet from './metadataTypes/AttributeSet.js';
6
+ import automation from './metadataTypes/Automation.js';
7
+ import campaign from './metadataTypes/Campaign.js';
8
+ import contentArea from './metadataTypes/ContentArea.js';
9
+ import dataExtension from './metadataTypes/DataExtension.js';
10
+ import dataExtensionField from './metadataTypes/DataExtensionField.js';
11
+ import dataExtensionTemplate from './metadataTypes/DataExtensionTemplate.js';
12
+ import dataExtract from './metadataTypes/DataExtract.js';
13
+ import dataExtractType from './metadataTypes/DataExtractType.js';
14
+ import discovery from './metadataTypes/Discovery.js';
15
+ import email from './metadataTypes/Email.js';
16
+ import emailSend from './metadataTypes/EmailSend.js';
17
+ import event from './metadataTypes/Event.js';
18
+ import fileLocation from './metadataTypes/FileLocation.js';
19
+ import fileTransfer from './metadataTypes/FileTransfer.js';
20
+ import filter from './metadataTypes/Filter.js';
21
+ import folder from './metadataTypes/Folder.js';
22
+ import importFile from './metadataTypes/ImportFile.js';
23
+ import journey from './metadataTypes/Journey.js';
24
+ import list from './metadataTypes/List.js';
25
+ import mobileCode from './metadataTypes/MobileCode.js';
26
+ import mobileKeyword from './metadataTypes/MobileKeyword.js';
27
+ import mobileMessage from './metadataTypes/MobileMessage.js';
28
+ import query from './metadataTypes/Query.js';
29
+ import role from './metadataTypes/Role.js';
30
+ import script from './metadataTypes/Script.js';
31
+ import sendClassification from './metadataTypes/SendClassification.js';
32
+ import transactionalEmail from './metadataTypes/TransactionalEmail.js';
33
+ import transactionalPush from './metadataTypes/TransactionalPush.js';
34
+ import transactionalSMS from './metadataTypes/TransactionalSMS.js';
35
+ import triggeredSend from './metadataTypes/TriggeredSend.js';
36
+ import user from './metadataTypes/User.js';
37
+ import verification from './metadataTypes/Verification.js';
38
+
3
39
  /**
4
40
  * Provides access to all metadataType classes
5
41
  */
6
- const MetadataTypeInfo = {
7
- asset: require('./metadataTypes/Asset'),
8
- attributeGroup: require('./metadataTypes/AttributeGroup'),
9
- attributeSet: require('./metadataTypes/AttributeSet'),
10
- automation: require('./metadataTypes/Automation'),
11
- campaign: require('./metadataTypes/Campaign'),
12
- contentArea: require('./metadataTypes/ContentArea'),
13
- dataExtension: require('./metadataTypes/DataExtension'),
14
- dataExtensionField: require('./metadataTypes/DataExtensionField'),
15
- dataExtensionTemplate: require('./metadataTypes/DataExtensionTemplate'),
16
- dataExtract: require('./metadataTypes/DataExtract'),
17
- dataExtractType: require('./metadataTypes/DataExtractType'),
18
- discovery: require('./metadataTypes/Discovery'),
19
- email: require('./metadataTypes/Email'),
20
- emailSend: require('./metadataTypes/EmailSend'),
21
- event: require('./metadataTypes/Event'),
22
- fileLocation: require('./metadataTypes/FileLocation'),
23
- fileTransfer: require('./metadataTypes/FileTransfer'),
24
- filter: require('./metadataTypes/Filter'),
25
- folder: require('./metadataTypes/Folder'),
26
- importFile: require('./metadataTypes/ImportFile'),
27
- journey: require('./metadataTypes/Journey'),
28
- list: require('./metadataTypes/List'),
29
- mobileCode: require('./metadataTypes/MobileCode'),
30
- mobileKeyword: require('./metadataTypes/MobileKeyword'),
31
- mobileMessage: require('./metadataTypes/MobileMessage'),
32
- query: require('./metadataTypes/Query'),
33
- role: require('./metadataTypes/Role'),
34
- script: require('./metadataTypes/Script'),
35
- sendClassification: require('./metadataTypes/SendClassification'),
36
- transactionalEmail: require('./metadataTypes/TransactionalEmail'),
37
- transactionalPush: require('./metadataTypes/TransactionalPush'),
38
- transactionalSMS: require('./metadataTypes/TransactionalSMS'),
39
- triggeredSend: require('./metadataTypes/TriggeredSend'),
40
- user: require('./metadataTypes/User'),
42
+ export default {
43
+ asset,
44
+ attributeGroup,
45
+ attributeSet,
46
+ automation,
47
+ campaign,
48
+ contentArea,
49
+ dataExtension,
50
+ dataExtensionField,
51
+ dataExtensionTemplate,
52
+ dataExtract,
53
+ dataExtractType,
54
+ discovery,
55
+ email,
56
+ emailSend,
57
+ event,
58
+ fileLocation,
59
+ fileTransfer,
60
+ filter,
61
+ folder,
62
+ importFile,
63
+ journey,
64
+ list,
65
+ mobileCode,
66
+ mobileKeyword,
67
+ mobileMessage,
68
+ query,
69
+ role,
70
+ script,
71
+ sendClassification,
72
+ transactionalEmail,
73
+ transactionalPush,
74
+ transactionalSMS,
75
+ triggeredSend,
76
+ user,
77
+ verification,
41
78
  };
42
-
43
- module.exports = MetadataTypeInfo;
package/lib/Retriever.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../types/mcdev.d');
4
- const MetadataTypeInfo = require('./MetadataTypeInfo');
5
- const MetadataDefinitions = require('./MetadataTypeDefinitions');
6
- const Util = require('./util/util');
7
- const File = require('./util/file');
8
- const cache = require('./util/cache');
9
- const auth = require('./util/auth');
3
+ import TYPE from '../types/mcdev.d.js';
4
+ import MetadataTypeInfo from './MetadataTypeInfo.js';
5
+ import MetadataDefinitions from './MetadataTypeDefinitions.js';
6
+ import { Util } from './util/util.js';
7
+ import File from './util/file.js';
8
+ import cache from './util/cache.js';
9
+ import auth from './util/auth.js';
10
10
  /**
11
11
  * Retrieves metadata from a business unit and saves it to the local filesystem.
12
12
  */
@@ -210,4 +210,4 @@ class Retriever {
210
210
  }
211
211
  }
212
212
 
213
- module.exports = Retriever;
213
+ export default Retriever;
package/lib/cli.js CHANGED
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';
3
2
 
4
3
  /**
5
4
  * CLI entry for SFMC DevTools
6
5
  */
7
6
 
8
- const Util = require('./util/util');
9
- const yargs = require('yargs');
10
- const Mcdev = require('./index');
7
+ import { Util } from './util/util.js';
11
8
 
12
- yargs
9
+ import yargs from 'yargs';
10
+ import { hideBin } from 'yargs/helpers';
11
+ import Mcdev from './index.js';
12
+ yargs(hideBin(process.argv))
13
13
  .scriptName('mcdev')
14
14
  .usage('$0 <command> [options]')
15
15
  .command({
@@ -45,7 +45,7 @@ yargs
45
45
  },
46
46
  })
47
47
  .command({
48
- command: 'deploy [BU] [TYPE] [KEY] [--fromRetrieve] [--refresh]',
48
+ command: 'deploy [BU] [TYPE] [KEY]',
49
49
  aliases: ['d'],
50
50
  desc: 'deploys local metadata to a business unit',
51
51
  builder: (yargs) => {
@@ -97,6 +97,11 @@ yargs
97
97
  group: 'Options for deploy:',
98
98
  describe:
99
99
  'optionally start existing schedule instead of running item once immediately (only works for automations)',
100
+ })
101
+ .option('fixShared', {
102
+ group: 'Options for deploy:',
103
+ describe:
104
+ "optionally ensure that updates to shared DataExtensions become visible in child BU's data designer (SF Known issue W-11031095)",
100
105
  });
101
106
  },
102
107
  handler: (argv) => {
@@ -595,7 +600,7 @@ yargs
595
600
  .demandCommand(1, 'Please enter a valid command')
596
601
  .strict()
597
602
  .recommendCommands()
598
- .wrap(yargs.terminalWidth())
603
+ .wrap(yargs(hideBin(process.argv)).terminalWidth())
599
604
  .epilog(
600
605
  'Copyright 2023. Accenture. Get support at https://github.com/Accenture/sfmc-devtools/issues'
601
606
  )
package/lib/index.js CHANGED
@@ -1,26 +1,33 @@
1
1
  'use strict';
2
2
 
3
- const TYPE = require('../types/mcdev.d');
4
- const Util = require('./util/util');
5
- const auth = require('./util/auth');
6
- const File = require('./util/file');
7
- const config = require('./util/config');
8
- const Init = require('./util/init');
9
- const InitGit = require('./util/init.git');
10
- const Cli = require('./util/cli');
11
- const DevOps = require('./util/devops');
12
- const BuHelper = require('./util/businessUnit');
13
- const Builder = require('./Builder');
14
- const Deployer = require('./Deployer');
15
- const MetadataTypeInfo = require('./MetadataTypeInfo');
16
- const MetadataTypeDefinitions = require('./MetadataTypeDefinitions');
17
- const Retriever = require('./Retriever');
18
- const cache = require('./util/cache');
3
+ import TYPE from '../types/mcdev.d.js';
4
+ import { Util } from './util/util.js';
5
+ import auth from './util/auth.js';
6
+ import File from './util/file.js';
7
+ import config from './util/config.js';
8
+ import Init from './util/init.js';
9
+ import InitGit from './util/init.git.js';
10
+ import Cli from './util/cli.js';
11
+ import DevOps from './util/devops.js';
12
+ import BuHelper from './util/businessUnit.js';
13
+ import Builder from './Builder.js';
14
+ import Deployer from './Deployer.js';
15
+ import MetadataTypeInfo from './MetadataTypeInfo.js';
16
+ import MetadataTypeDefinitions from './MetadataTypeDefinitions.js';
17
+ import Retriever from './Retriever.js';
18
+ import cache from './util/cache.js';
19
19
 
20
20
  /**
21
21
  * main class
22
22
  */
23
23
  class Mcdev {
24
+ /**
25
+ * @returns {string} current version of mcdev
26
+ */
27
+ static version() {
28
+ console.log('mcdev v' + Util.packageJsonMcdev.version); // eslint-disable-line no-console
29
+ return Util.packageJsonMcdev.version;
30
+ }
24
31
  /**
25
32
  * helper method to use unattended mode when including mcdev as a package
26
33
  *
@@ -56,12 +63,14 @@ class Mcdev {
56
63
  'commitHistory',
57
64
  'execute',
58
65
  'filter',
66
+ 'fixShared',
59
67
  'fromRetrieve',
60
68
  'json',
61
69
  'like',
62
70
  'noLogColors',
63
71
  'noLogFile',
64
72
  'refresh',
73
+ '_runningTest',
65
74
  'schedule',
66
75
  'skipInteraction',
67
76
  ];
@@ -310,7 +319,8 @@ class Mcdev {
310
319
  triggeredSend: 'triggeredSendDefinition',
311
320
  user: 'accountUser',
312
321
  };
313
- Util.logger.info(`:: Retrieving ${cred}/${bu}\n`);
322
+ Util.logger.info('');
323
+ Util.logger.info(`:: Retrieving ${cred}/${bu}`);
314
324
  const retrieveTypesArr = [];
315
325
  if (selectedTypesArr) {
316
326
  for (const selectedType of Array.isArray(selectedTypesArr)
@@ -1155,4 +1165,4 @@ class Mcdev {
1155
1165
  }
1156
1166
  }
1157
1167
 
1158
- module.exports = Mcdev;
1168
+ export default Mcdev;
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
- const MetadataType = require('./MetadataType');
4
- const TYPE = require('../../types/mcdev.d');
5
- const Util = require('../util/util');
6
- const File = require('../util/file');
7
- const pLimit = require('p-limit');
8
- const cliProgress = require('cli-progress');
9
- const cache = require('../util/cache');
3
+ import MetadataType from './MetadataType.js';
4
+ import TYPE from '../../types/mcdev.d.js';
5
+ import { Util } from '../util/util.js';
6
+ import File from '../util/file.js';
7
+ import pLimit from 'p-limit';
8
+ import cliProgress from 'cli-progress';
9
+ import cache from '../util/cache.js';
10
+ import TriggeredSend from './TriggeredSend.js';
10
11
 
11
12
  /**
12
13
  * FileTransfer MetadataType
@@ -539,7 +540,6 @@ class Asset extends MetadataType {
539
540
  return;
540
541
  }
541
542
  // prep triggeredSendDefinition class
542
- const TriggeredSend = require('./TriggeredSend');
543
543
  TriggeredSend.properties = this.properties;
544
544
  TriggeredSend.buObject = this.buObject;
545
545
  TriggeredSend.client = this.client;
@@ -1632,6 +1632,8 @@ class Asset extends MetadataType {
1632
1632
  }
1633
1633
 
1634
1634
  // Assign definition to static attributes
1635
- Asset.definition = require('../MetadataTypeDefinitions').asset;
1635
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
1636
1636
 
1637
- module.exports = Asset;
1637
+ Asset.definition = MetadataTypeDefinitions.asset;
1638
+
1639
+ export default Asset;
@@ -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 MetadataType from './MetadataType.js';
4
+ import TYPE from '../../types/mcdev.d.js';
5
+ import { Util } from '../util/util.js';
6
+ import cache from '../util/cache.js';
7
7
 
8
8
  /**
9
9
  * AttributeGroup MetadataType
@@ -111,6 +111,7 @@ class AttributeGroup extends MetadataType {
111
111
  }
112
112
 
113
113
  // Assign definition to static attributes
114
- AttributeGroup.definition = require('../MetadataTypeDefinitions').attributeGroup;
114
+ import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js';
115
+ AttributeGroup.definition = MetadataTypeDefinitions.attributeGroup;
115
116
 
116
- module.exports = AttributeGroup;
117
+ export default AttributeGroup;