open-index/open-npm huggingface dataset:
npm package: @steelydylan/markdown-it-imsize
Description: Markdown-it plugin to specify image size
Author: tatsy
Latest version: 1.0.2

# markdown-it-imsize

[![Build Status](https://travis-ci.org/tatsy/markdown-it-imsize.svg?branch=master)](https://travis-ci.org/tatsy/markdown-it-imsize)
[![NPM version](https://img.shields.io/npm/v/markdown-it-imsize.svg?style=flat)](https://www.npmjs.org/package/markdown-it-imsize)
[![Coverage Status](https://coveralls.io/repos/tatsy/markdown-it-imsize/badge.svg)](https://coveralls.io/r/tatsy/markdown-it-imsize)
[![Dependency Status](https://david-dm.org/tatsy/markdown-it-imsize.svg)](https://david-dm.org/tatsy/markdown-it-imsize)
[![devDependency Status](https://david-dm.org/tatsy/markdown-it-imsize/dev-status.svg)](https://david-dm.org/tatsy/markdown-it-imsize#info=devDependencies)

> A markdown-it plugin for size-specified image markups. This plugin overloads original image renderer of markdown-it.

## Usage

#### Enable plugin

```js
var md = require('markdown-it')({
  html: true,
  linkify: true,
  typography: true
}).use(require('markdown-it-imsize')); // <-- this use(package_name) is required
```

#### Example

```md
![test](image.png =100x200)
```

is interpreted as

```html
<p><img src="image.png" alt="test" width="100" height="200"></p>
```

## Options

#### Auto fill

```js
var md = require('markdown-it')({
  html: true,
  linkify: true,
  typography: true
}).use(require('markdown-it-imsize'), { autofill: true });
```

will fill the width and height fields automatically if the specified image path is valid.

Therefore,

```md
![test](image.png)
```

is interpreted as

```html
<p><img src="image.png" alt="test" width="200" height="200"></p>
```

where ```image.png``` is a valid path and its size is 200 x 200.

## Use with RequireJS

```markdown-it-imsize``` is available with bower and RequireJS. First, you can install the package with,

```shell
bower install markdown-it-imsize
```

Script for using ```markdown-it-imsize``` with RequireJS is like,

```js
require(['require', 'MarkdownIt', 'MarkdownItImsize'], function(require) {
  var md = require('MarkdownIt')({
    html: true,
    linkify: true,
    typography: true
  }).use(require('MarkdownItImsize'));

  var rendered = md.render("![test](test.jpg =100x)");
  document.getElementById('image-box').innerHTML = rendered;
});
```
npm package: @steelydylan/prism-diff-highlight
Description: Markdown-it plugin to specify image size
Author: steelydylan
Latest version: 1.0.4

# @steelydylan/prism-diff-highlight


#### Enable plugin

```js
import Prism from "prism"
import enableDiffHighlight from "@steelydylan/prism-diff-highlight"

enableDiffHighlight()
```
npm package: @steelydylan/scope-css
Description: Scope each css rule with a selector, ie. nest into parent
Author: ΔY
Latest version: 1.2.5

# scope-css [![unstable](https://img.shields.io/badge/stability-unstable-green.svg)](http://github.com/badges/stability-badges) [![Build Status](https://img.shields.io/travis/dy/scope-css.svg)](https://travis-ci.org/dy/scope-css)

Prefix or nest each style selector in a css string. Useful to create namespaced css for components, themes, applications, modular css etc. Also it is tiny.

## Usage

[![npm install scope-css](https://nodei.co/npm/scope-css.png?mini=true)](https://npmjs.org/package/scope-css/)

```js
const scope = require('scope-css');

scope(`
.my-component {}
.my-component-element {}
`, '.parent');

/*
`
.parent .my-component {}
.parent .my-component-element {}
`
*/
```

## API

## css = scope(css, parent, options?)

Return css string with each rule prefixed with the parent selector. Note that `parent` selector itself will be ignored. Also each `:host` keyword will be replaced with `parent` value. Example:

```js
scope(`
	.panel {}
	:host {}
	:host .my-element {}
	.panel .my-element {}
	.my-element {}
`, '.panel');

/*
`
	.panel {}
	.panel {}
	.panel .my-element {}
	.panel .my-element {}
	.panel .my-element {}
`
*/
```

Options can scope keyframes via `{ keyframes: bool|prefixStr }` option, eg.

```js
scope(`
	.panel {
		animation: infinite loading 4s;
	}
	@keyframes loading {
		from { top: 0; }
		to { top: 100px; }
	}
`, '.panel', { keyframes: true })

/*
`
.panel {
	animation: infinite panel-loading 4s;
}
@keyframes panel-loading {
	from { top: 0; }
	to { top: 100px; }
`)
*/
```

## css = scope.replace(css, 'replacement $1$2')

Apply replace to css, where `$1` is matched selectors and `$2` is rules for the selectors. It does not do any self/host detection, so use it for more flexible replacements.

```js
scope.replace(`
	.my-component, .my-other-component {
		padding: 0;
	}
`, '$1');

// `.my-component, .my-other-component`
```

## See also

* [scoped css polyfill](https://github.com/samthor/scoped)

## Credits

Based on [this question](http://stackoverflow.com/questions/12575845/what-is-the-regex-of-a-css-selector).
npm package: @steemfans/auth-data
Description: To sign and auth data without a json-rpc way.
Author: ETY001
Latest version: 1.0.2

# Auth Data SDK

This SDK is for the users who want to use steem user's private key to sign data to auth user identity without jsonrpc.

If you are using jsonrpc as your api protocol, you could refer to this SDK => [https://github.com/steemit/rpc-auth](https://github.com/steemit/rpc-auth) or this SDK => [https://github.com/steemit/koa-jsonrpc](https://github.com/steemit/koa-jsonrpc).

## Usage

### Sign Data

```
import { signData } from '@steemfans/auth-data';

// This is the data what you want to submit to server
const data = {
    username: 'test',
    avatar: '1.png',
};

// This is steem user's posting private key.
const privKeyOfTestUser = '5JP**********tH';

// sign the data
const signedData = signData(data, privKeyOfTestUser);

// submit the signedData
axios.post(url, signedData);  
```

### Auth Signature

```
import { authData } from '@steemfans/auth-data';

// get the submited data
const data = JSON.parse(this.request.body);

// get user's public key. the `getUserPublicKey` need be written by yourself.
const pubKey = yield getUserPublicKey(data.username, 'posting');

// auth the data
if (!authData(data, pubKey)) {
    throw Error('the signature is incorrect.');
}
```

### Other

If you want to use active key to sign data, you can add `auth_type` to the `data`
to point which key you are using.

```
import { signData } from '@steemfans/auth-data';

// This is the data what you want to submit to server
const data = {
    username: 'test',
    avatar: '1.png',
    auth_key: 'active',
};

// This is steem user's active private key.
const privKeyOfTestUser = '5JP**********tH';

// sign the data
const signedData = signData(data, privKeyOfTestUser);

// submit the signedData
axios.post(url, signedData);  
```

```
import { authData } from '@steemfans/auth-data';

// get the submited data
const data = JSON.parse(this.request.body);

// get user's public key. the `getUserPublicKey` need be written by yourself.
const pubKey = yield getUserPublicKey(data.username, data.auth_key);

// auth the data
if (!authData(data, pubKey)) {
    throw Error('the signature is incorrect.');
}
```

## Issues

If you have any issue, please be easy to submit on [the issue page](https://github.com/steemfans/auth-data/issues).

## Vote

I'm also a witness [@ety001](https://steemit.com/@ety001). 
Thank you for [voting me](https://steemlogin.com/sign/account-witness-vote?witness=ety001&approve=1).
npm package: @steemit/koa-jsonrpc
Description: Spec compliant JSON-RPC 2.0 server middleware for Koa
Latest version: 1.1.2


@steemit/koa-jsonrpc
====================

*Build status: [![CircleCI](https://circleci.com/gh/steemit/koa-jsonrpc.svg?style=svg)](https://circleci.com/gh/steemit/koa-jsonrpc)*

Spec compliant JSON RPC Server middleware for Koa


```javascript
const Koa = require('koa')
const {JsonRpc} = require('@steemit/koa-jsonrpc')

const rpc = new JsonRpc()
rpc.register('my_method', async (foo, bar) => {
    return foo + bar
})

const app = new Koa()
app.use(rpc.middleware)
app.listen(8080)

```

```
$ curl -X POST -d '{"id":1,"jsonrpc":"2.0","method":"my_method","params":["honkey","tonk"]}' localhost:8080
{"jsonrpc":"2.0","id":1,"result":"honkeytonk"}
```
npm package: @steemit/rpc-auth
Description: JSON-RPC 2.0 authentication using steem blockchain authorities
Latest version: 1.1.1


@steemit/rpc-auth
=================

JSONRPC 2.0 authentication with steem authorities


Specification
-------------

### Overview

Request signing for [JSON-RPC 2.0](http://www.jsonrpc.org/specification) implemented using [steem](https://steem.io) authorities.

### Signed request

Requests are signed with steem keys belonging to the sender.

Example JSON-RPC request:
```json
{
    "jsonrpc": "2.0",
    "id": 123,
    "method": "foo.bar",
    "params": {
        "hello": "there"
    }
}
```

Above request signed with the posting key belonging to `foo`:
```json
{
    "jsonrpc": "2.0",
    "method": "foo.bar",
    "id": 123,
    "params": {
        "__signed": {
            "account": "foo",
            "nonce": "1773e363793b44c3",
            "params": "eyJoZWxsbyI6InRoZXJlIn0=",
            "signatures": [
                "1f02df499f15c8757754c11251a6e5238296f56b17f7229202fce6ccd7289e224c49c32eaf77d5905e2b4d8a8a5ddcc215c51ce45c207ef0f038328200578d1bee"
            ],
            "timestamp": "2017-11-26T16:57:40.633Z"
        }
    }
}
```

Signature creation pseudocode:
```python

# JSON+Base64 request params
params = base64(json_encode(request['params']))

# 8 byte nonce
nonce = random_bytes(8)

# ISO 8601 formatted timestamp
timestamp = date_now() # "2017-11-26T16:57:40.633Z"

# Signer account name
account = 'foo'

# Private posting key belonging to foo
signing_key = PrivateKey('...')

# Signing constant K (sha256('steem_jsonrpc_auth'))
K = bytes_from_hex('3b3b081e46ea808d5a96b08c4bc5003f5e15767090f344faab531ec57565136b')

# first round of sha256
first = sha256(timestamp + account + method + params)

# message to be signed
message = sha256(K + first + nonce)


signature = ecdsa_sign(message, signing_key)
```

### Signature validation

  1. Entire request must be <64k for sanity/anti-DoS
  1. Request must be valid json and json-rpc
  1. `request['params']['__signed']` must exist
  1. `request['params']['__signed']` must be the only item in `request['params']`
  1. `request['params']['__signed']['params']` must be valid base64
  1. `request['params']['__signed']['params']` when base64 decoded must be valid json
  1. `request['params']['__signed']['nonce']` must exist and be a hex string of length 16 (8 bytes decoded)
  1. `request['params']['__signed']['timestamp']` must exist and be a valid iso8601 datetime ending in Z
  1. `request['params']['__signed']['timestamp']` must be within the last 60 seconds
  1. `request['params']['__signed']['account']` must be a valid steem blockchain account
  1. `request['params']['__signed']['signature']` must be a hex string >= 64 chars (32+ bytes decoded)
  1. construct `first = sha256( request['params']['__signed']['timestamp'] + request['params']['__signed']['account'] + request['method'] + request['params']['__signed']['params'] ).bytes()`
  1. construct `signedstring = sha256( K + first + unhexlify(nonce)).bytes()`
  1. check signature, signedstring against posting authorities for `request['params']['__signed']['account']`
npm package: @steepleinc/youtubei.js
Description: A JavaScript client for YouTube's private API, known as InnerTube.
Author: LuanRT
Latest version: 13.0.0

<!-- BADGE LINKS -->
[npm]: https://www.npmjs.com/package/youtubei.js
[versions]: https://www.npmjs.com/package/youtubei.js?activeTab=versions
[codefactor]: https://www.codefactor.io/repository/github/luanrt/youtube.js
[actions]: https://github.com/LuanRT/YouTube.js/actions
[discord]: https://discord.gg/syDu7Yks54

<div align="center">
  <br/>
  <p>
    <a href="https://github.com/LuanRT/YouTube.js">
      <img src="https://luanrt.github.io/assets/img/ytjs.svg" alt="YouTube.js Logo" width="200" />
    </a>
  </p>
  <p>A JavaScript client for YouTube's private API</p>

[![Discord](https://img.shields.io/badge/discord-online-brightgreen.svg)][discord]
[![CI](https://github.com/LuanRT/YouTube.js/actions/workflows/test.yml/badge.svg)][actions]
[![NPM Version](https://img.shields.io/npm/v/youtubei.js?color=%2335C757)][versions]
[![Downloads](https://img.shields.io/npm/dt/youtubei.js)][npm]
[![Codefactor](https://www.codefactor.io/repository/github/luanrt/youtube.js/badge)][codefactor]

</div>

YouTube.js is a JavaScript client for YouTube's private API, known as "InnerTube". It allows you to interact with YouTube programmatically, providing access to videos, comments, live chats, streaming data and more. It works seamlessly across Node.js, Deno, and modern browsers.

## Installation

Before installing, make sure your environment meets the [prerequisites](https://ytjs.dev/guide/getting-started.html#prerequisites).

```bash
# NPM
npm install youtubei.js@latest

# Yarn
yarn add youtubei.js@latest

# Git (edge version)
npm install github:LuanRT/YouTube.js

# Deno
deno add npm:youtubei.js@latest
```

Deno (deprecated):
```ts
import { Innertube } from 'https://deno.land/x/youtubei/deno.ts';
```

## Basic Usage

```ts
// const { Innertube } = require('youtubei.js');
import { Innertube } from 'youtubei.js';
const innertube = await Innertube.create(/* options */);
```

For detailed usage, check out the [YouTube.js Guide and API Documentation](https://ytjs.dev).

## Contributing
We welcome all contributions, issues and feature requests, whether small or large. If you want to contribute, feel free to check out our [issues page](https://github.com/LuanRT/YouTube.js/issues) and our [guidelines](https://github.com/LuanRT/YouTube.js/blob/main/CONTRIBUTING.md).

## Contributors
<a href="https://github.com/LuanRT/YouTube.js/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=LuanRT/YouTube.js" />
</a>

## Disclaimer
This project is not affiliated with, endorsed, or sponsored by YouTube or any of its affiliates or subsidiaries. All trademarks, logos, and brand names used in this project are the property of their respective owners and are used solely to describe the services provided.

As such, any usage of trademarks to refer to such services is considered nominative use. If you have any questions or concerns, please contact me.

## License
Distributed under the [MIT](https://choosealicense.com/licenses/mit/) License.

<p align="right">
(<a href="#top">back to top</a>)
</p>
npm package: @steeplejack/core
Description: The Steeplejack core objects
Author: Simon Emms
Latest version: 1.0.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @steeplejack/core

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Node.js Version][node-version-image]][node-version-url]
[![Build Status][travis-image]][travis-url]
[![Code Quality][quality-image]][quality-url]
[![Dependencies][dependencies-image]][dependencies-url]
[![Dev Depedencies][dev-dependencies-image]][dev-dependencies-url]

The Steeplejack core objects

# License

MIT License

[npm-image]: https://img.shields.io/npm/v/@steeplejack/core.svg?style=flat
[downloads-image]: https://img.shields.io/npm/dm/@steeplejack/core.svg?style=flat
[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_4.0-brightgreen.svg?style=flat
[travis-image]: https://img.shields.io/travis/steeplejack-js/core.svg?style=flat
[dependencies-image]: https://img.shields.io/david/steeplejack-js/core.svg?style=flat
[dev-dependencies-image]: https://img.shields.io/david/dev/steeplejack-js/core.svg?style=flat
[quality-image]: https://www.bithound.io/github/steeplejack-js/core/badges/score.svg


[npm-url]: https://npmjs.org/package/@steeplejack/core
[node-version-url]: http://nodejs.org/download/
[travis-url]: https://travis-ci.org/steeplejack-js/core
[downloads-url]: https://npmjs.org/package/@steeplejack/core
[dependencies-url]: https://david-dm.org/steeplejack-js/core
[dev-dependencies-url]: https://david-dm.org/steeplejack-js/core?type=dev
[quality-url]: https://www.bithound.io/github/steeplejack-js/core
npm package: @steeplejack/data
Description: The Steeplejack data modelling
Author: Simon Emms
Latest version: 1.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @steeplejack/data

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Node.js Version][node-version-image]][node-version-url]
[![Build Status][travis-image]][travis-url]
[![Code Quality][quality-image]][quality-url]
[![Dependencies][dependencies-image]][dependencies-url]
[![Dev Depedencies][dev-dependencies-image]][dev-dependencies-url]

The Steeplejack data modelling objects

# License

MIT License

[npm-image]: https://img.shields.io/npm/v/@steeplejack/data.svg?style=flat
[downloads-image]: https://img.shields.io/npm/dm/@steeplejack/data.svg?style=flat
[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_4.0-brightgreen.svg?style=flat
[travis-image]: https://img.shields.io/travis/steeplejack-js/data.svg?style=flat
[dependencies-image]: https://img.shields.io/david/steeplejack-js/data.svg?style=flat
[dev-dependencies-image]: https://img.shields.io/david/dev/steeplejack-js/data.svg?style=flat
[quality-image]: https://www.bithound.io/github/steeplejack-js/data/badges/sdata.svg


[npm-url]: https://npmjs.org/package/@steeplejack/data
[node-version-url]: http://nodejs.org/download/
[travis-url]: https://travis-ci.org/steeplejack-js/data
[downloads-url]: https://npmjs.org/package/@steeplejack/data
[dependencies-url]: https://david-dm.org/steeplejack-js/data
[dev-dependencies-url]: https://david-dm.org/steeplejack-js/data?type=dev
[quality-url]: https://www.bithound.io/github/steeplejack-js/data
npm package: @steeplejack/express
Description: Express strategy for Steeplejack
Author: Simon Emms
Latest version: 1.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Steeplejack Express

[Express](http://expressjs.com) strategy for [Steeplejack](http://steeplejack.info)

# Usage

In your [Steeplejack](http://getsteeplejack.com) bootstrapping, you'll need to import this Express plugin into the
`modules` section:

### app.js

```javascript
const Steeplejack = require('steeplejack');
const express = require('@steeplejack/express');

/* Bootstrap the Steeplejack app */
const app = Steeplejack.app({
  config: {},
  modules: [
    `${__dirname}/!(node_modules|routes)/**/*.js`,
    express,
  ],
  routesDir: `${__dirname}/routes`,
});

app.run(['server'], server => server);
```

Now you've done that, you can create the server with the Express strategy:

### server.js

```javascript
exports.default = (Server, config, { Express }) => {
  const express = new Express();

  return new Server(config.server, express);
};

exports.inject = {
  name: 'server',
  deps: [
    'steeplejack-server',
    '$config',
    'steeplejack-express',
  ],
};
```

The `steeplejack-express` dependency exposes two elements, `Express` (the strategy) and `expressLib` (the express 
library).

# License

MIT License
npm package: @steeplejack/injector
Description: The Steeplejack dependency injection library
Author: Simon Emms
Latest version: 1.2.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @steeplejack/injector

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Node.js Version][node-version-image]][node-version-url]
[![Build Status][travis-image]][travis-url]
[![Code Quality][quality-image]][quality-url]
[![Dependencies][dependencies-image]][dependencies-url]
[![Dev Depedencies][dev-dependencies-image]][dev-dependencies-url]

The Steeplejack dependency injection library

# License

MIT License

[npm-image]: https://img.shields.io/npm/v/@steeplejack/injector.svg?style=flat
[downloads-image]: https://img.shields.io/npm/dm/@steeplejack/injector.svg?style=flat
[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_4.0-brightgreen.svg?style=flat
[travis-image]: https://img.shields.io/travis/steeplejack-js/injector.svg?style=flat
[dependencies-image]: https://img.shields.io/david/steeplejack-js/injector.svg?style=flat
[dev-dependencies-image]: https://img.shields.io/david/dev/steeplejack-js/injector.svg?style=flat
[quality-image]: https://www.bithound.io/github/steeplejack-js/injector/badges/sinjector.svg


[npm-url]: https://npmjs.org/package/@steeplejack/injector
[node-version-url]: http://nodejs.org/download/
[travis-url]: https://travis-ci.org/steeplejack-js/injector
[downloads-url]: https://npmjs.org/package/@steeplejack/injector
[dependencies-url]: https://david-dm.org/steeplejack-js/injector
[dev-dependencies-url]: https://david-dm.org/steeplejack-js/injector?type=dev
[quality-url]: https://www.bithound.io/github/steeplejack-js/injector
npm package: @steeplejack/restify
Description: Restify strategy for Steeplejack
Author: Simon Emms
Latest version: 1.0.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Steeplejack Restify

[Restify](http://restify.com) strategy for [Steeplejack](http://steeplejack.info)

# Usage

In your [Steeplejack](http://getsteeplejack.com) bootstrapping, you'll need to import this Restify plugin into the
`modules` section:

### app.js

```javascript
const Steeplejack = require('steeplejack');
const restify = require('@steeplejack/restify');

/* Bootstrap the Steeplejack app */
const app = Steeplejack.app({
  config: {},
  modules: [
    `${__dirname}/!(node_modules|routes)/**/*.js`,
    restify,
  ],
  routesDir: `${__dirname}/routes`,
});

app.run(['server'], server => server);
```

Now you've done that, you can create the server with the Restify strategy:

### server.js

> The `opts` object is the same opts as what is passed into the [Restify](http://restify.com/#creating-a-server) 
> `createServer` method 

```javascript
exports.default = (Server, config, { Restify }) => {
  const opts = {};
  const restify = new Restify(opts);

  return new Server(config.server, restify);
};

exports.inject = {
  name: 'server',
  deps: [
    'steeplejack-server',
    '$config',
    'steeplejack-restify',
  ],
};
```

The `steeplejack-restify` dependency exposes two elements, `Restify` (the strategy) and `restifyLib` (the restify 
library).

# License

MIT License
npm package: @steeplejack/socketio
Description: SocketIO strategy for Steeplejack
Author: Simon Emms
Latest version: 1.0.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Steeplejack SocketIO

[SocketIO](http://socket.io) strategy for [Steeplejack](http://steeplejack.info)

# Usage

In your [Steeplejack](http://getsteeplejack.com) bootstrapping, you'll need to import this SocketIO plugin into the
`modules` section:

> You will need to also include an HTTP server strategy. This example uses Restify, but you can use any of the other
> HTTP strategies in exactly the same way.

### app.js

```javascript
const Steeplejack = require('steeplejack');
const restify = require('@steeplejack/restify');
const socketIO = require('@steeplejack/socketio');

/* Bootstrap the Steeplejack app */
const app = Steeplejack.app({
  config: {},
  modules: [
    `${__dirname}/!(node_modules|routes)/**/*.js`,
    restify,
    socketIO,
  ],
  routesDir: `${__dirname}/routes`,
});

app.run(['server'], server => server);
```

### server.js

```javascript
exports.default = (Server, config, { Restify }, { SocketIO }) => {
  const restify = new Restify();
  const socketIo = new SocketIO();

  /* Add the websocket strategy as the third argument */
  return new Server(config.server, restify, socketIo);
};

exports.inject = {
  name: 'server',
  deps: [
    'steeplejack-server',
    '$config',
    'steeplejack-restify',
    'steeplejack-socketio',
  ],
};
```

This attaches the SocketIO strategy to the current HTTP server allowing you to make websocket connections on the same
server and port as your HTTP server.

The `steeplejack-socketio` dependency exposes two elements, `SocketIO` (the strategy) and `SocketIOLib` (the socketio 
library).

# License

MIT License
npm package: @steera/form-manager
Description: The application ships 2 components.          1. FormGenerator : Can be used to create a JSON template. Which can be used to create a Form based UI in React.         2. FormRenderer : Can be used to utilize the template created from FormGenerator and cre
Latest version: 0.4.5

## Form Manager Application

    The application ships 2 components. 
        1. FormGenerator : Can be used to create a JSON template. Which can be used to create a Form based UI in React.
        2. FormRenderer : Can be used to utilize the template created from FormGenerator and create a Forms UI.
npm package: @steera/react-components
Description: To Build a reusable React design system to speed and standardize web application development
Latest version: 0.4.16

## Building a React Design System

To Build a reusable React design system to speed and standardize web application development

Following are the reusable set of components available in design system.\
  Button-Solid, ouline, icon \
  Checkbox\
  Radio Button\
  Dropdown\
  AutoComplete/Combo Box \
  Tabs\
  Stepper\
  Side Menubar/Drawer\
  Charts\
  icon\
  Table(with pagination)
npm package: @steerapi/iohook
Description: Node.js global keyboard and mouse hook
Author: Aloyan Dmitry
Latest version: 0.7.1

# iohook

[![Build status](https://ci.appveyor.com/api/projects/status/2ntnlh6k953he5is?svg=true)](https://ci.appveyor.com/project/Djiit/iohook)
[![Build Status](https://travis-ci.org/wilix-team/iohook.svg?branch=master)](https://travis-ci.org/wilix-team/iohook)
[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/iohookjs/Lobby)
[![NPM version](https://img.shields.io/npm/v/iohook.svg)](https://www.npmjs.com/package/iohook)

## About

Node.js global native keyboard and mouse listener.

This module can handle keyboard and mouse events via native hooks inside and outside your JavaScript/TypeScript application.

Found a bug? Have an idea? Feel free to post an [issue](https://github.com/wilix-team/iohook/issues) or submit a [PR](https://github.com/wilix-team/iohook/pulls).

**Check out the [documentation](https://wilix-team.github.io/iohook).**

## Platform support

- Versions >= 0.6.0 support only officially supported platforms versions.
- Versions 0.5.X are the last to support Electron < 4.0.0
- Versions 0.4.X are the last to support for Node < 8.0 and Electron < 2.0.0

## Installation

iohook provides prebuilt version for a bunch of OSes and platforms.

```bash
npm install iohook --save # or yarn add iohook
```

## FAQ

Q. _Does this module require Java ?_

A. No, this module doesn't require Java (like jnativehook) or any other runtimes.

Q. _Is iohook compatible with Node/Electron version X.Y.Z ?_

A. We try to match the currently supported version of both [Node](https://nodejs.org/en/about/releases/) and [Electron](https://electronjs.org/docs/tutorial/support#currently-supported-versions).

## Apps

Are you using iohook in your project ? Please tell us in a [PR](https://github.com/wilix-team/iohook/pulls) so we an add it to the list !

- [Cortex](https://crtx.gg/)

## Contributors

Thanks to _kwhat_ for the [libuiohook](https://github.com/kwhat/libuiohook) project and [ayoubserti](https://github.com/ayoubserti) for the first iohook prototype.

- [vespakoen](https://github.com/vespakoen) (prebuild system implementation)
- [matthewshirley](https://github.com/matthewshirley) (Windows prebuild fix)
- [djiit](https://github.com/djiit) (project & community help)
- [ezain](https://github.com/eboukamza) (add feature enable/disable mouse click propagation)
- [anoadragon453](https://github.com/anoadragon453) (electron 4+ support)
- All the other contributors. Feel free to extend this list !
npm package: @steeringwaves/eslint-config
Description: Steeringwave's ESLint config, following our styleguide
Latest version: 2.1.7

# @steeringwaves/eslint-config

This package provides an extensible shared ESLint config.

## Usage

Our default export contains most of our ESLint rules. It requires `eslint`, `eslint-plugin-import`, `eslint-plugin-react`, `eslint-plugin-react-hooks`, and `eslint-plugin-jsx-a11y`.

1. Install the correct versions of each package, which are listed by the command:

```sh
npm info "@steeringwaves/eslint-config@latest" peerDependencies
```

If using **npm 5+**, use this shortcut

```sh
npx install-peerdeps --dev @steeringwaves/eslint-config
```

If using **yarn**, you can also use the shortcut described above if you have npm 5+ installed on your machine, as the command will detect that you are using yarn and will act accordingly.
Otherwise, run `npm info "@steeringwaves/eslint-config@latest" peerDependencies` to list the peer dependencies and versions, then run `yarn add --dev <dependency>@<version>` for each listed peer dependency.

If using **npm < 5**, Linux/OSX users can run

```sh
(
  export PKG='@steeringwaves/eslint-config';
  npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)
```

Which produces and runs a command like:

```sh
npm install --save-dev @steeringwaves/eslint-config eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# eslint-plugin-react-hooks@^#.#.#
```

If using **npm < 5**, Windows users can either install all the peer dependencies manually, or use the [install-peerdeps](https://github.com/nathanhleung/install-peerdeps) cli tool.

```sh
npm install -g install-peerdeps
install-peerdeps --dev @steeringwaves/eslint-config
```

The cli will produce and run a command like:

```sh
npm install --save-dev @steeringwaves/eslint-config eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# eslint-plugin-react-hooks@^#.#.#
```

2. Add `"extends": "@steeringwaves/eslint-config"` to your `.eslintrc`
npm package: @steeringwaves/prettier-config
Description: Steeringwave's Prettier config, following our styleguide
Latest version: 1.0.2

# @steeringwaves/prettier-config

This package provides an extensible shared Prettier config.

## Usage

Our default export contains most of our Prettier rules. It requires `prettier`.

1. Install the correct versions of each package, which are listed by the command:

```sh
npm info "@steeringwaves/prettier-config@latest" peerDependencies
```

If using **npm 5+**, use this shortcut

```sh
npx install-peerdeps --dev @steeringwaves/prettier-config
```

If using **yarn**, you can also use the shortcut described above if you have npm 5+ installed on your machine, as the command will detect that you are using yarn and will act accordingly.
Otherwise, run `npm info "@steeringwaves/prettier-config@latest" peerDependencies` to list the peer dependencies and versions, then run `yarn add --dev <dependency>@<version>` for each listed peer dependency.

If using **npm < 5**, Linux/OSX users can run

```sh
(
  export PKG='@steeringwaves/prettier-config';
  npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)
```

Which produces and runs a command like:

```sh
npm install --save-dev @steeringwaves/prettier-config prettier@^#.#.#
```

If using **npm < 5**, Windows users can either install all the peer dependencies manually, or use the [install-peerdeps](https://github.com/nathanhleung/install-peerdeps) cli tool.

```sh
npm install -g install-peerdeps
install-peerdeps --dev @steeringwaves/prettier-config
```

The cli will produce and run a command like:

```sh
npm install --save-dev @steeringwaves/prettier-config prettier@^#.#.#
```

2. Add `"@steeringwaves/prettier-config"` to your `.prettierrc`
npm package: @steerio/apollo-cursor-pagination
Description: Relay's Connection implementation for Apollo Server GraphQL library
Author: Daniel Merrill
Latest version: 0.5.1

# Apollo Cursor Pagination

Implementation of Relay's Connection specs for Apollo Server. Allows your Apollo Server to do cursor-based pagination. It can connect to any ORM, but only the connection with Knex.js is implemented currently.

## Installation

`yarn add apollo-cursor-pagination`

## Usage

### Using an existing connector

Use the `paginate` function of the connector in your GraphQL resolver.

`paginate` receives the following arguments:

1- `nodesAccessor`: An object that can be queried or accessed to obtain a reduced result set.

2- `args`: GraphQL args for your connection. Can have the following fields: `first`, `last`, `before`, `after`.

3- `orderArgs`: If using a connector with stable cursor, you must indicate to `paginate` how are you sorting your query. Must contain `orderColumn` (which attribute you are ordering by) and `ascOrDesc` (which can be `asc` or `desc`). Note: apollo-cursor-pagination does not sort your query, you must do it yourself before calling `paginate`.

For example with the knex connector:

```javascript
// cats-connection.js
import { knexPaginator as paginate } from 'apollo-cursor-pagination';
import knex from '../../../db'; // Or instantiate a connection here

export default async (_, args) => {
  // orderBy must be the column to sort with or an array of columns for ordering by multiple fields
  // orderDirection must be 'asc' or 'desc', or an array of those values if ordering by multiples
  const {
    first, last, before, after, orderBy, orderDirection,
  } = args;

  const baseQuery = knex('cats');

  const result = await paginate(baseQuery, {first, last, before, after, orderBy, orderDirection});
  /* result will contain:
  * edges
  * totalCount
  * pageInfo { hasPreviousPage, hasNextPage, }
  */
  return result;
};
```

### Creating your own connector

Only Knex.js is implemented for now. If you want to connect to a different ORM, you must make your own connector.

To create your own connector:

1- Import `apolloCursorPaginationBuilder` from `src/builder/index.js`

2- Call `apolloCursorPaginationBuilder` with the specified params. It will generate a `paginate` function that you can export to use in your resolvers.

You can base off from `src/orm-connectors/knex/custom-pagination.js`.

## Contributing

Pull requests are welcome, specially to implement new connectors for different ORMs / Query builders.

When submitting a pull request, please include tests for the code you are submitting, and check that you did not break any working test.

### Testing and publishing changes

1- Code your changes

2- Run `yarn build`. This will generate a `dist` folder with the distributable files

3- `cd` into the test app and run `yarn install` and then `yarn test`. Check that all tests pass.

4- Send the PR. When accepted, the maintainer will publish a new version to npm using the new `dist` folder.

### Running the test suite

1- `cd tests/test-app`

2- `yarn install`

3- `yarn test`
npm package: @steerprotocol/api-sdk
Description: TypeScript SDK for Steer Protocol API
Author: Steer Protocol
Latest version: 1.1.2

# Smart Rewards SDK

A TypeScript SDK for interacting with the Smart Rewards protocol. This SDK provides a type-safe way to query campaigns, rewards, and user data from the Smart Rewards GraphQL API.

## Installation

```bash
npm install @steer-protocol/smart-rewards-sdk
# or
yarn add @steer-protocol/smart-rewards-sdk
```

## Quick Start

```typescript
import { createClient } from '@steer-protocol/smart-rewards-sdk';

// Initialize the SDK
const sdk = createClient('YOUR_API_ENDPOINT', {
  // Optional headers
  // authorization: 'Bearer YOUR_TOKEN'
});

// Query active campaigns
const campaigns = await sdk.campaigns({
  first: 10,
  filter: {
    status: CampaignStatus.Active
  }
});
```

## Features

- 🔒 Type-safe GraphQL queries
- 📊 Campaign management
- 💰 Reward tracking
- 👤 User balance monitoring
- 🏦 Vault interactions

## API Reference

### Client Initialization

```typescript
createClient(endpoint: string, headers?: Record<string, string>)
```

Creates a new SDK client instance.

### Campaigns

- `campaigns()`: Query campaigns with filtering and pagination
- `campaign(id: string)`: Get details of a specific campaign
- `campaignsByPool(poolId: string, chainId: number)`: Get campaigns for a specific pool

### Rewards

- `rewards()`: Get all rewards across campaigns
- `userRewards(options)`: Get rewards for a specific user
- `claimRewards(options)`: Query claimed rewards
- `rewardByCampaignId(id: string)`: Get rewards for a specific campaign

### Vaults

- `vaults()`: Query vaults with filtering and pagination
- `vault(id: string, chainId: number)`: Get details of a specific vault
- `vaultAPRs()`: Get APR data for vaults

### Pools

- `pools()`: Query pools with filtering and pagination
- `pool(id: string, chainId: number)`: Get details of a specific pool

## Examples

Check out the [examples directory](./src/examples) for more detailed usage examples:

- [Basic Usage](./src/examples/basic-usage.ts): Core SDK functionality
- Campaign Management
- Reward Tracking
- User Operations

## Type Definitions

The SDK provides comprehensive TypeScript definitions for all operations:

- Campaign types
- Reward structures
- Vault configurations
- Pool information
- User data

## Error Handling

The SDK uses standard Promise-based error handling. Wrap your calls in try-catch blocks:

```typescript
try {
  const result = await sdk.campaigns();
} catch (error) {
  console.error('Error fetching campaigns:', error);
}
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.

## License

[MIT License](./LICENSE)
npm package: @steerprotocol/app-loader
Description: App Loader for Steer Protocol
Author: Hebert Cisco
Latest version: 3.0.0

# Steer Protocol App Loader

Load and execute Steer wasm bundles in Node.js and browser environments.

Node 18+ is required.

## Install

```bash
npm install @steerprotocol/app-loader
```

## Runtime Support

- Root import `@steerprotocol/app-loader`
  - Node: resolves to the Node entrypoint
  - Browser bundlers: resolves to the browser entrypoint through the `browser` export condition
- Explicit browser import: `@steerprotocol/app-loader/browser`
- Explicit Node import: `@steerprotocol/app-loader/node`

## Usage

### Node

Use the root import for typical Node usage.

```ts
import { loadWasm } from '@steerprotocol/app-loader';

const bundle = await loadWasm('/absolute/path/to/bundle.wasm');
bundle.initialize('{"example":true}');
```

Node supports:

- filesystem paths
- `ArrayBuffer`
- remote URLs

Node runtime note:

- native `fetch` is required
- Node 18+ is the supported baseline

If you want an explicit Node-only import:

```ts
import { loadWasm } from '@steerprotocol/app-loader/node';
```

### Browser

The browser entry supports `ArrayBuffer` and remote URL loading.

```ts
import { loadWasm } from '@steerprotocol/app-loader';

const response = await fetch('/bundle.wasm');
const bundle = await loadWasm(await response.arrayBuffer());
bundle.initialize('{"example":true}');
```

If you want to pin the browser-specific entrypoint:

```ts
import { loadWasm } from '@steerprotocol/app-loader/browser';
```

### Browser `ccxt`

In browsers, `ccxt` is expected on `globalThis.ccxt`.

If you load `ccxt` from a CDN or hosted bundle, make sure it is available before executing wasm that depends on it.

```html
<script src="https://unpkg.com/ccxt@4.5.46/dist/ccxt.browser.min.js"></script>
```

The hosted browser build is covered by the default test suite with a live network smoke test against the same unpkg URL.

### Node `ccxt`

In Node, `ccxt` is loaded from the installed module automatically.

## API

Main exports:

- `loadWasm(input, imports?)`
- `loadWasmSync(input, imports?)`
- `Candle`
- `RawTradeData`

The returned wasm wrapper exposes the module surface when available, including:

- `initialize(config)`
- `execute(...args)`
- `config()`
- `transform()`
- `reset()`

## Development

### Build

```bash
npm run build
```

### Unit And Integration Tests

```bash
npm test
```

### Packed Consumer Smoke Tests

These tests validate the packed artifact in real consumer fixtures for:

- Node ESM
- Node CJS
- Vite browser builds

```bash
npm run test:consumers
```

This command builds the package, packs it, installs the tarball into fixture apps, and runs each fixture check.

## Migration Notes

Version 2 changes the package runtime contract.

- Browser consumers should rely on the root import only when their bundler honors the `browser` export condition.
- Browser `ccxt` integration now expects the hosted browser build on `globalThis.ccxt`.
- Node consumers should use the root import or `@steerprotocol/app-loader/node`.
- Browser consumers can use `@steerprotocol/app-loader/browser` to pin the browser-safe entrypoint explicitly.
npm package: @steerprotocol/data-connector-loader
Description: App Loader for Steer Protocol
Author: Steer Protocol
Latest version: 4.0.0

# Steer Protocol App Loader

## Public API

- `ExecutionAppConfig`: Configuration object for `ExecutionApp` (vault, chainId, subgraph URL, pool type flags, API keys, retries).
- `ExecutionApp`: High-level execution entrypoint for running bundles with a config-based constructor.
- `DataConnectorExecution`: Executes data connector bundles and handles request/response flow.

## Installation

Requires Node.js 18 or newer.

```bash
npm install @steerprotocol/data-connector-loader
# or
yarn add @steerprotocol/data-connector-loader
# or
pnpm add @steerprotocol/data-connector-loader
```

## ESM Support

This package publishes both CommonJS and ESM entrypoints via `exports`.
npm package: @steerprotocol/langchain-pglite-store
Description: LangChain store implementation using PGlite for local, in-memory, or browser-based PostgreSQL storage
Author: LangChain
Latest version: 0.0.2

# @steerprotocol/langchain-pglite-store

Implementation of a [LangChain.js](https://github.com/langchain-ai/langchainjs) chat message history store that uses PGlite for local, in-memory, or browser-based PostgreSQL storage.

## Features

- 🚀 Works in Node.js, Bun, Deno, and browsers
- 💾 Supports in-memory, file system, and IndexedDB storage
- 🔄 No external PostgreSQL server required
- 🌐 Perfect for local development and browser-based applications

## Installation

```bash
npm install @steerprotocol/langchain-pglite-store
```

## Usage

```typescript
import { PostgresChatMessageHistory } from "@steerprotocol/langchain-pglite-store";
import { HumanMessage, AIMessage } from "@langchain/core/messages";

// Create an in-memory chat history
const history = new PostgresChatMessageHistory({
  sessionId: "chat-session-1",
  poolConfig: {
    dataDir: "memory://chat-db"
  }
});

// Add messages
await history.addMessage(new HumanMessage("Hello! How are you?"));
await history.addMessage(new AIMessage("I'm doing great! How can I help you today?"));

// Retrieve messages
const messages = await history.getMessages();
console.log(messages);

// Clear messages
await history.clear();

// Don't forget to close the connection when done
await history.end();
```

## Storage Options

PGlite supports multiple storage backends:

### In-Memory (Ephemeral)
```typescript
const history = new PostgresChatMessageHistory({
  sessionId: "chat-session",
  poolConfig: {
    dataDir: "memory://my-db"
  }
});
```

### File System (Node.js/Bun)
```typescript
const history = new PostgresChatMessageHistory({
  sessionId: "chat-session",
  poolConfig: {
    dataDir: "file://./path/to/data"
  }
});
```

### IndexedDB (Browser)
```typescript
const history = new PostgresChatMessageHistory({
  sessionId: "chat-session",
  poolConfig: {
    dataDir: "idb://my-database"
  }
});
```

## Configuration Options

The `PostgresChatMessageHistory` constructor accepts the following options:

```typescript
type PostgresChatMessageHistoryInput = {
  // Name of the table to use (defaults to "langchain_chat_histories")
  tableName?: string;
  
  // Required session ID to separate different chat histories
  sessionId: string;
  
  // PGlite configuration options
  poolConfig?: PGliteOptions;
  
  // Or provide an existing PGlite instance
  pool?: PGlite;
  
  // Whether to escape table names (defaults to false)
  escapeTableName?: boolean;
};
```

## Testing

The tests use in-memory databases, so no setup is required. Just run:

```bash
npm test
```

## License

MIT
npm package: @steerprotocol/langgraph-checkpoint-pglite
Description: LangGraph checkpoint saver implementation using PGlite for local, in-memory, or browser-based PostgreSQL storage
Author: LangChain
Latest version: 0.0.6

# @steerprotocol/langgraph-checkpoint-pglite

Implementation of a [LangGraph.js](https://github.com/langchain-ai/langgraphjs) CheckpointSaver that uses PGlite for local, in-memory, or browser-based PostgreSQL storage.

## Features

- 🚀 Works in Node.js, Bun, Deno, and browsers
- 💾 Supports in-memory, file system, and IndexedDB storage
- 🔄 No external PostgreSQL server required
- 🌐 Perfect for local development and browser-based applications

## Installation

```bash
npm install @steerprotocol/langgraph-checkpoint-pglite
```

## Usage

```ts
import { PostgresSaver } from "@steerprotocol/langgraph-checkpoint-pglite";

const writeConfig = {
  configurable: {
    thread_id: "1",
    checkpoint_ns: ""
  }
};
const readConfig = {
  configurable: {
    thread_id: "1"
  }
};

// Create an in-memory database
const checkpointer = PostgresSaver.fromConnString("memory://");

// Or use file system storage (Node.js/Bun)
// const checkpointer = PostgresSaver.fromConnString("file://./my-database");

// Or use IndexedDB storage (Browser)
// const checkpointer = PostgresSaver.fromConnString("idb://my-database");

// You must call .setup() the first time you use the checkpointer:
await checkpointer.setup();

const checkpoint = {
  v: 1,
  ts: "2024-07-31T20:14:19.804150+00:00",
  id: "1ef4f797-8335-6428-8001-8a1503f9b875",
  channel_values: {
    my_key: "meow",
    node: "node"
  },
  channel_versions: {
    __start__: 2,
    my_key: 3,
    start:node: 3,
    node: 3
  },
  versions_seen: {
    __input__: {},
    __start__: {
      __start__: 1
    },
    node: {
      start:node: 2
    }
  },
  pending_sends: [],
}

// store checkpoint
await checkpointer.put(writeConfig, checkpoint, {}, {});

// load checkpoint
await checkpointer.get(readConfig);

// list checkpoints
for await (const checkpoint of checkpointer.list(readConfig)) {
  console.log(checkpoint);
}

// Don't forget to close the connection when done
await checkpointer.end();
```

## Storage Options

PGlite supports multiple storage backends:

### In-Memory (Ephemeral)
```ts
const checkpointer = PostgresSaver.fromConnString("memory://my-db");
```

### File System (Node.js/Bun)
```ts
const checkpointer = PostgresSaver.fromConnString("file://./path/to/data");
```

### IndexedDB (Browser)
```ts
const checkpointer = PostgresSaver.fromConnString("idb://my-database");
```

## Testing

The tests use in-memory databases, so no setup is required. Just run:

```bash
npm test
```

## License

MIT
npm package: @steezcram/sevenzip
Description: 7-Zip wrapper around 7za
Author: Thomas Croizet
Latest version: 1.1.6

# sevenzip

`sevenzip` is a wrapper around `7za.exe` for **Windows**, **Linux** and **Mac**. The goal is to provide a unique and an easy way to compress and extract multiple archives format.

## Motivation
I cannot find any NPM module that can compress in LZMA easily. They usally bind the command line without any modification to understand it better.

## Dependencies
The platform support for **Windows**, **Linux** and **Mac** is done by using 7za. It's a command line version of 7z published by the author.

## Installation
```
npm install @steezcram/sevenzip --save
```

## Usage
Simply include the module with this code:
```js
const sevenzip = require('@steezcram/sevenzip');
```

## Documentation
### Methods
- [compress](https://github.com/SteezCram/sevenzip/blob/main/docs/compress.md)
- [extract](https://github.com/SteezCram/sevenzip/blob/main/docs/extract.md)

### Objects
- [CompressionLevel](https://github.com/SteezCram/sevenzip/blob/main/docs/CompressionLevel.md)