@microsoft/applicationinsights-analytics-js 2.7.5-nightly.2204-03 → 2.7.5-nightly.2204-23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/browser/applicationinsights-analytics-js.integrity.json +9 -9
  2. package/browser/applicationinsights-analytics-js.js +668 -1624
  3. package/browser/applicationinsights-analytics-js.js.map +1 -1
  4. package/browser/applicationinsights-analytics-js.min.js +2 -2
  5. package/browser/applicationinsights-analytics-js.min.js.map +1 -1
  6. package/dist/applicationinsights-analytics-js.api.json +278 -97
  7. package/dist/applicationinsights-analytics-js.api.md +18 -8
  8. package/dist/applicationinsights-analytics-js.d.ts +104 -9
  9. package/dist/applicationinsights-analytics-js.js +668 -1624
  10. package/dist/applicationinsights-analytics-js.js.map +1 -1
  11. package/dist/applicationinsights-analytics-js.min.js +2 -2
  12. package/dist/applicationinsights-analytics-js.min.js.map +1 -1
  13. package/dist/applicationinsights-analytics-js.rollup.d.ts +104 -9
  14. package/dist-esm/JavaScriptSDK/ApplicationInsights.js +606 -0
  15. package/dist-esm/JavaScriptSDK/ApplicationInsights.js.map +1 -0
  16. package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js +8 -21
  17. package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js.map +1 -1
  18. package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js +10 -10
  19. package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js.map +1 -1
  20. package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js +5 -5
  21. package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js.map +1 -1
  22. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryConfig.js +1 -1
  23. package/dist-esm/applicationinsights-analytics-js.js +2 -2
  24. package/dist-esm/applicationinsights-analytics-js.js.map +1 -1
  25. package/package.json +7 -7
  26. package/src/JavaScriptSDK/{AnalyticsPlugin.ts → ApplicationInsights.ts} +325 -403
  27. package/src/JavaScriptSDK/Telemetry/PageViewManager.ts +13 -32
  28. package/src/JavaScriptSDK/Telemetry/PageViewPerformanceManager.ts +6 -6
  29. package/src/JavaScriptSDK/Telemetry/PageVisitTimeManager.ts +1 -1
  30. package/src/applicationinsights-analytics-js.ts +1 -1
  31. package/types/JavaScriptSDK/{AnalyticsPlugin.d.ts → ApplicationInsights.d.ts} +16 -12
  32. package/types/JavaScriptSDK/Telemetry/PageViewManager.d.ts +1 -2
  33. package/types/JavaScriptSDK/Telemetry/PageViewPerformanceManager.d.ts +9 -9
  34. package/types/JavaScriptSDK/Telemetry/PageVisitTimeManager.d.ts +4 -4
  35. package/types/applicationinsights-analytics-js.d.ts +1 -1
  36. package/types/tsdoc-metadata.json +1 -1
  37. package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js +0 -674
  38. package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js.map +0 -1
  39. package/dist-esm/JavaScriptSDK/Timing.js +0 -39
  40. package/dist-esm/JavaScriptSDK/Timing.js.map +0 -1
  41. package/src/JavaScriptSDK/Timing.ts +0 -46
  42. package/types/JavaScriptSDK/Timing.d.ts +0 -18
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Microsoft Application Insights JavaScript SDK - Web Analytics, 2.7.5-nightly.2204-03
2
+ * Microsoft Application Insights JavaScript SDK - Web Analytics, 2.7.5-nightly.2204-23
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  *
5
5
  * Microsoft Application Insights Team
@@ -21,6 +21,7 @@ import { IConfig } from '@microsoft/applicationinsights-common';
21
21
  import { IConfiguration } from '@microsoft/applicationinsights-core-js';
22
22
  import { ICookieMgr } from '@microsoft/applicationinsights-core-js';
23
23
  import { ICustomProperties } from '@microsoft/applicationinsights-core-js';
24
+ import { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';
24
25
  import { IEventTelemetry } from '@microsoft/applicationinsights-common';
25
26
  import { IExceptionTelemetry } from '@microsoft/applicationinsights-common';
26
27
  import { IMetricTelemetry } from '@microsoft/applicationinsights-common';
@@ -30,19 +31,22 @@ import { IPageViewTelemetry } from '@microsoft/applicationinsights-common';
30
31
  import { IPageViewTelemetryInternal } from '@microsoft/applicationinsights-common';
31
32
  import { IPlugin } from '@microsoft/applicationinsights-core-js';
32
33
  import { IProcessTelemetryContext } from '@microsoft/applicationinsights-core-js';
33
- import { ITelemetryInitializerHandler } from '@microsoft/applicationinsights-core-js';
34
34
  import { ITelemetryItem } from '@microsoft/applicationinsights-core-js';
35
35
  import { ITelemetryPluginChain } from '@microsoft/applicationinsights-core-js';
36
36
  import { ITraceTelemetry } from '@microsoft/applicationinsights-common';
37
37
 
38
- declare class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights, IAppInsightsInternal {
38
+ export declare class ApplicationInsights extends BaseTelemetryPlugin implements IAppInsights, IAppInsightsInternal {
39
39
  static Version: string;
40
- static getDefaultConfig: typeof _getDefaultConfig;
40
+ static getDefaultConfig(config?: IConfig): IConfig;
41
41
  identifier: string;
42
42
  priority: number;
43
43
  config: IConfig;
44
44
  queue: Array<() => void>;
45
45
  autoRoutePVDelay: number;
46
+ protected _telemetryInitializers: Array<(envelope: ITelemetryItem) => boolean | void>;
47
+ protected _pageViewManager: PageViewManager;
48
+ protected _pageViewPerformanceManager: PageViewPerformanceManager;
49
+ protected _pageVisitTimeManager: PageVisitTimeManager;
46
50
  constructor();
47
51
  /**
48
52
  * Get the current cookie manager for this instance
@@ -166,13 +170,9 @@ declare class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsight
166
170
  * @memberof ApplicationInsights
167
171
  */
168
172
  _onerror(exception: IAutoExceptionTelemetry): void;
169
- addTelemetryInitializer(telemetryInitializer: (item: ITelemetryItem) => boolean | void): ITelemetryInitializerHandler | void;
173
+ addTelemetryInitializer(telemetryInitializer: (item: ITelemetryItem) => boolean | void): void;
170
174
  initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
171
175
  }
172
- export { AnalyticsPlugin }
173
- export { AnalyticsPlugin as ApplicationInsights }
174
-
175
- declare function _getDefaultConfig(config?: IConfig): IConfig;
176
176
 
177
177
  /**
178
178
  * Internal interface to pass appInsights object to subcomponents without coupling
@@ -182,4 +182,99 @@ export declare interface IAppInsightsInternal {
182
182
  sendPageViewPerformanceInternal(pageViewPerformance: IPageViewPerformanceTelemetryInternal, properties?: Object, systemProperties?: Object): void;
183
183
  }
184
184
 
185
+ /**
186
+ * Class encapsulates sending page views and page view performance telemetry.
187
+ */
188
+ declare class PageViewManager {
189
+ constructor(appInsights: IAppInsightsInternal, overridePageViewDuration: boolean, core: IAppInsightsCore, pageViewPerformanceManager: PageViewPerformanceManager);
190
+ /**
191
+ * Currently supported cases:
192
+ * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.
193
+ * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.
194
+ * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.
195
+ * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).
196
+ * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.
197
+ *
198
+ * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.
199
+ */
200
+ trackPageView(pageView: IPageViewTelemetry, customProperties?: {
201
+ [key: string]: any;
202
+ }): void;
203
+ }
204
+
205
+ /**
206
+ * Class encapsulates sending page view performance telemetry.
207
+ */
208
+ declare class PageViewPerformanceManager {
209
+ private _logger;
210
+ private MAX_DURATION_ALLOWED;
211
+ constructor(core: IAppInsightsCore);
212
+ populatePageViewPerformanceEvent(pageViewPerformance: IPageViewPerformanceTelemetryInternal): void;
213
+ getPerformanceTiming(): PerformanceTiming | null;
214
+ getPerformanceNavigationTiming(): PerformanceNavigationTiming | null;
215
+ /**
216
+ * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.
217
+ */
218
+ isPerformanceNavigationTimingSupported(): boolean;
219
+ /**
220
+ * Returns true is window performance timing API is supported, false otherwise.
221
+ */
222
+ isPerformanceTimingSupported(): PerformanceTiming;
223
+ /**
224
+ * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.
225
+ * Returns true if ready, false otherwise.
226
+ */
227
+ isPerformanceTimingDataReady(): boolean;
228
+ /**
229
+ * This method tells if given durations should be excluded from collection.
230
+ */
231
+ shouldCollectDuration(...durations: number[]): boolean;
232
+ }
233
+
234
+ declare class PageVisitData {
235
+ pageName: string;
236
+ pageUrl: string;
237
+ pageVisitStartTime: number;
238
+ pageVisitTime: number;
239
+ constructor(pageName: string, pageUrl: string);
240
+ }
241
+
242
+ /**
243
+ * Used to track page visit durations
244
+ */
245
+ declare class PageVisitTimeManager {
246
+ private prevPageVisitDataKeyName;
247
+ private pageVisitTimeTrackingHandler;
248
+ private _logger;
249
+ /**
250
+ * Creates a new instance of PageVisitTimeManager
251
+ * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)
252
+ * @returns {}
253
+ */
254
+ constructor(logger: IDiagnosticLogger, pageVisitTimeTrackingHandler: (pageName: string, pageUrl: string, pageVisitTime: number) => void);
255
+ /**
256
+ * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time
257
+ * @param currentPageName Name of page to begin timing for visit duration
258
+ * @param currentPageUrl Url of page to begin timing for visit duration
259
+ */
260
+ trackPreviousPageVisit(currentPageName: string, currentPageUrl: string): void;
261
+ /**
262
+ * Stops timing of current page (if exists) and starts timing for duration of visit to pageName
263
+ * @param pageName Name of page to begin timing visit duration
264
+ * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.
265
+ */
266
+ restartPageVisitTimer(pageName: string, pageUrl: string): PageVisitData;
267
+ /**
268
+ * Starts timing visit duration of pageName
269
+ * @param pageName
270
+ * @returns {}
271
+ */
272
+ startPageVisitTimer(pageName: string, pageUrl: string): void;
273
+ /**
274
+ * Stops timing of current page, if exists.
275
+ * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.
276
+ */
277
+ stopPageVisitTimer(): PageVisitData;
278
+ }
279
+
185
280
  export { }