open-index/open-npm huggingface dataset:
npm package: @opaper/chat-widget
Description: Embeddable chat widget for Lumi
Latest version: 0.1.1

# @lumi/chat-widget

A React component for embedding Lumi chat functionality into any website.

## Installation

```bash
# Using npm
npm install @lumi/chat-widget

# Using yarn
yarn add @lumi/chat-widget

# Using bun
bun add @lumi/chat-widget
```

## Usage

```jsx
import { ChatWidget } from '@lumi/chat-widget';

function App() {
  return (
    <div>
      <h1>My Website</h1>
      <p>Welcome to my website!</p>

      {/* Add the ChatWidget component */}
      <ChatWidget organisationId="your-organisation-id" />
    </div>
  );
}
```

## Props

| Prop | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| organisationId | string | Yes | - | Your Lumi organisation ID |
| baseUrl | string | No | '' | Base URL for API endpoints. If not provided, it will use the current host. |

## Development

```bash
# Build the package
bun run build

# Run in development mode with watch
bun run dev

# Type check
bun run typecheck
```

## Publishing

This package is automatically published to npm when a new GitHub release is created. The publishing process is handled by a GitHub Action workflow.

### Release Process

1. Update the version in `package.json`
2. Commit the changes and push to the main branch
3. Create a new GitHub release with a tag in the format `@lumi/chat-widget@0.1.1`
4. The GitHub Action will automatically:
   - Build the package
   - Verify that the package version matches the release tag
   - Check if the version already exists on npm
   - Publish the package to npm using Bun if it doesn't already exist

### Requirements

- An `NPM_TOKEN` must be added to the repository secrets to authenticate with npm
- The package version in `package.json` must match the version in the GitHub release tag
- The GitHub release tag must be in the format `@lumi/chat-widget@version` (e.g., `@lumi/chat-widget@0.1.1`)
## License

MIT
npm package: @opaquecash/opaque
Description: Unified Opaque SDK client: config, indexer announcements, announce payloads, balances, traits
Latest version: 0.1.2

# @opaquecash/opaque

Single entry point for Opaque **stealth** (EIP-5564) and **PSR** flows used together with your own indexer.

**Full documentation** (guides, API reference, playground): **[docs.opaque.cash](https://docs.opaque.cash)**

## Install

```bash
npm install @opaquecash/opaque
```

The package ships TypeScript types and depends on **`viem`** (v2). You must load the **WASM** bundle (`cryptography.js`) at runtime—either from your app’s static assets or a hosted URL (see below).

### Working from this repository

```bash
cd sdk && npm install && npm run build
```

Then depend on `@opaquecash/opaque` via your workspace or `npm link`.

## Initialize

```ts
import { OpaqueClient } from "@opaquecash/opaque";

const client = await OpaqueClient.create({
  chainId: 11155111,
  rpcUrl: "https://…",
  walletSignature: userSignatureHex,
  ethereumAddress: userAddress,
  wasmModuleSpecifier: new URL("/pkg/cryptography.js", import.meta.url).href,
});
```

Hosted WASM entry used by the reference app:

`https://www.opaque.cash/pkg/cryptography.js`

## Constants

- `OpaqueClient.supportedChainIds()`
- `OpaqueClient.chainDeployment(chainId)` — registry, announcer, verifier, default tokens
- `NATIVE_TOKEN_ADDRESS` — sentinel for ETH in balance aggregation

## Indexer announcements

Pass subgraph-shaped rows:

```ts
const rows: IndexerAnnouncement[] = [
  {
    blockNumber: "10533630",
    etherealPublicKey: "0x02…",
    logIndex: 161,
    metadata: "0x…",
    stealthAddress: "0x…",
    transactionHash: "0x…",
    viewTag: 234,
  },
];
```

## Flows

| Goal | API |
|------|-----|
| Resolve recipient meta-address (registry read via `rpcUrl`) | `resolveRecipientMetaAddress(normalAddress)` |
| Register meta-address calldata | `buildRegisterMetaAddressTransaction()` |
| Send: derive stealth + ephemeral | `prepareStealthSend(recipientMetaHex)` |
| Announce calldata | `buildAnnounceTransactionRequest(prepareResult)` |
| Owned outputs | `filterOwnedAnnouncements(rows)` |
| Balances by token | `getBalancesFromAnnouncements(rows)` |
| PSR traits | `discoverTraits(rows)` |

You always submit transactions from your own wallet; the SDK returns **structured calldata** and **read results**.

## Lower-level packages

`@opaquecash/stealth-core`, `@opaquecash/stealth-wasm`, `@opaquecash/stealth-chain`, `@opaquecash/psr-core`, and related packages remain available for advanced integrations.