open-index/open-npm huggingface dataset:
npm package: @substratia/cli
Description: Substratia CLI - Persistent memory for AI agents
Author: Substratia
Latest version: 0.1.0

# @substratia/cli

Persistent memory for AI agents - command line interface.

## Installation

```bash
# Quick install (recommended)
curl -fsSL https://substratia.io/install | bash

# Or via npm/bun
npm install -g @substratia/cli
bun install -g @substratia/cli
```

## Quick Start

```bash
# 1. Register and get your API key
substratia register "your@email.com"

# 2. Store a memory
substratia learn "User prefers dark mode"

# 3. Search memories
substratia remember "preferences"

# 4. Full context restore
substratia bridge
```

## Commands

### `register <email>`

Register for an API key.

```bash
substratia register "you@example.com"
```

### `learn <content>`

Store a new memory.

```bash
substratia learn "Important information"
substratia learn "Critical fact" --importance critical
substratia learn "Tagged memory" --tags "tag1,tag2"
```

Options:

- `--importance`: `critical`, `high`, `normal`, `low` (default: `normal`)
- `--tags`: Comma-separated tags

### `remember <query>`

Search your memories.

```bash
substratia remember "user preferences"
substratia remember "project" --limit 5
```

Options:

- `--limit`: Maximum results to return (default: 10)

### `bridge`

Full context restore - retrieves memories, identity narratives, and preferences.

```bash
substratia bridge
```

### `config`

Show current configuration.

```bash
substratia config
```

## Environment Variables

- `SUBSTRATIA_API_KEY` - Your API key (overrides config file)

## Configuration

Config is stored in `~/.substratia/config.json`

## For Programmatic Use

Use [@substratia/memory](https://npmjs.com/package/@substratia/memory) instead:

```typescript
import { remember, recall } from "@substratia/memory";

await remember("User prefers dark mode");
const memories = await recall("preferences");
```

## Documentation

https://substratia.io/docs

## License

MIT
npm package: @substreams/sink-database-changes
Description: Substreams Sink Database Changes
Latest version: 0.3.6

# Substreams Sink Database Changes

> [Buf](https://buf.build/) Protobuf codegen & [TypeBox](https://github.com/sinclairzx81/typebox) for [`DatabaseChanges`](https://github.com/streamingfast/substreams-sink-database-changes).

## Quickstart

```bash
$ npm install @substreams/sink-database-changes
```

```typescript
import { typebox, zod } from "@substreams/sink-database-changes"
```

## Protobuf

```proto
message DatabaseChanges {
  repeated TableChange table_changes = 5;
}

message TableChange {
  string table = 1;
  oneof primary_key {
    string pk = 2;
    CompositePrimaryKey composite_pk = 6;
  }
  uint64 ordinal = 3;
  Operation operation = 4;
  repeated Field fields = 5;
}

message Field {
  string name = 1;
  string new_value = 2;
  string old_value = 3;
}
```

### Using [TypeBox](https://github.com/sinclairzx81/typebox) Static Type Resolution

```typescript
import { DatabaseChanges } from "@substreams/sink-entity-changes/typebox"
...

const emitter = new BlockEmitter(transport, request, registry);

emitter.on("anyMessage", (message: DatabaseChanges) => {
  for ( const tableChange of message.table_changes ?? []) {
    console.log(tableChange);
  }
});
```

### Using [Zod](https://github.com/colinhacks/zod) Static Type Resolution

```typescript
import { DatabaseChanges } from "@substreams/sink-entity-changes/zod"
...

const emitter = new BlockEmitter(transport, request, registry);

emitter.on("anyMessage", (message: DatabaseChanges) => {
  for ( const tableChange of message.table_changes ?? []) {
    console.log(tableChange);
  }
});
```

### Using [Buf](https://github.com/bufbuild/protobuf-es) Protobuf codegen

```typescript
import { DatabaseChanges } from "@substreams/sink-entity-changes/entity_pb"
...

const emitter = new BlockEmitter(transport, request, registry);

// Stream DatabaseChanges
emitter.on("output", (output: DatabaseChanges) => {
  for ( const tableChange of output?.table_changes ?? []) {
    console.log(tableChange);
  }
});
```
npm package: @substreams/sink-entity-changes
Description: Substreams Sink Entity Changes
Latest version: 0.3.11

# Substreams Sink Entity Changes

> [Buf](https://buf.build/) Protobuf codegen & [TypeBox](https://github.com/sinclairzx81/typebox) for [`EntityChanges`](https://github.com/streamingfast/substreams-sink-entity-changes).

## Quickstart

```bash
$ npm install @substreams/sink-entity-changes
```

```typescript
import { typebox, zod } from "@substreams/sink-entity-changes"
```

## Protobuf

```proto
message EntityChanges {
  repeated EntityChange entity_changes = 5;
}

message EntityChange {
  string entity = 1;
  string id = 2;
  Operation operation = 4;
  repeated Field fields = 5;
}
```

### Using [TypeBox](https://github.com/sinclairzx81/typebox) Static Type Resolution

```typescript
import { EntityChanges } from "@substreams/sink-entity-changes/typebox"
...

const emitter = new BlockEmitter(transport, request, registry);

emitter.on("anyMessage", (message: EntityChanges) => {
  for ( const entityChange of message.entityChanges ?? []) {
    console.log(entityChange);
  }
});
```

### Using [Zod](https://github.com/colinhacks/zod) Static Type Resolution

```typescript
import { EntityChanges, getValuesInEntityChange } from "@substreams/sink-entity-changes/zod"
...

const emitter = new BlockEmitter(transport, request, registry);

emitter.on("anyMessage", (message: EntityChanges) => {
  for ( const entityChange of message.entityChanges ?? []) {
    console.log(entityChange);
    const values = getValuesInEntityChange(entityChange);
    const address = values["address"];
  }
});
```

**getValuesInEntityChange**

```typescript
import { getValuesInEntityChange } from "@substreams/sink-entity-changes/zod"
...

for ( const entityChange of message.entityChanges ?? []) {
  const values = getValuesInEntityChange(entityChange);
  const address = values["address"];
}
```

### Using [Buf](https://github.com/bufbuild/protobuf-es) Protobuf codegen

```typescript
import { EntityChanges } from "@substreams/sink-entity-changes/entity_pb"
...

const emitter = new BlockEmitter(transport, request, registry);

// Stream EntityChanges
emitter.on("output", (output: EntityChanges) => {
  for ( const entityChange of output?.entityChanges ?? []) {
    console.log(entityChange);
  }
});
```
npm package: @subtasks.co/subtasks-cli
Description: Manage APIs from your terminal
Author: Stephan Kaag
Latest version: 2.1.0

subtasks-cli
============

Manage APIs from your terminal

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/@subtasks.co/subtasks-cli.svg)](https://npmjs.org/package/@subtasks.co/subtasks-cli)
[![Downloads/week](https://img.shields.io/npm/dw/subtasks-cli.svg)](https://npmjs.org/package/@subtasks.co/subtasks-cli)
[![License](https://img.shields.io/npm/l/@subtasks.co/subtasks-cli.svg)](https://github.com/subtasks-co/cli/blob/master/package.json)
[![Build Status](https://travis-ci.org/subtasks-co/cli.svg?branch=master)](https://travis-ci.org/subtasks-co/cli)

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g @subtasks.co/subtasks-cli
$ subtasks COMMAND
running command...
$ subtasks (-v|--version|version)
@subtasks.co/subtasks-cli/2.1.0 linux-x64 node-v12.13.1
$ subtasks --help [COMMAND]
USAGE
  $ subtasks COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`subtasks add-function NAME`](#subtasks-add-function-name)
* [`subtasks help [COMMAND]`](#subtasks-help-command)
* [`subtasks init`](#subtasks-init)
* [`subtasks publish`](#subtasks-publish)

## `subtasks add-function NAME`

add a new TypeScript function

```
USAGE
  $ subtasks add-function NAME

OPTIONS
  -h, --help  show CLI help
```

_See code: [src/commands/add-function.ts](https://github.com/subtasks-co/cli/blob/v2.1.0/src/commands/add-function.ts)_

## `subtasks help [COMMAND]`

display help for subtasks

```
USAGE
  $ subtasks help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.2.1/src/commands/help.ts)_

## `subtasks init`

creates a new, empty subtasks project in the current directory

```
USAGE
  $ subtasks init

OPTIONS
  -f, --force
  -h, --help   show CLI help
  --path=path  [default: /home/travis/build/subtasks-co/cli]
```

_See code: [src/commands/init.ts](https://github.com/subtasks-co/cli/blob/v2.1.0/src/commands/init.ts)_

## `subtasks publish`

publish the latest version of your functions to the platform

```
USAGE
  $ subtasks publish

OPTIONS
  -h, --help  show CLI help
```

_See code: [src/commands/publish.ts](https://github.com/subtasks-co/cli/blob/v2.1.0/src/commands/publish.ts)_
<!-- commandsstop -->
npm package: @subter/react-tezos-domain-lookup
Description: A reactjs component that allows you to display the tezos domain associated with an address.
Author: Mithun Kamath
Latest version: 2.0.0

# Tezos Domain Lookup

A reactjs component that allows you to display the tezos domain associated with an address.

- Displays the address itself if no domain found
- If domain found, displays the domain in a `<span />` tag and the address is displayed on hover (through the span's `title` attribute)

## Installation & Usage

To install, run:

```bash
npm install @subter/react-tezos-domain-lookup
```

You can then use it in your code as follows:

```js
import TezosDomainLookup from "@subter/react-tezos-domain-lookup"

// Your component code
// ...
// ...
  <TezosDomainLookup
    network="hangzhounet"
    address="tz1Xm6kv5euMCjTKgYLt1KcCMhZy9FFBRyQ8"
    className="text-bold text-red-300"
  />
//...
```

which will render

```html
<span
  title="tz1Xm6kv5euMCjTKgYLt1KcCMhZy9FFBRyQ8"
  class="text-bold text-red-300"
>
  <!--
    tz1Xm6kv5euMCjTKgYLt1KcCMhZy9FFBRyQ8 on hangzhounet
    is registered as callmekatootie.han
  -->
  callmekatootie.han
</span>
```

## Props

### network (string)

The network in which to lookup the domain. Supported values:

- mainnet
- hangzhounet

### address (string)

The address to lookup

### className (string)

The CSS classes to associate with the generated `<span>` tag
npm package: @subter/react-tezos-wallet-guard
Description: A reactjs component that manages wallet connection for the tezos blockchain
Author: Mithun Kamath
Latest version: 1.0.0

# Reactjs Tezos Wallet Guard

A reactjs component that is meant to wrap around your routes to manage connection and disconnect of the wallet (through [Beacon SDK](https://github.com/airgap-it/beacon-sdk))

## Installation & Usage

To install, run:

```bash
npm install @subter/react-tezos-wallet-guard
```

You can then use it in your code as follows:

```js
// index.js
import { ProvideAuth } from "@subter/react-tezos-wallet-guard";
import { BeaconEvent } from "@airgap/beacon-sdk";

// Your component code
// ...
// ...
ReactDOM.render(
  <React.StrictMode>
    <ProvideAuth
      network="hangzhounet"
      contractAddress={process.env.REACT_APP_BACKEND_CONTRACT_ADDRESS}
      beaconWalletOptions={{
        name: "Subter Development",
        disableDefaultEvents: true,
        eventHandlers={{
          [BeaconEvent.LOCAL_RATE_LIMIT_REACHED]: {
            handler: data => console.log("Local rate limit reached")
          }
        }}
      }}
    >
      {/** React Router */}
      <BrowserRouter>
        <Routes>
          <Route path="/" element={<App />} />
          <Route path="/dashboard" element={<Dashboard />} />
        </Routes>
      </BrowserRouter>
    </ProvideAuth>
  </React.StrictMode>,
  document.getElementById("root")
);
```

and then in any of your defined components:

```js
import { useAuth } from "@subter/react-tezos-wallet-guard";

// Your component code
// ...
// ...
const { contract, storage, onTransaction, userAddress } = useAuth();
```

## Props

### network (string)(required)

The network in which to lookup the domain. Supported values:

- mainnet
- hangzhounet

### contractAddress (string)(required)

Your backend contract address

### beaconWalletOptions (object)(optional)

The config object passed to `BeaconWallet` from the [@taquito/beacon-wallet](https://www.npmjs.com/package/@taquito/beacon-wallet) package.

- The `preferredNetwork` is set to the value passed for the `network` prop
- For the `eventHandlers`, the `BeaconEvent.PAIR_INIT` and the `BeaconEvent.PAIR_SUCCESS` are being used by the library (and it will override any event handlers defined by you)


## Exports

### `<ProvideAuth />` component

A reactjs context provider.

### `useAuth()` hook

A reactjs hook that provides the following details:

- Tezos => The `TezosToolkit()`
- contract => The backend contract
- publicToken => Once the wallet is paired, the public key of the user's wallet address
- wallet => The `BeaconWallet()`
- userAddress => The Wallet's address
- userBalance => The tezos balance in the user's wallet
- storage => The storage on the backend contract
- onTransaction => Function to be called after each blockchain transaction, to update the contract's storage and user's balance details
- beaconConnection => Read this value to know if the wallet is connected or not
- connectWallet => Function to initiate connection with the user's wallet
- disconnectWallet => Function to initiate disconnection with the user's wallet
npm package: @subtotal-inc/ai-toolkit
Description: The Subtotal AI Toolkit enables popular agent frameworks including LangChain and Vercel's AI SDK to integrate with Subtotal APIs through function calling. It also provides tooling to quickly integrate metered billing for prompt and completion token usage.
Author: Subtotal
Latest version: 1.0.3

# Subtotal AI Toolkit - TypeScript

The Subtotal AI Toolkit enables popular agent frameworks including LangChain and Vercel's AI SDK to integrate with Subtotal APIs through function calling. It also provides tooling to quickly integrate metered billing for prompt and completion token usage.

## Installation

You don't need this source code unless you want to modify the package. If you just want to use the package run:

```
npm install @subtotal-inc/ai-toolkit
```

### Requirements

- Node 18+

## Usage

The library needs to be configured with your account's secret API key available in your [Subtotal Dashboard][api-keys]. Additionally, `configuration` enables you to specify the types of actions that can be taken using the toolkit.

```typescript
import {SubtotalAIToolkit, Tools} from '@subtotal-inc/ai-toolkit/langchain';

const subtotalAIToolkit = new SubtotalAIToolkit({
  secretKey: process.env.SUBTOTAL_SECRET_KEY!,
  configuration: {
    tools: [Tools.getPurchases, Tools.getPurchaseDetails],
  },
});
```

### Tools

The toolkit works with LangChain and Vercel's AI SDK and can be passed as a list of tools. For example:

```typescript
import {AgentExecutor, createStructuredChatAgent} from 'langchain/agents';

const tools = subtotalAIToolkit.getTools();

const agent = await createStructuredChatAgent({
  llm,
  tools,
  prompt,
});

const agentExecutor = new AgentExecutor({
  agent,
  tools,
});
```

## Model Context Protocol

The Subtotal AI Toolkit also supports the [Model Context Protocol (MCP)](https://modelcontextprotocol.com/). See `/examples/modelcontextprotocol` for an example. The same configuration options are available, and the server can be run with all supported transports.

```typescript
import {
  SubtotalAIToolkit,
  Tools,
} from '@subtotal-inc/ai-toolkit/modelcontextprotocol';
import {StdioServerTransport} from '@modelcontextprotocol/sdk/server/stdio.js';

const server = new SubtotalAIToolkit({
  secretKey: process.env.SUBTOTAL_SECRET_KEY!,
  configuration: {
    tools: [Tools.getPurchases, Tools.getPurchaseDetails],
  },
});

async function main() {
  const transport = new StdioServerTransport();
  await server.connect(transport);
  console.error('Subtotal MCP Server running on stdio');
}

main().catch((error) => {
  console.error('Fatal error in main():', error);
  process.exit(1);
});
```

[api-keys]: https://dashboard.subtotal.com/api-keys
npm package: @subtotal-inc/mcp
Description: A command line tool for setting up a Subtotal MCP server
Author: Subtotal
Latest version: 1.0.1

# Subtotal Model Context Protocol

The Subtotal [Model Context Protocol](https://modelcontextprotocol.com/) server allows you to integrate with Subtotal APIs through function calling.

## Setup

To run the Subtotal MCP server using npx, use the following command:

```bash
# To set up all available tools
npx -y @subtotal-inc/mcp --tools=all --subtotal-secret-key=<SECRET-KEY>

# To set up specific tools
npx -y @subtotal-inc/mcp --tools=get-purchases,get-purchase-details --subtotal-secret-key=<SECRET-KEY>
```

Make sure to replace `<SECRET-KEY>` with your actual Subtotal API secret API key value.
Alternatively, you could set the SUBTOTAL_SECRET_KEY environment variable.

### Usage with Claude Desktop

Add the following to your `claude_desktop_config.json`. See [here](https://modelcontextprotocol.io/quickstart/user) for more details.

```
{
    “mcpServers”: {
        “subtotal”: {
            “command”: “npx”,
            “args”: [
                “-y”,
                “@subtotal-inc/mcp”,
                “--tools=all”,
                “--subtotal-secret-key=<SECRET-KEY>”
            ]
        }
    }
}
```

## Available tools

| Tool                       | Description                    |
| -------------------------- | ------------------------------ |
| `get-merchants`            | Get merchants                  |
| `create-connection`        | Create a new connection        |
| `create-merchant-link-url` | Create a new merchant link URL |
| `get-purchases`            | Get purchases                  |
| `get-purchase-details`     | Get purchase details           |

## Debugging the Server

To debug your server, you can use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector).

First build the server

```
npm run build
```

Run the following command in your terminal:

```bash
# Start MCP Inspector and server with all tools
npx @modelcontextprotocol/inspector node dist/index.js --tools=all --subtotal-secret-key=<SECRET-KEY>
```

### Instructions

1. Replace `<SECRET-KEY>` with your actual Subtotal API secret key value.
2. Run the command to start the MCP Inspector.
3. Open the MCP Inspector UI in your browser and click Connect to start the MCP server.
4. You can see the list of tools you selected and test each tool individually.
npm package: @subtrackhub/cli
Description: SubTrackHub CLI - Detect unused SaaS and cloud resources from your terminal
Author: SubTrackHub Team
Latest version: 1.0.0

# SubTrackHub CLI

Detect unused SaaS and cloud resources from your terminal.

## Installation

```bash
npm install -g @subtrackhub/cli
```

## Quick Start

```bash
# 1. Login with your API key
subtrackhub login --token stk_live_your_api_key

# 2. Run a scan
subtrackhub scan

# 3. View leaks
subtrackhub leaks

# 4. Resolve a leak
subtrackhub resolve <leak-id>
```

## Commands

### Authentication

```bash
# Login
subtrackhub login --token <api-key>

# Show current user
subtrackhub whoami

# Logout
subtrackhub logout
```

### Scanning

```bash
# Scan all providers
subtrackhub scan

# Scan specific provider
subtrackhub scan --provider aws

# Output as JSON
subtrackhub scan --json
```

### Viewing Leaks

```bash
# List all leaks
subtrackhub leaks

# Filter by provider
subtrackhub leaks --provider aws

# Filter by status
subtrackhub leaks --status zombie

# Limit results
subtrackhub leaks --limit 50

# JSON output
subtrackhub leaks --json
```

### Resolving

```bash
# Mark as resolved
subtrackhub resolve <leak-id>
```

### Summary (CI/CD Friendly)

```bash
# Quick summary
subtrackhub summary

# Exit with code 1 if leaks found (for CI/CD)
subtrackhub summary --exit-code

# JSON output
subtrackhub summary --json
```

### Connections

```bash
# List connected providers
subtrackhub connections
```

## CI/CD Integration

### GitHub Actions

```yaml
name: Cloud Audit
on:
  schedule:
    - cron: '0 9 * * *'  # Daily at 9 AM
  workflow_dispatch:

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - name: Install SubTrackHub CLI
        run: npm install -g @subtrackhub/cli

      - name: Run Audit
        env:
          SUBTRACKHUB_API_KEY: ${{ secrets.SUBTRACKHUB_API_KEY }}
        run: |
          subtrackhub login --token $SUBTRACKHUB_API_KEY
          subtrackhub scan
          subtrackhub summary --exit-code
```

### GitLab CI

```yaml
cloud-audit:
  image: node:18
  script:
    - npm install -g @subtrackhub/cli
    - subtrackhub login --token $SUBTRACKHUB_API_KEY
    - subtrackhub summary --exit-code
  only:
    - schedules
```

## Getting Your API Key

1. Go to [subtrackhub.com/settings](https://subtrackhub.com/settings)
2. Navigate to "API Keys" section
3. Click "Generate New Key"
4. Copy the key (it will only be shown once!)

## Support

- Website: [subtrackhub.com](https://subtrackhub.com)
- Email: support@subtrackhub.com

## License

MIT
npm package: @subtrak/angular
Description: Angular SDK for Subtrak - Subscription billing and entitlement management
Author: Subtrak
Latest version: 2.1.3

# SubtrakAngular

This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0.

## Code scaffolding

Angular CLI includes powerful code scaffolding tools. To generate a new component, run:

```bash
ng generate component component-name
```

For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:

```bash
ng generate --help
```

## Building

To build the library, run:

```bash
ng build subtrak-angular
```

This command will compile your project, and the build artifacts will be placed in the `dist/` directory.

### Publishing the Library

Once the project is built, you can publish your library by following these steps:

1. Navigate to the `dist` directory:
   ```bash
   cd dist/subtrak-angular
   ```

2. Run the `npm publish` command to publish your library to the npm registry:
   ```bash
   npm publish
   ```

## Running unit tests

To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:

```bash
ng test
```

## Running end-to-end tests

For end-to-end (e2e) testing, run:

```bash
ng e2e
```

Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.

## Additional Resources

For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
npm package: @subu1979/saml
Description: Create SAML assertions. Supports SAML 1.1 and SAML 2.0 tokens.
Author: Subu1979
Latest version: 3.2.0

# node-saml

Create SAML assertions. Supports SAML 1.1 and SAML 2.0 tokens.

[![Build Status](https://travis-ci.org/auth0/node-saml.png)](https://travis-ci.org/auth0/node-saml)

### Supported Node Versions

node >= 12

### Usage

```js
var saml = require('saml').Saml20; // or Saml11

var options = {
  cert: fs.readFileSync(__dirname + '/test-auth0.pem'),
  key: fs.readFileSync(__dirname + '/test-auth0.key'),
  issuer: 'urn:issuer',
  lifetimeInSeconds: 600,
  audiences: 'urn:myapp',
  attributes: {
    'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress': 'foo@bar.com',
    'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name': 'Foo Bar'
  },
  nameIdentifier: 'foo',
  sessionIndex: '_faed468a-15a0-4668-aed6-3d9c478cc8fa'
};

var signedAssertion = saml.create(options);
```

Everything except the cert and key is optional.

## Issue Reporting

If you have found a bug or if you have a feature request, please report them at this repository issues section. Please do not report security vulnerabilities on the public GitHub issue tracker. The [Responsible Disclosure Program](https://auth0.com/whitehat) details the procedure for disclosing security issues.

## Author

[Auth0](auth0.com)

## License

This project is licensed under the MIT license. See the [LICENSE](LICENSE) file for more info.
npm package: @subuta/snippets
Description: my javascript re-usable snippets used along with https://github.com/subuta/matryoshka.js :)
Author: subuta
Latest version: 0.3.2

# snippets.js
my javascript re-usable snippets used along with https://github.com/subuta/matryoshka.js :)

### How to use
Install(`npm i`) or Link(`npm link`) `@subuta/snippets` to projects.

### To publish package
`npm publish --access public`
npm package: @subwallet-connect/arcana-auth
Description: Arcana wallet is a built-in, secure Web3 wallet that users can access instantly when logging into an app integrated with the Arcana Auth SDK. It offers a customizable interface that can be branded to match the app's style. Users don't need to generate or 
Author: thiendekaco
Latest version: 1.0.8

# @subwallet-connect/arcana-auth

## Wallet module for connecting Arcana Wallet SDK to web3-onboard

[Web3-Onboard](https://onboard.blocknative.com/) is an open-source, framework-agnostic JavaScript library to onboard users to web3 apps. This package can be used to integrate [Arcana Wallet](https://docs.arcana.network/concepts/anwallet/index.html) support into Web3-Onboard's "Connect Wallet" modal. With this module, the Arcana wallet option will be shown for any app that integrates with the Arcana Auth SDK and uses it to onboard users. There is no need to download any browser extension. For more information on how to use the Arcana Wallet, please refer to the [Arcana Wallet User Guide](https://docs.arcana.network/user-guides/wallet-ui/index.html). Web3 app developers can refer to the [Arcana Wallet Developer Docs](https://docs.arcana.network/auth-quick-start.html)

**Note**

To ensure proper functionality of the embedded Arcana wallet in the Arcana Auth SDK, it may be necessary to disable certain other wallets that operate as browser extensions.

### Install

`npm install @subwallet-connect/core @subwallet-connect/arcana-auth`

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import arcanaAuthModule from '@subwallet-connect/arcana-auth'

// initialize the module
const arcanaAuth = arcanaAuthModule({
  clientID: 'xar_test_c9c3bc702eb13255c58dab0e74cfa859711c13cb'
})

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    arcanaAuth,
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/bitget
Description: bitget-wallet SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnostic 
Latest version: 1.0.8

# @subwallet-connect/bitget

## Wallet module for connecting Bitget Wallet through web3-onboard

Bitget Wallet SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.

### Install

**NPM**
`npm i @subwallet-connect/core @subwallet-connect/bitget`

**Yarn**
`yarn add @subwallet-connect/core @subwallet-connect/bitget`

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import bitgetWalletModule from '@subwallet-connect/bitget'

const bitgetWallet = bitgetWalletModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    bitgetWallet()
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/blocto
Description: Blocto SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern 
Latest version: 1.0.8

# @subwallet-connect/blocto

## Wallet module for connecting Blocto SDK to web3-onboard

See [Blocto Developer Docs](https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk)

### Install

`npm i @subwallet-connect/blocto`

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import bloctoModule from '@subwallet-connect/blocto'

// initialize the module with options
const blocto = bloctoModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    blocto
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

## Build Environments

For build env configurations and setups please see the Build Env section [here](https://onboard.blocknative.com/docs/modules/core#build-environments)

### Webpack 4

Node built-ins are automatically bundled in v4 so that portion is handled automatically.

**Blocto** support will require a Babel to compile from es6 if not already supported. See config for Babel and Webpack4 as follows

`npm i --save-dev @babel/cli @babel/core @babel/node @babel/plugin-proposal-nullish-coalescing-operator @babel/plugin-proposal-optional-chaining @babel/plugin-syntax-bigint @babel/register`

**AND**

`npm i babel-loader`

**babel.config.js**

```javascript
module.exports = api => {
  api.cache(true)

  const plugins = [
    '@babel/plugin-proposal-optional-chaining',

    '@babel/plugin-proposal-nullish-coalescing-operator',

    '@babel/plugin-syntax-bigint'
  ]

  return { plugins }
}
```

**webpack.config.js**

```javascript
config.module.rules = [
  ...otherModuleRules,

  {
    test: /\.js$/,

    exclude: _ => !/node_modules\/(@web3auth|@ethereumjs)/.test(_),

    loader: 'babel-loader'
  }
]
```
npm package: @subwallet-connect/capsule
Description: Capsule SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern
Latest version: 1.0.1

# @subwallet-connect/capsule

## Wallet module for connecting Capsule to web3-onboard

[Capsule](https://usecapsule.com/) is a signing solution that you can use to create secure embedded MPC wallets with just an email or social login that are recoverable, portable, and permissioned across different crypto applications, so your users don't need to create different signers or contract accounts for every app they use.

Adding the Capsule Module to web3onboard gives your users the ability to log in with Capsule wallets created elsewhere. You can also [request a Capsule API Key](https://form.typeform.com/to/hLaJeYJW) to allow users to easily create embedded wallets within web3onboard without any extra integration steps.

To learn more, check out the [Capsule Developer Docs](https://docs.usecapsule.com/)

### Install

`yarn add @subwallet-connect/capsule`

## Options

```typescript
type CapsuleInitOptions = {
  environment: Environment
  appName: string
  apiKey?: string
}
```

`environment` - The environment to which you want to connect, either `Environment.DEVELOPMENT` for testnets and development only or `Environment.PRODUCTION` for production use.
`appName` - Your Application's name - displayed in the modal when your users are prompted to log in.
`apiKey` - Your Capsule API Key. Required for new user creation, but not required if you are only allowing users to log in. To get an API key, fill out [this form](https://form.typeform.com/to/hLaJeYJW).

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import capsuleModule from '@subwallet-connect/capsule'

// initialize the module with options
const capsule = capsuleModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    capsule
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

## Build env settings (webpack config)

You may need to add the following rule to your webpack config module
in order to handle certain styling files (See the config for the
Blocknative demo app):

```typescript
{
  test: /\.(woff(2)?|eot|ttf|otf|svg)$/,
  type: 'asset/resource',
  generator: {
    filename: 'fonts/[name][ext][query]'
  }
}
```
npm package: @subwallet-connect/coinbase
Description: Coinbase SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic moder
Latest version: 1.0.8

# @subwallet-connect/coinbase

## Wallet module for connecting Coinbase Wallet SDK to web3-onboard
See [Coinbase Wallet Developer Docs](https://docs.cloud.coinbase.com/wallet-sdk/docs)

### Install

`npm i @subwallet-connect/coinbase`

## Options

```typescript
type CoinbaseWalletOptions = {
  darkMode: boolean // default = false
}
```

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import coinbaseWalletModule from '@subwallet-connect/coinbase'

// initialize the module with options
const coinbaseWalletSdk = coinbaseWalletModule({ darkMode: true })

// can also initialize with no options...
// const coinbaseWalletSdk = coinbaseWalletModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    coinbaseWalletSdk
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/common
Description: Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, mul
Latest version: 1.0.8

# @subwallet-connect/common

## A collection of functions and types that are shared across various packages in the Onboard V2 monorepo
npm package: @subwallet-connect/dcent
Description: D'CENT wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern java
Latest version: 1.0.8

# @subwallet-connect/dcent

## Wallet module for connecting D'CENT hardware wallets to web3-onboard

### Install

`npm i @subwallet-connect/dcent`

### Usage

```typescript
import Onboard from '@subwallet-connect/core'
import dcentModule from '@subwallet-connect/dcent'

const dcent = dcentModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    dcent
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

### Filtering Platforms

You may decide that on certain platforms you do not want to display this wallet as a selectable option. To do that you can use the `filter` init option which is an array of platforms that you would like this wallet to **not** be displayed to the end user:

```typescript
import Onboard from '@subwallet-connect/core'
import dcentModule from '@subwallet-connect/dcent'

const dcent = dcentModule({ filter: ['Safari'] })

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    dcent
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

Initialization options:
```typescript
type dcentInitOptions = {
  customNetwork?: CustomNetwork
  filter?: Platform[]
  containerElement?: string
}
```

The following is a list of the platforms that can be filtered:

```typescript
type Platform = DeviceOSName | DeviceBrowserName | DeviceType | 'all';

type Platform =
  | 'Windows Phone'
  | 'Windows'
  | 'macOS'
  | 'iOS'
  | 'Android'
  | 'Linux'
  | 'Chrome OS'
  | 'Android Browser'
  | 'Chrome'
  | 'Chromium'
  | 'Firefox'
  | 'Microsoft Edge'
  | 'Opera'
  | 'Safari'
  | 'desktop'
  | 'mobile'
  | 'tablet'
```
npm package: @subwallet-connect/enkrypt
Description: Enkrypt SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern
Latest version: 1.0.8

# @subwallet-connect/enkrypt

## Wallet module for connecting Enkrypt wallet through web3-onboard

### Install

**NPM**
`npm i @subwallet-connect/core @subwallet-connect/enkrypt`

**Yarn**
`yarn add @subwallet-connect/core @subwallet-connect/enkrypt`

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import enrkypt from '@subwallet-connect/enkrypt'

const enrkyptModule = enrkypt()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    enrkyptModule
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/fortmatic
Description: Fortmatic wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern j
Latest version: 1.0.8

# @subwallet-connect/fortmatic

## Wallet module for connecting Fortmatic to web3-onboard

### Install

`npm i @subwallet-connect/fortmatic`

## Options

```typescript
type FortmaticOptions = {
  apiKey: string
}
```

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import fortmaticModule from '@subwallet-connect/fortmatic'

const fortmatic = fortmaticModule({ apiKey: 'API_KEY' })

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    fortmatic
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/frame
Description: Frame wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javas
Latest version: 1.0.8

# @subwallet-connect/frame

## Wallet module for connecting Frame to web3-onboard

[Frame](https://frame.sh/) is a privacy focused EVM desktop wallet, enabling a secure system-wide interface to your chains and web3 accounts.

### Install

`npm i @subwallet-connect/core @subwallet-connect/frame`

### Usage

```typescript
import Onboard from '@subwallet-connect/core'
import frameModule from '@subwallet-connect/frame'

const frame = frameModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    frame
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

### Filtering Platforms

You may decide that on certain platforms you do not want to display this wallet as a selectable option. To do that you can use the `filter` init option which is an array of platforms that you would like this wallet to **not** be displayed to the end user:

```typescript
import Onboard from '@subwallet-connect/core'
import frameModule from '@subwallet-connect/frame'

const frame = frameModule({ filter: ['iOS', 'Android'] })

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    frame
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

The following is a list of the platforms that can be filtered:

```typescript
type Platform =
  | 'Windows Phone'
  | 'Windows'
  | 'macOS'
  | 'iOS'
  | 'Android'
  | 'Linux'
  | 'Chrome OS'
  | 'Android Browser'
  | 'Chrome'
  | 'Chromium'
  | 'Firefox'
  | 'Microsoft Edge'
  | 'Opera'
  | 'Safari'
  | 'desktop'
  | 'mobile'
  | 'tablet'
```
npm package: @subwallet-connect/frontier
Description: Frontier Wallet SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnosti
Latest version: 1.0.8

# @subwallet-connect/frontier

## Wallet module for connecting Frontier Wallet through web3-onboard

Frontier Wallet SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.

### Install

**NPM**
`npm i @subwallet-connect/core @subwallet-connect/frontier`

**Yarn**
`yarn add @subwallet-connect/core @subwallet-connect/frontier`

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import frontierModule from '@subwallet-connect/frontier'

const frontier = frontierModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    frontier
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/gnosis
Description: Safe module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI
Latest version: 1.0.8

# @subwallet-connect/gnosis

## Wallet module for connecting Safe to web3-onboard

### Install

`npm i @subwallet-connect/gnosis @safe-global/safe-apps-provider @safe-global/safe-apps-sdk`

### Options

```typescript
type GnosisOptions = {
  whitelistedDomains: RegExp[]
}
```

### Usage

```typescript
import Onboard from '@subwallet-connect/core'
import safeModule from '@subwallet-connect/gnosis'

const safe = safeModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    safe
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

## Customizing Safe Transaction Gas

If you are looking to set the `gasLimit` of a transaction within Safe, the gas properties within the transaction WILL BE IGNORED.
Instead you will need to use the `safeTxGas` prop AND the web3-onboard Safe instance that is exposed through the provider to send along the transaction.
The Safe sdk instance exposed by the web3-onboard must be used to set the `safeTxGas` prop and send the transaction.
Check [Safe docs](https://github.com/safe-global/safe-contracts/blob/a6504a9afdeac186a8cdb29ad68b189523c80eda/docs/safe_tx_gas.md) for full detail as it can be a bit confusing.
An example of accessing the Safe SDK instance and sending a transaction can be found below.

```typescript
const tx = {
  to: toAddress,
  value: 1000000000000000,
  data: '0x',
}
const params = {
  safeTxGas: 5000000,
};

// wallet is the provider exposed by web3-onboard after the Safe wallet is connected
let trans = await wallet.instance.txs.send({txs:[tx], params})
```

Note: With the `safeTxGas` you will see additional value on the `gasLimit` displayed in the Safe. Check [Safe docs](https://github.com/safe-global/safe-contracts/blob/a6504a9afdeac186a8cdb29ad68b189523c80eda/docs/safe_tx_gas.md) for full details on that computation.
npm package: @subwallet-connect/hw-common
Description: Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, mul
Latest version: 1.0.8

# @subwallet-connect/common

## A collection of functions and types that are shared across various packages in the Onboard V2 monorepo
npm package: @subwallet-connect/infinity-wallet
Description: Infinity Wallet SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnosti
Latest version: 1.0.8

# @subwallet-connect/infinity-wallet

## Wallet module for connecting Infinity Wallet through web3-onboard

Infinity Wallet SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.

Checkout the official [Infinity Wallet page](https://infinitywallet.io/) for details.

### Install

**NPM**
`npm i @subwallet-connect/core @subwallet-connect/infinity-wallet`

**Yarn**
`yarn add @subwallet-connect/core @subwallet-connect/infinity-wallet`

## Usage

```typescript
import Onboard from '@subwallet-connect/core'
import infinityWalletModule from '@subwallet-connect/infinity-wallet'

const infinityWallet = infinityWalletModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    infinityWallet
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```
npm package: @subwallet-connect/keepkey
Description: KeepKey hardware wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic m
Latest version: 1.0.8

# @subwallet-connect/keepkey

## Wallet module for connecting KeepKey hardware wallets to web3-onboard

### Install

`npm i @subwallet-connect/keepkey`

### Usage

```typescript
import Onboard from '@subwallet-connect/core'
import keepkeyModule from '@subwallet-connect/keepkey'

const keepkey = keepkeyModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    keepkey
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

### Filtering Platforms

You may decide that on certain platforms you do not want to display this wallet as a selectable option. To do that you can use the `filter` init option which is an array of platforms that you would like this wallet to **not** be displayed to the end user:

```typescript
import Onboard from '@subwallet-connect/core'
import keepkeyModule from '@subwallet-connect/keepkey'

const keepkey = keepkeyModule({ filter: ['Safari'] })

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    keepkey
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
```

Initialization options:

```typescript
type keepkeyInitOptions = {
  containerElement?: string
  filter?: Platform
  /**
   * A number that defines the amount of consecutive empty addresses displayed
   * within the Account Select modal. Default is 5
   */
  consecutiveEmptyAccountThreshold?: number
}
```

The following is a list of the platforms that can be filtered:

```typescript
type Platform = DeviceOSName | DeviceBrowserName | DeviceType | 'all'

type Platform =
  | 'Windows Phone'
  | 'Windows'
  | 'macOS'
  | 'iOS'
  | 'Android'
  | 'Linux'
  | 'Chrome OS'
  | 'Android Browser'
  | 'Chrome'
  | 'Chromium'
  | 'Firefox'
  | 'Microsoft Edge'
  | 'Opera'
  | 'Safari'
  | 'desktop'
  | 'mobile'
  | 'tablet'
```