sf-raven 1.0.7 → 1.2.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 (39) hide show
  1. package/README.md +124 -1
  2. package/bin/dev.js +8 -0
  3. package/lib/commands/raven/audit/display.d.ts +3 -3
  4. package/lib/commands/raven/audit/display.js +62 -53
  5. package/lib/commands/raven/audit/display.js.map +1 -1
  6. package/lib/commands/raven/deploy/cancel.d.ts +15 -0
  7. package/lib/commands/raven/deploy/cancel.js +185 -0
  8. package/lib/commands/raven/deploy/cancel.js.map +1 -0
  9. package/lib/commands/raven/event/subscribe.d.ts +4 -4
  10. package/lib/commands/raven/event/subscribe.js +52 -43
  11. package/lib/commands/raven/event/subscribe.js.map +1 -1
  12. package/lib/commands/raven/object/display/fields.d.ts +2 -2
  13. package/lib/commands/raven/object/display/fields.js +46 -37
  14. package/lib/commands/raven/object/display/fields.js.map +1 -1
  15. package/lib/commands/raven/object/display/recordtypes.d.ts +2 -2
  16. package/lib/commands/raven/object/display/recordtypes.js +46 -37
  17. package/lib/commands/raven/object/display/recordtypes.js.map +1 -1
  18. package/lib/commands/raven/pull/remote.d.ts +14 -0
  19. package/lib/commands/raven/pull/remote.js +64 -0
  20. package/lib/commands/raven/pull/remote.js.map +1 -0
  21. package/lib/commands/raven/pull.d.ts +15 -0
  22. package/lib/commands/raven/pull.js +64 -0
  23. package/lib/commands/raven/pull.js.map +1 -0
  24. package/lib/commands/raven/query/ids.d.ts +28 -0
  25. package/lib/commands/raven/query/ids.js +246 -0
  26. package/lib/commands/raven/query/ids.js.map +1 -0
  27. package/lib/index.d.ts +1 -1
  28. package/lib/index.js +1 -2
  29. package/lib/index.js.map +1 -1
  30. package/lib/shared/pull.d.ts +10 -0
  31. package/lib/shared/pull.js +242 -0
  32. package/lib/shared/pull.js.map +1 -0
  33. package/messages/raven.deploy.cancel.md +73 -0
  34. package/messages/raven.pull.md +57 -0
  35. package/messages/raven.pull.remote.md +45 -0
  36. package/messages/raven.query.ids.md +85 -0
  37. package/oclif.lock +7697 -0
  38. package/oclif.manifest.json +429 -86
  39. package/package.json +45 -38
package/README.md CHANGED
@@ -43,6 +43,23 @@ Full details, usage, examples etc are further down, or can be accessed via `--he
43
43
  - [sf raven event subscribe](#sf-raven-event-subscribe)
44
44
  - Subscribe to Platform Events.
45
45
 
46
+ #### sf raven deploy
47
+
48
+ - [sf raven deploy cancel](#sf-raven-deploy-cancel)
49
+ - Cancel a pending or in-progress Salesforce deploy.
50
+
51
+ #### sf raven query
52
+
53
+ - [sf raven query ids](#sf-raven-query-ids)
54
+ - Run a SOQL query against a large list of Salesforce IDs.
55
+
56
+ #### sf raven pull
57
+
58
+ - [sf raven pull](#sf-raven-pull)
59
+ - Pull local Salesforce metadata paths into the project.
60
+ - [sf raven pull remote](#sf-raven-pull-remote)
61
+ - Pull Salesforce metadata that exists in the org but not locally.
62
+
46
63
  <!-- #### sfdx:raven:utils
47
64
  * [sfdx raven:utils:deploy:branch2org](#sfdx-ravenutilsdeploybranch2org)
48
65
  * Deploy a git branch to an org
@@ -55,7 +72,7 @@ Full details, usage, examples etc are further down, or can be accessed via `--he
55
72
 
56
73
  ### Quick Install
57
74
 
58
- Assuming you already have the [SDFX CLI](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm) installed, just run:
75
+ Assuming you already have the [sf cli](https://developer.salesforce.com/tools/salesforcecli) installed, the plugin can be installed by running:
59
76
 
60
77
  `sf plugins install sf-raven`
61
78
 
@@ -169,6 +186,112 @@ Person Account PersonAccount 0124J000000YYYYDEF
169
186
  ...
170
187
  ```
171
188
 
189
+ ## sf raven pull
190
+
191
+ Pull Salesforce metadata into the local project.
192
+
193
+ ```
194
+ USAGE
195
+ $ sf raven pull [--json] [-o <value>] [-a]
196
+
197
+ FLAGS
198
+ -a, --all Retrieve all local package directories instead of selecting a path with fzf.
199
+ -o, --target-org=<value> Login username or alias for the target org. Uses the default org when omitted.
200
+
201
+ GLOBAL FLAGS
202
+ --json Format output as json.
203
+
204
+ DESCRIPTION
205
+ Refresh local Salesforce metadata from an authenticated org. Without --all, local metadata paths are loaded into fzf so you can choose one or more files or directories to retrieve. Press Tab to select multiple paths, then Enter to retrieve them together. With --all, each package directory from sfdx-project.json is retrieved.
206
+
207
+ EXAMPLES
208
+ $ sf raven pull
209
+
210
+ $ sf raven pull --target-org dev
211
+
212
+ $ sf raven pull --all
213
+
214
+ $ sf raven pull --target-org dev --all
215
+ ```
216
+
217
+ ## sf raven pull remote
218
+
219
+ Pull Salesforce metadata that exists in the org but not locally.
220
+
221
+ ```
222
+ USAGE
223
+ $ sf raven pull remote [--json] [-o <value>]
224
+
225
+ FLAGS
226
+ -o, --target-org=<value> Login username or alias for the target org. Uses the default org when omitted.
227
+
228
+ GLOBAL FLAGS
229
+ --json Format output as json.
230
+
231
+ DESCRIPTION
232
+ List supported metadata components that exist in the target org but are not present in the local project. Org-only components are prefixed with a cloud marker in fzf. Press Tab to select multiple components, then Enter to retrieve them.
233
+
234
+ EXAMPLES
235
+ $ sf raven pull remote
236
+
237
+ $ sf raven pull remote --target-org dev
238
+ ```
239
+
240
+ ## sf raven deploy cancel
241
+
242
+ Cancel a pending or in-progress Salesforce deploy.
243
+
244
+ ```
245
+ USAGE
246
+ $ sf raven deploy cancel [--json] [-o <value>]
247
+
248
+ FLAGS
249
+ -o, --target-org=<value> Login username or alias for the target org. Uses the default org when omitted.
250
+
251
+ GLOBAL FLAGS
252
+ --json Format output as json.
253
+
254
+ DESCRIPTION
255
+ Query the target org for pending or in-progress deploy requests, select one from an interactive list, confirm the cancellation, and submit an asynchronous deploy cancel request.
256
+
257
+ EXAMPLES
258
+ $ sf raven deploy cancel
259
+
260
+ $ sf raven deploy cancel --target-org dev
261
+ ```
262
+
263
+ ## sf raven query ids
264
+
265
+ Run a SOQL query against a large list of Salesforce IDs.
266
+
267
+ ```
268
+ USAGE
269
+ $ sf raven query ids -f <value> -q <value> [--json] [-o <value>] [-b <value>] [-c <value>] [-l <value>]
270
+
271
+ FLAGS
272
+ -b, --batch-size=<value> Number of IDs to include in each query batch. By default, batches are sized to fit Salesforce URI limits.
273
+ -c, --csv=<value> Path to write query results as CSV. When supplied, table output is suppressed.
274
+ -f, --file=<value> (required) Path to a file containing one Salesforce ID per row.
275
+ -l, --limit=<value> Process only the first N unique valid IDs from the file.
276
+ -o, --target-org=<value> Login username or alias for the target org. Uses the default org when omitted.
277
+ -q, --query=<value> (required) SOQL query to run. Must include the {ids} placeholder where the ID list should be inserted.
278
+
279
+ GLOBAL FLAGS
280
+ --json Format output as json.
281
+
282
+ DESCRIPTION
283
+ Read Salesforce IDs from a file, deduplicate and validate them, split them into safe query batches, and run a SOQL query with the IDs inserted at the {ids} placeholder.
284
+
285
+ EXAMPLES
286
+ $ sf raven query ids --file account-ids.txt --query "SELECT Id, Name FROM Account WHERE Id IN {ids}"
287
+
288
+ $ sf raven query ids --file account-ids.txt --query "SELECT Id, Name FROM Opportunity WHERE AccountId IN {ids}"
289
+
290
+ $ sf raven query ids --file account-ids.txt --query "SELECT Id, Name FROM Account WHERE Id IN {ids}" --limit 25
291
+
292
+ $ sf raven query ids --file account-ids.txt --query "SELECT Id, Name FROM Account WHERE Id IN {ids}" --csv results.csv
293
+ ```
294
+
172
295
  ## sf raven audit display
173
296
 
174
297
  Show recent entries in the Setup Audit Trail.
package/bin/dev.js ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env -S node --loader ts-node/esm --no-warnings=ExperimentalWarning
2
+ // eslint-disable-next-line node/shebang
3
+ async function main() {
4
+ const { execute } = await import('@oclif/core');
5
+ await execute({ development: true, dir: import.meta.url });
6
+ }
7
+
8
+ await main();
@@ -7,9 +7,9 @@ export default class AuditDisplay extends SfCommand<AuditDisplayResult> {
7
7
  static readonly description: string;
8
8
  static readonly examples: string[];
9
9
  static readonly flags: {
10
- 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
- username: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
- limit: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
11
+ username: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
13
13
  };
14
14
  run(): Promise<AuditDisplayResult>;
15
15
  }
@@ -1,78 +1,87 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
4
- const core_1 = require("@salesforce/core");
5
- const dayjs = require("dayjs");
6
- core_1.Messages.importMessagesDirectory(__dirname);
7
- const messages = core_1.Messages.loadMessages('sf-raven', 'raven.audit.display');
8
- class AuditDisplay extends sf_plugins_core_1.SfCommand {
9
- async run() {
10
- this.spinner.start('Loading...');
11
- const { flags } = await this.parse(AuditDisplay);
12
- const ux = new sf_plugins_core_1.Ux({ jsonEnabled: this.jsonEnabled() });
13
- const org = flags['target-org'];
14
- const conn = org.getConnection();
15
- let query = '';
16
- if (flags.username) {
17
- query = `SELECT CreatedDate, CreatedBy.Username,
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { SfCommand, Flags, Ux } from '@salesforce/sf-plugins-core';
11
+ import { Messages } from '@salesforce/core';
12
+ import dayjs from 'dayjs';
13
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
14
+ const messages = Messages.loadMessages('sf-raven', 'raven.audit.display');
15
+ class AuditDisplay extends SfCommand {
16
+ run() {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ this.spinner.start('Loading...');
19
+ const { flags } = yield this.parse(AuditDisplay);
20
+ const ux = new Ux({ jsonEnabled: this.jsonEnabled() });
21
+ const org = flags['target-org'];
22
+ const conn = org.getConnection();
23
+ let query = '';
24
+ if (flags.username) {
25
+ query = `SELECT CreatedDate, CreatedBy.Username,
18
26
  Section, Display, DelegateUser
19
27
  FROM SetupAuditTrail
20
28
  WHERE CreatedBy.Username = '${flags.username}'
21
29
  ORDER BY CreatedDate DESC
22
30
  LIMIT ${flags.limit}`;
23
- }
24
- else {
25
- query = `SELECT CreatedDate, CreatedBy.Username,
31
+ }
32
+ else {
33
+ query = `SELECT CreatedDate, CreatedBy.Username,
26
34
  Section, Display, DelegateUser
27
35
  FROM SetupAuditTrail
28
36
  ORDER BY CreatedDate DESC
29
37
  LIMIT ${flags.limit}`;
30
- }
31
- const result = (await conn.query(query));
32
- result.records.forEach((record) => {
33
- record.CreatedDate = dayjs(record.CreatedDate).format('YYYY-MM-DD HH:mm:ss');
34
- });
35
- this.spinner.stop();
36
- // Return table of fields
37
- ux.table(result.records, {
38
- createdDate: {
39
- header: 'Date',
40
- get: (row) => row.CreatedDate,
41
- },
42
- createdBy: {
43
- header: 'Username',
44
- get: (row) => row.CreatedBy?.Username,
45
- },
46
- section: {
47
- header: 'Type',
48
- get: (row) => row.Section,
49
- },
50
- display: {
51
- header: 'Action',
52
- get: (row) => row.Display,
53
- },
54
- delegateUser: {
55
- header: 'Delegate User',
56
- get: (row) => row.DelegateUser,
57
- },
38
+ }
39
+ const result = (yield conn.query(query));
40
+ result.records.forEach((record) => {
41
+ record.CreatedDate = dayjs(record.CreatedDate).format('YYYY-MM-DD HH:mm:ss');
42
+ });
43
+ this.spinner.stop();
44
+ // Return table of fields
45
+ ux.table(result.records, {
46
+ createdDate: {
47
+ header: 'Date',
48
+ get: (row) => row.CreatedDate,
49
+ },
50
+ createdBy: {
51
+ header: 'Username',
52
+ get: (row) => { var _a; return (_a = row.CreatedBy) === null || _a === void 0 ? void 0 : _a.Username; },
53
+ },
54
+ section: {
55
+ header: 'Type',
56
+ get: (row) => row.Section,
57
+ },
58
+ display: {
59
+ header: 'Action',
60
+ get: (row) => row.Display,
61
+ },
62
+ delegateUser: {
63
+ header: 'Delegate User',
64
+ get: (row) => row.DelegateUser,
65
+ },
66
+ });
67
+ return result;
58
68
  });
59
- return result;
60
69
  }
61
70
  }
62
71
  AuditDisplay.summary = messages.getMessage('summary');
63
72
  AuditDisplay.description = messages.getMessage('description');
64
73
  AuditDisplay.examples = messages.getMessages('examples');
65
74
  AuditDisplay.flags = {
66
- 'target-org': sf_plugins_core_1.Flags.requiredOrg({
75
+ 'target-org': Flags.requiredOrg({
67
76
  summary: messages.getMessage('flags.target-org.summary'),
68
77
  char: 'o',
69
78
  required: true,
70
79
  }),
71
- username: sf_plugins_core_1.Flags.string({
80
+ username: Flags.string({
72
81
  summary: messages.getMessage('flags.username.summary'),
73
82
  char: 'u',
74
83
  }),
75
- limit: sf_plugins_core_1.Flags.integer({
84
+ limit: Flags.integer({
76
85
  summary: messages.getMessage('flags.limit.summary'),
77
86
  char: 'l',
78
87
  min: 1,
@@ -80,5 +89,5 @@ AuditDisplay.flags = {
80
89
  default: 20,
81
90
  }),
82
91
  };
83
- exports.default = AuditDisplay;
92
+ export default AuditDisplay;
84
93
  //# sourceMappingURL=display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../../../src/commands/raven/audit/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../../../src/commands/raven/audit/display.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ export type DeployCancelResult = {
3
+ cancelled: boolean;
4
+ jobId?: string;
5
+ targetOrg?: string;
6
+ };
7
+ export default class DeployCancel extends SfCommand<DeployCancelResult> {
8
+ static readonly summary: string;
9
+ static readonly description: string;
10
+ static readonly examples: string[];
11
+ static readonly flags: {
12
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
13
+ };
14
+ run(): Promise<DeployCancelResult>;
15
+ }
@@ -0,0 +1,185 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { spawn } from 'node:child_process';
11
+ import select, { Separator } from '@inquirer/select';
12
+ import { Messages } from '@salesforce/core';
13
+ import { Flags, SfCommand, Ux } from '@salesforce/sf-plugins-core';
14
+ import dayjs from 'dayjs';
15
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
16
+ const messages = Messages.loadMessages('sf-raven', 'raven.deploy.cancel');
17
+ const cancelSelection = 'cancel';
18
+ class DeployCancel extends SfCommand {
19
+ run() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const { flags } = yield this.parse(DeployCancel);
22
+ const ux = new Ux({ jsonEnabled: this.jsonEnabled() });
23
+ const org = flags['target-org'];
24
+ if (org == null) {
25
+ throw messages.createError('error.noTargetOrg');
26
+ }
27
+ const targetOrg = org.getUsername();
28
+ if (targetOrg == null) {
29
+ throw messages.createError('error.noTargetOrg');
30
+ }
31
+ ux.spinner.start(messages.getMessage('info.loadingDeploys'));
32
+ let deployRequests;
33
+ try {
34
+ deployRequests = yield getActiveDeployRequests(org.getConnection());
35
+ }
36
+ finally {
37
+ ux.spinner.stop();
38
+ }
39
+ if (deployRequests.length === 0) {
40
+ ux.log(messages.getMessage('info.noDeploys'));
41
+ return {
42
+ cancelled: false,
43
+ targetOrg,
44
+ };
45
+ }
46
+ const selectedDeployRequest = yield selectDeployRequest(deployRequests);
47
+ if (selectedDeployRequest === cancelSelection || selectedDeployRequest == null) {
48
+ ux.log(messages.getMessage('info.noSelection'));
49
+ return {
50
+ cancelled: false,
51
+ targetOrg,
52
+ };
53
+ }
54
+ const confirmed = yield this.confirm({
55
+ message: messages.getMessage('prompt.confirmCancel', [selectedDeployRequest.Id]),
56
+ defaultAnswer: false,
57
+ });
58
+ if (!confirmed) {
59
+ ux.log(messages.getMessage('info.cancelAborted'));
60
+ return {
61
+ cancelled: false,
62
+ jobId: selectedDeployRequest.Id,
63
+ targetOrg,
64
+ };
65
+ }
66
+ const exitCode = yield cancelDeploy(selectedDeployRequest.Id, targetOrg);
67
+ if (exitCode !== 0) {
68
+ throw messages.createError('error.cancelFailed', [exitCode.toString()]);
69
+ }
70
+ ux.log(messages.getMessage('info.cancelSubmitted', [selectedDeployRequest.Id]));
71
+ return {
72
+ cancelled: true,
73
+ jobId: selectedDeployRequest.Id,
74
+ targetOrg,
75
+ };
76
+ });
77
+ }
78
+ }
79
+ DeployCancel.summary = messages.getMessage('summary');
80
+ DeployCancel.description = messages.getMessage('description');
81
+ DeployCancel.examples = messages.getMessages('examples');
82
+ DeployCancel.flags = {
83
+ 'target-org': Flags.optionalOrg({
84
+ summary: messages.getMessage('flags.target-org.summary'),
85
+ char: 'o',
86
+ }),
87
+ };
88
+ export default DeployCancel;
89
+ const getActiveDeployRequests = (connection) => __awaiter(void 0, void 0, void 0, function* () {
90
+ const result = yield connection.tooling.query(`
91
+ SELECT Id, Status, StartDate,
92
+ NumberComponentsDeployed, NumberComponentsTotal, NumberComponentErrors,
93
+ NumberTestsCompleted, NumberTestsTotal, NumberTestErrors
94
+ FROM DeployRequest
95
+ WHERE Status IN ('InProgress', 'Pending')
96
+ ORDER BY StartDate DESC
97
+ `);
98
+ return result.records;
99
+ });
100
+ const formatDeployRequest = (deployRequest) => {
101
+ if (deployRequest.Status === 'Pending') {
102
+ return [deployRequest.Status, deployRequest.Id].join(' | ');
103
+ }
104
+ const startDate = deployRequest.StartDate == null ? messages.getMessage('label.unknownStartDate') : dayjs(deployRequest.StartDate).format('DD/MM/YYYY HH:mm');
105
+ return [
106
+ startDate,
107
+ deployRequest.Status,
108
+ deployRequest.Id,
109
+ `Metadata: ${formatProgress(deployRequest.NumberComponentsDeployed, deployRequest.NumberComponentsTotal, deployRequest.NumberComponentErrors)}`,
110
+ `Apex Tests: ${formatProgress(deployRequest.NumberTestsCompleted, deployRequest.NumberTestsTotal, deployRequest.NumberTestErrors)}`,
111
+ ].join(' | ');
112
+ };
113
+ const selectDeployRequest = (deployRequests) => __awaiter(void 0, void 0, void 0, function* () {
114
+ try {
115
+ return yield select({
116
+ message: messages.getMessage('prompt.selectDeploy'),
117
+ choices: getDeployChoices(deployRequests),
118
+ pageSize: 10,
119
+ });
120
+ }
121
+ catch (error) {
122
+ if (isPromptForceCloseError(error)) {
123
+ return undefined;
124
+ }
125
+ throw error;
126
+ }
127
+ });
128
+ const getDeployChoices = (deployRequests) => {
129
+ const inProgressDeployRequests = deployRequests.filter((deployRequest) => deployRequest.Status === 'InProgress');
130
+ const pendingDeployRequests = deployRequests.filter((deployRequest) => deployRequest.Status === 'Pending');
131
+ return [
132
+ { name: messages.getMessage('label.cancel'), value: cancelSelection },
133
+ new Separator(),
134
+ ...getGroupedDeployChoices(messages.getMessage('label.inProgress'), inProgressDeployRequests),
135
+ ...getGroupedDeployChoices(messages.getMessage('label.pending'), pendingDeployRequests),
136
+ ];
137
+ };
138
+ const getGroupedDeployChoices = (label, deployRequests) => deployRequests.length === 0
139
+ ? []
140
+ : [
141
+ new Separator(label),
142
+ ...deployRequests.map((deployRequest) => ({
143
+ name: formatDeployRequest(deployRequest),
144
+ value: deployRequest,
145
+ })),
146
+ ];
147
+ const isPromptForceCloseError = (error) => error instanceof Error && error.message.includes('User force closed the prompt');
148
+ const formatProgress = (completed, total, errors) => {
149
+ const completedValue = completed !== null && completed !== void 0 ? completed : 0;
150
+ const totalValue = total !== null && total !== void 0 ? total : 0;
151
+ const errorValue = errors !== null && errors !== void 0 ? errors : 0;
152
+ const percentage = totalValue > 0 ? Math.floor((completedValue / totalValue) * 100) : 0;
153
+ return `${completedValue}/${totalValue} (${percentage}% - ${errorValue} errors)`;
154
+ };
155
+ const cancelDeploy = (jobId, targetOrg) => __awaiter(void 0, void 0, void 0, function* () {
156
+ var _a;
157
+ const result = yield runChildProcess((_a = process.env.SF_BINPATH) !== null && _a !== void 0 ? _a : 'sf', [
158
+ 'project',
159
+ 'deploy',
160
+ 'cancel',
161
+ '--job-id',
162
+ jobId,
163
+ '--target-org',
164
+ targetOrg,
165
+ '--async',
166
+ ]);
167
+ return result.exitCode;
168
+ });
169
+ const runChildProcess = (command, args) => __awaiter(void 0, void 0, void 0, function* () {
170
+ return new Promise((resolve, reject) => {
171
+ const childProcess = spawn(command, args, {
172
+ stdio: 'inherit',
173
+ env: process.env,
174
+ });
175
+ childProcess.on('error', (error) => {
176
+ reject(error);
177
+ });
178
+ childProcess.on('close', (code) => {
179
+ resolve({
180
+ exitCode: code !== null && code !== void 0 ? code : 0,
181
+ });
182
+ });
183
+ });
184
+ });
185
+ //# sourceMappingURL=cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../../src/commands/raven/deploy/cancel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;AAkC1E,MAAM,eAAe,GAAG,QAAiB,CAAC;AAK1C,MAAqB,YAAa,SAAQ,SAA6B;IAYxD,GAAG;;YACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YAEhC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,MAAM,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAEpC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YAClD,CAAC;YAED,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAE7D,IAAI,cAAqC,CAAC;YAE1C,IAAI,CAAC;gBACH,cAAc,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAkC,CAAC,CAAC;YACtG,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC9C,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,SAAS;iBACV,CAAC;YACJ,CAAC;YAED,MAAM,qBAAqB,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAExE,IAAI,qBAAqB,KAAK,eAAe,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;gBAC/E,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAChD,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,SAAS;iBACV,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBACnC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBAChF,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAClD,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,qBAAqB,CAAC,EAAE;oBAC/B,SAAS;iBACV,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;YAED,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,qBAAqB,CAAC,EAAE;gBAC/B,SAAS;aACV,CAAC;QACJ,CAAC;KAAA;;AAjFsB,oBAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,wBAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,qBAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C,kBAAK,GAAG;IAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxD,IAAI,EAAE,GAAG;KACV,CAAC;CACH,CAAC;eAViB,YAAY;AAqFjC,MAAM,uBAAuB,GAAG,CAAO,UAA6B,EAAkC,EAAE;IACtG,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;;;;;;;GAO7C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC,CAAA,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,aAAkC,EAAU,EAAE;IACzE,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,SAAS,GACb,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE9I,OAAO;QACL,SAAS;QACT,aAAa,CAAC,MAAM;QACpB,aAAa,CAAC,EAAE;QAChB,aAAa,cAAc,CACzB,aAAa,CAAC,wBAAwB,EACtC,aAAa,CAAC,qBAAqB,EACnC,aAAa,CAAC,qBAAqB,CACpC,EAAE;QACH,eAAe,cAAc,CAAC,aAAa,CAAC,oBAAoB,EAAE,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAAE;KACpI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAO,cAAqC,EAAwC,EAAE;IAChH,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAkB;YACnC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACnD,OAAO,EAAE,gBAAgB,CAAC,cAAc,CAAC;YACzC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,cAAqC,EAAkB,EAAE;IACjF,MAAM,wBAAwB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IACjH,MAAM,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE3G,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE;QACrE,IAAI,SAAS,EAAE;QACf,GAAG,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;QAC7F,GAAG,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;KACxF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,cAAqC,EAAkB,EAAE,CACvG,cAAc,CAAC,MAAM,KAAK,CAAC;IACzB,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACE,IAAI,SAAS,CAAC,KAAK,CAAC;QACpB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,mBAAmB,CAAC,aAAa,CAAC;YACxC,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;KACJ,CAAC;AAER,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAE9I,MAAM,cAAc,GAAG,CAAC,SAAyB,EAAE,KAAqB,EAAE,MAAsB,EAAU,EAAE;IAC1G,MAAM,cAAc,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExF,OAAO,GAAG,cAAc,IAAI,UAAU,KAAK,UAAU,OAAO,UAAU,UAAU,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAO,KAAa,EAAE,SAAiB,EAAmB,EAAE;;IAC/E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,UAAU,mCAAI,IAAI,EAAE;QACnE,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,KAAK;QACL,cAAc;QACd,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC,CAAA,CAAC;AAEF,MAAM,eAAe,GAAG,CAAO,OAAe,EAAE,IAAc,EAA+B,EAAE;IAC7F,OAAA,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACxC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,OAAO,CAAC;gBACN,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAA;EAAA,CAAC"}
@@ -7,10 +7,10 @@ export default class EventSubscribe extends SfCommand<EventSubscribeResult> {
7
7
  static readonly description: string;
8
8
  static readonly examples: string[];
9
9
  static readonly flags: {
10
- 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
- event: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
- replayid: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
- timeout: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
11
+ event: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ replayid: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
14
14
  };
15
15
  run(): Promise<EventSubscribeResult>;
16
16
  }