{"_id":"@aurahelper/dependencies-manager","_rev":"4-44995e6b823bed8b71f62f619520162e","name":"@aurahelper/dependencies-manager","dist-tags":{"latest":"2.0.2"},"versions":{"1.0.0":{"name":"@aurahelper/dependencies-manager","productName":"Aura Helper Salesforce Dependencies Manager Module","displayName":"Aura Helper Framework Salesforce Dependencies Manager","version":"1.0.0","description":"Aura Helper Dependencies Manager Module is a module to handle, check or repair automatically the salesforce's project dependencies. This module analize your local project, and repair the metadata files accordinglly","main":"index.js","scripts":{"test":"jest --coverage"},"keywords":["aura-helper-framework","aura helper framework","Aura Helper Framework","ah-framework","AH Framework","Aura Helper","aura-helper","AuraHelper Library","AuraHelper Libraries","AH","ah","Salesforce","Salesforce Metadata","Salesforce Apps","Salesforce XML","Salesforce Tools","Apex","force.com","DevOps","devops","Aura Helper Salesforce Dependencies Manager","Dependencies Manager","ah dependencies manager","aura-helper-dependencies-manager","ah-dependencies-manager","ah-dependencies"],"author":{"name":"Juan José Longoria López","email":"juanjoselongoria@gmail.com","url":"Kanko"},"license":"GPLv3","repository":{"type":"git","url":"git+https://github.com/JJLongoria/aura-helper-dependencies-manager.git"},"bugs":{"url":"https://github.com/JJLongoria/aura-helper-dependencies-manager/issues","email":"juanjoselongoria@gmail.com"},"devDependencies":{"@types/jest":"^26.0.20","jest":"^26.6.3"},"dependencies":{"@aurahelper/core":"^1.0.0","@aurahelper/languages":"^1.0.0","@aurahelper/metadata-factory":"^1.0.0","@aurahelper/xml-compressor":"^1.0.0","@aurahelper/xml-definitions":"^1.0.0"},"gitHead":"77de1e080ae9049957185959d760bb1e7a1382f8","homepage":"https://github.com/JJLongoria/aura-helper-dependencies-manager#readme","_id":"@aurahelper/dependencies-manager@1.0.0","_nodeVersion":"12.15.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-dAwJ2rirNBQVWtwNXPgCfEcXarikPzdoDH5e6x1J6gsxzKcC4dhR0DeiKn5jKQLRakYbEaMUS4TjwNwd0Di3aQ==","shasum":"08f25a8dda08ff59ad6b6d5b8974c45ee3189500","tarball":"https://registry.npmjs.org/@aurahelper/dependencies-manager/-/dependencies-manager-1.0.0.tgz","fileCount":5,"unpackedSize":128799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnkzjcgc8R+7LsjBA4HRpR76csT/WA5m7+kLPJeC++ngIgVfg429NeuAl1v0aX/hb4rMY7V3h1sOVfrENDTe6iyfQ="}]},"_npmUser":{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"},"directories":{},"maintainers":[{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dependencies-manager_1.0.0_1631923004556_0.8242438554721299"},"_hasShrinkwrap":false},"2.0.0":{"name":"@aurahelper/dependencies-manager","productName":"Aura Helper Salesforce Dependencies Manager Module","displayName":"Aura Helper Framework Salesforce Dependencies Manager","version":"2.0.0","description":"Aura Helper Dependencies Manager Module is a module to handle, check or repair automatically the salesforce's project dependencies. This module analize your local project, and repair the metadata files accordinglly","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"compile":"tsc -p ./ ","lint":"eslint src --ext ts","lint-fix":"eslint src --ext ts --fix","watch":"tsc -watch -p ./","test":"jest --coverage --runInBand","test-watch":"jest --coverage --runInBand --watch"},"keywords":["aura-helper-framework","aura helper framework","Aura Helper Framework","ah-framework","AH Framework","Aura Helper","aura-helper","AuraHelper Library","AuraHelper Libraries","AH","ah","Salesforce","Salesforce Metadata","Salesforce Apps","Salesforce XML","Salesforce Tools","Apex","force.com","DevOps","devops","Aura Helper Salesforce Dependencies Manager","Dependencies Manager","ah dependencies manager","aura-helper-dependencies-manager","ah-dependencies-manager","ah-dependencies"],"author":{"name":"Juan José Longoria López","email":"juanjoselongoria@gmail.com","url":"Kanko"},"license":"GPLv3","repository":{"type":"git","url":"git+https://github.com/JJLongoria/aura-helper-dependencies-manager.git"},"bugs":{"url":"https://github.com/JJLongoria/aura-helper-dependencies-manager/issues","email":"juanjoselongoria@gmail.com"},"devDependencies":{"@types/jest":"^27.0.3","@types/node":"^12.12.47","@typescript-eslint/eslint-plugin":"^5.4.0","@typescript-eslint/parser":"^5.4.0","eslint":"^8.3.0","jest":"^27.4.3","ts-jest":"^27.0.7","typescript":"^3.9.6"},"dependencies":{"@aurahelper/core":"^2.0.0","@aurahelper/languages":"^2.0.0","@aurahelper/metadata-factory":"^2.0.0","@aurahelper/xml-compressor":"^2.0.0","@aurahelper/xml-definitions":"^2.0.0"},"gitHead":"f599a70b14b7bbba856322a75373403b18c8beab","homepage":"https://github.com/JJLongoria/aura-helper-dependencies-manager#readme","_id":"@aurahelper/dependencies-manager@2.0.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-v66vXaQJ1I2eDVylk5Ekkact5gYQeVoN0r8x0r38D54qwOaQbIl0DFu1a628n1JVYejtJ60EB+Mbq0BoeHKIqg==","shasum":"b73c5dc1a305f7f424fd1adb032e2b2c01da7de5","tarball":"https://registry.npmjs.org/@aurahelper/dependencies-manager/-/dependencies-manager-2.0.0.tgz","fileCount":9,"unpackedSize":179262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhtpUsCRA9TVsSAnZWagAADFgP/0W/04+p+z2dHmGx/zi9\ngHmtPWexFUy/ql3iOzk2jd1HUnJjhQVqql/W4502CV1znDDDS5ZBj14shYT3\nte3xnjBfcb/mpKXLGLW/zTvqCcwcYDJCAHFI4Ou9833iUeucnJtQAOfx18HD\nLrLYfxXBQKovtIRSeTZZ0bxdZrCFqC60rs466SfQ6j2yw3AzmOUKTo0SfaYz\nsx0RIkFfQWNL/cAfMRoparvM1jdP18AaZLZVaKmaDsFKCe9fUY4axTSp2dP3\nEeUZq3pa4LzxYV80obnX++9x2dI1iw9XpUT402vn6qZvV6Ze8Fultsi3iuLO\naAncUJtnPnXQy+ufzPcFMCzlDtzYFl5JJ1nKvBopm1l3A1nblrTo7XtODSly\noAsBDVtgPGr3TnyWsyBUT5bXJxK3Be/jjn54LdT8Wi2XsxkiQrIYRx/YclJf\nop5NcqUHJSck9/MbGpE0Z5BP5IS21ZMnZ2Q4gTKLUyRF6wJwqunh9qz/eAQf\nfmkc9zlGdO+LmBIwapkl2k9DrIbAOLPwxOXj6WypBSXiI8sjHY4vm4rQkoRm\n1CUfQAi5pSypVR3nYZwYOWkt/1N/RuDtOGmyQ6jkeOIC0IsB4Vd8Bm6/LTjc\n2e+RRp3ScbiigKc2B3q8iLxr5MdeZHqFirjHJYbujtorM/AxNhIs5GcRu2H4\niUdm\r\n=7J6j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkHzwJny3p0LxKnxYGS2We0BU8TUQjr1H9ta8CHGqoJgIhAPQXR/Uw7Zny70zJhFlrr0rHjuoBDr9kvOqUVRvk44uZ"}]},"_npmUser":{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"},"directories":{},"maintainers":[{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dependencies-manager_2.0.0_1639355692051_0.07966221609051072"},"_hasShrinkwrap":false},"2.0.1":{"name":"@aurahelper/dependencies-manager","productName":"Aura Helper Salesforce Dependencies Manager Module","displayName":"Aura Helper Framework Salesforce Dependencies Manager","version":"2.0.1","description":"Aura Helper Dependencies Manager Module is a module to handle, check or repair automatically the salesforce's project dependencies. This module analize your local project, and repair the metadata files accordinglly","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"compile":"tsc -p ./ ","lint":"eslint src --ext ts","lint-fix":"eslint src --ext ts --fix","watch":"tsc -watch -p ./","test":"jest --coverage --runInBand","test-watch":"jest --coverage --runInBand --watch"},"keywords":["aura-helper-framework","aura helper framework","Aura Helper Framework","ah-framework","AH Framework","Aura Helper","aura-helper","AuraHelper Library","AuraHelper Libraries","AH","ah","Salesforce","Salesforce Metadata","Salesforce Apps","Salesforce XML","Salesforce Tools","Apex","force.com","DevOps","devops","Aura Helper Salesforce Dependencies Manager","Dependencies Manager","ah dependencies manager","aura-helper-dependencies-manager","ah-dependencies-manager","ah-dependencies"],"author":{"name":"Juan José Longoria López","email":"juanjoselongoria@gmail.com","url":"Kanko"},"license":"GPLv3","repository":{"type":"git","url":"git+https://github.com/JJLongoria/aura-helper-dependencies-manager.git"},"bugs":{"url":"https://github.com/JJLongoria/aura-helper-dependencies-manager/issues","email":"juanjoselongoria@gmail.com"},"devDependencies":{"@types/jest":"^27.0.3","@types/node":"^12.12.47","@typescript-eslint/eslint-plugin":"^5.4.0","@typescript-eslint/parser":"^5.4.0","eslint":"^8.3.0","jest":"^27.4.3","ts-jest":"^27.0.7","typescript":"^3.9.6"},"dependencies":{"@aurahelper/core":"^2.1.0","@aurahelper/languages":"^2.0.0","@aurahelper/metadata-factory":"^2.1.0","@aurahelper/xml-compressor":"^2.0.1","@aurahelper/xml-definitions":"^2.0.1"},"gitHead":"7c47f235b379215bf3e1524beee3ea90e7e5226c","homepage":"https://github.com/JJLongoria/aura-helper-dependencies-manager#readme","_id":"@aurahelper/dependencies-manager@2.0.1","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-5XaIIsD8fXC4bbBUMS6rx+Iq6wMKUwivZmuvGKy695bQTStoK/sW8TQFPH4WiQ59TEtcxDY3FEfmKG7lAJ7R+Q==","shasum":"3789ade0106c1fdcb4d48c4287b942d65d9758d1","tarball":"https://registry.npmjs.org/@aurahelper/dependencies-manager/-/dependencies-manager-2.0.1.tgz","fileCount":9,"unpackedSize":179548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvL2jCRA9TVsSAnZWagAAYHoP/Ro/rq/lNZ9WmTrE/A1d\nWs0FzpzLnFS0YVvpPrzxs8fn0eNzFZJ53ZavcmTlgV+4tflKwcIcIREwmpae\ncNJzqBG3MmPUpfAOWoZ8yvn9u74lVGII5drQdRAbVnl42yvlcQWqXzagDksh\n8GrJrtNPNwO5b7JtfqLWuOMGT3rzl+p0nADF3bQmQr/nCf4NaWPQcmuy7Xh/\nGSyTEP0WfKGuPQRvgIDh067rs+ProU046UhtncHvaMOWhbj75dPPh2CvRxaX\nhTVad5DjiA7LWTZ12sSe0hCTeWBR/8vG2MOk6sGxFP4SSVkp4LxxYeH0TwUV\nPiyyv20Wk3skxux3sRu1kmVp6IYliDEiwN+GeqHXjxzDNi+/Rszd9D08VvbJ\nlE3VoGflIlvReVRH+JBlLNGPcPr+r6AMKTrKu+4UQfYEkHEz80LS3uO4NLzR\n2X56VQk/cpSDO4BAnTtgVexAGk/SECDz8N0zRU7Mn0UUr8wMKXYYsUHe++Zw\nmVeTfieUsSgl3xIQOwLalOBxCf/BGe4aAUpgXSPWqRNQvl9ZrIw2SeDiTwO5\nXBWwaN+o3FvOAvXo9N8VtISROuWfriKFaTsH7V62YSjmouKYS453MNICW/J0\nUdiSRGHBC6aHnkF1faPaZyVmJARo9rnlrNiEbPy79k/xYSC2PJW7YHOaPaVE\n1G+5\r\n=Jrmm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTgjw07XPLYIXevCU3Yvgzf7NFHW2QncquL3SDRBWSCwIgTMvx6MoHjCGik4mJqPMFHtI92HL4TYgvz5bCc7PFMQo="}]},"_npmUser":{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"},"directories":{},"maintainers":[{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dependencies-manager_2.0.1_1639759267442_0.00419142698166608"},"_hasShrinkwrap":false},"2.0.2":{"name":"@aurahelper/dependencies-manager","productName":"Aura Helper Salesforce Dependencies Manager Module","displayName":"Aura Helper Framework Salesforce Dependencies Manager","version":"2.0.2","description":"Aura Helper Dependencies Manager Module is a module to handle, check or repair automatically the salesforce's project dependencies. This module analize your local project, and repair the metadata files accordinglly","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"compile":"tsc -p ./ ","lint":"eslint src --ext ts","lint-fix":"eslint src --ext ts --fix","watch":"tsc -watch -p ./","test":"jest --coverage --runInBand","test-watch":"jest --coverage --runInBand --watch"},"keywords":["aura-helper-framework","aura helper framework","Aura Helper Framework","ah-framework","AH Framework","Aura Helper","aura-helper","AuraHelper Library","AuraHelper Libraries","AH","ah","Salesforce","Salesforce Metadata","Salesforce Apps","Salesforce XML","Salesforce Tools","Apex","force.com","DevOps","devops","Aura Helper Salesforce Dependencies Manager","Dependencies Manager","ah dependencies manager","aura-helper-dependencies-manager","ah-dependencies-manager","ah-dependencies"],"author":{"name":"Juan José Longoria López","email":"juanjoselongoria@gmail.com","url":"Kanko"},"license":"GPLv3","repository":{"type":"git","url":"git+https://github.com/JJLongoria/aura-helper-dependencies-manager.git"},"bugs":{"url":"https://github.com/JJLongoria/aura-helper-dependencies-manager/issues","email":"juanjoselongoria@gmail.com"},"devDependencies":{"@types/jest":"^27.0.3","@types/node":"^12.12.47","@typescript-eslint/eslint-plugin":"^5.4.0","@typescript-eslint/parser":"^5.4.0","eslint":"^8.3.0","jest":"^27.4.3","ts-jest":"^27.0.7","typescript":"^3.9.6"},"dependencies":{"@aurahelper/core":"^2.6.2","@aurahelper/languages":"^2.1.0","@aurahelper/metadata-factory":"^2.1.6","@aurahelper/xml-compressor":"^2.0.2","@aurahelper/xml-definitions":"^2.0.1"},"_id":"@aurahelper/dependencies-manager@2.0.2","gitHead":"a0f2a44c905a3e9ed740b2efefdb60a1ce040127","homepage":"https://github.com/JJLongoria/aura-helper-dependencies-manager#readme","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-20XeBrML/XP/7Hw8yOpvpqu6bW+b18Ux3ZbaAG+BtU4wbiFW10HuOQjWBgraKiPBVGja2SGlWw7cI9WD86sNVQ==","shasum":"89d4061ce4276df3da81514cb78056c255815bf0","tarball":"https://registry.npmjs.org/@aurahelper/dependencies-manager/-/dependencies-manager-2.0.2.tgz","fileCount":9,"unpackedSize":179548,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDatP2rO5voaC5hMKAbDBboYDwLUB3XPbS+N9ZuQjutUgIhAOi2HsfDMcitSgtIq442YovqJ4nZBLD2KUY+DfOq0YuG"}]},"_npmUser":{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"},"directories":{},"maintainers":[{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dependencies-manager_2.0.2_1698872523074_0.9707732162589306"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-17T23:56:44.501Z","1.0.0":"2021-09-17T23:56:44.713Z","modified":"2023-11-01T21:02:03.760Z","2.0.0":"2021-12-13T00:34:52.212Z","2.0.1":"2021-12-17T16:41:07.577Z","2.0.2":"2023-11-01T21:02:03.524Z"},"maintainers":[{"name":"jjlongoria","email":"juanjoselongoria@gmail.com"}],"description":"Aura Helper Dependencies Manager Module is a module to handle, check or repair automatically the salesforce's project dependencies. This module analize your local project, and repair the metadata files accordinglly","homepage":"https://github.com/JJLongoria/aura-helper-dependencies-manager#readme","keywords":["aura-helper-framework","aura helper framework","Aura Helper Framework","ah-framework","AH Framework","Aura Helper","aura-helper","AuraHelper Library","AuraHelper Libraries","AH","ah","Salesforce","Salesforce Metadata","Salesforce Apps","Salesforce XML","Salesforce Tools","Apex","force.com","DevOps","devops","Aura Helper Salesforce Dependencies Manager","Dependencies Manager","ah dependencies manager","aura-helper-dependencies-manager","ah-dependencies-manager","ah-dependencies"],"repository":{"type":"git","url":"git+https://github.com/JJLongoria/aura-helper-dependencies-manager.git"},"author":{"name":"Juan José Longoria López","email":"juanjoselongoria@gmail.com","url":"Kanko"},"bugs":{"url":"https://github.com/JJLongoria/aura-helper-dependencies-manager/issues","email":"juanjoselongoria@gmail.com"},"license":"GPLv3","readme":"# **Aura Helper Dependencies Manager Module**\r\n\r\n[![Version](https://img.shields.io/npm/v/@aurahelper/dependencies-manager?logo=npm)](https://www.npmjs.com/package/@aurahelper/dependencies-manager)\r\n[![Total Downloads](https://img.shields.io/npm/dt/@aurahelper/dependencies-manager?logo=npm)](https://www.npmjs.com/package/@aurahelper/dependencies-manager)\r\n[![Downloads/Month](https://img.shields.io/npm/dm/@aurahelper/dependencies-manager?logo=npm)](https://www.npmjs.com/package/@aurahelper/dependencies-manager)\r\n[![Issues](https://img.shields.io/github/issues/jjlongoria/aura-helper-dependencies-manager)](https://github.com/JJLongoria/aura-helper-dependencies-manager/issues)\r\n[![Known Vulnerabilities](https://snyk.io/test/github/JJLongoria/aura-helper-dependencies-manager/badge.svg)](https://snyk.io/test/github/JJLongoria/aura-helper-dependencies-manager)\r\n[![Code Size](https://img.shields.io/github/languages/code-size/jjlongoria/aura-helper-dependencies-manager)](https://github.com/JJLongoria/aura-helper-dependencies-manager)\r\n[![License](https://img.shields.io/github/license/jjlongoria/aura-helper-dependencies-manager?logo=github)](https://github.com/JJLongoria/aura-helper-dependencies-manager/blob/master/LICENSE)\r\n\r\nModule to check and repair Metadata Dependencies on Salesforce's project files. You can repair your dependencies with one simple method or check if have errors. Also you can use a .ahignore.json file (see [Ignore File](#ignore-file) section) to exclude the specified metadata types when check dependencies error and compress or not the affected XML files. \r\n\r\n---\r\n\r\n## *Table of Contents*\r\n\r\n- [**DependeciesManager Class**](#dependenciesmanager-class)\r\n\r\n- [**Repair Response**](#repair-response)\r\n  \r\n- [**Only Check Response**](#only-check-response)\r\n  \r\n- [**Metadata JSON Format**](#metadata-json-format)\r\n\r\n- [**Ignore File**](#ignore-file)\r\n\r\n---\r\n\r\n# [**DependeciesManager Class**](#dependenciesmanager-class)\r\nClass to check dependencies errors on files or repair it automatically. This class analize all metadata types and files to check if any file or type does not exists on the local project to repair it from the files where exists.\r\n\r\nAll Dependecies Manager methods return a Promise with the associated data to the processes.  \r\n\r\n#### **Class Members**\r\n- [**Fields**](#connection-class-fields)\r\n\r\n- [**Constructors**](#connection-class-constructor)\r\n\r\n- [**Methods**](#connection-class-methods)\r\n\r\n</br>\r\n\r\n# [**Fields**](#connection-class-fields)\r\nThe fields that start with _ are for internal use only (Does not modify this fields to a correct connection work). To the rest of fields, setter methods are recommended instead modify fields.\r\n\r\n### [**projectFolder**](#connection-class-fields-projectfolder)\r\nPath to the project root folder\r\n- `string`\r\n\r\n### [**metadataDetails**](#connection-class-fields-metadatadetails)\r\nList of metadata details to repair dependencies.\r\n- `MetadataDetail[]`\r\n\r\n### [**ignoreFile**](#connection-class-fields-ignorefile)\r\nPath to the ignore file\r\n- `string`\r\n\r\n### [**typesToRepair**](#connection-class-fields-typestorepair)\r\nJSON Metadata Object or JSON Metadata File path with the objects to repair (if you don't want to repair all Metadata Types)\r\n- `string` | `{ [key: string]: MetadataType }` \r\n\r\n### [**compress**](#connection-class-fields-compress)\r\nTrue to compress the XML Files, false in otherwise. If undefined or not pass parameter, also set to true.\r\n- `boolean`\r\n\r\n### [**sortOrder**](#connection-class-fields-sortorder)\r\nSort order to order the XML elements. Values: simpleFirst, complexFirst, alphabetAsc or alphabetDesc. (alphabetDesc by default)\r\n- `string`\r\n\r\n  \r\n</br>\r\n\r\n# [**Constructors**](#connection-class-constructors)\r\nThe Connection class has only one constructor to create a connection\r\n\r\n## [**constructor(projectFolder, metadataDetails)**](#connection-class-constructors-construct)\r\nConstructor to create a new connection object. All parameters are optional and you can use the setters methods to set the values when you want.\r\n\r\n### **Parameters:**\r\n  - **projectFolder**: Path to the project root folder \r\n    - `string`\r\n  - **metadataDetails**: List of metadata details \r\n    - `MetadataDetail[]`\r\n\r\n</br>\r\n\r\n# [**Methods**](#dependenciesmanager-class-methods)\r\n\r\n  - [**onPrepare(callback)**](#onpreparecallback)\r\n\r\n    Method to handle the event when preparing execution of repair or check dependencies\r\n\r\n  - [**onStartType(callback)**](#onstarttypecallback)\r\n\r\n    Method to handle the event before start process Metadata Type\r\n\r\n  - [**onStartObject(callback)**](#onstartobjectcallback)\r\n\r\n    Method to handle the event before start process Metadata Object\r\n\r\n  - [**onStartItem(callback)**](#onstartitemcallback)\r\n\r\n    Method to handle the event before start process Metadata Item\r\n\r\n  - [**onEndType(callback)**](#onendtypecallback)\r\n\r\n    Method to handle the event before after process Metadata Type\r\n\r\n  - [**onEndObject(callback)**](#onendobjectcallback)\r\n\r\n    Method to handle the event before after process Metadata Object\r\n\r\n  - [**onEndItem(callback)**](#onenditemcallback)\r\n\r\n    Method to handle the event before after process Metadata Item\r\n\r\n  - [**onProcess(callback)**](#onprocesscallback)\r\n\r\n    Method to handle the event before start processing results on some processes\r\n\r\n  - [**onStartErrors(callback)**](#onstarterrorscallback)\r\n\r\n    Method to handle the event before start process errors on metadata type\r\n\r\n  - [**onEndErrors(callback)**](#onenderrorscallback)\r\n\r\n    hod to handle the event after process errors on metadata type\r\n\r\n  - [**onFileError(callback)**](#onfileerrorcallback)\r\n\r\n    Method to handle the event before start processing the errors encuntered on file\r\n\r\n  - [**onCompressFile(callback)**](#oncompressfilecallback)\r\n   \r\n    Method to handle the event before start compress XML affected files \r\n\r\n  - [**setIgnoreFile(ignoreFile)**](#setignorefileignorefile)\r\n\r\n    Method to set the ignore file to ignore the metadata types on repair\r\n\r\n  - [**setTypesToRepair(typesToRepair)**](#settypestorepairtypestorepair)\r\n\r\n    Method to set the Metadata JSON Object or Metadata JSON file path to process\r\n\r\n  - [**setCompress(compress)**](#setcompresscompress)\r\n\r\n    Method to set if compress the affected XML Files when repair dependencies\r\n\r\n  - [**setSortOrder(sortOrder)**](#setsortordersortorder)\r\n\r\n    Method to set the sort order for the XML Elements when compress the files\r\n\r\n  - [**sortSimpleFirst()**](#sortsimplefirst)\r\n\r\n    Method to set Simple XML Elements first as sort order (simpleFirst)\r\n\r\n  - [**sortComplexFirst()**](#sortcomplexfirst)\r\n\r\n    Method to set Complex XML Elements first as sort order (complexFirst)\r\n\r\n  - [**sortAlphabetAsc()**](#sortalphabetasc)\r\n\r\n    Method to set Alphabet Asc as sort order (alphabetAsc)\r\n\r\n  - [**sortAlphabetDesc()**](#sortalphabetdesc)\r\n\r\n    Method to set Alphabet Desc as sort order (alphabetDesc)\r\n\r\n  - [**getSupportedTypes()**](#getsupportedtypes)\r\n\r\n    Method to get a list with all supported types to repair or check dependencies\r\n\r\n  - [**repairDependencies()**](#repairdependencies)\r\n\r\n    Method to repair any Salesforce project dependencies to fix possible deploy errors.\r\n\r\n  - [**checkErrors()**](#checkerrors)\r\n\r\n    Method to check errors on any Salesforce project dependencies to fix possible deploy errors.\r\n\r\n---\r\n\r\n## [**onPrepare(callback)**](#onpreparecallback)\r\nMethod to handle the event when preparing execution of repair or check dependencies\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to call when manager is on prepare\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on prepare stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onPrepare((status) => {\r\n      console.log('Handling progress on prepare');\r\n    }));\r\n```\r\n---\r\n\r\n## [**onStartType(callback)**](#onstarttypecallback)\r\nMethod to handle the event before start process Metadata Type\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress before start process Metadata Type\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on start type stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onStartType((status) => {\r\n      console.log('Handling progress on start type');\r\n      console.log('MetadataType => ' + status.entityType);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onStartObject(callback)**](#onstartobjectcallback)\r\nMethod to handle the event before start process Metadata Object\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress before start process Metadata Object\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on start object stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onStartObject((status) => {\r\n      console.log('Handling progress on start object');\r\n      console.log('MetadataType => ' + status.entityType);\r\n      console.log('MetadataObject => ' + status.entityObject);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onStartItem(callback)**](#onstartitemcallback)\r\nMethod to handle the event before start process Metadata Item\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress before start process Metadata Item\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on start item stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onStartItem((status) => {\r\n      console.log('Handling progress on start item');\r\n      console.log('MetadataType => ' + status.entityType);\r\n      console.log('MetadataObject => ' + status.entityObject);\r\n      console.log('MetadataItem => ' + status.entityItem);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onEndType(callback)**](#onendtypecallback)\r\nMethod to handle the event before after process Metadata Type\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress after process Metadata Type\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on end type stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onEndType((status) => {\r\n      console.log('Handling progress on end type');\r\n      console.log('MetadataType => ' + status.entityType);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onEndObject(callback)**](#onendobjectcallback)\r\nMethod to handle the event before after process Metadata Object\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress after process Metadata Object\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on end object stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onEndObject((status) => {\r\n      console.log('Handling progress on end object');\r\n      console.log('MetadataType => ' + status.entityType);\r\n      console.log('MetadataObject => ' + status.entityObject);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onEndItem(callback)**](#onenditemcallback)\r\nMethod to handle the event before after process Metadata Item\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress after process Metadata Item\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on end item stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onEndObject((status) => {\r\n      console.log('Handling progress on end item');\r\n      console.log('MetadataType => ' + status.entityType);\r\n      console.log('MetadataObject => ' + status.entityObject);\r\n      console.log('MetadataItem => ' + status.entityItem);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onProcess(callback)**](#onprocesscallback)\r\nMethod to handle the event before start processing results on some processes\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress when manager is processing results\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on process stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onProcess((status) => {\r\n      console.log('Handling progress on process');\r\n    }));\r\n```\r\n---\r\n\r\n## [**onStartErrors(callback)**](#onstarterrorscallback)\r\nMethod to handle the event before start process errors on metadata type\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress before start process errors\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on start errors on Metadata Type stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onStartErrors((status) => {\r\n      console.log('Handling progress on start errors');\r\n      console.log('MetadataType => ' + status.entityType);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onEndErrors(callback)**](#onenderrorscallback)\r\nMethod to handle the event after process errors on metadata type\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress after process errors\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on end errors on Metadata Type stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onEndErrors((status) => {\r\n      console.log('Handling progress on end errors');\r\n      console.log('MetadataType => ' + status.entityType);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onFileError(callback)**](#onfilerrorcallback)\r\nMethod to handle the event before start processing the errors encuntered on file\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress before start processing the errors encuntered on file\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on start file error stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onEndErrors((status) => {\r\n      console.log('Handling progress on end errors');\r\n      console.log('MetadataType => ' + status.entityType);\r\n      console.log('MetadataObject => ' + status.entityObject);\r\n      console.log('MetadataItem => ' + status.entityItem);\r\n      console.log('File => ' + status.data);\r\n    }));\r\n```\r\n---\r\n\r\n## [**onCompressFile(callback)**](#oncompressfilecallback)\r\nMethod to handle the event before start compress XML File on some processes\r\n\r\n### **Parameters:**\r\n  - **callback**: Callback function to handle progress when start compress\r\n    - `Function`\r\n\r\n### **Return:**\r\nReturns the DependenciesManager object\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Handling progress on compress file stage**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n\r\n    dependenciesManager.onCompressFile((status) => {\r\n      console.log('Handling progress on end errors');\r\n      console.log('MetadataType => ' + status.entityType);\r\n      console.log('MetadataObject => ' + status.entityObject);\r\n      console.log('MetadataItem => ' + status.entityItem);\r\n      console.log('File => ' + status.data);\r\n    }));\r\n```\r\n---\r\n\r\n## [**setIgnoreFile(ignoreFile)**](#setignorefileignorefile)\r\nMethod to set the ignore file to ignore the metadata types  \r\n\r\n### **Parameters:**\r\n  - **ignorefile**: Path to the ignore file\r\n    - `string`\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Set the ignore file**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setIgnoreFile('path/to/the/ignore/file.json');\r\n```\r\n---\r\n\r\n## [**setTypesToRepair(typesToRepair)**](#settypestorepairtypestorepair)\r\nMethod to set the Metadata Name or Names to ignore\r\n\r\n### **Parameters:**\r\n  - **typesToIgnore**: List with the Metadata Type API Names to ignore. This parameter is used to ignore only the specified metadata (also must be in ignore file) and avoid ignore all metadata types specified on the file.\r\n    - `string` | `{ [key: string]: MetadataType }`\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Set the types to repair**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setTypesToRepair({\r\n        CustomObject: {\r\n            checked: true,\r\n            childs: {},\r\n            name: 'CustomObject'\r\n        }\r\n    });\r\n```\r\n---\r\n\r\n## [**setCompress(compress)**](#setcompresscompress)\r\nTrue to compress the XML Files, false in otherwise. If undefined or not pass parameter, also set to true.\r\n\r\n### **Parameters:**\r\n  - **compress**: True to compress the XML Files, false in otherwise\r\n    - `boolean`\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Set compress affected XML Files**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setCompress(true);\r\n```\r\n---\r\n\r\n## [**setSortOrder(sortOrder)**](#setsortordersortorder)\r\nMethod to set the sort order value to sort the XML Elements when compress\r\n\r\n### **Parameters:**\r\n  - **sortOrder**: Sort order to order the XML elements. Values: simpleFirst, complexFirst, alphabetAsc or alphabetDesc. (alphabetDesc by default).\r\n    - `string`\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n### **Examples:**\r\n**Set Sort order to order XML Elements**\r\n\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    import { SORT_ORDER } from '@aurahelper/xml-compressor';\r\n\r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setSortOrder(SORT_ORDER.SIMPLE_FIRST);\r\n```\r\n---\r\n\r\n## [**sortSimpleFirst()**](#sortsimplefirst)\r\nMethod to set Simple XML Elements first as sort order (simpleFirst)\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n\r\n### **Examples:**\r\n**Set Simple first sort order to order XML Elements**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    \r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setIgnoreFile('path/to/the/ignore/file.json').sortSimpleFirst();\r\n```\r\n---\r\n\r\n## [**sortComplexFirst()**](#sortcomplexfirst)\r\nMethod to set Complex XML Elements first as sort order (complexFirst)\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n\r\n### **Examples:**\r\n**Set Complex first sort order to order XML Elements**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    \r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setIgnoreFile('path/to/the/ignore/file.json').sortComplexFirst();\r\n```\r\n---\r\n\r\n## [**sortAlphabetAsc()**](#sortalphabetasc)\r\nMethod to set Alphabet Asc as sort order (alphabetAsc)\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n\r\n### **Examples:**\r\n**Set Alphabet asc sort order to order XML Elements**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    \r\n    const dependenciesManager = new DependenciesManager();\r\n    dependenciesManager.setIgnoreFile('path/to/the/ignore/file.json').sortAlphabetAsc();\r\n```\r\n---\r\n\r\n## [**sortAlphabetDesc()**](#sortalphabetdesc)\r\nMethod to set Alphabet Desc as sort order (alphabetDesc)\r\n\r\n### **Return:**\r\nReturn the DependenciesManager object instance\r\n- `DependenciesManager`\r\n\r\n\r\n### **Examples:**\r\n**Set Alphabet desc sort order to order XML Elements**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    \r\n    const dependenciesManager = new DependenciesManager();  \r\n    dependenciesManager.setIgnoreFile('path/to/the/ignore/file.json').sortAlphabetDesc();\r\n```\r\n---\r\n\r\n## [**getSupportedTypes()**](#getsupportedtypes)\r\nMethod to get a list with all supported types to repair or check dependencies\r\n\r\n### **Return:**\r\nReturn a list with the supported Metadata Type API Names \r\n- `string[]`\r\n\r\n### **Examples:**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n\r\n    const supportedTypes = DependenciesManager.getSupportedTypes();\r\n    console.log(supportedTypes);\r\n    // ['CustomApplication', 'PermissionSet'...]\r\n```\r\n---\r\n\r\n## [**repairDependencies()**](#repairdependencies)\r\nMethod to repair any Salesforce project dependencies to fix possible deploy errors.\r\n\r\n### **Return:**\r\nReturn an object with the repaired errors data. See [Repair Response](#repair-response) section to understand the response.\r\n- `{ [key: string]: DependenciesRepairResponse }` | `undefined`\r\n\r\n### **Throws:**\r\nThis method can throw the next exceptions:\r\n\r\n- **`WrongDirectoryPathException`**: If the project path is not a String or can't convert to absolute path\r\n- **`DirectoryNotFoundException`**: If the project path not exists or not have access to it\r\n- **`InvalidDirectoryPathException`**: If the project path is not a directory\r\n- **`WrongFilePathException`**: If the ignore file or types file is not a String or can't convert to absolute path\r\n- **`FileNotFoundException`**: If the ignore file or types file not exists or not have access to it\r\n- **`InvalidFilePathException`**: If the ignore file or types file is not a file\r\n- **`WrongFormatException`**: If types is not a Metadata JSON file or Metadata JSON Object or ignore file is not a JSON file\r\n\r\n### **Examples:**\r\n**Repair all Dependencies**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    import { Connection } from '@aurahelper/connector';\r\n\r\n    // Get Metadata Details from your org using @ah/connector\r\n    const connection = new Connection('MyOrg', '50');\r\n    connection.setUsernameOrAlias('MyOrg');\r\n    connection.setSingleThread();\r\n    connection.listMetadataTypes().then((metadataDetails) => {\r\n        const projectRoot = 'path/to/your/project';\r\n        const manager = new DependenciesManager(projectRoot, metadataDetails);\r\n        const errors = manager.repairDependencies();\r\n        if(errors != undefinded){\r\n            // errors have the affected elements with errors on dependencies\r\n        }\r\n    }).catch((error) => {\r\n        // Handle errors\r\n    });\r\n```\r\n**Repair all Dependencies and compress**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    import { Connection } from '@aurahelper/connector';\r\n    import { SORT_ORDER } from '@aurahelper/xml-compressor';\r\n\r\n    // Get Metadata Details from your org using @ah/connector\r\n    const connection = new Connection('MyOrg', '50');\r\n    connection.setUsernameOrAlias('MyOrg');\r\n    connection.setSingleThread();\r\n    connection.listMetadataTypes().then((metadataDetails) => {\r\n        const projectRoot = 'path/to/your/project';\r\n\r\n        const manager = new DependenciesManager(projectRoot, metadataDetails);\r\n        manager.setCompress();\r\n        manager.sortSimpleFirst();\r\n        const errors = manager.repairDependencies();\r\n        if(errors != undefinded){\r\n            // errors have the affected elements with errors on dependencies\r\n        }\r\n    }).catch((error) => {\r\n        // Handle errors\r\n    });\r\n```\r\n**Repair specified types**\r\nYou can choose specified Metadata Types (and childs) to repair. See [Metadata JSON Format](#metadata-json-format) section to understand the JSON Metadata Format\r\n\r\n```javascript\r\n    import { MetadataTypes, MetadataType, MetadataObject, MetadataItem } = from '@aurahelper/core';\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    import { Connection } from '@aurahelper/connector';\r\n\r\n\r\n    // Get Metadata Details from your org using @ah/connector\r\n    const connection = new Connection('MyOrg', '50');\r\n    connection.setUsernameOrAlias('MyOrg');\r\n    connection.setSingleThread();\r\n    connection.listMetadataTypes().then((metadataDetails) => {\r\n\r\n        const projectRoot = 'path/to/your/project';\r\n        const types: {};\r\n        types[MetadataTypes.CUSTOM_APPLICATION] = new MetadataType(MetadataTypes.CUSTOM_APPLICATION, true); // set to true Metadata Type to ignore all custom application\r\n        types[MetadataTypes.PERMISSION_SET] = new MetadataType(MetadataTypes.PERMISSION_SET, false);    // set to false Metadata Type to ignore some permission sets \r\n        types[MetadataTypes.PERMISSION_SET].addChild(new MetadataObject('PermissionSet1', true));   // Set to true to repair PermissionSet1\r\n        types[MetadataTypes.PERMISSION_SET].addChild(new MetadataObject('PermissionSet2', true));  // Set to true to repair PermissionSet2\r\n        types[MetadataTypes.PERMISSION_SET].addChild(new MetadataObject('PermissionSet3', false));  // Set to false to not repair PermissionSet3\r\n\r\n        const manager = new DependenciesManager(projectRoot, metadataDetails);\r\n        manager.setTypesToRepair(types);\r\n        const errors = manager.repairDependencies();\r\n        if(errors != undefinded){\r\n            // errors have the affected elements with errors on dependencies\r\n        }\r\n    }).catch((error) => {\r\n        // handle errors\r\n    });\r\n```\r\n**Monitorize Progress**\r\n\r\nYou can monitorize the progress for every file and metadata type with the progress calback. The progress callback return a ProgressStatus object with the progress data and some util methods to handle the progress\r\n\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    import { Connection } from '@aurahelper/connector';\r\n    import { SORT_ORDER } from '@aurahelper/xml-compressor';\r\n\r\n    // Get Metadata Details from your org using @ah/connector\r\n    const connection = new Connection('MyOrg', '50');\r\n    connection.setUsernameOrAlias('MyOrg');\r\n    connection.setSingleThread();\r\n    connection.listMetadataTypes().then((metadataDetails) => {\r\n        \r\n        // Now, you can repair project dependencies\r\n        const projectRoot = 'path/to/your/project';\r\n        const options = {\r\n            ignoreFile: 'path/to/the/ignore/file',\r\n            compress: true,\r\n            sortOrder: SORT_ORDER.SIMPLE_FIRST      // Yoy can choose a sort order for compression\r\n        };\r\n        const manager = new DependenciesManager(projectRoot, metadataDetails);\r\n        manager.setIgnoreFile('path/to/the/ignore/file').setCompress().sortSimpleFirst();\r\n\r\n        manager.onPrepare(() => {\r\n            console.log('Handle progress on prepare');\r\n        });\r\n\r\n        manager.onStartType(() => {\r\n            console.log('Handle progress on start type');\r\n        });\r\n\r\n        manager.onStartObject(() => {\r\n            console.log('Handle progress on start object');\r\n        });\r\n\r\n        ...\r\n        // Set any of event handlers that you need\r\n\r\n        const errors = manager.repairDependencies();\r\n        if(errors != undefinded){\r\n            // errors have the affected elements with errors on dependencies\r\n        }\r\n    }).catch((error) => {\r\n        // handle errors\r\n    });\r\n```\r\n---\r\n\r\n## [**checkErrors()**](#checkerrors)\r\nMethod to check errors on any Salesforce project dependencies to fix possible deploy errors.\r\n\r\n### **Return:**\r\nReturn an object with the errors data. See [Only Check Response](#only-check-response) section to understand the response.\r\n- `{ [key: string]: DependenciesCheckResponse[] }` | `undefined`\r\n\r\n### **Throws:**\r\nThis method can throw the next exceptions:\r\n\r\n- **`WrongDirectoryPathException`**: If the project path is not a String or can't convert to absolute path\r\n- **`DirectoryNotFoundException`**: If the project path not exists or not have access to it\r\n- **`InvalidDirectoryPathException`**: If the project path is not a directory\r\n- **`WrongFilePathException`**: If the ignore file or types file is not a String or can't convert to absolute path\r\n- **`FileNotFoundException`**: If the ignore file or types file not exists or not have access to it\r\n- **`InvalidFilePathException`**: If the ignore file or types file is not a file\r\n- **`WrongFormatException`**: If types is not a Metadata JSON file or Metadata JSON Object or ignore file is not a JSON file\r\n\r\n### **Examples:**\r\n**Check errors only**\r\n```javascript\r\n    import { DependenciesManager } from '@aurahelper/xml-definitions';\r\n    import { Connection } from '@aurahelper/connector';\r\n\r\n    // Get Metadata Details from your org using @ah/connector\r\n    const connection = new Connection('MyOrg', '50');\r\n    connection.setUsernameOrAlias('MyOrg');\r\n    connection.setSingleThread();\r\n    connection.listMetadataTypes().then((metadataDetails) => {\r\n        \r\n        // Now, you can repair project dependencies\r\n        const projectRoot = 'path/to/your/project';\r\n\r\n        const manager = new DependenciesManager(projectRoot, metadataDetails);\r\n\r\n        manager.onPrepare(() => {\r\n            console.log('Handle progress on prepare');\r\n        });\r\n\r\n        manager.onStartType(() => {\r\n            console.log('Handle progress on start type');\r\n        });\r\n\r\n        manager.onStartObject(() => {\r\n            console.log('Handle progress on start object');\r\n        });\r\n\r\n        ...\r\n        // Set any of event handlers that you need\r\n\r\n        const errors = manager.checkErrors();\r\n        if(errors != undefinded){\r\n            // errors have the affected elements with errors on dependencies\r\n        }\r\n    }).catch((error) => {\r\n        // handle errors\r\n    });\r\n```\r\n# [**Repair Response**](#repair-response)\r\nWhen you repair dependencies with any option (compress or not, repair specified types...) the response error has the next structure:\r\n```json\r\n    {\r\n        \"MetadataTypeName\": {\r\n            \"metadataType\": \"MetadataTypeName\"\r\n            \"errors\": [\r\n                {\r\n                    \"file\": \"path/to/file\"\r\n                    \"errors\": [\r\n                        {\r\n                            \"elementPath\": \"xmlSuperParentTag>xmlParentTag>xmlTag\",\r\n                            \"value\": \"error value\",\r\n                            \"metadataType\": \"error Metadata Type\",\r\n                            \"metadataObject\": \"error Metadata Object\",\r\n                            \"metadataItem\": \"error Metadata Item\",\r\n                            \"xmlElement\": {\r\n                                // xml Element error data\r\n                            }\r\n                        },\r\n                        {\r\n                            ...\r\n                        },\r\n                        {\r\n                            ...\r\n                        }\r\n                    ]\r\n                },\r\n                {\r\n                    ...\r\n                },\r\n                {\r\n                    ...\r\n                }\r\n            ]\r\n        }\r\n    }\r\n```\r\n### **Example**:\r\n\r\n```json\r\n    {\r\n        \"CustomApplication\": {\r\n            \"metadataType\": \"CustomApplication\"\r\n            \"errors\": [\r\n                {\r\n                    \"file\": \"..../force-app/main/default/applications/customApplicationExample.app-meta.xml\"\r\n                    \"errors\": [\r\n                        {\r\n                            \"elementPath\": \"actionOverrides>content\",\r\n                            \"value\": \"FlexiPageExample\",\r\n                            \"metadataType\": \"FlexiPage\",\r\n                            \"metadataObject\": \"FlexiPageExample\",\r\n                            \"xmlElement\": {\r\n                                \"actionName\": \"View\",\r\n                                \"comment\": \"Action override description\",\r\n                                \"content\": \"FlexiPageExample\",\r\n                                \"formFactor\": \"Large\",\r\n                                \"pageOrSobjectType\": \"Account\",\r\n                                \"skipRecordTypeSelect\": false,\r\n                                \"type\": \"Flexipage\"\r\n                            }\r\n                        },\r\n                        {\r\n                            ...\r\n                        },\r\n                        {\r\n                            ...\r\n                        }\r\n                    ]\r\n                },\r\n                {\r\n                    ...\r\n                },\r\n                {\r\n                    ...\r\n                }\r\n            ]\r\n        },\r\n        \"PermissionSet\": {\r\n            \"metadataType\": \"PermissionSet\"\r\n            \"errors\": [\r\n                {\r\n                    \"file\": \"..../force-app/main/default/permissionsets/permissionSetExample.app-meta.xml\"\r\n                    \"errors\": [\r\n                        {\r\n                            \"elementPath\": \"fieldPermissions>field\",\r\n                            \"value\": \"Account.custom_field__c\",\r\n                            \"metadataType\": \"CustomField\",\r\n                            \"metadataObject\": \"Account\",\r\n                            \"metadataItem\": \"custom_field__c\",\r\n                            \"xmlElement\": {\r\n                                \"editable\": false,\r\n                                \"field\": \"Account.custom_field__c\",\r\n                                \"readable\": false\r\n                            }\r\n                        },\r\n                        {\r\n                            ...\r\n                        },\r\n                        {\r\n                            ...\r\n                        }\r\n                    ]\r\n                },\r\n                {\r\n                    ...\r\n                },\r\n                {\r\n                    ...\r\n                }\r\n            ]\r\n        }\r\n    }\r\n```\r\n\r\n# [**Only Check Response**](#only-check-response)\r\nWhen you only check dependencies errors the response error has the next structure:\r\n\r\n```json\r\n    {\r\n        \"MetadataTypeName\": [\r\n            {\r\n                \"object\": \"MetadataObject\",\r\n                \"item\": \"MetadataItem\",\r\n                \"line\": 16,\r\n                \"startColumn\": 146,\r\n                \"endColumn\": 166,\r\n                \"message\": \"MetadataTypeName named MetadataObject.MetadataItem does not exists\",\r\n                \"severity\": \"Warning\",\r\n                \"file\": \"/path/to/file\"\r\n            },\r\n            {\r\n                \"object\": \"MetadataObject\",\r\n                \"item\": \"MetadataItem\",\r\n                \"line\": 17,\r\n                \"startColumn\": 146,\r\n                \"endColumn\": 166,\r\n                \"message\": \"MetadataTypeName named MetadataObject.MetadataItem does not exists\",\r\n                \"severity\": \"Warning\",\r\n                \"file\": \"/path/to/file\"\r\n            },\r\n        ],\r\n        \"MetadataTypeName\": [\r\n            {\r\n                ...\r\n            },\r\n            {\r\n                ...\r\n            }\r\n        ]\r\n    }\r\n```\r\n\r\n### **Example**:\r\n\r\n```json\r\n    {\r\n        \"CustomApplication\": [\r\n            {\r\n                \"object\": \"FlexiPageExample\",\r\n                \"line\": 16,\r\n                \"startColumn\": 146,\r\n                \"endColumn\": 166,\r\n                \"message\": \"FlexiPage named FlexiPageExample does not exists\",\r\n                \"severity\": \"Warning\",\r\n                \"file\": \"..../force-app/main/default/applications/customApplicationExample.app-meta.xml\"\r\n            },\r\n            {\r\n                \"object\": \"FlexiPageExample\",\r\n                \"line\": 17,\r\n                \"startColumn\": 146,\r\n                \"endColumn\": 166,\r\n                \"message\": \"FlexiPage named FlexiPageExample does not exists\",\r\n                \"severity\": \"Warning\",\r\n                \"file\": \"..../force-app/main/default/applications/customApplicationExample.app-meta.xml\"\r\n            },\r\n        ],\r\n        \"PermissionSet\": [\r\n            {\r\n                \"object\": \"Account\",\r\n                \"item\": \"custom_field__c\",\r\n                \"line\": 1771,\r\n                \"startColumn\": 56,\r\n                \"endColumn\": 85,\r\n                \"message\": \"CustomField named Account.custom_field__c does not exists\",\r\n                \"severity\": \"Warning\",\r\n                \"file\": \"..../force-app/main/default/permissionsets/permissionSetExample.permissionset-meta.xml\"\r\n            },\r\n            {\r\n                \"object\": \"Account\",\r\n                \"item\": \"custom_field2__c\",\r\n                \"line\": 1772,\r\n                \"startColumn\": 56,\r\n                \"endColumn\": 85,\r\n                \"message\": \"CustomField named Account.custom_field2__c does not exists\",\r\n                \"severity\": \"Warning\",\r\n                \"file\": \"..../force-app/main/default/permissionsets/permissionSetExample.permissionset-meta.xml\"\r\n            },\r\n        ]\r\n    }\r\n```\r\n\r\n# [**Metadata JSON Format**](#metadata-json-format)\r\n\r\nThe Metadata JSON Format used by Aura Helper Framework and modules have the next structure. Some fields are required and the datatypes checked to ensure the correct file structure. \r\n\r\n```json\r\n    {\r\n        \"MetadataAPIName\": {\r\n            \"name\": \"MetadataAPIName\",                                  // Required (String). Contains the Metadata Type API Name (like object Key)\r\n            \"checked\": false,                                           // Required (Boolean). Field for include this type on package or not\r\n            \"path\": \"path/to/the/metadata/folder\",                      // Optional (String). Path to the Metadata Type folder in local project\r\n            \"suffix\": \"fileSuffix\",                                     // Optional (String). Metadata File suffix\r\n            \"childs\": {                                                 // Object with a collection of childs (Field required (JSON Object) but can be an empty object)\r\n                \"MetadataObjectName\":{\r\n                    \"name\": \"MetadataObjectName\",                       // Required (String). Contains the Metadata Object API Name (like object Key)\r\n                    \"checked\": false,                                   // Required (Boolean). Field for include this object on package or not\r\n                    \"path\": \"path/to/the/metadata/file/or/folder\",      // Optional (String). Path to the object file or folder path\r\n                    \"childs\": {                                         // Object with a collection of childs (Field required (JSON Object) but can be an empty object)\r\n                        \"MetadataItemName\": {\r\n                            \"name\": \"MetadataItemName\",                 // Required (String). Contains the Metadata Item API Name (like object Key)\r\n                            \"checked\": false,                           // Required (Boolean). Field for include this object on package or not\r\n                            \"path\": \"path/to/the/metadata/file\"\r\n                        },\r\n                        \"MetadataItemName2\": {\r\n                            ...\r\n                        },\r\n                        ...,\r\n                        ...,\r\n                        ...\r\n                    }\r\n                }\r\n                \"MetadataObjectName2\":{\r\n                   ...\r\n                },\r\n                ...,\r\n                ...,\r\n                ...\r\n            }\r\n        }\r\n    }\r\n\r\n```\r\n\r\n### **Example**:\r\n\r\n```json\r\n    {\r\n        \"CustomObject\": {\r\n            \"name\": \"CustomObject\",\r\n            \"checked\": false,\r\n            \"path\":  \"path/to/root/project/force-app/main/default/objects\",\r\n            \"suffix\": \"object\",\r\n            \"childs\": {\r\n                \"Account\": {\r\n                    \"name\": \"Account\",\r\n                    \"checked\": true,            // Add Account Object to the package\r\n                    \"path\": \"path/to/root/project/force-app/main/default/objects/Account/Account.object-meta.xml\",\r\n                    \"childs\": {}\r\n                },\r\n                \"Case\": {\r\n                    \"name\": \"Case\",\r\n                    \"checked\": true,            // Add Case Object to the package\r\n                    \"path\": \"path/to/root/project/force-app/main/default/objects/Case/Case.object-meta.xml\",\r\n                    \"childs\": {}\r\n                },\r\n                ...,\r\n                ...,\r\n                ...\r\n            }\r\n        },\r\n        \"CustomField\": {\r\n            \"name\": \"CustomField\",\r\n            \"checked\": false,\r\n            \"path\":  \"path/to/root/project/force-app/main/default/objects\",\r\n            \"suffix\": \"field\",\r\n            \"childs\": {\r\n                \"Account\": {\r\n                    \"name\": \"Account\",\r\n                    \"checked\": false,            \r\n                    \"path\": \"path/to/root/project/force-app/main/default/objects/Account/fields\",\r\n                    \"childs\": {\r\n                        \"customField__c\": {\r\n                            \"name\": \"customField__c\",\r\n                            \"checked\": true,    // Add customField__c to the package\r\n                            \"path\": \"path/to/root/project/force-app/main/default/objects/Account/fields/customField__c.field-meta.xml\",\r\n                        },\r\n                        ...,\r\n                        ...,\r\n                        ...\r\n                    }\r\n                },\r\n                \"Case\": {\r\n                    \"name\": \"Case\",\r\n                    \"checked\": false,           \r\n                    \"path\": \"path/to/root/project/force-app/main/default/objects/Case/fields\",\r\n                    \"childs\": {\r\n                        \"CaseNumber\": {\r\n                            \"name\": \"CaseNumber\",\r\n                            \"checked\": true,    // Add CaseNumber to the package\r\n                            \"path\": \"path/to/root/project/force-app/main/default/objects/Account/fields/CaseNumber.field-meta.xml\",\r\n                        },\r\n                        ...,\r\n                        ...,\r\n                        ...\r\n                    }\r\n                },\r\n                ...,\r\n                ...,\r\n                ...\r\n            }\r\n        }\r\n    }\r\n```\r\n\r\n# [**Ignore File**](#ignore-file)\r\n\r\nThe ignore file is a JSON file used on ignore, create package or dependencies manager modules. On this file you can specify metadata types, objects and elements for ignore or delete from your local project, package files or ignore when check dependencies.\r\n\r\nThe ignore file have the next structure\r\n\r\n```javascript\r\n    {\r\n        // Basic structure\r\n        \"MetadataTypeAPIName\": {\r\n            \"MetadataObject1\",\r\n            \"MetadataObject2\"\r\n        }\r\n\r\n        // Advance Structure\r\n        \"MetadataTypeAPIName\": {\r\n            \"MetadataObject1:MetadataItem1\",\r\n            \"MetadataObject1:MetadataItem2\",\r\n            \"MetadataObject2:*\",\r\n            \"*\",\r\n            \"*:*\" // Only valid on Custom Objects\r\n        }\r\n\r\n        // Special for Permissions\r\n        \"MetadataTypeAPIName\": {\r\n            \"UserPermission:MetadataObject1:PermissionName\",\r\n            \"UserPermission:MetadataObject2:*\",\r\n            \"UserPermission:*:PermissionName\"\r\n        }\r\n    }\r\n```\r\n\r\n### **Example**:\r\n\r\n```json\r\n    {\r\n        \"CustomLabels\": {\r\n            \"labelName1\",                   // Ignore or remove the custom label \"labelName1\"\r\n            \"labelName2\",                   // Ignore or remove the custom label \"labelName2\",\r\n            \"*\"                             // Ignore or remove all Custom Labels\r\n        },\r\n        \"AssignmentRules\":{\r\n            \"Case:Assign1\",                 // Ignore or remove the Assignent Rule \"Assign1\" from the object Case\r\n            \"Lead:*\",                       // Ignore or remove all Assignment Rules from Lead\r\n            \"*\"                             // Ignore or remove all Assignment Rules\r\n        },\r\n        \"CustomObject\": {\r\n            \"Account\",                      // Ignore or remove the Account Object\r\n            \"Case:*\",                       // Ignore or remove all related objects from case, including the object (Bussines Process, Fields, Validation Rules...),\r\n            \"*\",                            // Ignore or remove all custom objects (only the object not the related metadata)\r\n            \"*:*\",                          // Ignore or remove all custom objects and the related metadata (Bussines Process, Fields, Validation Rules...)\r\n        },\r\n        \"Report\": {\r\n            \"ReportFolder\",                 // Ignore or remove the entire folder\r\n            \"ReportFolder1:ReportName2\",    // Ignore or remove the report \"ReportName2\" from \"ReportFolder1\" folder.\r\n            \"*\",                            // Ignore or remove all reports.\r\n        },\r\n        \"Workflow\": {\r\n            \"Account\",                      // Ignore or remove the Account worflows (Rules, Task, Alerts...)\r\n            \"*\"                             // Ignore or  remove all workflows (Rules, Task, Alerts...) from all objects \r\n        },\r\n        \"WorkflowRule\": {\r\n            \"Case:*\",                       // Ignore or remove all Workflow rules from case object\r\n            \"Account:Rule1\",                // Ignore or remove \"Rule1\" from Account workflows,\r\n            \"*\"                             // Ignore or remove all Worflow rules from all objects\r\n        },\r\n        \"Profile\": {\r\n            \"UserPermission:*:Permission1\", // Remove the \"Permission1\" User Permission from all profiles\r\n            \"UserPermission:TestProfile:*\", // Remove all User permissions from TestProfile file\r\n            \"UserPermission:Admin:Perm1\",   // Remove the Perm1 User Permission from Admin profile\r\n            \"TestProfile2\",                 // Ignore or remove  the \"TestProfile\" profile \r\n            \"*\"                             // Ignore or remove all profiles\r\n        }\r\n    }\r\n\r\n```\r\n\r\n#### IMPORTANT\r\n\r\nSome Metadata Types have singular and plural name like CustomLabels, MatchingRules, EscalationRules... For ignore or remove this types you must use the plural name, if use the singular name the ignore process not take effect with this types.","readmeFilename":"README.md"}