mcdev 7.6.1 → 7.6.3

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 (83) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.github/workflows/close_issues_on_merge.yml +1 -1
  3. package/.github/workflows/coverage-base-update.yml +2 -2
  4. package/.github/workflows/coverage.yml +1 -1
  5. package/.vscode/extensions.json +1 -0
  6. package/.vscode/settings.json +21 -1
  7. package/@types/lib/index.d.ts +15 -15
  8. package/@types/lib/index.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  10. package/@types/lib/metadataTypes/Automation.d.ts +6 -0
  11. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  12. package/@types/lib/metadataTypes/DataExtract.d.ts +7 -0
  13. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  14. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/FileLocation.d.ts +39 -5
  16. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Journey.d.ts +13 -3
  18. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  20. package/@types/lib/metadataTypes/SendClassification.d.ts +7 -0
  21. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
  22. package/@types/lib/metadataTypes/SenderProfile.d.ts +7 -0
  23. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  24. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +6 -0
  25. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +24 -0
  26. package/@types/lib/util/cache.d.ts +1 -1
  27. package/@types/lib/util/cache.d.ts.map +1 -1
  28. package/@types/lib/util/config.d.ts.map +1 -1
  29. package/@types/lib/util/file.d.ts.map +1 -1
  30. package/LICENSE +1 -1
  31. package/README.md +1 -1
  32. package/boilerplate/config.json +1 -0
  33. package/boilerplate/files/.vscode/extensions.json +1 -0
  34. package/boilerplate/forcedUpdates.json +4 -0
  35. package/lib/index.js +34 -17
  36. package/lib/metadataTypes/Asset.js +31 -8
  37. package/lib/metadataTypes/Automation.js +45 -25
  38. package/lib/metadataTypes/DataExtension.js +1 -1
  39. package/lib/metadataTypes/DataExtract.js +20 -0
  40. package/lib/metadataTypes/Event.js +20 -5
  41. package/lib/metadataTypes/FileLocation.js +43 -5
  42. package/lib/metadataTypes/Journey.js +176 -77
  43. package/lib/metadataTypes/MetadataType.js +22 -9
  44. package/lib/metadataTypes/SendClassification.js +20 -0
  45. package/lib/metadataTypes/SenderProfile.js +20 -0
  46. package/lib/metadataTypes/definitions/Automation.definition.js +6 -0
  47. package/lib/metadataTypes/definitions/FileLocation.definition.js +22 -2
  48. package/lib/util/cache.js +8 -3
  49. package/lib/util/config.js +6 -0
  50. package/lib/util/file.js +17 -14
  51. package/package.json +17 -18
  52. package/prepare-release.js +37 -0
  53. package/test/general.test.js +69 -6
  54. package/test/mockRoot/.mcdevrc.json +2 -1
  55. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_Multistep.journey-meta.json +418 -0
  56. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_temail.journey-meta.json +212 -0
  57. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_temail_notPublished.journey-meta.json +217 -0
  58. package/test/resourceFactory.js +12 -10
  59. package/test/resources/9999999/asset/build-templatebasedemail-expected.json +0 -1
  60. package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +0 -1
  61. package/test/resources/9999999/asset/template-templatebasedemail-expected.json +0 -1
  62. package/test/resources/9999999/asset-deploy/block/testNew_asset_badExtension.bad-type-extension.json +39 -0
  63. package/test/resources/9999999/asset-deploy/block/testNew_asset_badName_bad.asset-block-meta.json +39 -0
  64. package/test/resources/9999999/dataExtract/patch-expected.json +3 -1
  65. package/test/resources/9999999/event/get-published-expected.json +30 -0
  66. package/test/resources/9999999/event/post_withExistingDE-callout-expected.json +211 -0
  67. package/test/resources/9999999/event/put-expected.json +12 -11
  68. package/test/resources/9999999/event-deploy/testNew_event_badExtension.bad-type-extension.json +200 -0
  69. package/test/resources/9999999/event-deploy/testNew_event_badName_bad.event-meta.json +200 -0
  70. package/test/resources/9999999/interaction/v1/eventDefinitions/key_DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e/get-response.json +39 -0
  71. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/put-response.json +461 -0
  72. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail/put-response.json +219 -0
  73. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail_notPublished/put-response.json +226 -0
  74. package/test/resources/9999999/journey/get-published-expected.json +217 -0
  75. package/test/resources/9999999/sendClassification/patch-expected.json +3 -1
  76. package/test/resources/9999999/senderProfile/patch-expected.json +12 -8
  77. package/test/resources/9999999/transactionalEmail/get-published-expected.json +20 -0
  78. package/test/type.dataExtract.test.js +1 -1
  79. package/test/type.event.test.js +3 -3
  80. package/test/type.journey.test.js +222 -13
  81. package/test/type.sendClassification.test.js +1 -1
  82. package/test/type.senderProfile.test.js +1 -1
  83. package/test/utils.js +5 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcdev",
3
- "version": "7.6.1",
3
+ "version": "7.6.3",
4
4
  "description": "Accenture Salesforce Marketing Cloud DevTools",
5
5
  "author": "Accenture: joern.berkefeld, douglas.midgley, robert.zimmermann, maciej.barnas",
6
6
  "license": "MIT",
@@ -60,9 +60,8 @@
60
60
  "test": "mocha --reporter-option maxDiffSize=25000",
61
61
  "coverage": "c8 npm run test",
62
62
  "prepare-release:audit-fix": "npm audit fix",
63
- "prepare-release:git-stage": "git add .",
64
- "prepare-release:git-commit": "git commit -n -m \"prepare-release changes\"",
65
- "prepare-release": "run-s prepare-release:audit-fix lint-ts lint:fix prepare-release:git-stage prepare-release:git-commit",
63
+ "prepare-release:git": "node prepare-release.js",
64
+ "prepare-release": "run-s prepare-release:audit-fix lint-ts lint:fix prepare-release:git",
66
65
  "version:major": "npm version --no-commit-hooks major",
67
66
  "version:minor": "npm version --no-commit-hooks minor",
68
67
  "version:patch": "npm version --no-commit-hooks patch"
@@ -74,11 +73,11 @@
74
73
  "conf": "13.1.0",
75
74
  "console.table": "0.10.0",
76
75
  "deep-equal": "2.2.3",
77
- "fs-extra": "11.2.0",
78
- "inquirer": "12.1.0",
76
+ "fs-extra": "11.3.0",
77
+ "inquirer": "12.3.2",
79
78
  "json-to-table": "4.2.1",
80
79
  "mustache": "4.2.0",
81
- "p-limit": "6.1.0",
80
+ "p-limit": "6.2.0",
82
81
  "prettier": "3.4.2",
83
82
  "prettier-plugin-sql": "0.18.1",
84
83
  "semver": "7.6.3",
@@ -88,36 +87,36 @@
88
87
  "update-notifier": "7.3.1",
89
88
  "winston": "3.17.0",
90
89
  "yargs": "17.7.2",
91
- "yocto-spinner": "0.1.1"
90
+ "yocto-spinner": "0.2.0"
92
91
  },
93
92
  "devDependencies": {
94
- "@eslint/js": "9.17.0",
93
+ "@eslint/js": "9.18.0",
95
94
  "@types/fs-extra": "11.0.4",
96
95
  "@types/inquirer": "9.0.7",
97
96
  "@types/mocha": "10.0.8",
98
- "@types/node": "22.10.2",
97
+ "@types/node": "22.10.7",
99
98
  "@types/yargs": "17.0.33",
100
99
  "assert": "2.1.0",
101
100
  "axios-mock-adapter": "2.0.0",
102
- "c8": "10.0.0",
101
+ "c8": "10.1.3",
103
102
  "chai": "5.1.2",
104
103
  "chai-files": "1.4.0",
105
- "eslint": "9.17.0",
106
- "eslint-config-prettier": "9.1.0",
104
+ "eslint": "9.18.0",
105
+ "eslint-config-prettier": "10.0.1",
107
106
  "eslint-config-ssjs": "2.0.0",
108
- "eslint-plugin-jsdoc": "50.6.1",
107
+ "eslint-plugin-jsdoc": "50.6.2",
109
108
  "eslint-plugin-mocha": "10.5.0",
110
- "eslint-plugin-prettier": "5.2.1",
109
+ "eslint-plugin-prettier": "5.2.3",
111
110
  "eslint-plugin-unicorn": "56.0.1",
112
- "fast-xml-parser": "4.4.1",
111
+ "fast-xml-parser": "4.5.1",
113
112
  "globals": "15.14.0",
114
113
  "husky": "9.1.7",
115
- "lint-staged": "15.2.10",
114
+ "lint-staged": "15.4.1",
116
115
  "mocha": "11.0.1",
117
116
  "mock-fs": "5.3.0",
118
117
  "npm-run-all": "4.1.5",
119
118
  "prettier-eslint": "16.3.0",
120
- "typescript": "5.7.2"
119
+ "typescript": "5.7.3"
121
120
  },
122
121
  "optionalDependencies": {
123
122
  "fsevents": "*"
@@ -0,0 +1,37 @@
1
+ /* eslint-disable no-console */
2
+ import { exec } from 'node:child_process';
3
+
4
+ console.log('> git status --porcelain');
5
+ exec('git status --porcelain', (err, stdout, stderr) => {
6
+ if (err) {
7
+ console.error(`Error executing git status: ${stderr}`);
8
+ return;
9
+ }
10
+
11
+ if (stdout) {
12
+ console.log(
13
+ ' Found changes:',
14
+ '\n - ' + stdout.split('\n').filter(Boolean).join('\n - ')
15
+ );
16
+ console.log('> git add .');
17
+ exec('git add .', (err, stdout, stderr) => {
18
+ if (err) {
19
+ console.error(`Error executing git add: ${stderr}`);
20
+ return;
21
+ }
22
+
23
+ console.log('> git commit -n -m "prepare-release changes"');
24
+ exec('git commit -n -m "prepare-release changes"', (err, stdout, stderr) => {
25
+ if (err) {
26
+ console.error(`Error executing git commit: ${stderr}`);
27
+ return;
28
+ } else {
29
+ console.log('✅ Changes committed successfully.');
30
+ }
31
+ });
32
+ });
33
+ } else {
34
+ console.log('✅ No untracked files to commit.');
35
+ }
36
+ });
37
+ /* eslint-enable no-console */
@@ -527,7 +527,7 @@ describe('GENERAL', () => {
527
527
  assert.equal(deployedTypes[0], 'dataExtract', 'deploy should have returned 1 type');
528
528
  assert.equal(
529
529
  testUtils.getAPIHistoryLength(),
530
- 8,
530
+ 10,
531
531
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
532
532
  );
533
533
  });
@@ -569,7 +569,7 @@ describe('GENERAL', () => {
569
569
  );
570
570
  assert.equal(
571
571
  testUtils.getAPIHistoryLength(),
572
- 16,
572
+ 17,
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
- 17,
635
+ 18,
636
636
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
637
637
  );
638
638
  });
@@ -697,7 +697,47 @@ describe('GENERAL', () => {
697
697
  );
698
698
  assert.equal(
699
699
  testUtils.getAPIHistoryLength(),
700
- 14,
700
+ 15,
701
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
702
+ );
703
+ });
704
+
705
+ it('skip deploy event with bad filename or bad extension', async () => {
706
+ testUtils.copyToDeploy('event-deploy', 'event');
707
+
708
+ const argvMetadata = [
709
+ 'event:testNew_event_badExtension',
710
+ 'event:testNew_event_badName',
711
+ ];
712
+ const typeKeyCombo = handler.metadataToTypeKey(argvMetadata);
713
+ const buName = 'testInstance/testBU';
714
+ await handler.deploy(buName, typeKeyCombo);
715
+ // THEN
716
+ assert.equal(process.exitCode, 1, 'deploy should not have thrown an error');
717
+
718
+ assert.equal(
719
+ testUtils.getAPIHistoryLength(),
720
+ 0,
721
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
722
+ );
723
+ });
724
+
725
+ it('skip deploy asset with bad filename or bad extension', async () => {
726
+ testUtils.copyToDeploy('asset-deploy', 'asset');
727
+ const argvMetadata = [
728
+ 'asset:testNew_asset_badExtension',
729
+ 'asset:testNew_asset_badName',
730
+ ];
731
+ const typeKeyCombo = handler.metadataToTypeKey(argvMetadata);
732
+ const buName = 'testInstance/testBU';
733
+ await handler.deploy(buName, typeKeyCombo);
734
+
735
+ // THEN
736
+ assert.equal(process.exitCode, 1, 'deploy should not have thrown an error');
737
+
738
+ assert.equal(
739
+ testUtils.getAPIHistoryLength(),
740
+ 0,
701
741
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
702
742
  );
703
743
  });
@@ -2249,7 +2289,7 @@ describe('GENERAL', () => {
2249
2289
  );
2250
2290
  assert.equal(
2251
2291
  testUtils.getAPIHistoryLength(),
2252
- 16,
2292
+ 17,
2253
2293
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
2254
2294
  );
2255
2295
  });
@@ -2298,9 +2338,32 @@ describe('GENERAL', () => {
2298
2338
  );
2299
2339
  assert.equal(
2300
2340
  testUtils.getAPIHistoryLength(),
2301
- 11,
2341
+ 12,
2342
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
2343
+ );
2344
+ });
2345
+ });
2346
+
2347
+ describe('Refresh ================', () => {
2348
+ it('Should not refresh anything due to missing type', async () => {
2349
+ // WHEN
2350
+ const replace = await handler.refresh('testInstance/testBU', null);
2351
+ // THEN
2352
+ assert.equal(process.exitCode, 1, 'refresh should have thrown an error');
2353
+ // retrieve result
2354
+
2355
+ assert.deepEqual(
2356
+ Object.keys(replace).length,
2357
+ 0,
2358
+ 'should not have replaced anything'
2359
+ );
2360
+
2361
+ assert.equal(
2362
+ testUtils.getAPIHistoryLength(),
2363
+ 0,
2302
2364
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
2303
2365
  );
2366
+ return;
2304
2367
  });
2305
2368
  });
2306
2369
  });
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "options": {
12
12
  "formatOnSave": true,
13
+ "formatErrorLog": false,
13
14
  "deployment": {
14
15
  "commitHistory": 10,
15
16
  "sourceTargetMapping": {
@@ -126,5 +127,5 @@
126
127
  "verification"
127
128
  ]
128
129
  },
129
- "version": "7.6.1"
130
+ "version": "7.6.3"
130
131
  }
@@ -0,0 +1,418 @@
1
+ {
2
+ "key": "testExisting_journey_Multistep",
3
+ "name": "testExisting_journey_Multistep",
4
+ "lastPublishedDate": "0001-01-01T00:00:00",
5
+ "description": "",
6
+ "version": 1,
7
+ "workflowApiVersion": 1,
8
+ "createdDate": "2024-05-04T05:54:48.027",
9
+ "modifiedDate": "2024-05-04T17:25:57.9",
10
+ "activities": [
11
+ {
12
+ "id": "7ba1e59a-6be4-46c7-b76f-4c06feb1268a",
13
+ "key": "EMAILV2-1",
14
+ "name": "my custom activity name",
15
+ "description": "",
16
+ "type": "EMAILV2",
17
+ "outcomes": [
18
+ {
19
+ "key": "ff60a294-3804-4165-85cd-c7c19c8e3a6d",
20
+ "next": "WAITBYDURATION-1",
21
+ "arguments": {},
22
+ "metaData": { "invalid": false }
23
+ }
24
+ ],
25
+ "arguments": {},
26
+ "configurationArguments": {
27
+ "applicationExtensionKey": "jb-email-activity",
28
+ "isModified": true,
29
+ "googleAnalyticsCampaignName": "",
30
+ "r__triggeredSend_key": "testExisting_triggeredSend",
31
+ "triggeredSend": {
32
+ "autoAddSubscribers": false,
33
+ "autoUpdateSubscribers": false,
34
+ "bccEmail": [],
35
+ "ccEmail": [],
36
+ "created": { "name": "", "date": "" },
37
+ "description": "my custom description",
38
+ "domainExclusions": [],
39
+ "dynamicEmailSubject": "You are successfully unsubscribed",
40
+ "emailSubject": "You are successfully unsubscribed",
41
+ "exclusionFilter": "",
42
+ "isSalesforceTracking": false,
43
+ "isMultipart": false,
44
+ "isSendLogging": true,
45
+ "isStoppedOnJobError": false,
46
+ "modified": { "name": "", "date": "" },
47
+ "preHeader": "testExisting_ email preheader",
48
+ "throttleOpens": "1/1/0001 12:00:00 AM",
49
+ "throttleCloses": "1/1/0001 12:00:00 AM",
50
+ "isTrackingClicks": true,
51
+ "suppressTracking": false,
52
+ "triggeredSendStatus": "New",
53
+ "r__list_PathName": { "publicationList": "my subscribers/All Subscribers" },
54
+ "r__deliveryProfile_key": "Default",
55
+ "r__senderProfile_key": "testExisting_senderProfile",
56
+ "r__sendClassification_key": "testExisting_sendClassification",
57
+ "c__priority": "Medium",
58
+ "r__asset_name_readOnly": "testExisting_asset_message",
59
+ "r__asset_key": "testExisting_asset_message",
60
+ "r__triggeredSend_key": "testExisting_triggeredSend"
61
+ }
62
+ },
63
+ "metaData": {
64
+ "category": "message",
65
+ "version": "1.0",
66
+ "icon": "https://jb-email-activity.s7.marketingcloudapps.com/img/email-icon.svg",
67
+ "iconSmall": "https://jb-email-activity.s7.marketingcloudapps.com/img/email-icon.svg",
68
+ "statsContactIcon": null,
69
+ "original_icon": "/img/email-icon.svg",
70
+ "original_iconSmall": "/img/email-icon.svg",
71
+ "sections": {},
72
+ "isConfigured": true
73
+ },
74
+ "schema": {
75
+ "arguments": {
76
+ "requestID": {
77
+ "dataType": "Text",
78
+ "isNullable": true,
79
+ "direction": "Out",
80
+ "readOnly": false,
81
+ "access": "Hidden"
82
+ },
83
+ "messageKey": {
84
+ "dataType": "Text",
85
+ "isNullable": true,
86
+ "direction": "Out",
87
+ "readOnly": false,
88
+ "access": "Hidden"
89
+ },
90
+ "activityId": {
91
+ "dataType": "Text",
92
+ "isNullable": true,
93
+ "direction": "In",
94
+ "readOnly": false,
95
+ "access": "Hidden"
96
+ },
97
+ "definitionId": {
98
+ "dataType": "Text",
99
+ "isNullable": true,
100
+ "direction": "In",
101
+ "readOnly": true,
102
+ "access": "Hidden"
103
+ },
104
+ "emailSubjectDataBound": {
105
+ "dataType": "Text",
106
+ "isNullable": true,
107
+ "direction": "In",
108
+ "readOnly": true,
109
+ "access": "Hidden"
110
+ },
111
+ "contactId": {
112
+ "dataType": "Number",
113
+ "isNullable": true,
114
+ "direction": "In",
115
+ "readOnly": false,
116
+ "access": "Hidden"
117
+ },
118
+ "contactKey": {
119
+ "dataType": "Text",
120
+ "isNullable": false,
121
+ "direction": "In",
122
+ "readOnly": false,
123
+ "access": "Hidden"
124
+ },
125
+ "emailAddress": {
126
+ "dataType": "Text",
127
+ "isNullable": false,
128
+ "direction": "In",
129
+ "readOnly": false,
130
+ "access": "Hidden"
131
+ },
132
+ "sourceCustomObjectId": {
133
+ "dataType": "Text",
134
+ "isNullable": true,
135
+ "direction": "In",
136
+ "readOnly": false,
137
+ "access": "Hidden"
138
+ },
139
+ "sourceCustomObjectKey": {
140
+ "dataType": "LongNumber",
141
+ "isNullable": true,
142
+ "direction": "In",
143
+ "readOnly": false,
144
+ "access": "Hidden"
145
+ },
146
+ "fieldType": {
147
+ "dataType": "Text",
148
+ "isNullable": true,
149
+ "direction": "In",
150
+ "readOnly": false,
151
+ "access": "Hidden"
152
+ },
153
+ "eventData": {
154
+ "dataType": "Text",
155
+ "isNullable": true,
156
+ "direction": "In",
157
+ "readOnly": false,
158
+ "access": "Hidden"
159
+ },
160
+ "obfuscationProperties": {
161
+ "dataType": "Text",
162
+ "isNullable": true,
163
+ "direction": "In",
164
+ "readOnly": false,
165
+ "access": "Hidden"
166
+ },
167
+ "customObjectKey": {
168
+ "dataType": "LongNumber",
169
+ "isNullable": true,
170
+ "direction": "In",
171
+ "readOnly": true,
172
+ "access": "Hidden"
173
+ },
174
+ "definitionInstanceId": {
175
+ "dataType": "Text",
176
+ "isNullable": false,
177
+ "direction": "In",
178
+ "readOnly": false,
179
+ "access": "Hidden"
180
+ }
181
+ }
182
+ }
183
+ },
184
+ {
185
+ "id": "342dd0aa-a6be-401e-8614-3538800bfd7c",
186
+ "key": "MULTICRITERIADECISIONV2-1",
187
+ "name": "",
188
+ "description": "",
189
+ "type": "MULTICRITERIADECISION",
190
+ "outcomes": [
191
+ {
192
+ "key": "default_path_1",
193
+ "next": "EMAILV2-1",
194
+ "arguments": {},
195
+ "metaData": {
196
+ "label": "send message",
197
+ "skipI18n": true,
198
+ "isLabelFromConversion": false,
199
+ "criteriaDescription": "Email is not null"
200
+ }
201
+ },
202
+ {
203
+ "key": "remainder_path",
204
+ "next": "WAITBYDURATION-2",
205
+ "arguments": {},
206
+ "metaData": { "label": null }
207
+ }
208
+ ],
209
+ "arguments": {},
210
+ "configurationArguments": {
211
+ "criteria": {
212
+ "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>"
213
+ },
214
+ "schemaVersionId": "252"
215
+ },
216
+ "metaData": { "isConfigured": true },
217
+ "schema": {
218
+ "arguments": {
219
+ "actualChoice": {
220
+ "dataType": "Number",
221
+ "isNullable": false,
222
+ "direction": "Out",
223
+ "readOnly": false,
224
+ "access": "Hidden"
225
+ },
226
+ "filterResult": {
227
+ "dataType": "Text",
228
+ "isNullable": false,
229
+ "direction": "In",
230
+ "readOnly": true,
231
+ "access": "Hidden"
232
+ }
233
+ }
234
+ }
235
+ },
236
+ {
237
+ "id": "e2a486cf-c85f-4543-88a2-d579cac1e0de",
238
+ "key": "WAITBYDURATION-1",
239
+ "name": "1 day",
240
+ "description": "",
241
+ "type": "WAIT",
242
+ "outcomes": [
243
+ {
244
+ "key": "97af222a-450a-429e-8925-649b72f01ccf",
245
+ "arguments": {},
246
+ "metaData": { "invalid": false }
247
+ }
248
+ ],
249
+ "arguments": {},
250
+ "configurationArguments": { "waitDuration": 1, "waitUnit": "DAYS" },
251
+ "metaData": { "isConfigured": true, "uiType": "WAITBYDURATION" },
252
+ "schema": {
253
+ "arguments": {
254
+ "endDate": {
255
+ "dataType": "Date",
256
+ "isNullable": false,
257
+ "direction": "Out",
258
+ "readOnly": false,
259
+ "access": "Hidden"
260
+ },
261
+ "waitEndDateAttributeDataBound": {
262
+ "dataType": "Text",
263
+ "isNullable": true,
264
+ "direction": "In",
265
+ "readOnly": false,
266
+ "access": "Hidden"
267
+ },
268
+ "waitDefinitionId": {
269
+ "dataType": "Text",
270
+ "isNullable": false,
271
+ "direction": "In",
272
+ "readOnly": false,
273
+ "access": "Hidden"
274
+ },
275
+ "waitForEventId": {
276
+ "dataType": "Text",
277
+ "isNullable": true,
278
+ "direction": "In",
279
+ "readOnly": false,
280
+ "access": "Hidden"
281
+ },
282
+ "executionMode": {
283
+ "dataType": "Text",
284
+ "isNullable": false,
285
+ "direction": "In",
286
+ "readOnly": false,
287
+ "access": "Hidden"
288
+ },
289
+ "startActivityKey": {
290
+ "dataType": "Text",
291
+ "isNullable": true,
292
+ "direction": "In",
293
+ "readOnly": false,
294
+ "access": "Hidden"
295
+ },
296
+ "waitQueueId": {
297
+ "dataType": "LongNumber",
298
+ "isNullable": true,
299
+ "direction": "In",
300
+ "readOnly": false,
301
+ "access": "Hidden"
302
+ }
303
+ }
304
+ }
305
+ },
306
+ {
307
+ "id": "70572b1a-e274-4f09-a3fa-6fc0732ec52b",
308
+ "key": "WAITBYDURATION-2",
309
+ "name": "",
310
+ "description": "",
311
+ "type": "WAIT",
312
+ "outcomes": [
313
+ {
314
+ "key": "a0908f9f-bc3c-47f7-9489-7fef5af25ce3",
315
+ "arguments": {},
316
+ "metaData": { "invalid": false }
317
+ }
318
+ ],
319
+ "arguments": {},
320
+ "configurationArguments": { "waitDuration": 1, "waitUnit": "DAYS" },
321
+ "metaData": { "isConfigured": true, "uiType": "WAITBYDURATION" },
322
+ "schema": {
323
+ "arguments": {
324
+ "endDate": {
325
+ "dataType": "Date",
326
+ "isNullable": false,
327
+ "direction": "Out",
328
+ "readOnly": false,
329
+ "access": "Hidden"
330
+ },
331
+ "waitEndDateAttributeDataBound": {
332
+ "dataType": "Text",
333
+ "isNullable": true,
334
+ "direction": "In",
335
+ "readOnly": false,
336
+ "access": "Hidden"
337
+ },
338
+ "waitDefinitionId": {
339
+ "dataType": "Text",
340
+ "isNullable": false,
341
+ "direction": "In",
342
+ "readOnly": false,
343
+ "access": "Hidden"
344
+ },
345
+ "waitForEventId": {
346
+ "dataType": "Text",
347
+ "isNullable": true,
348
+ "direction": "In",
349
+ "readOnly": false,
350
+ "access": "Hidden"
351
+ },
352
+ "executionMode": {
353
+ "dataType": "Text",
354
+ "isNullable": false,
355
+ "direction": "In",
356
+ "readOnly": false,
357
+ "access": "Hidden"
358
+ },
359
+ "startActivityKey": {
360
+ "dataType": "Text",
361
+ "isNullable": true,
362
+ "direction": "In",
363
+ "readOnly": false,
364
+ "access": "Hidden"
365
+ },
366
+ "waitQueueId": {
367
+ "dataType": "LongNumber",
368
+ "isNullable": true,
369
+ "direction": "In",
370
+ "readOnly": false,
371
+ "access": "Hidden"
372
+ }
373
+ }
374
+ }
375
+ }
376
+ ],
377
+ "triggers": [
378
+ {
379
+ "key": "TRIGGER",
380
+ "name": "TRIGGER",
381
+ "description": "",
382
+ "type": "EmailAudience",
383
+ "outcomes": [],
384
+ "arguments": {},
385
+ "configurationArguments": {},
386
+ "metaData": {
387
+ "r__event_key": "DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e",
388
+ "chainType": "None",
389
+ "configurationRequired": false,
390
+ "iconUrl": "/images/icon-data-extension.svg",
391
+ "title": "Data Extension",
392
+ "entrySourceGroupConfigUrl": "jb:///data/entry/audience/entrysourcegroupconfig.json",
393
+ "sourceInteractionId": "00000000-0000-0000-0000-000000000000"
394
+ }
395
+ }
396
+ ],
397
+ "goals": [],
398
+ "exits": [],
399
+ "notifiers": [],
400
+ "entryMode": "NotSet",
401
+ "definitionType": "Multistep",
402
+ "channel": "",
403
+ "defaults": {
404
+ "email": ["{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}"],
405
+ "properties": {
406
+ "analyticsTracking": {
407
+ "enabled": true,
408
+ "analyticsType": "google",
409
+ "urlDomainsToTrack": []
410
+ }
411
+ }
412
+ },
413
+ "metaData": { "dataSource": "ContactsModel", "highThroughputSending": { "email": false } },
414
+ "executionMode": "Production",
415
+ "status": "Draft",
416
+ "scheduledStatus": "Draft",
417
+ "r__folder_Path": "my journeys"
418
+ }