@rnx-kit/align-deps
Version:
Manage dependencies within a repository and across many repositories
348 lines (268 loc) • 105 kB
Markdown
# @rnx-kit/align-deps
[](https://github.com/microsoft/rnx-kit/actions/workflows/build.yml)
[](https://www.npmjs.com/package/@rnx-kit/align-deps)
`@rnx-kit/align-deps` is a tool for managing dependencies within a repository
and across many repositories. It ensures that your packages are using compatible
dependencies and versions, given a set of [requirements](#requirements), based
on [customizable presets](#presets) with known good packages and versions that
are curated from real apps. You can even bring your own presets that are
tailored to your needs.
Note that this tool was previously known as `dep-check`, but it was renamed to
avoid name clashes and other reasons. For more details, you can read the RFC:
[`dep-check` v2](https://github.com/microsoft/rnx-kit/blob/rfcs/text/0001-dep-check-v2.md).
If you want to learn how `align-deps` is used at Microsoft, and see a demo of
how it works in a monorepo, you can watch the
["Improve all the repos – exploring Microsoft’s DevExp"](https://youtu.be/DAEnPV78rQc?t=1085)
talk by [@kelset](https://github.com/kelset) and
[@tido64](https://github.com/tido64) at React Native Europe 2021.
To learn more about how `align-deps` works, please read the
[design document](https://microsoft.github.io/rnx-kit/docs/architecture/dependency-management).
## Installation
```sh
yarn add @rnx-kit/align-deps --dev
```
or if you're using npm
```sh
npm add --save-dev @rnx-kit/align-deps
```
You can also run this tool using `npx`
```sh
npx @rnx-kit/align-deps@latest [options] [packages...]
```
but note that profiles may change between each run. We therefore don't recommend
that you use `npx` if you intend to run this tool on CI or as part of
post-install. It should be fine if you run it manually.
## Usage
```sh
yarn rnx-align-deps [options] [packages...]
```
Listing paths to packages that should be checked is optional. If omitted,
`align-deps` will look for the closest `package.json` using Node module
resolution. If the target package is a root package defining workspaces, they
will all be included.
Examples:
- Ensure dependencies are compatible with react-native 0.70 without a config:
```sh
yarn rnx-align-deps --requirements react-native@0.70
```
- Initialize a config for your app (or library):
```sh
yarn rnx-align-deps --init app
# or specify `library` for a library
```
- Apply changes suggested by `align-deps`:
```sh
yarn rnx-align-deps --write
```
- Interactively update supported react-native versions (or bump version used for
development):
```sh
yarn rnx-align-deps --set-version
```
### `--diff-mode`
Sets the algorithm used to determine if versions differ.
Valid values:
- `strict` — version strings must be equal
- `allow-subset` — allow ranges that are entirely contained by the target
version range
- **OK:** `0.74.0` is a subset of `^0.74.0`
- **OK:** `^0.74.0` is a subset of `^0.74.0`
- **OK:** `^0.74.2` is a subset of `^0.74.0`
- **NOT OK:** `^0.74.0` is **not** a subset of `0.74.0`
> [!WARNING]
>
> While algorithms other than `strict` allow you to use exact version or version
> range subsets, they will also increase the risk of introducing duplicate
> packages within your repository. You will have to be more vigilant and rely on
> tooling (such as [`yarn dedupe`](https://yarnpkg.com/cli/dedupe)) to reduce
> the risk.
Default: `strict`
### `--exclude-packages`
Comma-separated list of package names to exclude from inspection.
> [!NOTE]
>
> `--exclude-packages` will only exclude packages that do not have a
> configuration. Packages that have a configuration, will still be checked.
### `--export-catalogs <path>`
Exports dependency catalogs for use with [pnpm](https://pnpm.io/catalogs) or
[Yarn catalogs](https://yarnpkg.com/features/catalogs). The specified path must
point to the package manager's config file.
- pnpm: `pnpm-workspace.yaml`
- Yarn: `.yarnrc.yml`
### `--init <app | library>`
When integrating `@rnx-kit/align-deps` for the first time, it may be a
cumbersome to manually add all capabilities yourself. You can run this tool with
`--init`, and it will try to add a sensible configuration based on what is
currently defined in the specified `package.json`.
### `--loose`
Determines how strict the React Native version requirement should be. Useful for
apps that depend on a newer React Native version than their dependencies declare
support for.
Default: `false`
### `--no-unmanaged`
Whether unmanaged capabilities should be treated as errors.
Default: `false`
### `--presets`
Comma-separated list of presets. This can be names to built-in presets, or paths
to external presets. Paths can point to a JSON file, a `.js` file, or a module
name. The module must default export an object similar to the one below:
```js
module.exports = {
0.69: {
"my-capability": {
name: "my-module",
version: "1.0.0",
},
},
"0.70": {
"my-capability": {
name: "my-module",
version: "1.1.0",
},
},
};
```
For a more complete example, have a look at the
[default preset](https://github.com/microsoft/rnx-kit/blob/e1d4b2484303cac04e0ec6a4e79d854c694b96b4/packages/align-deps/src/presets/microsoft/react-native.ts).
See [Presets](#presets) for more details.
> [!NOTE]
>
> This flag is only be considered when a package is not configured. The presets
> specified in the [configuration](#configure) will always take precedence.
### `--requirements`
Comma-separated list of requirements to apply if a package is _not configured_.
For example, `--requirements react-native@0.70` will make sure your packages are
compatible with `react-native` 0.70.
See [Requirements](#requirements) for more details.
### `--set-version`
Sets production and development `react-native` version requirements for any
configured package. The value should be a comma-separated list of `react-native`
versions to set. The first number specifies the development version. For
example, `--set-version 0.70,0.69` will set the following values:
```json
{
"rnx-kit": {
"alignDeps": {
"requirements": {
"development": ["react-native@0.70"],
"production": ["react-native@0.69 || 0.70"]
}
}
}
}
```
If the version numbers are omitted, an _interactive prompt_ will appear.
> [!NOTE]
>
> A `rnx-align-deps --write` run will be invoked right after changes have been
> made. As such, this flag will fail if changes are needed before making any
> modifications.
### `--verbose`
Specify to increase logging verbosity.
Default: `false`
### `--write`
Writes all proposed changes to the specified `package.json`.
Default: `false`
## Configure
While `@rnx-kit/align-deps` can ensure your dependencies are aligned without a
configuration, you can only get the more advanced features, such as dependencies
section re-ordering (`dependencies` vs `peerDependencies`) and transitive
dependency detection (A -> B -> C), by adding a configuration. Your
configuration must be in an `"rnx-kit"` section of your `package.json`, and have
the following shapes depending on the package type:
```ts
export type AppConfig = {
kitType: "app";
alignDeps: {
/**
* Presets to use for aligning dependencies.
* @default ["microsoft/react-native"]
*/
presets?: string[];
/**
* Requirements for this package, e.g.
* `react-native@>=0.70`.
*/
requirements: string[];
/**
* Capabilities used by the kit.
*/
capabilities: Capability[];
};
};
export type LibraryConfig = {
kitType: "library";
alignDeps: {
/**
* Presets to use for aligning dependencies.
* @default ["microsoft/react-native"]
*/
presets?: string[];
/**
* Requirements for this package, e.g.
* `react-native@>=0.70`. `development` is for
* package authors, and `production` is for
* consumers.
*/
requirements: { development: string[]; production: string[] };
/**
* Capabilities used by the kit.
*/
capabilities: Capability[];
};
};
```
For example, this is a config for a library that supports `react-native` 0.69
and 0.70, and uses 0.70 internally:
```js
{
"name": "useful-library",
"version": "1.0",
...
"rnx-kit": {
"kitType": "library",
"alignDeps": {
"requirements": {
"development": ["react-native@0.70"],
"production": ["react-native@0.69 || 0.70"]
}
"capabilities": [
"core-android",
"core-ios"
]
}
}
}
```
## Capabilities
The following table contains the currently supported capabilities and what they
resolve to:
<details>
<summary>Capabilities Table</summary>
<!-- The following table can be updated by running `yarn update-readme` -->
<!-- @rnx-kit/align-deps/capabilities start -->
| Capability | 0.84 | 0.83 | 0.82 | 0.81 | 0.80 | 0.79 | 0.78 | 0.77 | 0.76 | 0.75 | 0.74 | 0.73 | 0.72 | 0.71 | 0.70 | 0.69 | 0.68 | 0.67 | 0.66 | 0.65 | 0.64 | 0.63 | 0.62 | 0.61 |
| ------------------------------------ | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
| core | react-native@^0.84.0 | react-native@^0.83.0 | react-native@^0.82.0 | react-native@^0.81.6 | react-native@^0.80.0 | react-native@^0.79.0 | react-native@^0.78.0 | react-native@^0.77.0 | react-native@^0.76.0 | react-native@^0.75.0 | react-native@^0.74.0 | react-native@^0.73.0 | react-native@^0.72.0 | react-native@^0.71.0 | react-native@^0.70.0 | react-native@^0.69.0 | react-native@^0.68.0 | react-native@^0.67.0 | react-native@^0.66.0 | react-native@^0.65.0 | react-native@^0.64.2 | react-native@^0.63.2 | react-native@^0.62.3 | react-native@^0.61.5 |
| core-android | react-native@^0.84.0 | react-native@^0.83.0 | react-native@^0.82.0 | react-native@^0.81.6 | react-native@^0.80.0 | react-native@^0.79.0 | react-native@^0.78.0 | react-native@^0.77.0 | react-native@^0.76.0 | react-native@^0.75.0 | react-native@^0.74.0 | react-native@^0.73.0 | react-native@^0.72.0 | react-native@^0.71.0 | react-native@^0.70.0 | react-native@^0.69.0 | react-native@^0.68.0 | react-native@^0.67.0 | react-native@^0.66.0 | react-native@^0.65.0 | react-native@^0.64.2 | react-native@^0.63.2 | react-native@^0.62.3 | react-native@^0.61.5 |
| core-ios | react-native@^0.84.0 | react-native@^0.83.0 | react-native@^0.82.0 | react-native@^0.81.6 | react-native@^0.80.0 | react-native@^0.79.0 | react-native@^0.78.0 | react-native@^0.77.0 | react-native@^0.76.0 | react-native@^0.75.0 | react-native@^0.74.0 | react-native@^0.73.0 | react-native@^0.72.0 | react-native@^0.71.0 | react-native@^0.70.0 | react-native@^0.69.0 | react-native@^0.68.0 | react-native@^0.67.0 | react-native@^0.66.0 | react-native@^0.65.0 | react-native@^0.64.2 | react-native@^0.63.2 | react-native@^0.62.3 | react-native@^0.61.5 |
| core-macos | react-native-macos@^0.84.0 | react-native-macos@^0.83.0 | react-native-macos@^0.82.0 | react-native-macos@^0.81.0 | react-native-macos@^0.80.0 | react-native-macos@^0.79.0 | react-native-macos@^0.78.0 | react-native-macos@^0.77.0 | react-native-macos@^0.76.0 | react-native-macos@^0.75.0 | react-native-macos@^0.74.0 | react-native-macos@^0.73.0 | react-native-macos@^0.72.0 | react-native-macos@^0.71.0 | react-native-macos@^0.70.0 | react-native-macos@^0.69.0 | react-native-macos@^0.68.0 | react-native-macos@^0.67.0 | react-native-macos@^0.66.0 | react-native-macos@^0.65.0 | react-native-macos@^0.64.0 | react-native-macos@^0.63.0 | react-native-macos@^0.62.0 | react-native-macos@^0.61.0 |
| core-visionos | @callstack/react-native-visionos@^0.84.0 | @callstack/react-native-visionos@^0.83.0 | @callstack/react-native-visionos@^0.82.0 | @callstack/react-native-visionos@^0.81.0 | @callstack/react-native-visionos@^0.80.0 | @callstack/react-native-visionos@^0.79.0 | @callstack/react-native-visionos@^0.78.0 | @callstack/react-native-visionos@^0.77.0 | @callstack/react-native-visionos@^0.76.0 | @callstack/react-native-visionos@^0.75.0 | @callstack/react-native-visionos@^0.74.0 | @callstack/react-native-visionos@^0.73.0 | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` | Meta package for installing `react` |
| core-windows | react-native-windows@^0.84.0 | react-native-windows@^0.83.0 | react-native-windows@^0.82.0 | react-native-windows@^0.81.0 | react-native-windows@^0.80.0 | react-native-windows@^0.79.0 | react-native-windows@^0.78.0 | react-native-windows@^0.77.0 | react-native-windows@^0.76.0 | react-native-windows@^0.75.0 | react-native-windows@^0.74.0 | react-native-windows@^0.73.0 | react-native-windows@^0.72.0 | react-native-windows@^0.71.0 | react-native-windows@^0.70.0 | react-native-windows@^0.69.0 | react-native-windows@^0.68.0 | react-native-windows@^0.67.0 | react-native-windows@^0.66.0 | react-native-windows@^0.65.0 | react-native-windows@^0.64.0 | react-native-windows@^0.63.0 | react-native-windows@^0.62.0 | react-native-windows@^0.61.0 |
| animation | react-native-reanimated@^4.2.0 | react-native-reanimated@^4.2.0 | react-native-reanimated@^4.2.0 | react-native-reanimated@^3.19.0 | react-native-reanimated@^3.18.0 | react-native-reanimated@^3.17.5 | react-native-reanimated@^3.17.0 | react-native-reanimated@^3.16.7 | react-native-reanimated@^3.16.1 | react-native-reanimated@^3.15.0 | react-native-reanimated@^3.9.0 | react-native-reanimated@^3.6.0 | react-native-reanimated@^3.3.0 | react-native-reanimated@^2.14.1 | react-native-reanimated@^2.10.0 | react-native-reanimated@^2.9.0 | react-native-reanimated@^2.5.0 | react-native-reanimated@^2.2.4 | react-native-reanimated@^2.2.3 | react-native-reanimated@^2.2.1 | react-native-reanimated@^2.1.0 | react-native-reanimated@^1.13.3 | react-native-reanimated@^1.13.3 | react-native-reanimated@^1.13.3 |
| babel-preset-react-native | @react-native/babel-preset@^0.84.0 | @react-native/babel-preset@^0.83.0 | @react-native/babel-preset@^0.82.0 | @react-native/babel-preset@^0.81.0 | @react-native/babel-preset@^0.80.0 | @react-native/babel-preset@^0.79.0 | @react-native/babel-preset@^0.78.0 | @react-native/babel-preset@^0.77.0 | @react-native/babel-preset@^0.76.0 | @react-native/babel-preset@^0.75.0 | @react-native/babel-preset@^0.74.0 | @react-native/babel-preset@^0.73.0 | metro-react-native-babel-preset@^0.76.5 | metro-react-native-babel-preset@^0.73.7 | metro-react-native-babel-preset@^0.72.1 | metro-react-native-babel-preset@^0.70.3 | metro-react-native-babel-preset@^0.67.0 | metro-react-native-babel-preset@^0.66.2 | metro-react-native-babel-preset@^0.66.2 | metro-react-native-babel-preset@^0.66.0 | metro-react-native-babel-preset@^0.64.0 | metro-react-native-babel-preset@^0.59.0 | metro-react-native-babel-preset@^0.58.0 | metro-react-native-babel-preset@^0.56.0 |
| base64 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 | react-native-base64@^0.2.1 |
| checkbox | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.20 | @react-native-community/checkbox@^0.5.15 | @react-native-community/checkbox@^0.5.15 | @react-native-community/checkbox@^0.5.15 | @react-native-community/checkbox@^0.5.15 | @react-native-community/checkbox@^0.5.15 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.8 | @react-native-community/checkbox@^0.5.7 | @react-native-community/checkbox@^0.5.7 | @react-native-community/checkbox@^0.5.7 |
| clipboard | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.16.0 | @react-native-clipboard/clipboard@^1.14.0 | @react-native-clipboard/clipboard@^1.14.0 | @react-native-clipboard/clipboard@^1.14.0 | @react-native-clipboard/clipboard@^1.14.0 | @react-native-clipboard/clipboard@^1.10.0 | @react-native-clipboard/clipboard@^1.10.0 | @react-native-clipboard/clipboard@^1.10.0 | @react-native-clipboard/clipboard@^1.10.0 | @react-native-clipboard/clipboard@^1.10.0 | @react-native-clipboard/clipboard@^1.9.0 | @react-native-clipboard/clipboard@^1.9.0 | @react-native-clipboard/clipboard@^1.9.0 | @react-native-clipboard/clipboard@^1.8.3 | @react-native-community/clipboard@^1.5.1 | @react-native-community/clipboard@^1.5.1 | @react-native-community/clipboard@^1.5.1 |
| community/cli | @react-native-community/cli@^20.1.0 | @react-native-community/cli@^20.0.0 | @react-native-community/cli@^20.0.0 | @react-native-community/cli@^20.0.0 | @react-native-community/cli@^19.0.0 | @react-native-community/cli@^18.0.0 | @react-native-community/cli@^15.0.1 | @react-native-community/cli@^15.0.1 | @react-native-community/cli@^15.0.1 | @react-native-community/cli@^14.0.0 | @react-native-community/cli@^13.6.4 | @react-native-community/cli@^12.1.1 | @react-native-community/cli@^11.3.2 | @react-native-community/cli@^10.0.0 | @react-native-community/cli@^9.0.0 | @react-native-community/cli@^8.0.4 | @react-native-community/cli@^7.0.3 | @react-native-community/cli@^6.0.0 | @react-native-community/cli@^6.0.0 | @react-native-community/cli@^6.0.0 | @react-native-community/cli@^5.0.1 | @react-native-community/cli@^4.10.0 | @react-native-community/cli@^4.5.1 | @react-native-community/cli@^3.0.0 |
| community/cli-android | @react-native-community/cli-platform-android@^20.1.0 | @react-native-community/cli-platform-android@^20.0.0 | @react-native-community/cli-platform-android@^20.0.0 | @react-native-community/cli-platform-android@^20.0.0 | @react-native-community/cli-platform-android@^19.0.0 | @react-native-community/cli-platform-android@^18.0.0 | @react-native-community/cli-platform-android@^15.0.1 | @react-native-community/cli-platform-android@^15.0.1 | @react-native-community/cli-platform-android@^15.0.1 | @react-native-community/cli-platform-android@^14.0.0 | @react-native-community/cli-platform-android@^13.6.4 | @react-native-community/cli-platform-android@^12.1.1 | @react-native-community/cli-platform-android@^11.3.2 | @react-native-community/cli-platform-android@^10.0.0 | @react-native-community/cli-platform-android@^9.0.0 | @react-native-community/cli-platform-android@^8.0.4 | @react-native-community/cli-platform-android@^7.0.1 | @react-native-community/cli-platform-android@^6.0.0 | @react-native-community/cli-platform-android@^6.0.0 | @react-native-community/cli-platform-android@^6.0.0 | @react-native-community/cli-platform-android@^5.0.1 | @react-native-community/cli-platform-android@^4.10.0 | @react-native-community/cli-platform-android@^4.5.1 | @react-native-community/cli-platform-android@^3.0.0 |
| community/cli-ios | @react-native-community/cli-platform-ios@^20.1.0 | @react-native-community/cli-platform-ios@^20.0.0 | @react-native-community/cli-platform-ios@^20.0.0 | @react-native-community/cli-platform-ios@^20.0.0 | @react-native-community/cli-platform-ios@^19.0.0 | @react-native-community/cli-platform-ios@^18.0.0 | @react-native-community/cli-platform-ios@^15.0.1 | @react-native-community/cli-platform-ios@^15.0.1 | @react-native-community/cli-platform-ios@^15.0.1 | @react-native-community/cli-platform-ios@^14.0.0 | @react-native-community/cli-platform-ios@^13.6.4 | @react-native-community/cli-platform-ios@^12.1.1 | @react-native-community/cli-platform-ios@^11.3.2 | @react-native-community/cli-platform-ios@^10.0.0 | @react-native-community/cli-platform-ios@^9.0.0 | @react-native-community/cli-platform-ios@^8.0.4 | @react-native-community/cli-platform-ios@^7.0.1 | @react-native-community/cli-platform-ios@^6.0.0 | @react-native-community/cli-platform-ios@^6.0.0 | @react-native-community/cli-platform-ios@^6.0.0 | @react-native-community/cli-platform-ios@^5.0.1 | @react-native-community/cli-platform-ios@^4.10.0 | @react-native-community/cli-platform-ios@^4.5.0 | @react-native-community/cli-platform-ios@^3.0.0 |
| core/metro-config | @react-native/metro-config@^0.84.0 | @react-native/metro-config@^0.83.0 | @react-native/metro-config@^0.82.0 | @react-native/metro-config@^0.81.0 | @react-native/metro-config@^0.80.0 | @react-native/metro-config@^0.79.0 | @react-native/metro-config@^0.78.0 | @react-native/metro-config@^0.77.0 | @react-native/metro-config@^0.76.0 | @react-native/metro-config@^0.75.0 | @react-native/metro-config@^0.74.0 | @react-native/metro-config@^0.73.0 | @react-native/metro-config@^0.72.0 | - | - | - | - | - | - | - | - | - | - | - |
| core/testing | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` | Meta package for installing `core`, `jest`, `react-test-renderer` |
| datetime-picker | @react-native-community/datetimepicker@^8.4.4 | @react-native-community/datetimepicker@^8.4.4 | @react-native-community/datetimepicker@^8.4.4 | @react-native-community/datetimepicker@^8.4.4 | @react-native-community/datetimepicker@^8.4.4 | @react-native-community/datetimepicker@^8.4.4 | @react-native-community/datetimepicker@^8.0.0 | @react-native-community/datetimepicker@^8.0.0 | @react-native-community/datetimepicker@^8.0.0 | @react-native-community/datetimepicker@^8.0.0 | @react-native-community/datetimepicker@^8.0.0 | @react-native-community/datetimepicker@^8.0.0 | @react-native-community/datetimepicker@^7.6.2 | @react-native-community/datetimepicker@^6.4.2 | @react-native-community/datetimepicker@^6.3.3 | @react-native-community/datetimepicker@^6.0.2 | @react-native-community/datetimepicker@^6.0.2 | @react-native-community/datetimepicker@^3.5.2 | @react-native-community/datetimepicker@^3.5.2 | @react-native-community/datetimepicker@^3.5.2 | @react-native-community/datetimepicker@^3.4.6 | @react-native-community/datetimepicker@^3.0.9 | @react-native-community/datetimepicker@^3.0.9 | @react-native-community/datetimepicker@^3.0.9 |
| filesystem | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.18.0 | react-native-fs@^2.17.0 | react-native-fs@^2.16.6 | react-native-fs@^2.16.6 | react-native-fs@^2.16.6 |
| floating-action | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.22.0 | react-native-floating-action@^1.21.0 | react-native-floating-action@^1.21.0 | react-native-floating-action@^1.18.0 | react-native-floating-action@^1.18.0 |
| gestures | react-native-gesture-handler@^2.29.1 | react-native-gesture-handler@^2.29.1 | react-native-gesture-handler@^2.29.1 | react-native-gesture-handler@^2.28.0 | react-native-gesture-handler@^2.26.0 | react-native-gesture-handler@^2.26.0 | react-native-gesture-handler@^2.24.0 | react-native-gesture-handler@^2.22.0 | react-native-gesture-handler@^2.20.0 | react-native-gesture-handler@^2.18.1 | react-native-gesture-handler@^2.18.1 | react-native-gesture-handler@^2.14.0 | react-native-gesture-handler@^2.12.0 | react-native-gesture-handler@^2.9.0 | react-native-gesture-handler@^2.6.0 | react-native-gesture-handler@^2.5.0 | react-native-gesture-handler@^2.3.2 | react-native-gesture-handler@^1.10.3 | react-native-gesture-handler@^1.10.3 | react-native-gesture-handler@^1.10.3 | react-native-gesture-handler@^1.10.3 | react-native-gesture-handler@^1.10.3 | react-native-gesture-handler@^1.9.0 | react-native-gesture-handler@^1.9.0 |
| hermes | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | hermes-engine@~0.11.0 | hermes-engine@~0.11.0 | hermes-engine@~0.9.0 | hermes-engine@~0.9.0 | hermes-engine@~0.8.1 | hermes-engine@~0.7.0 | hermes-engine@~0.5.0 | hermes-engine@~0.4.0 | hermes-engine@^0.2.1 |
| hooks | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^100.1.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.8.0 | @react-native-community/hooks@^2.6.0 | @react-native-community/hooks@^2.6.0 | @react-native-community/hooks@^2.6.0 | @react-native-community/hooks@^2.6.0 |
| html | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0 | react-native-render-html@^6.1.0