open-index/open-npm huggingface dataset:
npm package: @synked/encoders
Description: This library includes a simple set of encoder functions that can be used to encode binary values to/from
Latest version: 1.0.1

# encoders

This library includes a simple set of encoder functions that can be used to encode binary values to/from 

* A URL safe Base64 Alphabet [a-zA-Z0-9_\-]
* Crockfords Base32 Alphabet

TODO:
Other Encoding functions
npm package: @synkro/ui
Description: Dashboard UI for @synkro/core
Author: buemura
Latest version: 0.2.4

# @synkro/ui

Dashboard UI for [@synkro/core](https://github.com/buemura/synkro). Mount it on any HTTP endpoint to visualize your registered events and workflows in real time.

## Screenshots

### Dashboard

Overview of all registered events and workflows with paginated tables.

![Dashboard](./docs/dashboard-screenshot.png)

### Event Detail

Click any event to view its message metrics — received, completed, and failed counts tracked via Redis.

![Event Detail](./docs/event-detail-screenshot.png)

### Workflow Detail

Click any workflow to see a branching flow diagram with SVG connectors (green for success, red for failure) and a detailed steps table.

![Workflow Detail](./docs/workflow-detail-screenshot.png)

## Features

- **Events overview** — Paginated table of all standalone events with retry configuration
- **Event detail** — Click an event to see received/completed/failed message counts (Redis-persisted)
- **Workflows overview** — Paginated table of all workflows with step counts and callback badges
- **Workflow detail** — Branching flow diagram with SVG bezier curves for onSuccess/onFailure paths, plus a detailed steps table
- **Stats at a glance** — Total counts for events, workflows, and workflow steps
- **Pagination** — 5 items per page with independent pagination for events and workflows
- **Framework-agnostic** — Works with Express, Fastify, raw Node.js HTTP, or any framework that supports `(IncomingMessage, ServerResponse)` handlers
- **Zero dependencies** — Self-contained HTML/CSS/JS dashboard with no external assets

## Installation

```bash
npm install @synkro/ui
```

## Usage

```typescript
import { createDashboardHandler } from "@synkro/ui";
import { Synkro } from "@synkro/core";

const synkro = await Synkro.start({
  transport: "redis",
  connectionUrl: "redis://localhost:6379",
  events: [/* ... */],
  workflows: [/* ... */],
});
```

### Express

```typescript
import express from "express";

const app = express();

app.use("/synkro", createDashboardHandler(synkro, { basePath: "/synkro" }));

app.listen(3000);
// Dashboard available at http://localhost:3000/synkro
```

### Raw Node.js HTTP

```typescript
import http from "node:http";

const server = http.createServer(createDashboardHandler(synkro));

server.listen(3000);
// Dashboard available at http://localhost:3000
```

## API

### `createDashboardHandler(synkro, options?)`

Returns a standard Node.js HTTP request handler `(IncomingMessage, ServerResponse) => void`.

**Parameters:**

| Parameter | Type | Description |
|---|---|---|
| `synkro` | `Synkro` | A started Synkro instance |
| `options.basePath` | `string` | Base path where the dashboard is mounted (default: `"/"`) |

**Served routes (relative to basePath):**

| Route | Description |
|---|---|
| `GET /` | Dashboard HTML page |
| `GET /api/introspection` | JSON payload with all registered events and workflows |
| `GET /api/events/:type` | JSON payload with message metrics for a specific event |

## License

MIT
npm package: @synnada/dynamic-forms
Description: Create awsome declarative dynamic forms
Author: synnada
Latest version: 1.0.0

# dynamic-forms

> Create awsome dynamic forms

[![NPM](https://img.shields.io/npm/v/dynamic-forms.svg)](https://www.npmjs.com/package/dynamic-forms) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save dynamic-forms
```

## Usage

```tsx
import React, { Component } from 'react'

import MyComponent from 'dynamic-forms'
import 'dynamic-forms/dist/index.css'

class Example extends Component {
  render() {
    return <MyComponent />
  }
}
```

## License

MIT © [Kerem Kurtuluş](https://github.com/keremkurtulus/dynamic-forms)
npm package: @synofinance/solana-sdk
Description: SYNO Finance Solana SDK.
Latest version: 0.0.13

# Solana TypeScript SDK

It contains IDL types generated from Solana spoke program.

## Install and quick check

### Install

```
yarn install
```

### Build and quick check

Build:
```
yarn run clean
yarn run build
```

Quick check:

This will execute a set of transactions against the program with the ID set in the IDL.  

These are essentially smoke tests; they will do nothing significant and fail only within the handler body.  

This means that the entire Anchor instruction accounts validation has passed, which is the purpose of these tests.

```
yarn run start-test
```

### Howto import to project:

Import as github dependency:

Main repo:
```
"solana-sdk": "git+https://github.com/SynonymFinance/solana-sdk"
```
If specific commit hash is required:
```
"solana-sdk": "git+https://github.com/SynonymFinance/solana-sdk#0e01163c0e046c9253c3a976bf6f28e338010091"
```

# **Releasing a New Version of the Package. NOTE : ONLY FOR ETHERS-V6** 

## Prerequisites
1. You must have an NPM account. (https://www.npmjs.com/)
2. You must have the necessary permissions to publish the package.
3. You must have the latest version of the package.

## **Step 1: Update the Version**
1. Open the `package.json` file.
2. Update the `"version"` field according to [Semantic Versioning](https://semver.org/):
   - `MAJOR.MINOR.PATCH` (e.g., change from `1.0.0` to `1.1.0` or `1.0.1`).

## **Step 2: Login to npm repository
```
yarn login --scope synofinance 
```
You will be asked to provide username and email used during registration.

Later when running `yarn publish --access public` you will be asked for password.

## **Step 2: Build the Package**
Run the following command to build the package:

```
yarn run build
```

## **Step 3: Create a Package Archive File**
Generate the .tgz package file by running the following command:

```
yarn pack
```

## **Step 4: Publish the Package**
Release the package to the public registry:

```
yarn publish --access public
```

## **Step 5: Verify the Release**

1.Go to the package's NPM page to confirm the version update.
2.Verify that the package is available and that everything was published successfully.
npm package: @synonymdev/bitkit-notification-client
Description: Bitkit Notification Server client
Author: SeverinAlexB
Latest version: 0.1.0

# bitkit-notification-client

[![NPM version](https://img.shields.io/npm/v/@synonymdev/bitkit-notification-client?color=%23FFAE00&style=flat-square)](https://www.npmjs.com/package/@synonymdev/bitkit-notification-client)

Client to interact with the bitkit-notification-server.

## Usage


### Send notification

Sends a push notification to the Bitkit device that is associated with the nodeId.

```typescript
import { BitkitNotificationsClient } from '@synonymdev/bitkit-notification-client';

const client = new BitkitNotificationsClient()
try {
    const nodeId = '03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f'; // Lightning Node Id of Bitkit
    const source = 'blocktank'; // Service name which sends this notification. Shown to the device.
    const eventType = 'newPayment'; // Name of the event
    const payload = {  // Arbitrary data to send to the device. Max 3800 bytes, be careful.
        "hello": "world"
    }
    await client.sendNotification(nodeId: string, eventType: string, payload: any, source: string)
} catch (e) {
    const deviceNotFound = e.errorType !== 'deviceNotFound'
    if (deviceNotFound) {
        // Device is not registered to receive push notifications
    } else {
        // Genuine error
    }
}
```



### Versioning

1. Increase version in `package.json`.
2. Add changes to `CHANGELOG.md`.
3. Commit changes.
4. Tag new version: `git tag v0.1.0`.
5. Push tag `git push origin v0.1.0`.
6. Build: `npm run build`.
6. Publish to npm: `npm publish`.
npm package: @synonymdev/blocktank-util-slack-client
Description: Blocktank Slack client
Author: Severin Bühler
Latest version: 0.2.0

# blocktank-util-slack-client

[![NPM version](https://img.shields.io/npm/v/@synonymdev/blocktank-util-slack-client?color=%23FFAE00&style=flat-square)](https://www.npmjs.com/package/@synonymdev/blocktank-util-slack-client)

Client to interact with the blocktank-util-slack service.

## Usage

### Send message

```typescript
import { SlackClient } from '@synonymdev/blocktank-util-slack-client';

const client = new SlackClient('myConfiguredChannelName') // See service config for channel names.

await client.info('myTitle', 'myMessage') // Send message.
```

If the channel name is empty, the message will be logged to the console instead of sent to slack.

#### Rate limiting

Messages can be ratelimited to not overwhelm the channel. The rate limit is based on a key. If the key was already seen within the `limitFor` duration, the message will be ignored.

```typescript
interface RateLimitOptions {
    // Key of the operation that will be rate limited. Example: `blocktank-instant:funds-are-low`.
    key: string,
    // Duration of the rate limit until the next message can be sent.
    limitFor: Duration
}

// Amount of time the limit should be applied for this key.
interface Duration {
    years?: number;
    months?: number;
    weeks?: number;
    days?: number;
    hours?: number;
    minutes?: number;
    seconds?: number;
}
```

Let's make an example:

```typescript
await client.error('Couldnt read file', 'errorMessage', {
    key: 'blocktank-ls-btc:fileReadKey',
    limitFor: {
        hours: 1
    }
})
```

This will send a message with the level `error` and the title `Couldnt read file`.  
The message will be sent only if the last message with the key `blocktank-ls-btc:fileReadKey` was sent more than 1 hour ago.
If the last message was sent less than 1 hour ago, the message will be ignored.

#### Emojis used

| SlackMessageLevel | Emoji |
|-------------------|-------|
| debug             |       |
| success           | ✅    |
| info              | ℹ️    |
| notice            | 📢    |
| warning           | ⚠️    |
| error             | ❌    |
| critical          | ‼️    |
| alert             | 🚨    |
| emergency         | 🆘    |


## Test messages

Execute `npx blocktank-util-slack-cli` in the terminal to send test messages. Make sure you install this package first.

## Versioning

1. Increase version in `package.json`.
2. Add changes to `CHANGELOG.md`.
3. Commit changes.
4. Tag new version: `git tag v0.1.0`.
5. Push tag `git push origin v0.1.0`.
6. Publish to npm: `npm publish`.
npm package: @synonymdev/lightning-channel-id
Description: Convert lightning channel id formats
Author: r32a
Latest version: 0.0.3

# lightning-channel-id-js
Convert between various channel id formats in Lightning network.

### Usage

```js

npm install @synonymdev/lightning-channel-id

const parseChannelId = require("lightning-channel-js")

parseChannelId("807896954914930688") // long channel id format
parseChannelId("734778:1235:0") // : seperated
parseChannelId("734778x1235x0") // x seperated 
parseChannelId("734778$1235$0","$) // custom marker

// All of the above should output same result
{
  block: '734778',
  tx: '1235',
  output: '0',
  lnd_notation: '807896954914930688',
  cln_format: '734778:1235:0'
}
npm package: @synonymdev/raw-transaction-decoder
Description: Decodes Raw Bitcoin Transactions
Author: synonymdev
Latest version: 1.1.0

# raw-transaction-decoder

This project is a utility for decoding raw Bitcoin transactions. It is written in TypeScript and uses the bitcoinjs-lib library.

The `decodeRawTx` method used here is modified from [this source](https://github.com/bitcoinjs/bitcoinjs-lib/issues/1606#issuecomment-664740672)

## Installation

```bash
# Using Yarn
yarn add @synonymdev/raw-transaction-decoder

# Or, using NPM
npm i -S @synonymdev/raw-transaction-decoder
```

## Usage

Here's a basic example of how to use the `decodeRawTx` function:

```typescript
import decodeRawTx from '@synonymdev/raw-transaction-decoder';

// replace with your raw transaction
const rawTx = '02000000000101f52c85da1f8a30d49553f9cf0294a101c50c4a293bcc6bb48056ff2dc69545090000000000ffffffff02e4190f000000000016001425095b84d1f12033921a231de7fe515186fd04a81027000000000000160014a975f412cb9ddc9dc7f9fad0f7467bd801de4ffc0247304402201b239445ff572a79a4e6e0823bb42a57762582a6b42ce182200d99ba9a9e077502202c48938d1f735ab1c2c7e2a96d7bcfcd97a9c7b51f03aae8f15942b4c8cb1b87012103972490b241e5c788a3b544f08cf05ad925c2d79371747d2fbd06d7df477cb1e800000000';

// replace with your network (bitcoin, testnet or regtest)
const network = 'regtest';

const result = decodeRawTx(rawTx, network);

if (result.isErr()) {
  console.error(result.error.message);
  return;
}
console.log(result.value);
```

For an example response, please see [DECODED_TRANSACTION](./tests/constants.ts).

## Running Tests & Examples

### Clone the Repository

```bash
git clone git@github.com:synonymdev/raw-transaction-decoder.git && cd raw-transaction-decoder
```

### Install Dependencies & Build

```bash
npm i && npm run build
```

### Run tests:

```bash
npm run test
```

### Run example project:
```bash
npm run example
```
npm package: @synonymdev/result
Description: Result helper class
Author: Jason van den Berg
Latest version: 0.0.2

# Result helper class

### Description
Result helper class

## Getting started

```bash
yarn add @synonymdev/result
#or
npm i -s @synonymdev/result
````

## Usage
```javascript
import { Result, err, ok } from '@synonymdev/result';
```

```typescript
const func = (): Result<number> => {
  return ok(42);
  // OR
  return err('error message');
  // OR
  return err(new Error('error message'));
}

const result = func();

if (result.isOk()) {
    console.log(result.value); //42
}

if (result.isErr()) {
    console.error(result.error.message); // "error message"
}
```


## Development

### `yarn build`

Builds library ready for production use.

### `yarn test`

Unit tests.

### `yarn format`

Code formatting.

### `yarn lint`

Code linting.

### `yarn prepublish`

Prepares code for publishing by building and bumping package version.
npm package: @synonymdev/slashtags-actions
Description: Packaged handlers for Slashtags actions
Latest version: 0.1.2

# Slashtags Actions

> Packaged handlers for Slashtags actions.

## Install

```bash
npm i @synonymdev/slashtags-actions @synonymdev/slashtags-core
```

## Usage

### Setup

```javascript
import { Core } from '@synonymdev/slashtags-core';
import { Actions } from '@synonymdev/slashtags-actions';

// Node environment
const node = await Core();
// Browser environment
// Use a community DHT relay or run your own https://github.com/hyperswarm/dht-relay
const node = await Core({
  relays: ['ws://trusted.dht-relay.instance.com'],
});

// Initialize the actions module using the Slashtags node
const actions = Actions(node);
```

### Handle action urls

```javascript
// Instantiate a slashtags
await actions.handle(
  scannedURL,
  {
    ACT1: {
      onResponse: (
        profile, // Responder's profile
        additionalItems, // Optional additionalItems from the authenticated Responder
      ) => {
        // Optionally Prompt the user to confirm the action,
        //  and choose what persona to use for authentication

        return {
          initiator: {
            keyPair, // {publicKey, secretKey}
            profile: InitiatorProfile, // Initiator's profile A Thing (see schema.org)
          },
          // Optional additional items to be sent to the user _before_ authentication
          additionalItems: [],
        };
      },
      onSuccess: (
        connection, // {local: Initiator's profile, remote: Responder's profile}
        additionalItems, // Optional additionalItems from the Responder _after_ authenticating the Initiator
      ) => {
        // Do something with the connection and possibly the additionalItems
      },
    },
  },
  (error) => {
    // Do something with unexpected errors (display in UI for example)
  },
);
```