mcdev 7.0.3 → 7.1.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/.github/ISSUE_TEMPLATE/bug.yml +2 -0
- package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +1 -0
- package/.github/workflows/code-test.yml +48 -0
- package/.husky/post-checkout +1 -1
- package/.husky/post-merge +7 -1
- package/.husky/pre-commit +3 -1
- package/@types/lib/Builder.d.ts +13 -13
- package/@types/lib/Builder.d.ts.map +1 -1
- package/@types/lib/Deployer.d.ts +19 -16
- package/@types/lib/Deployer.d.ts.map +1 -1
- package/@types/lib/Retriever.d.ts +15 -15
- package/@types/lib/Retriever.d.ts.map +1 -1
- package/@types/lib/cli.d.ts +1 -1
- package/@types/lib/cli.d.ts.map +1 -1
- package/@types/lib/index.d.ts +102 -51
- package/@types/lib/index.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Asset.d.ts +71 -59
- package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
- package/@types/lib/metadataTypes/AttributeGroup.d.ts +6 -8
- package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
- package/@types/lib/metadataTypes/AttributeSet.d.ts +10 -21
- package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Automation.d.ts +47 -49
- package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Campaign.d.ts +12 -18
- package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
- package/@types/lib/metadataTypes/ContentArea.d.ts +13 -31
- package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtension.d.ts +28 -33
- package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtensionField.d.ts +15 -22
- package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +12 -11
- package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtract.d.ts +13 -28
- package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtractType.d.ts +11 -10
- package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DeliveryProfile.d.ts +11 -10
- package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Discovery.d.ts +11 -10
- package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Email.d.ts +14 -34
- package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
- package/@types/lib/metadataTypes/EmailSend.d.ts +18 -10
- package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Event.d.ts +22 -16
- package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
- package/@types/lib/metadataTypes/FileLocation.d.ts +11 -10
- package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
- package/@types/lib/metadataTypes/FileTransfer.d.ts +12 -18
- package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Filter.d.ts +11 -10
- package/@types/lib/metadataTypes/Filter.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Folder.d.ts +49 -35
- package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
- package/@types/lib/metadataTypes/ImportFile.d.ts +16 -15
- package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Journey.d.ts +55 -35
- package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
- package/@types/lib/metadataTypes/List.d.ts +13 -12
- package/@types/lib/metadataTypes/List.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MetadataType.d.ts +73 -26
- package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileCode.d.ts +12 -20
- package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileKeyword.d.ts +23 -14
- package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileMessage.d.ts +18 -42
- package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Query.d.ts +15 -12
- package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Role.d.ts +12 -11
- package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Script.d.ts +18 -25
- package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
- package/@types/lib/metadataTypes/SendClassification.d.ts +13 -10
- package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
- package/@types/lib/metadataTypes/SenderProfile.d.ts +12 -25
- package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts +18 -12
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts +12 -32
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalPush.d.ts +15 -21
- package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts +16 -18
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TriggeredSend.d.ts +19 -24
- package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
- package/@types/lib/metadataTypes/User.d.ts +23 -40
- package/@types/lib/metadataTypes/User.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Verification.d.ts +16 -13
- package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
- package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +24 -14
- package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +3 -0
- package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +5 -0
- package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +16 -0
- package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +8 -0
- package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +10 -1
- package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +5 -0
- package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +13 -0
- package/@types/lib/metadataTypes/definitions/List.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +9 -0
- package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +4 -0
- package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +3 -0
- package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +3 -0
- package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +6 -0
- package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +3 -0
- package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +4 -0
- package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +6 -0
- package/@types/lib/metadataTypes/definitions/User.definition.d.ts +1 -0
- package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +3 -0
- package/@types/lib/util/auth.d.ts +19 -18
- package/@types/lib/util/auth.d.ts.map +1 -1
- package/@types/lib/util/businessUnit.d.ts +17 -17
- package/@types/lib/util/businessUnit.d.ts.map +1 -1
- package/@types/lib/util/cache.d.ts +34 -32
- package/@types/lib/util/cache.d.ts.map +1 -1
- package/@types/lib/util/cli.d.ts +30 -33
- package/@types/lib/util/cli.d.ts.map +1 -1
- package/@types/lib/util/config.d.ts +20 -20
- package/@types/lib/util/config.d.ts.map +1 -1
- package/@types/lib/util/devops.d.ts +21 -21
- package/@types/lib/util/devops.d.ts.map +1 -1
- package/@types/lib/util/file.d.ts +179 -18
- package/@types/lib/util/file.d.ts.map +1 -1
- package/@types/lib/util/init.config.d.ts +19 -19
- package/@types/lib/util/init.config.d.ts.map +1 -1
- package/@types/lib/util/init.d.ts +20 -20
- package/@types/lib/util/init.d.ts.map +1 -1
- package/@types/lib/util/init.git.d.ts +2 -2
- package/@types/lib/util/init.git.d.ts.map +1 -1
- package/@types/lib/util/init.npm.d.ts +2 -2
- package/@types/lib/util/init.npm.d.ts.map +1 -1
- package/@types/lib/util/replaceContentBlockReference.d.ts +55 -32
- package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
- package/@types/lib/util/util.d.ts +64 -39
- package/@types/lib/util/util.d.ts.map +1 -1
- package/@types/types/mcdev.d.d.ts +160 -52
- package/@types/types/mcdev.d.d.ts.map +1 -1
- package/boilerplate/files/.vscode/settings.json +1 -0
- package/boilerplate/forcedUpdates.json +4 -0
- package/boilerplate/gitignore-template +0 -1
- package/eslint.config.js +0 -1
- package/lib/Builder.js +13 -8
- package/lib/Deployer.js +13 -8
- package/lib/Retriever.js +4 -1
- package/lib/cli.js +384 -288
- package/lib/index.js +620 -241
- package/lib/metadataTypes/Asset.js +455 -209
- package/lib/metadataTypes/Automation.js +34 -0
- package/lib/metadataTypes/DataExtension.js +36 -31
- package/lib/metadataTypes/DataExtensionField.js +2 -3
- package/lib/metadataTypes/Event.js +227 -37
- package/lib/metadataTypes/Folder.js +64 -49
- package/lib/metadataTypes/Journey.js +340 -58
- package/lib/metadataTypes/MetadataType.js +272 -61
- package/lib/metadataTypes/MobileKeyword.js +12 -1
- package/lib/metadataTypes/Role.js +9 -7
- package/lib/metadataTypes/Script.js +4 -3
- package/lib/metadataTypes/SenderProfile.js +18 -5
- package/lib/metadataTypes/TransactionalEmail.js +2 -2
- package/lib/metadataTypes/TriggeredSend.js +21 -5
- package/lib/metadataTypes/User.js +31 -27
- package/lib/metadataTypes/definitions/Asset.definition.js +10 -2
- package/lib/metadataTypes/definitions/AttributeGroup.definition.js +1 -0
- package/lib/metadataTypes/definitions/AttributeSet.definition.js +11 -0
- package/lib/metadataTypes/definitions/Automation.definition.js +9 -0
- package/lib/metadataTypes/definitions/Campaign.definition.js +1 -0
- package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtract.definition.js +2 -1
- package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -0
- package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +1 -0
- package/lib/metadataTypes/definitions/Discovery.definition.js +1 -0
- package/lib/metadataTypes/definitions/Email.definition.js +1 -0
- package/lib/metadataTypes/definitions/EmailSend.definition.js +8 -0
- package/lib/metadataTypes/definitions/Event.definition.js +9 -8
- package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -0
- package/lib/metadataTypes/definitions/FileTransfer.definition.js +4 -0
- package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
- package/lib/metadataTypes/definitions/Folder.definition.js +10 -8
- package/lib/metadataTypes/definitions/ImportFile.definition.js +8 -1
- package/lib/metadataTypes/definitions/Journey.definition.js +28 -0
- package/lib/metadataTypes/definitions/List.definition.js +1 -0
- package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -0
- package/lib/metadataTypes/definitions/MobileKeyword.definition.js +7 -0
- package/lib/metadataTypes/definitions/MobileMessage.definition.js +9 -0
- package/lib/metadataTypes/definitions/Query.definition.js +3 -0
- package/lib/metadataTypes/definitions/Role.definition.js +1 -0
- package/lib/metadataTypes/definitions/Script.definition.js +1 -0
- package/lib/metadataTypes/definitions/SendClassification.definition.js +4 -0
- package/lib/metadataTypes/definitions/SenderProfile.definition.js +1 -0
- package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +7 -0
- package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +1 -0
- package/lib/metadataTypes/definitions/TransactionalPush.definition.js +3 -0
- package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +4 -0
- package/lib/metadataTypes/definitions/TriggeredSend.definition.js +10 -3
- package/lib/metadataTypes/definitions/User.definition.js +3 -0
- package/lib/metadataTypes/definitions/Verification.definition.js +1 -0
- package/lib/util/auth.js +0 -1
- package/lib/util/cache.js +35 -0
- package/lib/util/cli.js +96 -140
- package/lib/util/config.js +11 -19
- package/lib/util/devops.js +42 -43
- package/lib/util/file.js +7 -10
- package/lib/util/init.config.js +6 -10
- package/lib/util/init.git.js +43 -57
- package/lib/util/init.js +35 -59
- package/lib/util/replaceContentBlockReference.js +110 -61
- package/lib/util/util.js +90 -4
- package/package.json +22 -19
- package/test/general.test.js +1144 -172
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/event/testExisting_event.event-meta.json +201 -0
- package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withExistingDE.event-meta.json +233 -0
- package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withSchema.event-meta.json +194 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.json +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.json +1 -0
- package/test/resourceFactory.js +43 -11
- package/test/resources/1111111/dataFolder/retrieve-ContentTypeINshared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +364 -0
- package/test/resources/9999999/asset/{block-1157-retrieve-expected.html → build-asset_htmlblock-expected.html} +1 -1
- package/test/resources/9999999/asset/build-asset_htmlblock-expected.json +29 -0
- package/test/resources/9999999/asset/build-templatebasedemail-expected.json +65 -0
- package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +3 -3
- package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +3 -3
- package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +65 -0
- package/test/resources/9999999/asset/template-emailTemplate-expected.json +20 -0
- package/test/resources/9999999/asset/template-templatebasedemail-expected.json +65 -0
- package/test/resources/9999999/asset/template-testExisting_asset_htmlblock-expected.json +29 -0
- package/test/resources/9999999/asset/testExisting_asset_htmlblock-retrieve-expected.html +23 -0
- package/test/resources/9999999/asset/{block-1157-retrieve-expected.json → testExisting_asset_htmlblock-retrieve-expected.json} +3 -3
- package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +6 -6
- package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +1 -1
- package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -4
- package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +1 -1
- package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -4
- package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +4 -4
- package/test/resources/9999999/asset/v1/content/assets/1295065/get-response.json +60 -0
- package/test/resources/9999999/asset/v1/content/assets/1295066/get-response.json +60 -0
- package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +75 -0
- package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +3 -3
- package/test/resources/9999999/asset/v1/content/assets/950143/get-response.json +97 -0
- package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +1 -1
- 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 +78 -2
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14,193,194,15,195,196,197,198,199,200,201,202,203,210,211,212,213,3,207,208,209,5,214,4,215,216.json +370 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14,193,194,15,195,196,197,198,199,200,201,202,203,210,211,212,213,3,215,216,217,218,219,220,221,222.json +243 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,207,208,209,5.json +229 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +98 -1
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN217,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-assetType.idIN223,224,225,226,227,228,214,4.json +35 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN223,224,225,226,227,228.json +7 -0
- package/test/resources/9999999/asset/v1/content/assets/query/{post-response-customerKey=mcdev-issue-1157.json → post-response-customerKey=testExisting_asset_htmlblock.json} +2 -2
- package/test/resources/9999999/automation/v1/queries/get-response-Name=testExisting_query.json +24 -0
- package/test/resources/9999999/automation/v1/scripts/get-response-name=testExisting_script.json +17 -0
- package/test/resources/9999999/automation/v1/scripts/get-response.json +2 -2
- package/test/resources/9999999/dataExtension/retrieve-CustomerKey=testNew_event_withSchema-response.xml +50 -0
- package/test/resources/9999999/dataExtension/retrieve-createdViaEvent-response.xml +50 -0
- package/test/resources/9999999/dataExtension/retrieve-response.xml +48 -0
- package/test/resources/9999999/dataExtension/retrieve_event_withSchema-expected.json +219 -0
- package/test/resources/9999999/dataExtension/update-afterCreatedViaEvent-response.xml +55 -0
- package/test/resources/9999999/dataExtension/update-callout-afterCreatedViaEvent-expected.xml +1 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_event_withSchema-response.xml +461 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKeyINtestExisting_dataExtension,testNew_dataExtension-response.xml +133 -0
- package/test/resources/9999999/dataExtensionField/retrieve-response.xml +870 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=asset-shared-QAA-response.xml +70 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=asset-shared-response.xml +70 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=journey-response.xml +48 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml +519 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-sha,dataexten,salesforc,shared_da,shared_da,shared_sa,synchroni,automatio,useriniti,journey,mysubs,list,publicati,queryacti,ssjsactiv,triggered,triggered-response.xml +519 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,journey-response.xml +92 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +115 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,ssjsactivity-response.xml +92 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared-QAA-response.xml +70 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset-shared,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +431 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINautomations,queryactivity-response.xml +70 -0
- package/test/resources/9999999/dataFolder/{retrieve-response.xml → retrieve-ContentTypeINdataextension,hidden,queryactivity,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +32 -119
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINdataextension,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +117 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINhidden,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +46 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentTypeINshared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +251 -0
- package/test/resources/9999999/dataFolder/retrieve-response-.xml +519 -0
- package/test/resources/9999999/event/build-expected.json +227 -0
- package/test/resources/9999999/event/get-expected.json +234 -0
- package/test/resources/9999999/event/post_withExistingDE-callout-expected.json +20 -0
- package/test/resources/9999999/event/post_withExistingDE-expected.json +23 -0
- package/test/resources/9999999/event/post_withSchema-callout-expected.json +199 -0
- package/test/resources/9999999/event/post_withSchema-expected.json +234 -0
- package/test/resources/9999999/event/put-callout-expected.json +204 -0
- package/test/resources/9999999/event/put-expected.json +233 -0
- package/test/resources/9999999/event/template-expected.json +227 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +252 -2
- package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/delete-response.txt +0 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/put-response.json +242 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/post_withExistingDE-response.json +28 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/post_withSchema-response.json +243 -0
- package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/delete-response.txt +1 -0
- package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +4 -4
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +4 -4
- package/test/resources/9999999/interaction/v1/interactions/publishAsync/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/post-response.json +4 -0
- package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-failed.json +34 -0
- package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-success.json +5 -0
- package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-successWarnings.json +36 -0
- package/test/resources/9999999/journey/build-expected.json +5 -5
- package/test/resources/9999999/journey/get-multistep-expected.json +1 -1
- package/test/resources/9999999/journey/get-quicksend-expected.json +5 -5
- package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +1 -1
- package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +7 -7
- package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +1 -1
- package/test/resources/9999999/journey/post-expected.json +1 -1
- package/test/resources/9999999/journey/publish-callout-expected.json +1 -0
- package/test/resources/9999999/journey/put-expected.json +1 -1
- package/test/resources/9999999/journey/template-expected.json +5 -5
- package/test/resources/9999999/mobileKeyword/build-expected.json +1 -0
- package/test/resources/9999999/mobileKeyword/get-expected.json +1 -0
- package/test/resources/9999999/mobileKeyword/post-create-expected.json +1 -0
- package/test/resources/9999999/mobileKeyword/template-expected.json +1 -0
- package/test/resources/{1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml → 9999999/queryDefinition/retrieve-CustomerKey=badANDStatus=Active-response.xml} +10 -11
- package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +2 -2
- package/test/resources/9999999/script/get_ampscript-expected.html +1 -0
- package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +1 -0
- package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +3 -2
- package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +3 -0
- package/test/resources/9999999/script/get_mixed-expected.html +2 -2
- package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +2 -2
- package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +4 -4
- package/test/resources/9999999/senderProfile/retrieve-response.xml +1 -1
- package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +4 -4
- package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +1 -1
- package/test/type.asset.test.js +189 -42
- package/test/type.automation.test.js +135 -59
- package/test/type.dataExtension.test.js +4 -4
- package/test/type.dataExtract.test.js +4 -4
- package/test/type.emailSend.test.js +3 -3
- package/test/type.event.test.js +286 -7
- package/test/type.journey.test.js +335 -9
- package/test/type.query.test.js +33 -29
- package/test/type.script.test.js +61 -11
- package/test/type.senderProfile.test.js +36 -3
- package/test/type.transactionalEmail.test.js +3 -3
- package/test/type.triggeredSend.test.js +75 -6
- package/test/type.user.test.js +1 -1
- package/test/utils.js +31 -9
- package/tsconfig.json +6 -1
- package/{jsconfig.json → tsconfig.npmScripts.json} +1 -1
- package/tsconfig.precommit.json +26 -0
- package/types/mcdev.d.js +39 -14
- /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml → retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-QAA-response.xml} +0 -0
- /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=falseANDEmaillike@-response.xml → retrieve-ActiveFlag=falseANDEmaillike@-QAA-response.xml} +0 -0
- /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-QAA-response.xml} +0 -0
- /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml → retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-QAA-response.xml} +0 -0
- /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDEmaillike@-response.xml → retrieve-ActiveFlag=trueANDEmaillike@-QAA-response.xml} +0 -0
- /package/test/resources/1111111/businessUnit/{retrieve-ID=1111111-response.xml → retrieve-ID=1111111-QAA-response.xml} +0 -0
- /package/test/resources/1111111/dataFolder/{retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml → retrieve-ContentTypeINdataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +0 -0
- /package/test/resources/1111111/dataFolder/{retrieve-response.xml → retrieve-response-.xml} +0 -0
- /package/test/resources/9999999/dataFolder/{retrieve-ContentType=asset-sharedORContentType=asset-response.xml → retrieve-ContentTypeINasset,asset-shared-response.xml} +0 -0
- /package/test/resources/9999999/dataFolder/{retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml → retrieve-ContentTypeINcontextual_suppression_list,list,mysubs,publication,suppression_list-response.xml} +0 -0
- /package/test/resources/9999999/dataFolder/{retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml → retrieve-ContentTypeINdataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +0 -0
- /package/test/resources/9999999/dataFolder/{retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml → retrieve-ContentTypeINhidden,triggered_send,triggered_send_journeybuilder-response.xml} +0 -0
|
@@ -17,6 +17,10 @@ import cache from '../util/cache.js';
|
|
|
17
17
|
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj
|
|
18
18
|
* @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams
|
|
19
19
|
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap
|
|
20
|
+
*
|
|
21
|
+
* @typedef {import('../../types/mcdev.d.js').ListItem} ListItem
|
|
22
|
+
* @typedef {import('../../types/mcdev.d.js').ListMap} ListMap
|
|
23
|
+
* @typedef {import('../../types/mcdev.d.js').ListIdMap} ListIdMap
|
|
20
24
|
*/
|
|
21
25
|
|
|
22
26
|
/**
|
|
@@ -32,20 +36,27 @@ class Folder extends MetadataType {
|
|
|
32
36
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
33
37
|
* @param {string[]} [subTypeArr] content type of folder
|
|
34
38
|
* @param {string} [key] customer key of single item to retrieve
|
|
35
|
-
* @returns {Promise} Promise
|
|
39
|
+
* @returns {Promise.<{metadata: ListMap, type: string}>} Promise
|
|
36
40
|
*/
|
|
37
41
|
static async retrieve(retrieveDir, additionalFields, subTypeArr, key) {
|
|
38
42
|
if (key) {
|
|
39
43
|
Util.logger.error(`Folder.retrieve() does not support key parameter`);
|
|
40
44
|
}
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
/** @type {ListItem[]} */
|
|
46
|
+
const queryAllFolders = await this.retrieveHelper(additionalFields, false, subTypeArr);
|
|
43
47
|
if (this.buObject.eid !== this.buObject.mid) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
const selectedParentTypes = subTypeArr?.length
|
|
49
|
+
? subTypeArr.filter((item) => this.definition.folderTypesFromParent.includes(item))
|
|
50
|
+
: subTypeArr;
|
|
51
|
+
if (!subTypeArr?.length || selectedParentTypes.length) {
|
|
52
|
+
queryAllFolders.push(
|
|
53
|
+
...(await this.retrieveHelper(additionalFields, true, selectedParentTypes))
|
|
54
|
+
);
|
|
55
|
+
}
|
|
47
56
|
}
|
|
57
|
+
|
|
48
58
|
const sortPairs = toposort(queryAllFolders.map((a) => [a.ParentFolder.ID, a.ID]));
|
|
59
|
+
/** @type {ListIdMap} */
|
|
49
60
|
const idMap = {};
|
|
50
61
|
for (const val of queryAllFolders) {
|
|
51
62
|
// Contact Builder Lists create a folder called "Audiences" with the same Customer Key as the
|
|
@@ -64,6 +75,7 @@ class Folder extends MetadataType {
|
|
|
64
75
|
}
|
|
65
76
|
|
|
66
77
|
// create root node for attaching, but will be deleted later
|
|
78
|
+
// @ts-expect-error we set an incomplete ListItem for ID==0 which is flagged by ts
|
|
67
79
|
idMap[0] = {
|
|
68
80
|
Name: '<ROOT>',
|
|
69
81
|
};
|
|
@@ -113,6 +125,7 @@ class Folder extends MetadataType {
|
|
|
113
125
|
}
|
|
114
126
|
|
|
115
127
|
// build a new map using the customer key instead of id
|
|
128
|
+
/** @type {ListMap} */
|
|
116
129
|
const metadata = {};
|
|
117
130
|
for (const id in idMap) {
|
|
118
131
|
// remove keys which are listed in other BUs and skip root
|
|
@@ -156,7 +169,7 @@ class Folder extends MetadataType {
|
|
|
156
169
|
`Downloaded: ${this.definition.type} (${Object.keys(savedMetadata).length})`
|
|
157
170
|
);
|
|
158
171
|
}
|
|
159
|
-
return { metadata
|
|
172
|
+
return { metadata, type: this.definition.type };
|
|
160
173
|
}
|
|
161
174
|
|
|
162
175
|
/**
|
|
@@ -164,7 +177,7 @@ class Folder extends MetadataType {
|
|
|
164
177
|
*
|
|
165
178
|
* @param {void | string[]} [_] parameter not used
|
|
166
179
|
* @param {string[]} [subTypeArr] content type of folder
|
|
167
|
-
* @returns {Promise} Promise
|
|
180
|
+
* @returns {Promise.<{metadata: ListMap, type: string}>} Promise
|
|
168
181
|
*/
|
|
169
182
|
static retrieveForCache(_, subTypeArr) {
|
|
170
183
|
return this.retrieve(null, null, subTypeArr, null);
|
|
@@ -175,8 +188,8 @@ class Folder extends MetadataType {
|
|
|
175
188
|
* and comparing to check if create or update operation is needed.
|
|
176
189
|
* Copied due to having a dependency on itself, meaning the created need to be serial
|
|
177
190
|
*
|
|
178
|
-
* @param {
|
|
179
|
-
* @returns {Promise.<
|
|
191
|
+
* @param {ListMap} metadata metadata mapped by their keyField
|
|
192
|
+
* @returns {Promise.<ListMap>} Promise of saved metadata
|
|
180
193
|
*/
|
|
181
194
|
static async upsert(metadata) {
|
|
182
195
|
const orignalMetadata = structuredClone(metadata);
|
|
@@ -185,6 +198,7 @@ class Folder extends MetadataType {
|
|
|
185
198
|
let createCount = 0;
|
|
186
199
|
let createFailedCount = 0;
|
|
187
200
|
let filteredByPreDeploy = 0;
|
|
201
|
+
/** @type {ListMap} */
|
|
188
202
|
const upsertResults = {};
|
|
189
203
|
const sortPairs = toposort(
|
|
190
204
|
Object.keys(metadata).map((customerKey) => [
|
|
@@ -262,6 +276,15 @@ class Folder extends MetadataType {
|
|
|
262
276
|
continue;
|
|
263
277
|
}
|
|
264
278
|
}
|
|
279
|
+
if (existingId && Util.OPTIONS.noUpdate) {
|
|
280
|
+
Util.logger.verbose(
|
|
281
|
+
` - skipping ${this.definition.type} ${
|
|
282
|
+
deployableMetadata?.Path ||
|
|
283
|
+
deployableMetadata[this.definition.nameField]
|
|
284
|
+
}: --noUpdate flag is set`
|
|
285
|
+
);
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
265
288
|
|
|
266
289
|
let result;
|
|
267
290
|
// since deployableMetadata will be modified for deploy, make a copy for reference
|
|
@@ -339,12 +362,12 @@ class Folder extends MetadataType {
|
|
|
339
362
|
/**
|
|
340
363
|
* creates a folder based on metatadata
|
|
341
364
|
*
|
|
342
|
-
* @param {
|
|
343
|
-
* @returns {Promise} Promise
|
|
365
|
+
* @param {ListItem} metadataEntry metadata of the folder
|
|
366
|
+
* @returns {Promise.<any>} Promise of api response
|
|
344
367
|
*/
|
|
345
368
|
static async create(metadataEntry) {
|
|
346
|
-
if (metadataEntry?.
|
|
347
|
-
Util.logger.
|
|
369
|
+
if (metadataEntry?.ParentFolder?.ID === 0) {
|
|
370
|
+
Util.logger.debug(
|
|
348
371
|
`${this.definition.type}-${metadataEntry.ContentType}.create:: Cannot create Root Folder: ${metadataEntry.Name}`
|
|
349
372
|
);
|
|
350
373
|
return {};
|
|
@@ -361,7 +384,7 @@ class Folder extends MetadataType {
|
|
|
361
384
|
const response = await super.createREST(restPayload, '/email/v1/category', true);
|
|
362
385
|
if (response?.objectId) {
|
|
363
386
|
// convert the response to the same format as the SOAP response
|
|
364
|
-
metadataEntry.ID = response.
|
|
387
|
+
metadataEntry.ID = response.categoryId;
|
|
365
388
|
// the following is a bit of a hack to make the response look like the SOAP response; not sure if we actually need that anywhere like this --> future developers feel free to double check
|
|
366
389
|
const returnObject = {
|
|
367
390
|
Results: [
|
|
@@ -405,7 +428,7 @@ class Folder extends MetadataType {
|
|
|
405
428
|
* Updates a single Folder.
|
|
406
429
|
*
|
|
407
430
|
* @param {MetadataTypeItem} metadataEntry single metadata entry
|
|
408
|
-
* @returns {Promise} Promise
|
|
431
|
+
* @returns {Promise.<any>} Promise of api response
|
|
409
432
|
*/
|
|
410
433
|
static async update(metadataEntry) {
|
|
411
434
|
const path = metadataEntry.Path;
|
|
@@ -434,8 +457,8 @@ class Folder extends MetadataType {
|
|
|
434
457
|
/**
|
|
435
458
|
* prepares a folder for deployment
|
|
436
459
|
*
|
|
437
|
-
* @param {
|
|
438
|
-
* @returns {Promise.<
|
|
460
|
+
* @param {ListItem} metadata a single folder definition
|
|
461
|
+
* @returns {Promise.<ListItem>} Promise of parsed folder metadata
|
|
439
462
|
*/
|
|
440
463
|
static async preDeployTasks(metadata) {
|
|
441
464
|
if (!this.definition.deployFolderTypes.includes(metadata.ContentType.toLowerCase())) {
|
|
@@ -467,12 +490,7 @@ class Folder extends MetadataType {
|
|
|
467
490
|
}
|
|
468
491
|
// retreive ID based on the matching Path of the parent folder
|
|
469
492
|
else if (metadata?.ParentFolder?.Path) {
|
|
470
|
-
metadata.ParentFolder.ID = cache.
|
|
471
|
-
'folder',
|
|
472
|
-
metadata.ParentFolder.Path,
|
|
473
|
-
'Path',
|
|
474
|
-
'ID'
|
|
475
|
-
);
|
|
493
|
+
metadata.ParentFolder.ID = cache.getFolderId(metadata.ParentFolder.Path);
|
|
476
494
|
return metadata;
|
|
477
495
|
} else {
|
|
478
496
|
Util.metadataLogger(
|
|
@@ -488,13 +506,13 @@ class Folder extends MetadataType {
|
|
|
488
506
|
/**
|
|
489
507
|
* Returns file contents mapped to their filename without '.json' ending
|
|
490
508
|
*
|
|
491
|
-
* @param {string} dir directory
|
|
509
|
+
* @param {string} dir directory with json files, e.g. /retrieve/cred/bu/folder, /deploy/cred/bu/folder, /template/folder
|
|
492
510
|
* @param {boolean} [listBadKeys] do not print errors, used for badKeys()
|
|
493
|
-
* @returns {Promise.<
|
|
511
|
+
* @returns {Promise.<ListMap>} fileName => fileContent map
|
|
494
512
|
*/
|
|
495
513
|
static async getJsonFromFS(dir, listBadKeys) {
|
|
496
514
|
try {
|
|
497
|
-
/** @type {
|
|
515
|
+
/** @type {ListMap} */
|
|
498
516
|
const fileName2FileContent = {};
|
|
499
517
|
const directories = File.readDirectoriesSync(dir, 10, true);
|
|
500
518
|
let newCounter = 0;
|
|
@@ -564,28 +582,24 @@ class Folder extends MetadataType {
|
|
|
564
582
|
* @param {string[]} [additionalFields] Returns specified fields even if their retrieve definition is not set to true
|
|
565
583
|
* @param {boolean} [queryAllAccounts] which queryAllAccounts setting to use
|
|
566
584
|
* @param {string[]} [contentTypeList] content type of folder
|
|
567
|
-
* @returns {Promise.<
|
|
585
|
+
* @returns {Promise.<ListItem[]>} soap object
|
|
568
586
|
*/
|
|
569
587
|
static async retrieveHelper(additionalFields, queryAllAccounts, contentTypeList) {
|
|
570
588
|
const options = { QueryAllAccounts: !!queryAllAccounts };
|
|
571
589
|
if (contentTypeList) {
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
operator: 'equals',
|
|
586
|
-
rightOperand: contentType,
|
|
587
|
-
};
|
|
588
|
-
}
|
|
590
|
+
const newFilter = {
|
|
591
|
+
leftOperand: 'ContentType',
|
|
592
|
+
operator: contentTypeList.length === 1 ? 'equals' : 'IN',
|
|
593
|
+
rightOperand:
|
|
594
|
+
contentTypeList.length === 1 ? contentTypeList[0] : contentTypeList.sort(),
|
|
595
|
+
};
|
|
596
|
+
options.filter = options.filter
|
|
597
|
+
? {
|
|
598
|
+
leftOperand: newFilter,
|
|
599
|
+
operator: 'OR',
|
|
600
|
+
rightOperand: options.filter,
|
|
601
|
+
}
|
|
602
|
+
: newFilter;
|
|
589
603
|
}
|
|
590
604
|
const response = await this.client.soap.retrieveBulk(
|
|
591
605
|
'DataFolder',
|
|
@@ -599,8 +613,8 @@ class Folder extends MetadataType {
|
|
|
599
613
|
/**
|
|
600
614
|
* Gets executed after retreive of metadata type
|
|
601
615
|
*
|
|
602
|
-
* @param {
|
|
603
|
-
* @returns {
|
|
616
|
+
* @param {ListItem} metadata metadata mapped by their keyField
|
|
617
|
+
* @returns {ListItem} cloned metadata
|
|
604
618
|
*/
|
|
605
619
|
static postRetrieveTasks(metadata) {
|
|
606
620
|
return structuredClone(metadata);
|
|
@@ -608,12 +622,13 @@ class Folder extends MetadataType {
|
|
|
608
622
|
/**
|
|
609
623
|
* Helper for writing Metadata to disk, used for Retrieve and deploy
|
|
610
624
|
*
|
|
611
|
-
* @param {
|
|
625
|
+
* @param {ListMap} results metadata results from deploy
|
|
612
626
|
* @param {string} retrieveDir directory where metadata should be stored after deploy/retrieve
|
|
613
627
|
* @param {number | string} mid unused parameter
|
|
614
|
-
* @returns {Promise.<
|
|
628
|
+
* @returns {Promise.<ListMap>} Promise of saved metadata
|
|
615
629
|
*/
|
|
616
630
|
static async saveResults(results, retrieveDir, mid) {
|
|
631
|
+
/** @type {ListMap} */
|
|
617
632
|
const savedResults = {};
|
|
618
633
|
for (const metadataEntry in results) {
|
|
619
634
|
try {
|