diff --git a/README.md b/README.md index 74f892d7..285594d3 100644 --- a/README.md +++ b/README.md @@ -50,12 +50,19 @@ The hassle-free way to add Segment analytics to your React-Native app. ## Installation -Install `@segment/analytics-react-native`, [`@segment/sovran-react-native`](https://github.com/segmentio/sovran-react-native) and [`react-native-async-storage/async-storage`](https://github.com/react-native-async-storage/async-storage): +Install `@segment/analytics-react-native`, [`@segment/sovran-react-native`](https://github.com/segmentio/sovran-react-native): ```sh -yarn add @segment/analytics-react-native @segment/sovran-react-native @react-native-async-storage/async-storage +yarn add @segment/analytics-react-native @segment/sovran-react-native # or -npm install --save @segment/analytics-react-native @segment/sovran-react-native @react-native-async-storage/async-storage +npm install --save @segment/analytics-react-native @segment/sovran-react-native +``` + +If using default persistor for the Segment Analytics client, install [`react-native-async-storage/async-storage`](https://github.com/react-native-async-storage/async-storage) (for more context, check Client Options's `storePersistor`): +```sh +yarn add @react-native-async-storage/async-storage +# or +npm install --save @react-native-async-storage/async-storage ``` For iOS, install native modules with: diff --git a/packages/core/package.json b/packages/core/package.json index a5076c5f..9754d64f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -46,17 +46,22 @@ }, "homepage": "https://github.com/segmentio/analytics-react-native#readme", "dependencies": { - "@react-native-async-storage/async-storage": "^1.15.17", - "@segment/sovran-react-native": "^0.4.5", "deepmerge": "^4.2.2", "js-base64": "^3.7.2", "promise.allsettled": "^1.0.5", "react-native-uuid": "^2.0.1" }, "peerDependencies": { + "@react-native-async-storage/async-storage": "*", + "@segment/sovran-react-native": "*", "react": "*", "react-native": "*" }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + }, "devDependencies": { "@babel/core": "^7.12.9", "@babel/runtime": "^7.12.5", diff --git a/packages/core/src/__mocks__/@react-native-async-storage/async-storage.js b/packages/core/src/__mocks__/@react-native-async-storage/async-storage.js index dad97c78..9c1d1d7e 100644 --- a/packages/core/src/__mocks__/@react-native-async-storage/async-storage.js +++ b/packages/core/src/__mocks__/@react-native-async-storage/async-storage.js @@ -1 +1 @@ -export default from '@react-native-async-storage/async-storage/jest/async-storage-mock'; +export default '@react-native-async-storage/async-storage/jest/async-storage-mock'; diff --git a/yarn.lock b/yarn.lock index 1d8b38b2..f0274570 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2256,13 +2256,6 @@ dependencies: "@octokit/openapi-types" "^12.10.0" -"@react-native-async-storage/async-storage@^1.15.15", "@react-native-async-storage/async-storage@^1.15.17": - version "1.17.7" - resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.17.7.tgz#f9213e8cc6202a8c29df5a4da1db588f3b0fa8a9" - integrity sha512-mDtWhCcpxzrZhA95f6zi0pnBsjBEZW1LKZWfxVXG0UfaWpPxDBCKowNk2xjRTytckZeVhjmPJPtBU+8QNQcR0A== - dependencies: - merge-options "^3.0.4" - "@react-native-community/cli-debugger-ui@^6.0.0-rc.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0.tgz#ef9eb1268d85c1bd3caf2c4d36dc350bb080f254" @@ -2453,16 +2446,6 @@ resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== -"@segment/sovran-react-native@^0.4.5": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@segment/sovran-react-native/-/sovran-react-native-0.4.5.tgz#2ae057790623cfbd84eb15e4a3bb9835d108f815" - integrity sha512-/dvud4hkszRNgTHdb7p822U+NXTuPxifqQzhcrfdjmFoXMafnzOUAi1KxeGV6Qdb73VAIxcnr/8hkTqdjZ3YLw== - dependencies: - "@react-native-async-storage/async-storage" "^1.15.15" - ansi-regex "5.0.1" - deepmerge "^4.2.2" - shell-quote "1.7.3" - "@segment/tsub@^0": version "0.2.0" resolved "https://registry.yarnpkg.com/@segment/tsub/-/tsub-0.2.0.tgz#456345ad04bca81f6c3fefacac722fd9eb4923ce" @@ -3931,16 +3914,16 @@ ansi-fragments@^0.2.1: slice-ansi "^2.0.0" strip-ansi "^5.0.0" -ansi-regex@5.0.1, ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - ansi-regex@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -7427,11 +7410,6 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -8875,13 +8853,6 @@ meow@^8.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-options@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" - integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== - dependencies: - is-plain-obj "^2.1.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -11414,7 +11385,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.7.3, shell-quote@^1.6.1, shell-quote@^1.7.3: +shell-quote@^1.6.1, shell-quote@^1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==