New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

package-xml

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

package-xml - npm Package Compare versions

Comparing version 1.1.1 to 1.2.0

12

index.js

@@ -31,6 +31,14 @@ #!/usr/bin/env node

})
.option('m', {
alias: 'managed',
demand: false,
default: false,
describe: 'Include Managed Package Fields.',
type: 'boolean'
})
.argv
require('./js/packageXmlGenerator')(argv.dir, argv.version, argv.name).then(markup => {
var start = Date.now()
require('./js/packageXmlGenerator')(argv.dir, argv.version, argv.name, argv.managed).then(markup => {
return fs.outputFile(getPath(argv), markup, (err) => {
console.log('Package.xml generated in ' + (Date.now() - start) + 'ms')
if (err) console.log(err)

@@ -37,0 +45,0 @@ });

4

js/members.js
var parsers = require('./parsers')
var _ = require('lodash')
module.exports = function getMembers(type, contents, types) {
module.exports = function getMembers(type, contents, types, managed) {
return _.chain(
types.filter(metadata => metadata.type === type)
.map(metadata => {
return parsers[metadata.class](metadata, contents)
return parsers[metadata.class](metadata, contents, managed)
})).flatten().uniq().value()
}

@@ -8,4 +8,4 @@ var xml = require('libxmljs')

module.exports = function (path, api_version, package_name) {
module.exports = function (path, api_version, package_name, managed) {
self.managed = managed
// Get/Set path and insure it actually exists

@@ -41,3 +41,3 @@ try {

} catch (error) {
self.api_version = "37.0"
self.api_version = '37.0'
}

@@ -74,3 +74,3 @@ }

utils.getMetadataTypeNames().forEach(function (type) {
var members = require('./members')(type, contents, metadata)
var members = require('./members')(type, contents, metadata, self.managed)
if (members.length > 0) {

@@ -77,0 +77,0 @@ // Generate the XML and add it to the thing

@@ -39,4 +39,4 @@ const xml = require('libxmljs')

}
function isCustomObjectMatch(file, metadata) {
return !isManagedObjectFilter(file) && isCustomObjectFilter(file) && isFileExtensionMatch(file, metadata)
function isCustomObjectMatch(file, metadata, managed) {
return (managed || !isManagedObjectFilter(file)) && isCustomObjectFilter(file) && isFileExtensionMatch(file, metadata)
}

@@ -97,10 +97,10 @@ // ====================================================================================================

}
function getFileAndElement(file, metadata) {
function getFileAndElement(file, metadata, managed) {
return getXmlElements(file, metadata)
.filter(e => unmanagedElementFilter(e))
.filter(e => managed ? true : unmanagedElementFilter(e))
.map(element => getFileAndElementName(file, metadata, element))
}
function getElement(file, metadata) {
function getElement(file, metadata, managed) {
return getXmlElements(file, metadata)
.filter(e => unmanagedElementFilter(e))
.filter(e => managed ? true : unmanagedElementFilter(e))
.map(element => element.text())

@@ -116,3 +116,3 @@ }

}
function MetadataFilenameParser(metadata, contents) {
function MetadataFilenameParser(metadata, contents, managed) {
return contents

@@ -122,3 +122,3 @@ .filter(file => isBaseMatch(file, metadata))

}
function MetadataFolderParser(metadata, contents) {
function MetadataFolderParser(metadata, contents, managed) {
return contents

@@ -128,9 +128,9 @@ .filter(file => isFolderMatch(file, metadata))

}
function MetadataXmlElementParser(metadata, contents) {
function MetadataXmlElementParser(metadata, contents, managed) {
return contents
.filter(file => isMetadataXmlMatch(file, metadata))
.map(file => getFileAndElement(file, metadata))
.map(file => getFileAndElement(file, metadata, managed))
.reduce(merge, [])
}
function CustomLabelsParser(metadata, contents) {
function CustomLabelsParser(metadata, contents, managed) {
return contents

@@ -141,11 +141,11 @@ .filter(file => isMetadataXmlMatch(file, metadata))

}
function CustomObjectParser(metadata, contents) {
function CustomObjectParser(metadata, contents, managed) {
return contents
.filter(file => isCustomObjectMatch(file, metadata))
.filter(file => isCustomObjectMatch(file, metadata, managed))
.map(file => getFilename(file, metadata))
}
function RecordTypeParser(metadata, contents) {
return this.MetadataXmlElementParser(metadata, contents)
function RecordTypeParser(metadata, contents, managed) {
return this.MetadataXmlElementParser(metadata, contents, managed)
}
function BusinessProcessParser(metadata, contents) {
function BusinessProcessParser(metadata, contents, managed) {
return contents

@@ -156,3 +156,3 @@ .filter(file => isFileMatch(file, metadata))

}
function AuraBundleParser(metadata, contents) {
function AuraBundleParser(metadata, contents, managed) {
return contents

@@ -162,3 +162,3 @@ .filter(file => isFileMatch(file, metadata))

}
function DocumentParser(metadata, contents) {
function DocumentParser(metadata, contents, managed) {
return contents

@@ -165,0 +165,0 @@ .filter(file => isFileMatch(file, metadata))

{
"name": "package-xml",
"version": "1.1.1",
"version": "1.2.0",
"description": "Build a Salesforce Package.xml file from a src directory",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -12,5 +12,7 @@ var chai = require('chai')

describe('Generate a package XML', function () {
this.timeout(30000);
// Private variables, set in Before action
// var root = '/Users/John/Github/package-xml/test/fixtures/src'
var root = '/Users/John/Github/demandbase/src'
var root = '/Users/John/Github/esba/src'
var metadata, generator, getDirectoryContentsPromise

@@ -24,10 +26,37 @@ before(function () {

it('should get Custom Labels Classes', function () {
it('should get Components', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomLabel', files, metadata)
expect(members).to.contain('DAE_BadQuery')
var members = getMembers('ApexComponent', files, metadata, true)
expect(members).to.contain('DocumentManager')
})
})
it('should get Managed Custom object', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomObject', files, metadata, true)
expect(members).to.contain('HealthCloudGA__EhrPractitionerRole__c')
})
})
it('should get Managed Custom object', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomObject', files, metadata, false)
expect(members).to.not.contain('HealthCloudGA__EhrPractitionerRole__c')
})
})
it('should get Managed Custom fields', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomField', files, metadata, true)
expect(members).to.contain('Activity.HealthCloudGA__CarePlanGoal__c')
})
})
it('should not get Managed Custom fields', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomField', files, metadata, false)
expect(members).to.not.contain('Activity.HealthCloudGA__CarePlanGoal__c')
})
})
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc