@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.
Files changed (113) hide show
  1. package/.prettierignore +10 -0
  2. package/.prettierrc +10 -0
  3. package/CHANGELOG.md +1202 -0
  4. package/README-MEDIASTREAM.md +124 -0
  5. package/README.md +302 -0
  6. package/dist/constants/constants.d.ts +7 -0
  7. package/dist/constants/constants.d.ts.map +1 -0
  8. package/dist/constants/constants.js +10 -0
  9. package/dist/constants/constants.js.map +1 -0
  10. package/dist/helpers/browser.helper.d.ts +5 -0
  11. package/dist/helpers/browser.helper.d.ts.map +1 -0
  12. package/dist/helpers/browser.helper.js +19 -0
  13. package/dist/helpers/browser.helper.js.map +1 -0
  14. package/dist/helpers/cache.helper.d.ts +6 -0
  15. package/dist/helpers/cache.helper.d.ts.map +1 -0
  16. package/dist/helpers/cache.helper.js +46 -0
  17. package/dist/helpers/cache.helper.js.map +1 -0
  18. package/dist/helpers/date.helper.d.ts +4 -0
  19. package/dist/helpers/date.helper.d.ts.map +1 -0
  20. package/dist/helpers/date.helper.js +13 -0
  21. package/dist/helpers/date.helper.js.map +1 -0
  22. package/dist/helpers/session.helper.d.ts +13 -0
  23. package/dist/helpers/session.helper.d.ts.map +1 -0
  24. package/dist/helpers/session.helper.js +88 -0
  25. package/dist/helpers/session.helper.js.map +1 -0
  26. package/dist/helpers/shorten-look-ups.helper.d.ts +3 -0
  27. package/dist/helpers/shorten-look-ups.helper.d.ts.map +1 -0
  28. package/dist/helpers/shorten-look-ups.helper.js +80 -0
  29. package/dist/helpers/shorten-look-ups.helper.js.map +1 -0
  30. package/dist/helpers/signals-client.helper.d.ts +9 -0
  31. package/dist/helpers/signals-client.helper.d.ts.map +1 -0
  32. package/dist/helpers/signals-client.helper.js +44 -0
  33. package/dist/helpers/signals-client.helper.js.map +1 -0
  34. package/dist/helpers/signals.helper.d.ts +19 -0
  35. package/dist/helpers/signals.helper.d.ts.map +1 -0
  36. package/dist/helpers/signals.helper.js +48 -0
  37. package/dist/helpers/signals.helper.js.map +1 -0
  38. package/dist/helpers/wrtc/browser.d.ts +3 -0
  39. package/dist/helpers/wrtc/browser.d.ts.map +1 -0
  40. package/dist/helpers/wrtc/browser.js +11 -0
  41. package/dist/helpers/wrtc/browser.js.map +1 -0
  42. package/dist/helpers/wrtc/index.d.ts +5 -0
  43. package/dist/helpers/wrtc/index.d.ts.map +1 -0
  44. package/dist/helpers/wrtc/index.js +30 -0
  45. package/dist/helpers/wrtc/index.js.map +1 -0
  46. package/dist/helpers/wrtc/node.d.ts +3 -0
  47. package/dist/helpers/wrtc/node.d.ts.map +1 -0
  48. package/dist/helpers/wrtc/node.js +18 -0
  49. package/dist/helpers/wrtc/node.js.map +1 -0
  50. package/dist/index.d.ts +109 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +1013 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/services/online-status-subscription.service.d.ts +28 -0
  55. package/dist/services/online-status-subscription.service.d.ts.map +1 -0
  56. package/dist/services/online-status-subscription.service.js +96 -0
  57. package/dist/services/online-status-subscription.service.js.map +1 -0
  58. package/dist/services/phyhub-connection.service.d.ts +20 -0
  59. package/dist/services/phyhub-connection.service.d.ts.map +1 -0
  60. package/dist/services/phyhub-connection.service.js +176 -0
  61. package/dist/services/phyhub-connection.service.js.map +1 -0
  62. package/dist/services/signals.service.d.ts +97 -0
  63. package/dist/services/signals.service.d.ts.map +1 -0
  64. package/dist/services/signals.service.js +536 -0
  65. package/dist/services/signals.service.js.map +1 -0
  66. package/dist/services/webrtc/datachannel.d.ts +10 -0
  67. package/dist/services/webrtc/datachannel.d.ts.map +1 -0
  68. package/dist/services/webrtc/datachannel.js +290 -0
  69. package/dist/services/webrtc/datachannel.js.map +1 -0
  70. package/dist/services/webrtc/mediastream.d.ts +10 -0
  71. package/dist/services/webrtc/mediastream.d.ts.map +1 -0
  72. package/dist/services/webrtc/mediastream.js +396 -0
  73. package/dist/services/webrtc/mediastream.js.map +1 -0
  74. package/dist/services/webrtc/peer-connection-ice.d.ts +32 -0
  75. package/dist/services/webrtc/peer-connection-ice.d.ts.map +1 -0
  76. package/dist/services/webrtc/peer-connection-ice.js +483 -0
  77. package/dist/services/webrtc/peer-connection-ice.js.map +1 -0
  78. package/dist/types/signal.types.d.ts +354 -0
  79. package/dist/types/signal.types.d.ts.map +1 -0
  80. package/dist/types/signal.types.js +53 -0
  81. package/dist/types/signal.types.js.map +1 -0
  82. package/dist/types/twin.types.d.ts +705 -0
  83. package/dist/types/twin.types.d.ts.map +1 -0
  84. package/dist/types/twin.types.js +21 -0
  85. package/dist/types/twin.types.js.map +1 -0
  86. package/dist/types/webrtc.types.d.ts +41 -0
  87. package/dist/types/webrtc.types.d.ts.map +1 -0
  88. package/dist/types/webrtc.types.js +3 -0
  89. package/dist/types/webrtc.types.js.map +1 -0
  90. package/package.json +50 -0
  91. package/src/constants/constants.ts +12 -0
  92. package/src/helpers/browser.helper.ts +15 -0
  93. package/src/helpers/cache.helper.ts +52 -0
  94. package/src/helpers/date.helper.ts +8 -0
  95. package/src/helpers/session.helper.ts +96 -0
  96. package/src/helpers/shorten-look-ups.helper.ts +75 -0
  97. package/src/helpers/signals-client.helper.ts +54 -0
  98. package/src/helpers/signals.helper.ts +41 -0
  99. package/src/helpers/wrtc/browser.ts +9 -0
  100. package/src/helpers/wrtc/index.ts +32 -0
  101. package/src/helpers/wrtc/node.ts +16 -0
  102. package/src/index.ts +1429 -0
  103. package/src/services/online-status-subscription.service.ts +127 -0
  104. package/src/services/phyhub-connection.service.ts +213 -0
  105. package/src/services/signals.service.ts +783 -0
  106. package/src/services/webrtc/datachannel.ts +421 -0
  107. package/src/services/webrtc/mediastream.ts +602 -0
  108. package/src/services/webrtc/peer-connection-ice.ts +689 -0
  109. package/src/types/lodash.d.ts +3 -0
  110. package/src/types/signal.types.ts +382 -0
  111. package/src/types/twin.types.ts +803 -0
  112. package/src/types/webrtc.types.ts +48 -0
  113. 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=webrtc.types.js.map
@@ -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
+ }