@phystack/hub-client 4.4.29
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/.prettierignore +10 -0
- package/.prettierrc +10 -0
- package/CHANGELOG.md +1202 -0
- package/README-MEDIASTREAM.md +124 -0
- package/README.md +302 -0
- package/dist/constants/constants.d.ts +7 -0
- package/dist/constants/constants.d.ts.map +1 -0
- package/dist/constants/constants.js +10 -0
- package/dist/constants/constants.js.map +1 -0
- package/dist/helpers/browser.helper.d.ts +5 -0
- package/dist/helpers/browser.helper.d.ts.map +1 -0
- package/dist/helpers/browser.helper.js +19 -0
- package/dist/helpers/browser.helper.js.map +1 -0
- package/dist/helpers/cache.helper.d.ts +6 -0
- package/dist/helpers/cache.helper.d.ts.map +1 -0
- package/dist/helpers/cache.helper.js +46 -0
- package/dist/helpers/cache.helper.js.map +1 -0
- package/dist/helpers/date.helper.d.ts +4 -0
- package/dist/helpers/date.helper.d.ts.map +1 -0
- package/dist/helpers/date.helper.js +13 -0
- package/dist/helpers/date.helper.js.map +1 -0
- package/dist/helpers/session.helper.d.ts +13 -0
- package/dist/helpers/session.helper.d.ts.map +1 -0
- package/dist/helpers/session.helper.js +88 -0
- package/dist/helpers/session.helper.js.map +1 -0
- package/dist/helpers/shorten-look-ups.helper.d.ts +3 -0
- package/dist/helpers/shorten-look-ups.helper.d.ts.map +1 -0
- package/dist/helpers/shorten-look-ups.helper.js +80 -0
- package/dist/helpers/shorten-look-ups.helper.js.map +1 -0
- package/dist/helpers/signals-client.helper.d.ts +9 -0
- package/dist/helpers/signals-client.helper.d.ts.map +1 -0
- package/dist/helpers/signals-client.helper.js +44 -0
- package/dist/helpers/signals-client.helper.js.map +1 -0
- package/dist/helpers/signals.helper.d.ts +19 -0
- package/dist/helpers/signals.helper.d.ts.map +1 -0
- package/dist/helpers/signals.helper.js +48 -0
- package/dist/helpers/signals.helper.js.map +1 -0
- package/dist/helpers/wrtc/browser.d.ts +3 -0
- package/dist/helpers/wrtc/browser.d.ts.map +1 -0
- package/dist/helpers/wrtc/browser.js +11 -0
- package/dist/helpers/wrtc/browser.js.map +1 -0
- package/dist/helpers/wrtc/index.d.ts +5 -0
- package/dist/helpers/wrtc/index.d.ts.map +1 -0
- package/dist/helpers/wrtc/index.js +30 -0
- package/dist/helpers/wrtc/index.js.map +1 -0
- package/dist/helpers/wrtc/node.d.ts +3 -0
- package/dist/helpers/wrtc/node.d.ts.map +1 -0
- package/dist/helpers/wrtc/node.js +18 -0
- package/dist/helpers/wrtc/node.js.map +1 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1013 -0
- package/dist/index.js.map +1 -0
- package/dist/services/online-status-subscription.service.d.ts +28 -0
- package/dist/services/online-status-subscription.service.d.ts.map +1 -0
- package/dist/services/online-status-subscription.service.js +96 -0
- package/dist/services/online-status-subscription.service.js.map +1 -0
- package/dist/services/phyhub-connection.service.d.ts +20 -0
- package/dist/services/phyhub-connection.service.d.ts.map +1 -0
- package/dist/services/phyhub-connection.service.js +176 -0
- package/dist/services/phyhub-connection.service.js.map +1 -0
- package/dist/services/signals.service.d.ts +97 -0
- package/dist/services/signals.service.d.ts.map +1 -0
- package/dist/services/signals.service.js +536 -0
- package/dist/services/signals.service.js.map +1 -0
- package/dist/services/webrtc/datachannel.d.ts +10 -0
- package/dist/services/webrtc/datachannel.d.ts.map +1 -0
- package/dist/services/webrtc/datachannel.js +290 -0
- package/dist/services/webrtc/datachannel.js.map +1 -0
- package/dist/services/webrtc/mediastream.d.ts +10 -0
- package/dist/services/webrtc/mediastream.d.ts.map +1 -0
- package/dist/services/webrtc/mediastream.js +396 -0
- package/dist/services/webrtc/mediastream.js.map +1 -0
- package/dist/services/webrtc/peer-connection-ice.d.ts +32 -0
- package/dist/services/webrtc/peer-connection-ice.d.ts.map +1 -0
- package/dist/services/webrtc/peer-connection-ice.js +483 -0
- package/dist/services/webrtc/peer-connection-ice.js.map +1 -0
- package/dist/types/signal.types.d.ts +354 -0
- package/dist/types/signal.types.d.ts.map +1 -0
- package/dist/types/signal.types.js +53 -0
- package/dist/types/signal.types.js.map +1 -0
- package/dist/types/twin.types.d.ts +705 -0
- package/dist/types/twin.types.d.ts.map +1 -0
- package/dist/types/twin.types.js +21 -0
- package/dist/types/twin.types.js.map +1 -0
- package/dist/types/webrtc.types.d.ts +41 -0
- package/dist/types/webrtc.types.d.ts.map +1 -0
- package/dist/types/webrtc.types.js +3 -0
- package/dist/types/webrtc.types.js.map +1 -0
- package/package.json +50 -0
- package/src/constants/constants.ts +12 -0
- package/src/helpers/browser.helper.ts +15 -0
- package/src/helpers/cache.helper.ts +52 -0
- package/src/helpers/date.helper.ts +8 -0
- package/src/helpers/session.helper.ts +96 -0
- package/src/helpers/shorten-look-ups.helper.ts +75 -0
- package/src/helpers/signals-client.helper.ts +54 -0
- package/src/helpers/signals.helper.ts +41 -0
- package/src/helpers/wrtc/browser.ts +9 -0
- package/src/helpers/wrtc/index.ts +32 -0
- package/src/helpers/wrtc/node.ts +16 -0
- package/src/index.ts +1429 -0
- package/src/services/online-status-subscription.service.ts +127 -0
- package/src/services/phyhub-connection.service.ts +213 -0
- package/src/services/signals.service.ts +783 -0
- package/src/services/webrtc/datachannel.ts +421 -0
- package/src/services/webrtc/mediastream.ts +602 -0
- package/src/services/webrtc/peer-connection-ice.ts +689 -0
- package/src/types/lodash.d.ts +3 -0
- package/src/types/signal.types.ts +382 -0
- package/src/types/twin.types.ts +803 -0
- package/src/types/webrtc.types.ts +48 -0
- package/tsconfig.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twin.types.d.ts","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TwinStatusEnum = exports.TwinTypeEnum = void 0;
|
|
4
|
+
var TwinTypeEnum;
|
|
5
|
+
(function (TwinTypeEnum) {
|
|
6
|
+
TwinTypeEnum["Device"] = "Device";
|
|
7
|
+
TwinTypeEnum["Screen"] = "Screen";
|
|
8
|
+
TwinTypeEnum["Edge"] = "Edge";
|
|
9
|
+
TwinTypeEnum["Cloud"] = "Cloud";
|
|
10
|
+
TwinTypeEnum["Web"] = "Web";
|
|
11
|
+
TwinTypeEnum["Peripheral"] = "Peripheral";
|
|
12
|
+
})(TwinTypeEnum || (exports.TwinTypeEnum = TwinTypeEnum = {}));
|
|
13
|
+
var TwinStatusEnum;
|
|
14
|
+
(function (TwinStatusEnum) {
|
|
15
|
+
TwinStatusEnum["Offline"] = "Offline";
|
|
16
|
+
TwinStatusEnum["Online"] = "Online";
|
|
17
|
+
TwinStatusEnum["Starting"] = "Starting";
|
|
18
|
+
TwinStatusEnum["Exited"] = "Exited";
|
|
19
|
+
TwinStatusEnum["ImageNotFound"] = "ImageNotFound";
|
|
20
|
+
})(TwinStatusEnum || (exports.TwinStatusEnum = TwinStatusEnum = {}));
|
|
21
|
+
//# sourceMappingURL=twin.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twin.types.js","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,yCAAyB,CAAA;AAC3B,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AAED,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,mCAAiB,CAAA;IACjB,iDAA+B,CAAA;AACjC,CAAC,EANW,cAAc,8BAAd,cAAc,QAMzB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface WebRTCConnectionOptions {
|
|
2
|
+
targetTwinId: string;
|
|
3
|
+
sendTwinMessage: (targetTwinId: string, data: any) => Promise<any>;
|
|
4
|
+
subscribeTwin: (targetTwinId: string) => Promise<any>;
|
|
5
|
+
onTwinMessage: (targetTwinId: string, callback: (message: any) => void) => void;
|
|
6
|
+
offTwinMessage: (targetTwinId: string, callback: (message: any) => void) => void;
|
|
7
|
+
useStun?: boolean;
|
|
8
|
+
isInitiator?: boolean;
|
|
9
|
+
channelPrefix?: string;
|
|
10
|
+
mediaOptions?: {
|
|
11
|
+
isMediaConnection: boolean;
|
|
12
|
+
localStream?: MediaStream;
|
|
13
|
+
mediaDirection?: RTCRtpTransceiverDirection;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface PhygridDataChannel {
|
|
17
|
+
send: (data: any) => void;
|
|
18
|
+
onMessage: (callback: (data: any) => void) => void;
|
|
19
|
+
offMessage: (callback: (data: any) => void) => void;
|
|
20
|
+
onClose: (callback: () => void) => void;
|
|
21
|
+
offClose: (callback: () => void) => void;
|
|
22
|
+
close: () => void;
|
|
23
|
+
}
|
|
24
|
+
export interface ExtendedMediaStreamTrack extends MediaStreamTrack {
|
|
25
|
+
onFrame?: (frame: any) => void;
|
|
26
|
+
}
|
|
27
|
+
export interface PhygridMediaStream {
|
|
28
|
+
getTracks: () => MediaStreamTrack[];
|
|
29
|
+
onTrack: (callback: (track: MediaStreamTrack) => void) => void;
|
|
30
|
+
offTrack: (callback: (track: MediaStreamTrack) => void) => void;
|
|
31
|
+
onFrame: (callback: (frameData: any) => void) => void;
|
|
32
|
+
offFrame: (callback: (frameData: any) => void) => void;
|
|
33
|
+
onClose: (callback: () => void) => void;
|
|
34
|
+
offClose: (callback: () => void) => void;
|
|
35
|
+
close: () => void;
|
|
36
|
+
addTrack: (track: MediaStreamTrack) => void;
|
|
37
|
+
isReceivingFrames: () => boolean;
|
|
38
|
+
_internalTracks?: MediaStreamTrack[];
|
|
39
|
+
_notifyTrackListeners?: (track: MediaStreamTrack) => void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=webrtc.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc.types.d.ts","sourceRoot":"","sources":["../../src/types/webrtc.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnE,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IAChF,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE;QACb,iBAAiB,EAAE,OAAO,CAAC;QAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,cAAc,CAAC,EAAE,0BAA0B,CAAC;KAC7C,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1B,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACnD,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACpD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAGD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IAEjC,SAAS,EAAE,MAAM,gBAAgB,EAAE,CAAC;IACpC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACvD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,MAAM,OAAO,CAAC;IAIjC,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACrC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc.types.js","sourceRoot":"","sources":["../../src/types/webrtc.types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@phystack/hub-client",
|
|
3
|
+
"version": "4.4.29",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"private": false,
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "rimraf dist && tsc",
|
|
12
|
+
"build:watch": "tsc -w",
|
|
13
|
+
"format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
|
|
14
|
+
"format:check": "prettier --check \"src/**/*.{ts,js,json,md}\""
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@phystack/socket.io-proxy": "4.4.29",
|
|
18
|
+
"@roamhq/wrtc": "^0.8.0",
|
|
19
|
+
"axios": "^1.7.9",
|
|
20
|
+
"bufferutil": "^4.0.9",
|
|
21
|
+
"lodash": "^4.17.21",
|
|
22
|
+
"lodash.isnil": "^4.0.0",
|
|
23
|
+
"lodash.omitby": "^4.6.0",
|
|
24
|
+
"lodash.once": "^4.1.1",
|
|
25
|
+
"socket.io-client": "^4.7.5",
|
|
26
|
+
"utf-8-validate": "^6.0.5",
|
|
27
|
+
"uuid": "^11.0.5",
|
|
28
|
+
"zod": "^3.24.2"
|
|
29
|
+
},
|
|
30
|
+
"optionalDependencies": {
|
|
31
|
+
"https-proxy-agent": "^7.0.6",
|
|
32
|
+
"node-gyp": "^11.1.0",
|
|
33
|
+
"node-pre-gyp": "^0.17.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/lodash.isnil": "^4.0.9",
|
|
37
|
+
"@types/lodash.omitby": "^4.6.9",
|
|
38
|
+
"@types/lodash.once": "^4.1.9",
|
|
39
|
+
"prettier": "^3.4.2",
|
|
40
|
+
"rimraf": "^5.0.7",
|
|
41
|
+
"typescript": "^5.4.5"
|
|
42
|
+
},
|
|
43
|
+
"resolutions": {
|
|
44
|
+
"string-width": "^4.2.3",
|
|
45
|
+
"strip-ansi": "^6.0.1"
|
|
46
|
+
},
|
|
47
|
+
"test": "react-scripts test",
|
|
48
|
+
"test:coverage": "npm run test -- --coverage --watchAll=false",
|
|
49
|
+
"gitHead": "7dba834ca1f446f669992ff14352862d2fbcfe22"
|
|
50
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const MESSAGE_PREFIX = '@phystack/hub-client:';
|
|
2
|
+
export const EVENTS_CACHE_KEY = '_OMBORI_GRID_SIGNALS_EVENTS_CACHE';
|
|
3
|
+
export const CLIENT_CACHE_KEY = '_OMBORI_GRID_SIGNALS_CLIENT_CACHE';
|
|
4
|
+
export const SESSION_CACHE_KEY = '_OMBORI_GRID_SIGNALS_SESSION_CACHE';
|
|
5
|
+
export const LAST_ACTIVITY_CACHE_KEY = '_OMBORI_GRID_SIGNALS_LAST_ACTIVITY_CACHE';
|
|
6
|
+
export const DEFAULT_MAX_SESSION_LAST_ACTIVITY_MINS = 30;
|
|
7
|
+
|
|
8
|
+
// todo: remove constants below
|
|
9
|
+
// export const CREATE_SESSION_ERROR_INIT_MESSAGE = `${MESSAGE_PREFIX} init must be called before createSession`;
|
|
10
|
+
// export const TRACK_EVENT_ERROR_INIT_MESSAGE = `${MESSAGE_PREFIX} init must be called before trackEvent`;
|
|
11
|
+
// export const INIT_ONCE_ERROR_MESSAGE = `${MESSAGE_PREFIX} init should only be called once!`;
|
|
12
|
+
// export const INIT_NOT_CALLED = `${MESSAGE_PREFIX} init not called!`;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import OnlineStatusSubscription from '../services/online-status-subscription.service';
|
|
2
|
+
|
|
3
|
+
export const isBrowser = typeof window !== 'undefined';
|
|
4
|
+
|
|
5
|
+
export const browserWindow = isBrowser ? (window as any) : {};
|
|
6
|
+
|
|
7
|
+
export const getOnlineStatusSubscription = () => {
|
|
8
|
+
if (!browserWindow.globalGridOnlineStatusSubscription) {
|
|
9
|
+
const onlineStatusSubscription = new OnlineStatusSubscription();
|
|
10
|
+
onlineStatusSubscription.start();
|
|
11
|
+
browserWindow.globalGridOnlineStatusSubscription = onlineStatusSubscription;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return browserWindow.globalGridOnlineStatusSubscription as OnlineStatusSubscription;
|
|
15
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import once from 'lodash.once';
|
|
2
|
+
import { DataRequestTypeEnum, SendOrCacheDataProps, RequestData } from '../types/signal.types';
|
|
3
|
+
import { EVENTS_CACHE_KEY } from '../constants/constants';
|
|
4
|
+
|
|
5
|
+
export const supportsLocalStorage = once(() => {
|
|
6
|
+
const value = '_OMBORI_GRID_SIGNALS_CACHE_TEST';
|
|
7
|
+
|
|
8
|
+
try {
|
|
9
|
+
localStorage.setItem(value, value);
|
|
10
|
+
localStorage.removeItem(value);
|
|
11
|
+
return true;
|
|
12
|
+
} catch (e) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const cache: any[] = supportsLocalStorage()
|
|
18
|
+
? JSON.parse(localStorage.getItem(EVENTS_CACHE_KEY) || '[]')
|
|
19
|
+
: [];
|
|
20
|
+
|
|
21
|
+
export const cacheData = (type: DataRequestTypeEnum, data: RequestData) => {
|
|
22
|
+
// If the device is offline for a long time we don't want the cache to grow infinitely
|
|
23
|
+
if (cache.length >= 10000) {
|
|
24
|
+
cache.shift();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
cache.push({ type, data });
|
|
28
|
+
|
|
29
|
+
supportsLocalStorage() && localStorage.setItem(EVENTS_CACHE_KEY, JSON.stringify(cache));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const delay = (ms: number) =>
|
|
33
|
+
new Promise(resolve => {
|
|
34
|
+
setTimeout(resolve, ms);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const flushCache = async (sendOrCacheData: SendOrCacheDataProps) => {
|
|
38
|
+
while (cache.length) {
|
|
39
|
+
const event = cache.shift();
|
|
40
|
+
if (event) {
|
|
41
|
+
sendOrCacheData(event.type, event.data);
|
|
42
|
+
// Don't flush the cache too quickly as it can lead to dropped events
|
|
43
|
+
await delay(100);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
supportsLocalStorage() && localStorage.removeItem(EVENTS_CACHE_KEY);
|
|
48
|
+
|
|
49
|
+
flushCacheOnce = once(flushCache);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export let flushCacheOnce = once(flushCache);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const dateHelper = () => new Date().toISOString();
|
|
2
|
+
|
|
3
|
+
export const getDateString = () => new Date().toISOString();
|
|
4
|
+
|
|
5
|
+
export const getDifInMins = (date: string, dateToCompare: string) => {
|
|
6
|
+
const dif = new Date(date).getTime() - new Date(dateToCompare).getTime();
|
|
7
|
+
return Math.round(dif / 60000);
|
|
8
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { v4 as uuid } from 'uuid';
|
|
2
|
+
import once from 'lodash.once';
|
|
3
|
+
import { getDateString, getDifInMins } from './date.helper';
|
|
4
|
+
import { SESSION_CACHE_KEY, LAST_ACTIVITY_CACHE_KEY } from '../constants/constants';
|
|
5
|
+
|
|
6
|
+
type CachedSessionObj = {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
sessionCreated: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const supportsSessionStorage = once(() => {
|
|
12
|
+
const value = '_OMBORI_GRID_SIGNALS_SESSION_STORAGE_TEST';
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
sessionStorage.setItem(value, value);
|
|
16
|
+
sessionStorage.removeItem(value);
|
|
17
|
+
return true;
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const getCachedSession = () => {
|
|
24
|
+
try {
|
|
25
|
+
const sessionStringCache = sessionStorage.getItem(SESSION_CACHE_KEY);
|
|
26
|
+
if (!sessionStringCache) return null;
|
|
27
|
+
|
|
28
|
+
return JSON.parse(sessionStringCache) as CachedSessionObj;
|
|
29
|
+
} catch (e) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const cacheSession = (sessionId: string, sessionCreated: string) => {
|
|
35
|
+
sessionStorage.setItem(SESSION_CACHE_KEY, JSON.stringify({ sessionId, sessionCreated }));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const generateSession = ({
|
|
39
|
+
forceCreateNewSession = false,
|
|
40
|
+
maxSessionLastActivityMins,
|
|
41
|
+
}: {
|
|
42
|
+
forceCreateNewSession?: boolean;
|
|
43
|
+
maxSessionLastActivityMins: number;
|
|
44
|
+
}) => {
|
|
45
|
+
const sessionId = uuid();
|
|
46
|
+
const sessionCreated = getDateString();
|
|
47
|
+
|
|
48
|
+
if (supportsSessionStorage()) {
|
|
49
|
+
const cachedSession = getCachedSession();
|
|
50
|
+
if (
|
|
51
|
+
!forceCreateNewSession &&
|
|
52
|
+
cachedSession &&
|
|
53
|
+
cachedSession.sessionId &&
|
|
54
|
+
cachedSession.sessionCreated
|
|
55
|
+
) {
|
|
56
|
+
const lastActivity = getLastActivityCache();
|
|
57
|
+
if (lastActivity) {
|
|
58
|
+
const isAfterMins =
|
|
59
|
+
getDifInMins(getDateString(), lastActivity) >= maxSessionLastActivityMins;
|
|
60
|
+
if (!isAfterMins) {
|
|
61
|
+
return {
|
|
62
|
+
sessionId: cachedSession.sessionId,
|
|
63
|
+
sessionCreated: cachedSession.sessionCreated,
|
|
64
|
+
isFromCache: true,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
cacheSession(sessionId, sessionCreated);
|
|
71
|
+
setLastActivityCache(sessionCreated);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return { sessionId, sessionCreated, isFromCache: false };
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const getLastActivityCache = () => {
|
|
78
|
+
try {
|
|
79
|
+
if (!supportsSessionStorage()) return null;
|
|
80
|
+
|
|
81
|
+
const lastActivityCache = sessionStorage.getItem(LAST_ACTIVITY_CACHE_KEY);
|
|
82
|
+
return lastActivityCache;
|
|
83
|
+
} catch (e) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export const setLastActivityCache = (dateString: string) => {
|
|
89
|
+
try {
|
|
90
|
+
if (!supportsSessionStorage()) return false;
|
|
91
|
+
sessionStorage.setItem(LAST_ACTIVITY_CACHE_KEY, dateString);
|
|
92
|
+
return dateString;
|
|
93
|
+
} catch (e) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import omitBy from 'lodash.omitby';
|
|
2
|
+
import isNil from 'lodash.isnil';
|
|
3
|
+
|
|
4
|
+
export const shortenLookUpsHelper: any = {
|
|
5
|
+
captureId: 'a',
|
|
6
|
+
sessionId: 'b',
|
|
7
|
+
tenantId: 'c',
|
|
8
|
+
sessionCreated: 'd',
|
|
9
|
+
ip: 'e',
|
|
10
|
+
environment: 'f',
|
|
11
|
+
dataResidency: 'g',
|
|
12
|
+
spaceId: 'h',
|
|
13
|
+
appId: 'i',
|
|
14
|
+
appVersion: 'j',
|
|
15
|
+
installationId: 'k',
|
|
16
|
+
installationVersion: 'l',
|
|
17
|
+
country: 'm',
|
|
18
|
+
locationAccuracy: 'n',
|
|
19
|
+
latitude: 'o',
|
|
20
|
+
longitude: 'p',
|
|
21
|
+
deviceId: 'q',
|
|
22
|
+
clientId: 'r',
|
|
23
|
+
eventType: 's',
|
|
24
|
+
eventTime: 't',
|
|
25
|
+
interaction: 'u',
|
|
26
|
+
productId: 'v',
|
|
27
|
+
categoryId: 'w',
|
|
28
|
+
int1: 'x',
|
|
29
|
+
int2: 'y',
|
|
30
|
+
int3: 'z',
|
|
31
|
+
int4: 'aa',
|
|
32
|
+
int5: 'ab',
|
|
33
|
+
str1: 'ac',
|
|
34
|
+
str2: 'ad',
|
|
35
|
+
str3: 'ae',
|
|
36
|
+
str4: 'af',
|
|
37
|
+
str5: 'ag',
|
|
38
|
+
clientCreated: 'ah',
|
|
39
|
+
clientIp: 'ai',
|
|
40
|
+
clientUserAgent: 'aj',
|
|
41
|
+
clientDeviceVendor: 'ak',
|
|
42
|
+
clientDeviceModel: 'al',
|
|
43
|
+
clientDeviceType: 'am',
|
|
44
|
+
clientOsName: 'an',
|
|
45
|
+
clientOsVersion: 'ao',
|
|
46
|
+
clientBrowserName: 'ap',
|
|
47
|
+
clientBrowserVersion: 'aq',
|
|
48
|
+
clientBrowserMajor: 'ar',
|
|
49
|
+
clientBrowserEngine: 'as',
|
|
50
|
+
clientBrowserEngineVersion: 'at',
|
|
51
|
+
clientCpuArchitecture: 'au',
|
|
52
|
+
clientScreenWidth: 'av',
|
|
53
|
+
clientScreenHeight: 'aw',
|
|
54
|
+
clientScreenColorDepth: 'ax',
|
|
55
|
+
clientScreenPixelDepth: 'ay',
|
|
56
|
+
stateful: 'ba',
|
|
57
|
+
public: 'bb',
|
|
58
|
+
currency: 'bc',
|
|
59
|
+
revenue: 'bd',
|
|
60
|
+
products: 'be',
|
|
61
|
+
transactionId: 'bf',
|
|
62
|
+
affiliation: 'bg',
|
|
63
|
+
shipping: 'bh',
|
|
64
|
+
tax: 'bi',
|
|
65
|
+
coupon: 'bj',
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default function shortenKeys(obj: any) {
|
|
69
|
+
const result: any = {};
|
|
70
|
+
for (const key of Object.keys(obj)) {
|
|
71
|
+
result[shortenLookUpsHelper[key]] = obj[key];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return omitBy(result, isNil);
|
|
75
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SignalInstance } from '../types/signal.types';
|
|
2
|
+
import { supportsLocalStorage } from './cache.helper';
|
|
3
|
+
import { v4 as uuid } from 'uuid';
|
|
4
|
+
import { getDateString } from './date.helper';
|
|
5
|
+
import { CLIENT_CACHE_KEY } from '../constants/constants';
|
|
6
|
+
|
|
7
|
+
type CachedClientObj = {
|
|
8
|
+
clientId: string;
|
|
9
|
+
clientCreated: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const getCachedClientInfo = () => {
|
|
13
|
+
const clientCache = localStorage.getItem(CLIENT_CACHE_KEY);
|
|
14
|
+
|
|
15
|
+
if (clientCache) {
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(clientCache) as CachedClientObj;
|
|
18
|
+
} catch (e) {
|
|
19
|
+
// do nothing
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const getClientInfo = (instance: SignalInstance) => {
|
|
27
|
+
if (instance.deviceId || !instance.clientUserAgent) {
|
|
28
|
+
return {
|
|
29
|
+
clientId: undefined,
|
|
30
|
+
clientCreated: null,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (!supportsLocalStorage()) {
|
|
35
|
+
throw new Error('Local storage is not supported. Cannot create client id');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const cachedClientObj = getCachedClientInfo();
|
|
39
|
+
if (cachedClientObj && cachedClientObj.clientId && cachedClientObj.clientCreated) {
|
|
40
|
+
return {
|
|
41
|
+
clientId: cachedClientObj.clientId,
|
|
42
|
+
clientCreated: cachedClientObj.clientCreated,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const newClientInfo = {
|
|
47
|
+
clientId: uuid(),
|
|
48
|
+
clientCreated: getDateString(),
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
localStorage.setItem(CLIENT_CACHE_KEY, JSON.stringify(newClientInfo));
|
|
52
|
+
|
|
53
|
+
return newClientInfo;
|
|
54
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { RequestData, SignalInstance } from '../types/signal.types';
|
|
2
|
+
|
|
3
|
+
export const getEdgeAppInitProps = () => {
|
|
4
|
+
const envs = process.env;
|
|
5
|
+
return {
|
|
6
|
+
tenantId: envs['GRID_DEVICE_TENANT_ID'] ?? '',
|
|
7
|
+
environment: envs['GRID_DEVICE_ENVIRONMENT'] ?? '',
|
|
8
|
+
dataResidency: envs['GRID_DEVICE_DATA_RESIDENCY'] ?? '',
|
|
9
|
+
country: envs['GRID_DEVICE_COUNTRY'] ?? '',
|
|
10
|
+
spaceId: envs['GRID_DEVICE_SPACE_ID'] || '',
|
|
11
|
+
appId: envs['GRID_MODULE_APP_ID'] ?? '',
|
|
12
|
+
appVersion: envs['GRID_MODULE_APP_VERSION'] ?? '',
|
|
13
|
+
installationId: envs['GRID_MODULE_INSTALLATION_ID'] ?? '',
|
|
14
|
+
installationVersion: envs['GRID_MODULE_INSTALLATION_VERSION'] ?? '',
|
|
15
|
+
deviceId: envs['GRID_DEVICE_ID'] ?? '',
|
|
16
|
+
accessId: envs['GRID_DEVICE_ACCESS_ID'] ?? '',
|
|
17
|
+
accessToken: envs['GRID_DEVICE_ACCESS_KEY'] ?? '',
|
|
18
|
+
clientUserAgent: undefined,
|
|
19
|
+
clientIp: '',
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const getSessionFromInstance = (instance: SignalInstance): RequestData => ({
|
|
24
|
+
tenantId: instance.tenantId,
|
|
25
|
+
sessionId: instance.sessionId,
|
|
26
|
+
sessionCreated: instance.sessionCreated,
|
|
27
|
+
environment: instance.environment,
|
|
28
|
+
dataResidency: instance.dataResidency,
|
|
29
|
+
country: instance.country,
|
|
30
|
+
locationAccuracy: instance.locationAccuracy,
|
|
31
|
+
latitude: instance.latitude,
|
|
32
|
+
longitude: instance.longitude,
|
|
33
|
+
spaceId: instance.spaceId,
|
|
34
|
+
appId: instance.appId,
|
|
35
|
+
appVersion: instance.appVersion,
|
|
36
|
+
installationId: instance.installationId,
|
|
37
|
+
installationVersion: instance.installationVersion,
|
|
38
|
+
deviceId: instance.deviceId,
|
|
39
|
+
clientId: instance.clientId,
|
|
40
|
+
ip: instance.clientIp ?? instance.ip,
|
|
41
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RTCPeerConnectionWrapper } from './index';
|
|
2
|
+
|
|
3
|
+
export default async function initializeBrowserWebRTC(): Promise<RTCPeerConnectionWrapper> {
|
|
4
|
+
return {
|
|
5
|
+
createPeerConnection: (config?: RTCConfiguration): RTCPeerConnection => {
|
|
6
|
+
return new RTCPeerConnection(config);
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const isNode = typeof window === 'undefined';
|
|
2
|
+
|
|
3
|
+
export interface RTCPeerConnectionWrapper {
|
|
4
|
+
createPeerConnection: (config?: RTCConfiguration) => RTCPeerConnection;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
let wrtcImplementation: RTCPeerConnectionWrapper | null = null;
|
|
8
|
+
|
|
9
|
+
export default async function getWebRTC(): Promise<RTCPeerConnectionWrapper> {
|
|
10
|
+
if (!wrtcImplementation) {
|
|
11
|
+
try {
|
|
12
|
+
if (isNode) {
|
|
13
|
+
console.info('getWebRTC(): Initializing Node WebRTC');
|
|
14
|
+
const initializeWRTC = require('./node').default;
|
|
15
|
+
wrtcImplementation = await initializeWRTC();
|
|
16
|
+
} else {
|
|
17
|
+
console.info('getWebRTC(): Initializing Browser WebRTC');
|
|
18
|
+
const initializeWRTC = require('./browser').default;
|
|
19
|
+
wrtcImplementation = await initializeWRTC();
|
|
20
|
+
}
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error('getWebRTC(): Error during WebRTC initialization:', error);
|
|
23
|
+
throw new Error('WebRTC initialization failed');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!wrtcImplementation) {
|
|
28
|
+
throw new Error('WebRTC initialization failed');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return wrtcImplementation;
|
|
32
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RTCPeerConnectionWrapper } from './index';
|
|
2
|
+
|
|
3
|
+
export default async function initializeNodeWebRTC(): Promise<RTCPeerConnectionWrapper> {
|
|
4
|
+
try {
|
|
5
|
+
// Use require instead of import to avoid build-time dependency
|
|
6
|
+
const wrtc = require('@roamhq/wrtc');
|
|
7
|
+
return {
|
|
8
|
+
createPeerConnection: (config?: RTCConfiguration): RTCPeerConnection => {
|
|
9
|
+
return new wrtc.RTCPeerConnection(config);
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
} catch (error) {
|
|
13
|
+
console.error('Failed to initialize Node WebRTC:', error);
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
}
|