open-index/open-npm huggingface dataset:
npm package: @mheob/changeset-changelog
Description: My personal changeset changelog configuration.
Author: Alexander Böhm
Latest version: 3.0.2

# `@mheob/changeset-changelog`

[![Release](https://github.com/mheob/changeset-changelog/actions/workflows/release.yml/badge.svg)](https://github.com/mheob/changeset-changelog/actions/workflows/release.yml)
[![Check](https://github.com/mheob/changeset-changelog/actions/workflows/check.yml/badge.svg)](https://github.com/mheob/changeset-changelog/actions/workflows/check.yml)
[![codecov](https://codecov.io/gh/mheob/changeset-changelog/branch/main/graph/badge.svg?token=E7RZLWHMEX)](https://codecov.io/gh/mheob/changeset-changelog)

Add my own style for the changelogs generated by the awesome [changesets](https://github.com/changesets/changesets) library. The
style was inspired by the original
[@changesets/changelog-github](https://github.com/changesets/changesets/tree/main/packages/changelog-github) and the
[@svitejs/changesets-changelog-github-compact](https://github.com/svitejs/changesets-changelog-github-compact) packages.

## Installation

### With NPM

```sh
npm install -D @mheob/changeset-changelog
```

### With YARN

```sh
yarn add -D @mheob/changeset-changelog
```

### With PNPM

```sh
pnpm add -D @mheob/changeset-changelog
```

## Usage

Set in your `.changeset/config.json` file the following snippet:

```jsonc
{
	"changelog": ["@mheob/changeset-changelog", { "repo": "YOUR_ORG_OR_USER/YOUR_REPO" }],
}
```

### Output

<!-- markdownlint-disable MD042 -->

There are differences between this changelog output and the others:

### `@changesets/changelog-github`

- [#PR-ID](#) [`commit`](#) Thanks [@user](#)! - Add nice feature to the project with a PR and commit
- [`commit`](#) Thanks [@user](#)! - Add nice feature to the project without a PR

### `@svitejs/changesets-changelog-github-compact`

- Add nice feature to the project with a PR and commit ([#PR](#))
- Add nice feature to the project without a PR ([commit](#))

<!-- markdownlint-disable MD024 -->

### `@mheob/changeset-changelog`

<!-- markdownlint-enable MD024 -->

- [PR](#) ([@user](#)): Add nice feature to the project with a PR and commit
- [commit](#) ([@user](#)): Add nice feature to the project without a PR

## Additional feature: linking issues

_Thanks to `@svitejs/changesets-changelog-github-compact` for this nice feature!_

All links to issues (or pull requests) in the chageset will automatically converted to a link.\
To enable the changeset have to called it like this variants:

- `(fix: #123)`,
- `(fixes: #123)`,
- `(resolves: #123)` or
- `(see: #123)`

### Example

The changeset

```yml
---
'@mheob/changeset-changelog': patch
---
Add nice feature to the project (see #123)
```

will outputted in the changelog like

> [#130](#) ([@user](#)): Add nice Feature to the project, (see [#123](#))
npm package: @mheob/commitlint-config
Description: My personal configuration for commitlint.
Author: Alexander Böhm
Latest version: 2.0.1

# My personal Commitlint config

To make my configurations a bit easier I share my [Commitlint](https://commitlint.js.org/) config.

Another notable tool for using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) is
[cz-git](https://cz-git.qbb.sh/).

## Install

### With NPM

```sh
npm install -D @mheob/commitlint-config
```

### With YARN

```sh
yarn add -D @mheob/commitlint-config
```

### With PNPM

```sh
pnpm add -D @mheob/commitlint-config
```

### With BUN

```sh
bun add -D @mheob/commitlint-config
```

## Usage

Add this config to your root `package.json`.

```json
{
	"config": {
		"commitizen": {
			"path": "node_modules/cz-git"
		}
	}
}
```

Now create a `.commitlint.config.js` file in the root of your project with this content:

```js
/** @type {import('cz-git').UserConfig} */
module.exports = {
	...require('@mheob/commitlint-config'),
};
```

If you want to use your own scopes or if you need to override some settings you can do it in the `commitlint.config.js` this way:

```js
const fs = require('node:fs');
const path = require('node:path');

const defaultConfig = require('@mheob/commitlint-config');

// dynamically define the scopes
const apps = fs.readdirSync(path.resolve(__dirname, 'apps'));
const packages = fs.readdirSync(path.resolve(__dirname, 'packages'));

/** @type {import('cz-git').UserConfig} */
module.exports = {
	...defaultConfig,
	prompt: {
		...defaultConfig.prompt,
		scopes: ['deps', 'release', 'repo', ...apps, ...packages],
		useEmoji: false,
	},
};
```
npm package: @mheob/oxfmt-config
Description: Shared OXFmt configuration
Author: Alexander Böhm
Latest version: 1.2.0

# OXfmt Config

Opinionated, shared [OXFmt](https://oxc.rs/docs/guide/usage/formatter) configuration for my projects.

## Install

```bash
bun add -D @mheob/oxfmt-config oxfmt
```

## Usage

Create an `oxfmt.config.ts` at the root of your project and spread the provided config:

```ts
// oxfmt.config.ts
import { baseConfig } from '@mheob/oxfmt-config';
import { defineConfig } from 'oxfmt';

export default defineConfig({
	...baseConfig,
});
```

Add project-specific overrides on top:

```ts
// oxfmt.config.ts
import { baseConfig } from '@mheob/oxfmt-config';
import { defineConfig } from 'oxfmt';

export default defineConfig({
	...baseConfig,
	printWidth: 100,
});
```

## Available configs

### `baseConfig`

The foundation for all projects. Applies the following formatting defaults:

| Option            | Value    | Description                                      |
| ----------------- | -------- | ------------------------------------------------ |
| `arrowParens`     | `avoid`  | Omits parentheses around single arrow parameters |
| `proseWrap`       | `always` | Wraps prose in Markdown files                    |
| `singleQuote`     | `true`   | Uses single quotes instead of double quotes      |
| `useTabs`         | `true`   | Indents with tabs instead of spaces              |
| `sortPackageJson` | enabled  | Sorts `package.json` fields, including scripts   |

Also ships with file-specific overrides:

| Files                      | Override                                      |
| -------------------------- | --------------------------------------------- |
| `{.cspell,tsconfig}*.json` | Uses `jsonc` parser to support comments       |
| `*.md`                     | Increases `printWidth` to `130`               |
| `*.{yaml,yml}`             | Sets `printWidth: 130`, double quotes, spaces |

## Editor integration

### VS Code

Install the [OXC VS Code extension](https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode) and add to
`.vscode/settings.json`:

```jsonc
{
	"editor.defaultFormatter": "oxc.oxc-vscode",
	"editor.formatOnSave": true,
}
```

### Zed

Add to `.zed/settings.json`:

```jsonc
{
	"formatter": {
		"external": {
			"command": "oxfmt",
			"arguments": ["--stdin-filepath", "{buffer_path}"],
		},
	},
	"format_on_save": "on",
}
```

## Scripts

Add to your `package.json`:

```json
{
	"scripts": {
		"format": "oxfmt",
		"format:check": "oxfmt --check"
	}
}
```
npm package: @mheob/prettier-config
Description: My personal configuration for prettier.
Author: Alexander Böhm
Latest version: 3.5.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# My personal Prettier config

To make my configurations a bit easier I share my [Prettier](https://prettier.io) config.

## Install

### With NPM

```sh
npm install -D @mheob/prettier-config
```

### With YARN

```sh
yarn add -D @mheob/prettier-config
```

### With PNPM

```sh
pnpm add -D @mheob/prettier-config
```

### With BUN

```sh
bun add -D @mheob/prettier-config
```

## Usage

Add the following to your `prettier.config.js`:

```js
// prettier.config.mjs
import defaultConfig from '@mheob/prettier-config';

/** @type {import('prettier').Config} */
const config = { ...defaultConfig };

export default config;
```

You can override any of the default configuration options in the `config` object.

```js
// prettier.config.mjs
import defaultConfig from '@mheob/prettier-config';

/** @type {import('prettier').Config} */
const config = {
	...defaultConfig,
	printWidth: 130,
	semi: false,
};

export default config;
```

## Ruleset

This configuration uses these styles:

```js
/** @type {import('prettier').Config} */
/* eslint-disable perfectionist/sort-objects */
export default {
	arrowParens: 'avoid',
	endOfLine: 'lf',
	printWidth: 100,
	proseWrap: 'always',
	semi: true,
	singleQuote: true,
	trailingComma: 'all',
	useTabs: true,

	overrides: [
		{
			files: '*.md',
			options: {
				parser: 'markdown',
				printWidth: 130,
			},
		},
		{
			files: '*.{yaml,yml}',
			options: {
				printWidth: 130,
				singleQuote: false,
				useTabs: false,
			},
		},
	],
};
```
npm package: @mheob/rollup-plugin-copy
Description: A Rollup plugin that copies asset files while preserving the relative folder structure.
Author: Alexander Böhm
Latest version: 1.0.4

# @mheob/rollup-plugin-copy

A Rollup plugin that copies asset files while preserving the relative folder structure.

## Installation

```sh
pnpm add -D @mheob/rollup-plugin-copy
```

## Usage

```js
// rollup.config.mjs
import copy from '@mheob/rollup-plugin-copy';

export default {
	input: 'src/index.js',
	output: {
		dir: 'output',
		format: 'es',
	},
	plugins: [copy({ patterns: '**/*.{svg,jpg,json}' })],
};
```

## Options

| Options | Type | Mandatory | Default | Description |
| --- | --- | :-: | --- | --- |
| `patterns` | `string\|string[]` | ✅ |  | Does accept a string pattern or an array of strings patterns. |
| `rootDir` | `string` |  | `cwd` | Patterns are relative to this directory and all found files will be resolved relative to it. If files can't be found, use `path.resolve('./my/path')` to supply an absolute path. |
| `exclude` | `string\|string[]` |  | `undefined` | A glob or array of globs to exclude from copying. |

## Thanks

Inspired by the [@web/rollup-plugin-copy](https://modern-web.dev/docs/building/rollup-plugin-copy/) package.
npm package: @mheob/tsconfig
Description: My personal configurations for typescript.
Author: Alexander Böhm
Latest version: 2.2.1

# My personal TypeScript configurations

To make my configurations a bit easier I share my `tsconfig.json`s.

## Install

### With NPM

```sh
npm install -D @mheob/tsconfig
```

### With YARN

```sh
yarn add -D @mheob/tsconfig
```

### With PNPM

```sh
pnpm add -D @mheob/tsconfig
```

### With BUN

```sh
bun add -D @mheob/tsconfig
```

## Usage

`tsconfig.json`

### Default (same as `commonjs.json`)

```json
{
	"extends": "@mheob/tsconfig"
}
```

or

```json
{
	"extends": "@mheob/tsconfig/commonjs.json"
}
```

You can of course extend or overwrite all settings.

```json
{
	"extends": "@mheob/tsconfig",
	"compilerOptions": {
		"outDir": "dist"
	}
}
```

### Specified configurations

#### Astro

```json
{
	"extends": "@mheob/tsconfig/astro.json"
}
```

#### ESM

```json
{
	"extends": "@mheob/tsconfig/esm.json"
}
```

#### Next.js

```json
{
	"extends": "@mheob/tsconfig/nextjs.json"
}
```

#### React

```json
{
	"extends": "@mheob/tsconfig/react.json"
}
```
npm package: @mherod/wiki-js
Description: A modern TypeScript/JavaScript library for interacting with the Wikimedia API, providing type-safe access to Wikipedia pages, categories, and media
Author: Matthew Herod
Latest version: 0.2.2

# @mherod/wiki-js

A modern JavaScript/TypeScript library for interacting with the Wikimedia API. This library provides a type-safe way to fetch and interact with Wikipedia pages, categories, and media.

## Installation

```bash
# Using pnpm (recommended)
pnpm add @mherod/wiki-js

# Using npm
npm install @mherod/wiki-js

# Using yarn
yarn add @mherod/wiki-js
```

## Usage

### ESM
```typescript
import { WikimediaClient } from '@mherod/wiki-js';

const client = new WikimediaClient({
  userAgent: 'MyApp/1.0', // It's good practice to set a user agent
});

// Get page information
const pageInfo = await client.getPageInfo('JavaScript');

// Search for pages
const searchResults = await client.search('JavaScript programming');

// Get page categories
const categories = await client.getCategories('JavaScript');
```

### CommonJS
```javascript
const { WikimediaClient } = require('@mherod/wiki-js');

const client = new WikimediaClient({
  baseURL: 'https://en.wikipedia.org/w/api.php', // Optional: specify a different wiki
});

async function getPageInfo() {
  const pageInfo = await client.getPageInfo('JavaScript');
  console.log(pageInfo);
}
```

## Features

- **Type Safety**: Built with TypeScript for excellent IDE support and type checking
- **Modern Architecture**: 
  - Promise-based API
  - ESM and CommonJS support
  - Tree-shakeable exports
- **Comprehensive API Coverage**:
  - Page information and content
  - Category management
  - Search functionality
  - Link management (forward and backward links)
  - Image and file handling
- **Configurable**: Custom base URLs, user agents, and other options
- **Error Handling**: Proper error handling and typing

## API Examples

```typescript
const client = new WikimediaClient();

// Get page information
const pageInfo = await client.getPageInfo('JavaScript');

// Search for pages
const searchResults = await client.search('JavaScript programming');

// Get page categories
const categories = await client.getCategories('JavaScript');

// Get page links
const links = await client.getLinks('JavaScript');

// Get images used on a page
const images = await client.getImages('JavaScript');
```

## Development

```bash
# Install dependencies
pnpm install

# Start development with watch mode
pnpm dev

# Run tests
pnpm test

# Build the project
pnpm build

# Lint the code
pnpm lint

# Format the code
pnpm format

# Fetch test data
pnpm fetch-test-data
```

## Requirements

- Node.js >= 14.0.0
- TypeScript for development

## License

MIT © Matthew Herod

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
npm package: @mhfrough/star-rating
Description: Tiny, dependency-free function to generate 5-star ratings with optional half-star (★⯪☆) support.
Author: mhfrough
Latest version: 1.0.1

# ⭐ @mhfrough/star-rating

> Tiny, dependency-free function to generate 5-star ratings with optional half-star (`★⯪☆`) support.

---

## ✨ Features

- Supports decimal ratings (e.g., `3.5` → `★★★⯪☆`)
- Unicode-based, lightweight, and zero dependencies
- Works in both Node.js and frontend environments
- Includes TypeScript definitions

---

## 📦 Installation

```bash
npm install @mhfrough/star-rating
```

---

## 🔧 Usage

```js
const rating = require('@mhfrough/star-rating');

console.log(rating(0));     // ☆☆☆☆☆
console.log(rating(2));     // ★★☆☆☆
console.log(rating(3.5));   // ★★★⯪☆
console.log(rating(5));     // ★★★★★
```

---

## 📘 API

### `rating(n: number): string`

| Parameter | Type   | Description                            |
|-----------|--------|----------------------------------------|
| `n`       | number | A value from `0` to `5` (can be decimal)|

Returns a string like `★★★⯪☆` representing the rating.

Throws an error if `n` is not a valid number between 0 and 5.

---

## 🧪 Example Output

| Input | Output    |
|-------|-----------|
| 0     | ☆☆☆☆☆     |
| 1.5   | ★⯪☆☆☆     |
| 3     | ★★★☆☆     |
| 4.5   | ★★★★⯪     |
| 5     | ★★★★★     |

---

## ✅ TypeScript Support

```ts
import rating from '@mhfrough/star-rating';

const stars: string = rating(4.5); // "★★★★⯪"
```

Type definitions are included automatically.

---

## 📁 File Structure

```
index.js         // Main function
index.d.ts       // Type definitions
README.md        // This file
LICENSE          // MIT License
```

---

## 🪪 License

MIT © [mhfrough](https://github.com/mhfrough)

---

## 🔗 Links

- [GitHub Repository](https://github.com/mhfrough/star-rating)
- [Report Issues](https://github.com/mhfrough/star-rating/issues)