@posthog/browser-common 0.2.1 → 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.
- package/README.md +47 -23
- package/dist/client.d.ts +15 -91
- package/dist/config.js +1 -1
- package/dist/config.mjs +1 -1
- package/dist/core-extension.d.ts +80 -0
- package/dist/core-extension.js +36 -0
- package/dist/core-extension.mjs +2 -0
- package/dist/disposable.d.ts +2 -0
- package/dist/disposable.js +31 -1
- package/dist/disposable.mjs +14 -0
- package/dist/extension-runtime.d.ts +34 -0
- package/dist/extension-runtime.js +109 -0
- package/dist/extension-runtime.mjs +75 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +60 -7
- package/dist/index.mjs +4 -1
- package/dist/persistence.d.ts +15 -12
- package/dist/pubsub.d.ts +1 -1
- package/dist/pubsub.js +6 -8
- package/dist/pubsub.mjs +6 -8
- package/dist/types/compression.d.ts +5 -0
- package/dist/types/compression.js +39 -0
- package/dist/types/compression.mjs +5 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +87 -0
- package/dist/types/index.mjs +4 -0
- package/dist/types/network-recording.d.ts +42 -0
- package/dist/types/network-recording.js +18 -0
- package/dist/types/network-recording.mjs +0 -0
- package/dist/types/remote-config.d.ts +180 -0
- package/dist/types/remote-config.js +18 -0
- package/dist/types/remote-config.mjs +0 -0
- package/dist/types/surveys.d.ts +243 -0
- package/dist/types/surveys.js +140 -0
- package/dist/types/surveys.mjs +76 -0
- package/package.json +11 -3
|
@@ -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
|
|
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,
|
|
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
|
|
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
|
-
|
|
26
|
-
__webpack_require__.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
"
|
|
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
|
|
4
|
+
export * from "./types/index.mjs";
|
|
5
|
+
export { CoreExtension, Publisher, createDisposable };
|
package/dist/persistence.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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
|
-
*
|
|
19
|
-
*
|
|
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.
|
|
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
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
}
|
|
@@ -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,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,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
|