open-index/open-npm huggingface dataset:
npm package: @gopher.js/defer
Description: Defer is a wrapper for your functions that tried to implement a similar way to `defer` keyword in go.
Latest version: 1.0.2

# @gopher.js/defer

Defer is a wrapper for your functions that tried to implement a similar way to `defer` keyword in go.

## Installation

with npm

```sh
npm install @gopher.js/defer
```

with yarn

```sh
yarn add @gopher.js/defer
```

## Usage

Defer comes with 2 wrapper functions:

- withDefer
- withDeferAsync

Every time you call defer, the function passed is added to a stack. After the wrapper function completes,
the wrapper starts popping the stack functions and calling them in the reverse order they were inserted.

### With Defer

```js
const { withDefer } = require('@gopher.js/defer')

const result = withDefer((defer) => {
  defer(function() {console.log("this will print third")})
  defer(function() {console.log("this will print second")})
  console.log("I will print before all others")
  return 1 + 2;
})
console.log("This will print at the end. Result:", result)
```

### With Defer Async

```js
const { withDeferAsync } = require('@gopher.js/defer')

// inside an async function
const result = await withDeferAsync(async (defer) => {
  defer(() => new Promise((resolve) => {
    console.log("this will print third")
    resolve();
  }))
  defer(() => new Promise((resolve) => {
    console.log("this will print second")
    resolve();
  }))
  console.log("I will print before all others")
  return 1 + 2;
})
console.log("This will print at the end. Result:", result)
```

What if a promise rejects?

The function will throw an error
npm package: @gopherhole/cli
Description: GopherHole CLI - Connect AI agents to the world
Author: GopherHole
Latest version: 0.1.23

# 🐿️ GopherHole CLI

Connect AI agents to the world.

## Installation

```bash
# Use with npx (no install required)
npx gopherhole init

# Or install globally
npm install -g gopherhole
```

## Quick Start

```bash
# Initialize a new agent in your project
npx gopherhole init

# This will:
# 1. Log you in (or create an account)
# 2. Create an agent
# 3. Save your API key to .env
# 4. Generate example code
```

## Commands

### Authentication

```bash
gopherhole login          # Log in to GopherHole
gopherhole signup         # Create a new account
gopherhole logout         # Log out
gopherhole whoami         # Show current user
```

### Agent Management

```bash
gopherhole agents list              # List your agents
gopherhole agents create            # Create a new agent (interactive)
gopherhole agents create -n mybot   # Create with name
gopherhole agents delete <id>       # Delete an agent
```

### Project Setup

```bash
gopherhole init           # Initialize GopherHole in current directory
```

### Testing

```bash
gopherhole send <agentId> "Hello!"  # Send a test message
```

## Configuration

The CLI stores configuration in:
- **macOS**: `~/Library/Preferences/gopherhole-nodejs/`
- **Linux**: `~/.config/gopherhole-nodejs/`
- **Windows**: `%APPDATA%/gopherhole-nodejs/`

## Links

- Website: https://gopherhole.ai
- Dashboard: https://gopherhole.ai/dashboard
- Docs: https://docs.gopherhole.ai
- GitHub: https://github.com/gopherhole

## License

MIT
npm package: @gopherhole/openclaw
Description: GopherHole A2A plugin for OpenClaw - connect your AI agent to the GopherHole network
Latest version: 0.1.2
Deprecated: Renamed to gopherhole_openclaw_a2a - please use that package instead

# @gopherhole/openclaw

GopherHole A2A plugin for [OpenClaw](https://openclaw.ai) — connect your AI agent to the [GopherHole](https://gopherhole.ai) agent network.

## Installation

```bash
openclaw plugins install @gopherhole/openclaw
```

Or manually:

```bash
npm install @gopherhole/openclaw
```

Then add to your OpenClaw config:

```json5
{
  plugins: {
    entries: {
      "a2a": { enabled: true }
    }
  },
  channels: {
    a2a: {
      gopherhole: {
        hubUrl: "wss://gopherhole.ai/ws",
        apiKey: "gph_your_api_key_here"
      }
    }
  }
}
```

## Getting an API Key

1. Go to [gopherhole.ai](https://gopherhole.ai)
2. Sign in with GitHub
3. Go to Settings → API Keys
4. Create a new key for your OpenClaw instance

## Features

- **Connect to GopherHole hub** — join the A2A agent network
- **Message other agents** — use the `a2a_agents` tool to discover and message agents
- **Receive messages** — other agents can message your OpenClaw agent
- **Auto-reconnect** — maintains persistent WebSocket connection

## Usage

Once configured, you can use the `a2a_agents` tool:

```
# List connected agents
a2a_agents action=list

# Send a message to an agent
a2a_agents action=send agentId=agent-memory-official message="store: remember this"
```

## Links

- [GopherHole Hub](https://gopherhole.ai)
- [GopherHole Docs](https://docs.gopherhole.ai)
- [OpenClaw](https://openclaw.ai)
npm package: @gopick/database-module
Description: Gopick database module
Author: Gopick
Latest version: 1.0.2

# Gopick database module

Para el correcto funcionamiento de este módulo son necesarias las siguientes variable de entorno:

- `export PGPORT=5432`
- `export PGUSER=gopickdev`
- `export PGPASSWORD=gopickdev`
- `export PGDATABASE=gopickdev`
- `export PG_WRITER_HOST=localhost`
- `export PG_READER_HOST=localhost`

> NOTA: **Los valores anteriores se pueden copiar directamente en .zshrc**
npm package: @goplugin/contracts2_2
Description: GoPlugin smart contracts
Author: GoPlugin devs
Latest version: 0.0.1

# Chainlink Smart Contracts

## Installation

```sh
# via pnpm
$ pnpm add @goplugin/contractsv2
# via npm
$ npm install @goplugin/contractsv2 --save
```

### Directory Structure

```sh
@goplugin/contracts
├── src # Solidity contracts
│   ├── v0.4
│   ├── v0.5
│   ├── v0.6
│   ├── v0.7
│   └── v0.8
└── abi # ABI json output
    ├── v0.4
    ├── v0.5
    ├── v0.6
    ├── v0.7
    └── v0.8
```

### Usage

The solidity smart contracts themselves can be imported via the `src` directory of `@chainlink/contracts`:

```solidity
import '@goplugin/contracts/src/v0.8/AutomationCompatibleInterface.sol';

```

## Local Development

Note: Contracts in `dev/` directories are under active development and are likely unaudited. Please refrain from using these in production applications.

```bash
# Clone Chainlink repository
$ git clone https://github.com/goplugin/pluginV2.git
# Continuing via pnpm
$ cd contracts/
$ pnpm
$ pnpm test
```

## Contributing

Please try to adhere to [Solidity Style Guide](https://github.com/goplugin/pluginV2/blob/develop/contracts/STYLE.md).

Contributions are welcome! Please refer to
[Plugin's contributing guidelines](https://github.com/goplugin/pluginV2/blob/develop/docs/CONTRIBUTING.md) for detailed
contribution information.

Thank you!

## License

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @goplugin/contracts2_3
Description: GoPlugin smart contracts
Author: GoPlugin devs
Latest version: 0.0.1

# Goplugin Smart Contracts

## Installation

```sh
# via pnpm
$ pnpm add @goplugin/contractsv2
# via npm
$ npm install @goplugin/contractsv2 --save
```

### Directory Structure

```sh
@goplugin/contracts
├── src # Solidity contracts
│   ├── v0.4
│   ├── v0.5
│   ├── v0.6
│   ├── v0.7
│   └── v0.8
└── abi # ABI json output
    ├── v0.4
    ├── v0.5
    ├── v0.6
    ├── v0.7
    └── v0.8
```

### Usage

The solidity smart contracts themselves can be imported via the `src` directory of `@chainlink/contracts`:

```solidity
import '@goplugin/contracts/src/v0.8/AutomationCompatibleInterface.sol';

```

## Local Development

Note: Contracts in `dev/` directories are under active development and are likely unaudited. Please refrain from using these in production applications.

```bash
# Clone Chainlink repository
$ git clone https://github.com/goplugin/pluginV2.git
# Continuing via pnpm
$ cd contracts/
$ pnpm
$ pnpm test
```

## Contributing

Please try to adhere to [Solidity Style Guide](https://github.com/goplugin/pluginV2/blob/develop/contracts/STYLE.md).

Contributions are welcome! Please refer to
[Plugin's contributing guidelines](https://github.com/goplugin/pluginV2/blob/develop/docs/CONTRIBUTING.md) for detailed
contribution information.

Thank you!

## License

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @goplugin/contractsv3
Description: Plugin smart contracts
Author: Plugin devs
Latest version: 1.0.0

# Plugin Smart Contracts

## Installation

```sh
# via pnpm
$ pnpm add @plugin/contracts
# via npm
$ npm install @plugin/contracts --save
```

### Directory Structure

```sh
@plugin/contracts
├── src # Solidity contracts
│   └── v0.8
└── abi # ABI json output
    └── v0.8
```

### Usage

The solidity smart contracts themselves can be imported via the `src` directory of `@plugin/contracts`:

```solidity
import '@plugin/contracts/src/v0.8/AutomationCompatibleInterface.sol';
```

## Local Development

Note: Contracts in `dev/` directories are under active development and are likely unaudited. Please refrain from using these in production applications.

```bash
# Clone Plugin repository
$ git clone https://github.com/goplugin/pluginv3.0.git
# Continuing via pnpm
$ cd contracts/
$ pnpm
$ pnpm test
```

## Contributing

Please try to adhere to [Solidity Style Guide](https://github.com/goplugin/pluginv3.0/blob/develop/contracts/STYLE.md).

Contributions are welcome! Please refer to
[Plugin's contributing guidelines](https://github.com/goplugin/pluginv3.0/blob/develop/docs/CONTRIBUTING.md) for detailed
contribution information.

Thank you!

### Changesets

We use [changesets](https://github.com/changesets/changesets) to manage versioning the contracts.

Every PR that modifies any configuration or code, should most likely accompanied by a changeset file.

To install `changesets`:
  1. Install `pnpm` if it is not already installed - [docs](https://pnpm.io/installation).
  2. Run `pnpm install`.

Either after or before you create a commit, run the `pnpm changeset` command in the `contracts` directory to create an accompanying changeset entry which will reflect on the CHANGELOG for the next release.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## License
Most of the contracts are licensed under the [MIT](https://choosealicense.com/licenses/mit/) license. 
An exception to this is the ccip folder, which defaults to be licensed under the [BUSL-1.1](./src/v0.8/ccip/LICENSE.md) license, however, there are a few exceptions

- `src/v0.8/ccip/applications/*` is licensed under the [MIT](./src/v0.8/ccip/LICENSE-MIT.md) license
- `src/v0.8/ccip/interfaces/*` is licensed under the [MIT](./src/v0.8/ccip/LICENSE-MIT.md) license
- `src/v0.8/ccip/libraries/{Client.sol, Internal.sol}` is licensed under the [MIT](./src/v0.8/ccip/LICENSE-MIT.md) license
npm package: @goplugin/plugin-test-helpers
Description: Helpers for testing plugin contracts
Author: goplugin
Latest version: 1.0.0
Deprecated: false

## Usage

Add to your project

```shell
npm install @goplugin/plugin-test-helpers --save
```

Add to tests

```javascript
const h = require("@goplugin/plugin-test-helpers");
```

### Helper Methods

Below are some examples of how to use the helper methods.

#### assertActionThrows

```javascript
await h.assertActionThrows(async () => {
  await cc.createRequest(jobId, url, path, times, {from: consumer});
});
```

#### decodeRunRequest

```javascript
let tx = await cc.createRequest(jobId, url, path, times, {from: consumer});
request = h.decodeRunRequest(tx.receipt.rawLogs[3]);
```

#### fulfillOracleRequest

```javascript
let tx = await cc.createRequest(jobId, url, path, times, {from: consumer});
request = h.decodeRunRequest(tx.receipt.rawLogs[3]);
await h.fulfillOracleRequest(oc, request, response, {from: oracleNode});
```

#### increaseBlocks

```javascript
h.increaseBlocks(25)
```

#### increaseTime5Minutes

```javascript
h.increaseTime5Minutes();
```
npm package: @goplugin/test
Description: GoPlugin smart contracts
Author: GoPlugin devs
Latest version: 0.0.1

# Chainlink Smart Contracts

## Installation

```sh
# via pnpm
$ pnpm add @goplugin/contractsv2
# via npm
$ npm install @goplugin/contractsv2 --save
```

### Directory Structure

```sh
@goplugin/contracts
├── src # Solidity contracts
│   ├── v0.4
│   ├── v0.5
│   ├── v0.6
│   ├── v0.7
│   └── v0.8
└── abi # ABI json output
    ├── v0.4
    ├── v0.5
    ├── v0.6
    ├── v0.7
    └── v0.8
```

### Usage

The solidity smart contracts themselves can be imported via the `src` directory of `@chainlink/contracts`:

```solidity
import '@goplugin/contracts/src/v0.8/AutomationCompatibleInterface.sol';

```

## Local Development

Note: Contracts in `dev/` directories are under active development and are likely unaudited. Please refrain from using these in production applications.

```bash
# Clone Chainlink repository
$ git clone https://github.com/goplugin/pluginV2.git
# Continuing via pnpm
$ cd contracts/
$ pnpm
$ pnpm test
```

## Contributing

Please try to adhere to [Solidity Style Guide](https://github.com/goplugin/pluginV2/blob/develop/contracts/STYLE.md).

Contributions are welcome! Please refer to
[Plugin's contributing guidelines](https://github.com/goplugin/pluginV2/blob/develop/docs/CONTRIBUTING.md) for detailed
contribution information.

Thank you!

## License

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @gopnic/crypto-js
Description: app crypto library
Author: Simon Kamenetskii
Latest version: 1.0.1

# crypto-js [![Build Status](https://travis-ci.com/gopnic-com/crypto-js.svg?branch=master)](https://travis-ci.com/gopnic-com/crypto-js) [![npm version](https://badge.fury.io/js/%40gopnic%2Fcrypto-js.svg)](https://badge.fury.io/js/%40gopnic%2Fcrypto-js)
A package for encrypting/decrypting messages with browser javascript.
npm package: @gorangajic/bull-arena
Description: Dashboard for the Bull worker queue
Author: Chuy Martinez
Latest version: 1.4.1

# Arena

An intuitive Web GUI for [Bull](https://github.com/optimalbits/bull). Built on Express so you can run Arena standalone, or mounted in another app as middleware.

For a quick introduction to the motivations for creating Arena, read *[Interactively monitoring Bull, a Redis-backed job queue for Node](https://www.mixmax.com/blog/introducing-bull-arena)*.

### Screenshots

[![](screen1_sm.png)](screen1.png) [![](screen2_sm.png)](screen2.png) [![](screen3_sm.png)](screen3.png)

### Features

* Check the health of a queue and its jobs at a glance
* Paginate and filter jobs by their state
* View details and stacktraces of jobs with permalinks
* Restart and retry jobs with one click

### Usage

#### Prerequisites

Configure your queues in the "queues" key of [`index.json`](src/server/config/index.json). Queues take the following format:

```json
{
  "name": "my_queue",
  "port": 6381,
  "host": "127.0.0.1",
  "hostId": "AWS Server 2"
}
```

The `name`, `port`, `host`, and `hostId` fields are required. `hostId` can be given any name, so it is recommended to give it a helpful name for reference. Optionally, you can also pass in `db` and `password` to configure redis credentials.

To specify a custom file location, see "Running Arena as a node module".

#### Running the server

Run `npm install` to fetch Arena's dependencies. Then run `npm start` to start the server.

Note that because Arena is dependent on `async`/`await`, Arena only currently supports Node `>7`.

#### Running Arena as a node module

Alternatively, you can use Arena as a node module. This has potential benefits:

* Arena can be configured to use any method of server/queue configuration desired
  * for example, fetching available redis queues from an AWS instance on server start
  * or even just plain old reading from environment variables
* Arena can be mounted in other express apps as middleware

Usage:

In project folder:

```
> npm install --save-dev bull-arena
```

In router.js:

```js
const express = require('express');
const router = express.Router();

const arena = require('bull-arena')({queues});
router.use('/', arena);
```

### Development

Arena is written using Express, with simple jQuery and Handlebars on the front end.

If updating dependencies, please use Yarn and update the `yarn.lock` file before submitting a pull request.

### License

The [MIT License](LICENSE).
npm package: @gorangajic/react-soundcloud-widget
Description: react.js powered SoundCloud player component
Author: troy betz
Latest version: 2.0.5

# react-soundcloud-widget [![Build Status](https://travis-ci.org/troybetz/react-soundcloud-widget.svg?branch=master)](https://travis-ci.org/troybetz/react-soundcloud-widget)

Simple [React](http://facebook.github.io/react) component acting as a thin
layer over the [SoundCloud HTML5 Widget](https://developers.soundcloud.com/docs/api/html5-widget).

## Features

- url playback
- customizable widget options
- playback event bindings
- lazy API loading

## Installation

```shell
$ npm install react-soundcloud-widget
```

## Usage

```js
<SoundCloud
  url={string}         // required
  id={string}          // defaults -> 'react-sc-widget'
  opts={object}        // defaults -> './lib/default-options'
  onPlay={func}        // defaults -> noop
  onPause={func}       // defaults -> noop
  onEnd={func}         // defaults -> noop
/>
```

## Example

```js
class Example extends Component {
  onPlay() {
    console.log('playing');
  }

  render() {
    return (
      <SoundCloud
        url={'https://soundcloud.com/sylvanesso/coffee'}
        onPlay={this.onPlay}
      />
    );
  }
}

```

### Widget options

Boolean toggles passed via `props.opts`

| Parameter | Purpose | Default|
| --------|-------------|------|
| `auto_play` | Start playing the widget after it’s loaded | `true` |
| `visual` | Display widget in [visual mode](https://soundcheck.soundcloud.com/music/our-new-visual-player/). | `false` |
| `buying` | Show/hide buy buttons | `true` |
| `liking` | Show/hide like buttons | `true` |
| `download` | Show/hide download buttons | `true` |
| `sharing` | Show/hide share buttons/dialogues | `true` |
| `show_artwork` | Show/hide artwork | `true` |
| `show_comments` | Show/hide comments | `true` |
| `show_playcount` | Show/hide number of sound plays | `true` |
| `show_user` | Show/hide the uploader name | `true` |
| `show_reposts` | Show/hide reposts | `false` |
| `hide_related` | Show/hide related tracks | `false` |

## Warning

Changing `props.url` currently adds an entry to `window.history`, breaking the back button (or at least adding another click to it).

You can see this in action at http://troybetz.com/react-soundcloud-widget/, change the url using the button and try navigating back.

This is outside my control for now, the widget used internally is served up and managed by SoundCloud. Super bummer.

## Caveat

Programmatic control of the widget as outlined in the [API docs](https://developers.soundcloud.com/docs/api/html5-widget) isn't included. Luckily, the API loads alongside the widget, so taking control is as easy as:

```js
var widget = SC.Widget('react-sc-player');
// do stuff
```

The component itself uses `SC.Widget.load`, `SC.Widget.bind` and `SC.Widget.unbind` internally. Using those methods outside the component may cause problems.

# License

  MIT
npm package: @gorangajic/storage-emitter
Description: Emit events between browser tabs
Author: Aleksey Kulikov
Latest version: 0.0.0

# storage-emitter

[![](https://img.shields.io/npm/v/storage-emitter.svg)](https://npmjs.org/package/storage-emitter)
[![](https://img.shields.io/travis/alekseykulikov/storage-emitter.svg)](https://travis-ci.org/alekseykulikov/storage-emitter)
[![](http://img.shields.io/npm/dm/storage-emitter.svg)](https://npmjs.org/package/storage-emitter)

> Emit events between browser tabs.

It's a small wrapper around
[`window.onstorage`](http://www.w3.org/TR/webstorage/#the-storage-event) event,
which is a part of WebStorage specification and available in IE8+ browsers.

It works like a regular instance of [EventEmitter](https://github.com/component/emitter),
with the only difference that event is fired in all open tabs for same domain.

Possible applications:

- perform **logout** in all open tabs
- sync in-memory objects between browser tabs, like [swarm.js](https://github.com/gritzko/swarm#storages)
- polyfill `indexeddb.onversionchange` event in [Safari](https://bugs.webkit.org/show_bug.cgi?id=136155)

## Example

```js
import sEmitter from 'storage-emitter'

// listen to "logout" event

sEmitter.on('logout', () =>
  location.reload()
})

// call "logout" from another tab

sEmitter.emit('logout')
```

## Installation

    $ yarn add storage-emitter
    $ npm i -S storage-emitter

## API

### sEmitter.on(event, callback)

Subscribe on `event` across all open application instances.

### sEmitter.emit(event, args)

Emit `event` with `args` to all open tabs.

### sEmitter.off([event])

Unsubscribe from all events or one specific `event`.

## License

[MIT]('./LICENSE')
npm package: @goranmedic/css-utilities
Description: Common css utility classes that can be used in any project
Author: Goran Medic
Latest version: 1.0.2

**Avoid unnecessary rewrite of CSS classes every time you start a new project and maintain consistency between your projects with this small lib.**

# Installation #
`npm i --save @goranmedic/css-utilities`

# How to add styles to your project #

You can add everything by including `./node_modules/@goranmedic/css-utilities/dist/index.css`
or separate files by including the file you need:
`./node_modules/@goranmedic/css-utilities/dist/paddings.css` for paddings.

Includes:

    * margins from 0 to 50 in increments of 5
    * paddings from 0 to 50 in increments of 5
    * 9 variations of 11 colors
    * font sizes from 8 to 36 in increments of 2
    * flexbox classes (including order,grow and shrink attributes from 0 to 10 in increments of 1)
    * borders from 1 to 5 in increments of 1
    * border radiuses from 0 to 14 in increments of 2
    * colored borders 
    * colored backgrounds
    * colored text


# How to use #

All classes have `.mod-` prefix, followed by attribute and value
Some examples:

    * `margin-top: 20px` is `.mod-margin-top-20` 
    * `margin: 20px` is `.mod-margin-20` 
    * `padding-bottom: 10px` is `.mod-padding-bottom-10` 
    * `padding: 10px` is `.mod-padding-10` 
    * `border-color: #868e97` is `.mod-border-color-gray-6` 
    * `border: 5px solid #ced4db` is `.mod-border-5` 
    * `border-radius: 12px` is `.mod-border-radius-12` 
    * `background-color: #ff8788` is `.mod-background-color-red-4` 
    * `color: #dee2e7` is `.mod-color-gray-3` 
    * `font-size: 10px` is `.mod-font-10` 
    * `display: flex` is `.mod-display-flex` 
    * `justify-content: center` is `.mod-justify-content-center` 
    * `flex-direction: column-reverse` is `.mod-flex-direction-column-reverse` 
    * `flex-grow: 6` is `.mod-flex-grow-6` 

I'll try to add more classes in the following versions.
npm package: @goraxe/generator-semantic-release
Description: A simple semantic release composable generator
Author: goraxe
Latest version: 1.0.6

# generator-semantic-release [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

> A simple semantic release composable generator

## Installation

First, install [Yeoman](http://yeoman.io) and generator-semantic-release 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 @goraxe/generator-semantic-release
```

Then generate your new project:

```bash
yo semantic-release
```

## Getting To Know Yeoman

- Yeoman has a heart of gold.
- Yeoman is a person with feelings and opinions, but is very easy to work with.
- Yeoman can be too opinionated at times but is easily convinced not to be.
- Feel free to [learn more about Yeoman](http://yeoman.io/).

## License

MIT © [goraxe]()

[npm-image]: https://badge.fury.io/js/@goraxe%2Fgenerator-semantic-release.svg
[npm-url]: https://npmjs.org/package/@goraxe/generator-semantic-release
[travis-image]: https://travis-ci.com/goraxe/generator-semantic-release.svg?branch=master
[travis-url]: https://travis-ci.com/goraxe/generator-semantic-release
[daviddm-image]: https://david-dm.org/goraxe/generator-semantic-release.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/goraxe/generator-semantic-release