@salesforce/plugin-api 1.3.7-dev.0 → 1.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2025, Salesforce.com, Inc.
1
+ Copyright (c) 2026, Salesforce.com, Inc.
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
package/README.md CHANGED
@@ -61,7 +61,6 @@ sf plugins
61
61
 
62
62
  - [`sf api request graphql`](#sf-api-request-graphql)
63
63
  - [`sf api request rest [URL]`](#sf-api-request-rest-url)
64
- - [`sf api request soap URL`](#sf-api-request-soap-url)
65
64
 
66
65
  ## `sf api request graphql`
67
66
 
@@ -114,7 +113,7 @@ EXAMPLES
114
113
  $ sf api request graphql --body example.txt --stream-to-file output.txt --include
115
114
  ```
116
115
 
117
- _See code: [src/commands/api/request/graphql.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7-dev.0/src/commands/api/request/graphql.ts)_
116
+ _See code: [src/commands/api/request/graphql.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7/src/commands/api/request/graphql.ts)_
118
117
 
119
118
  ## `sf api request rest [URL]`
120
119
 
@@ -223,64 +222,7 @@ FLAG DESCRIPTIONS
223
222
  https://github.com/salesforcecli/plugin-api/tree/main/test/test-files/data-project.
224
223
  ```
225
224
 
226
- _See code: [src/commands/api/request/rest.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7-dev.0/src/commands/api/request/rest.ts)_
227
-
228
- ## `sf api request soap URL`
229
-
230
- Make an authenticated SOAP API request to a Salesforce org.
231
-
232
- ```
233
- USAGE
234
- $ sf api request soap URL -o <value> --body file [--flags-dir <value>] [--output-file file]
235
-
236
- ARGUMENTS
237
- URL SOAP API endpoint
238
-
239
- FLAGS
240
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
241
- configuration variable is already set.
242
- --body=file (required) File or XML content for the SOAP Body. Specify "-" to read from standard input.
243
- If passing a file, prefix the filename with '@'. The command will extract the SOAP Body
244
- content if you provide a full SOAP envelope, or use your content as-is if it's just the
245
- method call.
246
- --output-file=file File path to save the SOAP response. If not specified, the response is printed to stdout.
247
-
248
- GLOBAL FLAGS
249
- --flags-dir=<value> Import flag values from a directory.
250
-
251
- DESCRIPTION
252
- Make an authenticated SOAP API request to a Salesforce org.
253
-
254
- This command allows you to make SOAP API requests to Salesforce orgs. You provide the SOAP Body content (the method
255
- call), and the command automatically wraps it in a complete SOAP envelope with authentication headers.
256
-
257
- The command constructs a full SOAP envelope with:
258
-
259
- - SOAP Header containing SessionHeader with your org's access token
260
- - SOAP Body containing your provided XML content
261
-
262
- For more information about the Salesforce SOAP API, see
263
- https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart.htm.
264
-
265
- EXAMPLES
266
- Make a SOAP request to get server timestamp using the Partner API:
267
-
268
- $ sf api request soap /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org
269
-
270
- Read SOAP Body content from a file:
271
-
272
- $ sf api request soap /services/Soap/u/58.0/ --body @soap-body.xml --target-org my-org
273
-
274
- Save the SOAP response to a file:
275
-
276
- $ sf api request soap /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org --output-file \
277
- response.xml
278
-
279
- Pipe SOAP Body content from standard input:
280
- $ echo '<getServerTimestamp/>' | sf api request soap /services/Soap/u/58.0/ --body - --target-org my-org
281
- ```
282
-
283
- _See code: [src/commands/api/request/soap.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7-dev.0/src/commands/api/request/soap.ts)_
225
+ _See code: [src/commands/api/request/rest.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7/src/commands/api/request/rest.ts)_
284
226
 
285
227
  <!-- commandsstop -->
286
228
 
@@ -240,88 +240,7 @@
240
240
  "rest:api:request",
241
241
  "rest:request:api"
242
242
  ]
243
- },
244
- "api:request:soap": {
245
- "aliases": [],
246
- "args": {
247
- "url": {
248
- "description": "SOAP API endpoint",
249
- "name": "url",
250
- "required": true
251
- }
252
- },
253
- "description": "This command allows you to make SOAP API requests to Salesforce orgs. You provide the SOAP Body content (the method call), and the command automatically wraps it in a complete SOAP envelope with authentication headers.\n\nThe command constructs a full SOAP envelope with:\n\n- SOAP Header containing SessionHeader with your org's access token\n- SOAP Body containing your provided XML content\n\nFor more information about the Salesforce SOAP API, see https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart.htm.",
254
- "examples": [
255
- "Make a SOAP request to get server timestamp using the Partner API:\n<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org",
256
- "Read SOAP Body content from a file:\n<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body @soap-body.xml --target-org my-org",
257
- "Save the SOAP response to a file:\n<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org --output-file response.xml",
258
- "Pipe SOAP Body content from standard input:\n$ echo '<getServerTimestamp/>' | <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body - --target-org my-org"
259
- ],
260
- "flags": {
261
- "flags-dir": {
262
- "helpGroup": "GLOBAL",
263
- "name": "flags-dir",
264
- "summary": "Import flag values from a directory.",
265
- "hasDynamicHelp": false,
266
- "multiple": false,
267
- "type": "option"
268
- },
269
- "target-org": {
270
- "char": "o",
271
- "name": "target-org",
272
- "noCacheDefault": true,
273
- "required": true,
274
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
275
- "hasDynamicHelp": true,
276
- "multiple": false,
277
- "type": "option"
278
- },
279
- "body": {
280
- "name": "body",
281
- "required": true,
282
- "summary": "File or XML content for the SOAP Body. Specify \"-\" to read from standard input. If passing a file, prefix the filename with '@'. The command will extract the SOAP Body content if you provide a full SOAP envelope, or use your content as-is if it's just the method call.",
283
- "hasDynamicHelp": false,
284
- "helpValue": "file",
285
- "multiple": false,
286
- "type": "option"
287
- },
288
- "output-file": {
289
- "name": "output-file",
290
- "summary": "File path to save the SOAP response. If not specified, the response is printed to stdout.",
291
- "hasDynamicHelp": false,
292
- "helpValue": "file",
293
- "multiple": false,
294
- "type": "option"
295
- }
296
- },
297
- "hasDynamicHelp": true,
298
- "hiddenAliases": [],
299
- "id": "api:request:soap",
300
- "pluginAlias": "@salesforce/plugin-api",
301
- "pluginName": "@salesforce/plugin-api",
302
- "pluginType": "core",
303
- "state": "beta",
304
- "strict": true,
305
- "summary": "Make an authenticated SOAP API request to a Salesforce org.",
306
- "enableJsonFlag": false,
307
- "isESM": true,
308
- "relativePath": [
309
- "lib",
310
- "commands",
311
- "api",
312
- "request",
313
- "soap.js"
314
- ],
315
- "aliasPermutations": [],
316
- "permutations": [
317
- "api:request:soap",
318
- "request:api:soap",
319
- "request:soap:api",
320
- "api:soap:request",
321
- "soap:api:request",
322
- "soap:request:api"
323
- ]
324
243
  }
325
244
  },
326
- "version": "1.3.7-dev.0"
245
+ "version": "1.3.7"
327
246
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@salesforce/plugin-api",
3
3
  "description": "A plugin to call API endpoints via CLI commands",
4
- "version": "1.3.7-dev.0",
4
+ "version": "1.3.7",
5
5
  "author": "Salesforce",
6
6
  "bugs": "https://github.com/forcedotcom/cli/issues",
7
7
  "dependencies": {
@@ -206,7 +206,7 @@
206
206
  "exports": "./lib/index.js",
207
207
  "type": "module",
208
208
  "sfdx": {
209
- "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7-dev.0.crt",
210
- "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7-dev.0.sig"
209
+ "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7.crt",
210
+ "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7.sig"
211
211
  }
212
212
  }
@@ -1,18 +0,0 @@
1
- import { SfCommand } from '@salesforce/sf-plugins-core';
2
- import { Org } from '@salesforce/core';
3
- export declare class Soap extends SfCommand<void> {
4
- static readonly summary: string;
5
- static readonly description: string;
6
- static readonly examples: string[];
7
- static state: string;
8
- static enableJsonFlag: boolean;
9
- static readonly flags: {
10
- 'target-org': import("@oclif/core/interfaces").OptionFlag<Org, import("@oclif/core/interfaces").CustomOptions>;
11
- body: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
- 'output-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
- };
14
- static args: {
15
- url: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
16
- };
17
- run(): Promise<void>;
18
- }
@@ -1,176 +0,0 @@
1
- /*
2
- * Copyright (c) 2023, salesforce.com, inc.
3
- * All rights reserved.
4
- * Licensed under the BSD 3-Clause license.
5
- * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
- */
7
- import { readFileSync, writeFileSync } from 'node:fs';
8
- import * as fs from 'node:fs';
9
- import { ProxyAgent } from 'proxy-agent';
10
- import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
11
- import { Messages, Org, SfError } from '@salesforce/core';
12
- import { Args } from '@oclif/core';
13
- import got from 'got';
14
- Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
15
- const messages = Messages.loadMessages('@salesforce/plugin-api', 'soap');
16
- /**
17
- * Extract namespace from XML content if present
18
- */
19
- function extractNamespace(xmlContent) {
20
- // Try to find xmlns attribute in the root element
21
- const xmlnsMatch = xmlContent.match(/<[^>]+xmlns\s*=\s*["']([^"']+)["']/);
22
- if (xmlnsMatch) {
23
- return xmlnsMatch[1];
24
- }
25
- return undefined;
26
- }
27
- /**
28
- * Remove xmlns attribute from root element if present
29
- */
30
- function removeXmlnsFromBody(bodyContent) {
31
- // Remove xmlns attribute from the root element
32
- return bodyContent.replace(/<([^>\s]+)([^>]*)\s+xmlns\s*=\s*["'][^"']+["']([^>]*)>/i, '<$1$2$3>');
33
- }
34
- /**
35
- * Extract SOAP Body content from user-provided XML.
36
- * If user provides a full SOAP envelope, extract just the Body content.
37
- * If user provides just Body content, return it as-is.
38
- */
39
- function extractSoapBody(xmlContent) {
40
- // Try to find SOAP Body content
41
- // Match <soapenv:Body>...</soapenv:Body> or <Body>...</Body> or <soap:Body>...</soap:Body>
42
- const bodyMatch = xmlContent.match(/<(?:soapenv|soap|SOAP-ENV):Body[^>]*>([\s\S]*?)<\/(?:soapenv|soap|SOAP-ENV):Body>/i);
43
- if (bodyMatch) {
44
- return bodyMatch[1].trim();
45
- }
46
- // Try without namespace prefix
47
- const bodyMatchNoNs = xmlContent.match(/<Body[^>]*>([\s\S]*?)<\/Body>/i);
48
- if (bodyMatchNoNs) {
49
- return bodyMatchNoNs[1].trim();
50
- }
51
- // If no SOAP envelope structure found, assume user provided just the Body content
52
- return xmlContent.trim();
53
- }
54
- /**
55
- * Escape XML special characters
56
- */
57
- function escapeXml(text) {
58
- return text
59
- .replace(/&/g, '&amp;')
60
- .replace(/</g, '&lt;')
61
- .replace(/>/g, '&gt;')
62
- .replace(/"/g, '&quot;')
63
- .replace(/'/g, '&apos;');
64
- }
65
- /**
66
- * Create SOAP envelope with SessionHeader and Body content
67
- */
68
- function createSoapEnvelope(bodyContent, accessToken, xmlns = 'urn:partner.soap.sforce.com') {
69
- const escapedToken = escapeXml(accessToken);
70
- return `<?xml version="1.0" encoding="UTF-8"?>
71
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
72
- <soapenv:Header xmlns="${xmlns}">
73
- <SessionHeader>
74
- <sessionId>${escapedToken}</sessionId>
75
- </SessionHeader>
76
- </soapenv:Header>
77
- <soapenv:Body xmlns="${xmlns}">
78
- ${bodyContent}
79
- </soapenv:Body>
80
- </soapenv:Envelope>`;
81
- }
82
- export class Soap extends SfCommand {
83
- static summary = messages.getMessage('summary');
84
- static description = messages.getMessage('description');
85
- static examples = messages.getMessages('examples');
86
- static state = 'beta';
87
- static enableJsonFlag = false;
88
- static flags = {
89
- 'target-org': Flags.requiredOrg(),
90
- body: Flags.string({
91
- summary: messages.getMessage('flags.body.summary'),
92
- allowStdin: true,
93
- helpValue: 'file',
94
- required: true,
95
- }),
96
- 'output-file': Flags.string({
97
- summary: messages.getMessage('flags.output-file.summary'),
98
- helpValue: 'file',
99
- }),
100
- };
101
- static args = {
102
- url: Args.string({
103
- description: 'SOAP API endpoint',
104
- required: true,
105
- }),
106
- };
107
- async run() {
108
- const { flags, args } = await this.parse(Soap);
109
- const org = flags['target-org'];
110
- const outputFile = flags['output-file'];
111
- // Read body content
112
- let bodyContent;
113
- if (flags.body.startsWith('@')) {
114
- // Remove '@' prefix and read file
115
- bodyContent = readFileSync(flags.body.substring(1), 'utf8');
116
- }
117
- else if (fs.existsSync(flags.body)) {
118
- // Check if it's a file path
119
- bodyContent = readFileSync(flags.body, 'utf8');
120
- }
121
- else {
122
- // Use body content directly (or stdin content if allowStdin handled it)
123
- bodyContent = flags.body;
124
- }
125
- // Extract SOAP Body content from user input
126
- let soapBodyContent = extractSoapBody(bodyContent);
127
- // Detect namespace from body content
128
- let namespace = extractNamespace(bodyContent);
129
- if (!namespace) {
130
- // Default to partner namespace if not detected
131
- namespace = 'urn:partner.soap.sforce.com';
132
- }
133
- // Remove xmlns attribute from body content since it will be set on the Body element
134
- soapBodyContent = removeXmlnsFromBody(soapBodyContent);
135
- // Build URL
136
- const specifiedUrl = args.url.replace(/^\//, '');
137
- const url = new URL(`${org.getField(Org.Fields.INSTANCE_URL)}/${specifiedUrl}`);
138
- // Refresh access token to ensure we have a valid access token
139
- await org.refreshAuth();
140
- // Get access token
141
- // eslint-disable-next-line sf-plugin/get-connection-with-version
142
- const accessToken = org.getConnection().getConnectionOptions().accessToken;
143
- if (!accessToken) {
144
- throw new SfError('No access token available for the org');
145
- }
146
- // Create SOAP envelope with detected namespace
147
- const soapEnvelope = createSoapEnvelope(soapBodyContent, accessToken, namespace);
148
- // Make SOAP request
149
- const options = {
150
- agent: { https: new ProxyAgent() },
151
- method: 'POST',
152
- headers: {
153
- 'Content-Type': 'text/xml',
154
- SOAPAction: '""',
155
- },
156
- body: soapEnvelope,
157
- throwHttpErrors: false,
158
- followRedirect: false,
159
- };
160
- const response = await got(url, options);
161
- // Handle response
162
- if (outputFile) {
163
- writeFileSync(outputFile, response.body, 'utf8');
164
- this.log(`Response saved to ${outputFile}`);
165
- }
166
- else {
167
- // Print response body to stdout
168
- this.log(response.body);
169
- }
170
- // Set exit code for errors
171
- if (response.statusCode >= 400) {
172
- process.exitCode = 1;
173
- }
174
- }
175
- }
176
- //# sourceMappingURL=soap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"soap.js","sourceRoot":"","sources":["../../../../src/commands/api/request/soap.ts"],"names":[],"mappings":"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"}
package/messages/soap.md DELETED
@@ -1,40 +0,0 @@
1
- # summary
2
-
3
- Make an authenticated SOAP API request to a Salesforce org.
4
-
5
- # description
6
-
7
- This command allows you to make SOAP API requests to Salesforce orgs. You provide the SOAP Body content (the method call), and the command automatically wraps it in a complete SOAP envelope with authentication headers.
8
-
9
- The command constructs a full SOAP envelope with:
10
-
11
- - SOAP Header containing SessionHeader with your org's access token
12
- - SOAP Body containing your provided XML content
13
-
14
- For more information about the Salesforce SOAP API, see https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart.htm.
15
-
16
- # examples
17
-
18
- - Make a SOAP request to get server timestamp using the Partner API:
19
-
20
- <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org
21
-
22
- - Read SOAP Body content from a file:
23
-
24
- <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body @soap-body.xml --target-org my-org
25
-
26
- - Save the SOAP response to a file:
27
-
28
- <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org --output-file response.xml
29
-
30
- - Pipe SOAP Body content from standard input:
31
-
32
- $ echo '<getServerTimestamp/>' | <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body - --target-org my-org
33
-
34
- # flags.body.summary
35
-
36
- File or XML content for the SOAP Body. Specify "-" to read from standard input. If passing a file, prefix the filename with '@'. The command will extract the SOAP Body content if you provide a full SOAP envelope, or use your content as-is if it's just the method call.
37
-
38
- # flags.output-file.summary
39
-
40
- File path to save the SOAP response. If not specified, the response is printed to stdout.