@cloudflare/realtimekit-react-native 1.1.0 → 1.2.0-staging.1

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 (35) hide show
  1. package/README.md +2 -2
  2. package/android/src/main/AndroidManifest.xml +6 -1
  3. package/android/src/main/java/com/cloudflare/realtimekit/KeepAliveService.java +176 -0
  4. package/android/src/main/java/com/cloudflare/realtimekit/RTKHelperModule.java +27 -60
  5. package/lib/commonjs/LocalMediaHandler.js +114 -82
  6. package/lib/commonjs/LocalMediaHandler.js.map +1 -1
  7. package/lib/commonjs/LocalMediaUtils.js +3 -5
  8. package/lib/commonjs/LocalMediaUtils.js.map +1 -1
  9. package/lib/commonjs/ReactContext.js +33 -33
  10. package/lib/commonjs/ReactContext.js.map +1 -1
  11. package/lib/commonjs/ReactHooks.js +71 -15
  12. package/lib/commonjs/ReactHooks.js.map +1 -1
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/utils/version.js +1 -1
  15. package/lib/commonjs/utils/version.js.map +1 -1
  16. package/lib/module/LocalMediaHandler.js +114 -82
  17. package/lib/module/LocalMediaHandler.js.map +1 -1
  18. package/lib/module/LocalMediaUtils.js +3 -5
  19. package/lib/module/LocalMediaUtils.js.map +1 -1
  20. package/lib/module/ReactContext.js +33 -33
  21. package/lib/module/ReactContext.js.map +1 -1
  22. package/lib/module/ReactHooks.js +71 -15
  23. package/lib/module/ReactHooks.js.map +1 -1
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/utils/version.js +1 -1
  26. package/lib/module/utils/version.js.map +1 -1
  27. package/lib/typescript/LocalMediaHandler.d.ts +18 -4
  28. package/lib/typescript/ReactHooks.d.ts +22 -1
  29. package/lib/typescript/index.d.ts +1 -0
  30. package/lib/typescript/utils/version.d.ts +1 -1
  31. package/package.json +3 -5
  32. package/plugin/build/withRTK.js +50 -22
  33. package/plugin/src/withRTK.ts +58 -23
  34. package/android/src/main/java/com/cloudflare/realtimekit/ForegroundService.java +0 -46
  35. package/android/src/main/java/com/cloudflare/realtimekit/NotificationHelper.java +0 -126
@@ -13,40 +13,45 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
13
13
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // @ts-nocheck
14
14
  class RealtimeKitUpdates {
15
15
  constructor(meeting) {
16
- var _this$meeting$self, _this$meeting$meta, _this$meeting$partici, _this$meeting$partici2, _this$meeting$partici3, _this$meeting$partici4, _this$meeting$chat, _this$meeting$polls, _this$meeting$plugins, _this$meeting$plugins2, _this$meeting$recordi, _this$meeting$stage, _this$meeting$livestr;
16
+ var _this$meeting$self, _this$meeting$connect, _this$meeting$meta, _this$meeting$partici, _this$meeting$partici2, _this$meeting$partici3, _this$meeting$partici4, _this$meeting$chat, _this$meeting$polls, _this$meeting$plugins, _this$meeting$recordi, _this$meeting$stage, _this$meeting$livestr;
17
17
  _defineProperty(this, "meeting", void 0);
18
18
  _defineProperty(this, "l", void 0);
19
+ _defineProperty(this, "update", () => {
20
+ this.l.forEach(l => {
21
+ l();
22
+ });
23
+ });
19
24
  this.meeting = meeting;
20
25
  this.l = new Set();
21
- (_this$meeting$self = this.meeting.self) === null || _this$meeting$self === void 0 || _this$meeting$self.addListener('*', this.update.bind(this));
22
- (_this$meeting$meta = this.meeting.meta) === null || _this$meeting$meta === void 0 || _this$meeting$meta.addListener('*', this.update.bind(this));
23
- (_this$meeting$partici = this.meeting.participants) === null || _this$meeting$partici === void 0 || _this$meeting$partici.addListener('*', this.update.bind(this));
24
- (_this$meeting$partici2 = this.meeting.participants) === null || _this$meeting$partici2 === void 0 || (_this$meeting$partici2 = _this$meeting$partici2.joined) === null || _this$meeting$partici2 === void 0 || _this$meeting$partici2.addListener('*', this.update.bind(this));
25
- (_this$meeting$partici3 = this.meeting.participants) === null || _this$meeting$partici3 === void 0 || (_this$meeting$partici3 = _this$meeting$partici3.active) === null || _this$meeting$partici3 === void 0 || _this$meeting$partici3.addListener('*', this.update.bind(this));
26
- (_this$meeting$partici4 = this.meeting.participants) === null || _this$meeting$partici4 === void 0 || (_this$meeting$partici4 = _this$meeting$partici4.pinned) === null || _this$meeting$partici4 === void 0 || _this$meeting$partici4.addListener('*', this.update.bind(this));
27
- (_this$meeting$chat = this.meeting.chat) === null || _this$meeting$chat === void 0 || _this$meeting$chat.addListener('*', this.update.bind(this));
28
- (_this$meeting$polls = this.meeting.polls) === null || _this$meeting$polls === void 0 || _this$meeting$polls.addListener('*', this.update.bind(this));
29
- (_this$meeting$plugins = this.meeting.plugins) === null || _this$meeting$plugins === void 0 || (_this$meeting$plugins = _this$meeting$plugins.all) === null || _this$meeting$plugins === void 0 || _this$meeting$plugins.addListener('*', this.update.bind(this));
30
- (_this$meeting$plugins2 = this.meeting.plugins) === null || _this$meeting$plugins2 === void 0 || (_this$meeting$plugins2 = _this$meeting$plugins2.active) === null || _this$meeting$plugins2 === void 0 || _this$meeting$plugins2.addListener('*', this.update.bind(this));
31
- (_this$meeting$recordi = this.meeting.recording) === null || _this$meeting$recordi === void 0 || _this$meeting$recordi.addListener('*', this.update.bind(this));
32
- (_this$meeting$stage = this.meeting.stage) === null || _this$meeting$stage === void 0 || _this$meeting$stage.addListener('*', this.update.bind(this));
33
- (_this$meeting$livestr = this.meeting.livestream) === null || _this$meeting$livestr === void 0 || _this$meeting$livestr.addListener('*', this.update.bind(this));
26
+ (_this$meeting$self = this.meeting.self) === null || _this$meeting$self === void 0 || _this$meeting$self.addListener('*', this.update);
27
+ (_this$meeting$connect = this.meeting.connectedMeetings) === null || _this$meeting$connect === void 0 || _this$meeting$connect.addListener('*', this.update);
28
+ (_this$meeting$meta = this.meeting.meta) === null || _this$meeting$meta === void 0 || _this$meeting$meta.addListener('*', this.update);
29
+ (_this$meeting$partici = this.meeting.participants) === null || _this$meeting$partici === void 0 || _this$meeting$partici.addListener('*', this.update);
30
+ (_this$meeting$partici2 = this.meeting.participants) === null || _this$meeting$partici2 === void 0 || (_this$meeting$partici2 = _this$meeting$partici2.joined) === null || _this$meeting$partici2 === void 0 || _this$meeting$partici2.addListener('*', this.update);
31
+ (_this$meeting$partici3 = this.meeting.participants) === null || _this$meeting$partici3 === void 0 || (_this$meeting$partici3 = _this$meeting$partici3.active) === null || _this$meeting$partici3 === void 0 || _this$meeting$partici3.addListener('*', this.update);
32
+ (_this$meeting$partici4 = this.meeting.participants) === null || _this$meeting$partici4 === void 0 || (_this$meeting$partici4 = _this$meeting$partici4.waitlisted) === null || _this$meeting$partici4 === void 0 || _this$meeting$partici4.addListener('*', this.update);
33
+ (_this$meeting$chat = this.meeting.chat) === null || _this$meeting$chat === void 0 || _this$meeting$chat.addListener('*', this.update);
34
+ (_this$meeting$polls = this.meeting.polls) === null || _this$meeting$polls === void 0 || _this$meeting$polls.addListener('*', this.update);
35
+ (_this$meeting$plugins = this.meeting.plugins) === null || _this$meeting$plugins === void 0 || (_this$meeting$plugins = _this$meeting$plugins.all) === null || _this$meeting$plugins === void 0 || _this$meeting$plugins.addListener('*', this.update);
36
+ (_this$meeting$recordi = this.meeting.recording) === null || _this$meeting$recordi === void 0 || _this$meeting$recordi.addListener('*', this.update);
37
+ (_this$meeting$stage = this.meeting.stage) === null || _this$meeting$stage === void 0 || _this$meeting$stage.addListener('*', this.update);
38
+ (_this$meeting$livestr = this.meeting.livestream) === null || _this$meeting$livestr === void 0 || _this$meeting$livestr.addListener('*', this.update);
34
39
  }
35
40
  clean() {
36
- var _this$meeting$self2, _this$meeting$meta2, _this$meeting$partici5, _this$meeting$partici6, _this$meeting$partici7, _this$meeting$partici8, _this$meeting$chat2, _this$meeting$polls2, _this$meeting$plugins3, _this$meeting$plugins4, _this$meeting$recordi2, _this$meeting$stage2, _this$meeting$livestr2;
37
- (_this$meeting$self2 = this.meeting.self) === null || _this$meeting$self2 === void 0 || _this$meeting$self2.removeListener('*', this.update.bind(this));
38
- (_this$meeting$meta2 = this.meeting.meta) === null || _this$meeting$meta2 === void 0 || _this$meeting$meta2.removeListener('*', this.update.bind(this));
39
- (_this$meeting$partici5 = this.meeting.participants) === null || _this$meeting$partici5 === void 0 || _this$meeting$partici5.removeListener('*', this.update.bind(this));
40
- (_this$meeting$partici6 = this.meeting.participants) === null || _this$meeting$partici6 === void 0 || (_this$meeting$partici6 = _this$meeting$partici6.joined) === null || _this$meeting$partici6 === void 0 || _this$meeting$partici6.removeListener('*', this.update.bind(this));
41
- (_this$meeting$partici7 = this.meeting.participants) === null || _this$meeting$partici7 === void 0 || (_this$meeting$partici7 = _this$meeting$partici7.active) === null || _this$meeting$partici7 === void 0 || _this$meeting$partici7.removeListener('*', this.update.bind(this));
42
- (_this$meeting$partici8 = this.meeting.participants) === null || _this$meeting$partici8 === void 0 || (_this$meeting$partici8 = _this$meeting$partici8.pinned) === null || _this$meeting$partici8 === void 0 || _this$meeting$partici8.removeListener('*', this.update.bind(this));
43
- (_this$meeting$chat2 = this.meeting.chat) === null || _this$meeting$chat2 === void 0 || _this$meeting$chat2.removeListener('*', this.update.bind(this));
44
- (_this$meeting$polls2 = this.meeting.polls) === null || _this$meeting$polls2 === void 0 || _this$meeting$polls2.removeListener('*', this.update.bind(this));
45
- (_this$meeting$plugins3 = this.meeting.plugins) === null || _this$meeting$plugins3 === void 0 || (_this$meeting$plugins3 = _this$meeting$plugins3.all) === null || _this$meeting$plugins3 === void 0 || _this$meeting$plugins3.removeListener('*', this.update.bind(this));
46
- (_this$meeting$plugins4 = this.meeting.plugins) === null || _this$meeting$plugins4 === void 0 || (_this$meeting$plugins4 = _this$meeting$plugins4.active) === null || _this$meeting$plugins4 === void 0 || _this$meeting$plugins4.removeListener('*', this.update.bind(this));
47
- (_this$meeting$recordi2 = this.meeting.recording) === null || _this$meeting$recordi2 === void 0 || _this$meeting$recordi2.removeListener('*', this.update.bind(this));
48
- (_this$meeting$stage2 = this.meeting.stage) === null || _this$meeting$stage2 === void 0 || _this$meeting$stage2.removeListener('*', this.update.bind(this));
49
- (_this$meeting$livestr2 = this.meeting.livestream) === null || _this$meeting$livestr2 === void 0 || _this$meeting$livestr2.removeListener('*', this.update.bind(this));
41
+ var _this$meeting$self2, _this$meeting$connect2, _this$meeting$meta2, _this$meeting$partici5, _this$meeting$partici6, _this$meeting$partici7, _this$meeting$partici8, _this$meeting$chat2, _this$meeting$polls2, _this$meeting$plugins2, _this$meeting$recordi2, _this$meeting$stage2, _this$meeting$livestr2;
42
+ (_this$meeting$self2 = this.meeting.self) === null || _this$meeting$self2 === void 0 || _this$meeting$self2.removeListener('*', this.update);
43
+ (_this$meeting$connect2 = this.meeting.connectedMeetings) === null || _this$meeting$connect2 === void 0 || _this$meeting$connect2.removeListener('*', this.update);
44
+ (_this$meeting$meta2 = this.meeting.meta) === null || _this$meeting$meta2 === void 0 || _this$meeting$meta2.removeListener('*', this.update);
45
+ (_this$meeting$partici5 = this.meeting.participants) === null || _this$meeting$partici5 === void 0 || _this$meeting$partici5.removeListener('*', this.update);
46
+ (_this$meeting$partici6 = this.meeting.participants) === null || _this$meeting$partici6 === void 0 || (_this$meeting$partici6 = _this$meeting$partici6.joined) === null || _this$meeting$partici6 === void 0 || _this$meeting$partici6.removeListener('*', this.update);
47
+ (_this$meeting$partici7 = this.meeting.participants) === null || _this$meeting$partici7 === void 0 || (_this$meeting$partici7 = _this$meeting$partici7.active) === null || _this$meeting$partici7 === void 0 || _this$meeting$partici7.removeListener('*', this.update);
48
+ (_this$meeting$partici8 = this.meeting.participants) === null || _this$meeting$partici8 === void 0 || (_this$meeting$partici8 = _this$meeting$partici8.waitlisted) === null || _this$meeting$partici8 === void 0 || _this$meeting$partici8.removeListener('*', this.update);
49
+ (_this$meeting$chat2 = this.meeting.chat) === null || _this$meeting$chat2 === void 0 || _this$meeting$chat2.removeListener('*', this.update);
50
+ (_this$meeting$polls2 = this.meeting.polls) === null || _this$meeting$polls2 === void 0 || _this$meeting$polls2.removeListener('*', this.update);
51
+ (_this$meeting$plugins2 = this.meeting.plugins) === null || _this$meeting$plugins2 === void 0 || (_this$meeting$plugins2 = _this$meeting$plugins2.all) === null || _this$meeting$plugins2 === void 0 || _this$meeting$plugins2.removeListener('*', this.update);
52
+ (_this$meeting$recordi2 = this.meeting.recording) === null || _this$meeting$recordi2 === void 0 || _this$meeting$recordi2.removeListener('*', this.update);
53
+ (_this$meeting$stage2 = this.meeting.stage) === null || _this$meeting$stage2 === void 0 || _this$meeting$stage2.removeListener('*', this.update);
54
+ (_this$meeting$livestr2 = this.meeting.livestream) === null || _this$meeting$livestr2 === void 0 || _this$meeting$livestr2.removeListener('*', this.update);
50
55
  }
51
56
  addListener(listener) {
52
57
  this.l.add(listener);
@@ -54,11 +59,6 @@ class RealtimeKitUpdates {
54
59
  removeListener(listener) {
55
60
  this.l.delete(listener);
56
61
  }
57
- update() {
58
- this.l.forEach(l => {
59
- l();
60
- });
61
- }
62
62
  }
63
63
  const RealtimeKitContext = exports.RealtimeKitContext = /*#__PURE__*/(0, _react.createContext)({
64
64
  meeting: undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","RealtimeKitUpdates","constructor","meeting","_this$meeting$self","_this$meeting$meta","_this$meeting$partici","_this$meeting$partici2","_this$meeting$partici3","_this$meeting$partici4","_this$meeting$chat","_this$meeting$polls","_this$meeting$plugins","_this$meeting$plugins2","_this$meeting$recordi","_this$meeting$stage","_this$meeting$livestr","l","Set","self","addListener","update","bind","meta","participants","joined","active","pinned","chat","polls","plugins","all","recording","stage","livestream","clean","_this$meeting$self2","_this$meeting$meta2","_this$meeting$partici5","_this$meeting$partici6","_this$meeting$partici7","_this$meeting$partici8","_this$meeting$chat2","_this$meeting$polls2","_this$meeting$plugins3","_this$meeting$plugins4","_this$meeting$recordi2","_this$meeting$stage2","_this$meeting$livestr2","removeListener","listener","add","delete","forEach","RealtimeKitContext","exports","createContext","undefined","updates","RealtimeKitProvider","children","fallback","setUpdates","useState","updatesRef","useRef","useEffect","newUpdate","current","_updatesRef$current","createElement","Provider","useRealtimeKitMeeting","useContext","Error"],"sources":["ReactContext.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, {\n createContext,\n useContext,\n ReactChild,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport RealtimeKitClient from '@cloudflare/realtimekit';\n\ntype Listener = () => void;\nclass RealtimeKitUpdates {\n private meeting: RealtimeKitClient;\n\n private l: Set<Listener>;\n\n constructor(meeting: RealtimeKitClient) {\n this.meeting = meeting;\n this.l = new Set();\n this.meeting.self?.addListener('*', this.update.bind(this));\n this.meeting.meta?.addListener('*', this.update.bind(this));\n this.meeting.participants?.addListener('*', this.update.bind(this));\n this.meeting.participants?.joined?.addListener('*', this.update.bind(this));\n this.meeting.participants?.active?.addListener('*', this.update.bind(this));\n this.meeting.participants?.pinned?.addListener('*', this.update.bind(this));\n this.meeting.chat?.addListener('*', this.update.bind(this));\n this.meeting.polls?.addListener('*', this.update.bind(this));\n this.meeting.plugins?.all?.addListener('*', this.update.bind(this));\n this.meeting.plugins?.active?.addListener('*', this.update.bind(this));\n this.meeting.recording?.addListener('*', this.update.bind(this));\n this.meeting.stage?.addListener('*', this.update.bind(this));\n this.meeting.livestream?.addListener('*', this.update.bind(this));\n }\n\n clean() {\n this.meeting.self?.removeListener('*', this.update.bind(this));\n this.meeting.meta?.removeListener('*', this.update.bind(this));\n this.meeting.participants?.removeListener('*', this.update.bind(this));\n this.meeting.participants?.joined?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.participants?.active?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.participants?.pinned?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.chat?.removeListener('*', this.update.bind(this));\n this.meeting.polls?.removeListener('*', this.update.bind(this));\n this.meeting.plugins?.all?.removeListener('*', this.update.bind(this));\n this.meeting.plugins?.active?.removeListener('*', this.update.bind(this));\n this.meeting.recording?.removeListener('*', this.update.bind(this));\n this.meeting.stage?.removeListener('*', this.update.bind(this));\n this.meeting.livestream?.removeListener('*', this.update.bind(this));\n }\n\n addListener(listener: Listener) {\n this.l.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.l.delete(listener);\n }\n\n private update() {\n this.l.forEach((l) => {\n l();\n });\n }\n}\n\nexport const RealtimeKitContext = createContext<{\n meeting: RealtimeKitClient | undefined;\n updates: RealtimeKitUpdates | undefined;\n}>({\n meeting: undefined,\n updates: undefined,\n});\n\n/**\n * Provider component which makes the RealtimeKitClient object\n * available to nested components\n * @component\n * @param value The RealtimeKitClient instance from `useRealtimeKitClient()`\n * @param renderBeforeLoad The provider will not render children by default\n * until it gets a client object, renderBeforeLoad can be used to override that\n */\nexport function RealtimeKitProvider({\n value,\n children,\n fallback = null,\n}: {\n value: RealtimeKitClient | undefined;\n children: ReactChild | ReactChild[];\n fallback?: ReactChild | ReactChild[];\n}) {\n const [updates, setUpdates] = useState<RealtimeKitUpdates>();\n const updatesRef = useRef<RealtimeKitUpdates>();\n\n useEffect(() => {\n if (value) {\n const newUpdate = new RealtimeKitUpdates(value);\n setUpdates(newUpdate);\n updatesRef.current = newUpdate;\n }\n return () => {\n updatesRef.current?.clean();\n };\n }, [value]);\n\n return (\n <RealtimeKitContext.Provider\n value={{\n meeting: value,\n updates,\n }}\n >\n {value ? children : fallback}\n </RealtimeKitContext.Provider>\n );\n}\n\n/**\n * Hook which returns the reference to the RealtimeKitClient object\n * @returns meeting instance from `useRealtimeKitClient()`\n */\nexport const useRealtimeKitMeeting = () => {\n const { meeting } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitMeeting must be used within the RealtimeKitProvider'\n );\n\n return { meeting };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","RealtimeKitUpdates","constructor","meeting","_this$meeting$self","_this$meeting$connect","_this$meeting$meta","_this$meeting$partici","_this$meeting$partici2","_this$meeting$partici3","_this$meeting$partici4","_this$meeting$chat","_this$meeting$polls","_this$meeting$plugins","_this$meeting$recordi","_this$meeting$stage","_this$meeting$livestr","l","forEach","Set","self","addListener","update","connectedMeetings","meta","participants","joined","active","waitlisted","chat","polls","plugins","all","recording","stage","livestream","clean","_this$meeting$self2","_this$meeting$connect2","_this$meeting$meta2","_this$meeting$partici5","_this$meeting$partici6","_this$meeting$partici7","_this$meeting$partici8","_this$meeting$chat2","_this$meeting$polls2","_this$meeting$plugins2","_this$meeting$recordi2","_this$meeting$stage2","_this$meeting$livestr2","removeListener","listener","add","delete","RealtimeKitContext","exports","createContext","undefined","updates","RealtimeKitProvider","children","fallback","setUpdates","useState","updatesRef","useRef","useEffect","newUpdate","current","_updatesRef$current","createElement","Provider","useRealtimeKitMeeting","useContext","Error"],"sources":["ReactContext.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, {\n createContext,\n useContext,\n ReactChild,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport RealtimeKitClient from '@cloudflare/realtimekit';\n\ntype Listener = () => void;\nclass RealtimeKitUpdates {\n private meeting: RealtimeKitClient;\n\n private l: Set<Listener>;\n\n constructor(meeting: RealtimeKitClient) {\n this.meeting = meeting;\n this.l = new Set();\n this.meeting.self?.addListener('*', this.update);\n this.meeting.connectedMeetings?.addListener('*', this.update);\n this.meeting.meta?.addListener('*', this.update);\n this.meeting.participants?.addListener('*', this.update);\n this.meeting.participants?.joined?.addListener('*', this.update);\n this.meeting.participants?.active?.addListener('*', this.update);\n this.meeting.participants?.waitlisted?.addListener('*', this.update);\n this.meeting.chat?.addListener('*', this.update);\n this.meeting.polls?.addListener('*', this.update);\n this.meeting.plugins?.all?.addListener('*', this.update);\n this.meeting.recording?.addListener('*', this.update);\n this.meeting.stage?.addListener('*', this.update);\n this.meeting.livestream?.addListener('*', this.update);\n }\n\n clean() {\n this.meeting.self?.removeListener('*', this.update);\n this.meeting.connectedMeetings?.removeListener('*', this.update);\n this.meeting.meta?.removeListener('*', this.update);\n this.meeting.participants?.removeListener('*', this.update);\n this.meeting.participants?.joined?.removeListener('*', this.update);\n this.meeting.participants?.active?.removeListener('*', this.update);\n this.meeting.participants?.waitlisted?.removeListener('*', this.update);\n this.meeting.chat?.removeListener('*', this.update);\n this.meeting.polls?.removeListener('*', this.update);\n this.meeting.plugins?.all?.removeListener('*', this.update);\n this.meeting.recording?.removeListener('*', this.update);\n this.meeting.stage?.removeListener('*', this.update);\n this.meeting.livestream?.removeListener('*', this.update);\n }\n\n addListener(listener: Listener) {\n this.l.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.l.delete(listener);\n }\n\n private update = () => {\n this.l.forEach((l) => {\n l();\n });\n };\n}\n\nexport const RealtimeKitContext = createContext<{\n meeting: RealtimeKitClient | undefined;\n updates: RealtimeKitUpdates | undefined;\n}>({\n meeting: undefined,\n updates: undefined,\n});\n\n/**\n * Provider component which makes the RealtimeKitClient object\n * available to nested components\n * @component\n * @param value The RealtimeKitClient instance from `useRealtimeKitClient()`\n * @param renderBeforeLoad The provider will not render children by default\n * until it gets a client object, renderBeforeLoad can be used to override that\n */\nexport function RealtimeKitProvider({\n value,\n children,\n fallback = null,\n}: {\n value: RealtimeKitClient | undefined;\n children: ReactChild | ReactChild[];\n fallback?: ReactChild | ReactChild[];\n}) {\n const [updates, setUpdates] = useState<RealtimeKitUpdates>();\n const updatesRef = useRef<RealtimeKitUpdates>();\n\n useEffect(() => {\n if (value) {\n const newUpdate = new RealtimeKitUpdates(value);\n setUpdates(newUpdate);\n updatesRef.current = newUpdate;\n }\n return () => {\n updatesRef.current?.clean();\n };\n }, [value]);\n\n return (\n <RealtimeKitContext.Provider\n value={{\n meeting: value,\n updates,\n }}\n >\n {value ? children : fallback}\n </RealtimeKitContext.Provider>\n );\n}\n\n/**\n * Hook which returns the reference to the RealtimeKitClient object\n * @returns meeting instance from `useRealtimeKitClient()`\n */\nexport const useRealtimeKitMeeting = () => {\n const { meeting } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitMeeting must be used within the RealtimeKitProvider'\n );\n\n return { meeting };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -27,19 +27,81 @@ Object.keys(_ReactContext).forEach(function (key) {
27
27
  var _BackgroundHandler = _interopRequireDefault(require("./BackgroundHandler"));
28
28
  var _AudioSampleHandler = require("./AudioSampleHandler");
29
29
  var _LocalMediaUtils = require("./LocalMediaUtils");
30
- var _LocalMediaHandler = require("./LocalMediaHandler");
30
+ var _LocalMediaHandler = _interopRequireWildcard(require("./LocalMediaHandler"));
31
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
31
32
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
33
+ /**
34
+ * Public configuration for the Android meeting foreground service.
35
+ * Structurally identical to the relevant fields of MeetingServiceConfig so
36
+ * no cast is required when passing it to LocalMediaHandler.configure().
37
+ */
38
+
32
39
  /**
33
40
  * Hook which manages a RealtimeKitClient instance
34
41
  */
35
- const useRealtimeKitClient = () => {
42
+ const useRealtimeKitClient = clientParams => {
43
+ const isRunning = (0, _react.useRef)(false);
36
44
  const [client, setClient] = (0, _react.useState)();
37
- const initClient = async options => {
45
+ const resetOnLeave = clientParams === null || clientParams === void 0 ? void 0 : clientParams.resetOnLeave;
46
+ const keepAliveService = clientParams === null || clientParams === void 0 ? void 0 : clientParams.keepAliveService;
47
+
48
+ // Configure synchronously during render — not in useEffect — so the
49
+ // module-level config is guaranteed to be in place before initClient()
50
+ // is called. useEffect is asynchronous w.r.t. render and would create a
51
+ // race where initClient() fires before the config is applied.
52
+ // LocalMediaHandler.configure() is idempotent for the same values.
53
+ if (keepAliveService !== undefined) {
54
+ _LocalMediaHandler.default.configure(keepAliveService);
55
+ }
56
+ const initClient = (0, _react.useCallback)(async options => {
57
+ if (isRunning.current) return undefined;
58
+ isRunning.current = true;
38
59
  cleanUpEvents();
39
- const cli = await _realtimekit.default.init(options);
40
- setClient(cli);
41
- return cli;
42
- };
60
+ return _realtimekit.default.init(options).then(meeting => {
61
+ setClient(meeting);
62
+ return meeting;
63
+ }).finally(() => {
64
+ isRunning.current = false;
65
+ });
66
+ }, []);
67
+ (0, _react.useEffect)(() => {
68
+ if (!client || !resetOnLeave) return () => {};
69
+ const onLeave = ({
70
+ state
71
+ }) => {
72
+ if (state !== 'connected-meeting' && state !== 'disconnected') {
73
+ setClient(undefined);
74
+ }
75
+ if (state === 'ended' || state === 'kicked' || state === 'rejected' || state === 'failed') {
76
+ // Stop the KeepAlive foreground service when the meeting ends.
77
+ if (_reactNative.Platform.OS === 'android') {
78
+ var _NativeModules$RTKHel, _NativeModules$RTKHel2;
79
+ (_NativeModules$RTKHel = _reactNative.NativeModules.RTKHelper) === null || _NativeModules$RTKHel === void 0 || (_NativeModules$RTKHel2 = _NativeModules$RTKHel.stopMeetingService) === null || _NativeModules$RTKHel2 === void 0 || _NativeModules$RTKHel2.call(_NativeModules$RTKHel);
80
+ }
81
+ }
82
+ };
83
+ client.self.on('roomLeft', onLeave);
84
+ return () => {
85
+ client.self.removeListener('roomLeft', onLeave);
86
+ };
87
+ }, [client, resetOnLeave]);
88
+ (0, _react.useEffect)(() => {
89
+ if (!client || !client.connectedMeetings) return () => {};
90
+ const onMeetingChanged = newClient => {
91
+ // NOTE: do NOT clear this timeout in the effect cleanup. `setClient(
92
+ // undefined)` re-runs this effect (client is a dependency) and its
93
+ // cleanup fires *before* the timeout — clearing it would drop the new
94
+ // client and leave the UI stuck on the loading screen.
95
+ setClient(undefined);
96
+ setTimeout(() => {
97
+ setClient(newClient);
98
+ }, 100);
99
+ };
100
+ client.connectedMeetings.on('meetingChanged', onMeetingChanged);
101
+ return () => {
102
+ client.connectedMeetings.removeListener('meetingChanged', onMeetingChanged);
103
+ };
104
+ }, [client]);
43
105
  return [client, initClient];
44
106
  };
45
107
 
@@ -103,19 +165,13 @@ const useRealtimeKitSelector = selector => {
103
165
  };
104
166
  exports.useRealtimeKitSelector = useRealtimeKitSelector;
105
167
  function cleanUpEvents() {
106
- const {
107
- RTKHelper
108
- } = _reactNative.NativeModules;
109
168
  _AudioSampleHandler.webRTCModuleEmitter.removeAllListeners('audioSamples');
110
169
  _LocalMediaUtils.deviceChangeListener.removeAllListeners('onAudioDeviceChanged');
111
170
  _BackgroundHandler.default.stop();
112
171
  try {
113
172
  if (_reactNative.Platform.OS === 'android') {
114
- RTKHelper.isForegroundServiceRunning().then(val => {
115
- if (val) {
116
- RTKHelper.stopService();
117
- }
118
- });
173
+ var _NativeModules$RTKHel3, _NativeModules$RTKHel4;
174
+ (_NativeModules$RTKHel3 = _reactNative.NativeModules.RTKHelper) === null || _NativeModules$RTKHel3 === void 0 || (_NativeModules$RTKHel4 = _NativeModules$RTKHel3.stopMeetingService) === null || _NativeModules$RTKHel4 === void 0 || _NativeModules$RTKHel4.call(_NativeModules$RTKHel3);
119
175
  } else {
120
176
  _LocalMediaHandler.broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');
121
177
  _LocalMediaHandler.broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_realtimekit","_interopRequireDefault","_ReactContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_BackgroundHandler","_AudioSampleHandler","_LocalMediaUtils","_LocalMediaHandler","e","__esModule","default","useRealtimeKitClient","client","setClient","useState","initClient","options","cleanUpEvents","cli","RealtimeKitClient","init","shouldUpdate","slice","newSlice","Array","isArray","length","useRTKSelector","selector","useRealtimeKitSelector","meeting","updates","useContext","RealtimeKitContext","Error","state","useRef","forceUpdate","useReducer","c","useEffect","currentState","listener","newStateSlice","current","addListener","removeListener","RTKHelper","NativeModules","webRTCModuleEmitter","removeAllListeners","deviceChangeListener","BackgroundTimer","stop","Platform","OS","isForegroundServiceRunning","then","val","stopService","broadcastEmitter","_err"],"sources":["ReactHooks.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useReducer, useContext } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport RealtimeKitClient, { RTKClientOptions } from '@cloudflare/realtimekit';\nimport { RealtimeKitContext } from './ReactContext';\nimport BackgroundTimer from './BackgroundHandler';\nimport { webRTCModuleEmitter } from './AudioSampleHandler';\nimport { deviceChangeListener } from './LocalMediaUtils';\nimport { broadcastEmitter } from './LocalMediaHandler';\n\n/**\n * Hook which manages a RealtimeKitClient instance\n */\nexport const useRealtimeKitClient = (): [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient>\n] => {\n const [client, setClient] = useState<RealtimeKitClient>();\n const initClient = async (\n options: RTKClientOptions\n ): Promise<RealtimeKitClient> => {\n cleanUpEvents();\n const cli = await RealtimeKitClient.init(options);\n setClient(cli);\n return cli;\n };\n return [client, initClient];\n};\n\n/**\n * Utility function which determines whether to trigger update or not\n */\nconst shouldUpdate = <StateSlice,>(\n slice: StateSlice,\n newSlice: StateSlice\n): boolean => {\n if (slice !== newSlice) {\n return true;\n }\n if (Array.isArray(slice) && Array.isArray(newSlice)) {\n if (slice.length !== newSlice.length) {\n return true;\n }\n }\n\n return false;\n};\n\ntype StateSelector<T extends object, U> = (state: T) => U;\n\n/**\n * @deprecated Use `useRealtimeKitSelector` instead.\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRTKSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n return useRealtimeKitSelector(selector);\n};\n\n/**\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRealtimeKitSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n const { meeting, updates } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitSelector must be used within the RealtimeKitProvider'\n );\n const state = useRef(selector(meeting));\n const [, forceUpdate] = useReducer((c) => c + 1, 0) as [never, () => void];\n\n useEffect(() => {\n const currentState = meeting && selector(meeting);\n const listener = () => {\n const newStateSlice = meeting && selector(meeting);\n if (shouldUpdate(state.current, newStateSlice)) {\n state.current = newStateSlice;\n forceUpdate();\n }\n };\n if (\n currentState &&\n typeof currentState === 'object' &&\n 'addListener' in currentState\n ) {\n (currentState as any).addListener('*', forceUpdate);\n return () => {\n (currentState as any).removeListener('*', forceUpdate);\n };\n }\n updates?.addListener(listener);\n return () => {\n updates?.removeListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meeting, updates]);\n return state.current;\n};\n\nfunction cleanUpEvents() {\n const { RTKHelper } = NativeModules;\n\n webRTCModuleEmitter.removeAllListeners('audioSamples');\n deviceChangeListener.removeAllListeners('onAudioDeviceChanged');\n BackgroundTimer.stop();\n\n try {\n if (Platform.OS === 'android') {\n RTKHelper.isForegroundServiceRunning().then((val) => {\n if (val) {\n RTKHelper.stopService();\n }\n });\n } else {\n broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');\n broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');\n }\n } catch (_err) {}\n}\nexport * from './ReactContext';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_realtimekit","_interopRequireDefault","_ReactContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_BackgroundHandler","_AudioSampleHandler","_LocalMediaUtils","_LocalMediaHandler","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","set","getOwnPropertyDescriptor","useRealtimeKitClient","clientParams","isRunning","useRef","client","setClient","useState","resetOnLeave","keepAliveService","undefined","LocalMediaHandler","configure","initClient","useCallback","options","current","cleanUpEvents","RealtimeKitClient","init","then","meeting","finally","useEffect","onLeave","state","Platform","OS","_NativeModules$RTKHel","_NativeModules$RTKHel2","NativeModules","RTKHelper","stopMeetingService","self","on","removeListener","connectedMeetings","onMeetingChanged","newClient","setTimeout","shouldUpdate","slice","newSlice","Array","isArray","length","useRTKSelector","selector","useRealtimeKitSelector","updates","useContext","RealtimeKitContext","Error","forceUpdate","useReducer","c","currentState","listener","newStateSlice","addListener","webRTCModuleEmitter","removeAllListeners","deviceChangeListener","BackgroundTimer","stop","_NativeModules$RTKHel3","_NativeModules$RTKHel4","broadcastEmitter","_err"],"sources":["ReactHooks.tsx"],"sourcesContent":["import {\n useState,\n useEffect,\n useRef,\n useReducer,\n useContext,\n useCallback,\n} from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport RealtimeKitClient, {\n RTKClientOptions,\n LeaveRoomState,\n} from '@cloudflare/realtimekit';\nimport { RealtimeKitContext } from './ReactContext';\nimport BackgroundTimer from './BackgroundHandler';\nimport { webRTCModuleEmitter } from './AudioSampleHandler';\nimport { deviceChangeListener } from './LocalMediaUtils';\nimport { broadcastEmitter } from './LocalMediaHandler';\nimport LocalMediaHandler, { MeetingServiceConfig } from './LocalMediaHandler';\n\n/**\n * Public configuration for the Android meeting foreground service.\n * Structurally identical to the relevant fields of MeetingServiceConfig so\n * no cast is required when passing it to LocalMediaHandler.configure().\n */\nexport type KeepAliveServiceConfig = Pick<\n MeetingServiceConfig,\n 'enabled' | 'title' | 'text'\n>;\n\ninterface RealtimeKitClientParams {\n resetOnLeave?: boolean;\n /**\n * Android only. Configures (or disables) the meeting foreground service.\n *\n * @example\n * // Disable:\n * useRealtimeKitClient({ keepAliveService: { enabled: false } })\n *\n * // Custom notification text:\n * useRealtimeKitClient({ keepAliveService: { enabled: true, title: 'Team call', text: 'Tap to return' } })\n */\n keepAliveService?: KeepAliveServiceConfig;\n}\n\n/**\n * Hook which manages a RealtimeKitClient instance\n */\nexport const useRealtimeKitClient = (\n clientParams?: RealtimeKitClientParams\n): [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>\n] => {\n const isRunning = useRef(false);\n const [client, setClient] = useState<RealtimeKitClient>();\n const resetOnLeave = clientParams?.resetOnLeave;\n const keepAliveService = clientParams?.keepAliveService;\n\n // Configure synchronously during render — not in useEffect — so the\n // module-level config is guaranteed to be in place before initClient()\n // is called. useEffect is asynchronous w.r.t. render and would create a\n // race where initClient() fires before the config is applied.\n // LocalMediaHandler.configure() is idempotent for the same values.\n if (keepAliveService !== undefined) {\n LocalMediaHandler.configure(keepAliveService);\n }\n\n const initClient = useCallback(\n async (\n options: RTKClientOptions\n ): Promise<RealtimeKitClient | undefined> => {\n if (isRunning.current) return undefined;\n isRunning.current = true;\n cleanUpEvents();\n return RealtimeKitClient.init(options)\n .then((meeting: RealtimeKitClient) => {\n setClient(meeting);\n return meeting;\n })\n .finally(() => {\n isRunning.current = false;\n });\n },\n []\n );\n\n useEffect(() => {\n if (!client || !resetOnLeave) return () => {};\n const onLeave = ({ state }: { state: LeaveRoomState }) => {\n if (state !== 'connected-meeting' && state !== 'disconnected') {\n setClient(undefined);\n }\n if (\n state === 'ended' ||\n state === 'kicked' ||\n state === 'rejected' ||\n state === 'failed'\n ) {\n // Stop the KeepAlive foreground service when the meeting ends.\n if (Platform.OS === 'android') {\n NativeModules.RTKHelper?.stopMeetingService?.();\n }\n }\n };\n\n client.self.on('roomLeft', onLeave);\n return () => {\n client.self.removeListener('roomLeft', onLeave);\n };\n }, [client, resetOnLeave]);\n\n useEffect(() => {\n if (!client || !client.connectedMeetings) return () => {};\n const onMeetingChanged = (newClient: RealtimeKitClient) => {\n // NOTE: do NOT clear this timeout in the effect cleanup. `setClient(\n // undefined)` re-runs this effect (client is a dependency) and its\n // cleanup fires *before* the timeout — clearing it would drop the new\n // client and leave the UI stuck on the loading screen.\n setClient(undefined);\n setTimeout(() => {\n setClient(newClient);\n }, 100);\n };\n client.connectedMeetings.on('meetingChanged', onMeetingChanged);\n return () => {\n client.connectedMeetings.removeListener(\n 'meetingChanged',\n onMeetingChanged\n );\n };\n }, [client]);\n\n return [client, initClient] as [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>\n ];\n};\n\n/**\n * Utility function which determines whether to trigger update or not\n */\nconst shouldUpdate = <StateSlice,>(\n slice: StateSlice,\n newSlice: StateSlice\n): boolean => {\n if (slice !== newSlice) {\n return true;\n }\n if (Array.isArray(slice) && Array.isArray(newSlice)) {\n if (slice.length !== newSlice.length) {\n return true;\n }\n }\n\n return false;\n};\n\ntype StateSelector<T extends object, U> = (state: T) => U;\n\n/**\n * @deprecated Use `useRealtimeKitSelector` instead.\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRTKSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n return useRealtimeKitSelector(selector);\n};\n\n/**\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRealtimeKitSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n const { meeting, updates } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitSelector must be used within the RealtimeKitProvider'\n );\n const state = useRef(selector(meeting));\n const [, forceUpdate] = useReducer((c) => c + 1, 0) as [never, () => void];\n\n useEffect(() => {\n const currentState = meeting && selector(meeting);\n const listener = () => {\n const newStateSlice = meeting && selector(meeting);\n if (shouldUpdate(state.current, newStateSlice)) {\n state.current = newStateSlice;\n forceUpdate();\n }\n };\n if (\n currentState &&\n typeof currentState === 'object' &&\n 'addListener' in currentState\n ) {\n (currentState as any).addListener('*', forceUpdate);\n return () => {\n (currentState as any).removeListener('*', forceUpdate);\n };\n }\n updates?.addListener(listener);\n return () => {\n updates?.removeListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meeting, updates]);\n return state.current;\n};\n\nfunction cleanUpEvents() {\n webRTCModuleEmitter.removeAllListeners('audioSamples');\n deviceChangeListener.removeAllListeners('onAudioDeviceChanged');\n BackgroundTimer.stop();\n\n try {\n if (Platform.OS === 'android') {\n NativeModules.RTKHelper?.stopMeetingService?.();\n } else {\n broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');\n broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');\n }\n } catch (_err) {}\n}\nexport * from './ReactContext';\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_realtimekit","_interopRequireDefault","_LocalMediaHandler","_AudioSampleHandler","_BackgroundHandler","_reactNativeWebrtc","_DeviceInfo","_base","_ReactHooks","e","__esModule","default","global","atob","decode","btoa","encode","registerGlobals","LINKING_ERROR","Platform","select","ios","Core","NativeModules","Proxy","get","Error","Object","defineProperty","navigator","configurable","LocalMediaHandler","AudioSampleHandler","BackgroundTimer","DeviceInfo","_default","exports","RealtimeKitMeeting"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport RealtimeKitMeeting from '@cloudflare/realtimekit';\nimport LocalMediaHandler from './LocalMediaHandler';\nimport AudioSampleHandler from './AudioSampleHandler';\nimport BackgroundTimer from './BackgroundHandler';\nimport { registerGlobals } from '@cloudflare/react-native-webrtc';\nimport './utils/crypto';\nimport 'text-encoding-polyfill';\nimport 'react-native-url-polyfill/auto';\nimport DeviceInfo from './DeviceInfo';\nimport { encode, decode } from 'base-64';\nglobal.atob = decode;\nglobal.btoa = encode;\n\nexport {\n RealtimeKitProvider,\n useRealtimeKitClient,\n useRTKSelector,\n useRealtimeKitSelector,\n useRealtimeKitMeeting,\n} from './ReactHooks';\n\nregisterGlobals();\n\nconst LINKING_ERROR =\n `The package '@cloudflare/realtimekit-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst Core = NativeModules.Core\n ? NativeModules.Core\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\ndeclare global {\n // @ts-ignore\n var navigator: any;\n}\n\nObject.defineProperty(navigator as any, 'isReactNative', {\n get: function () {\n return true;\n },\n configurable: true,\n});\n\nObject.defineProperty(navigator as any, 'userAgent', {\n get: function () {\n return 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4753.0 Safari/537.36'; // customized user agent\n },\n configurable: true,\n});\n\nObject.defineProperty(navigator as any, 'RNLocalMediaHandlerImpl', {\n get: function () {\n return LocalMediaHandler;\n },\n});\n\nObject.defineProperty(navigator as any, 'RNAudioSampleHandlerImpl', {\n get: function () {\n return AudioSampleHandler;\n },\n});\n\nObject.defineProperty(navigator as any, 'RNBackgroundTimerImpl', {\n get: function () {\n return BackgroundTimer;\n },\n});\n\nObject.defineProperty(navigator as any, 'RNDeviceInfoImpl', {\n get: function () {\n return DeviceInfo;\n },\n});\n\nexport default RealtimeKitMeeting;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,kBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACA,IAAAO,WAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,KAAA,GAAAR,OAAA;AAIA,IAAAS,WAAA,GAAAT,OAAA;AAMsB,SAAAE,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AATtBG,MAAM,CAACC,IAAI,GAAGC,YAAM;AACpBF,MAAM,CAACG,IAAI,GAAGC,YAAM;AAUpB,IAAAC,kCAAe,EAAC,CAAC;AAEjB,MAAMC,aAAa,GACjB,+FAA+F,GAC/FC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEV,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;;AAE/C;AACA,MAAMW,IAAI,GAAGC,0BAAa,CAACD,IAAI,GAC3BC,0BAAa,CAACD,IAAI,GAClB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAOLS,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,eAAe,EAAE;EACvDJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAO,IAAI;EACb,CAAC;EACDK,YAAY,EAAE;AAChB,CAAC,CAAC;AAEFH,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,WAAW,EAAE;EACnDJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAO,yHAAyH,CAAC,CAAC;EACpI,CAAC;EACDK,YAAY,EAAE;AAChB,CAAC,CAAC;AAEFH,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,yBAAyB,EAAE;EACjEJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOM,0BAAiB;EAC1B;AACF,CAAC,CAAC;AAEFJ,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,0BAA0B,EAAE;EAClEJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOO,2BAAkB;EAC3B;AACF,CAAC,CAAC;AAEFL,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,uBAAuB,EAAE;EAC/DJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOQ,0BAAe;EACxB;AACF,CAAC,CAAC;AAEFN,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,kBAAkB,EAAE;EAC1DJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOS,mBAAU;EACnB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEY0B,oBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_realtimekit","_interopRequireDefault","_LocalMediaHandler","_AudioSampleHandler","_BackgroundHandler","_reactNativeWebrtc","_DeviceInfo","_base","_ReactHooks","e","__esModule","default","global","atob","decode","btoa","encode","registerGlobals","LINKING_ERROR","Platform","select","ios","Core","NativeModules","Proxy","get","Error","Object","defineProperty","navigator","configurable","LocalMediaHandler","AudioSampleHandler","BackgroundTimer","DeviceInfo","_default","exports","RealtimeKitMeeting"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport RealtimeKitMeeting from '@cloudflare/realtimekit';\nimport LocalMediaHandler from './LocalMediaHandler';\nimport AudioSampleHandler from './AudioSampleHandler';\nimport BackgroundTimer from './BackgroundHandler';\nimport { registerGlobals } from '@cloudflare/react-native-webrtc';\nimport './utils/crypto';\nimport 'text-encoding-polyfill';\nimport 'react-native-url-polyfill/auto';\nimport DeviceInfo from './DeviceInfo';\nimport { encode, decode } from 'base-64';\nexport type { KeepAliveServiceConfig } from './ReactHooks';\nglobal.atob = decode;\nglobal.btoa = encode;\n\nexport {\n RealtimeKitProvider,\n useRealtimeKitClient,\n useRTKSelector,\n useRealtimeKitSelector,\n useRealtimeKitMeeting,\n} from './ReactHooks';\n\nregisterGlobals();\n\nconst LINKING_ERROR =\n `The package '@cloudflare/realtimekit-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst Core = NativeModules.Core\n ? NativeModules.Core\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\ndeclare global {\n // @ts-ignore\n var navigator: any;\n}\n\nObject.defineProperty(navigator as any, 'isReactNative', {\n get: function () {\n return true;\n },\n configurable: true,\n});\n\nObject.defineProperty(navigator as any, 'userAgent', {\n get: function () {\n return 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4753.0 Safari/537.36'; // customized user agent\n },\n configurable: true,\n});\n\nObject.defineProperty(navigator as any, 'RNLocalMediaHandlerImpl', {\n get: function () {\n return LocalMediaHandler;\n },\n});\n\nObject.defineProperty(navigator as any, 'RNAudioSampleHandlerImpl', {\n get: function () {\n return AudioSampleHandler;\n },\n});\n\nObject.defineProperty(navigator as any, 'RNBackgroundTimerImpl', {\n get: function () {\n return BackgroundTimer;\n },\n});\n\nObject.defineProperty(navigator as any, 'RNDeviceInfoImpl', {\n get: function () {\n return DeviceInfo;\n },\n});\n\nexport default RealtimeKitMeeting;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,kBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACA,IAAAO,WAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,KAAA,GAAAR,OAAA;AAKA,IAAAS,WAAA,GAAAT,OAAA;AAMsB,SAAAE,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AATtBG,MAAM,CAACC,IAAI,GAAGC,YAAM;AACpBF,MAAM,CAACG,IAAI,GAAGC,YAAM;AAUpB,IAAAC,kCAAe,EAAC,CAAC;AAEjB,MAAMC,aAAa,GACjB,+FAA+F,GAC/FC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEV,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;;AAE/C;AACA,MAAMW,IAAI,GAAGC,0BAAa,CAACD,IAAI,GAC3BC,0BAAa,CAACD,IAAI,GAClB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAOLS,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,eAAe,EAAE;EACvDJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAO,IAAI;EACb,CAAC;EACDK,YAAY,EAAE;AAChB,CAAC,CAAC;AAEFH,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,WAAW,EAAE;EACnDJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAO,yHAAyH,CAAC,CAAC;EACpI,CAAC;EACDK,YAAY,EAAE;AAChB,CAAC,CAAC;AAEFH,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,yBAAyB,EAAE;EACjEJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOM,0BAAiB;EAC1B;AACF,CAAC,CAAC;AAEFJ,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,0BAA0B,EAAE;EAClEJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOO,2BAAkB;EAC3B;AACF,CAAC,CAAC;AAEFL,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,uBAAuB,EAAE;EAC/DJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOQ,0BAAe;EACxB;AACF,CAAC,CAAC;AAEFN,MAAM,CAACC,cAAc,CAACC,SAAS,EAAS,kBAAkB,EAAE;EAC1DJ,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,OAAOS,mBAAU;EACnB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEY0B,oBAAkB","ignoreList":[]}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SDK_VERSION = void 0;
7
- const SDK_VERSION = exports.SDK_VERSION = '1.1.0';
7
+ const SDK_VERSION = exports.SDK_VERSION = '1.2.0-staging.1';
8
8
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SDK_VERSION","exports"],"sources":["version.ts"],"sourcesContent":["export const SDK_VERSION = '1.1.0';\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["SDK_VERSION","exports"],"sources":["version.ts"],"sourcesContent":["export const SDK_VERSION = '1.2.0-staging.1';\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,iBAAiB","ignoreList":[]}