SYMBOL INDEX (511 symbols across 78 files) FILE: src/cli/cli.controller.ts class CliController (line 50) | class CliController { method constructor (line 65) | constructor( method init (line 81) | init(): void { method showDeleteAllWarning (line 132) | private showDeleteAllWarning(): void { method initUi (line 137) | private initUi(): void { method openOptions (line 175) | private openOptions(): void { method openResultsDetails (line 240) | private openResultsDetails(folder: CliScanFoundFolder): void { method loadConfigFile (line 265) | private loadConfigFile(): void { method parseArguments (line 347) | private parseArguments(): void { method showErrorPopup (line 546) | private showErrorPopup(visible: boolean): void { method invalidSortParam (line 562) | private invalidSortParam(): void { method showHelp (line 568) | private showHelp(): void { method showProgramVersion (line 572) | private showProgramVersion(): void { method isValidColor (line 576) | private isValidColor(color: string): boolean { method isValidSortParam (line 580) | private isValidSortParam(sortName: string): boolean { method isValidSizeUnit (line 584) | private isValidSizeUnit(sizeUnit: string): boolean { method invalidSizeUnitParam (line 588) | private invalidSizeUnitParam(): void { method getVersion (line 594) | private getVersion(): string { method prepareScreen (line 601) | private prepareScreen(): void { method checkRequirements (line 609) | private checkRequirements(): void { method checkScreenRequirements (line 614) | private checkScreenRequirements(): void { method checkFileRequirements (line 622) | private checkFileRequirements(): void { method checkVersion (line 633) | private checkVersion(): void { method showUpdateMessage (line 653) | private showUpdateMessage(): void { method isTerminalTooSmall (line 658) | private isTerminalTooSmall(): boolean { method printFoldersSection (line 662) | private printFoldersSection(): void { method setupEventsListener (line 666) | private setupEventsListener(): void { method keyPress (line 689) | private keyPress(key: IKeyPress): void { method scan (line 704) | private scan(): void { method initializeScan (line 716) | private initializeScan(): void { method scanInJson (line 722) | private scanInJson(): void { method scanInUiMode (line 749) | private scanInUiMode(): void { method setupJsonModeSignalHandlers (line 775) | private setupJsonModeSignalHandlers(): void { method processNodeFolderForUi (line 785) | private processNodeFolderForUi(nodeFolder: CliScanFoundFolder): void { method processFolderStatsForUi (line 797) | private processFolderStatsForUi(folder: CliScanFoundFolder): void { method finishFolderStats (line 806) | private finishFolderStats(): void { method completeSearch (line 817) | private completeSearch(): void { method setSearchDuration (line 823) | private setSearchDuration(): void { method isQuitKey (line 827) | private isQuitKey(ctrl: boolean, name: string): boolean { method exitWithError (line 831) | private exitWithError(): void { method exitGracefully (line 839) | private exitGracefully(): void { method quit (line 847) | private quit(): void { method resetConsoleState (line 859) | private resetConsoleState(): void { method printExitMessage (line 865) | private printExitMessage(): void { method deleteFolder (line 870) | private deleteFolder(folder: CliScanFoundFolder): void { method newError (line 905) | private newError(error: string): void { FILE: src/cli/interfaces/cli-options.interface.ts type ICliOptions (line 1) | interface ICliOptions { FILE: src/cli/interfaces/command-keys.interface.ts type IKeysCommand (line 1) | interface IKeysCommand { FILE: src/cli/interfaces/config.interface.ts type IConfig (line 1) | interface IConfig { FILE: src/cli/interfaces/json-output.interface.ts type JsonOutputBase (line 3) | interface JsonOutputBase { type JsonCliScanFoundFolder (line 7) | interface JsonCliScanFoundFolder type JsonStreamOutput (line 14) | interface JsonStreamOutput extends JsonOutputBase { type JsonSimpleOutput (line 22) | interface JsonSimpleOutput extends JsonOutputBase { type JsonErrorOutput (line 31) | interface JsonErrorOutput extends JsonOutputBase { FILE: src/cli/interfaces/key-press.interface.ts type IKeyPress (line 1) | interface IKeyPress { FILE: src/cli/interfaces/node-version.interface.ts type INodeVersion (line 1) | interface INodeVersion { FILE: src/cli/interfaces/stats.interface.ts type CliScanFoundFolder (line 3) | interface CliScanFoundFolder extends ScanFoundFolder { type IResultTypeCount (line 9) | interface IResultTypeCount { type IStats (line 14) | interface IStats { FILE: src/cli/interfaces/ui-positions.interface.ts type IPosition (line 1) | interface IPosition { type IUiPosition (line 6) | type IUiPosition = Record; FILE: src/cli/interfaces/version.interface.ts type IVersion (line 1) | interface IVersion { FILE: src/cli/models/start-parameters.model.ts class StartParameters (line 1) | class StartParameters { method add (line 4) | add(key: string, value: string | boolean): void { method isTrue (line 8) | isTrue(key: string): boolean { method getString (line 13) | getString(key: string): string { method getStrings (line 22) | getStrings(key: string): string[] { FILE: src/cli/services/console.service.ts class ConsoleService (line 8) | class ConsoleService { method getParameters (line 9) | getParameters(rawArgv: string[]): StartParameters { method splitWordsByWidth (line 36) | splitWordsByWidth(text: string, width: number): string[] { method splitData (line 45) | splitData(data: string, separator = '\n'): string[] { method replaceString (line 52) | replaceString( method shortenText (line 60) | shortenText(text: string, width: number, startCut = 0): string { method isRunningBuild (line 72) | isRunningBuild(): boolean { method startListenKeyEvents (line 76) | startListenKeyEvents(): void { method normalizeParams (line 85) | private normalizeParams(argvs: string[]): string[] { method isValidShortenParams (line 89) | private isValidShortenParams( method removeSystemArgvs (line 102) | private removeSystemArgvs(allArgv: string[]): string[] { method isArgOption (line 106) | private isArgOption(argv: string): boolean { method isArgHavingParams (line 110) | private isArgHavingParams(nextArgv: string): boolean { method isValidOption (line 116) | private isValidOption(arg: string): boolean { method getOption (line 120) | private getOption(arg: string): ICliOptions | undefined { method isNegative (line 124) | private isNegative(numb: number): boolean { FILE: src/cli/services/https.service.ts class HttpsService (line 3) | class HttpsService { method getJson (line 4) | async getJson(url: string): Promise> { method isCorrectResponse (line 31) | private isCorrectResponse(statusCode: number): boolean { FILE: src/cli/services/json-output.service.ts class JsonOutputService (line 10) | class JsonOutputService { method constructor (line 16) | constructor( method initializeSession (line 21) | initializeSession(streamMode: boolean = false): void { method processResult (line 27) | processResult(folder: CliScanFoundFolder): void { method completeScan (line 35) | completeScan(): void { method writeStreamResult (line 41) | private writeStreamResult(folder: CliScanFoundFolder): void { method addResult (line 58) | private addResult(folder: CliScanFoundFolder): void { method writeSimpleResults (line 62) | private writeSimpleResults(): void { method writeError (line 84) | writeError(error: Error | string): void { method getResultsCount (line 96) | getResultsCount(): number { method handleShutdown (line 100) | handleShutdown(): void { method sanitizeFolderForOutput (line 106) | private sanitizeFolderForOutput( FILE: src/cli/services/results.service.ts class ResultsService (line 10) | class ResultsService { method addResult (line 14) | addResult(result: CliScanFoundFolder): void { method sortResults (line 18) | sortResults(method: string): void { method reset (line 22) | reset(): void { method setSizeUnit (line 26) | setSizeUnit(sizeUnit: 'auto' | 'mb' | 'gb'): void { method getStats (line 30) | getStats(): IStats { FILE: src/cli/services/scan.service.ts type CalculateFolderStatsOptions (line 24) | interface CalculateFolderStatsOptions { class ScanService (line 28) | class ScanService { method constructor (line 29) | constructor(private readonly npkill: Npkill) {} method scan (line 31) | scan(config: IConfig): Observable { method calculateFolderStats (line 63) | calculateFolderStats( method isExcludedDangerousDirectory (line 130) | private isExcludedDangerousDirectory( FILE: src/cli/services/spinner.service.ts class SpinnerService (line 1) | class SpinnerService { method setSpinner (line 5) | setSpinner(spinner: string[]): void { method nextFrame (line 10) | nextFrame(): string { method reset (line 15) | reset(): void { method updateCount (line 19) | private updateCount(): void { method isLastFrame (line 27) | private isLastFrame(): boolean { FILE: src/cli/services/ui.service.ts class UiService (line 4) | class UiService { method setRawMode (line 9) | setRawMode(set = true): void { method setCursorVisible (line 16) | setCursorVisible(visible: boolean): void { method add (line 23) | add(component: BaseUi): void { method remove (line 27) | remove(baseUiId: string): void { method renderAll (line 31) | renderAll(): void { method setFreezeAll (line 40) | setFreezeAll(freeze: boolean): void { method setVisibleAll (line 46) | setVisibleAll(visible: boolean): void { method clear (line 52) | clear(): void { method print (line 56) | print(text: string): void { method printAt (line 60) | printAt(message: string, position: Position): void { method setCursorAt (line 65) | setCursorAt({ x, y }: Position): void { method clearLine (line 69) | clearLine(row: number): void { FILE: src/cli/services/update.service.ts class UpdateService (line 8) | class UpdateService { method constructor (line 9) | constructor(private readonly httpsService: HttpsService) {} method isUpdated (line 15) | async isUpdated(localVersion: string): Promise { method compareVersions (line 24) | private compareVersions(local: string, remote: string): boolean { method getRemoteVersion (line 31) | private async getRemoteVersion(): Promise { method isSameVersion (line 36) | private isSameVersion(version1: string, version2: string): boolean { method isLocalVersionGreater (line 41) | private isLocalVersionGreater(local: string, remote: string): boolean { FILE: src/cli/ui/base.ui.ts type Position (line 4) | interface Position { type InteractiveUi (line 9) | interface InteractiveUi { method printAt (line 20) | protected printAt(message: string, position: Position): void { method setCursorAt (line 25) | protected setCursorAt({ x, y }: Position): void { method print (line 29) | protected print(text: string): void { method clearLine (line 36) | protected clearLine(row: number): void { method setPosition (line 40) | setPosition(position: Position, renderOnSet = true): void { method setVisible (line 48) | setVisible(visible: boolean, renderOnSet = true): void { method position (line 56) | get position(): Position { method visible (line 60) | get visible(): boolean { method terminal (line 64) | get terminal(): { columns: number; rows: number } { FILE: src/cli/ui/components/general.ui.ts class GeneralUi (line 6) | class GeneralUi extends BaseUi { method render (line 7) | render(): void {} method printExitMessage (line 9) | printExitMessage(stats: { spaceReleased: string }): void { FILE: src/cli/ui/components/header/header-ui.constants.ts type MENU_BAR_OPTIONS (line 1) | enum MENU_BAR_OPTIONS { FILE: src/cli/ui/components/header/header.ui.ts class HeaderUi (line 13) | class HeaderUi extends BaseUi { method constructor (line 24) | constructor(private readonly config: IConfig) { method setSearch (line 32) | setSearch(text: string | null, isInputActive = false) { method render (line 45) | render(): void { method renderHeader (line 78) | private renderHeader(): void { method renderMenuBar (line 87) | private renderMenuBar(): void { FILE: src/cli/ui/components/header/stats.ui.ts type ShowStatProps (line 9) | interface ShowStatProps { type ResultTypeRowKey (line 17) | type ResultTypeRowKey = 'row1' | 'row2' | 'row3' | 'row4' | 'row5'; class StatsUi (line 19) | class StatsUi extends BaseUi { method constructor (line 34) | constructor( method reset (line 43) | reset(): void { method render (line 51) | render(): void { method showStat (line 82) | private showStat({ method showErrorsCount (line 116) | private showErrorsCount(): void { method showActivePreset (line 127) | private showActivePreset(): void { method showResultsTypesCount (line 148) | private showResultsTypesCount( method formatResultTypeText (line 225) | private formatResultTypeText( method showResultTypeRow (line 247) | private showResultTypeRow( FILE: src/cli/ui/components/header/status.ui.ts class StatusUi (line 17) | class StatusUi extends BaseUi { method constructor (line 31) | constructor( method start (line 38) | start(): void { method reset (line 51) | reset(): void { method completeSearch (line 68) | completeSearch(duration: number): void { method render (line 80) | render(): void { method renderPendingTasks (line 90) | private renderPendingTasks(): void { method clearPendingTasks (line 104) | private clearPendingTasks(): void { method renderProgressBar (line 109) | private renderProgressBar(): void { method animateProgressBar (line 172) | private animateProgressBar(): void { method animateClose (line 189) | private animateClose(): void { method movePendingTaskToTop (line 212) | private movePendingTaskToTop(): void { method printProgressBar (line 218) | private printProgressBar(progressBar: string): void { method startingSearch (line 236) | private startingSearch(): void { method continueSearching (line 241) | private continueSearching(): void { method fatalError (line 246) | private fatalError(): void { method continueFinishing (line 253) | private continueFinishing(): void { FILE: src/cli/ui/components/help/help-command.ui.ts class HelpCommandUi (line 13) | class HelpCommandUi extends BaseUi { method constructor (line 14) | constructor(private readonly consoleService: ConsoleService) { method render (line 18) | render(): void { method show (line 22) | show(): void { method clear (line 89) | clear(): void { FILE: src/cli/ui/components/help/help.constants.ts type HelpSection (line 4) | interface HelpSection { constant HELP_SECTIONS (line 11) | const HELP_SECTIONS: HelpSection[] = [ FILE: src/cli/ui/components/help/help.ui.ts class HelpUi (line 8) | class HelpUi extends BaseUi implements InteractiveUi { method constructor (line 36) | constructor() { method previousSection (line 40) | private previousSection(): void { method nextSection (line 48) | private nextSection(): void { method selectSection (line 56) | private selectSection(): void { method scrollUp (line 61) | private scrollUp(): void { method scrollDown (line 68) | private scrollDown(): void { method scrollPageUp (line 85) | private scrollPageUp(): void { method scrollPageDown (line 91) | private scrollPageDown(): void { method scrollToTop (line 104) | private scrollToTop(): void { method scrollToBottom (line 109) | private scrollToBottom(): void { method goToOptions (line 119) | private goToOptions(): void { method getContentAreaHeight (line 124) | private getContentAreaHeight(): number { method onKeyInput (line 128) | onKeyInput({ name }: IKeyPress): void { method render (line 136) | render(): void { method drawIndex (line 155) | private drawIndex(startRow: number): void { method drawContent (line 192) | private drawContent(startRow: number, contentHeight: number): void { method getStringWidth (line 229) | private getStringWidth(str: string): number { method clear (line 234) | clear(): void { FILE: src/cli/ui/components/logs.ui.ts class LogsUi (line 8) | class LogsUi extends BaseUi implements InteractiveUi { method constructor (line 20) | constructor(private readonly logger: LoggerService) { method onKeyInput (line 25) | onKeyInput({ name }: IKeyPress): void { method render (line 33) | render(): void { method cyclePages (line 37) | private cyclePages(): void { method close (line 48) | private close(): void { method renderPopup (line 52) | private renderPopup(): void { method printHeader (line 114) | private printHeader(): void { method stylizeText (line 131) | private stylizeText( method chunkString (line 140) | private chunkString(str: string, length: number): string[] { method chunkArray (line 145) | private chunkArray(arr: string[], size: number): string[][] { method calculatePosition (line 151) | private calculatePosition(): void { FILE: src/cli/ui/components/options.ui.ts type OptionType (line 11) | type OptionType = 'checkbox' | 'dropdown' | 'input'; type OptionItem (line 13) | interface OptionItem { class OptionsUi (line 21) | class OptionsUi extends BaseUi implements InteractiveUi { method constructor (line 48) | constructor( method initializeOptions (line 57) | private initializeOptions(): void { method move (line 110) | private move(dir: -1 | 1): void { method activateSelected (line 117) | private activateSelected(): void { method handleEditKey (line 163) | private handleEditKey(name: string, sequence: string): void { method emitConfigChange (line 218) | private emitConfigChange( method cancelEdit (line 226) | private cancelEdit(): void { method onKeyInput (line 232) | onKeyInput(key: IKeyPress): void { method goBack (line 242) | private goBack(): void { method goToHelp (line 247) | private goToHelp(): void { method render (line 252) | render(): void { method printHintMessage (line 360) | private printHintMessage() { method clear (line 378) | clear(): void { FILE: src/cli/ui/components/result-details.ui.ts class ResultDetailsUi (line 12) | class ResultDetailsUi extends BaseUi implements InteractiveUi { method constructor (line 26) | constructor( method openFolder (line 33) | private openFolder(): void { method goBack (line 39) | private goBack(): void { method onKeyInput (line 44) | onKeyInput({ name }: IKeyPress): void { method render (line 52) | render(): void { method clear (line 216) | clear(): void { method getRowsAvailable (line 223) | private getRowsAvailable(): number { method getRow (line 228) | private getRow(index: number): number { FILE: src/cli/ui/components/results.ui.ts constant CURSOR_ROW_COLOR (line 22) | const CURSOR_ROW_COLOR = 'bgBlue'; class ResultsUi (line 24) | class ResultsUi extends HeavyUi implements InteractiveUi { method constructor (line 78) | constructor( method openFolder (line 85) | private openFolder(): void { method showDetails (line 91) | private showDetails(): void { method goOptions (line 99) | private goOptions(): void { method endNpkill (line 106) | private endNpkill(): void { method toggleSelectMode (line 110) | private toggleSelectMode(): void { method startRangeSelection (line 119) | private startRangeSelection(): void { method toggleSelectAll (line 144) | private toggleSelectAll(): void { method handleSpacePress (line 164) | private handleSpacePress(): void { method toggleFolderSelection (line 173) | private toggleFolderSelection(): void { method applyRangeSelection (line 186) | private applyRangeSelection(): void { method deleteSelected (line 219) | private deleteSelected(): void { method activateSearchInputMode (line 231) | private activateSearchInputMode(): void { method handleSearchInput (line 237) | private handleSearchInput(key: IKeyPress): void { method filterResults (line 276) | private filterResults(): void { method onKeyInput (line 287) | onKeyInput(key: IKeyPress): void { method render (line 309) | render(): void { method clear (line 369) | clear(): void { method completeSearch (line 376) | completeSearch(): void { method printResults (line 383) | private printResults(): void { method noResults (line 392) | private noResults(): void { method printFolderRow (line 403) | private printFolderRow(folder: CliScanFoundFolder, row: number): void { method rangeSelectedCursor (line 459) | private rangeSelectedCursor(row: number): void { method selectionCursor (line 466) | private selectionCursor(row: number): void { method getFolderTexts (line 474) | private getFolderTexts(folder: CliScanFoundFolder): { method cursorUp (line 524) | cursorUp(): void { method cursorDown (line 528) | cursorDown(): void { method cursorPageUp (line 532) | cursorPageUp(): void { method cursorPageDown (line 537) | cursorPageDown(): void { method cursorFirstResult (line 542) | cursorFirstResult(): void { method cursorLastResult (line 546) | cursorLastResult(): void { method fitScroll (line 550) | fitScroll(): void { method scrollFolderResults (line 582) | scrollFolderResults(scrollAmount: number): void { method moveCursor (line 588) | private moveCursor(index: number): void { method getFolderPathText (line 609) | private getFolderPathText(folder: CliScanFoundFolder): string { method paintStatusFolderPath (line 650) | private paintStatusFolderPath(folderString: string, action: string): s... method printScrollBar (line 674) | private printScrollBar(): void { method isCursorInLowerLimit (line 705) | private isCursorInLowerLimit(): boolean { method isCursorInUpperLimit (line 709) | private isCursorInUpperLimit(): boolean { method getRealCursorPosY (line 713) | private getRealCursorPosY(): number { method getVisibleScrollFolders (line 717) | private getVisibleScrollFolders(): CliScanFoundFolder[] { method paintBgRow (line 724) | private paintBgRow(row: number): void { method delete (line 739) | private delete(): void { method getRowsAvailable (line 745) | private getRowsAvailable(): number { method getRow (line 750) | private getRow(index: number): number { method showErrorsPopup (line 754) | private showErrorsPopup(): void { method truncateText (line 758) | private truncateText(text: string, maxLength: number): string { method clamp (line 793) | private clamp(num: number, min: number, max: number): number { method results (line 797) | private get results(): CliScanFoundFolder[] { FILE: src/cli/ui/components/warning.ui.ts class WarningUi (line 6) | class WarningUi extends BaseUi implements InteractiveUi { method onKeyInput (line 14) | onKeyInput({ name }: IKeyPress): void { method setDeleteAllWarningVisibility (line 22) | setDeleteAllWarningVisibility(visible: boolean): void { method render (line 27) | render(): void { method printDeleteAllWarning (line 33) | private printDeleteAllWarning(): void { FILE: src/cli/ui/heavy.ui.ts method resetBufferState (line 11) | resetBufferState(): void { method print (line 20) | protected override print(text: string): void { method flush (line 25) | protected flush(): void { method clearBuffer (line 39) | private clearBuffer(): void { FILE: src/constants/cli.constants.ts constant OPTIONS (line 4) | const OPTIONS: ICliOptions[] = [ constant HELP_HEADER (line 110) | const HELP_HEADER = `Npkill helps you find and manage “junk” directories... constant HELP_PROGRESSBAR (line 128) | const HELP_PROGRESSBAR = `${getHeader('Header information')} constant HELP_FOOTER (line 142) | const HELP_FOOTER = `${getHeader('Important note')} constant COLORS (line 145) | const COLORS = { FILE: src/constants/main.constants.ts constant MIN_CLI_COLUMNS_SIZE (line 4) | const MIN_CLI_COLUMNS_SIZE = 60; constant CURSOR_SIMBOL (line 5) | const CURSOR_SIMBOL = '~>'; constant WIDTH_OVERFLOW (line 6) | const WIDTH_OVERFLOW = '...'; constant DEFAULT_SIZE (line 7) | const DEFAULT_SIZE = '0 MB'; constant DECIMALS_SIZE (line 8) | const DECIMALS_SIZE = 2; constant OVERFLOW_CUT_FROM (line 9) | const OVERFLOW_CUT_FROM = 11; constant DEFAULT_CONFIG (line 11) | const DEFAULT_CONFIG: IConfig = { constant MARGINS (line 29) | const MARGINS = { constant UI_HELP (line 36) | const UI_HELP = { constant UI_POSITIONS (line 43) | const UI_POSITIONS = { constant BANNER (line 81) | const BANNER = ` __ .__.__ .__ constant STREAM_ENCODING (line 88) | const STREAM_ENCODING = 'utf8'; FILE: src/constants/messages.constants.ts constant MENU_BAR (line 1) | const MENU_BAR = { constant INFO_MSGS (line 8) | const INFO_MSGS = { constant ERROR_MSG (line 36) | const ERROR_MSG = { FILE: src/constants/options.constants.ts constant OPTIONS_HINTS_BY_TYPE (line 3) | const OPTIONS_HINTS_BY_TYPE = { FILE: src/constants/result-descriptions.constants.ts constant RESULT_TYPE_INFO (line 6) | const RESULT_TYPE_INFO = { FILE: src/constants/sort.result.ts constant FOLDER_SORT (line 3) | const FOLDER_SORT = { FILE: src/constants/spinner.constants.ts constant SPINNER_INTERVAL (line 1) | const SPINNER_INTERVAL = 70; constant SPINNERS (line 2) | const SPINNERS = { FILE: src/constants/status.constants.ts constant BAR_PARTS (line 3) | const BAR_PARTS = { constant BAR_WIDTH (line 10) | const BAR_WIDTH = 25; FILE: src/constants/update.constants.ts constant VERSION_CHECK_DIRECTION (line 1) | const VERSION_CHECK_DIRECTION = 'https://npkill.js.org/version.json'; constant VERSION_KEY (line 2) | const VERSION_KEY = 'last-recomended-version'; FILE: src/constants/workers.constants.ts constant MAX_WORKERS (line 1) | const MAX_WORKERS = 8; constant MAX_PROCS (line 4) | const MAX_PROCS = 100; type EVENTS (line 5) | enum EVENTS { FILE: src/core/constants/global-ignored.constants.ts constant GLOBAL_IGNORE (line 7) | const GLOBAL_IGNORE = new Set([ FILE: src/core/constants/profiles.constants.ts constant DEFAULT_PROFILE (line 4) | const DEFAULT_PROFILE = 'node'; constant BASE_PROFILES (line 6) | const BASE_PROFILES: { [profileName: string]: PROFILE } = { constant ALL_TARGETS (line 147) | const ALL_TARGETS = [ constant DEFAULT_PROFILES (line 153) | const DEFAULT_PROFILES: { [profileName: string]: PROFILE } = { FILE: src/core/interfaces/file-service.interface.ts type IFileService (line 11) | interface IFileService { type IFileStat (line 84) | interface IFileStat { FILE: src/core/interfaces/folder.interface.ts type SizeUnit (line 2) | type SizeUnit = 'bytes'; type SortBy (line 5) | type SortBy = 'path' | 'size' | 'age'; type RiskAnalysis (line 9) | interface RiskAnalysis { type ScanFoundFolder (line 19) | interface ScanFoundFolder { type ScanOptions (line 29) | interface ScanOptions { type GetSizeOptions (line 44) | interface GetSizeOptions { type GetSizeResult (line 52) | interface GetSizeResult { type GetNewestFileOptions (line 63) | interface GetNewestFileOptions {} type GetNewestFileResult (line 68) | interface GetNewestFileResult { type DeleteOptions (line 80) | interface DeleteOptions { type DeleteResult (line 88) | interface DeleteResult { FILE: src/core/interfaces/logger-service.interface.ts type LogEntry (line 6) | interface LogEntry { type ILoggerService (line 16) | interface ILoggerService { FILE: src/core/interfaces/npkill.interface.ts type ProfileFilterType (line 13) | type ProfileFilterType = 'base' | 'user' | 'all'; type IsValidRootFolderResult (line 18) | interface IsValidRootFolderResult { type NpkillInterface (line 30) | interface NpkillInterface { FILE: src/core/interfaces/npkillrc-config.interface.ts type INpkillrcConfig (line 7) | interface INpkillrcConfig { type IConfigLoadResult (line 83) | interface IConfigLoadResult { constant VALID_NPKILLRC_PROPERTIES (line 100) | const VALID_NPKILLRC_PROPERTIES = [ FILE: src/core/interfaces/profile.interface.ts type PROFILE (line 4) | interface PROFILE { FILE: src/core/interfaces/search-status.model.ts class ScanStatus (line 8) | class ScanStatus { method newResult (line 30) | newResult(): void { method completeStatCalculation (line 39) | completeStatCalculation(): void { method reset (line 44) | reset() { FILE: src/core/interfaces/services.interface.ts type Services (line 12) | interface Services { FILE: src/core/npkill.ts class Npkill (line 34) | class Npkill implements NpkillInterface { method constructor (line 37) | constructor(customServices?: Partial) { method startScan$ (line 49) | startScan$( method getSize$ (line 88) | getSize$(path: string): Observable { method getNewestFile$ (line 98) | getNewestFile$( method delete$ (line 114) | delete$(path: string, options?: DeleteOptions): Observable { method stopScan (line 142) | stopScan(): void { method isValidRootFolder (line 147) | isValidRootFolder(path: string): IsValidRootFolderResult { method getVersion (line 151) | getVersion(): string { method logger (line 158) | get logger(): LoggerService { function createDefaultServices (line 163) | function createDefaultServices( function splitData (line 196) | function splitData(data: string, separator = '\n'): string[] { FILE: src/core/services/config.service.ts constant DEFAULT_CONFIG_FILENAME (line 11) | const DEFAULT_CONFIG_FILENAME = '.npkillrc'; class ConfigService (line 16) | class ConfigService { method loadConfig (line 25) | loadConfig(customPath?: string): IConfigLoadResult { method resolveConfigPath (line 72) | private resolveConfigPath(customPath?: string): string { method mergeConfigs (line 95) | mergeConfigs>( method getUserDefinedProfiles (line 118) | getUserDefinedProfiles( FILE: src/core/services/config/config-merger.ts function mergeExcludeArrays (line 6) | function mergeExcludeArrays( function mergeProperty (line 17) | function mergeProperty( function isDefined (line 28) | function isDefined(value: T | undefined): value is T { function applyFileConfigProperties (line 35) | function applyFileConfigProperties( FILE: src/core/services/config/config-validator.ts function validateConfig (line 17) | function validateConfig(config: INpkillrcConfig): ValidationResult { FILE: src/core/services/config/profile-validator.ts function validateProfile (line 3) | function validateProfile( function validateProfiles (line 62) | function validateProfiles(value: unknown): ValidationResult { FILE: src/core/services/config/property-validators.ts constant VALID_SORT_OPTIONS (line 3) | const VALID_SORT_OPTIONS = ['none', 'size', 'path', 'age'] as const; constant VALID_SIZE_UNITS (line 4) | const VALID_SIZE_UNITS = ['auto', 'mb', 'gb'] as const; type ValidationResult (line 6) | interface ValidationResult { function validateRootDir (line 14) | function validateRootDir(value: unknown): ValidationResult { function validateExclude (line 39) | function validateExclude(value: unknown): ValidationResult { function validateSortBy (line 64) | function validateSortBy(value: unknown): ValidationResult { function validateSizeUnit (line 82) | function validateSizeUnit(value: unknown): ValidationResult { function validateBoolean (line 100) | function validateBoolean( function validateDefaultProfiles (line 121) | function validateDefaultProfiles(value: unknown): ValidationResult { function validateUnknownProperties (line 146) | function validateUnknownProperties( FILE: src/core/services/files/files.service.ts method constructor (line 19) | constructor(fileWorkerService: FileWorkerService) { method listDir (line 25) | listDir(path: string, params: ScanOptions): Observable { method getFolderSize (line 31) | getFolderSize(path: string): Observable { method stopScan (line 37) | stopScan(): void { method fakeDeleteDir (line 42) | async fakeDeleteDir(): Promise { method isValidRootFolder (line 48) | isValidRootFolder(path: string): IsValidRootFolderResult { method isDangerous (line 85) | isDangerous(originalPath: string): RiskAnalysis { method getRecentModificationInDir (line 199) | async getRecentModificationInDir( method getFileStatsInDir (line 218) | async getFileStatsInDir(dirname: string): Promise { FILE: src/core/services/files/files.worker.service.ts type WorkerStatus (line 11) | type WorkerStatus = 'stopped' | 'scanning' | 'dead' | 'finished'; type WorkerJob (line 12) | type WorkerJob = { type WorkerScanOptions (line 17) | interface WorkerScanOptions extends ScanOptions { type WorkerMessage (line 21) | type WorkerMessage = type WorkerStats (line 45) | interface WorkerStats { class FileWorkerService (line 51) | class FileWorkerService { method constructor (line 67) | constructor( method startScan (line 72) | async startScan( method getFolderSize (line 92) | getFolderSize(stream$: Subject, path: string): void { method stopScan (line 120) | stopScan(): void { method listenEvents (line 135) | private listenEvents(stream$: Subject): void { method newWorkerMessage (line 154) | private newWorkerMessage( method addJob (line 216) | private addJob(job: WorkerJob): void { method checkJobComplete (line 230) | private checkJobComplete(stream$: Subject): void { method instantiateWorkers (line 240) | private instantiateWorkers(amount: number): void { method setWorkerConfig (line 255) | private setWorkerConfig(params: WorkerScanOptions): void { method killWorkers (line 264) | private async killWorkers(): Promise { method getPendingJobs (line 288) | private getPendingJobs(): number { method updateStats (line 292) | private updateStats(): void { method getWorkerPath (line 298) | private getWorkerPath(): URL { method getOptimalNumberOfWorkers (line 309) | private getOptimalNumberOfWorkers(): number { FILE: src/core/services/files/files.worker.ts type ETaskOperation (line 10) | enum ETaskOperation { type Task (line 16) | interface Task { function notifyWorkerReady (line 46) | function notifyWorkerReady(): void { function initTunnelListeners (line 53) | function initTunnelListeners(): void { function initFileWalkerListeners (line 77) | function initFileWalkerListeners(): void { class FileWalker (line 101) | class FileWalker { method setSearchConfig (line 114) | setSearchConfig(params: WorkerScanOptions): void { method stop (line 118) | stop(): void { method enqueueTask (line 122) | enqueueTask( method run (line 146) | private async run(path: string): Promise { method analizeDir (line 157) | private async analizeDir(path: string, dir: Dir): Promise { method runGetFolderSize (line 174) | private async runGetFolderSize(path: string): Promise { method runGetFolderSizeChild (line 200) | private async runGetFolderSizeChild( method newDirEntry (line 270) | private newDirEntry( method isExcluded (line 297) | private isExcluded(path: string): boolean { method isTargetFolder (line 304) | private isTargetFolder(path: string): boolean { method completeTask (line 308) | private completeTask(): void { method updateProcs (line 314) | private updateProcs(value: number): void { method processQueue (line 318) | private processQueue(): void { method completeAll (line 365) | private completeAll(): void { method pendingJobs (line 377) | get pendingJobs(): number { FILE: src/core/services/files/unix-files.service.ts class UnixFilesService (line 9) | class UnixFilesService extends FileService { method constructor (line 10) | constructor( method deleteDir (line 17) | async deleteDir(path: string): Promise { FILE: src/core/services/files/windows-files.service.ts class WindowsFilesService (line 8) | class WindowsFilesService extends FileService { method constructor (line 9) | constructor( method deleteDir (line 16) | async deleteDir(path: string): Promise { FILE: src/core/services/logger.service.ts constant LATEST_TAG (line 12) | const LATEST_TAG = 'latest'; constant OLD_TAG (line 13) | const OLD_TAG = 'old'; class LoggerService (line 20) | class LoggerService implements ILoggerService { method info (line 24) | info(message: string): void { method warn (line 32) | warn(message: string): void { method error (line 40) | error(message: string): void { method get (line 48) | get(type: 'all' | 'info' | 'warn' | 'error' = 'all'): LogEntry[] { method getLog$ (line 56) | getLog$(): Observable { method getLogByType$ (line 60) | getLogByType$( method saveToFile (line 74) | saveToFile(path: string): void { method getSuggestLogFilePath (line 88) | getSuggestLogFilePath(): string { method rotateLogFile (line 93) | private rotateLogFile(newLogPath: string): void { method addToLog (line 104) | private addToLog(entry: LogEntry): void { method getTimestamp (line 109) | private getTimestamp(): number { FILE: src/core/services/profiles.service.ts type ProfileFilterType (line 4) | type ProfileFilterType = 'base' | 'user' | 'all'; class ProfilesService (line 10) | class ProfilesService { method setUserDefinedProfiles (line 17) | setUserDefinedProfiles(profiles: Record): void { method getProfiles (line 29) | getProfiles(filterType: ProfileFilterType = 'all'): Record(stream: ChildProcessWithoutNullStreams): Observa... method getStream (line 39) | getStream(child: ChildProcessWithoutNullStreams): Observable { method setEncoding (line 44) | private setEncoding( FILE: src/utils/get-file-content.ts function getFileContent (line 3) | function getFileContent(path: string): string { FILE: src/utils/is-safe-to-delete.ts function isSafeToDelete (line 3) | function isSafeToDelete(filePath: string, targets: string[]): boolean { FILE: src/utils/unit-conversions.ts function convertBytesToKB (line 1) | function convertBytesToKB(bytes: number): number { function convertBytesToGb (line 6) | function convertBytesToGb(bytes: number): number { function convertGBToMB (line 10) | function convertGBToMB(gb: number): number { function convertGbToKb (line 15) | function convertGbToKb(gb: number): number { function convertGbToBytes (line 20) | function convertGbToBytes(gb: number): number { type FormattedSize (line 24) | interface FormattedSize { function formatSize (line 30) | function formatSize( FILE: tests/cli/cli.controller.test.ts method setVisible (line 82) | setVisible() {} class CliController (line 92) | class CliController extends CliControllerConstructor {} FILE: tests/cli/services/https.service.test.ts class HttpsService (line 29) | class HttpsService extends HttpsServiceConstructor {} FILE: tests/cli/ui/results.ui.test.ts class ResultsUi (line 25) | class ResultsUi extends ResultsUiConstructor {} FILE: tests/core/services/files/files.service.test.ts class UnixFilesService (line 33) | class UnixFilesService extends UnixFilesServiceConstructor {} class WindowsFilesService (line 38) | class WindowsFilesService extends WindowsFilesServiceConstructor {} FILE: tests/core/services/files/files.worker.service.test.ts class FileWorkerService (line 58) | class FileWorkerService extends FileWorkerServiceConstructor {} FILE: tests/core/services/logger.service.test.ts class LoggerService (line 26) | class LoggerService extends LoggerServiceConstructor {} FILE: tests/index.test.ts function importIndex (line 40) | function importIndex() {