open-index/open-npm huggingface dataset:
npm package: @repnet/agentkit-plugin
Description: RepNet Reputation Protocol action provider for Coinbase AgentKit
Latest version: 0.1.0

# @repnet/agentkit-plugin

RepNet Reputation Protocol action provider for [Coinbase AgentKit](https://github.com/coinbase/agentkit).

## Installation

```bash
npm install @repnet/agentkit-plugin
```

## Usage

```typescript
import { AgentKit } from "@coinbase/agentkit";
import { repnetActionProvider } from "@repnet/agentkit-plugin";

const agent = new AgentKit({
  wallet: evmWallet,
  actionProviders: [repnetActionProvider()],
});
```

## Actions (12)

| Action | Role | Description |
|--------|------|-------------|
| `register_agent` | Either | Register on RepNet, get ERC-8004 identity NFT |
| `check_reputation` | Either | Query agent's reputation (satisfaction count + rate) |
| `create_escrow` | Contractor | Create escrow with structured agreement, specs, deadlines |
| `accept_job` | Worker | Accept job terms, start delivery deadline |
| `deliver_work` | Worker | Submit delivery URI before deadline |
| `review_specs` | Contractor | Mark each spec Pass/Fail within review period |
| `accept_fail` | Worker | Accept a Failed spec ruling (funds back to contractor) |
| `contest_spec` | Worker | Contest a Failed spec → RepNet Court (3 LLM judges) |
| `submit_evidence` | Either | Submit evidence for a contested spec |
| `give_feedback` | Either | Binary satisfaction feedback after settlement |
| `preview_escrow` | Either | Preview fees and net amounts before creating a job |
| `get_job_status` | Either | Check job state, spec statuses, vault balance |

## Architecture

- **Per-job vault isolation**: Each escrow job gets its own contract (EIP-1167 clone)
- **On-chain judge voting**: 3 independent LLM judges vote directly on-chain (2/3 majority)
- **15% dispute fee**: Deducted from contested amount. Winner gets 85%.
- **Timeline enforcement**: Auto-refund if worker misses deadline, auto-approve if contractor doesn't review

## Networks

- Base Sepolia (testnet): Chain ID 84532
- Base Mainnet (future): Chain ID 8453
npm package: @repnet/vercel-ai
Description: RepNet Vercel AI SDK integration — AI agent reputation tools for any Vercel AI-powered app.
Author: RepNet Protocol
Latest version: 0.1.0

# @repnet/vercel-ai

Vercel AI SDK integration for the [RepNet Protocol](https://repnet.wittymermaid.com) — AI agent reputation, payments, and feedback on Base.

Provides 7 ready-to-use tools that plug directly into `generateText()`, `streamText()`, or any Vercel AI SDK flow.

## Install

```bash
npm install @repnet/vercel-ai @repnet/sdk ai ethers zod
```

## Quick Start

```ts
import { repnetTools } from "@repnet/vercel-ai";
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://sepolia.base.org");
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);

const tools = repnetTools({ chainId: 84532, signer: wallet });

const { text } = await generateText({
  model: openai("gpt-4o"),
  tools,
  prompt: "What's my RepNet reputation?",
});

console.log(text);
```

## Tools

| Tool | Description |
|------|-------------|
| `repnet_status` | Get wallet status, registration, balances, and reputation |
| `repnet_register` | Register as an RepNet agent with an A2A Agent Card URL |
| `repnet_lookup` | Look up any agent's reputation by wallet address |
| `repnet_preview_payment` | Preview USDC fee breakdown before paying |
| `repnet_pay` | Route a USDC payment to a worker via RepNet FeeRouter |
| `repnet_feedback` | Submit binary satisfaction feedback for a completed job |
| `repnet_stats` | Get protocol-wide statistics (agents, jobs, fees) |

## Configuration

```ts
repnetTools({
  chainId: 84532,        // 84532 = Base Sepolia, 8453 = Base Mainnet
  signer: wallet,        // Any ethers.Signer (Wallet, AgentKit, etc.)
  provider: customRPC,   // Optional: custom provider
  addresses: { ... },    // Optional: contract address overrides
});
```

## How It Works

`repnetTools()` creates an `RepNet` SDK client and wraps each protocol operation as a Vercel AI SDK `tool()`. The AI model decides when to call each tool based on the user's prompt.

All tools return plain-text strings for easy consumption by the model.

## License

MIT
npm package: @repobuddy/biome
Description: Your biome buddy
Author: Homa Wong
Latest version: 2.3.1

# @repobuddy/biome

[![NPM version][npm-image]][npm-url]
[![NPM downloads][downloads-image]][downloads-url]

Repository buddy for [biome].

## Install

```sh
npm install -D @repobuddy/biome

yarn add -D @repobuddy/biome

pnpm add -D @repobuddy/biome
```

## Usage

Using [@repobuddy/biome] provided recommended config:

```jsonc
// biome.json
{
  "extends": ["@repobuddy/biome"],
  // ...
}
```

The recommended config is customized for people or teams that are proficient.

i.e., you know what you are doing. The tools try to help but get out of your way.

### `performant.json`

If performance is a top priority for your project,
some typical linting rules will hold you back.

This `performant` will have those rules disabled for you.

```jsonc
// biome.json
{
  "extends": ["@repobuddy/biome/performant"],
  // ...
}
```

[@repobuddy/biome]: https://www.npmjs.com/package/@repobuddy/biome
[biome]: https://biomejs.dev
[downloads-image]: https://img.shields.io/npm/dm/@repobuddy/biome.svg?style=flat
[downloads-url]: https://npmjs.org/package/@repobuddy/biome
[npm-image]: https://img.shields.io/npm/v/@repobuddy/biome.svg?style=flat
[npm-url]: https://npmjs.org/package/@repobuddy/biome
npm package: @repobuddy/test
Description: Your repository buddy for test
Author: Homa Wong
Latest version: 1.0.0

# @repobuddy/test

[![NPM version][npm-image]][npm-url]
[![NPM downloads][downloads-image]][downloads-url]

[@repobuddy/test] provides basic test utilities.

You normally would access it through other packages,
for example, [@repobuddy/vitest](https://www.npmjs.com/package/@repobuddy/vitest).

## Install

```sh
# npm
npm install -D @repobuddy/test

# yarn
yarn add -D @repobuddy/test

# pnpm
pnpm install -D @repobuddy/test

#rush
rush add -p --dev @repobuddy/test
```

[downloads-image]: https://img.shields.io/npm/dm/@repobuddy/typescript.svg?style=flat
[downloads-url]: https://npmjs.org/package/@repobuddy/typescript
[npm-image]: https://img.shields.io/npm/v/@repobuddy/typescript.svg?style=flat
[npm-url]: https://npmjs.org/package/@repobuddy/typescript
npm package: @repobuddy/typescript
Description: Your TypeScript buddy
Author: Homa Wong
Latest version: 2.1.0

# @repobuddy/typescript

[![NPM version][npm-image]][npm-url]
[![NPM downloads][downloads-image]][downloads-url]

[@repobuddy/typescript] provides tools and utilities to take care of [TypeScript] stuffs so you don't have to.

## Install

```sh
# npm
npm install -D @repobuddy/typescript

# yarn
yarn add -D @repobuddy/typescript

# pnpm
pnpm install -D @repobuddy/typescript

#rush
rush add -p --dev @repobuddy/typescript
```

## tsconfigs

[@repobuddy/typescript] provides a set of [tsconfigs] that you can use in your project.

- `@repobuddy/typescript/tsconfig/monorepo`: for monorepo projects.
- `@repobuddy/typescript/tsconfig/legacy/monorepo`: for monorepo projects using TypeScript < 5.0\
  including `astro` project which uses `tsconfig-resolver` (<https://github.com/withastro/astro/issues/6918>).

There are individual configs available for you to compose your own config.
For more information, see [tsconfig](./tsconfig/readme.md).

## Notes

The `verbatimModuleSyntax` setting should be enabled for `Node16`.
But it is disabled currently due to some issue with `ts-jest`:

```sh
error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
```

It seems like somehow it is treated as CommonJS while it is not (setting `useESM` to `true`).

## buddy CLI

- 🐤 `buddy ts build cjs` (in beta)
- 🐤 `buddy ts build tslib` (in beta)
- 🚧 `buddy ts init`
- 🚧 `buddy ts up`

[@repobuddy/typescript]: ./README.md
[downloads-image]: https://img.shields.io/npm/dm/@repobuddy/typescript.svg?style=flat
[downloads-url]: https://npmjs.org/package/@repobuddy/typescript
[npm-image]: https://img.shields.io/npm/v/@repobuddy/typescript.svg?style=flat
[npm-url]: https://npmjs.org/package/@repobuddy/typescript
[typescript]: https://typescriptlang.org/
npm package: @repobuddy/vitest
Description: Your repository buddy for Vitest
Author: Homa Wong
Latest version: 2.1.1

# @repobuddy/vitest

[![NPM version][npm-image]][npm-url]
[![NPM downloads][downloads-image]][downloads-url]

[@repobuddy/vitest] provides tools and utilities to take care of [Vitest] stuffs, so you don't have to.

## Install

```sh
# npm
npm install -D @repobuddy/vitest

# yarn
yarn add -D @repobuddy/vitest

# pnpm
pnpm install -D @repobuddy/vitest

#rush
rush add -p --dev @repobuddy/vitest
```

## Features

- Provides test presets for Node.js and browser environments
  - `nodeTestPreset`: Configures Vitest for Node.js testing
  - `browserTestPreset`: Configures Vitest for browser testing using Playwright
- Includes common test configurations and defaults
- Sets timezone to GMT and automatically restores mocks after tests
- Provides better config defaults such as test file patterns and coverage configurations
- Disables screenshot on failure in browser tests to avoid Storybook loading issues

## Usage

```ts
// vitest.config.node.ts
import { defineConfig } from 'vitest/config'
import { nodeTestPreset } from '@repobuddy/vitest/config/node'

export default defineConfig({
  plugins: [nodeTestPreset({ includeGeneralTests: true })],
})


// vitest.config.browser.ts
import { defineConfig } from 'vitest/config'
import { browserTestPreset } from '@repobuddy/vitest/config/browser'

export default defineConfig({
  plugins: [browserTestPreset()],
})
```

[downloads-image]: https://img.shields.io/npm/dm/@repobuddy/typescript.svg?style=flat
[downloads-url]: https://npmjs.org/package/@repobuddy/typescript
[npm-image]: https://img.shields.io/npm/v/@repobuddy/typescript.svg?style=flat
[npm-url]: https://npmjs.org/package/@repobuddy/typescript
npm package: @repodog/babel-config
Description: The Repodog Babel config module.
Author: miami-man
Latest version: 7.0.7

# @repodog/babel-config

The Repodog Babel config.

[![npm version](https://badge.fury.io/js/%40repodog%2Fbabel-config.svg)](https://badge.fury.io/js/%40repodog%2Fbabel-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependencies

```shell
# terminal
npm install @repodog/babel-config @babel/core @babel/runtime --save-dev
```

## Install optional peer dependency

```shell
# terminal
npm install @rollup/plugin-babel --save-dev
```

## Use package

```javascript
// babel.config.cjs
const repodogConfig = require('@repodog/babel-config');

module.exports = api => ({
  ...repodogConfig(api),
});
```

### Usage with rollup

```javascript
// rollup.config.mjs
import rollupConfig from '@repodog/rollup-config';
import babelConfig from '@repodog/babel-config/rollup';
import { babel as babelPlugin } from '@rollup/plugin-babel';

export default {
  ...rollupConfig({ compiler: babelPlugin(babelConfig) }),
};
```

### Environment variables

#### `BABEL_DISABLE_CACHE` = `'true' || 'false'`

Disables the Babel cache. Default `'false'`.

#### `JS_ENV` = `'web' || 'node'`

Used as cache key when Babel cache is enabled.

#### `NODE_ENV` = `'production' || 'development' || 'test'`

Ignores test files when `NODE_ENV` is not `'test'`.

**You can also use the environment variables outlined in [`@repodog/babel-preset`](../babel-preset/README.md#environment-variables) to control what is output.**
npm package: @repodog/babel-preset
Description: The Repodog Babel preset module.
Author: miami-man
Latest version: 7.0.6

# @repodog/babel-preset

The Repodog Babel preset.

[![npm version](https://badge.fury.io/js/%40repodog%2Fbabel-preset.svg)](https://badge.fury.io/js/%40repodog%2Fbabel-preset)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependencies

```shell
# terminal
npm install @repodog/babel-preset @babel/core -D
```

## Install optional peer dependency

If your compiled code requires polyfills, the build config uses `core-js` for those so you may need to include `core-js` as a dependency.

```shell
# terminal
npm install core-js
```

## Use package

```javascript
// babel.config.cjs

module.exports = {
  presets: ['@repodog/babel-preset'],
};
```

### Environment variables

#### `BABEL_MODULE_SYSTEM` = `'esm' || 'cjs'`

When set to `'cjs'`, sets `modules` to `'commonjs'`. Default `'esm'`.

#### `DEBUG` = `'true' || 'false'`

Changes `targets` to latest version of chrome / current version of node.js. Also sets `@babel/preset-env` debug field. Default `'false'`.

#### `JS_ENV` = `'web' || 'node'`

Changes `targets` to browser based or node.js based. Default `'node'`.

#### `NODE_ENV` = `'production' || 'development' || 'test'`

Sets `@babel/preset-react` development field. Default `'development'`.
npm package: @repodog/cli-cut
Description: The Repodog cli cut module.
Author: miami-man
Latest version: 1.4.25

# @repodog/cli-cut

The Repodog cli cut package.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-cut.svg)](https://badge.fury.io/js/%40repodog%2Fcli-cut)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/cli-new
Description: The Repodog cli new module.
Author: miami-man
Latest version: 1.5.42

# @repodog/cli-new

The Repodog cli new package.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-new.svg)](https://badge.fury.io/js/%40repodog%2Fcli-new)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/cli-postinstall
Description: The Repodog cli postinstall module.
Author: miami-man
Latest version: 0.4.21

# cli-postinstall

The Repodog cli postinstall module.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-postinstall.svg)](https://badge.fury.io/js/%40repodog%2Fcli-postinstall)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/cli-publish
Description: The Repodog cli publish module.
Author: miami-man
Latest version: 1.4.25

# @repodog/cli-publish

The Repodog CLI publish package.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-publish.svg)](https://badge.fury.io/js/%40repodog%2Fcli-publish)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/cli-setup
Description: The Repodog cli setup module.
Author: miami-man
Latest version: 1.4.22

# setup

The Repodog cli setup module.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-setup.svg)](https://badge.fury.io/js/%40repodog%2Fcli-setup)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/cli-utils
Description: The Repodog cli utils module.
Author: miami-man
Latest version: 1.4.20

# @repodog/cli-utils

The Repodog CLI utils package.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-utils.svg)](https://badge.fury.io/js/%40repodog%2Fcli-utils)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/cli-write
Description: The Repodog cli write module.
Author: miami-man
Latest version: 1.4.21

# cli-write

The Repodog cli write module.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcli-write.svg)](https://badge.fury.io/js/%40repodog%2Fcli-write)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

This is an internal dependency package and should not be installed directly.
npm package: @repodog/commitlint-config
Description: The Repodog Commitlint config module.
Author: miami-man
Latest version: 19.0.5

# @repodog/commitlint-config

The Repodog Commitlint config.

[![npm version](https://badge.fury.io/js/%40repodog%2Fcommitlint-config.svg)](https://badge.fury.io/js/%40repodog%2Fcommitlint-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependencies

```shell
# terminal
npm install @repodog/commitlint-config @commitlint/cli husky --save-dev
```

## Initialize husky

```shell
# terminal
npx husky init
echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg
```

## Use package

```javascript
// commitlint.config.cjs
module.exports = {
  extends: ['@repodog/commitlint-config'],
};
```

## Make .husky/ executable

If you get the error `The '.husky/commit-msg' hook was ignored because it's not set as executable.` when trying to create a commit, please run the command `chmod ug+x .husky/*` from your project root and then create the commit again.
npm package: @repodog/constants
Description: The RepoDog constants module.
Author: Dylan Aubrey
Latest version: 0.3.30
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @repodog/constants

The RepoDog constants module.

[![npm version](https://badge.fury.io/js/%40repodog%2Fconstants.svg)](https://badge.fury.io/js/%40repodog%2Fconstants)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Installation

```shell
yarn add @repodog/constants --dev
```
npm package: @repodog/eslint-config
Description: The Repodog ESLint config module.
Author: miami-man
Latest version: 9.0.26

# @repodog/eslint-config

The Repodog ESlint config.

[![npm version](https://badge.fury.io/js/%40repodog%2Feslint-config.svg)](https://badge.fury.io/js/%40repodog%2Feslint-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependencies

```shell
# terminal
npm install @repodog/eslint-config eslint prettier typescript --save-dev
```

## Use package

```javascript
// eslint.config.mjs
import config from '@repodog/eslint-config';

// eslint convention is to export default
// eslint-disable-next-line import-x/no-default-export
export default [
  ...config,
];
```
npm package: @repodog/eslint-config-jasmine
Description: The Repodog Jasmine ESLint config module.
Author: miami-man
Latest version: 9.0.9

# @repodog/eslint-config-jasmine

The Repodog Jasmine ESLint config module.

[![npm version](https://badge.fury.io/js/%40repodog%2Feslint-config-jasmine.svg)](https://badge.fury.io/js/%40repodog%2Feslint-config-jasmine)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/eslint-config-jasmine eslint --save-dev
```

## Use package

```javascript
// eslint.config.mjs
import config from '@repodog/eslint-config-jasmine';

export default [
  ...config.map(entry => ({
    ...entry,
    files: ['**/*.{spec,test}.*'],
  })),
];
```
npm package: @repodog/eslint-config-jest
Description: The Repodog Jest ESLint config module.
Author: miami-man
Latest version: 9.0.6

# @repodog/eslint-config-jest

The Repodog Jest ESLint config module.

[![npm version](https://badge.fury.io/js/%40repodog%2Feslint-config-jest.svg)](https://badge.fury.io/js/%40repodog%2Feslint-config-jest)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/eslint-config-jest eslint --save-dev
```

## Use package

```javascript
// eslint.config.mjs
import config from '@repodog/eslint-config-jest';

export default [
  ...config.map(entry => ({
    ...entry,
    files: ['**/*.{spec,test}.*'],
  })),
];
```
npm package: @repodog/eslint-config-playwright
Description: The Repodog Playwright ESLint config module.
Author: miami-man
Latest version: 9.0.6

# @repodog/eslint-config-playwright

The Repodog Playwright ESLint config module.

[![npm version](https://badge.fury.io/js/%40repodog%2Feslint-config-playwright.svg)](https://badge.fury.io/js/%40repodog%2Feslint-config-playwright)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and dependency

```shell
# terminal
npm install @repodog/eslint-config-playwright eslint --save-dev
```

## Use package

```javascript
// eslint.config.mjs
import config from '@repodog/eslint-config-playwright';

export default [
  ...config.map(entry => ({
    ...entry,
    files: ['**/*.{spec,test}.*'],
  })),
];
```
npm package: @repodog/eslint-config-react
Description: The Repodog React ESLint config module.
Author: miami-man
Latest version: 9.0.6

# @repodog/eslint-config-react

The Repodog React ESLint config module.

[![npm version](https://badge.fury.io/js/%40repodog%2Feslint-config-react.svg)](https://badge.fury.io/js/%40repodog%2Feslint-config-react)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and dependency

```shell
# terminal
npm install @repodog/eslint-config-react eslint --save-dev
```

## Use package

```javascript
// eslint.config.mjs
import config from '@repodog/eslint-config-react';

export default [
  ...config,
];
```
npm package: @repodog/helpers
Description: The RepoDog helpers module.
Author: Dylan Aubrey
Latest version: 0.3.28
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @repodog/helpers

The RepoDog helpers module.

[![npm version](https://badge.fury.io/js/%40repodog%2Fhelpers.svg)](https://badge.fury.io/js/%40repodog%2Fhelpers)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Installation

```shell
yarn add @repodog/helpers --dev
```
npm package: @repodog/markdownlint-config
Description: The Repodog MarkdownLint config module.
Author: miami-man
Latest version: 1.2.5

# @repodog/markdownlint-config

The Repodog MarkdownLint config.

[![npm version](https://badge.fury.io/js/%40repodog%2Fmarkdownlint-config.svg)](https://badge.fury.io/js/%40repodog%2Fmarkdownlint-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/markdownlint-config markdownlint-cli --save-dev
```

## Install vscode extension

```shell
# terminal
code --install-extension DavidAnson.vscode-markdownlint
```

## Use package

```jsonc
// .markdownlint.json
{
  "extends": "node_modules/@repodog/markdownlint-config/index.json"
}
```

```jsonc
// .vscode/settings.json
{
  "[markdown]": {
    "editor.wordWrapColumn": 120,
    "editor.wordWrap": "wordWrapColumn"
  },
}
```
npm package: @repodog/prettier-config
Description: The Repodog Prettier config module.
Author: miami-man
Latest version: 3.0.3

# @repodog/prettier-config

The Repodog Prettier config.

[![npm version](https://badge.fury.io/js/%40repodog%2Fprettier-config.svg)](https://badge.fury.io/js/%40repodog%2Fprettier-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/prettier-config prettier --save-dev
```

## Use package

```javascript
// prettier.config.mjs
import config from '@repodog/prettier-config';

// prettier convention is to export default
// eslint-disable-next-line import-x/no-default-export
export default {
  ...config,
};
```
npm package: @repodog/rollup-config
Description: The Repodog Rollup config module.
Author: miami-man
Latest version: 4.0.12

# @repodog/rollup-config

The Repodog Rollup config.

[![npm version](https://badge.fury.io/js/%40repodog%2Frollup-config.svg)](https://badge.fury.io/js/%40repodog%2Frollup-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/rollup-config rollup  --save-dev
```

**Rollup uses Babel or SWC for code compilation so you will also need to install [`@repodog/babel-config`](../babel-config/README.md) or [`@repodog/swc-config`](../swc-config/README.md) and the relevant peer dependencies.**

## Use package

```jsonc
// package.json
{
  "scripts": {
    "build": "rollup -c ./rollup.config.mjs"
  }
}
```

### With Babel

```javascript
// rollup.config.mjs
import rollupConfig from '@repodog/rollup-config';
import babelConfig from '@repodog/babel-config/rollup';
import { babel as babelPlugin } from '@rollup/plugin-babel';

export default {
  ...rollupConfig({ compiler: babelPlugin(babelConfig) }),
};
```

### With SWC

```javascript
// rollup.config.mjs
import rollupConfig from '@repodog/rollup-config';
import swcConfig from '@repodog/swc-config';
import swcPlugin from '@rollup/plugin-swc';

export default {
  ...rollupConfig({ compiler: swcPlugin({ swc: swcConfig.ts }) }),
  // or
  ...rollupConfig({ compiler: swcPlugin({ swc: swcConfig.js }) }),
};
```

### Environment variables

#### `MODULE_SYSTEM` = `'esm' || 'cjs'`

Sets `output.format`, directory name within `./dist` output, and the extension of the bundled output file. Default `'esm'`.

#### `NODE_ENV` = `'production' || 'development' || 'test'`

When set to `'production'`, terser mangles and compresses, the bundle analyser runs, and source maps are omitted.

**You can also use the environment variables outlined in [`@repodog/babel-config`](../babel-config/README.md#environment-variables) or [`@repodog/swc-config`](../swc-config/README.md#environment-variables) to control what is output.**
npm package: @repodog/swc-config
Description: The Repodog SWC config module.
Author: miami-man
Latest version: 1.0.12

# @repodog/swc-config

The Repodog SWC config.

[![npm version](https://badge.fury.io/js/%40repodog%2Fswc-config.svg)](https://badge.fury.io/js/%40repodog%2Fswc-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/swc-config @swc/core -D
```

## Install optional peer dependencies

```shell
# terminal
npm install @rollup/plugin-swc -D
```

If your compiled code requires polyfills, the build config uses `core-js` for those so you may need to include `core-js` as a dependency.

```shell
# terminal
npm install core-js
```

## Use package

This package is designed to be used with `rollup`, `webpack` and `jest` as it allows the config to be a javascript file. The SWC command line library only supports a `.swcrc` json file.

As a javascript file that is passed into rollup, you can override the configuration, and it can be dynamically modified based off environment variables.

Whether the config transforms javascript or typescript is based on whether the config finds a `tsconfig.json` at the root of your project.

### With Rollup

```javascript
// rollup.config.mjs
import rollupConfig from '@repodog/rollup-config';
import swcConfig from '@repodog/swc-config';
import swcPlugin from '@rollup/plugin-swc';

export default {
  ...rollupConfig({ compiler: swcPlugin({ swc: swcConfig.ts }) }),
  // or
  ...rollupConfig({ compiler: swcPlugin({ swc: swcConfig.js }) }),
};
```

### With Webpack

```javascript
// webpack.config.cjs
const webpackConfig = require('@repodog/webpack-config');
const swcConfig = require('@repodog/swc-config');

module.exports = {
  ...webpackConfig({ compiler: ['swc-loader', swcConfig] }),
  entry: './src/index.ts',
  output: {
    filename: 'index.js',
    path: path.resolve(__dirname, 'dist'),
  },
};
```

### With Jest

```javascript
// jest.config.cjs
const jestConfig = require('@repodog/jest-config');
const swcConfig = require('@repodog/swc-config');

module.exports = {
  ...jestConfig({ compilerOptions: swcConfig }),
};
```

### Environment variables

#### `SWC_MODULE_SYSTEM` = `'esm' || 'cjs'`

Sets `module.type` to `'es6'` or `'commonjs'`. Default `'esm'`.

#### `DEBUG` = `'true' || 'false'`

Changes `targets` to latest version of chrome / current version of node.js and sets `env.debug` to `true`.

#### `JS_ENV` = `'web' || 'node'`

Changes `targets` to browser based or node.js based. Default `'node'`.

#### `NODE_ENV` = `'production' || 'development' || 'test'`

Sets `transform.react.development` field. Default `'development'`.
npm package: @repodog/syncpack-config
Description: The Repodog Syncpack config module.
Author: miami-man
Latest version: 13.0.5

# @repodog/syncpack-config

The Repodog Syncpack config module.

[![npm version](https://badge.fury.io/js/%40repodog%2Fsyncpack-config.svg)](https://badge.fury.io/js/%40repodog%2Fsyncpack-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/syncpack-config syncpack --save-dev
```

## Use package

```javascript
// .syncpackrc.cjs
const repodogConfig = require('@repodog/syncpack-config');

module.exports = {
  ...repodogConfig,
};
```
npm package: @repodog/ts-config
Description: The Repodog Typescript config module.
Author: miami-man
Latest version: 5.0.5

# @repodog/ts-config

The Repodog tsconfig.

[![npm version](https://badge.fury.io/js/%40repodog%2Fts-config.svg)](https://badge.fury.io/js/%40repodog%2Fts-config)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Install package and peer dependency

```shell
# terminal
npm install @repodog/ts-config typescript --save-dev
```

## Use package

### Configure

#### Project root

If you are building the project from the root.

```jsonc
// tsconfig.json
{
  "extends": "@repodog/ts-config/index.json",
  "include": [
    "src/**/*"
  ]
}
```

```jsonc
// tsconfig.build.json
{
  "extends": ["./tsconfig.json", "@repodog/ts-config/build.json"],
  "compilerOptions": {
    "outDir": "dist/types",
    "rootDir": "src"
  },
  "exclude": [
    "**/*.test.*"
  ]
}
```

#### Workspace root

If you are building the project from each workspace root.

```jsonc
// tsconfig.json
{
  "extends": "@repodog/ts-config/index.json",
  "include": [
    "packages/**/*"
  ]
}
```

```jsonc
// <workspace>/tsconfig.json
{
  "extends": ["@repodog/ts-config/index.json", "@repodog/ts-config/build.json"],
  "include": [
    "src/**/*"
  ],
  "references": []
}
```

```jsonc
// <workspace>/tsconfig.build.json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "dist/types",
    "rootDir": "src"
  },
  "exclude": [
    "**/*.test.*"
  ]
}
```

### Execute

```jsonc
// package.json
{
  "scripts": {
    "compile:types": "tsc --project ./tsconfig.build.json",
    "type-check": "tsc --noEmit"
  }
}
```