open-index/open-npm huggingface dataset:
npm package: @stellot/secret-box
Description: Simple symmetric encryption for nodejs and browsers
Author: Johan Stén
Latest version: 1.0.1

# @futuretense/secret-box

Simple symmetric-key encryption for nodejs and browsers

Draws inspiration from `secret box` of NaCl, but uses AES 
instead of ChaCha20-Poly1305. The benefit is less code, and faster code,
since AES is implemented natively by the `crypto` module in nodejs, and by the Web Cryptography API in browsers.

## Usage

```
import { encrypt, decrypt } from '@futuretense/secret-box'

const cipherText = await encrypt(data, key, nonce, useAuthentication);
const plainText  = await decrypt(cipherText, key, nonce, useAuthentication);
```

## Authentication

_Authenticated mode_ (which is the default) uses AES-256-GCM to add integrity control to the pot, to make it possible to verify that the provided cipher output has been encrypted by someone with access to the encryption key.

Authentication adds sixteen bytes of data to the output.

_Un-authenticated mode_ uses AES in counter mode (AES-256-CTR), and doesn't add any extra data.

## Nonces

Authenticated mode has a twelve byte nonce, and un-authenticated mode has a sixteen byte nonce.

In both modes, the nonces provided are used as initial values for the counters.

#### Nonce re-use

Don't.

Both modes use stream ciphers that divide the input data into 128-bit blocks, which are then _exclusive-or:ed_
with the result of a function based on the encryption key and the counter value for a block.

If a _(key, counter)_-combination is ever used twice, this can be exploited to arrive at a block that's the _exclusive-or_ of the two unencrypted input blocks.

---
Copyright &copy; 2020 Future Tense, LLC
npm package: @stelmon/randomid-generator
Description: This module provides a simple yet powerful utility function for generating random IDs. The randomID function generates a string of characters of a specified length, which can be used as unique identifiers in various applications.
Latest version: 1.0.2

This module provides a simple yet powerful utility function for generating random IDs. The randomID function generates a string of characters of a specified length, which can be used as unique identifiers in various applications.
npm package: @stem/babel-plugin-syntax-optional-chaining
Description: Allow parsing of optional properties
Latest version: 7.0.0-alpha.13

# babel-plugin-syntax-optional-chaining

Allow parsing of optional properties.

## Installation

```sh
npm install --save-dev babel-plugin-syntax-optional-chaining
```

## Usage

### Via `.babelrc` (Recommended)

**.babelrc**

```json
{
  "plugins": ["syntax-optional-chaining"]
}
```

### Via CLI

```sh
babel --plugins syntax-optional-chaining script.js
```

### Via Node API

```javascript
require("babel-core").transform("code", {
  plugins: ["syntax-optional-chaining"]
});
```
npm package: @stemado/scout-mcp
Description: MCP server for browser automation with anti-detection. Scout pages, find elements, interact with websites, and monitor network traffic.
Author: sdoherty
Latest version: 1.8.1

# @stemado/scout-mcp

MCP server for browser automation with anti-detection. Scout pages, find elements, interact with websites, and monitor network traffic — from any AI client that supports the [Model Context Protocol](https://modelcontextprotocol.io/).

Built on [botasaurus-driver](https://github.com/omkarcloud/botasaurus) for automatic fingerprint evasion and stealth browsing.

## Quick Start

```bash
npx -y @stemado/scout-mcp
```

## Configure Your AI Client

Add to your MCP server configuration:

```json
{
  "mcpServers": {
    "scout": {
      "command": "npx",
      "args": ["-y", "@stemado/scout-mcp"]
    }
  }
}
```

Works with Claude Desktop, Cursor, Windsurf, Continue, and any MCP-compatible client.

**Prerequisites:** Python 3.11+, Google Chrome, and either [uv](https://docs.astral.sh/uv/) (recommended) or [pipx](https://pipx.pypa.io/).

For full documentation, see the [GitHub repository](https://github.com/stemado/scout-mcp).
npm package: @stemak/react-native-gesture-handler
Description: Fork of Experimental implementation of a new declarative API for gesture handling in react-native
Author: Krzysztof Magiera
Latest version: 1.10.3

<p align="center">
  <h1 align="center">React Native Gesture Handler</h1>
  <h3 align="center">Declarative API exposing platform native touch and gesture system to React Native.</h3>
</p>

React Native Gesture Handler provides native-driven gesture management APIs for building best possible touch-based experiences in React Native.

With this library gestures are no longer controlled by the JS responder system, but instead are recognized and tracked in the UI thread.
It makes touch interactions and gesture tracking not only smooth, but also dependable and deterministic.

## Installation

Check [getting started](https://docs.swmansion.com/react-native-gesture-handler/docs/#installation) section of our docs for the detailed installation instructions.

## Documentation

Check out our dedicated documentation page for info about this library, API reference and more: [https://docs.swmansion.com/react-native-gesture-handler/docs/](https://docs.swmansion.com/react-native-gesture-handler/docs/)

## Examples

If you want to play with the API but don't feel like trying it on a real app, you can run the example project. Clone the repo, go to the `Example/` folder and run:

```bash
  yarn install
```

If you are running on ios, run `pod install` in the ios folder

Run `yarn start` to start the metro bundler

Run `react-native run-android` or `react-native run-ios` (depending on which platform you want to run the example app on).

You will need to have an Android or iOS device or emulator connected as well as `react-native-cli` package installed globally.

## React native Support

| version | react-native version |
| ------- | -------------------- |
| 1.4.0+  | 0.60.0+              |
| 1.1.0+  | 0.57.2+              |
| <1.1.0  | 0.50.0+              |

## License

Gesture handler library is licensed under [The MIT License](LICENSE).

## Credits

This project is supported by amazing people from [Expo.io](https://expo.io) and [Software Mansion](https://swmansion.com)

[![expo](https://avatars2.githubusercontent.com/u/12504344?v=3&s=100 'Expo.io')](https://expo.io)
[![swm](https://logo.swmansion.com/logo?color=white&variant=desktop&width=150&tag=react-native-gesture-handler-github 'Software Mansion')](https://swmansion.com)
npm package: @stemcmicro/core
Description: Computer Algebra System in TypeScript
Author: David Geo Holmes
Latest version: 0.9.80

[![version](https://img.shields.io/npm/v/@stemcmicro/core.svg)](https://www.npmjs.com/package/@stemcmicro/core) 

[![npm downloads](https://img.shields.io/npm/dm/@stemcmicro/core.svg)](https://npm-stat.com/charts.html?package=@stemcmicro/core&from=2022-09-01)

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
npm package: @stemcmicro/eigenmath
Description: hilbert function for stemcmicro
Author: David Geo Holmes
Latest version: 0.9.80

[![version](https://img.shields.io/npm/v/@stemcmicro/eigenmath.svg)](https://www.npmjs.com/package/@stemcmicro/eigenmath) 

[![npm downloads](https://img.shields.io/npm/dm/@stemcmicro/eigenmath.svg)](https://npm-stat.com/charts.html?package=@stemcmicro/eigenmath&from=2022-09-01)

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
npm package: @stemcmicro/predicates
Description: Predicates for math expressions
Author: David Geo Holmes
Latest version: 0.9.66

[![version](https://img.shields.io/npm/v/@stemcmicro/py-parse.svg)](https://www.npmjs.com/package/@stemcmicro/py-parse) 

[![npm downloads](https://img.shields.io/npm/dm/@stemcmicro/py-parse.svg)](https://npm-stat.com/charts.html?package=@stemcmicro/py-parse&from=2022-09-01)

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
npm package: @stemcstudio/js-to-mathscript
Description: JavaScript to MathScript transpiler.
Author: David Geo Holmes
Latest version: 1.0.3

# js-to-mathscript
A transpiler and validator from JavaScript syntax to some similar syntax.

Example of replacing the name of a Binary operator:

```typescript
    it('Exponentiation', function () {
      const src = 'x**2';
      const { code } = jsToMathScript(src,
        {
          namespace: '',
          binOp: {
            '**': { kind: 'rename', value: '^' }
          },
          unaryOp: {}
        },
        {
          format: {
            semicolons: false
          }
        }
      );
      assert.strictEqual(code, 'x ^ 2');
    });
```

Example of converting a Binary operator to a function call:

```typescript
it('Bitwise XOR (^) should be turned into a function.', function () {
    const src = 'x ^ y';
    const { code } = jsToMathScript(src, {
            namespace: 'MathScript',
            binOp: {
                '**': { kind: 'rename', value: '^' },
                '^': { kind: 'function', value: 'wedge' }
            },
            unaryOp: {}
        },
        {
        format: {
            semicolons: false
        }
    });
    assert.strictEqual(code, 'MathScript.wedge(x, y)');
});
```

Example of rejecting a Unary operator:

```typescript
it("error", function () {
    try {
        const src = "const a = +b";
        jsToMathScript(src, {
            unaryOp: {
                '+': { kind: 'error', value: "Unexpected unary plus (+)" }
            }
        });
        assert.fail();
    } catch (e) {
        if (e instanceof Error) {
            assert.strictEqual(e.name, "Error");
            assert.strictEqual(e.message, "Unexpected unary plus (+)");
        } else {
            assert.fail();
        }
    }
});
```
npm package: @stemcstudio/mechanics-jsxgraph
Description: Mechanics Diagrams using JSXGraph
Author: david.geo.holmes@gmail.com
Latest version: 0.9.14

# stemcstudio-mechanics-jsxgraph
[![NPM Version](https://img.shields.io/npm/v/@stemcstudio/mechanics-jsxgraph.svg?style=flat-square)](https://www.npmjs.com/package/@stemcstudio/mechanics-jsxgraph)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE)
[![NPM Downloads](https://img.shields.io/npm/dt/@stemcstudio/mechanics-jsxgraph.svg?style=flat-square)](https://www.npmjs.com/package/@stemcstudio/mechanics-jsxgraph)

Mechanics Diagrams using JSXGraph.
npm package: @stemma/sdk
Description: Drop-in logging + versioning layer for LLM prompt calls
Latest version: 0.1.0

# @stemma/sdk

Drop-in observability for LLM calls — log prompts, tokens, latency, and cost to your [Stemma](https://stemma.dev) dashboard in one line.

Works with any provider: OpenAI, Anthropic, or anything that returns a compatible response shape.

## Install

```bash
npm install @stemma/sdk
# or
pnpm add @stemma/sdk
# or
yarn add @stemma/sdk
```

## Quick start

```ts
import Stemma from "@stemma/sdk";
import OpenAI from "openai";

const stemma = new Stemma({ apiKey: "sk-stemma-..." });
const openai = new OpenAI();

const messages = [{ role: "user", content: "Summarise this lease." }];

const response = await stemma.wrap({
  promptId: "lease-summary",
  version:  "v1",
  input:    messages,
  call: () =>
    openai.chat.completions.create({ model: "gpt-4o", messages }),
});

// response is the raw OpenAI object — nothing changes for your code
console.log(response.choices[0].message.content);
```

### With Anthropic

```ts
import Anthropic from "@anthropic-ai/sdk";

const anthropic = new Anthropic();

const response = await stemma.wrap({
  promptId: "lease-summary",
  version:  "v1",
  input:    [{ role: "user", content: "Summarise this lease." }],
  call: () =>
    anthropic.messages.create({
      model:      "claude-opus-4-6",
      max_tokens: 1024,
      messages:   [{ role: "user", content: "Summarise this lease." }],
    }),
});
```

## API

### `new Stemma(config)`

| Option | Type | Required | Description |
|---|---|---|---|
| `apiKey` | `string` | ✓ | Your project API key from the Stemma dashboard |
| `endpoint` | `string` | | Override the ingest URL (for self-hosting). Defaults to `https://stemma.dev` |
| `silent` | `boolean` | | Suppress console warnings when logging fails. Recommended `true` in production |

### `stemma.wrap(params)`

Executes `params.call()` normally, times it, extracts token usage, and fires a log fire-and-forget. Returns the raw LLM response unchanged.

| Param | Type | Required | Description |
|---|---|---|---|
| `promptId` | `string` | ✓ | Stable identifier for this prompt (e.g. `"lease-analysis"`) |
| `version` | `string` | ✓ | Label for this prompt draft (e.g. `"v1"`, `"2.0.0"`) |
| `call` | `() => Promise<T>` | ✓ | The LLM call to execute |
| `input` | `unknown` | | The messages array you sent — stored alongside the response |
| `metadata` | `Record<string, string \| number \| boolean>` | | Arbitrary key-value pairs (e.g. `{ userId: "u_123" }`) |

## Self-hosting

Point `endpoint` at your own deployment:

```ts
const stemma = new Stemma({
  apiKey:   "sk-stemma-...",
  endpoint: "https://your-domain.com",
});
```

## License

MIT