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

jscrambler-metro-plugin

v9.1.3

Published

A plugin to use metro with Jscrambler Code Integrity

Downloads

2,951

Readme

Jscrambler

Jscrambler Code Integrity for React-Native and Vega OS

Jscrambler Code Integrity is a JavaScript protection technology for Web and Mobile Applications. Its main purpose is to enable JavaScript applications to become self-defensive and resilient to tampering and reverse engineering.

If you're looking to gain control over third-party tags and achieve PCI DSS compliance please refer to Jscrambler Webpage Integrity.

Version Compatibility

The version's compatibility table match your Jscrambler Version with the Jscrambler Metro Plugin. Please make sure you install the right version, otherwise some functionalities might not work properly.

| Jscrambler Version | Client and Integrations | |:--------------------:|:-------------------------:| | <= 7.1 | <= 5.x.x | | >= 7.2 | >= 6.0.0 <=8.5.0 | | >= 8.6 | >= 9.0.0 |

Usage

This plugin uses Jscrambler to protect your React Native bundles built with Expo or the Community CLI, as well as your Vega OS bundles.

First install the jscrambler-metro-plugin as a development dependency

npm install -D jscrambler-metro.plugin

Then, set up the plugin in your metro.config.js by adding the following code:

// For React-Native Community CLI or Vega OS, import getDefaultConfig and mergeConfig from @react-native/metro-config  
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');

// For Expo, import getDefaultConfig from expo/metro-config and mergeConfig from @react-native/metro-config
const { getDefaultConfig } = require("expo/metro-config");
const { mergeConfig } = require('@react-native/metro-config');

// Import Jscrambler Metro Plugin
const jscramblerMetroPlugin = require('jscrambler-metro-plugin')();

/**
 * Metro configuration
 * https://reactnative.dev/docs/metro
 *
 * @type {import('@react-native/metro-config').MetroConfig}
 */
const config = {
  ...jscramblerMetroPlugin
};

module.exports = mergeConfig(getDefaultConfig(__dirname), config);

Finally, create a .jscramblerrc file with your Jscrambler configuration downloaded from Code Integrity Application Dashboard.

By default, Jscrambler protection is ignored when bundle mode is set for Development. You can override this behavior by setting env variable JSCRAMBLER_METRO_DEV=true

In order to activate source map generation effectively, you will need to enable source maps both in the Jscrambler configuration file, by adding the following parameter to said file:

{
  ...
 "sourceMaps": true,
  ...
}

and in the React Native app.

Plugin Options

| Option | Type | Default | Description | | --- | --- | --- | --- | | enable | boolean | true | Enables Jscrambler protection. Set to false to skip protection. | | enabledHermes | boolean | true | Enables Hermes-specific compatibility handling. Set to false when the app does not use Hermes. | | ignoreFile | string | .jscramblerignore in the project root | Path to the ignore file used to exclude files from protection. | | params | Array<object> | Value from .jscramblerrc | Overrides the params transformation list from .jscramblerrc, useful for testing. |

const jscramblerMetroPlugin = require('jscrambler-metro-plugin')(
    /* OPTIONAL */
    {
        enable: true, 
        enabledHermes: true,
        ignoreFile: resolve(__dirname, '.jscramblerignore'),
        // overrides the params on `.jscramblerrc` file. Usefull for testing purposes.
        params: [  
            {
              name: "stringConcealing",
              options: {
                freq: 1,
                max: -1
              }
            }
        ]
    }
);