@salesforce/apex-node 0.2.6 → 0.3.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.
- package/lib/src/i18n/i18n.d.ts +7 -0
- package/lib/src/i18n/i18n.js +8 -1
- package/lib/src/i18n/i18n.js.map +1 -1
- package/lib/src/logs/constants.d.ts +6 -0
- package/lib/src/logs/constants.js +15 -0
- package/lib/src/logs/constants.js.map +1 -0
- package/lib/src/logs/index.d.ts +1 -0
- package/lib/src/logs/index.js +6 -0
- package/lib/src/logs/index.js.map +1 -1
- package/lib/src/logs/logService.d.ts +16 -2
- package/lib/src/logs/logService.js +75 -9
- package/lib/src/logs/logService.js.map +1 -1
- package/lib/src/tests/asyncTests.js +7 -13
- package/lib/src/tests/asyncTests.js.map +1 -1
- package/lib/src/tests/codeCoverage.d.ts +2 -0
- package/lib/src/tests/codeCoverage.js +61 -45
- package/lib/src/tests/codeCoverage.js.map +1 -1
- package/lib/src/tests/constants.d.ts +1 -1
- package/lib/src/tests/constants.js +5 -3
- package/lib/src/tests/constants.js.map +1 -1
- package/lib/src/tests/utils.d.ts +0 -1
- package/lib/src/tests/utils.js +0 -4
- package/lib/src/tests/utils.js.map +1 -1
- package/lib/src/utils/authUtil.d.ts +1 -0
- package/lib/src/utils/authUtil.js +7 -0
- package/lib/src/utils/authUtil.js.map +1 -1
- package/lib/src/utils/dateUtil.d.ts +1 -0
- package/lib/src/utils/dateUtil.js +1 -0
- package/lib/src/utils/dateUtil.js.map +1 -1
- package/lib/src/utils/traceFlags.d.ts +16 -0
- package/lib/src/utils/traceFlags.js +165 -0
- package/lib/src/utils/traceFlags.js.map +1 -0
- package/lib/src/utils/types.d.ts +27 -0
- package/lib/src/utils/types.js +7 -0
- package/lib/src/utils/types.js.map +1 -1
- package/package.json +2 -2
package/lib/src/i18n/i18n.d.ts
CHANGED
|
@@ -64,6 +64,13 @@ export declare const messages: {
|
|
|
64
64
|
missingTestClassErr: string;
|
|
65
65
|
testSuiteMsg: string;
|
|
66
66
|
classSuiteMsg: string;
|
|
67
|
+
error_no_default_username: string;
|
|
68
|
+
trace_flags_unknown_user: string;
|
|
69
|
+
trace_flags_failed_to_create_debug_level: string;
|
|
70
|
+
trace_flags_failed_to_find_debug_level: string;
|
|
67
71
|
runIdFormatErr: string;
|
|
68
72
|
covIdFormatErr: string;
|
|
73
|
+
startHandshake: string;
|
|
74
|
+
finishHandshake: string;
|
|
75
|
+
subscribeStarted: string;
|
|
69
76
|
};
|
package/lib/src/i18n/i18n.js
CHANGED
|
@@ -72,7 +72,14 @@ exports.messages = {
|
|
|
72
72
|
missingTestClassErr: 'Apex class %s does not exist in the org',
|
|
73
73
|
testSuiteMsg: 'Apex test class %s already exists in Apex test suite %s',
|
|
74
74
|
classSuiteMsg: `Added Apex class %s to your Apex test suite %s`,
|
|
75
|
+
error_no_default_username: 'No default org is set. Run "SFDX: Create a Default Scratch Org" or "SFDX: Authorize an Org" to set one.',
|
|
76
|
+
trace_flags_unknown_user: 'Unknown user',
|
|
77
|
+
trace_flags_failed_to_create_debug_level: 'Failed to create a debug level',
|
|
78
|
+
trace_flags_failed_to_find_debug_level: 'Debug Level not found for %s',
|
|
75
79
|
runIdFormatErr: 'Cannot specify a result format with a TestRunId result',
|
|
76
|
-
covIdFormatErr: 'Cannot specify code coverage with a TestRunId result'
|
|
80
|
+
covIdFormatErr: 'Cannot specify code coverage with a TestRunId result',
|
|
81
|
+
startHandshake: 'Attempting StreamingClient handshake',
|
|
82
|
+
finishHandshake: 'Finished StreamingClient handshake',
|
|
83
|
+
subscribeStarted: 'Subscribing to ApexLog events'
|
|
77
84
|
};
|
|
78
85
|
//# sourceMappingURL=i18n.js.map
|
package/lib/src/i18n/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/i18n/i18n.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH;;;;;;;;;GASG;AACU,QAAA,QAAQ,GAAG;IACtB,6BAA6B,EAC3B,qDAAqD;IACvD,iBAAiB,EAAE,0CAA0C;IAC7D,mBAAmB,EACjB,6DAA6D;IAC/D,YAAY,EAAE,+CAA+C;IAC7D,mBAAmB,EAAE,qDAAqD;IAC1E,4BAA4B,EAAE,+CAA+C;IAC7E,mBAAmB,EACjB,iGAAiG;IACnG,oBAAoB,EAAE,yCAAyC;IAC/D,mBAAmB,EAAE,4CAA4C;IACjE,kBAAkB,EAAE,yDAAyD;IAC7E,kBAAkB,EAChB,0DAA0D;IAC5D,sBAAsB,EAAE,+BAA+B;IACvD,oBAAoB,EAAE,0CAA0C;IAChE,sBAAsB,EAAE,+CAA+C;IACvE,0BAA0B,EAAE,wBAAwB;IACpD,wBAAwB,EAAE,oCAAoC;IAC9D,gCAAgC,EAC9B,8CAA8C;IAChD,eAAe,EAAE,sBAAsB;IACvC,wBAAwB,EAAE,wBAAwB;IAClD,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,aAAa,EAAE,iBAAiB;IAChC,iBAAiB,EAAE,qBAAqB;IACxC,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,MAAM;IACrB,cAAc,EAAE,OAAO;IACvB,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,WAAW;IAC9B,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,SAAS;IACvB,gBAAgB,EAAE,cAAc;IAChC,iBAAiB,EAAE,cAAc;IACjC,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,SAAS;IAC3B,iBAAiB,EAAE,oBAAoB;IACvC,uBAAuB,EAAE,iBAAiB;IAC1C,aAAa,EAAE,6BAA6B;IAC5C,qBAAqB,EAAE,oCAAoC;IAC3D,YAAY,EACV,2IAA2I;IAC7I,eAAe,EACb,8DAA8D;IAChE,mBAAmB,EAAE,iIAAiI;IACtJ,iBAAiB,EAAE,mKAAmK;IACtL,UAAU,EACR,uEAAuE;IACzE,YAAY,EACV,yEAAyE;IAC3E,eAAe,EAAE,sBAAsB;IACvC,mBAAmB,EAAE,yCAAyC;IAC9D,YAAY,EAAE,yDAAyD;IACvE,aAAa,EAAE,gDAAgD;IAC/D,cAAc,EAAE,wDAAwD;IACxE,cAAc,EAAE,sDAAsD;
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/i18n/i18n.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH;;;;;;;;;GASG;AACU,QAAA,QAAQ,GAAG;IACtB,6BAA6B,EAC3B,qDAAqD;IACvD,iBAAiB,EAAE,0CAA0C;IAC7D,mBAAmB,EACjB,6DAA6D;IAC/D,YAAY,EAAE,+CAA+C;IAC7D,mBAAmB,EAAE,qDAAqD;IAC1E,4BAA4B,EAAE,+CAA+C;IAC7E,mBAAmB,EACjB,iGAAiG;IACnG,oBAAoB,EAAE,yCAAyC;IAC/D,mBAAmB,EAAE,4CAA4C;IACjE,kBAAkB,EAAE,yDAAyD;IAC7E,kBAAkB,EAChB,0DAA0D;IAC5D,sBAAsB,EAAE,+BAA+B;IACvD,oBAAoB,EAAE,0CAA0C;IAChE,sBAAsB,EAAE,+CAA+C;IACvE,0BAA0B,EAAE,wBAAwB;IACpD,wBAAwB,EAAE,oCAAoC;IAC9D,gCAAgC,EAC9B,8CAA8C;IAChD,eAAe,EAAE,sBAAsB;IACvC,wBAAwB,EAAE,wBAAwB;IAClD,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,aAAa,EAAE,iBAAiB;IAChC,iBAAiB,EAAE,qBAAqB;IACxC,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,MAAM;IACrB,cAAc,EAAE,OAAO;IACvB,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,WAAW;IAC9B,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,SAAS;IACvB,gBAAgB,EAAE,cAAc;IAChC,iBAAiB,EAAE,cAAc;IACjC,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,SAAS;IAC3B,iBAAiB,EAAE,oBAAoB;IACvC,uBAAuB,EAAE,iBAAiB;IAC1C,aAAa,EAAE,6BAA6B;IAC5C,qBAAqB,EAAE,oCAAoC;IAC3D,YAAY,EACV,2IAA2I;IAC7I,eAAe,EACb,8DAA8D;IAChE,mBAAmB,EAAE,iIAAiI;IACtJ,iBAAiB,EAAE,mKAAmK;IACtL,UAAU,EACR,uEAAuE;IACzE,YAAY,EACV,yEAAyE;IAC3E,eAAe,EAAE,sBAAsB;IACvC,mBAAmB,EAAE,yCAAyC;IAC9D,YAAY,EAAE,yDAAyD;IACvE,aAAa,EAAE,gDAAgD;IAC/D,yBAAyB,EACvB,yGAAyG;IAC3G,wBAAwB,EAAE,cAAc;IACxC,wCAAwC,EAAE,gCAAgC;IAC1E,sCAAsC,EAAE,8BAA8B;IACtE,cAAc,EAAE,wDAAwD;IACxE,cAAc,EAAE,sDAAsD;IACtE,cAAc,EAAE,sCAAsC;IACtD,eAAe,EAAE,oCAAoC;IACrD,gBAAgB,EAAE,+BAA+B;CAClD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const DEFAULT_DEBUG_LEVEL_NAME = "SFDC_DevConsole";
|
|
2
|
+
export declare const LOG_TYPE = "DEVELOPER_LOG";
|
|
3
|
+
export declare const MAX_NUM_LOGS = 25;
|
|
4
|
+
export declare const LOG_TIMER_LENGTH_MINUTES = 30;
|
|
5
|
+
export declare const LISTENER_ABORTED_ERROR_NAME = "streamListenerAborted";
|
|
6
|
+
export declare const STREAMING_LOG_TOPIC = "/systemTopic/Logging";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2021, 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.DEFAULT_DEBUG_LEVEL_NAME = 'SFDC_DevConsole';
|
|
10
|
+
exports.LOG_TYPE = 'DEVELOPER_LOG';
|
|
11
|
+
exports.MAX_NUM_LOGS = 25;
|
|
12
|
+
exports.LOG_TIMER_LENGTH_MINUTES = 30;
|
|
13
|
+
exports.LISTENER_ABORTED_ERROR_NAME = 'streamListenerAborted';
|
|
14
|
+
exports.STREAMING_LOG_TOPIC = '/systemTopic/Logging';
|
|
15
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/logs/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEU,QAAA,wBAAwB,GAAG,iBAAiB,CAAC;AAC7C,QAAA,QAAQ,GAAG,eAAe,CAAC;AAC3B,QAAA,YAAY,GAAG,EAAE,CAAC;AAClB,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAC9B,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AACtD,QAAA,mBAAmB,GAAG,sBAAsB,CAAC"}
|
package/lib/src/logs/index.d.ts
CHANGED
package/lib/src/logs/index.js
CHANGED
|
@@ -8,4 +8,10 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
var logService_1 = require("./logService");
|
|
10
10
|
exports.LogService = logService_1.LogService;
|
|
11
|
+
var constants_1 = require("./constants");
|
|
12
|
+
exports.DEFAULT_DEBUG_LEVEL_NAME = constants_1.DEFAULT_DEBUG_LEVEL_NAME;
|
|
13
|
+
exports.LOG_TYPE = constants_1.LOG_TYPE;
|
|
14
|
+
exports.MAX_NUM_LOGS = constants_1.MAX_NUM_LOGS;
|
|
15
|
+
exports.LOG_TIMER_LENGTH_MINUTES = constants_1.LOG_TIMER_LENGTH_MINUTES;
|
|
16
|
+
exports.LISTENER_ABORTED_ERROR_NAME = constants_1.LISTENER_ABORTED_ERROR_NAME;
|
|
11
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logs/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,2CAA0C;AAAjC,kCAAA,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logs/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AAEnB,yCAMqB;AALnB,+CAAA,wBAAwB,CAAA;AACxB,+BAAA,QAAQ,CAAA;AACR,mCAAA,YAAY,CAAA;AACZ,+CAAA,wBAAwB,CAAA;AACxB,kDAAA,2BAA2B,CAAA"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
import { Connection } from '@salesforce/core';
|
|
2
|
-
import { ApexLogGetOptions, LogRecord, LogResult } from './types';
|
|
1
|
+
import { Connection, Org, StreamingClient } from '@salesforce/core';
|
|
3
2
|
import { AnyJson } from '@salesforce/ts-types';
|
|
3
|
+
import { ApexLogGetOptions, LogRecord, LogResult } from './types';
|
|
4
|
+
declare type StreamingLogMessage = {
|
|
5
|
+
sobject: {
|
|
6
|
+
Id: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
4
9
|
export declare class LogService {
|
|
5
10
|
readonly connection: Connection;
|
|
11
|
+
private logger;
|
|
12
|
+
private logTailer?;
|
|
6
13
|
constructor(connection: Connection);
|
|
7
14
|
getLogIds(options: ApexLogGetOptions): Promise<string[]>;
|
|
8
15
|
getLogs(options: ApexLogGetOptions): Promise<LogResult[]>;
|
|
16
|
+
getLogById(logId: string): Promise<LogResult>;
|
|
9
17
|
getLogRecords(numberOfLogs?: number): Promise<LogRecord[]>;
|
|
18
|
+
tail(org: Org, tailer?: (log: string) => void): Promise<void>;
|
|
19
|
+
createStreamingClient(org: Org): Promise<StreamingClient>;
|
|
20
|
+
logCallback(message: StreamingLogMessage): Promise<void>;
|
|
21
|
+
private streamingCallback;
|
|
22
|
+
prepareTraceFlag(requestedDebugLevel: string): Promise<void>;
|
|
10
23
|
toolingRequest(url: string): Promise<AnyJson>;
|
|
11
24
|
}
|
|
25
|
+
export {};
|
|
@@ -9,10 +9,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/*
|
|
13
|
+
* Copyright (c) 2021, salesforce.com, inc.
|
|
14
|
+
* All rights reserved.
|
|
15
|
+
* Licensed under the BSD 3-Clause license.
|
|
16
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
17
|
+
*/
|
|
18
|
+
const core_1 = require("@salesforce/core");
|
|
19
|
+
const kit_1 = require("@salesforce/kit");
|
|
20
|
+
const constants_1 = require("./constants");
|
|
14
21
|
const path = require("path");
|
|
15
|
-
const
|
|
22
|
+
const i18n_1 = require("../i18n");
|
|
23
|
+
const utils_1 = require("../utils");
|
|
24
|
+
const traceFlags_1 = require("../utils/traceFlags");
|
|
16
25
|
class LogService {
|
|
17
26
|
constructor(connection) {
|
|
18
27
|
this.connection = connection;
|
|
@@ -58,22 +67,79 @@ class LogService {
|
|
|
58
67
|
});
|
|
59
68
|
});
|
|
60
69
|
}
|
|
70
|
+
getLogById(logId) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const baseUrl = this.connection.tooling._baseUrl();
|
|
73
|
+
const url = `${baseUrl}/sobjects/ApexLog/${logId}/Body`;
|
|
74
|
+
const response = (yield this.connection.tooling.request(url));
|
|
75
|
+
return { log: response.toString() || '' };
|
|
76
|
+
});
|
|
77
|
+
}
|
|
61
78
|
getLogRecords(numberOfLogs) {
|
|
62
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
|
|
80
|
+
let apexLogQuery = `
|
|
81
|
+
SELECT Id, Application, DurationMilliseconds, Location, LogLength, LogUser.Name,
|
|
82
|
+
Operation, Request, StartTime, Status
|
|
83
|
+
FROM ApexLog
|
|
84
|
+
ORDER BY StartTime DESC
|
|
85
|
+
`;
|
|
66
86
|
if (typeof numberOfLogs === 'number') {
|
|
67
87
|
if (numberOfLogs <= 0) {
|
|
68
88
|
throw new Error(i18n_1.nls.localize('numLogsError'));
|
|
69
89
|
}
|
|
70
|
-
numberOfLogs = Math.min(numberOfLogs, MAX_NUM_LOGS);
|
|
71
|
-
|
|
90
|
+
numberOfLogs = Math.min(numberOfLogs, constants_1.MAX_NUM_LOGS);
|
|
91
|
+
apexLogQuery += ` LIMIT ${numberOfLogs}`;
|
|
72
92
|
}
|
|
73
|
-
const response = (yield this.connection.tooling.query(
|
|
93
|
+
const response = (yield this.connection.tooling.query(apexLogQuery));
|
|
74
94
|
return response.records;
|
|
75
95
|
});
|
|
76
96
|
}
|
|
97
|
+
tail(org, tailer) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
this.logger = yield core_1.Logger.child('apexLogApi', { tag: 'tail' });
|
|
100
|
+
this.logTailer = tailer;
|
|
101
|
+
const stream = yield this.createStreamingClient(org);
|
|
102
|
+
this.logger.debug(i18n_1.nls.localize('startHandshake'));
|
|
103
|
+
yield stream.handshake();
|
|
104
|
+
this.logger.debug(i18n_1.nls.localize('finishHandshake'));
|
|
105
|
+
yield stream.subscribe(() => __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
this.logger.debug(i18n_1.nls.localize('subscribeStarted'));
|
|
107
|
+
}));
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
createStreamingClient(org) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const options = new core_1.StreamingClient.DefaultOptions(org, constants_1.STREAMING_LOG_TOPIC, this.streamingCallback.bind(this));
|
|
113
|
+
options.setSubscribeTimeout(kit_1.Duration.minutes(constants_1.LOG_TIMER_LENGTH_MINUTES));
|
|
114
|
+
return yield core_1.StreamingClient.create(options);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
logCallback(message) {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
if (message.sobject && message.sobject.Id) {
|
|
120
|
+
const log = yield this.getLogById(message.sobject.Id);
|
|
121
|
+
if (log && this.logTailer) {
|
|
122
|
+
this.logTailer(log.log);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
streamingCallback(message) {
|
|
128
|
+
var _a;
|
|
129
|
+
if (message.errorName === constants_1.LISTENER_ABORTED_ERROR_NAME) {
|
|
130
|
+
return { completed: true };
|
|
131
|
+
}
|
|
132
|
+
if ((_a = message.sobject) === null || _a === void 0 ? void 0 : _a.Id) {
|
|
133
|
+
this.logCallback(message);
|
|
134
|
+
}
|
|
135
|
+
return { completed: false };
|
|
136
|
+
}
|
|
137
|
+
prepareTraceFlag(requestedDebugLevel) {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
const flags = new traceFlags_1.TraceFlags(this.connection);
|
|
140
|
+
yield flags.ensureTraceFlags(requestedDebugLevel);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
77
143
|
toolingRequest(url) {
|
|
78
144
|
return __awaiter(this, void 0, void 0, function* () {
|
|
79
145
|
const log = (yield this.connection.tooling.request(url));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logService.js","sourceRoot":"","sources":["../../../src/logs/logService.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"logService.js","sourceRoot":"","sources":["../../../src/logs/logService.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,20 +216,14 @@ class AsyncTests {
|
|
|
216
216
|
'ApexClass.Id, ApexClass.Name, ApexClass.NamespacePrefix ';
|
|
217
217
|
apexTestResultQuery += 'FROM ApexTestResult WHERE QueueItemId IN (%s)';
|
|
218
218
|
const apexResultIds = testQueueResult.records.map(record => record.Id);
|
|
219
|
-
let formattedIds = '';
|
|
220
|
-
const queries = [];
|
|
221
219
|
// iterate thru ids, create query with id, & compare query length to char limit
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
formattedIds = utils_2.addIdToQuery(formattedIds, id);
|
|
230
|
-
}
|
|
231
|
-
if (formattedIds.length > 0) {
|
|
232
|
-
queries.push(util.format(apexTestResultQuery, `'${formattedIds}'`));
|
|
220
|
+
const queries = [];
|
|
221
|
+
for (let i = 0; i < apexResultIds.length; i += constants_1.QUERY_RECORD_LIMIT) {
|
|
222
|
+
const recordSet = apexResultIds
|
|
223
|
+
.slice(i, i + constants_1.QUERY_RECORD_LIMIT)
|
|
224
|
+
.map(id => `'${id}'`);
|
|
225
|
+
const query = util.format(apexTestResultQuery, recordSet.join(','));
|
|
226
|
+
queries.push(query);
|
|
233
227
|
}
|
|
234
228
|
const queryPromises = queries.map(query => {
|
|
235
229
|
return this.connection.tooling.autoFetchQuery(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncTests.js","sourceRoot":"","sources":["../../../src/tests/asyncTests.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;AAIH,kCAA8B;AAC9B,4CAA6D;AAC7D,oCAA2D;AAC3D,qDAAwE;AAiBxE,
|
|
1
|
+
{"version":3,"file":"asyncTests.js","sourceRoot":"","sources":["../../../src/tests/asyncTests.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const util = require("util");
|
|
19
19
|
const utils_1 = require("./utils");
|
|
20
|
+
const constants_1 = require("./constants");
|
|
20
21
|
class CodeCoverage {
|
|
21
22
|
constructor(connection) {
|
|
22
23
|
this.connection = connection;
|
|
@@ -45,33 +46,29 @@ class CodeCoverage {
|
|
|
45
46
|
if (apexTestClassSet.size === 0) {
|
|
46
47
|
return new Map();
|
|
47
48
|
}
|
|
48
|
-
const
|
|
49
|
+
const perClassCodeCovResults = yield this.queryPerClassCodeCov(apexTestClassSet);
|
|
49
50
|
const perClassCoverageMap = new Map();
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
perClassCoverageMap.get(key)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
perClassCodeCovResults.forEach(chunk => {
|
|
52
|
+
chunk.records.forEach(item => {
|
|
53
|
+
const totalLines = item.NumLinesCovered + item.NumLinesUncovered;
|
|
54
|
+
const percentage = utils_1.calculatePercentage(item.NumLinesCovered, totalLines);
|
|
55
|
+
const value = Object.assign({ apexClassOrTriggerName: item.ApexClassOrTrigger.Name, apexClassOrTriggerId: item.ApexClassOrTrigger.Id, apexTestClassId: item.ApexTestClassId, apexTestMethodName: item.TestMethodName, numLinesCovered: item.NumLinesCovered, numLinesUncovered: item.NumLinesUncovered, percentage }, (item.Coverage ? { coverage: item.Coverage } : {}));
|
|
56
|
+
const key = `${item.ApexTestClassId}-${item.TestMethodName}`;
|
|
57
|
+
if (perClassCoverageMap.get(key)) {
|
|
58
|
+
perClassCoverageMap.get(key).push(value);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
perClassCoverageMap.set(`${item.ApexTestClassId}-${item.TestMethodName}`, [value]);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
61
64
|
});
|
|
62
65
|
return perClassCoverageMap;
|
|
63
66
|
});
|
|
64
67
|
}
|
|
65
68
|
queryPerClassCodeCov(apexTestClassSet) {
|
|
66
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
let str = '';
|
|
68
|
-
apexTestClassSet.forEach(elem => {
|
|
69
|
-
str += `'${elem}',`;
|
|
70
|
-
});
|
|
71
|
-
str = str.slice(0, -1);
|
|
72
70
|
const perClassCodeCovQuery = 'SELECT ApexTestClassId, ApexClassOrTrigger.Id, ApexClassOrTrigger.Name, TestMethodName, NumLinesCovered, NumLinesUncovered, Coverage FROM ApexCodeCoverage WHERE ApexTestClassId IN (%s)';
|
|
73
|
-
|
|
74
|
-
return perClassCodeCovResuls;
|
|
71
|
+
return this.fetchResults(apexTestClassSet, perClassCodeCovQuery);
|
|
75
72
|
});
|
|
76
73
|
}
|
|
77
74
|
/**
|
|
@@ -84,29 +81,33 @@ class CodeCoverage {
|
|
|
84
81
|
if (apexClassIdSet.size === 0) {
|
|
85
82
|
return { codeCoverageResults: [], totalLines: 0, coveredLines: 0 };
|
|
86
83
|
}
|
|
87
|
-
const
|
|
84
|
+
const codeCoverageAggregates = yield this.queryAggregateCodeCov(apexClassIdSet);
|
|
88
85
|
let totalLinesCovered = 0;
|
|
89
86
|
let totalLinesUncovered = 0;
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
: '
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
87
|
+
const totalCodeCoverageResults = [];
|
|
88
|
+
codeCoverageAggregates.forEach(chunk => {
|
|
89
|
+
const codeCoverageResults = chunk.records.map(item => {
|
|
90
|
+
totalLinesCovered += item.NumLinesCovered;
|
|
91
|
+
totalLinesUncovered += item.NumLinesUncovered;
|
|
92
|
+
const totalLines = item.NumLinesCovered + item.NumLinesUncovered;
|
|
93
|
+
const percentage = utils_1.calculatePercentage(item.NumLinesCovered, totalLines);
|
|
94
|
+
return {
|
|
95
|
+
apexId: item.ApexClassOrTrigger.Id,
|
|
96
|
+
name: item.ApexClassOrTrigger.Name,
|
|
97
|
+
type: item.ApexClassOrTrigger.Id.startsWith('01p')
|
|
98
|
+
? 'ApexClass'
|
|
99
|
+
: 'ApexTrigger',
|
|
100
|
+
numLinesCovered: item.NumLinesCovered,
|
|
101
|
+
numLinesUncovered: item.NumLinesUncovered,
|
|
102
|
+
percentage,
|
|
103
|
+
coveredLines: item.Coverage.coveredLines,
|
|
104
|
+
uncoveredLines: item.Coverage.uncoveredLines
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
totalCodeCoverageResults.push(...codeCoverageResults);
|
|
107
108
|
});
|
|
108
109
|
return {
|
|
109
|
-
codeCoverageResults,
|
|
110
|
+
codeCoverageResults: totalCodeCoverageResults,
|
|
110
111
|
totalLines: totalLinesCovered + totalLinesUncovered,
|
|
111
112
|
coveredLines: totalLinesCovered
|
|
112
113
|
};
|
|
@@ -114,16 +115,31 @@ class CodeCoverage {
|
|
|
114
115
|
}
|
|
115
116
|
queryAggregateCodeCov(apexClassIdSet) {
|
|
116
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
let str = '';
|
|
118
|
-
apexClassIdSet.forEach(elem => {
|
|
119
|
-
str += `'${elem}',`;
|
|
120
|
-
});
|
|
121
|
-
str = str.slice(0, -1);
|
|
122
118
|
const codeCoverageQuery = 'SELECT ApexClassOrTrigger.Id, ApexClassOrTrigger.Name, NumLinesCovered, NumLinesUncovered, Coverage FROM ApexCodeCoverageAggregate WHERE ApexClassorTriggerId IN (%s)';
|
|
123
|
-
|
|
124
|
-
return codeCoverageResuls;
|
|
119
|
+
return this.fetchResults(apexClassIdSet, codeCoverageQuery);
|
|
125
120
|
});
|
|
126
121
|
}
|
|
122
|
+
fetchResults(idSet, selectQuery) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const queries = this.createQueries(selectQuery, idSet);
|
|
125
|
+
const queryPromises = queries.map(query => {
|
|
126
|
+
return this.connection.tooling.autoFetchQuery(query);
|
|
127
|
+
});
|
|
128
|
+
return yield Promise.all(queryPromises);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
createQueries(selectQuery, idSet) {
|
|
132
|
+
const idArray = [...idSet];
|
|
133
|
+
const queries = [];
|
|
134
|
+
for (let i = 0; i < idArray.length; i += constants_1.QUERY_RECORD_LIMIT) {
|
|
135
|
+
const recordSet = idArray
|
|
136
|
+
.slice(i, i + constants_1.QUERY_RECORD_LIMIT)
|
|
137
|
+
.map(id => `'${id}'`);
|
|
138
|
+
const query = util.format(selectQuery, recordSet.join(','));
|
|
139
|
+
queries.push(query);
|
|
140
|
+
}
|
|
141
|
+
return queries;
|
|
142
|
+
}
|
|
127
143
|
}
|
|
128
144
|
exports.CodeCoverage = CodeCoverage;
|
|
129
145
|
//# sourceMappingURL=codeCoverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeCoverage.js","sourceRoot":"","sources":["../../../src/tests/codeCoverage.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;AAUH,6BAA6B;AAC7B,mCAA8C;
|
|
1
|
+
{"version":3,"file":"codeCoverage.js","sourceRoot":"","sources":["../../../src/tests/codeCoverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
// Tooling API query char limit is 100,000 after v48; REST API limit for uri + headers is 16,348 bytes
|
|
10
|
-
//
|
|
11
|
-
|
|
9
|
+
// Tooling API query char limit is 100,000 after v48; REST API limit for uri + headers is 16,348 bytes.
|
|
10
|
+
// Local testing shows query char limit to be closer to ~12,300.
|
|
11
|
+
// Through experimentation, the record limit is around 550 before the REST API limit is hit.
|
|
12
|
+
// To err on the side of caution, the limit is reduced down to 500.
|
|
13
|
+
exports.QUERY_RECORD_LIMIT = 500;
|
|
12
14
|
exports.CLASS_ID_PREFIX = '01p';
|
|
13
15
|
exports.TEST_RUN_ID_PREFIX = '707';
|
|
14
16
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tests/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tests/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,uGAAuG;AACvG,gEAAgE;AAChE,4FAA4F;AAC5F,oEAAoE;AACvD,QAAA,kBAAkB,GAAG,GAAG,CAAC;AACzB,QAAA,eAAe,GAAG,KAAK,CAAC;AACxB,QAAA,kBAAkB,GAAG,KAAK,CAAC"}
|
package/lib/src/tests/utils.d.ts
CHANGED
|
@@ -4,5 +4,4 @@ export declare function isValidTestRunID(testRunId: string): boolean;
|
|
|
4
4
|
export declare function isValidApexClassID(apexClassId: string): boolean;
|
|
5
5
|
export declare function calculatePercentage(dividend: number, divisor: number): string;
|
|
6
6
|
export declare function stringify(jsonObj: object): string;
|
|
7
|
-
export declare function addIdToQuery(formattedIds: string, id: string): string;
|
|
8
7
|
export declare function queryNamespaces(connection: Connection): Promise<NamespaceInfo[]>;
|
package/lib/src/tests/utils.js
CHANGED
|
@@ -39,10 +39,6 @@ function stringify(jsonObj) {
|
|
|
39
39
|
return JSON.stringify(jsonObj, null, 2);
|
|
40
40
|
}
|
|
41
41
|
exports.stringify = stringify;
|
|
42
|
-
function addIdToQuery(formattedIds, id) {
|
|
43
|
-
return formattedIds.length === 0 ? id : `${formattedIds}','${id}`;
|
|
44
|
-
}
|
|
45
|
-
exports.addIdToQuery = addIdToQuery;
|
|
46
42
|
function queryNamespaces(connection) {
|
|
47
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
44
|
const installedNsQuery = 'SELECT NamespacePrefix FROM PackageLicense';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tests/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;AAGH,2CAAkE;AAGlE,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,CACL,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;QACpD,SAAS,CAAC,UAAU,CAAC,8BAAkB,CAAC,CACzC,CAAC;AACJ,CAAC;AALD,4CAKC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,OAAO,CACL,CAAC,WAAW,CAAC,MAAM,KAAK,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,CAAC;QACxD,WAAW,CAAC,UAAU,CAAC,2BAAe,CAAC,CACxC,CAAC;AACJ,CAAC;AALD,gDAKC;AAED,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IACnE,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,QAAQ,GAAG,CAAC,EAAE;QAChB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,UAAU,GAAG,GAAG,OAAO,GAAG,CAAC;KAC5B;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAPD,kDAOC;AAED,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,8BAEC;AAED,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tests/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;AAGH,2CAAkE;AAGlE,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,CACL,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;QACpD,SAAS,CAAC,UAAU,CAAC,8BAAkB,CAAC,CACzC,CAAC;AACJ,CAAC;AALD,4CAKC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,OAAO,CACL,CAAC,WAAW,CAAC,MAAM,KAAK,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,CAAC;QACxD,WAAW,CAAC,UAAU,CAAC,2BAAe,CAAC,CACxC,CAAC;AACJ,CAAC;AALD,gDAKC;AAED,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IACnE,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,QAAQ,GAAG,CAAC,EAAE;QAChB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,UAAU,GAAG,GAAG,OAAO,GAAG,CAAC;KAC5B;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAPD,kDAOC;AAED,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,8BAEC;AAED,SAAsB,eAAe,CACnC,UAAsB;;QAEtB,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;QACtE,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAE3D,CAAC;QACF,MAAM,UAAU,GAAG,0CAA0C,CAAC;QAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAE/C,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;QAC5E,MAAM,mBAAmB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAChE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,mBAAmB,CAAC,CAAC;IACpD,CAAC;CAAA;AArBD,0CAqBC"}
|
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const types_1 = require("./types");
|
|
12
13
|
function refreshAuth(connection) {
|
|
13
14
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14
15
|
const requestInfo = { url: connection.baseUrl(), method: 'GET' };
|
|
@@ -16,4 +17,10 @@ function refreshAuth(connection) {
|
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
exports.refreshAuth = refreshAuth;
|
|
20
|
+
function escapeXml(data) {
|
|
21
|
+
return data.replace(/[<>&'"]/g, char => {
|
|
22
|
+
return types_1.xmlCharMap[char];
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.escapeXml = escapeXml;
|
|
19
26
|
//# sourceMappingURL=authUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authUtil.js","sourceRoot":"","sources":["../../../src/utils/authUtil.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"authUtil.js","sourceRoot":"","sources":["../../../src/utils/authUtil.ts"],"names":[],"mappings":";;;;;;;;;;;AAQA,mCAAqC;AAErC,SAAsB,WAAW,CAC/B,UAAsB;;QAEtB,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACjE,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CAAA;AALD,kCAKC;AAED,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;QACrC,OAAO,kBAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,8BAIC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MILLISECONDS_PER_MINUTE = 60000;
|
|
9
10
|
function getCurrentTime() {
|
|
10
11
|
return new Date().getTime();
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateUtil.js","sourceRoot":"","sources":["../../../src/utils/dateUtil.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"dateUtil.js","sourceRoot":"","sources":["../../../src/utils/dateUtil.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEU,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAE7C,SAAgB,cAAc;IAC5B,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC9B,CAAC;AAFD,wCAEC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,SAA0B;IACxD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAC/D,CAAC;AAHD,0CAGC;AAED,SAAgB,UAAU,CAAC,SAA0B;IACnD,OAAO,CAAE,SAAoB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
export declare class TraceFlags {
|
|
3
|
+
private connection;
|
|
4
|
+
constructor(connection: Connection);
|
|
5
|
+
ensureTraceFlags(debugLevelName?: string): Promise<boolean>;
|
|
6
|
+
private getDebugLevelId;
|
|
7
|
+
private findDebugLevel;
|
|
8
|
+
private updateDebugLevel;
|
|
9
|
+
private createDebugLevel;
|
|
10
|
+
private updateTraceFlag;
|
|
11
|
+
private createTraceFlag;
|
|
12
|
+
private isValidDateLength;
|
|
13
|
+
private calculateExpirationDate;
|
|
14
|
+
private getUserIdOrThrow;
|
|
15
|
+
private getTraceFlagForUser;
|
|
16
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const i18n_1 = require("../i18n");
|
|
13
|
+
const logs_1 = require("../logs");
|
|
14
|
+
const dateUtil_1 = require("./dateUtil");
|
|
15
|
+
const authUtil_1 = require("./authUtil");
|
|
16
|
+
class TraceFlags {
|
|
17
|
+
constructor(connection) {
|
|
18
|
+
this.connection = connection;
|
|
19
|
+
}
|
|
20
|
+
ensureTraceFlags(debugLevelName) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const username = this.connection.getUsername();
|
|
23
|
+
if (!username) {
|
|
24
|
+
throw new Error(i18n_1.nls.localize('error_no_default_username'));
|
|
25
|
+
}
|
|
26
|
+
const userId = (yield this.getUserIdOrThrow(username)).Id;
|
|
27
|
+
const traceFlag = yield this.getTraceFlagForUser(userId);
|
|
28
|
+
if (traceFlag) {
|
|
29
|
+
// update existing debug level and trace flag
|
|
30
|
+
if (!(yield this.updateDebugLevel(traceFlag.DebugLevelId))) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const expirationDate = this.calculateExpirationDate(traceFlag.ExpirationDate
|
|
34
|
+
? new Date(traceFlag.ExpirationDate)
|
|
35
|
+
: new Date());
|
|
36
|
+
return yield this.updateTraceFlag(traceFlag.Id, expirationDate);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const debugLevelId = yield this.getDebugLevelId(debugLevelName);
|
|
40
|
+
// create a trace flag
|
|
41
|
+
const expirationDate = this.calculateExpirationDate(new Date());
|
|
42
|
+
if (!(yield this.createTraceFlag(userId, debugLevelId, expirationDate))) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
getDebugLevelId(debugLevelName) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
let debugLevelId;
|
|
52
|
+
if (debugLevelName) {
|
|
53
|
+
debugLevelId = yield this.findDebugLevel(debugLevelName);
|
|
54
|
+
if (!debugLevelId) {
|
|
55
|
+
throw new Error(i18n_1.nls.localize('trace_flags_failed_to_find_debug_level', debugLevelName));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
debugLevelId = yield this.createDebugLevel(logs_1.DEFAULT_DEBUG_LEVEL_NAME);
|
|
60
|
+
if (!debugLevelId) {
|
|
61
|
+
throw new Error(i18n_1.nls.localize('trace_flags_failed_to_create_debug_level'));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return debugLevelId;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
findDebugLevel(debugLevelName) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const escapedDebugLevel = authUtil_1.escapeXml(debugLevelName);
|
|
70
|
+
const query = `SELECT Id FROM DebugLevel WHERE DeveloperName = '${escapedDebugLevel}'`;
|
|
71
|
+
const result = (yield this.connection.tooling.query(query));
|
|
72
|
+
return result.totalSize && result.totalSize > 0 && result.records
|
|
73
|
+
? result.records[0].Id
|
|
74
|
+
: undefined;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
updateDebugLevel(id) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const debugLevel = {
|
|
80
|
+
Id: id,
|
|
81
|
+
ApexCode: 'FINEST',
|
|
82
|
+
Visualforce: 'FINER'
|
|
83
|
+
};
|
|
84
|
+
const result = (yield this.connection.tooling.update('DebugLevel', debugLevel));
|
|
85
|
+
return result.success;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
createDebugLevel(debugLevelName) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const developerName = debugLevelName;
|
|
91
|
+
const debugLevel = {
|
|
92
|
+
developerName,
|
|
93
|
+
MasterLabel: developerName,
|
|
94
|
+
ApexCode: 'FINEST',
|
|
95
|
+
Visualforce: 'FINER'
|
|
96
|
+
};
|
|
97
|
+
const result = (yield this.connection.tooling.create('DebugLevel', debugLevel));
|
|
98
|
+
return result.success && result.id ? result.id : undefined;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
updateTraceFlag(id, expirationDate) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
const traceFlag = {
|
|
104
|
+
Id: id,
|
|
105
|
+
StartDate: Date.now(),
|
|
106
|
+
ExpirationDate: expirationDate.toUTCString()
|
|
107
|
+
};
|
|
108
|
+
const result = (yield this.connection.tooling.update('TraceFlag', traceFlag));
|
|
109
|
+
return result.success;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
createTraceFlag(userId, debugLevelId, expirationDate) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
const traceFlag = {
|
|
115
|
+
tracedentityid: userId,
|
|
116
|
+
logtype: logs_1.LOG_TYPE,
|
|
117
|
+
debuglevelid: debugLevelId,
|
|
118
|
+
StartDate: Date.now(),
|
|
119
|
+
ExpirationDate: expirationDate.toUTCString()
|
|
120
|
+
};
|
|
121
|
+
const result = (yield this.connection.tooling.create('TraceFlag', traceFlag));
|
|
122
|
+
return result.success && result.id ? result.id : undefined;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
isValidDateLength(expirationDate) {
|
|
126
|
+
const currDate = Date.now();
|
|
127
|
+
return (expirationDate.getTime() - currDate >
|
|
128
|
+
logs_1.LOG_TIMER_LENGTH_MINUTES * dateUtil_1.MILLISECONDS_PER_MINUTE);
|
|
129
|
+
}
|
|
130
|
+
calculateExpirationDate(expirationDate) {
|
|
131
|
+
if (!this.isValidDateLength(expirationDate)) {
|
|
132
|
+
expirationDate = new Date(Date.now() + logs_1.LOG_TIMER_LENGTH_MINUTES * dateUtil_1.MILLISECONDS_PER_MINUTE);
|
|
133
|
+
}
|
|
134
|
+
return expirationDate;
|
|
135
|
+
}
|
|
136
|
+
getUserIdOrThrow(username) {
|
|
137
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
const escapedUsername = authUtil_1.escapeXml(username);
|
|
139
|
+
const userQuery = `SELECT Id FROM User WHERE username='${escapedUsername}'`;
|
|
140
|
+
const userResult = yield this.connection.query(userQuery);
|
|
141
|
+
if (userResult.totalSize === 0) {
|
|
142
|
+
throw new Error(i18n_1.nls.localize('trace_flags_unknown_user'));
|
|
143
|
+
}
|
|
144
|
+
return userResult.records[0];
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
getTraceFlagForUser(userId) {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
const traceFlagQuery = `
|
|
150
|
+
SELECT Id, logtype, startdate, expirationdate, debuglevelid, debuglevel.apexcode, debuglevel.visualforce
|
|
151
|
+
FROM TraceFlag
|
|
152
|
+
WHERE logtype='${logs_1.LOG_TYPE}' AND TracedEntityId='${userId}'
|
|
153
|
+
ORDER BY CreatedDate DESC
|
|
154
|
+
LIMIT 1
|
|
155
|
+
`;
|
|
156
|
+
const traceFlagResult = yield this.connection.tooling.query(traceFlagQuery);
|
|
157
|
+
if (traceFlagResult.totalSize > 0) {
|
|
158
|
+
return traceFlagResult.records[0];
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.TraceFlags = TraceFlags;
|
|
165
|
+
//# sourceMappingURL=traceFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceFlags.js","sourceRoot":"","sources":["../../../src/utils/traceFlags.ts"],"names":[],"mappings":"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"}
|
package/lib/src/utils/types.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ declare enum logLevel {
|
|
|
6
6
|
error = "error",
|
|
7
7
|
fatal = "fatal"
|
|
8
8
|
}
|
|
9
|
+
export declare const xmlCharMap: {
|
|
10
|
+
[index: string]: string;
|
|
11
|
+
};
|
|
9
12
|
export declare type CommonOptions = {
|
|
10
13
|
json?: boolean;
|
|
11
14
|
loglevel?: logLevel;
|
|
@@ -24,4 +27,28 @@ export declare type QueryResult<T = QueryRecord> = {
|
|
|
24
27
|
export declare type QueryRecord = {
|
|
25
28
|
Id: string;
|
|
26
29
|
};
|
|
30
|
+
export declare type QueryRecords = {
|
|
31
|
+
totalSize: number;
|
|
32
|
+
records: IdRecord[];
|
|
33
|
+
};
|
|
34
|
+
export declare type DebugLevelRecord = {
|
|
35
|
+
ApexCode: string;
|
|
36
|
+
VisualForce: string;
|
|
37
|
+
};
|
|
38
|
+
export declare type TraceFlagRecord = {
|
|
39
|
+
Id: string;
|
|
40
|
+
LogType: string;
|
|
41
|
+
DebugLevelId: string;
|
|
42
|
+
StartDate: Date | undefined;
|
|
43
|
+
ExpirationDate: Date | undefined;
|
|
44
|
+
DebugLevel: DebugLevelRecord;
|
|
45
|
+
};
|
|
46
|
+
export declare type DataRecordResult = {
|
|
47
|
+
id?: string;
|
|
48
|
+
errors?: string[];
|
|
49
|
+
success: boolean;
|
|
50
|
+
};
|
|
51
|
+
export declare type IdRecord = {
|
|
52
|
+
Id: string;
|
|
53
|
+
};
|
|
27
54
|
export {};
|
package/lib/src/utils/types.js
CHANGED
|
@@ -15,4 +15,11 @@ var logLevel;
|
|
|
15
15
|
logLevel["error"] = "error";
|
|
16
16
|
logLevel["fatal"] = "fatal";
|
|
17
17
|
})(logLevel || (logLevel = {}));
|
|
18
|
+
exports.xmlCharMap = {
|
|
19
|
+
'<': '<',
|
|
20
|
+
'>': '>',
|
|
21
|
+
'&': '&',
|
|
22
|
+
'"': '"',
|
|
23
|
+
"'": '''
|
|
24
|
+
};
|
|
18
25
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,IAAK,QAOJ;AAPD,WAAK,QAAQ;IACX,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAPI,QAAQ,KAAR,QAAQ,QAOZ"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,IAAK,QAOJ;AAPD,WAAK,QAAQ;IACX,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAPI,QAAQ,KAAR,QAAQ,QAOZ;AAEY,QAAA,UAAU,GAAgC;IACrD,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/apex-node",
|
|
3
3
|
"description": "Salesforce js library for Apex",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"bugs": "https://github.com/forcedotcom/salesforcedx-apex/issues",
|
|
7
7
|
"main": "lib/src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@salesforce/core": "2.
|
|
9
|
+
"@salesforce/core": "2.28.0",
|
|
10
10
|
"faye": "1.1.3"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|