open-index/open-npm huggingface dataset:
npm package: @minjs/cdn-node-ssh
Description: 上传资源到CDN服务器
Author: zhangmin 303890562@qq.com
Latest version: 1.0.2

# cnd-node-ssh

上传资源文件到Linux服务器

## Installation
```
npm install @minjs/cdn-node-ssh
```

## Useage
```
const AutoUpload = require('@minjs/cdn-node-ssh')

const upload = new AutoUpload({
  host: '0.0.0.0',
  username: 'root',
  privateKey: '/.ssh/id_rsa',
  local: 'dist',
  remote: '/srv/www'
})

upload.start()
```
npm package: @minjs/toolkit
Description: some javascript toolkit
Author: 303890562@qq.com
Latest version: 1.0.3

## 常用的工具库

- 唤醒app：wakeApp
- 本地存储：storage cookie
- 日期：date2json dateFormat
- 网络请求：jsonp
- 单位换算：px2rem
- 碰撞检测：hitTestCircle hitTestContain hitTestRectangle
- 设备相关：getDeviceType getBroEnv getMobileType getNetwork

- 获取url参数：getUrlParameter
- 二叉树：BinaryTree
- 事件监听：EventEmiter

- 贝塞尔曲线 CubicBezier

## use

```
import { xxx } from '@minjs/toolkit'

xxx()
```
npm package: @minjs1cn/js-paste
Description: onPaste and getDataTransferItem
Author: mins1cn
Latest version: 1.0.0

# js-paste

监听用户粘贴行为，获取数据

## Usage

安装

```
yarn add @minjs1cn/js-paste
```

使用

```javascript
import paste from '@minjs1cn/js-paste'

function createImage(file) {
  const image = new Image()
  image.src = URL.createObjectURL(file)
  return image
}

function createText(text) {
  const p = document.createElement('p')
  p.textContent = text
  return p
}

const p = paste()

p.on(result => {
  console.log(result)
  const { kind, data } = result
  if (kind === 'file') {
    // 文件（图片）
    document.body.appendChild(createImage(data))
  } else {
    // 字符串
    document.body.appendChild(createText(data))
  }
})
```
npm package: @minjunkwon/applyhome-api-mcp-server
Description: MCP server for 청약홈 청약접수 경쟁률 및 특별공급 신청현황 조회 서비스 API
Author: minjunkwon
Latest version: 1.0.1

# 청약홈 API MCP 서버

청약홈 청약접수 경쟁률 및 특별공급 신청현황 조회 서비스를 위한 MCP (Model Context Protocol) 서버입니다.

## 설치 및 실행

```bash
# 의존성 설치
npm install

# TypeScript 빌드
npm run build

# 서버 실행
npm start

# 개발 모드 실행
npm run dev
```

## 사용 가능한 도구 (Tools)

### 1. get_apt_competition
APT 분양정보/경쟁률 조회
- 매개변수: house_manage_no, pblanc_no, reside_secd

### 2. get_urban_officetel_competition  
오피스텔/도시형/민간임대/생활숙박시설 분양정보/경쟁률 조회
- 매개변수: house_manage_no, pblanc_no

### 3. get_public_private_rental_competition
공공지원 민간임대 분양정보/경쟁률 조회
- 매개변수: house_manage_no, pblanc_no, spsply_knd_code

### 4. get_cancel_resupply_competition
취소후재공급 분양정보/경쟁률 조회
- 매개변수: house_manage_no, pblanc_no

### 5. get_remaining_household_competition
잔여세대 분양정보/경쟁률 조회
- 매개변수: house_manage_no, pblanc_no, remndr_hshld_pblanc_tycd

### 6. get_apt_score
APT 분양정보 당첨가점 조회
- 매개변수: house_manage_no, pblanc_no, reside_secd

### 7. get_optional_supply_competition
임의공급 분양정보/경쟁률 조회
- 매개변수: house_manage_no, pblanc_no

### 8. get_apt_special_supply_status
APT 특별공급 신청현황 조회
- 매개변수: house_manage_no, pblanc_no

## 코드 참조

### 거주구분 코드
- 01: 해당지역
- 02: 기타지역  
- 03: 기타경기

### 공급유형 구분 코드
- 00: 일반공급
- SY: 청년
- SN: 신혼부부
- SO: 고령자

### 사전/사후 구분 코드
- 01: 사후
- 02: 사전

## 💰 중요: 금액 단위 안내

**청약홈 API에서 제공하는 분양가 관련 수치는 모두 만원 단위입니다.**

Claude를 통해 이 API를 사용할 때, Claude는 다음과 같이 금액을 해석합니다:
- API 응답값: `19800` → **1억 9천 8백만원**
- API 응답값: `85000` → **8억 5천만원**
- API 응답값: `123456` → **12억 3천 4백 5십 6만원**

### Claude 사용 시 프롬프트 예시
```
"청약홈 API의 분양가 정보를 조회해주세요. 
금액은 만원 단위이므로 읽기 쉬운 한국식 표현으로 변환해서 알려주세요."
```

## MCP 설정

Claude Desktop의 설정 파일에 다음과 같이 추가:

```json
{
  "mcpServers": {
    "applyhome-api": {
      "command": "npx",
      "args": ["@minjunkwon/applyhome-api-mcp-server"]
    }
  }
}
```

### NPM 패키지로 설치
```bash
# 전역 설치
npm install -g @minjunkwon/applyhome-api-mcp-server

# 또는 npx로 직접 실행 (권장)
npx @minjunkwon/applyhome-api-mcp-server
```
npm package: @minjunkwon/houselotto-mcp-server
Description: MCP server for Korean Housing Lottery (청약홈) API - Provides access to Korean housing lottery information
Author: MINJUN
Latest version: 1.0.1

# 청약홈 분양정보 MCP 서버

[![npm version](https://badge.fury.io/js/@minjunkwon%2Fhouselotto-mcp-server.svg)](https://badge.fury.io/js/@minjunkwon%2Fhouselotto-mcp-server)

한국부동산원의 청약홈 분양정보 조회 서비스를 MCP(Model Context Protocol)로 제공하는 서버입니다.

## 설치

```bash
npm install -g @minjunkwon/houselotto-mcp-server
```

## Claude Desktop 설정

Claude Desktop의 설정 파일(`~/Library/Application Support/Claude/claude_desktop_config.json`)에 다음과 같이 추가하세요:

```json
{
  "mcpServers": {
    "houselotto": {
      "command": "npx",
      "args": ["@minjunkwon/houselotto-mcp-server"]
    }
  }
}
```

또는 글로벌 설치 후:

```json
{
  "mcpServers": {
    "houselotto": {
      "command": "houselotto-mcp-server"
    }
  }
}
```

## 사용 가능한 도구

### 1. apt_detail - APT 분양정보 상세조회
- 아파트, 민간사전청약, 신혼희망타운의 분양정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no, house_secd, house_dtl_secd, subscrpt_area_code, subscrpt_area_code_nm, rcrit_pblanc_de_start, rcrit_pblanc_de_end

### 2. urbty_ofctl_detail - 오피스텔/도시형/민간임대 분양정보 상세조회
- 오피스텔, 도시형생활주택, 민간임대, 생활숙박시설의 분양정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no, search_house_secd, subscrpt_area_code, rcrit_pblanc_de_start, rcrit_pblanc_de_end

### 3. remndr_detail - APT 잔여세대 분양정보 상세조회
- 무순위 및 불법행위 재공급 잔여세대 정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no, house_secd, subscrpt_area_code, rcrit_pblanc_de_start, rcrit_pblanc_de_end

### 4. apt_model - APT 분양정보 주택형별 상세조회
- 특정 아파트의 주택형별 상세 정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no

### 5. urbty_ofctl_model - 오피스텔/도시형 주택형별 상세조회
- 특정 오피스텔/도시형의 주택형별 정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no

### 6. remndr_model - APT 잔여세대 주택형별 상세조회
- 특정 잔여세대의 주택형별 정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no

### 7. pbl_pvt_rent_detail - 공공지원 민간임대 분양정보 상세조회
- 공공지원 민간임대 분양정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no, subscrpt_area_code, rcrit_pblanc_de_start, rcrit_pblanc_de_end

### 8. pbl_pvt_rent_model - 공공지원 민간임대 주택형별 상세조회
- 공공지원 민간임대의 주택형별 정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no

### 9. opt_detail - 임의공급 분양정보 상세조회
- 임의공급 분양정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no, subscrpt_area_code, rcrit_pblanc_de_start, rcrit_pblanc_de_end

### 10. opt_model - 임의공급 주택형별 상세조회
- 임의공급의 주택형별 정보를 조회합니다.
- 파라미터: house_manage_no, pblanc_no

## 지역 코드

- 서울: 100
- 강원: 200
- 대전: 300
- 충남: 312
- 세종: 338
- 충북: 360
- 인천: 400
- 경기: 410
- 광주: 500
- 전남: 513
- 전북: 560
- 부산: 600
- 경남: 621
- 울산: 680
- 제주: 690
- 대구: 700
- 경북: 712

## 주택구분 코드

### APT 관련
- 01: APT
- 09: 민간사전청약
- 10: 신혼희망타운

### 오피스텔/도시형 관련
- 0201: 도시형생활주택
- 0202: 오피스텔
- 0203: 민간임대
- 0204: 생활형숙박시설

### 기타
- 04: 무순위 (잔여세대)
- 06: 불법행위 재공급
- 03: 공공지원민간임대
- 11: 임의공급

## 날짜 형식

- APT 관련: YYYY-MM-DD 형식
- 공공지원민간임대, 임의공급: YYYYMMDD 형식

## 금액 정보 해석

이 서비스에서 제공하는 **분양가 정보는 만원 단위**입니다.

### 예시
- `198,000` → **1억 9천 8백만원**
- `350,000` → **3억 5천만원** 
- `125,500` → **1억 2천 5백 50만원**

### 계산 방법
표시된 숫자에 **만원(10,000원)**을 곱하면 실제 금액이 됩니다.

## 사용 예시

Claude Desktop에서 다음과 같이 질문할 수 있습니다:

- "서울 지역의 최근 APT 분양정보를 조회해줘"
- "주택관리번호 2022000248인 아파트의 상세정보를 알려줘"
- "경기도의 오피스텔 분양정보를 찾아줘"
- "최근 공공지원 민간임대 정보를 조회해줘"
npm package: @minjunkwon/korea-welfare-mcp-server
Description: MCP server for Korean Central Government Welfare Services - provides intelligent search and information retrieval for Korean social welfare programs
Author: MINJUN
Latest version: 1.1.1

# Korea Welfare MCP Server

한국 중앙정부 복지서비스 정보를 조회할 수 있는 MCP (Model Context Protocol) 서버입니다.

## 개요

이 MCP 서버는 한국 공공데이터포털에서 제공하는 중앙부처 복지서비스 API를 활용하여 복지서비스 목록 조회 및 상세 정보를 제공합니다. Claude와 같은 AI 어시스턴트가 한국의 복지 정보를 실시간으로 조회하고 사용자에게 적절한 복지서비스를 안내할 수 있도록 돕습니다.

## 기능

### 1. 복지서비스 목록 조회 (`search_welfare_services`)
- 생애주기별 복지서비스 검색 (영유아, 아동, 청소년, 청년, 중장년, 노년, 임신·출산)
- 가구유형별 검색 (다문화·탈북민, 다자녀, 보훈대상자, 장애인, 저소득, 한부모·조손)
- 관심주제별 검색 (신체건강, 정신건강, 생활지원, 주거, 일자리, 문화·여가 등)
- 검색어 기반 조회
- 나이별 필터링
- 온라인 신청 가능 여부 필터링
- 페이징 지원

### 2. 복지서비스 상세 조회 (`get_welfare_detail`)
- 서비스 ID를 통한 상세 정보 조회
- 대상자 상세 내용, 선정 기준, 급여 서비스 내용
- 문의처, 관련 사이트, 근거 법령, 서식/자료 링크 제공

### 3. 코드 정의 조회 (`get_code_definitions`)
- API에서 사용되는 코드 체계 조회
- 생애주기, 가구유형, 관심주제 코드 매핑

## 설치 및 설정

### 1. 패키지 설치
```bash
npm install
```

### 2. API 키 설정
`src/api.ts` 파일에서 `SERVICE_KEY` 값을 실제 공공데이터포털에서 발급받은 서비스 키로 교체하세요.

```typescript
const SERVICE_KEY = 'YOUR_ACTUAL_SERVICE_KEY_HERE';
```

### 3. 빌드
```bash
npm run build
```

### 4. 실행
```bash
npm start
```

또는 개발 모드로 실행:
```bash
npm run dev
```

## MCP 설정

Claude Desktop이나 다른 MCP 클라이언트에서 이 서버를 사용하려면 설정 파일에 다음과 같이 추가하세요:

```json
{
  "mcpServers": {
    "korea-welfare": {
      "command": "node",
      "args": ["/path/to/korea-welfare-mcp-server/dist/index.js"]
    }
  }
}
```

## 사용 예시

### 복지서비스 검색
```typescript
// 영유아 대상 복지서비스 검색
search_welfare_services({
  lifeCycle: "001", // 영유아
  numOfRows: 20,
  orderBy: "popular"
})

// 저소득층 대상 일자리 관련 서비스 검색
search_welfare_services({
  householdType: "050", // 저소득
  interestTheme: "050", // 일자리
  onlineApplicationAvailable: "Y"
})
```

### 상세 정보 조회
```typescript
// 특정 서비스의 상세 정보 조회
get_welfare_detail({
  serviceId: "WLF00001188"
})
```

## API 매개변수

### 생애주기 코드
- `001`: 영유아
- `002`: 아동
- `003`: 청소년
- `004`: 청년
- `005`: 중장년
- `006`: 노년
- `007`: 임신·출산

### 가구유형 코드
- `010`: 다문화·탈북민
- `020`: 다자녀
- `030`: 보훈대상자
- `040`: 장애인
- `050`: 저소득
- `060`: 한부모·조손

### 관심주제 코드
- `010`: 신체건강
- `020`: 정신건강
- `030`: 생활지원
- `040`: 주거
- `050`: 일자리
- `060`: 문화·여가
- `070`: 안전·위기
- `080`: 임신·출산
- `090`: 보육
- `100`: 교육
- `110`: 입양·위탁
- `120`: 보호·돌봄
- `130`: 서민금융
- `140`: 법률
- `160`: 에너지

## 데이터 출처

이 MCP 서버는 한국 공공데이터포털에서 제공하는 "중앙부처 복지서비스" API를 사용합니다.
- API 제공: 보건복지부
- 데이터 갱신: 실시간
- 서비스 URL: http://apis.data.go.kr/B554287/NationalWelfareInformationsV001

## 라이선스

MIT License

## 기여

버그 리포트나 기능 제안은 GitHub Issues를 통해 해주시기 바랍니다.
npm package: @minjunkwon/lh-notice-mcp-server
Description: MCP server for LH (Korea Land & Housing Corporation) lease notice API - 한국토지주택공사 임대/분양 공고 조회
Author: Your Name
Latest version: 1.0.0

# LH Notice MCP Server

한국토지주택공사(LH) 임대주택 분양 공고 정보를 조회하는 MCP(Model Context Protocol) 서버입니다.

[![npm version](https://badge.fury.io/js/lh-notice-mcp-server.svg)](https://badge.fury.io/js/lh-notice-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## 소개

이 MCP 서버는 한국토지주택공사(LH)의 공식 API를 통해 다음과 같은 공고 정보를 Claude AI가 조회할 수 있도록 합니다:

- 🏠 **임대주택** - 국민임대, 영구임대, 행복주택 등
- 🏢 **분양주택** - 보금자리주택, 공공분양 등  
- 🏗️ **토지분양** - 택지개발지구 토지분양
- 💑 **신혼희망타운** - 신혼부부 특화 주택
- 🏪 **상가분양** - 상업시설 분양
- 🤝 **주거복지** - 취약계층 지원 주택

## 설치

### npm으로 설치

```bash
npm install -g lh-notice-mcp-server
```

### 소스코드에서 빌드

```bash
git clone https://github.com/yourusername/lh-notice-mcp-server.git
cd lh-notice-mcp-server
npm install
npm run build
```

## 설정

Claude Desktop에서 사용하려면 설정 파일을 수정하세요:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "lh-notice": {
      "command": "npx",
      "args": ["lh-notice-mcp-server"]
    }
  }
}
```

또는 로컬 설치한 경우:

```json
{
  "mcpServers": {
    "lh-notice": {
      "command": "node",
      "args": ["/path/to/lh-notice-mcp-server/dist/index.js"]
    }
  }
}
```

## 사용법

Claude Desktop에서 자연어로 요청하세요:

```
"서울 지역의 최근 임대주택 공고를 조회해주세요"
"경기도 신혼희망타운 분양 정보를 알려주세요"
"부산의 공고중인 분양주택 20개를 보여주세요"
"올해 대전 지역의 주거복지 공고를 찾아주세요"
```

## API 매개변수

### 필수 매개변수
- `PAN_NT_ST_DT`: 공고게시일 (YYYY.MM.DD)
- `CLSG_DT`: 공고마감일 (YYYY.MM.DD)

### 선택 매개변수
- `PG_SZ`: 한 페이지 결과 수 (1-100, 기본값: 10)
- `PAGE`: 페이지 번호 (기본값: 1)
- `PAN_NM`: 공고명 (부분 일치 검색)
- `UPP_AIS_TP_CD`: 공고유형코드
  - `01`: 토지
  - `05`: 분양주택
  - `06`: 임대주택
  - `13`: 주거복지
  - `22`: 상가
  - `39`: 신혼희망타운
- `CNP_CD`: 지역코드 (11: 서울, 41: 경기 등)
- `PAN_SS`: 공고상태코드 (공고중, 접수중, 접수마감 등)

## 응답 데이터

```json
{
  "SS_CODE": "결과코드",
  "RS_DTTM": "출력일시",
  "RNUM": "순번",
  "UPP_AIS_TP_NM": "공고유형명",
  "AIS_TP_CD_NM": "공고세부유형명",
  "PAN_NM": "공고명",
  "CNP_CD_NM": "지역명",
  "PAN_SS": "공고상태",
  "ALL_CNT": "전체조회건수",
  "DTL_URL": "공고상세URL"
}
```

## 개발

```bash
npm run dev     # 개발 모드
npm run build   # TypeScript 빌드
npm start       # 프로덕션 실행
```

## 라이센스

MIT License - 자유롭게 사용, 수정, 배포할 수 있습니다.

## 기여

이슈 리포트나 Pull Request를 환영합니다!

## 관련 링크

- [LH 공공데이터포털](https://apis.data.go.kr/)
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [Claude Desktop](https://claude.ai/)
npm package: @minjunkwon/lhhouseinfo-mcp
Description: MCP server for LH (Korea Land & Housing Corporation) housing information API
Author: Minjun
Latest version: 1.0.0

# LHhouseinfo MCP Server

한국토지주택공사(LH) 임대주택 정보를 조회할 수 있는 MCP(Model Context Protocol) 서버입니다.

## 설치

```bash
npm install @minjun/lhhouseinfo-mcp
```

## 사용 방법

### Claude Desktop 설정

`claude_desktop_config.json` 파일에 다음과 같이 추가하세요:

```json
{
  "mcpServers": {
    "lhhouseinfo": {
      "command": "npx",
      "args": ["@minjun/lhhouseinfo-mcp"]
    }
  }
}
```

## 사용 가능한 도구

### 1. search_lh_housing

LH 임대주택 정보를 검색합니다.

**파라미터:**
- `query` (필수): 검색어 - 지역과 공급유형을 포함한 자연어
- `pageSize` (선택): 한 페이지당 결과 수 (기본값: 10)
- `page` (선택): 페이지 번호 (기본값: 1)

**사용 예시:**
```
"서울의 국민임대 아파트를 찾아줘"
"부산에 있는 행복주택 정보 보여줘"
"경기도 전세임대 매물을 검색해줘"
"제주도의 장기전세 주택이 있나?"
```

### 2. get_region_codes

사용 가능한 지역 코드 목록을 반환합니다.

### 3. get_supply_types

사용 가능한 공급유형 코드 목록을 반환합니다.

## 지원 지역

- 서울특별시
- 부산광역시
- 대구광역시
- 인천광역시
- 광주광역시
- 대전광역시
- 울산광역시
- 세종특별자치시
- 경기도
- 강원도
- 충청북도
- 충청남도
- 전라북도
- 전라남도
- 경상북도
- 경상남도
- 제주특별자치도

## 지원 공급유형

- 국민임대
- 공공임대
- 영구임대
- 행복주택
- 장기전세
- 매입임대
- 전세임대

## 응답 정보

각 임대주택 정보에는 다음과 같은 내용이 포함됩니다:

- 단지명
- 지역
- 공급유형
- 전용면적
- 세대수
- 임대보증금
- 월임대료
- 최초입주년월

## 라이선스

MIT

## 기여

이슈나 풀 리퀘스트는 언제든지 환영합니다!
npm package: @minjunkwon/localgovernment-welfare-mcp-server
Description: MCP server for Korean Local Government Welfare Services - provides intelligent search and information retrieval for local government social welfare programs
Author: MINJUN
Latest version: 2.1.2

# 지자체 복지서비스 MCP 서버

한국 지자체 복지서비스를 Claude와 연동하여 지능적으로 검색하고 조회할 수 있는 MCP 서버입니다.

## 주요 기능

### 1. 지자체 복지서비스 목록 조회 (`search_local_welfare_services`)
- 지역별 (시도, 시군구) 필터링
- 생애주기별 필터링 (영유아, 아동, 청소년, 청년, 중장년, 노년, 임신·출산)
- 가구상황별 필터링 (다문화·탈북민, 다자녀, 보훈대상자, 장애인, 저소득, 한부모·조손)
- 관심주제별 필터링 (신체건강, 정신건강, 생활지원, 주거, 일자리, 문화·여가, 안전·위기, 임신·출산, 보육, 교육, 입양·위탁, 보호·돌봄, 서민금융, 법률)

### 2. 복지서비스 상세 조회 (`get_local_welfare_detail`)
- 서비스 ID로 상세 정보 조회
- 신청 방법, 선정 기준, 지원 내용 등 포함

### 3. 코드 정의 조회 (`get_local_welfare_codes`)
- API에서 사용되는 모든 코드 체계 조회

## 설치 및 실행

```bash
npm install
npm run build
npm start
```

## Claude Desktop 연동

`claude_desktop_config.json` 파일에 다음 설정 추가:

```json
{
  "mcpServers": {
    "localgovernment-welfare": {
      "command": "node",
      "args": ["/Users/MINJUN/Desktop/localwalfare/dist/index.js"],
      "env": {}
    }
  }
}
```

## API 데이터 소스

공공데이터포털의 "지자체 복지서비스 정보" API를 활용합니다.
- 목록 조회: `/B554287/LocalGovernmentWelfareInformations/LcgvWelfarelist`
- 상세 조회: `/B554287/LocalGovernmentWelfareInformations/LcgvWelfaredetailed`
npm package: @minjunkwon/public-housing-mcp-server
Description: MCP server for public housing information in South Korea - 한국 공공주택 정보 조회 MCP 서버
Author: MinJun Kwon
Latest version: 1.0.0

# 공공주택 정보 조회 MCP 서버 🏠

[![npm version](https://badge.fury.io/js/@minjunkwon%2Fpublic-housing-mcp-server.svg)](https://badge.fury.io/js/@minjunkwon%2Fpublic-housing-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

한국의 공공주택(임대/분양) 모집공고 정보를 조회할 수 있는 MCP(Model Context Protocol) 서버입니다.

Claude Desktop에서 실시간 공공주택 정보를 자연어로 조회할 수 있습니다.

## 기능

### 제공 도구

1. **get_rental_housing** - 공공임대주택 모집공고 조회
2. **get_sale_housing** - 공공분양주택 모집공고 조회

### 지원 파라미터

#### 공공임대주택 조회
- **region** (필수): 광역시도명 (예: "서울특별시", "경기도")
- **district** (선택): 시군구명 (예: "강남구", "수원시")
- **supplyType** (선택): 공급유형 (예: "국민임대", "행복주택")
- **isLongTermLease** (선택): 전세형 여부 (true/false)
- **rentRange** (선택): 월임대료 구간 (예: "10~20만원 미만")
- **pageSize** (선택): 페이지당 데이터 개수 (기본값: 10)
- **pageNumber** (선택): 페이지 번호 (기본값: 1)

#### 공공분양주택 조회
- **region** (필수): 광역시도명
- **district** (선택): 시군구명
- **housingType** (선택): 주택유형 (예: "연립주택", "다세대주택")
- **pageSize** (선택): 페이지당 데이터 개수
- **pageNumber** (선택): 페이지 번호

## 설치

### NPM으로 설치
```bash
npm install -g @minjunkwon/public-housing-mcp-server
```

### 로컬 개발
```bash
git clone https://github.com/minjunkwon/public-housing-mcp-server.git
cd public-housing-mcp-server
npm install
npm run build
npm start
```

## Claude Desktop 연동

### NPM 글로벌 설치 후 설정
`~/Library/Application Support/Claude/claude_desktop_config.json` 파일에 추가:
```json
{
  "mcpServers": {
    "public-housing": {
      "command": "npx",
      "args": ["@minjunkwon/public-housing-mcp-server"]
    }
  }
}
```

### 로컬 개발 설정
```json
{
  "mcpServers": {
    "public-housing": {
      "command": "node",
      "args": ["./dist/index.js"],
      "cwd": "/path/to/public-housing-mcp-server"
    }
  }
}
```

자세한 내용은 `CLAUDE_DESKTOP_SETUP.md` 참고

## 테스트 결과

✅ **API 연동 성공**: 실제 공공데이터포털 API와 정상 연동  
✅ **응답 파싱 완료**: JSON 형태 응답을 올바르게 파싱  
✅ **데이터 포맷팅**: 사용자 친화적 형태로 데이터 가공  
✅ **Claude Desktop 호환**: MCP 표준 인터페이스 구현  
✅ **자동 설정 스크립트**: 원클릭 Claude Desktop 연동

## Claude와 함께 사용하기

Claude가 이 MCP 서버를 사용할 때, 다음과 같은 자연어 요청을 이해하고 적절한 파라미터로 변환합니다:

### 사용 예시

1. **"서울 강남구 국민임대 주택 알려줘"**
   - region: "서울특별시"
   - district: "강남구" 
   - supplyType: "국민임대"

2. **"경기도 행복주택 전세형으로 찾아줘"**
   - region: "경기도"
   - supplyType: "행복주택"
   - isLongTermLease: true

3. **"부산 분양주택 연립주택만 보여줘"**
   - region: "부산광역시"
   - housingType: "연립주택"

4. **"임대료 10만원대 주택 찾아줘"**
   - rentRange: "10~20만원 미만"

## 지원 지역

### 광역시도
- 서울특별시, 부산광역시, 대구광역시, 인천광역시
- 광주광역시, 대전광역시, 울산광역시, 세종특별자치시  
- 경기도, 강원도, 충청북도, 충청남도
- 전라북도, 전라남도, 경상북도, 경상남도, 제주특별자치도

### 주요 시군구
- 서울: 25개 자치구 (강남구, 서초구, 송파구 등)
- 경기: 주요 시군 (수원시, 성남시, 고양시, 용인시 등)
- 기타 광역시: 각 지역 구군

## 공급유형

### 임대주택
- 영구임대, 국민임대, 50년임대, 매입임대
- 10년임대, 5년임대, 장기전세, 전세임대
- 행복주택, 공공지원민간임대

### 주택유형 (분양)
- 연립주택, 다세대주택, 단독주택
- 오피스텔, 다가구주택

## API 정보

- **데이터 출처**: 공공데이터포털 (data.go.kr)
- **서비스**: 공공임대주택 모집공고 서비스
- **업데이트**: 실시간 공공데이터 연동
npm package: @mink/plugin-jira
Description: Create a API token for Jira at https://id.atlassian.com/manage/api-tokens
Latest version: 0.0.4

# Jira Plugin for mink

Create a API token for Jira at https://id.atlassian.com/manage/api-tokens

Sections

- [X] Board
- [ ] Backlog
- [ ] Issues
- [ ] Versions
- [ ] Projects

## Install

```bash
yarn global add @mink/plugin-jira
```

## Options

```json
{
    "resolve": "@mink/plugin-jira",
    "options": {
        "host": "yourcomanpy.atlassian.net",
        "projectKey": "MNK",
        "boardId": 123,
        "email": "edward.knowles@example.com",
        "token": "qwertyugfgdhuygbhqj3nhfgjb"
    }
}
```

---

## Sections

### Board

View active sprint tickets as a table (key, type, summary and status)
npm package: @mink007/sweeper
Description: A utility to send JSON and file data to a webhook API.
Author: mink007
Latest version: 0.2.0

# @mink007/sweeper

A simple and lightweight Node.js package for sending data to a specified webhook URL.


## Installation

Install the package using npm:


```bash
npm install @mink007/sweeper
```
Usage
Use the sweeper function with the appropriate payload to send data to your webhook.

1. Sending JSON Data Only
The function will automatically send this payload to the /inbound/json endpoint.


```bash
JavaScript
const { sweeper } = require('@mink007/sweeper');

const jsonPayload = {
    eventName: 'user_created',
    message: 'Pengguna baru telah terdaftar.',
    userData: { id: 123, email: 'john@example.com' }
};

sweeper(jsonPayload);
```
2. Sending a File Only
The function will automatically send this file to the /inbound/file endpoint. Make sure the value of the file property is a valid path to your file.


```bash
JavaScript
const { sweeper } = require('@mink007/sweeper');
const path = require('path');

const filePayload = {
    file: path.join(__dirname, 'uploads', 'laporan.pdf')
};

sweeper(filePayload);
```


Dependencies
This package requires:
```bash

axios

form-data

dotenv
```
GitHub
```bash

https://github.com/apextrack/inbound
```
License
This package is licensed under the MIT License.
npm package: @minkminks/build-tokens
Description: Build token from figma design system
Author: minkminks
Latest version: 1.1.14

# Mink Build Tokens

A central location to store shared attributes of the Minkminks-ui. These attributes include: colors, fonts, spacing, and more. Using [Amazon's Style Dictionary](https://amzn.github.io/style-dictionary/) we transform attributes into usable variables for a variety of platforms.

## Usage

#### Install The package in your project

```
npm i @minkminks/build-tokens
```

or

```
yarn add @minkminks/build-tokens
```

#### Import tokens into your project based on your requirements

Ideally you'd want to import them into a file that exposes them to your entire application.

SASS Variables imported into a .scss file

```
@import '~@minkminks/build-tokens/scss/tokens.scss'
```

CSS Variables imported into a .css file

```
@import '~@minkminks/build-tokens/css/tokens.css'
```

SASS Utility classes imported into a .scss file
(NOTE: SCSS and CSS utility classes are the same, we provide both if you wish to maintain consistency in file formats)

```
@import '~@minkminks/build-tokens/utilities/utilities-color.scss'
@import '~@minkminks/build-tokens/utilities/utilities-size.scss'
```

CSS Utility Classes imported into a .css file

```
@import '~@minkminks/build-tokens/utilities/utilities-color.css'
@import '~@minkminks/build-tokens/utilities/utilities-size.css'
```

## Available Tokens

- Color
  - Brand
  - Font
  - Border
- Size
  - Border
  - Border Radius
  - Breakpoint
  - Spacing
  - Font
  - Width
  - Height
  - Box Shadow
  - Opacity
  - Z-Index
  - Line-Height

### Release Types

Must be one of the following:

### Major

- **BREAKING CHANGE**: A set of breaking changes.

### Minor

- **feat**: A new feature

### Patch

- **fix**: A bug fix
- **perf**: A code change that improves performance
- **ci**: A change to our CI pipelines/workflows.
- **build**: A change to the library build process (That does not break the consumer API).
- **test**: Added or improved testing in some area of the library.
- **refactor**: Changed code structure without affecting features.
- **docs**: Added to, or improved documentation.
- **style**: Change in code style without affecting features.
npm package: @minkminks/mink-ui-components
Description: A React component library
Author: @minkminks
Latest version: 1.0.1

<h1 align="center" style="border-bottom: none;">MinkminkUI Component Library</h1>
<h3 align="center">


## Quick Start

### 1. Install

`yarn add @minkminks/mink-ui-components`

### 2. Import Global CSS

```jsx
@import '@minkminks/mink-ui-components/dist/css/utilities.css'; // Utility classes -- REQUIRED
@import '@minkminks/mink-ui-components/dist/css/variables.css'; // CSS Variables -- REQUIRED
@import '@minkminks/mink-ui-components/dist/css/index.css'; // Component CSS -- REQUIRED
@import '@minkminks/mink-ui-components/dist/css/fonts.css'; // Included Font files -- OPTIONAL BUT ENCOURAGED
```

We recommend importing our global reset in order to maintain a consistent
look of all components across applications.

```jsx
@import '@minkminks/mink-ui-components/dist/css/reset.css' // A Basic CSS Reset -- OPTIONAL BUT ENCOURAGED.
```

### 3. Usage

```jsx
import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@minkminks/mink-ui-components';

function App() {
  return <Button>Hello World</Button>;
}

ReactDOM.render(<App />, document.querySelector('#app'));
```
npm package: @minko-fe/any-config
Description: minko's project config ✅
Author: hemengke1997
Latest version: 1.2.8

# @minko-fe/any-config

## Usage

### <img style="width: 14px; height: 14px" src="https://raw.githubusercontent.com/vscode-icons/vscode-icons/70702eb811036276c75b7ddf33060ee109026fe9/icons/file_type_eslint.svg" /> eslint

#### install

```bash
pnpm add eslint @minko-fe/eslint-config prettier -D
```

#### eslintrc

##### .eslintrc.json

```json
{
  "extends": "@minko-fe"
}
```

##### .eslintrc.js

```js
module.exports = {
  extends: '@minko-fe',
}
```

### <img style="width: 14px; height: 14px" src="https://raw.githubusercontent.com/vscode-icons/vscode-icons/70702eb811036276c75b7ddf33060ee109026fe9/icons/file_type_light_prettier.svg" /> prettier

#### install

```bash
pnpm add prettier @minko-fe/prettier-config -D
```

#### prettierrc

##### .prettierrc.js

```js
module.exports = {
  ...require('@minko-fe/prettier-config'),
}
```

##### .prettierrc.json
```json
"@minko-fe/prettier-config"
```

### <img style="width: 14px; height: 14px" src="https://raw.githubusercontent.com/vscode-icons/vscode-icons/70702eb811036276c75b7ddf33060ee109026fe9/icons/file_type_commitlint.svg" /> commitlint

#### install

```bash
pnpm add @minko-fe/commitlint-config
```
#### commitlint.config.js

```js
module.exports = {
  extends: ['@minko-fe'],
}
```
### <img style="width: 14px; height: 14px" src="https://raw.githubusercontent.com/vscode-icons/vscode-icons/70702eb811036276c75b7ddf33060ee109026fe9/icons/file_type_tsconfig.svg" /> tsconfig

#### install

```bash
pnpm add @minko-fe/tsconfig
```

#### tsconfig.json

##### lib
```json
{
  "extends": "@minko-fe/tsconfig/tsconfig.lib.json"
}
```

##### project
```json
{
  "extends": "@minko-fe/tsconfig/tsconfig.project.json"
}
```


❤️ [antfu](https://github.com/antfu/eslint-config)
npm package: @minko-fe/axios-pro
Description: 基于axios封装的请求库
Author: hemengke
Latest version: 1.0.0

# axios-pro

## Usage

```ts
import { AxiosPro } from '@minko-fe/axios-pro'

const rq = new AxiosPro({
  requestOptions: {
    // ...
  },
  withCredentials: true,
})

rq.post()

rq.get()

// ...
```
npm package: @minko-fe/bumpp
Description: Bump version, commit changes, tag, and push to Git
Author: James Messinger
Latest version: 9.1.0

# bumpp

[![NPM version](https://img.shields.io/npm/v/bumpp?color=a1b858&label=)](https://www.npmjs.com/package/bumpp)

Forked from [`version-bump-prompt`](https://github.com/JS-DevTools/version-bump-prompt)

###### Changes in this fork

- Renamed to `bumpp` - so you can use `npx bumpp` directly.
- Ships ESM and CJS bundles.
- Add a new argument `--execute` to execute the command before committing.
- Use current version's `preid` when avaliable.
- Confirmation before bumping.
- Enable `--commit` `--tag` `--push` by default. (opt-out by `--no-push`, etc.)
- `-r` or `--recursive` to bump all packages in the monorepo.
- Conventional Commits by default. 
- Supports config file `bumpp.config.ts`:

```ts
import { defineConfig } from 'bumpp'

export default defineConfig({
  // ...options
})
```
npm package: @minko-fe/client-logger
Description: client-logger
Author: hemengke
Latest version: 0.0.67

# client-logger

## Usage

```tsx
import { ClientLogger } from '@minko-fe/client-logger'
const logger = new ClientLogger(undefined, true)

const logStr = logger.log({ text: 'some-text', type: 'success' })

console.log(logStr)
```
npm package: @minko-fe/context-state
Description: React state management library
Author: hemengke1997
Latest version: 1.3.0
Deprecated: @minko-fe/context-state已废弃，请安装 context-state

# context-state

> 简单、优雅的 React hooks 状态管理方案

## codesandbox

[EXAMPLE](https://codesandbox.io/s/delicate-http-rkgv1?file=/src/CounterContainer.tsx)

## 安装

```bash
yarn add @minko-fe/context-state
```

## 介绍

React Context 和 useContext 存在一些性能问题，当 context 上下文改变时，所有使用到 context 的组件都会更新渲染。 context-state 为解决性能问题而生。

v1.1.0 之前，它使用 `calculateChangedBits` 来阻止 context 更新，但这个 API 将会被 React 废弃。

v1.1.0 之后，将不再依赖 `calculateChangedBits`

## Example

```tsx
import React from 'react';
import { createContainer, useMemoizedFn } from '@minko-fe/context-state';

function useCounter() {
  const [count, setCount] = React.useState(0);
  const increment = useMemoizedFn(() => setCount((c) => c + 1));

  return {
    count,
    increment,
  };
}

const CounterContainer = createContainer(useCounter);

function CounterDisplay() {
  const { count, increment } = CounterContainer.usePicker(['count', 'increment']);

  return (
    <div>
      {count}
      <button type="button" onClick={increment}>
        ADD
      </button>
    </div>
  );
}

function App() {
  return (
    <CounterContainer.Provider>
      <CounterDisplay />
    </CounterContainer.Provider>
  );
}

render(<App />, document.getElementById('root'));
```

## API

### `createContainer(useHook)`

```tsx
import { createContainer, useMemoizedFn } from '@minko-fe/context-state';

function useCustomHook() {
  const [value, setInput] = useState();
  const onChange = useMemoizedFn((e) => setValue(e.currentTarget.value));
  return {
    value,
    onChange,
  };
}

const Container = createContainer(useCustomHook);
// Container === { Provider, usePicker }
```

### `<Container.Provider>`

```tsx
function ParentComponent() {
  return (
    <Container.Provider>
      <ChildComponent />
    </Container.Provider>
  );
}
```

### `<Container.Provider value>`

```tsx
function useCustomHook(value = '') {
  const [value, setValue] = useState(value);
  // ...
}

function ParentComponent() {
  return (
    <Container.Provider value="value">
      <ChildComponent />
    </Container.Provider>
  );
}
```

### `Container.useSelector()`

监听当前容器中选择后的值，若值发生改变，则触发 `rerender`

```tsx
function ChildComponent() {
  const value = Container.useSelector((state) => state.value);
  return <span>{value}</span>;
}
```

### `Container.usePicker()`

`useSelector` 的语法糖，更常用的写法

```tsx
function ChildComponent() {
  const { value } = Container.usePicker(['value']);
  return <span>{value}</span>;
}
```

### `useMemoizedFn`

持久化 `function` 的 `Hook`。（来自 `ahooks` 中 `useMemoizedFn`）

_你可能会需要用 `useCallback` 记住一个回调，但由于内部函数必须经常重新创建，记忆效果不佳，导致子组件重复 render。对于复杂的子组件，重新渲染会对性能造成影响。通过 `useMemoizedFn`，可以保证函数地址永远不会变化。_

### 灵感来源

[unstated-next](https://github.com/jamiebuilds/unstated-next) | [use-context-selector](https://github.com/dai-shi/use-context-selector)
npm package: @minko-fe/flexible-pro
Description: flexible-pro
Author: hemengke
Latest version: 0.1.26

# flexible-pro

## Basic Usage

```tsx
// main.ts

import { flexible } from '@minko-fe/flexible-pro'

flexible()
```

## With vite-plugin-public-typescript

```ts
// vite.config.ts
import { publicTypescript } from 'vite-plugin-public-typescript'

// use manifest.flexible as usual

export default defineConfig(()=> ({
  plugins: [publicTypescript()],
}))
```

```ts
// flexible.ts
import { flexible } from '@minko-fe/flexible-pro'

flexible()
```
npm package: @minko-fe/html-transform
Description: html-transform
Author: hemengke
Latest version: 0.1.17

# html-transform

## Usage

```ts
import { applyHtmlTransforms } from '@minko-fe/html-transform'

applyHtmlTransforms(`your html`, [
    { 
      tag: 'div', 
      attrs: { 'data-src': 'www.google.com' }, 
      injectTo: 'body', 
      children: `console.log('hello, world!')` 
    }
  ])
```
npm package: @minko-fe/lodash-pro
Description: lodash-pro
Author: hemengke
Latest version: 0.3.3

# lodash-pro

> more than lodash

## Usage

| methods         | desc                                   |
| --------------- | -------------------------------------- |
| isBrowesr       | browser env                            |
| isPromise       | promise                                |
| KeyCode         | key code                               |
| timeRange       | time range                             |
| strategyPattern | strategy pattern                       |
| deepMerge       | https://github.com/TehShrike/deepmerge |
npm package: @minko-fe/postcss-config
Description: postcss-config
Author: hemengke
Latest version: 1.0.1

# postcss-config

## Usage

### postcss.config.js


#### vite
```js
import { definePlugins } from '@minko-fe/postcss-config/vite'

export default {
  plugins: definePlugins({
    'postcss-import': true, // default. if vite, set false
    'tailwindcss/nesting': true, // default
    'tailwindcss': true, // default
    'postcss-pxtorem': {}, // set if you need
    'postcss-pxtoviewport': {}, // set if you need
    'postcss-preset-env': {}, // default
  })
}
```

#### next.js
```js
import { definePlugins } from '@minko-fe/postcss-config/nextjs'

export default {
  plugins: definePlugins({
    'postcss-import': true, // default. if next.js, set false
    'tailwindcss/nesting': true, // default
    'tailwindcss': true, // default
    'postcss-pxtorem': {}, // set if you need
    'postcss-pxtoviewport': {}, // set if you need
    'postcss-preset-env': {}, // default
  })
}
```
npm package: @minko-fe/react-component
Description: react-component
Author: hemengke
Latest version: 0.2.11

# react-component

## Features

- Dialog support `show` method
- toast better animation and is unified for pc and mobile

## Usage

### components

| components
| -------- 
| icons
| toast       
| Dialog   


```tsx
import { Dialog, toast } from '@minko-fe/react-component'

Dialog.show({ children: <div>hello world</div> })

toast.show({ content: <div>hello world</div> })
```


```tsx
import { AccountBookFilled } from '@minko-fe/react-component/icons'

<AccountBookFilled/>
```
npm package: @minko-fe/react-hook
Description: react-hook
Author: hemengke
Latest version: 0.4.0

# react-hook

> more than ahooks and react-use
> 
## Usage

| new hooks             | desc                                                                          |
| --------------------- | ----------------------------------------------------------------------------- |
| useControlledState    | controlled state                                                              |
| useLayoutUpdateEffect | layoutEffect for update                                                       |
| useLockScroll         | lock scroll                                                                   |
| useStrictInput        | strict input                                                                  |
| useUrlState           | url                                                                           |
| useEffectOnce         | useEffect but trigger once only (effect triggered twice in React strict mode) |
npm package: @minko-fe/react-locale
Description: react-locale
Author: hemengke
Latest version: 1.0.0

# react-locale

## Install

```sh
npm i @minko-fe/react-locale i18next react-i18next
```

## Usage

### vite.config.ts
```ts
import { i18nDetector } from '@minko-fe/react-locale/plugin'
import { enhanceViteConfig } from '@minko-fe/vite-config'
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig((env) => {
  return enhanceViteConfig(
    {
      env,
      plugins: [
        react(),
        i18nDetector({
          localesPaths: ['./src/locales'],
          pathMatcher: '{locale}/{namespace}.{ext}',
        }),
      ],
    },
  )
})
```

### main.tsx

```tsx
import { i18nAlly } from '@minko-fe/react-locale'
import React from 'react'
import ReactDOM from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import App from './App'

const root = ReactDOM.createRoot(document.querySelector('#root') as HTMLElement)

i18nAlly({
  onInited: () => {
    root.render(
      <React.StrictMode>
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </React.StrictMode>,
    )
  },
})

```

### App.tsx

```tsx
import { useTranslation } from 'react-i18next'

function App() {
  const { t, i18n } = useTranslation()

  return <div onClick={() => i18n.changeLanguage('zh')}>{t('namespace.key')}</div>
}
```

### tsconfig.json

```json
{
  "types": ["@minko-fe/react-locale/i18n"] // fix useTranslation returnNull
}
```
npm package: @minko-fe/react-route
Description: react-route
Author: hemengke
Latest version: 1.0.2

# react-route

## Usage

```tsx
import { CreateRoutes, type RoutesItemType } from '@minko-fe/react-route'
import { BrowserRouter } from 'react-router-dom'

const routes: RoutesItemType[] = [
  {
    path: '/path',
    component: () => import('some-path/to/page'),
  }
]

// App.tsx
const App = () => {

  return <BrowserRouter><CreateRoutes routes={routes} /></BrowserRouter>
}
```
npm package: @minko-fe/react-util-hook
Description: react util hook
Author: hemengke
Latest version: 0.0.37
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Usage

> more than ahooks and react-use


new hooks | desc
---------|----------
useControlledState | 受控state
useLayoutUpdateEffect | layoutEffect for update
useLockScroll | lock scroll
useStrictInput | 严格input输入
npm package: @minko-fe/react-util-route
Description: react util route
Author: hemengke
Latest version: 0.0.37
Deprecated: Please replace this with @minko-fe/react-route

# Usage

```jsx
import { BrowserRouter } from 'react-router-dom'
import { CreateRoutes } from '@minko-fe/react-util-route'
import type { RoutesItemType } from '@minko-fe/react-util-route'


const routes: RoutesItemType[] = [
  {
    path: '/path',
    component: () => import('path/to/page'),
  }
]

// App.tsx
const App = () => {

  return <BrowserRouter><CreateRoutes routes={routes} /></BrowserRouter>
}
```
npm package: @minko-fe/style-object-to-string
Description: ✨ convert style object to string. eg. { fontSize: 12 } => font-size: 12px
Author: hemengke
Latest version: 1.0.0

# style-object-to-string

> convert style object to string

# install

## pnpm

```bash
pnpm add @minko-fe/style-object-to-string
```

## npm

```bash
npm add @minko-fe/style-object-to-string
```

# usage

```typescript
import { styleObjectToString } from '@minko-fe/style-object-to-string'

styleObjectToString({
  fontSize: 14,
  backgroundColor: '#fff',
}) // 'font-size:14px;background-color:#fff'
```

# ❤️ react

Source code from react
npm package: @minko-fe/use-nprogress
Description: react hook for NProgress
Author: hemengke1997
Latest version: 0.0.8

# use-nprogress

## WHAT IS THIS?

[NProgress](https://github.com/rstacruz/nprogress)的进度数值，而非 UI

## EXAMPLES

[BASIC EXAMPLE](https://codesandbox.io/s/holy-feather-quz0v)

[NProgress EXAMPLE](https://codesandbox.io/s/amazing-hooks-gk7qd?file=/src/App.tsx)

## 特点

- 支持多实例（NProgress 是单例模式）

## 安装

```bash
yarn add @minko-fe/use-nprogress
```

## 使用

```tsx
import { useState } from 'react';
import useNProgress from 'use-nprogress';

const Example: React.FC = () => {
  const [loading, setLoading] = useState(false);

  const { progress, isFinished, animationDuration } = useNProgress({
    isAnimating: loading,
  });
};
```

## 灵感来源

[nprogress](https://github.com/rstacruz/nprogress)
npm package: @minko-fe/vite
Description: Native-ESM powered web dev build tool
Author: Evan You
Latest version: 3.2.1

# vite ⚡

> Next Generation Frontend Tooling

- 💡 Instant Server Start
- ⚡️ Lightning Fast HMR
- 🛠️ Rich Features
- 📦 Optimized Build
- 🔩 Universal Plugin Interface
- 🔑 Fully Typed APIs

Vite (French word for "fast", pronounced `/vit/`) is a new breed of frontend build tool that significantly improves the frontend development experience. It consists of two major parts:

- A dev server that serves your source files over [native ES modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), with [rich built-in features](https://vitejs.dev/guide/features.html) and astonishingly fast [Hot Module Replacement (HMR)](https://vitejs.dev/guide/features.html#hot-module-replacement).

- A [build command](https://vitejs.dev/guide/build.html) that bundles your code with [Rollup](https://rollupjs.org), pre-configured to output highly optimized static assets for production.

In addition, Vite is highly extensible via its [Plugin API](https://vitejs.dev/guide/api-plugin.html) and [JavaScript API](https://vitejs.dev/guide/api-javascript.html) with full typing support.

[Read the Docs to Learn More](https://vitejs.dev).
npm package: @minko-fe/vite-config
Description: vite-config
Author: hemengke
Latest version: 1.1.0

# vite-config

## Usage

### built-in plugins

- vite-plugin-compression
- @vitejs/plugin-legacy
- vite-plugin-logAppInfo
- vite-plugin-public-typescript
- vite-plugin-svgr
- rollup-plugin-visualizer

### vite.config.ts

```ts
import { enhanceViteConfig } from '@minko-fe/vite-config'
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig((env) => {
  return enhanceViteConfig({
    env,
    plugins: [react()],
  })
})
```


### tsconfig.json
```json
{
  "baseUrl": ".",
  "types": ["vite/client"],
  "paths": {
    "#/*": ["src/*"] // whatever prefix you like
  }
}
```

### visualizer

```bash
{
  "report": "cross-env REPORT=true npm run build"
}
```

### env

```ts
import { isDev } from '@minko-fe/vite-config/client'
console.log(isDev())
```
npm package: @minlare/dsa-vue-loader
Description: Vue single-file component loader for Webpack
Author: Evan You
Latest version: 15.7.5

# vue-loader [![Build Status](https://circleci.com/gh/vuejs/vue-loader/tree/master.svg?style=shield)](https://circleci.com/gh/vuejs/vue-loader/tree/master) [![Windows Build status](https://ci.appveyor.com/api/projects/status/8cdonrkbg6m4k1tm/branch/master?svg=true)](https://ci.appveyor.com/project/yyx990803/vue-loader/branch/master)

> webpack loader for Vue Single-File Components

**NOTE:** The master branch now hosts the code for v15! Legacy code is now in the [v14 branch](https://github.com/vuejs/vue-loader/tree/v14).

- [Documentation](https://vue-loader.vuejs.org)
- [Migrating from v14](https://vue-loader.vuejs.org/migrating.html)

## What is Vue Loader?

`vue-loader` is a loader for [webpack](https://webpack.js.org/) that allows you to author Vue components in a format called [Single-File Components (SFCs)](./docs/spec.md):

``` vue
<template>
  <div class="example">{{ msg }}</div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello world!'
    }
  }
}
</script>

<style>
.example {
  color: red;
}
</style>
```

There are many cool features provided by `vue-loader`:

- Allows using other webpack loaders for each part of a Vue component, for example Sass for `<style>` and Pug for `<template>`;
- Allows custom blocks in a `.vue` file that can have custom loader chains applied to them;
- Treat static assets referenced in `<style>` and `<template>` as module dependencies and handle them with webpack loaders;
- Simulate scoped CSS for each component;
- State-preserving hot-reloading during development.

In a nutshell, the combination of webpack and `vue-loader` gives you a modern, flexible and extremely powerful front-end workflow for authoring Vue.js applications.