open-index/open-npm huggingface dataset:
npm package: @shareit/react-components
Description: BloxCar-component package
Author: Jimi Pajala
Latest version: 0.9.40

# 🚀 Welcome to your new awesome project!

This project has been created using **webpack scaffold**, you can now run

```
npm run build
```

or

```
yarn build
```

to bundle your application

### BloxCar-component library

- run test - `yarn test`
- build ready code - `yarn build`
- watch for code changes - `yarn watch`
npm package: @sharekey/sendinblue-client
Description: NodeJS client for Sendinblue V3 api
Author: Sharekey
Latest version: 3.3.3

# APIv3-typescript-library

SendinBlue's API v3 TypeScript-Node Library

SendinBlue's API exposes the entire SendinBlue features via a standardized programmatic interface. Please refer to the full [documentation](https://developers.sendinblue.com) to learn more.

This is the wrapper for the API. It implements all the features of the API v3. It supports promises.

SendinBlue's API matches the [OpenAPI v2 definition](https://www.openapis.org/). The specification can be downloaded [here](https://api.sendinblue.com/v3/swagger_definition.yml).

## Installation

### For [Node.js](https://nodejs.org/)

#### npm

The following recommended installation requires [npm](https://npmjs.org/). If you are unfamiliar with npm, see the [npm docs](https://npmjs.org/doc/).

Then install it via:

```shell
npm install @sendinblue/client --save
# or
yarn add @sendinblue/client
```

## Getting Started

Once you have [installed](#installation) the node module in your project, you can execute the following sample code JS code :

```javascript
import * as SibApiV3Sdk from '@sendinblue/client'

const apiInstance = new SibApiV3Sdk.AccountApi()

// Configure API key authorization: apiKey

apiInstance.setApiKey(SibApiV3Sdk.AccountApiApiKeys.apiKey, 'YOUR API KEY')

apiInstance.getAccount().then(
  function (data) {
    console.log('API called successfully. Returned data: ', data.body)
  },
  function (error) {
    console.error(error)
  }
)
```

```javascript
import * as SibApiV3Sdk from '@sendinblue/client'

const apiInstance = new SibApiV3Sdk.ContactsApi()

// Configure API key authorization: apiKey

apiInstance.setApiKey(SibApiV3Sdk.ContactsApiApiKeys.apiKey, 'YOUR API KEY')

const limit = 10 // Number | Number of documents per page
const offset = 0 // Number | Index of the first document of the page

apiInstance.getLists(limit, offset).then(
  function (data) {
    console.log('API called successfully. Returned data: ', data.body)
    apiInstance.getAttributes().then(
      function (data) {
        console.log('API called successfully. Returned data: ', data.body)
      },
      function (error) {
        console.error(error)
      }
    )
  },
  function (error) {
    console.error(error)
  }
)
```

For more examples, refer the [Endpoints Guide](https://developers.sendinblue.com/reference)
npm package: @sharekit/better-auth
Description: Better Auth adapter for the Shareable SDK
Latest version: 0.2.3

# @sharekit/better-auth

Better Auth adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/better-auth @sharekit/core better-auth
```

## Usage

```typescript
import { betterAuthProvider } from "@sharekit/better-auth";
import { auth } from "./auth";

const shareable = createShareable({
  auth: betterAuthProvider(auth),
  // ...
});
```

The adapter calls `auth.api.getSession()` to resolve the current user from the request headers. It returns `{ id, name }` for the shareable system to use for ownership verification and owner name display.
npm package: @sharekit/clerk
Description: Clerk adapter for the Shareable SDK
Latest version: 0.2.3

# @sharekit/clerk

Clerk adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/clerk @sharekit/core @clerk/nextjs
```

## Usage

```typescript
import { clerkProvider } from "@sharekit/clerk";
import { auth, currentUser } from "@clerk/nextjs/server";

const shareable = createShareable({
  auth: clerkProvider({ auth, currentUser }),
  // ...
});
```

The adapter calls Clerk's `auth()` to get the current user ID, then `currentUser()` to resolve the display name. The `auth` and `currentUser` functions are passed in as options to avoid a hard dependency on `@clerk/nextjs`.
npm package: @sharekit/core
Description: Core engine for the Shareable SDK -- token management, privacy engine, types
Latest version: 1.1.0

# @sharekit/core

Core engine for the Shareable SDK. Framework-agnostic -- contains the token engine, privacy engine, data filtering, types, and OG image renderer.

## Installation

```bash
pnpm add @sharekit/core
```

## API

### `createShareable(config)`

Creates a shareable instance. This is the entry point for the SDK.

```typescript
import { createShareable } from "@sharekit/core";

const shareable = createShareable({
  storage: yourStorageAdapter,
  auth: yourAuthAdapter,
  baseUrl: "https://yourapp.com",
});
```

### `instance.define(id, definition)`

Registers a shareable content type with a privacy schema and data loader.

### Privacy Engine

- `flattenSchema(schema)` -- Flatten nested field schema to dot-paths
- `getDefaults(schema)` -- Get default visibility map
- `resolveDependencies(visibleFields, schema)` -- Resolve field dependencies
- `getDependencyWarnings(visibleFields, schema)` -- Get human-readable warnings
- `filterData(data, visibleFields)` -- Remove hidden fields from data
- `getToggleConfig(schema)` -- Generate toggle UI configuration

### Token Engine

- `generateToken(length?)` -- Generate a cryptographically random hex token
- `validateToken(token)` -- Validate token format and minimum length

### OG Image

- `renderOGImage(config, options?)` -- Render an OG image config to SVG using satori

### Interfaces

- `ShareableStorage` -- Storage adapter interface
- `ShareableAuthProvider` -- Auth adapter interface
- `ShareableDefinition` -- Content type definition
- `FieldSchema` -- Privacy field schema
npm package: @sharekit/drizzle
Description: Drizzle ORM storage adapter for the Shareable SDK
Latest version: 0.3.1

# @sharekit/drizzle

Drizzle ORM storage adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/drizzle @sharekit/core drizzle-orm
```

## Usage

### 1. Add the schema to your Drizzle config

```typescript
// db/schema.ts
export { shareableShares } from "@sharekit/drizzle";
```

### 2. Generate the migration

```bash
npx drizzle-kit generate
```

### 3. Create the storage adapter

```typescript
import { drizzleStorage } from "@sharekit/drizzle";
import { db } from "./db";

const storage = drizzleStorage(db);
```

### 4. Pass to createShareable

```typescript
import { createShareable } from "@sharekit/core";

const shareable = createShareable({
  storage: drizzleStorage(db),
  // ...
});
```

## Schema

The `shareableShares` table stores:

| Column | Type | Description |
|--------|------|-------------|
| id | UUID | Primary key |
| type | text | Shareable type (e.g. "progress") |
| token | text | Unique share token |
| owner_id | text | Owner user ID |
| params | jsonb | Share parameters (date ranges, filters) |
| visible_fields | jsonb | Privacy toggle state |
| view_count | integer | Number of views |
| created_at | timestamp | Creation time |
| expires_at | timestamp | Optional expiration |
npm package: @sharekit/next
Description: Next.js adapter for the Shareable SDK
Latest version: 0.2.3

# @sharekit/next

Next.js App Router adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/next @sharekit/core @sharekit/react
```

## API

### `createNextHandler(instance)`

Creates Next.js route handlers for the shareable API. Mount as a catch-all route:

```typescript
// app/api/shareable/[...shareable]/route.ts
import { createNextHandler } from "@sharekit/next";
import { shareable } from "../../../../lib/shareable";

export const { GET, POST, DELETE } = createNextHandler(shareable);
```

### `<SharedView>`

Async server component that fetches and renders shared content:

```tsx
// app/shared/[type]/[token]/page.tsx
import { SharedView } from "@sharekit/next";

export default function SharedPage({ params }) {
  return <SharedView config={shareable} type={params.type} token={params.token} />;
}
```

Supports custom rendering via children render prop:

```tsx
<SharedView config={shareable} type={type} token={token}>
  {(data) => <MyCustomSharedView data={data} />}
</SharedView>
```

### `getSharedMetadata(instance, type, token)`

Generates Next.js metadata with OG image tags for shared pages:

```typescript
export async function generateMetadata({ params }) {
  return getSharedMetadata(shareable, params.type, params.token);
}
```
npm package: @sharekit/next-auth
Description: NextAuth.js / Auth.js adapter for the Shareable SDK
Latest version: 0.2.3

# @sharekit/next-auth

NextAuth.js / Auth.js adapter for the Shareable SDK. Supports both NextAuth v4 and v5 (Auth.js).

## Installation

```bash
pnpm add @sharekit/next-auth @sharekit/core next-auth
```

## Usage

### NextAuth v5 (Auth.js)

```typescript
import { nextAuthProvider } from "@sharekit/next-auth";
import { auth } from "./auth"; // Your Auth.js config

const shareable = createShareable({
  auth: nextAuthProvider({ auth }),
  // ...
});
```

### NextAuth v4

```typescript
import { nextAuthProvider } from "@sharekit/next-auth";
import { getServerSession } from "next-auth";
import { authOptions } from "./auth";

const shareable = createShareable({
  auth: nextAuthProvider({ getServerSession, authOptions }),
  // ...
});
```

### Options

- `auth` -- Auth.js v5 `auth()` function
- `getServerSession` -- NextAuth v4 `getServerSession` function
- `authOptions` -- NextAuth v4 auth options
- `idField` -- Which field to use as user ID: `"id"` (default) or `"email"` (for providers without a consistent ID)
npm package: @sharekit/prisma
Description: Prisma ORM storage adapter for the Shareable SDK
Latest version: 0.3.1

# @sharekit/prisma

Prisma ORM storage adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/prisma @sharekit/core @prisma/client
```

## Usage

### 1. Add the model to your Prisma schema

Copy the model from `prisma/shareable.prisma` into your `schema.prisma`:

```prisma
model ShareableShare {
  id            String    @id @default(uuid())
  type          String
  token         String    @unique
  ownerId       String    @map("owner_id")
  params        Json      @default("{}")
  visibleFields Json      @default("{}") @map("visible_fields")
  viewCount     Int       @default(0) @map("view_count")
  createdAt     DateTime  @default(now()) @map("created_at")
  expiresAt     DateTime? @map("expires_at")

  @@map("shareable_shares")
}
```

### 2. Run the migration

```bash
npx prisma migrate dev --name add-shareable-shares
```

### 3. Create the storage adapter

```typescript
import { prismaStorage } from "@sharekit/prisma";
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient();
const storage = prismaStorage(prisma);
```

### 4. Pass to createShareable

```typescript
import { createShareable } from "@sharekit/core";

const shareable = createShareable({
  storage: prismaStorage(prisma),
  // ...
});
```
npm package: @sharekit/react
Description: React components and hooks for the Shareable SDK
Latest version: 0.5.0

# @sharekit/react

React components and hooks for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/react @sharekit/core
```

## Components

### `<ShareableProvider>`

Context provider that wraps shareable content. Sets the sharing mode (authenticated vs shared).

### `<Field name="...">`

Conditionally renders children based on field visibility. In authenticated view, always renders. In shared view, only renders if the field's privacy toggle is enabled.

```tsx
<Field name="pnl">
  <PnLChart data={data.pnl} />
</Field>
```

### `<ShareButton>`

Self-contained button that opens the share modal. Includes privacy toggles auto-generated from the field schema, active share management, copy/revoke actions.

### `<ShareModal>`

The modal content component. Used inside ShareButton or independently.

### `<ShareManager>`

State management for share CRUD. Supports render props for full customisation:

```tsx
<ShareManager>
  {({ shares, visibleFields, setFieldVisible, create, revoke, copyLink }) => (
    <YourCustomUI />
  )}
</ShareManager>
```

### `defineShareableComponents(definition)`

Creates a typed set of components bound to a specific shareable definition:

```tsx
const Progress = defineShareableComponents(progressShare);
// Progress.Provider, Progress.Field, Progress.ShareButton, Progress.ShareManager
```

## Hooks

- `useShareableContext()` -- Access the shareable context (isShared, visibleFields, etc.)
- `useShareManager()` -- Access the share manager state (shares, create, revoke, etc.)
npm package: @sharekit/remix
Description: Remix adapter for the Shareable SDK
Latest version: 0.3.1

# @sharekit/remix

Remix adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/remix @sharekit/core @sharekit/react
```

## Usage

### API Route


```typescript
// app/routes/api.shareable.$.tsx
import { createRemixLoader, createRemixAction } from "@sharekit/remix";
import { shareable } from "../../lib/shareable";

export const loader = createRemixLoader(shareable);
export const action = createRemixAction(shareable);
```

The `$` splat route captures the shareable type, token, and action from the URL.

### Shared View

```tsx
// app/routes/shared.$type.$token.tsx
import { json } from "@remix-run/node";
import { useLoaderData, useParams } from "@remix-run/react";
import { handleAction } from "@sharekit/core";
import { RemixSharedView } from "@sharekit/remix";
import { shareable } from "../../lib/shareable";

export async function loader({ params }) {
  const result = await handleAction(shareable, { kind: "view", token: params.token });
  return json(result);
}

export default function SharedPage() {
  const data = useLoaderData<typeof loader>();
  const { token } = useParams();

  return (
    <RemixSharedView config={shareable} data={data} token={token!}>
      {(viewData) => <MyCustomSharedView data={viewData} />}
    </RemixSharedView>
  );
}
```
npm package: @sharekit/tanstack-start
Description: TanStack Start adapter for the Shareable SDK
Latest version: 0.3.1

# @sharekit/tanstack-start

TanStack Start adapter for the Shareable SDK.

## Installation

```bash
pnpm add @sharekit/tanstack-start @sharekit/core @sharekit/react
```

## Two Integration Patterns

### Pattern 1: Catch-all API Route (simpler)

```typescript
// routes/api/shareable.$.tsx
import { createFileRoute } from '@tanstack/react-router'
import { createTanStackHandler } from '@sharekit/tanstack-start'
import { shareable } from '../../lib/shareable'

export const Route = createFileRoute('/api/shareable/$')({
  server: {
    handlers: createTanStackHandler(shareable),
  },
})
```

Uses `server: { handlers: {} }` which is safe for server-only imports.

### Pattern 2: Server Functions (avoids catch-all)

```typescript
// lib/shareable-fns.ts
import { createServerFn } from '@tanstack/start'
import { createShareServerFns } from '@sharekit/tanstack-start'
import { shareable } from './shareable'

const fns = createShareServerFns(shareable)

export const createShare = createServerFn({ method: 'POST' })
  .handler(async ({ data, request }) => fns.create(request!, data))

export const listShares = createServerFn({ method: 'GET' })
  .handler(async ({ request }) => fns.list(request!))
```

Better for module replacement and avoiding server-only import leaks.

## Shared View

```tsx
// routes/shared.$type.$token.tsx
import { TanStackSharedView } from '@sharekit/tanstack-start'

export const Route = createFileRoute('/shared/$type/$token')({
  loader: async ({ params }) => {
    const fns = createShareServerFns(shareable)
    return fns.view(params.token)
  },
  component: SharedPage,
})

function SharedPage() {
  const data = Route.useLoaderData()
  const { type, token } = Route.useParams()
  return (
    <TanStackSharedView config={shareable} data={data} token={token}>
      {(viewData) => <MyCustomSharedView data={viewData} />}
    </TanStackSharedView>
  )
}
```
npm package: @shareledgerjs/hypocorism
Description: A dead simple utility to match give names with their shortened version
Author: Tan Do
Latest version: 1.0.0

# hypocorism

A dead simple utility to match give names with their shortened version.

## Installation

```bash
npm install @shareledgerjs/hypocorism
// or yarn
yarn add @shareledgerjs/hypocorism
```

### Usage

To determine if a one version of a person's first name matches another version

```typescript
import {match} from "@shareledgerjs/hypocorism";

match("Aaron", "Ronny"); // true
match("Chris", "Christopher"); // true
match("Cooper", "Crystal"); // false
```

To list out all names that match a given first name


```typescript
import {hypocoristics} from "@shareledgerjs/hypocorism";

hypocoristics("Rosabella"); // return ["Rosable", "Belle", "Rosa", "Rose", "Roz", "Isabella", "Roseanne", "Rosarita", "Rosalyn"]
```

## Test

```
yarn jest --code-coverage
```

## Developing

```
git clone http://github.com/ShareRing/hypocorism.git

cd hypocorism

yarn
```

## References

- https://en.wiktionary.org/wiki/Appendix:English_given_names
- https://raw.githubusercontent.com/brianary/Lingua-EN-Nickname/main/nicknames.txt

## License

MIT License

Copyright (c) 2023 ShareRing

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @sharelist/core
Description: It's a framework for mounting netdisk.
Latest version: 0.2.0

# @sharelist/core [![npm](https://img.shields.io/npm/v/@sharelist/core.svg)](https://npmjs.com/package/@sharelist/core)

It's a framework for mounting netdisk.

## Useage

```js
const sharelist = require('@sharelist/core')

const driver = sharelistCore({ config, plugins: [/* some sharelist plugins */]})

// And you can use this driver

const disk = await driver.list()

// find dir
const parentDir = disk.files.find(i => i.type == 'folder')

// mkdir
const newDir = await driver.mkdir(parentDir.id)

// rename
await driver.rename(newDir.id, {name:'new name'})

// upload
const fileData = await driver.upload(newDir.id, stream,{ name,size })

// download
try{
  const { stream } = await driver.createReadStream(fileData.id)
  stream.pipe( fs.createReadStream('./'+fileData.name))

}catch(e){

}

// remove
await driver.rm(newDir.id)


// Also you can use path locate
const disk = driver.createAction()

await disk.list('/')

// mkdir create dir named 'new_dir'  at '/'
await disk.mkdir('/new_dir',)

// rename
await disk.mv('/new_dir','/new_dir2')

// move
await disk.mv('/new_dir','/some/new_dir')

// rm
await disk.rm('/some/new_dir')

//upload
await disk.upload('/some/newfile.txt',stream)

```
npm package: @sharelist/proxy
Description: Sharelist Proxy
Latest version: 0.0.2

# ShareList Proxy

Proxy server for sharelist.

## Useage
```bash
npx @sharelist/proxy -t [TOKEN] -h [sharelist server address]
```

```docker
docker run sharelist/proxy -e t="[TOKEN]" -e h="[sharelist server address]"
```

[release page](https://github.com/linkdrive/sharelist-proxy/releases)


## License
MIT   
Copyright (c) 2020-present, Reruin
npm package: @shareupjp/excalidraw
Description: Excalidraw as a React component forked by shareup.jp
Latest version: 0.11.9

### Excalidraw

@excalidraw/excalidrawからforkしたパッケージです。

日本語の手書きフォント JKG-Mを適用しました。

### Installation

インストールは本家を参照下さい。
@excalidraw/excalidraw
=>
@shareupjp/excalidraw

#### 変更内容

- 文字入力欄に日本語手書き適用アイコン追加
- SVGエクスポートにJKG-M適用

#### 追記(2022-0422)
- ヘルプボタンをクリックすると、エラー(Can't find translation for helpDialog.toggleElementLock)
- locales/jp-JP.json(helpDialog->toggleElementLock)の定義を追加。

#### 追記(2022-0710)
- @excalidraw/excalidraw version 0.12.0 対応
- 上記2022-0422で追加したlocales/jp-JP.json(helpDialog->toggleElementLock)の定義を本家で対応したので、独自追加した分を削除しました。