@posthog/browser-common 0.2.0 → 0.2.2

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.
@@ -0,0 +1,75 @@
1
+ import { isFunction } from "@posthog/core";
2
+ class ExtensionRuntime {
3
+ constructor(_logger){
4
+ this._logger = _logger;
5
+ this._extensions = new Map();
6
+ this._registrationOrder = [];
7
+ this._providerReservations = new Map();
8
+ this._providers = new Map();
9
+ }
10
+ async add(extension, client) {
11
+ if (this._disposePromise) throw new Error('Cannot add an extension to a disposed ExtensionRuntime');
12
+ if (this._extensions.has(extension.name)) throw new Error(`Browser extension "${extension.name}" is already registered`);
13
+ for (const token of extension.provides ?? [])if (this._providerReservations.has(token)) throw new Error(`Browser extension token "${token}" is already registered`);
14
+ const registered = {
15
+ extension,
16
+ setupPromise: Promise.resolve()
17
+ };
18
+ this._extensions.set(extension.name, registered);
19
+ this._registrationOrder.push(registered);
20
+ for (const token of extension.provides ?? [])this._providerReservations.set(token, registered);
21
+ let setupResult;
22
+ try {
23
+ setupResult = extension.setup(client);
24
+ } catch (error) {
25
+ registered.setupPromise = this._handleSetupFailure(registered, error);
26
+ return registered.setupPromise;
27
+ }
28
+ if (setupResult && isFunction(setupResult.then)) registered.setupPromise = setupResult.then(()=>this._publishRegistration(registered)).catch((error)=>this._handleSetupFailure(registered, error));
29
+ else this._publishRegistration(registered);
30
+ return registered.setupPromise;
31
+ }
32
+ getExtension(token) {
33
+ return this._providers.get(token);
34
+ }
35
+ dispose() {
36
+ if (!this._disposePromise) this._disposePromise = this._disposeAll();
37
+ return this._disposePromise;
38
+ }
39
+ async _disposeAll() {
40
+ for (const registered of this._registrationOrder.slice().reverse()){
41
+ await registered.setupPromise;
42
+ await this._disposeRegistration(registered);
43
+ }
44
+ this._extensions.clear();
45
+ this._registrationOrder.length = 0;
46
+ this._providerReservations.clear();
47
+ this._providers.clear();
48
+ }
49
+ async _handleSetupFailure(registered, error) {
50
+ this._removeRegistration(registered);
51
+ this._logger.error(`Failed to set up browser extension "${registered.extension.name}"`, error);
52
+ if (this._disposePromise) return;
53
+ await this._disposeRegistration(registered);
54
+ const index = this._registrationOrder.indexOf(registered);
55
+ if (-1 !== index) this._registrationOrder.splice(index, 1);
56
+ }
57
+ _disposeRegistration(registered) {
58
+ if (!registered.disposalPromise) registered.disposalPromise = Promise.resolve().then(()=>registered.extension.dispose()).catch((error)=>{
59
+ this._logger.error(`Failed to dispose browser extension "${registered.extension.name}"`, error);
60
+ });
61
+ return registered.disposalPromise;
62
+ }
63
+ _removeRegistration(registered) {
64
+ if (this._extensions.get(registered.extension.name) === registered) this._extensions.delete(registered.extension.name);
65
+ for (const token of registered.extension.provides ?? []){
66
+ if (this._providerReservations.get(token) === registered) this._providerReservations.delete(token);
67
+ if (this._providers.get(token) === registered.extension) this._providers.delete(token);
68
+ }
69
+ }
70
+ _publishRegistration(registered) {
71
+ if (this._disposePromise || this._extensions.get(registered.extension.name) !== registered) return;
72
+ for (const token of registered.extension.provides ?? [])this._providers.set(token, registered.extension);
73
+ }
74
+ }
75
+ export { ExtensionRuntime };
package/dist/index.d.ts CHANGED
@@ -3,9 +3,12 @@
3
3
  * clients.
4
4
  */
5
5
  export type { Extension } from './extension';
6
- export type { Disposable } from './disposable';
6
+ export { CoreExtension } from './core-extension';
7
+ export type { DeepReadonly, SessionContext, NewSessionReason, NewSessionInfo, CapturedEventInfo, CaptureOptions, } from './core-extension';
8
+ export * from './types';
9
+ export { createDisposable, type Disposable } from './disposable';
7
10
  export type { ExtensionToken } from './token';
8
11
  export type { Listener } from './pubsub';
9
12
  export { Publisher } from './pubsub';
10
- export type { Client, SessionContext, NewSessionReason, NewSessionInfo, CapturedEventInfo, CaptureOptions, ApiResponse, ApiRequestInit, RemoteConfig, } from './client';
13
+ export type { Client, ApiResponse, ApiRequestInit } from './client';
11
14
  export type { KeyValueStore } from './persistence';
package/dist/index.js CHANGED
@@ -1,5 +1,37 @@
1
1
  "use strict";
2
- var __webpack_require__ = {};
2
+ var __webpack_modules__ = {
3
+ "./core-extension": function(module) {
4
+ module.exports = require("./core-extension.js");
5
+ },
6
+ "./disposable": function(module) {
7
+ module.exports = require("./disposable.js");
8
+ },
9
+ "./pubsub": function(module) {
10
+ module.exports = require("./pubsub.js");
11
+ },
12
+ "./types": function(module) {
13
+ module.exports = require("./types/index.js");
14
+ }
15
+ };
16
+ var __webpack_module_cache__ = {};
17
+ function __webpack_require__(moduleId) {
18
+ var cachedModule = __webpack_module_cache__[moduleId];
19
+ if (void 0 !== cachedModule) return cachedModule.exports;
20
+ var module = __webpack_module_cache__[moduleId] = {
21
+ exports: {}
22
+ };
23
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
24
+ return module.exports;
25
+ }
26
+ (()=>{
27
+ __webpack_require__.n = (module)=>{
28
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
29
+ __webpack_require__.d(getter, {
30
+ a: getter
31
+ });
32
+ return getter;
33
+ };
34
+ })();
3
35
  (()=>{
4
36
  __webpack_require__.d = (exports1, definition)=>{
5
37
  for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
@@ -22,14 +54,35 @@ var __webpack_require__ = {};
22
54
  };
23
55
  })();
24
56
  var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- Publisher: ()=>external_pubsub_js_namespaceObject.Publisher
28
- });
29
- const external_pubsub_js_namespaceObject = require("./pubsub.js");
57
+ (()=>{
58
+ __webpack_require__.r(__webpack_exports__);
59
+ __webpack_require__.d(__webpack_exports__, {
60
+ CoreExtension: ()=>_core_extension__WEBPACK_IMPORTED_MODULE_0__.CoreExtension,
61
+ Publisher: ()=>_pubsub__WEBPACK_IMPORTED_MODULE_3__.Publisher,
62
+ createDisposable: ()=>_disposable__WEBPACK_IMPORTED_MODULE_2__.createDisposable
63
+ });
64
+ var _core_extension__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./core-extension");
65
+ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./types");
66
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
67
+ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_1__)if ([
68
+ "createDisposable",
69
+ "default",
70
+ "CoreExtension",
71
+ "Publisher"
72
+ ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
73
+ return _types__WEBPACK_IMPORTED_MODULE_1__[key];
74
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
75
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
76
+ var _disposable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./disposable");
77
+ var _pubsub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./pubsub");
78
+ })();
79
+ exports.CoreExtension = __webpack_exports__.CoreExtension;
30
80
  exports.Publisher = __webpack_exports__.Publisher;
81
+ exports.createDisposable = __webpack_exports__.createDisposable;
31
82
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
32
- "Publisher"
83
+ "CoreExtension",
84
+ "Publisher",
85
+ "createDisposable"
33
86
  ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
34
87
  Object.defineProperty(exports, '__esModule', {
35
88
  value: true
package/dist/index.mjs CHANGED
@@ -1,2 +1,5 @@
1
+ import { CoreExtension } from "./core-extension.mjs";
2
+ import { createDisposable } from "./disposable.mjs";
1
3
  import { Publisher } from "./pubsub.mjs";
2
- export { Publisher };
4
+ export * from "./types/index.mjs";
5
+ export { CoreExtension, Publisher, createDisposable };
@@ -1,11 +1,14 @@
1
1
  /**
2
- * Async key-value store for small extension state. Backed by whatever the
3
- * client provides a synchronous store resolves immediately, an asynchronous
4
- * one (e.g. IndexedDB) does real I/O so reads and writes are always awaited.
2
+ * Key-value store for small extension state. Implementations backed by
3
+ * synchronous persistence may return immediately, while asynchronous stores
4
+ * (for example IndexedDB) may return promises. Consumers can await either.
5
5
  *
6
- * The store is namespaced to the client instance, so keys are local to the
7
- * extension and never collide with core SDK state. Values must be
8
- * JSON-serializable; setting `null`/`undefined` removes the key.
6
+ * Keys map verbatim to the host client's shared persistence. In browser-v1,
7
+ * unknown keys are normally included as event properties, collisions overwrite
8
+ * host/core state, and reset clears them. Every SDK-owned key therefore needs an
9
+ * explicit event/hidden/derived exposure policy in each host, and sensitive data
10
+ * must not be stored unless its transmission is approved. Values must be
11
+ * JSON-serializable.
9
12
  */
10
13
  export interface KeyValueStore {
11
14
  /**
@@ -13,12 +16,12 @@ export interface KeyValueStore {
13
16
  *
14
17
  * @returns The stored value, or `undefined` when the key is missing.
15
18
  */
16
- get<T = unknown>(key: string): Promise<T | undefined>;
19
+ get<T = unknown>(key: string): T | undefined | Promise<T | undefined>;
17
20
  /**
18
- * Store a JSON-serializable value by key. Passing `null` or `undefined`
19
- * removes the key instead of persisting that value.
21
+ * Forward a JSON-serializable value, including nullish values, to the host's
22
+ * native persistence. `undefined` is not portable or durable storage.
20
23
  */
21
- set(key: string, value: unknown): Promise<void>;
22
- /** Remove a value by key. Resolves successfully when the key is already absent. */
23
- remove(key: string): Promise<void>;
24
+ set(key: string, value: unknown): void | Promise<void>;
25
+ /** Remove a value by key. This is the portable deletion operation. */
26
+ remove(key: string): void | Promise<void>;
24
27
  }
package/dist/pubsub.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Disposable } from './disposable';
1
+ import { type Disposable } from './disposable';
2
2
  /**
3
3
  * Call it with a handler to start listening; dispose the returned
4
4
  * {@link Disposable} to stop. There is one `Listener` per event type, so every
package/dist/pubsub.js CHANGED
@@ -26,6 +26,7 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  Publisher: ()=>Publisher
28
28
  });
29
+ const external_disposable_js_namespaceObject = require("./disposable.js");
29
30
  class Publisher {
30
31
  publish(payload) {
31
32
  const subscriptions = this._subscriptions.slice();
@@ -47,14 +48,11 @@ class Publisher {
47
48
  isActive: true
48
49
  };
49
50
  this._subscriptions.push(subscription);
50
- return {
51
- dispose: ()=>{
52
- if (!subscription.isActive) return;
53
- subscription.isActive = false;
54
- const index = this._subscriptions.indexOf(subscription);
55
- if (-1 !== index) this._subscriptions.splice(index, 1);
56
- }
57
- };
51
+ return (0, external_disposable_js_namespaceObject.createDisposable)(()=>{
52
+ subscription.isActive = false;
53
+ const index = this._subscriptions.indexOf(subscription);
54
+ if (-1 !== index) this._subscriptions.splice(index, 1);
55
+ });
58
56
  };
59
57
  }
60
58
  }
package/dist/pubsub.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { createDisposable } from "./disposable.mjs";
1
2
  class Publisher {
2
3
  publish(payload) {
3
4
  const subscriptions = this._subscriptions.slice();
@@ -19,14 +20,11 @@ class Publisher {
19
20
  isActive: true
20
21
  };
21
22
  this._subscriptions.push(subscription);
22
- return {
23
- dispose: ()=>{
24
- if (!subscription.isActive) return;
25
- subscription.isActive = false;
26
- const index = this._subscriptions.indexOf(subscription);
27
- if (-1 !== index) this._subscriptions.splice(index, 1);
28
- }
29
- };
23
+ return createDisposable(()=>{
24
+ subscription.isActive = false;
25
+ const index = this._subscriptions.indexOf(subscription);
26
+ if (-1 !== index) this._subscriptions.splice(index, 1);
27
+ });
30
28
  };
31
29
  }
32
30
  }
package/dist/token.d.ts CHANGED
@@ -1,21 +1,22 @@
1
+ /** Phantom brand carrying the capability type without emitting runtime code. */
2
+ declare const extensionTokenType: unique symbol;
1
3
  /**
2
- * A typed, implementation-free key for resolving an extension that provides a
3
- * capability. Declared as a shared `const` next to the providing extension's
4
+ * A typed, implementation-free string for resolving an extension that provides
5
+ * a capability. Declared as a shared `const` next to the providing extension's
4
6
  * interface:
5
7
  *
6
8
  * ```ts
7
9
  * export interface FeatureFlagsExtension extends Extension { … }
8
- * export const FeatureFlags: ExtensionToken<FeatureFlagsExtension> = { name: 'featureFlags' }
10
+ * export const FeatureFlags = 'posthog.featureFlags' as ExtensionToken<FeatureFlagsExtension>
9
11
  * ```
10
12
  *
11
13
  * A token holds no implementation, so importing one never pulls the provider's
12
- * code into the consumer's bundle. The registry is keyed by token identity
13
- * (the shared object reference), so provider and consumer must import the same
14
- * exported token; `name` is for diagnostics only.
14
+ * code into the consumer's bundle. Its generic brand lets `getExtension` infer
15
+ * the provided type, while its runtime string value remains stable across
16
+ * independently compiled scripts. Token strings must be globally unique and
17
+ * stable for the lifetime of the capability contract.
15
18
  */
16
- export interface ExtensionToken<T> {
17
- /** Human-readable capability name used only for diagnostics. */
18
- readonly name: string;
19
- /** Phantom: carries the provided type for inference; never present at runtime. */
20
- readonly __provides?: T;
21
- }
19
+ export type ExtensionToken<T> = string & {
20
+ readonly [extensionTokenType]: T;
21
+ };
22
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare const Compression: {
2
+ readonly GZipJS: "gzip-js";
3
+ readonly Base64: "base64";
4
+ };
5
+ export type Compression = (typeof Compression)[keyof typeof Compression];
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ Compression: ()=>Compression
28
+ });
29
+ const Compression = {
30
+ GZipJS: 'gzip-js',
31
+ Base64: 'base64'
32
+ };
33
+ exports.Compression = __webpack_exports__.Compression;
34
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
35
+ "Compression"
36
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
37
+ Object.defineProperty(exports, '__esModule', {
38
+ value: true
39
+ });
@@ -0,0 +1,5 @@
1
+ const Compression = {
2
+ GZipJS: 'gzip-js',
3
+ Base64: 'base64'
4
+ };
5
+ export { Compression };
@@ -0,0 +1,4 @@
1
+ export * from './compression';
2
+ export * from './network-recording';
3
+ export * from './remote-config';
4
+ export * from './surveys';
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./compression": function(module) {
4
+ module.exports = require("./compression.js");
5
+ },
6
+ "./network-recording": function(module) {
7
+ module.exports = require("./network-recording.js");
8
+ },
9
+ "./remote-config": function(module) {
10
+ module.exports = require("./remote-config.js");
11
+ },
12
+ "./surveys": function(module) {
13
+ module.exports = require("./surveys.js");
14
+ }
15
+ };
16
+ var __webpack_module_cache__ = {};
17
+ function __webpack_require__(moduleId) {
18
+ var cachedModule = __webpack_module_cache__[moduleId];
19
+ if (void 0 !== cachedModule) return cachedModule.exports;
20
+ var module = __webpack_module_cache__[moduleId] = {
21
+ exports: {}
22
+ };
23
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
24
+ return module.exports;
25
+ }
26
+ (()=>{
27
+ __webpack_require__.n = (module)=>{
28
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
29
+ __webpack_require__.d(getter, {
30
+ a: getter
31
+ });
32
+ return getter;
33
+ };
34
+ })();
35
+ (()=>{
36
+ __webpack_require__.d = (exports1, definition)=>{
37
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
38
+ enumerable: true,
39
+ get: definition[key]
40
+ });
41
+ };
42
+ })();
43
+ (()=>{
44
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
45
+ })();
46
+ (()=>{
47
+ __webpack_require__.r = (exports1)=>{
48
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
49
+ value: 'Module'
50
+ });
51
+ Object.defineProperty(exports1, '__esModule', {
52
+ value: true
53
+ });
54
+ };
55
+ })();
56
+ var __webpack_exports__ = {};
57
+ (()=>{
58
+ __webpack_require__.r(__webpack_exports__);
59
+ var _compression__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./compression");
60
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
61
+ for(var __WEBPACK_IMPORT_KEY__ in _compression__WEBPACK_IMPORTED_MODULE_0__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
62
+ return _compression__WEBPACK_IMPORTED_MODULE_0__[key];
63
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
64
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
65
+ var _network_recording__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./network-recording");
66
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
67
+ for(var __WEBPACK_IMPORT_KEY__ in _network_recording__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
68
+ return _network_recording__WEBPACK_IMPORTED_MODULE_1__[key];
69
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
70
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
71
+ var _remote_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./remote-config");
72
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
73
+ for(var __WEBPACK_IMPORT_KEY__ in _remote_config__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
74
+ return _remote_config__WEBPACK_IMPORTED_MODULE_2__[key];
75
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
76
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
77
+ var _surveys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./surveys");
78
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
79
+ for(var __WEBPACK_IMPORT_KEY__ in _surveys__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
80
+ return _surveys__WEBPACK_IMPORTED_MODULE_3__[key];
81
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
82
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
83
+ })();
84
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
85
+ Object.defineProperty(exports, '__esModule', {
86
+ value: true
87
+ });
@@ -0,0 +1,4 @@
1
+ export * from "./compression.mjs";
2
+ export * from "./network-recording.mjs";
3
+ export * from "./remote-config.mjs";
4
+ export * from "./surveys.mjs";
@@ -0,0 +1,42 @@
1
+ import type { CapturedNetworkRequest, InitiatorType } from '@posthog/types';
2
+ export type NetworkRecordOptions = {
3
+ initiatorTypes?: InitiatorType[];
4
+ maskRequestFn?: (data: CapturedNetworkRequest) => CapturedNetworkRequest | undefined;
5
+ recordHeaders?: boolean | {
6
+ request: boolean;
7
+ response: boolean;
8
+ };
9
+ recordBody?: boolean | string[] | {
10
+ request: boolean | string[];
11
+ response: boolean | string[];
12
+ };
13
+ recordInitialRequests?: boolean;
14
+ /**
15
+ * whether to record PerformanceEntry events for network requests
16
+ */
17
+ recordPerformance?: boolean;
18
+ /**
19
+ * the PerformanceObserver will only observe these entry types
20
+ */
21
+ performanceEntryTypeToObserve: string[];
22
+ /**
23
+ * the maximum size of the request/response body to record
24
+ * NB this will be at most 1MB even if set larger
25
+ */
26
+ payloadSizeLimitBytes: number;
27
+ /**
28
+ * when true, read bodies through a streaming reader that stops at payloadSizeLimitBytes
29
+ * instead of buffering the whole body and then enforcing the limit. Reads only a clone of
30
+ * the body, so it never consumes the stream the page itself reads.
31
+ * @default false
32
+ */
33
+ streamNetworkBody?: boolean;
34
+ /**
35
+ * some domains we should never record the payload
36
+ * for example other companies session replay ingestion payloads aren't super useful but are gigantic
37
+ * if this isn't provided we use a default list
38
+ * if this is provided - we add the provided list to the default list
39
+ * i.e. we never record the payloads on the default deny list
40
+ */
41
+ payloadHostDenyList?: string[];
42
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
File without changes