open-index/open-npm huggingface dataset:
npm package: @socketregistry/string.prototype.trimright
Description: Socket.dev optimized package override for string.prototype.trimright
Latest version: 1.0.8

# @socketregistry/string.prototype.trimright

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/string.prototype.trimright)](https://socket.dev/npm/package/@socketregistry/string.prototype.trimright)
[![CI - @socketregistry/string.prototype.trimright](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`string.prototype.trimright`](https://socket.dev/npm/package/string.prototype.trimright)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/string.prototype.trimright` to
your `package.json`.

```json
{
  "overrides": {
    "string.prototype.trimright": "npm:@socketregistry/string.prototype.trimright@^1"
  },
  "resolutions": {
    "string.prototype.trimright": "npm:@socketregistry/string.prototype.trimright@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/string.prototype.trimright
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/string.prototype.trimstart
Description: Socket.dev optimized package override for string.prototype.trimstart
Latest version: 1.0.8

# @socketregistry/string.prototype.trimstart

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/string.prototype.trimstart)](https://socket.dev/npm/package/@socketregistry/string.prototype.trimstart)
[![CI - @socketregistry/string.prototype.trimstart](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`string.prototype.trimstart`](https://socket.dev/npm/package/string.prototype.trimstart)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/string.prototype.trimstart` to
your `package.json`.

```json
{
  "overrides": {
    "string.prototype.trimstart": "npm:@socketregistry/string.prototype.trimstart@^1"
  },
  "resolutions": {
    "string.prototype.trimstart": "npm:@socketregistry/string.prototype.trimstart@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/string.prototype.trimstart
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/typed-array-buffer
Description: Socket.dev optimized package override for typed-array-buffer
Latest version: 1.0.7

# @socketregistry/typed-array-buffer

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/typed-array-buffer)](https://socket.dev/npm/package/@socketregistry/typed-array-buffer)
[![CI - @socketregistry/typed-array-buffer](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`typed-array-buffer`](https://socket.dev/npm/package/typed-array-buffer)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/typed-array-buffer` to your
`package.json`.

```json
{
  "overrides": {
    "typed-array-buffer": "npm:@socketregistry/typed-array-buffer@^1"
  },
  "resolutions": {
    "typed-array-buffer": "npm:@socketregistry/typed-array-buffer@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/typed-array-buffer
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/typed-array-byte-length
Description: Socket.dev optimized package override for typed-array-byte-length
Latest version: 1.0.7

# @socketregistry/typed-array-byte-length

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/typed-array-byte-length)](https://socket.dev/npm/package/@socketregistry/typed-array-byte-length)
[![CI - @socketregistry/typed-array-byte-length](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`typed-array-byte-length`](https://socket.dev/npm/package/typed-array-byte-length)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/typed-array-byte-length` to your
`package.json`.

```json
{
  "overrides": {
    "typed-array-byte-length": "npm:@socketregistry/typed-array-byte-length@^1"
  },
  "resolutions": {
    "typed-array-byte-length": "npm:@socketregistry/typed-array-byte-length@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/typed-array-byte-length
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/typed-array-byte-offset
Description: Socket.dev optimized package override for typed-array-byte-offset
Latest version: 1.0.7

# @socketregistry/typed-array-byte-offset

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/typed-array-byte-offset)](https://socket.dev/npm/package/@socketregistry/typed-array-byte-offset)
[![CI - @socketregistry/typed-array-byte-offset](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`typed-array-byte-offset`](https://socket.dev/npm/package/typed-array-byte-offset)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/typed-array-byte-offset` to your
`package.json`.

```json
{
  "overrides": {
    "typed-array-byte-offset": "npm:@socketregistry/typed-array-byte-offset@^1"
  },
  "resolutions": {
    "typed-array-byte-offset": "npm:@socketregistry/typed-array-byte-offset@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/typed-array-byte-offset
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/typed-array-length
Description: Socket.dev optimized package override for typed-array-length
Latest version: 1.0.8

# @socketregistry/typed-array-length

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/typed-array-length)](https://socket.dev/npm/package/@socketregistry/typed-array-length)
[![CI - @socketregistry/typed-array-length](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`typed-array-length`](https://socket.dev/npm/package/typed-array-length)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/typed-array-length` to your
`package.json`.

```json
{
  "overrides": {
    "typed-array-length": "npm:@socketregistry/typed-array-length@^1"
  },
  "resolutions": {
    "typed-array-length": "npm:@socketregistry/typed-array-length@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/typed-array-length
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/typedarray
Description: Socket.dev optimized package override for typedarray
Latest version: 1.0.8

# @socketregistry/typedarray

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/typedarray)](https://socket.dev/npm/package/@socketregistry/typedarray)
[![CI - @socketregistry/typedarray](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`typedarray`](https://socket.dev/npm/package/typedarray) complete with
> TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/typedarray` to your
`package.json`.

```json
{
  "overrides": {
    "typedarray": "npm:@socketregistry/typedarray@^1"
  },
  "resolutions": {
    "typedarray": "npm:@socketregistry/typedarray@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/typedarray
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/typedarray.prototype.slice
Description: Socket.dev optimized package override for typedarray.prototype.slice
Latest version: 1.0.8

# @socketregistry/typedarray.prototype.slice

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/typedarray.prototype.slice)](https://socket.dev/npm/package/@socketregistry/typedarray.prototype.slice)
[![CI - @socketregistry/typedarray.prototype.slice](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`typedarray.prototype.slice`](https://socket.dev/npm/package/typedarray.prototype.slice)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/typedarray.prototype.slice` to
your `package.json`.

```json
{
  "overrides": {
    "typedarray.prototype.slice": "npm:@socketregistry/typedarray.prototype.slice@^1"
  },
  "resolutions": {
    "typedarray.prototype.slice": "npm:@socketregistry/typedarray.prototype.slice@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/typedarray.prototype.slice
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/unbox-primitive
Description: Socket.dev optimized package override for unbox-primitive
Latest version: 1.0.9

# @socketregistry/unbox-primitive

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/unbox-primitive)](https://socket.dev/npm/package/@socketregistry/unbox-primitive)
[![CI - @socketregistry/unbox-primitive](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`unbox-primitive`](https://socket.dev/npm/package/unbox-primitive) complete
> with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/unbox-primitive` to your
`package.json`.

```json
{
  "overrides": {
    "unbox-primitive": "npm:@socketregistry/unbox-primitive@^1"
  },
  "resolutions": {
    "unbox-primitive": "npm:@socketregistry/unbox-primitive@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/unbox-primitive
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/util.promisify
Description: Socket.dev optimized package override for util.promisify
Latest version: 1.0.11

# @socketregistry/util.promisify

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/util.promisify)](https://socket.dev/npm/package/@socketregistry/util.promisify)
[![CI - @socketregistry/util.promisify](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`util.promisify`](https://socket.dev/npm/package/util.promisify) complete
> with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/util.promisify` to your
`package.json`.

```json
{
  "overrides": {
    "util.promisify": "npm:@socketregistry/util.promisify@^1"
  },
  "resolutions": {
    "util.promisify": "npm:@socketregistry/util.promisify@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/util.promisify
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/which-boxed-primitive
Description: Socket.dev optimized package override for which-boxed-primitive
Latest version: 1.0.9

# @socketregistry/which-boxed-primitive

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/which-boxed-primitive)](https://socket.dev/npm/package/@socketregistry/which-boxed-primitive)
[![CI - @socketregistry/which-boxed-primitive](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`which-boxed-primitive`](https://socket.dev/npm/package/which-boxed-primitive)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/which-boxed-primitive` to your
`package.json`.

```json
{
  "overrides": {
    "which-boxed-primitive": "npm:@socketregistry/which-boxed-primitive@^1"
  },
  "resolutions": {
    "which-boxed-primitive": "npm:@socketregistry/which-boxed-primitive@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/which-boxed-primitive
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/which-collection
Description: Socket.dev optimized package override for which-collection
Latest version: 1.0.8

# @socketregistry/which-collection

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/which-collection)](https://socket.dev/npm/package/@socketregistry/which-collection)
[![CI - @socketregistry/which-collection](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`which-collection`](https://socket.dev/npm/package/which-collection) complete
> with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/which-collection` to your
`package.json`.

```json
{
  "overrides": {
    "which-collection": "npm:@socketregistry/which-collection@^1"
  },
  "resolutions": {
    "which-collection": "npm:@socketregistry/which-collection@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/which-collection
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/which-typed-array
Description: Socket.dev optimized package override for which-typed-array
Latest version: 1.0.9

# @socketregistry/which-typed-array

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/which-typed-array)](https://socket.dev/npm/package/@socketregistry/which-typed-array)
[![CI - @socketregistry/which-typed-array](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency drop-in replacement of
> [`which-typed-array`](https://socket.dev/npm/package/which-typed-array)
> complete with TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/which-typed-array` to your
`package.json`.

```json
{
  "overrides": {
    "which-typed-array": "npm:@socketregistry/which-typed-array@^1"
  },
  "resolutions": {
    "which-typed-array": "npm:@socketregistry/which-typed-array@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/which-typed-array
```

## Requirements

Node >= `18.20.4`
npm package: @socketregistry/yocto-spinner
Description: Socket.dev optimized package override for yocto-spinner
Latest version: 1.0.25

# @socketregistry/yocto-spinner

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketregistry/yocto-spinner)](https://socket.dev/npm/package/@socketregistry/yocto-spinner)
[![CI - @socketregistry/yocto-spinner](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/test.yml)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

> A tested zero dependency CJS/ESM compatible drop-in replacement of
> [`yocto-spinner`](https://socket.dev/npm/package/yocto-spinner) complete with
> TypeScript types.

## Installation

### Install as a package override

[`socket`](https://socket.dev/npm/package/socket) CLI will automagically ✨
populate
[overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides)
and [resolutions](https://yarnpkg.com/configuration/manifest#resolutions) of
your `package.json`.

```sh
npx socket optimize
```

Prefer to do it yourself? Add `@socketregistry/yocto-spinner` to your
`package.json`.

```json
{
  "overrides": {
    "yocto-spinner": "npm:@socketregistry/yocto-spinner@^1"
  },
  "resolutions": {
    "yocto-spinner": "npm:@socketregistry/yocto-spinner@^1"
  }
}
```

### Install as a plain dependency

Install with your favorite package manager.

```sh
npm install @socketregistry/yocto-spinner
```

## Requirements

Node >= `18.20.4`
npm package: @socketsecurity/bun-security-scanner
Description: Bun security scanner for SocketDev
Author: SocketDev
Latest version: 1.1.2

<img src="https://bun.com/logo.png" height="36" />

# Socket's Bun Security Scanner

Official Socket Security scanner for Bun's package installation process. Protects your projects from malicious packages, typosquatting, and other supply chain attacks.

## Features

- 🛡️ Real-time security scanning during package installation
- 🔍 Detects malware, typosquatting, and supply chain attacks
- ⚡ Optimized batching for fast scans
- 🔐 Supports both authenticated (Socket org) and free modes
- 🎯 Native integration with Bun's security provider API

## Installation

```bash
bun add -d @socketsecurity/bun-security-scanner
```

## Configuration

Add to your `bunfig.toml`:

```toml
[install.security]
scanner = "@socketsecurity/bun-security-scanner"
```

### Authentication (Optional)

For enhanced scanning with your Socket organization settings, set the `SOCKET_API_KEY` environment variable:

```bash
export SOCKET_API_KEY="xyz"

bun install
```

> **Note**: required scope `packages`

The scanner will automatically read your token from:

1. `SOCKET_API_KEY` environment variable
2. Socket CLI settings file (if available)

Without a token, the scanner runs in free mode using Socket's public API.

## Support

- [Socket Documentation](https://socket.dev/docs)
- [Bun Security Scanner API](https://bun.com/docs/install/security-scanner-api)
- [Report Issues](https://github.com/SocketDev/bun-security-scanner/issues)
npm package: @socketsecurity/config
Description: Config parser for Socket.dev
Author: Socket Inc
Latest version: 3.0.1

# Socket Config

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketsecurity/config)](https://socket.dev/npm/package/@socketsecurity/config)
[![npm version](https://img.shields.io/npm/v/@socketsecurity/config.svg?style=flat)](https://www.npmjs.com/package/@socketsecurity/config)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/SocketDev/eslint-config)
[![Types in JS](https://img.shields.io/badge/types_in_js-yes-brightgreen)](https://github.com/voxpelli/types-in-js)
[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)

Reader/parser/validator tool for [Socket.dev](https://socket.dev/)'s [`socket.yml`](https://docs.socket.dev/docs/socket-yml) configuration files

## Usage

```bash
npm install @socketsecurity/config
```

```javascript
import { readSocketConfig } from '@socketsecurity/config'

const config = await readSocketConfig('socket.yml')
```

## Exports

### `readSocketConfig(<path-to-config-file>)`

Returns a `Promise` that resolves to the parsed config file or, if no such file was found, it fails silently and returns `undefined`.

If the config file can't be read, then the `Promise` will be rejected with an error.

The read file is parsed using `parseSocketConfig`and the `Promise` from there is what is ultimately returned when no rejection or resolve has been made already.

### `parseSocketConfig(<content-of-config-file>)`

Returns a `Promise` that resolves to the parsed config.

If the config content can't be parsed or it is invalid, then the `Promise` will be rejected with an error.

Any additional parameters that does not conform to the schema will be silently dropped. Also: Input data will be coerced into its intended shape when possible.

### `socketYmlSchema`

A JSON Schema object typed with [`JSONSchemaType<SocketYml>`](https://ajv.js.org/guide/typescript.html) from Ajv

### `SocketValidationError`

Error thrown when the parsed data doesn't conform to the JSON Schema definition.

Extends `Error` and adds these additional properties:

* `data` – the data that's found to be invalid
* `schema` – the schema used to validate the content
* `validationErrors` – an array of [Ajv's `ErrorObject`](https://ajv.js.org/api.html#error-objects)

## Type exports

This module has full type coverage through a [types in js](https://github.com/voxpelli/types-in-js) where TypeScript validates JSDoc annotated javascript and exports it as standard type definition files.

### `SocketYml`

A TypeScript type representing the shape of the parsed `socket.yml` config

## Used by

* [`@socketsecurity/cli`](https://github.com/SocketDev/socket-cli-js) - our CLI uses this to parse the Socket config

## See also

* [Socket.yml reference](https://docs.socket.dev/docs/socket-yml) - the config parsed by this module
npm package: @socketsecurity/eslint-config
Description: The Socket ESLint config. Based on standard
Author: Socket Inc
Latest version: 5.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Socket ESLint Config

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketsecurity/eslint-config)](https://socket.dev/npm/package/@socketsecurity/eslint-config)

For projects with a `tsconfig.json`:

```json
{
  "extends": "@socketsecurity",
  "root": true,
  "parserOptions": {
    "project": "./tsconfig.json"
  }
}
```

For projects without a `tsconfig.json`:

```json
{
  "extends": "@socketsecurity/eslint-config/tsconfig-less",
  "root": true
}
```

For projects being typed with JSDoc:

```json
{
  "extends": "@socketsecurity/eslint-config/jsdoc",
  "root": true,
  "parserOptions": {
    "project": "./tsconfig.json"
  }
}
```
npm package: @socketsecurity/registry
Description: Socket Registry - Core utilities and infrastructure for Socket.dev security tools
Author: Socket Inc
Latest version: 2.0.2

# @socketsecurity/registry

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketsecurity/registry)](https://socket.dev/npm/package/@socketsecurity/registry)
[![CI](https://github.com/SocketDev/socket-registry/actions/workflows/ci.yml/badge.svg)](https://github.com/SocketDev/socket-registry/actions/workflows/ci.yml)

[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)
[![Follow @socket.dev on Bluesky](https://img.shields.io/badge/Follow-@socket.dev-1DA1F2?style=social&logo=bluesky)](https://bsky.app/profile/socket.dev)

Query Socket Registry manifest data. Zero dependencies, ~5KB.

## Installation

```bash
pnpm install @socketsecurity/registry
```

## Usage

```typescript
import { getManifestData, PURL_Type } from '@socketsecurity/registry'

// Get all manifest data
const manifest = getManifestData()

// Get ecosystem packages
const npmPackages = getManifestData('npm')

// Get specific package
const pkg = getManifestData('npm', 'deep-equal')
console.log(pkg.name) // '@socketregistry/deep-equal'
console.log(pkg.version) // '2.2.3'
console.log(pkg.categories) // ['speedup', 'cleanup']
```

## API

### `getManifestData()`

```typescript
function getManifestData(): Manifest
function getManifestData(ecosystem: string): ManifestEntry[] | undefined
function getManifestData(ecosystem: string, packageName: string): ManifestEntryData | ManifestEntry | undefined
```

### `version`

```typescript
import { version } from '@socketsecurity/registry'
```

## Types

```typescript
type ManifestEntryData = {
  categories?: ('cleanup' | 'levelup' | 'speedup' | 'tuneup')[]
  deprecated?: boolean
  engines?: Record<string, string>
  interop?: ('browserify' | 'cjs' | 'esm')[]
  license?: string
  name: string // Socket registry name
  package: string // Original package name
  version: string
  [key: string]: unknown
}

type ManifestEntry = [purl: string, data: ManifestEntryData]
type Manifest = Record<string, ManifestEntry[]>
```

### `PURL_Type` enum

Ecosystem identifiers: `APK`, `BITBUCKET`, `CARGO`, `COCOAPODS`, `COMPOSER`, `CONAN`, `CONDA`, `CRAN`, `DEB`, `DOCKER`, `GEM`, `GENERIC`, `GITHUB`, `GOLANG`, `HACKAGE`, `HEX`, `HUGGINGFACE`, `MAVEN`, `MLFLOW`, `NPM`, `NUGET`, `OCI`, `PUB`, `PYPI`, `QPKG`, `RPM`, `SWID`, `SWIFT`, `VCS`

## Additional Exports

```typescript
import manifest from '@socketsecurity/registry/manifest.json'
import pkg from '@socketsecurity/registry/package.json'
import extensions from '@socketsecurity/registry/extensions.json'
```

## Breaking Changes in v2.0.0

- Removed all utility subpath exports (constants, lib utilities, etc.)
- Removed all runtime dependencies
- Focused solely on manifest data access

Pin to v1.x if you need the removed utilities.

## License

MIT
npm package: @socketsecurity/sdk
Description: SDK for the Socket API client
Author: Socket Inc
Latest version: 4.0.0

# @socketsecurity/sdk

[![Socket Badge](https://socket.dev/api/badge/npm/package/@socketsecurity/sdk)](https://socket.dev/npm/package/@socketsecurity/sdk)
[![CI](https://github.com/SocketDev/socket-sdk-js/actions/workflows/ci.yml/badge.svg)](https://github.com/SocketDev/socket-sdk-js/actions/workflows/ci.yml)
![Coverage](https://img.shields.io/badge/coverage-96%25-brightgreen)

[![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)
[![Follow @socket.dev on Bluesky](https://img.shields.io/badge/Follow-@socket.dev-1DA1F2?style=social&logo=bluesky)](https://bsky.app/profile/socket.dev)

JavaScript SDK for [Socket.dev](https://socket.dev/) API.

## Install

```bash
pnpm add @socketsecurity/sdk
```

## Usage

```typescript
import { SocketSdk } from '@socketsecurity/sdk'

const client = new SocketSdk('your-api-key', {
  retries: 3, // Retry failed requests up to 3 times
  retryDelay: 1000, // Start with 1s delay, exponential backoff
  timeout: 30000, // 30 second timeout
})

// Check your quota
const quota = await client.getQuota()
if (quota.success) {
  console.log(`Available quota: ${quota.data.quota} units`)
}

// Analyze a package
const result = await client.getScoreByNpmPackage('express', '4.18.0')
if (result.success) {
  console.log(`Dependency Score: ${result.data.depscore}`)
}

// Batch analyze multiple packages
const batchResult = await client.batchPackageFetch({
  components: [
    { purl: 'pkg:npm/express@4.18.0' },
    { purl: 'pkg:npm/react@18.0.0' },
  ],
})
```

## Documentation

| Guide                                              | Description                         |
| -------------------------------------------------- | ----------------------------------- |
| **[API Reference](./docs/api-reference.md)**       | Complete API method documentation   |
| **[Quota Management](./docs/quota-management.md)** | Cost tiers (0/10/100) and utilities |

## License

MIT
npm package: @socketsupply/json-store
Description: Socket Supply Runtime plugin: JSON-based storage (file-system) with localStorage-compatible API
Author: Socket Supply Co
Latest version: 0.2.0

# `JSONStore` (Socket Supply Module)

Provides simple key-val storage of JSON-compatiable values, backed by the device's filesystem (via [Socket Supply's runtime](https://github.com/socketsupply/socket) `fs` module).

This module provides an API that's similar to the [browser `localStorage` API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API), except that it operates asynchronously (because of the underlying file system operation asynchrony). Other than the use of promises (`await`, etc), it should be familiar if you've worked with `localStorage` before.

## JSON Serialization/Deserialization

One additional important difference between `JSONStore` and `localStorage`: non-primitive (object) values are automatically JSON serialized/de-serialized; the whole data store is serialized to a JSON string, written to a text file (`./.store.json`).

As such, `JSONStore.setItem('customer', { id: 123, name: '..' })` works without needing to first serialize the object value with `JSON.stringify(..)`. Likewise, `JSONStore.getItem('customer')` will return the already deserialized object, without needing to use `JSON.parse(..)`.

## API

`getItem(name)`: returns a promise for the value (if any) in the store that's associated with `name` property name (*string*); resolves to `undefined` if not found

`setItem(name, value)`: sets a `value` value (JSON-compatible) at the `name` property in the store; returns a promise, with `true` on success or `false` otherwise

`removeItem(name)`: removes the property named `name` (if any) from the store; returns a promise, with `true` on success or `false` otherwise

`clear()`: removes all entries from the store; returns a promise, with `true` on success or `false` otherwise

## Usage

```js
import JSONStore from `@socketsupply/json-store`

JSONStore.setItem('zipcode', 78739)     // Promise<true>

JSONStore.getItem('zipcode')   // Promise<78739>

JSONStore.removeItem('zipecode')    // Promise<true>

JSONStore.getItem('zipcode')    // Promise<undefined>

JSONStore.setItem('customer', { id: 123, name: 'Kyle' })    // Promise<true>

JSONStore.getItem('customer')   // Promise<{ id: 123, name: 'Kyle' }>

JSONStore.clear()   // Promise<true>
```

## ESM

This module is provided in ES6-compatible ESM. It exports both a default export of the `JSONStore` object, as shown above, as well as each API member (`setItem(..)`, `getItem(..)`, etc) as a named export.

## License

All code and documentation are (c) 2023 Socket Supply Co and released under the MIT License. A copy of the MIT License [is also included](LICENSE.txt).
npm package: @socketsupply/next-native
Description: Run Next.js Applications on the Socket Runtime
Latest version: 0.0.2

# SYNOPSIS

Next-Natve is a project that makes it possible to build native, cross-platform apps using the
Next.js framework.

> [!WARNING]
> This is pre-release software! It requires the `dev` branch of the [`socket-runtime`][0]. It's only ready for early adopters and potential contributors

# USAGE

During pre-release...

```bash
# from the socket repo
npm run relink

# from the repo you are working on
npm link @socketsupply/socket
```

## FROM CLI

Use as a command line tool to initialize an existing project as a native app.

```bash
$ npm i @socketsupply/next-native -g
```

```bash
$ next-native -h
next-native v0.5.4 (97fa3f7c)

usage:
  next-native [SUBCOMMAND] [options] [<project-dir>]
  next-native [SUBCOMMAND] -h

subcommands:
  build                                build project
  list-devices                         get the list of connected devices
  init                                 create a new project (in the current directory)
  install-app                          install app to the device
  print-build-dir                      print build path to stdout
  run                                  run application
  env                                  print relavent environment variables
  setup                                install build dependencies

general options:
  -h, --help                           print help message
  --prefix                             print install path
  -v, --version                        print program version
```

## AS CODE

Use as a module inside to create a nextjs server inside a service worker. See [this example][1]
to get a quick demo up and running.

```bash
$ npm i @socketsupply/next-native -S
```

```js
import createServer from 'npm:@socketsupply/next-native'

const server = await createServer()
console.log('Created Server')

server.start().then(() => {
  console.log('Started Server')
})
```

[0]:https://github.com/socketsupply/socket/tree/dev
[1]:test
npm package: @socketsupply/socket-conduit-rpc
Description: A RPC client for connecting to a Socket Runtime application conduit.
Author: Joseph Werle
Latest version: 0.3.0

Socket Runtime Conduit RPC
==========================

> A RPC client for connecting to a Socket Runtime application conduit.


## Installation

```sh
npm install @socketsupply/socket-conduit-rpc
```

## Usage

### API

```js
import { Client } from '@socketsupply/socket-conduit-rpc/client.js'

const client = await Client.connect({
  // The host origin where the websocket server is listening (see below)
  origin: 'ws://localhost:8080',
  // A known and shared key for authenticating with the server (see below)
  key: 'a shared key'
})

console.log(await client.call('fs.stat', { path: 'index.html' }))
```

### CLI

```sh
$ conduit                        \
  --origin 'ws://localhost:8080' \
  --key 'hello world'            \
  --format json                  \
  serviceWorker.fetch            \
  --scheme=custom-protocol       \
  --pathname='/hello.json'
{"message":"hello browser extension from socket runtime"}
```

### Configuring WebSocket Server Port

When building an application with the [Socket Runtime](https://github.com/socketsupply/socket),
an internal "conduit" WebSocket server that can allow connected and
authenticated clients to connect and make RPC requests to the runtime
such as managing & messaging windows, evaluating JavaScript, reading
from the file system (sandbox applies), and more.

In order to connect to the WebSocket server, a known port must be set.
The WebSocket server can read the `SOCKET_RUNTIME_CONDUIT_PORT`
environment variable at runtime and use it instead. This value can be
set at build time with `ssc build` or configured in the `[env]` section
of your `socket.ini`:

```ini
[env]
SOCKET_RUNTIME_CONDUIT_PORT = 8080
```

### Shared Key

When conencting to the WebSocket server, a shared key must be given in
the connection URL as a query string parameter `?key=...`. The key must
be known at build time and can be configured in the
`[application.conduit]` section of your `socket.ini`:

```ini
[application.conduit]
shared_key = "a shared key"
```


## License

MIT