Skip to content

Commit 4c7e180

Browse files
committed
Merge branch 'master' into feature/better-angular-errors
2 parents 7d4dfec + f28956d commit 4c7e180

39 files changed

+1053
-700
lines changed

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 1.3.{build}
1+
version: 1.4.{build}
22

33
install:
44
- ps: Install-Product node 5

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "exceptionless",
3-
"version": "1.3.2",
3+
"version": "1.4.0",
44
"description": "JavaScript client for Exceptionless",
55
"license": "Apache-2.0",
66
"main": "dist/exceptionless.js",

dist/exceptionless.d.ts

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,18 @@ export interface IStorageProvider {
4141
settings: IStorage;
4242
}
4343
export interface ISubmissionAdapter {
44-
sendRequest(request: SubmissionRequest, callback: SubmissionCallback, isAppExiting?: boolean): void;
44+
sendRequest(request: SubmissionRequest, callback?: SubmissionCallback, isAppExiting?: boolean): void;
4545
}
4646
export interface ISubmissionClient {
4747
postEvents(events: IEvent[], config: Configuration, callback: (response: SubmissionResponse) => void, isAppExiting?: boolean): void;
4848
postUserDescription(referenceId: string, description: IUserDescription, config: Configuration, callback: (response: SubmissionResponse) => void): void;
4949
getSettings(config: Configuration, callback: (response: SettingsResponse) => void): void;
50+
sendHeartbeat(sessionIdOrUserId: string, closeSession: boolean, config: Configuration): void;
5051
}
5152
export interface IConfigurationSettings {
5253
apiKey?: string;
5354
serverUrl?: string;
55+
heartbeatServerUrl?: string;
5456
environmentInfoCollector?: IEnvironmentInfoCollector;
5557
errorParser?: IErrorParser;
5658
lastReferenceIdManager?: ILastReferenceIdManager;
@@ -114,8 +116,9 @@ export declare class EventPluginManager {
114116
export declare class HeartbeatPlugin implements IEventPlugin {
115117
priority: number;
116118
name: string;
119+
private _heartbeatInterval;
117120
private _heartbeatIntervalId;
118-
private _lastUser;
121+
constructor(heartbeatInterval?: number);
119122
run(context: EventPluginContext, next?: () => void): void;
120123
}
121124
export declare class ReferenceIdPlugin implements IEventPlugin {
@@ -150,7 +153,8 @@ export declare class DefaultSubmissionClient implements ISubmissionClient {
150153
postEvents(events: IEvent[], config: Configuration, callback: (response: SubmissionResponse) => void, isAppExiting?: boolean): void;
151154
postUserDescription(referenceId: string, description: IUserDescription, config: Configuration, callback: (response: SubmissionResponse) => void): void;
152155
getSettings(config: Configuration, callback: (response: SettingsResponse) => void): void;
153-
private createRequest(config, method, path, data?);
156+
sendHeartbeat(sessionIdOrUserId: string, closeSession: boolean, config: Configuration): void;
157+
private createRequest(config, method, url, data?);
154158
private createSubmissionCallback(config, callback);
155159
}
156160
export declare class Utils {
@@ -162,8 +166,10 @@ export declare class Utils {
162166
static parseVersion(source: string): string;
163167
static parseQueryString(query: string, exclusions?: string[]): Object;
164168
static randomNumber(): number;
165-
static isMatch(input: string, patterns: string[]): boolean;
169+
static isMatch(input: string, patterns: string[], ignoreCase?: boolean): boolean;
166170
static isEmpty(input: Object): boolean;
171+
static startsWith(input: string, prefix: string): boolean;
172+
static endsWith(input: string, suffix: string): boolean;
167173
static stringify(data: any, exclusions?: string[], maxDepth?: number): string;
168174
}
169175
export declare class Configuration implements IConfigurationSettings {
@@ -190,6 +196,8 @@ export declare class Configuration implements IConfigurationSettings {
190196
isValid: boolean;
191197
private _serverUrl;
192198
serverUrl: string;
199+
private _heartbeatServerUrl;
200+
heartbeatServerUrl: string;
193201
private _dataExclusions;
194202
private _userAgentBotPatterns;
195203
dataExclusions: string[];
@@ -206,7 +214,7 @@ export declare class Configuration implements IConfigurationSettings {
206214
setUserIdentity(identity: string): void;
207215
setUserIdentity(identity: string, name: string): void;
208216
userAgent: string;
209-
useSessions(sendHeartbeats?: boolean): void;
217+
useSessions(sendHeartbeats?: boolean, heartbeatInterval?: number): void;
210218
useReferenceIds(): void;
211219
useLocalStorage(): void;
212220
useDebugLogger(): void;
@@ -286,10 +294,8 @@ export declare class ExceptionlessClient {
286294
submitNotFound(resource: string, callback?: (context: EventPluginContext) => void): void;
287295
createSessionStart(): EventBuilder;
288296
submitSessionStart(callback?: (context: EventPluginContext) => void): void;
289-
createSessionEnd(): EventBuilder;
290-
submitSessionEnd(callback?: (context: EventPluginContext) => void): void;
291-
createSessionHeartbeat(): EventBuilder;
292-
submitSessionHeartbeat(callback?: (context: EventPluginContext) => void): void;
297+
submitSessionEnd(sessionIdOrUserId: string): void;
298+
submitSessionHeartbeat(sessionIdOrUserId: string): void;
293299
createEvent(pluginContextData?: ContextData): EventBuilder;
294300
submitEvent(event: IEvent, pluginContextData?: ContextData, callback?: (context: EventPluginContext) => void): void;
295301
updateUserEmailAndDescription(referenceId: string, email: string, description: string, callback?: (response: SubmissionResponse) => void): void;
@@ -405,10 +411,15 @@ export declare class SubmissionMethodPlugin implements IEventPlugin {
405411
export declare class DuplicateCheckerPlugin implements IEventPlugin {
406412
priority: number;
407413
name: string;
408-
private recentlyProcessedErrors;
414+
private _processedHashcodes;
415+
private _getCurrentTime;
416+
constructor(getCurrentTime?: () => number);
417+
run(context: EventPluginContext, next?: () => void): void;
418+
}
419+
export declare class EventExclusionPlugin implements IEventPlugin {
420+
priority: number;
421+
name: string;
409422
run(context: EventPluginContext, next?: () => void): void;
410-
private getNow();
411-
private checkDuplicate(error, log);
412423
}
413424
export interface IError extends IInnerError {
414425
modules?: IModule[];
@@ -427,11 +438,10 @@ export interface SubmissionCallback {
427438
(status: number, message: string, data?: string, headers?: Object): void;
428439
}
429440
export interface SubmissionRequest {
430-
serverUrl: string;
431441
apiKey: string;
432442
userAgent: string;
433443
method: string;
434-
path: string;
444+
url: string;
435445
data: string;
436446
}
437447
export declare class SettingsResponse {
@@ -496,7 +506,7 @@ export declare class DefaultRequestInfoCollector implements IRequestInfoCollecto
496506
getRequestInfo(context: EventPluginContext): IRequestInfo;
497507
}
498508
export declare class DefaultSubmissionAdapter implements ISubmissionAdapter {
499-
sendRequest(request: SubmissionRequest, callback: SubmissionCallback, isAppExiting?: boolean): void;
509+
sendRequest(request: SubmissionRequest, callback?: SubmissionCallback, isAppExiting?: boolean): void;
500510
}
501511
export declare class BrowserStorageProvider implements IStorageProvider {
502512
queue: IStorage;

0 commit comments

Comments
 (0)