# 내장 JS 라이브러리

> lodash, crypto-js, hashes 등 Proxyman Scripting에 번들된 JavaScript 라이브러리를 살펴보고, require()로 나만의 라이브러리를 가져오는 방법을 알아보세요.

## 1. 기능 소개 {#1-whats-it}

Proxyman에는 일반적인 작업을 쉽게 처리할 수 있도록 도와주는 유용한 JS 라이브러리가 몇 가지 포함되어 있습니다.

> **노트:** 라이브러리 위치: **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs**

> **팁:** Proxyman macOS 6.10.0 이상에서는 네이티브 \`npm install\`을 사용해 서드파티 라이브러리를 설치할 수 있습니다. [use-npm-install.md](https://proxyman.com/docs/ko/scripting/use-npm-install)을 참고하세요.

## 2. 내장 라이브러리 {#2-built-in-libraries}

| 이름             | 설명                                                                                                                   | 소스                                                                                 |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| base64.js        | 기본적인 Base64 인코딩/디코딩 기능을 포함합니다                                                                        | -                                                                                    |
| atob.js          | window.atob()                                                                                                          | [https://github.com/jsdom/abab](https://github.com/jsdom/abab)                       |
| btoa.js          | window.btoa()                                                                                                          | [https://github.com/jsdom/abab](https://github.com/jsdom/abab)                       |
| hashes.js        | MD5, RIPEMD-160, SHA1, SHA256, SHA512, HMAC 등 다양한 해시 함수를 포함합니다                                           | [https://github.com/h2non/jshashes](https://github.com/h2non/jshashes)               |
| lodash.js        | 다양한 텍스트 변환 함수를 포함합니다                                                                                   | [https://lodash.com](https://lodash.com)                                             |
| vkBeautify.js    | XML, JSON, CSS, SQL 형식의 텍스트를 보기 좋게 정리하거나 압축합니다                                                    | [https://github.com/kayhadrin/vkBeautify/](https://github.com/kayhadrin/vkBeautify/) |
| crypto-js.min.js | DES, AES, Rabbit 등 표준이면서 안전한 암호화 알고리즘을 구현한 JavaScript 라이브러리입니다 (버전 3.3.0)                | [https://cryptojs.gitbook.io/docs/](https://cryptojs.gitbook.io/docs/)               |
| pako.js          | Deflate/Inflate 및 GZip/UnGZip을 위한 zlib 포트입니다 (버전 1.0.11)                                                    | [https://github.com/nodeca/pako](https://github.com/nodeca/pako)                     |

## 3. 나만의 JS 라이브러리 가져오기 {#3-how-to-import-my-own-js-library}

1. 나만의 JS 라이브러리를 제공할 수 있지만, [Browserify](http://browserify.org) 또는 [WebPack](https://webpack.js.org)을 사용해 모든 의존성을 하나의 JS 파일로 묶어야 합니다.
2. 함수를 올바르게 export하세요.
3. 파일을 **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs/your-lib.js** 경로에 두세요.
4. 다음과 같이 파일을 가져옵니다.

```javascript
require('@libs/your-lib.js');
```

예를 들어,

```javascript
const Hashes = require('@libs/hashes.js');
const { cssmin } = require('@libs/vkBeautify.js');
const Lodash = require('@libs/lodash.js');
const { atob } = require('@libs/atob.js')
```

> **노트:** 참고용 내장 라이브러리 코드는 **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs/** 경로에서 확인할 수 있습니다.

## 4. 참고 사항 {#4-notes}

> **노트:** Proxyman의 내장 애드온을 가능하게 해 준 Boop 앱을 만든 [Ivan Mathy](https://github.com/IvanMathy) 님께 감사드립니다.
