open-index/open-npm huggingface dataset:
npm package: @growthbook/edge-cloudflare
Description: GrowthBook edge app for Cloudflare Workers
Latest version: 0.2.8

# Cloudflare Workers App & SDK

[GrowthBook](https://www.growthbook.io) is a modular Feature Flagging and Experimentation platform.

The **GrowthBook Edge App** provides turnkey Visual Editor and URL Redirect experimentation on edge without any of the flicker associated with front-end experiments. It runs as a smart proxy layer between your application and your end users. It also can inject a fully-hydrated front-end SDK onto the rendered page, meaning no extra network requests needed.

- Automatically run server-side or hybrid Visual Experiments without redraw flicker.
- Automatically run server-side or hybrid URL Redirect Experiments without flicker or delay.
- Perform custom feature flagging and experimentation logic.
- Inject the JavaScript SDK with hydrated payload, allowing the front-end to pick up where the edge left off without any extra network requests.

### In this package

This package provides an implementation of our Edge App specific to Cloudflare Workers.

This package also exports utility methods for using our JavaScript SDK in a Cloudflare Worker.

## References

- See the GrowthBook [Cloudflare Workers docs](https://docs.growthbook.io/lib/edge/cloudflare) for full installation instructions.


- See the [base GrowthBook Edge App](../edge-utils) for a complete list of configuration environment variables
npm package: @growthbook/edge-fastly
Description: GrowthBook edge app for Fastly Compute
Latest version: 0.2.8

# Fastly Compute App & SDK

[GrowthBook](https://www.growthbook.io) is a modular Feature Flagging and Experimentation platform.

The **GrowthBook Edge App** provides turnkey Visual Editor and URL Redirect experimentation on edge without any of the flicker associated with front-end experiments. It runs as a smart proxy layer between your application and your end users. It also can inject a fully-hydrated front-end SDK onto the rendered page, meaning no extra network requests needed.

- Automatically run server-side or hybrid Visual Experiments without redraw flicker.
- Automatically run server-side or hybrid URL Redirect Experiments without flicker or delay.
- Perform custom feature flagging and experimentation logic.
- Inject the JavaScript SDK with hydrated payload, allowing the front-end to pick up where the edge left off without any extra network requests.

### In this package

This package provides an implementation of our Edge App specific to Fastly Compute.

This package also exports utility methods for using our JavaScript SDK in a Fastly Compute environment.

## References

- See the GrowthBook [Fastly Compute docs](https://docs.growthbook.io/lib/edge/fastly) for full installation instructions.


- See the [base GrowthBook Edge App](../edge-utils) for a complete list of configuration environment variables
npm package: @growthbook/edge-lambda
Description: GrowthBook edge app for Lambda@Edge
Latest version: 0.0.28

# Lambda@Edge App & SDK

[GrowthBook](https://www.growthbook.io) is a modular Feature Flagging and Experimentation platform.

The **GrowthBook Edge App** provides turnkey Visual Editor and URL Redirect experimentation on edge without any of the flicker associated with front-end experiments. It runs as a smart proxy layer between your application and your end users. It also can inject a fully-hydrated front-end SDK onto the rendered page, meaning no extra network requests needed.

- Automatically run server-side or hybrid Visual Experiments without redraw flicker.
- Automatically run server-side or hybrid URL Redirect Experiments without flicker or delay.
- Perform custom feature flagging and experimentation logic.
- Inject the JavaScript SDK with hydrated payload, allowing the front-end to pick up where the edge left off without any extra network requests.

### In this package

This package provides an implementation of our Edge App specific to AWS Lambda@Edge.

This package also exports utility methods for using our JavaScript SDK in a Lambda@Edge environment.

## References

- See the GrowthBook [Lambda@Edge docs](https://docs.growthbook.io/lib/edge/lambda) for full installation instructions.


- See the [base GrowthBook Edge App](../edge-utils) for a complete list of configuration environment variables
npm package: @growthbook/mcp
Description: MCP Server for interacting with GrowthBook
Author: GrowthBook
Latest version: 1.8.1

# GrowthBook MCP Server

With the GrowthBook MCP server, you can interact with GrowthBook right from your LLM client. See experiment details, add a feature flag, and more.

<a href="https://glama.ai/mcp/servers/@growthbook/growthbook-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@growthbook/growthbook-mcp/badge" alt="GrowthBook Server MCP server" />
</a>

## Setup

**Environment Variables**
Use the following env variables to configure the MCP server.

| Variable Name | Status   | Description                                                       |
| ------------- | -------- | ----------------------------------------------------------------- |
| GB_API_KEY    | Required | A GrowthBook API key or PAT. When using a PAT, MCP server capabilities are limited by its permissions. E.g., if the user can't create an experiment in the app, they also won't be able to create one with the MCP server.                                             |
| GB_EMAIL      | Required | Your email address used with GrowthBook. Used when creating feature flags and experiments.|
| GB_API_URL    | Optional | Your GrowthBook API URL. Defaults to `https://api.growthbook.io`. |
| GB_APP_ORIGIN | Optional | Your GrowthBook app URL Defaults to `https://app.growthbook.io`.  |
| GB_HTTP_HEADER_* | Optional | Custom HTTP headers to include in all GrowthBook API requests. Use the pattern `GB_HTTP_HEADER_<NAME>` where `<NAME>` is converted to proper HTTP header format (underscores become hyphens). Examples: `GB_HTTP_HEADER_X_TENANT_ID=abc123` becomes `X-Tenant-ID: abc123`, `GB_HTTP_HEADER_CF_ACCESS_TOKEN=<token>` becomes `Cf-Access-Token: <token>`. Multiple custom headers can be configured. |

Add the MCP server to your AI tool of choice. See the [official docs](https://docs.growthbook.io/integrations/mcp) for complete a complete guide.
npm package: @growthbook/proxy
Description: GrowthBook proxy server for caching, realtime updates, remote evaluation, etc
Author: Bryce Fitzsimons
Latest version: 1.3.3

# GrowthBook Proxy

[GrowthBook](https://www.growthbook.io) is a modular Feature Flagging and Experimentation platform.

The GrowthBook Proxy server sits between your application and GrowthBook. It turbocharges your GrowthBook implementation by providing **speed**, **scalability**, **security**, and **real-time** feature rollouts.

### Features

- :zap: **Caching** - Significantly faster feature lookups!
  - In-memory cache plus an optional distributed layer (Redis or MongoDB)
  - Automatic cache invalidation when features change in GrowthBook (using WebHooks)
- :satellite: **Streaming** - Updates your application in real-time as features are changed or toggled (Javascript and React only)
- :lock: **Remote Evaluation** - Hide your features' business logic in insecure environments
- :key: **Secure** - Private-key authentication between GrowthBook and GrowthBook Proxy
- :left_right_arrow: **Horizontally Scalable** - Support millions of concurrent users

### See more

This GrowthBook Proxy package (`@growthbook/proxy`) is a part of the larger GrowthBook Proxy mono-repo. See the [main project](https://github.com/growthbook/growthbook-proxy) for more information and configuration examples.
npm package: @growthcurve/flowmate-react
Description: Flowmate React SDK — deliver in-app tooltips, modals, banners, tours and checklists
Latest version: 0.1.0

# @flowmate/react

The official React SDK for [Flowmate](https://flowmate.dev) — the open-source product adoption platform.

Build in-app onboarding flows, tooltips, modals, banners, checklists, and product tours that guide users through your product.

## Installation

```bash
npm install @flowmate/react
```

## Quick Start

Wrap your app with `FlowmateProvider`:

```tsx
import { FlowmateProvider } from "@flowmate/react";

function App() {
  return (
    <FlowmateProvider
      organizationId="your-org-id"
      apiKey="your-api-key"
      userId={currentUser.id}
      userProperties={{
        name: currentUser.name,
        email: currentUser.email,
        plan: currentUser.plan,
      }}
    >
      <YourApp />
    </FlowmateProvider>
  );
}
```

## Using the Hook

Access Flowmate methods anywhere in your component tree:

```tsx
import { useFlowmate } from "@flowmate/react";

function OnboardingButton() {
  const { startWorkflow, resetWorkflow, blocks } = useFlowmate();

  return (
    <button onClick={() => startWorkflow("welcome-tour")}>
      Start Tour ({blocks.length} steps)
    </button>
  );
}
```

## Components

The SDK renders 8 component types automatically based on your workflow configuration:

- **Modal** — centered overlay dialogs
- **Banner** — top/bottom notification bars
- **Tooltip** — positioned next to target elements
- **Card** — floating info cards
- **Hint** — pulsing indicators on elements
- **Sidebar** — slide-in panels
- **Checklist** — task completion lists
- **Floating Checklist** — compact progress widget

## Theming

Customize the look and feel to match your brand:

```tsx
<FlowmateProvider
  theme={{
    primaryColor: "#6366f1",
    backgroundColor: "#ffffff",
    textColor: "#1a1a2e",
    fontFamily: "Inter, sans-serif",
    borderRadius: "12px",
  }}
  // ...other props
>
```

## Configuration

| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `organizationId` | `string` | Yes | Your Flowmate organization ID |
| `apiKey` | `string` | Yes | Your environment API key |
| `userId` | `string` | Yes | Current user's unique ID |
| `userProperties` | `object` | No | User attributes for segment targeting |
| `environment` | `string` | No | `production`, `staging`, or `development` |
| `theme` | `FlowmateTheme` | No | Custom theme overrides |
| `debug` | `boolean` | No | Enable console logging |
| `pollingInterval` | `number` | No | Auto-refresh interval in ms (0 = disabled) |

## Vanilla JavaScript

Need framework-agnostic support? Use [`@flowmate/js`](https://www.npmjs.com/package/@flowmate/js) instead.

## License

MIT
npm package: @growthdefi/_mor-plugin-governance
Description: A dai.js plugin for adding MKR governance support to dapps.
Latest version: 1.0.11

<h1 align="center">
Dai Governance Plugin
</h1>

[![GitHub License][license]][license-url]
[![NPM][npm]][npm-url]
[![Build Status][build]][build-url]

A [dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the MKR governance system. This plugin makes it easy to integrate dai governance into frontend applications such as the [maker governace dashboard](https://vote.makerdao.com/). You can use it to vote, cast proposals, query the voting contract, create a vote proxy, and much more.

## Installation

The Dai Governance Plugin requires **dai.js 0.9.2 or later.**

```
$ npm install --save @makerdao/dai-plugin-governance
```

or

```
$ yarn add @makerdao/dai-plugin-governance
```

## Examples

We will have several examples once the api is more stable. Here is one to give you some sense of how this plugin can be used:

```js
import governancePlugin from '@makerdao/dai-plugin-governance';
import Maker from '@makerdao/dai';

(async () => {
  const maker = Maker.create('browser', {
    plugins: [governancePlugin]
  });
  await maker.authenticate();
  await maker.service('chief').lock(10);
})();
```

This example will initiate a MetaMask transaction to lock 10 MKR into the maker voting system.

### Development

## Getting started

_Note: this project utilizes the [yarn](https://yarnpkg.com/en/) package manager_

Clone this repo & fetch submodules

```
$ git clone --recurse-submodules -j8 https://github.com/makerdao/dai-plugin-governance.git
```

Install project dependencies

```
$ yarn
$ yarn install --cwd "gov-testchain"
```

## Running Tests

1.  Install [dapptools](https://dapp.tools/)
1.  `yarn testnet --ci yarn test`

## Publishing

Publish to NPM

```
$ yarn deploy
```

## Code Style

We run Prettier on-commit, which means you can write code in whatever style you want and it will be automatically formatted according to the common style when you run `git commit`.

### License

The dai governance plugin is [MIT licensed](./LICENSE).

[npm]: https://img.shields.io/npm/v/@makerdao/dai-plugin-governance.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@makerdao/dai-plugin-governance
[license]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/makerdao/dai-plugin-governance/blob/master/LICENSE
[build]: https://travis-ci.com/makerdao/dai-plugin-governance.svg?token=7qKLu97qQDDMKfaxt318&branch=master
[build-url]: https://travis-ci.com/makerdao/dai-plugin-governance
npm package: @growthdefi/_mor-plugin-mcd
Description: Plugin to add Multi-Collateral Dai support to dai.js
Latest version: 1.0.11

# dai-plugin-mcd

A [Dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the
multi-collateral dai contracts

### Example usage

```js
import { McdPlugin, ETH, REP, DAI } from '@makerdao/dai-plugin-mcd';
import Maker from '@makerdao/dai';
import { createCurrency } from '@makerdao/currency';
import { tokenAddress, tokenAbi } from 'someOtherTokenData';

const TOK = createCurrency('TOK');

const maker = await Maker.create('http', {
  // ...other configuration...
  plugins: [
    [
      McdPlugin,
      {
        // omit this option to get the default set:
        // ETH-A, ETH-B, REP-A
        cdpTypes: [
          { currency: ETH, ilk: 'ETH-A' },
          { currency: REP, ilk: 'REP-A' },
          { currency: TOK, ilk: 'TOK-Z', address: tokenAddress, abi: tokenAbi },
        ]
      }
    ]
  ]
});

await maker.service('proxy').ensureProxy();
const cdpManager = maker.service('mcd:cdpManager');
const cdp1 = await cdpManager.openLockAndDraw('REP-A', REP(50), DAI(1000));
const cdp2 = await cdpManager.openLockAndDraw('ETH-A', ETH(50), DAI(1000));
const cdp3 = await cdpManager.openLockAndDraw('TOK-Z', TOK(50), DAI(1000));
```

Please visit [docs.makerdao.com](https://docs.makerdao.com/building-with-maker/daijs) for more documentation.

### Developer notes

The MCD contracts store the stability fee per second in a variable called `tax`
as a number in the form 1.X _ 10^27 (e.g. `1000000000472114805215157978`), and
the base rate in a variable called `repo` as a number in the form 0.X _ 10^27.

In this plugin, the `getAnnualStabilityFee()` and get `getAnnualBaseRate`
functions convert those values to return a decimal representation of the yearly
rates (e.g. `0.015` and `0.01`).

Run the tests from the top-level dai.js directory.

### Local Development

Due to the way that Babel7 handles transpilation it is not possible to use `yarn link` when locally developing this plugin, and importing it. We recommend using [yalc](https://github.com/whitecolor/yalc) instead. We've also found that a watcher tool called [sane](https://github.com/amasad/sane) is helpful.

Steps to Run:
1. In this directory run ```sane "yalc publish && cd [INSERT THE DIRECTORY OF THE PROJECT THAT IS IMPORTING THIS PLUGIN] && yalc link @makerdao/dai-plugin-mcd" src --wait=3 ```
npm package: @growthdefi/mor-plugin-governance
Description: A dai.js plugin for adding MKR governance support to dapps.
Latest version: 1.0.17

<h1 align="center">
Dai Governance Plugin
</h1>

[![GitHub License][license]][license-url]
[![NPM][npm]][npm-url]
[![Build Status][build]][build-url]

A [dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the MKR governance system. This plugin makes it easy to integrate dai governance into frontend applications such as the [maker governace dashboard](https://vote.makerdao.com/). You can use it to vote, cast proposals, query the voting contract, create a vote proxy, and much more.

## Installation

The Dai Governance Plugin requires **dai.js 0.9.2 or later.**

```
$ npm install --save @makerdao/dai-plugin-governance
```

or

```
$ yarn add @makerdao/dai-plugin-governance
```

## Examples

We will have several examples once the api is more stable. Here is one to give you some sense of how this plugin can be used:

```js
import governancePlugin from '@makerdao/dai-plugin-governance';
import Maker from '@makerdao/dai';

(async () => {
  const maker = Maker.create('browser', {
    plugins: [governancePlugin]
  });
  await maker.authenticate();
  await maker.service('chief').lock(10);
})();
```

This example will initiate a MetaMask transaction to lock 10 MKR into the maker voting system.

### Development

## Getting started

_Note: this project utilizes the [yarn](https://yarnpkg.com/en/) package manager_

Clone this repo & fetch submodules

```
$ git clone --recurse-submodules -j8 https://github.com/makerdao/dai-plugin-governance.git
```

Install project dependencies

```
$ yarn
$ yarn install --cwd "gov-testchain"
```

## Running Tests

1.  Install [dapptools](https://dapp.tools/)
1.  `yarn testnet --ci yarn test`

## Publishing

Publish to NPM

```
$ yarn deploy
```

## Code Style

We run Prettier on-commit, which means you can write code in whatever style you want and it will be automatically formatted according to the common style when you run `git commit`.

### License

The dai governance plugin is [MIT licensed](./LICENSE).

[npm]: https://img.shields.io/npm/v/@makerdao/dai-plugin-governance.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@makerdao/dai-plugin-governance
[license]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/makerdao/dai-plugin-governance/blob/master/LICENSE
[build]: https://travis-ci.com/makerdao/dai-plugin-governance.svg?token=7qKLu97qQDDMKfaxt318&branch=master
[build-url]: https://travis-ci.com/makerdao/dai-plugin-governance
npm package: @growthdefi/mor-services-core
Description: Dependency injection framework
Latest version: 1.0.15

# @makerdao/services-core

A dependency injection framework used in [dai.js](https://github.com/makerdao/dai.js).

### TODO

- [ ] create full usage example

### Usage (TODO)

```js
class MyService extends PrivateService {
  constructor(name = 'serviceRoleName') {
    super(name, dependencyRoleNames);
  }

  initialize(settings) {
    // initialize() for all its dependencies will run first
  }

  connect() {
    // connect() for all its dependencies will run first
  }

  authenticate() {
    // authenticate() for all its dependencies will run first
  }
}
```
npm package: @growthdefi/moravax-plugin-governance
Description: A dai.js plugin for adding MKR governance support to dapps.
Latest version: 1.0.31

<h1 align="center">
Dai Governance Plugin
</h1>

[![GitHub License][license]][license-url]
[![NPM][npm]][npm-url]
[![Build Status][build]][build-url]

A [dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the MKR governance system. This plugin makes it easy to integrate dai governance into frontend applications such as the [maker governace dashboard](https://vote.makerdao.com/). You can use it to vote, cast proposals, query the voting contract, create a vote proxy, and much more.

## Installation

The Dai Governance Plugin requires **dai.js 0.9.2 or later.**

```
$ npm install --save @makerdao/dai-plugin-governance
```

or

```
$ yarn add @makerdao/dai-plugin-governance
```

## Examples

We will have several examples once the api is more stable. Here is one to give you some sense of how this plugin can be used:

```js
import governancePlugin from '@makerdao/dai-plugin-governance';
import Maker from '@makerdao/dai';

(async () => {
  const maker = Maker.create('browser', {
    plugins: [governancePlugin]
  });
  await maker.authenticate();
  await maker.service('chief').lock(10);
})();
```

This example will initiate a MetaMask transaction to lock 10 MKR into the maker voting system.

### Development

## Getting started

_Note: this project utilizes the [yarn](https://yarnpkg.com/en/) package manager_

Clone this repo & fetch submodules

```
$ git clone --recurse-submodules -j8 https://github.com/makerdao/dai-plugin-governance.git
```

Install project dependencies

```
$ yarn
$ yarn install --cwd "gov-testchain"
```

## Running Tests

1.  Install [dapptools](https://dapp.tools/)
1.  `yarn testnet --ci yarn test`

## Publishing

Publish to NPM

```
$ yarn deploy
```

## Code Style

We run Prettier on-commit, which means you can write code in whatever style you want and it will be automatically formatted according to the common style when you run `git commit`.

### License

The dai governance plugin is [MIT licensed](./LICENSE).

[npm]: https://img.shields.io/npm/v/@makerdao/dai-plugin-governance.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@makerdao/dai-plugin-governance
[license]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/makerdao/dai-plugin-governance/blob/master/LICENSE
[build]: https://travis-ci.com/makerdao/dai-plugin-governance.svg?token=7qKLu97qQDDMKfaxt318&branch=master
[build-url]: https://travis-ci.com/makerdao/dai-plugin-governance
npm package: @growthdefi/moravax-plugin-mcd
Description: Plugin to add Multi-Collateral Dai support to dai.js
Latest version: 1.0.31

# dai-plugin-mcd

A [Dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the
multi-collateral dai contracts

### Example usage

```js
import { McdPlugin, ETH, REP, DAI } from '@makerdao/dai-plugin-mcd';
import Maker from '@makerdao/dai';
import { createCurrency } from '@makerdao/currency';
import { tokenAddress, tokenAbi } from 'someOtherTokenData';

const TOK = createCurrency('TOK');

const maker = await Maker.create('http', {
  // ...other configuration...
  plugins: [
    [
      McdPlugin,
      {
        // omit this option to get the default set:
        // ETH-A, ETH-B, REP-A
        cdpTypes: [
          { currency: ETH, ilk: 'ETH-A' },
          { currency: REP, ilk: 'REP-A' },
          { currency: TOK, ilk: 'TOK-Z', address: tokenAddress, abi: tokenAbi },
        ]
      }
    ]
  ]
});

await maker.service('proxy').ensureProxy();
const cdpManager = maker.service('mcd:cdpManager');
const cdp1 = await cdpManager.openLockAndDraw('REP-A', REP(50), DAI(1000));
const cdp2 = await cdpManager.openLockAndDraw('ETH-A', ETH(50), DAI(1000));
const cdp3 = await cdpManager.openLockAndDraw('TOK-Z', TOK(50), DAI(1000));
```

Please visit [docs.makerdao.com](https://docs.makerdao.com/building-with-maker/daijs) for more documentation.

### Developer notes

The MCD contracts store the stability fee per second in a variable called `tax`
as a number in the form 1.X _ 10^27 (e.g. `1000000000472114805215157978`), and
the base rate in a variable called `repo` as a number in the form 0.X _ 10^27.

In this plugin, the `getAnnualStabilityFee()` and get `getAnnualBaseRate`
functions convert those values to return a decimal representation of the yearly
rates (e.g. `0.015` and `0.01`).

Run the tests from the top-level dai.js directory.

### Local Development

Due to the way that Babel7 handles transpilation it is not possible to use `yarn link` when locally developing this plugin, and importing it. We recommend using [yalc](https://github.com/whitecolor/yalc) instead. We've also found that a watcher tool called [sane](https://github.com/amasad/sane) is helpful.

Steps to Run:
1. In this directory run ```sane "yalc publish && cd [INSERT THE DIRECTORY OF THE PROJECT THAT IS IMPORTING THIS PLUGIN] && yalc link @makerdao/dai-plugin-mcd" src --wait=3 ```
npm package: @growthdefi/moravax-services-core
Description: Dependency injection framework
Latest version: 1.0.26

# @makerdao/services-core

A dependency injection framework used in [dai.js](https://github.com/makerdao/dai.js).

### TODO

- [ ] create full usage example

### Usage (TODO)

```js
class MyService extends PrivateService {
  constructor(name = 'serviceRoleName') {
    super(name, dependencyRoleNames);
  }

  initialize(settings) {
    // initialize() for all its dependencies will run first
  }

  connect() {
    // connect() for all its dependencies will run first
  }

  authenticate() {
    // authenticate() for all its dependencies will run first
  }
}
```
npm package: @growthdefi/morbsc-plugin-governance
Description: A dai.js plugin for adding MKR governance support to dapps.
Latest version: 1.0.19

<h1 align="center">
Dai Governance Plugin
</h1>

[![GitHub License][license]][license-url]
[![NPM][npm]][npm-url]
[![Build Status][build]][build-url]

A [dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the MKR governance system. This plugin makes it easy to integrate dai governance into frontend applications such as the [maker governace dashboard](https://vote.makerdao.com/). You can use it to vote, cast proposals, query the voting contract, create a vote proxy, and much more.

## Installation

The Dai Governance Plugin requires **dai.js 0.9.2 or later.**

```
$ npm install --save @makerdao/dai-plugin-governance
```

or

```
$ yarn add @makerdao/dai-plugin-governance
```

## Examples

We will have several examples once the api is more stable. Here is one to give you some sense of how this plugin can be used:

```js
import governancePlugin from '@makerdao/dai-plugin-governance';
import Maker from '@makerdao/dai';

(async () => {
  const maker = Maker.create('browser', {
    plugins: [governancePlugin]
  });
  await maker.authenticate();
  await maker.service('chief').lock(10);
})();
```

This example will initiate a MetaMask transaction to lock 10 MKR into the maker voting system.

### Development

## Getting started

_Note: this project utilizes the [yarn](https://yarnpkg.com/en/) package manager_

Clone this repo & fetch submodules

```
$ git clone --recurse-submodules -j8 https://github.com/makerdao/dai-plugin-governance.git
```

Install project dependencies

```
$ yarn
$ yarn install --cwd "gov-testchain"
```

## Running Tests

1.  Install [dapptools](https://dapp.tools/)
1.  `yarn testnet --ci yarn test`

## Publishing

Publish to NPM

```
$ yarn deploy
```

## Code Style

We run Prettier on-commit, which means you can write code in whatever style you want and it will be automatically formatted according to the common style when you run `git commit`.

### License

The dai governance plugin is [MIT licensed](./LICENSE).

[npm]: https://img.shields.io/npm/v/@makerdao/dai-plugin-governance.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@makerdao/dai-plugin-governance
[license]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/makerdao/dai-plugin-governance/blob/master/LICENSE
[build]: https://travis-ci.com/makerdao/dai-plugin-governance.svg?token=7qKLu97qQDDMKfaxt318&branch=master
[build-url]: https://travis-ci.com/makerdao/dai-plugin-governance
npm package: @growthdefi/morbsc-plugin-mcd
Description: Plugin to add Multi-Collateral Dai support to dai.js
Latest version: 1.0.19

# dai-plugin-mcd

A [Dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the
multi-collateral dai contracts

### Example usage

```js
import { McdPlugin, ETH, REP, DAI } from '@makerdao/dai-plugin-mcd';
import Maker from '@makerdao/dai';
import { createCurrency } from '@makerdao/currency';
import { tokenAddress, tokenAbi } from 'someOtherTokenData';

const TOK = createCurrency('TOK');

const maker = await Maker.create('http', {
  // ...other configuration...
  plugins: [
    [
      McdPlugin,
      {
        // omit this option to get the default set:
        // ETH-A, ETH-B, REP-A
        cdpTypes: [
          { currency: ETH, ilk: 'ETH-A' },
          { currency: REP, ilk: 'REP-A' },
          { currency: TOK, ilk: 'TOK-Z', address: tokenAddress, abi: tokenAbi },
        ]
      }
    ]
  ]
});

await maker.service('proxy').ensureProxy();
const cdpManager = maker.service('mcd:cdpManager');
const cdp1 = await cdpManager.openLockAndDraw('REP-A', REP(50), DAI(1000));
const cdp2 = await cdpManager.openLockAndDraw('ETH-A', ETH(50), DAI(1000));
const cdp3 = await cdpManager.openLockAndDraw('TOK-Z', TOK(50), DAI(1000));
```

Please visit [docs.makerdao.com](https://docs.makerdao.com/building-with-maker/daijs) for more documentation.

### Developer notes

The MCD contracts store the stability fee per second in a variable called `tax`
as a number in the form 1.X _ 10^27 (e.g. `1000000000472114805215157978`), and
the base rate in a variable called `repo` as a number in the form 0.X _ 10^27.

In this plugin, the `getAnnualStabilityFee()` and get `getAnnualBaseRate`
functions convert those values to return a decimal representation of the yearly
rates (e.g. `0.015` and `0.01`).

Run the tests from the top-level dai.js directory.

### Local Development

Due to the way that Babel7 handles transpilation it is not possible to use `yarn link` when locally developing this plugin, and importing it. We recommend using [yalc](https://github.com/whitecolor/yalc) instead. We've also found that a watcher tool called [sane](https://github.com/amasad/sane) is helpful.

Steps to Run:
1. In this directory run ```sane "yalc publish && cd [INSERT THE DIRECTORY OF THE PROJECT THAT IS IMPORTING THIS PLUGIN] && yalc link @makerdao/dai-plugin-mcd" src --wait=3 ```
npm package: @growthdefi/morftm-plugin-governance
Description: A dai.js plugin for adding MKR governance support to dapps.
Latest version: 1.0.3

<h1 align="center">
Dai Governance Plugin
</h1>

[![GitHub License][license]][license-url]
[![NPM][npm]][npm-url]
[![Build Status][build]][build-url]

A [dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the MKR governance system. This plugin makes it easy to integrate dai governance into frontend applications such as the [maker governace dashboard](https://vote.makerdao.com/). You can use it to vote, cast proposals, query the voting contract, create a vote proxy, and much more.

## Installation

The Dai Governance Plugin requires **dai.js 0.9.2 or later.**

```
$ npm install --save @makerdao/dai-plugin-governance
```

or

```
$ yarn add @makerdao/dai-plugin-governance
```

## Examples

We will have several examples once the api is more stable. Here is one to give you some sense of how this plugin can be used:

```js
import governancePlugin from '@makerdao/dai-plugin-governance';
import Maker from '@makerdao/dai';

(async () => {
  const maker = Maker.create('browser', {
    plugins: [governancePlugin]
  });
  await maker.authenticate();
  await maker.service('chief').lock(10);
})();
```

This example will initiate a MetaMask transaction to lock 10 MKR into the maker voting system.

### Development

## Getting started

_Note: this project utilizes the [yarn](https://yarnpkg.com/en/) package manager_

Clone this repo & fetch submodules

```
$ git clone --recurse-submodules -j8 https://github.com/makerdao/dai-plugin-governance.git
```

Install project dependencies

```
$ yarn
$ yarn install --cwd "gov-testchain"
```

## Running Tests

1.  Install [dapptools](https://dapp.tools/)
1.  `yarn testnet --ci yarn test`

## Publishing

Publish to NPM

```
$ yarn deploy
```

## Code Style

We run Prettier on-commit, which means you can write code in whatever style you want and it will be automatically formatted according to the common style when you run `git commit`.

### License

The dai governance plugin is [MIT licensed](./LICENSE).

[npm]: https://img.shields.io/npm/v/@makerdao/dai-plugin-governance.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@makerdao/dai-plugin-governance
[license]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/makerdao/dai-plugin-governance/blob/master/LICENSE
[build]: https://travis-ci.com/makerdao/dai-plugin-governance.svg?token=7qKLu97qQDDMKfaxt318&branch=master
[build-url]: https://travis-ci.com/makerdao/dai-plugin-governance
npm package: @growthdefi/morftm-plugin-mcd
Description: Plugin to add Multi-Collateral Dai support to dai.js
Latest version: 1.0.3

# dai-plugin-mcd

A [Dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the
multi-collateral dai contracts

### Example usage

```js
import { McdPlugin, ETH, REP, DAI } from '@makerdao/dai-plugin-mcd';
import Maker from '@makerdao/dai';
import { createCurrency } from '@makerdao/currency';
import { tokenAddress, tokenAbi } from 'someOtherTokenData';

const TOK = createCurrency('TOK');

const maker = await Maker.create('http', {
  // ...other configuration...
  plugins: [
    [
      McdPlugin,
      {
        // omit this option to get the default set:
        // ETH-A, ETH-B, REP-A
        cdpTypes: [
          { currency: ETH, ilk: 'ETH-A' },
          { currency: REP, ilk: 'REP-A' },
          { currency: TOK, ilk: 'TOK-Z', address: tokenAddress, abi: tokenAbi },
        ]
      }
    ]
  ]
});

await maker.service('proxy').ensureProxy();
const cdpManager = maker.service('mcd:cdpManager');
const cdp1 = await cdpManager.openLockAndDraw('REP-A', REP(50), DAI(1000));
const cdp2 = await cdpManager.openLockAndDraw('ETH-A', ETH(50), DAI(1000));
const cdp3 = await cdpManager.openLockAndDraw('TOK-Z', TOK(50), DAI(1000));
```

Please visit [docs.makerdao.com](https://docs.makerdao.com/building-with-maker/daijs) for more documentation.

### Developer notes

The MCD contracts store the stability fee per second in a variable called `tax`
as a number in the form 1.X _ 10^27 (e.g. `1000000000472114805215157978`), and
the base rate in a variable called `repo` as a number in the form 0.X _ 10^27.

In this plugin, the `getAnnualStabilityFee()` and get `getAnnualBaseRate`
functions convert those values to return a decimal representation of the yearly
rates (e.g. `0.015` and `0.01`).

Run the tests from the top-level dai.js directory.

### Local Development

Due to the way that Babel7 handles transpilation it is not possible to use `yarn link` when locally developing this plugin, and importing it. We recommend using [yalc](https://github.com/whitecolor/yalc) instead. We've also found that a watcher tool called [sane](https://github.com/amasad/sane) is helpful.

Steps to Run:
1. In this directory run ```sane "yalc publish && cd [INSERT THE DIRECTORY OF THE PROJECT THAT IS IMPORTING THIS PLUGIN] && yalc link @makerdao/dai-plugin-mcd" src --wait=3 ```
npm package: @growthdefi/mormatic-plugin-governance
Description: A dai.js plugin for adding MKR governance support to dapps.
Latest version: 1.0.12

<h1 align="center">
Dai Governance Plugin
</h1>

[![GitHub License][license]][license-url]
[![NPM][npm]][npm-url]
[![Build Status][build]][build-url]

A [dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the MKR governance system. This plugin makes it easy to integrate dai governance into frontend applications such as the [maker governace dashboard](https://vote.makerdao.com/). You can use it to vote, cast proposals, query the voting contract, create a vote proxy, and much more.

## Installation

The Dai Governance Plugin requires **dai.js 0.9.2 or later.**

```
$ npm install --save @makerdao/dai-plugin-governance
```

or

```
$ yarn add @makerdao/dai-plugin-governance
```

## Examples

We will have several examples once the api is more stable. Here is one to give you some sense of how this plugin can be used:

```js
import governancePlugin from '@makerdao/dai-plugin-governance';
import Maker from '@makerdao/dai';

(async () => {
  const maker = Maker.create('browser', {
    plugins: [governancePlugin]
  });
  await maker.authenticate();
  await maker.service('chief').lock(10);
})();
```

This example will initiate a MetaMask transaction to lock 10 MKR into the maker voting system.

### Development

## Getting started

_Note: this project utilizes the [yarn](https://yarnpkg.com/en/) package manager_

Clone this repo & fetch submodules

```
$ git clone --recurse-submodules -j8 https://github.com/makerdao/dai-plugin-governance.git
```

Install project dependencies

```
$ yarn
$ yarn install --cwd "gov-testchain"
```

## Running Tests

1.  Install [dapptools](https://dapp.tools/)
1.  `yarn testnet --ci yarn test`

## Publishing

Publish to NPM

```
$ yarn deploy
```

## Code Style

We run Prettier on-commit, which means you can write code in whatever style you want and it will be automatically formatted according to the common style when you run `git commit`.

### License

The dai governance plugin is [MIT licensed](./LICENSE).

[npm]: https://img.shields.io/npm/v/@makerdao/dai-plugin-governance.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@makerdao/dai-plugin-governance
[license]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/makerdao/dai-plugin-governance/blob/master/LICENSE
[build]: https://travis-ci.com/makerdao/dai-plugin-governance.svg?token=7qKLu97qQDDMKfaxt318&branch=master
[build-url]: https://travis-ci.com/makerdao/dai-plugin-governance
npm package: @growthdefi/mormatic-plugin-mcd
Description: Plugin to add Multi-Collateral Dai support to dai.js
Latest version: 1.0.12

# dai-plugin-mcd

A [Dai.js](https://github.com/makerdao/dai.js) plugin for interacting with the
multi-collateral dai contracts

### Example usage

```js
import { McdPlugin, ETH, REP, DAI } from '@makerdao/dai-plugin-mcd';
import Maker from '@makerdao/dai';
import { createCurrency } from '@makerdao/currency';
import { tokenAddress, tokenAbi } from 'someOtherTokenData';

const TOK = createCurrency('TOK');

const maker = await Maker.create('http', {
  // ...other configuration...
  plugins: [
    [
      McdPlugin,
      {
        // omit this option to get the default set:
        // ETH-A, ETH-B, REP-A
        cdpTypes: [
          { currency: ETH, ilk: 'ETH-A' },
          { currency: REP, ilk: 'REP-A' },
          { currency: TOK, ilk: 'TOK-Z', address: tokenAddress, abi: tokenAbi },
        ]
      }
    ]
  ]
});

await maker.service('proxy').ensureProxy();
const cdpManager = maker.service('mcd:cdpManager');
const cdp1 = await cdpManager.openLockAndDraw('REP-A', REP(50), DAI(1000));
const cdp2 = await cdpManager.openLockAndDraw('ETH-A', ETH(50), DAI(1000));
const cdp3 = await cdpManager.openLockAndDraw('TOK-Z', TOK(50), DAI(1000));
```

Please visit [docs.makerdao.com](https://docs.makerdao.com/building-with-maker/daijs) for more documentation.

### Developer notes

The MCD contracts store the stability fee per second in a variable called `tax`
as a number in the form 1.X _ 10^27 (e.g. `1000000000472114805215157978`), and
the base rate in a variable called `repo` as a number in the form 0.X _ 10^27.

In this plugin, the `getAnnualStabilityFee()` and get `getAnnualBaseRate`
functions convert those values to return a decimal representation of the yearly
rates (e.g. `0.015` and `0.01`).

Run the tests from the top-level dai.js directory.

### Local Development

Due to the way that Babel7 handles transpilation it is not possible to use `yarn link` when locally developing this plugin, and importing it. We recommend using [yalc](https://github.com/whitecolor/yalc) instead. We've also found that a watcher tool called [sane](https://github.com/amasad/sane) is helpful.

Steps to Run:
1. In this directory run ```sane "yalc publish && cd [INSERT THE DIRECTORY OF THE PROJECT THAT IS IMPORTING THIS PLUGIN] && yalc link @makerdao/dai-plugin-mcd" src --wait=3 ```
npm package: @growthops/ext-datocms
Description: DatoCMS library for the GO Digital modern stack
Latest version: 1.0.3

# GrowthOps Ext DatoCMS

[![codecov](https://codecov.io/gh/growthops-digital/ext-datocms/branch/main/graph/badge.svg?token=WS0PJ3QQRW)](https://codecov.io/gh/growthops-digital/ext-datocms)

A collection of useful extensions built for [DatoCMS](https://www.datocms.com/).

## Functions

### renderBlocks

Renders out a collection of blocks as part of a DatoCMS modular field. This function requires that the collection of blocks include `_modelApiKey` as it will be utilised as the primary key for matching a block with its renderer.

**Example**
```js
import {renderBlocks} from '@growthops/ext-datocms';

// Example data from GraphQL query
const data = [
	{
		_modelApiKey: 'text',
		content: 'Lorem Ipsum Dolor Sit Amet Consectetur'
	},
	{
		_modelApiKey: 'image',
		url: 'https://example.com/image.jpg',
		alt: 'Dolor Sit Amet'
	}
];

const renderTextBlock = data => <p>{data.content}</p>;

const renderImageBlock = data => <img src={data.url} alt={data.alt}/>;

const App = () => (
	<div>
		{renderBlocks({
			text: renderTextBlock,
			image: renderImageBlock
		}, data)}
	</div>
);

// Rendered DOM:
// <div>
// 	<p>Lorem Ipsum Dolor Sit Amet Consectetur</p>
//  <img src="https://example.com/image.jpg" alt="Dolor Sit Amet"/>
// </div>
```
npm package: @growthops/ext-nextjs
Description: Next.js library for the GO Digital modern stack
Latest version: 2.0.5

# GrowthOps Ext Next.js

A collection of useful components, helpers, and extensions for Next.js projects.

## Components

### ProgressBar
Provides a wrapper around the `nprogress` package.

**Example**
```js
// <project>/pages/_app.js

import React from 'react';
import App from 'next/app.js';
import {ProgressBar} from '@growthops/ext-nextjs/components';

class MyApp extends App {
	render() {
		const {Component, pageProps} = this.props;

		return (
			<ProgressBar>
				<Component {...pageProps}/>
			</ProgressBar>
		);
	}
}
```

### PreviewMode
A small floating "preview mode" component.

**Example**
```js
// <project>/pages/_app.js

import React from 'react';
import App from 'next/app.js';
import {ProgressBar, PreviewMode} from '@growthops/ext-nextjs/components';

class MyApp extends App {
	render() {
		const {Component, pageProps} = this.props;

		return (
			<ProgressBar>
				<Component {...pageProps}/>
				<PreviewMode disableUrl="/api/preview-mode/disable"/>
			</ProgressBar>
		);
	}
}
```

## Utils

### previewModeEnable / previewModeDisable
Next.js preview mode API route helpers.

**Example**
```js
// <project>/pages/api/preview-mode/enable.js

import {previewModeEnable} from '@growthops/ext-nextjs/utils';

export default function preview(request, response) {
	return previewModeEnable(request, response, process.env.PREVIEW_MODE_SECRET);
}

// <project>/pages/api/preview-mode/disable.js

import {previewModeDisable} from '@growthops/ext-nextjs/utils';

export default function preview(request, response) {
	return previewModeDisable(response);
}
```

An optional `redirectTo` argument can be passed to either function as the last argument to customise the redirect path.

**Example**
```js
// <project>/pages/api/preview-mode/enable.js

import {previewModeEnable} from '@growthops/ext-nextjs/utils';

export default function preview(request, response) {
	return previewModeEnable(request, response, process.env.PREVIEW_MODE_SECRET, '/home');
}
```
npm package: @growthops/ext-react
Description: React library for the GO Digital modern stack
Latest version: 1.1.3

# GrowthOps Ext React

[![codecov](https://codecov.io/gh/growthops-digital/ext-react/branch/main/graph/badge.svg?token=4ECGIC3SDY)](https://codecov.io/gh/growthops-digital/ext-react)

A collection of useful components, helpers, and extensions for React projects.

## Utilities

### useState
`import {useState} from '@growthops/ext-react';`

This is a wrapper around React's standard `useState` hook, offering out of the box integration with Ramda's `evolve` function. There is one notable difference however in this case, any non-function value passed in will be assigned as-is, while functions will be executed with the current state (object) value as you would expect with Ramda's `evolve` function.

**Example 1**
```js
import React from 'react';
import {useState} from '@growthops/ext-react';
import {inc} from 'ramda';

const Example = () = {
	const {state, setState} = useState({counter: 0});

	const incrementCounter = () => setState({counter: inc});

	return (
		<button type="button" onClick={incrementCounter}>Increment</button>
	);
};

export default Example;
```

**Example 2**
```js
import React from 'react';
import {useState} from '@growthops/ext-react';

const Example = () = {
	const {state, setState} = useState({counter: 0});

	const setCounterToFortyTwo = () => setState({counter: 42});

	return (
		<button type="button" onClick={setCounterToFortyTwo}>Set</button>
	);
};

export default Example;
```
npm package: @growthops/generator-kh-drupal-theme
Description: Generates custom webpack-based themes for Drupal 8
Author: Dave Kuhn
Latest version: 1.0.1
Deprecated: this package has been deprecated

# generator-kh-drupal-theme [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url]

> Generates custom Webpack-based themes for Drupal 8

## Installation

First, install [Yeoman](http://yeoman.io) and generator-kh-drupal-theme using [npm](https://www.npmjs.com/) (we assume you have pre-installed [node.js](https://nodejs.org/)).

```bash
npm install -g yo
npm install -g @growthops/generator-kh-drupal-theme
```

## Usage

Say you want to generate a theme called "My Custom Theme"

```bash
mkdir -p custom/my_custom_theme
cd custom/my_custom_theme
yo @growthops/kh-drupal-theme
```

Then at the prompts

1. Enter your theme name (e.g. My Custom Theme)
2. Enter your local drupal server's URI (e.g. http://my-awesome-site.dev.dd:8083)

Finally start your webpack dev server

```bash
npm start
```

## License

MIT © [Trimantium Growth Ops](https://growthops.com.au)

[npm-image]: https://badge.fury.io/js/generator-kh-drupal-theme.svg
[npm-url]: https://npmjs.org/package/generator-kh-drupal-theme
[travis-image]: https://travis-ci.org/kuhnza/generator-kh-drupal-theme.svg?branch=master
[travis-url]: https://travis-ci.org/kuhnza/generator-kh-drupal-theme
[daviddm-image]: https://david-dm.org/kuhnza/generator-kh-drupal-theme.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/kuhnza/generator-kh-drupal-theme
npm package: @growthpal/dwh-key-maps
Description: A package to handle dwh keys
Author: Growthpal
Latest version: 1.0.0

[![npm version](https://badge.fury.io/js/@growthpal%2Fvyasa.svg)](https://badge.fury.io/js/@growthpal%2Fvyasa)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

# dwh-Key-Maps

## A npm package to handle dwh keys. It will contain various helper functions to manage dwh keys.

This project requires NodeJS (version 8 or later) and NPM.
[Node](http://nodejs.org/) and [NPM](https://npmjs.org/) are really easy to install.
To make sure you have them available on your machine,
try running the following command.

```sh
$ npm -v && node -v
6.4.1
v8.16.0
```

## Usage
Install the package


```sh
npm install @growthpal/dwhKeyMaps
```

Import the package

```sh
const dwhKeyMaps = require("@growthpal/dwhKeyMaps")
or
import dwhKeyMaps from '@growthpal/dwhKeyMaps'
```

Current supported functions:
- convertV1ToV3Ids
    - Description: As the name suggest, this helper function will be used to convert v1 dwh ids to v3.
    - Usage: 
    ```sh
    const {convertV1ToV3Ids} = require("@growthpal/dwhKeyMaps")
    let v3Id = convertV1ToV3Ids(v1Id)
    ```