open-index/open-npm huggingface dataset:
npm package: @manifoldco/golem-js
Description: Artificial JS repo for testing
Author: Manifold
Latest version: 0.0.2

# ![](https://dragon-quest.org/images/6/64/DQ1-NES-GOLEM.png) golem-js

Artificial npm package for testing

This simulates an actual package we have, like [manifold-plan-table](https://github.com/manifoldco/manifold-plan-table). It’s useful for testing our [GitHub publish action](https://github.com/manifoldco/github-actions/tree/master/js-release), but without any consequences since nothing uses this.
npm package: @manifoldco/gql-zero
Description: A lightweight alternative for consuming GraphQL. Zero caching, zero bells. Zero Bloat.
Latest version: 0.2.0

# gql-zero

A lightweight alternative for consuming GraphQL. Zero caching, zero bells. Zero Bloat.

[Code of Conduct](./CODE_OF_CONDUCT.md) |
[Contribution Guidelines](./.github/CONTRIBUTING.md)

[![GitHub release](https://img.shields.io/github/tag/manifoldco/gql-zero.svg?label=latest)](https://github.com/manifoldco/gql-zero/releases)

[![Travis](https://img.shields.io/travis/manifoldco/gql-zero/master.svg)](https://travis-ci.org/manifoldco/gql-zero)

[![License](https://img.shields.io/badge/license-BSD-blue.svg)](./LICENSE.md)
npm package: @manifoldco/mamba
Description: A tool for signing URLs using secp521r1
Author: manifoldco
Latest version: 0.3.6

[![Build Status](https://travis-ci.org/manifoldco/mamba.svg?branch=master)](https://travis-ci.org/manifoldco/mamba)
[![codecov](https://codecov.io/gh/manifoldco/mamba/branch/master/graph/badge.svg)](https://codecov.io/gh/manifoldco/mamba)
[![npm (scoped)](https://img.shields.io/npm/v/@manifoldco/mamba.svg)](https://www.npmjs.com/package/@manifoldco/mamba)

# mamba

A library for signing URLs using ECDSA P-521 keys and SHA-512 encryption.

## Installation

```
$ npm i @manifoldco/mamba
```

## Usage

The `sign` function accepts a URL and a private ECDSA P-521 encryption key. It returns the same URL with a timestamp and signature in the query denoted by `ts` and `sig`, respectively. You can use a PEM or a DER key.

### With a PEM key

```js
import { sign } from "@manifoldco/mamba";

const signedUrl = sign(
  "https://api.manifold.co/v1/users?bar=foo&abc=cba",
  somePrivateKey
);

// https://api.manifold.co/v1/users?bar=foo&abc=cba&ts=1543524418617&sig=MIGIAkIB8w1v%2F8VqdCXRUvKuTM7F%2F%2B8gpUJe5p2ewronH4Uakw3QD8WGGGxIpkX6bXiDdfUHxoc0K14Rl%2FBLEKQVHxK8pXYCQgFxffVMjMCUOaWbPRthEMSGL%2Fy3RuSPZigHs1RoHsqngrEvbSZwPW3ioLMxIPrjfva%2BxeAD7xHznhaaRyKU6ogX%2Bg%3D%3D
```

### With a DER key

Use `formatPrivateDERKey`, which accepts either a string or a buffer.

```js
import { sign, formatPrivateDERKey, KeyType } from "@manifoldco/mamba";

const signedUrl = sign(
  "https://api.manifold.co/v1/users?bar=foo&abc=cba",
  formatPrivateDERKey(somePrivateKey)
);
```

## Development

Follow the instructions below to contribute.

### Installation

Clone the repo:

```
$ git clone git@github.com:manifoldco/mamba.git
```

Then change into the directory and install dependencies:

```
$ cd mamba
$ npm i
```

### Making Changes

All code files and tests are located in the `src/` folder. After making changes, run the build command:

```
$ npm run build
```

This compiles the TypeScript to JavaScript and places it in the `dist/` folder.

### Testing

Please add tests for any new code you write. Run tests with

```
$ npm test
```

Note: you will need node 10.12.0 or higher in order to run the tests, which generate public and private keys for testing using functionality not available in previous releases.