@grafana/faro-web-sdk 1.12.2 → 1.13.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.
Files changed (102) hide show
  1. package/dist/bundle/faro-web-sdk.iife.js +1 -1
  2. package/dist/bundle/types/config/makeCoreConfig.d.ts +1 -1
  3. package/dist/bundle/types/index.d.ts +1 -1
  4. package/dist/bundle/types/instrumentations/console/instrumentation.d.ts +3 -1
  5. package/dist/bundle/types/instrumentations/errors/getErrorDetails.d.ts +8 -1
  6. package/dist/bundle/types/instrumentations/errors/instrumentation.d.ts +1 -1
  7. package/dist/bundle/types/instrumentations/performance/instrumentation.d.ts +1 -1
  8. package/dist/bundle/types/instrumentations/session/instrumentation.d.ts +1 -1
  9. package/dist/bundle/types/instrumentations/session/sessionManager/sessionManagerUtils.d.ts +6 -0
  10. package/dist/bundle/types/instrumentations/view/instrumentation.d.ts +1 -1
  11. package/dist/bundle/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
  12. package/dist/bundle/types/metas/index.d.ts +0 -2
  13. package/dist/bundle/types/metas/page/index.d.ts +1 -1
  14. package/dist/bundle/types/metas/page/meta.d.ts +7 -2
  15. package/dist/bundle/types/transports/console/transport.d.ts +1 -1
  16. package/dist/bundle/types/transports/fetch/transport.d.ts +1 -1
  17. package/dist/bundle/types/utils/index.d.ts +0 -1
  18. package/dist/cjs/config/makeCoreConfig.js +43 -36
  19. package/dist/cjs/config/makeCoreConfig.js.map +1 -1
  20. package/dist/cjs/index.js +2 -4
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/instrumentations/console/instrumentation.js +26 -3
  23. package/dist/cjs/instrumentations/console/instrumentation.js.map +1 -1
  24. package/dist/cjs/instrumentations/errors/getErrorDetails.js +32 -1
  25. package/dist/cjs/instrumentations/errors/getErrorDetails.js.map +1 -1
  26. package/dist/cjs/instrumentations/errors/registerOnerror.js +1 -21
  27. package/dist/cjs/instrumentations/errors/registerOnerror.js.map +1 -1
  28. package/dist/cjs/instrumentations/session/instrumentation.js +6 -4
  29. package/dist/cjs/instrumentations/session/instrumentation.js.map +1 -1
  30. package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js +5 -11
  31. package/dist/cjs/instrumentations/session/sessionManager/PersistentSessionsManager.js.map +1 -1
  32. package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js +5 -12
  33. package/dist/cjs/instrumentations/session/sessionManager/VolatileSessionManager.js.map +1 -1
  34. package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js +49 -3
  35. package/dist/cjs/instrumentations/session/sessionManager/sessionManagerUtils.js.map +1 -1
  36. package/dist/cjs/metas/index.js +1 -5
  37. package/dist/cjs/metas/index.js.map +1 -1
  38. package/dist/cjs/metas/page/index.js +2 -2
  39. package/dist/cjs/metas/page/index.js.map +1 -1
  40. package/dist/cjs/metas/page/meta.js +30 -7
  41. package/dist/cjs/metas/page/meta.js.map +1 -1
  42. package/dist/cjs/utils/index.js +1 -4
  43. package/dist/cjs/utils/index.js.map +1 -1
  44. package/dist/cjs/utils/webStorage.js +0 -1
  45. package/dist/cjs/utils/webStorage.js.map +1 -1
  46. package/dist/esm/config/makeCoreConfig.js +43 -37
  47. package/dist/esm/config/makeCoreConfig.js.map +1 -1
  48. package/dist/esm/index.js +1 -1
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/instrumentations/console/instrumentation.js +27 -4
  51. package/dist/esm/instrumentations/console/instrumentation.js.map +1 -1
  52. package/dist/esm/instrumentations/errors/getErrorDetails.js +31 -3
  53. package/dist/esm/instrumentations/errors/getErrorDetails.js.map +1 -1
  54. package/dist/esm/instrumentations/errors/registerOnerror.js +2 -21
  55. package/dist/esm/instrumentations/errors/registerOnerror.js.map +1 -1
  56. package/dist/esm/instrumentations/session/instrumentation.js +6 -4
  57. package/dist/esm/instrumentations/session/instrumentation.js.map +1 -1
  58. package/dist/esm/instrumentations/session/sessionManager/PersistentSessionsManager.js +7 -13
  59. package/dist/esm/instrumentations/session/sessionManager/PersistentSessionsManager.js.map +1 -1
  60. package/dist/esm/instrumentations/session/sessionManager/VolatileSessionManager.js +6 -13
  61. package/dist/esm/instrumentations/session/sessionManager/VolatileSessionManager.js.map +1 -1
  62. package/dist/esm/instrumentations/session/sessionManager/sessionManagerUtils.js +45 -3
  63. package/dist/esm/instrumentations/session/sessionManager/sessionManagerUtils.js.map +1 -1
  64. package/dist/esm/metas/index.js +0 -2
  65. package/dist/esm/metas/index.js.map +1 -1
  66. package/dist/esm/metas/page/index.js +1 -1
  67. package/dist/esm/metas/page/index.js.map +1 -1
  68. package/dist/esm/metas/page/meta.js +16 -5
  69. package/dist/esm/metas/page/meta.js.map +1 -1
  70. package/dist/esm/utils/index.js +0 -1
  71. package/dist/esm/utils/index.js.map +1 -1
  72. package/dist/esm/utils/webStorage.js +0 -1
  73. package/dist/esm/utils/webStorage.js.map +1 -1
  74. package/dist/types/config/makeCoreConfig.d.ts +1 -1
  75. package/dist/types/index.d.ts +1 -1
  76. package/dist/types/instrumentations/console/instrumentation.d.ts +3 -1
  77. package/dist/types/instrumentations/errors/getErrorDetails.d.ts +8 -1
  78. package/dist/types/instrumentations/errors/instrumentation.d.ts +1 -1
  79. package/dist/types/instrumentations/performance/instrumentation.d.ts +1 -1
  80. package/dist/types/instrumentations/session/instrumentation.d.ts +1 -1
  81. package/dist/types/instrumentations/session/sessionManager/sessionManagerUtils.d.ts +6 -0
  82. package/dist/types/instrumentations/view/instrumentation.d.ts +1 -1
  83. package/dist/types/instrumentations/webVitals/instrumentation.d.ts +1 -1
  84. package/dist/types/metas/index.d.ts +0 -2
  85. package/dist/types/metas/page/index.d.ts +1 -1
  86. package/dist/types/metas/page/meta.d.ts +7 -2
  87. package/dist/types/transports/console/transport.d.ts +1 -1
  88. package/dist/types/transports/fetch/transport.d.ts +1 -1
  89. package/dist/types/utils/index.d.ts +0 -1
  90. package/package.json +7 -3
  91. package/dist/bundle/types/metas/const.d.ts +0 -2
  92. package/dist/bundle/types/utils/json.d.ts +0 -2
  93. package/dist/cjs/metas/const.js +0 -7
  94. package/dist/cjs/metas/const.js.map +0 -1
  95. package/dist/cjs/utils/json.js +0 -22
  96. package/dist/cjs/utils/json.js.map +0 -1
  97. package/dist/esm/metas/const.js +0 -4
  98. package/dist/esm/metas/const.js.map +0 -1
  99. package/dist/esm/utils/json.js +0 -16
  100. package/dist/esm/utils/json.js.map +0 -1
  101. package/dist/types/metas/const.d.ts +0 -2
  102. package/dist/types/utils/json.d.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import { BaseInstrumentation } from '@grafana/faro-core';
2
2
  export declare class SessionInstrumentation extends BaseInstrumentation {
3
3
  readonly name = "@grafana/faro-web-sdk:instrumentation-session";
4
- readonly version = "1.12.2";
4
+ readonly version = "1.13.0";
5
5
  private notifiedSession;
6
6
  private sendSessionStartEvent;
7
7
  private createInitialSession;
@@ -1,3 +1,4 @@
1
+ import { Meta } from '@grafana/faro-core';
1
2
  import type { FaroUserSession } from './types';
2
3
  type CreateUserSessionObjectParams = {
3
4
  sessionId?: string;
@@ -16,4 +17,9 @@ type UpdateSessionParams = {
16
17
  };
17
18
  export declare function getUserSessionUpdater({ fetchUserSession, storeUserSession, }: GetUserSessionUpdaterParams): (options?: UpdateSessionParams) => void;
18
19
  export declare function addSessionMetadataToNextSession(newSession: FaroUserSession, previousSession: FaroUserSession | null): Required<FaroUserSession>;
20
+ type GetUserSessionMetaUpdateHandlerParams = {
21
+ storeUserSession: (session: FaroUserSession) => void;
22
+ fetchUserSession: () => FaroUserSession | null;
23
+ };
24
+ export declare function getSessionMetaUpdateHandler({ fetchUserSession, storeUserSession, }: GetUserSessionMetaUpdateHandlerParams): (meta: Meta) => void;
19
25
  export {};
@@ -1,7 +1,7 @@
1
1
  import { BaseInstrumentation } from '@grafana/faro-core';
2
2
  export declare class ViewInstrumentation extends BaseInstrumentation {
3
3
  readonly name = "@grafana/faro-web-sdk:instrumentation-view";
4
- readonly version = "1.12.2";
4
+ readonly version = "1.13.0";
5
5
  private notifiedView;
6
6
  private sendViewChangedEvent;
7
7
  initialize(): void;
@@ -1,7 +1,7 @@
1
1
  import { BaseInstrumentation } from '@grafana/faro-core';
2
2
  export declare class WebVitalsInstrumentation extends BaseInstrumentation {
3
3
  readonly name = "@grafana/faro-web-sdk:instrumentation-web-vitals";
4
- readonly version = "1.12.2";
4
+ readonly version = "1.13.0";
5
5
  initialize(): void;
6
6
  private intializeWebVitalsInstrumentation;
7
7
  }
@@ -1,5 +1,3 @@
1
1
  export { browserMeta } from './browser';
2
- export { defaultMetas } from './const';
3
- export { pageMeta } from './page';
4
2
  export { createSession } from './session';
5
3
  export { sdkMeta } from './sdk';
@@ -1 +1 @@
1
- export { pageMeta } from './meta';
1
+ export { createPageMeta } from './meta';
@@ -1,2 +1,7 @@
1
- import type { Meta, MetaItem } from '@grafana/faro-core';
2
- export declare const pageMeta: MetaItem<Pick<Meta, 'page'>>;
1
+ import { type Meta, type MetaItem } from '@grafana/faro-core';
2
+ type createPageMetaProps = {
3
+ generatePageId?: (location: Location) => string;
4
+ initialPageMeta?: Meta['page'];
5
+ };
6
+ export declare function createPageMeta({ generatePageId, initialPageMeta }?: createPageMetaProps): MetaItem<Pick<Meta, 'page'>>;
7
+ export {};
@@ -4,7 +4,7 @@ import type { ConsoleTransportOptions } from './types';
4
4
  export declare class ConsoleTransport extends BaseTransport {
5
5
  private options;
6
6
  readonly name = "@grafana/faro-web-sdk:transport-console";
7
- readonly version = "1.12.2";
7
+ readonly version = "1.13.0";
8
8
  constructor(options?: ConsoleTransportOptions);
9
9
  send(item: TransportItem): void;
10
10
  }
@@ -4,7 +4,7 @@ import type { FetchTransportOptions } from './types';
4
4
  export declare class FetchTransport extends BaseTransport {
5
5
  private options;
6
6
  readonly name = "@grafana/faro-web-sdk:transport-fetch";
7
- readonly version = "1.12.2";
7
+ readonly version = "1.13.0";
8
8
  promiseBuffer: PromiseBuffer<Response | void>;
9
9
  private readonly rateLimitBackoffMs;
10
10
  private readonly getNow;
@@ -1,4 +1,3 @@
1
1
  export { isLocalStorageAvailable, isSessionStorageAvailable, webStorageType, getItem, isWebStorageAvailable, removeItem, setItem, } from './webStorage';
2
2
  export { throttle } from './throttle';
3
- export { getCircularDependencyReplacer, stringifyExternalJson } from './json';
4
3
  export { getIgnoreUrls } from './url';
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "@grafana/faro-web-sdk",
3
- "version": "1.12.2",
3
+ "version": "1.13.0",
4
4
  "description": "Faro instrumentations, metas, transports for web.",
5
+ "engines": {
6
+ "node": ">=18.0.0"
7
+ },
5
8
  "keywords": [
6
9
  "observability",
7
10
  "apm",
@@ -52,16 +55,17 @@
52
55
  "quality:circular-deps": "madge --circular ."
53
56
  },
54
57
  "dependencies": {
55
- "@grafana/faro-core": "^1.12.2",
58
+ "@grafana/faro-core": "^1.13.0",
56
59
  "ua-parser-js": "^1.0.32",
57
60
  "web-vitals": "^4.0.1"
58
61
  },
59
62
  "devDependencies": {
63
+ "@types/node": "^22.10.2",
60
64
  "@types/ua-parser-js": "^0.7.36",
61
65
  "user-agent-data-types": "^0.4.2"
62
66
  },
63
67
  "publishConfig": {
64
68
  "access": "public"
65
69
  },
66
- "gitHead": "f71b569b84d6aaa7d1cfe51d24ab0b6387d03812"
70
+ "gitHead": "6cd423ffab2f4218c81d624577958d3140a438ba"
67
71
  }
@@ -1,2 +0,0 @@
1
- import type { MetaItem } from '@grafana/faro-core';
2
- export declare const defaultMetas: MetaItem[];
@@ -1,2 +0,0 @@
1
- export declare function getCircularDependencyReplacer(): (_key: string | Symbol, value: unknown) => unknown;
2
- export declare function stringifyExternalJson(json?: any): string;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultMetas = void 0;
4
- var browser_1 = require("./browser");
5
- var page_1 = require("./page");
6
- exports.defaultMetas = [browser_1.browserMeta, page_1.pageMeta];
7
- //# sourceMappingURL=const.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/metas/const.ts"],"names":[],"mappings":";;;AAEA,qCAAwC;AACxC,+BAAkC;AAErB,QAAA,YAAY,GAAe,CAAC,qBAAW,EAAE,eAAQ,CAAC,CAAC","sourcesContent":["import type { MetaItem } from '@grafana/faro-core';\n\nimport { browserMeta } from './browser';\nimport { pageMeta } from './page';\n\nexport const defaultMetas: MetaItem[] = [browserMeta, pageMeta];\n"]}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stringifyExternalJson = exports.getCircularDependencyReplacer = void 0;
4
- function getCircularDependencyReplacer() {
5
- var valueSeen = new WeakSet();
6
- return function (_key, value) {
7
- if (typeof value === 'object' && value !== null) {
8
- if (valueSeen.has(value)) {
9
- return null;
10
- }
11
- valueSeen.add(value);
12
- }
13
- return value;
14
- };
15
- }
16
- exports.getCircularDependencyReplacer = getCircularDependencyReplacer;
17
- function stringifyExternalJson(json) {
18
- if (json === void 0) { json = {}; }
19
- return JSON.stringify(json !== null && json !== void 0 ? json : {}, getCircularDependencyReplacer());
20
- }
21
- exports.stringifyExternalJson = stringifyExternalJson;
22
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/utils/json.ts"],"names":[],"mappings":";;;AAAA,SAAgB,6BAA6B;IAC3C,IAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,OAAO,UAAU,IAAqB,EAAE,KAAc;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;YAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;YACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAXD,sEAWC;AAQD,SAAgB,qBAAqB,CAAC,IAAc;IAAd,qBAAA,EAAA,SAAc;IAClD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,6BAA6B,EAAE,CAAC,CAAC;AACrE,CAAC;AAFD,sDAEC","sourcesContent":["export function getCircularDependencyReplacer() {\n const valueSeen = new WeakSet();\n return function (_key: string | Symbol, value: unknown) {\n if (typeof value === 'object' && value !== null) {\n if (valueSeen.has(value)) {\n return null;\n }\n valueSeen.add(value);\n }\n return value;\n };\n}\n\ntype JSONObject = {\n [key: string]: JSONValue;\n};\ntype JSONArray = JSONValue[] & {};\ntype JSONValue = string | number | boolean | null | JSONObject | JSONArray;\n\nexport function stringifyExternalJson(json: any = {}) {\n return JSON.stringify(json ?? {}, getCircularDependencyReplacer());\n}\n"]}
@@ -1,4 +0,0 @@
1
- import { browserMeta } from './browser';
2
- import { pageMeta } from './page';
3
- export const defaultMetas = [browserMeta, pageMeta];
4
- //# sourceMappingURL=const.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/metas/const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["import type { MetaItem } from '@grafana/faro-core';\n\nimport { browserMeta } from './browser';\nimport { pageMeta } from './page';\n\nexport const defaultMetas: MetaItem[] = [browserMeta, pageMeta];\n"]}
@@ -1,16 +0,0 @@
1
- export function getCircularDependencyReplacer() {
2
- const valueSeen = new WeakSet();
3
- return function (_key, value) {
4
- if (typeof value === 'object' && value !== null) {
5
- if (valueSeen.has(value)) {
6
- return null;
7
- }
8
- valueSeen.add(value);
9
- }
10
- return value;
11
- };
12
- }
13
- export function stringifyExternalJson(json = {}) {
14
- return JSON.stringify(json !== null && json !== void 0 ? json : {}, getCircularDependencyReplacer());
15
- }
16
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/utils/json.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,6BAA6B;IAC3C,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,OAAO,UAAU,IAAqB,EAAE,KAAc;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;YAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;YACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,qBAAqB,CAAC,OAAY,EAAE;IAClD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,6BAA6B,EAAE,CAAC,CAAC;AACrE,CAAC","sourcesContent":["export function getCircularDependencyReplacer() {\n const valueSeen = new WeakSet();\n return function (_key: string | Symbol, value: unknown) {\n if (typeof value === 'object' && value !== null) {\n if (valueSeen.has(value)) {\n return null;\n }\n valueSeen.add(value);\n }\n return value;\n };\n}\n\ntype JSONObject = {\n [key: string]: JSONValue;\n};\ntype JSONArray = JSONValue[] & {};\ntype JSONValue = string | number | boolean | null | JSONObject | JSONArray;\n\nexport function stringifyExternalJson(json: any = {}) {\n return JSON.stringify(json ?? {}, getCircularDependencyReplacer());\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { MetaItem } from '@grafana/faro-core';
2
- export declare const defaultMetas: MetaItem[];
@@ -1,2 +0,0 @@
1
- export declare function getCircularDependencyReplacer(): (_key: string | Symbol, value: unknown) => unknown;
2
- export declare function stringifyExternalJson(json?: any): string;