@simplysf/simply-apex 1.6.9 → 1.6.10

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 (29) hide show
  1. package/lib/commands/simply/apex/execute.d.ts +2 -11
  2. package/lib/commands/simply/apex/execute.js +16 -19
  3. package/lib/commands/simply/apex/execute.js.map +1 -1
  4. package/lib/commands/simply/apex/logs/purge.d.ts +2 -14
  5. package/lib/commands/simply/apex/logs/purge.js +7 -81
  6. package/lib/commands/simply/apex/logs/purge.js.map +1 -1
  7. package/lib/commands/simply/apex/trace/setup.d.ts +2 -13
  8. package/lib/commands/simply/apex/trace/setup.js +47 -87
  9. package/lib/commands/simply/apex/trace/setup.js.map +1 -1
  10. package/lib/commands/simply/apex/trace/silence.d.ts +2 -6
  11. package/lib/commands/simply/apex/trace/silence.js +51 -143
  12. package/lib/commands/simply/apex/trace/silence.js.map +1 -1
  13. package/lib/common/apexExecute.d.ts +31 -0
  14. package/lib/common/apexExecute.js +60 -0
  15. package/lib/common/apexExecute.js.map +1 -0
  16. package/lib/common/apexLogsPurge.d.ts +34 -0
  17. package/lib/common/apexLogsPurge.js +100 -0
  18. package/lib/common/apexLogsPurge.js.map +1 -0
  19. package/lib/common/apexTraceSetup.d.ts +57 -0
  20. package/lib/common/apexTraceSetup.js +142 -0
  21. package/lib/common/apexTraceSetup.js.map +1 -0
  22. package/lib/common/apexTraceSilence.d.ts +65 -0
  23. package/lib/common/apexTraceSilence.js +171 -0
  24. package/lib/common/apexTraceSilence.js.map +1 -0
  25. package/lib/common/schemas/classesToSilence.js.map +1 -0
  26. package/package.json +2 -2
  27. package/lib/schemas/silence/classesToSilence.js.map +0 -1
  28. /package/lib/{schemas/silence → common/schemas}/classesToSilence.d.ts +0 -0
  29. /package/lib/{schemas/silence → common/schemas}/classesToSilence.js +0 -0
@@ -1,15 +1,6 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
- /** Compile/execution outcome for an anonymous Apex execution, including any debug logs produced. */
3
- export type ApexExecuteResult = {
4
- success: boolean;
5
- compiled: boolean;
6
- compileProblem: string;
7
- exceptionMessage: string;
8
- exceptionStackTrace: string;
9
- line: number;
10
- column: number;
11
- logs?: string;
12
- };
2
+ import { type ApexExecuteResult } from '../../../common/apexExecute.js';
3
+ export type { ApexExecuteResult } from '../../../common/apexExecute.js';
13
4
  /**
14
5
  * Executes an anonymous block of Apex code from a local .apex file against a target org and
15
6
  * reports the compile and execution results, including any debug logs produced.
@@ -14,10 +14,10 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import path from 'node:path';
17
- import { ExecuteService } from '@salesforce/apex-node';
18
17
  import { Messages } from '@salesforce/core';
19
18
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
20
19
  import { requireConnection, targetOrgFlags } from '@simplysf/simply-plugin-kit';
20
+ import { ApexExecuteError, executeApex } from '../../../common/apexExecute.js';
21
21
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
22
22
  const messages = Messages.loadMessages('@simplysf/simply-apex', 'simply.apex.execute');
23
23
  /**
@@ -46,26 +46,23 @@ export default class ApexExecute extends SfCommand {
46
46
  const { flags } = await this.parse(ApexExecute);
47
47
  const targetOrgConnection = requireConnection(flags);
48
48
  this.spinner.start(`Executing ${path.parse(flags.file).name}`);
49
- const executeService = new ExecuteService(targetOrgConnection);
50
- const response = await executeService.executeAnonymous({ apexFilePath: flags.file });
51
- const diagnostic = response.diagnostic?.[0];
52
- const result = {
53
- success: response.success,
54
- compiled: response.compiled,
55
- compileProblem: diagnostic?.compileProblem ?? '',
56
- exceptionMessage: diagnostic?.exceptionMessage ?? '',
57
- exceptionStackTrace: diagnostic?.exceptionStackTrace ?? '',
58
- line: diagnostic?.lineNumber ?? -1,
59
- column: diagnostic?.columnNumber ?? -1,
60
- logs: response.logs,
61
- };
62
- if (!response.compiled) {
63
- this.spinner.stop(messages.getMessage('info.failed'));
64
- throw messages.createError('error.compileFailed', [result.line, result.column, result.compileProblem]);
49
+ let result;
50
+ try {
51
+ result = await executeApex(targetOrgConnection, flags.file);
65
52
  }
66
- if (!response.success) {
53
+ catch (error) {
67
54
  this.spinner.stop(messages.getMessage('info.failed'));
68
- throw messages.createError('error.executeFailed', [result.exceptionMessage]);
55
+ if (error instanceof ApexExecuteError) {
56
+ if (error.code === 'compile-failed') {
57
+ throw messages.createError('error.compileFailed', [
58
+ error.result.line,
59
+ error.result.column,
60
+ error.result.compileProblem,
61
+ ]);
62
+ }
63
+ throw messages.createError('error.executeFailed', [error.result.exceptionMessage]);
64
+ }
65
+ throw error;
69
66
  }
70
67
  this.spinner.stop();
71
68
  if (result.logs) {
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../src/commands/simply/apex/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../src/commands/simply/apex/execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAA0B,MAAM,gCAAgC,CAAC;AAEvG,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;AAIvF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAA4B;IAC5D,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,SAAS,CAAC,SAAS;QACtB,GAAG,cAAc;QACjB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC1D,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF;;OAEG;IACI,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEhD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/D,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAEtD,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBACpC,MAAM,QAAQ,CAAC,WAAW,CAAC,qBAAqB,EAAE;wBAChD,KAAK,CAAC,MAAM,CAAC,IAAI;wBACjB,KAAK,CAAC,MAAM,CAAC,MAAM;wBACnB,KAAK,CAAC,MAAM,CAAC,cAAc;qBAC5B,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,QAAQ,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import { Duration } from '@salesforce/kit';
2
2
  import { SfCommand } from '@salesforce/sf-plugins-core';
3
- /** Outcome of deleting a single `ApexLog` record. */
4
- export type ApexLogsPurgeResult = {
5
- Id: string;
6
- Success: boolean;
7
- Error?: string;
8
- };
3
+ import { type ApexLogsPurgeResult } from '../../../../common/apexLogsPurge.js';
4
+ export type { ApexLogsPurgeResult } from '../../../../common/apexLogsPurge.js';
9
5
  /**
10
6
  * Deletes `ApexLog` records from the target org. By default all logs are purged; use `--where`
11
7
  * to scope the deletion to a subset of logs.
@@ -27,12 +23,4 @@ export default class ApexLogsPurge extends SfCommand<ApexLogsPurgeResult[]> {
27
23
  * filter.
28
24
  */
29
25
  run(): Promise<ApexLogsPurgeResult[]>;
30
- /**
31
- * Deletes through the core connection's SObject Collections resource, 200 records per call.
32
- *
33
- * Deliberately not `.tooling`: `ApexLog` is exposed on both APIs, but only core REST implements
34
- * the Collections resource a bulk delete needs. `/tooling/composite/sobjects` does not exist and
35
- * answers 404 "The requested resource does not exist".
36
- */
37
- private deleteViaCollections;
38
26
  }
@@ -17,14 +17,9 @@ import { Messages } from '@salesforce/core';
17
17
  import { Duration } from '@salesforce/kit';
18
18
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
19
19
  import { requireConnection, targetOrgFlags } from '@simplysf/simply-plugin-kit';
20
- import { chunk } from '@simplysf/simply-core';
20
+ import { deleteApexLogsViaBulkApi, deleteApexLogsViaCollections, queryApexLogIdsViaBulkApi, queryApexLogIdsViaRest, } from '../../../../common/apexLogsPurge.js';
21
21
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
22
22
  const messages = Messages.loadMessages('@simplysf/simply-apex', 'simply.apex.logs.purge');
23
- /**
24
- * Maximum number of `ApexLog` records to delete per SObject Collections call, which is the API's
25
- * own ceiling and matches jsforce's `MAX_DML_COUNT`.
26
- */
27
- const CHUNK_SIZE = 200;
28
23
  /**
29
24
  * Deletes `ApexLog` records from the target org. By default all logs are purged; use `--where`
30
25
  * to scope the deletion to a subset of logs.
@@ -70,8 +65,8 @@ export default class ApexLogsPurge extends SfCommand {
70
65
  }
71
66
  this.spinner.start(messages.getMessage('info.queryingLogs'));
72
67
  const logIds = useBulkApi
73
- ? await queryLogIdsViaBulkApi(targetOrgConnection, query, pollTimeout)
74
- : await queryLogIdsViaRest(targetOrgConnection, query);
68
+ ? await queryApexLogIdsViaBulkApi(targetOrgConnection, query, pollTimeout)
69
+ : await queryApexLogIdsViaRest(targetOrgConnection, query);
75
70
  this.spinner.stop();
76
71
  if (logIds.length === 0) {
77
72
  this.info(messages.getMessage('info.noLogsToPurge'));
@@ -79,8 +74,10 @@ export default class ApexLogsPurge extends SfCommand {
79
74
  }
80
75
  this.spinner.start(messages.getMessage('info.purgingLogs', [logIds.length]));
81
76
  const results = useBulkApi
82
- ? await deleteViaBulkApi(targetOrgConnection, logIds, pollTimeout)
83
- : await this.deleteViaCollections(targetOrgConnection, logIds);
77
+ ? await deleteApexLogsViaBulkApi(targetOrgConnection, logIds, pollTimeout)
78
+ : await deleteApexLogsViaCollections(targetOrgConnection, logIds, (purged, total) => {
79
+ this.spinner.status = `${purged}/${total}`;
80
+ });
84
81
  this.spinner.stop();
85
82
  const successCount = results.filter((result) => result.Success).length;
86
83
  const failureCount = results.length - successCount;
@@ -100,76 +97,5 @@ export default class ApexLogsPurge extends SfCommand {
100
97
  });
101
98
  return results;
102
99
  }
103
- /**
104
- * Deletes through the core connection's SObject Collections resource, 200 records per call.
105
- *
106
- * Deliberately not `.tooling`: `ApexLog` is exposed on both APIs, but only core REST implements
107
- * the Collections resource a bulk delete needs. `/tooling/composite/sobjects` does not exist and
108
- * answers 404 "The requested resource does not exist".
109
- */
110
- async deleteViaCollections(connection, logIds) {
111
- const results = [];
112
- let purged = 0;
113
- for (const idChunk of chunk(logIds, CHUNK_SIZE)) {
114
- purged += idChunk.length;
115
- this.spinner.status = `${purged}/${logIds.length}`;
116
- // eslint-disable-next-line no-await-in-loop -- batches are sequential so the spinner tracks real progress
117
- const deleteResults = await connection.delete('ApexLog', idChunk);
118
- const deleteResultsArray = Array.isArray(deleteResults) ? deleteResults : [deleteResults];
119
- deleteResultsArray.forEach((deleteResult, index) => {
120
- results.push({
121
- Id: deleteResult.id ?? idChunk[index] ?? 'unknown',
122
- Success: deleteResult.success,
123
- Error: deleteResult.success ? undefined : deleteResult.errors.map((e) => e.message).join(', '),
124
- });
125
- });
126
- }
127
- return results;
128
- }
129
- }
130
- /** Collects matching log IDs through the Tooling API, which returns them in a single response. */
131
- async function queryLogIdsViaRest(connection, query) {
132
- const queryResult = await connection.tooling.query(query);
133
- return queryResult.records.map((record) => record.Id);
134
- }
135
- /**
136
- * Collects matching log IDs through a Bulk API v2 query job. The job streams CSV back, so the IDs
137
- * are gathered from the record stream rather than a single response body.
138
- */
139
- async function queryLogIdsViaBulkApi(connection, query, pollTimeout) {
140
- const recordStream = await connection.bulk2.query(query, { pollTimeout });
141
- const logIds = [];
142
- for await (const record of recordStream) {
143
- const { Id: id } = record;
144
- if (id) {
145
- logIds.push(id);
146
- }
147
- }
148
- return logIds;
149
- }
150
- /**
151
- * Deletes through a Bulk API v2 ingest job. The whole set goes up as one job rather than in
152
- * 200-record chunks, and the org processes it asynchronously without spending REST request limit.
153
- */
154
- async function deleteViaBulkApi(connection, logIds, pollTimeout) {
155
- const { successfulResults, failedResults } = await connection.bulk2.loadAndWaitForResults({
156
- object: 'ApexLog',
157
- operation: 'delete',
158
- input: logIds.map((Id) => ({ Id })),
159
- pollTimeout,
160
- });
161
- return [
162
- ...successfulResults.map((result) => ({ Id: result.sf__Id, Success: true })),
163
- ...failedResults.map((result) => {
164
- // A failed row reports an empty (not absent) `sf__Id`; the submitted `Id` column is echoed
165
- // back alongside it, so prefer that to keep every failure traceable to a specific log.
166
- const submittedId = result.Id;
167
- return {
168
- Id: result.sf__Id.length > 0 ? result.sf__Id : (submittedId ?? 'unknown'),
169
- Success: false,
170
- Error: result.sf__Error,
171
- };
172
- }),
173
- ];
174
100
  }
175
101
  //# sourceMappingURL=purge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"purge.js","sourceRoot":"","sources":["../../../../../src/commands/simply/apex/logs/purge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"purge.js","sourceRoot":"","sources":["../../../../../src/commands/simply/apex/logs/purge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,qCAAqC,CAAC;AAE7C,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;AAI1F;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAgC;IAClE,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,SAAS,CAAC,SAAS;QACtB,GAAG,cAAc;QACjB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACnD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC;YAC3D,IAAI,EAAE,GAAG;SACV,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;YAC1D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;YAClE,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;YACnB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC1D,oFAAoF;YACpF,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;SAC9B,CAAC;KACH,CAAC;IAEF;;;OAGG;IACI,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5C,IAAI,KAAK,GAAG,wBAAwB,CAAC;QACrC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,IAAI,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,MAAM,yBAAyB,CAAC,mBAAmB,EAAE,KAAK,EAAE,WAAW,CAAC;YAC1E,CAAC,CAAC,MAAM,sBAAsB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG,UAAU;YACxB,CAAC,CAAC,MAAM,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;YAC1E,CAAC,CAAC,MAAM,4BAA4B,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAChF,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC;QAEnD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;gBACzB,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;aAChC;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC"}
@@ -1,16 +1,6 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
- /** A `Field:Value` pair identifying the user to configure the trace flag for. */
3
- type OnBehalfOf = {
4
- field: string;
5
- value: string;
6
- };
7
- /** IDs of the debug level and trace flag configured for the target user, and when it expires. */
8
- export type ApexTraceSetupResult = {
9
- userId: string;
10
- debugLevelId: string;
11
- traceFlagId: string;
12
- expirationDate: string;
13
- };
2
+ import { type ApexTraceSetupResult, type OnBehalfOf } from '../../../../common/apexTraceSetup.js';
3
+ export type { ApexTraceSetupResult } from '../../../../common/apexTraceSetup.js';
14
4
  /**
15
5
  * Creates or updates a DEVELOPER_LOG trace flag for the target user. The target user is the one
16
6
  * running the command by default, or the user identified by `--on-behalf-of` if provided. By
@@ -37,4 +27,3 @@ export default class ApexTraceSetup extends SfCommand<ApexTraceSetupResult> {
37
27
  */
38
28
  run(): Promise<ApexTraceSetupResult>;
39
29
  }
40
- export {};
@@ -16,20 +16,26 @@
16
16
  import { Messages } from '@salesforce/core';
17
17
  import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
18
18
  import { requireConnection, targetOrgFlags } from '@simplysf/simply-plugin-kit';
19
- import { escapeSoqlLiteral } from '@simplysf/simply-core';
19
+ import { ApexTraceSetupError, DATE_TIME_PATTERN, parseOnBehalfOf, setupApexTrace, } from '../../../../common/apexTraceSetup.js';
20
20
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
21
21
  const messages = Messages.loadMessages('@simplysf/simply-apex', 'simply.apex.trace.setup');
22
- /** DeveloperName used for the FINEST/FINER debug level created for the Apex Replay Debugger. */
23
- const DEBUG_LEVEL_NAME = 'ReplayDebuggerLevels';
24
- /** How long a configured trace flag stays active before expiring, in milliseconds (24 hours). */
25
- const TRACE_DURATION_MS = 24 * 60 * 60 * 1000;
26
- /** Matches the ISO 8601 date-time format required by the `--start-date`/`--end-date` flags. */
27
- const DATE_TIME_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/;
28
- /**
29
- * Matches `Field:Value` for `--on-behalf-of`. The field name is restricted to safe SOQL
30
- * identifier characters since, unlike the value, it can't be quoted/escaped in the query.
31
- */
32
- const ON_BEHALF_OF_PATTERN = /^([A-Za-z_][A-Za-z0-9_]*):(.+)$/;
22
+ /** Maps `ApexTraceSetupError`'s structural codes to this command's own `Messages` catalog. */
23
+ function toCliError(error) {
24
+ switch (error.code) {
25
+ case 'user-not-found':
26
+ return messages.createError('error.userNotFound', error.args);
27
+ case 'ambiguous-on-behalf-of':
28
+ return messages.createError('error.ambiguousOnBehalfOf', error.args);
29
+ case 'debug-level-not-found':
30
+ return messages.createError('error.debugLevelNotFound', error.args);
31
+ case 'debug-level-create-failed':
32
+ return messages.createError('error.debugLevelCreateFailed', error.args);
33
+ case 'trace-flag-create-failed':
34
+ return messages.createError('error.traceFlagCreateFailed', error.args);
35
+ case 'invalid-date-range':
36
+ return messages.createError('error.invalidDateRange', error.args);
37
+ }
38
+ }
33
39
  /**
34
40
  * Creates or updates a DEVELOPER_LOG trace flag for the target user. The target user is the one
35
41
  * running the command by default, or the user identified by `--on-behalf-of` if provided. By
@@ -47,12 +53,11 @@ export default class ApexTraceSetup extends SfCommand {
47
53
  'on-behalf-of': Flags.custom({
48
54
  // eslint-disable-next-line @typescript-eslint/require-await
49
55
  parse: async (input) => {
50
- const match = ON_BEHALF_OF_PATTERN.exec(input);
51
- if (!match) {
56
+ const onBehalfOf = parseOnBehalfOf(input);
57
+ if (!onBehalfOf) {
52
58
  throw messages.createError('error.invalidOnBehalfOf', [input]);
53
59
  }
54
- const [, field, value] = match;
55
- return { field, value };
60
+ return onBehalfOf;
56
61
  },
57
62
  })({
58
63
  summary: messages.getMessage('flags.on-behalf-of.summary'),
@@ -92,81 +97,36 @@ export default class ApexTraceSetup extends SfCommand {
92
97
  async run() {
93
98
  const { flags } = await this.parse(ApexTraceSetup);
94
99
  const targetOrgConnection = requireConnection(flags);
95
- const onBehalfOf = flags['on-behalf-of'];
96
- const userFilterField = onBehalfOf?.field ?? 'Username';
97
- const userFilterValue = onBehalfOf?.value ?? targetOrgConnection.getUsername() ?? '';
98
- const userIdentifier = onBehalfOf ? `${onBehalfOf.field}:${onBehalfOf.value}` : userFilterValue;
99
- this.spinner.start(messages.getMessage('info.findingUser'));
100
- const userQueryResult = await targetOrgConnection.query(`SELECT Id FROM User WHERE ${userFilterField} = '${escapeSoqlLiteral(userFilterValue)}' LIMIT 2`);
101
- if (userQueryResult.records.length === 0) {
102
- throw messages.createError('error.userNotFound', [userIdentifier]);
103
- }
104
- if (userQueryResult.records.length > 1) {
105
- throw messages.createError('error.ambiguousOnBehalfOf', [userIdentifier]);
106
- }
107
- const userId = userQueryResult.records[0].Id;
108
- this.spinner.stop();
109
- const requestedLogLevel = flags['log-level'];
110
- const debugLevelName = requestedLogLevel ?? DEBUG_LEVEL_NAME;
111
- this.spinner.start(messages.getMessage('info.checkingDebugLevel'));
112
- const debugLevelResult = await targetOrgConnection.tooling.query(`SELECT Id FROM DebugLevel WHERE DeveloperName = '${debugLevelName}'`);
113
- let debugLevelId;
114
- if (debugLevelResult.records.length > 0) {
115
- debugLevelId = debugLevelResult.records[0].Id;
116
- }
117
- else if (requestedLogLevel) {
118
- throw messages.createError('error.debugLevelNotFound', [debugLevelName]);
119
- }
120
- else {
121
- const createResult = await targetOrgConnection.tooling.sobject('DebugLevel').create({
122
- DeveloperName: DEBUG_LEVEL_NAME,
123
- MasterLabel: DEBUG_LEVEL_NAME,
124
- ApexCode: 'FINEST',
125
- Visualforce: 'FINER',
126
- });
127
- if (!createResult.success) {
128
- throw messages.createError('error.debugLevelCreateFailed', [
129
- createResult.errors.map((e) => e.message).join(', '),
130
- ]);
131
- }
132
- debugLevelId = createResult.id;
133
- }
134
- this.spinner.stop();
135
- this.spinner.start(messages.getMessage('info.configuringTraceFlag'));
136
- const traceFlagResult = await targetOrgConnection.tooling.query(`SELECT Id FROM TraceFlag WHERE LogType = 'DEVELOPER_LOG' AND TracedEntityId = '${userId}'`);
137
- const startDate = flags['start-date'] ?? new Date().toISOString();
138
- const expirationDate = flags['end-date'] ?? new Date(new Date(startDate).getTime() + TRACE_DURATION_MS).toISOString();
139
- if (new Date(expirationDate).getTime() <= new Date(startDate).getTime()) {
140
- throw messages.createError('error.invalidDateRange', [expirationDate, startDate]);
141
- }
142
- let traceFlagId;
143
- if (traceFlagResult.records.length > 0) {
144
- traceFlagId = traceFlagResult.records[0].Id;
145
- await targetOrgConnection.tooling.sobject('TraceFlag').update({
146
- Id: traceFlagId,
147
- DebugLevelId: debugLevelId,
148
- StartDate: startDate,
149
- ExpirationDate: expirationDate,
100
+ let result;
101
+ try {
102
+ result = await setupApexTrace(targetOrgConnection, {
103
+ onBehalfOf: flags['on-behalf-of'],
104
+ logLevel: flags['log-level'],
105
+ startDate: flags['start-date'],
106
+ endDate: flags['end-date'],
107
+ }, (phase) => {
108
+ switch (phase) {
109
+ case 'finding-user':
110
+ this.spinner.start(messages.getMessage('info.findingUser'));
111
+ break;
112
+ case 'checking-debug-level':
113
+ this.spinner.stop();
114
+ this.spinner.start(messages.getMessage('info.checkingDebugLevel'));
115
+ break;
116
+ case 'configuring-trace-flag':
117
+ this.spinner.stop();
118
+ this.spinner.start(messages.getMessage('info.configuringTraceFlag'));
119
+ break;
120
+ }
150
121
  });
151
122
  }
152
- else {
153
- const createResult = await targetOrgConnection.tooling.sobject('TraceFlag').create({
154
- TracedEntityId: userId,
155
- LogType: 'DEVELOPER_LOG',
156
- DebugLevelId: debugLevelId,
157
- StartDate: startDate,
158
- ExpirationDate: expirationDate,
159
- });
160
- if (!createResult.success) {
161
- throw messages.createError('error.traceFlagCreateFailed', [
162
- createResult.errors.map((e) => e.message).join(', '),
163
- ]);
164
- }
165
- traceFlagId = createResult.id;
123
+ catch (error) {
124
+ this.spinner.stop();
125
+ throw error instanceof ApexTraceSetupError ? toCliError(error) : error;
166
126
  }
167
127
  this.spinner.stop();
168
- this.info(messages.getMessage('info.complete', [expirationDate]));
169
- return { userId, debugLevelId, traceFlagId, expirationDate };
128
+ this.info(messages.getMessage('info.complete', [result.expirationDate]));
129
+ return result;
170
130
  }
171
131
  }
172
132
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../../src/commands/simply/apex/trace/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../../src/commands/simply/apex/trace/setup.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
- /** The trace flag created to silence debug logs for a single Apex class. */
3
- export type ApexTraceSilenceResult = {
4
- class: string;
5
- classId: string;
6
- traceFlagId: string;
7
- };
2
+ import { type ApexTraceSilenceResult } from '../../../../common/apexTraceSilence.js';
3
+ export type { ApexTraceSilenceResult } from '../../../../common/apexTraceSilence.js';
8
4
  /**
9
5
  * Creates or updates a 24-hour CLASS_TRACING trace flag with a fully suppressed (NONE) debug
10
6
  * level for each specified Apex class, preventing those classes from generating debug log