open-index/open-npm huggingface dataset:
npm package: @get-select/codemirror-lang-jinja2
Description: jinja2 language support for CodeMirror
Author: Get Select
Latest version: 0.1.0

# CodeMirror 6 language package template

Basic codemirror 6 language support for jinja2, using a lezer grammar.

Project starts from [lang-example](https://github.com/codemirror/lang-example) and draws inspirartion from [lang-jinja2](https://github.com/sdvinfo/lang-jinja2), which pins older versions its dependencies and [codemirror-lang-twig](https://github.com/ssddanbrown/codemirror-lang-twig), which is a more fully featured implementation of twig which is very similar to jinja2.


Not listed on npm, but can be installed with `npm i https://github.com/get-select/lang-jinja2` 

# Notable Shortcomings
The current release is mostly a copy of the above twig implementation, and some jinja2 features may be missing:
- The {% raw %} tag isn't properly supported
- `[]` style variables access isn't supported `{{user['name']}}`


# Support & Contributing
It's unlikely we will add any missing features to this package, as our usecase is fairly simple, but are open to pull requests!

New features should include test cases in `test/cases` directory.
npm package: @get-set-fetch/test-utils
Description: scraping test definitions, launches resources to be scraped under a configurable web server
Author: Andrei Sabau
Latest version: 0.8.0

<img src="https://get-set-fetch.github.io/get-set-fetch/logo.png">

<p align="left">
  <a href="https://github.com/get-set-fetch/test-utils/actions?query=workflow%3Atest">
    <img alt="test status" src="https://github.com/get-set-fetch/test-utils/workflows/test/badge.svg">
  </a>
</p>

# test-utils

Contains scraping test definitions:
- used as acceptance tests in [gsf node.js scraper](https://github.com/get-set-fetch/scraper)
- soon to be used as acceptance tests in [gsf extension scraper](https://github.com/get-set-fetch/extension)

You can find the test definitions under [/lib/scraping-suite](https://github.com/get-set-fetch/test-utils/tree/main/lib/scraping-suite).

Launches resources to be scraped under a configurable web server.
npm package: @get-skipper/core
Description: Core Google Sheets client and resolver for Skipper test-gating plugins
Latest version: 1.2.0

# @get-skipper/core

Core package for Skipper — Google Sheets client, resolver, and shared utilities used by all framework plugins.

This package is not typically used directly. Install the plugin for your test framework instead:
- [`@get-skipper/playwright`](../playwright/README.md)
- [`@get-skipper/jest`](../jest/README.md)
- [`@get-skipper/vitest`](../vitest/README.md)
- [`@get-skipper/cypress`](../cypress/README.md)
- [`@get-skipper/nightwatch`](../nightwatch/README.md)

## API

### `SkipperResolver`

```ts
import { SkipperResolver } from '@get-skipper/core';

const resolver = new SkipperResolver({
  spreadsheetId: 'your-spreadsheet-id',
  credentials: { credentialsFile: './service-account.json' },
});

await resolver.initialize();
resolver.isTestEnabled('tests/auth/login.spec.ts > login > should log in'); // true | false
```

### `buildTestId(filePath, titlePath)`

Builds a canonical test ID from a file path and title path array:

```ts
import { buildTestId } from '@get-skipper/core';

buildTestId('/abs/path/tests/auth/login.spec.ts', ['login', 'should log in']);
// → "tests/auth/login.spec.ts > login > should log in"
```

### `SheetsWriter`

Used internally by plugins in sync mode to reconcile the spreadsheet.

## License

MIT
npm package: @get-skipper/cypress
Description: Skipper plugin for Cypress — enable/disable tests from a Google Spreadsheet
Latest version: 1.2.0

# @get-skipper/cypress

Skipper plugin for [Cypress](https://www.cypress.io/) — enable/disable tests from a Google Spreadsheet.

## Installation

```bash
pnpm add -D @get-skipper/cypress
# or
npm install --save-dev @get-skipper/cypress
```

## Setup

### 1. Configure `cypress.config.ts`

```ts
import { defineConfig } from 'cypress';
import { createSkipperPlugin } from '@get-skipper/cypress';

const skipperConfig = {
  spreadsheetId: process.env.SKIPPER_SPREADSHEET_ID!,
  credentials: { credentialsBase64: process.env.GOOGLE_CREDS_B64! },
  // Or for local dev:
  // credentials: { credentialsFile: './service-account.json' },
};

export default defineConfig({
  e2e: {
    setupNodeEvents: createSkipperPlugin(skipperConfig),
    // ... rest of your config
  },
});
```

### 2. Add the support file

**Option A** — import in your existing support file (`cypress/support/e2e.ts`):

```ts
import '@get-skipper/cypress/support';
```

**Option B** — set as the support file in `cypress.config.ts`:

```ts
import { supportFile } from '@get-skipper/cypress';
export default defineConfig({
  e2e: {
    supportFile: supportFile,
    setupNodeEvents: createSkipperPlugin(skipperConfig),
  },
});
```

No changes to test files are required. Tests with a future `disabledUntil` date are automatically skipped via `beforeEach`.

## Test ID Format

```
{relative spec file path} > {describe block(s)} > {test name}
```

Example:
```
cypress/e2e/auth/login.cy.ts > login > should log in with valid credentials
```

## Options

| Option | Default | Description |
|---|---|---|
| `sheetName` | first tab | Sheet tab to read/write |
| `referenceSheets` | `[]` | Additional tabs to read (read-only) |
| `testIdColumn` | `"testId"` | Column header for the test ID |
| `disabledUntilColumn` | `"disabledUntil"` | Column header for the disable date |

See the [root README](../../README.md) for the full configuration reference.

## Modes

- **`read-only`** (default): reads the spreadsheet, skips disabled tests. No writes.
- **`sync`** (`SKIPPER_MODE=sync`): same as read-only + reconciles the spreadsheet after the run.

See the [root README](../../README.md) for full setup instructions.

## License

MIT
npm package: @get-skipper/jest
Description: Skipper plugin for Jest — enable/disable tests from a Google Spreadsheet
Latest version: 1.2.0

# @get-skipper/jest

Skipper plugin for [Jest](https://jestjs.io/) — enable/disable tests from a Google Spreadsheet.

## Installation

```bash
pnpm add -D @get-skipper/jest
# or
npm install --save-dev @get-skipper/jest
```

## Setup

Update `jest.config.ts` — this is the **only change required**:

```ts
import { createSkipperGlobalSetup, createSkipperGlobalTeardown, setupFile } from '@get-skipper/jest';

const skipperConfig = {
  spreadsheetId: process.env.SKIPPER_SPREADSHEET_ID!,
  credentials: { credentialsBase64: process.env.GOOGLE_CREDS_B64! },
  // Or for local dev:
  // credentials: { credentialsFile: './service-account.json' },
};

export default {
  globalSetup: createSkipperGlobalSetup(skipperConfig),
  globalTeardown: createSkipperGlobalTeardown(skipperConfig),
  setupFilesAfterFramework: [setupFile],
  // ... rest of your config
};
```

No changes to test files are required. Tests with a future `disabledUntil` date are automatically skipped.

## Test ID Format

Tests are identified in the spreadsheet as:

```
{relative file path} > {describe block(s)} > {test name}
```

Example:
```
tests/auth/login.test.ts > login > should log in with valid credentials
```

## Options

| Option | Default | Description |
|---|---|---|
| `sheetName` | first tab | Sheet tab to read/write |
| `referenceSheets` | `[]` | Additional tabs to read (read-only) |
| `testIdColumn` | `"testId"` | Column header for the test ID |
| `disabledUntilColumn` | `"disabledUntil"` | Column header for the disable date |

See the [root README](../../README.md) for the full configuration reference.

## Modes

- **`read-only`** (default): reads the spreadsheet, skips disabled tests. No writes.
- **`sync`** (`SKIPPER_MODE=sync`): same as read-only + reconciles the spreadsheet after the run.

See the [root README](../../README.md) for full setup instructions.

## License

MIT
npm package: @get-skipper/nightwatch
Description: Skipper plugin for Nightwatch.js — enable/disable tests from a Google Spreadsheet
Latest version: 1.2.0

# @get-skipper/nightwatch

Skipper plugin for [Nightwatch.js](https://nightwatchjs.org/) — enable/disable tests from a Google Spreadsheet.

## Installation

```bash
pnpm add -D @get-skipper/nightwatch
# or
npm install --save-dev @get-skipper/nightwatch
```

## Setup

Update `nightwatch.conf.js` — this is the **only change required**:

```js
const { createSkipperPlugin } = require('@get-skipper/nightwatch');

module.exports = {
  globals: createSkipperPlugin({
    spreadsheetId: process.env.SKIPPER_SPREADSHEET_ID,
    credentials: { credentialsBase64: process.env.GOOGLE_CREDS_B64 },
    // Or for local dev:
    // credentials: { credentialsFile: './service-account.json' },
  }),
  // ... rest of your config
};
```

No changes to test files are required. Tests with a future `disabledUntil` date are automatically skipped via `beforeEach`.

## Test ID Format

```
{module path} > {test name}
```

If Nightwatch exposes nested describe blocks via `titlePath`, the full path is used:
```
tests/auth/login.js > login > should log in with valid credentials
```

## Options

| Option | Default | Description |
|---|---|---|
| `sheetName` | first tab | Sheet tab to read/write |
| `referenceSheets` | `[]` | Additional tabs to read (read-only) |
| `testIdColumn` | `"testId"` | Column header for the test ID |
| `disabledUntilColumn` | `"disabledUntil"` | Column header for the disable date |

See the [root README](../../README.md) for the full configuration reference.

## Modes

- **`read-only`** (default): reads the spreadsheet, skips disabled tests. No writes.
- **`sync`** (`SKIPPER_MODE=sync`): same as read-only + reconciles the spreadsheet after the run.

See the [root README](../../README.md) for full setup instructions.

## License

MIT
npm package: @get-skipper/playwright
Description: Skipper plugin for Playwright — enable/disable tests from a Google Spreadsheet
Latest version: 1.2.0

# @get-skipper/playwright

Skipper plugin for [Playwright](https://playwright.dev/) — enable/disable tests from a Google Spreadsheet.

## Installation

```bash
pnpm add -D @get-skipper/playwright
# or
npm install --save-dev @get-skipper/playwright
```

## Setup

### 1. Configure `playwright.config.ts`

```ts
import { defineConfig } from '@playwright/test';
import { createSkipperGlobalSetup, SkipperReporter } from '@get-skipper/playwright';

const skipperConfig = {
  spreadsheetId: process.env.SKIPPER_SPREADSHEET_ID!,
  credentials: { credentialsBase64: process.env.GOOGLE_CREDS_B64! },
  // Or for local dev:
  // credentials: { credentialsFile: './service-account.json' },
};

export default defineConfig({
  globalSetup: createSkipperGlobalSetup(skipperConfig),
  reporter: [
    ['list'],
    [SkipperReporter, skipperConfig], // handles sync mode
  ],
  // ... rest of your config
});
```

### 2. Update test file imports

Replace the `@playwright/test` import with `@get-skipper/playwright`:

```ts
// Before:
import { test, expect } from '@playwright/test';

// After:
import { test, expect } from '@get-skipper/playwright';
```

The API is identical — `test` and `expect` work exactly as before. Tests with a future `disabledUntil` date in the spreadsheet are automatically skipped.

## Test ID Format

Tests are identified in the spreadsheet as:

```
{relative file path} > {describe block(s)} > {test name}
```

Example:
```
tests/auth/login.spec.ts > login > should log in with valid credentials
```

## Options

| Option | Default | Description |
|---|---|---|
| `sheetName` | first tab | Sheet tab to read/write |
| `referenceSheets` | `[]` | Additional tabs to read (read-only) |
| `testIdColumn` | `"testId"` | Column header for the test ID |
| `disabledUntilColumn` | `"disabledUntil"` | Column header for the disable date |

See the [root README](../../README.md) for the full configuration reference.

## Modes

- **`read-only`** (default): reads the spreadsheet, skips disabled tests. No writes.
- **`sync`** (`SKIPPER_MODE=sync`): same as read-only + reconciles the spreadsheet after the run.

See the [root README](../../README.md) for full setup instructions including Google Sheets configuration.

## License

MIT
npm package: @get-skipper/vitest
Description: Skipper plugin for Vitest — enable/disable tests from a Google Spreadsheet
Latest version: 1.2.0

# @get-skipper/vitest

Skipper plugin for [Vitest](https://vitest.dev/) — enable/disable tests from a Google Spreadsheet.

## Installation

```bash
pnpm add -D @get-skipper/vitest
# or
npm install --save-dev @get-skipper/vitest
```

## Setup

Update `vitest.config.ts` — this is the **only change required**:

```ts
import { defineConfig } from 'vitest/config';
import { createSkipperGlobalSetup, createSkipperGlobalTeardown, setupFile } from '@get-skipper/vitest';

const skipperConfig = {
  spreadsheetId: process.env.SKIPPER_SPREADSHEET_ID!,
  credentials: { credentialsBase64: process.env.GOOGLE_CREDS_B64! },
  // Or for local dev:
  // credentials: { credentialsFile: './service-account.json' },
};

export default defineConfig({
  test: {
    globalSetup: [createSkipperGlobalSetup(skipperConfig)],
    globalTeardown: [createSkipperGlobalTeardown(skipperConfig)],
    setupFiles: [setupFile],
    // ... rest of your config
  },
});
```

No changes to test files are required. Tests with a future `disabledUntil` date are automatically skipped.

## Test ID Format

```
{relative file path} > {describe block(s)} > {test name}
```

## Options

| Option | Default | Description |
|---|---|---|
| `sheetName` | first tab | Sheet tab to read/write |
| `referenceSheets` | `[]` | Additional tabs to read (read-only) |
| `testIdColumn` | `"testId"` | Column header for the test ID |
| `disabledUntilColumn` | `"disabledUntil"` | Column header for the disable date |

See the [root README](../../README.md) for the full configuration reference.

## Modes

- **`read-only`** (default): reads the spreadsheet, skips disabled tests. No writes.
- **`sync`** (`SKIPPER_MODE=sync`): same as read-only + reconciles the spreadsheet after the run.

See the [root README](../../README.md) for full setup instructions.

## License

MIT
npm package: @get-tomo/tomo-deno-telemetry-sdk
Description: Droppable SDK to initialize to instrument Deno applications. It collects traces and sends them to the specified collector URL. It follows the OpenTelemetry specification.
Author: Tomo AI
Latest version: 0.1.28

# Tomo Deno Telemetry SDK

A simple SDK for adding OpenTelemetry-based tracing to your Deno applications.

## Installation

Import the SDK and Deno's standard HTTP server:

```ts
import { serve } from "https://deno.land/std@0.203.0/http/server.ts";
import TomoDenoTelemetry from "https://esm.sh/@get-tomo/tomo-deno-telemetry-sdk@latest";
```

## Usage

1. **Initialize the Telemetry SDK:**

```ts
const tomoDenoTelemetry = new TomoDenoTelemetry({
  debug: false,
  apiKey: "your-api-key",
  serviceName: "your-service-name",
  serviceVersion: "your-service-version",
  collectorUrl: "your-collector-url",
});
```

2. **Wrap the Deno `serve` function (optional, for tracing HTTP requests):**

```ts
const wrappedServe = tomoDenoTelemetry.wrapServe(serve);
```

3. **Use `wrappedServe` instead of default Deno's serve:**

```ts
wrappedServe(async (req) => {
  const response = await fetch(
    "https://jsonplaceholder.typicode.com/posts/1",
    {
      method: "GET",
      headers: { "Accept": "application/json" },
    }
  );

  const data = await response.json();

  return new Response(data, {
    status: 200,
    headers: { "Content-Type": "text/plain" },
  });
});
```

## Features
- Automatic tracing for HTTP server requests (when using `wrapServe`)
- Automatic tracing of outgoing HTTP requests
- Easy integration with OpenTelemetry-compatible collectors

## Configuration
- `debug`: Enable/Disable console debugging (required)
- `apiKey`: Your telemetry API key (required)
- `serviceName`: Name of your service (required)
- `serviceVersion`: Version of your service (required)
- `collectorUrl`: URL of your OpenTelemetry collector (required)

## License
MIT
npm package: @get-x/hijri
Description: This is a modified version of moment-jalaali by Behrang Noruzi Niya and extends Suhail Alkowaileet's work on moment-hijri.js lib
Author: Ahmed Sulaimani
Latest version: 0.0.5

# @get-x/hijri

> This is a modified version of moment-jalaali by Behrang Noruzi Niya and extends Suhail Alkowaileet's work on moment-hijri.js lib

## Install

```bash
npm install --save @get-x/hijri
```

## Usage

```jsx
import React from 'react'
import moment from '@get-x/hijri'

export default function HijriTable() {
    return (
        <table>
            <thead>
              <tr>
                <td>Date in Hijri</td>
                <td>Month Name/Number</td>
                <td>Hijri to Gregorian</td>
                <td>Month Name/Number</td>
                <td>strict parsing</td>
              </tr>
            </thead>
            {[6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5].map((x) => {
                const date = moment(`1444-${x}-08`, 'iYYYY-iM-iD', false)
                const strict = moment(`1444-${x}-08`, 'iYYYY-iM-iD', true)
                const fH = date.format('iDD-iMM-iYYYY')
                const fG = date.format('DD-MMMM-YYYY')
                const ffH = moment(date).format('iMMMM')
                const sffG = moment(strict).format('MMMM')
                return (
                  <tbody key={x}>
                    <tr>
                        <td>{fH}</td>
                        <td>{ffH}</td>
                        <td>{fG}</td>
                        <td>{sffG}</td>
                        <td>false / true</td>
                    </tr>
                  </tbody>
                )
            })}
            {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((x) => {
                const date = moment(`01-${x}-1990`, 'D-M-YYYY', false)
                const strict = moment(`01-${x}-1990`, 'D-M-YYYY', true)
                const fH = date.format('iDD-iMMMM-iYYYY')
                const fG = date.format('DD-MMMM-YYYY')
                const sffH = moment(strict).format('iMM')
                const ffG = moment(date).format('MM')
                return (
                  <tbody key={x}>
                      <tr>
                          <td>{fH}</td>
                          <td>{sffH}</td>
                          <td>{fG}</td>
                          <td>{ffG}</td>
                          <td>true / false</td>
                      </tr>
                  </tbody>
                )
            })}
        </table>
    )
}

```

```js
var moment = require('@get-x/hijri')

const hijriDate = moment(`1424-12-17`, 'iYYYY-iM-iD', true)
const gregorianDate = moment(`1990-07-09`, 'YYYY-M-D', true)
console.log("Hijri Format", gregorianDate.format('iDD-iMM-iYYYY'))
console.log("Gregoria Format", hijriDate.format('DD-MM-YYYY'))

// node .\index.js
// Hijri Format ١٧-١٢-١٤١٠
// Gregoria Format ٠٨-٠٢-٢٠٠٤

```

## License

GIT © [phantom-x](https://github.com/phantom-x/hijri)
NPM © [@get-x/hijri](https://www.npmjs.com/package/@get-x/hijri)
npm package: @geta-org/eslint-config
Description: ESLint configuration used by Geta.
Author: geta
Latest version: 0.1.2

# Geta ESLint config

## Installation

```
yarn add --dev eslint prettier @geta-org/eslint-config
```

*Note: We're using `yarn` to install deps. Feel free to change commands to use `npm` 3+ and `npx` if you like*

## Usage

Create a `.eslintrc.json` file extending the config:

```json
{
    "extends": "@geta-org/eslint-config/native"
}
```

> You can also use a `.eslintrc.js` instead of JSON if you prefer.
npm package: @geta6/backbone
Description: Give your JS App some Backbone with Models, Views, Collections, and Events.
Author: Jeremy Ashkenas
Latest version: 1.1.2

     ____                     __      __
    /\  _`\                  /\ \    /\ \                                   __
    \ \ \ \ \     __      ___\ \ \/'\\ \ \____    ___     ___      __      /\_\    ____
     \ \  _ <'  /'__`\   /'___\ \ , < \ \ '__`\  / __`\ /' _ `\  /'__`\    \/\ \  /',__\
      \ \ \ \ \/\ \ \.\_/\ \__/\ \ \\`\\ \ \ \ \/\ \ \ \/\ \/\ \/\  __/  __ \ \ \/\__, `\
       \ \____/\ \__/.\_\ \____\\ \_\ \_\ \_,__/\ \____/\ \_\ \_\ \____\/\_\_\ \ \/\____/
        \/___/  \/__/\/_/\/____/ \/_/\/_/\/___/  \/___/  \/_/\/_/\/____/\/_/\ \_\ \/___/
                                                                           \ \____/
                                                                            \/___/
    (_'_______________________________________________________________________________'_)
    (_.———————————————————————————————————————————————————————————————————————————————._)


Backbone supplies structure to JavaScript-heavy applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.

For Docs, License, Tests, pre-packed downloads, and everything else, really, see:
http://backbonejs.org

To suggest a feature, report a bug, or general discussion:
https://github.com/jashkenas/backbone/issues

Backbone is an open-sourced component of DocumentCloud:
https://github.com/documentcloud

Many thanks to our contributors:
https://github.com/jashkenas/backbone/graphs/contributors

Special thanks to Robert Kieffer for the original philosophy behind Backbone.
https://github.com/broofa
npm package: @geta6/koa.io
Description: realtime web framework combine koa and socket.io
Author: dead-horse
Latest version: 0.0.4

koa.io
---------------
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/koajs/koa.io?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url]
[![Dependency Status][david-image]][david-url]
[![devDependency Status][david-dev-image]][david-dev-url]
[![node version][node-image]][node-url]

[npm-image]: https://img.shields.io/npm/v/koa.io.svg
[npm-url]: https://npmjs.org/package/koa.io
[travis-image]: https://img.shields.io/travis/koajs/koa.io.svg
[travis-url]: https://travis-ci.org/koajs/koa.io
[coveralls-image]: https://img.shields.io/coveralls/koajs/koa.io.svg
[coveralls-url]: https://coveralls.io/r/koajs/koa.io?branch=master
[david-image]: https://img.shields.io/david/koajs/koa.io.svg
[david-url]: https://david-dm.org/koajs/koa.io
[david-dev-image]: https://david-dm.org/koajs/koa.io/dev-status.svg
[david-dev-url]: https://david-dm.org/koajs/koa.io#info=devDependencies
[node-image]: https://img.shields.io/badge/node.js-%3E=_0.11-red.svg
[node-url]: http://nodejs.org/download/
[gittip-image]: https://img.shields.io/gittip/dead-horse.svg
[gittip-url]: https://www.gittip.com/dead-horse/

Realtime web framework combine [koa](http://koajs.com) and [socket.io](http://socket.io).

___This project is under development now.___ 

## Feature

- `socket.io` support koa style middleware when socket connect and disconnect.
- socket event route support.
- Make `socket.io`'s event handler support generator function.
- Extent `socket.io`'s `socket` object like `koa`'s `context`, to compact with some `koa`'s middlewares.

## Installation

```bash
$ npm install koa.io --save
```

## Usage

```js
var koa = require('koa.io');

var app = koa();

// middleware for koa
app.use(function*() {
});


// middleware for socket.io's connect and disconnect
app.io.use(function* (next) {
  // on connect
  yield* next;
  // on disconnect
});

// router for socket event
app.io.route('new message', function* () {
  // we tell the client to execute 'new message'
  var message = this.args[0];
  this.broadcast.emit('new message', message);
});

app.listen(3000);
```

Please check out this simple [chat example](example/chat).

### License

MIT
npm package: @getabv/client
Description: ABV API client for universal JavaScript environments
Author: ABV
Latest version: 0.0.1-beta.3

![GitHub Banner](https://github.com/abv/abv-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# @abv/client

This is the client package of the ABV JS SDK containing the main abstraction around features such as prompts, datasets, and scores.

## Packages

| Package                                     | NPM                                                                                                               | Description                                               | Environments |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------ |
| [@abv/client](./packages/client)       | [![NPM](https://img.shields.io/npm/v/@abv/client.svg)](https://www.npmjs.com/package/@abv/client)       | ABV API client for universal JavaScript environments | Universal JS |
| [@abv/tracing](./packages/tracing)     | [![NPM](https://img.shields.io/npm/v/@abv/tracing.svg)](https://www.npmjs.com/package/@abv/tracing)     | ABV instrumentation methods based on OpenTelemetry   | Node.js 20+  |
| [@abv/otel](./packages/otel)           | [![NPM](https://img.shields.io/npm/v/@abv/otel.svg)](https://www.npmjs.com/package/@abv/otel)           | ABV OpenTelemetry export helpers                     | Node.js 20+  |
| [@abv/openai](./packages/openai)       | [![NPM](https://img.shields.io/npm/v/@abv/openai.svg)](https://www.npmjs.com/package/@abv/openai)       | ABV integration for OpenAI SDK                       | Universal JS |
| [@abv/langchain](./packages/langchain) | [![NPM](https://img.shields.io/npm/v/@abv/langchain.svg)](https://www.npmjs.com/package/@abv/langchain) | ABV integration for LangChain                        | Universal JS |

## Documentation

- Docs: https://abv.dev/docs/sdk/typescript
- Reference: https://js.reference.abv.dev

## License

[MIT](LICENSE)
npm package: @getabv/core
Description: Core functions and utilities for ABV packages
Author: ABV
Latest version: 0.0.1-beta.3

![GitHub Banner](https://github.com/abv/abv-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# @abv/core

This is the core package of the ABV JS SDK containing the public API client, logger, utilities, and more.

## Packages

| Package                                     | NPM                                                                                                               | Description                                               | Environments |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------ |
| [@abv/client](./packages/client)       | [![NPM](https://img.shields.io/npm/v/@abv/client.svg)](https://www.npmjs.com/package/@abv/client)       | ABV API client for universal JavaScript environments | Universal JS |
| [@abv/tracing](./packages/tracing)     | [![NPM](https://img.shields.io/npm/v/@abv/tracing.svg)](https://www.npmjs.com/package/@abv/tracing)     | ABV instrumentation methods based on OpenTelemetry   | Node.js 20+  |
| [@abv/otel](./packages/otel)           | [![NPM](https://img.shields.io/npm/v/@abv/otel.svg)](https://www.npmjs.com/package/@abv/otel)           | ABV OpenTelemetry export helpers                     | Node.js 20+  |
| [@abv/openai](./packages/openai)       | [![NPM](https://img.shields.io/npm/v/@abv/openai.svg)](https://www.npmjs.com/package/@abv/openai)       | ABV integration for OpenAI SDK                       | Universal JS |
| [@abv/langchain](./packages/langchain) | [![NPM](https://img.shields.io/npm/v/@abv/langchain.svg)](https://www.npmjs.com/package/@abv/langchain) | ABV integration for LangChain                        | Universal JS |

## Documentation

- Docs: https://abv.dev/docs/sdk/typescript
- Reference: https://js.reference.abv.dev

## License

[MIT](LICENSE)
npm package: @getabv/langchain
Description: ABV integration for LangChain
Author: ABV
Latest version: 0.0.1-beta.3

![GitHub Banner](https://github.com/abv/abv-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# @abv/langchain

This is the Langchain integration package of the ABV JS SDK containing the CallbackHandler to be registered with Langchain invocations.

## Packages

| Package                                     | NPM                                                                                                               | Description                                               | Environments |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------ |
| [@abv/client](./packages/client)       | [![NPM](https://img.shields.io/npm/v/@abv/client.svg)](https://www.npmjs.com/package/@abv/client)       | ABV API client for universal JavaScript environments | Universal JS |
| [@abv/tracing](./packages/tracing)     | [![NPM](https://img.shields.io/npm/v/@abv/tracing.svg)](https://www.npmjs.com/package/@abv/tracing)     | ABV instrumentation methods based on OpenTelemetry   | Node.js 20+  |
| [@abv/otel](./packages/otel)           | [![NPM](https://img.shields.io/npm/v/@abv/otel.svg)](https://www.npmjs.com/package/@abv/otel)           | ABV OpenTelemetry export helpers                     | Node.js 20+  |
| [@abv/openai](./packages/openai)       | [![NPM](https://img.shields.io/npm/v/@abv/openai.svg)](https://www.npmjs.com/package/@abv/openai)       | ABV integration for OpenAI SDK                       | Universal JS |
| [@abv/langchain](./packages/langchain) | [![NPM](https://img.shields.io/npm/v/@abv/langchain.svg)](https://www.npmjs.com/package/@abv/langchain) | ABV integration for LangChain                        | Universal JS |

## Documentation

- Docs: https://abv.dev/docs/sdk/typescript
- Reference: https://js.reference.abv.dev

## License

[MIT](LICENSE)
npm package: @getabv/openai
Description: ABV integration for OpenAI SDK
Author: ABV
Latest version: 0.0.1-beta.3

![GitHub Banner](https://github.com/abv/abv-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# @abv/openai

This is the OpenAI integration package of the ABV JS SDK containing the `observeOpenAI` wrapper for the OpenAI client to trace generations.

## Packages

| Package                                     | NPM                                                                                                               | Description                                               | Environments |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------ |
| [@abv/client](./packages/client)       | [![NPM](https://img.shields.io/npm/v/@abv/client.svg)](https://www.npmjs.com/package/@abv/client)       | ABV API client for universal JavaScript environments | Universal JS |
| [@abv/tracing](./packages/tracing)     | [![NPM](https://img.shields.io/npm/v/@abv/tracing.svg)](https://www.npmjs.com/package/@abv/tracing)     | ABV instrumentation methods based on OpenTelemetry   | Node.js 20+  |
| [@abv/otel](./packages/otel)           | [![NPM](https://img.shields.io/npm/v/@abv/otel.svg)](https://www.npmjs.com/package/@abv/otel)           | ABV OpenTelemetry export helpers                     | Node.js 20+  |
| [@abv/openai](./packages/openai)       | [![NPM](https://img.shields.io/npm/v/@abv/openai.svg)](https://www.npmjs.com/package/@abv/openai)       | ABV integration for OpenAI SDK                       | Universal JS |
| [@abv/langchain](./packages/langchain) | [![NPM](https://img.shields.io/npm/v/@abv/langchain.svg)](https://www.npmjs.com/package/@abv/langchain) | ABV integration for LangChain                        | Universal JS |

## Documentation

- Docs: https://abv.dev/docs/sdk/typescript
- Reference: https://js.reference.abv.dev

## License

[MIT](LICENSE)
npm package: @getabv/otel
Description: ABV OpenTelemetry export helpers
Author: ABV
Latest version: 0.0.1-beta.3

![GitHub Banner](https://github.com/abv/abv-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# @abv/otel

This is the OTEL package of the ABV JS SDK containing the `ABVSpanProcessor` to export emitted spans to ABV with masking, filtering, and media handling.

## Packages

| Package                                     | NPM                                                                                                               | Description                                               | Environments |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------ |
| [@abv/client](./packages/client)       | [![NPM](https://img.shields.io/npm/v/@abv/client.svg)](https://www.npmjs.com/package/@abv/client)       | ABV API client for universal JavaScript environments | Universal JS |
| [@abv/tracing](./packages/tracing)     | [![NPM](https://img.shields.io/npm/v/@abv/tracing.svg)](https://www.npmjs.com/package/@abv/tracing)     | ABV instrumentation methods based on OpenTelemetry   | Node.js 20+  |
| [@abv/otel](./packages/otel)           | [![NPM](https://img.shields.io/npm/v/@abv/otel.svg)](https://www.npmjs.com/package/@abv/otel)           | ABV OpenTelemetry export helpers                     | Node.js 20+  |
| [@abv/openai](./packages/openai)       | [![NPM](https://img.shields.io/npm/v/@abv/openai.svg)](https://www.npmjs.com/package/@abv/openai)       | ABV integration for OpenAI SDK                       | Universal JS |
| [@abv/langchain](./packages/langchain) | [![NPM](https://img.shields.io/npm/v/@abv/langchain.svg)](https://www.npmjs.com/package/@abv/langchain) | ABV integration for LangChain                        | Universal JS |

## Documentation

- Docs: https://abv.dev/docs/sdk/typescript
- Reference: https://js.reference.abv.dev

## License

[MIT](LICENSE)
npm package: @getabv/tracing
Description: ABV instrumentation methods based on OpenTelemetry
Author: ABV
Latest version: 0.0.1-beta.3

![GitHub Banner](https://github.com/abv/abv-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# @abv/tracing

This is the tracing package of the ABV JS SDK containing the instrumentation methods for instrumenting your LLM app such as `startActiveSpan`, `startActiveGeneration`, and the `observe` wrapper.

## Packages

| Package                                     | NPM                                                                                                               | Description                                               | Environments |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------ |
| [@abv/client](./packages/client)       | [![NPM](https://img.shields.io/npm/v/@abv/client.svg)](https://www.npmjs.com/package/@abv/client)       | ABV API client for universal JavaScript environments | Universal JS |
| [@abv/tracing](./packages/tracing)     | [![NPM](https://img.shields.io/npm/v/@abv/tracing.svg)](https://www.npmjs.com/package/@abv/tracing)     | ABV instrumentation methods based on OpenTelemetry   | Node.js 20+  |
| [@abv/otel](./packages/otel)           | [![NPM](https://img.shields.io/npm/v/@abv/otel.svg)](https://www.npmjs.com/package/@abv/otel)           | ABV OpenTelemetry export helpers                     | Node.js 20+  |
| [@abv/openai](./packages/openai)       | [![NPM](https://img.shields.io/npm/v/@abv/openai.svg)](https://www.npmjs.com/package/@abv/openai)       | ABV integration for OpenAI SDK                       | Universal JS |
| [@abv/langchain](./packages/langchain) | [![NPM](https://img.shields.io/npm/v/@abv/langchain.svg)](https://www.npmjs.com/package/@abv/langchain) | ABV integration for LangChain                        | Universal JS |

## Documentation

- Docs: https://abv.dev/docs/sdk/typescript
- Reference: https://js.reference.abv.dev

## License

[MIT](LICENSE)
npm package: @getagentid/mcp
Description: MCP server for Agent ID — identity, trust, and task tools for AI agents
Latest version: 1.0.1

# @getagentid/mcp

MCP (Model Context Protocol) server for Agent ID — the identity and trust layer for AI agents.

## Quick Start

```
npx @getagentid/mcp
```

## MCP Client Configuration

Add to your MCP client config (Claude Desktop, Cursor, etc.):

```json
{
  "mcpServers": {
    "agentid": {
      "command": "npx",
      "args": ["@getagentid/mcp"]
    }
  }
}
```

## Available Tools

| Tool | Description |
|------|-------------|
| `agentid_register` | Register a new AI agent on Agent ID |
| `agentid_init` | Initialize and authenticate with an existing agent |
| `agentid_resolve` | Resolve a .agentid handle to the full Agent ID Object |
| `agentid_discover` | Discover agents by capability, trust, or protocol |
| `agentid_send_task` | Send a task to another agent |
| `agentid_check_inbox` | Check inbox for pending tasks and unread messages |
| `agentid_verify_credential` | Verify an Agent ID Verifiable Credential |

## Learn More

- [Agent ID Platform](https://getagent.id)
- [API Documentation](https://getagent.id/api/docs)
- [SDK](https://www.npmjs.com/package/@getagentid/sdk)
npm package: @getaid/crypto
Description: Ed25519 keypair generation, challenge-response signing, and HMAC badge URL utilities for getaid.dev
Latest version: 1.0.1

# @getaid/crypto

Ed25519 keypair generation, challenge-response signing/verification, and HMAC badge URL utilities for [getaid.dev](https://getaid.dev), the universal identity registry for AI agents.

## Installation

```bash
npm install @getaid/crypto
```

## Usage

### Keypair Generation

```ts
import { generateKeypair } from "@getaid/crypto";

const { publicKey, privateKey } = await generateKeypair();
// publicKey: hex-encoded Ed25519 public key
// privateKey: hex-encoded Ed25519 private key
```

### Challenge-Response Signing

```ts
import { generateNonce, signChallenge, verifySignature } from "@getaid/crypto";

// Verifier generates a nonce
const nonce = generateNonce();

// Agent signs the nonce with its private key
const signature = await signChallenge(nonce, privateKey);

// Verifier checks the signature against the registry's public key
const isValid = await verifySignature(nonce, signature, publicKey);
```

### HMAC Badge URLs

```ts
import { generateHmacBadgeUrl, verifyHmacBadgeUrl } from "@getaid/crypto";

// Generate a signed badge URL (5-minute TTL)
const { url } = generateHmacBadgeUrl("AID-000012347", hmacSecret);

// Verify a signed badge URL
const isValid = verifyHmacBadgeUrl(url, hmacSecret);
```

## API

| Function               | Description                                         |
| ---------------------- | --------------------------------------------------- |
| `generateKeypair`      | Generate an Ed25519 keypair (hex-encoded)           |
| `generateNonce`        | Generate a cryptographic nonce (hex string)         |
| `signChallenge`        | Sign a challenge string with an Ed25519 private key |
| `verifySignature`      | Verify an Ed25519 signature against a public key    |
| `generateHmacBadgeUrl` | Create an HMAC-signed badge URL with 5-minute TTL   |
| `verifyHmacBadgeUrl`   | Verify an HMAC-signed badge URL                     |

## Dependencies

- [`@noble/ed25519`](https://github.com/paulmillr/noble-ed25519) for Ed25519 operations

## License

MIT
npm package: @getaid/luhn
Description: Luhn mod-10 check digit algorithm for AID (Agent ID) generation and validation
Latest version: 1.0.0

# @getaid/luhn

Luhn mod-10 check digit algorithm for AID (Agent ID) generation and validation. Used by [getaid.dev](https://getaid.dev), the universal identity registry for AI agents.

## Installation

```bash
npm install @getaid/luhn
```

## Usage

```ts
import {
  generateCheckDigit,
  validateLuhn,
  formatAid,
  parseAid,
  isValidAidFormat,
} from "@getaid/luhn";

// Generate a check digit
generateCheckDigit("00001234"); // "7"

// Validate a Luhn-protected number
validateLuhn("000012347"); // true
validateLuhn("000012348"); // false

// Format a sequential ID into a canonical AID
formatAid(1234n); // "AID-000012347"

// Parse an AID string
parseAid("AID-000012347"); // { numeric: "000012347", checkDigit: "7" }

// Full validation (format + check digit)
isValidAidFormat("AID-000012347"); // true
isValidAidFormat("AID-000012348"); // false
```

## API

| Function             | Description                                              |
| -------------------- | -------------------------------------------------------- |
| `generateCheckDigit` | Compute the Luhn check digit for a numeric string        |
| `validateLuhn`       | Validate a numeric string including its Luhn check digit |
| `formatAid`          | Format a sequential BigInt ID into a canonical AID       |
| `parseAid`           | Parse an AID string into numeric component + check digit |
| `isValidAidFormat`   | Validate format + Luhn check digit in one call           |

## AID Format

AIDs follow the format `AID-XXXXXXXXX` where `X` is a digit and the last digit is the Luhn check digit. The numeric portion is zero-padded to 9 digits (8 payload + 1 check).

## License

MIT
npm package: @getalby/bitcoin-connect-react
Description: A React wrapper for Bitcoin Connect
Latest version: 3.12.2

# Bitcoin Connect React

A React wrapper for Bitcoin Connect

## Development

`yarn install`
`yarn dev`

### Viewing changes

Run `yarn link` then in `../demos/react` run `yarn link @getalby/bitcoin-connect-react`. The component changes can be seen in the demo app
npm package: @getalby/lightning-messageboard
Description: A web component for a lightning messageboard powered by NWC
Author: Alby contributors
Latest version: 1.1.0

# Lightning Messageboard

A simple messageboard web component powered by [NWC](https://nwc.dev) that allows visitors to pay bitcoin to post messages.

## Demo

👉 **[Try the Live Demo](https://getalby.github.io/lightning-messageboard/demo.html)**

The demo shows various themes and customization options for the Lightning Messageboard component.

## Screenshots

![image](https://github.com/user-attachments/assets/e638b95a-f6ff-4595-8bc8-7d43ebe18b41)

## Features

- 💸 Lightning Network payment integration via Nostr Wallet Connect ([NWC](https://nwc.dev))
- 🎨 Customizable themes
- 🔒 Secure receive-only connection to your wallet
- 📱 Responsive design
- 💬 Simple but effective comments system for your website
- 🎮 Visitors can pay more to ensure their comment shows at the top of the message board

## Usage

Include the script:

```html
<script
  type="module"
  src="https://esm.sh/@getalby/lightning-messageboard"
></script>
```

Then add the web component where you want it to be displayed:

```html
<lightning-messageboard
  nwc-url="nostr+walletconnect://..."
></lightning-messageboard>
```

## Attributes

### Required

- `nwc-url`: NWC connection secret of a **sub-wallet with receive-only permissions (make_invoice, lookup_invoice, list_transactions)** for receiving Lightning Network payments.

### Optional

- `theme`: JSON string with theme colors.

### Theme Options

The following theme properties can be customized:

- `primary-color`: Main color used for buttons and accents
- `background-color`: Background color of the component
- `border-color`: Color for borders
- `text-color`: Main text color
- `text-muted-color`: Color for secondary text
- `button-text-color`: Text color for buttons
- `border-radius`: Border radius for the component and elements

See the demo for example themes and use your browser dev tools to inspect them.

## Development

Clone the repository and install dependencies:

```bash
git clone https://github.com/getAlby/lightning-messageboard.git
cd lightning-messageboard
yarn install
```

Build the project:

```bash
yarn build
```

Start a HTTP server to view the demo page locally:

```bash
python3 -m http.server
```

## License

MIT
npm package: @getalby/lightning-tools-mcp-server
Description: MCP server for accessing useful bitcoin lightning tools
Author: Alby contributors
Latest version: 1.1.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Lightning Tools MCP Server

Interact with lightning addresses and use other common lightning tools with your LLM. Works well combined with [NWC MCP Server](https://github.com/getAlby/nwc-mcp-server)

This MCP server uses the [official MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)

## Quick Start

### Add to Claude Desktop

Add this to your claude_desktop_config.json:

```json
{
  "mcpServers": {
    "lightning-tools": {
      "command": "npx",
      "args": ["-y", "@getalby/lightning-tools-mcp-server"],
      "env": {
        "NWC_CONNECTION_STRING": "YOUR NWC CONNECTION STRING HERE"
      }
    }
  }
}
```

### Add to Cline

> Copy the below and paste it into a cline prompt.

```json
Add the following to my MCP servers list:

"lightning-tools": {
  "command": "npx",
  "args": ["-y", "@getalby/lightning-tools-mcp-server"],
  "env": {
    "NWC_CONNECTION_STRING": "YOUR NWC CONNECTION STRING HERE"
  },
  "disabled": false,
  "autoApprove": []
}
```

## From Source

### Prerequisites

- Node.js 20+
- Yarn

### Installation

```bash
yarn install
```

### Building

```bash
yarn build
```

### Inspect the tools (use/test without an LLM)

`yarn inspect`

### Supported Tools

See the [tools directory](./src/tools)
npm package: @getalby/n8n-nodes-l402-request
Description: N8N package to execute a L402 request
Author: Alby Contributors
Latest version: 0.1.39

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

# n8n-nodes-starter

This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.

To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

## Prerequisites

You need the following installed on your development machine:

* [git](https://git-scm.com/downloads)
* Node.js and npm. Minimum version Node 16. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
* Install n8n with:
	```
	npm install n8n -g
	```
* Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).


## Using this starter

These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
2. Clone your new repo:
    ```
    git clone https://github.com/<your organization>/<your-repo-name>.git
    ```
3. Run `npm i` to install dependencies.
4. Open the project in your editor.
5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
6. Update the `package.json` to match your details.
7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
10. Update the LICENSE file to use your details.
11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

## More information

Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

## License

[MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)