@salesforce/plugin-custom-metadata 2.0.9 → 2.0.11
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 +0 -1
- package/lib/commands/generate/cmdt/field.d.ts +23 -0
- package/lib/commands/generate/cmdt/field.js +100 -0
- package/lib/commands/generate/cmdt/field.js.map +1 -0
- package/lib/commands/generate/cmdt/fromorg.d.ts +26 -0
- package/lib/commands/generate/cmdt/fromorg.js +184 -0
- package/lib/commands/generate/cmdt/fromorg.js.map +1 -0
- package/lib/commands/generate/cmdt/object.d.ts +23 -0
- package/lib/commands/generate/cmdt/object.js +79 -0
- package/lib/commands/generate/cmdt/object.js.map +1 -0
- package/lib/commands/generate/cmdt/record.d.ts +29 -0
- package/lib/commands/generate/cmdt/record.js +111 -0
- package/lib/commands/generate/cmdt/record.js.map +1 -0
- package/lib/commands/generate/cmdt/records.d.ts +18 -0
- package/lib/commands/generate/cmdt/records.js +105 -0
- package/lib/commands/generate/cmdt/records.js.map +1 -0
- package/lib/shared/helpers/createUtil.d.ts +51 -0
- package/lib/shared/helpers/createUtil.js +168 -0
- package/lib/shared/helpers/createUtil.js.map +1 -0
- package/lib/shared/helpers/fileWriter.d.ts +24 -0
- package/lib/shared/helpers/fileWriter.js +59 -0
- package/lib/shared/helpers/fileWriter.js.map +1 -0
- package/lib/{lib → shared}/helpers/metadataUtil.d.ts +1 -1
- package/lib/{lib → shared}/helpers/metadataUtil.js +1 -1
- package/lib/shared/helpers/metadataUtil.js.map +1 -0
- package/lib/{lib → shared}/helpers/validationUtil.d.ts +0 -0
- package/lib/{lib → shared}/helpers/validationUtil.js +0 -0
- package/lib/shared/helpers/validationUtil.js.map +1 -0
- package/lib/{lib → shared}/interfaces/createConfig.d.ts +3 -2
- package/lib/{lib → shared}/interfaces/createConfig.js +0 -0
- package/lib/shared/interfaces/createConfig.js.map +1 -0
- package/lib/shared/templates/templates.d.ts +20 -0
- package/lib/shared/templates/templates.js +208 -0
- package/lib/shared/templates/templates.js.map +1 -0
- package/messages/field.md +79 -0
- package/messages/fromorg.md +87 -0
- package/messages/object.md +73 -0
- package/messages/record.md +53 -0
- package/messages/records.md +49 -0
- package/messages/template.md +3 -0
- package/messages/validation.md +11 -0
- package/oclif.manifest.json +1 -1
- package/package.json +17 -16
- package/lib/commands/force/cmdt/create.d.ts +0 -25
- package/lib/commands/force/cmdt/create.js +0 -94
- package/lib/commands/force/cmdt/create.js.map +0 -1
- package/lib/commands/force/cmdt/field/create.d.ts +0 -25
- package/lib/commands/force/cmdt/field/create.js +0 -113
- package/lib/commands/force/cmdt/field/create.js.map +0 -1
- package/lib/commands/force/cmdt/generate.d.ts +0 -27
- package/lib/commands/force/cmdt/generate.js +0 -219
- package/lib/commands/force/cmdt/generate.js.map +0 -1
- package/lib/commands/force/cmdt/record/create.d.ts +0 -32
- package/lib/commands/force/cmdt/record/create.js +0 -140
- package/lib/commands/force/cmdt/record/create.js.map +0 -1
- package/lib/commands/force/cmdt/record/insert.d.ts +0 -16
- package/lib/commands/force/cmdt/record/insert.js +0 -110
- package/lib/commands/force/cmdt/record/insert.js.map +0 -1
- package/lib/lib/helpers/createUtil.d.ts +0 -62
- package/lib/lib/helpers/createUtil.js +0 -170
- package/lib/lib/helpers/createUtil.js.map +0 -1
- package/lib/lib/helpers/fileWriter.d.ts +0 -27
- package/lib/lib/helpers/fileWriter.js +0 -63
- package/lib/lib/helpers/fileWriter.js.map +0 -1
- package/lib/lib/helpers/metadataUtil.js.map +0 -1
- package/lib/lib/helpers/validationUtil.js.map +0 -1
- package/lib/lib/interfaces/createConfig.js.map +0 -1
- package/lib/lib/templates/templates.d.ts +0 -37
- package/lib/lib/templates/templates.js +0 -221
- package/lib/lib/templates/templates.js.map +0 -1
- package/messages/createField.json +0 -24
- package/messages/createRecord.json +0 -32
- package/messages/createType.json +0 -33
- package/messages/generate.json +0 -40
- package/messages/insertRecord.json +0 -26
- package/messages/template.json +0 -3
- package/messages/validation.json +0 -5
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CreateUtil = void 0;
|
|
4
|
-
/*
|
|
5
|
-
* Copyright (c) 2020, salesforce.com, inc.
|
|
6
|
-
* All rights reserved.
|
|
7
|
-
* Licensed under the BSD 3-Clause license.
|
|
8
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
|
-
*/
|
|
10
|
-
const fs = require("fs");
|
|
11
|
-
const path = require("path");
|
|
12
|
-
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
13
|
-
const templates_1 = require("../templates/templates");
|
|
14
|
-
const fieldTypeMap = {
|
|
15
|
-
Checkbox: 'boolean',
|
|
16
|
-
Date: 'date',
|
|
17
|
-
DateTime: 'dateTime',
|
|
18
|
-
Email: 'string',
|
|
19
|
-
Phone: 'string',
|
|
20
|
-
Picklist: 'string',
|
|
21
|
-
Text: 'string',
|
|
22
|
-
TextArea: 'string',
|
|
23
|
-
LongTextArea: 'string',
|
|
24
|
-
Url: 'string',
|
|
25
|
-
};
|
|
26
|
-
// NOTE: the template string indentation is important to output well-formatted XML. Altering that whitespace will change the whitespace of the output.
|
|
27
|
-
class CreateUtil {
|
|
28
|
-
/**
|
|
29
|
-
* Number and Percent types will be int or double depending on their respective scale values.
|
|
30
|
-
* If the scale === 0, it is an int, otherwise it is a double
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* Creates the Custom Metadata Record
|
|
34
|
-
*
|
|
35
|
-
* @param createConfig Properties include typename, recname, label, protection, varargs, and fileData
|
|
36
|
-
* @return void
|
|
37
|
-
*/
|
|
38
|
-
async createRecord(createConfig) {
|
|
39
|
-
const outputFilePath = path.join(createConfig.outputdir, `${createConfig.typename}.${createConfig.recordname}.md-meta.xml`);
|
|
40
|
-
const newRecordContent = getRecordTemplate(createConfig.label, createConfig.protected, this.buildCustomFieldXml(createConfig.fileData, createConfig.varargs, createConfig.ignorefields));
|
|
41
|
-
return fs.promises.writeFile(outputFilePath, newRecordContent);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* @param fieldDirPath path to a /fields folder that contains all the fields to read
|
|
46
|
-
* @param fileNames filenames in that folder that should be read
|
|
47
|
-
* @returns CustomField[]
|
|
48
|
-
*/
|
|
49
|
-
// eslint-disable-next-line class-methods-use-this
|
|
50
|
-
async getFileData(fieldDirPath, fileNames) {
|
|
51
|
-
const parser = new fast_xml_parser_1.XMLParser();
|
|
52
|
-
return Promise.all(fileNames
|
|
53
|
-
.map((file) => path.join(fieldDirPath, file))
|
|
54
|
-
.map(async (filePath) => {
|
|
55
|
-
const fileData = await fs.promises.readFile(filePath, 'utf8');
|
|
56
|
-
return parser.parse(fileData).CustomField;
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Filenames should have the suffix of '__mdt'. This will append that suffix if it does not exist.
|
|
61
|
-
*
|
|
62
|
-
* @param typename Name of file
|
|
63
|
-
*/
|
|
64
|
-
// eslint-disable-next-line class-methods-use-this
|
|
65
|
-
appendDirectorySuffix(typename) {
|
|
66
|
-
return typename.endsWith('__mdt') ? typename : `${typename}__mdt`;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get the field primitive type from the custom metadata type that has a matching field name.
|
|
70
|
-
*
|
|
71
|
-
* @param fileData Array of objects based on metadata type xml
|
|
72
|
-
* @param fieldName Name of the field
|
|
73
|
-
* @return {string} Type used by a custom metadata record
|
|
74
|
-
*/
|
|
75
|
-
// eslint-disable-next-line class-methods-use-this
|
|
76
|
-
getFieldPrimitiveType(fileData = [], fieldName) {
|
|
77
|
-
var _a;
|
|
78
|
-
const matchingFile = fileData.find((file) => file.fullName === fieldName);
|
|
79
|
-
return matchingFile && ['Number', 'Percent'].includes(matchingFile.type)
|
|
80
|
-
? getNumberType(matchingFile.type, matchingFile.scale)
|
|
81
|
-
: (_a = fieldTypeMap[matchingFile === null || matchingFile === void 0 ? void 0 : matchingFile.type]) !== null && _a !== void 0 ? _a : 'string';
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get the field type from the custom metadata type that has a matching field name.
|
|
85
|
-
*
|
|
86
|
-
* @param fileData Array of objects based on metadata type xml
|
|
87
|
-
* @param fieldName Name of the field
|
|
88
|
-
* @return {string} Data Type of the field.
|
|
89
|
-
*/
|
|
90
|
-
// eslint-disable-next-line class-methods-use-this
|
|
91
|
-
getFieldDataType(fileData = [], fieldName = '') {
|
|
92
|
-
var _a;
|
|
93
|
-
return (_a = fileData.find((file) => file.fullName === fieldName)) === null || _a === void 0 ? void 0 : _a.type;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Goes through the file data that has been genreated and gets all of the field names and adds the
|
|
97
|
-
* name of the field that is used as the label for metadata record
|
|
98
|
-
*
|
|
99
|
-
* @param fileData Array of objects based on metadata type xml
|
|
100
|
-
* @param nameField name of the column that is going to be used for the name of the metadata record
|
|
101
|
-
* @return [] Array of field names
|
|
102
|
-
*/
|
|
103
|
-
// eslint-disable-next-line class-methods-use-this
|
|
104
|
-
getFieldNames(fileData, nameField) {
|
|
105
|
-
return [...fileData.map((file) => file.fullName), nameField];
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Takes JSON representation of CLI varargs and converts them to xml with help
|
|
109
|
-
* from helper.getFieldTemplate
|
|
110
|
-
*
|
|
111
|
-
* @param cliParams Object that holds key:value pairs from CLI input
|
|
112
|
-
* @param fileData Array of objects that contain field data
|
|
113
|
-
* @return {string} String representation of XML
|
|
114
|
-
*/
|
|
115
|
-
buildCustomFieldXml(fileData, cliParams, ignoreFields) {
|
|
116
|
-
let ret = '';
|
|
117
|
-
const templates = new templates_1.Templates();
|
|
118
|
-
for (const fieldName of Object.keys(cliParams)) {
|
|
119
|
-
const type = this.getFieldPrimitiveType(fileData, fieldName);
|
|
120
|
-
const dataType = this.getFieldDataType(fileData, fieldName);
|
|
121
|
-
// Added functionality to handle the igonre fields scenario.
|
|
122
|
-
if (templates.canConvert(dataType) || !ignoreFields) {
|
|
123
|
-
ret += getFieldTemplate(fieldName, cliParams[fieldName], type);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return ret;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
exports.CreateUtil = CreateUtil;
|
|
130
|
-
/**
|
|
131
|
-
* Get the number type based on the scale.
|
|
132
|
-
* If the scale === 0, it is an int, otherwise it is a double.
|
|
133
|
-
*
|
|
134
|
-
* @param type Number or Percent
|
|
135
|
-
* @param scale 0 or another number
|
|
136
|
-
* @return {string} int or double
|
|
137
|
-
*/
|
|
138
|
-
const getNumberType = (type, scale) => ['Number', 'Percent'].includes(type) && scale === 0 ? 'int' : 'double';
|
|
139
|
-
/**
|
|
140
|
-
* Template for a single customMetadata record value. This is used by helper.getRecordTemplate.
|
|
141
|
-
*
|
|
142
|
-
* @param fieldName Field API Name (i.e, Foo__c)
|
|
143
|
-
* @param val Value of the field
|
|
144
|
-
* @param type Field type (i.e. boolean, dateTime, date, string, double)
|
|
145
|
-
* @return {string} String representation of XML
|
|
146
|
-
*/
|
|
147
|
-
const getFieldTemplate = (fieldName, val, type) => {
|
|
148
|
-
const cleanValue = String(val).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
149
|
-
const value = val === null || val === '' ? '<value xsi:nil="true"/>' : `<value xsi:type="xsd:${type}">${cleanValue}</value>`;
|
|
150
|
-
return `
|
|
151
|
-
<values>
|
|
152
|
-
<field>${fieldName}</field>
|
|
153
|
-
${value}
|
|
154
|
-
</values>`;
|
|
155
|
-
};
|
|
156
|
-
/**
|
|
157
|
-
* Template to compile entire customMetadata record
|
|
158
|
-
*
|
|
159
|
-
* @param label Name of the record
|
|
160
|
-
* @param protection Is the record protected?
|
|
161
|
-
* @param values Template string representation of values
|
|
162
|
-
* @return {string} String representation of XML
|
|
163
|
-
*/
|
|
164
|
-
const getRecordTemplate = (label, protection, values) => `
|
|
165
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
166
|
-
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
167
|
-
<label>${label}</label>
|
|
168
|
-
<protected>${protection}</protected>${values}
|
|
169
|
-
</CustomMetadata>`.trim();
|
|
170
|
-
//# sourceMappingURL=createUtil.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/createUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
interface FileWriterResult {
|
|
4
|
-
dir: string;
|
|
5
|
-
fileName: string;
|
|
6
|
-
updated: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare class FileWriter {
|
|
9
|
-
/**
|
|
10
|
-
* Using the given file system, creates a file representing a new custom metadata type.
|
|
11
|
-
*
|
|
12
|
-
* @param fs
|
|
13
|
-
* @param devname
|
|
14
|
-
* @param objectXML
|
|
15
|
-
*/
|
|
16
|
-
writeTypeFile(corefs: typeof fs, dir: string, devName: string, objectXML: string): Promise<FileWriterResult>;
|
|
17
|
-
/**
|
|
18
|
-
* Using the given file system, creates a file representing a new field for the given custom metadata type
|
|
19
|
-
*
|
|
20
|
-
* @param fs
|
|
21
|
-
* @param fieldname
|
|
22
|
-
* @param fieldXML
|
|
23
|
-
*/
|
|
24
|
-
writeFieldFile(corefs: typeof fs, dir: string, fieldName: string, fieldXML: string): Promise<FileWriterResult>;
|
|
25
|
-
}
|
|
26
|
-
export declare const removeTrailingSlash: (dir: string) => string;
|
|
27
|
-
export {};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
* Licensed under the BSD 3-Clause license.
|
|
6
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.removeTrailingSlash = exports.FileWriter = void 0;
|
|
10
|
-
const fs = require("fs");
|
|
11
|
-
const path = require("path");
|
|
12
|
-
class FileWriter {
|
|
13
|
-
/**
|
|
14
|
-
* Using the given file system, creates a file representing a new custom metadata type.
|
|
15
|
-
*
|
|
16
|
-
* @param fs
|
|
17
|
-
* @param devname
|
|
18
|
-
* @param objectXML
|
|
19
|
-
*/
|
|
20
|
-
// eslint-disable-next-line class-methods-use-this
|
|
21
|
-
async writeTypeFile(corefs = fs, dir, devName, objectXML) {
|
|
22
|
-
let apiName = devName;
|
|
23
|
-
// replace __c with __mdt
|
|
24
|
-
if (apiName.endsWith('__c')) {
|
|
25
|
-
apiName = apiName.replace('__c', '__mdt');
|
|
26
|
-
}
|
|
27
|
-
// appending __mdt if they did not pass it in.
|
|
28
|
-
if (!apiName.endsWith('__mdt')) {
|
|
29
|
-
apiName += '__mdt';
|
|
30
|
-
}
|
|
31
|
-
const outputFilePath = path.join((0, exports.removeTrailingSlash)(dir), apiName);
|
|
32
|
-
const fileName = `${apiName}.object-meta.xml`;
|
|
33
|
-
const updated = fs.existsSync(path.join(outputFilePath, fileName));
|
|
34
|
-
await corefs.promises.mkdir(outputFilePath, { recursive: true });
|
|
35
|
-
await corefs.promises.writeFile(path.join(outputFilePath, fileName), objectXML);
|
|
36
|
-
return { dir: outputFilePath, fileName, updated };
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Using the given file system, creates a file representing a new field for the given custom metadata type
|
|
40
|
-
*
|
|
41
|
-
* @param fs
|
|
42
|
-
* @param fieldname
|
|
43
|
-
* @param fieldXML
|
|
44
|
-
*/
|
|
45
|
-
// /fields/{fieldAPI}.field-meta.xml
|
|
46
|
-
// eslint-disable-next-line class-methods-use-this
|
|
47
|
-
async writeFieldFile(corefs = fs, dir, fieldName, fieldXML) {
|
|
48
|
-
// appending __c if its not already there
|
|
49
|
-
if (fieldName.endsWith('__c') === false) {
|
|
50
|
-
fieldName += '__c';
|
|
51
|
-
}
|
|
52
|
-
const outputFilePath = path.join((0, exports.removeTrailingSlash)(dir), 'fields');
|
|
53
|
-
const fileName = `${fieldName}.field-meta.xml`;
|
|
54
|
-
const updated = fs.existsSync(path.join(outputFilePath, fileName));
|
|
55
|
-
await corefs.promises.mkdir(outputFilePath, { recursive: true });
|
|
56
|
-
await corefs.promises.writeFile(path.join(outputFilePath, fileName), fieldXML);
|
|
57
|
-
return { dir: outputFilePath, fileName, updated };
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.FileWriter = FileWriter;
|
|
61
|
-
const removeTrailingSlash = (dir) => dir.replace(/\/+$/, '');
|
|
62
|
-
exports.removeTrailingSlash = removeTrailingSlash;
|
|
63
|
-
//# sourceMappingURL=fileWriter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileWriter.js","sourceRoot":"","sources":["../../../src/lib/helpers/fileWriter.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yBAAyB;AACzB,6BAA6B;AAQ7B,MAAa,UAAU;IACrB;;;;;;OAMG;IACH,kDAAkD;IAC3C,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,GAAW,EAAE,OAAe,EAAE,SAAiB;QACrF,IAAI,OAAO,GAAG,OAAO,CAAC;QAEtB,yBAAyB;QACzB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,8CAA8C;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC9B,OAAO,IAAI,OAAO,CAAC;SACpB;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,GAAG,OAAO,kBAAkB,CAAC;QAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEnE,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAEhF,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,oCAAoC;IACpC,kDAAkD;IAC3C,KAAK,CAAC,cAAc,CACzB,MAAM,GAAG,EAAE,EACX,GAAW,EACX,SAAiB,EACjB,QAAgB;QAEhB,yCAAyC;QACzC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;YACvC,SAAS,IAAI,KAAK,CAAC;SACpB;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,GAAG,SAAS,iBAAiB,CAAC;QAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE/E,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;CACF;AA3DD,gCA2DC;AAEM,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAAvE,QAAA,mBAAmB,uBAAoD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadataUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/metadataUtil.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAAC,WAAyB,EAAE,SAAiB,EAAe,EAAE,CAAC,IAAA,yBAAiB,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;AAA5J,QAAA,aAAa,iBAA+I;AAEzK;;;;;GAKG;AACI,MAAM,sBAAsB,GAAG,CAAC,WAAyB,EAAW,EAAE,CAC3E,WAAW,CAAC,kBAAkB,KAAK,MAAM,IAAI,WAAW,CAAC,UAAU,KAAK,QAAQ,CAAC;AADtE,QAAA,sBAAsB,0BACgD;AAEnF;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAAC,WAAyB,EAAiB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;AAArF,QAAA,iBAAiB,qBAAoE;AAE3F,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAE,cAA4B,EAAU,EAAE,CAAC,MAAM,CAAC,WAAW,CACjH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;KAC1B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,MAAM,CAAC;KAC3E,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;IAC9B,MAAM,aAAa,GAAG,IAAA,qBAAa,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC/D,wCAAwC;IACxC,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE;QACrC,+DAA+D;QAC/D,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;KAC7B;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACvE,OAAO;YACL,CAAC,OAAO,SAAS,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,CAAC,QAAQ,SAAS,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAClG,CAAC;KACH;SAAM;QACL,OAAO;YACL,CAAC,OAAO,SAAS,EAAE,EAAE,EAAE,CAAC;YACxB,CAAC,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC;SAC1B,CAAC;KACH;AACH,CAAC,CAAC,CACL,CAAC;AAvBS,QAAA,kBAAkB,sBAuB3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validationUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/validationUtil.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAAqD;AACrD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,YAAY,EAAE;IACjF,sBAAsB;IACtB,oBAAoB;IACpB,0BAA0B;CAC3B,CAAC,CAAC;AAEH;;;;GAIG;AACI,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,cAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEF;;;;GAIG;AACI,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,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC1E;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AATW,QAAA,wBAAwB,4BASnC;AAEK,MAAM,yBAAyB,GAAG,CAAC,UAAkB,EAAW,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,IAAI,wCAAwC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAAlJ,QAAA,yBAAyB,6BAAyH;AAC/J;;;;GAIG;AACI,MAAM,0BAA0B,GAAG,CAAC,QAAgB,EAAU,EAAE;IACrE,sFAAsF;IACtF,IAAI,CAAC,IAAA,iCAAyB,EAAC,QAAQ,CAAC,EAAE;QACxC,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAChF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC;AAEF;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE;IAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;QACpB,MAAM,IAAI,cAAO,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../../../src/lib/interfaces/createConfig.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { CustomField } from 'jsforce/api/metadata';
|
|
2
|
-
export declare class Templates {
|
|
3
|
-
/**
|
|
4
|
-
* Using the given data and visibility, creates the body of a type metadata file
|
|
5
|
-
*
|
|
6
|
-
* @param data
|
|
7
|
-
* @param visibility
|
|
8
|
-
*/
|
|
9
|
-
createObjectXML({ label, pluralLabel }: {
|
|
10
|
-
label: string;
|
|
11
|
-
pluralLabel: string;
|
|
12
|
-
}, visibility: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Using the given data and defaultToString, creates the body for a field file.
|
|
15
|
-
*
|
|
16
|
-
* @param data Record details
|
|
17
|
-
* @param defaultToString If the defaultToString set type to Text for unsupported field types
|
|
18
|
-
*/
|
|
19
|
-
createFieldXML(data: CustomField, defaultToString: boolean): string;
|
|
20
|
-
createDefaultTypeStructure(fullName: string, type: string, label: string, picklistValues: string[], decimalplaces?: number): CustomField;
|
|
21
|
-
canConvert(type: string): boolean;
|
|
22
|
-
private getType;
|
|
23
|
-
private getConvertType;
|
|
24
|
-
private getFullName;
|
|
25
|
-
private getDescription;
|
|
26
|
-
private getExternalId;
|
|
27
|
-
private getFieldManageability;
|
|
28
|
-
private getInlineHelpText;
|
|
29
|
-
private getLabel;
|
|
30
|
-
private getRequiredTag;
|
|
31
|
-
private getPrecisionTag;
|
|
32
|
-
private getScaleTag;
|
|
33
|
-
private getLengthTag;
|
|
34
|
-
private getVisibleLines;
|
|
35
|
-
private getDefaultValue;
|
|
36
|
-
private getValueSet;
|
|
37
|
-
}
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
* Licensed under the BSD 3-Clause license.
|
|
6
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.Templates = void 0;
|
|
10
|
-
/* eslint-disable class-methods-use-this */
|
|
11
|
-
const core_1 = require("@salesforce/core");
|
|
12
|
-
core_1.Messages.importMessagesDirectory(__dirname);
|
|
13
|
-
const messages = core_1.Messages.load('@salesforce/plugin-custom-metadata', 'template', ['errorNotAValidType']);
|
|
14
|
-
const createPicklistValues = (values) => values.map((value) => ({ fullName: value, label: value, default: false }));
|
|
15
|
-
class Templates {
|
|
16
|
-
/**
|
|
17
|
-
* Using the given data and visibility, creates the body of a type metadata file
|
|
18
|
-
*
|
|
19
|
-
* @param data
|
|
20
|
-
* @param visibility
|
|
21
|
-
*/
|
|
22
|
-
createObjectXML({ label, pluralLabel }, visibility) {
|
|
23
|
-
let returnValue = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
24
|
-
returnValue += '<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">\n';
|
|
25
|
-
returnValue += `\t<label>${label}</label>\n`;
|
|
26
|
-
returnValue += `\t<pluralLabel>${pluralLabel}</pluralLabel>\n`;
|
|
27
|
-
returnValue += `\t<visibility>${visibility}</visibility>\n`;
|
|
28
|
-
returnValue += '</CustomObject>\n';
|
|
29
|
-
return returnValue;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Using the given data and defaultToString, creates the body for a field file.
|
|
33
|
-
*
|
|
34
|
-
* @param data Record details
|
|
35
|
-
* @param defaultToString If the defaultToString set type to Text for unsupported field types
|
|
36
|
-
*/
|
|
37
|
-
createFieldXML(data, defaultToString) {
|
|
38
|
-
let returnValue = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
39
|
-
returnValue += '<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">\n';
|
|
40
|
-
returnValue += this.getFullName(data);
|
|
41
|
-
returnValue += this.getDescription(data);
|
|
42
|
-
returnValue += this.getExternalId(data);
|
|
43
|
-
returnValue += this.getFieldManageability(data);
|
|
44
|
-
returnValue += this.getInlineHelpText(data);
|
|
45
|
-
returnValue += this.getLabel(data);
|
|
46
|
-
returnValue += this.getType(data, defaultToString);
|
|
47
|
-
returnValue += this.getDefaultValue(data);
|
|
48
|
-
returnValue += this.getRequiredTag(data);
|
|
49
|
-
returnValue += this.getLengthTag(data);
|
|
50
|
-
returnValue += this.getVisibleLines(data);
|
|
51
|
-
// preventing standard objects that have fields that are being convered from passing in data
|
|
52
|
-
// that is no longer relevant
|
|
53
|
-
// e.g. multiselectpicklist are being converted to long text area and long text area's do not support valuesets
|
|
54
|
-
if (this.canConvert(data.type)) {
|
|
55
|
-
returnValue += this.getValueSet(data);
|
|
56
|
-
returnValue += this.getPrecisionTag(data);
|
|
57
|
-
returnValue += this.getScaleTag(data);
|
|
58
|
-
}
|
|
59
|
-
returnValue += '</CustomField>\n';
|
|
60
|
-
return returnValue;
|
|
61
|
-
}
|
|
62
|
-
createDefaultTypeStructure(fullName, type, label, picklistValues, decimalplaces = 0) {
|
|
63
|
-
const precision = 18 - decimalplaces;
|
|
64
|
-
const scale = decimalplaces;
|
|
65
|
-
const baseObject = { fullName, type, label, summaryFilterItems: [] };
|
|
66
|
-
switch (type) {
|
|
67
|
-
case 'Checkbox':
|
|
68
|
-
return { ...baseObject, defaultValue: 'false' };
|
|
69
|
-
case 'Email':
|
|
70
|
-
return { ...baseObject, unique: false };
|
|
71
|
-
case 'Number':
|
|
72
|
-
return { ...baseObject, precision, scale, unique: false };
|
|
73
|
-
case 'Percent':
|
|
74
|
-
return { ...baseObject, precision, scale };
|
|
75
|
-
case 'Picklist':
|
|
76
|
-
return {
|
|
77
|
-
...baseObject,
|
|
78
|
-
valueSet: {
|
|
79
|
-
restricted: true,
|
|
80
|
-
valueSetDefinition: {
|
|
81
|
-
sorted: false,
|
|
82
|
-
value: createPicklistValues(picklistValues),
|
|
83
|
-
},
|
|
84
|
-
valueSettings: [],
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
case 'Text':
|
|
88
|
-
return { ...baseObject, unique: false, length: 100 };
|
|
89
|
-
case 'LongTextArea':
|
|
90
|
-
return { ...baseObject, length: 32768, visibleLines: 3 };
|
|
91
|
-
case 'Date':
|
|
92
|
-
case 'DateTime':
|
|
93
|
-
case 'Phone':
|
|
94
|
-
case 'TextArea':
|
|
95
|
-
case 'Url':
|
|
96
|
-
return baseObject;
|
|
97
|
-
default:
|
|
98
|
-
return baseObject;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
canConvert(type) {
|
|
102
|
-
const metadataFieldTypes = [
|
|
103
|
-
'Checkbox',
|
|
104
|
-
'Date',
|
|
105
|
-
'DateTime',
|
|
106
|
-
'Email',
|
|
107
|
-
'Number',
|
|
108
|
-
'Percent',
|
|
109
|
-
'Phone',
|
|
110
|
-
'Picklist',
|
|
111
|
-
'Text',
|
|
112
|
-
'TextArea',
|
|
113
|
-
'LongTextArea',
|
|
114
|
-
'Url',
|
|
115
|
-
];
|
|
116
|
-
return metadataFieldTypes.includes(type);
|
|
117
|
-
}
|
|
118
|
-
getType(data, defaultToMetadataType) {
|
|
119
|
-
if (this.canConvert(data.type)) {
|
|
120
|
-
// To handle the text formula field scenario where field type will be Text with no length attribute
|
|
121
|
-
if (data.type === 'Text' && data.length === undefined) {
|
|
122
|
-
return '\t<type>LongTextArea</type>\n';
|
|
123
|
-
}
|
|
124
|
-
return `\t<type>${data.type}</type>\n`;
|
|
125
|
-
}
|
|
126
|
-
else if (defaultToMetadataType) {
|
|
127
|
-
return `\t<type>${this.getConvertType(data)}</type>\n`;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
throw new core_1.SfError(messages.getMessage('errorNotAValidType', [data.type]));
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
getConvertType(data) {
|
|
134
|
-
if (data.type === 'Html' ||
|
|
135
|
-
data.type === 'MultiselectPicklist' ||
|
|
136
|
-
(data.type === 'Text' && data.length === undefined)) {
|
|
137
|
-
return 'LongTextArea';
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
return 'Text';
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
getFullName(data) {
|
|
144
|
-
const name = data.fullName.endsWith('__c') ? data.fullName : data.fullName + '__c';
|
|
145
|
-
return `\t<fullName>${name}</fullName>\n`;
|
|
146
|
-
}
|
|
147
|
-
getDescription(data) {
|
|
148
|
-
return data.description ? `\t<description>${data.description}</description>\n` : '';
|
|
149
|
-
}
|
|
150
|
-
getExternalId(data) {
|
|
151
|
-
return data.externalId ? `\t<externalId>${data.externalId}</externalId>\n` : '';
|
|
152
|
-
}
|
|
153
|
-
getFieldManageability(data) {
|
|
154
|
-
return `\t<fieldManageability>${data.fieldManageability || 'DeveloperControlled'}</fieldManageability>\n`;
|
|
155
|
-
}
|
|
156
|
-
getInlineHelpText(data) {
|
|
157
|
-
return data.inlineHelpText ? `\t<inlineHelpText>${data.inlineHelpText}</inlineHelpText>\n` : '';
|
|
158
|
-
}
|
|
159
|
-
getLabel(data) {
|
|
160
|
-
return `\t<label>${data.label}</label>\n`;
|
|
161
|
-
}
|
|
162
|
-
getRequiredTag(data) {
|
|
163
|
-
return typeof data.unique === 'boolean' ? `\t<unique>${data.unique}</unique>\n` : '';
|
|
164
|
-
}
|
|
165
|
-
getPrecisionTag(data) {
|
|
166
|
-
return data.precision ? `\t<precision>${data.precision}</precision>\n` : '';
|
|
167
|
-
}
|
|
168
|
-
getScaleTag(data) {
|
|
169
|
-
return typeof data.scale !== 'undefined' ? `\t<scale>${data.scale}</scale>\n` : '';
|
|
170
|
-
}
|
|
171
|
-
getLengthTag(data) {
|
|
172
|
-
// If field type is multiselect or
|
|
173
|
-
// data type is text with no length attribute then it is formula field then set the length to 32768 as we are setting the type LongTextArea
|
|
174
|
-
if (data.type === 'MultiselectPicklist' || (data.type === 'Text' && data.length === undefined)) {
|
|
175
|
-
return '\t<length>32768</length>\n';
|
|
176
|
-
}
|
|
177
|
-
if (data.length) {
|
|
178
|
-
return `\t<length>${data.length}</length>\n`;
|
|
179
|
-
}
|
|
180
|
-
// For fields that are being translated from Custom objects that do not have a matching type they are
|
|
181
|
-
// being defaulted to a Text field. They need to have a minimum length to them
|
|
182
|
-
// e.g. Field types that are getting converted: Currency, Location, MasterDetail, Lookup
|
|
183
|
-
return !this.canConvert(data.type) && this.getConvertType(data) === 'Text' ? '\t<length>100</length>\n' : '';
|
|
184
|
-
}
|
|
185
|
-
getVisibleLines(data) {
|
|
186
|
-
if (data.type === 'Text' && data.length === undefined) {
|
|
187
|
-
return '\t<visibleLines>3</visibleLines>\n';
|
|
188
|
-
}
|
|
189
|
-
return data.visibleLines ? `\t<visibleLines>${data.visibleLines}</visibleLines>\n` : '';
|
|
190
|
-
}
|
|
191
|
-
getDefaultValue(data) {
|
|
192
|
-
if (data.type === 'Currency') {
|
|
193
|
-
return data.defaultValue ? `\t<defaultValue>'${data.defaultValue}'</defaultValue>\n` : '';
|
|
194
|
-
}
|
|
195
|
-
else if (data.type === 'Checkbox' && data.defaultValue === undefined) {
|
|
196
|
-
return '\t<defaultValue>false</defaultValue>\n';
|
|
197
|
-
}
|
|
198
|
-
return data.defaultValue ? `\t<defaultValue>${data.defaultValue}</defaultValue>\n` : '';
|
|
199
|
-
}
|
|
200
|
-
getValueSet(data) {
|
|
201
|
-
let fieldValue = '';
|
|
202
|
-
if (data.valueSet) {
|
|
203
|
-
fieldValue += '\t<valueSet>\n';
|
|
204
|
-
fieldValue += `\t\t<restricted>${data.valueSet.restricted || false}</restricted>\n`;
|
|
205
|
-
fieldValue += '\t\t<valueSetDefinition>\n';
|
|
206
|
-
fieldValue += `\t\t\t<sorted>${data.valueSet.valueSetDefinition.sorted || false}</sorted>\n`;
|
|
207
|
-
data.valueSet.valueSetDefinition.value.forEach((value) => {
|
|
208
|
-
fieldValue += '\t\t\t<value>\n';
|
|
209
|
-
fieldValue += `\t\t\t\t<fullName>${value.fullName}</fullName>\n`;
|
|
210
|
-
fieldValue += `\t\t\t\t<default>${value.default || false}</default>\n`;
|
|
211
|
-
fieldValue += `\t\t\t\t<label>${value.label}</label>\n`;
|
|
212
|
-
fieldValue += '\t\t\t</value>\n';
|
|
213
|
-
});
|
|
214
|
-
fieldValue += '\t\t</valueSetDefinition>\n';
|
|
215
|
-
fieldValue += '\t</valueSet>\n';
|
|
216
|
-
}
|
|
217
|
-
return fieldValue;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
exports.Templates = Templates;
|
|
221
|
-
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/lib/templates/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"commandDescription": "generate a custom metadata field based on the field type provided",
|
|
3
|
-
"commandLongDescription": "Generate a custom metadata field based on the field type provided.",
|
|
4
|
-
"exampleCaption1": "Create a metadata file for a custom checkbox field:",
|
|
5
|
-
"exampleCaption2": "Create a metadata file for a custom picklist field:",
|
|
6
|
-
"exampleCaption3": "Create a metadata file for a custom number field:",
|
|
7
|
-
"nameFlagDescription": "unique name for the field",
|
|
8
|
-
"nameFlagLongDescription": "The unique name for the field.",
|
|
9
|
-
"fieldTypeDescription": "type of field",
|
|
10
|
-
"fieldTypeLongDescription": "The type of field.",
|
|
11
|
-
"picklistValuesFlagDescription": "comma-separated list of picklist values; required for Picklist fields",
|
|
12
|
-
"picklistValuesFlagLongDescription": "A comma-separated list of picklist values. These values are required when creating a Picklist field.",
|
|
13
|
-
"decimalplacesFlagDescription": "number of decimal places to use for Number or Percent fields",
|
|
14
|
-
"decimalplacesFlagLongDescription": "The number of decimal places to use for Number or Percent fields. The value must be greater than or equal to zero.",
|
|
15
|
-
"labelFlagDescription": "label for the field",
|
|
16
|
-
"labelFlagLongDescription": "The label for the field.",
|
|
17
|
-
"outputDirectoryFlagDescription": "directory to store newly-created field definition files",
|
|
18
|
-
"outputDirectoryFlagLongDescription": "The directory to store the newly-created field definition files. The location can be an absolute path or relative to the current working directory. The default is the current directory.",
|
|
19
|
-
"invalidCustomFieldError": "'%s' is an invalid field. Custom fields can only contain alphanumeric characters, must begin with a letter, cannot end with an underscore, and cannot contain two consecutive underscore characters.",
|
|
20
|
-
"picklistValuesNotSuppliedError": "Picklist values are required when field type is Picklist.",
|
|
21
|
-
"targetDirectory": "target dir = %s",
|
|
22
|
-
"fileCreated": " created %s",
|
|
23
|
-
"fileUpdate": " updated %s"
|
|
24
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"commandDescription": "create a new record for a given custom metadata type in the current project",
|
|
3
|
-
"commandLongDescription": "Create a new record for a given custom metadata type in the current project.",
|
|
4
|
-
|
|
5
|
-
"exampleCaption1": "Create a record metadata file for custom metadata type 'MyCMT' with values specified for two custom fields:",
|
|
6
|
-
"exampleCaption2": "Create a protected record metadata file for custom metadata type 'MyCMT' with a specific label and values specified for two custom fields:",
|
|
7
|
-
|
|
8
|
-
"typenameFlagDescription": "API name of the custom metadata type to create a record for",
|
|
9
|
-
"typenameFlagLongDescription": "The API name of the custom metadata type to create a record for.",
|
|
10
|
-
|
|
11
|
-
"recordNameFlagDescription": "name for the new record",
|
|
12
|
-
"recordNameFlagLongDescription": "The name for the new record.",
|
|
13
|
-
|
|
14
|
-
"labelFlagDescription": "label for the new record",
|
|
15
|
-
"labelFlagLongDescription": "The label for the new record.",
|
|
16
|
-
"labelFlagExample": "My Record",
|
|
17
|
-
|
|
18
|
-
"protectedFlagDescription": "protect the record when it is in a managed package",
|
|
19
|
-
"protectedFlagLongDescription": "Protect the record when it is in a managed package. Protected records can only be accessed by code in the same managed package namespace.",
|
|
20
|
-
|
|
21
|
-
"inputDirectoryFlagDescription": "directory to pull the custom metadata type definition from",
|
|
22
|
-
"inputDirectoryFlagLongDescription": "The directory to pull the custom metadata type definition from.",
|
|
23
|
-
|
|
24
|
-
"outputDirectoryFlagDescription": "directory to store newly-created custom metadata record files",
|
|
25
|
-
"outputDirectoryFlagLongDescription": "The directory to store newly-created custom metadata record files.",
|
|
26
|
-
|
|
27
|
-
"errorInvalidCustomField": "Custom fields must end in __c.",
|
|
28
|
-
"successResponse": "Created custom metadata record of the type '%s' with record name '%s', label '%s', and protected '%s' at '%s'.",
|
|
29
|
-
"notValidAPINameError": "'%s' is not a valid API name for a custom metadata type.",
|
|
30
|
-
"notAValidRecordNameError": "'%s' is not a valid record name for a custom metadata record. Record names can only contain alphanumeric characters, must begin with a letter, cannot end with an underscore, and cannot contain two consecutive underscore characters.",
|
|
31
|
-
"notAValidLabelNameError": "'%s' is too long to be a label. The maximum length of the label is 40 characters."
|
|
32
|
-
}
|