open-index/open-npm huggingface dataset:
npm package: @muicss/angular
Description: MUI Angular Library
Author: Andres Morey
Latest version: 0.0.4

# MUI Angular

MUI Angular is a library that helps you to add MUI components to your Angular apps seamlessly.

**Install with NPM:**

```shell
$ npm install --save @muicss/angular
```

**Install with ng:**

```shell
$ ng add @muicss/angular
```

## Quickstart

Create a new Angular app and install the MUI Angular library:

```shell
$ ng new my-app --style scss
$ cd my-app
$ ng add @muicss/angular
```

Next install the MUI SCSS files:

```shell
$ npm install --save muicss
```

Add the MUI Angular button module to the app module (`src/app/app.module.ts`):

```js
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { ButtonModule } from '@muicss/angular/button';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    ButtonModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Replace the app component html code with the following (`src/app/app.component.html`):

```html
<mui-button color="primary">Press Me!</mui-button>
```

Next add the MUI SCSS modules we need to your styles.scss file (`src/styles.scss`):

```scss
// Core variables and mixins
@import
"~muicss/lib/sass/mui/colors",
"~muicss/lib/sass/mui/variables",
"~muicss/lib/sass/mui/mixins";

// Globals
@import
"~muicss/lib/sass/mui/globals";

// Components
@import
"~muicss/lib/sass/mui/buttons";

// Miscellaneous
@import
"~muicss/lib/sass/mui/helpers",
"~muicss/lib/sass/mui/ripple",
"~muicss/lib/sass/mui/typography";
```

Run the development server:

```shell
$ ng serve
```

Then visit http://localhost:4200/
npm package: @muid-io/crawl4ai-rag-mcp
Description: MCP client for Crawl4AI RAG system - bridges stdio to SSE transport
Author: muid.io
Latest version: 1.2.0

# @muid-io/crawl4ai-rag-mcp

MCP client for connecting to Crawl4AI RAG system. This package bridges stdio (used by Claude Code and other MCP clients) to the SSE transport used by the Crawl4AI RAG FastMCP server.

## Features

- 🌐 Web crawling and content extraction
- 🔍 RAG (Retrieval Augmented Generation) capabilities
- 🧠 Knowledge graph integration
- 📚 Document management and search
- 🤖 AI hallucination detection

## Installation

No installation needed! Use directly with npx:

```bash
npx @muid-io/crawl4ai-rag-mcp@latest
```

## Claude Code Configuration

Add to your Claude Code MCP servers:

```bash
claude mcp add crawl4ai-rag npx -y @muid-io/crawl4ai-rag-mcp@latest
```

Or manually add to your MCP configuration:

```json
{
  "mcpServers": {
    "crawl4ai-rag": {
      "command": "npx",
      "args": ["-y", "@muid-io/crawl4ai-rag-mcp@latest"],
      "env": {
        "CRAWL4AI_URL": "https://rag-mcp.muid.io/sse"
      }
    }
  }
}
```

## Available Tools

### Core Tools

1. **crawl_single_page** - Crawl a single web page
2. **smart_crawl_url** - Intelligently crawl with automatic URL type detection
3. **get_available_sources** - List all crawled sources
4. **perform_rag_query** - Search content using RAG

### Optional Tools (when configured)

5. **search_code_examples** - Search for code examples
6. **parse_github_repository** - Parse GitHub repos into knowledge graph
7. **check_ai_script_hallucinations** - Validate AI-generated code
8. **query_knowledge_graph** - Query Neo4j knowledge graph

## Environment Variables

- `CRAWL4AI_URL` - Server URL (default: https://rag-mcp.muid.io/sse)
- `DEBUG` - Enable debug logging (set to "true")

## Server Information

- **Production Server**: https://rag-mcp.muid.io
- **Documentation**: https://github.com/coleam00/mcp-crawl4ai-rag
- **Status**: No authentication required

## Example Usage

Once configured, you can use the tools in Claude Code:

```
"Crawl the React documentation and store it"
"Search for information about React hooks"
"What sources are available in the database?"
```

## Troubleshooting

If you see connection errors:

1. Check server status: `curl -I https://rag-mcp.muid.io/sse`
2. Enable debug mode: Set `DEBUG=true` in environment
3. Verify network connectivity

## License

MIT

## Support

For issues or questions, visit: https://github.com/muid-io/crawl4ai-rag-mcp-client
npm package: @muid-io/smart-doc
Description: SRK-based document section retrieval tool for extracting text using Smart Resource Keys from smart-toc JSON output
Author: LifeAiTools
Latest version: 1.0.0

# @muid-io/smart-doc

> SRK-based document section retrieval tool

## Overview

**smart-doc** retrieves text sections from documents using Structural Reference Keys (SRK) generated by [smart-toc](https://www.npmjs.com/package/@muid-io/smart-toc).

Part of the vibrary document processing pipeline.

## Installation

```bash
npm install -g @muid-io/smart-doc
```

## Usage

### Retrieve by SRK

```bash
# Base SRK (section level)
smart-doc document.md --srk "srk://v1/markdown/section-001/section-003"

# Full SRK (with chunking params)
smart-doc document.md --srk "srk://v1/markdown/flexible:1500:300/section-001/0"
```

### Stats Only

```bash
smart-doc document.md --srk "srk://v1/markdown/section-001" --stats-only
```

### Batch Retrieval

```bash
# Create file with SRKs (one per line)
echo "srk://v1/markdown/section-001" > srks.txt
echo "srk://v1/markdown/section-002" >> srks.txt

# Retrieve all
smart-doc document.md --srk-list srks.txt
```

### With TOC JSON

```bash
# Auto-detect TOC file (looks for .json or .toc.json)
smart-doc document.md --srk "srk://v1/markdown/section-001"

# Explicit TOC file
smart-doc document.md --srk "srk://v1/markdown/section-001" --toc document.toc.json
```

## SRK Format

### Base SRK (from smart-toc)

```
srk://v1/{format}/{path}
```

Example: `srk://v1/markdown/section-001/section-003`

### Full SRK (from vibrary-chunk)

```
srk://v1/{format}/{strategy}:{target}:{overlap}/{path}/{chunk_index}
```

Example: `srk://v1/markdown/flexible:1500:300/section-001/section-003/0`

## Output

### Default (with text)

```json
{
  "srk": "srk://v1/markdown/section-001/section-002",
  "section_id": "section-002",
  "title": "Quick Stats",
  "text": "## Quick Stats\n...",
  "stats": {
    "char_count": 568,
    "word_count": 63,
    "estimated_tokens": 81
  }
}
```

### Stats Only

```json
{
  "srk": "srk://v1/markdown/section-001",
  "section_id": "section-001",
  "title": "Introduction",
  "stats": {
    "char_count": 1234,
    "word_count": 180,
    "estimated_tokens": 234
  }
}
```

## Options

| Option | Description |
|--------|-------------|
| `--srk <srk>` | SRK to retrieve (base or full) |
| `--srk-list <file>` | File with SRKs (one per line) |
| `--toc <file>` | Explicit TOC JSON file |
| `--stats-only` | Return stats without text |
| `--pretty` | Pretty-print JSON output |
| `--help` | Show help |
| `--version` | Show version |

## Requirements

- Node.js >= 14.0.0
- Python >= 3.6.0

## Related

- [@muid-io/smart-toc](https://www.npmjs.com/package/@muid-io/smart-toc) - Structure detection and SRK generation
- [vibrary](https://github.com/LifeAiTools/vibrary) - Content registry with hierarchical summarization

## License

MIT
npm package: @muidea/formily-reactive-react
Description: ## QuikStart
Latest version: 2.3.2

# @muidea/formily-reactive-react

## QuikStart

```tsx
import React from 'react'
import { observable } from '@muidea/formily-reactive'
import { observer } from '@muidea/formily-reactive-react'

const obs = observable({
  count: 0,
})

export default observer(() => {
  return (
    <div>
      {obs.count}
      <button
        onClick={() => {
          obs.count++
        }}
      >
        Click
      </button>
    </div>
  )
})
```
npm package: @muijs/cli
Description: Honeycomb-Mobile Cli 是一个基于 Vant Cli 的组件库构建工具。
Author: lixy
Latest version: 1.0.0-alpha.0

# Honeycomb-Mobile Cli

Honeycomb-Mobile Cli 是一个基于 Vant Cli 的组件库构建工具。
npm package: @muil/cli
Description: Visit [Muil Docs.](https://docs.muil.io)
Latest version: 4.1.1

Visit [Muil Docs.](https://docs.muil.io)

## Run Muil CLI

To start muil cli run:

```
yarn muil-cli [options]
```

or

```
npm run muil-cli -- [options]
```

> To use options with npm run `npm run muil -- <args>`. [See here](https://docs.npmjs.com/cli/run-script)

## Initialization

Before you can publish templates you should add `.npmrc` file to your root folder:

```json
{
  "host": "YOUR_HOST_ADDRESS",
  "apiKey": "YOUR_API_KEY"
}
```

`host` - is optional - if you are using our SaaS option you can remove it. if you are using the on-premise solution you should change it to the address of the server.

`apiKey` - is required - go to the portal and create a new api key and paste it here.

## Publish

This command builds all templates and uploads to muil

```
Usage: muil-cli publish [options]

Publish email templates

Options:
  -d --templatesDirectory <templatesDirectory>  Templates root directory (default: "./templates")
  -b --branch <branch>                          templates branch (default: "master")
  -h, --help                                    output usage information
```

> This action will clear all templates in this branch and upload the new templates!

## Unpublish

This command cleans the branch from all templates

```
Usage: muil-cli unpublish [options]

Unpublish email templates

Options:
  -b --branch <branch>  templates branch, default: master
  -h, --help            output usage information
```

> This action will clear all templates in this branch!
npm package: @muil/components
Description: React components for faster and easier email templates development. Responsive by design on most-popular email clients, even Outlook. Inspired by [Inky](https://github.com/foundation/inky).
Latest version: 0.0.35

# Muil Components

React components for faster and easier email templates development.
Responsive by design on most-popular email clients, even Outlook. Inspired by [Inky](https://github.com/foundation/inky).

Building HTML emails is hard, especially responsive emails. That's why we created this library. Get away from complex table markup and inconsistent results.

Library includes

- Responsive Grid for Any Layout
- Common UI Components to Build Faster
- Charts Components
- Global theme and custom styles support

Read More [Muil Docs - Components.](https://docs.muil.io/docs/components/intro/)

> You can use this library with [Muil](https://www.muil.io) or React Server Side Rendering

## Installation

`npm install @muil/components`

or

`yarn add @muil/components`

## Components

-  [Grid](https://docs.muil.io/docs/components/grid)
-  [Style](https://docs.muil.io/docs/components/style)
-  [Alignment](https://docs.muil.io/docs/components/alignment)
-  [Typography](https://docs.muil.io/docs/components/typography)
-  [Button](https://docs.muil.io/docs/components/button)
-  [Callout](https://docs.muil.io/docs/components/callout)
-  [Menu](https://docs.muil.io/docs/components/menu)
-  [Spacer](https://docs.muil.io/docs/components/spacer)
-  [Wrapper](https://docs.muil.io/docs/components/wrapper)
-  [Charts](https://docs.muil.io/docs/components/charts)
-  [PDF Page](https://docs.muil.io/docs/components/PDFPage)

## Basic Example

```jsx
import { StyleProvider, Button } from "@muil/components";

<StyleProvider>
  <Button href="#">Button</Button>
  <Button href="#" tiny>Tiny Button</Button>
  <Button href="#" small>Small Button</Button>
  <Button href="#">Default Button</Button>
  <Button href="#" large>Large Button</Button>
</StyleProvider>;
```

![Buttons](media/buttons.png)

## More Components

![Bar Chart](media/bar-chart.png)
![Multiple Bar Chart](media/multiple-bar-chart.png)
![Multiple Bar Chart](media/multiple-hor-bar-chart.png)
![Calendar](media/calendar.png)
![Heat map](media/heat-map.png)
npm package: @muil/editor
Description: Visit [Muil Docs.](https://docs.muil.io)
Latest version: 0.2.16
Deprecated: this package has been deprecated

Visit [Muil Docs.](https://docs.muil.io)

## Automate Installation

Get started using the automatic command line tool. This command installs and adds everything you need to get start with Muil.

Inside your root directory run:

```
npx -p @muil/cli muil-cli init
```

## Manual Installation

To get start with Muil you will need:

1. Run this line inside you root directory:

```
npm install --dev @muil/editor
```

or

```
yarn add --dev @muil/editor
```

2. Add these scripts to package.json:

```
 "scripts": {
    ...
    "muil": "muil-editor",
    "muil-cli": "muil-cli"
  },
```

3. Add templates folder in your root directory

```
root directory
├───src
│   ├───components
│   │   ├───Component1.js
│   │   ├───Component2.js
│   │   └───Component3.js
└───templates
    ├───Template1.js
    ├───Template2.js
    └───Template3.js
```

## Usage

To start muil editor run:

```
yarn muil
```

or

```
npm run muil
```

> To use options with npm run `npm run muil -- <args>`. [See here](https://docs.npmjs.com/cli/run-script)

## Editor Options

```
Usage: muil [options]

Options:
  -p --port <port>                              Editor port (default: 8000)
  -d --templatesDirectory <templatesDirectory>  Templates root directory (default: "./templates")
  -h, --help                                    output usage information
```
npm package: @muil/muil-javascript
Description: ## Installation
Latest version: 0.0.9

# JavaScript development for Muil API

## Installation

#### NPM

```sh
npm install @muil/muil-javascript --save
```

#### Yarn

```sh
yarn add @muil/muil-javascript
```

## Initialization

First you have to initialize the service with Api Key and host (if not using our SaaS solution)

```
import muil from '@muil/muil-javascript';

muil.init({ host: 'MY_HOST_ADDRESS', apiKey: 'MY_API_KEY' });
```

## Generate Template

To generate html from template pass templateId and props

```
const html = await muil.generate({
  templateId: 'awesomeTemplate',
  props: { name: 'John' },
});
```

You can also set type to 'pdf' or 'png' to generate PDF or png, functions returns pdf or png as binary string

```
const content = await muil.generate({
  templateId: 'awesomeTemplate',
  type: 'pdf',
  props: { name: 'John' },
});
```

## Send Email from Template

To generate email from template and send it

```
muil.sendMail({
  templateId: 'awesomeTemplate',
  subject: 'This is an awesome mail',
  to: 'mail@example.com',
  props: { name: 'John' },
});
```

- from - The email address of the sender. All email addresses can be plain ‘sender@server.com’ or formatted '“Sender Name” sender@server.com’
- to - Comma separated list or an array of recipients email addresses
- cc - Comma separated list or an array of recipients email addresses
- bcc - Comma separated list or an array of recipients email addresses
- subject - The subject of the email
  Y

## Send Email from Template with Attachment

```
muil.sendMail({
  templateId: 'awesomeTemplate',
  subject: 'This is an awesome mail',
  to: 'mail@example.com',
  props: { name: 'John' },
  attachments: [{
    filename: 'a.png',
    type: 'png',
    templateId: 'awesomeTemplate',
    props: {
      name: 'John',
    }
  },
  {
    filename: 'file.txt',
    content: 'hello world!'
  },
  {
    filename: 'license.txt',
    path: 'https://example.com/license.txt'
  }]
});
```

## Upload Asset

to upload asset to you Muil project bucket

```
await muil.uploadAsset('file.png', value);
```

Value can be a string, a buffer or a file stream.

## Delete Asset

to delete asset from Muil project bucket

```
await muil.deleteAsset('file.png');
```
npm package: @muil/viewer
Description: Visit [Muil Docs.](https://docs.muil.io)
Latest version: 4.1.1

Visit [Muil Docs.](https://docs.muil.io)

## Automate Installation

Get started using the automatic command line tool. This command installs and adds everything you need to get start with Muil.

Inside your root directory run:

```
npx -p @muil/cli muil-cli init
```

## Manual Installation

To get start with Muil you will need:

1. Run this line inside you root directory:

```
npm install --dev @muil/viewer
```

or

```
yarn add --dev @muil/viewer
```

2. Add these scripts to package.json:

```
 "scripts": {
    ...
    "muil": "muil-viewer",
    "muil-cli": "muil-cli"
  },
```

3. Add templates folder in your root directory

```
root directory
├───src
│   ├───components
│   │   ├───Component1.js
│   │   ├───Component2.js
│   │   └───Component3.js
└───templates
    ├───Template1.js
    ├───Template2.js
    └───Template3.js
```

## Usage

To start muil templates viewer run:

```
yarn muil
```

or

```
npm run muil
```

> To use options with npm run `npm run muil -- <args>`. [See here](https://docs.npmjs.com/cli/run-script)

## Viewer Options

```
Usage: muil [options]

Options:
  -p --port <port>                              Viewer port (default: 8000)
  -d --templatesDirectory <templatesDirectory>  Templates root directory (default: "./templates")
  -h, --help                                    output usage information
```
npm package: @muirglacier/jellyfish-api-core
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-api-core

`@muirglacier/jellyfish-api-core` is a protocol agnostic DeFiChain client implementation with APIs separated into their
category.

## Features

* `Promise<T>` first implementation to prevent callback hell.
* Numeric precision aware JSON parsing with options of `lossless`, `bignumber` or `number`.
* Implementation in TypeScript with strongly typed interfaces and exported as `*.d.ts` too.
* Raw RPC call is available with `client.call('getbalance', [], 'bignumber')`

### Usage Example

```js
const result = await client.mining.getMiningInfo()
// or
client.mining.getMiningInfo().then((result) => {
  console.log(result)
}).catch((err) => {
  console.log('panic!')
}).finally(() => {
  console.log('cleanup')
})
```

## Development

`ApiClient` being an abstract class allows the ability to adapt to any protocol when introduced (e.g. ws, https)
while being simple to use. This implementation structure can be observed in ContainerAdapterClient where it is used to
test jellyfish-api-core implementations.

RPC categories are grouped into `jellyfish-api-core/src/category/*.ts` (e.g. `category/mining.ts`) this allows a
protocol agnostic implementation of the RPC. All concerns are grouped within one `ts` file for better developer
experience of browsing and maintaining the code.

`ApiError` encapsulate RPC errors from DeFiChain within a structure. This allows for `instanceof` or type of error
handling with rich structure.

`JellyfishJSON` allows parsing of JSON with 'lossless', 'bignumber' and 'number' numeric precision.

* **'lossless'** uses LosslessJSON that parses numeric values as LosslessNumber. With LosslessNumber, one can perform
  regular numeric operations, and it will throw an error when this would result in losing information.
* **'bignumber'** parse all numeric values as 'BigNumber' using bignumber.js library.
* **'number'** parse all numeric values as 'Number' and precision will be loss if it exceeds IEEE-754 standard.
* **'PrecisionPath'** provides path based precision mapping, specifying 'bignumber' will automatically map all Number in
  that path as 'bignumber'. Otherwise, it will default to number, This applies deeply.

## Testing

```shell
jest
```

As the RPC is implemented on `jellyfish-api-core`, all testing of RPC implementation should be done
on `jellyfish-api-core`. `ContainerAdapterClient` is created to facilitate testing via an adapter implementation with
all RPCs proxied into a `@muirglacier/testcontainers`.
npm package: @muirglacier/jellyfish-api-jsonrpc
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-api-jsonrpc

`@muirglacier/jellyfish-api-jsonrpc` implements `@muirglacier/jellyfish-api-core`
with [`JSON-RPC 1.0`](https://www.jsonrpc.org/specification_v1) specification.

Other than `jellyfish-api-core`, 2 other external dependencies are used with 4 deeply.

1. `cross-fetch` for an isomorphic fetch client compatible with RN, Node & browser.
   1. `node-fetch`
2. `abort-controller` for fetch abort signal implementation for request timeout.
   1. `event-target-shim`

## Development & Testing

As all RPC interfacing is implemented in `jellyfish-api-core`, this package development & testing only focus on the
[JSON-RPC 1.0](https://www.jsonrpc.org/specification_v1) specification implementation.
npm package: @muirglacier/jellyfish-json
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-json

`JellyfishJSON` allows parsing of JSON with `'lossless'`, `'bignumber'` and `'number'` numeric precision.

- `'lossless'` uses LosslessJSON that parses numeric values as LosslessNumber. With LosslessNumber, one can perform
  regular numeric operations, and it will throw an error when this would result in losing information.
- `'bignumber'` parse all numeric values as 'BigNumber' using bignumber.js library.
- `'number'` parse all numeric values as 'Number' and precision will be loss if it exceeds IEEE-754 standard.
- `'PrecisionPath'` provides path based precision mapping, specifying 'bignumber' will automatically map all Number in
  that path as 'bignumber'. Otherwise, it will default to number, This applies deeply.
npm package: @muirglacier/jellyfish-testing
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-testing

This package introduces a centralized testing framework for the jellyfish replacing the existing `@muirglacier/testing`.
All methods within `@muirglacier/testing` have thus been deprecated.

Testing is an essential part of any serious quality software developer work. This package provides many abstractions for
various commonly used setup patterns for the DeFi Blockchain. This keeps your testing setup DRY for repeated tests.

This new implementation warps a container on init via `Testing.create(container)` extending on top of rpc and
container.

```ts
const container = new MasterNodeRegTestContainer()
const testing = Testing.create(container)

testing.rpc         // to access JSON RPC
testing.fixture     // for complex fixture setup e.g. poolpair
testing.rawtx       // for rawtx setup with reasonable defaults 
testing.token       // for token setup with reasonable defaults 
testing.poolpair    // for poolpair setup with reasonable defaults 
```

## Cyclic dependencies

`@muirglacier/jellyfish-testing` relies on other jellyfish dependencies, they are cyclic dependant. However, within this
mono-repo, we don't need to declare `"devDependencies"` as they are mapped in `tsconfig.base.json`. This configuration
allows any packages within `jellyfish-*` to rely on `jellyfish-testing` without causing cyclic dependencies errors.
npm package: @muirglacier/jellyfish-transaction
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-transaction

Dead simple modern stateless raw transaction composer for the DeFi Blockchain.

## Prior-art

- https://github.com/ilyavf/tx-builder
- https://github.com/bitpay/bitcore
- https://github.com/bitcoinjs/bitcoinjs-lib
npm package: @muirglacier/jellyfish-transaction-builder
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-transaction-builder

While jellyfish-transaction provides a dead simple, modern, stateless raw transaction builder for DeFi. Constructing a
trust-less crypto transaction from scratch still has certain complexity as with the nature of blockchain technologies.
This package `jellyfish-transaction-builder` provides a high-high level abstraction for constructing transaction ready
to be broadcast for DeFi Blockchain.

What can `jellyfish-transaction-builder` do?

1. Uses low-level `jellyfish-*` packages for creating transaction.
2. Construct signed segwit transaction ready for broadcasting
3. Construct DeFi custom transaction
4. Lastly, provides a simple developer experience for creating signed transaction.

## Testing

For testing accuracy and convenience. All implementations must be e2e tested on `@muirglacier/testcontainers`. Due to the
complexity of testing, `@muirglacier/jellyfish-api-jsonrpc` and `@muirglacier/testing` is included in `devDependencies` for
setting up and tearing down test fixtures.
npm package: @muirglacier/jellyfish-transaction-signature
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-transaction-signature

Stateless utility library to perform transaction signing.

## Prior-art

- https://github.com/ilyavf/tx-builder
- https://github.com/bitpay/bitcore
- https://github.com/bitcoinjs/bitcoinjs-lib
npm package: @muirglacier/jellyfish-wallet
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-wallet

> If you want to use multiple/change address please use defid directly.
> This is created for better UX, your daily average users.

Jellyfish wallet is a managed wallet, where account can get discovered from an HD seed. Accounts in jellyfish-wallet,
has only one address for simplicity. Accounts path are derived from seed with path: `{ACCOUNT}/0/0`. Non-hardened path
is used to allow encrypted wallet implementation where only xpubkey is required. It uses a provider model where the node
and account is agnostic and provided on demand to the managed wallet.

Being a managed wallet design it uses must use conventional defaults and options must be kept to none. Address must stay
consistent hence `bech32` must be used and, etc.

### Wallet Hd Node

> `WalletHdNode` & `WalletHdNodeProvider`

A bip32 path based hierarchical deterministic node, using a provider model where you can derive any HdNode.
`WalletHdNode` extends `EllipticPair` in the jellyfish-crypto package with the additional interface `signTx()` for
signing transaction.

Due to the agnostic and promise based nature of WalletHdNode, it allows any implementation from hardware to network
based crypto operations.

### Wallet Account

> `WalletAccount` & `WalletAccountProvider`

Account in `jellyfish-wallet` provides an interface for all features of DeFi Blockchain. This pushes the implementation
design to WalletAccount implementor. This also allows for upstream agnostic implementation. It could be full node, super
node, or a networked API.
npm package: @muirglacier/jellyfish-wallet-encrypted
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-wallet-encrypted

EncryptedMnemonicHdNode extends MnemonicHdNode to implement promise-based privKey resolution. This allows latent based
implementation where privKey need to be decrypted.

### Prior-art:

- BIP32 Hierarchical Deterministic Wallets
- BIP39 Mnemonic code for generating deterministic keys
- BIP44 Multi-Account Hierarchy for Deterministic Wallets
npm package: @muirglacier/jellyfish-wallet-mnemonic
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/jellyfish-wallet-mnemonic

MnemonicHdNode implements the WalletHdNode from jellyfish-wallet. HdNode implementations is purpose and derivation
agnostic.

### Prior-art:

- BIP32 Hierarchical Deterministic Wallets
- BIP39 Mnemonic code for generating deterministic keys
- BIP44 Multi-Account Hierarchy for Deterministic Wallets

### #555 Broke Compatibility with BIP32

> https://github.com/muirglacier/jellyfish/pull/555

In [#555](https://github.com/muirglacier/jellyfish/pull/555) a significant change was done to
"@muirglacier/jellyfish-wallet-mnemonic". Part of the BIP32 specification literature defines the use of HMAC-SHA512.
`"Calculate I = HMAC-SHA512(Key = "Bitcoin seed", Data = S)"`. The `Key` in this implementation was updated
to `"@muirglacier/jellyfish-wallet-mnemonic"`. Although a novel idea at that time, this, unfortunately, created
incompatibilities with other 24-word providers.

Detailed in this issue https://github.com/DeFiCh/wallet/issues/726, where one explores a conscious bank owner that takes
extra measures to guarantee the safety of his assets. A large part of the change was motivated by that narrative,
although that narrative comes from the best intention of the developer for the safety of users' funds. Many users see it
as an annoyance more than anything else.

twenty-twenty hindsight
npm package: @muirglacier/playground-api-client
Description: [![npm](https://img.shields.io/npm/v/@muirglacier/playground-api-client)](https://www.npmjs.com/package/@muirglacier/playground-api-client/v/latest) [![npm@next](https://img.shields.io/npm/v/@muirglacier/playground-api-client/next)](https://www.npmjs.com/
Latest version: 0.1.9

[![npm](https://img.shields.io/npm/v/@muirglacier/playground-api-client)](https://www.npmjs.com/package/@muirglacier/playground-api-client/v/latest)
[![npm@next](https://img.shields.io/npm/v/@muirglacier/playground-api-client/next)](https://www.npmjs.com/package/@muirglacier/playground-api-client/v/next)

# @muirglacier/playground-api-client
npm package: @muirglacier/testing
Description: A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
Latest version: 0.1.9

# @muirglacier/testing

Testing is an essential part of any serious quality software developer work. This package provides many abstractions for
various commonly used setup pattern for DeFi Blockchain. This keeps your testing setup DRY for repeated tests.
npm package: @muirglacier/whale-api-client
Description: Official JS client for DeFi Whale, the super index for DeFi Blockchain to simplify DeFi light implementation.
Latest version: 0.1.9

[![npm](https://img.shields.io/npm/v/@muirglacier/whale-api-client)](https://www.npmjs.com/package/@muirglacier/whale-api-client/v/latest)
[![npm@next](https://img.shields.io/npm/v/@muirglacier/whale-api-client/next)](https://www.npmjs.com/package/@muirglacier/whale-api-client/v/next)

# @muirglacier/whale-api-client
npm package: @muirglacier/whale-api-wallet
Description: Using whale-api-client with jellyfish-wallet with DeFi light wallet implementation.
Latest version: 0.1.9

[![npm](https://img.shields.io/npm/v/@muirglacier/whale-api-wallet)](https://www.npmjs.com/package/@muirglacier/whale-api-wallet/v/latest)
[![npm@next](https://img.shields.io/npm/v/@muirglacier/whale-api-wallet/next)](https://www.npmjs.com/package/@muirglacier/whale-api-wallet/v/next)

# @muirglacier/whale-api-wallet

While `jellyfish-wallet` is a managed wallet, `whale-api-wallet` uses `whale-api-client` for DeFi light wallet
implementation.

### Development

> This is currently not e2e tested, due to blocked issues.