mcdev 7.4.0 → 7.4.2

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 (57) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/@types/lib/Deployer.d.ts.map +1 -1
  3. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  4. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  5. package/@types/lib/metadataTypes/Event.d.ts +13 -7
  6. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  7. package/@types/lib/metadataTypes/Folder.d.ts +1 -2
  8. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  10. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  11. package/@types/lib/util/util.d.ts +7 -0
  12. package/@types/lib/util/util.d.ts.map +1 -1
  13. package/@types/lib/util/validations.d.ts +2 -0
  14. package/@types/lib/util/validations.d.ts.map +1 -1
  15. package/@types/types/mcdev.d.d.ts +212 -0
  16. package/@types/types/mcdev.d.d.ts.map +1 -1
  17. package/boilerplate/files/.vscode/settings.json +0 -3
  18. package/boilerplate/forcedUpdates.json +8 -0
  19. package/boilerplate/gitignore-template +1 -0
  20. package/lib/Deployer.js +11 -3
  21. package/lib/cli.js +7 -1
  22. package/lib/metadataTypes/DataExtension.js +0 -13
  23. package/lib/metadataTypes/DataExtensionField.js +4 -2
  24. package/lib/metadataTypes/Event.js +53 -19
  25. package/lib/metadataTypes/Folder.js +8 -5
  26. package/lib/metadataTypes/Journey.js +43 -12
  27. package/lib/metadataTypes/MetadataType.js +11 -8
  28. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +4 -2
  29. package/lib/util/config.js +4 -4
  30. package/lib/util/util.js +14 -0
  31. package/lib/util/validations.js +9 -2
  32. package/package.json +11 -11
  33. package/test/general.test.js +4 -4
  34. package/test/mockRoot/.mcdevrc.json +1 -1
  35. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +0 -1
  36. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +0 -1
  37. package/test/resources/9999999/journey/build-expected.json +4 -2
  38. package/test/resources/9999999/journey/get-multistep-expected.json +63 -61
  39. package/test/resources/9999999/journey/get-quicksend-expected.json +4 -2
  40. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +2 -2
  41. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +2 -2
  42. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +6 -2
  43. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +2 -2
  44. package/test/resources/9999999/journey/template-expected.json +4 -2
  45. package/test/resources/9999999/triggeredSend/build-expected.json +0 -1
  46. package/test/resources/9999999/triggeredSend/get-expected.json +0 -1
  47. package/test/resources/9999999/triggeredSend/get-rcb-id-expected.json +0 -1
  48. package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +0 -1
  49. package/test/resources/9999999/triggeredSend/get-rcb-name-expected.json +0 -1
  50. package/test/resources/9999999/triggeredSend/patch-expected.json +0 -1
  51. package/test/resources/9999999/triggeredSend/post-expected.json +0 -1
  52. package/test/resources/9999999/triggeredSend/template-expected.json +0 -1
  53. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +0 -1
  54. package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +0 -2
  55. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +0 -1
  56. package/test/type.dataExtension.test.js +3 -3
  57. package/types/mcdev.d.js +79 -0
@@ -25,8 +25,10 @@
25
25
  "triggeredSend": {
26
26
  "autoAddSubscribers": true,
27
27
  "autoUpdateSubscribers": true,
28
- "bccEmail": "%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%",
29
- "ccEmail": "%%= ContentBlockByKey(\"testTemplated_asset_htmlblock\") =%%",
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": [],
@@ -100,6 +48,8 @@
100
48
  "throttleOpens": "1/1/0001 12:00:00 AM",
101
49
  "throttleCloses": "1/1/0001 12:00:00 AM",
102
50
  "isTrackingClicks": true,
51
+ "suppressTracking": false,
52
+ "triggeredSendStatus": "New",
103
53
  "r__list_PathName": { "publicationList": "my subscribers/All Subscribers" },
104
54
  "r__senderProfile_key": "testExisting_senderProfile",
105
55
  "r__sendClassification_key": "testExisting_sendClassification",
@@ -231,14 +181,66 @@
231
181
  }
232
182
  },
233
183
  {
234
- "id": "70572b1a-e274-4f09-a3fa-6fc0732ec52b",
235
- "key": "WAITBYDURATION-2",
184
+ "id": "342dd0aa-a6be-401e-8614-3538800bfd7c",
185
+ "key": "MULTICRITERIADECISIONV2-1",
236
186
  "name": "",
237
187
  "description": "",
188
+ "type": "MULTICRITERIADECISION",
189
+ "outcomes": [
190
+ {
191
+ "key": "default_path_1",
192
+ "next": "EMAILV2-1",
193
+ "arguments": {},
194
+ "metaData": {
195
+ "label": "send message",
196
+ "skipI18n": true,
197
+ "isLabelFromConversion": false,
198
+ "criteriaDescription": "Email is not null"
199
+ }
200
+ },
201
+ {
202
+ "key": "remainder_path",
203
+ "next": "WAITBYDURATION-2",
204
+ "arguments": {},
205
+ "metaData": { "label": null }
206
+ }
207
+ ],
208
+ "arguments": {},
209
+ "configurationArguments": {
210
+ "criteria": {
211
+ "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>"
212
+ },
213
+ "schemaVersionId": "252"
214
+ },
215
+ "metaData": { "isConfigured": true },
216
+ "schema": {
217
+ "arguments": {
218
+ "actualChoice": {
219
+ "dataType": "Number",
220
+ "isNullable": false,
221
+ "direction": "Out",
222
+ "readOnly": false,
223
+ "access": "Hidden"
224
+ },
225
+ "filterResult": {
226
+ "dataType": "Text",
227
+ "isNullable": false,
228
+ "direction": "In",
229
+ "readOnly": true,
230
+ "access": "Hidden"
231
+ }
232
+ }
233
+ }
234
+ },
235
+ {
236
+ "id": "e2a486cf-c85f-4543-88a2-d579cac1e0de",
237
+ "key": "WAITBYDURATION-1",
238
+ "name": "1 day",
239
+ "description": "",
238
240
  "type": "WAIT",
239
241
  "outcomes": [
240
242
  {
241
- "key": "a0908f9f-bc3c-47f7-9489-7fef5af25ce3",
243
+ "key": "97af222a-450a-429e-8925-649b72f01ccf",
242
244
  "arguments": {},
243
245
  "metaData": { "invalid": false }
244
246
  }
@@ -301,14 +303,14 @@
301
303
  }
302
304
  },
303
305
  {
304
- "id": "e2a486cf-c85f-4543-88a2-d579cac1e0de",
305
- "key": "WAITBYDURATION-1",
306
- "name": "1 day",
306
+ "id": "70572b1a-e274-4f09-a3fa-6fc0732ec52b",
307
+ "key": "WAITBYDURATION-2",
308
+ "name": "",
307
309
  "description": "",
308
310
  "type": "WAIT",
309
311
  "outcomes": [
310
312
  {
311
- "key": "97af222a-450a-429e-8925-649b72f01ccf",
313
+ "key": "a0908f9f-bc3c-47f7-9489-7fef5af25ce3",
312
314
  "arguments": {},
313
315
  "metaData": { "invalid": false }
314
316
  }
@@ -28,8 +28,10 @@
28
28
  "triggeredSend": {
29
29
  "autoAddSubscribers": true,
30
30
  "autoUpdateSubscribers": true,
31
- "bccEmail": "%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%",
32
- "ccEmail": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
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": "%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%",
32
- "ccEmail": "%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%",
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\") =%%",
@@ -28,8 +28,8 @@
28
28
  "triggeredSend": {
29
29
  "autoAddSubscribers": true,
30
30
  "autoUpdateSubscribers": true,
31
- "bccEmail": "",
32
- "ccEmail": "",
31
+ "bccEmail": [],
32
+ "ccEmail": [],
33
33
  "created": {},
34
34
  "domainExclusions": [],
35
35
  "dynamicEmailSubject": "test email",
@@ -25,8 +25,10 @@
25
25
  "triggeredSend": {
26
26
  "autoAddSubscribers": true,
27
27
  "autoUpdateSubscribers": true,
28
- "bccEmail": "%%= ContentBlockByName(\"Content Builder\\dont strip non ssjs content\") =%%",
29
- "ccEmail": "%%= ContentBlockByKey(\"{{{prefix}}}asset_htmlblock\") =%%",
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\") =%%",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testTemplated_triggeredSend",
9
8
  "Description": "Unsubscribe_Email",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testExisting_triggeredSend",
9
8
  "Description": "Unsubscribe_Email",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testExisting_triggeredSend_rcb",
9
8
  "Description": "Unsubscribe_Email",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testExisting_triggeredSend_rcb",
9
8
  "Description": "Unsubscribe_Email",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testExisting_triggeredSend_rcb",
9
8
  "Description": "Unsubscribe_Email",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testExisting_triggeredSend",
9
8
  "Description": "updated on deploy",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "testNew_triggeredSend",
9
8
  "Description": "created on deploy",
@@ -3,7 +3,6 @@
3
3
  "AutoAddSubscribers": false,
4
4
  "AutoUpdateSubscribers": false,
5
5
  "BatchInterval": 0,
6
- "BccEmail": "",
7
6
  "CreatedDate": "2018-06-25T05:58:00",
8
7
  "CustomerKey": "{{{prefix}}}triggeredSend",
9
8
  "Description": "Unsubscribe_Email",
@@ -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
- 11,
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
- 8,
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
- 12,
236
+ 11,
237
237
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
238
238
  );
239
239
  return;
package/types/mcdev.d.js CHANGED
@@ -560,4 +560,83 @@ 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
+ /**
629
+ *
630
+ * @callback validationRuleTest
631
+ * @returns {boolean} true = test passed; false = test failed
632
+ */
633
+ /**
634
+ * @typedef {object} validationRule
635
+ * @property {string} failedMsg error message to display in case of a failed test
636
+ * @property {validationRuleTest} passed test to run
637
+ */
638
+ /**
639
+ * @typedef {Object.<string, validationRule>} validationRuleList key=rule name
640
+ */
641
+
563
642
  export default {};