メインコンテンツまでスキップ

アドオン

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.jsBase64 のエンコード/デコード。ネイティブの atob/btoa 関数に対応
CamelCase.jsテキストをキャメルケースに変換
CryptoJS.jsDES、AES、Rabbit の暗号化/復号アルゴリズム。CryptoJS の小さなラッパー
DateToTimestamp.js文字列の日付をタイムスタンプに変換
DateToUTC.js文字列の日付を UTC 文字列に変換
DecodeURI.jsパーセントエンコードされた文字列をデコード
EncodeURI.js文字列をパーセントエンコードされた文字列に変換
FormatCSS.jsCSS 文字列を整形
FormatJSON.jsJSON 文字列を整形
BeautifyJSON.jsJSON オブジェクトを整形された JSON 文字列に変換
UglifyJSON.jsJSON オブジェクトを圧縮された JSON 文字列に変換
FormatXML.jsXML 文字列を整形
HelloWorld.jsHello World のサンプル
Hex2rgb.js#000000 形式の文字列を RGB 文字列に変換
JsonToQuery.jsJSON オブジェクトをクエリ文字列に変換
JSONValidator.jsJSON 文字列を検証
JWTDecode.jsJWT トークンをデコード
KebabCase.jsケバブケースに変換
MD5.jsMD5 ハッシュを計算
MinifyCSS.jsCSS 文字列を圧縮
MinifyJSON.jsJSON 文字列を圧縮
MinifyXML.jsXML 文字列を圧縮
QueryToJson.jsクエリ文字列を JSON オブジェクトに変換
Pako.jsDeflate/Inflate と GZip/UnGZip
SHA1.jsSHA1 ハッシュを計算
SHA256.jsSHA256 ハッシュを計算
SHA512.jsSHA512 ハッシュを計算
SnakeCase.jsスネークケースに変換
StartCase.jsStart 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 フォルダにコピーしてください。詳しくは 独自のアドオンを作成 を参照してください。