@kitalive/sfdx-plugin 0.7.3 → 1.0.0-rc.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 (52) hide show
  1. package/README.md +233 -148
  2. package/lib/bulk.js +175 -203
  3. package/lib/bulk.js.map +1 -1
  4. package/lib/commands/kit/data/bulk/delete.js +47 -47
  5. package/lib/commands/kit/data/bulk/delete.js.map +1 -1
  6. package/lib/commands/kit/data/bulk/insert.js +6 -4
  7. package/lib/commands/kit/data/bulk/insert.js.map +1 -1
  8. package/lib/commands/kit/data/bulk/query.js +34 -40
  9. package/lib/commands/kit/data/bulk/query.js.map +1 -1
  10. package/lib/commands/kit/data/bulk/update.js +6 -4
  11. package/lib/commands/kit/data/bulk/update.js.map +1 -1
  12. package/lib/commands/kit/data/bulk/upsert.js +18 -16
  13. package/lib/commands/kit/data/bulk/upsert.js.map +1 -1
  14. package/lib/commands/kit/data/csv/convert.js +60 -92
  15. package/lib/commands/kit/data/csv/convert.js.map +1 -1
  16. package/lib/commands/kit/graphql/editor.js +19 -44
  17. package/lib/commands/kit/graphql/editor.js.map +1 -1
  18. package/lib/commands/kit/layout/assignments/deploy.js +24 -30
  19. package/lib/commands/kit/layout/assignments/deploy.js.map +1 -1
  20. package/lib/commands/kit/layout/assignments/retrieve.js +47 -54
  21. package/lib/commands/kit/layout/assignments/retrieve.js.map +1 -1
  22. package/lib/commands/kit/metadata/dependencies.js +182 -0
  23. package/lib/commands/kit/metadata/dependencies.js.map +1 -0
  24. package/lib/commands/kit/object/fields/describe.js +27 -56
  25. package/lib/commands/kit/object/fields/describe.js.map +1 -1
  26. package/lib/commands/kit/object/fields/setup.js +53 -65
  27. package/lib/commands/kit/object/fields/setup.js.map +1 -1
  28. package/lib/commands/kit/script/execute.js +41 -57
  29. package/lib/commands/kit/script/execute.js.map +1 -1
  30. package/lib/index.js +1 -2
  31. package/lib/index.js.map +1 -1
  32. package/lib/metadata.js +11 -23
  33. package/lib/metadata.js.map +1 -1
  34. package/lib/server.js +38 -0
  35. package/lib/server.js.map +1 -0
  36. package/lib/types.js +1 -2
  37. package/lib/utils.js +20 -53
  38. package/lib/utils.js.map +1 -1
  39. package/messages/metadata.dependencies.md +8 -0
  40. package/messages/server.md +4 -0
  41. package/oclif.lock +8259 -0
  42. package/oclif.manifest.json +1221 -437
  43. package/package.json +43 -43
  44. package/public/dist/assets/materialdesignicons-webfont-BbcIfeS3.woff +0 -0
  45. package/public/dist/assets/materialdesignicons-webfont-CveiMJFx.woff2 +0 -0
  46. package/public/dist/assets/materialdesignicons-webfont-Df9Q6YdI.ttf +0 -0
  47. package/public/dist/assets/materialdesignicons-webfont-YdEl25M1.eot +0 -0
  48. package/public/dist/assets/metadata-dependencies-B4s5b3qH.js +21 -0
  49. package/public/dist/assets/metadata-dependencies-DKqrIZD_.css +5 -0
  50. package/public/dist/favicon.ico +0 -0
  51. package/public/dist/metadata-dependencies.html +22 -0
  52. package/public/graphql/index.html +1 -1
@@ -1,14 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const node_path_1 = __importDefault(require("node:path"));
7
- const core_1 = require("@salesforce/core");
8
- const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
9
- const fast_glob_1 = __importDefault(require("fast-glob"));
10
- const fs_extra_1 = __importDefault(require("fs-extra"));
11
- const metadata_1 = require("../../../../metadata");
1
+ import path from 'node:path';
2
+ import { Messages, SfError } from '@salesforce/core';
3
+ import { Flags, SfCommand, requiredOrgFlagWithDeprecations, } from '@salesforce/sf-plugins-core';
4
+ import glob from 'fast-glob';
5
+ import fs from 'fs-extra';
6
+ import { completeDefaultNamespace, readMetadata, } from '../../../../metadata.js';
12
7
  function assignmentsPerObject(assignments, filterObjects) {
13
8
  const result = new Map();
14
9
  for (const assignment of assignments) {
@@ -21,9 +16,38 @@ function assignmentsPerObject(assignments, filterObjects) {
21
16
  }
22
17
  return result;
23
18
  }
24
- core_1.Messages.importMessagesDirectory(__dirname);
25
- const messages = core_1.Messages.loadMessages('@kitalive/sfdx-plugin', 'layout.assignments.retrieve');
26
- class LayoutAssignmentsRetrieve extends sf_plugins_core_1.SfCommand {
19
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
+ const messages = Messages.loadMessages('@kitalive/sfdx-plugin', 'layout.assignments.retrieve');
21
+ export default class LayoutAssignmentsRetrieve extends SfCommand {
22
+ static summary = messages.getMessage('summary');
23
+ static examples = messages.getMessages('examples');
24
+ static requiresProject = true;
25
+ static flags = {
26
+ file: Flags.string({
27
+ char: 'f',
28
+ required: true,
29
+ summary: messages.getMessage('flags.file.summary'),
30
+ default: 'config/layout-assignments.json',
31
+ }),
32
+ profile: Flags.string({
33
+ char: 'p',
34
+ required: false,
35
+ multiple: true,
36
+ summary: messages.getMessage('flags.profile.summary'),
37
+ }),
38
+ sobject: Flags.string({
39
+ char: 's',
40
+ required: false,
41
+ multiple: true,
42
+ summary: messages.getMessage('flags.sobject.summary'),
43
+ }),
44
+ merge: Flags.boolean({
45
+ required: false,
46
+ summary: messages.getMessage('flags.merge.summary'),
47
+ }),
48
+ 'target-org': requiredOrgFlagWithDeprecations,
49
+ 'api-version': Flags.orgApiVersion(),
50
+ };
27
51
  async run() {
28
52
  const { flags } = await this.parse(LayoutAssignmentsRetrieve);
29
53
  const conn = flags['target-org'].getConnection(flags['api-version']);
@@ -31,7 +55,7 @@ class LayoutAssignmentsRetrieve extends sf_plugins_core_1.SfCommand {
31
55
  ? flags.sobject
32
56
  : await this.objectNamesFromLayouts();
33
57
  if (filterObjects.length === 0)
34
- throw new core_1.SfError(messages.getMessage('error.noSObjects'));
58
+ throw new SfError(messages.getMessage('error.noSObjects'));
35
59
  const data = flags.merge
36
60
  ? await this.readFile(flags.file)
37
61
  : {};
@@ -39,8 +63,8 @@ class LayoutAssignmentsRetrieve extends sf_plugins_core_1.SfCommand {
39
63
  ? flags.profile
40
64
  : await this.getProfileNames(conn);
41
65
  this.spinner.start(messages.getMessage('spinner.start'));
42
- const profiles = (await (0, metadata_1.readMetadata)(conn, 'Profile', profileNames));
43
- const filterObjectFullNames = await (0, metadata_1.completeDefaultNamespace)(conn, filterObjects);
66
+ const profiles = (await readMetadata(conn, 'Profile', profileNames));
67
+ const filterObjectFullNames = await completeDefaultNamespace(conn, filterObjects);
44
68
  for (const profile of profiles) {
45
69
  if (!profile.fullName || !profile.layoutAssignments)
46
70
  continue;
@@ -63,15 +87,14 @@ class LayoutAssignmentsRetrieve extends sf_plugins_core_1.SfCommand {
63
87
  return data;
64
88
  }
65
89
  async objectNamesFromLayouts() {
66
- // eslint-disable-next-line
67
90
  const config = await this.getProjectConfig();
68
- const packageDir = config.packageDirectories?.find((dir) => dir.default);
91
+ const packageDir = config.packageDirectories.find((dir) => dir.default);
69
92
  if (!packageDir)
70
93
  return [];
71
- const pattern = node_path_1.default.join(this.project.getPath(), packageDir.path, '**/*.layout-meta.xml');
94
+ const pattern = path.join(this.project.getPath(), packageDir.path, '**/*.layout-meta.xml');
72
95
  const objectCounts = new Map();
73
96
  for (const filepath of await this.findFiles(pattern)) {
74
- const object = node_path_1.default.basename(filepath).split('-')[0];
97
+ const object = path.basename(filepath).split('-')[0];
75
98
  objectCounts.set(object, (objectCounts.get(object) ?? 0) + 1);
76
99
  }
77
100
  return [...objectCounts.keys()]
@@ -87,45 +110,15 @@ class LayoutAssignmentsRetrieve extends sf_plugins_core_1.SfCommand {
87
110
  .then((profiles) => profiles.map((p) => p.fullName));
88
111
  }
89
112
  findFiles(pattern) {
90
- return (0, fast_glob_1.default)(pattern);
113
+ return glob(pattern);
91
114
  }
92
115
  readFile(file) {
93
- return fs_extra_1.default.readJson(node_path_1.default.join(this.project.getPath(), file));
116
+ return fs.readJson(path.join(this.project.getPath(), file));
94
117
  }
95
118
  writeFile(file, data) {
96
- return fs_extra_1.default.outputJson(node_path_1.default.join(this.project.getPath(), file), data, {
119
+ return fs.outputJson(path.join(this.project.getPath(), file), data, {
97
120
  spaces: '\t',
98
121
  });
99
122
  }
100
123
  }
101
- LayoutAssignmentsRetrieve.summary = messages.getMessage('summary');
102
- LayoutAssignmentsRetrieve.examples = messages.getMessages('examples');
103
- LayoutAssignmentsRetrieve.requiresProject = true;
104
- LayoutAssignmentsRetrieve.flags = {
105
- file: sf_plugins_core_1.Flags.string({
106
- char: 'f',
107
- required: true,
108
- summary: messages.getMessage('flags.file.summary'),
109
- default: 'config/layout-assignments.json',
110
- }),
111
- profile: sf_plugins_core_1.Flags.string({
112
- char: 'p',
113
- required: false,
114
- multiple: true,
115
- summary: messages.getMessage('flags.profile.summary'),
116
- }),
117
- sobject: sf_plugins_core_1.Flags.string({
118
- char: 's',
119
- required: false,
120
- multiple: true,
121
- summary: messages.getMessage('flags.sobject.summary'),
122
- }),
123
- merge: sf_plugins_core_1.Flags.boolean({
124
- required: false,
125
- summary: messages.getMessage('flags.merge.summary'),
126
- }),
127
- 'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
128
- 'api-version': sf_plugins_core_1.Flags.orgApiVersion(),
129
- };
130
- exports.default = LayoutAssignmentsRetrieve;
131
124
  //# sourceMappingURL=retrieve.js.map
@@ -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,182 @@
1
+ import { Messages } from '@salesforce/core';
2
+ import * as csv from 'fast-csv';
3
+ import express from 'express';
4
+ import { ServerCommand } from '../../../server.js';
5
+ import { getScriptDir } from '../../../utils.js';
6
+ const scriptDir = getScriptDir(import.meta.url);
7
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
8
+ const messages = Messages.loadMessages('@kitalive/sfdx-plugin', 'metadata.dependencies');
9
+ function packageXml(data, version) {
10
+ data.sort((a, b) => a.type.localeCompare(b.type) || a.fullName.localeCompare(b.fullName));
11
+ const metadataByType = {};
12
+ for (const meta of data) {
13
+ (metadataByType[meta.type] ??= []).push(meta);
14
+ }
15
+ return ('<?xml version="1.0" encoding="UTF-8"?>\n' +
16
+ '<Package xmlns="http://soap.sforce.com/2006/04/metadata">\n' +
17
+ Object.entries(metadataByType)
18
+ .map(([name, members]) => ' <types>\n' +
19
+ members
20
+ .map((meta) => ` <members>${meta.fullName}</members>`)
21
+ .join('\n') +
22
+ `\n <name>${name}</name>\n` +
23
+ ' </types>')
24
+ .join('\n') +
25
+ `\n <version>${version}</version>\n</Package>`);
26
+ }
27
+ class MetadataQuery {
28
+ conn;
29
+ describeCache;
30
+ typeCache = {};
31
+ metadataCache = {};
32
+ usageCache = {};
33
+ referencesCache = {};
34
+ recursiveUsageCache = {};
35
+ recursiveReferencesCache = {};
36
+ constructor(connection) {
37
+ this.conn = connection;
38
+ }
39
+ async describe() {
40
+ if (!this.describeCache) {
41
+ const { metadataObjects } = await this.conn.metadata.describe();
42
+ this.describeCache = metadataObjects
43
+ .flatMap((m) => [m.xmlName].concat(m.childXmlNames))
44
+ .sort();
45
+ this.describeCache.forEach((name) => (this.typeCache[name] = name));
46
+ }
47
+ return this.describeCache;
48
+ }
49
+ async list(type) {
50
+ const idMap = await this.getMetadataMap(type);
51
+ return Array.from(idMap.values());
52
+ }
53
+ async usage(type, id, recursive) {
54
+ const cache = recursive ? this.recursiveUsageCache : this.usageCache;
55
+ const result = [
56
+ ...(await this.dependencies(id, cache, 'RefMetadataComponentId', recursive)),
57
+ ];
58
+ if (recursive) {
59
+ const idMap = await this.getMetadataMap(type);
60
+ result.unshift(idMap.get(id));
61
+ }
62
+ return result;
63
+ }
64
+ async references(type, id, recursive) {
65
+ const cache = recursive
66
+ ? this.recursiveReferencesCache
67
+ : this.referencesCache;
68
+ const result = [
69
+ ...(await this.dependencies(id, cache, 'MetadataComponentId', recursive)),
70
+ ];
71
+ if (recursive) {
72
+ const idMap = await this.getMetadataMap(type);
73
+ result.unshift(idMap.get(id));
74
+ }
75
+ return result;
76
+ }
77
+ async getMetadataMap(type) {
78
+ if (this.metadataCache[type])
79
+ return this.metadataCache[type];
80
+ const idMap = new Map();
81
+ const list = await this.conn.metadata.list({ type });
82
+ for (const meta of list.sort((a, b) => (a.fullName ?? '').localeCompare(b.fullName ?? ''))) {
83
+ idMap.set(meta.id, meta);
84
+ }
85
+ this.metadataCache[type] = idMap;
86
+ return idMap;
87
+ }
88
+ async dependencies(ids, cache, sourceIdField, recursive, result) {
89
+ result ??= new Set();
90
+ ids = [].concat(ids);
91
+ const dependentIds = [];
92
+ const fetchIds = [];
93
+ const add = (item) => {
94
+ if (result.has(item))
95
+ return;
96
+ result.add(item);
97
+ dependentIds.push(item.id);
98
+ };
99
+ for (const id of ids) {
100
+ if (cache[id]) {
101
+ cache[id].forEach(add);
102
+ }
103
+ else {
104
+ fetchIds.push(id);
105
+ cache[id] = new Set();
106
+ }
107
+ }
108
+ if (fetchIds.length) {
109
+ const targetFieldPrefix = sourceIdField === 'MetadataComponentId' ? 'Ref' : '';
110
+ const items = await this.conn.tooling
111
+ .sobject('MetadataComponentDependency')
112
+ .select('MetadataComponentId, MetadataComponentType, RefMetadataComponentId, RefMetadataComponentType')
113
+ .where({ [sourceIdField]: fetchIds });
114
+ for (const item of items) {
115
+ const cacheSet = (cache[item[sourceIdField]] ??= new Set());
116
+ const type = item[targetFieldPrefix + 'MetadataComponentType'];
117
+ if (!this.typeCache[type])
118
+ continue;
119
+ // eslint-disable-next-line no-await-in-loop
120
+ const idMap = await this.getMetadataMap(type);
121
+ const meta = idMap.get(item[targetFieldPrefix + 'MetadataComponentId']);
122
+ if (!meta)
123
+ continue;
124
+ cacheSet.add(meta);
125
+ add(meta);
126
+ }
127
+ }
128
+ if (recursive && dependentIds.length) {
129
+ return this.dependencies(dependentIds, cache, sourceIdField, recursive, result);
130
+ }
131
+ return result;
132
+ }
133
+ }
134
+ export default class MetadataDependencies extends ServerCommand {
135
+ static summary = messages.getMessage('summary');
136
+ static examples = messages.getMessages('examples');
137
+ static flags = ServerCommand.flags;
138
+ async run() {
139
+ const { flags } = await this.parse(MetadataDependencies);
140
+ const conn = flags['target-org'].getConnection(flags['api-version']);
141
+ const metadata = new MetadataQuery(conn);
142
+ await metadata.describe();
143
+ function handleDependencies(data, format, res) {
144
+ switch (format) {
145
+ case 'xml':
146
+ res.set('Content-Type', 'text/xml');
147
+ res.send(packageXml(data, conn.version));
148
+ break;
149
+ case 'csv':
150
+ res.set('Content-Type', 'text/csv');
151
+ csv.writeToStream(res, data, { headers: ['fullName', 'type'] });
152
+ break;
153
+ default:
154
+ res.json(data);
155
+ break;
156
+ }
157
+ }
158
+ this.serve(flags.port, (app) => {
159
+ app.use('/assets', express.static(scriptDir + '/../../../../public/dist/assets'));
160
+ app.get('/', (req, res) => {
161
+ res.sendFile('metadata-dependencies.html', {
162
+ root: scriptDir + '/../../../../public/dist',
163
+ });
164
+ });
165
+ app.get('/api/metadata', async (req, res) => {
166
+ res.json(await metadata.describe());
167
+ });
168
+ app.get('/api/metadata/:type', async (req, res) => {
169
+ res.json(await metadata.list(req.params.type));
170
+ });
171
+ app.get('/api/metadata/usage/:type/:id', async (req, res) => {
172
+ const data = await metadata.usage(req.params.type, req.params.id, req.query.recursive === 'true');
173
+ handleDependencies(data, req.query.format, res);
174
+ });
175
+ app.get('/api/metadata/references/:type/:id', async (req, res) => {
176
+ const data = await metadata.references(req.params.type, req.params.id, req.query.recursive === 'true');
177
+ handleDependencies(data, req.query.format, res);
178
+ });
179
+ });
180
+ }
181
+ }
182
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/commands/kit/metadata/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,8 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const core_1 = require("@salesforce/core");
30
- const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
31
- const csv = __importStar(require("fast-csv"));
32
- const fs_extra_1 = __importDefault(require("fs-extra"));
33
- const metadata_1 = require("../../../../metadata");
1
+ import fs from 'node:fs';
2
+ import { Messages } from '@salesforce/core';
3
+ import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
4
+ import * as csv from 'fast-csv';
5
+ import { getCustomFields } from '../../../../metadata.js';
34
6
  const csvHeaders = [
35
7
  'label',
36
8
  'fullName',
@@ -40,8 +12,8 @@ const csvHeaders = [
40
12
  'scale',
41
13
  'formula',
42
14
  // START picklist specific options
43
- 'valueSetName',
44
- 'values',
15
+ 'valueSetName', // global picklist name
16
+ 'values', // semicolon separated picklist values
45
17
  'restricted',
46
18
  // END
47
19
  'referenceTo',
@@ -57,14 +29,29 @@ const csvHeaders = [
57
29
  'description',
58
30
  'inlineHelpText',
59
31
  ];
60
- core_1.Messages.importMessagesDirectory(__dirname);
61
- const messages = core_1.Messages.loadMessages('@kitalive/sfdx-plugin', 'object.fields.describe');
62
- class FieldsDescribe extends sf_plugins_core_1.SfCommand {
32
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
33
+ const messages = Messages.loadMessages('@kitalive/sfdx-plugin', 'object.fields.describe');
34
+ export default class FieldsDescribe extends SfCommand {
35
+ static summary = messages.getMessage('summary');
36
+ static examples = messages.getMessages('examples');
37
+ static flags = {
38
+ sobject: Flags.string({
39
+ char: 's',
40
+ required: true,
41
+ summary: messages.getMessage('flags.sobject.summary'),
42
+ }),
43
+ file: Flags.string({
44
+ char: 'f',
45
+ summary: messages.getMessage('flags.file.summary'),
46
+ }),
47
+ 'target-org': Flags.requiredOrg(),
48
+ 'api-version': Flags.orgApiVersion(),
49
+ };
63
50
  async run() {
64
51
  const { flags } = await this.parse(FieldsDescribe);
65
52
  const conn = flags['target-org'].getConnection(flags['api-version']);
66
53
  this.spinner.start(messages.getMessage('spinner.start', [flags.sobject]));
67
- const results = await (0, metadata_1.getCustomFields)(conn, flags.sobject);
54
+ const results = await getCustomFields(conn, flags.sobject);
68
55
  this.spinner.stop();
69
56
  if (!this.jsonEnabled()) {
70
57
  const rows = results.map(({ valueSet, ...row }) => {
@@ -91,23 +78,7 @@ class FieldsDescribe extends sf_plugins_core_1.SfCommand {
91
78
  writeCsv(file, rows) {
92
79
  csv
93
80
  .write(rows, { headers: csvHeaders, writeBOM: true })
94
- .pipe(file ? fs_extra_1.default.createWriteStream(file) : process.stdout);
81
+ .pipe(file ? fs.createWriteStream(file) : process.stdout);
95
82
  }
96
83
  }
97
- FieldsDescribe.summary = messages.getMessage('summary');
98
- FieldsDescribe.examples = messages.getMessages('examples');
99
- FieldsDescribe.flags = {
100
- sobject: sf_plugins_core_1.Flags.string({
101
- char: 's',
102
- required: true,
103
- summary: messages.getMessage('flags.sobject.summary'),
104
- }),
105
- file: sf_plugins_core_1.Flags.string({
106
- char: 'f',
107
- summary: messages.getMessage('flags.file.summary'),
108
- }),
109
- 'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
110
- 'api-version': sf_plugins_core_1.Flags.orgApiVersion(),
111
- };
112
- exports.default = FieldsDescribe;
113
84
  //# sourceMappingURL=describe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../../src/commands/kit/object/fields/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../../src/commands/kit/object/fields/describe.ts"],"names":[],"mappings":"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"}