@cloudflare/realtimekit-react-native 0.1.4-staging.1 → 0.1.4-staging.2

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 (79) hide show
  1. package/lib/commonjs/AudioSampleHandler.js +61 -0
  2. package/lib/commonjs/AudioSampleHandler.js.map +1 -0
  3. package/lib/commonjs/BackgroundHandler.js +109 -0
  4. package/lib/commonjs/BackgroundHandler.js.map +1 -0
  5. package/lib/commonjs/DeviceInfo.js +39 -0
  6. package/lib/commonjs/DeviceInfo.js.map +1 -0
  7. package/lib/commonjs/LocalMediaError.js +18 -0
  8. package/lib/commonjs/LocalMediaError.js.map +1 -0
  9. package/lib/commonjs/LocalMediaHandler.js +785 -0
  10. package/lib/commonjs/LocalMediaHandler.js.map +1 -0
  11. package/lib/commonjs/LocalMediaInterfaces.js +2 -0
  12. package/lib/commonjs/LocalMediaInterfaces.js.map +1 -0
  13. package/lib/commonjs/LocalMediaUtils.js +298 -0
  14. package/lib/commonjs/LocalMediaUtils.js.map +1 -0
  15. package/lib/commonjs/NativeAudioManager.js +72 -0
  16. package/lib/commonjs/NativeAudioManager.js.map +1 -0
  17. package/lib/commonjs/PermissionHandler.js +157 -0
  18. package/lib/commonjs/PermissionHandler.js.map +1 -0
  19. package/lib/commonjs/ReactContext.js +116 -0
  20. package/lib/commonjs/ReactContext.js.map +1 -0
  21. package/lib/commonjs/ReactHooks.js +99 -0
  22. package/lib/commonjs/ReactHooks.js.map +1 -0
  23. package/lib/commonjs/index.js +95 -0
  24. package/lib/commonjs/index.js.map +1 -0
  25. package/lib/commonjs/utils/crypto.js +76 -0
  26. package/lib/commonjs/utils/crypto.js.map +1 -0
  27. package/lib/module/AudioSampleHandler.js +54 -0
  28. package/lib/module/AudioSampleHandler.js.map +1 -0
  29. package/lib/module/BackgroundHandler.js +103 -0
  30. package/lib/module/BackgroundHandler.js.map +1 -0
  31. package/lib/module/DeviceInfo.js +32 -0
  32. package/lib/module/DeviceInfo.js.map +1 -0
  33. package/lib/module/LocalMediaError.js +11 -0
  34. package/lib/module/LocalMediaError.js.map +1 -0
  35. package/lib/module/LocalMediaHandler.js +778 -0
  36. package/lib/module/LocalMediaHandler.js.map +1 -0
  37. package/lib/module/LocalMediaInterfaces.js +2 -0
  38. package/lib/module/LocalMediaInterfaces.js.map +1 -0
  39. package/lib/module/LocalMediaUtils.js +290 -0
  40. package/lib/module/LocalMediaUtils.js.map +1 -0
  41. package/lib/module/NativeAudioManager.js +65 -0
  42. package/lib/module/NativeAudioManager.js.map +1 -0
  43. package/lib/module/PermissionHandler.js +149 -0
  44. package/lib/module/PermissionHandler.js.map +1 -0
  45. package/lib/module/ReactContext.js +107 -0
  46. package/lib/module/ReactContext.js.map +1 -0
  47. package/lib/module/ReactHooks.js +75 -0
  48. package/lib/module/ReactHooks.js.map +1 -0
  49. package/lib/{src → module}/index.js +32 -32
  50. package/lib/module/index.js.map +1 -0
  51. package/lib/module/utils/crypto.js +74 -0
  52. package/lib/module/utils/crypto.js.map +1 -0
  53. package/lib/{src → typescript/src}/LocalMediaHandler.d.ts +0 -4
  54. package/package.json +5 -4
  55. package/lib/package.json +0 -168
  56. package/lib/src/AudioSampleHandler.js +0 -57
  57. package/lib/src/BackgroundHandler.js +0 -100
  58. package/lib/src/DeviceInfo.js +0 -27
  59. package/lib/src/LocalMediaError.js +0 -6
  60. package/lib/src/LocalMediaHandler.js +0 -860
  61. package/lib/src/LocalMediaInterfaces.js +0 -1
  62. package/lib/src/LocalMediaUtils.js +0 -288
  63. package/lib/src/NativeAudioManager.js +0 -93
  64. package/lib/src/PermissionHandler.js +0 -179
  65. package/lib/src/ReactContext.js +0 -90
  66. package/lib/src/ReactHooks.js +0 -80
  67. package/lib/src/utils/crypto.js +0 -82
  68. /package/lib/{src → typescript/src}/AudioSampleHandler.d.ts +0 -0
  69. /package/lib/{src → typescript/src}/BackgroundHandler.d.ts +0 -0
  70. /package/lib/{src → typescript/src}/DeviceInfo.d.ts +0 -0
  71. /package/lib/{src → typescript/src}/LocalMediaError.d.ts +0 -0
  72. /package/lib/{src → typescript/src}/LocalMediaInterfaces.d.ts +0 -0
  73. /package/lib/{src → typescript/src}/LocalMediaUtils.d.ts +0 -0
  74. /package/lib/{src → typescript/src}/NativeAudioManager.d.ts +0 -0
  75. /package/lib/{src → typescript/src}/PermissionHandler.d.ts +0 -0
  76. /package/lib/{src → typescript/src}/ReactContext.d.ts +0 -0
  77. /package/lib/{src → typescript/src}/ReactHooks.d.ts +0 -0
  78. /package/lib/{src → typescript/src}/index.d.ts +0 -0
  79. /package/lib/{src → typescript/src}/utils/crypto.d.ts +0 -0
package/lib/package.json DELETED
@@ -1,168 +0,0 @@
1
- {
2
- "name": "@cloudflare/realtimekit-react-native",
3
- "version": "1.1.4-staging.1",
4
- "description": "Cloudflare RealtimeKit SDK for react native",
5
- "main": "lib/index.js",
6
- "types": "lib/index.d.ts",
7
- "source": "src/index",
8
- "publishConfig": {
9
- "registry": "https://registry.npmjs.org/",
10
- "access": "public",
11
- "tag": "latest"
12
- },
13
- "files": [
14
- "lib",
15
- "android",
16
- "ios",
17
- "cpp",
18
- "plugin",
19
- "app.plugin.js",
20
- "RealtimeKitCore.podspec",
21
- "!android/build",
22
- "!ios/build",
23
- "!**/__tests__",
24
- "!**/__fixtures__",
25
- "!**/__mocks__"
26
- ],
27
- "scripts": {
28
- "test": "jest",
29
- "typescript": "tsc -p tsconfig.build.json",
30
- "lint": "eslint \"**/*.{js,ts,tsx}\"",
31
- "prepare": "npm run typescript && tsc --build plugin",
32
- "release": "release-it",
33
- "example": "yarn --cwd example",
34
- "pods": "cd example && pod-install --quiet",
35
- "bootstrap": "yarn example && yarn && yarn pods",
36
- "prepublishOnly": "cp package.json package.json.bak && node prepublish.js",
37
- "postpublish": "mv package.json.bak package.json"
38
- },
39
- "keywords": [
40
- "react-native",
41
- "ios",
42
- "android"
43
- ],
44
- "repository": "https://github.com/cloudflare",
45
- "author": "Cloudflare",
46
- "license": "UNLICENSED",
47
- "bugs": {
48
- "url": "https://realtime.cloudflare.com/issues"
49
- },
50
- "homepage": "https://realtime.cloudflare.com",
51
- "dependencies": {
52
- "@cloudflare/realtimekit": "1.1.7-staging.2",
53
- "events": "^3.3.0",
54
- "fast-base64-decode": "1.0.0",
55
- "node-libs-react-native": "^1.2.1",
56
- "react-native-url-polyfill": "1.3.0",
57
- "text-encoding-polyfill": "^0.6.7"
58
- },
59
- "devDependencies": {
60
- "@commitlint/config-conventional": "^11.0.0",
61
- "@cloudflare/react-native-webrtc": "^125.0.1",
62
- "@react-native-community/eslint-config": "3.0.0",
63
- "@release-it/conventional-changelog": "^2.0.0",
64
- "@semantic-release/changelog": "^5.0.1",
65
- "@semantic-release/commit-analyzer": "^8.0.1",
66
- "@semantic-release/exec": "^5.0.0",
67
- "@semantic-release/git": "^9.0.1",
68
- "@semantic-release/npm": "^7.1.3",
69
- "@semantic-release/release-notes-generator": "^9.0.3",
70
- "@types/jest": "^26.0.0",
71
- "@types/react": "18.0.25",
72
- "@types/react-dom": "18.0.9",
73
- "@types/react-native": "0.67.1",
74
- "@typescript-eslint/eslint-plugin": "^6.21.0",
75
- "@typescript-eslint/parser": "^6.21.0",
76
- "babel-plugin-module-resolver": "^5.0.0",
77
- "commitlint": "^11.0.0",
78
- "eslint": "^7.2.0",
79
- "eslint-config-prettier": "^7.0.0",
80
- "eslint-plugin-prettier": "^3.1.3",
81
- "eslint-plugin-react-native": "^4.1.0",
82
- "expo-module-scripts": "^3.1.0",
83
- "husky": "^6.0.0",
84
- "i": "^0.3.7",
85
- "jest": "^26.0.1",
86
- "metro-react-native-babel-preset": "^0.77.0",
87
- "npm": "^9.2.0",
88
- "pod-install": "^0.1.0",
89
- "prettier": "^2.0.5",
90
- "react": "18.2.0",
91
- "react-native": "0.73.2",
92
- "react-native-builder-bob": "^0.18.0",
93
- "typescript": "^5.3.3"
94
- },
95
- "peerDependencies": {
96
- "@cloudflare/react-native-webrtc": "~125.0.1",
97
- "@expo/config-plugins": "*",
98
- "react": "*",
99
- "react-native": "*"
100
- },
101
- "jest": {
102
- "preset": "react-native",
103
- "testEnvironment": "node",
104
- "modulePathIgnorePatterns": [
105
- "<rootDir>/example/node_modules",
106
- "<rootDir>/lib/"
107
- ]
108
- },
109
- "commitlint": {
110
- "extends": [
111
- "@commitlint/config-conventional"
112
- ]
113
- },
114
- "eslintConfig": {
115
- "root": true,
116
- "parser": "@typescript-eslint/parser",
117
- "plugins": [
118
- "@typescript-eslint"
119
- ],
120
- "extends": [
121
- "@react-native-community",
122
- "prettier"
123
- ],
124
- "globals": {
125
- "NodeJS": true,
126
- "React": true,
127
- "JSX": true
128
- },
129
- "rules": {
130
- "prettier/prettier": [
131
- "error",
132
- {
133
- "quoteProps": "consistent",
134
- "singleQuote": true,
135
- "tabWidth": 2,
136
- "trailingComma": "es5",
137
- "useTabs": false
138
- }
139
- ]
140
- }
141
- },
142
- "eslintIgnore": [
143
- "node_modules/",
144
- "lib/",
145
- "plugin/build"
146
- ],
147
- "prettier": {
148
- "quoteProps": "consistent",
149
- "singleQuote": true,
150
- "tabWidth": 2,
151
- "trailingComma": "es5",
152
- "useTabs": false
153
- },
154
- "react-native-builder-bob": {
155
- "source": "src",
156
- "output": "lib",
157
- "targets": [
158
- "commonjs",
159
- "module",
160
- [
161
- "typescript",
162
- {
163
- "project": "tsconfig.build.json"
164
- }
165
- ]
166
- ]
167
- }
168
- }
@@ -1,57 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { NativeEventEmitter, NativeModules, Platform, } from 'react-native';
11
- import { EventEmitter } from 'events';
12
- const { WebRTCModule } = NativeModules;
13
- export default class AudioSampleHandler extends EventEmitter {
14
- constructor() {
15
- super();
16
- this._isListening = false;
17
- this.webRTCModuleEmitter = new NativeEventEmitter(WebRTCModule);
18
- this._audioSampleHandler = this._audioSampleHandler.bind(this);
19
- this._currentSamples = new Float32Array(1024);
20
- this.initialiseSampler();
21
- }
22
- static init() {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- return new AudioSampleHandler();
25
- });
26
- }
27
- _audioSampleHandler(audioData) {
28
- this._currentSamples.fill(0);
29
- if (Platform.OS === 'android') {
30
- this._currentSamples.set(audioData);
31
- }
32
- else {
33
- this._currentSamples.set(audioData.samples);
34
- }
35
- }
36
- initialiseSampler() {
37
- this._audioSamplesListener = this.webRTCModuleEmitter.addListener('audioSamples', this._audioSampleHandler);
38
- this._isListening = true;
39
- }
40
- getFloatTimeDomainData(samples) {
41
- if (!this._isListening) {
42
- this.initialiseSampler();
43
- }
44
- samples.set(this._currentSamples);
45
- }
46
- stopListening() {
47
- if (this._audioSamplesListener) {
48
- this._audioSamplesListener.remove();
49
- this._audioSamplesListener = undefined;
50
- this._isListening = false;
51
- this._currentSamples.fill(0);
52
- }
53
- }
54
- destructor() {
55
- this.stopListening();
56
- }
57
- }
@@ -1,100 +0,0 @@
1
- import { DeviceEventEmitter, NativeAppEventEmitter, NativeEventEmitter, NativeModules, Platform, } from 'react-native';
2
- const { RTKRNBackgroundTimer } = NativeModules;
3
- const Emitter = new NativeEventEmitter(RTKRNBackgroundTimer);
4
- class BackgroundTimer {
5
- constructor() {
6
- this.uniqueId = 0;
7
- this.callbacks = {};
8
- Emitter.addListener('backgroundTimer.timeout', (id) => {
9
- if (this.callbacks[id]) {
10
- const callbackById = this.callbacks[id];
11
- const { callback } = callbackById;
12
- if (!this.callbacks[id].interval) {
13
- delete this.callbacks[id];
14
- }
15
- else {
16
- Platform.OS === 'android'
17
- ? RTKRNBackgroundTimer.backgroundTimerSetTimeout(id, this.callbacks[id].timeout)
18
- : RTKRNBackgroundTimer.setTimeout(id, this.callbacks[id].timeout);
19
- }
20
- callback();
21
- }
22
- });
23
- }
24
- init() {
25
- return new BackgroundTimer();
26
- }
27
- // Original API
28
- start(delay = 0) {
29
- return Platform.OS === 'android'
30
- ? RTKRNBackgroundTimer.backgroundTimerStart(delay)
31
- : RTKRNBackgroundTimer.start(delay);
32
- }
33
- stop() {
34
- Emitter.removeAllListeners('backgroundTimer.timeout');
35
- return Platform.OS === 'android'
36
- ? RTKRNBackgroundTimer.backgroundTimerStop()
37
- : RTKRNBackgroundTimer.stop();
38
- }
39
- runBackgroundTimer(callback, delay) {
40
- const EventEmitter = Platform.select({
41
- ios: () => NativeAppEventEmitter,
42
- android: () => DeviceEventEmitter,
43
- })();
44
- this.start(0);
45
- this.backgroundListener = EventEmitter.addListener('backgroundTimer', () => {
46
- this.backgroundListener.remove();
47
- this.backgroundClockMethod(callback, delay);
48
- });
49
- }
50
- backgroundClockMethod(callback, delay) {
51
- this.backgroundTimer = this.setTimeout(() => {
52
- callback();
53
- this.backgroundClockMethod(callback, delay);
54
- }, delay);
55
- }
56
- stopBackgroundTimer() {
57
- this.stop();
58
- this.clearTimeout(this.backgroundTimer);
59
- }
60
- // New API, allowing for multiple timers
61
- setTimeout(callback, timeout) {
62
- this.uniqueId += 1;
63
- const timeoutId = this.uniqueId;
64
- this.callbacks[timeoutId] = {
65
- callback,
66
- interval: false,
67
- timeout,
68
- };
69
- Platform.OS === 'android'
70
- ? RTKRNBackgroundTimer.backgroundTimerSetTimeout(timeoutId, timeout)
71
- : RTKRNBackgroundTimer.setTimeout(timeoutId, timeout);
72
- return timeoutId;
73
- }
74
- clearTimeout(timeoutId) {
75
- if (this.callbacks[timeoutId]) {
76
- delete this.callbacks[timeoutId];
77
- // RTKRNBackgroundTimer.clearTimeout(timeoutId);
78
- }
79
- }
80
- setInterval(callback, timeout) {
81
- this.uniqueId += 1;
82
- const intervalId = this.uniqueId;
83
- this.callbacks[intervalId] = {
84
- callback,
85
- interval: true,
86
- timeout,
87
- };
88
- Platform.OS === 'android'
89
- ? RTKRNBackgroundTimer.backgroundTimerSetTimeout(intervalId, timeout)
90
- : RTKRNBackgroundTimer.setTimeout(intervalId, timeout);
91
- return intervalId;
92
- }
93
- clearInterval(intervalId) {
94
- if (this.callbacks[intervalId]) {
95
- delete this.callbacks[intervalId];
96
- // RTKRNBackgroundTimer.clearTimeout(intervalId);
97
- }
98
- }
99
- }
100
- export default new BackgroundTimer();
@@ -1,27 +0,0 @@
1
- import { Platform } from 'react-native';
2
- import sdk_package from '../package.json';
3
- class DeviceInfo {
4
- constructor() {
5
- this.deviceInfo = {
6
- isMobile: true,
7
- isReactNative: true,
8
- osName: Platform.OS,
9
- osVersion: Platform.Version,
10
- reactNativeVersion: this.getReactNativeVersion(),
11
- sdkType: 'realtimekit-react-native',
12
- reactNativeSdkVersion: this.getSdkVersion(),
13
- };
14
- }
15
- getSdkVersion() {
16
- const version = sdk_package.version;
17
- return '0.1.4' + version.slice(5);
18
- }
19
- getReactNativeVersion() {
20
- const version = Platform.constants.reactNativeVersion;
21
- return version.major + '.' + version.minor + '.' + version.patch;
22
- }
23
- getDeviceInfo() {
24
- return this.deviceInfo;
25
- }
26
- }
27
- export default new DeviceInfo();
@@ -1,6 +0,0 @@
1
- export default class LocalMediaError extends Error {
2
- constructor(message, code) {
3
- super(message);
4
- this.code = code;
5
- }
6
- }