mcdev 7.3.1 → 7.4.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 +2 -0
- package/@types/lib/Deployer.d.ts.map +1 -1
- package/@types/lib/index.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Asset.d.ts +25 -0
- package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtension.d.ts +3 -2
- package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Event.d.ts +39 -7
- package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Journey.d.ts +4 -3
- package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MetadataType.d.ts +22 -3
- package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
- package/@types/lib/util/init.config.d.ts.map +1 -1
- package/@types/lib/util/replaceContentBlockReference.d.ts +4 -5
- package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
- package/@types/lib/util/util.d.ts +18 -2
- package/@types/lib/util/util.d.ts.map +1 -1
- package/@types/lib/util/validations.d.ts +9 -0
- package/@types/lib/util/validations.d.ts.map +1 -0
- package/@types/types/mcdev.d.d.ts +195 -0
- package/@types/types/mcdev.d.d.ts.map +1 -1
- package/boilerplate/config.json +22 -0
- package/boilerplate/files/.gitattributes +1 -1
- package/boilerplate/files/README.md +1 -1
- package/boilerplate/forcedUpdates.json +8 -0
- package/boilerplate/gitignore-template +1 -0
- package/lib/Deployer.js +5 -0
- package/lib/cli.js +28 -3
- package/lib/index.js +3 -2
- package/lib/metadataTypes/Asset.js +87 -7
- package/lib/metadataTypes/DataExtension.js +74 -17
- package/lib/metadataTypes/DataExtensionField.js +11 -3
- package/lib/metadataTypes/Event.js +171 -105
- package/lib/metadataTypes/Journey.js +207 -89
- package/lib/metadataTypes/MetadataType.js +182 -37
- package/lib/metadataTypes/definitions/TriggeredSend.definition.js +4 -2
- package/lib/util/config.js +4 -4
- package/lib/util/init.config.js +10 -6
- package/lib/util/replaceContentBlockReference.js +15 -11
- package/lib/util/util.js +43 -9
- package/lib/util/validations.js +66 -0
- package/package.json +8 -8
- package/test/general.test.js +4 -4
- package/test/mockRoot/.mcdevrc.json +15 -1
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +0 -1
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +0 -1
- package/test/resources/9999999/journey/build-expected.json +4 -2
- package/test/resources/9999999/journey/get-multistep-expected.json +61 -61
- package/test/resources/9999999/journey/get-quicksend-expected.json +4 -2
- package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +2 -2
- package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +2 -2
- package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +6 -2
- package/test/resources/9999999/journey/get-transactionalEmail-expected.json +2 -2
- package/test/resources/9999999/journey/template-expected.json +4 -2
- package/test/resources/9999999/triggeredSend/build-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/get-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/get-rcb-id-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/get-rcb-name-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/patch-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/post-expected.json +0 -1
- package/test/resources/9999999/triggeredSend/template-expected.json +0 -1
- package/test/resources/9999999/triggeredSendDefinition/create-response.xml +0 -1
- package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +0 -2
- package/test/resources/9999999/triggeredSendDefinition/update-response.xml +0 -1
- package/test/type.dataExtension.test.js +3 -3
- package/test/type.journey.test.js +2 -2
- package/test/utils.js +1 -0
- package/types/mcdev.d.js +66 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcdev",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.1",
|
|
4
4
|
"description": "Accenture Salesforce Marketing Cloud DevTools",
|
|
5
5
|
"author": "Accenture: joern.berkefeld, douglas.midgley, robert.zimmermann, maciej.barnas",
|
|
6
6
|
"license": "MIT",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"console.table": "0.10.0",
|
|
76
76
|
"deep-equal": "2.2.3",
|
|
77
77
|
"fs-extra": "11.2.0",
|
|
78
|
-
"inquirer": "10.
|
|
78
|
+
"inquirer": "10.2.2",
|
|
79
79
|
"json-to-table": "4.2.1",
|
|
80
80
|
"mustache": "4.2.0",
|
|
81
81
|
"p-limit": "6.1.0",
|
|
@@ -85,24 +85,24 @@
|
|
|
85
85
|
"sfmc-sdk": "2.1.2",
|
|
86
86
|
"simple-git": "3.25.0",
|
|
87
87
|
"toposort": "2.0.2",
|
|
88
|
-
"update-notifier": "7.
|
|
88
|
+
"update-notifier": "7.3.1",
|
|
89
89
|
"winston": "3.14.2",
|
|
90
90
|
"yargs": "17.7.2",
|
|
91
91
|
"yocto-spinner": "0.1.0"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
|
-
"@eslint/js": "9.
|
|
94
|
+
"@eslint/js": "9.10.0",
|
|
95
95
|
"@types/fs-extra": "11.0.4",
|
|
96
96
|
"@types/inquirer": "9.0.7",
|
|
97
97
|
"@types/mocha": "10.0.7",
|
|
98
|
-
"@types/node": "22.4
|
|
98
|
+
"@types/node": "22.5.4",
|
|
99
99
|
"@types/yargs": "17.0.33",
|
|
100
100
|
"assert": "2.1.0",
|
|
101
101
|
"axios-mock-adapter": "2.0.0",
|
|
102
102
|
"c8": "10.0.0",
|
|
103
103
|
"chai": "5.1.1",
|
|
104
104
|
"chai-files": "1.4.0",
|
|
105
|
-
"eslint": "9.
|
|
105
|
+
"eslint": "9.10.0",
|
|
106
106
|
"eslint-config-prettier": "9.1.0",
|
|
107
107
|
"eslint-config-ssjs": "2.0.0",
|
|
108
108
|
"eslint-plugin-jsdoc": "50.2.2",
|
|
@@ -112,12 +112,12 @@
|
|
|
112
112
|
"fast-xml-parser": "4.4.1",
|
|
113
113
|
"globals": "15.9.0",
|
|
114
114
|
"husky": "9.1.5",
|
|
115
|
-
"lint-staged": "15.2.
|
|
115
|
+
"lint-staged": "15.2.10",
|
|
116
116
|
"mocha": "10.7.3",
|
|
117
117
|
"mock-fs": "5.2.0",
|
|
118
118
|
"npm-run-all": "4.1.5",
|
|
119
119
|
"prettier-eslint": "16.3.0",
|
|
120
|
-
"typescript": "5.
|
|
120
|
+
"typescript": "5.6.2"
|
|
121
121
|
},
|
|
122
122
|
"optionalDependencies": {
|
|
123
123
|
"fsevents": "*"
|
package/test/general.test.js
CHANGED
|
@@ -569,7 +569,7 @@ describe('GENERAL', () => {
|
|
|
569
569
|
);
|
|
570
570
|
assert.equal(
|
|
571
571
|
testUtils.getAPIHistoryLength(),
|
|
572
|
-
|
|
572
|
+
13,
|
|
573
573
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
574
574
|
);
|
|
575
575
|
});
|
|
@@ -632,7 +632,7 @@ describe('GENERAL', () => {
|
|
|
632
632
|
);
|
|
633
633
|
assert.equal(
|
|
634
634
|
testUtils.getAPIHistoryLength(),
|
|
635
|
-
|
|
635
|
+
14,
|
|
636
636
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
637
637
|
);
|
|
638
638
|
});
|
|
@@ -697,7 +697,7 @@ describe('GENERAL', () => {
|
|
|
697
697
|
);
|
|
698
698
|
assert.equal(
|
|
699
699
|
testUtils.getAPIHistoryLength(),
|
|
700
|
-
|
|
700
|
+
11,
|
|
701
701
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
702
702
|
);
|
|
703
703
|
});
|
|
@@ -2251,7 +2251,7 @@ describe('GENERAL', () => {
|
|
|
2251
2251
|
);
|
|
2252
2252
|
assert.equal(
|
|
2253
2253
|
testUtils.getAPIHistoryLength(),
|
|
2254
|
-
|
|
2254
|
+
13,
|
|
2255
2255
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
2256
2256
|
);
|
|
2257
2257
|
});
|
|
@@ -19,6 +19,20 @@
|
|
|
19
19
|
"master": ["MyProduction/PROD-DE", "MyProduction/PROD-NL"]
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
+
"validation": {
|
|
23
|
+
"retrieve": {
|
|
24
|
+
"noGuidKeys": "warn",
|
|
25
|
+
"noRootFolder": "warn"
|
|
26
|
+
},
|
|
27
|
+
"buildDefinition": {
|
|
28
|
+
"noGuidKeys": "warn",
|
|
29
|
+
"noRootFolder": "warn"
|
|
30
|
+
},
|
|
31
|
+
"deploy": {
|
|
32
|
+
"noGuidKeys": "warn",
|
|
33
|
+
"noRootFolder": "warn"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
22
36
|
"documentType": "md",
|
|
23
37
|
"exclude": {},
|
|
24
38
|
"include": {},
|
|
@@ -100,5 +114,5 @@
|
|
|
100
114
|
"verification"
|
|
101
115
|
]
|
|
102
116
|
},
|
|
103
|
-
"version": "7.
|
|
117
|
+
"version": "7.4.1"
|
|
104
118
|
}
|
|
@@ -25,8 +25,10 @@
|
|
|
25
25
|
"triggeredSend": {
|
|
26
26
|
"autoAddSubscribers": true,
|
|
27
27
|
"autoUpdateSubscribers": true,
|
|
28
|
-
"bccEmail":
|
|
29
|
-
|
|
28
|
+
"bccEmail": [
|
|
29
|
+
"%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%"
|
|
30
|
+
],
|
|
31
|
+
"ccEmail": ["%%= ContentBlockByKey(\"testTemplated_asset_htmlblock\") =%%"],
|
|
30
32
|
"created": {},
|
|
31
33
|
"description": "my activity info text",
|
|
32
34
|
"dynamicEmailSubject": "testTemplated_ dynamic email subject %%= ContentBlockByKey(\"testTemplated_asset_htmlblock\") =%%",
|
|
@@ -8,58 +8,6 @@
|
|
|
8
8
|
"createdDate": "2024-05-04T05:54:48.027",
|
|
9
9
|
"modifiedDate": "2024-05-04T17:25:57.9",
|
|
10
10
|
"activities": [
|
|
11
|
-
{
|
|
12
|
-
"id": "342dd0aa-a6be-401e-8614-3538800bfd7c",
|
|
13
|
-
"key": "MULTICRITERIADECISIONV2-1",
|
|
14
|
-
"name": "",
|
|
15
|
-
"description": "",
|
|
16
|
-
"type": "MULTICRITERIADECISION",
|
|
17
|
-
"outcomes": [
|
|
18
|
-
{
|
|
19
|
-
"key": "default_path_1",
|
|
20
|
-
"next": "EMAILV2-1",
|
|
21
|
-
"arguments": {},
|
|
22
|
-
"metaData": {
|
|
23
|
-
"label": "send message",
|
|
24
|
-
"skipI18n": true,
|
|
25
|
-
"isLabelFromConversion": false,
|
|
26
|
-
"criteriaDescription": "Email is not null"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"key": "remainder_path",
|
|
31
|
-
"next": "WAITBYDURATION-2",
|
|
32
|
-
"arguments": {},
|
|
33
|
-
"metaData": { "label": null }
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"arguments": {},
|
|
37
|
-
"configurationArguments": {
|
|
38
|
-
"criteria": {
|
|
39
|
-
"default_path_1": "<FilterDefinition><ConditionSet Operator=\"AND\" ConditionSetName=\"Individual Filter Grouping\"><Condition IsEphemeralAttribute=\"true\" Key=\"Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.Email\" Operator=\"IsNotNull\" UiMetaData=\"{}\"><Value><![CDATA[]]></Value></Condition></ConditionSet></FilterDefinition>"
|
|
40
|
-
},
|
|
41
|
-
"schemaVersionId": "252"
|
|
42
|
-
},
|
|
43
|
-
"metaData": { "isConfigured": true },
|
|
44
|
-
"schema": {
|
|
45
|
-
"arguments": {
|
|
46
|
-
"actualChoice": {
|
|
47
|
-
"dataType": "Number",
|
|
48
|
-
"isNullable": false,
|
|
49
|
-
"direction": "Out",
|
|
50
|
-
"readOnly": false,
|
|
51
|
-
"access": "Hidden"
|
|
52
|
-
},
|
|
53
|
-
"filterResult": {
|
|
54
|
-
"dataType": "Text",
|
|
55
|
-
"isNullable": false,
|
|
56
|
-
"direction": "In",
|
|
57
|
-
"readOnly": true,
|
|
58
|
-
"access": "Hidden"
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
11
|
{
|
|
64
12
|
"id": "7ba1e59a-6be4-46c7-b76f-4c06feb1268a",
|
|
65
13
|
"key": "EMAILV2-1",
|
|
@@ -83,8 +31,8 @@
|
|
|
83
31
|
"triggeredSend": {
|
|
84
32
|
"autoAddSubscribers": false,
|
|
85
33
|
"autoUpdateSubscribers": false,
|
|
86
|
-
"bccEmail":
|
|
87
|
-
"ccEmail":
|
|
34
|
+
"bccEmail": [],
|
|
35
|
+
"ccEmail": [],
|
|
88
36
|
"created": { "name": "", "date": "" },
|
|
89
37
|
"description": "my custom description",
|
|
90
38
|
"domainExclusions": [],
|
|
@@ -231,14 +179,66 @@
|
|
|
231
179
|
}
|
|
232
180
|
},
|
|
233
181
|
{
|
|
234
|
-
"id": "
|
|
235
|
-
"key": "
|
|
182
|
+
"id": "342dd0aa-a6be-401e-8614-3538800bfd7c",
|
|
183
|
+
"key": "MULTICRITERIADECISIONV2-1",
|
|
236
184
|
"name": "",
|
|
237
185
|
"description": "",
|
|
186
|
+
"type": "MULTICRITERIADECISION",
|
|
187
|
+
"outcomes": [
|
|
188
|
+
{
|
|
189
|
+
"key": "default_path_1",
|
|
190
|
+
"next": "EMAILV2-1",
|
|
191
|
+
"arguments": {},
|
|
192
|
+
"metaData": {
|
|
193
|
+
"label": "send message",
|
|
194
|
+
"skipI18n": true,
|
|
195
|
+
"isLabelFromConversion": false,
|
|
196
|
+
"criteriaDescription": "Email is not null"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"key": "remainder_path",
|
|
201
|
+
"next": "WAITBYDURATION-2",
|
|
202
|
+
"arguments": {},
|
|
203
|
+
"metaData": { "label": null }
|
|
204
|
+
}
|
|
205
|
+
],
|
|
206
|
+
"arguments": {},
|
|
207
|
+
"configurationArguments": {
|
|
208
|
+
"criteria": {
|
|
209
|
+
"default_path_1": "<FilterDefinition><ConditionSet Operator=\"AND\" ConditionSetName=\"Individual Filter Grouping\"><Condition IsEphemeralAttribute=\"true\" Key=\"Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.Email\" Operator=\"IsNotNull\" UiMetaData=\"{}\"><Value><![CDATA[]]></Value></Condition></ConditionSet></FilterDefinition>"
|
|
210
|
+
},
|
|
211
|
+
"schemaVersionId": "252"
|
|
212
|
+
},
|
|
213
|
+
"metaData": { "isConfigured": true },
|
|
214
|
+
"schema": {
|
|
215
|
+
"arguments": {
|
|
216
|
+
"actualChoice": {
|
|
217
|
+
"dataType": "Number",
|
|
218
|
+
"isNullable": false,
|
|
219
|
+
"direction": "Out",
|
|
220
|
+
"readOnly": false,
|
|
221
|
+
"access": "Hidden"
|
|
222
|
+
},
|
|
223
|
+
"filterResult": {
|
|
224
|
+
"dataType": "Text",
|
|
225
|
+
"isNullable": false,
|
|
226
|
+
"direction": "In",
|
|
227
|
+
"readOnly": true,
|
|
228
|
+
"access": "Hidden"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "e2a486cf-c85f-4543-88a2-d579cac1e0de",
|
|
235
|
+
"key": "WAITBYDURATION-1",
|
|
236
|
+
"name": "1 day",
|
|
237
|
+
"description": "",
|
|
238
238
|
"type": "WAIT",
|
|
239
239
|
"outcomes": [
|
|
240
240
|
{
|
|
241
|
-
"key": "
|
|
241
|
+
"key": "97af222a-450a-429e-8925-649b72f01ccf",
|
|
242
242
|
"arguments": {},
|
|
243
243
|
"metaData": { "invalid": false }
|
|
244
244
|
}
|
|
@@ -301,14 +301,14 @@
|
|
|
301
301
|
}
|
|
302
302
|
},
|
|
303
303
|
{
|
|
304
|
-
"id": "
|
|
305
|
-
"key": "WAITBYDURATION-
|
|
306
|
-
"name": "
|
|
304
|
+
"id": "70572b1a-e274-4f09-a3fa-6fc0732ec52b",
|
|
305
|
+
"key": "WAITBYDURATION-2",
|
|
306
|
+
"name": "",
|
|
307
307
|
"description": "",
|
|
308
308
|
"type": "WAIT",
|
|
309
309
|
"outcomes": [
|
|
310
310
|
{
|
|
311
|
-
"key": "
|
|
311
|
+
"key": "a0908f9f-bc3c-47f7-9489-7fef5af25ce3",
|
|
312
312
|
"arguments": {},
|
|
313
313
|
"metaData": { "invalid": false }
|
|
314
314
|
}
|
|
@@ -28,8 +28,10 @@
|
|
|
28
28
|
"triggeredSend": {
|
|
29
29
|
"autoAddSubscribers": true,
|
|
30
30
|
"autoUpdateSubscribers": true,
|
|
31
|
-
"bccEmail":
|
|
32
|
-
|
|
31
|
+
"bccEmail": [
|
|
32
|
+
"%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%"
|
|
33
|
+
],
|
|
34
|
+
"ccEmail": ["%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%"],
|
|
33
35
|
"created": {},
|
|
34
36
|
"description": "my activity info text",
|
|
35
37
|
"dynamicEmailSubject": "testExisting_ dynamic email subject %%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"triggeredSend": {
|
|
29
29
|
"autoAddSubscribers": true,
|
|
30
30
|
"autoUpdateSubscribers": true,
|
|
31
|
-
"bccEmail": "%%= ContentBlockById(1295064) =%%",
|
|
32
|
-
"ccEmail": "%%= ContentBlockById(1295064) =%%",
|
|
31
|
+
"bccEmail": ["%%= ContentBlockById(1295064) =%%"],
|
|
32
|
+
"ccEmail": ["%%= ContentBlockById(1295064) =%%"],
|
|
33
33
|
"created": {},
|
|
34
34
|
"description": "my activity info text",
|
|
35
35
|
"dynamicEmailSubject": "testExisting_ dynamic email subject %%= ContentBlockById(1295064) =%%",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"triggeredSend": {
|
|
29
29
|
"autoAddSubscribers": true,
|
|
30
30
|
"autoUpdateSubscribers": true,
|
|
31
|
-
"bccEmail": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
|
|
32
|
-
"ccEmail": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
|
|
31
|
+
"bccEmail": ["%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%"],
|
|
32
|
+
"ccEmail": ["%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%"],
|
|
33
33
|
"created": {},
|
|
34
34
|
"description": "my activity info text",
|
|
35
35
|
"dynamicEmailSubject": "testExisting_ dynamic email subject %%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
|
|
@@ -28,8 +28,12 @@
|
|
|
28
28
|
"triggeredSend": {
|
|
29
29
|
"autoAddSubscribers": true,
|
|
30
30
|
"autoUpdateSubscribers": true,
|
|
31
|
-
"bccEmail":
|
|
32
|
-
|
|
31
|
+
"bccEmail": [
|
|
32
|
+
"%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%"
|
|
33
|
+
],
|
|
34
|
+
"ccEmail": [
|
|
35
|
+
"%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%"
|
|
36
|
+
],
|
|
33
37
|
"created": {},
|
|
34
38
|
"description": "my activity info text",
|
|
35
39
|
"dynamicEmailSubject": "testExisting_ dynamic email subject %%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%",
|
|
@@ -25,8 +25,10 @@
|
|
|
25
25
|
"triggeredSend": {
|
|
26
26
|
"autoAddSubscribers": true,
|
|
27
27
|
"autoUpdateSubscribers": true,
|
|
28
|
-
"bccEmail":
|
|
29
|
-
|
|
28
|
+
"bccEmail": [
|
|
29
|
+
"%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%"
|
|
30
|
+
],
|
|
31
|
+
"ccEmail": ["%%= ContentBlockByKey(\"{{{prefix}}}asset_htmlblock\") =%%"],
|
|
30
32
|
"created": {},
|
|
31
33
|
"description": "my activity info text",
|
|
32
34
|
"dynamicEmailSubject": "{{{prefix}}} dynamic email subject %%= ContentBlockByKey(\"{{{prefix}}}asset_htmlblock\") =%%",
|
|
@@ -63,7 +63,6 @@
|
|
|
63
63
|
<AutoAddSubscribers>false</AutoAddSubscribers>
|
|
64
64
|
<AutoUpdateSubscribers>false</AutoUpdateSubscribers>
|
|
65
65
|
<BatchInterval>0</BatchInterval>
|
|
66
|
-
<BccEmail />
|
|
67
66
|
<EmailSubject>You are successfully unsubscribed</EmailSubject>
|
|
68
67
|
<DynamicEmailSubject>You are successfully unsubscribed</DynamicEmailSubject>
|
|
69
68
|
<IsMultipart>false</IsMultipart>
|
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
<AutoAddSubscribers>false</AutoAddSubscribers>
|
|
60
60
|
<AutoUpdateSubscribers>false</AutoUpdateSubscribers>
|
|
61
61
|
<BatchInterval>0</BatchInterval>
|
|
62
|
-
<BccEmail />
|
|
63
62
|
<EmailSubject>You are successfully unsubscribed</EmailSubject>
|
|
64
63
|
<DynamicEmailSubject>You are successfully unsubscribed</DynamicEmailSubject>
|
|
65
64
|
<IsMultipart>false</IsMultipart>
|
|
@@ -106,7 +105,6 @@
|
|
|
106
105
|
<AutoAddSubscribers>false</AutoAddSubscribers>
|
|
107
106
|
<AutoUpdateSubscribers>false</AutoUpdateSubscribers>
|
|
108
107
|
<BatchInterval>0</BatchInterval>
|
|
109
|
-
<BccEmail />
|
|
110
108
|
<EmailSubject>%%= ContentBlockById(1295064) =%%</EmailSubject>
|
|
111
109
|
<DynamicEmailSubject>%%= ContentBlockById(1295064) =%%</DynamicEmailSubject>
|
|
112
110
|
<IsMultipart>false</IsMultipart>
|
|
@@ -62,7 +62,6 @@
|
|
|
62
62
|
<AutoAddSubscribers>false</AutoAddSubscribers>
|
|
63
63
|
<AutoUpdateSubscribers>false</AutoUpdateSubscribers>
|
|
64
64
|
<BatchInterval>0</BatchInterval>
|
|
65
|
-
<BccEmail />
|
|
66
65
|
<EmailSubject>You are successfully unsubscribed</EmailSubject>
|
|
67
66
|
<DynamicEmailSubject>You are successfully unsubscribed</DynamicEmailSubject>
|
|
68
67
|
<IsMultipart>false</IsMultipart>
|
|
@@ -133,7 +133,7 @@ describe('type: dataExtension', () => {
|
|
|
133
133
|
);
|
|
134
134
|
assert.equal(
|
|
135
135
|
testUtils.getAPIHistoryLength(),
|
|
136
|
-
|
|
136
|
+
10,
|
|
137
137
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
138
138
|
);
|
|
139
139
|
return;
|
|
@@ -182,7 +182,7 @@ describe('type: dataExtension', () => {
|
|
|
182
182
|
);
|
|
183
183
|
assert.equal(
|
|
184
184
|
testUtils.getAPIHistoryLength(),
|
|
185
|
-
|
|
185
|
+
7,
|
|
186
186
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
187
187
|
);
|
|
188
188
|
return;
|
|
@@ -233,7 +233,7 @@ describe('type: dataExtension', () => {
|
|
|
233
233
|
);
|
|
234
234
|
assert.equal(
|
|
235
235
|
testUtils.getAPIHistoryLength(),
|
|
236
|
-
|
|
236
|
+
11,
|
|
237
237
|
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
238
238
|
);
|
|
239
239
|
return;
|
|
@@ -757,7 +757,7 @@ describe('type: journey', () => {
|
|
|
757
757
|
// retrieve result
|
|
758
758
|
assert.deepEqual(
|
|
759
759
|
publish['testInstance/testBU']?.journey,
|
|
760
|
-
['
|
|
760
|
+
['testExisting_journey_Multistep'],
|
|
761
761
|
'should have published the journey'
|
|
762
762
|
);
|
|
763
763
|
|
|
@@ -799,7 +799,7 @@ describe('type: journey', () => {
|
|
|
799
799
|
// retrieve result
|
|
800
800
|
assert.deepEqual(
|
|
801
801
|
publish['testInstance/testBU']?.journey,
|
|
802
|
-
['
|
|
802
|
+
['testExisting_journey_Multistep'],
|
|
803
803
|
'should have published the journey'
|
|
804
804
|
);
|
|
805
805
|
|
package/test/utils.js
CHANGED
package/types/mcdev.d.js
CHANGED
|
@@ -560,4 +560,70 @@ complex
|
|
|
560
560
|
* @property {boolean} isnamefield -
|
|
561
561
|
* @property {SfObjectPicklist[]} [picklist] list of values
|
|
562
562
|
*/
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* @typedef {object} configurationArguments
|
|
566
|
+
* @property {string} applicationExtensionKey SalesforceObjectTriggerV2
|
|
567
|
+
* @property {string} version 3.0
|
|
568
|
+
* @property {'Created'|'Updated'|'CreatedUpdated'} salesforceTriggerCriteria what record event in SF triggers this
|
|
569
|
+
* @property {object} eventDataConfig what objects are used by this event
|
|
570
|
+
* @property {eventDataConfigObject[]} eventDataConfig.objects list of sf objects with the fields that are used
|
|
571
|
+
* @property {Conditions} primaryObjectFilterCriteria TODO
|
|
572
|
+
* @property {Conditions} relatedObjectFilterCriteria TODO
|
|
573
|
+
* @property {object} [additionalObjectFilterCriteria] seems to only exist on journey but not on event and also not on every journey
|
|
574
|
+
* @property {object} contactKey defines how this event links to the all contacts list
|
|
575
|
+
* @property {string} contactKey.relationshipIdName Id / the __c field
|
|
576
|
+
* @property {string} contactKey.relationshipName Common / the __r field
|
|
577
|
+
* @property {boolean} contactKey.isPolymorphic false
|
|
578
|
+
* @property {string} contactKey.referenceObjectName Common
|
|
579
|
+
* @property {string} [contactKey.fieldName] if relationshipIdName points to a __c field then this tends to be set to "Id"
|
|
580
|
+
* @property {object} passThroughArgument TODO
|
|
581
|
+
* @property {object} passThroughArgument.fields TODO
|
|
582
|
+
* @property {string} passThroughArgument.fields.ContactKey CampaignMember:Common:Id
|
|
583
|
+
* @property {object} passThroughArgument.fields.Email CampaignMember:Common:Email; not affected by changing which field is to be used for email in the journey
|
|
584
|
+
* @property {string} [passThroughArgument.fields.HasOptedOutOfEmail] Contact:HasOptedOutOfEmail
|
|
585
|
+
* @property {string} primaryObjectFilterSummary primaryObjectFilterCriteria in simplified string-form
|
|
586
|
+
* @property {string} relatedObjectFilterSummary relatedObjectFilterCriteria in simplified string-form
|
|
587
|
+
* @property {string[]} eventDataSummary eventDataConfig in simplified string-form
|
|
588
|
+
* @property {'Created;'|'Updated;'|'Created;Updated;'} evaluationCriteriaSummary salesforceTriggerCriteria plus semi-colon
|
|
589
|
+
* @property {'CampaignMember'|'Contact'} contactPersonType if objectAPIName==CampaignMember then this is also CampaignMember; otherwise it's Contact
|
|
590
|
+
* @property {string} objectAPIName the SF object on which the salesforceTriggerCriteria is listening on
|
|
591
|
+
* @property {string} whoToInject "objectAPIName (Contact / Lead / Contacts and Leads)"
|
|
592
|
+
* @property {string} criteria empty string for SF events
|
|
593
|
+
* @property {number} schemaVersionId set to 0 for SF events
|
|
594
|
+
*/
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* @typedef {object} eventDataConfigObject part of configurationArguments
|
|
598
|
+
* @property {string} dePrefix CampaignMember:Campaign:
|
|
599
|
+
* @property {boolean} isPolymorphic ?
|
|
600
|
+
* @property {string} referenceObject field on parent object containing the id; ends on __c for custom fields; same as referenceObject for standard fields; can be "Contacts and Leads"
|
|
601
|
+
* @property {string} relationshipName field on parent object acting as lookup; ends on __r for custom fields; same as referenceObject for standard fields; can be "Common"
|
|
602
|
+
* @property {string} [relationshipIdName] ?
|
|
603
|
+
* @property {string[]} fields list of field names that are used by this journey
|
|
604
|
+
*/
|
|
605
|
+
/**
|
|
606
|
+
* @typedef {object} Conditions part of configurationArguments
|
|
607
|
+
* @property {'AND'|'OR'} operand -
|
|
608
|
+
* @property {(Conditions | FieldCondition)[]} conditions list of conditions
|
|
609
|
+
*/
|
|
610
|
+
/**
|
|
611
|
+
* @typedef {object} FieldCondition part of configurationArguments
|
|
612
|
+
* @property {number} _length is 0 for booleans, otherwise field length
|
|
613
|
+
* @property {'currency'|'string'|'int'|'picklist'|'textarea'|'boolean'|'date'|'datetime'|'email'} datatype type
|
|
614
|
+
* @property {string} fieldName field API name; "TR1__Email__c"
|
|
615
|
+
* @property {string} folderId "CampaignMember-CampaignMember"
|
|
616
|
+
* @property {string} id "CampaignMember-CampaignMember-TR1__Email__c"
|
|
617
|
+
* @property {boolean} isPolymorphic ?
|
|
618
|
+
* @property {string} name likely the field label; "Email"
|
|
619
|
+
* @property {'equals'|'EQUALS'|'WASSET'} operator condition comparator
|
|
620
|
+
* @property {string} [value] value to compare the field with if operator is sth like "equals"; booleans are stored as upper-camel-case string!
|
|
621
|
+
* @property {number} precision ?
|
|
622
|
+
* @property {string} referenceObjectName "Contacts and Leads"
|
|
623
|
+
* @property {string} relationshipIdName "CommonId"; can be an empty string
|
|
624
|
+
* @property {string} relationshipName "Common"; can be an empty string
|
|
625
|
+
* @property {number} scale ?
|
|
626
|
+
* @property {string} text seems to be equal to name-attribute?; "Email"
|
|
627
|
+
*/
|
|
628
|
+
|
|
563
629
|
export default {};
|