@launchdarkly/js-sdk-common 1.3.0-alpha.2 → 2.0.0-alpha.1
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/dist/api/options/LDClientContext.d.ts +8 -5
- package/dist/api/options/LDClientContext.d.ts.map +1 -1
- package/dist/api/platform/EventSource.d.ts +9 -3
- package/dist/api/platform/EventSource.d.ts.map +1 -1
- package/dist/api/subsystem/LDStreamProcessor.d.ts +13 -0
- package/dist/api/subsystem/LDStreamProcessor.d.ts.map +1 -0
- package/dist/api/subsystem/LDStreamProcessor.js +3 -0
- package/dist/api/subsystem/LDStreamProcessor.js.map +1 -0
- package/dist/api/subsystem/index.d.ts +2 -1
- package/dist/api/subsystem/index.d.ts.map +1 -1
- package/dist/api/subsystem/index.js.map +1 -1
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +51 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/diagnostics/DiagnosticsManager.d.ts +35 -0
- package/dist/internal/diagnostics/DiagnosticsManager.d.ts.map +1 -0
- package/dist/internal/diagnostics/DiagnosticsManager.js +70 -0
- package/dist/internal/diagnostics/DiagnosticsManager.js.map +1 -0
- package/dist/internal/diagnostics/index.d.ts +3 -0
- package/dist/internal/diagnostics/index.d.ts.map +1 -0
- package/dist/internal/diagnostics/index.js +6 -0
- package/dist/internal/diagnostics/index.js.map +1 -0
- package/dist/internal/diagnostics/types.d.ts +65 -0
- package/dist/internal/diagnostics/types.d.ts.map +1 -0
- package/dist/internal/{events/LDEventOverrides.js → diagnostics/types.js} +1 -1
- package/dist/internal/diagnostics/types.js.map +1 -0
- package/dist/internal/events/EventProcessor.d.ts +5 -15
- package/dist/internal/events/EventProcessor.d.ts.map +1 -1
- package/dist/internal/events/EventProcessor.js +19 -15
- package/dist/internal/events/EventProcessor.js.map +1 -1
- package/dist/internal/events/EventSender.d.ts +13 -0
- package/dist/internal/events/EventSender.d.ts.map +1 -0
- package/dist/internal/events/EventSender.js +67 -0
- package/dist/internal/events/EventSender.js.map +1 -0
- package/dist/internal/events/InputCustomEvent.d.ts +1 -2
- package/dist/internal/events/InputCustomEvent.d.ts.map +1 -1
- package/dist/internal/events/InputCustomEvent.js +4 -2
- package/dist/internal/events/InputCustomEvent.js.map +1 -1
- package/dist/internal/events/InputEvalEvent.d.ts +1 -2
- package/dist/internal/events/InputEvalEvent.d.ts.map +1 -1
- package/dist/internal/events/InputEvalEvent.js +1 -2
- package/dist/internal/events/InputEvalEvent.js.map +1 -1
- package/dist/internal/events/NullEventProcessor.d.ts +7 -0
- package/dist/internal/events/NullEventProcessor.d.ts.map +1 -0
- package/dist/internal/events/NullEventProcessor.js +11 -0
- package/dist/internal/events/NullEventProcessor.js.map +1 -0
- package/dist/internal/events/index.d.ts +2 -2
- package/dist/internal/events/index.d.ts.map +1 -1
- package/dist/internal/events/index.js +3 -1
- package/dist/internal/events/index.js.map +1 -1
- package/dist/internal/index.d.ts +2 -0
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +2 -0
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/stream/StreamingProcessor.d.ts +25 -0
- package/dist/internal/stream/StreamingProcessor.d.ts.map +1 -0
- package/dist/internal/stream/StreamingProcessor.js +104 -0
- package/dist/internal/stream/StreamingProcessor.js.map +1 -0
- package/dist/internal/stream/index.d.ts +4 -0
- package/dist/internal/stream/index.d.ts.map +1 -0
- package/dist/internal/stream/index.js +6 -0
- package/dist/internal/stream/index.js.map +1 -0
- package/dist/internal/stream/types.d.ts +3 -0
- package/dist/internal/stream/types.d.ts.map +1 -0
- package/dist/internal/stream/types.js +3 -0
- package/dist/internal/stream/types.js.map +1 -0
- package/dist/logging/SafeLogger.d.ts +1 -1
- package/dist/logging/SafeLogger.d.ts.map +1 -1
- package/dist/logging/createSafeLogger.d.ts +6 -0
- package/dist/logging/createSafeLogger.d.ts.map +1 -0
- package/dist/logging/createSafeLogger.js +16 -0
- package/dist/logging/createSafeLogger.js.map +1 -0
- package/dist/logging/index.d.ts +2 -1
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +3 -1
- package/dist/logging/index.js.map +1 -1
- package/dist/options/ClientContext.d.ts +9 -2
- package/dist/options/ClientContext.d.ts.map +1 -1
- package/dist/options/ClientContext.js +2 -1
- package/dist/options/ClientContext.js.map +1 -1
- package/dist/options/ServiceEndpoints.d.ts +2 -1
- package/dist/options/ServiceEndpoints.d.ts.map +1 -1
- package/dist/options/ServiceEndpoints.js +2 -1
- package/dist/options/ServiceEndpoints.js.map +1 -1
- package/dist/utils/VoidFunction.d.ts +2 -0
- package/dist/utils/VoidFunction.d.ts.map +1 -0
- package/dist/utils/VoidFunction.js +3 -0
- package/dist/utils/VoidFunction.js.map +1 -0
- package/dist/utils/date.d.ts +2 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +9 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/http.d.ts +14 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +33 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/index.d.ts +5 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +8 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/sleep.d.ts +3 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +7 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/validators.d.ts +6 -0
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +14 -1
- package/dist/validators.js.map +1 -1
- package/package.json +3 -1
- package/dist/internal/events/LDEventOverrides.d.ts +0 -28
- package/dist/internal/events/LDEventOverrides.d.ts.map +0 -1
- package/dist/internal/events/LDEventOverrides.js.map +0 -1
|
@@ -9,11 +9,6 @@ export interface LDServiceEndpoints {
|
|
|
9
9
|
* The most basic properties of the SDK client that are available to all SDK component factories.
|
|
10
10
|
*/
|
|
11
11
|
export interface LDBasicConfiguration {
|
|
12
|
-
logger?: LDLogger;
|
|
13
|
-
/**
|
|
14
|
-
* True if the SDK was configured to be completely offline.
|
|
15
|
-
*/
|
|
16
|
-
offline: boolean;
|
|
17
12
|
/**
|
|
18
13
|
* The configured SDK key.
|
|
19
14
|
*/
|
|
@@ -22,6 +17,14 @@ export interface LDBasicConfiguration {
|
|
|
22
17
|
* Defines the base service URIs used by SDK components.
|
|
23
18
|
*/
|
|
24
19
|
serviceEndpoints: LDServiceEndpoints;
|
|
20
|
+
/**
|
|
21
|
+
* True if the SDK was configured to be completely offline.
|
|
22
|
+
*/
|
|
23
|
+
offline?: boolean;
|
|
24
|
+
logger?: LDLogger;
|
|
25
|
+
tags?: {
|
|
26
|
+
value?: string;
|
|
27
|
+
};
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* Factory methods receive this class as a parameter.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDClientContext.d.ts","sourceRoot":"","sources":["../../../src/api/options/LDClientContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,kBAAkB;CAElC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"LDClientContext.d.ts","sourceRoot":"","sources":["../../../src/api/options/LDClientContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,kBAAkB;CAElC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,gBAAgB,EAAE,kBAAkB,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,kBAAkB,EAAE,oBAAoB,CAAC;IAEzC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACpB"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
export type EventName = 'delete' | 'patch' | 'ping' | 'put';
|
|
2
|
+
export type EventListener = (event?: {
|
|
3
|
+
data?: any;
|
|
4
|
+
}) => void;
|
|
5
|
+
export type ProcessStreamResponse = {
|
|
6
|
+
deserializeData: (data: string) => any;
|
|
7
|
+
processJson: (json: any) => void;
|
|
8
|
+
};
|
|
1
9
|
export interface EventSource {
|
|
2
10
|
onclose: (() => void) | undefined;
|
|
3
11
|
onerror: (() => void) | undefined;
|
|
@@ -5,9 +13,7 @@ export interface EventSource {
|
|
|
5
13
|
onretrying: ((e: {
|
|
6
14
|
delayMillis: number;
|
|
7
15
|
}) => void) | undefined;
|
|
8
|
-
addEventListener(type:
|
|
9
|
-
data?: any;
|
|
10
|
-
}) => void): void;
|
|
16
|
+
addEventListener(type: EventName, listener: EventListener): void;
|
|
11
17
|
close(): void;
|
|
12
18
|
}
|
|
13
19
|
export interface EventSourceInitDict {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventSource.d.ts","sourceRoot":"","sources":["../../../src/api/platform/EventSource.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAE/D,gBAAgB,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"EventSource.d.ts","sourceRoot":"","sources":["../../../src/api/platform/EventSource.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,KAAK,IAAI,CAAC;AAC7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IACvC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAE/D,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACjE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IACnE,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;CAClC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The LaunchDarkly client stream processor
|
|
3
|
+
*
|
|
4
|
+
* The client uses this internally to retrieve updates from LaunchDarkly.
|
|
5
|
+
*
|
|
6
|
+
* @ignore
|
|
7
|
+
*/
|
|
8
|
+
export interface LDStreamProcessor {
|
|
9
|
+
start: () => void;
|
|
10
|
+
stop: () => void;
|
|
11
|
+
close: () => void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=LDStreamProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LDStreamProcessor.d.ts","sourceRoot":"","sources":["../../../src/api/subsystem/LDStreamProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LDStreamProcessor.js","sourceRoot":"","sources":["../../../src/api/subsystem/LDStreamProcessor.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import LDContextDeduplicator from './LDContextDeduplicator';
|
|
2
2
|
import LDEventProcessor from './LDEventProcessor';
|
|
3
3
|
import LDEventSender, { LDDeliveryStatus, LDEventSenderResult, LDEventType } from './LDEventSender';
|
|
4
|
-
|
|
4
|
+
import { LDStreamProcessor } from './LDStreamProcessor';
|
|
5
|
+
export { LDEventProcessor, LDContextDeduplicator, LDEventSender, LDDeliveryStatus, LDEventType, LDEventSenderResult, LDStreamProcessor, };
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/subsystem/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,EAAE,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/subsystem/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,EAAE,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,GAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/subsystem/index.ts"],"names":[],"mappings":";;;AAEA,mDAAoG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/subsystem/index.ts"],"names":[],"mappings":";;;AAEA,mDAAoG;AAOlG,iGAPsB,gCAAgB,OAOtB;AAChB,4FAR6D,2BAAW,OAQ7D"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class LDFileDataSourceError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class LDPollingError extends Error {
|
|
5
|
+
readonly status?: number;
|
|
6
|
+
constructor(message: string, status?: number);
|
|
7
|
+
}
|
|
8
|
+
export declare class LDStreamingError extends Error {
|
|
9
|
+
readonly code?: number;
|
|
10
|
+
constructor(message: string, code?: number);
|
|
11
|
+
}
|
|
12
|
+
export declare class LDUnexpectedResponseError extends Error {
|
|
13
|
+
constructor(message: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class LDClientError extends Error {
|
|
16
|
+
constructor(message: string);
|
|
17
|
+
}
|
|
18
|
+
export declare function isHttpRecoverable(status: number): boolean;
|
|
19
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEpB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAK7C;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,WAK/C"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// These classes are of trivial complexity. If they become
|
|
3
|
+
// more complex, then they could be independent files.
|
|
4
|
+
/* eslint-disable max-classes-per-file */
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isHttpRecoverable = exports.LDClientError = exports.LDUnexpectedResponseError = exports.LDStreamingError = exports.LDPollingError = exports.LDFileDataSourceError = void 0;
|
|
7
|
+
class LDFileDataSourceError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'LaunchDarklyFileDataSourceError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.LDFileDataSourceError = LDFileDataSourceError;
|
|
14
|
+
class LDPollingError extends Error {
|
|
15
|
+
constructor(message, status) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.name = 'LaunchDarklyPollingError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.LDPollingError = LDPollingError;
|
|
22
|
+
class LDStreamingError extends Error {
|
|
23
|
+
constructor(message, code) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.code = code;
|
|
26
|
+
this.name = 'LaunchDarklyStreamingError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.LDStreamingError = LDStreamingError;
|
|
30
|
+
class LDUnexpectedResponseError extends Error {
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = 'LaunchDarklyUnexpectedResponseError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.LDUnexpectedResponseError = LDUnexpectedResponseError;
|
|
37
|
+
class LDClientError extends Error {
|
|
38
|
+
constructor(message) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = 'LaunchDarklyClientError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.LDClientError = LDClientError;
|
|
44
|
+
function isHttpRecoverable(status) {
|
|
45
|
+
if (status >= 400 && status < 500) {
|
|
46
|
+
return status === 400 || status === 408 || status === 429;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
exports.isHttpRecoverable = isHttpRecoverable;
|
|
51
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,sDAAsD;AACtD,yCAAyC;;;AAEzC,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AALD,sDAKC;AAED,MAAa,cAAe,SAAQ,KAAK;IAGvC,YAAY,OAAe,EAAE,MAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AARD,wCAQC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IAGzC,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AARD,4CAQC;AAED,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qCAAqC,CAAC;IACpD,CAAC;CACF;AALD,8DAKC;AAED,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,sCAKC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE;QACjC,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;KAC3D;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AALD,8CAKC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AAExB,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AAExB,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAsD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAsD;AAa7C,6BAbF,4BAAkB,CAaE;AAZ3B,uCAAgC;AAYH,kBAZtB,iBAAO,CAYsB;AAXpC,mDAA4C;AAWN,wBAX/B,uBAAa,CAW+B;AATnD,wCAAsB;AACtB,+CAA6B;AAC7B,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AAExB,yCAAuC;AACvC,2CAAyB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Platform } from '../../api';
|
|
2
|
+
import { DiagnosticInitEvent, DiagnosticStatsEvent } from './types';
|
|
3
|
+
export default class DiagnosticsManager {
|
|
4
|
+
private readonly platform;
|
|
5
|
+
private readonly diagnosticInitConfig;
|
|
6
|
+
private readonly startTime;
|
|
7
|
+
private streamInits;
|
|
8
|
+
private readonly id;
|
|
9
|
+
private dataSinceDate;
|
|
10
|
+
constructor(sdkKey: string, platform: Platform, diagnosticInitConfig: any);
|
|
11
|
+
/**
|
|
12
|
+
* Creates the initial event that is sent by the event processor when the SDK starts up. This will
|
|
13
|
+
* not be repeated during the lifetime of the SDK client.
|
|
14
|
+
*/
|
|
15
|
+
createInitEvent(): DiagnosticInitEvent;
|
|
16
|
+
/**
|
|
17
|
+
* Records a stream connection attempt (called by the stream processor).
|
|
18
|
+
*
|
|
19
|
+
* @param timestamp Time of the *beginning* of the connection attempt.
|
|
20
|
+
* @param failed True if the connection failed, or we got a read timeout before receiving a "put".
|
|
21
|
+
* @param durationMillis Elapsed time between starting timestamp and when we either gave up/lost
|
|
22
|
+
* the connection or received a successful "put".
|
|
23
|
+
*/
|
|
24
|
+
recordStreamInit(timestamp: number, failed: boolean, durationMillis: number): void;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a periodic event containing time-dependent stats, and resets the state of the manager
|
|
27
|
+
* with regard to those stats.
|
|
28
|
+
*
|
|
29
|
+
* Note: the reason droppedEvents, deduplicatedUsers, and eventsInLastBatch are passed into this
|
|
30
|
+
* function, instead of being properties of the DiagnosticsManager, is that the event processor is
|
|
31
|
+
* the one who's calling this function and is also the one who's tracking those stats.
|
|
32
|
+
*/
|
|
33
|
+
createStatsEventAndReset(droppedEvents: number, deduplicatedUsers: number, eventsInLastBatch: number): DiagnosticStatsEvent;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=DiagnosticsManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticsManager.d.ts","sourceRoot":"","sources":["../../../src/internal/diagnostics/DiagnosticsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAgB,mBAAmB,EAAE,oBAAoB,EAAkB,MAAM,SAAS,CAAC;AAElG,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAQnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IARvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAClC,OAAO,CAAC,aAAa,CAAS;gBAG5B,MAAM,EAAE,MAAM,EACG,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,GAAG;IAU5C;;;OAGG;IACH,eAAe,IAAI,mBAAmB;IAoBtC;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM;IAK3E;;;;;;;OAOG;IACH,wBAAwB,CACtB,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,GACxB,oBAAoB;CAiBxB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class DiagnosticsManager {
|
|
4
|
+
constructor(sdkKey, platform, diagnosticInitConfig) {
|
|
5
|
+
this.platform = platform;
|
|
6
|
+
this.diagnosticInitConfig = diagnosticInitConfig;
|
|
7
|
+
this.streamInits = [];
|
|
8
|
+
this.startTime = Date.now();
|
|
9
|
+
this.dataSinceDate = this.startTime;
|
|
10
|
+
this.id = {
|
|
11
|
+
diagnosticId: platform.crypto.randomUUID(),
|
|
12
|
+
sdkKeySuffix: sdkKey.length > 6 ? sdkKey.substring(sdkKey.length - 6) : sdkKey,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates the initial event that is sent by the event processor when the SDK starts up. This will
|
|
17
|
+
* not be repeated during the lifetime of the SDK client.
|
|
18
|
+
*/
|
|
19
|
+
createInitEvent() {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
const sdkData = this.platform.info.sdkData();
|
|
22
|
+
const platformData = this.platform.info.platformData();
|
|
23
|
+
return {
|
|
24
|
+
kind: 'diagnostic-init',
|
|
25
|
+
id: this.id,
|
|
26
|
+
creationDate: this.startTime,
|
|
27
|
+
sdk: sdkData,
|
|
28
|
+
configuration: this.diagnosticInitConfig,
|
|
29
|
+
platform: Object.assign({ name: platformData.name, osArch: (_a = platformData.os) === null || _a === void 0 ? void 0 : _a.arch, osName: (_b = platformData.os) === null || _b === void 0 ? void 0 : _b.name, osVersion: (_c = platformData.os) === null || _c === void 0 ? void 0 : _c.version }, (platformData.additional || {})),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Records a stream connection attempt (called by the stream processor).
|
|
34
|
+
*
|
|
35
|
+
* @param timestamp Time of the *beginning* of the connection attempt.
|
|
36
|
+
* @param failed True if the connection failed, or we got a read timeout before receiving a "put".
|
|
37
|
+
* @param durationMillis Elapsed time between starting timestamp and when we either gave up/lost
|
|
38
|
+
* the connection or received a successful "put".
|
|
39
|
+
*/
|
|
40
|
+
recordStreamInit(timestamp, failed, durationMillis) {
|
|
41
|
+
const item = { timestamp, failed, durationMillis };
|
|
42
|
+
this.streamInits.push(item);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates a periodic event containing time-dependent stats, and resets the state of the manager
|
|
46
|
+
* with regard to those stats.
|
|
47
|
+
*
|
|
48
|
+
* Note: the reason droppedEvents, deduplicatedUsers, and eventsInLastBatch are passed into this
|
|
49
|
+
* function, instead of being properties of the DiagnosticsManager, is that the event processor is
|
|
50
|
+
* the one who's calling this function and is also the one who's tracking those stats.
|
|
51
|
+
*/
|
|
52
|
+
createStatsEventAndReset(droppedEvents, deduplicatedUsers, eventsInLastBatch) {
|
|
53
|
+
const currentTime = Date.now();
|
|
54
|
+
const evt = {
|
|
55
|
+
kind: 'diagnostic',
|
|
56
|
+
id: this.id,
|
|
57
|
+
creationDate: currentTime,
|
|
58
|
+
dataSinceDate: this.dataSinceDate,
|
|
59
|
+
droppedEvents,
|
|
60
|
+
deduplicatedUsers,
|
|
61
|
+
eventsInLastBatch,
|
|
62
|
+
streamInits: this.streamInits,
|
|
63
|
+
};
|
|
64
|
+
this.streamInits = [];
|
|
65
|
+
this.dataSinceDate = currentTime;
|
|
66
|
+
return evt;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.default = DiagnosticsManager;
|
|
70
|
+
//# sourceMappingURL=DiagnosticsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticsManager.js","sourceRoot":"","sources":["../../../src/internal/diagnostics/DiagnosticsManager.ts"],"names":[],"mappings":";;AAGA,MAAqB,kBAAkB;IAMrC,YACE,MAAc,EACG,QAAkB,EAClB,oBAAyB;QADzB,aAAQ,GAAR,QAAQ,CAAU;QAClB,yBAAoB,GAApB,oBAAoB,CAAK;QAPpC,gBAAW,GAAqB,EAAE,CAAC;QASzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,GAAG;YACR,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;YAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;SAC/E,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEvD,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,GAAG,EAAE,OAAO;YACZ,aAAa,EAAE,IAAI,CAAC,oBAAoB;YACxC,QAAQ,kBACN,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,MAAM,EAAE,MAAA,YAAY,CAAC,EAAE,0CAAE,IAAI,EAC7B,MAAM,EAAE,MAAA,YAAY,CAAC,EAAE,0CAAE,IAAI,EAC7B,SAAS,EAAE,MAAA,YAAY,CAAC,EAAE,0CAAE,OAAO,IAChC,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CACnC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAiB,EAAE,MAAe,EAAE,cAAsB;QACzE,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,wBAAwB,CACtB,aAAqB,EACrB,iBAAyB,EACzB,iBAAyB;QAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAyB;YAChC,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,WAAW;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa;YACb,iBAAiB;YACjB,iBAAiB;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AArFD,qCAqFC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/diagnostics/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiagnosticsManager = void 0;
|
|
4
|
+
const DiagnosticsManager_1 = require("./DiagnosticsManager");
|
|
5
|
+
exports.DiagnosticsManager = DiagnosticsManager_1.default;
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/diagnostics/index.ts"],"names":[],"mappings":";;;AAAA,6DAAsD;AAG7C,6BAHF,4BAAkB,CAGE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export interface DiagnosticPlatformData {
|
|
2
|
+
name?: string;
|
|
3
|
+
osArch?: string;
|
|
4
|
+
osName?: string;
|
|
5
|
+
osVersion?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Platform specific identifiers.
|
|
8
|
+
* For instance `nodeVersion`
|
|
9
|
+
*/
|
|
10
|
+
[key: string]: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
export interface DiagnosticSdkData {
|
|
13
|
+
name?: string;
|
|
14
|
+
wrapperName?: string;
|
|
15
|
+
wrapperVersion?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface DiagnosticConfigData {
|
|
18
|
+
customBaseURI: boolean;
|
|
19
|
+
customStreamURI: boolean;
|
|
20
|
+
customEventsURI: boolean;
|
|
21
|
+
eventsCapacity: number;
|
|
22
|
+
connectTimeoutMillis: number;
|
|
23
|
+
socketTimeoutMillis: number;
|
|
24
|
+
eventsFlushIntervalMillis: number;
|
|
25
|
+
pollingIntervalMillis: number;
|
|
26
|
+
reconnectTimeMillis: number;
|
|
27
|
+
streamingDisabled: boolean;
|
|
28
|
+
usingRelayDaemon: boolean;
|
|
29
|
+
offline: boolean;
|
|
30
|
+
allAttributesPrivate: boolean;
|
|
31
|
+
contextKeysCapacity: number;
|
|
32
|
+
contextKeysFlushIntervalMillis: number;
|
|
33
|
+
usingProxy: boolean;
|
|
34
|
+
usingProxyAuthenticator: boolean;
|
|
35
|
+
diagnosticRecordingIntervalMillis: number;
|
|
36
|
+
dataStoreType: string;
|
|
37
|
+
}
|
|
38
|
+
export interface DiagnosticId {
|
|
39
|
+
diagnosticId: string;
|
|
40
|
+
sdkKeySuffix: string;
|
|
41
|
+
}
|
|
42
|
+
export interface DiagnosticInitEvent {
|
|
43
|
+
kind: 'diagnostic-init';
|
|
44
|
+
id: DiagnosticId;
|
|
45
|
+
creationDate: number;
|
|
46
|
+
sdk: DiagnosticSdkData;
|
|
47
|
+
configuration: DiagnosticConfigData;
|
|
48
|
+
platform: DiagnosticPlatformData;
|
|
49
|
+
}
|
|
50
|
+
export interface StreamInitData {
|
|
51
|
+
timestamp: number;
|
|
52
|
+
failed: boolean;
|
|
53
|
+
durationMillis: number;
|
|
54
|
+
}
|
|
55
|
+
export interface DiagnosticStatsEvent {
|
|
56
|
+
kind: 'diagnostic';
|
|
57
|
+
id: DiagnosticId;
|
|
58
|
+
creationDate: number;
|
|
59
|
+
dataSinceDate: number;
|
|
60
|
+
droppedEvents: number;
|
|
61
|
+
deduplicatedUsers: number;
|
|
62
|
+
eventsInLastBatch: number;
|
|
63
|
+
streamInits: StreamInitData[];
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/diagnostics/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAG9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8BAA8B,EAAE,MAAM,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;IACjC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,iBAAiB,CAAC;IACvB,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/internal/diagnostics/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import LDContextDeduplicator from '../../api/subsystem/LDContextDeduplicator';
|
|
2
2
|
import LDEventProcessor from '../../api/subsystem/LDEventProcessor';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import { ClientContext } from '../../options';
|
|
4
|
+
import { DiagnosticsManager } from '../diagnostics';
|
|
5
5
|
import InputEvent from './InputEvent';
|
|
6
|
-
/**
|
|
7
|
-
* The event processor doesn't need to know anything about the shape of the
|
|
8
|
-
* diagnostic events.
|
|
9
|
-
*/
|
|
10
|
-
type DiagnosticEvent = any;
|
|
11
6
|
export interface EventProcessorOptions {
|
|
12
7
|
allAttributesPrivate: boolean;
|
|
13
8
|
privateAttributes: string[];
|
|
@@ -15,14 +10,10 @@ export interface EventProcessorOptions {
|
|
|
15
10
|
flushInterval: number;
|
|
16
11
|
diagnosticRecordingInterval: number;
|
|
17
12
|
}
|
|
18
|
-
interface LDDiagnosticsManager {
|
|
19
|
-
createInitEvent(): DiagnosticEvent;
|
|
20
|
-
createStatsEventAndReset(droppedEvents: number, deduplicatedUsers: number, eventsInLastBatch: number): DiagnosticEvent;
|
|
21
|
-
}
|
|
22
13
|
export default class EventProcessor implements LDEventProcessor {
|
|
23
|
-
private readonly
|
|
24
|
-
private readonly contextDeduplicator;
|
|
14
|
+
private readonly contextDeduplicator?;
|
|
25
15
|
private readonly diagnosticsManager?;
|
|
16
|
+
private eventSender;
|
|
26
17
|
private summarizer;
|
|
27
18
|
private queue;
|
|
28
19
|
private lastKnownPastTime;
|
|
@@ -37,7 +28,7 @@ export default class EventProcessor implements LDEventProcessor {
|
|
|
37
28
|
private diagnosticsTimer;
|
|
38
29
|
private flushTimer;
|
|
39
30
|
private flushUsersTimer;
|
|
40
|
-
constructor(config: EventProcessorOptions, clientContext: ClientContext,
|
|
31
|
+
constructor(config: EventProcessorOptions, clientContext: ClientContext, contextDeduplicator?: LDContextDeduplicator | undefined, diagnosticsManager?: DiagnosticsManager | undefined);
|
|
41
32
|
private postDiagnosticEvent;
|
|
42
33
|
close(): void;
|
|
43
34
|
flush(): Promise<void>;
|
|
@@ -47,5 +38,4 @@ export default class EventProcessor implements LDEventProcessor {
|
|
|
47
38
|
private shouldDebugEvent;
|
|
48
39
|
private tryPostingEvents;
|
|
49
40
|
}
|
|
50
|
-
export {};
|
|
51
41
|
//# sourceMappingURL=EventProcessor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventProcessor.d.ts","sourceRoot":"","sources":["../../../src/internal/events/EventProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAC9E,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"EventProcessor.d.ts","sourceRoot":"","sources":["../../../src/internal/events/EventProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAC9E,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIpD,OAAO,UAAU,MAAM,cAAc,CAAC;AAkEtC,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,gBAAgB;IAuB3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAvBtC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAW;IAC1B,OAAO,CAAC,aAAa,CAAgB;IAIrC,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,eAAe,CAAa;gBAGlC,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,aAAa,EACX,mBAAmB,CAAC,mCAAuB,EAC3C,kBAAkB,CAAC,gCAAoB;IA6C1D,OAAO,CAAC,mBAAmB;IAI3B,KAAK;IAUC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B,SAAS,CAAC,UAAU,EAAE,UAAU;IA8DhC,OAAO,CAAC,eAAe;IAuEvB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,gBAAgB;YASV,gBAAgB;CAc/B"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const subsystem_1 = require("../../api/subsystem");
|
|
4
4
|
const AttributeReference_1 = require("../../AttributeReference");
|
|
5
5
|
const ContextFilter_1 = require("../../ContextFilter");
|
|
6
|
+
const EventSender_1 = require("./EventSender");
|
|
6
7
|
const EventSummarizer_1 = require("./EventSummarizer");
|
|
7
8
|
const guards_1 = require("./guards");
|
|
8
9
|
const LDInvalidSDKKeyError_1 = require("./LDInvalidSDKKeyError");
|
|
9
10
|
const sampling_1 = require("./sampling");
|
|
10
11
|
class EventProcessor {
|
|
11
|
-
constructor(config, clientContext,
|
|
12
|
-
|
|
12
|
+
constructor(config, clientContext, contextDeduplicator, diagnosticsManager) {
|
|
13
|
+
var _a;
|
|
13
14
|
this.contextDeduplicator = contextDeduplicator;
|
|
14
15
|
this.diagnosticsManager = diagnosticsManager;
|
|
15
16
|
this.summarizer = new EventSummarizer_1.default();
|
|
@@ -23,18 +24,22 @@ class EventProcessor {
|
|
|
23
24
|
this.flushUsersTimer = null;
|
|
24
25
|
this.capacity = config.eventsCapacity;
|
|
25
26
|
this.logger = clientContext.basicConfiguration.logger;
|
|
27
|
+
this.eventSender = new EventSender_1.default(clientContext);
|
|
26
28
|
this.contextFilter = new ContextFilter_1.default(config.allAttributesPrivate, config.privateAttributes.map((ref) => new AttributeReference_1.default(ref)));
|
|
27
|
-
if (this.contextDeduplicator.flushInterval !== undefined) {
|
|
29
|
+
if (((_a = this.contextDeduplicator) === null || _a === void 0 ? void 0 : _a.flushInterval) !== undefined) {
|
|
28
30
|
this.flushUsersTimer = setInterval(() => {
|
|
29
|
-
|
|
31
|
+
var _a;
|
|
32
|
+
(_a = this.contextDeduplicator) === null || _a === void 0 ? void 0 : _a.flush();
|
|
30
33
|
}, this.contextDeduplicator.flushInterval * 1000);
|
|
31
34
|
}
|
|
32
35
|
this.flushTimer = setInterval(async () => {
|
|
36
|
+
var _a;
|
|
33
37
|
try {
|
|
34
38
|
await this.flush();
|
|
35
39
|
}
|
|
36
|
-
catch (
|
|
37
|
-
//
|
|
40
|
+
catch (e) {
|
|
41
|
+
// Log errors and swallow them
|
|
42
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`Flush failed: ${e}`);
|
|
38
43
|
}
|
|
39
44
|
}, config.flushInterval * 1000);
|
|
40
45
|
if (this.diagnosticsManager) {
|
|
@@ -49,7 +54,7 @@ class EventProcessor {
|
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
postDiagnosticEvent(event) {
|
|
52
|
-
this.eventSender.sendEventData(
|
|
57
|
+
this.eventSender.sendEventData(subsystem_1.LDEventType.DiagnosticEvent, event);
|
|
53
58
|
}
|
|
54
59
|
close() {
|
|
55
60
|
clearInterval(this.flushTimer);
|
|
@@ -80,6 +85,7 @@ class EventProcessor {
|
|
|
80
85
|
await this.tryPostingEvents(eventsToFlush);
|
|
81
86
|
}
|
|
82
87
|
sendEvent(inputEvent) {
|
|
88
|
+
var _a;
|
|
83
89
|
if (this.shutdown) {
|
|
84
90
|
return;
|
|
85
91
|
}
|
|
@@ -101,9 +107,7 @@ class EventProcessor {
|
|
|
101
107
|
const addFullEvent = (isFeatureEvent && inputEvent.trackEvents) || !isFeatureEvent;
|
|
102
108
|
const addDebugEvent = this.shouldDebugEvent(inputEvent);
|
|
103
109
|
const isIdentifyEvent = (0, guards_1.isIdentify)(inputEvent);
|
|
104
|
-
|
|
105
|
-
// Otherwise we could deduplicate and then not send the event.
|
|
106
|
-
const shouldNotDeduplicate = this.contextDeduplicator.processContext(inputEvent.context);
|
|
110
|
+
const shouldNotDeduplicate = (_a = this.contextDeduplicator) === null || _a === void 0 ? void 0 : _a.processContext(inputEvent.context);
|
|
107
111
|
// If there is no cache, then it will never be in the cache.
|
|
108
112
|
if (!shouldNotDeduplicate) {
|
|
109
113
|
if (!isIdentifyEvent) {
|
|
@@ -111,12 +115,12 @@ class EventProcessor {
|
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
const addIndexEvent = shouldNotDeduplicate && !isIdentifyEvent;
|
|
114
|
-
if (addIndexEvent
|
|
118
|
+
if (addIndexEvent) {
|
|
115
119
|
this.enqueue(this.makeOutputEvent({
|
|
116
120
|
kind: 'index',
|
|
117
121
|
creationDate: inputEvent.creationDate,
|
|
118
122
|
context: inputEvent.context,
|
|
119
|
-
samplingRatio:
|
|
123
|
+
samplingRatio: 1,
|
|
120
124
|
}, false));
|
|
121
125
|
}
|
|
122
126
|
if (addFullEvent && (0, sampling_1.default)(inputEvent.samplingRatio)) {
|
|
@@ -215,8 +219,8 @@ class EventProcessor {
|
|
|
215
219
|
event.debugEventsUntilDate > Date.now());
|
|
216
220
|
}
|
|
217
221
|
async tryPostingEvents(events) {
|
|
218
|
-
const res = await this.eventSender.sendEventData(
|
|
219
|
-
if (res.status ===
|
|
222
|
+
const res = await this.eventSender.sendEventData(subsystem_1.LDEventType.AnalyticsEvents, events);
|
|
223
|
+
if (res.status === subsystem_1.LDDeliveryStatus.FailedAndMustShutDown) {
|
|
220
224
|
this.shutdown = true;
|
|
221
225
|
}
|
|
222
226
|
if (res.serverTime) {
|