mcdev 7.10.1 → 8.0.0

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 (144) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
  2. package/.github/workflows/code-test.yml +8 -100
  3. package/@types/lib/Deployer.d.ts.map +1 -1
  4. package/@types/lib/Retriever.d.ts.map +1 -1
  5. package/@types/lib/index.d.ts +16 -4
  6. package/@types/lib/index.d.ts.map +1 -1
  7. package/@types/lib/metadataTypes/Asset.d.ts +45 -8
  8. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/Automation.d.ts +13 -4
  10. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  12. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/Event.d.ts +6 -0
  14. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/Folder.d.ts +49 -12
  16. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/ImportFile.d.ts +14 -0
  18. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/Journey.d.ts +166 -6
  20. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/MetadataType.d.ts +5 -3
  22. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +45 -8
  24. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +6 -0
  25. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +6 -0
  26. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +49 -12
  27. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +3 -0
  28. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +159 -6
  29. package/@types/lib/util/cache.d.ts +2 -1
  30. package/@types/lib/util/cache.d.ts.map +1 -1
  31. package/@types/lib/util/devops.d.ts.map +1 -1
  32. package/@types/types/mcdev.d.d.ts +16 -0
  33. package/@types/types/mcdev.d.d.ts.map +1 -1
  34. package/boilerplate/files/.vscode/settings.json +5 -0
  35. package/eslint.config.js +2 -2
  36. package/lib/Deployer.js +3 -0
  37. package/lib/Retriever.js +8 -2
  38. package/lib/cli.js +29 -0
  39. package/lib/index.js +25 -28
  40. package/lib/metadataTypes/Asset.js +126 -10
  41. package/lib/metadataTypes/Automation.js +135 -40
  42. package/lib/metadataTypes/DataExtension.js +0 -10
  43. package/lib/metadataTypes/DataExtensionField.js +9 -15
  44. package/lib/metadataTypes/Event.js +42 -19
  45. package/lib/metadataTypes/Folder.js +98 -12
  46. package/lib/metadataTypes/ImportFile.js +90 -29
  47. package/lib/metadataTypes/Journey.js +182 -23
  48. package/lib/metadataTypes/MetadataType.js +38 -12
  49. package/lib/metadataTypes/definitions/Asset.definition.js +196 -142
  50. package/lib/metadataTypes/definitions/Automation.definition.js +6 -0
  51. package/lib/metadataTypes/definitions/DataExtension.definition.js +7 -6
  52. package/lib/metadataTypes/definitions/Event.definition.js +6 -0
  53. package/lib/metadataTypes/definitions/Folder.definition.js +69 -22
  54. package/lib/metadataTypes/definitions/ImportFile.definition.js +3 -0
  55. package/lib/metadataTypes/definitions/Journey.definition.js +165 -11
  56. package/lib/util/cache.js +24 -5
  57. package/lib/util/devops.js +20 -5
  58. package/package.json +16 -17
  59. package/test/general.test.js +8 -8
  60. package/test/mockRoot/.mcdev-validations.js +2 -3
  61. package/test/mockRoot/.mcdevrc.json +1 -1
  62. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +2 -1
  63. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +2 -1
  64. package/test/resourceFactory.js +31 -5
  65. package/test/resources/1111111/dataExtension/update-expected.json +1 -1
  66. package/test/resources/9999999/asset/test_coderesource_js-retrieve-expected.js +1 -0
  67. package/test/resources/9999999/asset/test_coderesource_js-retrieve-expected.json +47 -0
  68. package/test/resources/9999999/asset/test_coderesource_json-retrieve-expected.json +47 -0
  69. package/test/resources/9999999/asset/test_coderesource_json-retrieve-expected.jsonc +1 -0
  70. package/test/resources/9999999/asset/test_coderesource_xml-retrieve-expected.json +46 -0
  71. package/test/resources/9999999/asset/test_coderesource_xml-retrieve-expected.xml +1 -0
  72. package/test/resources/9999999/asset/test_interactivecontent-retrieve-expected.json +43 -0
  73. package/test/resources/9999999/asset/test_landingpage-retrieve-expected.json +42 -0
  74. package/test/resources/9999999/asset/test_microsite-retrieve-expected.json +43 -0
  75. package/test/resources/9999999/asset/v1/content/assets/9451/get-response.json +61 -0
  76. package/test/resources/9999999/asset/v1/content/assets/9456/get-response.json +56 -0
  77. package/test/resources/9999999/asset/v1/content/assets/9458/get-response.json +56 -0
  78. package/test/resources/9999999/asset/v1/content/assets/9460/get-response.json +59 -0
  79. package/test/resources/9999999/asset/v1/content/assets/9463/get-response.json +61 -0
  80. package/test/resources/9999999/asset/v1/content/assets/9465/get-response.json +54 -0
  81. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN1,3,4,14,15,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,210,211,212,213,214,215,216,217,218,219,220,221,222.json +94 -1
  82. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN219,220,221,222,223,224,225,226,227,228,230,232,240,241,242,243,244,245.json +168 -0
  83. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN240,241,242,243,244,245.json +144 -0
  84. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN246,247,248,249.json +132 -0
  85. package/test/resources/9999999/dataExtension/update-callout-afterCreatedViaEvent-expected.xml +1 -1
  86. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml → retrieve-ContentTypeINasset,asset-sha,automatio,cloudpage,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml} +44 -1
  87. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,useriniti-response.xml → retrieve-ContentTypeINasset,asset-sha,automatio,cloudpage,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,useriniti-response.xml} +44 -0
  88. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,dataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages,dataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +44 -0
  89. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,journey-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages,journey-response.xml} +44 -0
  90. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,cloudpages,ssjsactivity-response.xml +136 -0
  91. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,ssjsactivity-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages-response.xml} +29 -7
  92. package/test/resources/9999999/dataFolder/{+retrieve-response.xml → retrieve-response.xml} +23 -0
  93. package/test/resources/9999999/dataFolder/update-response.xml +31 -0
  94. package/test/resources/9999999/event/build-expected.json +0 -1
  95. package/test/resources/9999999/event/get-automation-expected.json +0 -1
  96. package/test/resources/9999999/event/get-expected.json +0 -2
  97. package/test/resources/9999999/event/get-published-expected.json +0 -2
  98. package/test/resources/9999999/event/post_withExistingDE-expected.json +0 -2
  99. package/test/resources/9999999/event/post_withSchema-callout-expected.json +3 -0
  100. package/test/resources/9999999/event/post_withSchema-expected.json +0 -2
  101. package/test/resources/9999999/event/put-callout-expected.json +3 -0
  102. package/test/resources/9999999/event/put-expected.json +0 -2
  103. package/test/resources/9999999/event/template-expected.json +0 -1
  104. package/test/resources/9999999/folder-deploy/Data Extensions/testExisting_folder.folder-meta.json +9 -0
  105. package/test/resources/9999999/importFile/get-dataImport-expected.json +1 -1
  106. package/test/resources/9999999/importFile/get-expected.json +4 -1
  107. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=1.json +86 -0
  108. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=2.json +101 -0
  109. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=3.json +86 -0
  110. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/delete-response-versionNumber=1.txt +1 -0
  111. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/get-response-versionNumber=1.json +461 -0
  112. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/get-response-versionNumber=3.json +461 -0
  113. package/test/resources/9999999/interaction/v1/interactions/dsfdsafdsa-922c-4568-85a5-e5cc77efc3be/audit/all/get-response-versionNumber=1.json +38 -0
  114. package/test/resources/9999999/interaction/v1/interactions/dsfdsafdsa-922c-4568-85a5-e5cc77efc3be/audit/all/get-response-versionNumber=2.json +53 -0
  115. package/test/resources/9999999/interaction/v1/interactions/get-response.json +2 -2
  116. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response-versionNumber=1.json +461 -0
  117. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response-versionNumber=1.json +253 -0
  118. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail/get-response-versionNumber=1.json +219 -0
  119. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail_notPublished/get-response-versionNumber=1.json +226 -0
  120. package/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/post-response-versionNumber=3.json +4 -0
  121. package/test/resources/9999999/journey/build-expected.json +0 -1
  122. package/test/resources/9999999/journey/create-transactionaEmail-publish-expected.json +0 -1
  123. package/test/resources/9999999/journey/get-multistep-expected.json +0 -4
  124. package/test/resources/9999999/journey/get-published-expected.json +0 -1
  125. package/test/resources/9999999/journey/get-quicksend-expected.json +0 -1
  126. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +0 -1
  127. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +0 -1
  128. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +0 -1
  129. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +0 -1
  130. package/test/resources/9999999/journey/template-expected.json +0 -1
  131. package/test/resources/9999999/query/patch-expected.sql +1 -1
  132. package/test/resources/9999999/query/post-expected.sql +1 -1
  133. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  134. package/test/type.asset.test.js +123 -13
  135. package/test/type.automation.test.js +3 -1
  136. package/test/type.folder.test.js +12 -2
  137. package/test/type.journey.test.js +130 -1
  138. package/test/type.script.test.js +1 -0
  139. package/test/type.senderProfile.test.js +1 -0
  140. package/test/utils.js +2 -0
  141. package/types/mcdev.d.js +4 -0
  142. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN219,220,221,222,223,224,225,226,227,228,230,232.json +0 -32
  143. /package/test/resources/9999999/dataFolder/{+retrieve-QAA-response.xml → retrieve-QAA-response.xml} +0 -0
  144. /package/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/{post-response.json → post-response-versionNumber=1.json} +0 -0
@@ -1251,9 +1251,10 @@ class MetadataType {
1251
1251
  * @param {MetadataTypeItem} metadataEntry a single metadata Entry
1252
1252
  * @param {string} uri rest endpoint for PATCH
1253
1253
  * @param {'patch'|'post'|'put'} [httpMethod] defaults to 'patch'; some update requests require PUT instead of PATCH
1254
+ * @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
1254
1255
  * @returns {Promise.<object> | null} Promise of API response or null in case of an error
1255
1256
  */
1256
- static async updateREST(metadataEntry, uri, httpMethod = 'patch') {
1257
+ static async updateREST(metadataEntry, uri, httpMethod = 'patch', handleOutside) {
1257
1258
  const metadataClone = structuredClone(metadataEntry);
1258
1259
  this.removeNotUpdateableFields(metadataEntry);
1259
1260
  try {
@@ -1263,7 +1264,11 @@ class MetadataType {
1263
1264
  this.getErrorsREST(response);
1264
1265
  response = await this.postUpdateTasks(metadataEntry, response, metadataClone);
1265
1266
  // some times, e.g. automation dont return a key in their update response and hence we need to fall back to name
1266
- Util.logger.info(` - updated ${Util.getTypeKeyName(this.definition, metadataEntry)}`);
1267
+ if (!handleOutside) {
1268
+ Util.logger.info(
1269
+ ` - updated ${Util.getTypeKeyName(this.definition, metadataEntry)}`
1270
+ );
1271
+ }
1267
1272
  return response;
1268
1273
  } catch (ex) {
1269
1274
  const parsedErrors = this.getErrorsREST(ex);
@@ -1435,15 +1440,35 @@ class MetadataType {
1435
1440
  const results = this.parseResponseBody(response, singleRetrieve);
1436
1441
  // get extended metadata if applicable
1437
1442
  if (this.definition.hasExtended) {
1438
- Util.logger.debug(' - retrieving extended metadata');
1439
- const extended = await this.client.rest.getCollection(
1443
+ const amount = Object.keys(results).length;
1444
+ if (amount > 100) {
1445
+ Util.logger.info(
1446
+ Util.getGrayMsg(
1447
+ ` - retrieving extended metadata for ${amount} ${this.definition.type}s...`
1448
+ )
1449
+ );
1450
+ } else {
1451
+ Util.logger.debug(' - retrieving extended metadata');
1452
+ }
1453
+ const rateLimit = pLimit(this.definition.restConcurrentLimit || 5);
1454
+ const extended = await Promise.all(
1440
1455
  Object.keys(results)
1441
- .map((key) =>
1442
- uri.endsWith(results[key][this.definition.idField])
1456
+ .map((key) => {
1457
+ const url = uri.endsWith(results[key][this.definition.idField])
1443
1458
  ? null
1444
- : uri + results[key][this.definition.idField]
1445
- )
1459
+ : uri + results[key][this.definition.idField];
1460
+ return url ? { url, key } : null;
1461
+ })
1446
1462
  .filter(Boolean)
1463
+ .map((el) =>
1464
+ rateLimit(async () => {
1465
+ try {
1466
+ return await this.client.rest.get(el.url);
1467
+ } catch (ex) {
1468
+ return await this.handleRESTErrors(ex, el.key, el.url);
1469
+ }
1470
+ })
1471
+ )
1447
1472
  );
1448
1473
  for (const ext of extended) {
1449
1474
  const key = ext[this.definition.keyField];
@@ -1501,7 +1526,7 @@ class MetadataType {
1501
1526
  try {
1502
1527
  return await this.client.rest.get(item.uri);
1503
1528
  } catch (ex) {
1504
- return this.handleRESTErrors(ex, item.id);
1529
+ return await this.handleRESTErrors(ex, item.id, item.uri);
1505
1530
  }
1506
1531
  })
1507
1532
  )
@@ -1523,12 +1548,13 @@ class MetadataType {
1523
1548
  * helper for {@link this.retrieveRESTcollection}
1524
1549
  *
1525
1550
  * @param {RestError} ex exception
1526
- * @param {string} id id or key of item
1551
+ * @param {string} key id or key of item
1552
+ * @param {string} url url to call for retry
1527
1553
  * @returns {Promise.<any>} -
1528
1554
  */
1529
- static async handleRESTErrors(ex, id) {
1555
+ static async handleRESTErrors(ex, key, url) {
1530
1556
  // if the ID is too short, the system will throw the 400 error
1531
- Util.logger.debug(` ☇ skipping ${this.definition.type} ${id}: ${ex.message} ${ex.code}`);
1557
+ Util.logger.debug(` ☇ skipping ${this.definition.type} ${key}: ${ex.message} ${ex.code}`);
1532
1558
 
1533
1559
  return null;
1534
1560
  }
@@ -1,7 +1,7 @@
1
1
  // asset types https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/base-asset-types.htm
2
2
  export default {
3
3
  bodyIteratorField: 'items',
4
- dependencies: ['folder-asset', 'folder-asset-shared'],
4
+ dependencies: ['folder-asset', 'folder-asset-shared', 'folder-cloudpages'],
5
5
  dependencyGraph: { asset: ['views.html.template.r__asset_key'] },
6
6
  folderType: 'asset',
7
7
  hasExtended: false,
@@ -18,7 +18,16 @@ export default {
18
18
  maxKeyLength: 36, // confirmed max length
19
19
  type: 'asset',
20
20
  typeDescription: 'Assets from Content Builder grouped into subtypes.',
21
- typeRetrieveByDefault: ['asset', 'code', 'textfile', 'block', 'message', 'template', 'other'],
21
+ typeRetrieveByDefault: [
22
+ 'asset',
23
+ 'code',
24
+ 'coderesource',
25
+ 'textfile',
26
+ 'block',
27
+ 'message',
28
+ 'template',
29
+ 'other',
30
+ ],
22
31
  typeCdpByDefault: true,
23
32
  typeName: 'Asset-[Subtype]',
24
33
  stringifyFieldsBeforeTemplate: ['memberId', 'enterpriseId'],
@@ -156,6 +165,12 @@ export default {
156
165
  retrieving: true,
157
166
  template: true,
158
167
  },
168
+ 'content.url': {
169
+ isCreateable: false,
170
+ isUpdateable: true,
171
+ retrieving: true,
172
+ template: true,
173
+ },
159
174
  contentType: {
160
175
  isCreateable: true,
161
176
  isUpdateable: true,
@@ -234,7 +249,24 @@ export default {
234
249
  retrieving: false,
235
250
  template: false,
236
251
  },
237
-
252
+ 'data.site': {
253
+ isCreateable: true,
254
+ isUpdateable: true,
255
+ retrieving: true,
256
+ template: true,
257
+ },
258
+ 'data.site.content': {
259
+ isCreateable: true,
260
+ isUpdateable: true,
261
+ retrieving: true,
262
+ template: true,
263
+ },
264
+ 'data.site.content.url': {
265
+ isCreateable: true,
266
+ isUpdateable: true,
267
+ retrieving: true,
268
+ template: true,
269
+ },
238
270
  description: {
239
271
  isCreateable: true,
240
272
  isUpdateable: true,
@@ -509,7 +541,9 @@ export default {
509
541
  'asset',
510
542
  'audio',
511
543
  'block',
544
+ 'cloudpage',
512
545
  'code',
546
+ 'coderesource',
513
547
  'document',
514
548
  'image',
515
549
  'message',
@@ -524,7 +558,136 @@ export default {
524
558
 
525
559
  binarySubtypes: ['archive', 'audio', 'document', 'image', 'rawimage', 'video'],
526
560
  extendedSubTypes: {
561
+ archive: [
562
+ '7z',
563
+ 'arj',
564
+ 'bz2',
565
+ 'cab',
566
+ 'gz',
567
+ 'gzip',
568
+ 'iso',
569
+ 'lha',
570
+ 'sit',
571
+ 'tgz',
572
+ 'jar',
573
+ 'rar',
574
+ 'tar',
575
+ 'zip',
576
+ 'gpg',
577
+ 'archive',
578
+ ],
527
579
  asset: ['webpage', 'webtemplate', 'jsonmessage', 'icemailformblock', 'asset'],
580
+ audio: [
581
+ 'aac',
582
+ 'm4a',
583
+ 'au',
584
+ 'aif',
585
+ 'aiff',
586
+ 'aifc',
587
+ 'mp3',
588
+ 'wav',
589
+ 'wma',
590
+ 'midi',
591
+ 'oga',
592
+ 'ogg',
593
+ 'ra',
594
+ 'vox',
595
+ 'voc',
596
+ 'audio',
597
+ ],
598
+ block: [
599
+ 'freeformblock',
600
+ 'textblock',
601
+ 'htmlblock',
602
+ 'textplusimageblock',
603
+ 'imageblock',
604
+ 'abtestblock',
605
+ 'dynamicblock',
606
+ 'stylingblock',
607
+ 'einsteincontentblock',
608
+ 'socialshareblock',
609
+ 'socialfollowblock',
610
+ 'buttonblock',
611
+ 'layoutblock',
612
+ 'block',
613
+ ],
614
+ cloudpage: ['cloudpages', 'landingpage', 'microsite', 'interactivecontent'],
615
+ code: [
616
+ 'htm',
617
+ 'html',
618
+ 'xhtml',
619
+ 'xht',
620
+ 'css',
621
+ 'less',
622
+ 'sass',
623
+ 'js',
624
+ 'json',
625
+ 'atom',
626
+ 'rss',
627
+ 'xml',
628
+ 'xsl',
629
+ 'xslt',
630
+ 'md',
631
+ 'markdown',
632
+ 'as',
633
+ 'fla',
634
+ 'eml',
635
+ 'code',
636
+ ],
637
+ coderesource: [
638
+ 'jscoderesource',
639
+ 'csscoderesource',
640
+ 'jsoncoderesource',
641
+ 'rsscoderesource',
642
+ 'textcoderesource',
643
+ 'xmlcoderesource',
644
+ ],
645
+ document: [
646
+ 'indd',
647
+ 'indt',
648
+ 'incx',
649
+ 'wwcx',
650
+ 'doc',
651
+ 'docx',
652
+ 'dot',
653
+ 'dotx',
654
+ 'mdb',
655
+ 'mpp',
656
+ 'ics',
657
+ 'xls',
658
+ 'xlsx',
659
+ 'xlk',
660
+ 'xlsm',
661
+ 'xlt',
662
+ 'xltm',
663
+ 'csv',
664
+ 'tsv',
665
+ 'tab',
666
+ 'pps',
667
+ 'ppsx',
668
+ 'ppt',
669
+ 'pptx',
670
+ 'pot',
671
+ 'thmx',
672
+ 'pdf',
673
+ 'ps',
674
+ 'qxd',
675
+ 'rtf',
676
+ 'sxc',
677
+ 'sxi',
678
+ 'sxw',
679
+ 'odt',
680
+ 'ods',
681
+ 'ots',
682
+ 'odp',
683
+ 'otp',
684
+ 'epub',
685
+ 'dvi',
686
+ 'key',
687
+ 'keynote',
688
+ 'pez',
689
+ 'document',
690
+ ],
528
691
  image: [
529
692
  'ai',
530
693
  'psd',
@@ -552,6 +715,23 @@ export default {
552
715
  'svg',
553
716
  'image',
554
717
  ],
718
+ message: ['templatebasedemail', 'htmlemail', 'textonlyemail', 'message'],
719
+ other: [
720
+ 'smartcaptureblock',
721
+ 'smartcaptureformfieldblock',
722
+ 'smartcapturesubmitoptionsblock',
723
+ 'slotpropertiesblock',
724
+ 'externalcontentblock',
725
+ 'codesnippetblock',
726
+ 'rssfeedblock',
727
+ 'formstylingblock',
728
+ 'referenceblock',
729
+ 'imagecarouselblock',
730
+ 'customblock',
731
+ 'liveimageblock',
732
+ 'livesettingblock',
733
+ 'contentmap',
734
+ ],
555
735
  rawimage: [
556
736
  '3fr',
557
737
  'ari',
@@ -590,6 +770,8 @@ export default {
590
770
  'x3f',
591
771
  'rawimage',
592
772
  ],
773
+ template: ['defaulttemplate', 'template'],
774
+ textfile: ['text', 'txt', 'textfile'],
593
775
  video: [
594
776
  '3gp',
595
777
  '3gpp',
@@ -619,145 +801,6 @@ export default {
619
801
  'ogv',
620
802
  'video',
621
803
  ],
622
- document: [
623
- 'indd',
624
- 'indt',
625
- 'incx',
626
- 'wwcx',
627
- 'doc',
628
- 'docx',
629
- 'dot',
630
- 'dotx',
631
- 'mdb',
632
- 'mpp',
633
- 'ics',
634
- 'xls',
635
- 'xlsx',
636
- 'xlk',
637
- 'xlsm',
638
- 'xlt',
639
- 'xltm',
640
- 'csv',
641
- 'tsv',
642
- 'tab',
643
- 'pps',
644
- 'ppsx',
645
- 'ppt',
646
- 'pptx',
647
- 'pot',
648
- 'thmx',
649
- 'pdf',
650
- 'ps',
651
- 'qxd',
652
- 'rtf',
653
- 'sxc',
654
- 'sxi',
655
- 'sxw',
656
- 'odt',
657
- 'ods',
658
- 'ots',
659
- 'odp',
660
- 'otp',
661
- 'epub',
662
- 'dvi',
663
- 'key',
664
- 'keynote',
665
- 'pez',
666
- 'document',
667
- ],
668
- audio: [
669
- 'aac',
670
- 'm4a',
671
- 'au',
672
- 'aif',
673
- 'aiff',
674
- 'aifc',
675
- 'mp3',
676
- 'wav',
677
- 'wma',
678
- 'midi',
679
- 'oga',
680
- 'ogg',
681
- 'ra',
682
- 'vox',
683
- 'voc',
684
- 'audio',
685
- ],
686
- archive: [
687
- '7z',
688
- 'arj',
689
- 'bz2',
690
- 'cab',
691
- 'gz',
692
- 'gzip',
693
- 'iso',
694
- 'lha',
695
- 'sit',
696
- 'tgz',
697
- 'jar',
698
- 'rar',
699
- 'tar',
700
- 'zip',
701
- 'gpg',
702
- 'archive',
703
- ],
704
- code: [
705
- 'htm',
706
- 'html',
707
- 'xhtml',
708
- 'xht',
709
- 'css',
710
- 'less',
711
- 'sass',
712
- 'js',
713
- 'json',
714
- 'atom',
715
- 'rss',
716
- 'xml',
717
- 'xsl',
718
- 'xslt',
719
- 'md',
720
- 'markdown',
721
- 'as',
722
- 'fla',
723
- 'eml',
724
- 'code',
725
- ],
726
- textfile: ['text', 'txt', 'textfile'],
727
- block: [
728
- 'freeformblock',
729
- 'textblock',
730
- 'htmlblock',
731
- 'textplusimageblock',
732
- 'imageblock',
733
- 'abtestblock',
734
- 'dynamicblock',
735
- 'stylingblock',
736
- 'einsteincontentblock',
737
- 'socialshareblock',
738
- 'socialfollowblock',
739
- 'buttonblock',
740
- 'layoutblock',
741
- 'block',
742
- ],
743
- template: ['defaulttemplate', 'template'],
744
- message: ['templatebasedemail', 'htmlemail', 'textonlyemail', 'message'],
745
- other: [
746
- 'smartcaptureblock',
747
- 'smartcaptureformfieldblock',
748
- 'smartcapturesubmitoptionsblock',
749
- 'slotpropertiesblock',
750
- 'externalcontentblock',
751
- 'codesnippetblock',
752
- 'rssfeedblock',
753
- 'formstylingblock',
754
- 'referenceblock',
755
- 'imagecarouselblock',
756
- 'customblock',
757
- 'liveimageblock',
758
- 'livesettingblock',
759
- 'contentmap',
760
- ],
761
804
  },
762
805
  typeMapping: {
763
806
  asset: 1,
@@ -989,5 +1032,16 @@ export default {
989
1032
  contentmap: 228,
990
1033
  jsonmessage: 230,
991
1034
  icemailformblock: 232,
1035
+ coderesource: 239,
1036
+ jscoderesource: 240,
1037
+ csscoderesource: 241,
1038
+ jsoncoderesource: 242,
1039
+ rsscoderesource: 243,
1040
+ textcoderesource: 244,
1041
+ xmlcoderesource: 245,
1042
+ cloudpages: 246,
1043
+ landingpage: 247,
1044
+ microsite: 248,
1045
+ interactivecontent: 249,
992
1046
  },
993
1047
  };
@@ -551,6 +551,12 @@ export default {
551
551
  retrieving: false,
552
552
  template: false,
553
553
  },
554
+ 'schedule.description': {
555
+ isCreateable: false,
556
+ isUpdateable: false,
557
+ retrieving: false,
558
+ template: false,
559
+ },
554
560
  status: {
555
561
  isCreateable: true,
556
562
  isUpdateable: true,
@@ -136,6 +136,7 @@ export default {
136
136
  template: true,
137
137
  },
138
138
  DataRetentionPeriod: {
139
+ // not used
139
140
  isCreateable: false,
140
141
  isUpdateable: false,
141
142
  retrieving: false,
@@ -143,19 +144,19 @@ export default {
143
144
  },
144
145
  DataRetentionPeriodLength: {
145
146
  isCreateable: true,
146
- isUpdateable: false,
147
+ isUpdateable: true,
147
148
  retrieving: true,
148
149
  template: true,
149
150
  },
150
151
  DataRetentionPeriodUnitOfMeasure: {
151
152
  isCreateable: true,
152
- isUpdateable: false,
153
+ isUpdateable: true,
153
154
  retrieving: true,
154
155
  template: true,
155
156
  },
156
157
  DeleteAtEndOfRetentionPeriod: {
157
158
  isCreateable: true,
158
- isUpdateable: false,
159
+ isUpdateable: true,
159
160
  retrieving: true,
160
161
  template: true,
161
162
  },
@@ -215,19 +216,19 @@ export default {
215
216
  },
216
217
  ResetRetentionPeriodOnImport: {
217
218
  isCreateable: true,
218
- isUpdateable: false,
219
+ isUpdateable: true,
219
220
  retrieving: true,
220
221
  template: true,
221
222
  },
222
223
  RetainUntil: {
223
224
  isCreateable: true,
224
- isUpdateable: false,
225
+ isUpdateable: true,
225
226
  retrieving: true,
226
227
  template: true,
227
228
  },
228
229
  RowBasedRetention: {
229
230
  isCreateable: true,
230
- isUpdateable: false,
231
+ isUpdateable: true,
231
232
  retrieving: true,
232
233
  template: true,
233
234
  },
@@ -1001,6 +1001,12 @@ export default {
1001
1001
  retrieving: true,
1002
1002
  template: true,
1003
1003
  },
1004
+ entrySourceGroupConfigUrl: {
1005
+ isCreateable: true,
1006
+ isUpdateable: true,
1007
+ retrieving: true,
1008
+ template: true,
1009
+ },
1004
1010
  type: {
1005
1011
  isCreateable: true,
1006
1012
  isUpdateable: true,