@wutiange/log-listener-plugin 2.0.1 → 2.0.2-alpha.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 (65) hide show
  1. package/README.md +166 -163
  2. package/dist/index.cjs.js +7 -0
  3. package/dist/index.cjs.js.map +1 -0
  4. package/dist/index.d.ts +34 -2
  5. package/dist/index.esm.js +5 -0
  6. package/dist/index.esm.js.map +1 -0
  7. package/index.ts +3 -3
  8. package/package.json +52 -59
  9. package/src/HTTPInterceptor.ts +340 -340
  10. package/src/Server.ts +174 -178
  11. package/src/__mocks__/react-native/Libraries/Blob/FileReader.js +44 -44
  12. package/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.js +39 -39
  13. package/src/__tests__/HTTPInterceptor.test.ts +322 -322
  14. package/src/__tests__/Server.test.ts +150 -150
  15. package/src/__tests__/utils.test.ts +114 -114
  16. package/src/common.ts +57 -57
  17. package/src/logPlugin.ts +238 -231
  18. package/src/logger.ts +15 -15
  19. package/src/utils.ts +135 -112
  20. package/LICENSE +0 -201
  21. package/dist/console.d.ts +0 -1
  22. package/dist/console.js +0 -20
  23. package/dist/console.js.map +0 -1
  24. package/dist/fetch.d.ts +0 -1
  25. package/dist/fetch.js +0 -48
  26. package/dist/fetch.js.map +0 -1
  27. package/dist/index.js +0 -8
  28. package/dist/index.js.map +0 -1
  29. package/dist/src/HTTPInterceptor.d.ts +0 -50
  30. package/dist/src/HTTPInterceptor.js +0 -227
  31. package/dist/src/HTTPInterceptor.js.map +0 -1
  32. package/dist/src/__mocks__/react-native/Libraries/Blob/FileReader.d.ts +0 -14
  33. package/dist/src/__mocks__/react-native/Libraries/Blob/FileReader.js +0 -41
  34. package/dist/src/__mocks__/react-native/Libraries/Blob/FileReader.js.map +0 -1
  35. package/dist/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.d.ts +0 -17
  36. package/dist/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.js +0 -34
  37. package/dist/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.js.map +0 -1
  38. package/dist/src/__tests__/HTTPInterceptor.test.d.ts +0 -9
  39. package/dist/src/__tests__/HTTPInterceptor.test.js +0 -281
  40. package/dist/src/__tests__/HTTPInterceptor.test.js.map +0 -1
  41. package/dist/src/__tests__/Server.test.d.ts +0 -1
  42. package/dist/src/__tests__/Server.test.js +0 -116
  43. package/dist/src/__tests__/Server.test.js.map +0 -1
  44. package/dist/src/__tests__/console.test.d.ts +0 -1
  45. package/dist/src/__tests__/console.test.js +0 -29
  46. package/dist/src/__tests__/console.test.js.map +0 -1
  47. package/dist/src/__tests__/utils.test.d.ts +0 -1
  48. package/dist/src/__tests__/utils.test.js +0 -112
  49. package/dist/src/__tests__/utils.test.js.map +0 -1
  50. package/dist/src/common.d.ts +0 -14
  51. package/dist/src/common.js +0 -54
  52. package/dist/src/common.js.map +0 -1
  53. package/dist/src/logPlugin.d.ts +0 -35
  54. package/dist/src/logPlugin.js +0 -188
  55. package/dist/src/logPlugin.js.map +0 -1
  56. package/dist/src/logger.d.ts +0 -6
  57. package/dist/src/logger.js +0 -16
  58. package/dist/src/logger.js.map +0 -1
  59. package/dist/src/server.d.ts +0 -21
  60. package/dist/src/server.js +0 -178
  61. package/dist/src/server.js.map +0 -1
  62. package/dist/src/utils.d.ts +0 -6
  63. package/dist/src/utils.js +0 -106
  64. package/dist/src/utils.js.map +0 -1
  65. package/tsconfig.json +0 -27
package/README.md CHANGED
@@ -1,163 +1,166 @@
1
- # log-listener-plugin
2
- [![Dependencies](https://img.shields.io/badge/dependencies-none-green)](https://www.npmjs.com/package/@wutiange/log-listener-plugin?activeTab=dependencies)
3
- [![npm](https://img.shields.io/npm/v/@wutiange/log-listener-plugin)](https://www.npmjs.com/package/@wutiange/log-listener-plugin)
4
- [![npm downloads](https://img.shields.io/npm/dm/@wutiange/log-listener-plugin)](https://www.npmjs.com/package/@wutiange/log-listener-plugin)
5
- [![License](https://img.shields.io/npm/l/@wutiange/log-listener-plugin)](./LICENSE)
6
-
7
- 中文 | [English](./docs/README_EN.md)
8
-
9
- 要想正常使用 [log-record](https://github.com/wutiange/log-record) 客户端来收集日志,方便排查问题,那么就需要把这个插件安装到项目中。
10
-
11
- ## 1. 安装
12
-
13
- 使用 npm 安装
14
-
15
- ```bash
16
- npm install @wutiange/log-listener-plugin
17
- ```
18
-
19
- 使用 yarn 安装
20
-
21
- ```bash
22
- yarn add @wutiange/log-listener-plugin
23
- ```
24
-
25
- ## 2. 使用
26
-
27
- 在你需要开始记录日志的地方,调用下面的代码即可。
28
-
29
- ### 2.1 基于自我发现的使用
30
-
31
- 先安装 react-native-zeroconf ,这个的目的是发现局域网内可用的日志系统。
32
-
33
- ```bash
34
- yarn add react-native-zeroconf
35
- # 或
36
- npm install react-native-zeroconf
37
- ```
38
-
39
- 具体安装步骤请移步:[react-native-zeroconf](https://www.npmjs.com/package/react-native-zeroconf) ,请不要忽略这行,因为要想使用这个还需要做一些必要的步骤,我也把这些复制到下面,以免被人忽略。
40
-
41
- For Android please ensure your manifest is requesting all necessary permissions.
42
-
43
- ```xml
44
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
45
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
46
- <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
47
- ```
48
-
49
- IOS 14 requires you to specify the services you want to scan for and a description for what you're using them.
50
-
51
- In your `info.plist` add the following strings:
52
-
53
- ```plist
54
- <key>NSBonjourServices</key>
55
- <array>
56
- <string>_http._tcp</string>
57
- </array>
58
- <key>NSLocalNetworkUsageDescription</key>
59
- <string>Access nearby Log Records to view logs</string>
60
- ```
61
-
62
- 接下来只需要在项目中找个合适的位置,一般是在 App.js 中调用。
63
-
64
- ```ts
65
- import logger from '@wutiange/log-listener-plugin';
66
- // 启动日志记录
67
- logger.config({isAuto: true});
68
- ```
69
-
70
- ### 2.2 基于手动设置的方式使用
71
-
72
- ```ts
73
- import logger from '@wutiange/log-listener-plugin';
74
- // 填写日志服务器的地址,如果你使用自我发现功能,那么这一步可以省略
75
- logger.config({isAuto: true, testUrl: 'http://127.0.0.1'});
76
- ```
77
-
78
- ### 2.3 设置基本数据
79
-
80
- 设置基础数据,一般数据从 react-native-device-info 中获取,如果你没有特殊的可以不要调用,内部会根据你安装的 react-native-device-info 自动获取基础数据。这些基础数据的目的是为了过滤数据,不是必须的。
81
-
82
- ```ts
83
- logger.config({
84
- baseData: {
85
- Brand: DeviceInfo.getBrand(),
86
- Model: DeviceInfo.getModel(),
87
- AppVersion: DeviceInfo.getVersion(),
88
- Carrier: DeviceInfo.getCarrierSync(),
89
- Manufacturer: DeviceInfo.getManufacturerSync(),
90
- SystemName: DeviceInfo.getSystemName(),
91
- }
92
- });
93
- ```
94
-
95
- ### 2.4 单独记录和停止所有记录
96
-
97
- 尽量不要使用以下 API ,这些 API 也没必要,这些数据都只会保存到你打开的日志系统中,所以都是能收集啥就都收集啥,目的是方便排查问题。
98
-
99
- ```ts
100
- // 只抓取日志
101
- logger.startRecordLog();
102
- // 只抓取网络日志
103
- logger.startRecordNetwork();
104
-
105
- // 停止日志记录,会同时停止日志和网络
106
- logger.unAuto();
107
- ```
108
-
109
- ### 2.5 其他使用说明
110
-
111
- 如果你希望杀死手机后下次进来仍然能记住之前保存的 IP 地址,那么你可以考虑安装:
112
-
113
- ```bash
114
- yarn add @react-native-async-storage/async-storage
115
- ```
116
-
117
- 如果你本地有安装其他的 storage ,那么你可以手动设置:
118
-
119
- ```ts
120
- logger.config({
121
- storage: // 你的 storage ;或者你自己写的,只要遵循 getItem 和 setItem 接口规范即可
122
- })
123
- ```
124
-
125
- 现在把若干配置相关的都放到了 config 中,以此来简化配置,配置的每一项都是可选的:
126
-
127
- ```ts
128
- type Options = {
129
- /**
130
- * storage 用于存储已设置的日志系统的 url
131
- * @default @react-native-async-storage/async-storage
132
- */
133
- storage?: Storage
134
- /**
135
- * 设置上传日志的超时时间,单位为毫秒
136
- * @default 3000
137
- */
138
- timeout?: number
139
- /**
140
- * 日志系统的url
141
- */
142
- testUrl?: string
143
- /**
144
- * 是否自动开启日志记录
145
- * @default false
146
- */
147
- isAuto?: boolean
148
- /**
149
- * 设置日志系统的基础数据,这些数据会自动添加到每条日志中
150
- */
151
- baseData?: Record<string, any>
152
- }
153
- ```
154
-
155
- 这是 config 每一项的说明。
156
-
157
- ## 3. 其他重要说明
158
-
159
- 1. 如果你使用的自我发现模式,那么要保证你的手机和 log-record 客户端在同一个局域网下。
160
- 1. 在配置 baseUrl 的时候,必须填写的是 [log-record](https://github.com/wutiange/log-record) 的地址,也就是你在什么电脑打开的 log-record 客户端,那么这里添加的就是对应电脑的 ip 地址。集成这个插件的 app 端要保证跟 log-record 客户端在同一个局域网下。
161
- 1. 如果你不知道日志系统的 IP ,可以在日志系统的 `设置 > 链接说明(需要版本大于1.0.9)` 中找到,如下图所示:
162
-
163
- ![0cf34d6cd25ee1f725b57dd2d076c336.png](https://github.com/wutiange/log-listener-plugin/raw/dev/docs/images/0cf34d6cd25ee1f725b57dd2d076c336.png)
1
+ Here's the English translation while maintaining the same format and keeping "Log Record" unchanged:
2
+
3
+ # log-listener-plugin
4
+ [![Dependencies](https://img.shields.io/badge/dependencies-none-green)](https://www.npmjs.com/package/@wutiange/log-listener-plugin?activeTab=dependencies)
5
+ [![npm](https://img.shields.io/npm/v/@wutiange/log-listener-plugin)](https://www.npmjs.com/package/@wutiange/log-listener-plugin)
6
+ [![npm downloads](https://img.shields.io/npm/dm/@wutiange/log-listener-plugin)](https://www.npmjs.com/package/@wutiange/log-listener-plugin)
7
+ [![License](https://img.shields.io/npm/l/@wutiange/log-listener-plugin)](./LICENSE)
8
+
9
+ [中文](../../README.md) | English
10
+
11
+ To properly use the [Log Record](https://github.com/wutiange/log-record) client for log collection and troubleshooting, you need to install this plugin in your project.
12
+
13
+ ## 1. Installation
14
+
15
+ Install using npm
16
+
17
+ ```bash
18
+ npm install @wutiange/log-listener-plugin
19
+ ```
20
+
21
+ Install using yarn
22
+
23
+ ```bash
24
+ yarn add @wutiange/log-listener-plugin
25
+ ```
26
+ **Since the logging system uses HTTP, the project needs to be configured to support HTTP for proper operation.**
27
+
28
+ ## 2. Usage
29
+
30
+ Call the following code where you need to start recording logs.
31
+
32
+ ### 2.1 Usage Based on Auto-Discovery
33
+
34
+ First install react-native-zeroconf, which is used to discover available logging systems in the local network.
35
+
36
+ ```bash
37
+ yarn add react-native-zeroconf
38
+ # or
39
+ npm install react-native-zeroconf
40
+ ```
41
+
42
+ For detailed installation steps, please visit: [react-native-zeroconf](https://www.npmjs.com/package/react-native-zeroconf). Don't ignore this line as there are necessary steps to follow. I've also copied these steps below to prevent oversight.
43
+
44
+ For Android please ensure your manifest is requesting all necessary permissions.
45
+
46
+ ```xml
47
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
48
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
49
+ <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
50
+ ```
51
+
52
+ IOS 14 requires you to specify the services you want to scan for and a description for what you're using them.
53
+
54
+ In your `info.plist` add the following strings:
55
+
56
+ ```plist
57
+ <key>NSBonjourServices</key>
58
+ <array>
59
+ <string>_http._tcp</string>
60
+ </array>
61
+ <key>NSLocalNetworkUsageDescription</key>
62
+ <string>Access nearby Log Records to view logs</string>
63
+ ```
64
+
65
+ Then find a suitable place in your project, typically in App.js, to make the call.
66
+
67
+ ```ts
68
+ import logger from '@wutiange/log-listener-plugin';
69
+ // Start log recording
70
+ logger.config({isAuto: true});
71
+ ```
72
+
73
+ ### 2.2 Usage Based on Manual Configuration
74
+
75
+ ```ts
76
+ import logger from '@wutiange/log-listener-plugin';
77
+ // Fill in the log server address. If you use auto-discovery, this step can be skipped
78
+ logger.config({isAuto: true, testUrl: 'http://127.0.0.1'});
79
+ ```
80
+
81
+ ### 2.3 Setting Basic Data
82
+
83
+ Set basic data, typically obtained from react-native-device-info. If you don't have specific requirements, you can skip this call as the basic data will be automatically retrieved from react-native-device-info if installed. This basic data is used for filtering and is not mandatory.
84
+
85
+ ```ts
86
+ logger.config({
87
+ baseData: {
88
+ Brand: DeviceInfo.getBrand(),
89
+ Model: DeviceInfo.getModel(),
90
+ AppVersion: DeviceInfo.getVersion(),
91
+ Carrier: DeviceInfo.getCarrierSync(),
92
+ Manufacturer: DeviceInfo.getManufacturerSync(),
93
+ SystemName: DeviceInfo.getSystemName(),
94
+ }
95
+ });
96
+ ```
97
+
98
+ ### 2.4 Individual Recording and Stopping All Records
99
+
100
+ Try to avoid using the following APIs as they are unnecessary. This data will only be saved to the logging system you have open, so collect whatever is available to facilitate troubleshooting.
101
+
102
+ ```ts
103
+ // Only capture logs
104
+ logger.startRecordLog();
105
+ // Only capture network logs
106
+ logger.startRecordNetwork();
107
+
108
+ // Stop log recording, will stop both logs and network
109
+ logger.unAuto();
110
+ ```
111
+
112
+ ### 2.5 Other Usage Instructions
113
+
114
+ If you want to remember the previously saved IP address even after killing the app, consider installing:
115
+
116
+ ```bash
117
+ yarn add @react-native-async-storage/async-storage
118
+ ```
119
+
120
+ If you have other storage installed locally, you can set it manually:
121
+
122
+ ```ts
123
+ logger.config({
124
+ storage: // Your storage or custom implementation, as long as it follows the getItem and setItem interface specifications
125
+ })
126
+ ```
127
+
128
+ Now all configuration-related items are placed in config to simplify configuration. Each configuration item is optional:
129
+
130
+ ```ts
131
+ type Options = {
132
+ /**
133
+ * storage is used to store the url of the configured logging system
134
+ * @default @react-native-async-storage/async-storage
135
+ */
136
+ storage?: Storage
137
+ /**
138
+ * Set the upload log timeout in milliseconds
139
+ * @default 3000
140
+ */
141
+ timeout?: number
142
+ /**
143
+ * Logging system url
144
+ */
145
+ testUrl?: string
146
+ /**
147
+ * Whether to automatically start log recording
148
+ * @default false
149
+ */
150
+ isAuto?: boolean
151
+ /**
152
+ * Set basic data for the logging system, this data will be automatically added to each log
153
+ */
154
+ baseData?: Record<string, any>
155
+ }
156
+ ```
157
+
158
+ This is the description of each config item.
159
+
160
+ ## 3. Other Important Notes
161
+
162
+ 1. If you're using auto-discovery mode, ensure your phone and Log Record client are on the same local network.
163
+ 2. When configuring baseUrl, you must enter the address of [Log Record](https://github.com/wutiange/log-record). In other words, use the IP address of the computer where you opened the Log Record client. The app integrated with this plugin must be on the same local network as the Log Record client.
164
+ 3. If you don't know the logging system's IP, you can find it in the Log Record client under `Settings > Connection Instructions (requires version > 1.0.9)`, as shown in the image below:
165
+
166
+ ![ip 地址](https://raw.githubusercontent.com/wutiange/assets/refs/heads/master/images/0cf34d6cd25ee1f725b57dd2d076c336.png)
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("tslib");
5
+ const logPlugin_1 = tslib_1.__importDefault(require("./src/logPlugin"));
6
+ exports.default = logPlugin_1.default;
7
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../../index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA,MAAwC,WAAA,GAAA,OAAA,CAAA,eAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA;AAExC,OAAA,CAAA,OAAA,GAAe,mBAAS;;"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,34 @@
1
- import logPlugin from './src/logPlugin';
2
- export default logPlugin;
1
+ type Options = {
2
+ storage?: Storage;
3
+ timeout?: number;
4
+ testUrl?: string;
5
+ isAuto?: boolean;
6
+ baseData?: Record<string, any>;
7
+ };
8
+ declare class LogPlugin {
9
+ private server;
10
+ private timeout;
11
+ private isAuto;
12
+ private storage;
13
+ constructor();
14
+ private init;
15
+ config: ({ storage, timeout, testUrl, isAuto, baseData }: Options) => void;
16
+ auto: () => void;
17
+ unAuto: () => void;
18
+ startRecordLog: () => void;
19
+ stopRecordLog: () => void;
20
+ private handleIgnoredUrls;
21
+ startRecordNetwork: () => void;
22
+ setBaseUrl: (url?: string) => void;
23
+ setTimeout: (timeout: number) => void;
24
+ getTimeout: () => number | null;
25
+ setBaseData: (data?: Record<string, any>) => void;
26
+ private _log;
27
+ tag: (tag: string, ...data: any[]) => void;
28
+ log: (...data: any[]) => void;
29
+ warn: (...data: any[]) => void;
30
+ error: (...data: any[]) => void;
31
+ }
32
+ declare const logPlugin: LogPlugin;
33
+
34
+ export { logPlugin as default };
@@ -0,0 +1,5 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const tslib_1 = require("tslib");
3
+ const logPlugin_1 = tslib_1.__importDefault(require("./src/logPlugin"));
4
+ exports.default = logPlugin_1.default;
5
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAwC,WAAA,GAAA,OAAA,CAAA,eAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA;AAExC,OAAA,CAAA,OAAA,GAAe,mBAAS"}
package/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- import logPlugin from './src/logPlugin';
2
-
3
- export default logPlugin;
1
+ import logPlugin from './src/logPlugin';
2
+
3
+ export default logPlugin;
package/package.json CHANGED
@@ -1,59 +1,52 @@
1
- {
2
- "name": "@wutiange/log-listener-plugin",
3
- "version": "2.0.1",
4
- "description": "log-record 客户端对应的的插件\r\nLog-record client corresponding plugin",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "source": "index.ts",
8
- "react-native": "index.ts",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/wutiange/log-listener-plugin.git"
12
- },
13
- "author": "wutiange <wutiange20@qq,com>",
14
- "license": "MIT",
15
- "keywords": [
16
- "react-native",
17
- "log",
18
- "debugger",
19
- "charles"
20
- ],
21
- "private": false,
22
- "scripts": {
23
- "build": "npm run test && tsc",
24
- "dev": "ts-node ./index.ts",
25
- "publish-alpha": "npm publish --access public --tag alpha",
26
- "prepublishOnly": "npm run build",
27
- "test": "jest"
28
- },
29
- "devDependencies": {
30
- "@jest/globals": "^29.7.0",
31
- "@types/crypto-js": "^4.2.2",
32
- "@types/jest": "^29.5.12",
33
- "@types/react-native-zeroconf": "^0.13.1",
34
- "@types/url-parse": "^1.4.11",
35
- "jest": "^29.7.0",
36
- "ts-jest": "^29.1.2",
37
- "ts-node": "^10.9.2",
38
- "typescript": "^5.3.3"
39
- },
40
- "peerDependencies": {
41
- "react-native": "*",
42
- "react-native-device-info": "^14.0.0",
43
- "react-native-zeroconf": "^0.13.8",
44
- "@react-native-async-storage/async-storage": "*"
45
- },
46
- "files": [
47
- "package.json",
48
- "README.md",
49
- "LICENSE",
50
- "dist",
51
- "src",
52
- "index.ts",
53
- "tsconfig.json"
54
- ],
55
- "dependencies": {
56
- "crypto-js": "^4.2.0",
57
- "url-parse": "^1.5.10"
58
- }
59
- }
1
+ {
2
+ "name": "@wutiange/log-listener-plugin",
3
+ "version": "2.0.2-alpha.2",
4
+ "description": "log-record 客户端对应的的插件\r\nLog-record client corresponding plugin",
5
+ "source": "index.ts",
6
+ "react-native": "index.ts",
7
+ "main": "dist/index.cjs.js",
8
+ "module": "dist/index.esm.js",
9
+ "types": "dist/index.d.ts",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/wutiange/log-listener-plugin.git"
13
+ },
14
+ "author": "wutiange <wutiange20@qq,com>",
15
+ "license": "MIT",
16
+ "keywords": [
17
+ "react-native",
18
+ "log",
19
+ "debugger",
20
+ "charles"
21
+ ],
22
+ "scripts": {
23
+ "publish-alpha": "npm publish --access public --tag alpha",
24
+ "prepublishOnly": "npm run build",
25
+ "test": "jest",
26
+ "build": "yarn clean && yarn test && rollup -c",
27
+ "dev": "rollup -c -w",
28
+ "clean": "rimraf dist"
29
+ },
30
+ "devDependencies": {
31
+ "@types/react-native-zeroconf": "^0.13.1",
32
+ "@types/url-parse": "^1.4.11"
33
+ },
34
+ "peerDependencies": {
35
+ "@react-native-async-storage/async-storage": "*",
36
+ "react-native": "*",
37
+ "react-native-device-info": "^14.0.0",
38
+ "react-native-zeroconf": "^0.13.8"
39
+ },
40
+ "files": [
41
+ "package.json",
42
+ "README.md",
43
+ "LICENSE",
44
+ "dist",
45
+ "src",
46
+ "index.ts"
47
+ ],
48
+ "dependencies": {
49
+ "url-parse": "^1.5.10"
50
+ },
51
+ "packageManager": "yarn@4.5.3"
52
+ }