애드온
Base64, MD5/SHA 해싱, UUID, JWT 디코딩, GZip 등 Proxyman Scripting의 내장 애드온을 살펴보고, 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 | 텍스트를 Camel Case로 변환 |
| 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 | Kebab Case로 변환 |
| 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 | Snake Case로 변환 |
| 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 님께 감사드립니다.
addons 폴더는 Proxyman 업데이트마다 덮어쓰이므로, 그 안의 애드온은 편집하지 마세요. 애드온을 변경하려면 먼저 users 폴더로 복사하세요. 나만의 애드온 작성하기를 참고하세요.