# 組み込み JS ライブラリ

> Proxyman Scripting に同梱されている lodash、crypto-js、hashes などの JavaScript ライブラリを確認し、require() で独自のライブラリをインポートする方法を紹介します。

## 1. 概要 {#1-whats-it}

Proxyman には、よくある処理を簡単に行えるように、便利な JavaScript ライブラリがいくつか同梱されています。

> **備考:** ライブラリの場所は **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs** です。

> **ヒント:** Proxyman macOS 6.10.0 以降では、ネイティブの \`npm install\` を使ってサードパーティのライブラリをインストールできます。[use-npm-install.md](https://proxyman.com/docs/ja/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) を使って、すべての依存関係を 1 つの JS ファイルにまとめてください。
2. 関数を正しくエクスポートしてください。
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) 氏に感謝します。
