mcdev 7.1.3 → 7.1.4
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 +1 -0
- package/@types/lib/Builder.d.ts.map +1 -1
- package/@types/lib/Deployer.d.ts.map +1 -1
- package/@types/lib/cli.d.ts.map +1 -1
- package/@types/lib/index.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
- package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
- package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
- package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
- package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
- package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
- package/@types/lib/metadataTypes/List.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
- package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
- package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
- package/@types/lib/metadataTypes/User.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
- package/@types/lib/util/auth.d.ts.map +1 -1
- package/@types/lib/util/cache.d.ts.map +1 -1
- package/@types/lib/util/cli.d.ts.map +1 -1
- package/@types/lib/util/config.d.ts.map +1 -1
- package/@types/lib/util/devops.d.ts.map +1 -1
- package/@types/lib/util/file.d.ts.map +1 -1
- package/@types/lib/util/init.config.d.ts.map +1 -1
- package/@types/lib/util/init.d.ts.map +1 -1
- package/@types/lib/util/init.git.d.ts.map +1 -1
- package/@types/lib/util/init.npm.d.ts.map +1 -1
- package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
- package/@types/lib/util/util.d.ts.map +1 -1
- package/@types/types/mcdev.d.d.ts.map +1 -1
- package/lib/Builder.js +4 -0
- package/lib/Deployer.js +2 -0
- package/lib/cli.js +1 -0
- package/lib/index.js +31 -0
- package/lib/metadataTypes/Asset.js +30 -0
- package/lib/metadataTypes/AttributeGroup.js +2 -0
- package/lib/metadataTypes/AttributeSet.js +3 -0
- package/lib/metadataTypes/Automation.js +15 -0
- package/lib/metadataTypes/Campaign.js +1 -0
- package/lib/metadataTypes/ContentArea.js +2 -0
- package/lib/metadataTypes/DataExtension.js +12 -0
- package/lib/metadataTypes/DataExtensionField.js +8 -0
- package/lib/metadataTypes/DataExtract.js +3 -0
- package/lib/metadataTypes/DataExtractType.js +1 -0
- package/lib/metadataTypes/Discovery.js +1 -0
- package/lib/metadataTypes/Email.js +2 -0
- package/lib/metadataTypes/Event.js +4 -0
- package/lib/metadataTypes/FileTransfer.js +1 -0
- package/lib/metadataTypes/Folder.js +14 -2
- package/lib/metadataTypes/ImportFile.js +2 -0
- package/lib/metadataTypes/Journey.js +8 -0
- package/lib/metadataTypes/List.js +2 -0
- package/lib/metadataTypes/MetadataType.js +34 -0
- package/lib/metadataTypes/MobileKeyword.js +8 -0
- package/lib/metadataTypes/MobileMessage.js +7 -0
- package/lib/metadataTypes/Query.js +9 -0
- package/lib/metadataTypes/Role.js +1 -0
- package/lib/metadataTypes/Script.js +7 -0
- package/lib/metadataTypes/SendClassification.js +2 -0
- package/lib/metadataTypes/SenderProfile.js +2 -0
- package/lib/metadataTypes/TransactionalEmail.js +3 -0
- package/lib/metadataTypes/TransactionalMessage.js +3 -0
- package/lib/metadataTypes/TransactionalPush.js +1 -0
- package/lib/metadataTypes/TransactionalSMS.js +8 -0
- package/lib/metadataTypes/TriggeredSend.js +4 -0
- package/lib/metadataTypes/User.js +10 -0
- package/lib/metadataTypes/Verification.js +3 -0
- package/lib/retrieveChangelog.js +1 -0
- package/lib/util/auth.js +3 -0
- package/lib/util/cache.js +8 -0
- package/lib/util/cli.js +8 -0
- package/lib/util/config.js +2 -0
- package/lib/util/devops.js +2 -0
- package/lib/util/file.js +12 -0
- package/lib/util/init.config.js +5 -0
- package/lib/util/init.git.js +4 -0
- package/lib/util/init.js +4 -0
- package/lib/util/init.npm.js +1 -0
- package/lib/util/replaceContentBlockReference.js +1 -0
- package/lib/util/util.js +29 -0
- package/package.json +6 -6
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/resourceFactory.js +15 -1
- package/test/resources/9999999/dataFolder/+retrieve-QAA-response.xml +387 -0
- package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=my,ParentFolderID=2-response.xml +33 -0
- package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=path,ParentFolderID=862002-response.xml +33 -0
- package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=sub,ParentFolderID=862001-response.xml +33 -0
- package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=subpath,ParentFolderID=862003-response.xml +33 -0
- package/test/resources/9999999/email/v1/category/post-response-parentCatId=290937,name=my,catType=automations.json +7 -0
- package/test/resources/9999999/email/v1/category/post-response-parentCatId=862100,name=sub,catType=automations.json +7 -0
- package/test/resources/9999999/email/v1/category/post-response-parentCatId=862101,name=path,catType=automations.json +7 -0
- package/test/resources/9999999/email/v1/category/post-response-parentCatId=862102,name=subpath,catType=automations.json +7 -0
- package/test/resources/9999999/folder-deploy/Data Extensions/my/sub/path/subpath.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/Data Extensions/my/sub/path.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/Data Extensions/my/sub.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/Data Extensions/my.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/my automations/my/sub/path/subpath.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/my automations/my/sub/path.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/my automations/my/sub.folder-meta.json +9 -0
- package/test/resources/9999999/folder-deploy/my automations/my.folder-meta.json +9 -0
- package/test/type.asset.test.js +4 -0
- package/test/type.folder.test.js +97 -0
- package/test/utils.js +44 -5
- package/types/mcdev.d.js +27 -0
- /package/test/resources/9999999/dataFolder/{retrieve-response-.xml → +retrieve-response.xml} +0 -0
|
@@ -21,6 +21,7 @@ import pLimit from 'p-limit';
|
|
|
21
21
|
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
|
|
22
22
|
* @typedef {import('../../types/mcdev.d.js').TypeKeyCombo} TypeKeyCombo
|
|
23
23
|
*/
|
|
24
|
+
|
|
24
25
|
/**
|
|
25
26
|
* @typedef {import('../../types/mcdev.d.js').AutomationItem} AutomationItem
|
|
26
27
|
* @typedef {import('../../types/mcdev.d.js').AutomationItemObj} AutomationItemObj
|
|
@@ -41,6 +42,7 @@ class Automation extends MetadataType {
|
|
|
41
42
|
static _skipNotificationRetrieve = false;
|
|
42
43
|
/** @type {AutomationMap} */
|
|
43
44
|
static _cachedMetadataMap;
|
|
45
|
+
|
|
44
46
|
/**
|
|
45
47
|
* Retrieves Metadata of Automation
|
|
46
48
|
*
|
|
@@ -376,6 +378,7 @@ class Automation extends MetadataType {
|
|
|
376
378
|
throw new Error(JSON.stringify(results));
|
|
377
379
|
}
|
|
378
380
|
}
|
|
381
|
+
|
|
379
382
|
/**
|
|
380
383
|
* helper for {@link Automation.postRetrieveTasks} and {@link Automation.execute}
|
|
381
384
|
*
|
|
@@ -399,6 +402,7 @@ class Automation extends MetadataType {
|
|
|
399
402
|
return false;
|
|
400
403
|
}
|
|
401
404
|
}
|
|
405
|
+
|
|
402
406
|
/**
|
|
403
407
|
* manages post retrieve steps
|
|
404
408
|
*
|
|
@@ -521,6 +525,7 @@ class Automation extends MetadataType {
|
|
|
521
525
|
return null;
|
|
522
526
|
}
|
|
523
527
|
}
|
|
528
|
+
|
|
524
529
|
/**
|
|
525
530
|
* a function to start query execution via API
|
|
526
531
|
*
|
|
@@ -583,6 +588,7 @@ class Automation extends MetadataType {
|
|
|
583
588
|
Util.logger.info(`Executed ${executedKeyArr.length} of ${keyArr.length} items`);
|
|
584
589
|
return executedKeyArr;
|
|
585
590
|
}
|
|
591
|
+
|
|
586
592
|
/**
|
|
587
593
|
* helper for {@link Automation.execute}
|
|
588
594
|
*
|
|
@@ -900,6 +906,7 @@ class Automation extends MetadataType {
|
|
|
900
906
|
return null;
|
|
901
907
|
}
|
|
902
908
|
}
|
|
909
|
+
|
|
903
910
|
/**
|
|
904
911
|
* Validates the automation to be sure it can be deployed.
|
|
905
912
|
* Whitelisted Activites are deployed but require configuration
|
|
@@ -946,6 +953,7 @@ class Automation extends MetadataType {
|
|
|
946
953
|
}
|
|
947
954
|
return deployable;
|
|
948
955
|
}
|
|
956
|
+
|
|
949
957
|
/**
|
|
950
958
|
* helper for {@link MetadataType.updateREST} and {@link MetadataType.updateSOAP} that removes old files after the key was changed
|
|
951
959
|
*
|
|
@@ -1013,6 +1021,7 @@ class Automation extends MetadataType {
|
|
|
1013
1021
|
await this.execute(Object.keys(metadataMap));
|
|
1014
1022
|
}
|
|
1015
1023
|
}
|
|
1024
|
+
|
|
1016
1025
|
/**
|
|
1017
1026
|
* helper for {@link Automation.postDeployTasks}
|
|
1018
1027
|
*
|
|
@@ -1344,6 +1353,7 @@ class Automation extends MetadataType {
|
|
|
1344
1353
|
// return time as a string without trailing "Z" and without miliseconds (separated by .)
|
|
1345
1354
|
return dateServer.toISOString().slice(0, -1).split('.')[0];
|
|
1346
1355
|
}
|
|
1356
|
+
|
|
1347
1357
|
/**
|
|
1348
1358
|
* Experimental: Only working for DataExtensions:
|
|
1349
1359
|
* Saves json content to a html table in the local file system. Will create the parent directory if it does not exist.
|
|
@@ -1461,6 +1471,7 @@ class Automation extends MetadataType {
|
|
|
1461
1471
|
}
|
|
1462
1472
|
return output;
|
|
1463
1473
|
}
|
|
1474
|
+
|
|
1464
1475
|
/**
|
|
1465
1476
|
* Saves json content to a html table in the local file system. Will create the parent directory if it does not exist.
|
|
1466
1477
|
* The json's first level of keys must represent the rows and the secend level the columns
|
|
@@ -1514,6 +1525,7 @@ class Automation extends MetadataType {
|
|
|
1514
1525
|
}
|
|
1515
1526
|
}
|
|
1516
1527
|
}
|
|
1528
|
+
|
|
1517
1529
|
/**
|
|
1518
1530
|
* Parses metadata into a readable Markdown/HTML format then saves it
|
|
1519
1531
|
*
|
|
@@ -1551,6 +1563,7 @@ class Automation extends MetadataType {
|
|
|
1551
1563
|
);
|
|
1552
1564
|
}
|
|
1553
1565
|
}
|
|
1566
|
+
|
|
1554
1567
|
/**
|
|
1555
1568
|
* should return only the json for all but asset, query and script that are saved as multiple files
|
|
1556
1569
|
* additionally, the documentation for dataExtension and automation should be returned
|
|
@@ -1578,6 +1591,7 @@ class Automation extends MetadataType {
|
|
|
1578
1591
|
return super.getFilesToCommit(keyArr);
|
|
1579
1592
|
}
|
|
1580
1593
|
}
|
|
1594
|
+
|
|
1581
1595
|
/**
|
|
1582
1596
|
* helper to allow us to select single metadata entries via REST
|
|
1583
1597
|
*
|
|
@@ -1610,6 +1624,7 @@ class Automation extends MetadataType {
|
|
|
1610
1624
|
}
|
|
1611
1625
|
return super.deleteByKeySOAP(customerKey, 'CustomerKey');
|
|
1612
1626
|
}
|
|
1627
|
+
|
|
1613
1628
|
/**
|
|
1614
1629
|
* clean up after deleting a metadata item
|
|
1615
1630
|
*
|
|
@@ -50,6 +50,7 @@ class ContentArea extends MetadataType {
|
|
|
50
50
|
// !dont activate `await File.initPrettier('html');` as we only want to retrieve for migration and formatting might mess with the outcome
|
|
51
51
|
return super.retrieveSOAP(retrieveDir, requestParams, key);
|
|
52
52
|
}
|
|
53
|
+
|
|
53
54
|
/**
|
|
54
55
|
* generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
|
|
55
56
|
*
|
|
@@ -76,6 +77,7 @@ class ContentArea extends MetadataType {
|
|
|
76
77
|
metadata.r__folder_Path = 'my contents';
|
|
77
78
|
}
|
|
78
79
|
}
|
|
80
|
+
|
|
79
81
|
/**
|
|
80
82
|
* parses retrieved Metadata before saving
|
|
81
83
|
*
|
|
@@ -20,6 +20,7 @@ import { checkbox } from '@inquirer/prompts';
|
|
|
20
20
|
* @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
|
|
21
21
|
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
|
|
22
22
|
*/
|
|
23
|
+
|
|
23
24
|
/**
|
|
24
25
|
* @typedef {import('../../types/mcdev.d.js').DataExtensionFieldItem} DataExtensionFieldItem
|
|
25
26
|
* @typedef {import('../../types/mcdev.d.js').DataExtensionFieldMap} DataExtensionFieldMap
|
|
@@ -35,6 +36,7 @@ import { checkbox } from '@inquirer/prompts';
|
|
|
35
36
|
class DataExtension extends MetadataType {
|
|
36
37
|
/** @type {Object.<string, DataExtensionFieldMap>} key: deKey, value: deFieldMap */
|
|
37
38
|
static oldFields;
|
|
39
|
+
|
|
38
40
|
/**
|
|
39
41
|
* Upserts dataExtensions after retrieving them from source and target to compare
|
|
40
42
|
* if create or update operation is needed.
|
|
@@ -221,6 +223,7 @@ class DataExtension extends MetadataType {
|
|
|
221
223
|
}
|
|
222
224
|
return action;
|
|
223
225
|
}
|
|
226
|
+
|
|
224
227
|
/**
|
|
225
228
|
* helper for {@link DataExtension.upsert}
|
|
226
229
|
*
|
|
@@ -283,6 +286,7 @@ class DataExtension extends MetadataType {
|
|
|
283
286
|
);
|
|
284
287
|
}
|
|
285
288
|
}
|
|
289
|
+
|
|
286
290
|
/**
|
|
287
291
|
* Updates a single dataExtension. Also updates their columns in 'dataExtension.columns'
|
|
288
292
|
*
|
|
@@ -293,6 +297,7 @@ class DataExtension extends MetadataType {
|
|
|
293
297
|
static async update(metadata, handleOutside) {
|
|
294
298
|
return super.updateSOAP(metadata, handleOutside);
|
|
295
299
|
}
|
|
300
|
+
|
|
296
301
|
/**
|
|
297
302
|
* Gets executed after deployment of metadata type
|
|
298
303
|
*
|
|
@@ -914,6 +919,7 @@ class DataExtension extends MetadataType {
|
|
|
914
919
|
const metadata = await this._retrieveAll(additionalFields);
|
|
915
920
|
return { metadata: metadata, type: 'dataExtension' };
|
|
916
921
|
}
|
|
922
|
+
|
|
917
923
|
/**
|
|
918
924
|
* manages post retrieve steps
|
|
919
925
|
*
|
|
@@ -1023,6 +1029,7 @@ class DataExtension extends MetadataType {
|
|
|
1023
1029
|
const response = await DataExtensionField.retrieveForCacheDE(options, additionalFields);
|
|
1024
1030
|
return response.metadata;
|
|
1025
1031
|
}
|
|
1032
|
+
|
|
1026
1033
|
/**
|
|
1027
1034
|
* helps retrieving fields during templating and deploy where we dont want the full list
|
|
1028
1035
|
*
|
|
@@ -1054,6 +1061,7 @@ class DataExtension extends MetadataType {
|
|
|
1054
1061
|
|
|
1055
1062
|
metadata[customerKey].Fields = fieldArr;
|
|
1056
1063
|
}
|
|
1064
|
+
|
|
1057
1065
|
/**
|
|
1058
1066
|
* helper for {@link MetadataType.updateREST} and {@link MetadataType.updateSOAP} that removes old files after the key was changed
|
|
1059
1067
|
*
|
|
@@ -1349,6 +1357,7 @@ class DataExtension extends MetadataType {
|
|
|
1349
1357
|
Util.logger.error(`DataExtension.writeDeToX(${mode}):: error | ` + ex.message);
|
|
1350
1358
|
}
|
|
1351
1359
|
}
|
|
1360
|
+
|
|
1352
1361
|
/**
|
|
1353
1362
|
* Parses metadata into a readable Markdown/HTML format then saves it
|
|
1354
1363
|
*
|
|
@@ -1459,6 +1468,7 @@ class DataExtension extends MetadataType {
|
|
|
1459
1468
|
static async retrieveForCache() {
|
|
1460
1469
|
return this.retrieve(null, ['ObjectID', 'CustomerKey', 'Name']);
|
|
1461
1470
|
}
|
|
1471
|
+
|
|
1462
1472
|
/**
|
|
1463
1473
|
* Retrieves dataExtension metadata in template format.
|
|
1464
1474
|
*
|
|
@@ -1514,6 +1524,7 @@ class DataExtension extends MetadataType {
|
|
|
1514
1524
|
|
|
1515
1525
|
return { metadata: metadata[customerKey], type: 'dataExtension' };
|
|
1516
1526
|
}
|
|
1527
|
+
|
|
1517
1528
|
/**
|
|
1518
1529
|
* dataExtension logic that retrieves the folder path from cache and updates the given metadata with it after retrieve
|
|
1519
1530
|
* it also sets the content type which is basically the subtype
|
|
@@ -1593,6 +1604,7 @@ class DataExtension extends MetadataType {
|
|
|
1593
1604
|
}
|
|
1594
1605
|
return metadata;
|
|
1595
1606
|
}
|
|
1607
|
+
|
|
1596
1608
|
/**
|
|
1597
1609
|
* should return only the json for all but asset, query and script that are saved as multiple files
|
|
1598
1610
|
* additionally, the documentation for dataExtension and automation should be returned
|
|
@@ -15,10 +15,12 @@ import { Util } from '../util/util.js';
|
|
|
15
15
|
* @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
|
|
16
16
|
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
/**
|
|
19
20
|
* @typedef {import('../../types/mcdev.d.js').DataExtensionFieldMap} DataExtensionFieldMap
|
|
20
21
|
* @typedef {import('../../types/mcdev.d.js').DataExtensionFieldItem} DataExtensionFieldItem
|
|
21
22
|
*/
|
|
23
|
+
|
|
22
24
|
/**
|
|
23
25
|
* DataExtensionField MetadataType
|
|
24
26
|
*
|
|
@@ -26,6 +28,7 @@ import { Util } from '../util/util.js';
|
|
|
26
28
|
*/
|
|
27
29
|
class DataExtensionField extends MetadataType {
|
|
28
30
|
static fixShared_fields;
|
|
31
|
+
|
|
29
32
|
/**
|
|
30
33
|
* Retrieves all records and saves it to disk
|
|
31
34
|
*
|
|
@@ -36,6 +39,7 @@ class DataExtensionField extends MetadataType {
|
|
|
36
39
|
static async retrieve(retrieveDir, additionalFields) {
|
|
37
40
|
return super.retrieveSOAP(retrieveDir, null, null, additionalFields);
|
|
38
41
|
}
|
|
42
|
+
|
|
39
43
|
/**
|
|
40
44
|
* Retrieves all records for caching
|
|
41
45
|
*
|
|
@@ -46,6 +50,7 @@ class DataExtensionField extends MetadataType {
|
|
|
46
50
|
static async retrieveForCacheDE(requestParams, additionalFields) {
|
|
47
51
|
return super.retrieveSOAP(null, requestParams, null, additionalFields);
|
|
48
52
|
}
|
|
53
|
+
|
|
49
54
|
/**
|
|
50
55
|
* helper for DataExtension.retrieveFieldsForSingleDe that sorts the fields into an array
|
|
51
56
|
*
|
|
@@ -71,6 +76,7 @@ class DataExtensionField extends MetadataType {
|
|
|
71
76
|
static sortDeFields(a, b) {
|
|
72
77
|
return a.Ordinal - b.Ordinal;
|
|
73
78
|
}
|
|
79
|
+
|
|
74
80
|
/**
|
|
75
81
|
* manages post retrieve steps; only used by DataExtension class
|
|
76
82
|
*
|
|
@@ -91,6 +97,7 @@ class DataExtensionField extends MetadataType {
|
|
|
91
97
|
}
|
|
92
98
|
return metadata;
|
|
93
99
|
}
|
|
100
|
+
|
|
94
101
|
/**
|
|
95
102
|
* Mofifies passed deployColumns for update by mapping ObjectID to their target column's values.
|
|
96
103
|
* Removes FieldType field if its the same in deploy and target column, because it results in an error even if its of the same type
|
|
@@ -333,6 +340,7 @@ class DataExtensionField extends MetadataType {
|
|
|
333
340
|
return false;
|
|
334
341
|
}
|
|
335
342
|
}
|
|
343
|
+
|
|
336
344
|
/**
|
|
337
345
|
* clean up after deleting a metadata item
|
|
338
346
|
*
|
|
@@ -37,6 +37,7 @@ class DataExtract extends MetadataType {
|
|
|
37
37
|
static async retrieve(retrieveDir, _, __, key) {
|
|
38
38
|
return super.retrieveREST(retrieveDir, '/automation/v1/dataextracts/', null, key);
|
|
39
39
|
}
|
|
40
|
+
|
|
40
41
|
/**
|
|
41
42
|
* Retrieves Metadata of Data Extract Activity for caching
|
|
42
43
|
*
|
|
@@ -137,6 +138,7 @@ class DataExtract extends MetadataType {
|
|
|
137
138
|
delete metadata.r__dataExtractType_name;
|
|
138
139
|
return metadata;
|
|
139
140
|
}
|
|
141
|
+
|
|
140
142
|
/**
|
|
141
143
|
* manages post retrieve steps
|
|
142
144
|
*
|
|
@@ -159,6 +161,7 @@ class DataExtract extends MetadataType {
|
|
|
159
161
|
}
|
|
160
162
|
return structuredClone(metadata);
|
|
161
163
|
}
|
|
164
|
+
|
|
162
165
|
/**
|
|
163
166
|
* helper to allow us to select single metadata entries via REST
|
|
164
167
|
*
|
|
@@ -46,6 +46,7 @@ class Email extends MetadataType {
|
|
|
46
46
|
// !dont activate `await File.initPrettier('html');` as we only want to retrieve for migration and formatting might mess with the outcome
|
|
47
47
|
return super.retrieveSOAP(retrieveDir, requestParams, key);
|
|
48
48
|
}
|
|
49
|
+
|
|
49
50
|
/**
|
|
50
51
|
* Helper for writing Metadata to disk, used for Retrieve and deploy
|
|
51
52
|
*
|
|
@@ -64,6 +65,7 @@ class Email extends MetadataType {
|
|
|
64
65
|
}
|
|
65
66
|
return super.saveResults(results, retrieveDir, overrideType, templateVariables);
|
|
66
67
|
}
|
|
68
|
+
|
|
67
69
|
/**
|
|
68
70
|
* manages post retrieve steps
|
|
69
71
|
*
|
|
@@ -26,6 +26,7 @@ import deepEqual from 'deep-equal';
|
|
|
26
26
|
*/
|
|
27
27
|
class Event extends MetadataType {
|
|
28
28
|
static reCacheDataExtensions = [];
|
|
29
|
+
|
|
29
30
|
/**
|
|
30
31
|
* Retrieves Metadata of Event Definition.
|
|
31
32
|
* Endpoint /interaction/v1/eventDefinitions return all Event Definitions with all details.
|
|
@@ -141,6 +142,7 @@ class Event extends MetadataType {
|
|
|
141
142
|
false
|
|
142
143
|
);
|
|
143
144
|
}
|
|
145
|
+
|
|
144
146
|
/**
|
|
145
147
|
* Deploys metadata - merely kept here to be able to print {@link Util.logBeta} once per deploy
|
|
146
148
|
*
|
|
@@ -215,6 +217,7 @@ class Event extends MetadataType {
|
|
|
215
217
|
|
|
216
218
|
return metadata;
|
|
217
219
|
}
|
|
220
|
+
|
|
218
221
|
/**
|
|
219
222
|
* helper for {@link MetadataType.upsert}
|
|
220
223
|
*
|
|
@@ -320,6 +323,7 @@ class Event extends MetadataType {
|
|
|
320
323
|
}
|
|
321
324
|
return createOrUpdateAction;
|
|
322
325
|
}
|
|
326
|
+
|
|
323
327
|
/**
|
|
324
328
|
* Gets executed after deployment of metadata type
|
|
325
329
|
*
|
|
@@ -381,7 +381,13 @@ class Folder extends MetadataType {
|
|
|
381
381
|
const response = await super.createREST(restPayload, '/email/v1/category', true);
|
|
382
382
|
if (response?.objectId) {
|
|
383
383
|
// convert the response to the same format as the SOAP response
|
|
384
|
+
|
|
385
|
+
// set the new folder ID
|
|
384
386
|
metadataEntry.ID = response.categoryId;
|
|
387
|
+
// set the client ID to ensure we can find the newly created folders as parents for folders created afterwards inside of it
|
|
388
|
+
metadataEntry.Client = {
|
|
389
|
+
ID: metadataEntry.Client?.ID || this.buObject.mid,
|
|
390
|
+
};
|
|
385
391
|
// the following is a bit of a hack to make the response look like the SOAP response; not sure if we actually need that anywhere like this --> future developers feel free to double check
|
|
386
392
|
const returnObject = {
|
|
387
393
|
Results: [
|
|
@@ -399,9 +405,13 @@ class Folder extends MetadataType {
|
|
|
399
405
|
} else {
|
|
400
406
|
const response = await super.createSOAP(metadataEntry, true);
|
|
401
407
|
if (response) {
|
|
408
|
+
// set the client ID to ensure we can find the newly created folders as parents for folders created afterwards inside of it
|
|
409
|
+
metadataEntry.Client = {
|
|
410
|
+
ID: metadataEntry.Client?.ID || this.buObject.mid,
|
|
411
|
+
};
|
|
412
|
+
// set the new folder ID
|
|
413
|
+
metadataEntry.ID = response.Results[0].NewID;
|
|
402
414
|
response.Results[0].Object = metadataEntry;
|
|
403
|
-
response.Results[0].Object.ID = response.Results[0].NewID;
|
|
404
|
-
response.Results[0].Object.CustomerKey = metadataEntry.CustomerKey;
|
|
405
415
|
delete response.Results[0].Object.$;
|
|
406
416
|
|
|
407
417
|
Util.logger.info(` - created folder: ${path}`);
|
|
@@ -618,6 +628,7 @@ class Folder extends MetadataType {
|
|
|
618
628
|
);
|
|
619
629
|
return response.Results;
|
|
620
630
|
}
|
|
631
|
+
|
|
621
632
|
/**
|
|
622
633
|
* Gets executed after retreive of metadata type
|
|
623
634
|
*
|
|
@@ -627,6 +638,7 @@ class Folder extends MetadataType {
|
|
|
627
638
|
static postRetrieveTasks(metadata) {
|
|
628
639
|
return structuredClone(metadata);
|
|
629
640
|
}
|
|
641
|
+
|
|
630
642
|
/**
|
|
631
643
|
* Helper for writing Metadata to disk, used for Retrieve and deploy
|
|
632
644
|
*
|
|
@@ -142,6 +142,7 @@ class ImportFile extends MetadataType {
|
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
+
|
|
145
146
|
/**
|
|
146
147
|
* helper to allow us to select single metadata entries via REST
|
|
147
148
|
*
|
|
@@ -188,6 +189,7 @@ class ImportFile extends MetadataType {
|
|
|
188
189
|
'/automation/v1/imports/' + importFile.importDefinitionId
|
|
189
190
|
);
|
|
190
191
|
}
|
|
192
|
+
|
|
191
193
|
/**
|
|
192
194
|
* Deploys metadata
|
|
193
195
|
*
|
|
@@ -196,6 +196,7 @@ class Journey extends MetadataType {
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
+
|
|
199
200
|
/**
|
|
200
201
|
* Delete a metadata item from the specified business unit
|
|
201
202
|
*
|
|
@@ -259,6 +260,7 @@ class Journey extends MetadataType {
|
|
|
259
260
|
false
|
|
260
261
|
);
|
|
261
262
|
}
|
|
263
|
+
|
|
262
264
|
/**
|
|
263
265
|
* Deploys metadata - merely kept here to be able to print {@link Util.logBeta} once per deploy
|
|
264
266
|
*
|
|
@@ -295,6 +297,7 @@ class Journey extends MetadataType {
|
|
|
295
297
|
static create(metadata) {
|
|
296
298
|
return super.createREST(metadata, '/interaction/v1/interactions/');
|
|
297
299
|
}
|
|
300
|
+
|
|
298
301
|
/**
|
|
299
302
|
* Helper for writing Metadata to disk, used for Retrieve and deploy
|
|
300
303
|
*
|
|
@@ -518,6 +521,7 @@ class Journey extends MetadataType {
|
|
|
518
521
|
|
|
519
522
|
return metadata;
|
|
520
523
|
}
|
|
524
|
+
|
|
521
525
|
/**
|
|
522
526
|
* helper for {@link Journey.postRetrieveTasks}
|
|
523
527
|
*
|
|
@@ -1347,6 +1351,7 @@ class Journey extends MetadataType {
|
|
|
1347
1351
|
}
|
|
1348
1352
|
return action;
|
|
1349
1353
|
}
|
|
1354
|
+
|
|
1350
1355
|
/**
|
|
1351
1356
|
*
|
|
1352
1357
|
* @param {MetadataTypeItem} item single metadata item
|
|
@@ -1479,6 +1484,7 @@ class Journey extends MetadataType {
|
|
|
1479
1484
|
// no error means we have a new item to deploy and need to update the item in our retrieve folder
|
|
1480
1485
|
return item;
|
|
1481
1486
|
}
|
|
1487
|
+
|
|
1482
1488
|
/**
|
|
1483
1489
|
* Gets executed after deployment of metadata type
|
|
1484
1490
|
*
|
|
@@ -1494,6 +1500,7 @@ class Journey extends MetadataType {
|
|
|
1494
1500
|
await this.publish(idArr);
|
|
1495
1501
|
}
|
|
1496
1502
|
}
|
|
1503
|
+
|
|
1497
1504
|
/**
|
|
1498
1505
|
* a function to publish the journey via API
|
|
1499
1506
|
*
|
|
@@ -1614,6 +1621,7 @@ class Journey extends MetadataType {
|
|
|
1614
1621
|
);
|
|
1615
1622
|
return executedKeyArr.filter(Boolean);
|
|
1616
1623
|
}
|
|
1624
|
+
|
|
1617
1625
|
/**
|
|
1618
1626
|
* helper for {@link Journey.publish}
|
|
1619
1627
|
*
|
|
@@ -58,6 +58,7 @@ class List extends MetadataType {
|
|
|
58
58
|
const results = await super.retrieveSOAP(retrieveDir, requestParams, key);
|
|
59
59
|
return await this._retrieveParentAllSubs(results);
|
|
60
60
|
}
|
|
61
|
+
|
|
61
62
|
/**
|
|
62
63
|
* Gets metadata cache with limited fields and does not store value to disk
|
|
63
64
|
*
|
|
@@ -187,6 +188,7 @@ class List extends MetadataType {
|
|
|
187
188
|
static postRetrieveTasks(list) {
|
|
188
189
|
return this.parseMetadata(list);
|
|
189
190
|
}
|
|
191
|
+
|
|
190
192
|
/**
|
|
191
193
|
* parses retrieved Metadata before saving
|
|
192
194
|
*
|