Wakaru es el descompilador de JavaScript para la interfaz moderna. Recupera el código original de una fuente agrupada y transpilada.
Ver demostración en vivo para ejemplos detallados.
Convierte el código transpilado a su forma legible y restaura las sintaxis degradada.
Apoya a los siguientes transpiladores:
Lea la documentación para obtener más información.
Convierte JavaScript en módulos separados
Admite los siguientes agrupadores:
Pruebe la herramienta y viéndola en acción en Playground.
Por defecto, la CLI se ejecutará en modo interactivo y lo guiará a través del proceso.
También puede pasar opciones para omitir algunos pasos en el modo interactivo.
npx @wakaru/cli
# or
pnpm dlx @wakaru/cli Ejecute npx @wakaru/cli --help para ver la lista completa de opciones.
| Opción | Por defecto | Descripción |
|---|---|---|
--output | "out" | Directorio de salida |
--force | false | Forzar sobrescribir el directorio de salida |
--concurrency | 1 | Específico el número de tareas concurrentes |
--perf | false | Mostrar métricas de rendimiento |
--perf-output | Directorio de salida de métricas de rendimiento |
--concurrency se puede usar para acelerar el proceso. Pero por favor consciente de que el proceso podría OOM si el archivo de entrada es demasiado grande.
Si desea ejecutar la CLI en modo no interactivo, puede especificar la función pasando el nombre de la función como primer argumento.
unpacker y unminify ejecutarán solo la característica correspondiente.
all ejecutarán unpacker y unminify secuencialmente.
npx @wakaru/cli all <files...> [options]
npx @wakaru/cli unpacker <files...> [options]
npx @wakaru/cli unminify <files...> [options]
Estas opciones solo están disponibles en all modo.
| Opción | Por defecto | Descripción |
|---|---|---|
--unpacker-output | "out/unpack" | Anular el directorio de salida del desempaquador |
--unminify-output | "out/unminify" | Anular un directorio de salida no minificar |
Al ejecutar una sola característica (ya sea unpacker o unminify ), la CLI solo usará la ruta especificada en la opción --output . Esto significa que, a diferencia de all los modos donde los subdirectorios ( out/unpack y out/unminify ) se crean automáticamente dentro del directorio de salida, en modo de característica única, los archivos de salida se colocan directamente en el directorio especificado --output sin ninguna subdirectores adicionales.
npm install @wakaru/unpacker @wakaru/unminify
# or
pnpm install @wakaru/unpacker @wakaru/unminify
# or
yarn add @wakaru/unpacker @wakaru/unminify@wakaru/unpacker import { unpack } from '@wakaru/unpacker' ;
const { modules , moduleIdMapping } = await unpack ( sourceCode ) ;
for ( const mod of modules ) {
const filename = moduleIdMapping [ mod . id ] ?? `module- ${ mod . id } .js` ;
fs . writeFileSync ( outputPath , mod . code , 'utf-8' ) ;
}@wakaru/unminify import { runDefaultTransformationRules , runTransformationRules } from '@wakaru/unminify' ;
const file = {
source : '...' , // source code
path : '...' , // path to the file, used for advanced usecases. Can be empty.
}
// This function will apply all rules that are enabled by default.
const { code } = await runDefaultTransformationRules ( file ) ;
// You can also specify the rules to apply. Order matters.
const rules = [
'un-esm' ,
...
]
const { code } = await runTransformationRules ( file , rules ) ;Puede verificar todas las reglas en /unminify/src/transformations/index.ts.
Por favor, consulte que este proyecto todavía está en desarrollo temprano. La API podría cambiar en el futuro.
Y el tamaño del paquete de estos paquetes es enorme. Podría reducirse en el futuro. Use con precaución en el navegador (sí, como el patio de recreo, puede funcionar en el navegador).
El uso de wakaru para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final obedecer todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no son responsables del mal uso o daño causado por este programa.
MIT