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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { INFO_MSGS, UI_POSITIONS } from '../../../constants/index.js';
|
|
3
|
+
import { BaseUi } from '../base.ui.js';
|
|
4
|
+
export class WarningUi extends BaseUi {
|
|
5
|
+
showDeleteAllWarning = false;
|
|
6
|
+
confirm$ = new Subject();
|
|
7
|
+
KEYS = {
|
|
8
|
+
y: () => this.confirm$.next(null),
|
|
9
|
+
};
|
|
10
|
+
onKeyInput({ name }) {
|
|
11
|
+
const action = this.KEYS[name];
|
|
12
|
+
if (action === undefined) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
action();
|
|
16
|
+
}
|
|
17
|
+
setDeleteAllWarningVisibility(visible) {
|
|
18
|
+
this.showDeleteAllWarning = visible;
|
|
19
|
+
this.render();
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
if (this.showDeleteAllWarning) {
|
|
23
|
+
this.printDeleteAllWarning();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
printDeleteAllWarning() {
|
|
27
|
+
this.printAt(INFO_MSGS.DELETE_ALL_WARNING, UI_POSITIONS.WARNINGS);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=warning.ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warning.ui.js","sourceRoot":"","sources":["../../../../src/cli/ui/components/warning.ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAsB,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,SAAU,SAAQ,MAAM;IAC3B,oBAAoB,GAAG,KAAK,CAAC;IAC5B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEvB,IAAI,GAAG;QACtB,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;KAClC,CAAC;IAEF,UAAU,CAAC,EAAE,IAAI,EAAa;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC;IACX,CAAC;IAED,6BAA6B,CAAC,OAAgB;QAC5C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseUi } from './base.ui.js';
|
|
2
|
+
/**
|
|
3
|
+
* A UI that buffers the output and prints it all at once when calling the
|
|
4
|
+
* flush() function.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class HeavyUi extends BaseUi {
|
|
7
|
+
private buffer;
|
|
8
|
+
private previousBuffer;
|
|
9
|
+
resetBufferState(): void;
|
|
10
|
+
/**
|
|
11
|
+
* Stores the text in a buffer. No will print it to stdout until flush()
|
|
12
|
+
* is called.
|
|
13
|
+
*/
|
|
14
|
+
protected print(text: string): void;
|
|
15
|
+
/** Prints the buffer (if have any change) to stdout and clears it. */
|
|
16
|
+
protected flush(): void;
|
|
17
|
+
private clearBuffer;
|
|
18
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseUi } from './base.ui.js';
|
|
2
|
+
/**
|
|
3
|
+
* A UI that buffers the output and prints it all at once when calling the
|
|
4
|
+
* flush() function.
|
|
5
|
+
*/
|
|
6
|
+
export class HeavyUi extends BaseUi {
|
|
7
|
+
buffer = '';
|
|
8
|
+
previousBuffer = '';
|
|
9
|
+
resetBufferState() {
|
|
10
|
+
this.buffer = '';
|
|
11
|
+
this.previousBuffer = '';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Stores the text in a buffer. No will print it to stdout until flush()
|
|
15
|
+
* is called.
|
|
16
|
+
*/
|
|
17
|
+
print(text) {
|
|
18
|
+
this.buffer += text;
|
|
19
|
+
}
|
|
20
|
+
/** Prints the buffer (if have any change) to stdout and clears it. */
|
|
21
|
+
flush() {
|
|
22
|
+
if (this.freezed) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (this.buffer === this.previousBuffer) {
|
|
26
|
+
this.clearBuffer();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
process.stdout.write.bind(process.stdout)(this.buffer);
|
|
30
|
+
this.clearBuffer();
|
|
31
|
+
}
|
|
32
|
+
clearBuffer() {
|
|
33
|
+
this.previousBuffer = this.buffer;
|
|
34
|
+
this.buffer = '';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=heavy.ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heavy.ui.js","sourceRoot":"","sources":["../../../src/cli/ui/heavy.ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,OAAgB,OAAQ,SAAQ,MAAM;IAClC,MAAM,GAAG,EAAE,CAAC;IACZ,cAAc,GAAG,EAAE,CAAC;IAE5B,gBAAgB;QACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACgB,KAAK,CAAC,IAAY;QACnC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACtB,CAAC;IAED,sEAAsE;IAC5D,KAAK;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './base.ui.js';
|
|
2
|
+
export * from './heavy.ui.js';
|
|
3
|
+
export * from './components/general.ui.js';
|
|
4
|
+
export * from './components/help/help.ui.js';
|
|
5
|
+
export * from './components/help/help-command.ui.js';
|
|
6
|
+
export * from './components/logs.ui.js';
|
|
7
|
+
export * from './components/warning.ui.js';
|
|
8
|
+
export * from './components/results.ui.js';
|
|
9
|
+
export * from './components/header/header.ui.js';
|
|
10
|
+
export * from './components/header/stats.ui.js';
|
|
11
|
+
export * from './components/header/status.ui.js';
|
|
12
|
+
export * from './components/header/status.ui.js';
|
|
13
|
+
export * from './components/options.ui.js';
|
|
14
|
+
export * from './components/profile-picker.ui.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './base.ui.js';
|
|
2
|
+
export * from './heavy.ui.js';
|
|
3
|
+
export * from './components/general.ui.js';
|
|
4
|
+
export * from './components/help/help.ui.js';
|
|
5
|
+
export * from './components/help/help-command.ui.js';
|
|
6
|
+
export * from './components/logs.ui.js';
|
|
7
|
+
export * from './components/warning.ui.js';
|
|
8
|
+
export * from './components/results.ui.js';
|
|
9
|
+
export * from './components/header/header.ui.js';
|
|
10
|
+
export * from './components/header/stats.ui.js';
|
|
11
|
+
export * from './components/header/status.ui.js';
|
|
12
|
+
export * from './components/header/status.ui.js';
|
|
13
|
+
export * from './components/options.ui.js';
|
|
14
|
+
export * from './components/profile-picker.ui.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ICliOptions } from '../cli/interfaces/index.js';
|
|
2
|
+
export declare const OPTIONS: ICliOptions[];
|
|
3
|
+
export declare const HELP_HEADER: string;
|
|
4
|
+
export declare const HELP_PROGRESSBAR: string;
|
|
5
|
+
export declare const HELP_FOOTER: string;
|
|
6
|
+
export declare const COLORS: {
|
|
7
|
+
red: string;
|
|
8
|
+
green: string;
|
|
9
|
+
yellow: string;
|
|
10
|
+
blue: string;
|
|
11
|
+
magenta: string;
|
|
12
|
+
cyan: string;
|
|
13
|
+
white: string;
|
|
14
|
+
};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import pc from 'picocolors';
|
|
2
|
+
export const OPTIONS = [
|
|
3
|
+
{
|
|
4
|
+
arg: ['-p', '--profiles'],
|
|
5
|
+
description: 'Specifies profiles (presets) of folders to search, separated by commas (e.g., `-p python,java`, `-p all`). If used without a value, lists the available profiles. Default: `node`.',
|
|
6
|
+
name: 'profiles',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
arg: ['--config'],
|
|
10
|
+
description: 'Path to a custom .devkillrc configuration file. By default, devkill looks for ~/.devkillrc.',
|
|
11
|
+
name: 'config',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
arg: ['-d', '--directory'],
|
|
15
|
+
description: 'Set directory from which to start searching. By default, starting-point is .',
|
|
16
|
+
name: 'directory',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
arg: ['-D', '--delete-all'],
|
|
20
|
+
description: 'Auto-delete all target folders that are found.',
|
|
21
|
+
name: 'delete-all',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
arg: ['-y'],
|
|
25
|
+
description: 'Avoid displaying a warning when executing --delete-all.',
|
|
26
|
+
name: 'yes',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
arg: ['-e', '--hide-errors'],
|
|
30
|
+
description: 'Hide errors if any.',
|
|
31
|
+
name: 'hide-errors',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
arg: ['-E', '--exclude'],
|
|
35
|
+
description: 'Exclude directories from search (directory list must be inside double quotes "", each directory separated by "," ) Example: "ignore1,ignore2"',
|
|
36
|
+
name: 'exclude',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
arg: ['-f', '--full'],
|
|
40
|
+
description: 'Start searching from the home of the user (example: "/home/user" in linux).',
|
|
41
|
+
name: 'full-scan',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
arg: ['--size-unit'],
|
|
45
|
+
description: 'Set the unit for displaying folder sizes. Options: auto (default), mb, gb. With auto, sizes < 1024MB are shown in MB, larger sizes in GB.',
|
|
46
|
+
name: 'size-unit',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
arg: ['-h', '--help', '?'],
|
|
50
|
+
description: 'Show this help page, with all options.',
|
|
51
|
+
name: 'help',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
arg: ['-nu', '--no-check-update'],
|
|
55
|
+
description: 'Dont check for updates on startup.',
|
|
56
|
+
name: 'no-check-updates',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
arg: ['-s', '--sort'],
|
|
60
|
+
description: 'Sort results by: size, path or age (last time the most recent file was modified in the workspace)',
|
|
61
|
+
name: 'sort-by',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
arg: ['-t', '--targets'],
|
|
65
|
+
description: 'Disable profiles feature and specify the name of the directories you want to search for. You can define multiple targets separating with comma. Ej. `-t node_modules,.cache`.',
|
|
66
|
+
name: 'target-folders',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
arg: ['-x', '--exclude-sensitive'],
|
|
70
|
+
description: 'Exclude sensitive directories.',
|
|
71
|
+
name: 'exclude-sensitive',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
arg: ['--dry-run'],
|
|
75
|
+
description: 'It does not delete anything (will simulate it with a random delay).',
|
|
76
|
+
name: 'dry-run',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
arg: ['--json-stream'],
|
|
80
|
+
description: 'Output results in a stream JSON format.',
|
|
81
|
+
name: 'jsonStream',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
arg: ['--json'],
|
|
85
|
+
description: 'Output results in a JSON format.',
|
|
86
|
+
name: 'jsonSimple',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
arg: ['-v', '--version'],
|
|
90
|
+
description: 'Show version.',
|
|
91
|
+
name: 'version',
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
const getHeader = (title) => {
|
|
95
|
+
return pc.black(pc.bgYellow(pc.bold(` ${title} `)));
|
|
96
|
+
};
|
|
97
|
+
export const HELP_HEADER = `Devkill helps you find and manage “junk” directories left behind by development tools.
|
|
98
|
+
These folders are essential while you’re actively working on a project, but over time they pile up, eating tons of space long after you’ve moved on.
|
|
99
|
+
Devkill scans your directories, lists these directories with their sizes, and shows when you last touched each project, so you can quickly decide what to keep and what to clean. Easy!
|
|
100
|
+
|
|
101
|
+
${getHeader('How to interact')}
|
|
102
|
+
${pc.green('SPACE / DEL')} Delete selected result.
|
|
103
|
+
${pc.green('↑ / k')} Move up.
|
|
104
|
+
${pc.green('↓ / j')} Move down.
|
|
105
|
+
${pc.green('→ / ←')} Switch between panels.
|
|
106
|
+
${pc.green('t')} Multi-selection mode.
|
|
107
|
+
${pc.green('PgUp / Ctrl+u / u / h')} Move one page up.
|
|
108
|
+
${pc.green('PgDown / Ctrl+d / d / l')} Move one page down.
|
|
109
|
+
${pc.green('Home, End')} Jump to first / last result.
|
|
110
|
+
${pc.green('o')} Open the parent directory.
|
|
111
|
+
${pc.green('/')} Search (Regex supported).
|
|
112
|
+
${pc.green('e')} Show errors.
|
|
113
|
+
${pc.green('q')} Quit.`;
|
|
114
|
+
export const HELP_PROGRESSBAR = `${getHeader('Header information')}
|
|
115
|
+
${pc.green('Potential space')}: The total size of all detected directories. Not everything needs to be deleted. This represents the maximum possible space you could free.
|
|
116
|
+
${pc.green('Freed space')}: The space actually recovered in this session.
|
|
117
|
+
|
|
118
|
+
The progress bar provides information on the search process. It has 3 parts differentiated by colors.
|
|
119
|
+
|
|
120
|
+
(green) Results ready (stats calculated).
|
|
121
|
+
🭲 (white) Directories examined.
|
|
122
|
+
🭲 🭲 ┌ (gray) Directories pending to be analyzed.
|
|
123
|
+
${pc.green('▀▀▀▀▀▀▀')}${pc.white('▀▀▀▀')}${pc.gray('▀▀▀▀▀▀▀▀▀▀▀')}
|
|
124
|
+
|
|
125
|
+
The header will also display other relevant contextual information, such as when selection mode is activated or devkill is started in "dry-run mode".
|
|
126
|
+
`;
|
|
127
|
+
export const HELP_FOOTER = `${getHeader('Important note')}
|
|
128
|
+
${pc.bold('Not all results listed are bad!')} Some applications (like vscode, Discord, etc) need those dependencies to work. If their directory is deleted, the application will probably break (until the dependencies are reinstalled). DEVKILL will try to show you these results by highlighting them ⚠️.`;
|
|
129
|
+
export const COLORS = {
|
|
130
|
+
red: 'bgRed',
|
|
131
|
+
green: 'bgGreen',
|
|
132
|
+
yellow: 'bgYellow',
|
|
133
|
+
blue: 'bgBlue',
|
|
134
|
+
magenta: 'bgMagenta',
|
|
135
|
+
cyan: 'bgCyan',
|
|
136
|
+
white: 'bgWhite',
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=cli.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.constants.js","sourceRoot":"","sources":["../../src/constants/cli.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './cli.constants.js';
|
|
2
|
+
export * from './main.constants.js';
|
|
3
|
+
export * from './messages.constants.js';
|
|
4
|
+
export * from './sort.result.js';
|
|
5
|
+
export * from './spinner.constants.js';
|
|
6
|
+
export * from './update.constants.js';
|
|
7
|
+
export * from './options.constants.js';
|
|
8
|
+
export * from './result-descriptions.constants.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './cli.constants.js';
|
|
2
|
+
export * from './main.constants.js';
|
|
3
|
+
export * from './messages.constants.js';
|
|
4
|
+
export * from './sort.result.js';
|
|
5
|
+
export * from './spinner.constants.js';
|
|
6
|
+
export * from './update.constants.js';
|
|
7
|
+
export * from './options.constants.js';
|
|
8
|
+
export * from './result-descriptions.constants.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { IConfig } from '../cli/interfaces/index.js';
|
|
2
|
+
export declare const MIN_CLI_COLUMNS_SIZE = 60;
|
|
3
|
+
export declare const CURSOR_SIMBOL = "~>";
|
|
4
|
+
export declare const WIDTH_OVERFLOW = "...";
|
|
5
|
+
export declare const DEFAULT_SIZE = "0 MB";
|
|
6
|
+
export declare const DECIMALS_SIZE = 2;
|
|
7
|
+
export declare const OVERFLOW_CUT_FROM = 11;
|
|
8
|
+
export declare const DEFAULT_CONFIG: IConfig;
|
|
9
|
+
export declare const MARGINS: {
|
|
10
|
+
FOLDER_COLUMN_END: number;
|
|
11
|
+
FOLDER_COLUMN_START: number;
|
|
12
|
+
FOLDER_SIZE_COLUMN: number;
|
|
13
|
+
ROW_RESULTS_START: number;
|
|
14
|
+
};
|
|
15
|
+
export declare const UI_HELP: {
|
|
16
|
+
X_COMMAND_OFFSET: number;
|
|
17
|
+
X_DESCRIPTION_OFFSET: number;
|
|
18
|
+
Y_OFFSET: number;
|
|
19
|
+
MAX_WIDTH: number;
|
|
20
|
+
};
|
|
21
|
+
export declare const UI_POSITIONS: {
|
|
22
|
+
FOLDER_SIZE_HEADER: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
};
|
|
26
|
+
INITIAL: {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
};
|
|
30
|
+
VERSION: {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
};
|
|
34
|
+
DRY_RUN_NOTICE: {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
};
|
|
38
|
+
NEW_UPDATE_FOUND: {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
};
|
|
42
|
+
SPACE_RELEASED: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
STATUS: {
|
|
47
|
+
x: number;
|
|
48
|
+
y: number;
|
|
49
|
+
};
|
|
50
|
+
STATUS_BAR: {
|
|
51
|
+
x: number;
|
|
52
|
+
y: number;
|
|
53
|
+
};
|
|
54
|
+
PENDING_TASKS: {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
};
|
|
58
|
+
TOTAL_SPACE: {
|
|
59
|
+
x: number;
|
|
60
|
+
y: number;
|
|
61
|
+
};
|
|
62
|
+
ERRORS_COUNT: {
|
|
63
|
+
x: number;
|
|
64
|
+
y: number;
|
|
65
|
+
};
|
|
66
|
+
TUTORIAL_TIP: {
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
};
|
|
70
|
+
WARNINGS: {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
};
|
|
74
|
+
RESULTS_TYPES_COUNT_ROW_1: {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
};
|
|
78
|
+
RESULTS_TYPES_COUNT_ROW_2: {
|
|
79
|
+
x: number;
|
|
80
|
+
y: number;
|
|
81
|
+
};
|
|
82
|
+
RESULTS_TYPES_COUNT_ROW_3: {
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
};
|
|
86
|
+
RESULTS_TYPES_COUNT_ROW_4: {
|
|
87
|
+
x: number;
|
|
88
|
+
y: number;
|
|
89
|
+
};
|
|
90
|
+
RESULTS_TYPES_COUNT_ROW_5: {
|
|
91
|
+
x: number;
|
|
92
|
+
y: number;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
export declare const BANNER = " _ _ _ _ _ _\n __| | _____ _| | _(_)| | | |\n / _` |/ _ \\ \\ / / |/ / || | | |\n| (_| | __/\\ V /| <| || | | |\n \\__,_|\\___| \\_/ |_|\\_\\_||_|_|_|";
|
|
96
|
+
export declare const STREAM_ENCODING = "utf8";
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { DEFAULT_PROFILE } from '../core/constants/index.js';
|
|
2
|
+
export const MIN_CLI_COLUMNS_SIZE = 60;
|
|
3
|
+
export const CURSOR_SIMBOL = '~>';
|
|
4
|
+
export const WIDTH_OVERFLOW = '...';
|
|
5
|
+
export const DEFAULT_SIZE = '0 MB';
|
|
6
|
+
export const DECIMALS_SIZE = 2;
|
|
7
|
+
export const OVERFLOW_CUT_FROM = 11;
|
|
8
|
+
export const DEFAULT_CONFIG = {
|
|
9
|
+
profiles: [DEFAULT_PROFILE],
|
|
10
|
+
folderRoot: '',
|
|
11
|
+
checkUpdates: true,
|
|
12
|
+
deleteAll: false,
|
|
13
|
+
dryRun: false,
|
|
14
|
+
exclude: [],
|
|
15
|
+
excludeSensitiveResults: false,
|
|
16
|
+
sizeUnit: 'auto',
|
|
17
|
+
maxSimultaneousSearch: 6,
|
|
18
|
+
showErrors: true,
|
|
19
|
+
sortBy: 'none',
|
|
20
|
+
targets: ['node_modules'],
|
|
21
|
+
yes: false,
|
|
22
|
+
jsonStream: false,
|
|
23
|
+
jsonSimple: false,
|
|
24
|
+
};
|
|
25
|
+
export const MARGINS = {
|
|
26
|
+
FOLDER_COLUMN_END: 16,
|
|
27
|
+
FOLDER_COLUMN_START: 1,
|
|
28
|
+
FOLDER_SIZE_COLUMN: 10,
|
|
29
|
+
ROW_RESULTS_START: 8,
|
|
30
|
+
};
|
|
31
|
+
export const UI_HELP = {
|
|
32
|
+
X_COMMAND_OFFSET: 3,
|
|
33
|
+
X_DESCRIPTION_OFFSET: 27,
|
|
34
|
+
Y_OFFSET: 2,
|
|
35
|
+
MAX_WIDTH: 80,
|
|
36
|
+
};
|
|
37
|
+
export const UI_POSITIONS = {
|
|
38
|
+
FOLDER_SIZE_HEADER: { x: -1, y: 7 }, // x is calculated in controller
|
|
39
|
+
INITIAL: { x: 0, y: 0 },
|
|
40
|
+
VERSION: { x: 30, y: 5 },
|
|
41
|
+
DRY_RUN_NOTICE: { x: 1, y: 6 },
|
|
42
|
+
NEW_UPDATE_FOUND: { x: 42, y: 0 },
|
|
43
|
+
SPACE_RELEASED: { x: 43, y: 3 },
|
|
44
|
+
STATUS: { x: 43, y: 4 },
|
|
45
|
+
STATUS_BAR: { x: 43, y: 5 },
|
|
46
|
+
PENDING_TASKS: { x: 43, y: 6 }, //Starting position. It will then be replaced.
|
|
47
|
+
TOTAL_SPACE: { x: 43, y: 2 },
|
|
48
|
+
ERRORS_COUNT: { x: 43, y: 1 },
|
|
49
|
+
TUTORIAL_TIP: { x: 1, y: 7 },
|
|
50
|
+
WARNINGS: { x: 0, y: 9 },
|
|
51
|
+
RESULTS_TYPES_COUNT_ROW_1: { x: 73, y: 1 },
|
|
52
|
+
RESULTS_TYPES_COUNT_ROW_2: { x: 73, y: 2 },
|
|
53
|
+
RESULTS_TYPES_COUNT_ROW_3: { x: 73, y: 3 },
|
|
54
|
+
RESULTS_TYPES_COUNT_ROW_4: { x: 73, y: 4 },
|
|
55
|
+
RESULTS_TYPES_COUNT_ROW_5: { x: 73, y: 5 },
|
|
56
|
+
};
|
|
57
|
+
// export const VALID_KEYS: string[] = [
|
|
58
|
+
// 'up', // Move up
|
|
59
|
+
// 'down', // Move down
|
|
60
|
+
// 'space', // Delete
|
|
61
|
+
// 'j', // Move down
|
|
62
|
+
// 'k', // Move up
|
|
63
|
+
// 'h', // Move page down
|
|
64
|
+
// 'l', // Move page up
|
|
65
|
+
// 'u', // Move page up
|
|
66
|
+
// 'd', // Move page down
|
|
67
|
+
// 'pageup',
|
|
68
|
+
// 'pagedown',
|
|
69
|
+
// 'home', // Move to the first result
|
|
70
|
+
// 'end', // Move to the last result
|
|
71
|
+
// 'e', // Show errors
|
|
72
|
+
// ];
|
|
73
|
+
export const BANNER = ` _ _ _ _ _ _
|
|
74
|
+
__| | _____ _| | _(_)| | | |
|
|
75
|
+
/ _\` |/ _ \\ \\ / / |/ / || | | |
|
|
76
|
+
| (_| | __/\\ V /| <| || | | |
|
|
77
|
+
\\__,_|\\___| \\_/ |_|\\_\\_||_|_|_|`;
|
|
78
|
+
export const STREAM_ENCODING = 'utf8';
|
|
79
|
+
//# sourceMappingURL=main.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.constants.js","sourceRoot":"","sources":["../../src/constants/main.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const MENU_BAR: {
|
|
2
|
+
HELP: string;
|
|
3
|
+
OPTIONS: string;
|
|
4
|
+
DELETE: string;
|
|
5
|
+
INFO: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const INFO_MSGS: {
|
|
8
|
+
DELETED_FOLDER: string;
|
|
9
|
+
DELETING_FOLDER: string;
|
|
10
|
+
ERROR_DELETING_FOLDER: string;
|
|
11
|
+
HEADER_COLUMNS: string;
|
|
12
|
+
HELP_TITLE: string;
|
|
13
|
+
MIN_CLI_CLOMUNS: string;
|
|
14
|
+
NEW_UPDATE_FOUND: string;
|
|
15
|
+
NO_VALID_SORT_NAME: string;
|
|
16
|
+
NO_VALID_SIZE_UNIT: string;
|
|
17
|
+
STARTING: string;
|
|
18
|
+
SEARCHING: string;
|
|
19
|
+
CALCULATING_STATS: string;
|
|
20
|
+
FATAL_ERROR: string;
|
|
21
|
+
SEARCH_COMPLETED: string;
|
|
22
|
+
SPACE_RELEASED: string;
|
|
23
|
+
TOTAL_SPACE: string;
|
|
24
|
+
DRY_RUN: string;
|
|
25
|
+
DELETE_ALL_WARNING: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const ERROR_MSG: {
|
|
28
|
+
CANT_DELETE_FOLDER: string;
|
|
29
|
+
CANT_GET_REMOTE_VERSION: string;
|
|
30
|
+
CANT_USE_BOTH_JSON_OPTIONS: string;
|
|
31
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const MENU_BAR = {
|
|
2
|
+
HELP: 'Help',
|
|
3
|
+
OPTIONS: 'Options',
|
|
4
|
+
DELETE: 'Delete',
|
|
5
|
+
INFO: 'Info',
|
|
6
|
+
};
|
|
7
|
+
export const INFO_MSGS = {
|
|
8
|
+
DELETED_FOLDER: '[DELETED] ',
|
|
9
|
+
DELETING_FOLDER: '[..deleting..] ',
|
|
10
|
+
ERROR_DELETING_FOLDER: '[ ERROR ] ',
|
|
11
|
+
HEADER_COLUMNS: 'Age Size', // Δ (delta) for last_mod/age?
|
|
12
|
+
HELP_TITLE: ' DEVKILL HELP ',
|
|
13
|
+
MIN_CLI_CLOMUNS: 'Oh no! The terminal is too narrow. Please, ' +
|
|
14
|
+
'enlarge it (This will be fixed in future versions. Disclose the inconveniences)',
|
|
15
|
+
NEW_UPDATE_FOUND: 'New version found! npm i -g devkill for update.',
|
|
16
|
+
NO_VALID_SORT_NAME: 'Invalid sort option. Available: path | size | age',
|
|
17
|
+
NO_VALID_SIZE_UNIT: 'Invalid size-unit option. Available: auto | mb | gb',
|
|
18
|
+
STARTING: 'Initializing ',
|
|
19
|
+
SEARCHING: 'Searching ',
|
|
20
|
+
CALCULATING_STATS: 'Calculating stats ',
|
|
21
|
+
FATAL_ERROR: 'Fatal error ',
|
|
22
|
+
SEARCH_COMPLETED: 'Search completed ',
|
|
23
|
+
SPACE_RELEASED: 'Space saved: ',
|
|
24
|
+
TOTAL_SPACE: 'Releasable space: ',
|
|
25
|
+
DRY_RUN: 'Dry run mode',
|
|
26
|
+
DELETE_ALL_WARNING: ' --delete-all may have undesirable effects and\n' +
|
|
27
|
+
' delete dependencies needed by some applications.\n' +
|
|
28
|
+
' Recommended to use -x and preview with --dry-run.\n\n' +
|
|
29
|
+
' Press y to continue.\n\n' +
|
|
30
|
+
' pass -y to not show this next time',
|
|
31
|
+
};
|
|
32
|
+
export const ERROR_MSG = {
|
|
33
|
+
CANT_DELETE_FOLDER: 'The directory cannot be deleted. Do you have permission?',
|
|
34
|
+
CANT_GET_REMOTE_VERSION: 'Couldnt check for updates',
|
|
35
|
+
CANT_USE_BOTH_JSON_OPTIONS: 'Cannot use both --json and --json-stream options simultaneously.',
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=messages.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.constants.js","sourceRoot":"","sources":["../../src/constants/messages.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,cAAc,EAAE,YAAY;IAC5B,eAAe,EAAE,iBAAiB;IAClC,qBAAqB,EAAE,YAAY;IACnC,cAAc,EAAE,aAAa,EAAE,8BAA8B;IAC7D,UAAU,EAAE,gBAAgB;IAC5B,eAAe,EACb,6CAA6C;QAC7C,iFAAiF;IACnF,gBAAgB,EAAE,iDAAiD;IACnE,kBAAkB,EAAE,mDAAmD;IACvE,kBAAkB,EAAE,qDAAqD;IACzE,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,YAAY;IACvB,iBAAiB,EAAE,oBAAoB;IACvC,WAAW,EAAE,cAAc;IAC3B,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,cAAc;IACvB,kBAAkB,EAChB,qDAAqD;QACrD,wDAAwD;QACxD,2DAA2D;QAC3D,2CAA2C;QAC3C,+CAA+C;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,kBAAkB,EAChB,0DAA0D;IAC5D,uBAAuB,EAAE,2BAA2B;IACpD,0BAA0B,EACxB,kEAAkE;CACrE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import pc from 'picocolors';
|
|
2
|
+
export const OPTIONS_HINTS_BY_TYPE = {
|
|
3
|
+
input: pc.gray(`${pc.bold(pc.underline('SPACE'))} or ${pc.bold(pc.underline('ENTER'))} to edit.`),
|
|
4
|
+
'input-exit': pc.gray(`${pc.bold(pc.underline('ENTER'))} to confirm. ${pc.bold(pc.underline('ESC'))} To cancel.`),
|
|
5
|
+
dropdown: pc.gray(`${pc.bold(pc.underline('SPACE'))}/${pc.bold(pc.underline('SHIFT'))}+${pc.bold(pc.underline('SPACE'))} to navigate.`),
|
|
6
|
+
checkbox: pc.gray(`${pc.bold(pc.underline('SPACE'))} or ${pc.bold(pc.underline('ENTER'))} to toggle.`),
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=options.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.constants.js","sourceRoot":"","sources":["../../src/constants/options.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,EAAE,CAAC,IAAI,CACZ,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,CAClF;IACD,YAAY,EAAE,EAAE,CAAC,IAAI,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,aAAa,CAC3F;IACD,QAAQ,EAAE,EAAE,CAAC,IAAI,CACf,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,eAAe,CACrH;IACD,QAAQ,EAAE,EAAE,CAAC,IAAI,CACf,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CACpF;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UnixFilesService, WindowsFilesService } from '../core/services/files/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A mapping of operating system names to their corresponding file service classes.
|
|
4
|
+
* This map is used to dynamically instantiate the appropriate file service based on the OS.
|
|
5
|
+
*/
|
|
6
|
+
export declare const OSServiceMap: {
|
|
7
|
+
linux: typeof UnixFilesService;
|
|
8
|
+
darwin: typeof UnixFilesService;
|
|
9
|
+
win32: typeof WindowsFilesService;
|
|
10
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UnixFilesService, WindowsFilesService, } from '../core/services/files/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A mapping of operating system names to their corresponding file service classes.
|
|
4
|
+
* This map is used to dynamically instantiate the appropriate file service based on the OS.
|
|
5
|
+
*/
|
|
6
|
+
export const OSServiceMap = {
|
|
7
|
+
linux: UnixFilesService,
|
|
8
|
+
darwin: UnixFilesService,
|
|
9
|
+
win32: WindowsFilesService,
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=os-service-map.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"os-service-map.constants.js","sourceRoot":"","sources":["../../src/constants/os-service-map.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,mBAAmB;CAC3B,CAAC"}
|