open-index/open-npm huggingface dataset:
npm package: @rndm/babel-node-modules
Description: RNDM Implementation of 'babel-node-modules' for use with Babel 7
Author: RNDM
Latest version: 0.1.0

# RNDM Babel Node Modules

## Introduction

RNDM Babel Node Modules is an alternative to the excellent [https://www.npmjs.com/package/babel-node-modules](babel-node-modules) package. The reason behind this package is to reduce dependency on an outdated package that does not currently support the new Babel 7 framework.

This package has removed the 'babel-register' require in favour of the '@babel/register', as well as modernising and updating the ignore options to match the Babel 7 specifications.

## Installation

Make sure you have [Node.js](http://nodejs.org/) installed.

Then, to get started simply run the following command from your preferred terminal interface:

```sh
npm install -g @rndm/babel-node-modules
```

## Usage

The package is very simple to use. By default it will ignore all node_modules packages, with the exceptions of the packages you want to register on the whitelist.

### Example

```javascript
require('@rndm/babel-node-modules')(['packge-1','package-2'])
```
npm package: @rndm/client
Description: RNDM Client: A CLI util for RNDM Render
Author: RNDM
Latest version: 0.1.5

# RNDM Client

## About

Assistant Util for [RNDM Render](https://github.com/rndm-com/rndm-render). This client packages [RNDM Render](https://github.com/rndm-com/rndm-render) along side the [Core Preset](https://github.com/rndm-com/rndm-render-preset-core).

### Why RNDM?

The core concept is to be able to pass in static JSON or JavaScript objects, which will be rendered out as JavaScript and presented as Platform Native views.

This type of flexibility allows for less code and more statically defined pages, methods and more. In an asingle change of an API you can deliver entirely new user paths and even entire applications all through a server driven JSON structure. This becomes especially prevalent when considering applications built on Native Platforms using React Native as this can mean a completely API driven deployment.

## Installation

### From NPM

```sh
npm install --save-dev @rndm/client
```

For further details and documentation on using RNDM Render, checokout these [documents](https://github.com/rndm-com/rndm-render).
npm package: @rndm/meta
Description: RNDM Higher Order Component for auto generating metadata html
Author: RNDM
Latest version: 0.1.0

# RNDM Meta

## Introduction

RNDM Meta is a simple Higher Order Component (HOC) used to derive and update meta tags on demand. It has beenc reated so that it can easily be used as a cross platform solution for all the supported platforms in the [React XP](https://www.rndm.com/docs/react-cross-platform) template, but can also be integrated with any other standard React project.

## Installation

Make sure you have [Node.js](http://nodejs.org/) installed.

Then, to get started simply run the following command from your preferred terminal interface:

```sh
npm install --save @rndm/meta
```

## Usage

The component is very easy to use and can wrap any other component. When wrapped, and mounted it will update the meta tags for Web React pages.

### Example

```javascript
import React from 'react';
import { View, Text } from 'react-native';
import WithMeta from '@rndm/meta';

const Page = () => (
  <WithMeta meta={{
    title: 'RNDM',
    author: 'RNDM, info@rndm.com',
    url: 'https://www.rndm.com',
    copyright: 'RNDM',
    description: 'Pioneers in open-source, cross-platform, low-code solutions',
  }}>
    <View style={{ height: '100%', backgroundColor: 'red' }}>
      <Text>Hello Meta!</Text>
    </View>
  </WithMeta>
);

export default Page;

```
npm package: @rndm/render-plugin-animatable
Description: RNDM Render Plugin: Animatable. Animation Components and functionality for RNDM Render
Author: RNDM
Latest version: 0.1.2

# [RNDM](https://www.rndm.com) Render Plugin: Animatable

## About

This plugin provides access to animatable components for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://www.rndm.com/docs/rndm-render) and [RNDM Preset: Core](https://www.rndm.com/docs/rndm-render/preset/core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-animatable
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-animatable';
```

## Usage

The Animatable Plugin transforms the Components from the awesome [react-native-animatable](https://github.com/oblador/react-native-animatable) package into serialisable RNDM JSON responses.

Full documentation around the usage of these can be found on the react-native-animatable GitHub page.

### Components

The three components supported by this plugin are:

* View

```json
{
  "type": "animatable.View",
  "props": {
    "animation": "bounce",
    "iterationCount": 10,
    "style": {
      "width": 50,
      "height": 50,
      "backgroundColor": "red"
    }
  }
}
```

* Image

```json
{
  "type": "animatable.Image",
  "props": {
    "animation": "pulse",
    "iterationCount": "infinite",
    "source": {
      "uri": "https://firebasestorage.googleapis.com/v0/b/rndm-com.appspot.com/o/rndm_200.png?alt=media&token=ca705331-6963-4287-9687-bc526feb0226"
    },
    "style": {
      "width": 200,
      "height": 200
    }
  }
}

```

* Text

```json
{
  "type": "animatable.Text",
  "props": {
    "animation": "fadeInUpBig",
    "style": {
      "color": "cyan"
    }
  }
}

```

### Middleware

Although there is a host of predefined animations available, you are still able to create your own animation. This can be done by making use of the 'initializeRegistry' middleware.

**Example**

```json
{
  "type": "animatable.View",
  "props": {
    "animation": "myanim",
    "iterationCount": "infinite",
    "middleware": [{
      "middleware": "animatable.initializeRegistryWithDefinitions",
      "args": [{
        "myanim": {
          "0": {
            "opacity": 1,
            "scale": 1
          },
          "1": {
            "opacity": 0,
            "scale": 0
          },
          "0.5": {
            "opacity": 1,
            "scale": 0.3
          }
        }
      }]
    }],
    "style": {
      "height": 50,
      "width": 50,
      "backgroundColor": "green"
    }
  }
}

```

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-plugin-compare-versions
Description: RNDM Render Plugin: Compare Versions. Version comparison functionality for RNDM Render
Author: RNDM
Latest version: 0.1.1

# [RNDM](https://www.rndm.com) Render Plugin: Compare Versions

## About

This plugin provides version comparison functionality for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

It is a RNDM Wrapper around the commonly used library [Compare Versions](https://github.com/omichelsen/compare-versions#readme).

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://www.rndm.com/docs/rndm-render) and [RNDM Plugin: Core](https://github.com/rndm-com/rndm-render-plugin-core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-compare-versions
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-compare-versions';
```

## Usage

The Compare Version Plugin transforms the compare-versions package into a serialisable function.

### Compare

The usage of Compare versions is very simple. It takes two version strings and provides feedback to the user as to the ordering of those versions. i.e.

v1 = "1.2.3"
v2 = "3.2.1"
Result = -1

**Example** 

```json
{
    "type": "react-native.TouchableOpacity",
    "props": {
        "onPress": {
            "isFunc": true,
            "type": "compare-versions.compare",
            "args": ["1.2.3", "3.2.1"]
        },
        "children": {
            "type": "react-native.Text",
            "props": {
                "children": "Touch Me"
            }
        }
    }
}
```
For a more complete example checkout the included json in the example folders, which makes use of the [Redux](https://github.com/rndm-render-plugin-redux) plugin.

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-plugin-google-analytics
Description: RNDM Render Plugin: Google Analytics. Google Analytics functionality for RNDM Render
Author: RNDM
Latest version: 0.1.1

# [RNDM](https://www.rndm.com) Render Plugin: Google Analytics

## About

This plugin provides google analytics functionality for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://www.rndm.com/docs/rndm-render) and [RNDM Plugin: Core](https://www.rndm.com/docs/rndm-render/plugin/core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-google-analytics
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-google-analytics';
```

## Usage

The Google Analytics plugin has been created as a simple middleware wrapper for any component. This means that in the very first instance of a base view, you can add your tracker initialisation or any other processes.

It uses the following methods from the [React GA](https://github.com/react-ga/react-ga) Node JS Package:

- initialize
- set
- pageview
- modalview
- timing
- ga
- event
- exception
- outboundLink
- plugin.require
- plugin.execute

Please read the [React GA Readme](https://github.com/react-ga/react-ga/blob/master/README.md) for all the parameters that can be passed as arguments.

**Example**

The below example initialises a tracker as well as sending a pageview:

```json
{
  "type": "react-native.View",
  "props": {
    "middleware": [{
      "middleware": "google-analytics.initialize",
      "args": ["YOUR_TRACKER_HERE", {
        "gaOptions": {
          "name": "example"
        }
      }]
    }, {
      "middleware": "google-analytics.pageview",
      "args": ["/test", ["example"]]
    }],
    "children": {
      "type": "react-native.Text",
      "props": {
        "children": "Testing"
      }
    }
  }
}
```

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-plugin-lodash
Description: RNDM Render Plugin: Lodash. Lodash functionality for RNDM Render
Author: RNDM
Latest version: 4.17.21

# [RNDM](https://www.rndm.com) Render Plugin: Lodash

## About

This plugin provides the core functionality for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

_**Please Note**: This plugin is also contained within the [Core Preset](https://www.rndm.com/docs/rndm-render/preset/core) package, which also includes other functionality such as React Native components and lodash methods. If you are looking to get started, we highly recommend the [RNDM Client](https://github.com/rndm-com/rndm-client) which includes the standard [RNDM Render](https://www.rndm.com/docs/rndm-render) and the core plugin._

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://www.rndm.com/docs/rndm-render) and [RNDM Preset: Core](https://www.rndm.com/docs/rndm-render/preset/core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-lodash
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-lodash';
```

## Usage

The Lodash Plugin transforms the lodash methods into serialisable functions.

**Example**

```javascript
{
    type: '_.get',
    isFunc: true,
    args: [
        'a.b.c',
        {
            a: {
                b: {
                    c: 'test',
                },
            },
        },
    ],
};

// This will log out 'test'

```

For the full suite of available lodash methods, [please checkout their awesome and powerful utility library](https://lodash.com/docs).

_(Note: This library is versioned alongside its corresponding lodash version.)_

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-plugin-meta
Description: RNDM Render Plugin: Meta. Meta data html editor for RNDM Render
Author: RNDM
Latest version: 0.1.0

# RNDM Render Plugin: Meta

## About

This plugin provides meta data updating for the [RNDM Render package](https://github.com/rndm-com/rndm-render).

This wraps the [RNDM Meta](https://www.rndm.com/docs/utils/meta) package to allow a serialisable component that will update your pages meta tags.

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://github.com/rndm-com/rndm-render) and [RNDM Plugin: Core](https://github.com/rndm-com/rndm-render-plugin-core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-meta
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-render';
import '@rndm/render-plugin-meta';
```

## Usage

The Meta Plugin transforms the Meta component serialisable JSON or JavaScript Objects.

**Example**

```javascript
{
    type: 'meta.Meta',
    props: {
        meta: {
            title: 'RNDM',
        },
        children: {
            type: 'react-native.Text',
            props: {
                children: 'I have meta!'
            }
        }
    }
};
npm package: @rndm/render-plugin-ramda
Description: RNDM Render Plugin: Ramda. Ramda functionality for RNDM Render
Author: RNDM
Latest version: 0.27.1

# RNDM Render Plugin: Lodash

## About

This plugin provides the core functionality for the [RNDM Render package](https://github.com/rndm-com/rndm-render).

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://github.com/rndm-com/rndm-render) and [RNDM Plugin: Core](https://github.com/rndm-com/rndm-render-plugin-core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-ramda
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-ramda';
```

## Usage

The Ramda Plugin transforms the ramda methods into serialisable functions.

**Example**

```javascript
{
    type: 'R.add',
    isFunc: true,
    args: [
        123,
        456,
    ],
};

// This will give the result 579

```

For the full suite of available ramda methods, [please checkout their awesome and powerful utility library](https://ramdajs.com/docs/).

_(Note: This library is versioned alongside its corresponding ramda version.)_
npm package: @rndm/render-plugin-react-native
Description: RNDM Render Plugin: React Native. React Native and React Native Web functionality for RNDM Render
Author: RNDM
Latest version: 0.64.3

# [RNDM](https://www.rndm.com) Render Plugin: React Native

## About

This plugin provides the core functionality for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

_**Please Note**: This plugin is also contained within the [Core Preset](https://www.rndm.com/docs/rndm-render/preset/core) package, which also includes other functionality such as React Native components and lodash methods. If you are looking to get started, we highly recommend the [RNDM Client](https://github.com/rndm-com/rndm-client) which includes the standard [RNDM Render](https://www.rndm.com/docs/rndm-render) and the core plugin._

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://www.rndm.com/docs/rndm-render) and [RNDM Plugin: Core](https://www.rndm.com/docs/rndm-render/plugin/core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-react-native
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-react-native';
```

## Usage

The React Native Plugin transforms the React Native components into serialisable objects.

**Example**

```javascript
const component = {
    type: 'react-native.View',
    props: {
        style: {
            width: 100,
            height: 100,
            backgroundColor: 'red',
            justifyContent: 'center',
            alignItems: 'center',
        },
        children: {
            type: 'react-native.Text',
            props: {
                style: {
                    color: 'white',
                },
                children: "Hello World",
            },
        },
    },
};

const Element = () => render(component)

```

For the full suite of available React Native methods, [please checkout their awesome and powerful library](https://facebook.github.io/react-native/).

_(Note: This library is versioned alongside its corresponding Native Version version.)_

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-plugin-uuid
Description: RNDM Render Plugin: UUID. UUID generation functionality for RNDM Render
Author: RNDM
Latest version: 0.1.1

# [RNDM](https://www.rndm.com) Render Plugin: UUID

## About

This plugin provides the Unique User Identifier generation for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

This plugin provides RNDM method wrapping for easy serialisation of UUID generation using the awesome [UUID](https://github.com/kelektiv/node-uuid) library

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://github.com/rndm-com/rndm-render) and [RNDM Plugin: Core](https://www.rndm.com/docs/rndm-render/plugin/core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-uuid
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-uuid';
```

## Usage

The UUID Plugin transforms the V1, V3, V4 and V5 UUID generators into serialisable functions.

### Methods

The 4 version of UUID that are supported are:

v1 - timestamp based
v3 - namespace based
v4 - random generation
v5 - namespace based

**Example**

```json
{
    "type": "react-native.TouchableOpacity",
    "props": {
        "onPress": {
            "isFunc": true,
            "type": "uuid.v1",
            "args": []
        },
        "children": {
            "type": "react-native.Text",
            "props": {
                "children": "Touch Me"
            }
        }
    }
}
```

For a more complete example checkout the included json in the example folders, which makes use of the [Redux](https://github.com/rndm-render-plugin-redux) plugin.

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-plugin-validator
Description: RNDM Render Plugin: Validator. Validation functionality for RNDM Render
Author: RNDM
Latest version: 0.1.1

# [RNDM](https://www.rndm.com) Render Plugin: Validator

## About

This plugin provides the validation functionality for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

## Installation

If you have not already done so, then please ensure you have installed the [RNDM Render](https://www.rndm.com/docs/rndm-render) and [RNDM Plugin: Core](https://www.rndm.com/docs/rndm-render/plugin/core) package.

### From NPM

```sh
npm install --save @rndm/render-plugin-validator
```

### Post Installation

In order to allow this plugin to work, it must first be included in your project. You can do this inside your main index file:

```javascript
import '@rndm/render-plugin-core';
import '@rndm/render-plugin-validator';
```

## Usage

The Validator Plugin transforms a suite of methods used for validation and sanitisation into into serialisable functions.

**Example**

```json
{
    "type": "react-native.TouchableOpacity",
    "props": {
        "onPress": {
            "isFunc": true,
            "type": "validator.isEmail",
            "args": ["info@rndm.com"]
        },
        "children": {
            "type": "react-native.Text",
            "props": {
                "children": "Touch Me"
            }
        }
    }
}
```

There are a suite of [examples](www.rndm.com/playground?q=validator) included in the RNDM Playground tool.

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/render-preset-core
Description: RNDM Render Preset: Core. Core functionality for RNDM Render
Author: RNDM
Latest version: 0.1.3

# [RNDM](https://www.rndm.com) Render Preset: Core

## About

This preset includes the following plugins for the [RNDM Render package](https://www.rndm.com/docs/rndm-render).

- [Core](https://www.rndm.com/docs/rndm-render/plugin/core)
- [Lodash](https://www.rndm.com/docs/rndm-render/plugin/lodash)
- [React Native](https://www.rndm.com/docs/rndm-render/plugin/react-native)

## Installation

In order for this to be used, you will first need to ensure you have installed [RNDM Render](https://www.rndm.com/docs/rndm-render):

```sh
npm install --save @rndm/render
```

### From NPM

```sh
npm install --save @rndm/render-preset-core
```

## Usage

For full documentation checkout the docs on the plugins and [RNDM Render](https://www.rndm.com/docs/rndm-render).

Check out the [Playground](https://www.rndm.com/playground) page to see how these features work.
npm package: @rndm/transformer-plugin-react-native
Description: RNDM Transformer Plugin: React Native. Transform React Native into RNDM JSON
Author: RNDM
Latest version: 0.1.0

# RNDM Transformer: React - React Native Plugin

## About

This plugin opens the ability to write Server side React Native code that can be transformed into JSOn to be ingested by the [RNDM Renderer](https://github.com/rndm-com/rndm-render).

## Requirements

In order to make use of this you will need to be using the [@rndm/transform-from-react](https://github.com/rndm-com/rndm-transform-from-react) package.

## Installation

### From NPM

```sh
npm install --save @rndm/transformer-plugin-react-native
```

If you are using this as a submodule, then pass this into the 'addPlugins' method exposed by the

## Usage

This transformer can be wrapped around React Native components to derive properties, types and other aspects and generate JSON results

**Example**

Given the below React code:

```javascript
import React from 'react';
import { View, Text } from 'react-native';

const Element = () => (
  <View style={{ flex: 1, backgroundColor: 'red' }} >
    <Text style={{ color: 'green' }} >
      Hello World
    </Text>
  </View>
)

export default Element;
```

The requirements are to generate a JSON object that describes the Element function that can be ingested by the [RNDM Renderer](https://github.com/rndm-com/rndm-render);

In order to do this, all we have to do is wrap the Element in the transformer function.

```javascript
import transform from '@rndm/transform-from-react';
import Element from './Element';

const output = transform(Element);

console.log(outut);
```

This will then give us the following JSON Object.

```json
{
    "type": "react-native.View",
    "props": {
        "style": {
            "flex": 1,
            "backgroundColor": "red"
        },
        "children": [
            {
                "type": "react-native.Text",
                "props": {
                    "style": {
                        "color": "green"
                    },
                    "children": "Hello World"
                }
            }
        ]
    }
}
```

The RNDM Renderer can then ingest and render this as React Native code
npm package: @rndm/utils
Description: A selection of utility methods used across the suite of RNDM Packages.
Author: RNDM
Latest version: 0.1.1

# RNDM Utils

A selection of utility methods used across the suite of RNDM Packages.

## Installation

Make sure you have [Node.js](http://nodejs.org/) installed.

```sh
npm install --save rndm-utils
```

## Documentation
### buildFilesForFolder
Recursive function for building a tree of folders and files

```javascript
type File = {
  filename: String, // Filename denoting the file that will be created within the folder context
  string: String, // stringified contet to be written to the
  folders?: Object<String, Array<File>> // Optional object using the key as the path for the next folder
};

const input: File = ...; // Initial files and folder structure to begin building the tree
const path: String = ...; // Initial folder in which to start building the tree
buildFilesForFolder(input, path)
```

### decircular
JSON Stringifier used for removing circular references.

```javascript

const input: Object | Array | String | Number = ...; // Item to convert to JSON String
const spacer: Number(Integer) = 2; // Indentation pretifier
decircular(input, spacer)
```

### mkDir
Recursive function for creating a folder tree.

```javascript

const path: String = 'path/to/make'; // Folder tree to create
const base: String = 'path/to/base/folder'; // Folder in which to create new tree
mkDir(path, base)
```

### readDir
Recursive function for reading all files within a folder tree

```javascript

const base: String = 'path/to/base/folder'; // Folder that requires all files
readDir(base)
```