devkill 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.es.md +253 -0
- package/README.id.md +238 -0
- package/README.md +377 -0
- package/README.pt.md +241 -0
- package/README.tr.md +242 -0
- package/lib/cli/cli.controller.d.ts +81 -0
- package/lib/cli/cli.controller.js +760 -0
- package/lib/cli/cli.controller.js.map +1 -0
- package/lib/cli/interfaces/cli-options.interface.d.ts +5 -0
- package/lib/cli/interfaces/cli-options.interface.js +2 -0
- package/lib/cli/interfaces/cli-options.interface.js.map +1 -0
- package/lib/cli/interfaces/command-keys.interface.d.ts +17 -0
- package/lib/cli/interfaces/command-keys.interface.js +2 -0
- package/lib/cli/interfaces/command-keys.interface.js.map +1 -0
- package/lib/cli/interfaces/config.interface.d.ts +17 -0
- package/lib/cli/interfaces/config.interface.js +2 -0
- package/lib/cli/interfaces/config.interface.js.map +1 -0
- package/lib/cli/interfaces/index.d.ts +11 -0
- package/lib/cli/interfaces/index.js +12 -0
- package/lib/cli/interfaces/index.js.map +1 -0
- package/lib/cli/interfaces/json-output.interface.d.ts +30 -0
- package/lib/cli/interfaces/json-output.interface.js +2 -0
- package/lib/cli/interfaces/json-output.interface.js.map +1 -0
- package/lib/cli/interfaces/key-press.interface.d.ts +7 -0
- package/lib/cli/interfaces/key-press.interface.js +2 -0
- package/lib/cli/interfaces/key-press.interface.js.map +1 -0
- package/lib/cli/interfaces/node-version.interface.d.ts +5 -0
- package/lib/cli/interfaces/node-version.interface.js +2 -0
- package/lib/cli/interfaces/node-version.interface.js.map +1 -0
- package/lib/cli/interfaces/stats.interface.d.ts +15 -0
- package/lib/cli/interfaces/stats.interface.js +2 -0
- package/lib/cli/interfaces/stats.interface.js.map +1 -0
- package/lib/cli/interfaces/ui-positions.interface.d.ts +5 -0
- package/lib/cli/interfaces/ui-positions.interface.js +2 -0
- package/lib/cli/interfaces/ui-positions.interface.js.map +1 -0
- package/lib/cli/interfaces/version.interface.d.ts +5 -0
- package/lib/cli/interfaces/version.interface.js +2 -0
- package/lib/cli/interfaces/version.interface.js.map +1 -0
- package/lib/cli/models/start-parameters.model.d.ts +7 -0
- package/lib/cli/models/start-parameters.model.js +25 -0
- package/lib/cli/models/start-parameters.model.js.map +1 -0
- package/lib/cli/services/console.service.d.ts +23 -0
- package/lib/cli/services/console.service.js +87 -0
- package/lib/cli/services/console.service.js.map +1 -0
- package/lib/cli/services/https.service.d.ts +4 -0
- package/lib/cli/services/https.service.js +32 -0
- package/lib/cli/services/https.service.js.map +1 -0
- package/lib/cli/services/index.d.ts +7 -0
- package/lib/cli/services/index.js +8 -0
- package/lib/cli/services/index.js.map +1 -0
- package/lib/cli/services/json-output.service.d.ts +20 -0
- package/lib/cli/services/json-output.service.js +101 -0
- package/lib/cli/services/json-output.service.js.map +1 -0
- package/lib/cli/services/results.service.d.ts +13 -0
- package/lib/cli/services/results.service.js +61 -0
- package/lib/cli/services/results.service.js.map +1 -0
- package/lib/cli/services/scan.service.d.ts +13 -0
- package/lib/cli/services/scan.service.js +79 -0
- package/lib/cli/services/scan.service.js.map +1 -0
- package/lib/cli/services/spinner.service.d.ts +9 -0
- package/lib/cli/services/spinner.service.js +27 -0
- package/lib/cli/services/spinner.service.js.map +1 -0
- package/lib/cli/services/ui.service.d.ts +17 -0
- package/lib/cli/services/ui.service.js +59 -0
- package/lib/cli/services/ui.service.js.map +1 -0
- package/lib/cli/services/update.service.d.ts +15 -0
- package/lib/cli/services/update.service.js +37 -0
- package/lib/cli/services/update.service.js.map +1 -0
- package/lib/cli/ui/base.ui.d.ts +28 -0
- package/lib/cli/ui/base.ui.js +49 -0
- package/lib/cli/ui/base.ui.js.map +1 -0
- package/lib/cli/ui/components/general.ui.d.ts +7 -0
- package/lib/cli/ui/components/general.ui.js +13 -0
- package/lib/cli/ui/components/general.ui.js.map +1 -0
- package/lib/cli/ui/components/header/header-ui.constants.d.ts +7 -0
- package/lib/cli/ui/components/header/header-ui.constants.js +7 -0
- package/lib/cli/ui/components/header/header-ui.constants.js.map +1 -0
- package/lib/cli/ui/components/header/header.ui.d.ts +18 -0
- package/lib/cli/ui/components/header/header.ui.js +96 -0
- package/lib/cli/ui/components/header/header.ui.js.map +1 -0
- package/lib/cli/ui/components/header/stats.ui.d.ts +25 -0
- package/lib/cli/ui/components/header/stats.ui.js +198 -0
- package/lib/cli/ui/components/header/stats.ui.js.map +1 -0
- package/lib/cli/ui/components/header/status.ui.d.ts +33 -0
- package/lib/cli/ui/components/header/status.ui.js +188 -0
- package/lib/cli/ui/components/header/status.ui.js.map +1 -0
- package/lib/cli/ui/components/help/help-command.ui.d.ts +9 -0
- package/lib/cli/ui/components/help/help-command.ui.js +61 -0
- package/lib/cli/ui/components/help/help-command.ui.js.map +1 -0
- package/lib/cli/ui/components/help/help.constants.d.ts +8 -0
- package/lib/cli/ui/components/help/help.constants.js +270 -0
- package/lib/cli/ui/components/help/help.constants.js.map +1 -0
- package/lib/cli/ui/components/help/help.ui.d.ts +30 -0
- package/lib/cli/ui/components/help/help.ui.js +176 -0
- package/lib/cli/ui/components/help/help.ui.js.map +1 -0
- package/lib/cli/ui/components/logs.ui.d.ts +24 -0
- package/lib/cli/ui/components/logs.ui.js +132 -0
- package/lib/cli/ui/components/logs.ui.js.map +1 -0
- package/lib/cli/ui/components/options.ui.d.ts +29 -0
- package/lib/cli/ui/components/options.ui.js +327 -0
- package/lib/cli/ui/components/options.ui.js.map +1 -0
- package/lib/cli/ui/components/profile-picker.ui.d.ts +25 -0
- package/lib/cli/ui/components/profile-picker.ui.js +117 -0
- package/lib/cli/ui/components/profile-picker.ui.js.map +1 -0
- package/lib/cli/ui/components/result-details.ui.d.ts +23 -0
- package/lib/cli/ui/components/result-details.ui.js +182 -0
- package/lib/cli/ui/components/result-details.ui.js.map +1 -0
- package/lib/cli/ui/components/results.ui.d.ts +86 -0
- package/lib/cli/ui/components/results.ui.js +620 -0
- package/lib/cli/ui/components/results.ui.js.map +1 -0
- package/lib/cli/ui/components/warning.ui.d.ts +12 -0
- package/lib/cli/ui/components/warning.ui.js +30 -0
- package/lib/cli/ui/components/warning.ui.js.map +1 -0
- package/lib/cli/ui/heavy.ui.d.ts +18 -0
- package/lib/cli/ui/heavy.ui.js +37 -0
- package/lib/cli/ui/heavy.ui.js.map +1 -0
- package/lib/cli/ui/index.d.ts +14 -0
- package/lib/cli/ui/index.js +15 -0
- package/lib/cli/ui/index.js.map +1 -0
- package/lib/constants/cli.constants.d.ts +14 -0
- package/lib/constants/cli.constants.js +138 -0
- package/lib/constants/cli.constants.js.map +1 -0
- package/lib/constants/index.d.ts +8 -0
- package/lib/constants/index.js +9 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/main.constants.d.ts +96 -0
- package/lib/constants/main.constants.js +79 -0
- package/lib/constants/main.constants.js.map +1 -0
- package/lib/constants/messages.constants.d.ts +31 -0
- package/lib/constants/messages.constants.js +37 -0
- package/lib/constants/messages.constants.js.map +1 -0
- package/lib/constants/options.constants.d.ts +6 -0
- package/lib/constants/options.constants.js +8 -0
- package/lib/constants/options.constants.js.map +1 -0
- package/lib/constants/os-service-map.constants.d.ts +10 -0
- package/lib/constants/os-service-map.constants.js +11 -0
- package/lib/constants/os-service-map.constants.js.map +1 -0
- package/lib/constants/result-descriptions.constants.d.ts +142 -0
- package/lib/constants/result-descriptions.constants.js +203 -0
- package/lib/constants/result-descriptions.constants.js.map +1 -0
- package/lib/constants/sort.result.d.ts +6 -0
- package/lib/constants/sort.result.js +22 -0
- package/lib/constants/sort.result.js.map +1 -0
- package/lib/constants/spinner.constants.d.ts +5 -0
- package/lib/constants/spinner.constants.js +88 -0
- package/lib/constants/spinner.constants.js.map +1 -0
- package/lib/constants/status.constants.d.ts +7 -0
- package/lib/constants/status.constants.js +9 -0
- package/lib/constants/status.constants.js.map +1 -0
- package/lib/constants/update.constants.d.ts +2 -0
- package/lib/constants/update.constants.js +3 -0
- package/lib/constants/update.constants.js.map +1 -0
- package/lib/constants/workers.constants.d.ts +14 -0
- package/lib/constants/workers.constants.js +16 -0
- package/lib/constants/workers.constants.js.map +1 -0
- package/lib/core/constants/global-ignored.constants.d.ts +1 -0
- package/lib/core/constants/global-ignored.constants.js +44 -0
- package/lib/core/constants/global-ignored.constants.js.map +1 -0
- package/lib/core/constants/index.d.ts +1 -0
- package/lib/core/constants/index.js +2 -0
- package/lib/core/constants/index.js.map +1 -0
- package/lib/core/constants/profiles.constants.d.ts +8 -0
- package/lib/core/constants/profiles.constants.js +138 -0
- package/lib/core/constants/profiles.constants.js.map +1 -0
- package/lib/core/devkill.d.ts +25 -0
- package/lib/core/devkill.js +129 -0
- package/lib/core/devkill.js.map +1 -0
- package/lib/core/index.d.ts +4 -0
- package/lib/core/index.js +5 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/interfaces/devkill.interface.d.ts +78 -0
- package/lib/core/interfaces/devkill.interface.js +2 -0
- package/lib/core/interfaces/devkill.interface.js.map +1 -0
- package/lib/core/interfaces/devkillrc-config.interface.d.ts +87 -0
- package/lib/core/interfaces/devkillrc-config.interface.js +12 -0
- package/lib/core/interfaces/devkillrc-config.interface.js.map +1 -0
- package/lib/core/interfaces/file-service.interface.d.ts +76 -0
- package/lib/core/interfaces/file-service.interface.js +2 -0
- package/lib/core/interfaces/file-service.interface.js.map +1 -0
- package/lib/core/interfaces/folder.interface.d.ts +89 -0
- package/lib/core/interfaces/folder.interface.js +2 -0
- package/lib/core/interfaces/folder.interface.js.map +1 -0
- package/lib/core/interfaces/index.d.ts +6 -0
- package/lib/core/interfaces/index.js +7 -0
- package/lib/core/interfaces/index.js.map +1 -0
- package/lib/core/interfaces/logger-service.interface.d.ts +59 -0
- package/lib/core/interfaces/logger-service.interface.js +2 -0
- package/lib/core/interfaces/logger-service.interface.js.map +1 -0
- package/lib/core/interfaces/npkill.interface.d.ts +78 -0
- package/lib/core/interfaces/npkill.interface.js +2 -0
- package/lib/core/interfaces/npkill.interface.js.map +1 -0
- package/lib/core/interfaces/npkillrc-config.interface.d.ts +87 -0
- package/lib/core/interfaces/npkillrc-config.interface.js +12 -0
- package/lib/core/interfaces/npkillrc-config.interface.js.map +1 -0
- package/lib/core/interfaces/profile.interface.d.ts +9 -0
- package/lib/core/interfaces/profile.interface.js +2 -0
- package/lib/core/interfaces/profile.interface.js.map +1 -0
- package/lib/core/interfaces/search-status.model.d.ts +35 -0
- package/lib/core/interfaces/search-status.model.js +48 -0
- package/lib/core/interfaces/search-status.model.js.map +1 -0
- package/lib/core/interfaces/services.interface.d.ts +26 -0
- package/lib/core/interfaces/services.interface.js +2 -0
- package/lib/core/interfaces/services.interface.js.map +1 -0
- package/lib/core/npkill.d.ts +25 -0
- package/lib/core/npkill.js +129 -0
- package/lib/core/npkill.js.map +1 -0
- package/lib/core/services/config/config-merger.d.ts +17 -0
- package/lib/core/services/config/config-merger.js +57 -0
- package/lib/core/services/config/config-merger.js.map +1 -0
- package/lib/core/services/config/config-validator.d.ts +3 -0
- package/lib/core/services/config/config-validator.js +43 -0
- package/lib/core/services/config/config-validator.js.map +1 -0
- package/lib/core/services/config/index.d.ts +4 -0
- package/lib/core/services/config/index.js +5 -0
- package/lib/core/services/config/index.js.map +1 -0
- package/lib/core/services/config/profile-validator.d.ts +6 -0
- package/lib/core/services/config/profile-validator.js +68 -0
- package/lib/core/services/config/profile-validator.js.map +1 -0
- package/lib/core/services/config/property-validators.d.ts +33 -0
- package/lib/core/services/config/property-validators.js +125 -0
- package/lib/core/services/config/property-validators.js.map +1 -0
- package/lib/core/services/config.service.d.ts +37 -0
- package/lib/core/services/config.service.js +100 -0
- package/lib/core/services/config.service.js.map +1 -0
- package/lib/core/services/files/files.service.d.ts +28 -0
- package/lib/core/services/files/files.service.js +207 -0
- package/lib/core/services/files/files.service.js.map +1 -0
- package/lib/core/services/files/files.worker.d.ts +1 -0
- package/lib/core/services/files/files.worker.js +286 -0
- package/lib/core/services/files/files.worker.js.map +1 -0
- package/lib/core/services/files/files.worker.service.d.ts +90 -0
- package/lib/core/services/files/files.worker.service.js +216 -0
- package/lib/core/services/files/files.worker.service.js.map +1 -0
- package/lib/core/services/files/index.d.ts +4 -0
- package/lib/core/services/files/index.js +5 -0
- package/lib/core/services/files/index.js.map +1 -0
- package/lib/core/services/files/unix-files.service.d.ts +9 -0
- package/lib/core/services/files/unix-files.service.js +28 -0
- package/lib/core/services/files/unix-files.service.js.map +1 -0
- package/lib/core/services/files/windows-files.service.d.ts +9 -0
- package/lib/core/services/files/windows-files.service.js +16 -0
- package/lib/core/services/files/windows-files.service.js.map +1 -0
- package/lib/core/services/index.d.ts +5 -0
- package/lib/core/services/index.js +6 -0
- package/lib/core/services/index.js.map +1 -0
- package/lib/core/services/logger.service.d.ts +22 -0
- package/lib/core/services/logger.service.js +84 -0
- package/lib/core/services/logger.service.js.map +1 -0
- package/lib/core/services/profiles.service.d.ts +54 -0
- package/lib/core/services/profiles.service.js +86 -0
- package/lib/core/services/profiles.service.js.map +1 -0
- package/lib/core/services/stream.service.d.ts +12 -0
- package/lib/core/services/stream.service.js +39 -0
- package/lib/core/services/stream.service.js.map +1 -0
- package/lib/dirname.d.ts +2 -0
- package/lib/dirname.js +6 -0
- package/lib/dirname.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/lib/main.d.ts +2 -0
- package/lib/main.js +19 -0
- package/lib/main.js.map +1 -0
- package/lib/utils/get-file-content.d.ts +1 -0
- package/lib/utils/get-file-content.js +6 -0
- package/lib/utils/get-file-content.js.map +1 -0
- package/lib/utils/is-safe-to-delete.d.ts +1 -0
- package/lib/utils/is-safe-to-delete.js +9 -0
- package/lib/utils/is-safe-to-delete.js.map +1 -0
- package/lib/utils/unit-conversions.d.ts +11 -0
- package/lib/utils/unit-conversions.js +54 -0
- package/lib/utils/unit-conversions.js.map +1 -0
- package/package.json +96 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Estefanía García Gallardo and Juan Torres Gómez
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.es.md
ADDED
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://npkill.js.org/img/npkill-text-outlined.svg" width="320" alt="devkill logo" />
|
|
3
|
+
</p>
|
|
4
|
+
<p align="center">
|
|
5
|
+
<img alt="npm" src="https://img.shields.io/npm/dy/devkill.svg">
|
|
6
|
+
<a href="#donations"><img src="https://img.shields.io/badge/donate-<3-red" alt="Donations Badge"/></a>
|
|
7
|
+
<img alt="npm version" src="https://img.shields.io/npm/v/devkill.svg">
|
|
8
|
+
<img alt="NPM" src="https://img.shields.io/npm/l/devkill.svg">
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
### Encuentra y **destruye** directorios de construcción y caché viejos y pesados en múltiples lenguajes :sparkles:
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<img src="/docs/npkill-demo-0.10.0.gif" alt="devkill demo GIF" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
Esta herramienta te permite listar cualquier directorio _node_modules_, entornos virtuales de Python, artefactos de construcción y mucho más que haya en tu sistema, además del espacio que ocupa. Entonces puedes seleccionar los que quieras borrar para liberar espacio. ¡Yay!
|
|
18
|
+
|
|
19
|
+
## i18n
|
|
20
|
+
|
|
21
|
+
Nos estamos esforzando por internacionalizar la documentación de Devkill. Aquí tienes una lista de las traducciones disponibles:
|
|
22
|
+
|
|
23
|
+
- [Español](./README.es.md)
|
|
24
|
+
- [Indonesian](./README.id.md)
|
|
25
|
+
- [Português](./README.pt.md)
|
|
26
|
+
- [Turkish](./README.tr.md)
|
|
27
|
+
|
|
28
|
+
## Table of Contents
|
|
29
|
+
|
|
30
|
+
- [Características](#features)
|
|
31
|
+
- [Instalación](#installation)
|
|
32
|
+
- [Uso](#usage)
|
|
33
|
+
- [Opciones](#options)
|
|
34
|
+
- [Ejemplos](#examples)
|
|
35
|
+
- [Configuración local](#setup-locally)
|
|
36
|
+
- [Roadmap](#roadmap)
|
|
37
|
+
- [Bugs conocidos](#known-bugs)
|
|
38
|
+
- [Cómo contribuir](#contributing)
|
|
39
|
+
- [Invítanos a un café](#donations)
|
|
40
|
+
- [Licencia](#license)
|
|
41
|
+
|
|
42
|
+
<a name="features"></a>
|
|
43
|
+
|
|
44
|
+
# :heavy_check_mark: Características
|
|
45
|
+
|
|
46
|
+
- **Limpieza multi-lenguaje:** Perfiles para Node.js, Python, Rust, Java, C++, Unity y más, cada uno con listas de directorios seguros para eliminar.
|
|
47
|
+
|
|
48
|
+
- **Libera espacio:** Elimina tus directorios viejos y polvorientos que le roban espacio a tu máquina.
|
|
49
|
+
|
|
50
|
+
- **Último uso del Workspace**: Comprueba cuándo ha sido la última vez que has modificado un fichero en el workspace (indicado en la columna **last_mod**).
|
|
51
|
+
|
|
52
|
+
- **Rapidez:** Devkill está escrito en TypeScript, pero las búsquedas se llevan a cabo a bajo nivel, lo que supone una mejora considerable del rendimiento.
|
|
53
|
+
|
|
54
|
+
- **Fácil de utilizar:** Despídete de comandos largos y difíciles. Utilizar Devkill es tan sencillo como elegir un perfil, leer la lista de directorios, y pulsar la tecla Del para eliminarlos. ¿Podría ser más fácil? ;)
|
|
55
|
+
|
|
56
|
+
- **Minificado:** Apenas tiene dependencias.
|
|
57
|
+
|
|
58
|
+
<a name="installation"></a>
|
|
59
|
+
|
|
60
|
+
# :cloud: Instalación
|
|
61
|
+
|
|
62
|
+
¡Lo mejor es que no tienes que instalar Devkill para utilizarlo!
|
|
63
|
+
Simplemente utiliza el siguiente comando:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
$ npx devkill
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
O, si por alguna razón te apetece instalarlo:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
$ npm i -g devkill
|
|
73
|
+
# Los usuarios de Unix quizá tengan que ejecutar el comando con sudo. Ve con cuidado
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
> Devkill requiere node>=18.18.0.
|
|
77
|
+
|
|
78
|
+
<a name="usage"></a>
|
|
79
|
+
|
|
80
|
+
# :clipboard: Uso
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
$ npx devkill
|
|
84
|
+
# o solo devkill si está instalado de forma global
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Por defecto, Devkill comenzará la búsqueda comenzando en la ruta donde se ejecute el comando `devkill`.
|
|
88
|
+
|
|
89
|
+
Muévete por los distintos directorios listados con <kbd>↓</kbd> <kbd>↑</kbd>, y utiliza <kbd>Space</kbd> para borrar el directorio seleccionado.
|
|
90
|
+
|
|
91
|
+
También puedes usar <kbd>j</kbd> y <kbd>k</kbd> para moverte por los resultados.
|
|
92
|
+
|
|
93
|
+
Puedes abrir el directorio donde se aloja el resultado seleccionado pulsando <kbd>o</kbd>.
|
|
94
|
+
|
|
95
|
+
Para salir de Devkill, utiliza <kbd>Q</kbd>, o si te sientes valiente, <kbd>Ctrl</kbd> + <kbd>c</kbd>.
|
|
96
|
+
|
|
97
|
+
**¡Importante!** Algunas aplicaciones que están instaladas en el sistema necesitan sus directorios para funcionar, y borrarlo puede romperlas. Devkill te mostrará un :warning: para que sepas que tienes que tener cuidado.
|
|
98
|
+
|
|
99
|
+
<a name="options"></a>
|
|
100
|
+
|
|
101
|
+
## Opciones
|
|
102
|
+
|
|
103
|
+
| ARGUMENTO | DESCRIPCIÓN |
|
|
104
|
+
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
105
|
+
| -p, --profiles | Permite seleccionar el [perfil](./docs/profiles.md) (conjunto de objetivos) a usar. Por defecto: **node**. |
|
|
106
|
+
| --config | Ruta a un fichero de configuración .devkillrc personalizado. |
|
|
107
|
+
| -d, --directory | Permite seleccionar el directorio desde el que comienza la búsqueda. Por defecto, se empieza en . |
|
|
108
|
+
| -D, --delete-all | Borra automáticamente todos los directorios que se encuentren. Recomendable utilizar junto a `-x` |
|
|
109
|
+
| -e, --hide-errors | Esconde los errores en el caso de que ocurra alguno |
|
|
110
|
+
| -E, --exclude | Excluye directorios de la búsqueda (la lista de directorios debe estar entre comillas dobles "", cada directorio separado por ',' Ejemplo: "ignore1, ignore2") |
|
|
111
|
+
| -f, --full | Comienza la búsqueda en el home del usuario (ejemplo: "/home/user" en Linux) |
|
|
112
|
+
| --size-unit | Unidad para mostrar el tamaño de las carpetas. _(Disponible: **auto**, mb, gb)_ |
|
|
113
|
+
| -h, --help, ? | Muestra esta página de ayuda y finaliza |
|
|
114
|
+
| -nu, --no-check-update | No comprobar si hay actualizaciones al iniciar la aplicación |
|
|
115
|
+
| -s, --sort | Ordena los resultados por: `size`, `path` o `age` |
|
|
116
|
+
| -t, --targets | Desactiva los perfiles y especifica los nombres de directorio a buscar. Separa con coma. Ej. `-t node_modules,.cache`. |
|
|
117
|
+
| -x, --exclude-sensitive | Excluye directorios sensibles. |
|
|
118
|
+
| -y | Evita mostrar advertencia al ejecutar --delete-all. |
|
|
119
|
+
| --dry-run | No borra nada (simula un tiempo de borrado aleatorio) |
|
|
120
|
+
| --json | Muestra los resultados en formato JSON al final del escaneo. |
|
|
121
|
+
| --json-stream | Muestra los resultados en formato JSON en streaming (un objeto por línea). |
|
|
122
|
+
| -v, --version | Muestra la versión de Devkill |
|
|
123
|
+
|
|
124
|
+
<a name="examples"></a>
|
|
125
|
+
|
|
126
|
+
## Ejemplo
|
|
127
|
+
|
|
128
|
+
- Busca y encuentra los directorios **node_modules** en un directorio _projects_ :
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
devkill -d ~/projects
|
|
132
|
+
|
|
133
|
+
# otra alternativa:
|
|
134
|
+
cd ~/projects
|
|
135
|
+
devkill
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
- Escanea Node.js y Python en tus proyectos:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
devkill -d ~/projects --profiles node,python
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
- Lista los **node_modules** en el directorio _projects_, excluyendo los que están en los directorios _progress_ e _ignore-this_:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
devkill -d 'projects' --exclude "progress, ignore-this"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- Borra automáticamente todos los **node_modules** que se encuentren en el directorio _backups_:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
devkill -d ~/backups/ --delete-all
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
<a name="setup-locally"></a>
|
|
157
|
+
|
|
158
|
+
# :pager: Configuración local
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# -- Primero, clona el repositorio
|
|
162
|
+
git clone https://github.com/zaldih/npkill.git
|
|
163
|
+
|
|
164
|
+
# -- Navega al dir
|
|
165
|
+
cd npkill
|
|
166
|
+
|
|
167
|
+
# -- Instala las dependencias
|
|
168
|
+
npm install
|
|
169
|
+
|
|
170
|
+
# -- ¡Y ejecuta!
|
|
171
|
+
npm run start
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
# -- Si quieres ejecutar con algún parámetro, hay que añadir "--", tal y como se muestra a continuación:
|
|
175
|
+
npm run start -- -f -e
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
<a name="roadmap"></a>
|
|
179
|
+
|
|
180
|
+
# :crystal_ball: Roadmap
|
|
181
|
+
|
|
182
|
+
- [x] Lanzar la versión 0.1.0 !
|
|
183
|
+
- [x] Mejorar el código
|
|
184
|
+
- [x] Mejorar el rendimiento
|
|
185
|
+
- [ ] ¡Mejorar el rendimiento aún más!
|
|
186
|
+
- [x] Ordenar los resultados por tamaño y ruta
|
|
187
|
+
- [x] Permitir la búsqueda de otro tipo de directorios (targets)
|
|
188
|
+
- [x] Perfiles multi-lenguaje (node, python, rust, java, etc.)
|
|
189
|
+
- [x] Selector de perfiles interactivo al inicio
|
|
190
|
+
- [ ] Reducir las dependencies para ser un módulo más minimalista
|
|
191
|
+
- [ ] Permitir el filtrado por directorios que no se hayan utilizado en un periodo de tiempo determinado
|
|
192
|
+
- [ ] Crear una opción para mostrar los directorios en formato árbol
|
|
193
|
+
- [x] Añadir menús
|
|
194
|
+
- [x] Añadir un servicio de logs
|
|
195
|
+
- [ ] Limpieza periódica y automática (?)
|
|
196
|
+
|
|
197
|
+
<a name="known-bugs"></a>
|
|
198
|
+
|
|
199
|
+
# :bug: Bugs conocidos :bug:
|
|
200
|
+
|
|
201
|
+
- A veces, el CLI se bloquea mientras un directorio se está borrando.
|
|
202
|
+
- La ordenación, especialmente por rutas, puede ralentizar la terminal cuando haya muchos resultados al mismo tiempo.
|
|
203
|
+
- A veces, los cálculos de tamaño son mayores de lo que deberían ser.
|
|
204
|
+
- (RESUELTO) Problemas de rendimiento al hacer la búsqueda desde directorios de alto nivel (como / en Linux).
|
|
205
|
+
- (RESUELTO) A veces el texto se colapsa al actualizar el CLI.
|
|
206
|
+
- (RESUELTO) Analizar el tamaño de los directorios tarda más de lo que debería.
|
|
207
|
+
|
|
208
|
+
> Si encuentras algún bug, no dudes en abrir un issue :)
|
|
209
|
+
|
|
210
|
+
<a name="contributing"></a>
|
|
211
|
+
|
|
212
|
+
# :revolving_hearts: Cómo contribuir
|
|
213
|
+
|
|
214
|
+
Si quieres contribuir, échale un vistazo al [CONTRIBUTING.md](.github/CONTRIBUTING.es.md)
|
|
215
|
+
|
|
216
|
+
<a name="donations"></a>
|
|
217
|
+
|
|
218
|
+
# :coffee: Invítanos a un café
|
|
219
|
+
|
|
220
|
+
<img align="right" width="300" src="https://npkill.js.org/img/cat-donation-cup.png">
|
|
221
|
+
Hemos desarrollado Devkill en nuestro tiempo libre, porque nos apasiona la programación.
|
|
222
|
+
|
|
223
|
+
El día de mañana nos gustaría dedicarnos al open source completamente, pero antes, nos queda un largo camino por recorrer.
|
|
224
|
+
|
|
225
|
+
Seguiremos contribuyendo al open source por y para siempre, pero las donaciones son una de las muchas formas de apoyarnos.
|
|
226
|
+
|
|
227
|
+
¡Invítanos a un café! (O a un té para Nya, la única programadora a la que no le gusta el café).
|
|
228
|
+
|
|
229
|
+
<span class="badge-opencollective"><a href="https://opencollective.com/npkill/contribute" title="Dona a este proyecto utilizando Open Collective"><img src="https://img.shields.io/badge/open%20collective-donate-green.svg" alt="Botón de donar con Open Collective" /></a></span>
|
|
230
|
+
|
|
231
|
+
### ¡¡Mil gracias!!
|
|
232
|
+
|
|
233
|
+
## Muchísimas gracias a todos los que nos han apoyado :heart:
|
|
234
|
+
|
|
235
|
+
<a href="https://opencollective.com/npkill#backers" target="_blank"><img width="535" src="https://opencollective.com/npkill/tiers/backer.svg?width=535"></a>
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### Alternativa cripto
|
|
240
|
+
|
|
241
|
+
- btc: 1ML2DihUoFTqhoQnrWy4WLxKbVYkUXpMAX
|
|
242
|
+
- bch: 1HVpaicQL5jWKkbChgPf6cvkH8nyktVnVk
|
|
243
|
+
- eth: 0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259
|
|
244
|
+
|
|
245
|
+
<a name="license"></a>
|
|
246
|
+
|
|
247
|
+
# :scroll: Licencia
|
|
248
|
+
|
|
249
|
+
MIT © [Nya García Gallardo](https://github.com/NyaGarcia) y [Juan Torres Gómez](https://github.com/zaldih)
|
|
250
|
+
|
|
251
|
+
:cat::baby_chick:
|
|
252
|
+
|
|
253
|
+
---
|
package/README.id.md
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://npkill.js.org/img/npkill-text-outlined.svg" width="320" alt="devkill logo" />
|
|
3
|
+
</p>
|
|
4
|
+
<p align="center">
|
|
5
|
+
<img alt="npm" src="https://img.shields.io/npm/dy/devkill.svg">
|
|
6
|
+
<a href="#donations"><img src="https://img.shields.io/badge/donate-<3-red" alt="Donations Badge"/></a>
|
|
7
|
+
<img alt="npm version" src="https://img.shields.io/npm/v/devkill.svg">
|
|
8
|
+
<img alt="NPM" src="https://img.shields.io/npm/l/devkill.svg">
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
### Mudah menemukan dan **menghapus** direktori build dan cache lama yang berat di berbagai bahasa pemrograman :sparkles:
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<img src="/docs/npkill-demo-0.10.0.gif" alt="devkill demo GIF" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
Alat ini memungkinkan Anda untuk mencantumkan direktori _node_modules_, virtual environment Python, artefak build, dan banyak lagi di sistem Anda, serta ruang yang mereka gunakan. Anda kemudian dapat memilih mana yang ingin Anda hapus untuk mengosongkan ruang penyimpanan. Yay!
|
|
18
|
+
|
|
19
|
+
## i18n
|
|
20
|
+
|
|
21
|
+
Kami berusaha untuk menerjemahkan dokumen Devkill ke berbagai bahasa. Berikut daftar terjemahan yang tersedia:
|
|
22
|
+
|
|
23
|
+
- [Español](./README.es.md)
|
|
24
|
+
- [Indonesian](./README.id.md)
|
|
25
|
+
- [Portugis](./README.pt.md)
|
|
26
|
+
- [Turki](./README.tr.md)
|
|
27
|
+
|
|
28
|
+
## Daftar Isi
|
|
29
|
+
|
|
30
|
+
- [Fitur](#features)
|
|
31
|
+
- [Instalasi](#installation)
|
|
32
|
+
- [Penggunaan](#usage)
|
|
33
|
+
- [Opsi](#options)
|
|
34
|
+
- [Contoh](#examples)
|
|
35
|
+
- [Pengaturan Lokal](#setup-locally)
|
|
36
|
+
- [Peta Jalan](#roadmap)
|
|
37
|
+
- [Bug yang Diketahui](#known-bugs)
|
|
38
|
+
- [Kontribusi](#contributing)
|
|
39
|
+
- [Buy us a coffee](#donations)
|
|
40
|
+
- [Lisensi](#license)
|
|
41
|
+
|
|
42
|
+
<a name="features"></a>
|
|
43
|
+
|
|
44
|
+
# :heavy_check_mark: Fitur
|
|
45
|
+
|
|
46
|
+
- **Pembersihan multi-bahasa:** Profil untuk Node.js, Python, Rust, Java, C++, Unity, dan lainnya — masing-masing dengan daftar direktori yang aman untuk dihapus.
|
|
47
|
+
|
|
48
|
+
- **Bersihkan Ruang:** Hapus direktori lama yang tidak digunakan yang memenuhi mesin Anda.
|
|
49
|
+
|
|
50
|
+
- **Penggunaan Terakhir Workspace:** Cek kapan terakhir kali Anda mengubah file di workspace (ditunjukkan di kolom **last_mod**).
|
|
51
|
+
|
|
52
|
+
- **Sangat Cepat:** Devkill ditulis dalam TypeScript, tetapi pencarian dilakukan di tingkat rendah, sehingga performanya sangat baik.
|
|
53
|
+
|
|
54
|
+
- **Mudah Digunakan:** Tidak perlu perintah panjang. Menggunakan devkill semudah memilih profil, membaca daftar direktori, dan menekan tombol Del untuk menghapusnya.
|
|
55
|
+
|
|
56
|
+
- **Ringkas:** Hampir tidak memiliki dependensi.
|
|
57
|
+
|
|
58
|
+
<a name="installation"></a>
|
|
59
|
+
|
|
60
|
+
# :cloud: Instalasi
|
|
61
|
+
|
|
62
|
+
Anda tidak perlu menginstal untuk menggunakannya! Cukup gunakan perintah berikut:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
$ npx devkill
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Atau jika Anda benar-benar ingin menginstalnya:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
$ npm i -g devkill
|
|
72
|
+
# Pengguna Unix mungkin perlu menjalankan perintah dengan sudo. Gunakan dengan hati-hati
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
> Devkill membutuhkan node>=18.18.0.
|
|
76
|
+
|
|
77
|
+
<a name="usage"></a>
|
|
78
|
+
|
|
79
|
+
# :clipboard: Penggunaan
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
$ npx devkill
|
|
83
|
+
# atau cukup devkill jika telah diinstal secara global
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Secara default, devkill akan memindai mulai dari jalur tempat perintah `devkill` dijalankan.
|
|
87
|
+
|
|
88
|
+
Pindah di antara folder yang terdaftar menggunakan <kbd>↓</kbd> <kbd>↑</kbd>, dan gunakan <kbd>Space</kbd> atau <kbd>Del</kbd> untuk menghapus folder yang dipilih. Anda juga dapat menggunakan <kbd>j</kbd> dan <kbd>k</kbd> untuk bergerak di antara hasil.
|
|
89
|
+
|
|
90
|
+
Anda dapat membuka direktori tempat hasil yang dipilih berada dengan menekan <kbd>o</kbd>.
|
|
91
|
+
|
|
92
|
+
Untuk keluar, tekan <kbd>Q</kbd> atau <kbd>Ctrl</kbd> + <kbd>c</kbd>.
|
|
93
|
+
|
|
94
|
+
**Penting!** Beberapa aplikasi yang diinstal di sistem membutuhkan direktorinya untuk berfungsi, dan menghapusnya dapat menyebabkan kerusakan. Devkill akan menandainya dengan :warning: agar berhati-hati.
|
|
95
|
+
|
|
96
|
+
<a name="options"></a>
|
|
97
|
+
|
|
98
|
+
## Opsi
|
|
99
|
+
|
|
100
|
+
| ARGUMEN | DESKRIPSI |
|
|
101
|
+
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
102
|
+
| -p, --profiles | Pilih [profil](./docs/profiles.md) (kumpulan target) yang akan digunakan. Default: **node**. |
|
|
103
|
+
| --config | Jalur ke file konfigurasi .devkillrc kustom. |
|
|
104
|
+
| -d, --directory | Tetapkan direktori awal pencarian. Secara default, mulai dari . |
|
|
105
|
+
| -D, --delete-all | Secara otomatis hapus semua folder yang ditemukan. Disarankan digunakan bersama `-x`. |
|
|
106
|
+
| -e, --hide-errors | Sembunyikan kesalahan (jika ada) |
|
|
107
|
+
| -E, --exclude | Kecualikan direktori dari pencarian. Daftar direktori harus dalam tanda kutip ganda "", dipisahkan dengan ',' |
|
|
108
|
+
| -f, --full | Mulai pencarian dari direktori home pengguna (contoh: "/home/user" di Linux) |
|
|
109
|
+
| --size-unit | Unit untuk menampilkan ukuran folder. _(Tersedia: **auto**, mb, gb)_ |
|
|
110
|
+
| -h, --help, ? | Tampilkan halaman bantuan ini dan keluar |
|
|
111
|
+
| -nu, --no-check-update | Jangan memeriksa pembaruan saat startup |
|
|
112
|
+
| -s, --sort | Urutkan hasil berdasarkan: `size`, `path`, atau `age` |
|
|
113
|
+
| -t, --targets | Nonaktifkan profil dan tentukan nama direktori yang ingin dicari. Pisahkan dengan koma. Contoh: `-t node_modules,.cache`. |
|
|
114
|
+
| -x, --exclude-sensitive | Kecualikan direktori sensitif. |
|
|
115
|
+
| --dry-run | Tidak menghapus apa pun (hanya simulasi dengan delay acak). |
|
|
116
|
+
| --json | Keluarkan hasil dalam format JSON di akhir pemindaian. |
|
|
117
|
+
| --json-stream | Keluarkan hasil dalam format JSON streaming (satu objek per baris). |
|
|
118
|
+
| -v, --version | Tampilkan versi devkill |
|
|
119
|
+
|
|
120
|
+
<a name="examples"></a>
|
|
121
|
+
|
|
122
|
+
## Contoh
|
|
123
|
+
|
|
124
|
+
- Cari direktori **node_modules** di direktori _projects_ Anda:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
devkill -d ~/projects
|
|
128
|
+
|
|
129
|
+
# alternatif lain:
|
|
130
|
+
cd ~/projects
|
|
131
|
+
devkill
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
- Pindai Node.js dan Python di proyek Anda:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
devkill -d ~/projects --profiles node,python
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
- Secara otomatis hapus semua direktori yang ada di folder cadangan Anda:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
devkill -d ~/backups/ --delete-all
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
<a name="setup-locally"></a>
|
|
147
|
+
|
|
148
|
+
# :pager: Pengaturan Lokal
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# -- Pertama, kloning repositori
|
|
152
|
+
git clone https://github.com/zaldih/npkill.git
|
|
153
|
+
|
|
154
|
+
# -- Masuk ke direktori
|
|
155
|
+
cd npkill
|
|
156
|
+
|
|
157
|
+
# -- Instal dependensi
|
|
158
|
+
npm install
|
|
159
|
+
|
|
160
|
+
# -- Dan jalankan!
|
|
161
|
+
npm run start
|
|
162
|
+
|
|
163
|
+
# -- Jika ingin menjalankannya dengan parameter, tambahkan "--" seperti contoh berikut:
|
|
164
|
+
npm run start -- -f -e
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
<a name="roadmap"></a>
|
|
168
|
+
|
|
169
|
+
# :crystal_ball: Peta Jalan
|
|
170
|
+
|
|
171
|
+
- [x] Rilis versi 0.1.0!
|
|
172
|
+
- [x] Tingkatkan kode
|
|
173
|
+
- [x] Tingkatkan performa
|
|
174
|
+
- [ ] Tingkatkan performa lebih lanjut!
|
|
175
|
+
- [x] Urutkan hasil berdasarkan ukuran dan jalur
|
|
176
|
+
- [x] Izinkan pencarian untuk jenis direktori (target) lainnya
|
|
177
|
+
- [x] Profil multi-bahasa (node, python, rust, java, dll.)
|
|
178
|
+
- [x] Pemilih profil interaktif saat startup
|
|
179
|
+
- [ ] Kurangi dependensi agar minimalis
|
|
180
|
+
- [ ] Filter berdasarkan waktu terakhir penggunaan
|
|
181
|
+
- [ ] Tampilkan direktori dalam format tree
|
|
182
|
+
- [x] Tambahkan beberapa menu
|
|
183
|
+
- [x] Tambahkan log
|
|
184
|
+
- [ ] Pembersihan otomatis berkala (?)
|
|
185
|
+
|
|
186
|
+
<a name="known-bugs"></a>
|
|
187
|
+
|
|
188
|
+
# :bug: Bug yang Diketahui :bug:
|
|
189
|
+
|
|
190
|
+
- CLI terkadang berhenti saat menghapus folder.
|
|
191
|
+
- Mengurutkan berdasarkan jalur dapat memperlambat terminal dengan banyak hasil.
|
|
192
|
+
- Perhitungan ukuran kadang lebih besar dari seharusnya.
|
|
193
|
+
- (TERPECAHKAN) Masalah performa pada direktori tingkat tinggi (seperti / di Linux).
|
|
194
|
+
- (TERPECAHKAN) Teks terkadang kacau saat CLI diperbarui.
|
|
195
|
+
- (TERPECAHKAN) Analisis ukuran direktori memakan waktu lebih lama dari seharusnya.
|
|
196
|
+
|
|
197
|
+
> Jika menemukan bug, jangan ragu untuk membuka issue. :)
|
|
198
|
+
|
|
199
|
+
<a name="contributing"></a>
|
|
200
|
+
|
|
201
|
+
# :revolving_hearts: Kontribusi
|
|
202
|
+
|
|
203
|
+
Jika ingin berkontribusi, cek [CONTRIBUTING.md](.github/CONTRIBUTING.md).
|
|
204
|
+
|
|
205
|
+
<a name="donations"></a>
|
|
206
|
+
|
|
207
|
+
# :coffee: Buy us a coffee
|
|
208
|
+
|
|
209
|
+
<img align="right" width="300" src="https://npkill.js.org/img/cat-donation-cup.png">
|
|
210
|
+
Kami mengembangkan devkill di waktu luang karena kami mencintai pemrograman.
|
|
211
|
+
|
|
212
|
+
Kami akan terus mengerjakan ini, tetapi donasi adalah salah satu cara mendukung apa yang kami lakukan.
|
|
213
|
+
|
|
214
|
+
<span class="badge-opencollective"><a href="https://opencollective.com/npkill/contribute" title="Donate to this project using Open Collective"><img src="https://img.shields.io/badge/open%20collective-donate-green.svg" alt="Open Collective donate button" /></a></span>
|
|
215
|
+
|
|
216
|
+
### Terima Kasih!!
|
|
217
|
+
|
|
218
|
+
## Terima kasih banyak kepada pendukung kami :heart:
|
|
219
|
+
|
|
220
|
+
<a href="https://opencollective.com/npkill#backers" target="_blank"><img width="535" src="https://opencollective.com/npkill/tiers/backer.svg?width=535"></a>
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### Alternatif Crypto
|
|
225
|
+
|
|
226
|
+
- btc: 1ML2DihUoFTqhoQnrWy4WLxKbVYkUXpMAX
|
|
227
|
+
- bch: 1HVpaicQL5jWKkbChgPf6cvkH8nyktVnVk
|
|
228
|
+
- eth: 0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259
|
|
229
|
+
|
|
230
|
+
<a name="license"></a>
|
|
231
|
+
|
|
232
|
+
# :scroll: Lisensi
|
|
233
|
+
|
|
234
|
+
MIT © [Nya García Gallardo](https://github.com/NyaGarcia) dan [Juan Torres Gómez](https://github.com/zaldih)
|
|
235
|
+
|
|
236
|
+
:cat::baby_chick:
|
|
237
|
+
|
|
238
|
+
---
|