diff --git a/README.md b/README.md
index 6960444..4b7df47 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,19 @@
# react-native-wear-connectivity
-Enstablish a two-way connection with wearOS
+- Create a [Wear OS][1] app using react-native
+- Connect two react-native apps (Wear OS and Android phone)
+- **Both apps are written in react-native**
+
+[1]: https://wearos.google.com
## Installation
+```sh
+yarn add react-native-wear-connectivity
+```
+
+or
+
```sh
npm install react-native-wear-connectivity
```
@@ -11,13 +21,68 @@ npm install react-native-wear-connectivity
## Usage
```js
-import { multiply } from 'react-native-wear-connectivity';
+import { sendMessage, watchEvents } from 'react-native-wear-connectivity';
+
+function CounterScreen() {
+ const [count, setCount] = React.useState(0);
+
+ // listen for messages from wearOS/phone
+ useEffect(() => {
+ const unsubscribe = watchEvents.on('message', () => {
+ setCount((prevCount) => prevCount + 1);
+ });
+
+ return () => {
+ unsubscribe();
+ };
+ }, []);
+
+ // send a message from/to wearOS
+ const onSuccess = (result) => console.log(result);
+ const onError = (error) => console.log(error);
+
+ const sendMessageToWear = () => {
+ const json = { text: 'hello', event: 'message' };
+ sendMessage(json, onSuccess, onError);
+ };
+
+ return (
+
+ {count}
+
+
+ );
+}
+```
+
+## How to create a WearOS app using react-native
+
+- Create a copy of your react-native project. For Example:
+
+```bash
+cp my-react-native-project my-react-native-wear-project
+```
+
+- Add the following line to the new project AndroidManifest (file ):
-// ...
-const result = await multiply(3, 7);
+```xml
+
+
```
+- Pair the Android emulator with the Wear OS emulator (instructions [here][21]). I suggest using the emulator [WearOS Large round][22], as the other emulator has issues with the react-native dev menu.
+- Start the metro server on port 8082 with `yarn start --port=8082`
+- Open the `react native dev menu` and change the bundle location to `your-ip:8082` (for ex. `192.168.18.2:8082`).
+- Repeat the same steps for the Android Phone Emulator and use a different port (for ex. 8081).
+- **Important Note**: Before publishing to Google Play, make sure that both apps are signed using the same key (instructions [here][20])
+
+You can now build the app with `yarn android`. JS fast-refresh and the other metro functionalities work without problem (no need to build for JS changes).
+
+[20]: https://reactnative.dev/docs/next/signed-apk-android
+[21]: https://developer.android.com/training/wearables/get-started/connect-phone
+[22]: https://gist.github.com/assets/24992535/f6cb9f84-dc50-492b-963d-6d9e9396f451 'wear os large round'
+
## Contributing
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
@@ -25,7 +90,3 @@ See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the
## License
MIT
-
----
-
-Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
diff --git a/example/src/App.tsx b/example/src/App.tsx
index d7e0cd8..d6d7005 100644
--- a/example/src/App.tsx
+++ b/example/src/App.tsx
@@ -1,12 +1,11 @@
import React from 'react';
-import LoginScreen from './LoginScreen';
import { Platform } from 'react-native';
import { default as CounterScreenAndroid } from './CounterScreen/index.android';
import { default as CounterScreenIos } from './CounterScreen/index.ios';
const App = () => {
const CounterScreen =
- Platform.OS == 'ios' ? CounterScreenIos : CounterScreenAndroid;
+ Platform.OS === 'ios' ? CounterScreenIos : CounterScreenAndroid;
return ;
};
diff --git a/example/src/CounterScreen/index.android.tsx b/example/src/CounterScreen/index.android.tsx
index b0c872e..bc69914 100644
--- a/example/src/CounterScreen/index.android.tsx
+++ b/example/src/CounterScreen/index.android.tsx
@@ -1,14 +1,17 @@
import React, { useEffect } from 'react';
import { View, StyleSheet, Text, Button } from 'react-native';
-import { sendMessage, watchEvents } from '../../../src/index';
-import type { ReplyCallback, ErrorCallback } from '../../../src/index';
+import { sendMessage, watchEvents } from 'react-native-wear-connectivity';
+import type {
+ ReplyCallback,
+ ErrorCallback,
+} from 'react-native-wear-connectivity';
function CounterScreen() {
const [disabled, setDisabled] = React.useState(false);
const [count, setCount] = React.useState(0);
useEffect(() => {
- const unsubscribe = watchEvents.on('message', (message: Function) => {
+ const unsubscribe = watchEvents.on('message', () => {
setCount((prevCount) => prevCount + 1);
});
diff --git a/package.json b/package.json
index 4c874c1..4ddec6f 100644
--- a/package.json
+++ b/package.json
@@ -60,10 +60,13 @@
"@types/jest": "^28.1.2",
"@types/react": "~17.0.21",
"@types/react-native": "0.70.0",
+ "@typescript-eslint/eslint-plugin": "latest",
+ "@typescript-eslint/parser": "latest",
"commitlint": "^17.0.2",
"del-cli": "^5.0.0",
- "eslint": "^8.4.1",
+ "eslint": "latest",
"eslint-config-prettier": "^8.5.0",
+ "eslint-plugin-jest": "^27.6.3",
"eslint-plugin-prettier": "^4.0.0",
"jest": "^28.1.1",
"pod-install": "^0.1.0",
diff --git a/src/NativeWearConnectivity.ts b/src/NativeWearConnectivity.ts
index 20aff4e..511d47b 100644
--- a/src/NativeWearConnectivity.ts
+++ b/src/NativeWearConnectivity.ts
@@ -1,10 +1,6 @@
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
-
-// Messages
-export type Payload = Object;
-export type ReplyCallback = (reply: Payload) => void;
-export type ErrorCallback = (err: string) => void;
+import type { SendMessage, Payload } from './types';
const UNHANDLED_CALLBACK =
'The sendMessage function was called without a callback function. ';
@@ -20,12 +16,6 @@ export const defaultErrCb = (err: string) => {
console.warn(UNHANDLED_CALLBACK + UNHANDLED_CALLBACK_ERROR, err);
};
-export type SendMessage = (
- message: Payload,
- cb: ReplyCallback,
- errCb: ErrorCallback
-) => void;
-
export interface Spec extends TurboModule {
sendMessage: SendMessage;
}
diff --git a/src/constants.ts b/src/constants.ts
new file mode 100644
index 0000000..5ff4ed4
--- /dev/null
+++ b/src/constants.ts
@@ -0,0 +1,5 @@
+const LIBRARY_NAME = 'react-native-wear-connectivity ';
+const IOS_NOT_SUPPORTED_WARNING =
+ ' does not support iOS. Please use react-native-watch-connectivity library for iOS.';
+
+export { LIBRARY_NAME, IOS_NOT_SUPPORTED_WARNING };
diff --git a/src/index.tsx b/src/index.tsx
index 42eb2ba..3259829 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -1,7 +1,12 @@
import { NativeModules, Platform } from 'react-native';
-import { watchEvents } from './subscriptions';
-import { sendMessage } from './messages';
-import type { ReplyCallback, ErrorCallback } from './NativeWearConnectivity.ts';
+import { watchEvents, watchEventsMock } from './subscriptions';
+import { sendMessage, sendMessageMock } from './messages';
+import type {
+ ReplyCallback,
+ ErrorCallback,
+ SendMessage,
+ WatchEvents,
+} from './types';
const LINKING_ERROR =
`The package 'react-native-wear-connectivity' doesn't seem to be linked. Make sure: \n\n` +
@@ -27,22 +32,12 @@ const WearConnectivity = WearConnectivityModule
}
);
-let sendMessageExport;
-let watchEventsExport;
-// let WearConnectivity;
-
-const LIBRARY_NAME = 'react-native-wear-connectivity ';
-const IOS_NOT_SUPPORTED_WARNING =
- ' does not support iOS. Please use react-native-watch-connectivity library for iOS.';
-const iosFunctionMock = (methodName: String) => () =>
- console.warn(LIBRARY_NAME + methodName + IOS_NOT_SUPPORTED_WARNING);
+let sendMessageExport: SendMessage;
+let watchEventsExport: WatchEvents;
if (Platform.OS === 'ios') {
- sendMessageExport = iosFunctionMock('sendMessage');
- watchEventsExport = {
- addListener: iosFunctionMock('addListener'),
- on: iosFunctionMock('watchEvents'),
- };
+ sendMessageExport = sendMessageMock;
+ watchEventsExport = watchEventsMock;
} else {
sendMessageExport = sendMessage;
watchEventsExport = watchEvents;
diff --git a/src/messages.ts b/src/messages.ts
index 285651d..b4a7cd5 100644
--- a/src/messages.ts
+++ b/src/messages.ts
@@ -1,6 +1,7 @@
-import type { SendMessage } from './NativeWearConnectivity';
+import type { SendMessage } from './types';
import { defaultReplyCb, defaultErrCb } from './NativeWearConnectivity';
import { WearConnectivity } from './index';
+import { LIBRARY_NAME, IOS_NOT_SUPPORTED_WARNING } from './constants';
const sendMessage: SendMessage = (message, cb, errCb) => {
const callbackWithDefault = cb ?? defaultReplyCb;
@@ -12,4 +13,7 @@ const sendMessage: SendMessage = (message, cb, errCb) => {
);
};
-export { sendMessage };
+const sendMessageMock: SendMessage = () =>
+ console.warn(LIBRARY_NAME + 'message' + IOS_NOT_SUPPORTED_WARNING);
+
+export { sendMessage, sendMessageMock };
diff --git a/src/subscriptions.ts b/src/subscriptions.ts
index 5de7a29..b798d71 100644
--- a/src/subscriptions.ts
+++ b/src/subscriptions.ts
@@ -1,7 +1,6 @@
import { NativeModules, NativeEventEmitter } from 'react-native';
-
-type EventType = 'message';
-type AddListener = (event: EventType, cb: Function) => UnsubscribeFn;
+import type { AddListener, WatchEvents } from './types';
+import { LIBRARY_NAME, IOS_NOT_SUPPORTED_WARNING } from './constants';
const _addListener: AddListener = (event, cb) => {
if (!event) {
@@ -23,7 +22,19 @@ const nativeWatchEventEmitter = new NativeEventEmitter(
NativeModules.AndroidWearCommunication
);
-export const watchEvents = {
+const _addListenerMock: AddListener = () => {
+ console.warn(LIBRARY_NAME + 'watchEvents' + IOS_NOT_SUPPORTED_WARNING);
+ return () => {};
+};
+
+const watchEventsMock: WatchEvents = {
+ addListener: _addListenerMock,
+ on: _addListener,
+};
+
+const watchEvents: WatchEvents = {
addListener: _addListener,
on: _addListener,
};
+
+export { watchEvents, watchEventsMock };
diff --git a/src/types.ts b/src/types.ts
new file mode 100644
index 0000000..f7e2ee3
--- /dev/null
+++ b/src/types.ts
@@ -0,0 +1,24 @@
+// Messages
+export type Payload = {};
+export type ReplyCallback = (reply: Payload) => void;
+export type ErrorCallback = (err: string) => void;
+
+export type SendMessage = (
+ message: Payload,
+ cb: ReplyCallback,
+ errCb: ErrorCallback
+) => void;
+
+// Subscriptions
+export type EventType = 'message';
+type UnsubscribeFn = Function;
+type CallbackFunction = (event: any) => void;
+export type AddListener = (
+ event: EventType,
+ cb: CallbackFunction
+) => UnsubscribeFn;
+
+export type WatchEvents = {
+ addListener: AddListener;
+ on: AddListener;
+};
diff --git a/src/types.tsx b/src/types.tsx
deleted file mode 100644
index e69de29..0000000
diff --git a/watch-example/src/App.tsx b/watch-example/src/App.tsx
index 4232d45..38d83fa 100644
--- a/watch-example/src/App.tsx
+++ b/watch-example/src/App.tsx
@@ -1,8 +1,11 @@
import React, { useEffect, useState } from 'react';
import { StyleSheet, View, Text, TouchableOpacity } from 'react-native';
-import { sendMessage, watchEvents } from '../../src/index';
-import type { ReplyCallback, ErrorCallback } from '../../src/index';
+import { sendMessage, watchEvents } from 'react-native-wear-connectivity';
+import type {
+ ReplyCallback,
+ ErrorCallback,
+} from 'react-native-wear-connectivity';
export default function App() {
const [count, setCount] = useState(0);
@@ -19,7 +22,6 @@ export default function App() {
const onSuccess: ReplyCallback = (result) => console.log(result);
const onError: ErrorCallback = (error) => console.log(error);
-
const sendMessageToPhone = () => {
const json = { text: 'hello', event: 'message' };
sendMessage(json, onSuccess, onError);
diff --git a/yarn.lock b/yarn.lock
index 722d683..a7873af 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1882,7 +1882,7 @@ __metadata:
languageName: node
linkType: hard
-"@eslint-community/eslint-utils@npm:^4.2.0":
+"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
version: 4.4.0
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
dependencies:
@@ -1893,7 +1893,7 @@ __metadata:
languageName: node
linkType: hard
-"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1":
+"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
version: 4.10.0
resolution: "@eslint-community/regexpp@npm:4.10.0"
checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b
@@ -3249,7 +3249,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:^7.0.9":
+"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98
@@ -3350,6 +3350,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/semver@npm:^7.5.0":
+ version: 7.5.7
+ resolution: "@types/semver@npm:7.5.7"
+ checksum: 5af9b13e3d74d86d4b618f6506ccbded801fb35dbc28608cd5a7bfb8bcac0021dd35ef305a72a0c2a8def0cff60acd706bfee16a9ed1c39a893d2a175e778ea7
+ languageName: node
+ linkType: hard
+
"@types/stack-utils@npm:^2.0.0":
version: 2.0.3
resolution: "@types/stack-utils@npm:2.0.3"
@@ -3406,6 +3413,31 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/eslint-plugin@npm:latest":
+ version: 6.21.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0"
+ dependencies:
+ "@eslint-community/regexpp": ^4.5.1
+ "@typescript-eslint/scope-manager": 6.21.0
+ "@typescript-eslint/type-utils": 6.21.0
+ "@typescript-eslint/utils": 6.21.0
+ "@typescript-eslint/visitor-keys": 6.21.0
+ debug: ^4.3.4
+ graphemer: ^1.4.0
+ ignore: ^5.2.4
+ natural-compare: ^1.4.0
+ semver: ^7.5.4
+ ts-api-utils: ^1.0.1
+ peerDependencies:
+ "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/parser@npm:^5.30.5":
version: 5.62.0
resolution: "@typescript-eslint/parser@npm:5.62.0"
@@ -3423,6 +3455,24 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/parser@npm:latest":
+ version: 6.21.0
+ resolution: "@typescript-eslint/parser@npm:6.21.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": 6.21.0
+ "@typescript-eslint/types": 6.21.0
+ "@typescript-eslint/typescript-estree": 6.21.0
+ "@typescript-eslint/visitor-keys": 6.21.0
+ debug: ^4.3.4
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:5.62.0":
version: 5.62.0
resolution: "@typescript-eslint/scope-manager@npm:5.62.0"
@@ -3433,6 +3483,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/scope-manager@npm:6.21.0"
+ dependencies:
+ "@typescript-eslint/types": 6.21.0
+ "@typescript-eslint/visitor-keys": 6.21.0
+ checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:5.62.0":
version: 5.62.0
resolution: "@typescript-eslint/type-utils@npm:5.62.0"
@@ -3450,6 +3510,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/type-utils@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/type-utils@npm:6.21.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": 6.21.0
+ "@typescript-eslint/utils": 6.21.0
+ debug: ^4.3.4
+ ts-api-utils: ^1.0.1
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:5.62.0":
version: 5.62.0
resolution: "@typescript-eslint/types@npm:5.62.0"
@@ -3457,6 +3534,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/types@npm:6.21.0"
+ checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:5.62.0":
version: 5.62.0
resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
@@ -3475,6 +3559,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
+ dependencies:
+ "@typescript-eslint/types": 6.21.0
+ "@typescript-eslint/visitor-keys": 6.21.0
+ debug: ^4.3.4
+ globby: ^11.1.0
+ is-glob: ^4.0.3
+ minimatch: 9.0.3
+ semver: ^7.5.4
+ ts-api-utils: ^1.0.1
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:5.62.0, @typescript-eslint/utils@npm:^5.10.0":
version: 5.62.0
resolution: "@typescript-eslint/utils@npm:5.62.0"
@@ -3493,6 +3596,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/utils@npm:6.21.0"
+ dependencies:
+ "@eslint-community/eslint-utils": ^4.4.0
+ "@types/json-schema": ^7.0.12
+ "@types/semver": ^7.5.0
+ "@typescript-eslint/scope-manager": 6.21.0
+ "@typescript-eslint/types": 6.21.0
+ "@typescript-eslint/typescript-estree": 6.21.0
+ semver: ^7.5.4
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:5.62.0":
version: 5.62.0
resolution: "@typescript-eslint/visitor-keys@npm:5.62.0"
@@ -3503,6 +3623,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/visitor-keys@npm:6.21.0"
+ dependencies:
+ "@typescript-eslint/types": 6.21.0
+ eslint-visitor-keys: ^3.4.1
+ checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433
+ languageName: node
+ linkType: hard
+
"@ungap/structured-clone@npm:^1.2.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
@@ -5859,6 +5989,24 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-jest@npm:^27.6.3":
+ version: 27.6.3
+ resolution: "eslint-plugin-jest@npm:27.6.3"
+ dependencies:
+ "@typescript-eslint/utils": ^5.10.0
+ peerDependencies:
+ "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0
+ eslint: ^7.0.0 || ^8.0.0
+ jest: "*"
+ peerDependenciesMeta:
+ "@typescript-eslint/eslint-plugin":
+ optional: true
+ jest:
+ optional: true
+ checksum: e22e8dbd941b34bb95958f035ffabb94114506b294e74d6e411bc85bc9dc57888ffd3ebb5c28316a8b7cc9d391cca35557acc64bf815f48d1dcc5ea3d28fa43a
+ languageName: node
+ linkType: hard
+
"eslint-plugin-prettier@npm:^4.0.0, eslint-plugin-prettier@npm:^4.2.1":
version: 4.2.1
resolution: "eslint-plugin-prettier@npm:4.2.1"
@@ -5961,7 +6109,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint@npm:^8.4.1":
+"eslint@npm:latest":
version: 8.56.0
resolution: "eslint@npm:8.56.0"
dependencies:
@@ -9514,6 +9662,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:9.0.3, minimatch@npm:^9.0.1":
+ version: 9.0.3
+ resolution: "minimatch@npm:9.0.3"
+ dependencies:
+ brace-expansion: ^2.0.1
+ checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
@@ -9532,15 +9689,6 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.1":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
- dependencies:
- brace-expansion: ^2.0.1
- checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5
- languageName: node
- linkType: hard
-
"minimist-options@npm:4.1.0":
version: 4.1.0
resolution: "minimist-options@npm:4.1.0"
@@ -10864,10 +11012,13 @@ __metadata:
"@types/jest": ^28.1.2
"@types/react": ~17.0.21
"@types/react-native": 0.70.0
+ "@typescript-eslint/eslint-plugin": latest
+ "@typescript-eslint/parser": latest
commitlint: ^17.0.2
del-cli: ^5.0.0
- eslint: ^8.4.1
+ eslint: latest
eslint-config-prettier: ^8.5.0
+ eslint-plugin-jest: ^27.6.3
eslint-plugin-prettier: ^4.0.0
jest: ^28.1.1
pod-install: ^0.1.0
@@ -11600,7 +11751,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3":
+"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4":
version: 7.6.0
resolution: "semver@npm:7.6.0"
dependencies:
@@ -12418,6 +12569,15 @@ __metadata:
languageName: node
linkType: hard
+"ts-api-utils@npm:^1.0.1":
+ version: 1.2.1
+ resolution: "ts-api-utils@npm:1.2.1"
+ peerDependencies:
+ typescript: ">=4.2.0"
+ checksum: 17a2a4454d65a6765b9351304cfd516fcda3098f49d72bba90cb7f22b6a09a573b4a1993fd7de7d6b8046c408960c5f21a25e64ccb969d484b32ea3b3e19d6e4
+ languageName: node
+ linkType: hard
+
"ts-node@npm:^10.8.1":
version: 10.9.2
resolution: "ts-node@npm:10.9.2"