open-index/open-npm huggingface dataset:
npm package: @jeccoman/doodle-cli
Description: CLI tool for generating boilerplate code For Frontend Development
Author: iPFSoftwares
Latest version: 1.0.1

# 🚀 Doodle CLI

[![npm version](https://badge.fury.io/js/@jeccoman%2Fdoodle-cli.svg)](https://www.npmjs.com/package/@jeccoman/doodle-cli)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js Version](https://img.shields.io/node/v/@jeccoman/doodle-cli.svg)](https://nodejs.org)

A powerful CLI tool for generating boilerplate code for frontend development . Built specifically for Remix.js and React Router v7 projects with TypeScript, Tailwind CSS, and modern best practices.

## ✨ Features

- 🏗️ **Project Scaffolding** - Initialize complete project structure following iPFSoftwares guidelines
- 🛣️ **Route Generation** - Create Remix routes with loaders, actions, error boundaries, and security headers
- 🔌 **API Layer Generation** - Generate complete 3-layer API architecture (Client, Schema, Hooks)
- 🧩 **Component Generation** - Create React components with TypeScript, tests, and Tailwind styling
- 🪝 **Hook Generation** - Generate custom hooks for various use cases
- 🔒 **Security First** - Built-in security best practices including input validation, CSRF protection, and secure headers
- 📝 **TypeScript** - Full TypeScript support with proper typing
- 🧪 **Test Ready** - Generates test files alongside components

## 📦 Installation

```bash
# Global installation (recommended)
npm install -g @jeccoman/doodle-cli

# Or using npx (no installation required)
npx @jeccoman/doodle-cli init

# Initialize a new project
doodle init

# Generate a route
doodle generate route --name user-profile

# Generate API layers
doodle g api -n products

# Generate a component
doodle g component -n DataTable

# Generate a custom hook
doodle g hook -n useAuth
npm package: @jeckyhuang/designer-v3
Description: 二次封装element-plus组件
Latest version: 1.0.5

# Vue 3 + TypeScript + Vite

This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.

## Recommended IDE Setup

- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)

## Type Support For `.vue` Imports in TS

Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's Take Over mode by following these steps:

1. Run `Extensions: Show Built-in Extensions` from VS Code's command palette, look for `TypeScript and JavaScript Language Features`, then right click and select `Disable (Workspace)`. By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
2. Reload the VS Code window by running `Developer: Reload Window` from the command palette.

You can learn more about Take Over mode [here](https://github.com/johnsoncodehk/volar/discussions/471).
npm package: @jeclark/css-reset
Description: Minimal CSS reset for modern needs
Author: James Clark
Latest version: 1.0.4

# css-reset

Based on [Josh's Custom CSS Reset](https://www.joshwcomeau.com/css/custom-css-reset/) with input from [Chris Coyier](https://css-tricks.com/notes-on-josh-comeaus-custom-css-reset/), [Andy Bell](https://piccalil.li/blog/a-modern-css-reset/) and [Elad Shechter](https://css-tricks.com/an-interview-with-elad-shechter-on-the-new-css-reset/). (Via articles... not personally)

## What does it do?

It is a minimal, unopinionated, CSS reset that irons out some of the CSS qurirks before you start. Both the raw file and a version minified using PostCSS cssnano are available.

## How to use it?

The package name on NPM is '@jeclark/css-reset'.

### Using UNPKG

You can import the file into any HTML file using UNPKG with:

```html
<link rel="stylesheet" href="https://unpkg.com/@jeclark/css-reset/reset.css" />
```

Or for the minified version:

```html
<link
  rel="stylesheet"
  href="https://unpkg.com/@jeclark/css-reset/reset.min.css"
/>
```

### Installing with NPM

Install the package and import before the regular styles of the project.

```html
<link rel="stylesheet" href="./node_modules/@jeclark/css-reset/reset.css" />
```

```html
<link rel="stylesheet" href="./node_modules/@jeclark/css-reset/reset.min.css" />
```

### In a React project

Install the package and insert it into the main entry file.

```js
import '@jeclark/css-reset/reset.css';
```

### Using SCSS

Import inside a file like index.scss or main.scss that imports all other css / scss files.

```css
@import './node_modules/@jeclark/css-reset/reset.css';
```

### Download the file

You can download the [CSS file](https://raw.githubusercontent.com/j-e-clark/css-reset/main/reset.css) or the [minified file](https://raw.githubusercontent.com/j-e-clark/css-reset/main/reset.min.css) and use it in your own project.
npm package: @ject/callable
Description: Make class callable
Author: Hoyeung Wong
Latest version: 0.1.2

## @ject/callable
Make class callable.

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/callable
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/callable
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/callable
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/callable
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/callable
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/callable
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/vect
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/vect

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/callable
[url-pp]: https://packagephobia.now.sh/result?p=@ject/callable
[url-github]: https://github.com/hoyeungw/vect

## Features

- Make class callable

## Install
```console
$ npm install @ject/callable
```

## Usage
```js
import { Callable } from '@ject/callable'
// inherit the class Callable
class CallableClass extends Callable {
  constructor (a, b) {
    super(row => this.a + this.b + row)
    this.a = a
    this.b = b
  }
}

const callableClass = new CallableClass(5, 4)
console.log(callableClass(3)) // 12

```

## Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/chore
Description: Chore class
Author: Hoyeung Wong
Latest version: 0.1.2

## @ject/chore
Make class method.

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/chore
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/chore
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/chore
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/chore
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/chore
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/chore
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/vect
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/vect

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/chore
[url-pp]: https://packagephobia.now.sh/result?p=@ject/chore
[url-github]: https://github.com/hoyeungw/vect

## Features

- Make class method

## Install
```console
$ npm install @ject/chore
```

## Usage
```js
import { Callable } from '@ject/chore'
// inherit the class Callable
class CallableClass extends Callable {
  constructor (a, b) {
    super(row => this.a + this.b + row)
    this.a = a
    this.b = b
  }
}

const methodClass = new CallableClass(5, 4)
console.log(methodClass(3)) // 12

```

## Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/method
Description: Method class
Author: Hoyeung Wong
Latest version: 0.0.14

## @ject/method
Make class method.

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/method
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/method
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/method
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/method
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/method
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/method
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/vect
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/vect

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/method
[url-pp]: https://packagephobia.now.sh/result?p=@ject/method
[url-github]: https://github.com/hoyeungw/vect

## Features

- Make class method

## Install
```console
$ npm install @ject/method
```

## Usage
```js
import { Callable } from '@ject/method'
// inherit the class Callable
class CallableClass extends Callable {
  constructor (a, b) {
    super(row => this.a + this.b + row)
    this.a = a
    this.b = b
  }
}

const methodClass = new CallableClass(5, 4)
console.log(methodClass(3)) // 12

```

## Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/mixin
Description: Create mixin class inherits from multiple bases
Author: Hoyeung Wong
Latest version: 0.1.2

## @ject/mixin
Make class mixin.

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/mixin
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/mixin
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/mixin
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/mixin
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/mixin
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/mixin
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/vect
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/vect

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/mixin
[url-pp]: https://packagephobia.now.sh/result?p=@ject/mixin
[url-github]: https://github.com/hoyeungw/vect

## Features

- Make class mixin

## Install
```console
$ npm install @ject/mixin
```

## Usage
```js
import { Callable } from '@ject/mixin'
// inherit the class Callable
class CallableClass extends Callable {
  constructor (a, b) {
    super(row => this.a + this.b + row)
    this.a = a
    this.b = b
  }
}

const callableClass = new CallableClass(5, 4)
console.log(callableClass(3)) // 12

```

## Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/noop
Description: A noop function: ()=>{}
Author: Hoyeung Wong
Latest version: 0.1.2

# @ject/noop

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/noop
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/noop
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/noop
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/noop
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/noop
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/noop
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/ject
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/ject

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/noop
[url-pp]: https://packagephobia.now.sh/result?p=@ject/noop
[url-github]: https://github.com/hoyeungw/ject

##### A function that return the sole parameter itself

#### Install
```console
$ npm install @ject/oneself
```

#### Usage
```js
import { noop } from '@ject/noop'

noop() // undefined
```

#### Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/oneself
Description: Util for functions
Author: Hoyeung Wong
Latest version: 0.1.2

# @ject/oneself

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/oneself
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/oneself
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/oneself
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/oneself
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/oneself
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/oneself
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/ject
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/ject

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/oneself
[url-pp]: https://packagephobia.now.sh/result?p=@ject/oneself
[url-github]: https://github.com/hoyeungw/ject

##### A function that return the sole parameter itself

#### Install
```console
$ npm install @ject/oneself
```

#### Usage
```js
import { oneself } from '@ject/oneself'

oneself(128) // 128
```

#### Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/pipe
Description: Util for functions
Author: Hoyeung Wong
Latest version: 0.1.2

# @ject/pipe

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/pipe
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/pipe
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/pipe
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/pipe
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/pipe
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/pipe
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/ject
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/ject

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/pipe
[url-pp]: https://packagephobia.now.sh/result?p=@ject/pipe
[url-github]: https://github.com/hoyeungw/ject

##### Util for array

#### Features

- ES2015 syntax

#### Install
```console
$ npm install @ject/pipe
```

#### Usage
```js
```

#### Meta
[LICENSE (MIT)](LICENSE)
npm package: @ject/rename
Description: Rename a function
Author: Hoyeung Wong
Latest version: 0.1.2

## @vect/renamer
Rename a function

[![npm version][badge-npm-version]][url-npm]
[![npm download monthly][badge-npm-download-monthly]][url-npm]
[![npm download total][badge-npm-download-total]][url-npm]
[![npm dependents][badge-npm-dependents]][url-github]
[![npm license][badge-npm-license]][url-npm]
[![pp install size][badge-pp-install-size]][url-pp]
[![github commit last][badge-github-last-commit]][url-github]
[![github commit total][badge-github-commit-count]][url-github]

[//]: <> (Shields)
[badge-npm-version]: https://flat.badgen.net/npm/v/@ject/rename
[badge-npm-download-monthly]: https://flat.badgen.net/npm/dm/@ject/rename
[badge-npm-download-total]:https://flat.badgen.net/npm/dt/@ject/rename
[badge-npm-dependents]: https://flat.badgen.net/npm/dependents/@ject/rename
[badge-npm-license]: https://flat.badgen.net/npm/license/@ject/rename
[badge-pp-install-size]: https://flat.badgen.net/packagephobia/install/@ject/rename
[badge-github-last-commit]: https://flat.badgen.net/github/last-commit/hoyeungw/vect
[badge-github-commit-count]: https://flat.badgen.net/github/commits/hoyeungw/vect

[//]: <> (Link)
[url-npm]: https://npmjs.org/package/@ject/rename
[url-pp]: https://packagephobia.now.sh/result?p=@ject/rename
[url-github]: https://github.com/hoyeungw/vect

## Features

- Rename a function

## Install
```console
$ npm install @ject/rename
```

## Usage
```js
import { rename } from '@ject/rename'

const func = x => x
console.log(func.name) // func
rename(func, 'not-a-method')
console.log(func.name) // not-a-method

```

## Meta
[LICENSE (MIT)](LICENSE)