open-index/open-npm huggingface dataset:
npm package: @linkdotnet/stringoperations
Description: Collection of string utilities. Edit-Distances, Search and Data structures. Offers for example trie, levenshtein distance.
Author: LinkDotNet
Latest version: 0.4.2

# String Operations for TypeScript
![npm](https://img.shields.io/npm/dt/@linkdotnet/stringoperations)
[![NodeJS CI](https://github.com/linkdotnet/ts-stringoperations/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/linkdotnet/ts-stringoperations/actions/workflows/test.yml)

This library implements some basic string algorithm as well as data structures for a better way of handling strings.

## How to install
`npm i @linkdotnet/stringoperations`

## How to use
### Trie
The following example shows how to import the trie and use it afterwards
```ts
import { Trie } from '@linkdotnet/stringoperations'

const trie = new Trie()
trie.addWord('Hello')
trie.addWord('Helsinki')
trie.addWord('World')
trie.contains('Hello') // true
trie.getWordsWithPrefix('Hel') // [ 'Hello', 'Helsinki' ]
```

### Rope
The following example shows how to use the rope
```ts
import { Rope } from '@linkdotnet/stringoperations'

let rope = Rope.create('Hello ')

rope = rope.concatString('World')
rope.toString() // 'Hello World'
rope.charAt(2) // 'l'
```

### Edit-Distances
The following example shows how to use the edit-distances
```ts
import { getLongestCommonSubstring, getLevenshteinDistance } from '@linkdotnet/stringoperations'
const longestCommonSubstring = getLongestCommonSubstring('testapps', 'appicontest') // test
const distance = getLevenshteinDistance('Hello', 'Hallo') // 1
```

With the longest common subsequence we can also determine the most similar word.
This helps for example if you want to find out the closest word to an user given input
```ts
import { getClosestWord } from '@linkdotnet/stringoperations'

const closestWord = getClosestWord(userInput, false, ['...'])
console.log(`Did you mean ${closestWord} instead of ${userInput}?')
```

### Search
If you want to find all occurrences of a string use the `findAll` method. The function implements the Boyer-Moore algorithm with Bad-Character table.
```ts
import { contains, findAll } from '@linkdotnet/stringoperations'
const occurrences = findAll('Hello World. Goodbye World', 'World') // [ 6, 21 ]
const hasHit = contains('Hello World. Goodbye World', 'World') // true
```

## Currently implemented algorithms
### Edit-Distances
 * Longest Common Subsequence
 * Longest Common Substring
 * Levenshtein Distance
 * Hamming Distance

## Data-Structures
 * Trie
 * Rope

## Search
 * Boyer-Moore
 * Palindrom
npm package: @linkdrop/contracts
Description: Contracts for Linkdrop App
Latest version: 1.2.6

# Linkdrop Contracts

Contracts for Linkdrop App

[Technology Overview](https://medium.com/linkdrop-protocol/linkdrop-technical-description-2ec43f718924)

## Installation

### Install dependencies

```bash
yarn install
```

### Compile contracts

```bash
npx waffle
```

### Test contracts

```bash
yarn test
```
npm package: @linked-claims/badge
Description: LinkedTrust verified claim badge web component
Latest version: 0.1.0

# @linked-claims/badge

LinkedTrust verified claim badge — a self-contained web component that renders verified claim badges from the LinkedTrust API.

## Quick Start

### Script Tag (CDN / Email)

```html
<script src="https://demos.linkedtrust.us/embed/badge.js"></script>
<linked-badge claim-id="124419"></linked-badge>
```

Or use the bundled standalone file from the package:

```html
<script src="node_modules/@linked-claims/badge/badge.js"></script>
<linked-badge claim-id="124419"></linked-badge>
```

### NPM

```bash
npm install @linked-claims/badge
```

```js
import '@linked-claims/badge'
```

```html
<linked-badge claim-id="124419"></linked-badge>
```

## Attributes

| Attribute  | Type     | Default                          | Description                        |
| ---------- | -------- | -------------------------------- | ---------------------------------- |
| `claim-id` | `string` | —                                | Numeric claim ID (**required**)    |
| `layout`   | `string` | `"card"`                         | `"card"` (vertical) or `"row"` (horizontal) |
| `theme`    | `string` | `"light"`                        | `"light"` or `"dark"`             |
| `compact`  | `flag`   | —                                | Smaller variant when present       |
| `api-base` | `string` | `https://live.linkedtrust.us`    | Override API base URL              |

## Layouts & Themes

```html
<!-- Default card -->
<linked-badge claim-id="124419"></linked-badge>

<!-- Horizontal row -->
<linked-badge claim-id="124419" layout="row"></linked-badge>

<!-- Dark theme -->
<linked-badge claim-id="124419" theme="dark"></linked-badge>

<!-- Compact card -->
<linked-badge claim-id="124419" compact></linked-badge>

<!-- Dark compact row -->
<linked-badge claim-id="124419" layout="row" theme="dark" compact></linked-badge>
```

## Framework Integration

### React

```jsx
import '@linked-claims/badge'

function ClaimBadge({ claimId }) {
  return <linked-badge claim-id={claimId} />
}
```

### Vue

```vue
<script setup>
import '@linked-claims/badge'
</script>

<template>
  <linked-badge :claim-id="claimId" />
</template>
```

### Svelte

```svelte
<script>
  import '@linked-claims/badge'
  export let claimId
</script>

<linked-badge claim-id={claimId} />
```

## TypeScript

The package includes type declarations. For JSX support in React:

```tsx
import type { LinkedBadgeAttributes } from '@linked-claims/badge'

declare global {
  namespace JSX {
    interface IntrinsicElements {
      'linked-badge': LinkedBadgeAttributes
    }
  }
}
```

## Email / Third-Party Embed

For email or third-party sites where npm isn't available, use the standalone script:

```html
<script src="https://demos.linkedtrust.us/embed/badge.js"></script>
<linked-badge claim-id="124419"></linked-badge>
```

The standalone script is a self-contained IIFE with zero dependencies. It registers the `<linked-badge>` custom element and works in any modern browser.

## License

MIT
npm package: @linked-claims/simple-store-prisma
Description: Prisma-backed SimpleStore for ATProto OAuth (state + session persistence)
Latest version: 0.1.0

# @linked-claims/simple-store-prisma

Prisma-backed [`SimpleStore`](https://github.com/bluesky-social/atproto/tree/main/packages/simple-store) for ATProto OAuth — drop-in persistent storage for `NodeOAuthClient` state and sessions.

## Install

```bash
npm install @linked-claims/simple-store-prisma
```

## Prisma schema

Add two models (or rename to taste) with the shape `{ key: String @id, value: Json }`:

```prisma
model OauthState {
  key   String @id
  value Json
}

model OauthSession {
  key   String @id
  value Json
}
```

Then run:

```bash
npx prisma migrate dev --name add-oauth-stores
```

## Usage

```ts
import { createPrismaSimpleStore } from '@linked-claims/simple-store-prisma'
import { NodeOAuthClient } from '@atproto/oauth-client-node'
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

const client = new NodeOAuthClient({
  stateStore: createPrismaSimpleStore(prisma.oauthState),
  sessionStore: createPrismaSimpleStore(prisma.oauthSession),
  // ...other options
})
```

## API

### `createPrismaSimpleStore<V>(delegate)`

Creates a `SimpleStore<string, V>` backed by a Prisma model delegate.

- **`get(key)`** — `findUnique` by key; returns `undefined` if missing
- **`set(key, value)`** — `upsert` (atomic insert-or-update)
- **`del(key)`** — `deleteMany` by key (no-op if missing)
- **`clear()`** — `deleteMany()` with no filter

### `PrismaJsonKvDelegate`

Minimal interface matching any Prisma delegate for a `{ key, value }` model. No dependency on `@prisma/client` — works with any Prisma version.

## License

MIT
npm package: @linked-helper/framework.build-tools.aws-artifacts
Description: LH framework build tools: upload artifacts
Author: Linked Helper Team
Latest version: 5.1.0-beta-promo-affiliate-pas-client.0

# `@linked-helper/framework.build-tools.aws-artifacts`

Upload/download package artifacts to AWS

## Cli
`npx aws-artifacts`

## Usage

### Configuration

In `package.json` add section `aws-artifacts`

```
"aws-artifacts": {
    "credentials": {
        "accessKeyId": "AKIA...",
        "secretAccessKey": "Dw+Y..."
    },
    "region": "eu-west-1",
    "bucket": "bucket-for-tests",
    "prefix": "",
    // list files to upload/download
    "root": "",
    "files": "dist/*.zip"
}
```

* `credentials` - AWS access credentials
* `region`, `bucket` - target bucket
* `prefix` - optional prefix path for artifacts in bucket, by default is set to `packageName/packageVersion/`
* `root` - `cwd` for listed files (all relative paths for files will be preserved), by default is set to directory of `package.json`
* `files` - files to upload

### Download artifacts when package is installed as dep

Add to `package.json` in `scripts` section:

```
"postinstall": "npx --package=@linked-helper/framework.build-tools.aws-artifacts aws-artifacts postinstall"
```

### Upload artifacts after building

if `electron-builder` is used:
```
"build": {
    ...
    // upload artifacts
    "afterAllArtifactBuild": "@linked-helper/framework.build-tools.aws-artifacts/dist/afterAllArtifactBuild",
    ...
}
```

or just exec `npx aws-artifacts upload` after building

to see all options: `npx aws-artifacts --help`