open-index/open-npm huggingface dataset:
npm package: @seungwoo-kim/auto-issue
Description: Node.js CLI with Notion API
Author: SEUNGWOO KIM
Latest version: 1.0.4

# auto-issue

## Install & Development

```bash
npm i

# npm 배포
npm publish --access public

# auto-issue help
npm run dev -- help

# auto-issue setup
npm run dev -- setup

# auto-issue clear
npm run dev -- clear

# auto-issue start
npm run dev -- start

# auto-issue issues
npm run dev -- issues

# auto-issue issues with option
npm run dev -- issues --issue-type=bugfix
npm run dev -- issues -it bugfix
```

## Use

```bash
npm install -g @seungwoo-kim/auto-issue

which auto-issue

auto-issue help

auto-issue setup

auto-issue clear

auto-issue issues

auto-issue issues --issue-type=bugfix
auto-issue issues -it bugfix
```

## TODO

- [x] 이번 주에 작업한 티켓 목록 조회하기(parameter = ticketType)
- [ ] Command 파일 분리
npm package: @seungwoo321/eslint-plugin-standard-js
Description: eslint for standard js
Author: Seungwoo, Lee
Latest version: 1.0.1

# @seungwoo321/eslint-plugin-standard-js

ESLint 9.x용 Standard 규칙 기반의 린트 플러그인입니다.

## 설치

```bash
npm install -D eslint @seungwoo321/eslint-plugin-standard-js
```

## 사용법

> ✅ `recommended`: 코드 스타일과 린트 규칙을 모두 포함합니다.  
> ✨ `base`: 린트 규칙만 포함합니다. Prettier 규칙을 활용하고 싶은 경우에 적합합니다.  
> ✨ `stylistic`: 코드 스타일 규칙만 포함합니다.    

```js
// eslint.config.js
import { defineConfig } from 'eslint/config'
import standard from '@seungwoo321/eslint-plugin-standard-js'

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,jsx,tsx}'],
    extends: [
      ...standard.configs.recommended
    ]
  }
])
```

> ✅ 기본 설정을 사용하면서 특정 규칙만 커스터마이즈할 수 있습니다.  
> ✨ 프로젝트에 맞는 규칙을 세밀하게 조정하고 싶다면 다음 방식이 유용합니다.

```js
// eslint.config.js
import { defineConfig } from 'eslint/config'
import standardjs from '@seungwoo321/eslint-plugin-standard-js'

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,jsx,tsx}'],
    ignores: ['lib/**/*'],
    extends: [
      ...standard.configs.standardjs
    ],
    rules: {
      // ✅ 최대 라인 길이 제한
      '@stylistic/max-len': ['error', {
        code: 80,
        ignoreComments: true,
        ignoreUrls: true,
        ignoreStrings: true,
        ignoreTemplateLiterals: true,
        ignoreRegExpLiterals: true
      }],
      // ✅ 세미콜론 규칙 비활성화
      '@stylistic/semi': 'off',
      // ✅ 미사용 변수는 경고로만 표시
      'no-unused-vars': 'warn'
    }
  }
])

```

## IDE 연동 (VSCode, Cursor)

> ✅ stylistic가 포함된 규칙을 사용한다면, 자동 포맷팅을 위해 아래 설정을 적용하세요.
> ✨ prettier를 사용하는 규칙을 사용한다면, 자동 포맷팅을 위해 [@seungwoo321/prettier-config](../prettier-config/)를 참고하세요.  

```jsonc
// .vscode/settings.json
{
  "editor.tabSize": 2,
  "editor.defaultFormatter": null,
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "eslint.run": "onType",
  "eslint.format.enable": true,
  "eslint.lintTask.enable": true,
  "eslint.useESLintClass": true,
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript", 
    "typescriptreact"
  ],
  "eslint.useFlatConfig": true,
  
  // JavaScript/TypeScript 기본 포맷팅 비활성화 (ESLint가 담당)
  "javascript.format.enable": false,
  "typescript.format.enable": false
}
```
npm package: @seungwoo321/eslint-plugin-standard-jsx
Description: eslint for standard jsx
Author: Seungwoo, Lee
Latest version: 1.0.1

# @seungwoo321/eslint-plugin-standard-jsx

ESLint 9.x용 Standard 규칙 기반의 린트 플러그인입니다.

## 설치

```bash
npm install -D eslint @seungwoo321/eslint-plugin-standard-js @seungwoo321/eslint-plugin-standard-jsx
```

## 사용법

> ✅ `recommended`: 코드 스타일과 린트 규칙을 모두 포함합니다.  
> ✨ `base`: 린트 규칙만 포함합니다. Prettier 규칙을 활용하고 싶은 경우에 적합합니다.  
> ✨ `stylistic`: 코드 스타일 규칙만 포함합니다.    

```js
// eslint.config.js
import { defineConfig } from 'eslint/config'
import standardjs from '@seungwoo321/eslint-plugin-standard-js'
import standardjsx from '@seungwoo321/eslint-plugin-standard-jsx'

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,jsx,tsx}'],
    extends: [
      ...standardjs.configs.recommended,
      ...standardjsx.configs.recommended
    ]
  }
])
```

> ✅ 기본 설정을 사용하면서 특정 규칙만 커스터마이즈할 수 있습니다.  
> ✨ 프로젝트에 맞는 규칙을 세밀하게 조정하고 싶다면 다음 방식이 유용합니다.

```js
// eslint.config.js
import { defineConfig } from 'eslint/config'
import standardjs from '@seungwoo321/eslint-plugin-standard-jsx'
import standardjsx from '@seungwoo321/eslint-plugin-standard-jsx'

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,jsx,tsx}'],
    ignores: ['lib/**/*'],
    extends: [
      ...standard.configs.recommended
    ],
    rules: {
      // 최대 라인 길이 제한
      '@stylistic/max-len': ['error', {
        code: 80,
        ignoreComments: true,
        ignoreUrls: true,
        ignoreStrings: true,
        ignoreTemplateLiterals: true,
        ignoreRegExpLiterals: true
      }],
      // 세미콜론 규칙 비활성화
      '@stylistic/semi': 'off',
      // 미사용 변수는 경고로만 표시
      'no-unused-vars': 'warn',
      // ✅ 중괄호 내부 공백 허용 안 함
      'react/jsx-curly-spacing': ['error', { when: 'never', children: true }],
      // ✅ 등호 주위 공백 없음
      'react/jsx-equals-spacing': ['error', 'never'],
      // ✅ 닫는 태그 괄호는 속성 다음 줄에
      'react/jsx-closing-bracket-location': ['error', 'line-aligned']
    }
  }
])
```

## IDE 연동 (VSCode, Cursor)

> ✅ stylistic가 포함된 규칙을 사용한다면, 자동 포맷팅을 위해 아래 설정을 적용하세요.
> ✨ prettier를 사용하는 규칙을 사용한다면, 자동 포맷팅을 위해 [@seungwoo321/prettier-config](../prettier-config/)를 참고하세요.  

```jsonc
// .vscode/settings.json
{
  "editor.tabSize": 2,
  "editor.defaultFormatter": null,
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "eslint.run": "onType",
  "eslint.format.enable": true,
  "eslint.lintTask.enable": true,
  "eslint.useESLintClass": true,
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript", 
    "typescriptreact"
  ],
  "eslint.useFlatConfig": true,
  
  // JavaScript/TypeScript 기본 포맷팅 비활성화 (ESLint가 담당)
  "javascript.format.enable": false,
  "typescript.format.enable": false
}
```
npm package: @seungwoo321/prettier-config
Description: prettier config
Author: Seungwoo, Lee
Latest version: 1.0.1

# @seungwoo321/prettier-config

Standard 스타일을 기반으로, 개인 취향에 맞게 커스터마이징한 Prettier 설정입니다.

## 설치

```bash
npm install @seungwoo321/prettier-config -D
```

## 사용법

.prettierrc.js 파일을 생성하고 아래와 같이 설정합니다:

```js
import prettierConfig from '@seungwoo321/prettier-config'

/**
 * @type {import("prettier").Config}
 */
const config = {
  ...prettierConfig
}

export default config
```

또는, package.json에 직접 추가할 수도 있습니다:

```json
"prettier": "@seungwoo321/prettier-config"
```

## IDE 연동 (VSCode)

Prettier를 자동 포맷터로 사용하려면 아래와 같이 설정하세요:

.vscode/settings.json:

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

💡 코드 품질 유지를 위해 `@seungwoo321/eslint-plugin-standard-js` base 규칙과 함께 사용하는 것을 권장합니다.
npm package: @seungwoo321/vue-plotly
Description: <p align="center"><img width="140"src="https://raw.githubusercontent.com/David-Desmaisons/vue-plotly/master/example/assets/logo.png"></p>
Latest version: 1.1.0


<p align="center"><img width="140"src="https://raw.githubusercontent.com/David-Desmaisons/vue-plotly/master/example/assets/logo.png"></p>

# vue-plotly
[![GitHub open issues](https://img.shields.io/github/issues/David-Desmaisons/vue-plotly.svg)](https://github.com/David-Desmaisons/vue-plotly/issues)
[![CircleCI](https://circleci.com/gh/David-Desmaisons/vue-plotly.svg?style=shield)](https://circleci.com/gh/David-Desmaisons/vue-plotly)
[![codecov](https://codecov.io/gh/David-Desmaisons/vue-plotly/branch/master/graph/badge.svg)](https://codecov.io/gh/David-Desmaisons/vue-plotly)
[![Npm version](https://img.shields.io/npm/v/vue-plotly.svg)](https://www.npmjs.com/package/vue-plotly)
[![MIT License](https://img.shields.io/github/license/David-Desmaisons/vue-plotly.svg)](https://github.com/David-Desmaisons/vue-plotly/blob/master/LICENSE)

<h2>Thin vue wrapper for <a
              href="https://plot.ly/javascript/"
              target="_blank"
            >plotly.js</a></h2>
<span>It provides:</span>
<ul>
  <li>all plotly.js methods and events</li>
  <li>data reactivity</li>
  <li>Redraw on resizing</li>
</ul>

![example](./example/assets/demo.gif)

## Live example
https://david-desmaisons.github.io/vue-plotly/

## Usage
```HTML
<Plotly :data="data" :layout="layout" :display-mode-bar="false"></Plotly>
```
```javascript
import { Plotly } from 'vue-plotly'

export default {
  components: {
    Plotly
  },
  data() {
    return {
      data:[{
        x: [1,2,3,4],
        y: [10,15,13,17],
        type:"scatter"
      }],
      layout:{
        title: "My graph"
      }
    }
  }
}
```
## API

#### Props 

- `data` ***Array*** (*optional*) 

  [Data](https://plot.ly/javascript/reference/) to be displayed

- `layout` ***Object*** (*optional*) 

  Graphic [layout](https://plot.ly/javascript/reference/#layout)

- `id` ***String*** (*optional*) 

  Id of the root HTML element of the component.

- Others:

  Plotly component implements the [transparent wrapper pattern](https://zendev.com/2018/05/31/transparent-wrapper-components-in-vue.html):<br>All other props will be passed as plotly graphic [option](https://plot.ly/javascript/configuration-options/).

## Installation
```
npm install vue-plotly
```

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Run your tests
```
npm run test
```

### Lints and fixes files
```
npm run lint
```

### Run your unit tests
```
npm run test:unit
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
npm package: @seungyeop-lee/website-to-markdown
Description: 웹 사이트 URL을 입력받아 핵심 본문을 추출하고 Markdown으로 변환하는 CLI 도구 및 라이브러리.
Latest version: 0.4.0

# wtm - Website to Markdown

웹 사이트 URL을 입력받아 핵심 본문을 추출하고 Markdown으로 변환하는 CLI 도구 및 라이브러리.

### 주요 기능

- SPA/JavaScript 렌더링 사이트 지원 (Playwright + Stealth 플러그인, `--wait` 옵션으로 하이드레이션 대기)
- [mdream](https://github.com/nichochar/mdream) 기반 HTML → Markdown 변환 (본문 추출, 노이즈 필터링, Tailwind 처리)
- LLM 후처리를 통한 마크다운 정제 (`--llm-refine`, 선택 사항)
- LLM 기반 다국어 번역 (`--llm-translate <lang>`, 선택 사항)
- YAML frontmatter 자동 생성 (url, createdAt)
- 다중 페이지 크롤링 (`wtm crawl`) — 링크 추적, 스코프 필터링, 병렬 처리
- URL 목록 배치 변환 (`wtm batch`) — 지정된 URL만 일괄 변환
- Chrome CDP 연결 (`--use-chrome`) — 실행 중인 Chrome의 인증 세션 활용

---

## 설치

```bash
# CLI (Bun 필수, 글로벌 설치)
bun add -g @seungyeop-lee/website-to-markdown

# 라이브러리 (Node.js 18+)
npm install @seungyeop-lee/website-to-markdown
```

> **참고:** 설치 시 `postinstall` 스크립트가 Playwright Chromium을 자동 다운로드합니다.
> `--ignore-scripts` 옵션으로 설치한 경우 `npx playwright install chromium`을 수동 실행해 주세요.

## CLI 사용법

```bash
# 단일 페이지 변환
wtm convert https://example.com/article

# LLM 정제 + 번역
wtm convert --llm-refine --llm-translate ko https://example.com/article

# 파일로 저장
wtm convert -o output.md https://example.com/article

# 크롤링 (링크 추적)
wtm crawl --url https://example.com/docs/intro --output-dir ./docs

# 배치 변환 (URL 목록)
wtm batch --urls urls.txt --output-dir ./docs
```

LLM 기능 사용 시 환경변수 설정이 필요합니다. 전체 옵션과 상세 사용법은 [MANUAL.md](./MANUAL.md)를 참조하세요.

## 라이브러리 사용법

### wtm() — 단일 페이지 변환

```ts
import { wtm } from '@seungyeop-lee/website-to-markdown';

// 기본 변환 (LLM 불필요)
const result = await wtm('https://example.com/article');
console.log(result.markdown);    // Markdown 문자열
console.log(result.metadata);    // { url, origin, pathname, title, links }

// LLM 정제 + 번역
const refined = await wtm('https://example.com/article', {
  llmRefine: true,
  llmTranslate: 'ko',
  llmConfig: {
    baseUrl: 'https://api.openai.com/v1',
    apiKey: 'your-api-key',
    model: 'gpt-4o-mini',
  },
});
```

### wtmCrawl() — 링크 추적 크롤링

```ts
import { wtmCrawl } from '@seungyeop-lee/website-to-markdown';

await wtmCrawl('https://example.com/docs/intro', {
  outputDir: './docs',
  maxLinkDepth: 3,
  concurrency: 3,
});
```

### wtmUrls() — URL 목록 배치 변환

```ts
import { wtmUrls } from '@seungyeop-lee/website-to-markdown';

await wtmUrls(
  ['https://example.com/page1', 'https://example.com/page2'],
  { outputDir: './docs' },
);
```

전체 옵션은 [MANUAL.md](./MANUAL.md)를 참조하세요.

## 환경변수

LLM 기능(`--llm-refine`, `--llm-translate`) 사용 시 필요합니다.
실행 디렉토리에 `.env` 파일을 생성하면 Bun이 자동으로 로드합니다.

| 변수 | 설명 |
|------|------|
| `OPENAI_API_BASE_URL` | OpenAI API 베이스 URL |
| `OPENAI_API_KEY` | OpenAI API 키 |
| `OPENAI_API_MODEL` | 모델명 |