@salesforce/plugin-custom-metadata 2.2.13 → 3.0.2
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/README.md +46 -46
- package/lib/commands/cmdt/generate/field.d.ts +7 -7
- package/lib/commands/cmdt/generate/field.js +76 -79
- package/lib/commands/cmdt/generate/field.js.map +1 -1
- package/lib/commands/cmdt/generate/fromorg.d.ts +11 -11
- package/lib/commands/cmdt/generate/fromorg.js +87 -92
- package/lib/commands/cmdt/generate/fromorg.js.map +1 -1
- package/lib/commands/cmdt/generate/object.d.ts +6 -6
- package/lib/commands/cmdt/generate/object.js +55 -58
- package/lib/commands/cmdt/generate/object.js.map +1 -1
- package/lib/commands/cmdt/generate/record.d.ts +7 -7
- package/lib/commands/cmdt/generate/record.js +64 -68
- package/lib/commands/cmdt/generate/record.js.map +1 -1
- package/lib/commands/cmdt/generate/records.d.ts +7 -7
- package/lib/commands/cmdt/generate/records.js +58 -60
- package/lib/commands/cmdt/generate/records.js.map +1 -1
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/shared/helpers/createUtil.d.ts +2 -2
- package/lib/shared/helpers/createUtil.js +17 -27
- package/lib/shared/helpers/createUtil.js.map +1 -1
- package/lib/shared/helpers/fileWriter.d.ts +2 -2
- package/lib/shared/helpers/fileWriter.js +4 -9
- package/lib/shared/helpers/fileWriter.js.map +1 -1
- package/lib/shared/helpers/metadataUtil.js +5 -12
- package/lib/shared/helpers/metadataUtil.js.map +1 -1
- package/lib/shared/helpers/validationUtil.js +15 -21
- package/lib/shared/helpers/validationUtil.js.map +1 -1
- package/lib/shared/interfaces/createConfig.js +1 -2
- package/lib/shared/interfaces/createConfig.js.map +1 -1
- package/lib/shared/templates/templates.js +13 -18
- package/lib/shared/templates/templates.js.map +1 -1
- package/oclif.lock +292 -390
- package/oclif.manifest.json +520 -268
- package/package.json +29 -26
|
@@ -1,72 +1,66 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateLessThanForty = exports.validateMetadataRecordName = exports.isValidMetadataRecordName = exports.validateMetadataTypeName = exports.validateAPIName = void 0;
|
|
4
1
|
/*
|
|
5
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
6
3
|
* All rights reserved.
|
|
7
4
|
* Licensed under the BSD 3-Clause license.
|
|
8
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
6
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
import { dirname } from 'node:path';
|
|
8
|
+
import { fileURLToPath } from 'node:url';
|
|
9
|
+
import { SfError, Messages } from '@salesforce/core';
|
|
10
|
+
Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url)));
|
|
11
|
+
const messages = Messages.loadMessages('@salesforce/plugin-custom-metadata', 'validation');
|
|
13
12
|
/**
|
|
14
13
|
* Returns true if the name is a valid api name for an sobject/field
|
|
15
14
|
*
|
|
16
15
|
* @param name API name of the object
|
|
17
16
|
*/
|
|
18
|
-
const validateAPIName = (name, message) => {
|
|
17
|
+
export const validateAPIName = (name, message) => {
|
|
19
18
|
// trimming the __c from the field during character count since it does not count towards the limit
|
|
20
19
|
// Regex makes sure that the field name is alpha numeric, doesn't end in an underscore
|
|
21
20
|
// and optionally if it ends in __c
|
|
22
21
|
const cleanedValue = name.replace('__c', '').replace('__C', '');
|
|
23
22
|
if (cleanedValue.length > 40 || !/^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*(__[cC])?$/.test(cleanedValue)) {
|
|
24
|
-
throw new
|
|
23
|
+
throw new SfError(message ?? messages.getMessage('sobjectnameFlagError', [name]));
|
|
25
24
|
}
|
|
26
25
|
return name;
|
|
27
26
|
};
|
|
28
|
-
exports.validateAPIName = validateAPIName;
|
|
29
27
|
/**
|
|
30
28
|
* Returns true if the fieldname is a valid metadata object name
|
|
31
29
|
*
|
|
32
30
|
* @param fieldName API name of the field
|
|
33
31
|
*/
|
|
34
|
-
const validateMetadataTypeName = (typeName) => {
|
|
32
|
+
export const validateMetadataTypeName = (typeName) => {
|
|
35
33
|
// trimming the __mdt from the field during character count since it does not count towards the limit
|
|
36
34
|
// Regex makes sure that the field name is alpha numeric, doesn't end in an underscore
|
|
37
35
|
// and optionally if it ends in __mdt
|
|
38
36
|
const trimmedValue = typeName.replace(/__mdt$/gi, '');
|
|
39
37
|
if (trimmedValue.length > 40 || !/^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*(__[mdtT])?$/.test(trimmedValue)) {
|
|
40
|
-
throw new
|
|
38
|
+
throw new SfError(messages.getMessage('invalidCMDTApiName', [typeName]));
|
|
41
39
|
}
|
|
42
40
|
return trimmedValue;
|
|
43
41
|
};
|
|
44
|
-
|
|
45
|
-
const isValidMetadataRecordName = (recordName) => recordName.length <= 40 && /^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$/.test(recordName);
|
|
46
|
-
exports.isValidMetadataRecordName = isValidMetadataRecordName;
|
|
42
|
+
export const isValidMetadataRecordName = (recordName) => recordName.length <= 40 && /^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$/.test(recordName);
|
|
47
43
|
/**
|
|
48
44
|
* Returns true if the fieldname is a valid metadata record name
|
|
49
45
|
*
|
|
50
46
|
* @param fieldName record name of a metadata record
|
|
51
47
|
*/
|
|
52
|
-
const validateMetadataRecordName = (typeName) => {
|
|
48
|
+
export const validateMetadataRecordName = (typeName) => {
|
|
53
49
|
// Regex makes sure that the field name is alpha numeric, doesn't end in an underscore
|
|
54
|
-
if (!
|
|
55
|
-
throw new
|
|
50
|
+
if (!isValidMetadataRecordName(typeName)) {
|
|
51
|
+
throw new SfError(messages.getMessage('notAValidRecordNameError', [typeName]));
|
|
56
52
|
}
|
|
57
53
|
return typeName;
|
|
58
54
|
};
|
|
59
|
-
exports.validateMetadataRecordName = validateMetadataRecordName;
|
|
60
55
|
/**
|
|
61
56
|
* Returns true if name is below 40 characters
|
|
62
57
|
*
|
|
63
58
|
* @param name label name or plural label
|
|
64
59
|
*/
|
|
65
|
-
const validateLessThanForty = (name, message) => {
|
|
60
|
+
export const validateLessThanForty = (name, message) => {
|
|
66
61
|
if (name.length > 40) {
|
|
67
|
-
throw new
|
|
62
|
+
throw new SfError(message);
|
|
68
63
|
}
|
|
69
64
|
return name;
|
|
70
65
|
};
|
|
71
|
-
exports.validateLessThanForty = validateLessThanForty;
|
|
72
66
|
//# sourceMappingURL=validationUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validationUtil.js","sourceRoot":"","sources":["../../../src/shared/helpers/validationUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validationUtil.js","sourceRoot":"","sources":["../../../src/shared/helpers/validationUtil.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAErD,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC;AAE3F;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAU,EAAE;IACxE,mGAAmG;IACnG,sFAAsF;IACtF,mCAAmC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,iDAAiD,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACrG,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACnE,qGAAqG;IACrG,sFAAsF;IACtF,qCAAqC;IACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,mDAAmD,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACvG,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC1E;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAAkB,EAAW,EAAE,CACvE,UAAU,CAAC,MAAM,IAAI,EAAE,IAAI,wCAAwC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAgB,EAAU,EAAE;IACrE,sFAAsF;IACtF,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE;QACxC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAChF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE;IAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;QACpB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
|
|
7
|
+
export {};
|
|
9
8
|
//# sourceMappingURL=createConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../../../src/shared/interfaces/createConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../../../src/shared/interfaces/createConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.canConvert = exports.createDefaultTypeStructure = exports.createFieldXML = exports.createObjectXML = void 0;
|
|
10
7
|
/* eslint-disable class-methods-use-this */
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
import { dirname } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { SfError, Messages } from '@salesforce/core';
|
|
11
|
+
Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url)));
|
|
12
|
+
const messages = Messages.loadMessages('@salesforce/plugin-custom-metadata', 'template');
|
|
14
13
|
/**
|
|
15
14
|
* Using the given data and visibility, creates the body of a type metadata file
|
|
16
15
|
*
|
|
17
16
|
* @param data
|
|
18
17
|
* @param visibility
|
|
19
18
|
*/
|
|
20
|
-
const createObjectXML = ({ label, pluralLabel }, visibility) => {
|
|
19
|
+
export const createObjectXML = ({ label, pluralLabel }, visibility) => {
|
|
21
20
|
let returnValue = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
22
21
|
returnValue += '<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">\n';
|
|
23
22
|
returnValue += `\t<label>${label}</label>\n`;
|
|
@@ -26,14 +25,13 @@ const createObjectXML = ({ label, pluralLabel }, visibility) => {
|
|
|
26
25
|
returnValue += '</CustomObject>\n';
|
|
27
26
|
return returnValue;
|
|
28
27
|
};
|
|
29
|
-
exports.createObjectXML = createObjectXML;
|
|
30
28
|
/**
|
|
31
29
|
* Using the given data and defaultToString, creates the body for a field file.
|
|
32
30
|
*
|
|
33
31
|
* @param data Record details
|
|
34
32
|
* @param defaultToString If the defaultToString set type to Text for unsupported field types
|
|
35
33
|
*/
|
|
36
|
-
const createFieldXML = (data, defaultToString) => {
|
|
34
|
+
export const createFieldXML = (data, defaultToString) => {
|
|
37
35
|
let returnValue = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
38
36
|
returnValue += '<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">\n';
|
|
39
37
|
returnValue += getFullName(data);
|
|
@@ -50,7 +48,7 @@ const createFieldXML = (data, defaultToString) => {
|
|
|
50
48
|
// preventing standard objects that have fields that are being convered from passing in data
|
|
51
49
|
// that is no longer relevant
|
|
52
50
|
// e.g. multiselectpicklist are being converted to long text area and long text area's do not support valuesets
|
|
53
|
-
if (
|
|
51
|
+
if (canConvert(data.type)) {
|
|
54
52
|
returnValue += getValueSet(data);
|
|
55
53
|
returnValue += getPrecisionTag(data);
|
|
56
54
|
returnValue += getScaleTag(data);
|
|
@@ -58,8 +56,7 @@ const createFieldXML = (data, defaultToString) => {
|
|
|
58
56
|
returnValue += '</CustomField>\n';
|
|
59
57
|
return returnValue;
|
|
60
58
|
};
|
|
61
|
-
|
|
62
|
-
const createDefaultTypeStructure = (fullName, type, label, picklistValues = [], decimalplaces = 0) => {
|
|
59
|
+
export const createDefaultTypeStructure = (fullName, type, label, picklistValues = [], decimalplaces = 0) => {
|
|
63
60
|
const precision = 18 - decimalplaces;
|
|
64
61
|
const scale = decimalplaces;
|
|
65
62
|
const baseObject = { fullName, type, label, summaryFilterItems: [] };
|
|
@@ -98,8 +95,7 @@ const createDefaultTypeStructure = (fullName, type, label, picklistValues = [],
|
|
|
98
95
|
return baseObject;
|
|
99
96
|
}
|
|
100
97
|
};
|
|
101
|
-
|
|
102
|
-
const canConvert = (type) => {
|
|
98
|
+
export const canConvert = (type) => {
|
|
103
99
|
const metadataFieldTypes = [
|
|
104
100
|
'Checkbox',
|
|
105
101
|
'Date',
|
|
@@ -116,10 +112,9 @@ const canConvert = (type) => {
|
|
|
116
112
|
];
|
|
117
113
|
return typeof type === 'string' && metadataFieldTypes.includes(type);
|
|
118
114
|
};
|
|
119
|
-
exports.canConvert = canConvert;
|
|
120
115
|
const createPicklistValues = (values) => values.map((value) => ({ fullName: value, label: value, default: false }));
|
|
121
116
|
const getType = (data, defaultToMetadataType) => {
|
|
122
|
-
if (
|
|
117
|
+
if (canConvert(data.type)) {
|
|
123
118
|
// To handle the text formula field scenario where field type will be Text with no length attribute
|
|
124
119
|
if (data.type === 'Text' && data.length === undefined) {
|
|
125
120
|
return '\t<type>LongTextArea</type>\n';
|
|
@@ -130,7 +125,7 @@ const getType = (data, defaultToMetadataType) => {
|
|
|
130
125
|
return `\t<type>${getConvertType(data)}</type>\n`;
|
|
131
126
|
}
|
|
132
127
|
else {
|
|
133
|
-
throw new
|
|
128
|
+
throw new SfError(messages.getMessage('errorNotAValidType', [data.type]));
|
|
134
129
|
}
|
|
135
130
|
};
|
|
136
131
|
const getLengthTag = (data) => {
|
|
@@ -145,7 +140,7 @@ const getLengthTag = (data) => {
|
|
|
145
140
|
// For fields that are being translated from Custom objects that do not have a matching type they are
|
|
146
141
|
// being defaulted to a Text field. They need to have a minimum length to them
|
|
147
142
|
// e.g. Field types that are getting converted: Currency, Location, MasterDetail, Lookup
|
|
148
|
-
return !
|
|
143
|
+
return !canConvert(data.type) && getConvertType(data) === 'Text' ? '\t<length>100</length>\n' : '';
|
|
149
144
|
};
|
|
150
145
|
const getVisibleLines = (data) => {
|
|
151
146
|
if (data.type === 'Text' && data.length === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/shared/templates/templates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/shared/templates/templates.ts"],"names":[],"mappings":"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"}
|