# Librerías JS integradas

> Conoce las librerías JavaScript que incluye Proxyman Scripting, como lodash, crypto-js y hashes, y aprende a importar tu propia librería con require().

## 1. ¿Qué es? {#1-whats-it}

Proxyman incluye algunas librerías JS útiles para realizar tareas comunes de forma sencilla.

> **Nota:** Ubicación de las librerías: **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs**

> **Consejo:** Desde Proxyman macOS 6.10.0 o posterior, puedes usar el comando nativo \`npm install\` para instalar tus librerías de terceros. Consulta [use-npm-install.md](https://proxyman.com/docs/es/scripting/use-npm-install).

## 2. Librerías integradas {#2-built-in-libraries}

| Nombre           | Descripción                                                                                                                  | Fuente                                                                               |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| base64.js        | Contiene la codificación y decodificación Base64 básicas                                                                     | -                                                                                    |
| 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        | Contiene diversas funciones de hash: MD5, RIPEMD-160, SHA1, SHA256, SHA512, HMAC                                             | [https://github.com/h2non/jshashes](https://github.com/h2non/jshashes)               |
| lodash.js        | Contiene diversas funciones para transformar texto                                                                           | [https://lodash.com](https://lodash.com)                                             |
| vkBeautify.js    | Da formato o minifica texto en los formatos XML, JSON, CSS y SQL.                                                            | [https://github.com/kayhadrin/vkBeautify/](https://github.com/kayhadrin/vkBeautify/) |
| crypto-js.min.js | Implementaciones en JavaScript de algoritmos criptográficos estándar y seguros, p. ej. DES, AES, Rabbit, ... (versión 3.3.0) | [https://cryptojs.gitbook.io/docs/](https://cryptojs.gitbook.io/docs/)               |
| pako.js          | Port de zlib para Deflate/Inflate y GZip/UnGZip (versión 1.0.11)                                                             | [https://github.com/nodeca/pako](https://github.com/nodeca/pako)                     |

## 3. ¿Cómo importo mi propia librería JS? {#3-how-to-import-my-own-js-library}

1. Puedes proporcionar tu propia librería JS, pero asegúrate de empaquetar todas las dependencias en un único archivo JS con [Browserify](http://browserify.org) o [WebPack](https://webpack.js.org).
2. Asegúrate de exportar las funciones correctamente.
3. Coloca el archivo en **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs/your-lib.js**
4. Importa el archivo con:

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

Por ejemplo:

```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')
```

> **Nota:** Puedes consultar las librerías integradas como referencia en **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs/**

## 4. Notas {#4-notes}

> **Nota:** Gracias a [Ivan Mathy](https://github.com/IvanMathy) por crear la app Boop, que inspiró los addons integrados de Proxyman.
