@salesforce/plugin-custom-metadata 2.0.9 → 2.0.12

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.
Files changed (80) hide show
  1. package/README.md +0 -1
  2. package/lib/commands/generate/cmdt/field.d.ts +23 -0
  3. package/lib/commands/generate/cmdt/field.js +100 -0
  4. package/lib/commands/generate/cmdt/field.js.map +1 -0
  5. package/lib/commands/generate/cmdt/fromorg.d.ts +26 -0
  6. package/lib/commands/generate/cmdt/fromorg.js +184 -0
  7. package/lib/commands/generate/cmdt/fromorg.js.map +1 -0
  8. package/lib/commands/generate/cmdt/object.d.ts +23 -0
  9. package/lib/commands/generate/cmdt/object.js +79 -0
  10. package/lib/commands/generate/cmdt/object.js.map +1 -0
  11. package/lib/commands/generate/cmdt/record.d.ts +29 -0
  12. package/lib/commands/generate/cmdt/record.js +111 -0
  13. package/lib/commands/generate/cmdt/record.js.map +1 -0
  14. package/lib/commands/generate/cmdt/records.d.ts +18 -0
  15. package/lib/commands/generate/cmdt/records.js +105 -0
  16. package/lib/commands/generate/cmdt/records.js.map +1 -0
  17. package/lib/shared/helpers/createUtil.d.ts +51 -0
  18. package/lib/shared/helpers/createUtil.js +168 -0
  19. package/lib/shared/helpers/createUtil.js.map +1 -0
  20. package/lib/shared/helpers/fileWriter.d.ts +24 -0
  21. package/lib/shared/helpers/fileWriter.js +59 -0
  22. package/lib/shared/helpers/fileWriter.js.map +1 -0
  23. package/lib/{lib → shared}/helpers/metadataUtil.d.ts +1 -1
  24. package/lib/{lib → shared}/helpers/metadataUtil.js +1 -1
  25. package/lib/shared/helpers/metadataUtil.js.map +1 -0
  26. package/lib/{lib → shared}/helpers/validationUtil.d.ts +0 -0
  27. package/lib/{lib → shared}/helpers/validationUtil.js +0 -0
  28. package/lib/shared/helpers/validationUtil.js.map +1 -0
  29. package/lib/{lib → shared}/interfaces/createConfig.d.ts +3 -2
  30. package/lib/{lib → shared}/interfaces/createConfig.js +0 -0
  31. package/lib/shared/interfaces/createConfig.js.map +1 -0
  32. package/lib/shared/templates/templates.d.ts +20 -0
  33. package/lib/shared/templates/templates.js +208 -0
  34. package/lib/shared/templates/templates.js.map +1 -0
  35. package/messages/field.md +79 -0
  36. package/messages/fromorg.md +87 -0
  37. package/messages/object.md +73 -0
  38. package/messages/record.md +53 -0
  39. package/messages/records.md +49 -0
  40. package/messages/template.md +3 -0
  41. package/messages/validation.md +11 -0
  42. package/oclif.manifest.json +1 -1
  43. package/package.json +20 -22
  44. package/schemas/generate-cmdt-fromorg.json +19 -0
  45. package/schemas/generate-cmdt-record.json +378 -0
  46. package/schemas/generate-cmdt-records.json +406 -0
  47. package/lib/commands/force/cmdt/create.d.ts +0 -25
  48. package/lib/commands/force/cmdt/create.js +0 -94
  49. package/lib/commands/force/cmdt/create.js.map +0 -1
  50. package/lib/commands/force/cmdt/field/create.d.ts +0 -25
  51. package/lib/commands/force/cmdt/field/create.js +0 -113
  52. package/lib/commands/force/cmdt/field/create.js.map +0 -1
  53. package/lib/commands/force/cmdt/generate.d.ts +0 -27
  54. package/lib/commands/force/cmdt/generate.js +0 -219
  55. package/lib/commands/force/cmdt/generate.js.map +0 -1
  56. package/lib/commands/force/cmdt/record/create.d.ts +0 -32
  57. package/lib/commands/force/cmdt/record/create.js +0 -140
  58. package/lib/commands/force/cmdt/record/create.js.map +0 -1
  59. package/lib/commands/force/cmdt/record/insert.d.ts +0 -16
  60. package/lib/commands/force/cmdt/record/insert.js +0 -110
  61. package/lib/commands/force/cmdt/record/insert.js.map +0 -1
  62. package/lib/lib/helpers/createUtil.d.ts +0 -62
  63. package/lib/lib/helpers/createUtil.js +0 -170
  64. package/lib/lib/helpers/createUtil.js.map +0 -1
  65. package/lib/lib/helpers/fileWriter.d.ts +0 -27
  66. package/lib/lib/helpers/fileWriter.js +0 -63
  67. package/lib/lib/helpers/fileWriter.js.map +0 -1
  68. package/lib/lib/helpers/metadataUtil.js.map +0 -1
  69. package/lib/lib/helpers/validationUtil.js.map +0 -1
  70. package/lib/lib/interfaces/createConfig.js.map +0 -1
  71. package/lib/lib/templates/templates.d.ts +0 -37
  72. package/lib/lib/templates/templates.js +0 -221
  73. package/lib/lib/templates/templates.js.map +0 -1
  74. package/messages/createField.json +0 -24
  75. package/messages/createRecord.json +0 -32
  76. package/messages/createType.json +0 -33
  77. package/messages/generate.json +0 -40
  78. package/messages/insertRecord.json +0 -26
  79. package/messages/template.json +0 -3
  80. 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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
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":";;;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,6BAA6B;AAE7B,qDAA4C;AAE5C,sDAAmD;AAMnD,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,QAAQ;IACtB,GAAG,EAAE,QAAQ;CACd,CAAC;AACF,sJAAsJ;AACtJ,MAAa,UAAU;IACrB;;;OAGG;IAEH;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAC,YAA0B;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,YAAY,CAAC,SAAS,EACtB,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,UAAU,cAAc,CAClE,CAAC;QACF,MAAM,gBAAgB,GAAG,iBAAiB,CACxC,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,SAAS,EACtB,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,CACjG,CAAC;QAEF,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAED;;;;;OAKG;IACH,kDAAkD;IAC3C,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,SAAmB;QAChE,MAAM,MAAM,GAAG,IAAI,2BAAS,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,GAAG,CAChB,SAAS;aACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;aAC5C,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAQ,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAqB,CAAC,WAAW,CAAC;QACjE,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kDAAkD;IAC3C,qBAAqB,CAAC,QAAgB;QAC3C,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACH,kDAAkD;IAC3C,qBAAqB,CAAC,WAA0B,EAAE,EAAE,SAAkB;;QAC3E,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAC1E,OAAO,YAAY,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;YACtE,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;YACtD,CAAC,CAAC,MAAC,YAAY,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAY,mCAAI,QAAQ,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACH,kDAAkD;IAC3C,gBAAgB,CAAC,WAA0B,EAAE,EAAE,SAAS,GAAG,EAAE;;QAClE,OAAO,MAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,0CAAE,IAAI,CAAC;IACpE,CAAC;IAED;;;;;;;OAOG;IACH,kDAAkD;IAC3C,aAAa,CAAC,QAAuB,EAAE,SAAiB;QAC7D,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CACzB,QAAuB,EACvB,SAAiC,EACjC,YAAqB;QAErB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC5D,4DAA4D;YAC5D,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;gBACnD,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;aAChE;SACF;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAzHD,gCAyHC;AAED;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,KAAa,EAAoB,EAAE,CACtE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,GAAW,EAAE,IAAY,EAAU,EAAE;IAChF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClG,MAAM,KAAK,GACT,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB,IAAI,KAAK,UAAU,UAAU,CAAC;IAEjH,OAAO;;iBAEQ,SAAS;UAChB,KAAK;cACD,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,UAAmB,EAAE,MAAc,EAAU,EAAE,CACvF;;;aAGW,KAAK;iBACD,UAAU,eAAe,MAAM;kBAC9B,CAAC,IAAI,EAAE,CAAC"}
@@ -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":";AAAA;;;;;GAKG;;;AAEH,2CAA2C;AAE3C,2CAAqD;AACrD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,UAAU,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAGzG,MAAM,oBAAoB,GAAG,CAAC,MAAgB,EAAiB,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAE7E,MAAa,SAAS;IACpB;;;;;OAKG;IACI,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAA0C,EAAE,UAAkB;QACvG,IAAI,WAAW,GAAG,0CAA0C,CAAC;QAC7D,WAAW,IAAI,kEAAkE,CAAC;QAClF,WAAW,IAAI,YAAY,KAAK,YAAY,CAAC;QAC7C,WAAW,IAAI,kBAAkB,WAAW,kBAAkB,CAAC;QAC/D,WAAW,IAAI,iBAAiB,UAAU,iBAAiB,CAAC;QAC5D,WAAW,IAAI,mBAAmB,CAAC;QACnC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,IAAiB,EAAE,eAAwB;QAC/D,IAAI,WAAW,GAAG,0CAA0C,CAAC;QAC7D,WAAW,IAAI,iEAAiE,CAAC;QACjF,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,WAAW,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACnD,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1C,4FAA4F;QAC5F,6BAA6B;QAC7B,+GAA+G;QAC/G,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACvC;QAED,WAAW,IAAI,kBAAkB,CAAC;QAClC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,0BAA0B,CAC/B,QAAgB,EAChB,IAAY,EACZ,KAAa,EACb,cAAwB,EACxB,aAAa,GAAG,CAAC;QAEjB,MAAM,SAAS,GAAG,EAAE,GAAG,aAAa,CAAC;QACrC,MAAM,KAAK,GAAG,aAAa,CAAC;QAC5B,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;QACrE,QAAQ,IAAI,EAAE;YACZ,KAAK,UAAU;gBACb,OAAO,EAAE,GAAG,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;YAClD,KAAK,OAAO;gBACV,OAAO,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC1C,KAAK,QAAQ;gBACX,OAAO,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC5D,KAAK,SAAS;gBACZ,OAAO,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7C,KAAK,UAAU;gBACb,OAAO;oBACL,GAAG,UAAU;oBACb,QAAQ,EAAE;wBACR,UAAU,EAAE,IAAI;wBAChB,kBAAkB,EAAE;4BAClB,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,oBAAoB,CAAC,cAAc,CAAC;yBAC5C;wBACD,aAAa,EAAE,EAAE;qBAClB;iBACF,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACvD,KAAK,cAAc;gBACjB,OAAO,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC3D,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU,CAAC;YAChB,KAAK,OAAO,CAAC;YACb,KAAK,UAAU,CAAC;YAChB,KAAK,KAAK;gBACR,OAAO,UAAU,CAAC;YACpB;gBACE,OAAO,UAAU,CAAC;SACrB;IACH,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,MAAM,kBAAkB,GAAG;YACzB,UAAU;YACV,MAAM;YACN,UAAU;YACV,OAAO;YACP,QAAQ;YACR,SAAS;YACT,OAAO;YACP,UAAU;YACV,MAAM;YACN,UAAU;YACV,cAAc;YACd,KAAK;SACN,CAAC;QACF,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEO,OAAO,CAAC,IAAiB,EAAE,qBAA8B;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,mGAAmG;YACnG,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;gBACrD,OAAO,+BAA+B,CAAC;aACxC;YACD,OAAO,WAAW,IAAI,CAAC,IAAI,WAAW,CAAC;SACxC;aAAM,IAAI,qBAAqB,EAAE;YAChC,OAAO,WAAW,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;SACxD;aAAM;YACL,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3E;IACH,CAAC;IAEO,cAAc,CAAC,IAAiB;QACtC,IACE,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,qBAAqB;YACnC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,EACnD;YACA,OAAO,cAAc,CAAC;SACvB;aAAM;YACL,OAAO,MAAM,CAAC;SACf;IACH,CAAC;IAEO,WAAW,CAAC,IAAiB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnF,OAAO,eAAe,IAAI,eAAe,CAAC;IAC5C,CAAC;IAEO,cAAc,CAAC,IAAiB;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,WAAW,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAEO,aAAa,CAAC,IAAiB;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,CAAC;IAEO,qBAAqB,CAAC,IAAiB;QAC7C,OAAO,yBAAyB,IAAI,CAAC,kBAAkB,IAAI,qBAAqB,yBAAyB,CAAC;IAC5G,CAAC;IAEO,iBAAiB,CAAC,IAAiB;QACzC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,cAAc,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,CAAC;IACO,QAAQ,CAAC,IAAiB;QAChC,OAAO,YAAY,IAAI,CAAC,KAAK,YAAY,CAAC;IAC5C,CAAC;IAEO,cAAc,CAAC,IAAiB;QACtC,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,CAAC;IAEO,eAAe,CAAC,IAAiB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IAEO,WAAW,CAAC,IAAiB;QACnC,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAEO,YAAY,CAAC,IAAiB;QACpC,kCAAkC;QAClC,2IAA2I;QAC3I,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;YAC9F,OAAO,4BAA4B,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,aAAa,IAAI,CAAC,MAAM,aAAa,CAAC;SAC9C;QACD,qGAAqG;QACrG,8EAA8E;QAC9E,wFAAwF;QACxF,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/G,CAAC;IAEO,eAAe,CAAC,IAAiB;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YACrD,OAAO,oCAAoC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAEO,eAAe,CAAC,IAAiB;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,YAAY,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3F;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACtE,OAAO,wCAAwC,CAAC;SACjD;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAEO,WAAW,CAAC,IAAiB;QACnC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,IAAI,gBAAgB,CAAC;YAC/B,UAAU,IAAI,mBAAmB,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,KAAK,iBAAiB,CAAC;YACpF,UAAU,IAAI,4BAA4B,CAAC;YAC3C,UAAU,IAAI,iBAAiB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,IAAI,KAAK,aAAa,CAAC;YAC7F,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvD,UAAU,IAAI,iBAAiB,CAAC;gBAChC,UAAU,IAAI,qBAAqB,KAAK,CAAC,QAAQ,eAAe,CAAC;gBACjE,UAAU,IAAI,oBAAoB,KAAK,CAAC,OAAO,IAAI,KAAK,cAAc,CAAC;gBACvE,UAAU,IAAI,kBAAkB,KAAK,CAAC,KAAK,YAAY,CAAC;gBACxD,UAAU,IAAI,kBAAkB,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,UAAU,IAAI,6BAA6B,CAAC;YAC5C,UAAU,IAAI,iBAAiB,CAAC;SACjC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AApOD,8BAoOC"}
@@ -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
- }