npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-native-versions

v1.0.1

Published

Update and manage your React Native javascript bundle versions

Readme

Manage javascript bundle versions over the wire from your React Native app.

Installation

  1. Run npm install react-native-versions inside your project.

  2. Open your project in XCode, right click on Libraries and click Add Files to "Your Project Name".

  3. Select the ReactNativeVersionIOS.xcodeproj file in the node_modules/react-native-versions/ReactNativeVersionIOS folder and click Add

  4. In the Xcode Project Navigator find the ReactNativeVersionIOS.xcodproj and add the Products/libReactNativeVersionsIOS.a to Build Phases -> Link Binary With Libraries.

  5. Add the ReactNativeVersionsIOS folder to your project target's "Header Search Paths"

add_to_project

The Example App

To get an idea how this works, check the ExampleApp. You should be able to open it and see it pull an update from the Reploy Versions API.

Setup your AppDelegate

We've left it up to you to load the new javascript version from the native side. Check ExampleApp/AppDelegate.m for an example. Here, the bundle is loaded into a new RCTRootView, which in turn gets loaded into a new rootViewController with a flip transition animation.

Setup your top level component to handle version updates

We decided to put most of the version update logic in javascript, for flexibility on the UI side, and easier compatibility with Android. See ExampleApp/index.ios.js for default usage and VersionManager.ios.js to see the logic. The API should be pretty clear there.

Setup API credentials

You'll need API credentials to use the free API at reploy.io. Or, implement your own based on the examples below.

To use the hosted Reploy API, install the command line client.

npm install -g reploy-cli

Then, signup for an account. Your personal API token will get installed in ~/.reploy.

reploy setup

Finally, from within your React Native project, register your app. This will drop the app's own credentials in .reploy. These are the values you pass to VersionManager.

reploy create-app

Release a javascript version

Now the fun part! By default, reploy will run react-native bundle, then try to upload the resulting file in iOS/main.jsbundle.

reploy push

If you want to generate your own bundle, you can skip the bundle step.

reploy push -s

``

When your app starts up in *release mode*, it should prompt for an update!

# The Reploy Versions API

Create app
```POST /api/v1//apps```

List apps
```GET /api/v1/apps```

Get info about the latest version
```GET /api/v1/apps/:appId/js_versions/latest```

Download JS bundle contents
```GET /api/v1/apps/:appId/js_versions/:versionNumber```

Create JS bundle version
```POST /api/v1/apps/:appId/js_versions```

## Authentication

Authenticate to the API using X-Secret and X-SecretId HTTP headers.