open-index/open-npm huggingface dataset:
npm package: @smart-matrix/moleculer-gundb
Description: GunDB mixins for Moleculer DB service.
Author: Michael Gearhardt
Latest version: 0.0.3

![Moleculer logo](http://moleculer.services/images/banner.png)

[![Build Status](https://travis-ci.org/mcgear/moleculer-gundb.svg?branch=master)](https://travis-ci.org/mcgear/moleculer-gundb)
[![Coverage Status](https://coveralls.io/repos/github/mcgear/moleculer-gundb/badge.svg?branch=master)](https://coveralls.io/github/mcgear/moleculer-gundb?branch=master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/<----hash----->)](https://www.codacy.com/app/<---username---->/moleculer-gundb?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=mcgear/moleculer-gundb&amp;utm_campaign=Badge_Grade)
[![Code Climate](https://codeclimate.com/github/mcgear/moleculer-gundb/badges/gpa.svg)](https://codeclimate.com/github/mcgear/moleculer-gundb)
[![David](https://img.shields.io/david/mcgear/moleculer-gundb.svg)](https://david-dm.org/mcgear/moleculer-gundb)
[![Known Vulnerabilities](https://snyk.io/test/github/mcgear/moleculer-gundb/badge.svg)](https://snyk.io/test/github/mcgear/moleculer-gundb)
[![Join the chat at https://gitter.im/moleculerjs/moleculer](https://badges.gitter.im/moleculerjs/moleculer.svg)](https://gitter.im/moleculerjs/moleculer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

# moleculer-gundb [![NPM version](https://img.shields.io/npm/v/moleculer-gundb.svg)](https://www.npmjs.com/package/moleculer-gundb)

GunDB mixins for Moleculer DB service.

## Features

## Install
```
npm install moleculer-gundb --save
```

## Usage


# Test
```
$ npm test
```

In development with watching

```
$ npm run ci
```

# Contribution
Please send pull requests improving the usage and fixing bugs, improving documentation and providing better examples, or providing some testing, because these things are important.

# License
The project is available under the [MIT license](https://tldrlegal.com/license/mit-license).

# Contact
Copyright (c) 2018 Michael Gearhardt

[![@icebob](https://img.shields.io/badge/github-moleculerjs-green.svg)](https://github.com/moleculerjs) [![@icebob](https://img.shields.io/badge/twitter-Icebobcsi-blue.svg)](https://twitter.com/Icebobcsi)
npm package: @smart-moov/plugin
Description: Base for Smart Moov plugins, available in the Smart Moov Marketplace
Author: Smart Moov
Latest version: 1.1.4

<h1 align="center">@smart-moov/plugin</h1>
<p align="center">
  <img src="https://img.shields.io/npm/v/@smart-moov/plugin.svg?orange=blue" />
  <a href="https://github.com/smart-moov/plugin/blob/master/LICENSE">
    <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-yellow.svg" target="_blank" />
  </a>
</p>

> Base ES6 classes to create Smart Moov plugins, to let you connect your product to our candidates.
>
> A Smart Moov plugin let you to create custom chatbot steps, and synchronize applications with your APIs.

## 🚀 Getting started

Create your repository, with public access, with a `index.js` file who exports an ES6 class extending our `Plugin` class.

```js
import { Plugin } from '@smart-moov/plugin'

export default class MyPlugin extends Plugin {}
```

## ✅ Features

You can enable features for your plugin :

```js
export default class MyPlugin extends Plugin {
  getFeatures () {
    return ['chatbot', 'applications']
  }
}
```

- `chatbot`: Let the plugin add chatbot steps, to directly interact with the candidate.
- `applications`: Your plugin will be called whenever we receive an application from a candidate. This will let you send the application to an external API, etc

## 🤖 Chatbot integration

### Add custom steps to the editor

```js
export default class MyPlugin extends Plugin {
  getChatbotStepConfiguration () {
    return {
      id: 'talk',
      name: {
        fr: 'Parler avec Dean',
        en: 'Talk with Dean'
      },
      category: 'messages',
      icon: 'comment-alt',
      configuration: {
        message: {
          type: 'text',
          i18n: true
        }
      }
    }
  }
}
```

More details soon.

### Handle chatbot steps

```js
export default class MyPlugin extends Plugin {
  getChatbotPublicPlugin () {
    return async ctx => {
      const name = await ctx.askText('Question ?', {
        minLength: 10
      })

      const ret = await ctx.callPrivatePlugin({
        name
      })

      console.log(ret.saved)
    }
  }

  async executeChatbotPrivatePlugin ({ name }, ctx) {
    // Save name in other tools

    return {
      saved: true
    }
  }
}
```

More details soon.

## 🪝 Hooks

You can run methods on specific events :

```js
export default class MyPlugin extends Plugin {
  /**
   * Called when the plugin is installed on an organization.
   */
  onInstall (ctx) {
    return undefined
  }

  /**
   * Called when the plugin is uninstalled from an organization.
   */
  onUninstall (ctx) {
    return undefined
  }

  /**
   * Called when the plugin configuration is saved.
   */
  onSave (ctx) {
    return undefined
  }
}
```

More details soon.