open-index/open-npm huggingface dataset:
npm package: @lcap/parse-cli
Description: codewaver parser cli
Author: NetEase CodeWave FE Team
Latest version: 1.0.0

# Lcap Parse Cli

CodeWave NPM 包解析命令行工具

```sh
npm install -g @lcap/parse-cli
```

```sh
lcap-parse antd@5.0.0 -o antd-schema.json
```
npm package: @lcap/storybook-vue-vite
Description: Storybook for Vue2 and Vite: Develop Vue2 Components in isolation with Hot Reloading.
Latest version: 7.6.17

# Storybook for Vue 2 and Vite

> 原包不支持 vue 2.7 以下版本， 所以迁移到这里

Storybook for Vue 2 is a UI development environment for your Vue 2 components.
With it, you can visualize different states of your UI components and develop them interactively.

![Storybook Screenshot](https://github.com/storybookjs/storybook/blob/main/media/storybook-intro.gif)

Storybook runs outside of your app.
So you can develop UI components in isolation without worrying about app specific dependencies and requirements.

## Getting Started

```sh
cd my-vue-app
npx storybook@latest init
```

For more information visit: [storybook.js.org](https://storybook.js.org)

## Starter Storybook-for-Vue Boilerplate project with [Vuetify](https://github.com/vuetifyjs/vuetify) Material Component Framework

<https://github.com/white-rabbit-japan/vue-vuetify-storybook>

---

Storybook also comes with a lot of [addons](https://storybook.js.org/addons) and a great API to customize as you wish.
You can also build a [static version](https://storybook.js.org/docs/vue/sharing/publish-storybook) of your Storybook and deploy it anywhere you want.

## Vue Notes

- When using global custom components or extensions (e.g., `Vue.use`). You will need to declare those in the `./storybook/preview.js`.

## Known Limitations

In Storybook story and decorator components, you can not access the Vue instance
in factory functions for default prop values:

```js
{
  props: {
    foo: {
      default() {
        return this.bar; // does not work!
      }
    }
  }
}
```
npm package: @lcaparros/user-management
Description: This is a JS module for adding basic user management to your ExpressJS project
Author: lcaparros
Latest version: 1.0.1

# User Management Module

This module allows you to manage users (login, registration, permission groups, etc.) in an ExpressJS backend. With it, you can easily add user management functionality to your existing project.

## Installation

You can install the module from npm or copy the files to your project.

### Installation from npm

```sh
npm install @lcaparros/user-management
```

### Manual Installation

1. Clone the repository or download the files.
2. Copy the files to your project.
3. Make sure to install the necessary dependencies:

```sh
npm install express jsonwebtoken mongoose bcryptjs
```

## Usage

### Configuration

1. Create a `.env` file at the root of your project with the following variables:

```
JWT_SECRET=your_jwt_secret_key
```

2. Import and use the module in your Express application:

```js
import express from 'express';
import mongoose from 'mongoose';
import { authRoutes, userRoutes } from '@lcaparros/user-management'; // Or the relative path if you copied the files

const app = express();
const PORT = process.env.PORT || 3000;

app.use(express.json());

// Connect to MongoDB
mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log('MongoDB connected'))
  .catch(err => console.log(err));

// Use authentication and user routes
app.use('/api/auth', authRoutes);
app.use('/api/users', userRoutes);

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});
```

### Role Verification Middleware

You can protect your endpoints by adding the `authorizeRoles` middleware:

```js
import { authorizeRoles, verifyToken } from '@lcaparros/user-management';

// Protect an endpoint for only admins
app.get('/api/users', verifyToken, authorizeRoles(['admin', 'user_manager']), (req, res) => {
  // Your logic here
});
```

## Contributing

Contributions are welcome! If you'd like to contribute to this project, follow these steps:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/new-feature`).
3. Make your changes and commit them (`git commit -am 'Add new feature'`).
4. Push your branch (`git push origin feature/new-feature`).
5. Open a Pull Request.

### Testing

To run the tests, follow these steps:

1. Clone the repository and navigate to the project directory.
2. Install the dependencies:

```sh
npm install
```

3. Start MongoDB. You can do it with Docker using the provided docker-compose file:

```sh
docker compose up -d
```

3. Run the tests:

```sh
npm test
```

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

---

We hope this module helps you manage users in your project. If you have any questions or suggestions, feel free to open an issue on the repository.
npm package: @lcaprini/react-native-splitview
Description: React Native module that allow to manage multiple Navigator at the same time to create Master-Detail layout for tablet
Author: Luca Caprini
Latest version: 0.3.0

# react-native-splitview

React Native module that allow to manage multiple Navigator at the same time to create Master-Detail layout for tablet.
Thanks to retyui's [react-native-split-view-demo](https://github.com/retyui/react-native-split-view-demo) for his work that inspire
this module.

## Installation

```sh
npm install react-native-splitview @react-navigation/native
```

## Usage


```ts
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { setMasterNavigator, SplitView } from 'react-native-splitview';
import MasterStack from './stacks/MasterStack';
import DetailStack from './stacks/DetailStack';

const Stack = createNativeStackNavigator();

const MainSplitView = () => {
  return (
    <SplitView
      master={<MasterStack />}
      detail={<DetailStack />}
    />;
  )
};

export default function App() {
  return (
    <NavigationContainer ref={setMasterNavigator}>
      <Stack.Navigator initialRouteName="Main">
        <Stack.Screen
          name="Main"
          component={MainSplitView}
          options={{ headerShown: false }}
        />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

See the [MIT license](LICENZE.md)

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @lcas58/esmi-api-types
Description: Type-safe JSON API built with Hono, OpenAPI, Drizzle ORM, and Better Auth. Runs locally via Cloudflare Wrangler with Node.js compatibility.
Latest version: 1.0.30

## Esmi API

Type-safe JSON API built with Hono, OpenAPI, Drizzle ORM, and Better Auth. Runs locally via Cloudflare Wrangler with Node.js compatibility.

### Features

- **OpenAPI docs**: `@hono/zod-openapi` + Scalar UI
- **Auth**: Better Auth routes proxied under `/api/auth/*`
- **Database**: PostgreSQL via Drizzle ORM
- **Logging**: Pino + `hono-pino`

---

## Quick start

### Prerequisites

- Node.js 20+
- Bun (for `bunx` used by db scripts)
- Cloudflare Wrangler (`npm i -g wrangler`)
- A PostgreSQL database (e.g. Neon) and `DATABASE_URL`

### Install

```bash
npm install
```

### Environment

Create a `.env` file with:

```bash
NODE_ENV=development
LOG_LEVEL=info
DATABASE_URL=postgres://user:pass@host/db
# Only required in production when using Neon auth token
DATABASE_AUTH_TOKEN=

BETTER_AUTH_SECRET=replace-me
BETTER_AUTH_URL=http://localhost:8787
BETTER_AUTH_TRUSTED_ORIGINS=http://localhost:3000

# OAuth (Google) for Better Auth
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
```

### Database

Generate and run migrations:

```bash
npm run db:generate
npm run db:migrate
```

Optional seed:

```bash
npm run db:seed
```

### Run locally

```bash
npm run dev
# Wrangler serves on http://localhost:8787 by default
```

### Build & deploy

```bash
npm run build
npm run deploy
```

---

## API

### Docs

- `GET /doc` OpenAPI spec (JSON)
- `GET /reference` Scalar API UI

### Auth

- `GET|POST /api/auth/*` handled by Better Auth

### Index

- `GET /` health/info

### Organizations (requires auth)

- `GET /organizations/{ownerId}` list organizations for a user
- `POST /organizations` create organization
- `PATCH /organizations/{id}` update by id
- `DELETE /organizations/{id}` delete by id

### Leagues

- `GET /leagues/{locationId}` list leagues for a location

### Marketing

- `GET /marketing/email` list email signups
- `POST /marketing/email` create email signup

### Tags

- `GET /tags?type={type}` list tags (optional filter by `type`)

---

## Project structure

- App bootstrap: `src/app.ts`
- OpenAPI config & UI: `src/lib/configure-open-api.ts`
- Routes: `src/routes/**`
- DB schema: `src/db/schema/**`
- Drizzle config: `drizzle.config.ts`

For the current database model overview, see `DB_SCHEMA.md`.

---

## Scripts

- `dev`: Wrangler dev server
- `build`: TypeScript build + path aliasing
- `deploy`: Wrangler deploy
- `test`: Vitest
- `lint` / `lint:fix`
- `db:generate` / `db:migrate` / `db:studio` / `db:seed`
npm package: @lcbase/eslint-config-js
Description: Shared Eslint js config
Author: @lcbase
Latest version: 1.13.0

# Eslint Config for Javascript Project

This package provides Eslint's Config for Javascript Project.

> **Note 1**: Only support the new [Eslint flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new).

> **Note 2**: This config is using the [Airbnb eslint config](https://www.npmjs.com/package/eslint-config-airbnb).

## Usage

#### 1. Install package

```sh
pnpm add -D @lcbase/eslint-config-js eslint
```

#### 2. Add config to your `eslint.config.js`. Please read more about [Eslint Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files-new)

```js
import { baseConfig } from '@lcbase/eslint-config-js';

export default baseConfig;
```

#### 3. Add script to your `package.json`.

```json
{
  "scripts": {
    "lint": "eslint \"src/**/*.js\"",
    "lint:fix": "pnpm lint"
  }
}
```

#### 4. Combine with [@lcbase/prettier-config](https://www.npmjs.com/package/@lcbase/prettier-config) packages

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

```json
{
  "prettier": "@lcbase/prettier-config",
  "scripts": {
    "lint": "eslint \"src/**/*.js\"",
    "lint:fix": "pnpm lint",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```js
{
  "eslint.experimental.useFlatConfig": true,
  // if mono-repo remove below line comment
  // "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```

## Extends

You can extends this config by:

```js
import { extendBaseConfig } from '@lcbase/eslint-config-js';

const config = extendBaseConfig({
  files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
  extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
  hasImport: boolean, // true if you want to use default eslint-plugin-import.
});

export default config;
```
npm package: @lcbase/eslint-config-lit
Description: Shared Eslint LIT components config
Author: @lcbase
Latest version: 2.0.0

# Eslint Config for LIT Project

This package provides Eslint's Config for LIT Project.

> **Note 1**: Only support the new [Eslint flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new).

> **Note 2**: This config is using the [Airbnb eslint config](https://www.npmjs.com/package/eslint-config-airbnb).

## Usage

#### 1. Install package

```sh
pnpm add -D @lcbase/eslint-config-lit eslint
```

#### 2. Add config to your `eslint.config.js`. Please read more about [Eslint Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files-new)

```js
import { baseLitConfig } from '@lcbase/eslint-config-lit';

export default baseLitConfig;
```

#### 3. Add script to your `package.json`.

```json
{
  "scripts": {
    "lint": "eslint \"src/**/*.js\"",
    "lint:fix": "pnpm lint"
  }
}
```

#### 4. Combine with [@lcbase/prettier-config](https://www.npmjs.com/package/@lcbase/prettier-config) packages

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

```json
{
  "prettier": "@lcbase/prettier-config",
  "scripts": {
    "lint": "eslint \"src/**/*.js\"",
    "lint:fix": "pnpm lint",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```js
{
  "eslint.experimental.useFlatConfig": true,
  // if mono-repo remove below line comment
  // "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```

## Extends

You can extends this config by:

```js
import { extendBaseLitConfig } from '@lcbase/eslint-config-lit';

const config = extendBaseLitConfig({
  files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
  extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
  litConfig: Linter.FlatConfig;
});

export default config;
```
npm package: @lcbase/eslint-config-litts
Description: Shared Eslint LIT TS components config
Author: @lcbase
Latest version: 2.0.2

# Eslint Config for LIT Ts Project

This package provides Eslint's Config for LIT Ts Project.

> **Note 1**: Only support the new [Eslint flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new).

> **Note 2**: This config is using the [Airbnb eslint config](https://www.npmjs.com/package/eslint-config-airbnb).

## Usage

#### 1. Install package

```sh
pnpm add -D @lcbase/eslint-config-litts eslint
```

#### 2. Add config to your `eslint.config.js`. Please read more about [Eslint Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files-new)

```js
import { baseLitTsConfig } from '@lcbase/eslint-config-litts';

export default baseLitTsConfig;
```

#### 3. Add script to your `package.json`.

```json
{
  "scripts": {
    "lint": "eslint \"src/**/*.js\"",
    "lint:fix": "pnpm lint"
  }
}
```

#### 4. Combine with [@lcbase/prettier-config](https://www.npmjs.com/package/@lcbase/prettier-config) packages

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

```json
{
  "prettier": "@lcbase/prettier-config",
  "scripts": {
    "lint": "eslint \"src/**/*.js\"",
    "lint:fix": "pnpm lint",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```js
{
  "eslint.experimental.useFlatConfig": true,
  // if mono-repo remove below line comment
  // "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```

## Extends

You can extends this config by:

```js
import { extendBaseLitTsConfig } from '@lcbase/eslint-config-litts';

const config = extendBaseLitTsConfig({
  files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
  extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
  litConfig: Linter.FlatConfig,
});

export default config;
```
npm package: @lcbase/eslint-config-nextjs
Description: Shared Eslint Nextjs config
Author: @lcbase
Latest version: 1.10.0

# Eslint Config for Nextjs project

This package provides Eslint's Config for Nextjs project.

> **Note 1**: Only support the new [Eslint flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new).

> **Note 2**: This config is using the [Airbnb eslint config](https://www.npmjs.com/package/eslint-config-airbnb).

## Usage

#### 1. Install package

```sh
pnpm add -D @lcbase/eslint-config-nextjs eslint
```

#### 2. Add config to your `eslint.config.js`. Please read more about [Eslint Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files-new)

```js
import { baseNextJsConfig } from '@lcbase/eslint-config-nextjs';

export default baseNextJsConfig;
```

#### 3. Add script to your `package.json` and update `esm` config files.

- `package.json`

```json
{
  "type": "module",
  "scripts": {
    "lint": "eslint \"src/**/*.{js,jsx}*\"",
    "lint:fix": "pnpm lint --fix"
  }
}
```

- `tailwind.config.js` change `module.exports` to `export default`.
- `next.config.js` change `module.exports` to `export default`.
- change `postcss.config.js` to `postcss.config.cjs`.

#### 4. Combine with [@lcbase/prettier-config](https://www.npmjs.com/package/@lcbase/prettier-config) packages

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

```json
{
  "prettier": "@lcbase/prettier-config",
  "scripts": {
    "lint": "eslint \"src/**/*.{js,jsx}*\"",
    "lint:fix": "pnpm lint --fix",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```js
{
  "eslint.experimental.useFlatConfig": true,
  // if mono-repo remove below line comment
  // "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```

## Extends

You can extends this config by:

```js
import { extendBaseNextJsConfig } from '@lcbase/eslint-config-nextjs';

const config = extendBaseNextJsConfig({
  files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
  extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
});

export default config;
```
npm package: @lcbase/eslint-config-reactjs
Description: Shared Eslint Reactjs config
Author: @lcbase
Latest version: 1.10.0

# Eslint Config for ReactJs project

This package provides Eslint's Config for ReactJs project.

> **Note 1**: Only support the new [Eslint flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new).

> **Note 2**: This config is using the [Airbnb eslint config](https://www.npmjs.com/package/eslint-config-airbnb).

## Usage

#### 1. Install package

```sh
pnpm add -D @lcbase/eslint-config-reactjs eslint
```

#### 2. Add config to your `eslint.config.js`. Please read more about [Eslint Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files-new)

```js
import { baseReactConfig } from '@lcbase/eslint-config-reactjs';

export default baseReactConfig;
```

#### 3. Add script to your `package.json`.

```json
{
  "scripts": {
    "lint": "eslint \"src/**/*.{js,jsx}*\"",
    "lint:fix": "pnpm lint --fix"
  }
}
```

#### 4. Combine with [@lcbase/prettier-config](https://www.npmjs.com/package/@lcbase/prettier-config) packages

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

```json
{
  "prettier": "@lcbase/prettier-config",
  "scripts": {
    "lint": "eslint \"src/**/*.{js,jsx}*\"",
    "lint:fix": "pnpm lint --fix",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```js
{
  "eslint.experimental.useFlatConfig": true,
  // if mono-repo remove below line comment
  // "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```

## Extends

You can extends this config by:

```js
import { extendBaseReactConfig } from '@lcbase/eslint-config-reactjs';

const config = extendBaseReactConfig({
  files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
  extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
});

export default config;
```
npm package: @lcbase/prettier-config
Description: Shared Prettier config
Author: @lcbase
Latest version: 2.0.1

# Prettier Config

This package provides Prettier's Config.

## Usage

#### 1. Install package

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

#### 2. Add `"prettier": "@lcbase/prettier-config"` to your `package.json`.

```json
{
  "prettier": "@lcbase/prettier-config"
}
```

#### 3. Add script to your `package.json`.

```json
{
  "scripts": {
    "prettify": "prettier src --check",
    "prettify:fix": "pnpm prettify --write"
  }
}
```

#### 4. Combine with `@lcbase/eslint-config-*` packages

```sh
pnpm add -D eslint @lcbase/eslint-config-*
```

```json
{
  "scripts": {
    "lint": "eslint src",
    "lint:fix": "pnpm lint --fix",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```json
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```
npm package: @lcbase/prettier-config-svelte
Description: Shared Prettier Svelte Config
Author: @lcbase
Latest version: 1.9.2

# Svelte Prettier Config

This package provides Svelte Prettier Config.

## Usage

#### 1. Install package

```sh
pnpm add -D prettier @lcbase/prettier-config-svelte
```

#### 2. Add `"prettier": "@lcbase/prettier-config-svelte"` to your `package.json`.

```json
{
  "prettier": "@lcbase/prettier-config-svelte"
}
```

#### 3. Add script to your `package.json`.

```json
{
  "scripts": {
    "prettify": "prettier src --check",
    "prettify:fix": "pnpm prettify --write"
  }
}
```

#### 4. Combine with `@lcbase/eslint-config-*` packages

```sh
pnpm add -D eslint @lcbase/eslint-config-*
```

```json
{
  "scripts": {
    "lint": "eslint src",
    "lint:fix": "pnpm lint --fix",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}
```

#### 5. Configuration your `VScode`.

In root your project's folder. Create `.vscode` folder with structure:

```sh
.vscode
  - settings.json
```

```json
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "[svelte]": {
    "editor.defaultFormatter": "svelte.svelte-vscode"
  },
  "eslint.validate": ["javascript", "javascriptreact", "svelte"],
  "prettier.documentSelectors": ["**/*.svelte"]
}
```

#### 6. Setup git hooks

- Install packages and global setup `husky`, `lint-staged`.

```sh
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
```

- Add the following to your `package.json`:

```json
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}
```
npm package: @lcdev556/react-select-input
Description: A simple customizable select input component for React.
Author: LCdev556
Latest version: 1.0.3

# react-custom-select-input

Un composant `SelectInput` React réutilisable, converti depuis un plugin jQuery existant.  
Fait partie du projet d'évaluation OpenClassrooms : conversion de plugins jQuery en composants React.

## Dépendances

Ce composant React nécessite les dépendances suivantes pour fonctionner correctement :

- **React** (version 19.1.0 supérieure)
- **Prop-types** (version 15.8.1 ou supérieure)
- **Bootstrap** (version 5.3.6 ou supérieure)

Assurez-vous de les avoir installées dans votre projet avant d'utiliser ce composant

## ✨ Fonctionnalités

- Affiche un `<select>` avec :
  - un label personnalisé
  - une option placeholder
  - une liste d’options dynamiques
  - la gestion des erreurs de validation
- Clés de valeur et de label personnalisables via `valueKey` et `labelKey`

## 📦 Installation

### Depuis npm :

```bash
npm i @lcdev556/react-select-input
```

## 📚 Utilisation

```jsx
import SelectInput from 'react-custom-select-input';

const options = [
  { label: 'Option 1', value: 'opt1' },
  { label: 'Option 2', value: 'opt2' },
];

function App() {
  const [selected, setSelected] = useState('');

  return (
    <SelectInput
      id="mySelect"
      name="mySelect"
      value={selected}
      onChange={(e) => setSelected(e.target.value)}
      label="Choose an option"
      placeholder="Select..."
      options={options}
      error=""
    />
  );
}
```

## 📖 Props

| Prop         | Type              | Obligatoire | Description |
|--------------|-------------------|:------------|:--------------|
| `id`         | `string`          | ✅          | Identifiant unique pour le champ |
| `name`       | `string`          | ✅          | Nom du champ |
| `value`      | `string` ou `number` | ✅       | Valeur sélectionnée |
| `onChange`   | `function`        | ✅          | Fonction déclenchée au changement |
| `label`      | `string`          | ✅          | Texte du label |
| `placeholder`| `string`          | ✅          | Texte affiché dans l'option par défaut |
| `options`    | `array` d'`object`| ✅          | Liste des options `{ label, value }` |
| `valueKey`   | `string`          | optionnel   | Clé pour la valeur dans chaque option (par défaut `value`) |
| `labelKey`   | `string`          | optionnel   | Clé pour le label dans chaque option (par défaut `label`) |
| `error`      | `string`          | optionnel   | Message d'erreur |

## 📜 Licence

MIT

---