@kitalive/sfdx-plugin 0.2.0 → 0.4.0

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 (40) hide show
  1. package/README.md +90 -42
  2. package/lib/bulk.js +81 -38
  3. package/lib/bulk.js.map +1 -1
  4. package/lib/commands/kit/data/bulk/delete.js +42 -15
  5. package/lib/commands/kit/data/bulk/delete.js.map +1 -1
  6. package/lib/commands/kit/data/bulk/insert.js +1 -1
  7. package/lib/commands/kit/data/bulk/insert.js.map +1 -1
  8. package/lib/commands/kit/data/bulk/query.js +12 -5
  9. package/lib/commands/kit/data/bulk/query.js.map +1 -1
  10. package/lib/commands/kit/data/bulk/update.js +1 -1
  11. package/lib/commands/kit/data/bulk/update.js.map +1 -1
  12. package/lib/commands/kit/data/bulk/upsert.js +1 -1
  13. package/lib/commands/kit/data/bulk/upsert.js.map +1 -1
  14. package/lib/commands/kit/data/csv/convert.d.ts +0 -13
  15. package/lib/commands/kit/data/csv/convert.js +45 -77
  16. package/lib/commands/kit/data/csv/convert.js.map +1 -1
  17. package/lib/commands/kit/layout/assignments/deploy.d.ts +0 -1
  18. package/lib/commands/kit/layout/assignments/deploy.js +9 -8
  19. package/lib/commands/kit/layout/assignments/deploy.js.map +1 -1
  20. package/lib/commands/kit/layout/assignments/retrieve.d.ts +1 -1
  21. package/lib/commands/kit/layout/assignments/retrieve.js +71 -21
  22. package/lib/commands/kit/layout/assignments/retrieve.js.map +1 -1
  23. package/lib/commands/kit/object/fields/describe.d.ts +14 -0
  24. package/lib/commands/kit/object/fields/describe.js +85 -0
  25. package/lib/commands/kit/object/fields/describe.js.map +1 -0
  26. package/lib/commands/kit/object/fields/setup.d.ts +21 -0
  27. package/lib/commands/kit/object/fields/setup.js +197 -0
  28. package/lib/commands/kit/object/fields/setup.js.map +1 -0
  29. package/lib/commands/kit/script/execute.d.ts +1 -1
  30. package/lib/commands/kit/script/execute.js +19 -8
  31. package/lib/commands/kit/script/execute.js.map +1 -1
  32. package/lib/metadata.d.ts +18 -0
  33. package/lib/metadata.js +69 -0
  34. package/lib/metadata.js.map +1 -0
  35. package/lib/types.d.ts +24 -0
  36. package/lib/utils.d.ts +16 -1
  37. package/lib/utils.js +76 -1
  38. package/lib/utils.js.map +1 -1
  39. package/oclif.manifest.json +1 -1
  40. package/package.json +27 -18
@@ -1 +1 @@
1
- {"version":3,"file":"retrieve.js","sourceRoot":"","sources":["../../../../../src/commands/kit/layout/assignments/retrieve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrieve.js","sourceRoot":"","sources":["../../../../../src/commands/kit/layout/assignments/retrieve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { flags, SfdxCommand } from '@salesforce/command';
2
+ import { MetadataInfo } from 'jsforce';
3
+ export default class FieldsDescribeCommand extends SfdxCommand {
4
+ static description: string;
5
+ static examples: string[];
6
+ protected static requiresUsername: boolean;
7
+ protected static requiresProject: boolean;
8
+ protected static flagsConfig: {
9
+ object: flags.Discriminated<flags.String>;
10
+ file: flags.Discriminated<flags.String>;
11
+ };
12
+ run(): Promise<MetadataInfo[]>;
13
+ writeCsv(file: any, rows: any): void;
14
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_1 = require("@salesforce/command");
4
+ const csv = require("fast-csv");
5
+ const fs = require("fs-extra");
6
+ const metadata_1 = require("../../../../metadata");
7
+ const csvHeaders = [
8
+ 'label',
9
+ 'fullName',
10
+ 'type',
11
+ 'length',
12
+ 'precision',
13
+ 'scale',
14
+ 'formula',
15
+ // START picklist specific options
16
+ 'valueSetName',
17
+ 'values',
18
+ 'restricted',
19
+ // END
20
+ 'referenceTo',
21
+ 'relationshipName',
22
+ 'summaryForeignKey',
23
+ 'summaryOperation',
24
+ 'summarizedField',
25
+ 'required',
26
+ 'unique',
27
+ 'caseSensitive',
28
+ 'defaultValue',
29
+ 'externalId',
30
+ 'description',
31
+ 'inlineHelpText',
32
+ ];
33
+ class FieldsDescribeCommand extends command_1.SfdxCommand {
34
+ async run() {
35
+ const { object, file, json } = this.flags;
36
+ const conn = this.org.getConnection();
37
+ this.ux.startSpinner(`describe ${object} fields`);
38
+ const results = await (0, metadata_1.getCustomFields)(conn, object);
39
+ this.ux.stopSpinner();
40
+ if (!json) {
41
+ const rows = results.map(({ valueSet, ...row }) => {
42
+ if (valueSet) {
43
+ const { restricted, valueSetDefinition, valueSetName } = valueSet;
44
+ row.restricted = restricted;
45
+ if (valueSetDefinition) {
46
+ row.values = valueSetDefinition.value
47
+ .map((v) => v.fullName)
48
+ .join(';');
49
+ }
50
+ else {
51
+ row.valueSetName = valueSetName;
52
+ }
53
+ }
54
+ return row;
55
+ });
56
+ this.writeCsv(file, rows);
57
+ }
58
+ return results;
59
+ }
60
+ writeCsv(file, rows) {
61
+ csv
62
+ .write(rows, { headers: csvHeaders, writeBOM: true })
63
+ .pipe(file ? fs.createWriteStream(file) : process.stdout);
64
+ }
65
+ }
66
+ exports.default = FieldsDescribeCommand;
67
+ FieldsDescribeCommand.description = 'describe object fields information';
68
+ FieldsDescribeCommand.examples = [
69
+ '$ sfdx kit:object:fields:describe -o Account -f path/to/account_fields.csv',
70
+ '$ sfdx kit:object:fields:describe -u me@my.org -o CustomObject__c --json',
71
+ ];
72
+ FieldsDescribeCommand.requiresUsername = true;
73
+ FieldsDescribeCommand.requiresProject = false;
74
+ FieldsDescribeCommand.flagsConfig = {
75
+ object: command_1.flags.string({
76
+ char: 'o',
77
+ required: true,
78
+ description: 'SObject name',
79
+ }),
80
+ file: command_1.flags.string({
81
+ char: 'f',
82
+ description: 'output csv file path',
83
+ }),
84
+ };
85
+ //# sourceMappingURL=describe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../../src/commands/kit/object/fields/describe.ts"],"names":[],"mappings":";;AAAA,iDAAyD;AACzD,gCAAgC;AAChC,+BAA+B;AAE/B,mDAAuD;AAEvD,MAAM,UAAU,GAAG;IACjB,OAAO;IACP,UAAU;IACV,MAAM;IACN,QAAQ;IACR,WAAW;IACX,OAAO;IACP,SAAS;IACT,kCAAkC;IAClC,cAAc;IACd,QAAQ;IACR,YAAY;IACZ,MAAM;IACN,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,UAAU;IACV,QAAQ;IACR,eAAe;IACf,cAAc;IACd,YAAY;IACZ,aAAa;IACb,gBAAgB;CACjB,CAAC;AAEF,MAAqB,qBAAsB,SAAQ,qBAAW;IAuBrD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,MAAM,SAAS,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;gBAChD,IAAI,QAAQ,EAAE;oBACZ,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;oBAClE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC5B,IAAI,kBAAkB,EAAE;wBACtB,GAAG,CAAC,MAAM,GAAG,kBAAkB,CAAC,KAAK;6BAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;6BACtB,IAAI,CAAC,GAAG,CAAC,CAAC;qBACd;yBAAM;wBACL,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;qBACjC;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3B;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,IAAI,EAAE,IAAI;QACjB,GAAG;aACA,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;;AArDH,wCAsDC;AArDe,iCAAW,GAAG,oCAAoC,CAAC;AAEnD,8BAAQ,GAAG;IACvB,4EAA4E;IAC5E,0EAA0E;CAC3E,CAAC;AAEe,sCAAgB,GAAG,IAAI,CAAC;AACxB,qCAAe,GAAG,KAAK,CAAC;AAExB,iCAAW,GAAG;IAC7B,MAAM,EAAE,eAAK,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,cAAc;KAC5B,CAAC;IACF,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,sBAAsB;KACpC,CAAC;CACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { flags, SfdxCommand } from '@salesforce/command';
2
+ declare type SetupResult = {
3
+ field: string;
4
+ result: 'created' | 'updated' | 'deleted' | 'identical' | 'error';
5
+ error?: string;
6
+ };
7
+ export declare function setFieldOptions(field: any, existingField: any): void;
8
+ export default class FieldsSetupCommand extends SfdxCommand {
9
+ static description: string;
10
+ static examples: string[];
11
+ protected static requiresUsername: boolean;
12
+ protected static requiresProject: boolean;
13
+ protected static flagsConfig: {
14
+ object: flags.Discriminated<flags.String>;
15
+ file: flags.Discriminated<flags.String>;
16
+ delete: flags.Discriminated<flags.Boolean<boolean>>;
17
+ force: flags.Discriminated<flags.Boolean<boolean>>;
18
+ };
19
+ run(): Promise<SetupResult[]>;
20
+ }
21
+ export {};
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setFieldOptions = void 0;
4
+ const command_1 = require("@salesforce/command");
5
+ const fs = require("fs-extra");
6
+ const metadata_1 = require("../../../../metadata");
7
+ const utils_1 = require("../../../../utils");
8
+ const deepCopy = (object) => object && JSON.parse(JSON.stringify(object));
9
+ const deepEquals = (obj1, obj2) => JSON.stringify(obj1) === JSON.stringify(obj2);
10
+ function setFieldOptions(field, existingField) {
11
+ var _a;
12
+ for (const [key, value] of Object.entries(field)) {
13
+ if (value === '')
14
+ delete field[key];
15
+ }
16
+ if (field.formula && existingField)
17
+ (_a = field.formulaTreatBlanksAs) !== null && _a !== void 0 ? _a : (field.formulaTreatBlanksAs = existingField.formulaTreatBlanksAs);
18
+ const setDefault = (name, value) => {
19
+ var _a;
20
+ if (field[name] === undefined)
21
+ field[name] = (_a = existingField === null || existingField === void 0 ? void 0 : existingField[name]) !== null && _a !== void 0 ? _a : value;
22
+ };
23
+ switch (field.type) {
24
+ case 'Checkbox':
25
+ setDefault('defaultValue', false);
26
+ break;
27
+ case 'Currency':
28
+ case 'Number':
29
+ case 'Percent':
30
+ setDefault('precision', 18);
31
+ setDefault('scale', 0);
32
+ break;
33
+ case 'Text':
34
+ setDefault('length', 255);
35
+ break;
36
+ case 'EncryptedText':
37
+ setDefault('length', 175);
38
+ setDefault('maskChar', 'asterisk');
39
+ setDefault('maskType', 'all');
40
+ break;
41
+ case 'LongTextArea':
42
+ case 'Html':
43
+ setDefault('length', 32768);
44
+ setDefault('visibleLines', 10);
45
+ break;
46
+ case 'Location':
47
+ setDefault('scale', 5);
48
+ break;
49
+ case 'Picklist':
50
+ setPicklistOptions(field, existingField);
51
+ break;
52
+ case 'MultiselectPicklist':
53
+ setDefault('visibleLines', 4);
54
+ setPicklistOptions(field, existingField);
55
+ break;
56
+ case 'Lookup':
57
+ if (field.required === 'true')
58
+ field.deleteConstraint = 'Restrict';
59
+ break;
60
+ }
61
+ }
62
+ exports.setFieldOptions = setFieldOptions;
63
+ function setPicklistOptions(field, existingField) {
64
+ var _a;
65
+ const { restricted, values, valueSetName } = field;
66
+ if (values || valueSetName) {
67
+ const valueSet = existingField
68
+ ? deepCopy(existingField.valueSet)
69
+ : { restricted: true };
70
+ if (restricted !== undefined)
71
+ valueSet.restricted = restricted;
72
+ if (restricted === 'false')
73
+ delete valueSet.restricted;
74
+ if (valueSet.controllingField === null)
75
+ delete valueSet.controllingField;
76
+ if (valueSet.valueSettings === null)
77
+ delete valueSet.valueSettings;
78
+ if (values) {
79
+ (_a = valueSet.valueSetDefinition) !== null && _a !== void 0 ? _a : (valueSet.valueSetDefinition = { value: [] });
80
+ const optionMap = new Map(valueSet.valueSetDefinition.value.map((option) => [
81
+ option.fullName,
82
+ option,
83
+ ]));
84
+ const options = values
85
+ .split(';')
86
+ .map((value) => { var _a; return (_a = optionMap.get(value)) !== null && _a !== void 0 ? _a : { fullName: value, label: value }; });
87
+ valueSet.valueSetDefinition.value = options;
88
+ delete valueSet.valueSetName;
89
+ }
90
+ else {
91
+ valueSet.valueSetName = valueSetName;
92
+ delete valueSet.valueSetDefinition;
93
+ }
94
+ field.valueSet =
95
+ existingField && deepEquals(valueSet, existingField.valueSet)
96
+ ? existingField.valueSet
97
+ : valueSet;
98
+ delete field.restricted;
99
+ delete field.values;
100
+ delete field.valueSetName;
101
+ }
102
+ }
103
+ class FieldsSetupCommand extends command_1.SfdxCommand {
104
+ async run() {
105
+ const { object, file, delete: del, force } = this.flags;
106
+ const conn = this.org.getConnection();
107
+ const namespace = await (0, metadata_1.getOrgNamespace)(conn);
108
+ const pattern = namespace ? new RegExp(`^${namespace}__`, 'g') : null;
109
+ const removeNamespace = (name) => pattern ? name.replace(pattern, '') : name;
110
+ this.ux.startSpinner('parse ' + file);
111
+ const fields = (await (0, utils_1.parseCsv)(fs.createReadStream(file)));
112
+ this.ux.stopSpinner();
113
+ const existingFieldMap = await (0, metadata_1.getCustomFieldMap)(conn, object);
114
+ const oldFieldMap = new Map(existingFieldMap);
115
+ for (const field of fields) {
116
+ const name = removeNamespace(field.fullName);
117
+ const existingField = existingFieldMap.get(name);
118
+ existingFieldMap.delete(name);
119
+ setFieldOptions(field, existingField);
120
+ field.fullName = `${object}.${field.fullName}`;
121
+ }
122
+ let deleteFields = del ? [...existingFieldMap.values()] : [];
123
+ if (deleteFields.length && !force) {
124
+ const confirmed = await this.ux.confirm(`delete fields: ${deleteFields
125
+ .map(({ fullName }) => fullName)
126
+ .join(', ')}\nDo you want to delete the above fields? (y/n)`);
127
+ if (!confirmed)
128
+ deleteFields = [];
129
+ }
130
+ const results = [];
131
+ if (fields.length) {
132
+ this.ux.startSpinner('upsert fields');
133
+ const upsertResults = await (0, metadata_1.upsertMetadata)(conn, 'CustomField', fields);
134
+ const newFieldMap = await (0, metadata_1.getCustomFieldMap)(conn, object);
135
+ for (const { fullName, created, success, errors } of upsertResults) {
136
+ const name = fullName.slice(object.length + 1);
137
+ let result = created ? 'created' : success ? 'updated' : 'error';
138
+ if (result === 'updated' &&
139
+ deepEquals(newFieldMap.get(name), oldFieldMap.get(name))) {
140
+ result = 'identical';
141
+ }
142
+ results.push({
143
+ field: name,
144
+ result,
145
+ error: Array.isArray(errors)
146
+ ? errors.map((e) => e.message).join(', ')
147
+ : errors === null || errors === void 0 ? void 0 : errors.message,
148
+ });
149
+ }
150
+ this.ux.stopSpinner();
151
+ }
152
+ if (deleteFields.length) {
153
+ this.ux.startSpinner('delete fields');
154
+ const names = deleteFields.map(({ fullName }) => `${object}.${fullName}`);
155
+ for (const { fullName, success, errors } of await (0, metadata_1.deleteMetadata)(conn, 'CustomField', names)) {
156
+ results.push({
157
+ field: fullName.slice(object.length + 1),
158
+ result: success ? 'deleted' : 'error',
159
+ error: Array.isArray(errors)
160
+ ? errors.map((e) => e.message).join(', ')
161
+ : errors === null || errors === void 0 ? void 0 : errors.message,
162
+ });
163
+ }
164
+ this.ux.stopSpinner();
165
+ }
166
+ this.ux.styledHeader('Fields setup result');
167
+ this.ux.table(results, ['field', 'result', 'error']);
168
+ return results;
169
+ }
170
+ }
171
+ exports.default = FieldsSetupCommand;
172
+ FieldsSetupCommand.description = 'upsert and delete object fields from a CSV file';
173
+ FieldsSetupCommand.examples = [
174
+ '$ sfdx kit:object:fields:setup -o Account -f path/to/account_fields.csv',
175
+ '$ sfdx kit:object:fields:setup -u me@my.org -o CustomObject__c -f path/to/custom_object_fields.csv --delete',
176
+ ];
177
+ FieldsSetupCommand.requiresUsername = true;
178
+ FieldsSetupCommand.requiresProject = false;
179
+ FieldsSetupCommand.flagsConfig = {
180
+ object: command_1.flags.string({
181
+ char: 'o',
182
+ required: true,
183
+ description: 'SObject name',
184
+ }),
185
+ file: command_1.flags.string({
186
+ char: 'f',
187
+ required: true,
188
+ description: 'input csv file path',
189
+ }),
190
+ delete: command_1.flags.boolean({
191
+ description: 'delete fields that are not in the csv file',
192
+ }),
193
+ force: command_1.flags.boolean({
194
+ description: 'Do not confirm when deleting',
195
+ }),
196
+ };
197
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../../src/commands/kit/object/fields/setup.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export default class ScriptExecuteCommand extends SfdxCommand {
4
4
  static examples: string[];
5
5
  static aliases: string[];
6
6
  static strict: boolean;
7
- protected static requiresUsername: boolean;
7
+ protected static supportsUsername: boolean;
8
8
  protected static requiresProject: boolean;
9
9
  protected static flagsConfig: {
10
10
  file: flags.Discriminated<flags.String>;
@@ -2,18 +2,26 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const command_1 = require("@salesforce/command");
4
4
  const fs = require("fs-extra");
5
+ const path = require("path");
5
6
  const repl = require("repl");
6
7
  const yargs_1 = require("yargs");
7
8
  class ScriptExecuteCommand extends command_1.SfdxCommand {
8
9
  async run() {
10
+ var _a, _b;
9
11
  const { file } = this.flags;
10
12
  module.paths.push('./node_modules');
11
13
  if (file) {
12
14
  const fileIndex = process.argv.indexOf(file);
13
- const argv = yargs_1.default([]).parse(process.argv.slice(fileIndex + 1));
15
+ const argv = (0, yargs_1.default)([]).parse(process.argv.slice(fileIndex + 1));
14
16
  const script = fs.readFileSync(file).toString('utf8');
17
+ const loader = (name) => {
18
+ if (name.startsWith('.'))
19
+ name = path.resolve(path.dirname(file), name);
20
+ return require(name);
21
+ };
22
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
15
23
  const asyncFunction = Object.getPrototypeOf(async () => { }).constructor;
16
- return await new asyncFunction('require', 'argv', 'context', 'conn', script)(require, argv, this, this.org.getConnection());
24
+ return await new asyncFunction('require', 'argv', 'context', 'conn', script)(loader, argv, this, (_a = this.org) === null || _a === void 0 ? void 0 : _a.getConnection());
17
25
  }
18
26
  else {
19
27
  this.ux.log('Starting sfdx REPL mode');
@@ -24,8 +32,8 @@ class ScriptExecuteCommand extends command_1.SfdxCommand {
24
32
  const replServer = repl.start('> ');
25
33
  replServer.context.require = require;
26
34
  replServer.context.context = this;
27
- replServer.context.conn = this.org.getConnection();
28
- return new Promise(resolve => replServer.on('exit', () => resolve()));
35
+ replServer.context.conn = (_b = this.org) === null || _b === void 0 ? void 0 : _b.getConnection();
36
+ return new Promise((resolve) => replServer.on('exit', () => resolve()));
29
37
  }
30
38
  }
31
39
  }
@@ -35,20 +43,23 @@ ScriptExecuteCommand.description = [
35
43
  'Available variables in Node.js scripts',
36
44
  ' argv: Parsed command line arguments after the file option',
37
45
  ' conn: jsforce Connection',
38
- ' context: SfdxCommand'
46
+ ' context: SfdxCommand',
39
47
  ].join('\n');
40
48
  ScriptExecuteCommand.examples = [
41
49
  '$ sfdx kit:script -f ./path/to/script.js',
42
50
  '$ sfdx kit:script:execute',
43
51
  "> await conn.query('SELECT Id, Name FROM Account LIMIT 1')",
44
52
  'Top level await is not enabled by default in REPL before Node.js v16',
45
- '$ NODE_OPTIONS=--experimental-repl-await sfdx kit:script:execute'
53
+ '$ NODE_OPTIONS=--experimental-repl-await sfdx kit:script:execute',
46
54
  ];
47
55
  ScriptExecuteCommand.aliases = ['kit:script'];
48
56
  ScriptExecuteCommand.strict = false;
49
- ScriptExecuteCommand.requiresUsername = true;
57
+ ScriptExecuteCommand.supportsUsername = true;
50
58
  ScriptExecuteCommand.requiresProject = false;
51
59
  ScriptExecuteCommand.flagsConfig = {
52
- file: command_1.flags.filepath({ char: 'f', description: 'the path of the Node.js script file to execute' })
60
+ file: command_1.flags.filepath({
61
+ char: 'f',
62
+ description: 'the path of the Node.js script file to execute',
63
+ }),
53
64
  };
54
65
  //# sourceMappingURL=execute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../src/commands/kit/script/execute.ts"],"names":[],"mappings":";;AAAA,iDAAyD;AACzD,+BAA+B;AAC/B,6BAA6B;AAC7B,iCAA0B;AAE1B,MAAqB,oBAAqB,SAAQ,qBAAW;IA0BpD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,IAAI,IAAI,EAAE;YACR,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,eAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YACxE,OAAO,MAAM,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;SAC7H;aAAM;YACL,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YACrC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAEnD,OAAO,IAAI,OAAO,CAChB,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAClD,CAAC;SACH;IACH,CAAC;;AApDH,uCAqDC;AApDe,gCAAW,GAAG;IAC1B,gDAAgD;IAChD,wCAAwC;IACxC,6DAA6D;IAC7D,4BAA4B;IAC5B,wBAAwB;CACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEC,6BAAQ,GAAG;IACvB,0CAA0C;IAC1C,2BAA2B;IAC3B,4DAA4D;IAC5D,sEAAsE;IACtE,kEAAkE;CACnE,CAAC;AAEY,4BAAO,GAAG,CAAC,YAAY,CAAC,CAAC;AACzB,2BAAM,GAAG,KAAK,CAAC;AACZ,qCAAgB,GAAG,IAAI,CAAC;AACxB,oCAAe,GAAG,KAAK,CAAC;AAExB,gCAAW,GAAG;IAC7B,IAAI,EAAE,eAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;CACnG,CAAC"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../src/commands/kit/script/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Connection, MetadataInfo, SaveResult, UpsertResult as JsforceUpsertResult } from 'jsforce';
2
+ import { CustomField } from './types';
3
+ interface UpsertResult extends JsforceUpsertResult {
4
+ errors: {
5
+ message: string;
6
+ };
7
+ }
8
+ export declare function getOrgNamespace(conn: Connection): Promise<string>;
9
+ export declare function completeDefaultNamespace(conn: Connection, objectName: string): Promise<string>;
10
+ export declare function completeDefaultNamespace(conn: Connection, objectNames: string[]): Promise<string[]>;
11
+ export declare function chunkMetadata<T>(type: string, metadata: T | T[]): Array<T[]>;
12
+ export declare function readMetadata(conn: Connection, type: string, fullNames: string | string[]): Promise<MetadataInfo[]>;
13
+ export declare function updateMetadata(conn: Connection, type: string, metadata: MetadataInfo | MetadataInfo[]): Promise<SaveResult[]>;
14
+ export declare function upsertMetadata(conn: Connection, type: string, metadata: MetadataInfo | MetadataInfo[]): Promise<UpsertResult[]>;
15
+ export declare function deleteMetadata(conn: Connection, type: string, fullNames: string | string[]): Promise<SaveResult[]>;
16
+ export declare function getCustomFields(conn: Connection, object: string): Promise<CustomField[]>;
17
+ export declare function getCustomFieldMap(conn: Connection, object: string): Promise<Map<string, CustomField>>;
18
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCustomFieldMap = exports.getCustomFields = exports.deleteMetadata = exports.upsertMetadata = exports.updateMetadata = exports.readMetadata = exports.chunkMetadata = exports.completeDefaultNamespace = exports.getOrgNamespace = void 0;
4
+ const utils_1 = require("./utils");
5
+ let orgNamespace;
6
+ async function getOrgNamespace(conn) {
7
+ if (orgNamespace === undefined) {
8
+ const { records: [{ NamespacePrefix }], } = await conn.query('SELECT NamespacePrefix FROM Organization');
9
+ orgNamespace = NamespacePrefix;
10
+ }
11
+ return orgNamespace;
12
+ }
13
+ exports.getOrgNamespace = getOrgNamespace;
14
+ async function completeDefaultNamespace(conn, objectName) {
15
+ const ns = await getOrgNamespace(conn);
16
+ if (!ns)
17
+ return objectName;
18
+ const isArray = Array.isArray(objectName);
19
+ const objectNames = isArray ? objectName : [objectName];
20
+ const results = objectNames.map((name) => {
21
+ if (name.endsWith('__c') && name.split('__').length === 2) {
22
+ return `${ns}__${name}`;
23
+ }
24
+ else {
25
+ return name;
26
+ }
27
+ });
28
+ return isArray ? results : results[0];
29
+ }
30
+ exports.completeDefaultNamespace = completeDefaultNamespace;
31
+ function chunkMetadata(type, metadata) {
32
+ // metadata limit: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_createMetadata.htm
33
+ const size = type === 'CustomMetadata' || type === 'CustomApplication' ? 200 : 10;
34
+ return (0, utils_1.chunk)(Array.isArray(metadata) ? metadata : [metadata], size);
35
+ }
36
+ exports.chunkMetadata = chunkMetadata;
37
+ function readMetadata(conn, type, fullNames) {
38
+ return Promise.all(chunkMetadata(type, fullNames).map((data) => conn.metadata.read(type, data))).then((a) => a.flat());
39
+ }
40
+ exports.readMetadata = readMetadata;
41
+ function updateMetadata(conn, type, metadata) {
42
+ return Promise.all(chunkMetadata(type, metadata).map((data) => conn.metadata.update(type, data))).then((a) => a.flat());
43
+ }
44
+ exports.updateMetadata = updateMetadata;
45
+ function upsertMetadata(conn, type, metadata) {
46
+ return Promise.all(chunkMetadata(type, metadata).map((data) => conn.metadata.upsert(type, data))).then((a) => a.flat());
47
+ }
48
+ exports.upsertMetadata = upsertMetadata;
49
+ function deleteMetadata(conn, type, fullNames) {
50
+ return Promise.all(chunkMetadata(type, fullNames).map((data) => conn.metadata.delete(type, data))).then((a) => a.flat());
51
+ }
52
+ exports.deleteMetadata = deleteMetadata;
53
+ async function getCustomFields(conn, object) {
54
+ object = await completeDefaultNamespace(conn, object);
55
+ const { records } = await conn.tooling.query(`SELECT DeveloperName, Metadata FROM CustomField WHERE EntityDefinition.QualifiedApiName='${object}' AND ManageableState = 'unmanaged'`);
56
+ return records
57
+ .filter((r) => !r.DeveloperName.endsWith('_del'))
58
+ .map((r) => ({
59
+ fullName: r.DeveloperName + '__c',
60
+ ...r.Metadata,
61
+ }));
62
+ }
63
+ exports.getCustomFields = getCustomFields;
64
+ async function getCustomFieldMap(conn, object) {
65
+ const fields = await getCustomFields(conn, object);
66
+ return new Map(fields.map((f) => [f.fullName, f]));
67
+ }
68
+ exports.getCustomFieldMap = getCustomFieldMap;
69
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { MetadataInfo } from 'jsforce';
1
2
  export declare type LayoutAssignment = {
2
3
  layout: string;
3
4
  recordType?: string;
@@ -9,3 +10,26 @@ export declare type ProfileMetadata = {
9
10
  fullName: string;
10
11
  layoutAssignments: LayoutAssignment[];
11
12
  };
13
+ interface CustomValue {
14
+ fullName: string;
15
+ label: string;
16
+ default?: boolean;
17
+ }
18
+ interface ValueSet {
19
+ restricted?: boolean;
20
+ valueSetName?: string;
21
+ valueSetDefinition?: {
22
+ sorted?: boolean;
23
+ value: CustomValue[];
24
+ };
25
+ }
26
+ export interface CustomField extends MetadataInfo {
27
+ label?: string;
28
+ type?: string;
29
+ defaultValue?: string;
30
+ valueSet?: ValueSet;
31
+ restricted?: boolean;
32
+ valueSetName?: string;
33
+ values?: string;
34
+ }
35
+ export {};
package/lib/utils.d.ts CHANGED
@@ -1 +1,16 @@
1
- export declare function chunk(array: any, size: any): any[];
1
+ /// <reference types="node" />
2
+ import { JsonMap } from '@salesforce/ts-types';
3
+ export declare function chunk<T>(array: Array<T>, size: number): Array<Array<T>>;
4
+ export declare function rangeGenerator(from: number, to: number): Iterable<number>;
5
+ export declare function range(from: number, to: number): Array<number>;
6
+ export declare function parseCsv(input: NodeJS.ReadableStream, options?: {
7
+ encoding?: string;
8
+ delimiter?: string;
9
+ quote?: string;
10
+ skiplines?: number;
11
+ trim?: boolean;
12
+ mapping?: JsonMap;
13
+ convert?: (row: JsonMap) => JsonMap | null | undefined;
14
+ }): Promise<JsonMap[]>;
15
+ export declare function loadScript(file: any): any;
16
+ export declare function columnMapper(mapping: any): (row: any) => {};