@salesforce/plugin-org 2.4.7 → 2.5.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.
@@ -0,0 +1,17 @@
1
+ import { DescribeMetadataResult } from 'jsforce/api/metadata';
2
+ import { SfCommand } from '@salesforce/sf-plugins-core';
3
+ export declare class ListMetadataTypes extends SfCommand<DescribeMetadataResult> {
4
+ static readonly summary: string;
5
+ static readonly description: string;
6
+ static readonly examples: string[];
7
+ static readonly aliases: string[];
8
+ static readonly deprecateAliases = true;
9
+ static readonly flags: {
10
+ 'api-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ 'output-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
+ 'filter-known': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ };
16
+ run(): Promise<DescribeMetadataResult>;
17
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListMetadataTypes = 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 core_1 = require("@salesforce/core");
12
+ const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
13
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
14
+ core_1.Messages.importMessagesDirectory(__dirname);
15
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'metadata-types');
16
+ class ListMetadataTypes extends sf_plugins_core_1.SfCommand {
17
+ async run() {
18
+ const { flags } = await this.parse(ListMetadataTypes);
19
+ const connection = flags['target-org'].getConnection(flags['api-version']);
20
+ const describeResult = await connection.metadata.describe(flags['api-version']);
21
+ if (flags['filter-known']) {
22
+ this.debug('Filtering for only metadata types unregistered in the CLI');
23
+ const registry = new source_deploy_retrieve_1.RegistryAccess();
24
+ describeResult.metadataObjects = describeResult.metadataObjects.filter((md) => {
25
+ try {
26
+ // An error is thrown when a type can't be found by name, and we want
27
+ // the ones that can't be found.
28
+ registry.getTypeByName(md.xmlName);
29
+ return false;
30
+ }
31
+ catch (e) {
32
+ return true;
33
+ }
34
+ });
35
+ }
36
+ if (flags['output-file']) {
37
+ await fs.promises.writeFile(flags['output-file'], JSON.stringify(describeResult, null, 2));
38
+ this.logSuccess(`Wrote result file to ${flags['output-file']}.`);
39
+ }
40
+ else {
41
+ this.styledJSON(describeResult);
42
+ }
43
+ return describeResult;
44
+ }
45
+ }
46
+ exports.ListMetadataTypes = ListMetadataTypes;
47
+ ListMetadataTypes.summary = messages.getMessage('summary');
48
+ ListMetadataTypes.description = messages.getMessage('description');
49
+ ListMetadataTypes.examples = messages.getMessages('examples');
50
+ ListMetadataTypes.aliases = ['force:mdapi:describemetadata'];
51
+ ListMetadataTypes.deprecateAliases = true;
52
+ ListMetadataTypes.flags = {
53
+ 'api-version': sf_plugins_core_1.Flags.orgApiVersion({
54
+ aliases: ['apiversion', 'a'],
55
+ deprecateAliases: true,
56
+ summary: messages.getMessage('flags.api-version.summary'),
57
+ }),
58
+ loglevel: sf_plugins_core_1.loglevel,
59
+ 'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
60
+ 'output-file': sf_plugins_core_1.Flags.file({
61
+ aliases: ['resultfile'],
62
+ deprecateAliases: true,
63
+ char: 'f',
64
+ summary: messages.getMessage('flags.output-file.summary'),
65
+ description: messages.getMessage('flags.output-file.description'),
66
+ }),
67
+ 'filter-known': sf_plugins_core_1.Flags.boolean({
68
+ aliases: ['filterknown'],
69
+ deprecateAliases: true,
70
+ char: 'k',
71
+ summary: messages.getMessage('flags.filter-known.summary'),
72
+ hidden: true,
73
+ }),
74
+ };
75
+ //# sourceMappingURL=metadata-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-types.js","sourceRoot":"","sources":["../../../../src/commands/org/list/metadata-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { FileProperties } from 'jsforce/api/metadata';
2
+ import { SfCommand } from '@salesforce/sf-plugins-core';
3
+ export type ListMetadataCommandResult = FileProperties[];
4
+ export declare class ListMetadata extends SfCommand<ListMetadataCommandResult> {
5
+ static readonly summary: string;
6
+ static readonly description: string;
7
+ static readonly examples: string[];
8
+ static readonly aliases: string[];
9
+ static readonly deprecateAliases = true;
10
+ static readonly flags: {
11
+ 'api-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
+ 'output-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
15
+ 'metadata-type': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
16
+ folder: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
17
+ };
18
+ run(): Promise<ListMetadataCommandResult>;
19
+ }
@@ -0,0 +1,68 @@
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.ListMetadata = void 0;
10
+ const fs = require("fs");
11
+ const core_1 = require("@salesforce/core");
12
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
13
+ core_1.Messages.importMessagesDirectory(__dirname);
14
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'list.metadata');
15
+ class ListMetadata extends sf_plugins_core_1.SfCommand {
16
+ async run() {
17
+ const { flags } = await this.parse(ListMetadata);
18
+ const conn = flags['target-org'].getConnection(flags['api-version']);
19
+ const query = flags.folder
20
+ ? { type: flags['metadata-type'], folder: flags.folder }
21
+ : { type: flags['metadata-type'] };
22
+ const listResult = await conn.metadata.list(query, flags['api-version']);
23
+ if (flags['output-file']) {
24
+ fs.writeFileSync(flags['output-file'], JSON.stringify(listResult, null, 2));
25
+ this.logSuccess(`Wrote result file to ${flags['output-file']}.`);
26
+ }
27
+ else if (listResult?.length) {
28
+ this.styledJSON(listResult);
29
+ }
30
+ else {
31
+ this.warn(messages.getMessage('noMatchingMetadata', [flags['metadata-type'], conn.getUsername()]));
32
+ }
33
+ return listResult;
34
+ }
35
+ }
36
+ exports.ListMetadata = ListMetadata;
37
+ ListMetadata.summary = messages.getMessage('summary');
38
+ ListMetadata.description = messages.getMessage('description');
39
+ ListMetadata.examples = messages.getMessages('examples');
40
+ ListMetadata.aliases = ['force:mdapi:listmetadata'];
41
+ ListMetadata.deprecateAliases = true;
42
+ ListMetadata.flags = {
43
+ 'api-version': sf_plugins_core_1.Flags.orgApiVersion({
44
+ aliases: ['apiversion', 'a'],
45
+ deprecateAliases: true,
46
+ summary: messages.getMessage('flags.api-version.summary'),
47
+ }),
48
+ loglevel: sf_plugins_core_1.loglevel,
49
+ 'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
50
+ 'output-file': sf_plugins_core_1.Flags.file({
51
+ aliases: ['resultfile'],
52
+ deprecateAliases: true,
53
+ char: 'f',
54
+ summary: messages.getMessage('flags.output-file.summary'),
55
+ }),
56
+ 'metadata-type': sf_plugins_core_1.Flags.string({
57
+ aliases: ['metadatatype'],
58
+ deprecateAliases: true,
59
+ char: 'm',
60
+ summary: messages.getMessage('flags.metadata-type.summary'),
61
+ required: true,
62
+ }),
63
+ folder: sf_plugins_core_1.Flags.string({
64
+ summary: messages.getMessage('flags.folder.summary'),
65
+ description: messages.getMessage('flags.folder.description'),
66
+ }),
67
+ };
68
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/commands/org/list/metadata.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,13 @@ export declare class OrgOpenCommand extends SfCommand<OrgOpenOutput> {
13
13
  path: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
14
  'url-only': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
15
  loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
16
+ 'source-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
16
17
  };
17
18
  private org;
19
+ private conn;
18
20
  run(): Promise<OrgOpenOutput>;
19
21
  private buildFrontdoorUrl;
22
+ private generateFileUrl;
20
23
  }
21
24
  export interface OrgOpenOutput {
22
25
  url: string;
@@ -7,10 +7,12 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.OrgOpenCommand = void 0;
10
+ const path = require("path");
10
11
  const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
11
12
  const core_1 = require("@salesforce/core");
12
13
  const kit_1 = require("@salesforce/kit");
13
14
  const open = require("open");
15
+ const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
14
16
  const utils_1 = require("../../shared/utils");
15
17
  core_1.Messages.importMessagesDirectory(__dirname);
16
18
  const messages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'open');
@@ -19,14 +21,20 @@ class OrgOpenCommand extends sf_plugins_core_1.SfCommand {
19
21
  async run() {
20
22
  const { flags } = await this.parse(OrgOpenCommand);
21
23
  this.org = flags['target-org'];
22
- const frontDoorUrl = await this.buildFrontdoorUrl(flags['api-version']);
23
- const url = flags.path ? `${frontDoorUrl}&retURL=${flags.path}` : frontDoorUrl;
24
+ this.conn = this.org.getConnection(flags['api-version']);
25
+ let url = await this.buildFrontdoorUrl();
26
+ if (flags['source-file']) {
27
+ url += `&retURL=${await this.generateFileUrl(flags['source-file'])}`;
28
+ }
29
+ else if (flags.path) {
30
+ url += `&retURL=${flags.path}`;
31
+ }
24
32
  const orgId = this.org.getOrgId();
25
33
  // TODO: better typings in sfdx-core for orgs read from auth files
26
34
  const username = this.org.getUsername();
27
35
  const output = { orgId, url, username };
28
36
  const containerMode = new kit_1.Env().getBoolean('SFDX_CONTAINER_MODE');
29
- // security warning only for --json OR --urlonly OR containerMode
37
+ // security warning only for --json OR --url-only OR containerMode
30
38
  if (flags['url-only'] || flags.json || containerMode) {
31
39
  this.warn(sharedMessages.getMessage('SecurityWarning'));
32
40
  this.log('');
@@ -70,20 +78,39 @@ class OrgOpenCommand extends sf_plugins_core_1.SfCommand {
70
78
  await (0, utils_1.openUrl)(url, openOptions);
71
79
  return output;
72
80
  }
73
- async buildFrontdoorUrl(version) {
81
+ async buildFrontdoorUrl() {
74
82
  await this.org.refreshAuth(); // we need a live accessToken for the frontdoor url
75
- const conn = this.org.getConnection(version);
76
- const accessToken = conn.accessToken;
83
+ const accessToken = this.conn.accessToken;
77
84
  const instanceUrl = this.org.getField(core_1.Org.Fields.INSTANCE_URL);
78
85
  const instanceUrlClean = instanceUrl.replace(/\/$/, '');
79
86
  return `${instanceUrlClean}/secur/frontdoor.jsp?sid=${accessToken}`;
80
87
  }
88
+ async generateFileUrl(file) {
89
+ try {
90
+ const metadataResolver = new source_deploy_retrieve_1.MetadataResolver();
91
+ const components = metadataResolver.getComponentsFromPath(file);
92
+ const typeName = components[0]?.type?.name;
93
+ if (typeName === 'FlexiPage') {
94
+ const flexipage = await this.conn.singleRecordQuery(`SELECT id FROM flexipage WHERE DeveloperName='${path.basename(file, '.flexipage-meta.xml')}'`, { tooling: true });
95
+ return `/visualEditor/appBuilder.app?pageId=${flexipage.Id}`;
96
+ }
97
+ else if (typeName === 'ApexPage') {
98
+ return `/apex/${path.basename(file).replace('.page-meta.xml', '').replace('.page', '')}`;
99
+ }
100
+ else {
101
+ return 'lightning/setup/FlexiPageList/home';
102
+ }
103
+ }
104
+ catch (error) {
105
+ return 'lightning/setup/FlexiPageList/home';
106
+ }
107
+ }
81
108
  }
82
109
  exports.OrgOpenCommand = OrgOpenCommand;
83
110
  OrgOpenCommand.summary = messages.getMessage('summary');
84
111
  OrgOpenCommand.description = messages.getMessage('description');
85
112
  OrgOpenCommand.examples = messages.getMessages('examples');
86
- OrgOpenCommand.aliases = ['force:org:open'];
113
+ OrgOpenCommand.aliases = ['force:org:open', 'force:source:open'];
87
114
  OrgOpenCommand.deprecateAliases = true;
88
115
  OrgOpenCommand.flags = {
89
116
  'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
@@ -98,6 +125,7 @@ OrgOpenCommand.flags = {
98
125
  char: 'p',
99
126
  summary: messages.getMessage('flags.path.summary'),
100
127
  env: 'FORCE_OPEN_URL',
128
+ exclusive: ['source-file'],
101
129
  parse: (input) => Promise.resolve(encodeURIComponent(decodeURIComponent(input))),
102
130
  }),
103
131
  'url-only': sf_plugins_core_1.Flags.boolean({
@@ -107,5 +135,12 @@ OrgOpenCommand.flags = {
107
135
  deprecateAliases: true,
108
136
  }),
109
137
  loglevel: sf_plugins_core_1.loglevel,
138
+ 'source-file': sf_plugins_core_1.Flags.file({
139
+ char: 'f',
140
+ aliases: ['sourcefile'],
141
+ exclusive: ['path'],
142
+ deprecateAliases: true,
143
+ summary: messages.getMessage('flags.source-file.summary'),
144
+ }),
110
145
  };
111
146
  //# sourceMappingURL=open.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/org/open.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iEAMqC;AACrC,2CAA2E;AAC3E,yCAAgD;AAChD,6BAA8B;AAC9B,8CAA6C;AAE7C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,eAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;AAEnF,MAAa,cAAe,SAAQ,2BAAwB;IAgCnD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,kEAAkE;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAY,CAAC;QAClD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,IAAI,SAAG,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAElE,iEAAiE;QACjE,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACd;QAED,IAAI,aAAa,EAAE;YACjB,qEAAqE;YACrE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC;SACf;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACrB,wBAAwB;YACxB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC;SACf;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7E,mCAAmC;QACnC,IAAI;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,KAAK,EAAE;gBACxB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBACnC,MAAM,MAAM,GAAG,WAAW,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;oBACpF,MAAM,OAAO,GAAG,IAAI,cAAQ,CAAC,IAAI,SAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,cAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnG,MAAM,MAAM,GAAG,MAAM,aAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACzD,MAAM,CAAC,KAAK,CAAC,uBAAuB,MAAM,UAAU,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;oBAC/E,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,CAAC;iBACpF;gBACD,MAAM,cAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzB;YACD,MAAM,GAAG,CAAC;SACX;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO;YAC/B,CAAC,CAAC,oEAAoE;gBACpE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAwC,CAAC,EAAE,EAAE;YAC9E,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,IAAA,eAAO,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAgB;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,mDAAmD;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAS,UAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,GAAG,gBAAgB,4BAA4B,WAAW,EAAE,CAAC;IACtE,CAAC;;AAnGH,wCAoGC;AAnGwB,sBAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,0BAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,uBAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC5C,sBAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACtC,+BAAgB,GAAG,IAAI,CAAC;AAEf,oBAAK,GAAG;IAC7B,YAAY,EAAE,iDAA+B;IAC7C,aAAa,EAAE,mDAAiC;IAChD,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;QACtC,SAAS,EAAE,CAAC,UAAU,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,uBAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClD,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,CAAC,KAAa,EAAmB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1G,CAAC;IACF,UAAU,EAAE,uBAAK,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACtD,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,gBAAgB,EAAE,IAAI;KACvB,CAAC;IACF,QAAQ,EAAR,0BAAQ;CACT,CAAC"}
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/org/open.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ # description
2
+
3
+ Use this command to identify individual components in your manifest file or if you want a high-level view of particular metadata types in your org. For example, you can use this command to return a list of names of all the CustomObject or Layout components in your org, then use this information in a retrieve command that returns a subset of these components.
4
+
5
+ The username that you use to connect to the org must have the Modify All Data or Modify Metadata Through Metadata API Functions permission.
6
+
7
+ # summary
8
+
9
+ List the metadata components and properties of a specified type.
10
+
11
+ # examples
12
+
13
+ - List the CustomObject components, and their properties, in the org with alias "my-dev-org":
14
+
15
+ $ <%= config.bin %> <%= command.id %> --metadata-type CustomObject --target-org my-dev-org
16
+
17
+ - List the CustomObject components in your default org, write the output to the specified file, and use API version 57.0:
18
+
19
+ $ <%= config.bin %> <%= command.id %> --metadata-type CustomObject --api-version 57.0 --output-file /path/to/outputfilename.txt
20
+
21
+ - List the Dashboard components in your default org that are contained in the "folderSales" folder, write the output to the specified file, and use API version 57.0:
22
+
23
+ $ <%= config.bin %> <%= command.id %> --metadata-type Dashboard --folder folderSales --api-version 57.0 --output-file /path/to/outputfilename.txt
24
+
25
+ # flags.api-version.summary
26
+
27
+ API version to use; default is the most recent API version.
28
+
29
+ # flags.output-file.summary
30
+
31
+ Pathname of the file in which to write the results.
32
+
33
+ # flags.metadata-type.summary
34
+
35
+ Metadata type to be retrieved, such as CustomObject; metadata type names are case-sensitive.
36
+
37
+ # flags.folder.summary
38
+
39
+ Folder associated with the component; required for components that use folders; folder names are case-sensitive.
40
+
41
+ # flags.folder.description
42
+
43
+ Examples of metadata types that use folders are Dashboard, Document, EmailTemplate, and Report.
44
+
45
+ # noMatchingMetadata
46
+
47
+ No metadata found for type: %s in org: %s.
@@ -0,0 +1,37 @@
1
+ # description
2
+
3
+ The information includes Apex classes and triggers, custom objects, custom fields on standard objects, tab sets that define an app, and many other metadata types. Use this information to identify the syntax needed for a <name> element in a manifest file (package.xml).
4
+
5
+ The username that you use to connect to the org must have the Modify All Data or Modify Metadata Through Metadata API Functions permission.
6
+
7
+ # summary
8
+
9
+ Display details about the metadata types that are enabled for your org.
10
+
11
+ # examples
12
+
13
+ - Display information about all known and enabled metadata types in the org with alias "my-dev-org" using API version 57.0:
14
+
15
+ $ <%= config.bin %> <%= command.id %> --api-version 57.0 --target-org my-dev-org
16
+
17
+ - Display only the metadata types that aren't yet supported by Salesforce CLI in your default org and write the results to the specified file:
18
+
19
+ $ <%= config.bin %> <%= command.id %> --output-file /path/to/outputfilename.txt --filter-known
20
+
21
+ # flags.api-version.summary
22
+
23
+ API version to use; default is the most recent API version.
24
+
25
+ # flags.output-file.summary
26
+
27
+ Pathname of the file in which to write the results.
28
+
29
+ # flags.filter-known.summary
30
+
31
+ Filter the known metadata types from the result to display only the types not yet fully supported by Salesforce CLI.
32
+
33
+ filter metadata known by the CLI
34
+
35
+ # flags.output-file.description
36
+
37
+ Directing the output to a file makes it easier to extract relevant information for your package.xml manifest file. The default output destination is the terminal or command window console.
package/messages/open.md CHANGED
@@ -6,6 +6,8 @@ Open your default scratch org, or another specified org, in a browser.
6
6
 
7
7
  To open a specific page, specify the portion of the URL after "https://MyDomainName.my.salesforce.com/" as the value for the --path flag. For example, specify "--path lightning" to open Lightning Experience, or specify "--path /apex/YourPage" to open a Visualforce page.
8
8
 
9
+ Use the --source-file to open a Lightning Page from your local project in Lightning App Builder. Lightning page files have the suffix .flexipage-meta.xml, and are stored in the "flexipages" directory.
10
+
9
11
  To generate a URL but not launch it in your browser, specify --url-only.
10
12
 
11
13
  To open in a specific browser, use the --browser flag. Supported browsers are "chrome", "edge", and "firefox". If you don't specify --browser, the org opens in your default browser.
@@ -24,10 +26,18 @@ To open in a specific browser, use the --browser flag. Supported browsers are "c
24
26
 
25
27
  $ <%= config.bin %> <%= command.id %> --url-only --path lightning
26
28
 
29
+ - Open a local Lightning page in your default org's Lightning App Builder:
30
+
31
+ $ <%= config.bin %> <%= command.id %> --source-path force-app/main/default/flexipages/Hello.flexipage-meta.xml
32
+
27
33
  # flags.browser.summary
28
34
 
29
35
  Browser where the org opens.
30
36
 
37
+ # flags.source-file.summary
38
+
39
+ Path to an ApexPage or FlexiPage to open in Lightning App Builder.
40
+
31
41
  # flags.path.summary
32
42
 
33
43
  Navigation URL path to open a specific page.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.4.7",
2
+ "version": "2.5.0",
3
3
  "commands": {
4
4
  "org:display": {
5
5
  "id": "org:display",
@@ -156,18 +156,20 @@
156
156
  "org:open": {
157
157
  "id": "org:open",
158
158
  "summary": "Open your default scratch org, or another specified org, in a browser.",
159
- "description": "To open a specific page, specify the portion of the URL after \"https://MyDomainName.my.salesforce.com/\" as the value for the --path flag. For example, specify \"--path lightning\" to open Lightning Experience, or specify \"--path /apex/YourPage\" to open a Visualforce page.\n\nTo generate a URL but not launch it in your browser, specify --url-only.\n\nTo open in a specific browser, use the --browser flag. Supported browsers are \"chrome\", \"edge\", and \"firefox\". If you don't specify --browser, the org opens in your default browser.",
159
+ "description": "To open a specific page, specify the portion of the URL after \"https://MyDomainName.my.salesforce.com/\" as the value for the --path flag. For example, specify \"--path lightning\" to open Lightning Experience, or specify \"--path /apex/YourPage\" to open a Visualforce page.\n\nUse the --source-file to open a Lightning Page from your local project in Lightning App Builder. Lightning page files have the suffix .flexipage-meta.xml, and are stored in the \"flexipages\" directory.\n\nTo generate a URL but not launch it in your browser, specify --url-only.\n\nTo open in a specific browser, use the --browser flag. Supported browsers are \"chrome\", \"edge\", and \"firefox\". If you don't specify --browser, the org opens in your default browser.",
160
160
  "strict": true,
161
161
  "pluginName": "@salesforce/plugin-org",
162
162
  "pluginAlias": "@salesforce/plugin-org",
163
163
  "pluginType": "core",
164
164
  "aliases": [
165
- "force:org:open"
165
+ "force:org:open",
166
+ "force:source:open"
166
167
  ],
167
168
  "examples": [
168
169
  "Open your default org in your default browser:\n$ <%= config.bin %> <%= command.id %>",
169
170
  "Open the org with alias MyTestOrg1 in the Firefox browser:\n$ <%= config.bin %> <%= command.id %> --target-org MyTestOrg1 --browser firefox",
170
- "Display the navigation URL for the Lightning Experience page for your default org, but don't open the page in a browser:\n$ <%= config.bin %> <%= command.id %> --url-only --path lightning"
171
+ "Display the navigation URL for the Lightning Experience page for your default org, but don't open the page in a browser:\n$ <%= config.bin %> <%= command.id %> --url-only --path lightning",
172
+ "Open a local Lightning page in your default org's Lightning App Builder:\n$ <%= config.bin %> <%= command.id %> --source-path force-app/main/default/flexipages/Hello.flexipage-meta.xml"
171
173
  ],
172
174
  "deprecateAliases": true,
173
175
  "flags": {
@@ -224,6 +226,9 @@
224
226
  "char": "p",
225
227
  "summary": "Navigation URL path to open a specific page.",
226
228
  "multiple": false,
229
+ "exclusive": [
230
+ "source-file"
231
+ ],
227
232
  "deprecateAliases": true
228
233
  },
229
234
  "url-only": {
@@ -246,6 +251,20 @@
246
251
  "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
247
252
  },
248
253
  "deprecateAliases": true
254
+ },
255
+ "source-file": {
256
+ "name": "source-file",
257
+ "type": "option",
258
+ "char": "f",
259
+ "summary": "Path to an ApexPage or FlexiPage to open in Lightning App Builder.",
260
+ "multiple": false,
261
+ "exclusive": [
262
+ "path"
263
+ ],
264
+ "deprecateAliases": true,
265
+ "aliases": [
266
+ "sourcefile"
267
+ ]
249
268
  }
250
269
  },
251
270
  "args": {},
@@ -1076,6 +1095,190 @@
1076
1095
  "args": {},
1077
1096
  "hasDynamicHelp": true
1078
1097
  },
1098
+ "org:list:metadata-types": {
1099
+ "id": "org:list:metadata-types",
1100
+ "summary": "Display details about the metadata types that are enabled for your org.",
1101
+ "description": "The information includes Apex classes and triggers, custom objects, custom fields on standard objects, tab sets that define an app, and many other metadata types. Use this information to identify the syntax needed for a <name> element in a manifest file (package.xml).\n\nThe username that you use to connect to the org must have the Modify All Data or Modify Metadata Through Metadata API Functions permission.",
1102
+ "strict": true,
1103
+ "pluginName": "@salesforce/plugin-org",
1104
+ "pluginAlias": "@salesforce/plugin-org",
1105
+ "pluginType": "core",
1106
+ "aliases": [
1107
+ "force:mdapi:describemetadata"
1108
+ ],
1109
+ "examples": [
1110
+ "Display information about all known and enabled metadata types in the org with alias \"my-dev-org\" using API version 57.0:\n$ <%= config.bin %> <%= command.id %> --api-version 57.0 --target-org my-dev-org",
1111
+ "Display only the metadata types that aren't yet supported by Salesforce CLI in your default org and write the results to the specified file:\n$ <%= config.bin %> <%= command.id %> --output-file /path/to/outputfilename.txt --filter-known"
1112
+ ],
1113
+ "deprecateAliases": true,
1114
+ "flags": {
1115
+ "json": {
1116
+ "name": "json",
1117
+ "type": "boolean",
1118
+ "description": "Format output as json.",
1119
+ "helpGroup": "GLOBAL",
1120
+ "allowNo": false,
1121
+ "deprecateAliases": true
1122
+ },
1123
+ "api-version": {
1124
+ "name": "api-version",
1125
+ "type": "option",
1126
+ "summary": "API version to use; default is the most recent API version.",
1127
+ "description": "Override the api version used for api requests made by this command",
1128
+ "multiple": false,
1129
+ "deprecateAliases": true,
1130
+ "aliases": [
1131
+ "apiversion",
1132
+ "a"
1133
+ ]
1134
+ },
1135
+ "loglevel": {
1136
+ "name": "loglevel",
1137
+ "type": "option",
1138
+ "hidden": true,
1139
+ "multiple": false,
1140
+ "deprecated": {
1141
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
1142
+ },
1143
+ "deprecateAliases": true
1144
+ },
1145
+ "target-org": {
1146
+ "name": "target-org",
1147
+ "type": "option",
1148
+ "char": "o",
1149
+ "summary": "Username or alias of the target org.",
1150
+ "required": true,
1151
+ "multiple": false,
1152
+ "deprecateAliases": true,
1153
+ "aliases": [
1154
+ "targetusername",
1155
+ "u"
1156
+ ]
1157
+ },
1158
+ "output-file": {
1159
+ "name": "output-file",
1160
+ "type": "option",
1161
+ "char": "f",
1162
+ "summary": "Pathname of the file in which to write the results.",
1163
+ "description": "Directing the output to a file makes it easier to extract relevant information for your package.xml manifest file. The default output destination is the terminal or command window console.",
1164
+ "multiple": false,
1165
+ "deprecateAliases": true,
1166
+ "aliases": [
1167
+ "resultfile"
1168
+ ]
1169
+ },
1170
+ "filter-known": {
1171
+ "name": "filter-known",
1172
+ "type": "boolean",
1173
+ "char": "k",
1174
+ "summary": "Filter the known metadata types from the result to display only the types not yet fully supported by Salesforce CLI.\n\nfilter metadata known by the CLI",
1175
+ "hidden": true,
1176
+ "allowNo": false,
1177
+ "deprecateAliases": true,
1178
+ "aliases": [
1179
+ "filterknown"
1180
+ ]
1181
+ }
1182
+ },
1183
+ "args": {},
1184
+ "hasDynamicHelp": true
1185
+ },
1186
+ "org:list:metadata": {
1187
+ "id": "org:list:metadata",
1188
+ "summary": "List the metadata components and properties of a specified type.",
1189
+ "description": "Use this command to identify individual components in your manifest file or if you want a high-level view of particular metadata types in your org. For example, you can use this command to return a list of names of all the CustomObject or Layout components in your org, then use this information in a retrieve command that returns a subset of these components.\n\nThe username that you use to connect to the org must have the Modify All Data or Modify Metadata Through Metadata API Functions permission.",
1190
+ "strict": true,
1191
+ "pluginName": "@salesforce/plugin-org",
1192
+ "pluginAlias": "@salesforce/plugin-org",
1193
+ "pluginType": "core",
1194
+ "aliases": [
1195
+ "force:mdapi:listmetadata"
1196
+ ],
1197
+ "examples": [
1198
+ "List the CustomObject components, and their properties, in the org with alias \"my-dev-org\":\n$ <%= config.bin %> <%= command.id %> --metadata-type CustomObject --target-org my-dev-org",
1199
+ "List the CustomObject components in your default org, write the output to the specified file, and use API version 57.0:\n$ <%= config.bin %> <%= command.id %> --metadata-type CustomObject --api-version 57.0 --output-file /path/to/outputfilename.txt",
1200
+ "List the Dashboard components in your default org that are contained in the \"folderSales\" folder, write the output to the specified file, and use API version 57.0:\n$ <%= config.bin %> <%= command.id %> --metadata-type Dashboard --folder folderSales --api-version 57.0 --output-file /path/to/outputfilename.txt"
1201
+ ],
1202
+ "deprecateAliases": true,
1203
+ "flags": {
1204
+ "json": {
1205
+ "name": "json",
1206
+ "type": "boolean",
1207
+ "description": "Format output as json.",
1208
+ "helpGroup": "GLOBAL",
1209
+ "allowNo": false,
1210
+ "deprecateAliases": true
1211
+ },
1212
+ "api-version": {
1213
+ "name": "api-version",
1214
+ "type": "option",
1215
+ "summary": "API version to use; default is the most recent API version.",
1216
+ "description": "Override the api version used for api requests made by this command",
1217
+ "multiple": false,
1218
+ "deprecateAliases": true,
1219
+ "aliases": [
1220
+ "apiversion",
1221
+ "a"
1222
+ ]
1223
+ },
1224
+ "loglevel": {
1225
+ "name": "loglevel",
1226
+ "type": "option",
1227
+ "hidden": true,
1228
+ "multiple": false,
1229
+ "deprecated": {
1230
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
1231
+ },
1232
+ "deprecateAliases": true
1233
+ },
1234
+ "target-org": {
1235
+ "name": "target-org",
1236
+ "type": "option",
1237
+ "char": "o",
1238
+ "summary": "Username or alias of the target org.",
1239
+ "required": true,
1240
+ "multiple": false,
1241
+ "deprecateAliases": true,
1242
+ "aliases": [
1243
+ "targetusername",
1244
+ "u"
1245
+ ]
1246
+ },
1247
+ "output-file": {
1248
+ "name": "output-file",
1249
+ "type": "option",
1250
+ "char": "f",
1251
+ "summary": "Pathname of the file in which to write the results.",
1252
+ "multiple": false,
1253
+ "deprecateAliases": true,
1254
+ "aliases": [
1255
+ "resultfile"
1256
+ ]
1257
+ },
1258
+ "metadata-type": {
1259
+ "name": "metadata-type",
1260
+ "type": "option",
1261
+ "char": "m",
1262
+ "summary": "Metadata type to be retrieved, such as CustomObject; metadata type names are case-sensitive.",
1263
+ "required": true,
1264
+ "multiple": false,
1265
+ "deprecateAliases": true,
1266
+ "aliases": [
1267
+ "metadatatype"
1268
+ ]
1269
+ },
1270
+ "folder": {
1271
+ "name": "folder",
1272
+ "type": "option",
1273
+ "summary": "Folder associated with the component; required for components that use folders; folder names are case-sensitive.",
1274
+ "description": "Examples of metadata types that use folders are Dashboard, Document, EmailTemplate, and Report.",
1275
+ "multiple": false,
1276
+ "deprecateAliases": true
1277
+ }
1278
+ },
1279
+ "args": {},
1280
+ "hasDynamicHelp": true
1281
+ },
1079
1282
  "org:resume:sandbox": {
1080
1283
  "id": "org:resume:sandbox",
1081
1284
  "summary": "Check the status of a sandbox creation, and log in to it if it's ready.",
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@salesforce/plugin-org",
3
3
  "description": "Commands to interact with Salesforce orgs",
4
- "version": "2.4.7",
4
+ "version": "2.5.0",
5
5
  "author": "Salesforce",
6
6
  "main": "lib/index.js",
7
7
  "bugs": "https://github.com/forcedotcom/cli/issues",
8
8
  "dependencies": {
9
- "@oclif/core": "^2.3.1",
9
+ "@oclif/core": "^2.6.3",
10
10
  "@salesforce/core": "^3.33.5",
11
11
  "@salesforce/kit": "^1.9.0",
12
12
  "@salesforce/sf-plugins-core": "^2.2.3",
13
- "open": "8.4.2",
13
+ "@salesforce/source-deploy-retrieve": "^7.11.0",
14
+ "open": "^8.4.2",
14
15
  "tslib": "^2"
15
16
  },
16
17
  "devDependencies": {
@@ -19,6 +20,7 @@
19
20
  "@salesforce/dev-config": "^3.1.0",
20
21
  "@salesforce/dev-scripts": "^4.1.2",
21
22
  "@salesforce/plugin-command-reference": "^2.2.9",
23
+ "@salesforce/plugin-source": "^2.7.0",
22
24
  "@salesforce/prettier-config": "^0.0.2",
23
25
  "@salesforce/ts-sinon": "1.4.6",
24
26
  "@swc/core": "^1.3.37",
@@ -36,7 +38,7 @@
36
38
  "eslint-plugin-header": "^3.0.0",
37
39
  "eslint-plugin-import": "2.27.5",
38
40
  "eslint-plugin-jsdoc": "^40.0.1",
39
- "eslint-plugin-sf-plugin": "^1.8.1",
41
+ "eslint-plugin-sf-plugin": "^1.13.0",
40
42
  "husky": "^7.0.4",
41
43
  "mocha": "^9.1.3",
42
44
  "moment": "^2.29.1",
@@ -74,7 +76,8 @@
74
76
  "devPlugins": [
75
77
  "@oclif/plugin-help",
76
78
  "@oclif/plugin-command-snapshot",
77
- "@salesforce/plugin-command-reference"
79
+ "@salesforce/plugin-command-reference",
80
+ "@salesforce/plugin-source"
78
81
  ],
79
82
  "topics": {
80
83
  "org": {
@@ -86,6 +89,9 @@
86
89
  "resume": {
87
90
  "description": "Resume an org creation that was started asynchronously, timed out, or was interrupted."
88
91
  },
92
+ "list": {
93
+ "description": "list metadata types that are relevant to the org"
94
+ },
89
95
  "delete": {
90
96
  "description": "Delete scratch orgs, sandboxes, org shapes, and org snapshots."
91
97
  }
@@ -115,7 +121,7 @@
115
121
  "prepack": "sf-prepack",
116
122
  "prepare": "sf-install",
117
123
  "test": "wireit",
118
- "test:nuts": "nyc mocha \"./test/nut/*.nut.ts\" --slow 4500 --timeout 1200000",
124
+ "test:nuts": "nyc mocha \"./test/nut/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --jobs 20",
119
125
  "test:nuts:legacy": "nyc mocha \"./test/nut/legacy/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --jobs 10",
120
126
  "test:nuts:sandbox": "nyc mocha \"./test/**/*.sandboxNut.ts\" --slow 450000 --timeout 7200000 --parallel --jobs 10",
121
127
  "test:only": "wireit",
@@ -232,7 +238,7 @@
232
238
  }
233
239
  },
234
240
  "sfdx": {
235
- "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-org/2.4.7.crt",
236
- "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-org/2.4.7.sig"
241
+ "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-org/2.5.0.crt",
242
+ "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-org/2.5.0.sig"
237
243
  }
238
244
  }