mcdev 6.0.2 → 7.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.
- package/.beautyamp.json +13 -0
- package/.eslintrc.json +7 -1
- package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
- package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +10 -3
- package/.github/workflows/close_issues_on_merge.yml +1 -1
- package/.github/workflows/code-test.yml +51 -3
- package/.github/workflows/coverage-base-update.yml +1 -1
- package/.github/workflows/coverage-develop-branch.yml +1 -1
- package/.github/workflows/coverage-main-branch.yml +1 -1
- package/.github/workflows/coverage.yml +2 -2
- package/.github/workflows/npm-publish.yml +3 -2
- package/.github/workflows/pr-labeler.yml +1 -1
- package/.husky/commit-msg +0 -2
- package/.husky/post-checkout +0 -3
- package/.husky/post-merge +2 -7
- package/.husky/pre-commit +5 -5
- package/.prettierrc +0 -8
- package/.vscode/extensions.json +2 -0
- package/.vscode/settings.json +15 -3
- package/@types/lib/Builder.d.ts +97 -0
- package/@types/lib/Builder.d.ts.map +1 -0
- package/@types/lib/Deployer.d.ts +99 -0
- package/@types/lib/Deployer.d.ts.map +1 -0
- package/@types/lib/MetadataTypeDefinitions.d.ts +80 -0
- package/@types/lib/MetadataTypeDefinitions.d.ts.map +1 -0
- package/@types/lib/MetadataTypeInfo.d.ts +78 -0
- package/@types/lib/MetadataTypeInfo.d.ts.map +1 -0
- package/@types/lib/Retriever.d.ts +66 -0
- package/@types/lib/Retriever.d.ts.map +1 -0
- package/@types/lib/cli.d.ts +3 -0
- package/@types/lib/cli.d.ts.map +1 -0
- package/@types/lib/index.d.ts +383 -0
- package/@types/lib/index.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Asset.d.ts +1082 -0
- package/@types/lib/metadataTypes/Asset.d.ts.map +1 -0
- package/@types/lib/metadataTypes/AttributeGroup.d.ts +290 -0
- package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -0
- package/@types/lib/metadataTypes/AttributeSet.d.ts +968 -0
- package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Automation.d.ts +921 -0
- package/@types/lib/metadataTypes/Automation.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Campaign.d.ts +190 -0
- package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -0
- package/@types/lib/metadataTypes/ContentArea.d.ts +250 -0
- package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -0
- package/@types/lib/metadataTypes/DataExtension.d.ts +571 -0
- package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -0
- package/@types/lib/metadataTypes/DataExtensionField.d.ts +236 -0
- package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -0
- package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +175 -0
- package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -0
- package/@types/lib/metadataTypes/DataExtract.d.ts +217 -0
- package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -0
- package/@types/lib/metadataTypes/DataExtractType.d.ts +80 -0
- package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -0
- package/@types/lib/metadataTypes/DeliveryProfile.d.ts +102 -0
- package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Discovery.d.ts +189 -0
- package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Email.d.ts +384 -0
- package/@types/lib/metadataTypes/Email.d.ts.map +1 -0
- package/@types/lib/metadataTypes/EmailSend.d.ts +652 -0
- package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Event.d.ts +958 -0
- package/@types/lib/metadataTypes/Event.d.ts.map +1 -0
- package/@types/lib/metadataTypes/FileLocation.d.ts +101 -0
- package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -0
- package/@types/lib/metadataTypes/FileTransfer.d.ts +228 -0
- package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Filter.d.ts +145 -0
- package/@types/lib/metadataTypes/Filter.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Folder.d.ts +287 -0
- package/@types/lib/metadataTypes/Folder.d.ts.map +1 -0
- package/@types/lib/metadataTypes/ImportFile.d.ts +409 -0
- package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Journey.d.ts +541 -0
- package/@types/lib/metadataTypes/Journey.d.ts.map +1 -0
- package/@types/lib/metadataTypes/List.d.ts +191 -0
- package/@types/lib/metadataTypes/List.d.ts.map +1 -0
- package/@types/lib/metadataTypes/MetadataType.d.ts +680 -0
- package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -0
- package/@types/lib/metadataTypes/MobileCode.d.ts +225 -0
- package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -0
- package/@types/lib/metadataTypes/MobileKeyword.d.ts +432 -0
- package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -0
- package/@types/lib/metadataTypes/MobileMessage.d.ts +931 -0
- package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Query.d.ts +299 -0
- package/@types/lib/metadataTypes/Query.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Role.d.ts +164 -0
- package/@types/lib/metadataTypes/Role.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Script.d.ts +305 -0
- package/@types/lib/metadataTypes/Script.d.ts.map +1 -0
- package/@types/lib/metadataTypes/SendClassification.d.ts +221 -0
- package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -0
- package/@types/lib/metadataTypes/SenderProfile.d.ts +257 -0
- package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -0
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts +230 -0
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -0
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts +163 -0
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -0
- package/@types/lib/metadataTypes/TransactionalPush.d.ts +175 -0
- package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -0
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts +205 -0
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -0
- package/@types/lib/metadataTypes/TriggeredSend.d.ts +671 -0
- package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -0
- package/@types/lib/metadataTypes/User.d.ts +677 -0
- package/@types/lib/metadataTypes/User.d.ts.map +1 -0
- package/@types/lib/metadataTypes/Verification.d.ts +188 -0
- package/@types/lib/metadataTypes/Verification.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +692 -0
- package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +246 -0
- package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +893 -0
- package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +616 -0
- package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +126 -0
- package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +182 -0
- package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +237 -0
- package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +121 -0
- package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +133 -0
- package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +156 -0
- package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +34 -0
- package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +80 -0
- package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +146 -0
- package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +314 -0
- package/@types/lib/metadataTypes/definitions/Email.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +582 -0
- package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +867 -0
- package/@types/lib/metadataTypes/definitions/Event.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +68 -0
- package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +191 -0
- package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +147 -0
- package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +174 -0
- package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +306 -0
- package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +426 -0
- package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/List.definition.d.ts +118 -0
- package/@types/lib/metadataTypes/definitions/List.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +167 -0
- package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +276 -0
- package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +783 -0
- package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +203 -0
- package/@types/lib/metadataTypes/definitions/Query.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +108 -0
- package/@types/lib/metadataTypes/definitions/Role.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +153 -0
- package/@types/lib/metadataTypes/definitions/Script.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +151 -0
- package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +180 -0
- package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +167 -0
- package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +99 -0
- package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +119 -0
- package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +113 -0
- package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +560 -0
- package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/User.definition.d.ts +423 -0
- package/@types/lib/metadataTypes/definitions/User.definition.d.ts.map +1 -0
- package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +129 -0
- package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts.map +1 -0
- package/@types/lib/retrieveChangelog.d.ts +3 -0
- package/@types/lib/retrieveChangelog.d.ts.map +1 -0
- package/@types/lib/util/auth.d.ts +41 -0
- package/@types/lib/util/auth.d.ts.map +1 -0
- package/@types/lib/util/businessUnit.d.ts +21 -0
- package/@types/lib/util/businessUnit.d.ts.map +1 -0
- package/@types/lib/util/cache.d.ts +64 -0
- package/@types/lib/util/cache.d.ts.map +1 -0
- package/@types/lib/util/cli.d.ts +125 -0
- package/@types/lib/util/cli.d.ts.map +1 -0
- package/@types/lib/util/config.d.ts +45 -0
- package/@types/lib/util/config.d.ts.map +1 -0
- package/@types/lib/util/devops.d.ts +62 -0
- package/@types/lib/util/devops.d.ts.map +1 -0
- package/@types/lib/util/file.d.ts +20 -0
- package/@types/lib/util/file.d.ts.map +1 -0
- package/@types/lib/util/init.config.d.ts +66 -0
- package/@types/lib/util/init.config.d.ts.map +1 -0
- package/@types/lib/util/init.d.ts +72 -0
- package/@types/lib/util/init.d.ts.map +1 -0
- package/@types/lib/util/init.git.d.ts +40 -0
- package/@types/lib/util/init.git.d.ts.map +1 -0
- package/@types/lib/util/init.npm.d.ts +24 -0
- package/@types/lib/util/init.npm.d.ts.map +1 -0
- package/@types/lib/util/replaceContentBlockReference.d.ts +105 -0
- package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -0
- package/@types/lib/util/util.d.ts +322 -0
- package/@types/lib/util/util.d.ts.map +1 -0
- package/@types/types/mcdev.d.d.ts +1282 -0
- package/@types/types/mcdev.d.d.ts.map +1 -0
- package/LICENSE +1 -1
- package/README.md +7 -3
- package/boilerplate/files/.beautyamp.json +13 -0
- package/boilerplate/files/.prettierrc +3 -0
- package/boilerplate/files/.vscode/extensions.json +6 -1
- package/boilerplate/files/.vscode/settings.json +16 -4
- package/boilerplate/forcedUpdates.json +9 -0
- package/jsconfig.json +7 -2
- package/lib/Builder.js +49 -45
- package/lib/Deployer.js +100 -45
- package/lib/MetadataTypeDefinitions.js +6 -0
- package/lib/MetadataTypeInfo.js +4 -0
- package/lib/Retriever.js +33 -27
- package/lib/cli.js +363 -28
- package/lib/index.js +615 -55
- package/lib/metadataTypes/Asset.js +811 -159
- package/lib/metadataTypes/AttributeGroup.js +17 -12
- package/lib/metadataTypes/AttributeSet.js +20 -15
- package/lib/metadataTypes/Automation.js +125 -93
- package/lib/metadataTypes/Campaign.js +18 -6
- package/lib/metadataTypes/ContentArea.js +21 -18
- package/lib/metadataTypes/DataExtension.js +229 -113
- package/lib/metadataTypes/DataExtensionField.js +52 -53
- package/lib/metadataTypes/DataExtensionTemplate.js +17 -5
- package/lib/metadataTypes/DataExtract.js +62 -27
- package/lib/metadataTypes/DataExtractType.js +17 -5
- package/lib/metadataTypes/DeliveryProfile.js +47 -0
- package/lib/metadataTypes/Discovery.js +15 -4
- package/lib/metadataTypes/Email.js +22 -19
- package/lib/metadataTypes/EmailSend.js +135 -35
- package/lib/metadataTypes/Event.js +95 -60
- package/lib/metadataTypes/FileLocation.js +17 -5
- package/lib/metadataTypes/FileTransfer.js +62 -26
- package/lib/metadataTypes/Filter.js +16 -4
- package/lib/metadataTypes/Folder.js +67 -39
- package/lib/metadataTypes/ImportFile.js +341 -91
- package/lib/metadataTypes/Journey.js +681 -324
- package/lib/metadataTypes/List.js +26 -14
- package/lib/metadataTypes/MetadataType.js +501 -265
- package/lib/metadataTypes/MobileCode.js +17 -5
- package/lib/metadataTypes/MobileKeyword.js +59 -43
- package/lib/metadataTypes/MobileMessage.js +67 -40
- package/lib/metadataTypes/Query.js +46 -38
- package/lib/metadataTypes/Role.js +34 -23
- package/lib/metadataTypes/Script.js +127 -39
- package/lib/metadataTypes/SendClassification.js +120 -5
- package/lib/metadataTypes/SenderProfile.js +179 -0
- package/lib/metadataTypes/TransactionalEmail.js +30 -17
- package/lib/metadataTypes/TransactionalMessage.js +25 -11
- package/lib/metadataTypes/TransactionalPush.js +24 -9
- package/lib/metadataTypes/TransactionalSMS.js +78 -46
- package/lib/metadataTypes/TriggeredSend.js +191 -43
- package/lib/metadataTypes/User.js +90 -62
- package/lib/metadataTypes/Verification.js +39 -21
- package/lib/metadataTypes/definitions/Asset.definition.js +3 -3
- package/lib/metadataTypes/definitions/AttributeGroup.definition.js +7 -1
- package/lib/metadataTypes/definitions/AttributeSet.definition.js +2 -2
- package/lib/metadataTypes/definitions/Automation.definition.js +4 -1
- package/lib/metadataTypes/definitions/Campaign.definition.js +1 -1
- package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -1
- package/lib/metadataTypes/definitions/DataExtension.definition.js +17 -1
- package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -1
- package/lib/metadataTypes/definitions/DataExtractType.definition.js +2 -2
- package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +59 -0
- package/lib/metadataTypes/definitions/Discovery.definition.js +1 -1
- package/lib/metadataTypes/definitions/Email.definition.js +1 -1
- package/lib/metadataTypes/definitions/EmailSend.definition.js +19 -4
- package/lib/metadataTypes/definitions/Event.definition.js +140 -128
- package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -1
- package/lib/metadataTypes/definitions/Filter.definition.js +1 -1
- package/lib/metadataTypes/definitions/Folder.definition.js +25 -2
- package/lib/metadataTypes/definitions/ImportFile.definition.js +52 -7
- package/lib/metadataTypes/definitions/Journey.definition.js +12 -0
- package/lib/metadataTypes/definitions/List.definition.js +1 -1
- package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -1
- package/lib/metadataTypes/definitions/MobileMessage.definition.js +11 -5
- package/lib/metadataTypes/definitions/Query.definition.js +6 -0
- package/lib/metadataTypes/definitions/Script.definition.js +14 -14
- package/lib/metadataTypes/definitions/SendClassification.definition.js +60 -20
- package/lib/metadataTypes/definitions/SenderProfile.definition.js +185 -0
- package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +2 -2
- package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +69 -0
- package/lib/metadataTypes/definitions/TransactionalPush.definition.js +6 -0
- package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +6 -0
- package/lib/metadataTypes/definitions/TriggeredSend.definition.js +15 -4
- package/lib/metadataTypes/definitions/Verification.definition.js +1 -1
- package/lib/retrieveChangelog.js +7 -2
- package/lib/util/auth.js +56 -21
- package/lib/util/businessUnit.js +20 -2
- package/lib/util/cache.js +37 -18
- package/lib/util/cli.js +72 -29
- package/lib/util/config.js +27 -9
- package/lib/util/devops.js +45 -24
- package/lib/util/file.js +58 -33
- package/lib/util/init.config.js +55 -24
- package/lib/util/init.git.js +6 -6
- package/lib/util/init.js +36 -14
- package/lib/util/init.npm.js +2 -2
- package/lib/util/replaceContentBlockReference.js +278 -0
- package/lib/util/util.js +152 -54
- package/package.json +33 -30
- package/test/general.test.js +1327 -4
- package/test/mockRoot/.mcdevrc.json +26 -4
- package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +3 -4
- package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +1 -4
- package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.json +11 -0
- package/test/mockRoot/deploy/testInstance/_ParentBU_/query/testNew_query.query-meta.sql +4 -0
- package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.html +12 -0
- package/test/mockRoot/deploy/testInstance/testBU/asset/block/testNew_asset.asset-block-meta.json +39 -0
- package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +6 -6
- package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +7 -7
- package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +3 -4
- package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testNew_dataExtension.dataExtension-meta.json +1 -4
- package/test/mockRoot/deploy/testInstance/testBU/emailSend/testExisting_emailSend.emailSend-meta.json +36 -0
- package/test/mockRoot/deploy/testInstance/testBU/emailSend/testNew_emailSend.emailSend-meta.json +36 -0
- package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +10 -4
- package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +8 -4
- package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_Quicksend.journey-meta.json +232 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.json +2 -4
- package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.json +2 -4
- package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query.query-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/query/testNew_query.query-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testExisting_sendClassification.sendClassification-meta.json +8 -0
- package/test/mockRoot/deploy/testInstance/testBU/sendClassification/testNew_sendClassification.sendClassification-meta.json +8 -0
- package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testExisting_senderProfile.senderProfile-meta.json +14 -0
- package/test/mockRoot/deploy/testInstance/testBU/senderProfile/testNew_senderProfile.senderProfile-meta.json +14 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testExisting_tpush.transactionalPush-meta.json +1 -3
- package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testNew_tpush.transactionalPush-meta.json +1 -3
- package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +1 -2
- package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +1 -2
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +4 -5
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +4 -5
- package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +1 -1
- package/test/resourceFactory.js +118 -7
- package/test/resources/1111111/automation/v1/queries/get-response.json +6 -0
- package/test/resources/1111111/automation/v1/queries/post-response.json +18 -0
- package/test/resources/1111111/dataExtension/create-expected.json +4 -7
- package/test/resources/1111111/dataExtension/retrieve-expected.json +2 -4
- package/test/resources/1111111/dataExtension/update-expected.json +7 -7
- package/test/resources/1111111/dataExtension/update-response.xml +3 -1
- package/test/resources/1111111/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
- package/test/resources/1111111/query/patch_keySuffix-expected.json +11 -0
- package/test/resources/1111111/query/patch_keySuffix-expected.sql +4 -0
- package/test/resources/9999999/asset/block-1157-retrieve-expected.html +4 -3
- package/test/resources/9999999/asset/build-templatebasedemail-expected.json +81 -0
- package/test/resources/9999999/asset/build-templatebasedemail-html-expected.html +20 -0
- package/test/resources/9999999/asset/build-templatebasedemail-preheader-expected.amp +1 -0
- package/test/resources/9999999/asset/create-expected.json +18 -0
- package/test/resources/9999999/asset/resolveId-1234-notFound-expected.json +1 -0
- package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +8 -0
- package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +8 -0
- package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +84 -0
- package/test/resources/9999999/asset/retrieve-templatebasedemail-html-expected.html +20 -0
- package/test/resources/9999999/asset/retrieve-templatebasedemail-preheader-expected.amp +1 -0
- package/test/resources/9999999/asset/template-templatebasedemail-expected.json +81 -0
- package/test/resources/9999999/asset/template-templatebasedemail-html-expected.html +20 -0
- package/test/resources/9999999/asset/template-templatebasedemail-preheader-expected.amp +1 -0
- package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-id-expected.html +33 -0
- package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +33 -0
- package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-name-expected.html +35 -0
- package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +4 -0
- package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -0
- package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +4 -0
- package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-id-expected.amp +4 -0
- package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -0
- package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-name-expected.amp +4 -0
- package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +1 -1
- package/test/resources/9999999/asset/v1/content/assets/5286/get-response.json +48 -0
- package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +198 -0
- package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +4 -3
- package/test/resources/9999999/asset/v1/content/assets/950143/delete-response.txt +1 -0
- package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +105 -0
- package/test/resources/9999999/asset/v1/content/assets/post-response.json +59 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14.json +7 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN193,194,15.json +7 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN195,196,197,198,199,200,201,202,203,210,211,212,213,3.json +46 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +32 -0
- package/test/resources/9999999/asset/v1/content/assets/query/{post-response.json → post-response-assetType.idIN207,208,209,5.json} +45 -47
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN214,4.json +35 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN215,216,217,218,219,220,221,222,223,224,225,226,227,228.json +7 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-customerKey=mcdev-issue-1157.json +46 -0
- package/test/resources/9999999/attributeGroup/retrieve-expected.json +1 -1
- package/test/resources/9999999/attributeSet/retrieve-expected.json +3 -3
- package/test/resources/9999999/automation/build-expected.json +7 -7
- package/test/resources/9999999/automation/create-expected.json +7 -7
- package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +6 -6
- package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +6 -6
- package/test/resources/9999999/automation/retrieve-expected.json +7 -7
- package/test/resources/9999999/automation/template-expected.json +7 -7
- package/test/resources/9999999/automation/update-expected.json +6 -6
- package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/delete-response.txt +1 -0
- package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/delete-response.json +1 -0
- package/test/resources/9999999/automation/v1/imports/1ebf557b-372e-eb11-b81b-48df37d1dbd7/get-response.json +78 -0
- package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/delete-response.txt +0 -0
- package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/get-response.json +35 -0
- package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +14 -10
- package/test/resources/9999999/automation/v1/imports/get-response.json +78 -1
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +1 -1
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/get-response.json +17 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeysSuffix/patch-response.json +18 -0
- package/test/resources/9999999/automation/v1/queries/abcde-607c-4940-afef-437965094dat/get-response.json +17 -0
- package/test/resources/9999999/automation/v1/queries/get-response.json +20 -3
- package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/delete-response.txt +1 -0
- package/test/resources/9999999/automation/v1/scripts/get-response.json +3 -3
- package/test/resources/9999999/dataExtension/build-expected.json +3 -4
- package/test/resources/9999999/dataExtension/create-expected.json +1 -4
- package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +4 -4
- package/test/resources/9999999/dataExtension/retrieve-expected.json +3 -4
- package/test/resources/9999999/dataExtension/retrieve-response.xml +96 -1
- package/test/resources/9999999/dataExtension/template-expected.json +3 -4
- package/test/resources/9999999/dataExtension/update-expected.json +4 -3
- package/test/resources/9999999/dataExtension/update-response.xml +5 -3
- package/test/resources/9999999/dataExtensionField/retrieve-response.xml +72 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=userinitiatedsends-response.xml +48 -0
- package/test/resources/9999999/deliveryProfile/get-expected.json +7 -0
- package/test/resources/9999999/emailSend/build-expected.json +43 -0
- package/test/resources/9999999/emailSend/get-expected.json +43 -0
- package/test/resources/9999999/emailSend/patch-expected.json +41 -0
- package/test/resources/9999999/emailSend/post-expected.json +41 -0
- package/test/resources/9999999/emailSend/template-expected.json +43 -0
- package/test/resources/9999999/emailSendDefinition/create-response.xml +98 -0
- package/test/resources/9999999/emailSendDefinition/delete-response.xml +36 -0
- package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +18 -8
- package/test/resources/9999999/emailSendDefinition/update-response.xml +97 -0
- package/test/resources/9999999/importDefinition/retrieve-CustomerKey=testExisting_importFile-response.xml +30 -0
- package/test/resources/9999999/importDefinition/retrieve-Name=testExisting_importFile-response.xml +30 -0
- package/test/resources/9999999/importFile/build-expected.json +11 -6
- package/test/resources/9999999/importFile/get-expected.json +13 -7
- package/test/resources/9999999/importFile/get-sms-expected.json +79 -0
- package/test/resources/9999999/importFile/patch-expected.json +12 -7
- package/test/resources/9999999/importFile/post-expected.json +8 -5
- package/test/resources/9999999/importFile/template-expected.json +10 -5
- package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +124 -0
- package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/delete-response.txt +1 -0
- package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +253 -0
- package/test/resources/9999999/interaction/v1/interactions/get-response.json +83 -779
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response.json +457 -0
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +253 -0
- package/test/resources/9999999/interaction/v1/interactions/{key_0b76dccf-594c-b6dc-1acf-10c4493dcb84 → key_testExisting_temail}/get-response.json +5 -5
- package/test/resources/9999999/journey/build-expected.json +105 -449
- package/test/resources/9999999/journey/get-multistep-expected.json +413 -0
- package/test/resources/9999999/journey/get-quicksend-expected.json +232 -0
- package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +232 -0
- package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +232 -0
- package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +232 -0
- package/test/resources/9999999/journey/get-transactionalEmail-expected.json +211 -0
- package/test/resources/9999999/journey/template-expected.json +105 -449
- package/test/resources/9999999/legacy/v1/beta/messaging/deliverypolicy/get-response.json +15 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/imports/get-response.json +112 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/NTQ3Ojc4OjA/get-response.json +1 -1
- package/test/resources/9999999/legacy/v1/beta/object/NWQwdnhEU3dFZWVBekJRQzdISWl0QTo0NTow/get-response.json +12 -0
- package/test/resources/9999999/list/retrieve-response.xml +13 -0
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +1 -1
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +1 -1
- package/test/resources/9999999/mobileMessage/build-expected.json +2 -5
- package/test/resources/9999999/mobileMessage/get-expected.json +2 -5
- package/test/resources/9999999/mobileMessage/post-create-expected.json +2 -4
- package/test/resources/9999999/mobileMessage/post-update-expected.json +2 -5
- package/test/resources/9999999/mobileMessage/template-expected.json +2 -5
- package/test/resources/9999999/query/build-expected.json +1 -1
- package/test/resources/9999999/query/build-expected.sql +2 -1
- package/test/resources/9999999/query/get-expected.json +1 -1
- package/test/resources/9999999/query/get-expected.sql +2 -1
- package/test/resources/9999999/query/get2-expected.json +1 -1
- package/test/resources/9999999/query/patch-expected.json +1 -1
- package/test/resources/9999999/query/patch_fixKeys-expected.json +1 -1
- package/test/resources/9999999/query/patch_fixKeysSuffix-expected.json +11 -0
- package/test/resources/9999999/query/patch_fixKeysSuffix-expected.sql +6 -0
- package/test/resources/9999999/query/post-expected.json +1 -1
- package/test/resources/9999999/query/template-expected.json +1 -1
- package/test/resources/9999999/query/template-expected.sql +2 -1
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query2ANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysSuffixANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/script/get_ampincluded-expected.html +5 -0
- package/test/resources/9999999/script/get_ampincluded-rcb-id-expected.html +5 -0
- package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +5 -0
- package/test/resources/9999999/script/get_ampincluded-rcb-name-expected.html +5 -0
- package/test/resources/9999999/script/get_ampscript-expected.html +6 -1
- package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +8 -0
- package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +8 -0
- package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +10 -0
- package/test/resources/9999999/script/get_mixed-expected.html +5 -2
- package/test/resources/9999999/script/get_mixed-rcb-id-expected.html +12 -0
- package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +12 -0
- package/test/resources/9999999/script/get_mixed-rcb-name-expected.html +14 -0
- package/test/resources/9999999/sendClassification/build-expected.json +8 -0
- package/test/resources/9999999/sendClassification/create-response.xml +51 -0
- package/test/resources/9999999/sendClassification/delete-response.xml +36 -0
- package/test/resources/9999999/sendClassification/get-expected.json +10 -0
- package/test/resources/9999999/sendClassification/patch-expected.json +8 -0
- package/test/resources/9999999/sendClassification/post-expected.json +8 -0
- package/test/resources/9999999/sendClassification/retrieve-response.xml +86 -0
- package/test/resources/9999999/sendClassification/template-expected.json +8 -0
- package/test/resources/9999999/sendClassification/update-response.xml +49 -0
- package/test/resources/9999999/senderProfile/build-expected.json +14 -0
- package/test/resources/9999999/senderProfile/create-response.xml +49 -0
- package/test/resources/9999999/senderProfile/delete-response.xml +36 -0
- package/test/resources/9999999/senderProfile/get-expected.json +16 -0
- package/test/resources/9999999/senderProfile/get-rcb-id-expected.json +16 -0
- package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +16 -0
- package/test/resources/9999999/senderProfile/get-rcb-name-expected.json +16 -0
- package/test/resources/9999999/senderProfile/patch-expected.json +14 -0
- package/test/resources/9999999/senderProfile/post-expected.json +14 -0
- package/test/resources/9999999/senderProfile/retrieve-CustomerKey=Default-response.xml +44 -0
- package/test/resources/9999999/senderProfile/retrieve-CustomerKey=wrong-key-response.xml +26 -0
- package/test/resources/9999999/senderProfile/retrieve-response.xml +80 -0
- package/test/resources/9999999/senderProfile/template-expected.json +14 -0
- package/test/resources/9999999/senderProfile/update-response.xml +47 -0
- package/test/resources/9999999/transactionalEmail/build-expected.json +3 -3
- package/test/resources/9999999/transactionalEmail/get-expected.json +3 -3
- package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -3
- package/test/resources/9999999/transactionalEmail/post-expected.json +2 -2
- package/test/resources/9999999/transactionalEmail/template-expected.json +3 -3
- package/test/resources/9999999/transactionalPush/build-expected.json +1 -1
- package/test/resources/9999999/transactionalPush/get-expected.json +1 -1
- package/test/resources/9999999/transactionalPush/patch-expected.json +1 -3
- package/test/resources/9999999/transactionalPush/post-expected.json +1 -3
- package/test/resources/9999999/transactionalPush/template-expected.json +1 -1
- package/test/resources/9999999/transactionalSMS/build-expected.amp +1 -1
- package/test/resources/9999999/transactionalSMS/build-expected.json +1 -2
- package/test/resources/9999999/transactionalSMS/get-expected.amp +1 -1
- package/test/resources/9999999/transactionalSMS/get-expected.json +1 -2
- package/test/resources/9999999/transactionalSMS/patch-expected.amp +1 -1
- package/test/resources/9999999/transactionalSMS/patch-expected.json +1 -2
- package/test/resources/9999999/transactionalSMS/post-expected.amp +1 -1
- package/test/resources/9999999/transactionalSMS/post-expected.json +1 -2
- package/test/resources/9999999/transactionalSMS/template-expected.amp +1 -1
- package/test/resources/9999999/transactionalSMS/template-expected.json +1 -2
- package/test/resources/9999999/triggeredSend/build-expected.json +5 -6
- package/test/resources/9999999/triggeredSend/get-expected.json +5 -6
- package/test/resources/9999999/triggeredSend/get-rcb-id-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/get-rcb-name-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/patch-expected.json +5 -6
- package/test/resources/9999999/triggeredSend/post-expected.json +5 -6
- package/test/resources/9999999/triggeredSend/template-expected.json +5 -6
- package/test/resources/9999999/triggeredSendDefinition/create-response.xml +6 -1
- package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +53 -1
- package/test/resources/9999999/triggeredSendDefinition/update-response.xml +6 -1
- package/test/resources/9999999/verification/build-expected.json +1 -1
- package/test/resources/9999999/verification/get-expected.json +1 -1
- package/test/resources/9999999/verification/patch-expected.json +1 -1
- package/test/resources/9999999/verification/post-expected.json +1 -1
- package/test/resources/9999999/verification/template-expected.json +1 -1
- package/test/type.asset.test.js +733 -17
- package/test/type.attributeGroup.test.js +6 -2
- package/test/type.attributeSet.test.js +6 -2
- package/test/type.automation.test.js +174 -162
- package/test/type.dataExtension.test.js +41 -45
- package/test/type.dataExtract.test.js +22 -29
- package/test/type.deliveryProfile.test.js +45 -0
- package/test/type.emailSend.test.js +144 -0
- package/test/type.event.test.js +62 -0
- package/test/type.fileTransfer.test.js +21 -29
- package/test/type.importFile.test.js +61 -35
- package/test/type.journey.test.js +251 -45
- package/test/type.mobileKeyword.test.js +46 -54
- package/test/type.mobileMessage.test.js +28 -27
- package/test/type.query.test.js +303 -124
- package/test/type.script.test.js +288 -69
- package/test/type.sendClassification.test.js +156 -0
- package/test/type.senderProfile.test.js +254 -0
- package/test/type.transactionalEmail.test.js +15 -11
- package/test/type.transactionalPush.test.js +15 -11
- package/test/type.transactionalSMS.test.js +30 -23
- package/test/type.triggeredSend.test.js +130 -17
- package/test/type.user.test.js +22 -14
- package/test/type.verification.test.js +13 -10
- package/test/utils.js +76 -21
- package/tsconfig.json +21 -0
- package/types/mcdev.d.js +190 -66
- package/docs/dist/documentation.md +0 -8878
- package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_interaction.interaction-meta.json +0 -576
- package/test/mockRoot/deploy/testInstance/testBU/journey/testNew_interaction.interaction-meta.json +0 -266
- package/test/resources/9999999/interaction/v1/EventDefinitions/get-response.json +0 -43
- package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +0 -1
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +0 -592
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/put-response.json +0 -592
- package/test/resources/9999999/interaction/v1/interactions/post-response.json +0 -280
- package/test/resources/9999999/journey/get-expected.json +0 -576
- package/test/resources/9999999/script/get_ampincluded-expected.ssjs +0 -5
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
import jsonToTable from 'json-to-table';
|
|
4
|
-
import TYPE from '../../types/mcdev.d.js';
|
|
5
4
|
import MetadataType from './MetadataType.js';
|
|
6
5
|
import AttributeSet from './AttributeSet.js';
|
|
7
6
|
import DataExtensionField from './DataExtensionField.js';
|
|
@@ -13,22 +12,40 @@ import cache from '../util/cache.js';
|
|
|
13
12
|
import pLimit from 'p-limit';
|
|
14
13
|
import inquirer from 'inquirer';
|
|
15
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {import('../../types/mcdev.d.js').BuObject} BuObject
|
|
17
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
|
|
18
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
|
|
19
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
|
|
20
|
+
* @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
|
|
21
|
+
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {import('../../types/mcdev.d.js').DataExtensionFieldItem} DataExtensionFieldItem
|
|
25
|
+
* @typedef {import('../../types/mcdev.d.js').DataExtensionFieldMap} DataExtensionFieldMap
|
|
26
|
+
* @typedef {import('../../types/mcdev.d.js').DataExtensionItem} DataExtensionItem
|
|
27
|
+
* @typedef {import('../../types/mcdev.d.js').DataExtensionMap} DataExtensionMap
|
|
28
|
+
*/
|
|
29
|
+
|
|
16
30
|
/**
|
|
17
31
|
* DataExtension MetadataType
|
|
18
32
|
*
|
|
19
33
|
* @augments MetadataType
|
|
20
34
|
*/
|
|
21
35
|
class DataExtension extends MetadataType {
|
|
36
|
+
/** @type {DataExtensionFieldMap} */
|
|
37
|
+
static oldFields;
|
|
22
38
|
/**
|
|
23
39
|
* Upserts dataExtensions after retrieving them from source and target to compare
|
|
24
40
|
* if create or update operation is needed.
|
|
25
41
|
*
|
|
26
|
-
* @param {
|
|
42
|
+
* @param {DataExtensionMap} metadataMap dataExtensions mapped by their customerKey
|
|
27
43
|
* @returns {Promise} Promise
|
|
28
44
|
*/
|
|
29
45
|
static async upsert(metadataMap) {
|
|
30
46
|
// get existing DE-fields for DE-keys in deployment package to properly handle add/update/delete of fields
|
|
31
47
|
// we need to use IN here because it would fail otherwise if we try to deploy too many DEs at the same time
|
|
48
|
+
/** @type {SoapRequestParams} */
|
|
32
49
|
const fieldOptions = {
|
|
33
50
|
filter: {
|
|
34
51
|
leftOperand: 'DataExtension.CustomerKey',
|
|
@@ -88,9 +105,7 @@ class DataExtension extends MetadataType {
|
|
|
88
105
|
await Promise.allSettled(
|
|
89
106
|
metadataToUpdate
|
|
90
107
|
.filter((r) => r !== undefined && r !== null)
|
|
91
|
-
.map((metadataEntry) =>
|
|
92
|
-
updateLimit(() => this.update(metadataEntry.after, metadataEntry.before))
|
|
93
|
-
)
|
|
108
|
+
.map((metadataEntry) => updateLimit(() => this.update(metadataEntry.after)))
|
|
94
109
|
)
|
|
95
110
|
)
|
|
96
111
|
.filter((r) => r !== undefined && r !== null)
|
|
@@ -104,6 +119,7 @@ class DataExtension extends MetadataType {
|
|
|
104
119
|
let upsertResults;
|
|
105
120
|
if (successfulResults.length > 0) {
|
|
106
121
|
const metadataResults = successfulResults
|
|
122
|
+
// @ts-expect-error not sure why this produces a type error. looks 100% correct
|
|
107
123
|
.map((r) => r.value.Results[0].Object)
|
|
108
124
|
.map((r) => {
|
|
109
125
|
// if only one fields added will return object otherwise array
|
|
@@ -128,12 +144,12 @@ class DataExtension extends MetadataType {
|
|
|
128
144
|
/**
|
|
129
145
|
* helper for {@link MetadataType.upsert}
|
|
130
146
|
*
|
|
131
|
-
* @param {
|
|
147
|
+
* @param {MetadataTypeMap} metadataMap list of metadata
|
|
132
148
|
* @param {string} metadataKey key of item we are looking at
|
|
133
149
|
* @param {boolean} hasError error flag from previous code
|
|
134
|
-
* @param {
|
|
135
|
-
* @param {
|
|
136
|
-
* @returns {'create'
|
|
150
|
+
* @param {MetadataTypeItemDiff[]} metadataToUpdate list of items to update
|
|
151
|
+
* @param {MetadataTypeItem[]} metadataToCreate list of items to create
|
|
152
|
+
* @returns {Promise.<'create'|'update'|'skip'>} action to take
|
|
137
153
|
*/
|
|
138
154
|
static async createOrUpdate(
|
|
139
155
|
metadataMap,
|
|
@@ -156,6 +172,7 @@ class DataExtension extends MetadataType {
|
|
|
156
172
|
DataExtensionField.client = this.client;
|
|
157
173
|
DataExtensionField.properties = this.properties;
|
|
158
174
|
DataExtension.oldFields ||= {};
|
|
175
|
+
// @ts-expect-error not sure why this produces a type error. looks 100% correct
|
|
159
176
|
DataExtension.oldFields[metadataMap[metadataKey][this.definition.keyField]] =
|
|
160
177
|
await DataExtensionField.prepareDeployColumnsOnUpdate(
|
|
161
178
|
metadataMap[metadataKey].Fields,
|
|
@@ -193,11 +210,11 @@ class DataExtension extends MetadataType {
|
|
|
193
210
|
// </Fields>
|
|
194
211
|
metadataMap[metadataKey].Fields = { Field: metadataMap[metadataKey].Fields };
|
|
195
212
|
}
|
|
213
|
+
return action;
|
|
196
214
|
}
|
|
197
215
|
/**
|
|
198
216
|
* helper for {@link DataExtension.upsert}
|
|
199
217
|
*
|
|
200
|
-
* @private
|
|
201
218
|
* @param {object} res -
|
|
202
219
|
* @returns {boolean} true: keep, false: discard
|
|
203
220
|
*/
|
|
@@ -230,7 +247,7 @@ class DataExtension extends MetadataType {
|
|
|
230
247
|
/**
|
|
231
248
|
* Create a single dataExtension. Also creates their columns in 'dataExtension.columns'
|
|
232
249
|
*
|
|
233
|
-
* @param {
|
|
250
|
+
* @param {DataExtensionItem} metadata single metadata entry
|
|
234
251
|
* @returns {Promise} Promise
|
|
235
252
|
*/
|
|
236
253
|
static async create(metadata) {
|
|
@@ -242,8 +259,7 @@ class DataExtension extends MetadataType {
|
|
|
242
259
|
* if that field duplicates whats in the period fields
|
|
243
260
|
* during deployment, that extra value is not accepted by the APIs which is why it needs to be removed
|
|
244
261
|
*
|
|
245
|
-
* @
|
|
246
|
-
* @param {TYPE.DataExtensionItem} metadata single metadata entry
|
|
262
|
+
* @param {DataExtensionItem} metadata single metadata entry
|
|
247
263
|
* @returns {void}
|
|
248
264
|
*/
|
|
249
265
|
static #cleanupRetentionPolicyFields(metadata) {
|
|
@@ -261,7 +277,7 @@ class DataExtension extends MetadataType {
|
|
|
261
277
|
/**
|
|
262
278
|
* Updates a single dataExtension. Also updates their columns in 'dataExtension.columns'
|
|
263
279
|
*
|
|
264
|
-
* @param {
|
|
280
|
+
* @param {DataExtensionItem} metadata single metadata entry
|
|
265
281
|
* @returns {Promise} Promise
|
|
266
282
|
*/
|
|
267
283
|
static async update(metadata) {
|
|
@@ -270,10 +286,10 @@ class DataExtension extends MetadataType {
|
|
|
270
286
|
/**
|
|
271
287
|
* Gets executed after deployment of metadata type
|
|
272
288
|
*
|
|
273
|
-
* @param {
|
|
274
|
-
* @param {
|
|
289
|
+
* @param {DataExtensionMap} upsertedMetadata metadata mapped by their keyField
|
|
290
|
+
* @param {DataExtensionMap} originalMetadata metadata to be updated (contains additioanl fields)
|
|
275
291
|
* @param {{created: number, updated: number}} createdUpdated counter representing successful creates/updates
|
|
276
|
-
* @returns {void}
|
|
292
|
+
* @returns {Promise.<void>} -
|
|
277
293
|
*/
|
|
278
294
|
static async postDeployTasks(upsertedMetadata, originalMetadata, createdUpdated) {
|
|
279
295
|
for (const key in upsertedMetadata) {
|
|
@@ -295,6 +311,7 @@ class DataExtension extends MetadataType {
|
|
|
295
311
|
|
|
296
312
|
const existingFields = DataExtension.oldFields[item[this.definition.keyField]];
|
|
297
313
|
|
|
314
|
+
// @ts-expect-error Fields is a special case that cannot be properly typed; emtpy string is required for SOAP API
|
|
298
315
|
if (item.Fields === '') {
|
|
299
316
|
// if no fields were updated, we need to set Fields to "empty string" for the API to work
|
|
300
317
|
// reset here to get the correct field list
|
|
@@ -303,15 +320,15 @@ class DataExtension extends MetadataType {
|
|
|
303
320
|
.sort((a, b) => a.Ordinal - b.Ordinal);
|
|
304
321
|
} else if (existingFields) {
|
|
305
322
|
// get list of updated fields
|
|
306
|
-
/** @type {
|
|
323
|
+
/** @type {DataExtensionFieldItem[]} */ // @ts-ignore Fields.Field is a special case that cannot be properly typed; only required for SOAP API
|
|
307
324
|
const updatedFieldsArr = originalMetadata[oldKey].Fields.Field.filter(
|
|
308
325
|
(field) => field.ObjectID && field.ObjectID !== ''
|
|
309
326
|
);
|
|
310
327
|
// convert existing fields obj into array and sort
|
|
311
|
-
/** @type {
|
|
328
|
+
/** @type {DataExtensionFieldItem[]} */
|
|
312
329
|
const finalFieldsArr = Object.keys(existingFields)
|
|
313
330
|
.map((el) => {
|
|
314
|
-
/** @type {
|
|
331
|
+
/** @type {DataExtensionFieldItem} */
|
|
315
332
|
const existingField = existingFields[el];
|
|
316
333
|
// check if the current field was updated and then override with it. otherwise use existing value
|
|
317
334
|
const field =
|
|
@@ -327,7 +344,7 @@ class DataExtension extends MetadataType {
|
|
|
327
344
|
.sort((a, b) => a.Ordinal - b.Ordinal);
|
|
328
345
|
|
|
329
346
|
// get list of new fields
|
|
330
|
-
/** @type {
|
|
347
|
+
/** @type {DataExtensionFieldItem[]} */ // @ts-ignore Fields.Field is a special case that cannot be properly typed; only required for SOAP API
|
|
331
348
|
const newFieldsArr = originalMetadata[oldKey].Fields.Field.filter(
|
|
332
349
|
(field) => !field.ObjectID
|
|
333
350
|
);
|
|
@@ -343,7 +360,7 @@ class DataExtension extends MetadataType {
|
|
|
343
360
|
}
|
|
344
361
|
// UPDATE + CREATE
|
|
345
362
|
for (const field of item.Fields) {
|
|
346
|
-
DataExtensionField.
|
|
363
|
+
DataExtensionField.postRetrieveTasksDE(field);
|
|
347
364
|
}
|
|
348
365
|
}
|
|
349
366
|
await this.#fixShared(upsertedMetadata, originalMetadata, createdUpdated);
|
|
@@ -354,10 +371,10 @@ class DataExtension extends MetadataType {
|
|
|
354
371
|
* helper for {@link DataExtension.postDeployTasks}
|
|
355
372
|
* fixes an issue where shared data extensions are not visible in data designer on child BU; SF known issue: https://issues.salesforce.com/#q=W-11031095
|
|
356
373
|
*
|
|
357
|
-
* @param {
|
|
358
|
-
* @param {
|
|
374
|
+
* @param {DataExtensionMap} upsertedMetadata metadata mapped by their keyField
|
|
375
|
+
* @param {DataExtensionMap} originalMetadata metadata to be updated (contains additioanl fields)
|
|
359
376
|
* @param {{created: number, updated: number}} createdUpdated counter representing successful creates/updates
|
|
360
|
-
* @returns {void}
|
|
377
|
+
* @returns {Promise.<void>} -
|
|
361
378
|
*/
|
|
362
379
|
static async #fixShared(upsertedMetadata, originalMetadata, createdUpdated) {
|
|
363
380
|
if (this.buObject.eid !== this.buObject.mid) {
|
|
@@ -391,6 +408,7 @@ class DataExtension extends MetadataType {
|
|
|
391
408
|
const clientBak = this.client;
|
|
392
409
|
|
|
393
410
|
// get dataExtension ID-Key relationship
|
|
411
|
+
/** @type {Object.<string, string>} */
|
|
394
412
|
const sharedDataExtensionMap = {};
|
|
395
413
|
for (const key of sharedDataExtensionsKeys) {
|
|
396
414
|
try {
|
|
@@ -434,7 +452,7 @@ class DataExtension extends MetadataType {
|
|
|
434
452
|
/**
|
|
435
453
|
* helper for {@link DataExtension.#fixShared}
|
|
436
454
|
*
|
|
437
|
-
* @returns {string[]} list of selected BU names
|
|
455
|
+
* @returns {Promise.<string[]>} list of selected BU names
|
|
438
456
|
*/
|
|
439
457
|
static async #fixShared_getBUs() {
|
|
440
458
|
const buListObj = this.properties.credentials[this.buObject.credential].businessUnits;
|
|
@@ -467,13 +485,16 @@ class DataExtension extends MetadataType {
|
|
|
467
485
|
value: name,
|
|
468
486
|
checked: fixBuPreselected.includes(name),
|
|
469
487
|
}));
|
|
470
|
-
const questions =
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
488
|
+
const questions = [
|
|
489
|
+
{
|
|
490
|
+
type: 'checkbox',
|
|
491
|
+
name: 'businessUnits',
|
|
492
|
+
message:
|
|
493
|
+
'Please select BUs that have access to the updated Shared Data Extensions:',
|
|
494
|
+
pageSize: 10,
|
|
495
|
+
choices: buList,
|
|
496
|
+
},
|
|
497
|
+
];
|
|
477
498
|
let responses = null;
|
|
478
499
|
|
|
479
500
|
try {
|
|
@@ -488,7 +509,7 @@ class DataExtension extends MetadataType {
|
|
|
488
509
|
* helper for {@link DataExtension.#fixShared}
|
|
489
510
|
*
|
|
490
511
|
* @param {string} childBuName name of child BU to fix
|
|
491
|
-
* @param {
|
|
512
|
+
* @param {BuObject} buObjectParent bu object for parent BU
|
|
492
513
|
* @param {object} clientParent SDK for parent BU
|
|
493
514
|
* @param {Object.<string, string>} sharedDataExtensionMap ID-Key relationship of shared data extensions
|
|
494
515
|
* @returns {Promise.<string[]>} updated shared DE keys on BU
|
|
@@ -499,7 +520,7 @@ class DataExtension extends MetadataType {
|
|
|
499
520
|
clientParent,
|
|
500
521
|
sharedDataExtensionMap
|
|
501
522
|
) {
|
|
502
|
-
/** @type {
|
|
523
|
+
/** @type {BuObject} */
|
|
503
524
|
const buObjectChildBu = {
|
|
504
525
|
eid: this.properties.credentials[buObjectParent.credential].eid,
|
|
505
526
|
mid: this.properties.credentials[buObjectParent.credential].businessUnits[childBuName],
|
|
@@ -571,9 +592,9 @@ class DataExtension extends MetadataType {
|
|
|
571
592
|
*
|
|
572
593
|
* @param {string} deId data extension ObjectID
|
|
573
594
|
* @param {string} deKey dataExtension key
|
|
574
|
-
* @param {
|
|
595
|
+
* @param {BuObject} buObjectChildBu BU object for Child BU
|
|
575
596
|
* @param {object} clientChildBu SDK for child BU
|
|
576
|
-
* @param {
|
|
597
|
+
* @param {BuObject} buObjectParent BU object for Parent BU
|
|
577
598
|
* @param {object} clientParent SDK for parent BU
|
|
578
599
|
* @returns {Promise.<boolean>} flag that signals if the fix was successful
|
|
579
600
|
*/
|
|
@@ -628,7 +649,7 @@ class DataExtension extends MetadataType {
|
|
|
628
649
|
* add a new field to the shared DE to trigger an update to the data model
|
|
629
650
|
* helper for {@link DataExtension.#fixShared_item}
|
|
630
651
|
*
|
|
631
|
-
* @param {
|
|
652
|
+
* @param {BuObject} buObjectChildBu BU object for Child BU
|
|
632
653
|
* @param {object} clientChildBu SDK for child BU
|
|
633
654
|
* @param {string} deKey dataExtension key
|
|
634
655
|
* @param {string} deId dataExtension ObjectID
|
|
@@ -639,28 +660,26 @@ class DataExtension extends MetadataType {
|
|
|
639
660
|
this.client = clientChildBu;
|
|
640
661
|
const randomSuffix = Util.OPTIONS._runningTest
|
|
641
662
|
? '_randomNumber_'
|
|
642
|
-
: Math.floor(Math.random() * 9999999999);
|
|
663
|
+
: Math.floor(Math.random() * 9999999999).toString();
|
|
643
664
|
// add a new field to the shared DE to trigger an update to the data model
|
|
644
665
|
const soapType = this.definition.soapType || this.definition.type;
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
},
|
|
659
|
-
],
|
|
660
|
-
},
|
|
666
|
+
const payload = {
|
|
667
|
+
CustomerKey: deKey,
|
|
668
|
+
ObjectID: deId,
|
|
669
|
+
Fields: {
|
|
670
|
+
Field: [
|
|
671
|
+
{
|
|
672
|
+
Name: 'TriggerUpdate' + randomSuffix,
|
|
673
|
+
IsRequired: false,
|
|
674
|
+
IsPrimaryKey: false,
|
|
675
|
+
FieldType: 'Boolean',
|
|
676
|
+
ObjectID: null,
|
|
677
|
+
},
|
|
678
|
+
],
|
|
661
679
|
},
|
|
662
|
-
|
|
663
|
-
|
|
680
|
+
};
|
|
681
|
+
// @ts-expect-error SFMC-SDK typing error
|
|
682
|
+
await this.client.soap.update(Util.capitalizeFirstLetter(soapType), payload, null);
|
|
664
683
|
return randomSuffix;
|
|
665
684
|
}
|
|
666
685
|
|
|
@@ -669,7 +688,7 @@ class DataExtension extends MetadataType {
|
|
|
669
688
|
* helper for {@link DataExtension.#fixShared_item}
|
|
670
689
|
*
|
|
671
690
|
* @param {string} randomSuffix -
|
|
672
|
-
* @param {
|
|
691
|
+
* @param {BuObject} buObjectParent BU object for Parent BU
|
|
673
692
|
* @param {object} clientParent SDK for parent BU
|
|
674
693
|
* @param {string} deKey dataExtension key
|
|
675
694
|
* @returns {Promise.<string>} fieldObjectID
|
|
@@ -678,7 +697,7 @@ class DataExtension extends MetadataType {
|
|
|
678
697
|
DataExtensionField.buObject = buObjectParent;
|
|
679
698
|
DataExtensionField.client = clientParent;
|
|
680
699
|
const fieldKey = `[${deKey}].[TriggerUpdate${randomSuffix}]`;
|
|
681
|
-
const fieldResponse = await DataExtensionField.
|
|
700
|
+
const fieldResponse = await DataExtensionField.retrieveForCacheDE(
|
|
682
701
|
{
|
|
683
702
|
filter: {
|
|
684
703
|
leftOperand: 'CustomerKey',
|
|
@@ -697,7 +716,7 @@ class DataExtension extends MetadataType {
|
|
|
697
716
|
* helper for {@link DataExtension.#fixShared_item}
|
|
698
717
|
*
|
|
699
718
|
* @param {string} randomSuffix -
|
|
700
|
-
* @param {
|
|
719
|
+
* @param {BuObject} buObjectChildBu BU object for Child BU
|
|
701
720
|
* @param {object} clientChildBu SDK for child BU
|
|
702
721
|
* @param {string} deKey dataExtension key
|
|
703
722
|
* @param {string} fieldObjectID field ObjectID
|
|
@@ -723,14 +742,14 @@ class DataExtension extends MetadataType {
|
|
|
723
742
|
*
|
|
724
743
|
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
725
744
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
726
|
-
* @param {void} [_] unused parameter
|
|
745
|
+
* @param {void | string[]} [_] unused parameter
|
|
727
746
|
* @param {string} [key] customer key of single item to retrieve
|
|
728
|
-
* @returns {Promise.<{metadata:
|
|
747
|
+
* @returns {Promise.<{metadata: DataExtensionMap, type: string}>} Promise of item map
|
|
729
748
|
*/
|
|
730
749
|
static async retrieve(retrieveDir, additionalFields, _, key) {
|
|
731
|
-
/** @type {
|
|
750
|
+
/** @type {SoapRequestParams} */
|
|
732
751
|
let requestParams = null;
|
|
733
|
-
/** @type {
|
|
752
|
+
/** @type {SoapRequestParams} */
|
|
734
753
|
let fieldOptions = null;
|
|
735
754
|
if (key) {
|
|
736
755
|
requestParams = {
|
|
@@ -776,14 +795,14 @@ class DataExtension extends MetadataType {
|
|
|
776
795
|
* helper for {@link DataExtension.retrieve} and for AttributeSet.fixShared_retrieve
|
|
777
796
|
*
|
|
778
797
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
779
|
-
* @returns {Promise.<
|
|
798
|
+
* @returns {Promise.<DataExtensionMap>} keyField => metadata map
|
|
780
799
|
*/
|
|
781
800
|
static async retrieveSharedForCache(additionalFields = []) {
|
|
782
801
|
// for caching, we want to retrieve shared DEs as well from the instance parent BU
|
|
783
802
|
Util.logger.info(' - Caching dependent Metadata: dataExtension (shared via _ParentBU_)');
|
|
784
803
|
const buObjectBak = this.buObject;
|
|
785
804
|
const clientBak = this.client;
|
|
786
|
-
/** @type {
|
|
805
|
+
/** @type {BuObject} */
|
|
787
806
|
const buObjectParentBu = {
|
|
788
807
|
eid: this.properties.credentials[this.buObject.credential].eid,
|
|
789
808
|
mid: this.properties.credentials[this.buObject.credential].eid,
|
|
@@ -849,9 +868,8 @@ class DataExtension extends MetadataType {
|
|
|
849
868
|
/**
|
|
850
869
|
* helper to retrieve all dataExtension fields and attach them to the dataExtension metadata
|
|
851
870
|
*
|
|
852
|
-
* @
|
|
853
|
-
* @param {
|
|
854
|
-
* @param {TYPE.SoapRequestParams} [fieldOptions] optionally filter results
|
|
871
|
+
* @param {DataExtensionMap} metadata already cached dataExtension metadata
|
|
872
|
+
* @param {SoapRequestParams} [fieldOptions] optionally filter results
|
|
855
873
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
856
874
|
* @returns {Promise.<void>} -
|
|
857
875
|
*/
|
|
@@ -877,7 +895,7 @@ class DataExtension extends MetadataType {
|
|
|
877
895
|
// remove attributes that we do not want to retrieve
|
|
878
896
|
// * do this after sorting on the DE's field list
|
|
879
897
|
for (const key of fieldKeys) {
|
|
880
|
-
DataExtensionField.
|
|
898
|
+
DataExtensionField.postRetrieveTasksDE(fieldsObj[key]);
|
|
881
899
|
}
|
|
882
900
|
}
|
|
883
901
|
|
|
@@ -885,7 +903,7 @@ class DataExtension extends MetadataType {
|
|
|
885
903
|
* Retrieves dataExtension metadata. Afterwards starts retrieval of dataExtensionColumn metadata retrieval
|
|
886
904
|
*
|
|
887
905
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
888
|
-
* @returns {Promise.<{metadata:
|
|
906
|
+
* @returns {Promise.<{metadata: DataExtensionMap, type: string}>} Promise of item map
|
|
889
907
|
*/
|
|
890
908
|
static async retrieveChangelog(additionalFields) {
|
|
891
909
|
const metadata = await this._retrieveAll(additionalFields);
|
|
@@ -894,8 +912,8 @@ class DataExtension extends MetadataType {
|
|
|
894
912
|
/**
|
|
895
913
|
* manages post retrieve steps
|
|
896
914
|
*
|
|
897
|
-
* @param {
|
|
898
|
-
* @returns {
|
|
915
|
+
* @param {DataExtensionItem} metadata a single dataExtension
|
|
916
|
+
* @returns {Promise.<DataExtensionItem>} metadata
|
|
899
917
|
*/
|
|
900
918
|
static async postRetrieveTasks(metadata) {
|
|
901
919
|
// Error during deploy if SendableSubscriberField.Name = '_SubscriberKey' even though it is retrieved like that
|
|
@@ -908,7 +926,7 @@ class DataExtension extends MetadataType {
|
|
|
908
926
|
// DataExtensionTemplate
|
|
909
927
|
if (metadata.Template?.CustomerKey) {
|
|
910
928
|
try {
|
|
911
|
-
metadata.
|
|
929
|
+
metadata.r__dataExtensionTemplate_name = cache.searchForField(
|
|
912
930
|
'dataExtensionTemplate',
|
|
913
931
|
metadata.Template.CustomerKey,
|
|
914
932
|
'CustomerKey',
|
|
@@ -932,6 +950,52 @@ class DataExtension extends MetadataType {
|
|
|
932
950
|
delete metadata.CreatedDate;
|
|
933
951
|
delete metadata.ModifiedDate;
|
|
934
952
|
|
|
953
|
+
// Retention policy
|
|
954
|
+
if (
|
|
955
|
+
metadata.RowBasedRetention === false &&
|
|
956
|
+
metadata.DeleteAtEndOfRetentionPeriod === false &&
|
|
957
|
+
metadata.RetainUntil === ''
|
|
958
|
+
) {
|
|
959
|
+
// Note: RetainUntil expected to NOT have a value
|
|
960
|
+
metadata.c__retentionPolicy = 'none';
|
|
961
|
+
delete metadata.RetainUntil;
|
|
962
|
+
delete metadata.ResetRetentionPeriodOnImport;
|
|
963
|
+
} else if (
|
|
964
|
+
metadata.RowBasedRetention === false &&
|
|
965
|
+
metadata.DeleteAtEndOfRetentionPeriod === false
|
|
966
|
+
) {
|
|
967
|
+
// Note: RetainUntil expected to have a value
|
|
968
|
+
metadata.c__retentionPolicy = 'allRecordsAndDataextension';
|
|
969
|
+
} else if (
|
|
970
|
+
metadata.RowBasedRetention === false &&
|
|
971
|
+
metadata.DeleteAtEndOfRetentionPeriod === true
|
|
972
|
+
) {
|
|
973
|
+
// Note: RetainUntil expected to have a value
|
|
974
|
+
metadata.c__retentionPolicy = 'allRecords';
|
|
975
|
+
} else if (
|
|
976
|
+
metadata.RowBasedRetention === true &&
|
|
977
|
+
metadata.DeleteAtEndOfRetentionPeriod === false
|
|
978
|
+
) {
|
|
979
|
+
// Note: RetainUntil expected to NOT have a value
|
|
980
|
+
metadata.c__retentionPolicy = 'individialRecords';
|
|
981
|
+
delete metadata.RetainUntil;
|
|
982
|
+
}
|
|
983
|
+
delete metadata.RowBasedRetention;
|
|
984
|
+
delete metadata.DeleteAtEndOfRetentionPeriod;
|
|
985
|
+
|
|
986
|
+
if (metadata.RetainUntil) {
|
|
987
|
+
const retainUntil = new Date(metadata.RetainUntil);
|
|
988
|
+
metadata.c__retainUntil = `${retainUntil.getFullYear()}-${retainUntil.getMonth() + 1}-${retainUntil.getDate()}`;
|
|
989
|
+
}
|
|
990
|
+
delete metadata.RetainUntil;
|
|
991
|
+
if (metadata.DataRetentionPeriodUnitOfMeasure) {
|
|
992
|
+
metadata.c__dataRetentionPeriodUnitOfMeasure = Util.inverseGet(
|
|
993
|
+
this.definition.dataRetentionPeriodUnitOfMeasureMapping,
|
|
994
|
+
metadata.DataRetentionPeriodUnitOfMeasure
|
|
995
|
+
);
|
|
996
|
+
delete metadata.DataRetentionPeriodUnitOfMeasure;
|
|
997
|
+
}
|
|
998
|
+
|
|
935
999
|
return metadata;
|
|
936
1000
|
}
|
|
937
1001
|
|
|
@@ -939,9 +1003,9 @@ class DataExtension extends MetadataType {
|
|
|
939
1003
|
* Helper to retrieve Data Extension Fields
|
|
940
1004
|
*
|
|
941
1005
|
* @private
|
|
942
|
-
* @param {
|
|
1006
|
+
* @param {SoapRequestParams} [options] options (e.g. continueRequest)
|
|
943
1007
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
944
|
-
* @returns {Promise.<
|
|
1008
|
+
* @returns {Promise.<DataExtensionFieldMap>} Promise of items
|
|
945
1009
|
*/
|
|
946
1010
|
static async _retrieveFields(options, additionalFields) {
|
|
947
1011
|
if (!options) {
|
|
@@ -951,18 +1015,19 @@ class DataExtension extends MetadataType {
|
|
|
951
1015
|
DataExtensionField.client = this.client;
|
|
952
1016
|
DataExtensionField.properties = this.properties;
|
|
953
1017
|
|
|
954
|
-
const response = await DataExtensionField.
|
|
1018
|
+
const response = await DataExtensionField.retrieveForCacheDE(options, additionalFields);
|
|
955
1019
|
return response.metadata;
|
|
956
1020
|
}
|
|
957
1021
|
/**
|
|
958
1022
|
* helps retrieving fields during templating and deploy where we dont want the full list
|
|
959
1023
|
*
|
|
960
1024
|
* @private
|
|
961
|
-
* @param {
|
|
1025
|
+
* @param {DataExtensionMap} metadata list of DEs
|
|
962
1026
|
* @param {string} customerKey external key of single DE
|
|
963
1027
|
* @returns {Promise.<void>} -
|
|
964
1028
|
*/
|
|
965
1029
|
static async _retrieveFieldsForSingleDe(metadata, customerKey) {
|
|
1030
|
+
/** @type {SoapRequestParams} */
|
|
966
1031
|
const fieldOptions = {
|
|
967
1032
|
filter: {
|
|
968
1033
|
leftOperand: 'DataExtension.CustomerKey',
|
|
@@ -979,7 +1044,7 @@ class DataExtension extends MetadataType {
|
|
|
979
1044
|
// remove attributes that we do not want to retrieve
|
|
980
1045
|
// * do this after sorting on the DE's field list
|
|
981
1046
|
for (const field of fieldArr) {
|
|
982
|
-
DataExtensionField.
|
|
1047
|
+
DataExtensionField.postRetrieveTasksDE(field);
|
|
983
1048
|
}
|
|
984
1049
|
|
|
985
1050
|
metadata[customerKey].Fields = fieldArr;
|
|
@@ -987,19 +1052,18 @@ class DataExtension extends MetadataType {
|
|
|
987
1052
|
/**
|
|
988
1053
|
* helper for {@link MetadataType.updateREST} and {@link MetadataType.updateSOAP} that removes old files after the key was changed
|
|
989
1054
|
*
|
|
990
|
-
* @
|
|
991
|
-
* @
|
|
992
|
-
* @returns {void}
|
|
1055
|
+
* @param {MetadataTypeItem} metadataEntry a single metadata Entry
|
|
1056
|
+
* @returns {Promise.<void>} -
|
|
993
1057
|
*/
|
|
994
1058
|
static async _postChangeKeyTasks(metadataEntry) {
|
|
995
|
-
super._postChangeKeyTasks(metadataEntry, true);
|
|
1059
|
+
return super._postChangeKeyTasks(metadataEntry, true);
|
|
996
1060
|
}
|
|
997
1061
|
|
|
998
1062
|
/**
|
|
999
1063
|
* prepares a DataExtension for deployment
|
|
1000
1064
|
*
|
|
1001
|
-
* @param {
|
|
1002
|
-
* @returns {Promise.<
|
|
1065
|
+
* @param {DataExtensionItem} metadata a single data Extension
|
|
1066
|
+
* @returns {Promise.<DataExtensionItem>} Promise of updated single DE
|
|
1003
1067
|
*/
|
|
1004
1068
|
static async preDeployTasks(metadata) {
|
|
1005
1069
|
if (metadata.Name?.startsWith('_')) {
|
|
@@ -1026,10 +1090,10 @@ class DataExtension extends MetadataType {
|
|
|
1026
1090
|
super.setFolderId(metadata);
|
|
1027
1091
|
|
|
1028
1092
|
// DataExtensionTemplate
|
|
1029
|
-
if (metadata.
|
|
1093
|
+
if (metadata.r__dataExtensionTemplate_name) {
|
|
1030
1094
|
// remove templated fields
|
|
1031
1095
|
for (const templateField of this.definition.templateFields[
|
|
1032
|
-
metadata.
|
|
1096
|
+
metadata.r__dataExtensionTemplate_name
|
|
1033
1097
|
]) {
|
|
1034
1098
|
for (let index = 0; index < metadata.Fields.length; index++) {
|
|
1035
1099
|
const element = metadata.Fields[index];
|
|
@@ -1046,15 +1110,15 @@ class DataExtension extends MetadataType {
|
|
|
1046
1110
|
metadata.Template = {
|
|
1047
1111
|
CustomerKey: cache.searchForField(
|
|
1048
1112
|
'dataExtensionTemplate',
|
|
1049
|
-
metadata.
|
|
1113
|
+
metadata.r__dataExtensionTemplate_name,
|
|
1050
1114
|
'Name',
|
|
1051
1115
|
'CustomerKey'
|
|
1052
1116
|
),
|
|
1053
1117
|
};
|
|
1054
|
-
delete metadata.
|
|
1118
|
+
delete metadata.r__dataExtensionTemplate_name;
|
|
1055
1119
|
} catch (ex) {
|
|
1056
1120
|
Util.logger.debug(ex.message);
|
|
1057
|
-
// It is assumed that non-supported types would not have been converted to
|
|
1121
|
+
// It is assumed that non-supported types would not have been converted to r__dataExtensionTemplate_name upon retrieve.
|
|
1058
1122
|
// Deploying to same BU therefore still works!
|
|
1059
1123
|
// A workaround for cross-BU deploy exists but it's likely not beneficial to explain to users:
|
|
1060
1124
|
// Create a DE based on the not-supported template on the target BU, retrieve it, copy the Template.CustomerKey into the to-be-deployed DE (or use mcdev-templating), done
|
|
@@ -1077,6 +1141,55 @@ class DataExtension extends MetadataType {
|
|
|
1077
1141
|
metadata.SendableSubscriberField.Name = 'Subscriber Key';
|
|
1078
1142
|
}
|
|
1079
1143
|
|
|
1144
|
+
// Retention policy
|
|
1145
|
+
switch (metadata.c__retentionPolicy) {
|
|
1146
|
+
case 'none': {
|
|
1147
|
+
metadata.RowBasedRetention = false;
|
|
1148
|
+
metadata.DeleteAtEndOfRetentionPeriod = false;
|
|
1149
|
+
metadata.ResetRetentionPeriodOnImport = false;
|
|
1150
|
+
break;
|
|
1151
|
+
}
|
|
1152
|
+
case 'allRecordsAndDataextension': {
|
|
1153
|
+
metadata.RowBasedRetention = false;
|
|
1154
|
+
metadata.DeleteAtEndOfRetentionPeriod = false;
|
|
1155
|
+
break;
|
|
1156
|
+
}
|
|
1157
|
+
case 'allRecords': {
|
|
1158
|
+
metadata.RowBasedRetention = false;
|
|
1159
|
+
metadata.DeleteAtEndOfRetentionPeriod = true;
|
|
1160
|
+
break;
|
|
1161
|
+
}
|
|
1162
|
+
case 'individialRecords': {
|
|
1163
|
+
metadata.RowBasedRetention = true;
|
|
1164
|
+
metadata.DeleteAtEndOfRetentionPeriod = false;
|
|
1165
|
+
break;
|
|
1166
|
+
}
|
|
1167
|
+
default: {
|
|
1168
|
+
Util.logger.debug(
|
|
1169
|
+
` - dataExtension '${
|
|
1170
|
+
metadata[this.definition.nameField]
|
|
1171
|
+
}': Unknown retention policy: ${metadata.c__retentionPolicy}`
|
|
1172
|
+
);
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
delete metadata.c__retentionPolicy;
|
|
1176
|
+
|
|
1177
|
+
if (metadata.c__retainUntil) {
|
|
1178
|
+
const retainUntil = new Date(metadata.c__retainUntil);
|
|
1179
|
+
metadata.RetainUntil = `${retainUntil.getMonth() + 1}/${retainUntil.getDate()}/${retainUntil.getFullYear()} 12:00:00 AM`;
|
|
1180
|
+
delete metadata.c__retainUntil;
|
|
1181
|
+
} else {
|
|
1182
|
+
metadata.RetainUntil = '';
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
if (metadata.c__dataRetentionPeriodUnitOfMeasure) {
|
|
1186
|
+
metadata.DataRetentionPeriodUnitOfMeasure =
|
|
1187
|
+
this.definition.dataRetentionPeriodUnitOfMeasureMapping[
|
|
1188
|
+
metadata.c__dataRetentionPeriodUnitOfMeasure
|
|
1189
|
+
];
|
|
1190
|
+
delete metadata.c__dataRetentionPeriodUnitOfMeasure;
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1080
1193
|
return metadata;
|
|
1081
1194
|
}
|
|
1082
1195
|
|
|
@@ -1085,7 +1198,7 @@ class DataExtension extends MetadataType {
|
|
|
1085
1198
|
* The json's first level of keys must represent the rows and the secend level the columns
|
|
1086
1199
|
*
|
|
1087
1200
|
* @private
|
|
1088
|
-
* @param {
|
|
1201
|
+
* @param {DataExtensionItem} json single dataextension
|
|
1089
1202
|
* @param {object[][]} tabled prepped array for output in tabular format
|
|
1090
1203
|
* @returns {string} file content
|
|
1091
1204
|
*/
|
|
@@ -1114,8 +1227,8 @@ class DataExtension extends MetadataType {
|
|
|
1114
1227
|
'</i>)</p>\n\n'
|
|
1115
1228
|
: `No</p>\n\n`;
|
|
1116
1229
|
output += `<p><b>Testable:</b> ${json.IsTestable === true ? 'Yes' : 'No'}</p>\n\n`;
|
|
1117
|
-
if (json.
|
|
1118
|
-
output += `<p><b>Template:</b> ${json.
|
|
1230
|
+
if (json.r__dataExtensionTemplate_name) {
|
|
1231
|
+
output += `<p><b>Template:</b> ${json.r__dataExtensionTemplate_name}</p>`;
|
|
1119
1232
|
}
|
|
1120
1233
|
|
|
1121
1234
|
output += '<table><thead><tr>';
|
|
@@ -1140,7 +1253,7 @@ class DataExtension extends MetadataType {
|
|
|
1140
1253
|
* The json's first level of keys must represent the rows and the secend level the columns
|
|
1141
1254
|
*
|
|
1142
1255
|
* @private
|
|
1143
|
-
* @param {
|
|
1256
|
+
* @param {DataExtensionItem} json dataextension
|
|
1144
1257
|
* @param {object[][]} tabled prepped array for output in tabular format
|
|
1145
1258
|
* @returns {string} file content
|
|
1146
1259
|
*/
|
|
@@ -1167,8 +1280,8 @@ class DataExtension extends MetadataType {
|
|
|
1167
1280
|
'`)\n\n'
|
|
1168
1281
|
: `No\n\n`;
|
|
1169
1282
|
output += `**Testable:** ${json.IsTestable === true ? 'Yes' : 'No'}\n\n`;
|
|
1170
|
-
if (json.
|
|
1171
|
-
output += `**Template:** ${json.
|
|
1283
|
+
if (json.r__dataExtensionTemplate_name) {
|
|
1284
|
+
output += `**Template:** ${json.r__dataExtensionTemplate_name}\n\n`;
|
|
1172
1285
|
}
|
|
1173
1286
|
|
|
1174
1287
|
let tableSeparator = '';
|
|
@@ -1193,14 +1306,15 @@ class DataExtension extends MetadataType {
|
|
|
1193
1306
|
* @private
|
|
1194
1307
|
* @param {string} directory directory the file will be written to
|
|
1195
1308
|
* @param {string} filename name of the file without '.json' ending
|
|
1196
|
-
* @param {
|
|
1309
|
+
* @param {DataExtensionItem} json dataextension.columns
|
|
1197
1310
|
* @param {'html'|'md'} mode html or md
|
|
1198
1311
|
* @param {string[]} [fieldsToKeep] list of keys(columns) to show. This will also specify
|
|
1199
|
-
* @returns {Promise.<
|
|
1312
|
+
* @returns {Promise.<void>} Promise of success of saving the file
|
|
1200
1313
|
*/
|
|
1201
1314
|
static async _writeDoc(directory, filename, json, mode, fieldsToKeep) {
|
|
1202
1315
|
let fieldsJson = Object.values(json.Fields);
|
|
1203
1316
|
if (fieldsToKeep) {
|
|
1317
|
+
/** @type {DataExtensionFieldItem[]} */
|
|
1204
1318
|
const newJson = [];
|
|
1205
1319
|
for (const element of fieldsJson) {
|
|
1206
1320
|
const newJsonElement = {};
|
|
@@ -1211,6 +1325,7 @@ class DataExtension extends MetadataType {
|
|
|
1211
1325
|
newJsonElement[field] = element[field];
|
|
1212
1326
|
}
|
|
1213
1327
|
}
|
|
1328
|
+
// @ts-ignore hard to tell ts that this is in fact a DataExtensionFieldItem
|
|
1214
1329
|
newJson.push(newJsonElement);
|
|
1215
1330
|
}
|
|
1216
1331
|
fieldsJson = newJson;
|
|
@@ -1232,13 +1347,13 @@ class DataExtension extends MetadataType {
|
|
|
1232
1347
|
/**
|
|
1233
1348
|
* Parses metadata into a readable Markdown/HTML format then saves it
|
|
1234
1349
|
*
|
|
1235
|
-
* @param {
|
|
1236
|
-
* @returns {Promise.<
|
|
1350
|
+
* @param {DataExtensionMap} [metadataMap] a list of dataExtension definitions
|
|
1351
|
+
* @returns {Promise.<any>} -
|
|
1237
1352
|
*/
|
|
1238
1353
|
static async document(metadataMap) {
|
|
1239
1354
|
try {
|
|
1240
1355
|
if (!metadataMap) {
|
|
1241
|
-
metadataMap = this.readBUMetadataForType(
|
|
1356
|
+
metadataMap = await this.readBUMetadataForType(
|
|
1242
1357
|
File.normalizePath([
|
|
1243
1358
|
this.properties.directories.retrieve,
|
|
1244
1359
|
this.buObject.credential,
|
|
@@ -1332,20 +1447,21 @@ class DataExtension extends MetadataType {
|
|
|
1332
1447
|
/**
|
|
1333
1448
|
* Retrieves folder metadata into local filesystem. Also creates a uniquePath attribute for each folder.
|
|
1334
1449
|
*
|
|
1335
|
-
* @returns {Promise.<{metadata:
|
|
1450
|
+
* @returns {Promise.<{metadata: DataExtensionMap, type: string}>} Promise
|
|
1336
1451
|
*/
|
|
1337
1452
|
static async retrieveForCache() {
|
|
1338
|
-
return this.retrieve(null, ['ObjectID', 'CustomerKey', 'Name']
|
|
1453
|
+
return this.retrieve(null, ['ObjectID', 'CustomerKey', 'Name']);
|
|
1339
1454
|
}
|
|
1340
1455
|
/**
|
|
1341
1456
|
* Retrieves dataExtension metadata in template format.
|
|
1342
1457
|
*
|
|
1343
1458
|
* @param {string} templateDir Directory where retrieved metadata directory will be saved
|
|
1344
1459
|
* @param {string} name name of the metadata item
|
|
1345
|
-
* @param {
|
|
1346
|
-
* @returns {Promise.<{metadata:
|
|
1460
|
+
* @param {TemplateMap} templateVariables variables to be replaced in the metadata
|
|
1461
|
+
* @returns {Promise.<{metadata: DataExtensionItem, type: string}>} Promise of items
|
|
1347
1462
|
*/
|
|
1348
1463
|
static async retrieveAsTemplate(templateDir, name, templateVariables) {
|
|
1464
|
+
/** @type {SoapRequestParams} */
|
|
1349
1465
|
const options = {
|
|
1350
1466
|
filter: {
|
|
1351
1467
|
leftOperand: 'Name',
|
|
@@ -1359,7 +1475,7 @@ class DataExtension extends MetadataType {
|
|
|
1359
1475
|
if (!Object.keys(metadata).length) {
|
|
1360
1476
|
Util.logger.error(`${this.definition.type} '${name}' not found on server.`);
|
|
1361
1477
|
Util.logger.info('Downloaded: dataExtension (0)');
|
|
1362
|
-
return { metadata:
|
|
1478
|
+
return { metadata: null, type: 'dataExtension' };
|
|
1363
1479
|
}
|
|
1364
1480
|
const customerKey = Object.keys(metadata)[0];
|
|
1365
1481
|
await this._retrieveFieldsForSingleDe(metadata, customerKey);
|
|
@@ -1370,8 +1486,8 @@ class DataExtension extends MetadataType {
|
|
|
1370
1486
|
metadata[key].Fields.sort((a, b) => a.Ordinal - b.Ordinal);
|
|
1371
1487
|
|
|
1372
1488
|
const originalKey = key;
|
|
1373
|
-
const metadataCleaned =
|
|
1374
|
-
|
|
1489
|
+
const metadataCleaned = structuredClone(
|
|
1490
|
+
await this.postRetrieveTasks(metadata[key])
|
|
1375
1491
|
);
|
|
1376
1492
|
|
|
1377
1493
|
this.keepTemplateFields(metadataCleaned);
|
|
@@ -1395,7 +1511,7 @@ class DataExtension extends MetadataType {
|
|
|
1395
1511
|
* dataExtension logic that retrieves the folder path from cache and updates the given metadata with it after retrieve
|
|
1396
1512
|
* it also sets the content type which is basically the subtype
|
|
1397
1513
|
*
|
|
1398
|
-
* @param {
|
|
1514
|
+
* @param {MetadataTypeItem} metadata a single script activity definition
|
|
1399
1515
|
*/
|
|
1400
1516
|
static setFolderPath(metadata) {
|
|
1401
1517
|
let error = false;
|
|
@@ -1455,8 +1571,8 @@ class DataExtension extends MetadataType {
|
|
|
1455
1571
|
*
|
|
1456
1572
|
* @private
|
|
1457
1573
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
1458
|
-
* @param {
|
|
1459
|
-
* @returns {Promise.<
|
|
1574
|
+
* @param {SoapRequestParams} [options] e.g. filter
|
|
1575
|
+
* @returns {Promise.<DataExtensionMap>} keyField => metadata map
|
|
1460
1576
|
*/
|
|
1461
1577
|
static async _retrieveAll(additionalFields, options) {
|
|
1462
1578
|
const { metadata } = await super.retrieveSOAP(null, options, null, additionalFields);
|
|
@@ -1475,9 +1591,9 @@ class DataExtension extends MetadataType {
|
|
|
1475
1591
|
* additionally, the documentation for dataExtension and automation should be returned
|
|
1476
1592
|
*
|
|
1477
1593
|
* @param {string[]} keyArr customerkey of the metadata
|
|
1478
|
-
* @returns {string[]} list of all files that need to be committed in a flat array ['path/file1.ext', 'path/file2.ext']
|
|
1594
|
+
* @returns {Promise.<string[]>} list of all files that need to be committed in a flat array ['path/file1.ext', 'path/file2.ext']
|
|
1479
1595
|
*/
|
|
1480
|
-
static getFilesToCommit(keyArr) {
|
|
1596
|
+
static async getFilesToCommit(keyArr) {
|
|
1481
1597
|
if (this.properties.metaDataTypes.documentOnRetrieve.includes(this.definition.type)) {
|
|
1482
1598
|
// document dataExtension is active. assume we want to commit the MD file as well
|
|
1483
1599
|
const path = File.normalizePath([
|