cobrowse-sdk-react-native 2.15.0 → 2.16.0

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 (93) hide show
  1. package/.github/workflows/lint.yaml +0 -2
  2. package/android/src/main/java/io/cobrowse/reactnative/CobrowseIOModule.java +23 -0
  3. package/ios/RCTCobrowseIO.m +4 -0
  4. package/js/CBIOBroadcastPickerView.tsx +15 -0
  5. package/js/CobrowseAccessibilityService.ts +15 -0
  6. package/js/CobrowseIO.ts +156 -0
  7. package/js/CobrowseView.tsx +150 -0
  8. package/js/{Redacted.js → Redacted.tsx} +3 -2
  9. package/js/Session.ts +128 -0
  10. package/js/SessionControl.ts +38 -0
  11. package/js/Unredacted.tsx +106 -0
  12. package/js/{index.js → index.ts} +1 -0
  13. package/js/{useSession.js → useSession.ts} +5 -4
  14. package/lib/commonjs/CBIOBroadcastPickerView.js +15 -0
  15. package/lib/commonjs/CBIOBroadcastPickerView.js.map +1 -0
  16. package/lib/commonjs/CobrowseAccessibilityService.js +22 -0
  17. package/lib/commonjs/CobrowseAccessibilityService.js.map +1 -0
  18. package/lib/commonjs/CobrowseIO.js +149 -0
  19. package/lib/commonjs/CobrowseIO.js.map +1 -0
  20. package/lib/commonjs/CobrowseView.js +146 -0
  21. package/lib/commonjs/CobrowseView.js.map +1 -0
  22. package/lib/commonjs/Redacted.js +14 -0
  23. package/lib/commonjs/Redacted.js.map +1 -0
  24. package/lib/commonjs/Session.js +100 -0
  25. package/lib/commonjs/Session.js.map +1 -0
  26. package/lib/commonjs/SessionControl.js +39 -0
  27. package/lib/commonjs/SessionControl.js.map +1 -0
  28. package/lib/commonjs/Unredacted.js +82 -0
  29. package/lib/commonjs/Unredacted.js.map +1 -0
  30. package/lib/commonjs/index.js +77 -0
  31. package/lib/commonjs/index.js.map +1 -0
  32. package/lib/commonjs/useSession.js +35 -0
  33. package/lib/commonjs/useSession.js.map +1 -0
  34. package/lib/module/CBIOBroadcastPickerView.js +8 -0
  35. package/lib/module/CBIOBroadcastPickerView.js.map +1 -0
  36. package/lib/module/CobrowseAccessibilityService.js +13 -0
  37. package/lib/module/CobrowseAccessibilityService.js.map +1 -0
  38. package/lib/module/CobrowseIO.js +141 -0
  39. package/lib/module/CobrowseIO.js.map +1 -0
  40. package/lib/module/CobrowseView.js +136 -0
  41. package/lib/module/CobrowseView.js.map +1 -0
  42. package/lib/module/Redacted.js +7 -0
  43. package/lib/module/Redacted.js.map +1 -0
  44. package/lib/module/Session.js +93 -0
  45. package/lib/module/Session.js.map +1 -0
  46. package/lib/module/SessionControl.js +31 -0
  47. package/lib/module/SessionControl.js.map +1 -0
  48. package/lib/module/Unredacted.js +71 -0
  49. package/lib/module/Unredacted.js.map +1 -0
  50. package/lib/module/index.js +9 -0
  51. package/lib/module/index.js.map +1 -0
  52. package/lib/module/useSession.js +28 -0
  53. package/lib/module/useSession.js.map +1 -0
  54. package/lib/typescript/CBIOBroadcastPickerView.d.ts +8 -0
  55. package/lib/typescript/CBIOBroadcastPickerView.d.ts.map +1 -0
  56. package/lib/typescript/CobrowseAccessibilityService.d.ts +8 -0
  57. package/lib/typescript/CobrowseAccessibilityService.d.ts.map +1 -0
  58. package/lib/typescript/CobrowseIO.d.ts +30 -0
  59. package/lib/typescript/CobrowseIO.d.ts.map +1 -0
  60. package/lib/typescript/CobrowseView.d.ts +25 -0
  61. package/lib/typescript/CobrowseView.d.ts.map +1 -0
  62. package/lib/typescript/Redacted.d.ts +4 -0
  63. package/lib/typescript/Redacted.d.ts.map +1 -0
  64. package/lib/typescript/Session.d.ts +42 -0
  65. package/lib/typescript/Session.d.ts.map +1 -0
  66. package/lib/typescript/SessionControl.d.ts +17 -0
  67. package/lib/typescript/SessionControl.d.ts.map +1 -0
  68. package/lib/typescript/Unredacted.d.ts +10 -0
  69. package/lib/typescript/Unredacted.d.ts.map +1 -0
  70. package/lib/typescript/index.d.ts +10 -0
  71. package/lib/typescript/index.d.ts.map +1 -0
  72. package/lib/typescript/useSession.d.ts +3 -0
  73. package/lib/typescript/useSession.d.ts.map +1 -0
  74. package/package.json +25 -4
  75. package/tsconfig.build.json +5 -0
  76. package/tsconfig.json +28 -0
  77. package/js/CBIOBroadcastPickerView.js +0 -11
  78. package/js/CobrowseAccessibilityService.js +0 -11
  79. package/js/CobrowseIO.js +0 -145
  80. package/js/CobrowseView.js +0 -129
  81. package/js/Session.js +0 -107
  82. package/js/SessionControl.js +0 -26
  83. package/js/Unredacted.js +0 -82
  84. package/ts/CBIOBroadcastPickerView.d.ts +0 -8
  85. package/ts/CobrowseAccessibilityService.d.ts +0 -6
  86. package/ts/CobrowseIO.d.ts +0 -29
  87. package/ts/CobrowseView.d.ts +0 -20
  88. package/ts/Redacted.d.ts +0 -8
  89. package/ts/Session.d.ts +0 -58
  90. package/ts/SessionControl.d.ts +0 -9
  91. package/ts/Unredacted.d.ts +0 -16
  92. package/ts/index.d.ts +0 -7
  93. package/ts/useSession.d.ts +0 -3
@@ -1,13 +1,14 @@
1
1
  import { useEffect, useState } from 'react'
2
2
  import CobrowseIO from './CobrowseIO'
3
+ import type Session from './Session'
3
4
 
4
- export function useSession () {
5
- const [session, setSession] = useState(null)
5
+ export function useSession (): Session | null {
6
+ const [session, setSession] = useState<Session | null>(null)
6
7
 
7
8
  // initial value
8
9
  useEffect(() => {
9
10
  let isMounted = true
10
- const getSession = async () => {
11
+ async function getSession (): Promise<void> {
11
12
  const session = await CobrowseIO.currentSession()
12
13
 
13
14
  if (isMounted) {
@@ -15,7 +16,7 @@ export function useSession () {
15
16
  }
16
17
  }
17
18
 
18
- getSession()
19
+ void getSession()
19
20
 
20
21
  return () => {
21
22
  isMounted = false
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = CBIOBroadcastPickerView;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const CBIOBroadcastPickerViewNativeView = (0, _reactNative.requireNativeComponent)('CBIOBroadcastPickerView');
11
+ function CBIOBroadcastPickerView(props) {
12
+ // this native component is only available on iOS
13
+ return _reactNative.Platform.OS === 'ios' ? /*#__PURE__*/_react.default.createElement(CBIOBroadcastPickerViewNativeView, props) : null;
14
+ }
15
+ //# sourceMappingURL=CBIOBroadcastPickerView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","obj","__esModule","default","CBIOBroadcastPickerViewNativeView","requireNativeComponent","CBIOBroadcastPickerView","props","Platform","OS","createElement"],"sourceRoot":"../../js","sources":["CBIOBroadcastPickerView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAA+E,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE/E,MAAMG,iCAAiC,GAAG,IAAAC,mCAAsB,EAC9D,yBACF,CAAC;AAMc,SAASC,uBAAuBA,CAAEC,KAAmC,EAAsB;EACxG;EACA,OAAOC,qBAAQ,CAACC,EAAE,KAAK,KAAK,gBAAGZ,MAAA,CAAAM,OAAA,CAAAO,aAAA,CAACN,iCAAiC,EAAKG,KAAQ,CAAC,GAAG,IAAI;AACxF"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.isRunning = isRunning;
8
+ exports.showSetup = showSetup;
9
+ var _reactNative = require("react-native");
10
+ const CobrowseIONative = _reactNative.NativeModules.CobrowseIO;
11
+ function showSetup() {
12
+ return CobrowseIONative.accessibilityServiceShowSetup();
13
+ }
14
+ function isRunning() {
15
+ return CobrowseIONative.accessibilityServiceIsRunning();
16
+ }
17
+ var _default = {
18
+ showSetup,
19
+ isRunning
20
+ };
21
+ exports.default = _default;
22
+ //# sourceMappingURL=CobrowseAccessibilityService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","CobrowseIONative","NativeModules","CobrowseIO","showSetup","accessibilityServiceShowSetup","isRunning","accessibilityServiceIsRunning","_default","exports","default"],"sourceRoot":"../../js","sources":["CobrowseAccessibilityService.ts"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,MAAMC,gBAAgB,GAAGC,0BAAa,CAACC,UAAU;AAE1C,SAASC,SAASA,CAAA,EAAU;EACjC,OAAOH,gBAAgB,CAACI,6BAA6B,CAAC,CAAC;AACzD;AAEO,SAASC,SAASA,CAAA,EAAa;EACpC,OAAOL,gBAAgB,CAACM,6BAA6B,CAAC,CAAC;AACzD;AAAC,IAAAC,QAAA,GAEc;EACbJ,SAAS;EACTE;AACF,CAAC;AAAAG,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _Session = _interopRequireDefault(require("./Session"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const CobrowseIONative = _reactNative.NativeModules.CobrowseIO;
11
+ const emitter = new _reactNative.NativeEventEmitter(CobrowseIONative);
12
+
13
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
14
+ class CobrowseIO {
15
+ static sessionRequestShown = false;
16
+ static remoteControlRequestShown = false;
17
+
18
+ /** @deprecated */
19
+ static get SESSION_UPDATED() {
20
+ return 'session.updated';
21
+ }
22
+
23
+ /** @deprecated */
24
+ static get SESSION_ENDED() {
25
+ return 'session.ended';
26
+ }
27
+ static handleSessionRequest(session) {
28
+ if (this.sessionRequestShown) return;
29
+ this.sessionRequestShown = true;
30
+ _reactNative.Alert.alert('Support Request', 'A support agent would like to use this app with you. Do you accept?', [{
31
+ text: 'Reject',
32
+ onPress: () => {
33
+ this.sessionRequestShown = false;
34
+ void session.end();
35
+ },
36
+ style: 'cancel'
37
+ }, {
38
+ text: 'Accept',
39
+ onPress: () => {
40
+ this.sessionRequestShown = false;
41
+ void session.activate();
42
+ }
43
+ }], {
44
+ cancelable: false
45
+ });
46
+ }
47
+ static handleRemoteControlRequest(session) {
48
+ if (this.remoteControlRequestShown) return;
49
+ this.remoteControlRequestShown = true;
50
+ _reactNative.Alert.alert('Remote Control Request', 'A support agent would like to take remote control of this app. Do you accept?', [{
51
+ text: 'Reject',
52
+ onPress: () => {
53
+ this.remoteControlRequestShown = false;
54
+ void session.setRemoteControl('rejected');
55
+ },
56
+ style: 'cancel'
57
+ }, {
58
+ text: 'Accept',
59
+ onPress: () => {
60
+ this.remoteControlRequestShown = false;
61
+ void session.setRemoteControl('on');
62
+ }
63
+ }], {
64
+ cancelable: false
65
+ });
66
+ }
67
+ static addListener(event, cb) {
68
+ return emitter.addListener(event, session => cb(new _Session.default(session)));
69
+ }
70
+ static start() {
71
+ CobrowseIONative.start();
72
+ }
73
+ static stop() {
74
+ CobrowseIONative.stop();
75
+ }
76
+
77
+ // eslint-disable-next-line accessor-pairs
78
+ static set api(api) {
79
+ CobrowseIONative.api(api);
80
+ }
81
+
82
+ // eslint-disable-next-line accessor-pairs
83
+ static set license(license) {
84
+ CobrowseIONative.license(license);
85
+ }
86
+
87
+ // eslint-disable-next-line accessor-pairs
88
+ static set customData(customData) {
89
+ CobrowseIONative.customData(customData);
90
+ }
91
+
92
+ // eslint-disable-next-line accessor-pairs
93
+ static set capabilities(capabilities) {
94
+ CobrowseIONative.capabilities(capabilities);
95
+ }
96
+
97
+ // eslint-disable-next-line accessor-pairs
98
+ static set deviceToken(token) {
99
+ CobrowseIONative.deviceToken(token);
100
+ }
101
+ static currentSession() {
102
+ return CobrowseIONative.currentSession().then(session => session != null ? new _Session.default(session) : null);
103
+ }
104
+ static createSession() {
105
+ return CobrowseIONative.createSession().then(session => session != null ? new _Session.default(session) : null);
106
+ }
107
+ static getSession(codeOrId) {
108
+ return CobrowseIONative.getSession(codeOrId).then(session => session != null ? new _Session.default(session) : null);
109
+ }
110
+
111
+ /** @deprecated */
112
+ static activateSession() {
113
+ return CobrowseIONative.activateSession().then(session => session != null ? new _Session.default(session) : null);
114
+ }
115
+
116
+ /** @deprecated */
117
+ static endSession() {
118
+ return CobrowseIONative.endSession();
119
+ }
120
+ static showSessionControls = null;
121
+ static handleFullDeviceRequest = null;
122
+ }
123
+
124
+ // the session.requested event is considered internal, it should
125
+ // not be used outside these bindings
126
+ exports.default = CobrowseIO;
127
+ CobrowseIO.addListener('session.requested', session => {
128
+ if (CobrowseIO.showSessionControls === false) {
129
+ CobrowseIONative.overwriteSessionIndicator();
130
+ }
131
+ if (_reactNative.Platform.OS === 'ios' && CobrowseIO.handleFullDeviceRequest != null) {
132
+ CobrowseIONative.overwriteFullControlUI();
133
+ }
134
+ CobrowseIO.handleSessionRequest(session);
135
+ });
136
+ CobrowseIO.addListener('session.updated', session => {
137
+ if (session.isActive() && session.remote_control === 'requested') {
138
+ CobrowseIO.handleRemoteControlRequest(session);
139
+ }
140
+ if (session.isActive() && session.full_device_state === 'requested') {
141
+ if (CobrowseIO.handleFullDeviceRequest != null) {
142
+ CobrowseIO.handleFullDeviceRequest(session);
143
+ } else if (_reactNative.Platform.OS === 'android') {
144
+ // accept the incoming connection by default
145
+ void session.setFullDevice('on');
146
+ }
147
+ }
148
+ });
149
+ //# sourceMappingURL=CobrowseIO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_Session","_interopRequireDefault","obj","__esModule","default","CobrowseIONative","NativeModules","CobrowseIO","emitter","NativeEventEmitter","sessionRequestShown","remoteControlRequestShown","SESSION_UPDATED","SESSION_ENDED","handleSessionRequest","session","Alert","alert","text","onPress","end","style","activate","cancelable","handleRemoteControlRequest","setRemoteControl","addListener","event","cb","Session","start","stop","api","license","customData","capabilities","deviceToken","token","currentSession","then","createSession","getSession","codeOrId","activateSession","endSession","showSessionControls","handleFullDeviceRequest","exports","overwriteSessionIndicator","Platform","OS","overwriteFullControlUI","isActive","remote_control","full_device_state","setFullDevice"],"sourceRoot":"../../js","sources":["CobrowseIO.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAiF,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AACjF,MAAMG,gBAAgB,GAAGC,0BAAa,CAACC,UAAU;AAEjD,MAAMC,OAAO,GAAG,IAAIC,+BAAkB,CAACJ,gBAAgB,CAAC;;AAExD;AACe,MAAME,UAAU,CAAC;EAC9B,OAAeG,mBAAmB,GAAG,KAAK;EAC1C,OAAeC,yBAAyB,GAAG,KAAK;;EAEhD;EACA,WAAWC,eAAeA,CAAA,EAAuB;IAC/C,OAAO,iBAAiB;EAC1B;;EAEA;EACA,WAAWC,aAAaA,CAAA,EAAqB;IAC3C,OAAO,eAAe;EACxB;EAEA,OAAOC,oBAAoBA,CAAEC,OAAgB,EAAQ;IACnD,IAAI,IAAI,CAACL,mBAAmB,EAAE;IAC9B,IAAI,CAACA,mBAAmB,GAAG,IAAI;IAC/BM,kBAAK,CAACC,KAAK,CACT,iBAAiB,EACjB,qEAAqE,EACrE,CAAC;MACCC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACT,mBAAmB,GAAG,KAAK;QAChC,KAAKK,OAAO,CAACK,GAAG,CAAC,CAAC;MACpB,CAAC;MACDC,KAAK,EAAE;IACT,CAAC,EAAE;MACDH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACT,mBAAmB,GAAG,KAAK;QAChC,KAAKK,OAAO,CAACO,QAAQ,CAAC,CAAC;MACzB;IACF,CAAC,CAAC,EAAE;MAAEC,UAAU,EAAE;IAAM,CAAC,CAAC;EAC9B;EAEA,OAAOC,0BAA0BA,CAAET,OAAgB,EAAQ;IACzD,IAAI,IAAI,CAACJ,yBAAyB,EAAE;IACpC,IAAI,CAACA,yBAAyB,GAAG,IAAI;IACrCK,kBAAK,CAACC,KAAK,CACT,wBAAwB,EACxB,+EAA+E,EAC/E,CAAC;MACCC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACR,yBAAyB,GAAG,KAAK;QACtC,KAAKI,OAAO,CAACU,gBAAgB,CAAC,UAAU,CAAC;MAC3C,CAAC;MACDJ,KAAK,EAAE;IACT,CAAC,EAAE;MACDH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACR,yBAAyB,GAAG,KAAK;QACtC,KAAKI,OAAO,CAACU,gBAAgB,CAAC,IAAI,CAAC;MACrC;IACF,CAAC,CAAC,EAAE;MAAEF,UAAU,EAAE;IAAM,CAAC,CAAC;EAC9B;EAEA,OAAOG,WAAWA,CAAEC,KAAkD,EAAEC,EAA8B,EAAuB;IAC3H,OAAOpB,OAAO,CAACkB,WAAW,CAACC,KAAK,EAAGZ,OAAoB,IAAKa,EAAE,CAAC,IAAIC,gBAAO,CAACd,OAAO,CAAC,CAAC,CAAC;EACvF;EAEA,OAAOe,KAAKA,CAAA,EAAU;IACpBzB,gBAAgB,CAACyB,KAAK,CAAC,CAAC;EAC1B;EAEA,OAAOC,IAAIA,CAAA,EAAU;IACnB1B,gBAAgB,CAAC0B,IAAI,CAAC,CAAC;EACzB;;EAEA;EACA,WAAWC,GAAGA,CAAEA,GAAW,EAAE;IAC3B3B,gBAAgB,CAAC2B,GAAG,CAACA,GAAG,CAAC;EAC3B;;EAEA;EACA,WAAWC,OAAOA,CAAEA,OAAe,EAAE;IACnC5B,gBAAgB,CAAC4B,OAAO,CAACA,OAAO,CAAC;EACnC;;EAEA;EACA,WAAWC,UAAUA,CAAEA,UAAmC,EAAE;IAC1D7B,gBAAgB,CAAC6B,UAAU,CAACA,UAAU,CAAC;EACzC;;EAEA;EACA,WAAWC,YAAYA,CAAEA,YAAiF,EAAE;IAC1G9B,gBAAgB,CAAC8B,YAAY,CAACA,YAAY,CAAC;EAC7C;;EAEA;EACA,WAAWC,WAAWA,CAAEC,KAAa,EAAE;IACrChC,gBAAgB,CAAC+B,WAAW,CAACC,KAAK,CAAC;EACrC;EAEA,OAAOC,cAAcA,CAAA,EAAoB;IACvC,OAAOjC,gBAAgB,CAACiC,cAAc,CAAC,CAAC,CAACC,IAAI,CAAExB,OAA2B,IAAMA,OAAO,IAAI,IAAI,GAAI,IAAIc,gBAAO,CAACd,OAAO,CAAC,GAAG,IAAI,CAAC;EACjI;EAEA,OAAOyB,aAAaA,CAAA,EAAoB;IACtC,OAAOnC,gBAAgB,CAACmC,aAAa,CAAC,CAAC,CAACD,IAAI,CAAExB,OAA2B,IAAMA,OAAO,IAAI,IAAI,GAAI,IAAIc,gBAAO,CAACd,OAAO,CAAC,GAAG,IAAI,CAAC;EAChI;EAEA,OAAO0B,UAAUA,CAAEC,QAAgB,EAAkB;IACnD,OAAOrC,gBAAgB,CAACoC,UAAU,CAACC,QAAQ,CAAC,CAACH,IAAI,CAAExB,OAA2B,IAAMA,OAAO,IAAI,IAAI,GAAI,IAAIc,gBAAO,CAACd,OAAO,CAAC,GAAG,IAAI,CAAC;EACrI;;EAEA;EACA,OAAO4B,eAAeA,CAAA,EAAoB;IACxC,OAAOtC,gBAAgB,CAACsC,eAAe,CAAC,CAAC,CAACJ,IAAI,CAAExB,OAA2B,IAAMA,OAAO,IAAI,IAAI,GAAI,IAAIc,gBAAO,CAACd,OAAO,CAAC,GAAG,IAAI,CAAC;EAClI;;EAEA;EACA,OAAO6B,UAAUA,CAAA,EAAU;IACzB,OAAOvC,gBAAgB,CAACuC,UAAU,CAAC,CAAC;EACtC;EAEA,OAAOC,mBAAmB,GAAmB,IAAI;EACjD,OAAOC,uBAAuB,GAAkC,IAAI;AACtE;;AAEA;AACA;AAAAC,OAAA,CAAA3C,OAAA,GAAAG,UAAA;AACAA,UAAU,CAACmB,WAAW,CAAC,mBAAmB,EAAGX,OAAO,IAAK;EACvD,IAAIR,UAAU,CAACsC,mBAAmB,KAAK,KAAK,EAAE;IAC5CxC,gBAAgB,CAAC2C,yBAAyB,CAAC,CAAC;EAC9C;EAEA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAK3C,UAAU,CAACuC,uBAAuB,IAAI,IAAK,EAAE;IACzEzC,gBAAgB,CAAC8C,sBAAsB,CAAC,CAAC;EAC3C;EAEA5C,UAAU,CAACO,oBAAoB,CAACC,OAAO,CAAC;AAC1C,CAAC,CAAC;AAEFR,UAAU,CAACmB,WAAW,CAAC,iBAAiB,EAAGX,OAAO,IAAK;EACrD,IAAIA,OAAO,CAACqC,QAAQ,CAAC,CAAC,IAAIrC,OAAO,CAACsC,cAAc,KAAK,WAAW,EAAE;IAChE9C,UAAU,CAACiB,0BAA0B,CAACT,OAAO,CAAC;EAChD;EAEA,IAAIA,OAAO,CAACqC,QAAQ,CAAC,CAAC,IAAIrC,OAAO,CAACuC,iBAAiB,KAAK,WAAW,EAAE;IACnE,IAAI/C,UAAU,CAACuC,uBAAuB,IAAI,IAAI,EAAE;MAC9CvC,UAAU,CAACuC,uBAAuB,CAAC/B,OAAO,CAAC;IAC7C,CAAC,MAAM,IAAIkC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MACpC;MACA,KAAKnC,OAAO,CAACwC,aAAa,CAAC,IAAI,CAAC;IAClC;EACF;AACF,CAAC,CAAC"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _CobrowseIO = _interopRequireDefault(require("./CobrowseIO"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ const styles = _reactNative.StyleSheet.create({
14
+ container: {
15
+ flex: 1,
16
+ justifyContent: 'flex-end'
17
+ },
18
+ text: {
19
+ textAlign: 'center',
20
+ margin: 15,
21
+ fontSize: 15,
22
+ lineHeight: 20
23
+ },
24
+ code: {
25
+ fontSize: 29,
26
+ padding: 20,
27
+ fontWeight: 'bold',
28
+ textAlign: 'center'
29
+ },
30
+ button: {
31
+ color: 'rgb(0, 122, 255)',
32
+ fontSize: 18,
33
+ margin: 10
34
+ }
35
+ });
36
+ class CobrowseView extends _react.Component {
37
+ _updateListener = null;
38
+ _endListener = null;
39
+ constructor(props) {
40
+ super(props);
41
+ this.state = {
42
+ error: null,
43
+ session: null
44
+ };
45
+ }
46
+ async componentDidMount() {
47
+ if (this.props.license != null) {
48
+ console.warn('Passing license to view is deprecated. Use CobrowseIO.license = "..." instead');
49
+ _CobrowseIO.default.license = this.props.license;
50
+ }
51
+ try {
52
+ const current = await _CobrowseIO.default.currentSession();
53
+ if (current != null) this.setState({
54
+ session: current
55
+ });else {
56
+ const session = await _CobrowseIO.default.createSession();
57
+ this.setState({
58
+ session
59
+ });
60
+ }
61
+ } catch (error) {
62
+ this.setState({
63
+ error: error
64
+ });
65
+ }
66
+ this._updateListener = _CobrowseIO.default.addListener('session.updated', session => {
67
+ this.setState({
68
+ session
69
+ });
70
+ });
71
+ this._endListener = _CobrowseIO.default.addListener('session.ended', () => {
72
+ if (this.props.onEnded != null) this.props.onEnded();
73
+ this.setState({
74
+ session: null
75
+ });
76
+ });
77
+ }
78
+ componentWillUnmount() {
79
+ if (this._updateListener != null) this._updateListener.remove();
80
+ if (this._endListener != null) this._endListener.remove();
81
+ }
82
+ async endSession() {
83
+ try {
84
+ const {
85
+ session
86
+ } = this.state;
87
+ if (session == null) {
88
+ throw new Error('No session to end');
89
+ }
90
+ await session.end();
91
+ this.setState({
92
+ session: null
93
+ });
94
+ } catch (error) {
95
+ this.setState({
96
+ error: error
97
+ });
98
+ }
99
+ }
100
+ renderError(error) {
101
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
102
+ style: [styles.text]
103
+ }, error.message);
104
+ }
105
+ renderCode() {
106
+ var _this$state$session;
107
+ let code = (_this$state$session = this.state.session) === null || _this$state$session === void 0 ? void 0 : _this$state$session.code;
108
+ if (code != null) code = code.substr(0, 3) + '-' + code.substr(3);
109
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
110
+ style: [styles.code, {
111
+ opacity: code != null ? 1 : 0.2
112
+ }]
113
+ }, code ?? '000-000'), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
114
+ style: [styles.text]
115
+ }, "Provide this code to your support agent to begin screen sharing."), /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, null));
116
+ }
117
+ renderManageSession() {
118
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
119
+ style: [styles.text]
120
+ }, "You're sharing screens from this app with a support agent."), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
121
+ onPress: () => this.endSession
122
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
123
+ style: [styles.text, styles.button]
124
+ }, "End Session")));
125
+ }
126
+ renderContent() {
127
+ const {
128
+ error,
129
+ session
130
+ } = this.state;
131
+ if (error != null) {
132
+ return this.renderError(error);
133
+ } else if (session == null || session.state === 'pending' || session.state === 'authorizing') {
134
+ return this.renderCode();
135
+ } else {
136
+ return this.renderManageSession();
137
+ }
138
+ }
139
+ render() {
140
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
141
+ style: styles.container
142
+ }, this.renderContent());
143
+ }
144
+ }
145
+ exports.default = CobrowseView;
146
+ //# sourceMappingURL=CobrowseView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_CobrowseIO","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","container","flex","justifyContent","text","textAlign","margin","fontSize","lineHeight","code","padding","fontWeight","button","color","CobrowseView","Component","_updateListener","_endListener","constructor","props","state","error","session","componentDidMount","license","console","warn","CobrowseIO","current","currentSession","setState","createSession","addListener","onEnded","componentWillUnmount","remove","endSession","Error","end","renderError","createElement","Text","style","message","renderCode","_this$state$session","substr","View","opacity","ActivityIndicator","renderManageSession","TouchableOpacity","onPress","renderContent","render","exports"],"sourceRoot":"../../js","sources":["CobrowseView.tsx"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Redacted;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const CBIOCobrowseRedacted = (0, _reactNative.requireNativeComponent)('CBIOCobrowseRedacted');
11
+ function Redacted(props) {
12
+ return /*#__PURE__*/_react.default.createElement(CBIOCobrowseRedacted, props, props.children);
13
+ }
14
+ //# sourceMappingURL=Redacted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","obj","__esModule","default","CBIOCobrowseRedacted","requireNativeComponent","Redacted","props","createElement","children"],"sourceRoot":"../../js","sources":["Redacted.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAqE,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAErE,MAAMG,oBAAoB,GAAG,IAAAC,mCAAsB,EAAC,sBAAsB,CAAC;AAE5D,SAASC,QAAQA,CAAEC,KAAgB,EAAe;EAC/D,oBAAOV,MAAA,CAAAM,OAAA,CAAAK,aAAA,CAACJ,oBAAoB,EAAKG,KAAK,EAAGA,KAAK,CAACE,QAA+B,CAAC;AACjF"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ const CobrowseIONative = _reactNative.NativeModules.CobrowseIO;
9
+ const emitter = new _reactNative.NativeEventEmitter(CobrowseIONative);
10
+ class Session {
11
+ constructor() {
12
+ let session = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
+ this.session = session;
14
+ this._listen();
15
+ }
16
+ _update(session, onMatch) {
17
+ if (this.session.id === undefined || session != null && this.session.id === session.id) {
18
+ this.session = session;
19
+ if (typeof onMatch === 'function') onMatch();
20
+ }
21
+ }
22
+ _listen() {
23
+ const updates = emitter.addListener('session.updated', session => this._update(session));
24
+ const ended = emitter.addListener('session.ended', session => {
25
+ this._update(session, () => {
26
+ updates.remove();
27
+ ended.remove();
28
+ });
29
+ });
30
+ }
31
+ addListener(eventType, listener) {
32
+ let mappedEventsType;
33
+ // TODO: this class should extend EventEmitter and forward
34
+ // on the non-namespaced versions of these events
35
+ switch (eventType) {
36
+ case 'ended':
37
+ mappedEventsType = 'session.updated';
38
+ break;
39
+ case 'updated':
40
+ mappedEventsType = 'session.ended';
41
+ break;
42
+ }
43
+ return emitter.addListener(mappedEventsType ?? eventType, session => {
44
+ this._update(session, () => {
45
+ listener(this);
46
+ });
47
+ });
48
+ }
49
+ get id() {
50
+ return this.session.id;
51
+ }
52
+ get code() {
53
+ return this.session.code;
54
+ }
55
+ get state() {
56
+ return this.session.state;
57
+ }
58
+ get full_device() {
59
+ return this.session.full_device ?? false;
60
+ }
61
+ get full_device_state() {
62
+ return this.session.full_device_state ?? 'off';
63
+ }
64
+ get remote_control() {
65
+ return this.session.remote_control;
66
+ }
67
+ get agent() {
68
+ return this.session.agent;
69
+ }
70
+ async activate() {
71
+ return CobrowseIONative.activateSession().then(() => {});
72
+ }
73
+ async end() {
74
+ return CobrowseIONative.endSession();
75
+ }
76
+ isActive() {
77
+ return this.session.state === 'active';
78
+ }
79
+ isAuthorizing() {
80
+ return this.session.state === 'authorizing';
81
+ }
82
+ isPending() {
83
+ return this.session.state === 'pending';
84
+ }
85
+ isEnded() {
86
+ return this.session.state === 'ended';
87
+ }
88
+ async setFullDevice(state) {
89
+ return CobrowseIONative.updateSession({
90
+ full_device: state
91
+ });
92
+ }
93
+ async setRemoteControl(state) {
94
+ return CobrowseIONative.updateSession({
95
+ remote_control: state
96
+ });
97
+ }
98
+ }
99
+ exports.default = Session;
100
+ //# sourceMappingURL=Session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","CobrowseIONative","NativeModules","CobrowseIO","emitter","NativeEventEmitter","Session","constructor","session","arguments","length","undefined","_listen","_update","onMatch","id","updates","addListener","ended","remove","eventType","listener","mappedEventsType","code","state","full_device","full_device_state","remote_control","agent","activate","activateSession","then","end","endSession","isActive","isAuthorizing","isPending","isEnded","setFullDevice","updateSession","setRemoteControl","exports","default"],"sourceRoot":"../../js","sources":["Session.ts"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _CobrowseIO = _interopRequireDefault(require("./CobrowseIO"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ class SessionControl extends _react.Component {
11
+ _updateListener = null;
12
+ constructor(props) {
13
+ super(props);
14
+ this.state = {
15
+ session: null
16
+ };
17
+ }
18
+ async componentDidMount() {
19
+ this.setState({
20
+ session: await _CobrowseIO.default.currentSession()
21
+ });
22
+ this._updateListener = _CobrowseIO.default.addListener(_CobrowseIO.default.SESSION_UPDATED, session => {
23
+ this.setState({
24
+ session
25
+ });
26
+ });
27
+ }
28
+ componentWillUnmount() {
29
+ if (this._updateListener != null) this._updateListener.remove();
30
+ }
31
+ render() {
32
+ const {
33
+ session
34
+ } = this.state;
35
+ if ((session === null || session === void 0 ? void 0 : session.isActive()) === true) return this.props.children;else return null;
36
+ }
37
+ }
38
+ exports.default = SessionControl;
39
+ //# sourceMappingURL=SessionControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_CobrowseIO","_interopRequireDefault","obj","__esModule","default","SessionControl","Component","_updateListener","constructor","props","state","session","componentDidMount","setState","CobrowseIO","currentSession","addListener","SESSION_UPDATED","componentWillUnmount","remove","render","isActive","children","exports"],"sourceRoot":"../../js","sources":["SessionControl.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAqC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAYtB,MAAMG,cAAc,SAASC,gBAAS,CAA2C;EACtFC,eAAe,GAA+B,IAAI;EAE1DC,WAAWA,CAAEC,KAA0B,EAAE;IACvC,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG;MAAEC,OAAO,EAAE;IAAK,CAAC;EAChC;EAEA,MAAMC,iBAAiBA,CAAA,EAAmB;IACxC,IAAI,CAACC,QAAQ,CAAC;MAAEF,OAAO,EAAE,MAAMG,mBAAU,CAACC,cAAc,CAAC;IAAE,CAAC,CAAC;IAC7D,IAAI,CAACR,eAAe,GAAGO,mBAAU,CAACE,WAAW,CAACF,mBAAU,CAACG,eAAe,EAAGN,OAAO,IAAK;MACrF,IAAI,CAACE,QAAQ,CAAC;QAAEF;MAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEAO,oBAAoBA,CAAA,EAAU;IAC5B,IAAI,IAAI,CAACX,eAAe,IAAI,IAAI,EAAE,IAAI,CAACA,eAAe,CAACY,MAAM,CAAC,CAAC;EACjE;EAEAC,MAAMA,CAAA,EAA4B;IAChC,MAAM;MAAET;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAI,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEU,QAAQ,CAAC,CAAC,MAAK,IAAI,EAAE,OAAO,IAAI,CAACZ,KAAK,CAACa,QAAQ,MACvD,OAAO,IAAI;EAClB;AACF;AAACC,OAAA,CAAAnB,OAAA,GAAAC,cAAA"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.unredact = unredact;
8
+ exports.useUnredaction = useUnredaction;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactNative = require("react-native");
11
+ var _lodash = require("lodash");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+ const CobrowseIONative = _reactNative.NativeModules.CobrowseIO;
16
+ function mergeRefs(refs) {
17
+ return value => {
18
+ refs.forEach(ref => {
19
+ if (typeof ref === 'function') {
20
+ ref(value);
21
+ } else if (ref != null) {
22
+ ref.current = value;
23
+ }
24
+ });
25
+ };
26
+ }
27
+ const unredactedTags = new Set();
28
+ const sendUnredactionUpdates = (0, _lodash.throttle)(() => {
29
+ CobrowseIONative.setUnredactedTags([...unredactedTags]);
30
+ }, 50, {
31
+ leading: false
32
+ });
33
+ function removeUnredactedView(view) {
34
+ if (view != null) {
35
+ unredactedTags.delete(view);
36
+ sendUnredactionUpdates();
37
+ }
38
+ }
39
+ function useUnredaction() {
40
+ let shouldWarnUnhandledRefs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
41
+ let componentName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
42
+ const ref = (0, _react.useRef)(null);
43
+ const setRef = (0, _react.useCallback)(node => {
44
+ let hasRemovedRef = false;
45
+ if (ref.current != null) {
46
+ hasRemovedRef = true;
47
+ removeUnredactedView(ref.current);
48
+ }
49
+ if (node != null) {
50
+ const view = (0, _reactNative.findNodeHandle)(node);
51
+ if (view != null) {
52
+ unredactedTags.add(view);
53
+ sendUnredactionUpdates();
54
+ ref.current = view;
55
+ } else {
56
+ console.warn(`Failed to apply unredact() to ${componentName} due to view not found`);
57
+ }
58
+ } else if (!hasRemovedRef) {
59
+ console.warn(`Failed to apply unredact() to ${componentName} due to null node handle – make sure you are forwarding refs`);
60
+ }
61
+ }, []);
62
+ (0, _react.useEffect)(() => {
63
+ if (shouldWarnUnhandledRefs && ref.current == null) {
64
+ console.warn(`Failed to apply unredact() to ${componentName} due to null node handle – make sure the setRef function is called with the ref`);
65
+ }
66
+ return () => removeUnredactedView(ref.current);
67
+ }, []);
68
+ return setRef;
69
+ }
70
+ function unredact(Component) {
71
+ return /*#__PURE__*/(0, _react.forwardRef)(function ComponentFromHOC(props, ref) {
72
+ const localRef = useUnredaction(true, Component === null || Component === void 0 ? void 0 : Component.displayName);
73
+ const refs = (0, _react.useMemo)(() => mergeRefs([localRef, ref]), [localRef, ref]);
74
+ return /*#__PURE__*/_react.default.createElement(Component, _extends({}, props, {
75
+ ref: refs
76
+ }));
77
+ });
78
+ }
79
+ const Unredacted = unredact(_reactNative.View);
80
+ var _default = Unredacted;
81
+ exports.default = _default;
82
+ //# sourceMappingURL=Unredacted.js.map