@ds-sfdc/sfparty 1.3.8 → 1.3.10
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/.husky/pre-push +4 -0
- package/.prettierrc +9 -0
- package/package.json +3 -1
- package/pre-commit +4 -0
- package/src/index.js +770 -585
- package/src/lib/checkVersion.js +84 -58
- package/src/lib/fileUtils.js +178 -159
- package/src/lib/gitUtils.js +184 -116
- package/src/lib/packageUtil.js +236 -194
- package/src/lib/pkgObj.cjs +1 -1
- package/src/meta/CustomLabels.js +27 -24
- package/src/meta/Package.js +22 -21
- package/src/meta/PermissionSets.js +75 -66
- package/src/meta/Profiles.js +84 -81
- package/src/meta/Workflows.js +125 -64
- package/src/meta/yargs.js +98 -93
- package/src/party/combine.js +647 -467
- package/src/party/split.js +394 -315
- package/test/lib/file/directoryExists.spec.js +43 -0
- package/test/lib/file/fileExists.spec.js +36 -0
- package/test/lib/git/diff.spec.js +208 -33
- package/test/lib/git/lastCommit.spec.js +119 -52
- package/test/lib/git/updateLastCommit.spec.js +64 -45
- package/test/lib/package/getPackageXML.spec.js +146 -124
- package/test_mocha/lib/fileUtils.js +0 -374
- package/test_mocha/lib/git.js +0 -82
- package/test_mocha/lib/gitUtils.js +0 -54
- package/test_mocha/lib/versionCheck.js +0 -43
- package/test_mocha/root.js +0 -14
|
@@ -1,68 +1,77 @@
|
|
|
1
1
|
export const metadataDefinition = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
2
|
+
metaUrl:
|
|
3
|
+
'https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_permissionset.htm',
|
|
4
|
+
directory: 'permissionsets',
|
|
5
|
+
filetype: 'permissionset',
|
|
6
|
+
root: 'PermissionSet',
|
|
7
|
+
alias: 'permset',
|
|
8
|
+
main: [
|
|
9
|
+
'label',
|
|
10
|
+
'description',
|
|
11
|
+
'custom',
|
|
12
|
+
'hasActivationRequired',
|
|
13
|
+
'license',
|
|
14
|
+
'userLicense', // Replaced by license
|
|
15
|
+
'$',
|
|
16
|
+
],
|
|
17
|
+
singleFiles: [
|
|
18
|
+
'applicationVisibilities',
|
|
19
|
+
'classAccesses',
|
|
20
|
+
'customMetadataTypeAccesses',
|
|
21
|
+
'customPermissions',
|
|
22
|
+
'customSettingAccesses',
|
|
23
|
+
'externalDataSourceAccesses',
|
|
24
|
+
'flowAccesses',
|
|
25
|
+
'pageAccesses',
|
|
26
|
+
'tabSettings',
|
|
27
|
+
'userPermissions',
|
|
28
|
+
],
|
|
29
|
+
directories: [
|
|
30
|
+
'fieldPermissions',
|
|
31
|
+
'objectPermissions',
|
|
32
|
+
'recordTypeVisibilities',
|
|
33
|
+
],
|
|
34
|
+
splitObjects: [
|
|
35
|
+
'fieldPermissions',
|
|
36
|
+
'objectPermissions',
|
|
37
|
+
'recordTypeVisibilities',
|
|
38
|
+
],
|
|
39
|
+
sortKeys: {
|
|
40
|
+
applicationVisibilities: 'application',
|
|
41
|
+
classAccesses: 'apexClass',
|
|
42
|
+
customMetadataTypeAccesses: 'name',
|
|
43
|
+
customPermissions: 'name',
|
|
44
|
+
customSettingAccesses: 'name',
|
|
45
|
+
externalDataSourceAccesses: 'externalDataSource',
|
|
46
|
+
fieldPermissions: 'field',
|
|
47
|
+
flowAccesses: 'flow',
|
|
48
|
+
objectPermissions: 'object',
|
|
49
|
+
pageAccesses: 'apexPage',
|
|
50
|
+
recordTypeVisibilities: 'recordType',
|
|
51
|
+
tabSettings: 'tab',
|
|
52
|
+
userPermissions: 'name',
|
|
53
|
+
},
|
|
54
|
+
keyOrder: {
|
|
55
|
+
applicationVisibilities: ['application', 'visible'],
|
|
56
|
+
classAccesses: ['apexClass', 'enabled'],
|
|
57
|
+
customMetadataTypeAccesses: ['name', 'enabled'],
|
|
58
|
+
customPermissions: ['name', 'enabled'],
|
|
59
|
+
customSettingAccesses: ['name', 'enabled'],
|
|
60
|
+
externalDataSourceAccesses: ['externalDataSource', 'enabled'],
|
|
61
|
+
fieldPermissions: ['field', 'editable', 'readable'],
|
|
62
|
+
flowAccesses: ['flow', 'enabled'],
|
|
63
|
+
objectPermissions: [
|
|
64
|
+
'object',
|
|
65
|
+
'allowCreate',
|
|
66
|
+
'allowRead',
|
|
67
|
+
'allowEdit',
|
|
68
|
+
'allowDelete',
|
|
69
|
+
'viewAllRecords',
|
|
70
|
+
'modifyAllRecords',
|
|
71
|
+
],
|
|
72
|
+
pageAccesses: ['apexPage', 'enabled'],
|
|
73
|
+
recordTypeVisibilities: ['recordType', 'visible'],
|
|
74
|
+
tabSettings: ['tab', 'visibility'],
|
|
75
|
+
userPermissions: ['name', 'enabled'],
|
|
76
|
+
},
|
|
68
77
|
}
|
package/src/meta/Profiles.js
CHANGED
|
@@ -1,83 +1,86 @@
|
|
|
1
1
|
export const metadataDefinition = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
2
|
+
metaUrl:
|
|
3
|
+
'https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_profile.htm',
|
|
4
|
+
directory: 'profiles',
|
|
5
|
+
filetype: 'profile',
|
|
6
|
+
root: 'Profile',
|
|
7
|
+
alias: 'profile',
|
|
8
|
+
main: ['fullName', 'custom', 'description', 'userLicense', '$'],
|
|
9
|
+
singleFiles: [
|
|
10
|
+
'applicationVisibilities',
|
|
11
|
+
'categoryGroupVisibilities',
|
|
12
|
+
'classAccesses',
|
|
13
|
+
'customMetadataTypeAccesses',
|
|
14
|
+
'customPermissions',
|
|
15
|
+
'customSettingAccesses',
|
|
16
|
+
'externalDataSourceAccesses',
|
|
17
|
+
'flowAccesses',
|
|
18
|
+
'layoutAssignments',
|
|
19
|
+
// TODO 'loginHours',
|
|
20
|
+
'loginIpRanges',
|
|
21
|
+
'pageAccesses',
|
|
22
|
+
// TODO 'profileActionOverrides',
|
|
23
|
+
'tabVisibilities',
|
|
24
|
+
'userPermissions',
|
|
25
|
+
],
|
|
26
|
+
directories: [
|
|
27
|
+
'fieldPermissions',
|
|
28
|
+
'loginFlows',
|
|
29
|
+
'objectPermissions',
|
|
30
|
+
'recordTypeVisibilities',
|
|
31
|
+
],
|
|
32
|
+
splitObjects: [
|
|
33
|
+
'fieldPermissions',
|
|
34
|
+
'objectPermissions',
|
|
35
|
+
'recordTypeVisibilities',
|
|
36
|
+
],
|
|
37
|
+
sortKeys: {
|
|
38
|
+
applicationVisibilities: 'application',
|
|
39
|
+
categoryGroupVisibilities: 'dataCategoryGroup',
|
|
40
|
+
classAccesses: 'apexClass',
|
|
41
|
+
customMetadataTypeAccesses: 'name',
|
|
42
|
+
customPermissions: 'name',
|
|
43
|
+
customSettingAccesses: 'name',
|
|
44
|
+
externalDataSourceAccesses: 'externalDataSource',
|
|
45
|
+
fieldPermissions: 'field',
|
|
46
|
+
flowAccesses: 'flow',
|
|
47
|
+
layoutAssignments: 'layout',
|
|
48
|
+
loginFlows: 'friendlyName',
|
|
49
|
+
loginIpRanges: 'startAddress',
|
|
50
|
+
objectPermissions: 'object',
|
|
51
|
+
pageAccesses: 'apexPage',
|
|
52
|
+
profileActionOverrides: 'pageOrSobjectType',
|
|
53
|
+
recordTypeVisibilities: 'recordType',
|
|
54
|
+
tabVisibilities: 'tab',
|
|
55
|
+
userPermissions: 'name',
|
|
56
|
+
},
|
|
57
|
+
keyOrder: {
|
|
58
|
+
applicationVisibilities: ['application', 'visible'],
|
|
59
|
+
categoryGroupVisibilities: ['dataCategoryGroup'], // TODO
|
|
60
|
+
classAccesses: ['apexClass', 'enabled'],
|
|
61
|
+
customMetadataTypeAccesses: ['name', 'enabled'],
|
|
62
|
+
customPermissions: ['name', 'enabled'],
|
|
63
|
+
customSettingAccesses: ['name', 'enabled'],
|
|
64
|
+
externalDataSourceAccesses: ['externalDataSource', 'enabled'],
|
|
65
|
+
fieldPermissions: ['field', 'editable', 'readable'],
|
|
66
|
+
flowAccesses: ['flow', 'enabled'],
|
|
67
|
+
layoutAssignments: ['layout'], // TODO
|
|
68
|
+
loginFlows: ['friendlyName'], // TODO
|
|
69
|
+
loginIpRanges: ['startAddress'], // TODO
|
|
70
|
+
objectPermissions: [
|
|
71
|
+
'object',
|
|
72
|
+
'allowCreate',
|
|
73
|
+
'allowRead',
|
|
74
|
+
'allowEdit',
|
|
75
|
+
'allowDelete',
|
|
76
|
+
'viewAllRecords',
|
|
77
|
+
'modifyAllRecords',
|
|
78
|
+
],
|
|
79
|
+
pageAccesses: ['apexPage', 'enabled'],
|
|
80
|
+
profileActionOverrides: ['pageOrSobjectType'], // TODO
|
|
81
|
+
recordTypeVisibilities: ['recordType', 'visible'],
|
|
82
|
+
tabVisibilities: ['tab', 'visibility'],
|
|
83
|
+
userPermissions: ['name', 'enabled'],
|
|
84
|
+
},
|
|
85
|
+
xmlFirst: 'fullName',
|
|
83
86
|
}
|
package/src/meta/Workflows.js
CHANGED
|
@@ -1,66 +1,127 @@
|
|
|
1
1
|
export const metadataDefinition = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
2
|
+
metaUrl:
|
|
3
|
+
'https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_workflow.htm',
|
|
4
|
+
directory: 'workflows',
|
|
5
|
+
filetype: 'workflow',
|
|
6
|
+
root: 'Workflow',
|
|
7
|
+
alias: 'workflow',
|
|
8
|
+
main: ['$'],
|
|
9
|
+
singleFiles: [],
|
|
10
|
+
directories: [
|
|
11
|
+
'alerts',
|
|
12
|
+
'fieldUpdates',
|
|
13
|
+
'flowActions',
|
|
14
|
+
'knowledgePublishes',
|
|
15
|
+
'outboundMessages',
|
|
16
|
+
'rules',
|
|
17
|
+
'tasks',
|
|
18
|
+
],
|
|
19
|
+
sortKeys: {
|
|
20
|
+
alerts: 'fullName',
|
|
21
|
+
fieldUpdates: 'fullName',
|
|
22
|
+
flowActions: 'label',
|
|
23
|
+
knowledgePublishes: 'label',
|
|
24
|
+
outboundMessages: 'fullName',
|
|
25
|
+
rules: 'fullName',
|
|
26
|
+
tasks: 'fullName',
|
|
27
|
+
recipients: 'type',
|
|
28
|
+
flowInputs: 'name',
|
|
29
|
+
criteriaItems: 'field',
|
|
30
|
+
actions: 'name',
|
|
31
|
+
workflowTimeTriggers: 'offsetFromField',
|
|
32
|
+
},
|
|
33
|
+
keyOrder: {
|
|
34
|
+
alerts: [
|
|
35
|
+
'fullName',
|
|
36
|
+
'description',
|
|
37
|
+
'template',
|
|
38
|
+
'protected',
|
|
39
|
+
'senderType',
|
|
40
|
+
'senderAddress',
|
|
41
|
+
'ccEmails',
|
|
42
|
+
'recipients',
|
|
43
|
+
],
|
|
44
|
+
fieldUpdates: [
|
|
45
|
+
'fullName',
|
|
46
|
+
'name',
|
|
47
|
+
'description',
|
|
48
|
+
'field',
|
|
49
|
+
'notifyAssignee',
|
|
50
|
+
'protected',
|
|
51
|
+
'reevaluateOnChange',
|
|
52
|
+
'targetObject',
|
|
53
|
+
'operation',
|
|
54
|
+
'formula',
|
|
55
|
+
'literalValue',
|
|
56
|
+
'lookupValueType',
|
|
57
|
+
'lookupValue',
|
|
58
|
+
],
|
|
59
|
+
flowActions: [
|
|
60
|
+
'fullName',
|
|
61
|
+
'label',
|
|
62
|
+
'flow',
|
|
63
|
+
'description',
|
|
64
|
+
'language',
|
|
65
|
+
'protected',
|
|
66
|
+
'flowInputs',
|
|
67
|
+
],
|
|
68
|
+
knowledgePublishes: [
|
|
69
|
+
'label',
|
|
70
|
+
'description',
|
|
71
|
+
'action',
|
|
72
|
+
'language',
|
|
73
|
+
'protected',
|
|
74
|
+
],
|
|
75
|
+
outboundMessages: [
|
|
76
|
+
'fullName',
|
|
77
|
+
'name',
|
|
78
|
+
'description',
|
|
79
|
+
'endpointUrl',
|
|
80
|
+
'apiVersion',
|
|
81
|
+
'integrationUser',
|
|
82
|
+
'includeSessionId',
|
|
83
|
+
'protected',
|
|
84
|
+
'useDeadLetterQueue',
|
|
85
|
+
'fields',
|
|
86
|
+
],
|
|
87
|
+
rules: [
|
|
88
|
+
'fullName',
|
|
89
|
+
'description',
|
|
90
|
+
'triggerType',
|
|
91
|
+
'active',
|
|
92
|
+
'booleanFilter',
|
|
93
|
+
'formula',
|
|
94
|
+
'criteriaItems',
|
|
95
|
+
'actions',
|
|
96
|
+
'workflowTimeTriggers',
|
|
97
|
+
],
|
|
98
|
+
tasks: ['fullName'],
|
|
99
|
+
recipients: ['type', 'field', 'recipient'],
|
|
100
|
+
flowInputs: ['name', 'value'],
|
|
101
|
+
criteriaItems: ['field', 'operation', 'value', 'valueField'],
|
|
102
|
+
actions: ['name', 'type'],
|
|
103
|
+
workflowTimeTriggers: [
|
|
104
|
+
'offsetFromField',
|
|
105
|
+
'timeLength',
|
|
106
|
+
'workflowTimeTriggerUnit',
|
|
107
|
+
'actions',
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
xmlOrder: {
|
|
111
|
+
alerts: ['fullName'],
|
|
112
|
+
fieldUpdates: ['fullName'],
|
|
113
|
+
flowActions: ['fullName'],
|
|
114
|
+
rules: ['fullName'],
|
|
115
|
+
outboundMessages: ['fullName'],
|
|
116
|
+
tasks: ['fullName'],
|
|
117
|
+
},
|
|
118
|
+
package: {
|
|
119
|
+
alerts: 'WorkflowAlert',
|
|
120
|
+
fieldUpdates: 'WorkflowFieldUpdate',
|
|
121
|
+
flowActions: 'WorkflowFlowAction',
|
|
122
|
+
knowledgePublishes: 'WorkflowKnowledgePublish',
|
|
123
|
+
outboundMessages: 'WorkflowOutboundMessage',
|
|
124
|
+
rules: 'WorkflowRule',
|
|
125
|
+
tasks: 'WorkflowTask',
|
|
126
|
+
},
|
|
66
127
|
}
|