UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

177 lines 14.3 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PROFILE_PERMISSIONSET_EXTENSION = exports.UNSPLITED_METADATA = exports.METADATA_INFO = exports.MetadataInfo = exports.SOURCE_EXTENSION_REGEX = void 0; //TODO: Replace with SDR const _ = __importStar(require("lodash")); const path = __importStar(require("path")); const fs = __importStar(require("fs-extra")); exports.SOURCE_EXTENSION_REGEX = /\.[a-zA-Z]+-meta\.xml/; const SPLITED_TYPES = { CustomField: { suffix: 'field', folder: 'fields', }, BusinessProcess: { suffix: 'businessProcess', folder: 'businessProcesses', }, CompactLayout: { suffix: 'compactLayout', folder: 'compactLayouts', }, FieldSet: { suffix: 'fieldSet', folder: 'fieldSets', }, RecordType: { suffix: 'recordType', folder: 'recordTypes', }, ListView: { suffix: 'listView', folder: 'listViews', }, SharingReason: { suffix: 'sharingReason', folder: 'sharingReasons', }, ValidationRule: { suffix: 'validationRule', folder: 'validationRules', }, WebLink: { suffix: 'webLink', folder: 'webLinks', }, }; class MetadataInfo { static loadMetadataInfo() { let metadataInfo = {}; let resourcePath = path.join(__dirname, '..', '..', '..', 'resources', 'metadatainfo.json'); const fileData = fs.readFileSync(resourcePath, 'utf8'); let metadataInfoJSON = JSON.parse(fileData); metadataInfoJSON.metadataObjects.forEach((metadata) => { let metadataDescribe = metadata; if (_.isNil(metadata.suffix)) { if (metadata.xmlName === 'AuraDefinitionBundle') { metadata.suffix = 'cmp'; metadataDescribe.suffix = 'cmp'; } else if (metadata.xmlName == 'LightningComponentBundle') { metadata.suffix = 'js'; metadataDescribe.suffix = 'js'; } } metadataDescribe.sourceExtension = `.${metadata.suffix}-meta.xml`; if (metadata.inFolder) { let folderExtensionPrefix = metadata.suffix; if (_.isNil(metadata.suffix)) { folderExtensionPrefix = metadata.xmlName.charAt(0).toLowerCase + metadata.xmlName.slice(1); } metadataDescribe.folderExtension = `.${folderExtensionPrefix}Folder-meta.xml`; } //Generate Describe of cheildItems if exists if (!_.isNil(metadata.childXmlNames)) { metadata.childXmlNames.forEach((element) => { let splitedElement = SPLITED_TYPES[element]; if (!_.isNil(splitedElement)) { let childDescribe = {}; childDescribe.directoryName = SPLITED_TYPES[element].folder; childDescribe.suffix = SPLITED_TYPES[element].suffix; childDescribe.xmlName = element; childDescribe.inFolder = false; childDescribe.metaFile = false; childDescribe.isChildComponent = true; childDescribe.sourceExtension = `.${SPLITED_TYPES[element].suffix}-meta.xml`; metadataInfo[childDescribe.xmlName] = childDescribe; } }); } metadataInfo[metadataDescribe.xmlName] = metadataDescribe; }); return metadataInfo; } static getMetadataName(metadataFile, validateSourceExtension = true) { let matcher = metadataFile.match(exports.SOURCE_EXTENSION_REGEX); let extension = ''; if (matcher) { extension = matcher[0]; } else { extension = path.parse(metadataFile).ext; } //SfPowerKit.ux.log(extension); let metadataName = ''; const auraRegExp = new RegExp('aura'); const lwcRegExp = new RegExp('lwc'); const staticResourceRegExp = new RegExp('staticresources'); const experienceBundleRegExp = new RegExp('experiences'); const documentRegExp = new RegExp('documents'); if (auraRegExp.test(metadataFile) && (exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) { metadataName = exports.METADATA_INFO.AuraDefinitionBundle.xmlName; } else if (lwcRegExp.test(metadataFile) && (exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) { metadataName = exports.METADATA_INFO.LightningComponentBundle.xmlName; } else if (staticResourceRegExp.test(metadataFile) && (exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) { metadataName = exports.METADATA_INFO.StaticResource.xmlName; } else if (experienceBundleRegExp.test(metadataFile) && (exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) { metadataName = exports.METADATA_INFO.ExperienceBundle.xmlName; } else if (documentRegExp.test(metadataFile) && (exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) { metadataName = exports.METADATA_INFO.Document.xmlName; } else { let keys = Object.keys(exports.METADATA_INFO); for (let i = 0; i < keys.length; i++) { let metaDescribe = exports.METADATA_INFO[keys[i]]; if (metaDescribe.sourceExtension === extension || ('.' + metaDescribe.suffix === extension && !validateSourceExtension) || metaDescribe.folderExtension === extension) { metadataName = metaDescribe.xmlName; break; } } } return metadataName; } } exports.MetadataInfo = MetadataInfo; exports.METADATA_INFO = MetadataInfo.loadMetadataInfo(); exports.UNSPLITED_METADATA = [ exports.METADATA_INFO.Workflow, exports.METADATA_INFO.SharingRules, exports.METADATA_INFO.CustomLabels, exports.METADATA_INFO.Profile, exports.METADATA_INFO.PermissionSet, ]; exports.PROFILE_PERMISSIONSET_EXTENSION = [exports.METADATA_INFO.Profile, exports.METADATA_INFO.PermissionSet]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFJbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvbWV0YWRhdGEvTWV0YWRhdGFJbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdCO0FBQ3hCLDBDQUE0QjtBQUM1QiwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBRWxCLFFBQUEsc0JBQXNCLEdBQUcsdUJBQXVCLENBQUM7QUFDOUQsTUFBTSxhQUFhLEdBQUc7SUFDbEIsV0FBVyxFQUFFO1FBQ1QsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsUUFBUTtLQUNuQjtJQUNELGVBQWUsRUFBRTtRQUNiLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLG1CQUFtQjtLQUM5QjtJQUNELGFBQWEsRUFBRTtRQUNYLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7S0FDM0I7SUFDRCxRQUFRLEVBQUU7UUFDTixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsV0FBVztLQUN0QjtJQUNELFVBQVUsRUFBRTtRQUNSLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLE1BQU0sRUFBRSxhQUFhO0tBQ3hCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLFdBQVc7S0FDdEI7SUFDRCxhQUFhLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsZ0JBQWdCO0tBQzNCO0lBQ0QsY0FBYyxFQUFFO1FBQ1osTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsaUJBQWlCO0tBQzVCO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLFVBQVU7S0FDckI7Q0FDSixDQUFDO0FBeURGLE1BQWEsWUFBWTtJQUNyQixNQUFNLENBQUMsZ0JBQWdCO1FBQ25CLElBQUksWUFB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