アドオン
Proxyman Scripting の組み込みアドオン(Base64、MD5/SHA ハッシュ、UUID、JWT デコード、GZip など)を一覧で確認し、require() でインポートする方法を紹介します。
1. 概要
Proxyman には、MD5 や SHA1 のハッシュ計算、Base64 のエンコード/デコード、XML や JSON の整形など、よく使う処理のための組み込みアドオンが用意されています。
Proxyman macOS 6.10.0 以降では、ネイティブの `npm install` を使ってサードパーティのライブラリをインストールできます。use-npm-install.md を参照してください。
2. 組み込みアドオン
すべてのアドオンのサンプルコードは アドオンのスニペットコード にあります。
| 名前 | 説明 |
|---|---|
| Base64.js | Base64 のエンコード/デコード。ネイティブの atob/btoa 関数に対応 |
| CamelCase.js | テキストをキャメルケースに変換 |
| CryptoJS.js | DES、AES、Rabbit の暗号化/復号アルゴリズム。CryptoJS の小さなラッパー |
| DateToTimestamp.js | 文字列の日付をタイムスタンプに変換 |
| DateToUTC.js | 文字列の日付を UTC 文字列に変換 |
| DecodeURI.js | パーセントエンコードされた文字列をデコード |
| EncodeURI.js | 文字列をパーセントエンコードされた文字列に変換 |
| FormatCSS.js | CSS 文字列を整形 |
| FormatJSON.js | JSON 文字列を整形 |
| BeautifyJSON.js | JSON オブジェクトを整形された JSON 文字列に変換 |
| UglifyJSON.js | JSON オブジェクトを圧縮された JSON 文字列に変換 |
| FormatXML.js | XML 文字列を整形 |
| HelloWorld.js | Hello World のサンプル |
| Hex2rgb.js | #000000 形式の文字列を RGB 文字列に変換 |
| JsonToQuery.js | JSON オブジェクトをクエリ文字列に変換 |
| JSONValidator.js | JSON 文字列を検証 |
| JWTDecode.js | JWT トークンをデコード |
| KebabCase.js | ケバブケースに変換 |
| MD5.js | MD5 ハッシュを計算 |
| MinifyCSS.js | CSS 文字列を圧縮 |
| MinifyJSON.js | JSON 文字列を圧縮 |
| MinifyXML.js | XML 文字列を圧縮 |
| QueryToJson.js | クエリ文字列を JSON オブジェクトに変換 |
| Pako.js | Deflate/Inflate と GZip/UnGZip |
| SHA1.js | SHA1 ハッシュを計算 |
| SHA256.js | SHA256 ハッシュを計算 |
| SHA512.js | SHA512 ハッシュを計算 |
| SnakeCase.js | スネークケースに変換 |
| StartCase.js | Start Case に変換 |
| UUID.js | 一意な UUID-v4 形式の文字列を生成 |
3. アドオンの使い方
各アドオンは関数をエクスポートしており、require 関数を使ってインポートできます。
たとえば、Base64.js アドオンは次のような内容です。
// Base64.js
const Base64 = require('@libs/base64.js');
const { atob } = require("@libs/atob.js");
const { btoa } = require("@libs/btoa.js");
// atob / btoa
// They're equivalent with window.atob and window.btoa
exports.atob = atob;
exports.btoa = btoa;
// Basic Base64
exports.base64Decode = (input) => {
return Base64.decode(input)
};
exports.base64Encode = (input) => {
return Base64.encode(input);
};
そのうえで、スクリプト内から次のように使用できます。
const { atob, btoa } = require("@addons/Base64.js")
function onRequest(context, url, request) {
// Encode base64 by using the export function
var text = btoa("Hello World");
console.log(text)
// => SGVsbG8gV29ybGQ=
}
すべてのアドオンのコードは ~/Library/Application\ Support/com.proxyman.NSProxy/addons にあります。
4. 注意事項
require 関数は、JavascriptCore フレームワーク の組み込み関数ではありません。アドオンやライブラリを簡単にインポートできるように、Proxyman が独自に提供している関数です。
Proxyman の組み込みアドオンの実現につながった Boop アプリを開発した Ivan Mathy 氏に感謝します。
アドオンのフォルダは Proxyman の更新のたびに上書きされるため、そのフォルダ内のアドオンは編集しないでください。アドオンを変更するには、まず users フォルダにコピーしてください。詳しくは 独自のアドオンを作成 を参照してください。