open-index/open-npm huggingface dataset:
npm package: @robo-finance/cordova-ignore-ssl-error-plugin
Description: This plugin allows to fix Google plays attention with onReceivedSslError
Latest version: 1.0.0

#### Description

This plugin allows fixing Google plays attention with onReceivedSslError on production releases.

#### How to install
```
cordova plugin add "@robo-finance/cordova-ignore-ssl-error-plugin"
```
npm package: @robo-finance/cordova-push-delivery
Description: This plugin allows your application to receive push notifications on Android, iOS and Windows devices.    Android uses Firebase Cloud Messaging.    iOS uses Apple APNS Notifications.    Windows uses Microsoft WNS Notifications.  
Latest version: 2.6.1

#### Description

A plugin that overrides the ```onMessageReceived()``` method of the `phonegap-plugin-push` package.
It introduces a possibility to detect if notifications are enabled and push is received in foreground / background and sends a fallback **POST** request.

**Only Android support right now.**
#### How to install
```
cordova plugin add "phonegap-plugin-push"
cordova plugin add "@robo-finance/cordova-push-delivery"
```

### How to use

1. In the global configuration file `config.xml`, and add the <variable /> tag inside plugin directive with the attribute name = DELIVERY_URL_KEY and the value attribute with its own value:
##### Example: DELIVERY_URL_KEY = delivery_url
```xml
<variable name="DELIVERY_URL_KEY" value="delivery_url"/>
```
2. Kindly append value DELIVERY_URL_KEY (e.g. `delivery_url`) to firebase `data` on backend:
 
##### Example of data structure

```json
{
	"data" : {
		"delivery_url": "https://localhost/set-read/886d27ee-f6fd-11e9-832d-362b9e155667"
	}
}
```

After push received and processed by `phonegap-plugin-push` in foreground/background, plugin will make **POST** request to `http://localhost/set-read/886d27ee-f6fd-11e9-832d-362b9e155667` automatically.
So, it doesn't need to write any Javascript code.

It is possible to detect if plugin is installed. No available methods in the `CordovaPushDelivery` object right now.
```js
if (typeof window.CordovaPushDelivery !== 'undefined') {
    
}
```

### How it works
Because on Android must be only one `intent-filter` per action the plugin use  [intent-filter priority](https://developer.android.com/guide/topics/manifest/intent-filter-element#priority) to override `phonegap-plugin`'s FCMService.
After onMessageReceived received it call parent `super.onMessageReceived(message)`, `phonegap-plugin` processes the notification and our plugin do the following:
1. Checks that `DELIVERY_URL_KEY` (e.g. `delivery_url`) is present in firebase `data`.
2. Checks if notifications are not blocked by the user, because they cannot be read.
3. If debug mode it disables chrome's trust certificate feature (for example, to use in staging environment), affected only to current request.
4. Sends POST callback to `DELIVERY_URL_KEY` (e.g. `delivery_url`) with empty body. You should set any `notification_id` or something like that to `DELIVERY_URL_KEY` (e.g. `delivery_url`), for example, `https://localhost/set-read/886d27ee-f6fd-11e9-832d-362b9e155667`
npm package: @robo-wizard/react
Description: RoboWizard components and hooks for React
Author: HipsterBrown
Latest version: 1.1.0

# Robo Wizard React

A library for building multi-step workflows in React.

## Getting Started

```
npm i @robo-wizard/react
```

Scaffold a basic wizard experience (bring your own form library as needed):

```tsx
const App: React.FC = () => {
  const wizard = useWizard(['first-name', 'last-name', 'success'], { firstName: '', lastName: '' });

  const onSubmit = event => {
    event.preventDefault();
    const values = Object.fromEntries(new FormData(event.currentTarget))
    wizard.goToNextStep({ values });
  };

  return (
    <div>
      <p>{wizard.currentStep} step</p>
      <form onSubmit={onSubmit}>
        {wizard.currentStep === 'first-name' && (
          <div>
            <label
              htmlFor="firstName"
              id="firstName-label"
            >
              First Name:
            </label>
            <input
              type="text"
              name="firstName"
              id="firstName"
              aria-label="firstName-label"
              defaultValue={wizard.currentValues.firstName}
            />
          </div>
        )}

        {wizard.currentStep === 'last-name' && (
          <div>
            <label
              htmlFor="lastName"
              id="lastName-label"
            >
              Last Name:
            </label>
            <input
              type="text"
              name="lastName"
              id="lastName"
              aria-label="lastName-label"
              defaultValue={wizard.currentValues.lastName}
            />
          </div>
        )}

        {wizard.currentStep === 'success' && (
          <div>
            <p>
              Welcome {wizard.currentValues.firstName}{' '}
              {wizard.currentValues.lastName}!
            </p>
          </div>
        )}

        <div>
          <button
            type="button"
            role="link"
            onClick={() => wizard.goToPreviousStep()}
          >
            Previous
          </button>
          <button type="submit">
            Next
          </button>
        </div>
      </form>
    </div>
  );
};
```
npm package: @robo-wizard/react-router
Description: RoboWizard components and hooks for react-router
Author: HipsterBrown
Latest version: 1.0.3

# Robo Wizard React-Router

A library for building _routed_, multi-step workflows in React.

## Getting Started

```
npm i @robo-wizard/react-router
```

Scaffold a basic wizard experience:

```tsx
import { BrowserRouter } from 'react-router-dom'
import { Wizard, Step } from '@robo-wizard/react-router'
// import FirstName, LastName, Success from relevant modules

function App() {
 return (
   <BrowserRouter>
     <Wizard initialValues={{ firstName: '', lastName: '' }}>
       <Step name="first-name" element={<FirstName />} />
       <Step name="last-name" element={<LastName />} />
       <Step name="success" element={<Success />} />
     </Wizard>
   </BrowserRouter>
 )
}
```

Create a step that gathers relevant values (bring your own form library as needed):

```tsx
import { useWizardContext } from '@robo-wizard/react-router'

export const FirstName = () => {
  const wizard = useWizardContext();

  const onSubmit = (event) => {
    event.preventDefault();
    const values = Object.fromEntries(new FormData(event.currentTarget))
    wizard.goToNextStep({ values })
  }

  return (
    <>
      <p>{wizard.currentStep} step</p>
      <form onSubmit={onSubmit}>
        <div>
          <label htmlFor="firstName" id="firstName-label">
            First Name:
          </label>
          <input
            type="text"
            name="firstName"
            id="firstName"
            aria-labelledby="firstName-label"
            defaultValue={wizard.currentValues.firstName}
            autoFocus={true}
          />
        </div>
        <div>
          <button type="button" onClick={() => wizard.goToPreviousStep()} role="link">Previous</button>
          <button type="submit">Next</button>
        </div>
      </form>
    </>
  )
}
```

Go forth and make the web a bit more magical! ✨