open-index/open-npm huggingface dataset:
npm package: @spanning/contracts
Description: Spanning Labs' version of common smart contract specifications
Author: Spanning Labs
Latest version: 0.0.7

## Complete Docs
Check out our complete docs [here](https://docs.spanning.network/)

## Spanning Network
The Spanning Network is a powerful cross-chain API that enables developers to build applications on chains that best suit their technical needs. These multi-home applications will become the basis for the future of the web; check out our [demos of a multichain ERC20 and ERC721 here](https://demo.spanning.network).

Through the use of Ownership bridging, the Spanning Network can communicate state change requests from a user on their preferred network to an application on another network. This allows for Spanning to verify the authenticity of the request and to ensure that the request is valid.

## How the Spanning Network Works

We rely on a series of Spanning Delegates to build the Spanning Network. Spanning Delegates are responsible for authenticating a sender, the sender's originating domain, and other header information before passing the authenticated information to the Spanning Network relayer, Blockchain OS (BOS).

BOS routes the message to the correct destination network and pays any associated gas fees to settle the transaction request.

The destination Spanning Delegate receives the verified transaction request and header information from BOS and executes the transaction. During the execution of the transaction the verified header information (like the original message sender's address) is served by the Spanning Delegate to the requested application. Once the transaction is complete the verified header information is destroyed.

## Why Ownership Bridging?

Ownership bridging is superior to the traditional interoperability approach of asset bridging for a few reasons:
  1. **No extra steps to using an application on another network.** No intermediate transaction, no new wallets or accounts, no purchasing new gas tokens. Simply call the function of a contract on another chain via a Spanning Delegate and relax.
  2. **Assets are held directly in owner's names.** An owner can directly own an asset on another chain, not a derivative or wrapped version of it. This means there is no 3rd party custody agent that has to be trusted.
  3. **Everyone gets access to the same code path, utility, and liquidity.** Now that applications and assets can live on a single network, they are no longer subject to the fracturing in utility and liquidity that occurs when assets are wrapped or logic is copy/pasted to new places.
npm package: @spanning/utils
Description: Javascript utility functions for the Spanning Network
Author: Spanning Labs
Latest version: 0.0.3

# Spanning Utilities

This package provides many common utilities for the Spanning Network. Currently, it includes:
  * Network Status
    * `isBosUp`: Check if the BOS relay is up
  * Spanning Addresses:
    * `getSpanningAddress`: Create Spanning Address from local address
    * `parseSpanningAddress`: Get local address and domain from Spanning Address
    * `getShortSpanningAddress`: Create Spanning Address for UI consumption
    * `getShortLocalAddress`: Create local address for UI consumption
  * Crypto converters
    * `toAbi`: Convert common input format into ABI-encoded payload

## Spanning Network
The Spanning Network is a powerful cross-chain API that enables developers to build applications on chains that best suit their technical needs. These multi-home applications will become the basis for the future of the web; check out our [demos of a multichain ERC20 and ERC721 here](https://demo.spanning.network).

## Complete Docs
Check out our complete docs [here](https://docs.spanning.network/)
npm package: @spanora-ai/sdk
Description: OTEL-native observability SDK for AI executions
Latest version: 0.1.9

# @spanora/sdk

TypeScript SDK for Spanora. Provides a simple interface for recording LLM calls, tool calls, retries, and execution outcomes as OpenTelemetry traces and spans.

## Installation

```bash
pnpm add @spanora/sdk
```

## Quick Start

```typescript
import { init, track, trackLlm } from "@spanora/sdk";

init({
  apiKey: "ak_your_api_key",
});

const result = await track({ agent: "my-agent", operation: "chat" }, () =>
  trackLlm({ model: "gpt-4o", prompt: "Hello" }, async () => {
    return await llm.chat("Hello");
  }),
);
```

## Documentation

Full API reference and integration guides are available at:

- [SDK Reference](https://spanora.ai/docs/sdk) — Initialization, options tables, and detailed usage for every function
- [OTEL Attributes](https://spanora.ai/docs/sdk/attributes) — Semantic attribute conventions (`gen_ai.*` and `spanora.*`)
- [OpenAI Integration](https://spanora.ai/docs/integrations/openai) — `trackOpenAI()`, `trackOpenAIStream()`
- [Anthropic Integration](https://spanora.ai/docs/integrations/anthropic) — `trackAnthropic()`, `trackAnthropicStream()`
- [Vercel AI SDK Integration](https://spanora.ai/docs/integrations/vercel-ai) — Automatic instrumentation via `experimental_telemetry`
- [LangChain (Python)](https://spanora.ai/docs/integrations/langchain) — Auto-instrumentation via OpenLLMetry
npm package: @spantree/snapi
Description:  Snapi is a CLI tool that snapshots content from one Strapi CMS 4 installation to restore to another
Author: YassinEldeeb @YassinEldeeb
Latest version: 0.0.1-alpha.0

<p align="center">
    <img src="https://github.com/Spantree/snapi/blob/main/.github/images/dark-logo.svg#gh-dark-mode-only" width="318px" alt="Strapi logo" />
    <img src="https://github.com/Spantree/snapi/blob/main/.github/images/light-logo.svg#gh-light-mode-only" width="318px" alt="Strapi logo" />
</p>

<p align="center">A CLI tool to replicate your current data state between different strapi instances with ease.</p>

<div align="center">
  <a href="https://www.npmjs.com/package/@spantree/snapi"><img src="https://img.shields.io/npm/v/@spantree/snapi.svg?style=flat" /></a>
  <a href="https://npmcharts.com/compare/@spantree/snapi?minimal=true"><img src="https://img.shields.io/npm/dm/@spantree/snapi.svg?style=flat"/></a>
  <a href="https://github.com/YassinEldeeb/@spantree/snapi/blob/main/CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" /></a>
  <a href="https://github.com/YassinEldeeb/@spantree/snapi/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" /></a>
  <br />
  <br />
  <a href="https://github.com/YassinEldeeb/@spantree/snapi#Usage">Usage</a>
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
  <a href="https://dev.to/yassineldeeb/@spantree/snapi-2mdg">Blog</a>
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
  <a href="https://github.com/YassinEldeeb/@spantree/snapi/blob/main/ARCHITECTURE.md">How it works?</a>
  <br />
  <hr />
</div>
npm package: @spar_laimor/telegraf-i18n-nesting-keys
Description: Fork of EdJoPaTo Telegraf i18n fork built with TypeScript (Pull Request #40)
Author: Vitaly Domnikov
Latest version: 0.2.3

[![NPM Version](https://img.shields.io/npm/v/telegraf-i18n.svg?style=flat-square)](https://www.npmjs.com/package/telegraf-i18n)

# i18n for Telegraf

Internationalization middleware for [Telegraf](https://github.com/telegraf/telegraf).

## Installation

```js
$ npm install telegraf-i18n
```

## Nesting Keys

Support for nested keys. To use, set **allowNesting** option and insert $t(**key**) into the localization file. Keys are searched only in the current file. Example:


```
{
    greeting: 'Hello $t(nested.key)!', // Hello World!!!!
    nested: {
      key: 'World$t(nested.anotherKey)', // World!!!
      anotherKey: '!!!'
    }
    cycle: {
      first: '$t{cycle.second}', // $t{cycle.second}
      second: '$t{cycle.first}' // $t{cycle.first}
    }
}
```

## Example

```js
const {Telegraf} = require('telegraf')
const {I18n} = require('telegraf-i18n')

/*
yaml and json are ok
Example directory structure:
├── locales
│   ├── en.yaml
│   ├── en-US.yaml
│   ├── it.json
│   └── ru.yaml
└── bot.js
*/

const i18n = new I18n({
  defaultLanguage: 'en',
  allowMissing: false, // Default true
  allowNesting: true, // Default false
  directory: path.resolve(__dirname, 'locales')
})

// Also you can provide i18n data directly
i18n.loadLocale('en', {greeting: 'Hello!'})

const app = new Telegraf(process.env.BOT_TOKEN)

// telegraf-i18n can save current locale setting into session.
const i18n = new I18n({
  useSession: true,
  defaultLanguageOnMissing: true, // implies allowMissing = true
  directory: path.resolve(__dirname, 'locales')
})

app.use(Telegraf.memorySession())
app.use(i18n.middleware())

app.hears('/start', (ctx) => {
  const message = ctx.i18n.t('greeting', {
    username: ctx.from.username
  })
  return ctx.reply(message)
})

app.startPolling()
```

See full [example](/examples).

## User context

Telegraf user context props and functions:

```js
app.use((ctx) => {
  ctx.i18n.locale()                    // Get current locale
  ctx.i18n.locale(code)                // Set current locale
  ctx.i18n.t(resourceKey, [data])      // Get resource value (data will be used by template engine)
});
```

## Helpers

```js
const { match, reply } = require('telegraf-i18n')

// In case you use custom keyboard with localized labels.
bot.hears(match('keyboard.foo'), (ctx) => ...)

//Reply helper
bot.command('help', reply('help'))
```
npm package: @sparcs-kaist/react-grid-layout
Description: A draggable and resizable grid layout with responsive breakpoints, for React.
Author: Samuel Reed
Latest version: 0.18.3

# [@sparcs-kaist/React-Grid-Layout](https://www.npmjs.com/package/@sparcs-kaist/react-grid-layout) &middot; [![npm version](https://badge.fury.io/js/%40sparcs-kaist%2Freact-grid-layout.svg)](https://badge.fury.io/js/%40sparcs-kaist%2Freact-grid-layout) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

# Install

### Node Module

```
yarn add @sparcs-kaist/react-grid-layout
```

```
npm i --save @sparcs-kaist/react-grid-layout
```

----

## Preview

![preview](docs/Upload_Grid_Layout.gif)
*Usage in ZABO upload page*

## Features

- Compact both vertically and horizontally
- Vertical line changing on compaction
- Resize layout items following first item

## Tradeoffs

- Only layout items with identical size is supported
- Compact type cannot be changed anymore

## Acknowledgments

----

Forked and customized [react-grid-layout](https://github.com/STRML/react-grid-layout)