mcdev 5.0.2 → 5.2.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.
- package/.coverage-comment-template.svelte +177 -161
- package/.eslintrc.json +4 -4
- package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
- package/.github/dependabot.yml +8 -0
- package/.github/workflows/coverage-base-update.yml +6 -2
- package/.github/workflows/coverage-develop-branch.yml +7 -8
- package/.github/workflows/coverage-main-branch.yml +7 -8
- package/.github/workflows/coverage.yml +7 -4
- package/.husky/post-checkout +4 -2
- package/.husky/post-merge +1 -0
- package/.vscode/extensions.json +4 -0
- package/docs/dist/documentation.md +756 -294
- package/lib/Deployer.js +28 -28
- package/lib/MetadataTypeDefinitions.js +1 -1
- package/lib/MetadataTypeInfo.js +1 -1
- package/lib/Retriever.js +1 -1
- package/lib/cli.js +184 -6
- package/lib/index.js +493 -22
- package/lib/metadataTypes/Asset.js +10 -11
- package/lib/metadataTypes/AttributeGroup.js +76 -2
- package/lib/metadataTypes/AttributeSet.js +260 -0
- package/lib/metadataTypes/Automation.js +771 -247
- package/lib/metadataTypes/DataExtension.js +7 -7
- package/lib/metadataTypes/DataExtensionField.js +1 -1
- package/lib/metadataTypes/Event.js +2 -3
- package/lib/metadataTypes/Folder.js +1 -1
- package/lib/metadataTypes/Journey.js +5 -6
- package/lib/metadataTypes/MetadataType.js +187 -60
- package/lib/metadataTypes/MobileKeyword.js +8 -8
- package/lib/metadataTypes/MobileMessage.js +5 -5
- package/lib/metadataTypes/Query.js +47 -5
- package/lib/metadataTypes/Script.js +3 -3
- package/lib/metadataTypes/TransactionalSMS.js +5 -5
- package/lib/metadataTypes/TriggeredSend.js +25 -50
- package/lib/metadataTypes/User.js +7 -4
- package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
- package/lib/metadataTypes/definitions/AttributeGroup.definition.js +117 -106
- package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +54 -27
- package/lib/metadataTypes/definitions/Automation.definition.js +74 -21
- package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
- package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
- package/lib/metadataTypes/definitions/Event.definition.js +1 -0
- package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
- package/lib/metadataTypes/definitions/ImportFile.definition.js +37 -6
- package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -0
- package/lib/metadataTypes/definitions/Query.definition.js +1 -0
- package/lib/metadataTypes/definitions/Role.definition.js +1 -0
- package/lib/metadataTypes/definitions/TriggeredSend.definition.js +2 -0
- package/lib/metadataTypes/definitions/User.definition.js +1 -0
- package/lib/util/cache.js +9 -4
- package/lib/util/cli.js +40 -0
- package/lib/util/devops.js +13 -11
- package/lib/util/file.js +2 -2
- package/lib/util/init.js +84 -0
- package/lib/util/util.js +268 -137
- package/package.json +11 -11
- package/test/general.test.js +26 -0
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +52 -0
- package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +45 -0
- package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
- package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
- package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
- package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
- package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.json → testExisting_query.query-meta.json} +2 -2
- package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
- package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
- package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.json → testNew_query.query-meta.json} +2 -2
- package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
- package/test/resourceFactory.js +132 -24
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
- package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
- package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
- package/test/resources/1111111/user/retrieve-expected.md +4 -2
- package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
- package/test/resources/9999999/attributeSet/retrieve-expected.json +748 -0
- package/test/resources/9999999/automation/build-expected.json +57 -0
- package/test/resources/9999999/automation/create-expected.json +45 -0
- package/test/resources/9999999/automation/create-testNew_automation-expected.md +28 -0
- package/test/resources/9999999/automation/delete-response.xml +40 -0
- package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
- package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
- package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
- package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
- package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
- package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
- package/test/resources/9999999/automation/retrieve-expected.json +57 -0
- package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +30 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
- package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
- package/test/resources/9999999/automation/template-expected.json +57 -0
- package/test/resources/9999999/automation/update-expected.json +45 -0
- package/test/resources/9999999/automation/update-testExisting_automation-expected.md +28 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/post-response.json +86 -0
- package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/get-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracts/get-response.json +20 -0
- package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
- package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/get-response.json +18 -0
- package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
- package/test/resources/9999999/automation/v1/filetransfers/get-response.json +15 -0
- package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
- package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
- package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
- package/test/resources/9999999/automation/v1/imports/get-response.json +38 -0
- package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/actions/start/post-response.txt +1 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +2 -2
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
- package/test/resources/9999999/automation/v1/queries/get-response.json +22 -5
- package/test/resources/9999999/automation/v1/queries/post-response.json +2 -2
- package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
- package/test/resources/9999999/automation/v1/scripts/get-response.json +27 -0
- package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
- package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +98 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
- package/test/resources/9999999/dataExtract/build-expected.json +35 -0
- package/test/resources/9999999/dataExtract/get-expected.json +39 -0
- package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
- package/test/resources/9999999/dataExtract/post-expected.json +37 -0
- package/test/resources/9999999/dataExtract/template-expected.json +35 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=automations-response.xml +48 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
- package/test/resources/9999999/dataFolder/retrieve-response.xml +45 -0
- package/test/resources/9999999/email/retrieve-response.xml +203 -0
- package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +85 -0
- package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
- package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
- package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
- package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
- package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
- package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +585 -0
- package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +19807 -0
- package/test/resources/9999999/importFile/build-expected.json +27 -0
- package/test/resources/9999999/importFile/get-expected.json +29 -0
- package/test/resources/9999999/importFile/patch-expected.json +29 -0
- package/test/resources/9999999/importFile/post-expected.json +29 -0
- package/test/resources/9999999/importFile/template-expected.json +27 -0
- package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +21 -0
- package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/post-response.json +0 -0
- package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +30 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation-response.xml +30 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testNew_automation-response.xml +30 -0
- package/test/resources/9999999/program/retrieve-Name=testExisting_automation-response.xml +31 -0
- package/test/resources/9999999/program/retrieve-response.xml +50 -0
- package/test/resources/9999999/query/build-expected.json +2 -2
- package/test/resources/9999999/query/get-expected.json +2 -2
- package/test/resources/9999999/query/get2-expected.json +2 -2
- package/test/resources/9999999/query/patch-expected.json +2 -2
- package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
- package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
- package/test/resources/9999999/query/post-expected.json +2 -2
- package/test/resources/9999999/query/template-expected.json +2 -2
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/script/build-expected.json +6 -0
- package/test/resources/9999999/script/build-expected.ssjs +1 -0
- package/test/resources/9999999/script/get-expected.json +8 -0
- package/test/resources/9999999/script/get-expected.ssjs +1 -0
- package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
- package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
- package/test/resources/9999999/script/patch-expected.json +8 -0
- package/test/resources/9999999/script/patch-expected.ssjs +1 -0
- package/test/resources/9999999/script/post-expected.json +8 -0
- package/test/resources/9999999/script/post-expected.ssjs +1 -0
- package/test/resources/9999999/script/template-expected.json +6 -0
- package/test/resources/9999999/script/template-expected.ssjs +1 -0
- package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
- package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
- package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
- package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
- package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
- package/test/type.attributeGroup.test.js +55 -0
- package/test/type.attributeSet.test.js +55 -0
- package/test/type.automation.test.js +886 -0
- package/test/type.dataExtension.test.js +3 -1
- package/test/type.dataExtract.test.js +187 -0
- package/test/type.fileTransfer.test.js +185 -0
- package/test/type.importFile.test.js +186 -0
- package/test/type.mobileKeyword.test.js +0 -1
- package/test/type.query.test.js +497 -33
- package/test/type.script.test.js +367 -0
- package/test/type.triggeredSend.test.js +152 -0
- package/test/type.user.test.js +37 -11
- package/test/utils.js +10 -6
- package/.coverage-comment-template.md +0 -20
- package/lib/metadataTypes/SetDefinition.js +0 -37
- /package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.sql → testExisting_query.query-meta.sql} +0 -0
- /package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.sql → testNew_query.query-meta.sql} +0 -0
- /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
- /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
- /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
- /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
- /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
- /package/test/resources/9999999/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
|
@@ -96,7 +96,7 @@ class MobileKeyword extends MetadataType {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
|
-
* helper for {@link parseResponseBody} that creates a custom key field for this type based on mobileCode and keyword
|
|
99
|
+
* helper for {@link MobileKeyword.parseResponseBody} that creates a custom key field for this type based on mobileCode and keyword
|
|
100
100
|
*
|
|
101
101
|
* @private
|
|
102
102
|
* @param {TYPE.MetadataType} metadata single item
|
|
@@ -106,7 +106,7 @@ class MobileKeyword extends MetadataType {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
* helper for {@link preDeployTasks} and {@link createOrUpdate} to ensure we have code & keyword properly set
|
|
109
|
+
* helper for {@link MobileKeyword.preDeployTasks} and {@link MobileKeyword.createOrUpdate} to ensure we have code & keyword properly set
|
|
110
110
|
*
|
|
111
111
|
* @private
|
|
112
112
|
* @param {TYPE.MetadataType} metadata single item
|
|
@@ -192,7 +192,7 @@ class MobileKeyword extends MetadataType {
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
/**
|
|
195
|
-
* helper for {@link retrieve} and {@link retrieveAsTemplate}
|
|
195
|
+
* helper for {@link MobileKeyword.retrieve} and {@link MobileKeyword.retrieveAsTemplate}
|
|
196
196
|
*
|
|
197
197
|
* @private
|
|
198
198
|
* @param {string} key customer key of single item to retrieve / name of the metadata file
|
|
@@ -281,7 +281,7 @@ class MobileKeyword extends MetadataType {
|
|
|
281
281
|
}
|
|
282
282
|
}
|
|
283
283
|
/**
|
|
284
|
-
* helper for {@link
|
|
284
|
+
* helper for {@link MobileKeyword.postRetrieveTasks} and {@link MobileKeyword._buildForNested}
|
|
285
285
|
*
|
|
286
286
|
* @param {string} metadataScript the code of the file
|
|
287
287
|
* @returns {{fileExt:string,code:string}} returns found extension and file content
|
|
@@ -349,7 +349,7 @@ class MobileKeyword extends MetadataType {
|
|
|
349
349
|
}
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
|
-
* helper for {@link buildTemplateForNested} / {@link buildDefinitionForNested}
|
|
352
|
+
* helper for {@link MobileKeyword.buildTemplateForNested} / {@link MobileKeyword.buildDefinitionForNested}
|
|
353
353
|
* handles extracted code if any are found for complex types
|
|
354
354
|
*
|
|
355
355
|
* @param {string} templateDir Directory where metadata templates are stored
|
|
@@ -445,7 +445,7 @@ class MobileKeyword extends MetadataType {
|
|
|
445
445
|
return metadata;
|
|
446
446
|
}
|
|
447
447
|
/**
|
|
448
|
-
* helper for {@link createREST}
|
|
448
|
+
* helper for {@link MetadataType.createREST}
|
|
449
449
|
*
|
|
450
450
|
* @param {TYPE.MetadataTypeItem} metadataEntry a single metadata Entry
|
|
451
451
|
* @param {object} apiResponse varies depending on the API call
|
|
@@ -455,7 +455,7 @@ class MobileKeyword extends MetadataType {
|
|
|
455
455
|
await super.postDeployTasks_legacyApi(metadataEntry, apiResponse);
|
|
456
456
|
}
|
|
457
457
|
/**
|
|
458
|
-
* helper for {@link updateREST}
|
|
458
|
+
* helper for {@link MetadataType.updateREST}
|
|
459
459
|
*
|
|
460
460
|
* @param {TYPE.MetadataTypeItem} metadataEntry a single metadata Entry
|
|
461
461
|
* @param {object} apiResponse varies depending on the API call
|
|
@@ -466,7 +466,7 @@ class MobileKeyword extends MetadataType {
|
|
|
466
466
|
}
|
|
467
467
|
|
|
468
468
|
/**
|
|
469
|
-
* helper for {@link preDeployTasks} that loads extracted code content back into JSON
|
|
469
|
+
* helper for {@link MobileKeyword.preDeployTasks} that loads extracted code content back into JSON
|
|
470
470
|
*
|
|
471
471
|
* @param {TYPE.MetadataTypeItem} metadata a single definition
|
|
472
472
|
* @param {string} deployDir directory of deploy files
|
|
@@ -83,7 +83,7 @@ class MobileMessage extends MetadataType {
|
|
|
83
83
|
return super.createREST(metadata, '/legacy/v1/beta/mobile/message/');
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
|
-
* helper for {@link preDeployTasks} that loads extracted code content back into JSON
|
|
86
|
+
* helper for {@link MobileMessage.preDeployTasks} that loads extracted code content back into JSON
|
|
87
87
|
*
|
|
88
88
|
* @param {TYPE.MetadataTypeItem} metadata a single definition
|
|
89
89
|
* @param {string} deployDir directory of deploy files
|
|
@@ -110,7 +110,7 @@ class MobileMessage extends MetadataType {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
113
|
-
* helper for {@link
|
|
113
|
+
* helper for {@link MobileMessage.postRetrieveTasks} and {@link MobileMessage._buildForNested}
|
|
114
114
|
*
|
|
115
115
|
* @param {string} code the code of the file
|
|
116
116
|
* @returns {{fileExt:string,code:string}} returns found extension and file content
|
|
@@ -304,7 +304,7 @@ class MobileMessage extends MetadataType {
|
|
|
304
304
|
return metadata;
|
|
305
305
|
}
|
|
306
306
|
/**
|
|
307
|
-
* helper for {@link createREST}
|
|
307
|
+
* helper for {@link MetadataType.createREST}
|
|
308
308
|
*
|
|
309
309
|
* @param {TYPE.MetadataTypeItem} metadataEntry a single metadata Entry
|
|
310
310
|
* @param {object} apiResponse varies depending on the API call
|
|
@@ -314,7 +314,7 @@ class MobileMessage extends MetadataType {
|
|
|
314
314
|
await super.postDeployTasks_legacyApi(metadataEntry, apiResponse);
|
|
315
315
|
}
|
|
316
316
|
/**
|
|
317
|
-
* helper for {@link updateREST}
|
|
317
|
+
* helper for {@link MetadataType.updateREST}
|
|
318
318
|
*
|
|
319
319
|
* @param {TYPE.MetadataTypeItem} metadataEntry a single metadata Entry
|
|
320
320
|
* @param {object} apiResponse varies depending on the API call
|
|
@@ -380,7 +380,7 @@ class MobileMessage extends MetadataType {
|
|
|
380
380
|
}
|
|
381
381
|
|
|
382
382
|
/**
|
|
383
|
-
* helper for {@link buildTemplateForNested} / {@link buildDefinitionForNested}
|
|
383
|
+
* helper for {@link MobileMessage.buildTemplateForNested} / {@link MobileMessage.buildDefinitionForNested}
|
|
384
384
|
* handles extracted code if any are found for complex types
|
|
385
385
|
*
|
|
386
386
|
* @param {string} templateDir Directory where metadata templates are stored
|
|
@@ -38,7 +38,9 @@ class Query extends MetadataType {
|
|
|
38
38
|
objectId = await this._getObjectIdForSingleRetrieve(key);
|
|
39
39
|
if (!objectId) {
|
|
40
40
|
// avoid running the rest request below by returning early
|
|
41
|
-
Util.logger.info(
|
|
41
|
+
Util.logger.info(
|
|
42
|
+
`Downloaded: ${this.definition.type} (0)${Util.getKeysString(key)}`
|
|
43
|
+
);
|
|
42
44
|
return { metadata: {}, type: this.definition.type };
|
|
43
45
|
}
|
|
44
46
|
}
|
|
@@ -50,6 +52,34 @@ class Query extends MetadataType {
|
|
|
50
52
|
key
|
|
51
53
|
);
|
|
52
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* a function to start query execution via API
|
|
57
|
+
*
|
|
58
|
+
* @param {string[]} keyArr customerkey of the metadata
|
|
59
|
+
* @returns {Promise.<string[]>} Returns list of keys that were executed successfully
|
|
60
|
+
*/
|
|
61
|
+
static async execute(keyArr) {
|
|
62
|
+
const results = [];
|
|
63
|
+
// works only with objectId
|
|
64
|
+
let objectId;
|
|
65
|
+
for (const key of keyArr) {
|
|
66
|
+
if (key) {
|
|
67
|
+
objectId = await this._getObjectIdForSingleRetrieve(key);
|
|
68
|
+
if (!objectId) {
|
|
69
|
+
Util.logger.info(`Skipping ${key} - did not find an item with such key`);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
results.push(
|
|
74
|
+
super.executeREST(`/automation/v1/queries/${objectId}/actions/start/`, key)
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
const executedKeyArr = (await Promise.all(results))
|
|
78
|
+
.filter((r) => r.response === 'OK')
|
|
79
|
+
.map((r) => r.key);
|
|
80
|
+
Util.logger.info(`Executed ${executedKeyArr.length} of ${keyArr.length} items`);
|
|
81
|
+
return executedKeyArr;
|
|
82
|
+
}
|
|
53
83
|
/**
|
|
54
84
|
* helper to allow us to select single metadata entries via REST
|
|
55
85
|
*
|
|
@@ -224,7 +254,7 @@ class Query extends MetadataType {
|
|
|
224
254
|
return metadata;
|
|
225
255
|
}
|
|
226
256
|
/**
|
|
227
|
-
* helper for {@link buildDefinitionForNested}
|
|
257
|
+
* helper for {@link Query.buildDefinitionForNested}
|
|
228
258
|
* searches extracted SQL file for template variables and applies the market values
|
|
229
259
|
*
|
|
230
260
|
* @param {string} code code from extracted code
|
|
@@ -302,7 +332,7 @@ class Query extends MetadataType {
|
|
|
302
332
|
);
|
|
303
333
|
}
|
|
304
334
|
/**
|
|
305
|
-
* helper for {@link buildTemplateForNested} / {@link buildDefinitionForNested}
|
|
335
|
+
* helper for {@link Query.buildTemplateForNested} / {@link Query.buildDefinitionForNested}
|
|
306
336
|
* handles extracted code if any are found for complex types
|
|
307
337
|
*
|
|
308
338
|
* @private
|
|
@@ -394,11 +424,12 @@ class Query extends MetadataType {
|
|
|
394
424
|
* @param {object} ex response payload from REST API
|
|
395
425
|
* @returns {string[] | void} formatted Error Message
|
|
396
426
|
*/
|
|
397
|
-
static
|
|
398
|
-
const errors = super.
|
|
427
|
+
static getErrorsREST(ex) {
|
|
428
|
+
const errors = super.getErrorsREST(ex);
|
|
399
429
|
if (errors?.length > 0) {
|
|
400
430
|
return errors.map((msg) => msg.split('Error saving the Query field.').join(''));
|
|
401
431
|
}
|
|
432
|
+
return errors;
|
|
402
433
|
}
|
|
403
434
|
/**
|
|
404
435
|
* Delete a metadata item from the specified business unit
|
|
@@ -426,6 +457,17 @@ class Query extends MetadataType {
|
|
|
426
457
|
// delete local copy: retrieve/cred/bu/.../...-meta.sql
|
|
427
458
|
await super.postDeleteTasks(customerKey, [`${this.definition.type}-meta.sql`]);
|
|
428
459
|
}
|
|
460
|
+
/**
|
|
461
|
+
* Gets executed after deployment of metadata type
|
|
462
|
+
*
|
|
463
|
+
* @param {TYPE.MetadataTypeMap} upsertResults metadata mapped by their keyField as returned by update/create
|
|
464
|
+
*/
|
|
465
|
+
static async postDeployTasks(upsertResults) {
|
|
466
|
+
if (Util.OPTIONS.execute) {
|
|
467
|
+
Util.logger.info(`Executing: ${this.definition.type}`);
|
|
468
|
+
await this.execute(Object.keys(upsertResults));
|
|
469
|
+
}
|
|
470
|
+
}
|
|
429
471
|
}
|
|
430
472
|
|
|
431
473
|
// Assign definition & cache to static attributes
|
|
@@ -82,7 +82,7 @@ class Script extends MetadataType {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
* helper for {@link preDeployTasks} that loads extracted code content back into JSON
|
|
85
|
+
* helper for {@link Script.preDeployTasks} that loads extracted code content back into JSON
|
|
86
86
|
*
|
|
87
87
|
* @param {TYPE.ScriptItem} metadata a single asset definition
|
|
88
88
|
* @param {string} deployDir directory of deploy files
|
|
@@ -189,7 +189,7 @@ class Script extends MetadataType {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
/**
|
|
192
|
-
* helper for {@link buildTemplateForNested} / {@link buildDefinitionForNested}
|
|
192
|
+
* helper for {@link Script.buildTemplateForNested} / {@link Script.buildDefinitionForNested}
|
|
193
193
|
* handles extracted code if any are found for complex types
|
|
194
194
|
*
|
|
195
195
|
* @param {string} templateDir Directory where metadata templates are stored
|
|
@@ -279,7 +279,7 @@ class Script extends MetadataType {
|
|
|
279
279
|
return { json: metadata, codeArr: codeArr, subFolder: null };
|
|
280
280
|
}
|
|
281
281
|
/**
|
|
282
|
-
* helper for {@link parseMetadata} and {@link _buildForNested}
|
|
282
|
+
* helper for {@link Script.parseMetadata} and {@link Script._buildForNested}
|
|
283
283
|
*
|
|
284
284
|
* @param {string} metadataScript the code of the file
|
|
285
285
|
* @param {string} metadataName the name of the metadata
|
|
@@ -66,7 +66,7 @@ class TransactionalSMS extends TransactionalMessage {
|
|
|
66
66
|
return metadata;
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
* helper for {@link preDeployTasks} that loads extracted code content back into JSON
|
|
69
|
+
* helper for {@link TransactionalSMS.preDeployTasks} that loads extracted code content back into JSON
|
|
70
70
|
*
|
|
71
71
|
* @param {TYPE.MetadataTypeItem} metadata a single definition
|
|
72
72
|
* @param {string} deployDir directory of deploy files
|
|
@@ -158,7 +158,7 @@ class TransactionalSMS extends TransactionalMessage {
|
|
|
158
158
|
return { json: metadata, codeArr: codeArr, subFolder: null };
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
|
-
* helper for {@link
|
|
161
|
+
* helper for {@link TransactionalSMS.postRetrieveTasks} and {@link TransactionalSMS._buildForNested}
|
|
162
162
|
*
|
|
163
163
|
* @param {string} metadataScript the code of the file
|
|
164
164
|
* @returns {{fileExt:string,code:string}} returns found extension and file content
|
|
@@ -189,7 +189,7 @@ class TransactionalSMS extends TransactionalMessage {
|
|
|
189
189
|
return { fileExt, code };
|
|
190
190
|
}
|
|
191
191
|
/**
|
|
192
|
-
* helper for {@link
|
|
192
|
+
* helper for {@link TransactionalMessage.buildDefinition}
|
|
193
193
|
* handles extracted code if any are found for complex types
|
|
194
194
|
*
|
|
195
195
|
* @param {string} templateDir Directory where metadata templates are stored
|
|
@@ -216,7 +216,7 @@ class TransactionalSMS extends TransactionalMessage {
|
|
|
216
216
|
);
|
|
217
217
|
}
|
|
218
218
|
/**
|
|
219
|
-
* helper for {@link
|
|
219
|
+
* helper for {@link TransactionalMessage.buildTemplate}
|
|
220
220
|
* handles extracted code if any are found for complex types
|
|
221
221
|
*
|
|
222
222
|
* @example scripts are saved as 1 json and 1 ssjs file. both files need to be run through templating
|
|
@@ -245,7 +245,7 @@ class TransactionalSMS extends TransactionalMessage {
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
/**
|
|
248
|
-
* helper for {@link buildTemplateForNested} / {@link buildDefinitionForNested}
|
|
248
|
+
* helper for {@link TransactionalSMS.buildTemplateForNested} / {@link TransactionalSMS.buildDefinitionForNested}
|
|
249
249
|
* handles extracted code if any are found for complex types
|
|
250
250
|
*
|
|
251
251
|
* @param {string} templateDir Directory where metadata templates are stored
|
|
@@ -85,51 +85,19 @@ class TriggeredSend extends MetadataType {
|
|
|
85
85
|
return super.deleteByKeySOAP(customerKey);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
/**
|
|
89
|
-
* manages post retrieve steps
|
|
90
|
-
*
|
|
91
|
-
* @param {TYPE.MetadataTypeItem} metadata a single query
|
|
92
|
-
* @returns {TYPE.MetadataTypeItem} Array with one metadata object and one query string
|
|
93
|
-
*/
|
|
94
|
-
static postRetrieveTasks(metadata) {
|
|
95
|
-
return this.parseMetadata(metadata);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
|
|
99
|
-
*
|
|
100
|
-
* @param {TYPE.MetadataTypeItem} metadata a single script activity definition
|
|
101
|
-
*/
|
|
102
|
-
static setFolderPath(metadata) {
|
|
103
|
-
try {
|
|
104
|
-
metadata.r__folder_Path = cache.searchForField(
|
|
105
|
-
'folder',
|
|
106
|
-
metadata[this.definition.folderIdField],
|
|
107
|
-
'ID',
|
|
108
|
-
'Path'
|
|
109
|
-
);
|
|
110
|
-
delete metadata[this.definition.folderIdField];
|
|
111
|
-
} catch (ex) {
|
|
112
|
-
Util.logger.verbose(
|
|
113
|
-
` - skipping ${this.definition.type} '${metadata[this.definition.nameField]}' (${
|
|
114
|
-
metadata[this.definition.keyField]
|
|
115
|
-
}): Could not find folder (${ex.message})`
|
|
116
|
-
);
|
|
117
|
-
throw ex;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
88
|
/**
|
|
121
89
|
* parses retrieved Metadata before saving
|
|
122
90
|
*
|
|
123
|
-
* @param {TYPE.MetadataTypeItem} metadata a single
|
|
91
|
+
* @param {TYPE.MetadataTypeItem} metadata a single item
|
|
124
92
|
* @returns {TYPE.MetadataTypeItem | void} Array with one metadata object and one sql string
|
|
125
93
|
*/
|
|
126
|
-
static
|
|
94
|
+
static postRetrieveTasks(metadata) {
|
|
127
95
|
// remove IsPlatformObject, always has to be 'false'
|
|
128
96
|
delete metadata.IsPlatformObject;
|
|
97
|
+
|
|
129
98
|
// folder
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
} catch {
|
|
99
|
+
this.setFolderPath(metadata);
|
|
100
|
+
if (!metadata.r__folder_Path) {
|
|
133
101
|
Util.logger.verbose(
|
|
134
102
|
` ☇ skipping ${this.definition.typeName} '${metadata.Name}'/'${metadata.CustomerKey}': Could not find folder.`
|
|
135
103
|
);
|
|
@@ -163,7 +131,7 @@ class TriggeredSend extends MetadataType {
|
|
|
163
131
|
delete metadata.Email;
|
|
164
132
|
} catch {
|
|
165
133
|
Util.logger.verbose(
|
|
166
|
-
` - ${this.definition.typeName} '${metadata.Name}'/'${metadata.CustomerKey}': Could not find email with ID ${metadata.Email.ID} in Classic nor in Content Builder. This TSD cannot be
|
|
134
|
+
` - ${this.definition.typeName} '${metadata.Name}'/'${metadata.CustomerKey}': Could not find email with ID ${metadata.Email.ID} in Classic nor in Content Builder. This TSD cannot be republished but potentially restarted with its cached version of the email.`
|
|
167
135
|
);
|
|
168
136
|
// save this TSD because it could be fixed by the user or potentially restarted without a fix; also, it might be used by a journey
|
|
169
137
|
}
|
|
@@ -246,7 +214,7 @@ class TriggeredSend extends MetadataType {
|
|
|
246
214
|
* TSD-specific refresh method that finds active TSDs and refreshes them
|
|
247
215
|
*
|
|
248
216
|
* @param {string[]} [keyArr] metadata keys
|
|
249
|
-
* @param {boolean} [checkKey
|
|
217
|
+
* @param {boolean} [checkKey] whether to check if the key is valid
|
|
250
218
|
* @returns {Promise.<void>} -
|
|
251
219
|
*/
|
|
252
220
|
static async refresh(keyArr, checkKey = true) {
|
|
@@ -268,7 +236,7 @@ class TriggeredSend extends MetadataType {
|
|
|
268
236
|
}
|
|
269
237
|
|
|
270
238
|
/**
|
|
271
|
-
* helper for {@link refresh} that extracts the keys from the TSD item map and eli
|
|
239
|
+
* helper for {@link TriggeredSend.refresh} that extracts the keys from the TSD item map and eli
|
|
272
240
|
*
|
|
273
241
|
* @param {TYPE.MetadataTypeMapObj} metadata TSD item map
|
|
274
242
|
* @returns {Promise.<string[]>} keyArr
|
|
@@ -282,11 +250,12 @@ class TriggeredSend extends MetadataType {
|
|
|
282
250
|
return keyArr;
|
|
283
251
|
}
|
|
284
252
|
/**
|
|
285
|
-
* helper for {@link refresh} that finds active TSDs on the server and filters it by the same rules that {@link retrieve} is using to avoid refreshing TSDs with broken dependencies
|
|
253
|
+
* 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
|
|
286
254
|
*
|
|
255
|
+
* @param {boolean} [assetLoaded] if run after Asset.deploy via --refresh option this will skip caching assets
|
|
287
256
|
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise of TSD item map
|
|
288
257
|
*/
|
|
289
|
-
static async findRefreshableItems() {
|
|
258
|
+
static async findRefreshableItems(assetLoaded = false) {
|
|
290
259
|
Util.logger.info('Finding refreshable items...');
|
|
291
260
|
// cache dependencies to test for broken links
|
|
292
261
|
// skip deprecated classic emails here, assuming they cannot be updated and hence are not relevant for {@link refresh}
|
|
@@ -305,14 +274,20 @@ class TriggeredSend extends MetadataType {
|
|
|
305
274
|
list: null,
|
|
306
275
|
};
|
|
307
276
|
for (const [type, subTypeArr] of Object.entries(requiredCache)) {
|
|
308
|
-
if (
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
277
|
+
if (type === 'asset' && assetLoaded) {
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
Util.logger.info(` - Caching dependent Metadata: ${type}`);
|
|
281
|
+
Util.logSubtypes(subTypeArr);
|
|
282
|
+
cacheTypes[type].client = this.client;
|
|
283
|
+
cacheTypes[type].buObject = this.buObject;
|
|
284
|
+
cacheTypes[type].properties = this.properties;
|
|
314
285
|
|
|
315
|
-
|
|
286
|
+
const result = await cacheTypes[type].retrieveForCache(null, subTypeArr);
|
|
287
|
+
if (cache.getCache()?.[type]) {
|
|
288
|
+
// re-run caching to merge with existing cache, assuming we might have missed subtypes
|
|
289
|
+
cache.mergeMetadata(type, result.metadata);
|
|
290
|
+
} else {
|
|
316
291
|
cache.setMetadata(type, result.metadata);
|
|
317
292
|
}
|
|
318
293
|
}
|
|
@@ -329,7 +304,7 @@ class TriggeredSend extends MetadataType {
|
|
|
329
304
|
}
|
|
330
305
|
|
|
331
306
|
/**
|
|
332
|
-
* helper for {@link refresh} that pauses, publishes and starts a triggered send
|
|
307
|
+
* helper for {@link TriggeredSend.refresh} that pauses, publishes and starts a triggered send
|
|
333
308
|
*
|
|
334
309
|
* @param {string} key external key of triggered send item
|
|
335
310
|
* @param {boolean} checkKey whether to check if key exists on the server
|
|
@@ -404,8 +404,11 @@ class User extends MetadataType {
|
|
|
404
404
|
if (!metadata.Password) {
|
|
405
405
|
metadata.Password = this._generatePassword();
|
|
406
406
|
Util.logger.info(
|
|
407
|
-
` - Password for ${metadata.UserID} was not given. Generated password
|
|
407
|
+
` - Password for ${metadata.UserID} was not given. Generated password:`
|
|
408
408
|
);
|
|
409
|
+
// use console.log here to print the generated password to bypass the logfile
|
|
410
|
+
// eslint-disable-next-line no-console
|
|
411
|
+
console.log(metadata.Password);
|
|
409
412
|
}
|
|
410
413
|
}
|
|
411
414
|
|
|
@@ -510,7 +513,7 @@ class User extends MetadataType {
|
|
|
510
513
|
* @param {string} roleName role.Name
|
|
511
514
|
* @param {number} userId user.AccountUserID
|
|
512
515
|
* @param {boolean} assignmentOnly if true, only assignment configuration will be returned
|
|
513
|
-
* @param {boolean} [isRoleRemovale
|
|
516
|
+
* @param {boolean} [isRoleRemovale] if true, role will be removed from user; otherwise added
|
|
514
517
|
* @returns {object} format needed by API
|
|
515
518
|
*/
|
|
516
519
|
static _getRoleObjectForDeploy(
|
|
@@ -737,7 +740,7 @@ class User extends MetadataType {
|
|
|
737
740
|
}
|
|
738
741
|
|
|
739
742
|
/**
|
|
740
|
-
* helper for {@link retrieveSOAP}
|
|
743
|
+
* helper for {@link User.retrieveSOAP}
|
|
741
744
|
*
|
|
742
745
|
* @private
|
|
743
746
|
* @param {TYPE.SoapRequestParams} [requestParams] required for the specific request (filter for example)
|
|
@@ -897,7 +900,7 @@ class User extends MetadataType {
|
|
|
897
900
|
}
|
|
898
901
|
}
|
|
899
902
|
/**
|
|
900
|
-
* helper for {@link createOrUpdate} to generate a random initial password for new users
|
|
903
|
+
* helper for {@link User.createOrUpdate} to generate a random initial password for new users
|
|
901
904
|
* note: possible minimum length values in SFMC are 6, 8, 10, 15 chars. Therefore we should default here to 15 chars.
|
|
902
905
|
*
|
|
903
906
|
* @private
|
|
@@ -13,6 +13,7 @@ module.exports = {
|
|
|
13
13
|
lastmodDateField: 'modifiedDate',
|
|
14
14
|
lastmodNameField: 'modifiedBy.name',
|
|
15
15
|
restPagination: true,
|
|
16
|
+
maxKeyLength: 36, // confirmed max length
|
|
16
17
|
type: 'asset',
|
|
17
18
|
typeDescription: 'Assets from Content Builder grouped into subtypes.',
|
|
18
19
|
typeRetrieveByDefault: ['asset', 'code', 'textfile', 'block', 'message', 'template', 'other'],
|