@grafana/faro-core 1.19.0 → 2.0.0-beta
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/bundle/faro-core.iife.js +1 -1
- package/dist/bundle/types/api/apiTestHelpers.d.ts +2 -0
- package/dist/bundle/types/api/events/initialize.d.ts +4 -6
- package/dist/bundle/types/api/exceptions/initialize.d.ts +4 -6
- package/dist/bundle/types/api/index.d.ts +2 -3
- package/dist/bundle/types/api/initialize.d.ts +1 -3
- package/dist/bundle/types/api/logs/initialize.d.ts +4 -6
- package/dist/bundle/types/api/measurements/initialize.d.ts +4 -6
- package/dist/bundle/types/api/meta/initialize.d.ts +1 -5
- package/dist/bundle/types/api/types.d.ts +3 -44
- package/dist/bundle/types/api/userActions/const.d.ts +6 -0
- package/dist/bundle/types/api/userActions/index.d.ts +3 -0
- package/dist/bundle/types/api/userActions/initialize.d.ts +10 -0
- package/dist/bundle/types/api/userActions/types.d.ts +45 -0
- package/dist/bundle/types/api/userActions/userAction.d.ts +41 -0
- package/dist/bundle/types/index.d.ts +2 -2
- package/dist/bundle/types/semantic.d.ts +0 -14
- package/dist/bundle/types/testUtils/mockTransport.d.ts +1 -1
- package/dist/bundle/types/version.d.ts +1 -1
- package/dist/cjs/api/apiTestHelpers.js +5 -1
- package/dist/cjs/api/apiTestHelpers.js.map +1 -1
- package/dist/cjs/api/events/initialize.js +4 -5
- package/dist/cjs/api/events/initialize.js.map +1 -1
- package/dist/cjs/api/exceptions/initialize.js +6 -7
- package/dist/cjs/api/exceptions/initialize.js.map +1 -1
- package/dist/cjs/api/index.js +5 -8
- package/dist/cjs/api/index.js.map +1 -1
- package/dist/cjs/api/initialize.js +8 -8
- package/dist/cjs/api/initialize.js.map +1 -1
- package/dist/cjs/api/logs/initialize.js +6 -7
- package/dist/cjs/api/logs/initialize.js.map +1 -1
- package/dist/cjs/api/measurements/initialize.js +4 -5
- package/dist/cjs/api/measurements/initialize.js.map +1 -1
- package/dist/cjs/api/meta/initialize.js.map +1 -1
- package/dist/cjs/api/types.js.map +1 -1
- package/dist/cjs/api/userActions/const.js +11 -0
- package/dist/cjs/api/userActions/const.js.map +1 -0
- package/dist/cjs/api/userActions/index.js +11 -0
- package/dist/cjs/api/userActions/index.js.map +1 -0
- package/dist/cjs/api/userActions/initialize.js +57 -0
- package/dist/cjs/api/userActions/initialize.js.map +1 -0
- package/dist/cjs/api/userActions/types.js +11 -0
- package/dist/cjs/api/userActions/types.js.map +1 -0
- package/dist/cjs/api/userActions/userAction.js +165 -0
- package/dist/cjs/api/userActions/userAction.js.map +1 -0
- package/dist/cjs/index.js +5 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/semantic.js +1 -15
- package/dist/cjs/semantic.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/api/apiTestHelpers.js +4 -0
- package/dist/esm/api/apiTestHelpers.js.map +1 -1
- package/dist/esm/api/events/initialize.js +4 -5
- package/dist/esm/api/events/initialize.js.map +1 -1
- package/dist/esm/api/exceptions/initialize.js +4 -5
- package/dist/esm/api/exceptions/initialize.js.map +1 -1
- package/dist/esm/api/index.js +1 -2
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/initialize.js +8 -7
- package/dist/esm/api/initialize.js.map +1 -1
- package/dist/esm/api/logs/initialize.js +4 -5
- package/dist/esm/api/logs/initialize.js.map +1 -1
- package/dist/esm/api/measurements/initialize.js +4 -5
- package/dist/esm/api/measurements/initialize.js.map +1 -1
- package/dist/esm/api/meta/initialize.js.map +1 -1
- package/dist/esm/api/types.js.map +1 -1
- package/dist/esm/api/userActions/const.js +8 -0
- package/dist/esm/api/userActions/const.js.map +1 -0
- package/dist/esm/api/userActions/index.js +4 -0
- package/dist/esm/api/userActions/index.js.map +1 -0
- package/dist/esm/api/userActions/initialize.js +50 -0
- package/dist/esm/api/userActions/initialize.js.map +1 -0
- package/dist/esm/api/userActions/types.js +10 -0
- package/dist/esm/api/userActions/types.js.map +1 -0
- package/dist/esm/api/userActions/userAction.js +132 -0
- package/dist/esm/api/userActions/userAction.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/semantic.js +0 -14
- package/dist/esm/semantic.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/spec/core/src/api/apiTestHelpers.js +5 -1
- package/dist/spec/core/src/api/apiTestHelpers.js.map +1 -1
- package/dist/spec/core/src/api/events/initialize.js +4 -5
- package/dist/spec/core/src/api/events/initialize.js.map +1 -1
- package/dist/spec/core/src/api/events/initialize.test.js +11 -33
- package/dist/spec/core/src/api/events/initialize.test.js.map +1 -1
- package/dist/spec/core/src/api/exceptions/initialize.js +6 -7
- package/dist/spec/core/src/api/exceptions/initialize.js.map +1 -1
- package/dist/spec/core/src/api/exceptions/initialize.test.js +24 -52
- package/dist/spec/core/src/api/exceptions/initialize.test.js.map +1 -1
- package/dist/spec/core/src/api/index.js +5 -8
- package/dist/spec/core/src/api/index.js.map +1 -1
- package/dist/spec/core/src/api/initialize.js +8 -8
- package/dist/spec/core/src/api/initialize.js.map +1 -1
- package/dist/spec/core/src/api/initialize.test.js +0 -50
- package/dist/spec/core/src/api/initialize.test.js.map +1 -1
- package/dist/spec/core/src/api/logs/initialize.js +6 -7
- package/dist/spec/core/src/api/logs/initialize.js.map +1 -1
- package/dist/spec/core/src/api/logs/initialize.test.js +12 -73
- package/dist/spec/core/src/api/logs/initialize.test.js.map +1 -1
- package/dist/spec/core/src/api/measurements/initialize.js +4 -5
- package/dist/spec/core/src/api/measurements/initialize.js.map +1 -1
- package/dist/spec/core/src/api/measurements/initialize.test.js +10 -72
- package/dist/spec/core/src/api/measurements/initialize.test.js.map +1 -1
- package/dist/spec/core/src/api/meta/initialize.js.map +1 -1
- package/dist/spec/core/src/api/types.js.map +1 -1
- package/dist/spec/core/src/api/userActions/const.js +11 -0
- package/dist/spec/core/src/api/userActions/const.js.map +1 -0
- package/dist/spec/core/src/api/userActions/index.js +11 -0
- package/dist/spec/core/src/api/userActions/index.js.map +1 -0
- package/dist/spec/core/src/api/userActions/initialize.js +57 -0
- package/dist/spec/core/src/api/userActions/initialize.js.map +1 -0
- package/dist/spec/core/src/api/userActions/initialize.test.js +62 -0
- package/dist/spec/core/src/api/userActions/initialize.test.js.map +1 -0
- package/dist/spec/core/src/api/userActions/types.js +11 -0
- package/dist/spec/core/src/api/userActions/types.js.map +1 -0
- package/dist/spec/core/src/api/userActions/userAction.js +165 -0
- package/dist/spec/core/src/api/userActions/userAction.js.map +1 -0
- package/dist/spec/core/src/api/userActions/userAction.test.js +75 -0
- package/dist/spec/core/src/api/userActions/userAction.test.js.map +1 -0
- package/dist/spec/core/src/index.js +5 -7
- package/dist/spec/core/src/index.js.map +1 -1
- package/dist/spec/core/src/semantic.js +1 -15
- package/dist/spec/core/src/semantic.js.map +1 -1
- package/dist/spec/core/src/version.js +1 -1
- package/dist/spec/core/src/version.js.map +1 -1
- package/dist/types/api/apiTestHelpers.d.ts +2 -0
- package/dist/types/api/events/initialize.d.ts +4 -6
- package/dist/types/api/exceptions/initialize.d.ts +4 -6
- package/dist/types/api/index.d.ts +2 -3
- package/dist/types/api/initialize.d.ts +1 -3
- package/dist/types/api/logs/initialize.d.ts +4 -6
- package/dist/types/api/measurements/initialize.d.ts +4 -6
- package/dist/types/api/meta/initialize.d.ts +1 -5
- package/dist/types/api/types.d.ts +3 -44
- package/dist/types/api/userActions/const.d.ts +6 -0
- package/dist/types/api/userActions/index.d.ts +3 -0
- package/dist/types/api/userActions/initialize.d.ts +10 -0
- package/dist/types/api/userActions/types.d.ts +45 -0
- package/dist/types/api/userActions/userAction.d.ts +41 -0
- package/dist/types/core/src/api/apiTestHelpers.d.ts +2 -0
- package/dist/types/core/src/api/events/initialize.d.ts +4 -6
- package/dist/types/core/src/api/exceptions/initialize.d.ts +4 -6
- package/dist/types/core/src/api/index.d.ts +2 -3
- package/dist/types/core/src/api/initialize.d.ts +1 -3
- package/dist/types/core/src/api/logs/initialize.d.ts +4 -6
- package/dist/types/core/src/api/measurements/initialize.d.ts +4 -6
- package/dist/types/core/src/api/meta/initialize.d.ts +1 -5
- package/dist/types/core/src/api/types.d.ts +3 -44
- package/dist/types/core/src/api/userActions/const.d.ts +6 -0
- package/dist/types/core/src/api/userActions/index.d.ts +3 -0
- package/dist/types/core/src/api/userActions/initialize.d.ts +10 -0
- package/dist/types/core/src/api/userActions/types.d.ts +45 -0
- package/dist/types/core/src/api/userActions/userAction.d.ts +41 -0
- package/dist/types/core/src/api/userActions/userAction.test.d.ts +1 -0
- package/dist/types/core/src/index.d.ts +2 -2
- package/dist/types/core/src/semantic.d.ts +0 -14
- package/dist/types/core/src/testUtils/mockTransport.d.ts +1 -1
- package/dist/types/core/src/version.d.ts +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/semantic.d.ts +0 -14
- package/dist/types/testUtils/mockTransport.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +3 -3
- package/dist/bundle/types/api/const.d.ts +0 -4
- package/dist/bundle/types/api/userActionLifecycleHandler.d.ts +0 -13
- package/dist/cjs/api/const.js +0 -8
- package/dist/cjs/api/const.js.map +0 -1
- package/dist/cjs/api/userActionLifecycleHandler.js +0 -58
- package/dist/cjs/api/userActionLifecycleHandler.js.map +0 -1
- package/dist/esm/api/const.js +0 -5
- package/dist/esm/api/const.js.map +0 -1
- package/dist/esm/api/userActionLifecycleHandler.js +0 -43
- package/dist/esm/api/userActionLifecycleHandler.js.map +0 -1
- package/dist/spec/core/src/api/const.js +0 -8
- package/dist/spec/core/src/api/const.js.map +0 -1
- package/dist/spec/core/src/api/userActionLifecycleHandler.js +0 -58
- package/dist/spec/core/src/api/userActionLifecycleHandler.js.map +0 -1
- package/dist/spec/core/src/api/userActionLifecycleHandler.test.js +0 -169
- package/dist/spec/core/src/api/userActionLifecycleHandler.test.js.map +0 -1
- package/dist/types/api/const.d.ts +0 -4
- package/dist/types/api/userActionLifecycleHandler.d.ts +0 -13
- package/dist/types/core/src/api/const.d.ts +0 -4
- package/dist/types/core/src/api/userActionLifecycleHandler.d.ts +0 -13
- /package/dist/types/core/src/api/{userActionLifecycleHandler.test.d.ts → userActions/initialize.test.d.ts} +0 -0
package/dist/esm/api/const.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/api/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC","sourcesContent":["export const USER_ACTION_START = 'user-action-start';\nexport const USER_ACTION_END = 'user-action-end';\nexport const USER_ACTION_CANCEL = 'user-action-cancel';\nexport const USER_ACTION_HALT = 'user-action-halt';\n"]}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { TransportItemType } from '../transports';
|
|
2
|
-
import { USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_START } from './const';
|
|
3
|
-
import { ItemBuffer } from './ItemBuffer';
|
|
4
|
-
export function createUserActionLifecycleHandler({ apiMessageBus, transports, config, }) {
|
|
5
|
-
const actionBuffer = new ItemBuffer();
|
|
6
|
-
const trackUserActionsExcludeItem = config.trackUserActionsExcludeItem;
|
|
7
|
-
let message;
|
|
8
|
-
apiMessageBus.subscribe((msg) => {
|
|
9
|
-
if (USER_ACTION_START === msg.type || USER_ACTION_HALT === msg.type) {
|
|
10
|
-
message = msg;
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (msg.type === USER_ACTION_END) {
|
|
14
|
-
const { id, name } = msg;
|
|
15
|
-
actionBuffer.flushBuffer((item) => {
|
|
16
|
-
if (isExcludeFromUserAction(item, trackUserActionsExcludeItem)) {
|
|
17
|
-
transports.execute(item);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const userActionItem = Object.assign(Object.assign({}, item), { payload: Object.assign(Object.assign({}, item.payload), { action: {
|
|
21
|
-
parentId: id,
|
|
22
|
-
name,
|
|
23
|
-
} }) });
|
|
24
|
-
transports.execute(userActionItem);
|
|
25
|
-
});
|
|
26
|
-
message = undefined;
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (msg.type === USER_ACTION_CANCEL) {
|
|
30
|
-
message = undefined;
|
|
31
|
-
actionBuffer.flushBuffer((item) => {
|
|
32
|
-
transports.execute(item);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const getMessage = () => message;
|
|
37
|
-
return { actionBuffer, getMessage };
|
|
38
|
-
}
|
|
39
|
-
function isExcludeFromUserAction(item, trackUserActionsExcludeItem) {
|
|
40
|
-
return ((trackUserActionsExcludeItem === null || trackUserActionsExcludeItem === void 0 ? void 0 : trackUserActionsExcludeItem(item)) ||
|
|
41
|
-
(item.type === TransportItemType.MEASUREMENT && item.payload.type === 'web-vitals'));
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=userActionLifecycleHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userActionLifecycleHandler.js","sourceRoot":"","sources":["../../../src/api/userActionLifecycleHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,iBAAiB,EAAmB,MAAM,eAAe,CAAC;AAGvF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,MAAM,UAAU,gCAAgC,CAAC,EAC/C,aAAa,EACb,UAAU,EACV,MAAM,GAKP;IACC,MAAM,YAAY,GAAG,IAAI,UAAU,EAAiB,CAAC;IACrD,MAAM,2BAA2B,GAAG,MAAM,CAAC,2BAA2B,CAAC;IACvE,IAAI,OAA0C,CAAC;IAE/C,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,IAAI,iBAAiB,KAAK,GAAG,CAAC,IAAI,IAAI,gBAAgB,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACpE,OAAO,GAAG,GAAG,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACjC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;YAEzB,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,CAAC;oBAC/D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,gCAClB,IAAI,KACP,OAAO,kCACF,IAAI,CAAC,OAAO,KACf,MAAM,EAAE;4BACN,QAAQ,EAAE,EAAE;4BACZ,IAAI;yBACL,MAEa,CAAC;gBAEnB,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,SAAS,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,OAAO,GAAG,SAAS,CAAC;YACpB,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,GAAmB,EAAE,CAAC,OAAO,CAAC;IACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAA6B,EAC7B,2BAAkE;IAElE,OAAO,CACL,CAAA,2BAA2B,aAA3B,2BAA2B,uBAA3B,2BAA2B,CAAG,IAAI,CAAC;QACnC,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,WAAW,IAAK,IAAI,CAAC,OAA4B,CAAC,IAAI,KAAK,YAAY,CAAC,CAC1G,CAAC;AACJ,CAAC","sourcesContent":["import type { Config } from '../config';\nimport { type TransportItem, TransportItemType, type Transports } from '../transports';\nimport type { Observable } from '../utils';\n\nimport { USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_START } from './const';\nimport { ItemBuffer } from './ItemBuffer';\nimport type { MeasurementEvent } from './measurements';\nimport type { APIEvent, ApiMessageBusMessages } from './types';\n\nexport function createUserActionLifecycleHandler({\n apiMessageBus,\n transports,\n config,\n}: {\n apiMessageBus: Observable<ApiMessageBusMessages>;\n transports: Transports;\n config: Config;\n}) {\n const actionBuffer = new ItemBuffer<TransportItem>();\n const trackUserActionsExcludeItem = config.trackUserActionsExcludeItem;\n let message: ApiMessageBusMessages | undefined;\n\n apiMessageBus.subscribe((msg) => {\n if (USER_ACTION_START === msg.type || USER_ACTION_HALT === msg.type) {\n message = msg;\n return;\n }\n\n if (msg.type === USER_ACTION_END) {\n const { id, name } = msg;\n\n actionBuffer.flushBuffer((item) => {\n if (isExcludeFromUserAction(item, trackUserActionsExcludeItem)) {\n transports.execute(item);\n return;\n }\n\n const userActionItem = {\n ...item,\n payload: {\n ...item.payload,\n action: {\n parentId: id,\n name,\n },\n },\n } as TransportItem;\n\n transports.execute(userActionItem);\n });\n\n message = undefined;\n return;\n }\n\n if (msg.type === USER_ACTION_CANCEL) {\n message = undefined;\n actionBuffer.flushBuffer((item) => {\n transports.execute(item);\n });\n }\n });\n\n const getMessage = (): typeof message => message;\n return { actionBuffer, getMessage };\n}\n\nfunction isExcludeFromUserAction(\n item: TransportItem<APIEvent>,\n trackUserActionsExcludeItem: Config['trackUserActionsExcludeItem']\n) {\n return (\n trackUserActionsExcludeItem?.(item) ||\n (item.type === TransportItemType.MEASUREMENT && (item.payload as MeasurementEvent).type === 'web-vitals')\n );\n}\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.USER_ACTION_HALT = exports.USER_ACTION_CANCEL = exports.USER_ACTION_END = exports.USER_ACTION_START = void 0;
|
|
4
|
-
exports.USER_ACTION_START = 'user-action-start';
|
|
5
|
-
exports.USER_ACTION_END = 'user-action-end';
|
|
6
|
-
exports.USER_ACTION_CANCEL = 'user-action-cancel';
|
|
7
|
-
exports.USER_ACTION_HALT = 'user-action-halt';
|
|
8
|
-
//# sourceMappingURL=const.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/api/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,gBAAgB,GAAG,kBAAkB,CAAC","sourcesContent":["export const USER_ACTION_START = 'user-action-start';\nexport const USER_ACTION_END = 'user-action-end';\nexport const USER_ACTION_CANCEL = 'user-action-cancel';\nexport const USER_ACTION_HALT = 'user-action-halt';\n"]}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.createUserActionLifecycleHandler = createUserActionLifecycleHandler;
|
|
15
|
-
var transports_1 = require("../transports");
|
|
16
|
-
var const_1 = require("./const");
|
|
17
|
-
var ItemBuffer_1 = require("./ItemBuffer");
|
|
18
|
-
function createUserActionLifecycleHandler(_a) {
|
|
19
|
-
var apiMessageBus = _a.apiMessageBus, transports = _a.transports, config = _a.config;
|
|
20
|
-
var actionBuffer = new ItemBuffer_1.ItemBuffer();
|
|
21
|
-
var trackUserActionsExcludeItem = config.trackUserActionsExcludeItem;
|
|
22
|
-
var message;
|
|
23
|
-
apiMessageBus.subscribe(function (msg) {
|
|
24
|
-
if (const_1.USER_ACTION_START === msg.type || const_1.USER_ACTION_HALT === msg.type) {
|
|
25
|
-
message = msg;
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (msg.type === const_1.USER_ACTION_END) {
|
|
29
|
-
var id_1 = msg.id, name_1 = msg.name;
|
|
30
|
-
actionBuffer.flushBuffer(function (item) {
|
|
31
|
-
if (isExcludeFromUserAction(item, trackUserActionsExcludeItem)) {
|
|
32
|
-
transports.execute(item);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
var userActionItem = __assign(__assign({}, item), { payload: __assign(__assign({}, item.payload), { action: {
|
|
36
|
-
parentId: id_1,
|
|
37
|
-
name: name_1,
|
|
38
|
-
} }) });
|
|
39
|
-
transports.execute(userActionItem);
|
|
40
|
-
});
|
|
41
|
-
message = undefined;
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (msg.type === const_1.USER_ACTION_CANCEL) {
|
|
45
|
-
message = undefined;
|
|
46
|
-
actionBuffer.flushBuffer(function (item) {
|
|
47
|
-
transports.execute(item);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
var getMessage = function () { return message; };
|
|
52
|
-
return { actionBuffer: actionBuffer, getMessage: getMessage };
|
|
53
|
-
}
|
|
54
|
-
function isExcludeFromUserAction(item, trackUserActionsExcludeItem) {
|
|
55
|
-
return ((trackUserActionsExcludeItem === null || trackUserActionsExcludeItem === void 0 ? void 0 : trackUserActionsExcludeItem(item)) ||
|
|
56
|
-
(item.type === transports_1.TransportItemType.MEASUREMENT && item.payload.type === 'web-vitals'));
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=userActionLifecycleHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userActionLifecycleHandler.js","sourceRoot":"","sources":["../../../../../src/api/userActionLifecycleHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AASA,4EAwDC;AAhED,4CAAuF;AAGvF,iCAAmG;AACnG,2CAA0C;AAI1C,SAAgB,gCAAgC,CAAC,EAQhD;QAPC,aAAa,mBAAA,EACb,UAAU,gBAAA,EACV,MAAM,YAAA;IAMN,IAAM,YAAY,GAAG,IAAI,uBAAU,EAAiB,CAAC;IACrD,IAAM,2BAA2B,GAAG,MAAM,CAAC,2BAA2B,CAAC;IACvE,IAAI,OAA0C,CAAC;IAE/C,aAAa,CAAC,SAAS,CAAC,UAAC,GAAG;QAC1B,IAAI,yBAAiB,KAAK,GAAG,CAAC,IAAI,IAAI,wBAAgB,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACpE,OAAO,GAAG,GAAG,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAe,EAAE,CAAC;YACzB,IAAA,IAAE,GAAW,GAAG,GAAd,EAAE,MAAI,GAAK,GAAG,KAAR,CAAS;YAEzB,YAAY,CAAC,WAAW,CAAC,UAAC,IAAI;gBAC5B,IAAI,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,CAAC;oBAC/D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,IAAM,cAAc,GAAG,sBAClB,IAAI,KACP,OAAO,wBACF,IAAI,CAAC,OAAO,KACf,MAAM,EAAE;4BACN,QAAQ,EAAE,IAAE;4BACZ,IAAI,QAAA;yBACL,MAEa,CAAC;gBAEnB,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,SAAS,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,0BAAkB,EAAE,CAAC;YACpC,OAAO,GAAG,SAAS,CAAC;YACpB,YAAY,CAAC,WAAW,CAAC,UAAC,IAAI;gBAC5B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAM,UAAU,GAAG,cAAsB,OAAA,OAAO,EAAP,CAAO,CAAC;IACjD,OAAO,EAAE,YAAY,cAAA,EAAE,UAAU,YAAA,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAA6B,EAC7B,2BAAkE;IAElE,OAAO,CACL,CAAA,2BAA2B,aAA3B,2BAA2B,uBAA3B,2BAA2B,CAAG,IAAI,CAAC;QACnC,CAAC,IAAI,CAAC,IAAI,KAAK,8BAAiB,CAAC,WAAW,IAAK,IAAI,CAAC,OAA4B,CAAC,IAAI,KAAK,YAAY,CAAC,CAC1G,CAAC;AACJ,CAAC","sourcesContent":["import type { Config } from '../config';\nimport { type TransportItem, TransportItemType, type Transports } from '../transports';\nimport type { Observable } from '../utils';\n\nimport { USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_START } from './const';\nimport { ItemBuffer } from './ItemBuffer';\nimport type { MeasurementEvent } from './measurements';\nimport type { APIEvent, ApiMessageBusMessages } from './types';\n\nexport function createUserActionLifecycleHandler({\n apiMessageBus,\n transports,\n config,\n}: {\n apiMessageBus: Observable<ApiMessageBusMessages>;\n transports: Transports;\n config: Config;\n}) {\n const actionBuffer = new ItemBuffer<TransportItem>();\n const trackUserActionsExcludeItem = config.trackUserActionsExcludeItem;\n let message: ApiMessageBusMessages | undefined;\n\n apiMessageBus.subscribe((msg) => {\n if (USER_ACTION_START === msg.type || USER_ACTION_HALT === msg.type) {\n message = msg;\n return;\n }\n\n if (msg.type === USER_ACTION_END) {\n const { id, name } = msg;\n\n actionBuffer.flushBuffer((item) => {\n if (isExcludeFromUserAction(item, trackUserActionsExcludeItem)) {\n transports.execute(item);\n return;\n }\n\n const userActionItem = {\n ...item,\n payload: {\n ...item.payload,\n action: {\n parentId: id,\n name,\n },\n },\n } as TransportItem;\n\n transports.execute(userActionItem);\n });\n\n message = undefined;\n return;\n }\n\n if (msg.type === USER_ACTION_CANCEL) {\n message = undefined;\n actionBuffer.flushBuffer((item) => {\n transports.execute(item);\n });\n }\n });\n\n const getMessage = (): typeof message => message;\n return { actionBuffer, getMessage };\n}\n\nfunction isExcludeFromUserAction(\n item: TransportItem<APIEvent>,\n trackUserActionsExcludeItem: Config['trackUserActionsExcludeItem']\n) {\n return (\n trackUserActionsExcludeItem?.(item) ||\n (item.type === TransportItemType.MEASUREMENT && (item.payload as MeasurementEvent).type === 'web-vitals')\n );\n}\n"]}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
var __1 = require("..");
|
|
15
|
-
var reactive_1 = require("../utils/reactive");
|
|
16
|
-
var apiTestHelpers_1 = require("./apiTestHelpers");
|
|
17
|
-
var const_1 = require("./const");
|
|
18
|
-
var userActionLifecycleHandler_1 = require("./userActionLifecycleHandler");
|
|
19
|
-
describe('userActionLifecycleHandler', function () {
|
|
20
|
-
it('assigns the user-action-start message to the message variable when it receives it', function () {
|
|
21
|
-
var apiMessageBus = new reactive_1.Observable();
|
|
22
|
-
var getMessage = (0, userActionLifecycleHandler_1.createUserActionLifecycleHandler)({
|
|
23
|
-
apiMessageBus: apiMessageBus,
|
|
24
|
-
transports: apiTestHelpers_1.mockTransports,
|
|
25
|
-
config: {},
|
|
26
|
-
}).getMessage;
|
|
27
|
-
var message = {
|
|
28
|
-
type: const_1.USER_ACTION_START,
|
|
29
|
-
name: 'start-test',
|
|
30
|
-
startTime: 0,
|
|
31
|
-
parentId: '123',
|
|
32
|
-
};
|
|
33
|
-
apiMessageBus.notify(message);
|
|
34
|
-
expect(getMessage()).toEqual(message);
|
|
35
|
-
});
|
|
36
|
-
it('assigns the user-action-halt message to the message variable when it receives it', function () {
|
|
37
|
-
var apiMessageBus = new reactive_1.Observable();
|
|
38
|
-
var getMessage = (0, userActionLifecycleHandler_1.createUserActionLifecycleHandler)({
|
|
39
|
-
apiMessageBus: apiMessageBus,
|
|
40
|
-
transports: apiTestHelpers_1.mockTransports,
|
|
41
|
-
config: {},
|
|
42
|
-
}).getMessage;
|
|
43
|
-
var message = {
|
|
44
|
-
type: __1.USER_ACTION_HALT,
|
|
45
|
-
name: 'halt-test',
|
|
46
|
-
haltTime: 0,
|
|
47
|
-
reason: 'pending-requests',
|
|
48
|
-
parentId: '123',
|
|
49
|
-
};
|
|
50
|
-
apiMessageBus.notify(message);
|
|
51
|
-
expect(getMessage()).toEqual(message);
|
|
52
|
-
});
|
|
53
|
-
it('When it receives a user-action-cancel message, it resets the cached message flushes the buffer and sends the items to the transports', function () {
|
|
54
|
-
var apiMessageBus = new reactive_1.Observable();
|
|
55
|
-
var mockExecute = jest.fn();
|
|
56
|
-
var _a = (0, userActionLifecycleHandler_1.createUserActionLifecycleHandler)({
|
|
57
|
-
apiMessageBus: apiMessageBus,
|
|
58
|
-
transports: __assign(__assign({}, apiTestHelpers_1.mockTransports), { execute: mockExecute }),
|
|
59
|
-
config: {},
|
|
60
|
-
}), actionBuffer = _a.actionBuffer, getMessage = _a.getMessage;
|
|
61
|
-
var message = {
|
|
62
|
-
type: const_1.USER_ACTION_START,
|
|
63
|
-
name: '',
|
|
64
|
-
startTime: 0,
|
|
65
|
-
parentId: '',
|
|
66
|
-
};
|
|
67
|
-
apiMessageBus.notify(message);
|
|
68
|
-
var item = { type: __1.TransportItemType.EVENT, payload: {}, meta: {} };
|
|
69
|
-
actionBuffer.addItem(item);
|
|
70
|
-
var cancelMessage = {
|
|
71
|
-
type: const_1.USER_ACTION_CANCEL,
|
|
72
|
-
name: 'pointerdown',
|
|
73
|
-
};
|
|
74
|
-
apiMessageBus.notify(cancelMessage);
|
|
75
|
-
expect(getMessage()).toBeUndefined();
|
|
76
|
-
expect(mockExecute).toHaveBeenCalledTimes(1);
|
|
77
|
-
expect(mockExecute).toHaveBeenCalledWith(item);
|
|
78
|
-
expect(actionBuffer.size()).toEqual(0);
|
|
79
|
-
});
|
|
80
|
-
it('When it receives a user-action-end message, it sends the items to the transports with the action parentId and name', function () {
|
|
81
|
-
var apiMessageBus = new reactive_1.Observable();
|
|
82
|
-
var mockExecute = jest.fn();
|
|
83
|
-
var actionBuffer = (0, userActionLifecycleHandler_1.createUserActionLifecycleHandler)({
|
|
84
|
-
apiMessageBus: apiMessageBus,
|
|
85
|
-
transports: __assign(__assign({}, apiTestHelpers_1.mockTransports), { execute: mockExecute }),
|
|
86
|
-
config: {},
|
|
87
|
-
}).actionBuffer;
|
|
88
|
-
var message = {
|
|
89
|
-
type: const_1.USER_ACTION_START,
|
|
90
|
-
name: 'pointerdown',
|
|
91
|
-
startTime: 0,
|
|
92
|
-
parentId: '123',
|
|
93
|
-
};
|
|
94
|
-
apiMessageBus.notify(message);
|
|
95
|
-
var item = { type: __1.TransportItemType.EVENT, payload: {}, meta: {} };
|
|
96
|
-
actionBuffer.addItem(item);
|
|
97
|
-
var endMessage = {
|
|
98
|
-
type: const_1.USER_ACTION_END,
|
|
99
|
-
id: '123',
|
|
100
|
-
name: 'pointerdown',
|
|
101
|
-
startTime: 100,
|
|
102
|
-
endTime: 120,
|
|
103
|
-
duration: 20,
|
|
104
|
-
eventType: 'keydown',
|
|
105
|
-
};
|
|
106
|
-
apiMessageBus.notify(endMessage);
|
|
107
|
-
expect(mockExecute).toHaveBeenCalledTimes(1);
|
|
108
|
-
expect(mockExecute).toHaveBeenCalledWith(__assign(__assign({}, item), { payload: __assign(__assign({}, item.payload), { action: {
|
|
109
|
-
parentId: '123',
|
|
110
|
-
name: 'pointerdown',
|
|
111
|
-
} }) }));
|
|
112
|
-
});
|
|
113
|
-
it('excludes items defined by the isExcludeFromUserAction function from the user actions', function () {
|
|
114
|
-
var apiMessageBus = new reactive_1.Observable();
|
|
115
|
-
var mockExecute = jest.fn();
|
|
116
|
-
var _a = (0, userActionLifecycleHandler_1.createUserActionLifecycleHandler)({
|
|
117
|
-
apiMessageBus: apiMessageBus,
|
|
118
|
-
transports: __assign(__assign({}, apiTestHelpers_1.mockTransports), { execute: mockExecute }),
|
|
119
|
-
config: {
|
|
120
|
-
trackUserActionsExcludeItem: function (item) {
|
|
121
|
-
return item.type === __1.TransportItemType.EVENT && item.payload.name === 'i-am-excluded';
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
}), actionBuffer = _a.actionBuffer, getMessage = _a.getMessage;
|
|
125
|
-
var message = {
|
|
126
|
-
type: const_1.USER_ACTION_START,
|
|
127
|
-
name: 'pointerdown',
|
|
128
|
-
startTime: 0,
|
|
129
|
-
parentId: '123',
|
|
130
|
-
};
|
|
131
|
-
apiMessageBus.notify(message);
|
|
132
|
-
var itemEvent = { type: __1.TransportItemType.EVENT, payload: {}, meta: {} };
|
|
133
|
-
actionBuffer.addItem(itemEvent);
|
|
134
|
-
var itemMeasurement = {
|
|
135
|
-
type: __1.TransportItemType.MEASUREMENT,
|
|
136
|
-
payload: { type: 'web-vitals', values: {}, timestamp: (0, __1.dateNow)().toString() },
|
|
137
|
-
meta: {},
|
|
138
|
-
};
|
|
139
|
-
actionBuffer.addItem(itemMeasurement);
|
|
140
|
-
var itemEventExcluded = {
|
|
141
|
-
type: __1.TransportItemType.EVENT,
|
|
142
|
-
payload: {
|
|
143
|
-
timestamp: (0, __1.dateNow)().toString(),
|
|
144
|
-
name: 'i-am-excluded',
|
|
145
|
-
},
|
|
146
|
-
meta: {},
|
|
147
|
-
};
|
|
148
|
-
actionBuffer.addItem(itemEventExcluded);
|
|
149
|
-
var endMessage = {
|
|
150
|
-
type: const_1.USER_ACTION_END,
|
|
151
|
-
id: '123',
|
|
152
|
-
name: 'pointerdown',
|
|
153
|
-
startTime: 100,
|
|
154
|
-
endTime: 120,
|
|
155
|
-
duration: 20,
|
|
156
|
-
eventType: 'keydown',
|
|
157
|
-
};
|
|
158
|
-
apiMessageBus.notify(endMessage);
|
|
159
|
-
expect(mockExecute).toHaveBeenCalledTimes(3);
|
|
160
|
-
expect(mockExecute).toHaveBeenNthCalledWith(1, __assign(__assign({}, itemEvent), { payload: __assign(__assign({}, itemEvent.payload), { action: {
|
|
161
|
-
parentId: '123',
|
|
162
|
-
name: 'pointerdown',
|
|
163
|
-
} }) }));
|
|
164
|
-
expect(mockExecute).toHaveBeenNthCalledWith(2, itemMeasurement);
|
|
165
|
-
expect(mockExecute).toHaveBeenNthCalledWith(3, itemEventExcluded);
|
|
166
|
-
expect(getMessage()).toBeUndefined();
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
//# sourceMappingURL=userActionLifecycleHandler.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userActionLifecycleHandler.test.js","sourceRoot":"","sources":["../../../../../src/api/userActionLifecycleHandler.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type APIEvent,\n ApiMessageBusMessages,\n type Config,\n dateNow,\n EventEvent,\n type Meta,\n TransportItem,\n TransportItemType,\n USER_ACTION_HALT,\n UserActionStartMessage,\n} from '..';\nimport { Observable } from '../utils/reactive';\n\nimport { mockTransports } from './apiTestHelpers';\nimport { USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_START } from './const';\nimport type { UserActionHaltMessage } from './types';\nimport { createUserActionLifecycleHandler } from './userActionLifecycleHandler';\n\ndescribe('userActionLifecycleHandler', () => {\n it('assigns the user-action-start message to the message variable when it receives it', () => {\n const apiMessageBus = new Observable<ApiMessageBusMessages>();\n\n const { getMessage } = createUserActionLifecycleHandler({\n apiMessageBus,\n transports: mockTransports,\n config: {} as Config,\n });\n\n const message: UserActionStartMessage = {\n type: USER_ACTION_START,\n name: 'start-test',\n startTime: 0,\n parentId: '123',\n };\n\n apiMessageBus.notify(message);\n\n expect(getMessage()).toEqual(message);\n });\n\n it('assigns the user-action-halt message to the message variable when it receives it', () => {\n const apiMessageBus = new Observable<ApiMessageBusMessages>();\n\n const { getMessage } = createUserActionLifecycleHandler({\n apiMessageBus,\n transports: mockTransports,\n config: {} as Config,\n });\n\n const message: UserActionHaltMessage = {\n type: USER_ACTION_HALT,\n name: 'halt-test',\n haltTime: 0,\n reason: 'pending-requests',\n parentId: '123',\n };\n\n apiMessageBus.notify(message);\n\n expect(getMessage()).toEqual(message);\n });\n\n it('When it receives a user-action-cancel message, it resets the cached message flushes the buffer and sends the items to the transports', () => {\n const apiMessageBus = new Observable<ApiMessageBusMessages>();\n\n const mockExecute = jest.fn();\n const { actionBuffer, getMessage } = createUserActionLifecycleHandler({\n apiMessageBus,\n transports: {\n ...mockTransports,\n execute: mockExecute,\n },\n config: {} as Config,\n });\n\n const message: UserActionStartMessage = {\n type: USER_ACTION_START,\n name: '',\n startTime: 0,\n parentId: '',\n };\n\n apiMessageBus.notify(message);\n\n const item = { type: TransportItemType.EVENT, payload: {}, meta: {} as Meta };\n actionBuffer.addItem(item);\n\n const cancelMessage: ApiMessageBusMessages = {\n type: USER_ACTION_CANCEL,\n name: 'pointerdown',\n };\n\n apiMessageBus.notify(cancelMessage);\n\n expect(getMessage()).toBeUndefined();\n expect(mockExecute).toHaveBeenCalledTimes(1);\n expect(mockExecute).toHaveBeenCalledWith(item);\n expect(actionBuffer.size()).toEqual(0);\n });\n\n it('When it receives a user-action-end message, it sends the items to the transports with the action parentId and name', () => {\n const apiMessageBus = new Observable<ApiMessageBusMessages>();\n\n const mockExecute = jest.fn();\n const { actionBuffer } = createUserActionLifecycleHandler({\n apiMessageBus,\n transports: {\n ...mockTransports,\n execute: mockExecute,\n },\n config: {} as Config,\n });\n\n const message: UserActionStartMessage = {\n type: USER_ACTION_START,\n name: 'pointerdown',\n startTime: 0,\n parentId: '123',\n };\n\n apiMessageBus.notify(message);\n\n const item = { type: TransportItemType.EVENT, payload: {}, meta: {} as Meta };\n actionBuffer.addItem(item);\n\n const endMessage: ApiMessageBusMessages = {\n type: USER_ACTION_END,\n id: '123',\n name: 'pointerdown',\n startTime: 100,\n endTime: 120,\n duration: 20,\n eventType: 'keydown',\n };\n\n apiMessageBus.notify(endMessage);\n\n expect(mockExecute).toHaveBeenCalledTimes(1);\n expect(mockExecute).toHaveBeenCalledWith({\n ...item,\n payload: {\n ...item.payload,\n action: {\n parentId: '123',\n name: 'pointerdown',\n },\n },\n });\n });\n\n it('excludes items defined by the isExcludeFromUserAction function from the user actions', () => {\n const apiMessageBus = new Observable<ApiMessageBusMessages>();\n\n const mockExecute = jest.fn();\n const { actionBuffer, getMessage } = createUserActionLifecycleHandler({\n apiMessageBus,\n transports: {\n ...mockTransports,\n execute: mockExecute,\n },\n config: {\n trackUserActionsExcludeItem(item) {\n return item.type === TransportItemType.EVENT && (item.payload as EventEvent).name === 'i-am-excluded';\n },\n } as Config,\n });\n\n const message: UserActionStartMessage = {\n type: USER_ACTION_START,\n name: 'pointerdown',\n startTime: 0,\n parentId: '123',\n };\n\n apiMessageBus.notify(message);\n\n const itemEvent = { type: TransportItemType.EVENT, payload: {}, meta: {} as Meta };\n actionBuffer.addItem(itemEvent);\n\n const itemMeasurement: TransportItem<APIEvent> = {\n type: TransportItemType.MEASUREMENT,\n payload: { type: 'web-vitals', values: {}, timestamp: dateNow().toString() },\n meta: {} as Meta,\n };\n actionBuffer.addItem(itemMeasurement);\n\n const itemEventExcluded: TransportItem<EventEvent> = {\n type: TransportItemType.EVENT,\n payload: {\n timestamp: dateNow().toString(),\n name: 'i-am-excluded',\n },\n meta: {} as Meta,\n };\n actionBuffer.addItem(itemEventExcluded);\n\n const endMessage: ApiMessageBusMessages = {\n type: USER_ACTION_END,\n id: '123',\n name: 'pointerdown',\n startTime: 100,\n endTime: 120,\n duration: 20,\n eventType: 'keydown',\n };\n\n apiMessageBus.notify(endMessage);\n\n expect(mockExecute).toHaveBeenCalledTimes(3);\n expect(mockExecute).toHaveBeenNthCalledWith(1, {\n ...itemEvent,\n payload: {\n ...itemEvent.payload,\n action: {\n parentId: '123',\n name: 'pointerdown',\n },\n },\n });\n expect(mockExecute).toHaveBeenNthCalledWith(2, itemMeasurement);\n expect(mockExecute).toHaveBeenNthCalledWith(3, itemEventExcluded);\n expect(getMessage()).toBeUndefined();\n });\n});\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Config } from '../config';
|
|
2
|
-
import { type TransportItem, type Transports } from '../transports';
|
|
3
|
-
import type { Observable } from '../utils';
|
|
4
|
-
import { ItemBuffer } from './ItemBuffer';
|
|
5
|
-
import type { APIEvent, ApiMessageBusMessages } from './types';
|
|
6
|
-
export declare function createUserActionLifecycleHandler({ apiMessageBus, transports, config, }: {
|
|
7
|
-
apiMessageBus: Observable<ApiMessageBusMessages>;
|
|
8
|
-
transports: Transports;
|
|
9
|
-
config: Config;
|
|
10
|
-
}): {
|
|
11
|
-
actionBuffer: ItemBuffer<TransportItem<APIEvent>>;
|
|
12
|
-
getMessage: () => ApiMessageBusMessages | undefined;
|
|
13
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Config } from '../config';
|
|
2
|
-
import { type TransportItem, type Transports } from '../transports';
|
|
3
|
-
import type { Observable } from '../utils';
|
|
4
|
-
import { ItemBuffer } from './ItemBuffer';
|
|
5
|
-
import type { APIEvent, ApiMessageBusMessages } from './types';
|
|
6
|
-
export declare function createUserActionLifecycleHandler({ apiMessageBus, transports, config, }: {
|
|
7
|
-
apiMessageBus: Observable<ApiMessageBusMessages>;
|
|
8
|
-
transports: Transports;
|
|
9
|
-
config: Config;
|
|
10
|
-
}): {
|
|
11
|
-
actionBuffer: ItemBuffer<TransportItem<APIEvent>>;
|
|
12
|
-
getMessage: () => ApiMessageBusMessages | undefined;
|
|
13
|
-
};
|
|
File without changes
|