mcdev 4.2.1 → 4.3.1
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.
- package/.github/ISSUE_TEMPLATE/bug.yml +3 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +1 -2
- package/.github/pr-labeler.yml +3 -0
- package/.github/workflows/close_issues_on_merge.yml +18 -0
- package/.github/workflows/pr-labeler.yml +19 -0
- package/LICENSE +1 -1
- package/README.md +1 -1
- package/docs/dist/documentation.md +702 -284
- package/lib/Deployer.js +21 -15
- package/lib/Retriever.js +41 -34
- package/lib/cli.js +36 -6
- package/lib/index.js +56 -10
- package/lib/metadataTypes/AccountUser.js +17 -23
- package/lib/metadataTypes/Asset.js +36 -48
- package/lib/metadataTypes/AttributeGroup.js +1 -2
- package/lib/metadataTypes/Automation.js +75 -37
- package/lib/metadataTypes/Campaign.js +4 -3
- package/lib/metadataTypes/ContentArea.js +2 -3
- package/lib/metadataTypes/DataExtension.js +56 -47
- package/lib/metadataTypes/DataExtensionField.js +9 -12
- package/lib/metadataTypes/DataExtensionTemplate.js +2 -3
- package/lib/metadataTypes/DataExtract.js +1 -2
- package/lib/metadataTypes/DataExtractType.js +1 -2
- package/lib/metadataTypes/Discovery.js +3 -4
- package/lib/metadataTypes/Email.js +20 -6
- package/lib/metadataTypes/EmailSendDefinition.js +40 -39
- package/lib/metadataTypes/EventDefinition.js +29 -2
- package/lib/metadataTypes/FileTransfer.js +1 -2
- package/lib/metadataTypes/Filter.js +1 -2
- package/lib/metadataTypes/Folder.js +12 -14
- package/lib/metadataTypes/FtpLocation.js +1 -2
- package/lib/metadataTypes/ImportFile.js +1 -2
- package/lib/metadataTypes/Interaction.js +743 -12
- package/lib/metadataTypes/List.js +36 -33
- package/lib/metadataTypes/MetadataType.js +170 -124
- package/lib/metadataTypes/MobileCode.js +1 -2
- package/lib/metadataTypes/MobileKeyword.js +1 -2
- package/lib/metadataTypes/Query.js +15 -6
- package/lib/metadataTypes/Role.js +10 -11
- package/lib/metadataTypes/Script.js +2 -5
- package/lib/metadataTypes/SetDefinition.js +1 -2
- package/lib/metadataTypes/TransactionalMessage.js +25 -32
- package/lib/metadataTypes/TransactionalSMS.js +3 -4
- package/lib/metadataTypes/TriggeredSendDefinition.js +232 -56
- package/lib/metadataTypes/definitions/Asset.definition.js +1 -1
- package/lib/metadataTypes/definitions/Automation.definition.js +1 -1
- package/lib/metadataTypes/definitions/DataExtension.definition.js +10 -1
- package/lib/metadataTypes/definitions/Email.definition.js +1 -1
- package/lib/metadataTypes/definitions/EmailSendDefinition.definition.js +1 -1
- package/lib/metadataTypes/definitions/EventDefinition.definition.js +40 -1
- package/lib/metadataTypes/definitions/Folder.definition.js +31 -0
- package/lib/metadataTypes/definitions/ImportFile.definition.js +1 -1
- package/lib/metadataTypes/definitions/Interaction.definition.js +47 -26
- package/lib/metadataTypes/definitions/List.definition.js +1 -1
- package/lib/metadataTypes/definitions/Query.definition.js +1 -1
- package/lib/metadataTypes/definitions/Script.definition.js +1 -1
- package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +4 -3
- package/lib/metadataTypes/definitions/TransactionalPush.definition.js +4 -3
- package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +4 -3
- package/lib/metadataTypes/definitions/TriggeredSendDefinition.definition.js +10 -2
- package/lib/util/auth.js +15 -2
- package/lib/util/cli.js +4 -1
- package/lib/util/file.js +7 -3
- package/lib/util/init.js +62 -0
- package/lib/util/util.js +173 -11
- package/package.json +23 -9
- package/test/dataExtension.test.js +10 -10
- package/test/interaction.test.js +123 -0
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/interaction/testExisting_interaction.interaction-meta.json +266 -0
- package/test/mockRoot/deploy/testInstance/testBU/interaction/testNew_interaction.interaction-meta.json +266 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +0 -3
- package/test/query.test.js +8 -8
- package/test/resourceFactory.js +30 -14
- package/test/resources/1111111/dataExtension/retrieve-response.xml +26 -0
- package/test/resources/9999999/data/v1/customobjectdata/key/childBU_dataextension_test/rowset/get-response.json +13 -0
- package/test/resources/9999999/dataFolder/retrieve-response.xml +22 -0
- package/test/resources/9999999/eventDefinition/get-expected.json +34 -0
- package/test/resources/9999999/interaction/build-expected.json +260 -0
- package/test/resources/9999999/interaction/get-expected.json +264 -0
- package/test/resources/9999999/interaction/post-expected.json +264 -0
- package/test/resources/9999999/interaction/put-expected.json +264 -0
- package/test/resources/9999999/interaction/template-expected.json +260 -0
- package/test/resources/9999999/interaction/v1/EventDefinitions/get-response.json +43 -0
- package/test/resources/9999999/interaction/v1/interactions/get-response.json +222 -3
- package/test/resources/9999999/interaction/v1/interactions/key_0b76dccf-594c-b6dc-1acf-10c4493dcb84/get-response.json +219 -0
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +280 -0
- package/test/resources/9999999/interaction/v1/interactions/post-response.json +280 -0
- package/test/resources/9999999/interaction/v1/interactions/put-response.json +280 -0
- package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
- package/test/resources/9999999/query/post-expected.sql +1 -1
- package/test/resources/9999999/transactionalEmail/post-expected.json +1 -1
- package/test/resources/9999999/triggeredSendDefinition/retrieve-response.xml +68 -0
- package/test/transactionalEmail.test.js +7 -7
- package/test/transactionalPush.test.js +7 -7
- package/test/transactionalSMS.test.js +7 -7
- package/test/utils.js +50 -0
- package/types/mcdev.d.js +1 -0
|
@@ -18,21 +18,19 @@ class Folder extends MetadataType {
|
|
|
18
18
|
*
|
|
19
19
|
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
20
20
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
21
|
-
* @param {
|
|
22
|
-
* @param {void} [___] unused parameter
|
|
21
|
+
* @param {string[]} [subTypeArr] content type of folder
|
|
23
22
|
* @param {string} [key] customer key of single item to retrieve
|
|
24
|
-
* @param {string[]} [contentTypeList] content type of folder
|
|
25
23
|
* @returns {Promise} Promise
|
|
26
24
|
*/
|
|
27
|
-
static async retrieve(retrieveDir, additionalFields,
|
|
25
|
+
static async retrieve(retrieveDir, additionalFields, subTypeArr, key) {
|
|
28
26
|
if (key) {
|
|
29
27
|
Util.logger.error(`Folder.retrieve() does not support key parameter`);
|
|
30
28
|
}
|
|
31
|
-
const queryAllFolders = await this.retrieveHelper(additionalFields, true,
|
|
29
|
+
const queryAllFolders = await this.retrieveHelper(additionalFields, true, subTypeArr);
|
|
32
30
|
|
|
33
|
-
if (buObject.eid !== buObject.mid) {
|
|
31
|
+
if (this.buObject.eid !== this.buObject.mid) {
|
|
34
32
|
queryAllFolders.push(
|
|
35
|
-
...(await this.retrieveHelper(additionalFields, false,
|
|
33
|
+
...(await this.retrieveHelper(additionalFields, false, subTypeArr))
|
|
36
34
|
);
|
|
37
35
|
}
|
|
38
36
|
const sortPairs = toposort(queryAllFolders.map((a) => [a.ParentFolder.ID, a.ID]));
|
|
@@ -45,7 +43,7 @@ class Folder extends MetadataType {
|
|
|
45
43
|
}
|
|
46
44
|
// by default folders do not have an external key, we set this to ID plus EID as this will be unique
|
|
47
45
|
else if (!val.CustomerKey) {
|
|
48
|
-
val.CustomerKey = [buObject.eid, val.ID].join('-');
|
|
46
|
+
val.CustomerKey = [this.buObject.eid, val.ID].join('-');
|
|
49
47
|
}
|
|
50
48
|
// ensure name is a string and not a number (SFMC-SDK workaround)
|
|
51
49
|
val.Name = val.Name + '';
|
|
@@ -108,7 +106,7 @@ class Folder extends MetadataType {
|
|
|
108
106
|
// remove keys which are listed in other BUs and skip root
|
|
109
107
|
if (
|
|
110
108
|
idMap[id].Client?.ID &&
|
|
111
|
-
(buObject.mid == idMap[id].Client.ID ||
|
|
109
|
+
(this.buObject.mid == idMap[id].Client.ID ||
|
|
112
110
|
this.definition.folderTypesFromParent.includes(
|
|
113
111
|
idMap[id].ContentType.toLowerCase()
|
|
114
112
|
))
|
|
@@ -141,7 +139,7 @@ class Folder extends MetadataType {
|
|
|
141
139
|
}
|
|
142
140
|
}
|
|
143
141
|
if (retrieveDir) {
|
|
144
|
-
const savedMetadata = await this.saveResults(metadata, retrieveDir, buObject.mid);
|
|
142
|
+
const savedMetadata = await this.saveResults(metadata, retrieveDir, this.buObject.mid);
|
|
145
143
|
Util.logger.info(
|
|
146
144
|
`Downloaded: ${this.definition.type} (${Object.keys(savedMetadata).length})`
|
|
147
145
|
);
|
|
@@ -152,12 +150,12 @@ class Folder extends MetadataType {
|
|
|
152
150
|
/**
|
|
153
151
|
* Retrieves folder metadata for caching
|
|
154
152
|
*
|
|
155
|
-
* @param {
|
|
156
|
-
* @param {string[]} [
|
|
153
|
+
* @param {void} _ unused
|
|
154
|
+
* @param {string[]} [subTypeArr] content type of folder
|
|
157
155
|
* @returns {Promise} Promise
|
|
158
156
|
*/
|
|
159
|
-
static retrieveForCache(
|
|
160
|
-
return this.retrieve(null, null,
|
|
157
|
+
static retrieveForCache(_, subTypeArr) {
|
|
158
|
+
return this.retrieve(null, null, subTypeArr, null);
|
|
161
159
|
}
|
|
162
160
|
|
|
163
161
|
/**
|
|
@@ -16,11 +16,10 @@ class FtpLocation extends MetadataType {
|
|
|
16
16
|
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
17
17
|
* @param {void} [_] unused parameter
|
|
18
18
|
* @param {void} [__] unused parameter
|
|
19
|
-
* @param {void} [___] unused parameter
|
|
20
19
|
* @param {string} [key] customer key of single item to retrieve
|
|
21
20
|
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
|
|
22
21
|
*/
|
|
23
|
-
static retrieve(retrieveDir, _, __,
|
|
22
|
+
static retrieve(retrieveDir, _, __, key) {
|
|
24
23
|
return super.retrieveREST(retrieveDir, '/automation/v1/ftplocations/', null, null, key);
|
|
25
24
|
}
|
|
26
25
|
|
|
@@ -20,11 +20,10 @@ class ImportFile extends MetadataType {
|
|
|
20
20
|
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
21
21
|
* @param {void} [_] unused parameter
|
|
22
22
|
* @param {void} [__] unused parameter
|
|
23
|
-
* @param {void} [___] unused parameter
|
|
24
23
|
* @param {string} [key] customer key of single item to retrieve
|
|
25
24
|
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
|
|
26
25
|
*/
|
|
27
|
-
static retrieve(retrieveDir, _, __,
|
|
26
|
+
static retrieve(retrieveDir, _, __, key) {
|
|
28
27
|
return super.retrieveREST(retrieveDir, '/automation/v1/imports/', null, null, key);
|
|
29
28
|
}
|
|
30
29
|
|