mcdev 7.1.3 → 7.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
  2. package/@types/lib/Builder.d.ts.map +1 -1
  3. package/@types/lib/Deployer.d.ts.map +1 -1
  4. package/@types/lib/cli.d.ts.map +1 -1
  5. package/@types/lib/index.d.ts.map +1 -1
  6. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  7. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
  8. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  10. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
  12. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  14. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
  16. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
  18. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
  20. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  22. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/List.d.ts.map +1 -1
  24. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
  26. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  27. package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
  28. package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
  29. package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
  30. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
  31. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  32. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
  33. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
  34. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
  35. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
  36. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
  37. package/@types/lib/metadataTypes/User.d.ts.map +1 -1
  38. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
  39. package/@types/lib/util/auth.d.ts.map +1 -1
  40. package/@types/lib/util/cache.d.ts.map +1 -1
  41. package/@types/lib/util/cli.d.ts.map +1 -1
  42. package/@types/lib/util/config.d.ts.map +1 -1
  43. package/@types/lib/util/devops.d.ts.map +1 -1
  44. package/@types/lib/util/file.d.ts.map +1 -1
  45. package/@types/lib/util/init.config.d.ts.map +1 -1
  46. package/@types/lib/util/init.d.ts.map +1 -1
  47. package/@types/lib/util/init.git.d.ts.map +1 -1
  48. package/@types/lib/util/init.npm.d.ts.map +1 -1
  49. package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
  50. package/@types/lib/util/util.d.ts.map +1 -1
  51. package/@types/types/mcdev.d.d.ts.map +1 -1
  52. package/lib/Builder.js +4 -0
  53. package/lib/Deployer.js +2 -0
  54. package/lib/cli.js +1 -0
  55. package/lib/index.js +31 -0
  56. package/lib/metadataTypes/Asset.js +30 -0
  57. package/lib/metadataTypes/AttributeGroup.js +2 -0
  58. package/lib/metadataTypes/AttributeSet.js +3 -0
  59. package/lib/metadataTypes/Automation.js +15 -0
  60. package/lib/metadataTypes/Campaign.js +1 -0
  61. package/lib/metadataTypes/ContentArea.js +2 -0
  62. package/lib/metadataTypes/DataExtension.js +12 -0
  63. package/lib/metadataTypes/DataExtensionField.js +8 -0
  64. package/lib/metadataTypes/DataExtract.js +3 -0
  65. package/lib/metadataTypes/DataExtractType.js +1 -0
  66. package/lib/metadataTypes/Discovery.js +1 -0
  67. package/lib/metadataTypes/Email.js +2 -0
  68. package/lib/metadataTypes/Event.js +4 -0
  69. package/lib/metadataTypes/FileTransfer.js +1 -0
  70. package/lib/metadataTypes/Folder.js +14 -2
  71. package/lib/metadataTypes/ImportFile.js +2 -0
  72. package/lib/metadataTypes/Journey.js +8 -0
  73. package/lib/metadataTypes/List.js +2 -0
  74. package/lib/metadataTypes/MetadataType.js +34 -0
  75. package/lib/metadataTypes/MobileKeyword.js +8 -0
  76. package/lib/metadataTypes/MobileMessage.js +7 -0
  77. package/lib/metadataTypes/Query.js +9 -0
  78. package/lib/metadataTypes/Role.js +1 -0
  79. package/lib/metadataTypes/Script.js +7 -0
  80. package/lib/metadataTypes/SendClassification.js +2 -0
  81. package/lib/metadataTypes/SenderProfile.js +2 -0
  82. package/lib/metadataTypes/TransactionalEmail.js +3 -0
  83. package/lib/metadataTypes/TransactionalMessage.js +3 -0
  84. package/lib/metadataTypes/TransactionalPush.js +1 -0
  85. package/lib/metadataTypes/TransactionalSMS.js +8 -0
  86. package/lib/metadataTypes/TriggeredSend.js +4 -0
  87. package/lib/metadataTypes/User.js +10 -0
  88. package/lib/metadataTypes/Verification.js +3 -0
  89. package/lib/retrieveChangelog.js +1 -0
  90. package/lib/util/auth.js +3 -0
  91. package/lib/util/cache.js +8 -0
  92. package/lib/util/cli.js +8 -0
  93. package/lib/util/config.js +2 -0
  94. package/lib/util/devops.js +2 -0
  95. package/lib/util/file.js +12 -0
  96. package/lib/util/init.config.js +5 -0
  97. package/lib/util/init.git.js +4 -0
  98. package/lib/util/init.js +4 -0
  99. package/lib/util/init.npm.js +1 -0
  100. package/lib/util/replaceContentBlockReference.js +1 -0
  101. package/lib/util/util.js +29 -0
  102. package/package.json +6 -6
  103. package/test/mockRoot/.mcdevrc.json +1 -1
  104. package/test/resourceFactory.js +15 -1
  105. package/test/resources/9999999/dataFolder/+retrieve-QAA-response.xml +387 -0
  106. package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=my,ParentFolderID=2-response.xml +33 -0
  107. package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=path,ParentFolderID=862002-response.xml +33 -0
  108. package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=sub,ParentFolderID=862001-response.xml +33 -0
  109. package/test/resources/9999999/dataFolder/create-ContentType=dataextension,Name=subpath,ParentFolderID=862003-response.xml +33 -0
  110. package/test/resources/9999999/email/v1/category/post-response-parentCatId=290937,name=my,catType=automations.json +7 -0
  111. package/test/resources/9999999/email/v1/category/post-response-parentCatId=862100,name=sub,catType=automations.json +7 -0
  112. package/test/resources/9999999/email/v1/category/post-response-parentCatId=862101,name=path,catType=automations.json +7 -0
  113. package/test/resources/9999999/email/v1/category/post-response-parentCatId=862102,name=subpath,catType=automations.json +7 -0
  114. package/test/resources/9999999/folder-deploy/Data Extensions/my/sub/path/subpath.folder-meta.json +9 -0
  115. package/test/resources/9999999/folder-deploy/Data Extensions/my/sub/path.folder-meta.json +9 -0
  116. package/test/resources/9999999/folder-deploy/Data Extensions/my/sub.folder-meta.json +9 -0
  117. package/test/resources/9999999/folder-deploy/Data Extensions/my.folder-meta.json +9 -0
  118. package/test/resources/9999999/folder-deploy/my automations/my/sub/path/subpath.folder-meta.json +9 -0
  119. package/test/resources/9999999/folder-deploy/my automations/my/sub/path.folder-meta.json +9 -0
  120. package/test/resources/9999999/folder-deploy/my automations/my/sub.folder-meta.json +9 -0
  121. package/test/resources/9999999/folder-deploy/my automations/my.folder-meta.json +9 -0
  122. package/test/type.asset.test.js +4 -0
  123. package/test/type.folder.test.js +97 -0
  124. package/test/utils.js +44 -5
  125. package/types/mcdev.d.js +27 -0
  126. /package/test/resources/9999999/dataFolder/{retrieve-response-.xml → +retrieve-response.xml} +0 -0
@@ -215,6 +215,7 @@ class MetadataType {
215
215
  static postRetrieveTasks(metadata, targetDir, isTemplating) {
216
216
  return structuredClone(metadata);
217
217
  }
218
+
218
219
  /**
219
220
  * generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
220
221
  *
@@ -240,6 +241,7 @@ class MetadataType {
240
241
  );
241
242
  }
242
243
  }
244
+
243
245
  /**
244
246
  * generic script that retrieves the folder ID from cache and updates the given metadata with it before deploy
245
247
  *
@@ -272,6 +274,7 @@ class MetadataType {
272
274
  const metadata = {};
273
275
  return { metadata: {}, type: this.definition.type };
274
276
  }
277
+
275
278
  /**
276
279
  * Gets metadata from Marketing Cloud
277
280
  *
@@ -294,6 +297,7 @@ class MetadataType {
294
297
  static async retrieveForCache(additionalFields, subTypeArr, key) {
295
298
  return this.retrieve(null, additionalFields, subTypeArr, key);
296
299
  }
300
+
297
301
  /**
298
302
  * Gets metadata cache with limited fields and does not store value to disk
299
303
  *
@@ -313,6 +317,7 @@ class MetadataType {
313
317
  );
314
318
  return { metadata: null, type: this.definition.type };
315
319
  }
320
+
316
321
  /**
317
322
  * Retrieve a specific Script by Name
318
323
  *
@@ -468,6 +473,7 @@ class MetadataType {
468
473
  );
469
474
  return;
470
475
  }
476
+
471
477
  /**
472
478
  * Abstract refresh method that needs to be implemented in child metadata type
473
479
  *
@@ -500,6 +506,7 @@ class MetadataType {
500
506
  await this.replaceCbReferenceLoop(metadataMap, retrieveDir, findAssetKeys);
501
507
  return findAssetKeys;
502
508
  }
509
+
503
510
  /**
504
511
  * this iterates over all items found in the retrieve folder and executes the type-specific method for replacing references
505
512
  *
@@ -573,6 +580,7 @@ class MetadataType {
573
580
  }
574
581
  return keysForDeploy;
575
582
  }
583
+
576
584
  /**
577
585
  * Abstract execute method that needs to be implemented in child metadata type
578
586
  *
@@ -600,6 +608,7 @@ class MetadataType {
600
608
  );
601
609
  return [];
602
610
  }
611
+
603
612
  /**
604
613
  * Abstract pause method that needs to be implemented in child metadata type
605
614
  *
@@ -625,6 +634,7 @@ class MetadataType {
625
634
  // should be set up type by type but the *_generic version is likely a good start for many types
626
635
  return true;
627
636
  }
637
+
628
638
  /**
629
639
  * test if metadata was actually changed or not to potentially skip it during deployment
630
640
  *
@@ -681,6 +691,7 @@ class MetadataType {
681
691
  }
682
692
  return false;
683
693
  }
694
+
684
695
  /**
685
696
  * MetadataType upsert, after retrieving from target and comparing to check if create or update operation is needed.
686
697
  *
@@ -1200,6 +1211,7 @@ class MetadataType {
1200
1211
  return null;
1201
1212
  }
1202
1213
  }
1214
+
1203
1215
  /**
1204
1216
  *
1205
1217
  * @param {SOAPError} ex error that occured
@@ -1216,6 +1228,7 @@ class MetadataType {
1216
1228
  Util.logger.error(` ☇ error ${msg} ${this.definition.type}${name}: ${errorMsg}`);
1217
1229
  }
1218
1230
  }
1231
+
1219
1232
  /**
1220
1233
  * helper for {@link MetadataType._handleSOAPErrors}
1221
1234
  *
@@ -1232,6 +1245,7 @@ class MetadataType {
1232
1245
  }
1233
1246
  return ex.message;
1234
1247
  }
1248
+
1235
1249
  /**
1236
1250
  * Retrieves SOAP via generic fuel-soap wrapper based metadata of metadata type into local filesystem. executes callback with retrieved metadata
1237
1251
  *
@@ -1321,6 +1335,7 @@ class MetadataType {
1321
1335
  type: this.definition.type,
1322
1336
  };
1323
1337
  }
1338
+
1324
1339
  /**
1325
1340
  *
1326
1341
  * @param {object[]} urlArray {uri: string, id: string} combo of URL and ID/key of metadata
@@ -1377,6 +1392,7 @@ class MetadataType {
1377
1392
 
1378
1393
  return null;
1379
1394
  }
1395
+
1380
1396
  /**
1381
1397
  * Used to execute a query/automation etc.
1382
1398
  *
@@ -1588,6 +1604,7 @@ class MetadataType {
1588
1604
  }, metadataEntry);
1589
1605
  }
1590
1606
  }
1607
+
1591
1608
  /**
1592
1609
  * Remove fields from metadata entry that are not createable
1593
1610
  *
@@ -1681,6 +1698,7 @@ class MetadataType {
1681
1698
  // this metadata type has no filters defined or no match was found
1682
1699
  return false;
1683
1700
  }
1701
+
1684
1702
  /**
1685
1703
  * optionally filter by what folder something is in
1686
1704
  *
@@ -1750,6 +1768,7 @@ class MetadataType {
1750
1768
  // this metadata type has no filters defined or no match was found
1751
1769
  return false;
1752
1770
  }
1771
+
1753
1772
  /**
1754
1773
  * internal helper
1755
1774
  *
@@ -1780,6 +1799,7 @@ class MetadataType {
1780
1799
  // no filters matched
1781
1800
  return false;
1782
1801
  }
1802
+
1783
1803
  /**
1784
1804
  * internal helper
1785
1805
  *
@@ -1993,6 +2013,7 @@ class MetadataType {
1993
2013
 
1994
2014
  return saveClone;
1995
2015
  }
2016
+
1996
2017
  /**
1997
2018
  * helper for {@link MetadataType.buildDefinitionForNested}
1998
2019
  * searches extracted file for template variable names and applies the market values
@@ -2005,6 +2026,7 @@ class MetadataType {
2005
2026
  // replace template variables with their values
2006
2027
  return Mustache.render(code, templateVariables, {}, ['{{{', '}}}']);
2007
2028
  }
2029
+
2008
2030
  /**
2009
2031
  * helper for {@link MetadataType.buildTemplateForNested}
2010
2032
  * searches extracted file for template variable values and applies the market variable names
@@ -2017,6 +2039,7 @@ class MetadataType {
2017
2039
  // replace template variables with their values
2018
2040
  return Util.replaceByObject(code, templateVariables);
2019
2041
  }
2042
+
2020
2043
  /**
2021
2044
  * helper for {@link MetadataType.buildDefinition}
2022
2045
  * handles extracted code if any are found for complex types (e.g script, asset, query)
@@ -2038,6 +2061,7 @@ class MetadataType {
2038
2061
  // generic version here does nothing. actual cases handled in type classes
2039
2062
  return null;
2040
2063
  }
2064
+
2041
2065
  /**
2042
2066
  * helper for {@link MetadataType.buildTemplate}
2043
2067
  * handles extracted code if any are found for complex types
@@ -2059,6 +2083,7 @@ class MetadataType {
2059
2083
  // generic version here does nothing. actual cases handled in type classes
2060
2084
  return null;
2061
2085
  }
2086
+
2062
2087
  /**
2063
2088
  * check template directory for complex types that open subfolders for their subtypes
2064
2089
  *
@@ -2069,6 +2094,7 @@ class MetadataType {
2069
2094
  static async findSubType(templateDir, templateName) {
2070
2095
  return null;
2071
2096
  }
2097
+
2072
2098
  /**
2073
2099
  * optional method used for some types to try a different folder structure
2074
2100
  *
@@ -2083,6 +2109,7 @@ class MetadataType {
2083
2109
  // we just want to push the method into the catch here
2084
2110
  return;
2085
2111
  }
2112
+
2086
2113
  /**
2087
2114
  * Builds definition based on template
2088
2115
  * NOTE: Most metadata files should use this generic method, unless custom
@@ -2196,6 +2223,7 @@ class MetadataType {
2196
2223
  throw new Error(`${this.definition.type}:: ${ex.message}`);
2197
2224
  }
2198
2225
  }
2226
+
2199
2227
  /**
2200
2228
  * Standardizes a check for multiple messages
2201
2229
  *
@@ -2270,6 +2298,7 @@ class MetadataType {
2270
2298
  Util.logger.error(`Deletion is not yet supported for ${this.definition.typeName}!`);
2271
2299
  return false;
2272
2300
  }
2301
+
2273
2302
  /**
2274
2303
  * clean up after deleting a metadata item
2275
2304
  *
@@ -2327,6 +2356,7 @@ class MetadataType {
2327
2356
  return false;
2328
2357
  }
2329
2358
  }
2359
+
2330
2360
  /**
2331
2361
  * Delete a data extension from the specified business unit
2332
2362
  *
@@ -2354,6 +2384,7 @@ class MetadataType {
2354
2384
  return false;
2355
2385
  }
2356
2386
  }
2387
+
2357
2388
  /**
2358
2389
  * Returns metadata of a business unit that is saved locally
2359
2390
  *
@@ -2377,6 +2408,7 @@ class MetadataType {
2377
2408
  throw new Error(ex.message);
2378
2409
  }
2379
2410
  }
2411
+
2380
2412
  /**
2381
2413
  * should return only the json for all but asset, query and script that are saved as multiple files
2382
2414
  * additionally, the documentation for dataExtension and automation should be returned
@@ -2396,6 +2428,7 @@ class MetadataType {
2396
2428
  const fileList = keyArr.map((key) => File.normalizePath([path, key + typeExtension]));
2397
2429
  return fileList;
2398
2430
  }
2431
+
2399
2432
  /**
2400
2433
  *
2401
2434
  * @param {string[]} keyArr customerkey of the metadata
@@ -2632,6 +2665,7 @@ class MetadataType {
2632
2665
  }
2633
2666
  return keysForDeploy;
2634
2667
  }
2668
+
2635
2669
  /**
2636
2670
  * helper for getKeysForFixing and createOrUpdate
2637
2671
  *
@@ -252,6 +252,7 @@ class MobileKeyword extends MetadataType {
252
252
  static create(metadata) {
253
253
  return super.createREST(metadata, '/legacy/v1/beta/mobile/keyword/');
254
254
  }
255
+
255
256
  /**
256
257
  * Updates a single item
257
258
  *
@@ -307,6 +308,7 @@ class MobileKeyword extends MetadataType {
307
308
  return metadata;
308
309
  }
309
310
  }
311
+
310
312
  /**
311
313
  * helper for {@link MobileKeyword.postRetrieveTasks} and {@link MobileKeyword._buildForNested}
312
314
  *
@@ -319,6 +321,7 @@ class MobileKeyword extends MetadataType {
319
321
 
320
322
  return { fileExt, code };
321
323
  }
324
+
322
325
  /**
323
326
  * helper for {@link MetadataType.buildDefinition}
324
327
  * handles extracted code if any are found for complex types
@@ -346,6 +349,7 @@ class MobileKeyword extends MetadataType {
346
349
  'definition'
347
350
  );
348
351
  }
352
+
349
353
  /**
350
354
  * helper for {@link MetadataType.buildTemplate}
351
355
  * handles extracted code if any are found for complex types
@@ -471,6 +475,7 @@ class MobileKeyword extends MetadataType {
471
475
  this.#setCodeAndKeyword(metadata);
472
476
  return metadata;
473
477
  }
478
+
474
479
  /**
475
480
  * helper for {@link MetadataType.createREST}
476
481
  *
@@ -481,6 +486,7 @@ class MobileKeyword extends MetadataType {
481
486
  static async postCreateTasks(metadataEntry, apiResponse) {
482
487
  await super.postDeployTasks_legacyApi(metadataEntry, apiResponse);
483
488
  }
489
+
484
490
  /**
485
491
  * helper for {@link MetadataType.updateREST}
486
492
  *
@@ -520,6 +526,7 @@ class MobileKeyword extends MetadataType {
520
526
  return null;
521
527
  }
522
528
  }
529
+
523
530
  /**
524
531
  * Delete a metadata item from the specified business unit
525
532
  *
@@ -552,6 +559,7 @@ class MobileKeyword extends MetadataType {
552
559
  // delete local copy: retrieve/cred/bu/type/...-meta.amp
553
560
  super.postDeleteTasks(customerKey, [`${this.definition.type}-meta.amp`]);
554
561
  }
562
+
555
563
  /**
556
564
  * should return only the json for all but asset, query and script that are saved as multiple files
557
565
  * additionally, the documentation for dataExtension and automation should be returned
@@ -95,6 +95,7 @@ class MobileMessage extends MetadataType {
95
95
  static create(metadata) {
96
96
  return super.createREST(metadata, '/legacy/v1/beta/mobile/message/');
97
97
  }
98
+
98
99
  /**
99
100
  * helper for {@link MobileMessage.preDeployTasks} that loads extracted code content back into JSON
100
101
  *
@@ -122,6 +123,7 @@ class MobileMessage extends MetadataType {
122
123
  throw new Error(`Could not find ${codePath}.${fileExtension}`);
123
124
  }
124
125
  }
126
+
125
127
  /**
126
128
  * helper for {@link MobileMessage.postRetrieveTasks} and {@link MobileMessage._buildForNested}
127
129
  *
@@ -330,6 +332,7 @@ class MobileMessage extends MetadataType {
330
332
 
331
333
  return metadata;
332
334
  }
335
+
333
336
  /**
334
337
  * helper for {@link MetadataType.createREST}
335
338
  *
@@ -340,6 +343,7 @@ class MobileMessage extends MetadataType {
340
343
  static async postCreateTasks(metadataEntry, apiResponse) {
341
344
  await super.postDeployTasks_legacyApi(metadataEntry, apiResponse);
342
345
  }
346
+
343
347
  /**
344
348
  * helper for {@link MetadataType.updateREST}
345
349
  *
@@ -350,6 +354,7 @@ class MobileMessage extends MetadataType {
350
354
  static async postUpdateTasks(metadataEntry, apiResponse) {
351
355
  await super.postDeployTasks_legacyApi(metadataEntry, apiResponse);
352
356
  }
357
+
353
358
  /**
354
359
  * helper for {@link MetadataType.buildDefinition}
355
360
  * handles extracted code if any are found for complex types
@@ -377,6 +382,7 @@ class MobileMessage extends MetadataType {
377
382
  'definition'
378
383
  );
379
384
  }
385
+
380
386
  /**
381
387
  * helper for {@link MetadataType.buildTemplate}
382
388
  * handles extracted code if any are found for complex types
@@ -471,6 +477,7 @@ class MobileMessage extends MetadataType {
471
477
  }
472
478
  return nestedFilePaths;
473
479
  }
480
+
474
481
  /**
475
482
  * Delete a metadata item from the specified business unit
476
483
  * ! the endpoint expects the ID and not a key but for mcdev in this case key==id
@@ -59,6 +59,7 @@ class Query extends MetadataType {
59
59
  key
60
60
  );
61
61
  }
62
+
62
63
  /**
63
64
  * a function to start query execution via API
64
65
  *
@@ -87,6 +88,7 @@ class Query extends MetadataType {
87
88
  Util.logger.info(`Executed ${executedKeyArr.length} of ${keyArr.length} items`);
88
89
  return executedKeyArr;
89
90
  }
91
+
90
92
  /**
91
93
  * helper to allow us to select single metadata entries via REST
92
94
  *
@@ -261,6 +263,7 @@ class Query extends MetadataType {
261
263
  this.definition.targetUpdateTypeMapping[metadata.targetUpdateTypeName];
262
264
  return metadata;
263
265
  }
266
+
264
267
  /**
265
268
  * helper for {@link Query.buildDefinitionForNested}
266
269
  * searches extracted SQL file for template variables and applies the market values
@@ -284,6 +287,7 @@ class Query extends MetadataType {
284
287
  // replace template variables with their values
285
288
  return super.applyTemplateValues(code, templateVariables);
286
289
  }
290
+
287
291
  /**
288
292
  * helper for {@link MetadataType.buildDefinition}
289
293
  * handles extracted code if any are found for complex types
@@ -311,6 +315,7 @@ class Query extends MetadataType {
311
315
  'definition'
312
316
  );
313
317
  }
318
+
314
319
  /**
315
320
  * helper for {@link MetadataType.buildTemplate}
316
321
  * handles extracted code if any are found for complex types
@@ -339,6 +344,7 @@ class Query extends MetadataType {
339
344
  'template'
340
345
  );
341
346
  }
347
+
342
348
  /**
343
349
  * helper for {@link Query.buildTemplateForNested} / {@link Query.buildDefinitionForNested}
344
350
  * handles extracted code if any are found for complex types
@@ -439,6 +445,7 @@ class Query extends MetadataType {
439
445
  }
440
446
  return errors;
441
447
  }
448
+
442
449
  /**
443
450
  * Delete a metadata item from the specified business unit
444
451
  *
@@ -454,6 +461,7 @@ class Query extends MetadataType {
454
461
  }
455
462
  return super.deleteByKeyREST('/automation/v1/queries/' + objectId, customerKey);
456
463
  }
464
+
457
465
  /**
458
466
  * clean up after deleting a metadata item
459
467
  *
@@ -465,6 +473,7 @@ class Query extends MetadataType {
465
473
  // delete local copy: retrieve/cred/bu/.../...-meta.sql
466
474
  await super.postDeleteTasks(customerKey, [`${this.definition.type}-meta.sql`]);
467
475
  }
476
+
468
477
  /**
469
478
  * Gets executed after deployment of metadata type
470
479
  *
@@ -119,6 +119,7 @@ class Role extends MetadataType {
119
119
  }
120
120
  return { metadata: parsed, type: this.definition.type };
121
121
  }
122
+
122
123
  /**
123
124
  * Gets executed before deploying metadata
124
125
  *
@@ -44,6 +44,7 @@ class Script extends MetadataType {
44
44
  await File.initPrettier('ssjs');
45
45
  return super.retrieveREST(retrieveDir, '/automation/v1/scripts/', null, key);
46
46
  }
47
+
47
48
  /**
48
49
  * Retrieves script metadata for caching
49
50
  *
@@ -125,6 +126,7 @@ class Script extends MetadataType {
125
126
  }
126
127
  return code;
127
128
  }
129
+
128
130
  /**
129
131
  * prepares a Script for deployment
130
132
  *
@@ -141,6 +143,7 @@ class Script extends MetadataType {
141
143
 
142
144
  return metadata;
143
145
  }
146
+
144
147
  /**
145
148
  * helper for {@link MetadataType.buildDefinition}
146
149
  * handles extracted code if any are found for complex types
@@ -168,6 +171,7 @@ class Script extends MetadataType {
168
171
  'definition'
169
172
  );
170
173
  }
174
+
171
175
  /**
172
176
  * helper for {@link MetadataType.buildTemplate}
173
177
  * handles extracted code if any are found for complex types
@@ -275,6 +279,7 @@ class Script extends MetadataType {
275
279
 
276
280
  return this.getCodeExtractItem(metadata);
277
281
  }
282
+
278
283
  /**
279
284
  * manages post retrieve steps
280
285
  *
@@ -343,6 +348,7 @@ class Script extends MetadataType {
343
348
  ]);
344
349
  return fileList;
345
350
  }
351
+
346
352
  /**
347
353
  * helper to allow us to select single metadata entries via REST
348
354
  *
@@ -378,6 +384,7 @@ class Script extends MetadataType {
378
384
  }
379
385
  return super.deleteByKeyREST('/automation/v1/scripts/' + objectId, customerKey);
380
386
  }
387
+
381
388
  /**
382
389
  * clean up after deleting a metadata item
383
390
  *
@@ -46,6 +46,7 @@ class SendClassification extends MetadataType {
46
46
  }
47
47
  return super.retrieveSOAP(retrieveDir, requestParams, key);
48
48
  }
49
+
49
50
  /**
50
51
  * Updates a single item
51
52
  *
@@ -75,6 +76,7 @@ class SendClassification extends MetadataType {
75
76
  static deleteByKey(customerKey) {
76
77
  return super.deleteByKeySOAP(customerKey);
77
78
  }
79
+
78
80
  /**
79
81
  * prepares a import definition for deployment
80
82
  *
@@ -46,6 +46,7 @@ class SenderProfile extends MetadataType {
46
46
  }
47
47
  return super.retrieveSOAP(retrieveDir, requestParams, key);
48
48
  }
49
+
49
50
  /**
50
51
  * Updates a single item
51
52
  *
@@ -106,6 +107,7 @@ class SenderProfile extends MetadataType {
106
107
  }
107
108
  return metadata;
108
109
  }
110
+
109
111
  /**
110
112
  *
111
113
  * @param {MetadataTypeItem} item single metadata item
@@ -93,6 +93,7 @@ class TransactionalEmail extends TransactionalMessage {
93
93
 
94
94
  return metadata;
95
95
  }
96
+
96
97
  /**
97
98
  * helper for {@link TransactionalEmail.createREST}
98
99
  *
@@ -114,6 +115,7 @@ class TransactionalEmail extends TransactionalMessage {
114
115
  delete apiResponse.journey;
115
116
  }
116
117
  }
118
+
117
119
  /**
118
120
  * Gets executed after deployment of metadata type
119
121
  *
@@ -218,6 +220,7 @@ class TransactionalEmail extends TransactionalMessage {
218
220
 
219
221
  return metadata;
220
222
  }
223
+
221
224
  /**
222
225
  * Delete a metadata item from the specified business unit
223
226
  *
@@ -24,6 +24,7 @@ import { Util } from '../util/util.js';
24
24
  class TransactionalMessage extends MetadataType {
25
25
  // define this.subType as string here for intellisense; requires to be redefined in child class
26
26
  static subType;
27
+
27
28
  /**
28
29
  * Retrieves Metadata
29
30
  *
@@ -90,6 +91,7 @@ class TransactionalMessage extends MetadataType {
90
91
  // we should therefore use the already defined retrieve method
91
92
  return this.retrieve(undefined, undefined, undefined, key);
92
93
  }
94
+
93
95
  /**
94
96
  * Updates a single item
95
97
  *
@@ -112,6 +114,7 @@ class TransactionalMessage extends MetadataType {
112
114
  static create(metadata) {
113
115
  return super.createREST(metadata, '/messaging/v1/' + this.subType + '/definitions');
114
116
  }
117
+
115
118
  /**
116
119
  * Delete a metadata item from the specified business unit
117
120
  *
@@ -51,6 +51,7 @@ class TransactionalPush extends TransactionalMessage {
51
51
 
52
52
  return metadata;
53
53
  }
54
+
54
55
  /**
55
56
  * manages post retrieve steps
56
57
  *
@@ -25,6 +25,7 @@ import cache from '../util/cache.js';
25
25
  */
26
26
  class TransactionalSMS extends TransactionalMessage {
27
27
  static subType = 'sms';
28
+
28
29
  /**
29
30
  * clean up after deleting a metadata item
30
31
  *
@@ -88,6 +89,7 @@ class TransactionalSMS extends TransactionalMessage {
88
89
 
89
90
  return metadata;
90
91
  }
92
+
91
93
  /**
92
94
  * helper for {@link TransactionalSMS.preDeployTasks} that loads extracted code content back into JSON
93
95
  *
@@ -114,6 +116,7 @@ class TransactionalSMS extends TransactionalMessage {
114
116
  throw new Error(`Could not find ${codePath}.amp`);
115
117
  }
116
118
  }
119
+
117
120
  /**
118
121
  * manages post retrieve steps
119
122
  *
@@ -188,6 +191,7 @@ class TransactionalSMS extends TransactionalMessage {
188
191
 
189
192
  return { json: metadata, codeArr: codeArr, subFolder: null };
190
193
  }
194
+
191
195
  /**
192
196
  * helper for {@link TransactionalSMS.postRetrieveTasks} and {@link TransactionalSMS._buildForNested}
193
197
  *
@@ -200,6 +204,7 @@ class TransactionalSMS extends TransactionalMessage {
200
204
 
201
205
  return { fileExt, code };
202
206
  }
207
+
203
208
  /**
204
209
  * helper for {@link TransactionalMessage.buildDefinition}
205
210
  * handles extracted code if any are found for complex types
@@ -227,6 +232,7 @@ class TransactionalSMS extends TransactionalMessage {
227
232
  'definition'
228
233
  );
229
234
  }
235
+
230
236
  /**
231
237
  * helper for {@link TransactionalMessage.buildTemplate}
232
238
  * handles extracted code if any are found for complex types
@@ -320,6 +326,7 @@ class TransactionalSMS extends TransactionalMessage {
320
326
  }
321
327
  return nestedFilePaths;
322
328
  }
329
+
323
330
  /**
324
331
  * very simplified test for HTML code in our SMS
325
332
  *
@@ -329,6 +336,7 @@ class TransactionalSMS extends TransactionalMessage {
329
336
  static _isHTML(code) {
330
337
  return /(<([^>]+)>)/gi.test(code);
331
338
  }
339
+
332
340
  /**
333
341
  * should return only the json for all but asset, query and script that are saved as multiple files
334
342
  * additionally, the documentation for dataExtension and automation should be returned
@@ -204,6 +204,7 @@ class TriggeredSend extends MetadataType {
204
204
 
205
205
  return metadata;
206
206
  }
207
+
207
208
  /**
208
209
  * prepares a TSD for deployment
209
210
  *
@@ -294,6 +295,7 @@ class TriggeredSend extends MetadataType {
294
295
 
295
296
  return metadata;
296
297
  }
298
+
297
299
  /**
298
300
  * TSD-specific refresh method that finds active TSDs and refreshes them
299
301
  *
@@ -333,6 +335,7 @@ class TriggeredSend extends MetadataType {
333
335
  Util.logger.info(`Found ${keyArr.length} refreshable items.`);
334
336
  return keyArr;
335
337
  }
338
+
336
339
  /**
337
340
  * helper for {@link TriggeredSend.refresh} that finds active TSDs on the server and filters it by the same rules that {@link TriggeredSend.retrieve} is using to avoid refreshing TSDs with broken dependencies
338
341
  *
@@ -492,6 +495,7 @@ class TriggeredSend extends MetadataType {
492
495
  }
493
496
  return true;
494
497
  }
498
+
495
499
  /**
496
500
  *
497
501
  * @param {MetadataTypeItem} item single metadata item