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,13 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
import MetadataType from './MetadataType.js';
|
|
4
|
-
import TYPE from '../../types/mcdev.d.js';
|
|
5
4
|
import { Util } from '../util/util.js';
|
|
6
5
|
import File from '../util/file.js';
|
|
7
6
|
import Definitions from '../MetadataTypeDefinitions.js';
|
|
8
7
|
import cache from '../util/cache.js';
|
|
9
8
|
import pLimit from 'p-limit';
|
|
10
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {import('../../types/mcdev.d.js').BuObject} BuObject
|
|
12
|
+
* @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract
|
|
13
|
+
* @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
|
|
14
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
|
|
15
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
|
|
16
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
|
|
17
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
|
|
18
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
|
|
19
|
+
* @typedef {import('../../types/mcdev.d.js').SDKError} SDKError
|
|
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').AutomationItem} AutomationItem
|
|
25
|
+
* @typedef {import('../../types/mcdev.d.js').AutomationItemObj} AutomationItemObj
|
|
26
|
+
* @typedef {import('../../types/mcdev.d.js').AutomationMap} AutomationMap
|
|
27
|
+
* @typedef {import('../../types/mcdev.d.js').AutomationMapObj} AutomationMapObj
|
|
28
|
+
* @typedef {import('../../types/mcdev.d.js').AutomationSchedule} AutomationSchedule
|
|
29
|
+
* @typedef {import('../../types/mcdev.d.js').AutomationScheduleSoap} AutomationScheduleSoap
|
|
30
|
+
*/
|
|
31
|
+
|
|
11
32
|
/**
|
|
12
33
|
* Automation MetadataType
|
|
13
34
|
*
|
|
@@ -15,14 +36,18 @@ import pLimit from 'p-limit';
|
|
|
15
36
|
*/
|
|
16
37
|
class Automation extends MetadataType {
|
|
17
38
|
static notificationUpdates = {};
|
|
39
|
+
static createdKeyMap;
|
|
40
|
+
static _skipNotificationRetrieve = false;
|
|
41
|
+
/** @type {AutomationMap} */
|
|
42
|
+
static _cachedMetadataMap;
|
|
18
43
|
/**
|
|
19
44
|
* Retrieves Metadata of Automation
|
|
20
45
|
*
|
|
21
|
-
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
22
|
-
* @param {void} [_] unused parameter
|
|
23
|
-
* @param {void} [__] unused parameter
|
|
46
|
+
* @param {string} [retrieveDir] Directory where retrieved metadata directory will be saved
|
|
47
|
+
* @param {void | string[]} [_] unused parameter
|
|
48
|
+
* @param {void | string[]} [__] unused parameter
|
|
24
49
|
* @param {string} [key] customer key of single item to retrieve
|
|
25
|
-
* @returns {Promise.<
|
|
50
|
+
* @returns {Promise.<AutomationMapObj>} Promise of metadata
|
|
26
51
|
*/
|
|
27
52
|
static async retrieve(retrieveDir, _, __, key) {
|
|
28
53
|
let metadataMap;
|
|
@@ -34,9 +59,12 @@ class Automation extends MetadataType {
|
|
|
34
59
|
metadataMap = this._cachedMetadataMap;
|
|
35
60
|
delete this._cachedMetadataMap;
|
|
36
61
|
} else {
|
|
37
|
-
/** @type {
|
|
62
|
+
/** @type {SoapRequestParams} */
|
|
38
63
|
let requestParams = null;
|
|
39
|
-
|
|
64
|
+
const objectIds = [];
|
|
65
|
+
if (key?.startsWith('id:')) {
|
|
66
|
+
objectIds.push(key.slice(3));
|
|
67
|
+
} else if (key) {
|
|
40
68
|
requestParams = {
|
|
41
69
|
filter: {
|
|
42
70
|
leftOperand: 'CustomerKey',
|
|
@@ -50,12 +78,16 @@ class Automation extends MetadataType {
|
|
|
50
78
|
['ObjectID'],
|
|
51
79
|
requestParams
|
|
52
80
|
);
|
|
81
|
+
if (results?.Results?.length) {
|
|
82
|
+
objectIds.push(...results.Results.map((item) => item.ObjectID));
|
|
83
|
+
}
|
|
84
|
+
|
|
53
85
|
// the API seems to handle 50 concurrent requests nicely
|
|
54
|
-
const response =
|
|
86
|
+
const response = objectIds.length
|
|
55
87
|
? await this.retrieveRESTcollection(
|
|
56
|
-
|
|
57
|
-
id:
|
|
58
|
-
uri: '/automation/v1/automations/' +
|
|
88
|
+
objectIds.map((objectID) => ({
|
|
89
|
+
id: objectID,
|
|
90
|
+
uri: '/automation/v1/automations/' + objectID,
|
|
59
91
|
})),
|
|
60
92
|
50,
|
|
61
93
|
!key
|
|
@@ -86,9 +118,9 @@ class Automation extends MetadataType {
|
|
|
86
118
|
/**
|
|
87
119
|
* helper for {@link this.retrieveRESTcollection}
|
|
88
120
|
*
|
|
89
|
-
* @param {
|
|
121
|
+
* @param {SDKError} ex exception
|
|
90
122
|
* @param {string} id id or key of item
|
|
91
|
-
* @returns {
|
|
123
|
+
* @returns {Promise.<any>} can return retry-result
|
|
92
124
|
*/
|
|
93
125
|
static async handleRESTErrors(ex, id) {
|
|
94
126
|
try {
|
|
@@ -107,9 +139,8 @@ class Automation extends MetadataType {
|
|
|
107
139
|
/**
|
|
108
140
|
* helper for {@link Automation.retrieve} to get Automation Notifications
|
|
109
141
|
*
|
|
110
|
-
* @
|
|
111
|
-
* @
|
|
112
|
-
* @returns {Promise.<void>} Promise of nothing
|
|
142
|
+
* @param {MetadataTypeMap} metadataMap keyField => metadata map
|
|
143
|
+
* @returns {Promise.<object>} Promise of automation legacy api response
|
|
113
144
|
*/
|
|
114
145
|
static async #getAutomationNotificationsREST(metadataMap) {
|
|
115
146
|
Util.logger.info(Util.getGrayMsg(` Retrieving Automation Notification information...`));
|
|
@@ -185,7 +216,7 @@ class Automation extends MetadataType {
|
|
|
185
216
|
/**
|
|
186
217
|
* Retrieves Metadata of Automation
|
|
187
218
|
*
|
|
188
|
-
* @returns {Promise.<
|
|
219
|
+
* @returns {Promise.<AutomationMapObj>} Promise of metadata
|
|
189
220
|
*/
|
|
190
221
|
static async retrieveChangelog() {
|
|
191
222
|
const results = await this.client.soap.retrieveBulk('Program', ['ObjectID']);
|
|
@@ -230,7 +261,7 @@ class Automation extends MetadataType {
|
|
|
230
261
|
/**
|
|
231
262
|
* Retrieves automation metadata for caching
|
|
232
263
|
*
|
|
233
|
-
* @returns {Promise.<
|
|
264
|
+
* @returns {Promise.<AutomationMapObj>} Promise of metadata
|
|
234
265
|
*/
|
|
235
266
|
static async retrieveForCache() {
|
|
236
267
|
let results = {};
|
|
@@ -245,6 +276,7 @@ class Automation extends MetadataType {
|
|
|
245
276
|
'Name',
|
|
246
277
|
]);
|
|
247
278
|
}
|
|
279
|
+
/** @type {AutomationMap} */
|
|
248
280
|
const resultsConverted = {};
|
|
249
281
|
if (Array.isArray(results?.Results)) {
|
|
250
282
|
// get encodedAutomationID to retrieve notification information
|
|
@@ -279,8 +311,8 @@ class Automation extends MetadataType {
|
|
|
279
311
|
*
|
|
280
312
|
* @param {string} templateDir Directory where retrieved metadata directory will be saved
|
|
281
313
|
* @param {string} name name of the metadata file
|
|
282
|
-
* @param {
|
|
283
|
-
* @returns {Promise.<
|
|
314
|
+
* @param {TemplateMap} templateVariables variables to be replaced in the metadata
|
|
315
|
+
* @returns {Promise.<AutomationItemObj>} Promise of metadata
|
|
284
316
|
*/
|
|
285
317
|
static async retrieveAsTemplate(templateDir, name, templateVariables) {
|
|
286
318
|
const results = await this.client.soap.retrieve('Program', ['ObjectID', 'Name'], {
|
|
@@ -319,7 +351,7 @@ class Automation extends MetadataType {
|
|
|
319
351
|
);
|
|
320
352
|
}
|
|
321
353
|
} catch {
|
|
322
|
-
val =
|
|
354
|
+
val = structuredClone(details);
|
|
323
355
|
}
|
|
324
356
|
if (val === null) {
|
|
325
357
|
throw new Error(
|
|
@@ -346,7 +378,7 @@ class Automation extends MetadataType {
|
|
|
346
378
|
/**
|
|
347
379
|
* helper for {@link Automation.postRetrieveTasks} and {@link Automation.execute}
|
|
348
380
|
*
|
|
349
|
-
* @param {
|
|
381
|
+
* @param {AutomationItem} metadata a single automation
|
|
350
382
|
* @returns {boolean} true if the automation schedule is valid
|
|
351
383
|
*/
|
|
352
384
|
static #isValidSchedule(metadata) {
|
|
@@ -369,8 +401,8 @@ class Automation extends MetadataType {
|
|
|
369
401
|
/**
|
|
370
402
|
* manages post retrieve steps
|
|
371
403
|
*
|
|
372
|
-
* @param {
|
|
373
|
-
* @returns {
|
|
404
|
+
* @param {AutomationItem} metadata a single automation
|
|
405
|
+
* @returns {AutomationItem | void} parsed item
|
|
374
406
|
*/
|
|
375
407
|
static postRetrieveTasks(metadata) {
|
|
376
408
|
// folder
|
|
@@ -448,23 +480,16 @@ class Automation extends MetadataType {
|
|
|
448
480
|
// / if managed by cache we can update references to support deployment
|
|
449
481
|
if (
|
|
450
482
|
Definitions[activity.r__type]?.['idField'] &&
|
|
451
|
-
cache.getCache(
|
|
483
|
+
cache.getCache()[activity.r__type]
|
|
452
484
|
) {
|
|
453
485
|
try {
|
|
454
|
-
|
|
455
|
-
const name = cache.searchForField(
|
|
486
|
+
activity.r__key = cache.searchForField(
|
|
456
487
|
activity.r__type,
|
|
457
488
|
activity.activityObjectId,
|
|
458
489
|
Definitions[activity.r__type].idField,
|
|
459
|
-
Definitions[activity.r__type].
|
|
490
|
+
Definitions[activity.r__type].keyField
|
|
460
491
|
);
|
|
461
|
-
|
|
462
|
-
Util.logger.debug(
|
|
463
|
-
` - updated name of step ${stepNumber}.${activity.displayOrder}` +
|
|
464
|
-
` in Automation '${metadata.name}' from ${activity.name} to ${name}`
|
|
465
|
-
);
|
|
466
|
-
activity.name = name;
|
|
467
|
-
}
|
|
492
|
+
delete activity.name;
|
|
468
493
|
} catch (ex) {
|
|
469
494
|
// getFromCache throws error where the dependent metadata is not found
|
|
470
495
|
Util.logger.warn(
|
|
@@ -483,7 +508,7 @@ class Automation extends MetadataType {
|
|
|
483
508
|
}
|
|
484
509
|
}
|
|
485
510
|
}
|
|
486
|
-
return
|
|
511
|
+
return structuredClone(metadata);
|
|
487
512
|
} catch (ex) {
|
|
488
513
|
Util.logger.warn(
|
|
489
514
|
` - ${this.definition.typeName} '${metadata[this.definition.nameField]}': ${
|
|
@@ -500,6 +525,7 @@ class Automation extends MetadataType {
|
|
|
500
525
|
* @returns {Promise.<string[]>} Returns list of keys that were executed
|
|
501
526
|
*/
|
|
502
527
|
static async execute(keyArr) {
|
|
528
|
+
/** @type {AutomationMap} */
|
|
503
529
|
const metadataMap = {};
|
|
504
530
|
for (const key of keyArr) {
|
|
505
531
|
if (Util.OPTIONS.schedule) {
|
|
@@ -519,14 +545,13 @@ class Automation extends MetadataType {
|
|
|
519
545
|
} else {
|
|
520
546
|
// runOnce
|
|
521
547
|
const objectId = await this.#getObjectIdForSingleRetrieve(key);
|
|
522
|
-
|
|
523
|
-
metadataMap[key]
|
|
524
|
-
metadataMap[key][this.definition.keyField] = key;
|
|
548
|
+
/** @type {AutomationItem} */
|
|
549
|
+
metadataMap[key] = { key, id: objectId };
|
|
525
550
|
}
|
|
526
551
|
}
|
|
527
552
|
if (!Object.keys(metadataMap).length) {
|
|
528
553
|
Util.logger.error(`No ${this.definition.type} to execute`);
|
|
529
|
-
return
|
|
554
|
+
return;
|
|
530
555
|
}
|
|
531
556
|
Util.logger.info(
|
|
532
557
|
`Starting automations ${
|
|
@@ -558,7 +583,7 @@ class Automation extends MetadataType {
|
|
|
558
583
|
/**
|
|
559
584
|
* helper for {@link Automation.execute}
|
|
560
585
|
*
|
|
561
|
-
* @param {
|
|
586
|
+
* @param {AutomationMap} metadataMap map of metadata
|
|
562
587
|
* @param {string} key key of the metadata
|
|
563
588
|
* @returns {Promise.<{key:string, response:object}>} metadata key and API response
|
|
564
589
|
*/
|
|
@@ -575,7 +600,7 @@ class Automation extends MetadataType {
|
|
|
575
600
|
/**
|
|
576
601
|
* helper for {@link Automation.execute}
|
|
577
602
|
*
|
|
578
|
-
* @param {
|
|
603
|
+
* @param {AutomationItem} metadataEntry metadata object
|
|
579
604
|
* @returns {Promise.<{key:string, response:object}>} metadata key and API response
|
|
580
605
|
*/
|
|
581
606
|
static async #runOnce(metadataEntry) {
|
|
@@ -586,7 +611,7 @@ class Automation extends MetadataType {
|
|
|
586
611
|
* Standardizes a check for multiple messages but adds query specific filters to error texts
|
|
587
612
|
*
|
|
588
613
|
* @param {object} ex response payload from REST API
|
|
589
|
-
* @returns {string[]
|
|
614
|
+
* @returns {string[]} formatted Error Message
|
|
590
615
|
*/
|
|
591
616
|
static getErrorsREST(ex) {
|
|
592
617
|
const errors = super.getErrorsREST(ex);
|
|
@@ -656,7 +681,7 @@ class Automation extends MetadataType {
|
|
|
656
681
|
/**
|
|
657
682
|
* helper for {@link Automation.pause}
|
|
658
683
|
*
|
|
659
|
-
* @param {
|
|
684
|
+
* @param {AutomationItem} metadata automation metadata
|
|
660
685
|
* @returns {Promise.<{key:string, response:object}>} metadata key and API response
|
|
661
686
|
*/
|
|
662
687
|
static async #pauseItem(metadata) {
|
|
@@ -688,10 +713,10 @@ class Automation extends MetadataType {
|
|
|
688
713
|
/**
|
|
689
714
|
* Deploys automation - the saved file is the original one due to large differences required for deployment
|
|
690
715
|
*
|
|
691
|
-
* @param {
|
|
716
|
+
* @param {AutomationMap} metadata metadata mapped by their keyField
|
|
692
717
|
* @param {string} targetBU name/shorthand of target businessUnit for mapping
|
|
693
718
|
* @param {string} retrieveDir directory where metadata after deploy should be saved
|
|
694
|
-
* @returns {Promise.<
|
|
719
|
+
* @returns {Promise.<AutomationMap>} Promise
|
|
695
720
|
*/
|
|
696
721
|
static async deploy(metadata, targetBU, retrieveDir) {
|
|
697
722
|
const upsertResults = await this.upsert(metadata, targetBU);
|
|
@@ -710,7 +735,7 @@ class Automation extends MetadataType {
|
|
|
710
735
|
/**
|
|
711
736
|
* Creates a single automation
|
|
712
737
|
*
|
|
713
|
-
* @param {
|
|
738
|
+
* @param {AutomationItem} metadata single metadata entry
|
|
714
739
|
* @returns {Promise} Promise
|
|
715
740
|
*/
|
|
716
741
|
static create(metadata) {
|
|
@@ -721,8 +746,8 @@ class Automation extends MetadataType {
|
|
|
721
746
|
/**
|
|
722
747
|
* Updates a single automation
|
|
723
748
|
*
|
|
724
|
-
* @param {
|
|
725
|
-
* @param {
|
|
749
|
+
* @param {AutomationItem} metadata single metadata entry
|
|
750
|
+
* @param {AutomationItem} metadataBefore metadata mapped by their keyField
|
|
726
751
|
* @returns {Promise} Promise
|
|
727
752
|
*/
|
|
728
753
|
static update(metadata, metadataBefore) {
|
|
@@ -743,7 +768,7 @@ class Automation extends MetadataType {
|
|
|
743
768
|
/**
|
|
744
769
|
* helper for {@link Automation.preDeployTasks} and {@link Automation.execute}
|
|
745
770
|
*
|
|
746
|
-
* @param {
|
|
771
|
+
* @param {AutomationItem} metadata metadata mapped by their keyField
|
|
747
772
|
*/
|
|
748
773
|
static #preDeploySchedule(metadata) {
|
|
749
774
|
delete metadata.schedule.rangeTypeId;
|
|
@@ -770,14 +795,14 @@ class Automation extends MetadataType {
|
|
|
770
795
|
/**
|
|
771
796
|
* Gets executed before deploying metadata
|
|
772
797
|
*
|
|
773
|
-
* @param {
|
|
774
|
-
* @returns {Promise.<
|
|
798
|
+
* @param {AutomationItem} metadata metadata mapped by their keyField
|
|
799
|
+
* @returns {Promise.<AutomationItem>} Promise
|
|
775
800
|
*/
|
|
776
801
|
static async preDeployTasks(metadata) {
|
|
777
802
|
if (metadata.notifications) {
|
|
778
803
|
this.notificationUpdates[metadata.key] = metadata.notifications;
|
|
779
804
|
} else {
|
|
780
|
-
const cached = cache.getByKey(metadata.key);
|
|
805
|
+
const cached = cache.getByKey(this.definition.type, metadata.key);
|
|
781
806
|
if (cached?.notifications) {
|
|
782
807
|
// if notifications existed but are no longer present in the deployment package, we need to run an empty update call to remove them
|
|
783
808
|
this.notificationUpdates[metadata.key] = [];
|
|
@@ -802,8 +827,8 @@ class Automation extends MetadataType {
|
|
|
802
827
|
// prep startSource
|
|
803
828
|
metadata.startSource = {
|
|
804
829
|
fileDrop: {
|
|
805
|
-
|
|
806
|
-
|
|
830
|
+
fileNamePattern: metadata.fileTrigger.fileNamingPattern,
|
|
831
|
+
fileNamePatternTypeId: metadata.fileTrigger.fileNamePatternTypeId,
|
|
807
832
|
folderLocation: metadata.fileTrigger.folderLocationText,
|
|
808
833
|
queueFiles: metadata.fileTrigger.queueFiles,
|
|
809
834
|
},
|
|
@@ -844,8 +869,8 @@ class Automation extends MetadataType {
|
|
|
844
869
|
// automations can have empty placeholder for activities with only their type defined
|
|
845
870
|
activity.activityObjectId = cache.searchForField(
|
|
846
871
|
activity.r__type,
|
|
847
|
-
activity.
|
|
848
|
-
Definitions[activity.r__type].
|
|
872
|
+
activity.r__key,
|
|
873
|
+
Definitions[activity.r__type].keyField,
|
|
849
874
|
Definitions[activity.r__type].idField
|
|
850
875
|
);
|
|
851
876
|
}
|
|
@@ -869,7 +894,7 @@ class Automation extends MetadataType {
|
|
|
869
894
|
* Validates the automation to be sure it can be deployed.
|
|
870
895
|
* Whitelisted Activites are deployed but require configuration
|
|
871
896
|
*
|
|
872
|
-
* @param {
|
|
897
|
+
* @param {AutomationItem} metadata single automation record
|
|
873
898
|
* @returns {boolean} result if automation can be deployed based on steps
|
|
874
899
|
*/
|
|
875
900
|
static validateDeployMetadata(metadata) {
|
|
@@ -914,9 +939,8 @@ class Automation extends MetadataType {
|
|
|
914
939
|
/**
|
|
915
940
|
* helper for {@link MetadataType.updateREST} and {@link MetadataType.updateSOAP} that removes old files after the key was changed
|
|
916
941
|
*
|
|
917
|
-
* @
|
|
918
|
-
* @
|
|
919
|
-
* @returns {void}
|
|
942
|
+
* @param {MetadataTypeItem} metadataEntry a single metadata Entry
|
|
943
|
+
* @returns {Promise.<void>} -
|
|
920
944
|
*/
|
|
921
945
|
static async _postChangeKeyTasks(metadataEntry) {
|
|
922
946
|
super._postChangeKeyTasks(metadataEntry, true);
|
|
@@ -925,8 +949,8 @@ class Automation extends MetadataType {
|
|
|
925
949
|
/**
|
|
926
950
|
* Gets executed after deployment of metadata type
|
|
927
951
|
*
|
|
928
|
-
* @param {
|
|
929
|
-
* @param {
|
|
952
|
+
* @param {AutomationMap} metadataMap metadata mapped by their keyField
|
|
953
|
+
* @param {AutomationMap} originalMetadataMap metadata to be updated (contains additioanl fields)
|
|
930
954
|
* @returns {Promise.<void>} -
|
|
931
955
|
*/
|
|
932
956
|
static async postDeployTasks(metadataMap, originalMetadataMap) {
|
|
@@ -957,7 +981,7 @@ class Automation extends MetadataType {
|
|
|
957
981
|
);
|
|
958
982
|
}
|
|
959
983
|
|
|
960
|
-
//
|
|
984
|
+
// @ts-expect-error - string vs enum
|
|
961
985
|
item.status ||= Util.inverseGet(this.definition.statusMapping, item.statusId);
|
|
962
986
|
}
|
|
963
987
|
// need to put schedule on here if status is scheduled
|
|
@@ -982,7 +1006,7 @@ class Automation extends MetadataType {
|
|
|
982
1006
|
/**
|
|
983
1007
|
* helper for {@link Automation.postDeployTasks}
|
|
984
1008
|
*
|
|
985
|
-
* @param {
|
|
1009
|
+
* @param {AutomationMap} metadataMap metadata mapped by their keyField
|
|
986
1010
|
* @param {string} key current customer key
|
|
987
1011
|
* @returns {Promise.<void>} -
|
|
988
1012
|
*/
|
|
@@ -1029,8 +1053,8 @@ class Automation extends MetadataType {
|
|
|
1029
1053
|
/**
|
|
1030
1054
|
* helper for {@link Automation.postDeployTasks}
|
|
1031
1055
|
*
|
|
1032
|
-
* @param {
|
|
1033
|
-
* @param {
|
|
1056
|
+
* @param {AutomationMap} metadataMap metadata mapped by their keyField
|
|
1057
|
+
* @param {AutomationMap} originalMetadataMap metadata to be updated (contains additioanl fields)
|
|
1034
1058
|
* @param {string} key current customer key
|
|
1035
1059
|
* @param {string} [oldKey] old customer key before fixKey / changeKeyValue / changeKeyField
|
|
1036
1060
|
* @returns {Promise.<{key:string, response:object}>} metadata key and API response
|
|
@@ -1113,7 +1137,7 @@ class Automation extends MetadataType {
|
|
|
1113
1137
|
/**
|
|
1114
1138
|
* generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
|
|
1115
1139
|
*
|
|
1116
|
-
* @param {
|
|
1140
|
+
* @param {MetadataTypeItem} metadata a single script activity definition
|
|
1117
1141
|
*/
|
|
1118
1142
|
static setFolderPath(metadata) {
|
|
1119
1143
|
const folderIdField = metadata[this.definition.folderIdField]
|
|
@@ -1148,7 +1172,7 @@ class Automation extends MetadataType {
|
|
|
1148
1172
|
/**
|
|
1149
1173
|
* automation-specific script that retrieves the folder ID from cache and updates the given metadata with it before deploy
|
|
1150
1174
|
*
|
|
1151
|
-
* @param {
|
|
1175
|
+
* @param {MetadataTypeItem} metadata a single item
|
|
1152
1176
|
*/
|
|
1153
1177
|
static setFolderId(metadata) {
|
|
1154
1178
|
try {
|
|
@@ -1179,14 +1203,19 @@ class Automation extends MetadataType {
|
|
|
1179
1203
|
* Builds a schedule object to be used for scheduling an automation
|
|
1180
1204
|
* based on combination of ical string and start/end dates.
|
|
1181
1205
|
*
|
|
1182
|
-
* @param {
|
|
1183
|
-
* @returns {
|
|
1206
|
+
* @param {AutomationSchedule} scheduleObject child of automation metadata used for scheduling
|
|
1207
|
+
* @returns {AutomationScheduleSoap} Schedulable object for soap API (currently not rest supported)
|
|
1184
1208
|
*/
|
|
1185
1209
|
static _buildSchedule(scheduleObject) {
|
|
1186
1210
|
/**
|
|
1187
|
-
* @type {
|
|
1211
|
+
* @type {AutomationScheduleSoap}
|
|
1188
1212
|
*/
|
|
1189
|
-
const schedule = {
|
|
1213
|
+
const schedule = {
|
|
1214
|
+
Recurrence: {},
|
|
1215
|
+
TimeZone: { ID: null, IDSpecified: true },
|
|
1216
|
+
RecurrenceRangeType: null,
|
|
1217
|
+
StartDateTime: null,
|
|
1218
|
+
};
|
|
1190
1219
|
// build recurrence
|
|
1191
1220
|
const recurHelper = {};
|
|
1192
1221
|
// ical values are split by ; then have key values split by =
|
|
@@ -1245,10 +1274,12 @@ class Automation extends MetadataType {
|
|
|
1245
1274
|
// add tz to input date to ensure Date() creates a date object with the right tz
|
|
1246
1275
|
const inputStartDateString = scheduleObject.startDate + schedule._timezoneString;
|
|
1247
1276
|
|
|
1277
|
+
/** @type {Date | string} */
|
|
1278
|
+
let startDateTime;
|
|
1248
1279
|
if (new Date(inputStartDateString) > new Date()) {
|
|
1249
1280
|
// if start date is in future take this
|
|
1250
|
-
|
|
1251
|
-
schedule._StartDateTime =
|
|
1281
|
+
startDateTime = scheduleObject.startDate;
|
|
1282
|
+
schedule._StartDateTime = scheduleObject.startDate; // store copy for CLI output
|
|
1252
1283
|
} else {
|
|
1253
1284
|
// if start date is in past calculate new start date
|
|
1254
1285
|
const scheduledDate = new Date(inputStartDateString);
|
|
@@ -1288,16 +1319,16 @@ class Automation extends MetadataType {
|
|
|
1288
1319
|
// No default
|
|
1289
1320
|
}
|
|
1290
1321
|
// return time as Dateobject
|
|
1291
|
-
|
|
1292
|
-
const localTimezoneOffset =
|
|
1293
|
-
schedule._StartDateTime = this._calcTime(localTimezoneOffset,
|
|
1322
|
+
startDateTime = futureDate;
|
|
1323
|
+
const localTimezoneOffset = futureDate.getTimezoneOffset() / -60;
|
|
1324
|
+
schedule._StartDateTime = this._calcTime(localTimezoneOffset, futureDate); // store copy for CLI output
|
|
1294
1325
|
}
|
|
1295
1326
|
|
|
1296
1327
|
// The Create/Update API expects dates to be in US-Central time
|
|
1297
1328
|
// The retrieve API returns the date in whatever timezone one chose, hence we need to convert this upon upsert
|
|
1298
1329
|
schedule.StartDateTime = this._calcTime(
|
|
1299
1330
|
this.properties.options.serverTimeOffset,
|
|
1300
|
-
|
|
1331
|
+
startDateTime,
|
|
1301
1332
|
schedule._timezoneString
|
|
1302
1333
|
);
|
|
1303
1334
|
|
|
@@ -1339,7 +1370,7 @@ class Automation extends MetadataType {
|
|
|
1339
1370
|
* The json's first level of keys must represent the rows and the secend level the columns
|
|
1340
1371
|
*
|
|
1341
1372
|
* @private
|
|
1342
|
-
* @param {
|
|
1373
|
+
* @param {AutomationItem} json dataextension
|
|
1343
1374
|
* @param {object[][]} tabled prepped array for output in tabular format
|
|
1344
1375
|
* @returns {string} file content
|
|
1345
1376
|
*/
|
|
@@ -1440,8 +1471,10 @@ class Automation extends MetadataType {
|
|
|
1440
1471
|
}
|
|
1441
1472
|
output += row1.join('') + `|\n${tableSeparator}|\n`;
|
|
1442
1473
|
for (let i = 1; i < tabled.length; i++) {
|
|
1443
|
-
for (const
|
|
1444
|
-
output +=
|
|
1474
|
+
for (const activity of tabled[i]) {
|
|
1475
|
+
output += activity
|
|
1476
|
+
? `| _${activity.i}: ${activity.type}_<br>${activity.key} `
|
|
1477
|
+
: '| - ';
|
|
1445
1478
|
}
|
|
1446
1479
|
output += '|\n';
|
|
1447
1480
|
}
|
|
@@ -1455,9 +1488,9 @@ class Automation extends MetadataType {
|
|
|
1455
1488
|
* @private
|
|
1456
1489
|
* @param {string} directory directory the file will be written to
|
|
1457
1490
|
* @param {string} filename name of the file without '.json' ending
|
|
1458
|
-
* @param {
|
|
1491
|
+
* @param {AutomationItem} json dataextension.columns
|
|
1459
1492
|
* @param {'html'|'md'} mode html or md
|
|
1460
|
-
* @returns {Promise.<
|
|
1493
|
+
* @returns {Promise.<void>} Promise of success of saving the file
|
|
1461
1494
|
*/
|
|
1462
1495
|
static async _writeDoc(directory, filename, json, mode) {
|
|
1463
1496
|
await File.ensureDir(directory);
|
|
@@ -1482,7 +1515,7 @@ class Automation extends MetadataType {
|
|
|
1482
1515
|
step.activities[activityIndex]
|
|
1483
1516
|
? {
|
|
1484
1517
|
i: stepIndex + 1 + '.' + (activityIndex + 1),
|
|
1485
|
-
|
|
1518
|
+
key: step.activities[activityIndex].r__key,
|
|
1486
1519
|
type: step.activities[activityIndex].r__type,
|
|
1487
1520
|
}
|
|
1488
1521
|
: null
|
|
@@ -1504,13 +1537,13 @@ class Automation extends MetadataType {
|
|
|
1504
1537
|
/**
|
|
1505
1538
|
* Parses metadata into a readable Markdown/HTML format then saves it
|
|
1506
1539
|
*
|
|
1507
|
-
* @param {
|
|
1540
|
+
* @param {AutomationMap} [metadata] a list of dataExtension definitions
|
|
1508
1541
|
* @returns {Promise.<void>} -
|
|
1509
1542
|
*/
|
|
1510
1543
|
static async document(metadata) {
|
|
1511
1544
|
if (['md', 'both'].includes(this.properties.options.documentType)) {
|
|
1512
1545
|
if (!metadata) {
|
|
1513
|
-
metadata = this.readBUMetadataForType(
|
|
1546
|
+
metadata = await this.readBUMetadataForType(
|
|
1514
1547
|
File.normalizePath([
|
|
1515
1548
|
this.properties.directories.retrieve,
|
|
1516
1549
|
this.buObject.credential,
|
|
@@ -1529,7 +1562,7 @@ class Automation extends MetadataType {
|
|
|
1529
1562
|
// as part of retrieve & manual execution we could face an empty folder
|
|
1530
1563
|
return;
|
|
1531
1564
|
}
|
|
1532
|
-
|
|
1565
|
+
await Promise.all(
|
|
1533
1566
|
Object.keys(metadata).map((key) =>
|
|
1534
1567
|
this._writeDoc(docPath + '/', key, metadata[key], 'md')
|
|
1535
1568
|
)
|
|
@@ -1541,9 +1574,9 @@ class Automation extends MetadataType {
|
|
|
1541
1574
|
* additionally, the documentation for dataExtension and automation should be returned
|
|
1542
1575
|
*
|
|
1543
1576
|
* @param {string[]} keyArr customerkey of the metadata
|
|
1544
|
-
* @returns {string[]} list of all files that need to be committed in a flat array ['path/file1.ext', 'path/file2.ext']
|
|
1577
|
+
* @returns {Promise.<string[]>} list of all files that need to be committed in a flat array ['path/file1.ext', 'path/file2.ext']
|
|
1545
1578
|
*/
|
|
1546
|
-
static getFilesToCommit(keyArr) {
|
|
1579
|
+
static async getFilesToCommit(keyArr) {
|
|
1547
1580
|
if (this.properties.metaDataTypes.documentOnRetrieve.includes(this.definition.type)) {
|
|
1548
1581
|
// document automation is active. assume we want to commit the MD file as well
|
|
1549
1582
|
const path = File.normalizePath([
|
|
@@ -1566,7 +1599,6 @@ class Automation extends MetadataType {
|
|
|
1566
1599
|
/**
|
|
1567
1600
|
* helper to allow us to select single metadata entries via REST
|
|
1568
1601
|
*
|
|
1569
|
-
* @private
|
|
1570
1602
|
* @param {string} key customer key
|
|
1571
1603
|
* @returns {Promise.<string>} objectId or enpty string
|
|
1572
1604
|
*/
|
|
@@ -1585,7 +1617,7 @@ class Automation extends MetadataType {
|
|
|
1585
1617
|
* Delete a metadata item from the specified business unit
|
|
1586
1618
|
*
|
|
1587
1619
|
* @param {string} customerKey Identifier of data extension
|
|
1588
|
-
* @returns {boolean} deletion success status
|
|
1620
|
+
* @returns {Promise.<boolean>} deletion success status
|
|
1589
1621
|
*/
|
|
1590
1622
|
static async deleteByKey(customerKey) {
|
|
1591
1623
|
// the delete endpoint returns a general exception if the automation does not exist; handle it gracefully instead by adding a retrieve first
|
|
@@ -1600,7 +1632,7 @@ class Automation extends MetadataType {
|
|
|
1600
1632
|
* clean up after deleting a metadata item
|
|
1601
1633
|
*
|
|
1602
1634
|
* @param {string} customerKey Identifier of metadata item
|
|
1603
|
-
* @returns {void}
|
|
1635
|
+
* @returns {Promise.<void>} -
|
|
1604
1636
|
*/
|
|
1605
1637
|
static async postDeleteTasks(customerKey) {
|
|
1606
1638
|
// delete local copy: retrieve/cred/bu/.../...-meta.json
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
import TYPE from '../../types/mcdev.d.js';
|
|
4
3
|
import MetadataType from './MetadataType.js';
|
|
5
4
|
import { Util } from '../util/util.js';
|
|
6
5
|
import File from '../util/file.js';
|
|
7
6
|
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {import('../../types/mcdev.d.js').BuObject} BuObject
|
|
9
|
+
* @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract
|
|
10
|
+
* @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem
|
|
11
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem
|
|
12
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff
|
|
13
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj
|
|
14
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap
|
|
15
|
+
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
|
|
16
|
+
* @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
|
|
17
|
+
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
|
|
18
|
+
*/
|
|
19
|
+
|
|
8
20
|
/**
|
|
9
21
|
* Campaign MetadataType
|
|
10
22
|
*
|
|
@@ -15,10 +27,10 @@ class Campaign extends MetadataType {
|
|
|
15
27
|
* Retrieves Metadata of campaigns. Afterwards, starts metadata retrieval for their campaign assets
|
|
16
28
|
*
|
|
17
29
|
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
18
|
-
* @param {void} [_] unused parameter
|
|
19
|
-
* @param {void} [__] unused parameter
|
|
30
|
+
* @param {void | string[]} [_] unused parameter
|
|
31
|
+
* @param {void | string[]} [__] unused parameter
|
|
20
32
|
* @param {string} [key] customer key of single item to retrieve
|
|
21
|
-
* @returns {Promise.<
|
|
33
|
+
* @returns {Promise.<MetadataTypeMapObj>} Promise
|
|
22
34
|
*/
|
|
23
35
|
static async retrieve(retrieveDir, _, __, key) {
|
|
24
36
|
const res = await super.retrieveREST(
|
|
@@ -43,7 +55,7 @@ class Campaign extends MetadataType {
|
|
|
43
55
|
/**
|
|
44
56
|
* Retrieves event definition metadata for caching
|
|
45
57
|
*
|
|
46
|
-
* @returns {Promise.<
|
|
58
|
+
* @returns {Promise.<MetadataTypeMapObj>} Promise of metadata
|
|
47
59
|
*/
|
|
48
60
|
static retrieveForCache() {
|
|
49
61
|
return super.retrieveREST(null, '/legacy/v1/beta2/data/campaign/');
|
|
@@ -55,7 +67,7 @@ class Campaign extends MetadataType {
|
|
|
55
67
|
* @param {string} retrieveDir folder where to save
|
|
56
68
|
* @param {string} campaignId of camapaign to retrieve
|
|
57
69
|
* @param {string} name of camapaign for saving
|
|
58
|
-
* @returns {Promise.<
|
|
70
|
+
* @returns {Promise.<MetadataTypeMapObj>} Campaign Asset Object
|
|
59
71
|
*/
|
|
60
72
|
static async getAssetTags(retrieveDir, campaignId, name) {
|
|
61
73
|
const res = await this.client.rest.getBulk(`/hub/v1/campaigns/${campaignId}/assets`);
|