summaryrefslogtreecommitdiff
path: root/node_modules/dir-compare/src/index.d.ts
diff options
context:
space:
mode:
authorLinuxWizard42 <computerwizard@linuxmail.org>2022-10-12 22:54:37 +0300
committerLinuxWizard42 <computerwizard@linuxmail.org>2022-10-12 22:54:37 +0300
commit703e03aba33f234712206769f57717ba7d92d23d (patch)
tree0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/dir-compare/src/index.d.ts
parentab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff)
downloadFlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz
FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/dir-compare/src/index.d.ts')
-rw-r--r--node_modules/dir-compare/src/index.d.ts476
1 files changed, 476 insertions, 0 deletions
diff --git a/node_modules/dir-compare/src/index.d.ts b/node_modules/dir-compare/src/index.d.ts
new file mode 100644
index 0000000..fc84980
--- /dev/null
+++ b/node_modules/dir-compare/src/index.d.ts
@@ -0,0 +1,476 @@
+/// <reference types="node" />
+
+import * as fs from "fs"
+
+/**
+ * Synchronously compares given paths.
+ * @param path1 Left file or directory to be compared.
+ * @param path2 Right file or directory to be compared.
+ * @param options Comparison options.
+ */
+export function compareSync(path1: string, path2: string, options?: Options): Result
+
+/**
+ * Asynchronously compares given paths.
+ * @param path1 Left file or directory to be compared.
+ * @param path2 Right file or directory to be compared.
+ * @param options Comparison options.
+ */
+export function compare(path1: string, path2: string, options?: Options): Promise<Result>
+
+/**
+ * Comparison options.
+ */
+export interface Options {
+ /**
+ * Properties to be used in various extension points ie. result builder.
+ */
+ [key: string]: any
+
+ /**
+ * Compares files by size. Defaults to 'false'.
+ */
+ compareSize?: boolean
+
+ /**
+ * Compares files by date of modification (stat.mtime). Defaults to 'false'.
+ */
+ compareDate?: boolean
+
+ /**
+ * Two files are considered to have the same date if the difference between their modification dates fits within date tolerance. Defaults to 1000 ms.
+ */
+ dateTolerance?: number
+
+ /**
+ * Compares files by content. Defaults to 'false'.
+ */
+ compareContent?: boolean
+
+ /**
+ * Compares entries by symlink. Defaults to 'false'.
+ */
+ compareSymlink?: boolean
+
+ /**
+ * Skips sub directories. Defaults to 'false'.
+ */
+ skipSubdirs?: boolean
+
+ /**
+ * Ignore symbolic links. Defaults to 'false'.
+ */
+ skipSymlinks?: boolean
+
+ /**
+ * Ignores case when comparing names. Defaults to 'false'.
+ */
+ ignoreCase?: boolean
+
+ /**
+ * Toggles presence of diffSet in output. If true, only statistics are provided. Use this when comparing large number of files to avoid out of memory situations. Defaults to 'false'.
+ */
+ noDiffSet?: boolean
+
+ /**
+ * File name filter. Comma separated minimatch patterns. See [Glob patterns](https://github.com/gliviu/dir-compare#glob-patterns).
+ */
+ includeFilter?: string
+
+ /**
+ * File/directory name exclude filter. Comma separated minimatch patterns. See [Glob patterns](https://github.com/gliviu/dir-compare#glob-patterns)
+ */
+ excludeFilter?: string
+
+ /**
+ * Callback for constructing result. Called for each compared entry pair.
+ *
+ * Updates 'statistics' and 'diffSet'.
+ *
+ * See [Custom result builder](https://github.com/gliviu/dir-compare#custom-result-builder).
+ */
+ resultBuilder?: ResultBuilder
+
+ /**
+ * File comparison handler. See [Custom file comparators](https://github.com/gliviu/dir-compare#custom-file-content-comparators).
+ */
+ compareFileSync?: CompareFileSync
+
+ /**
+ * File comparison handler. See [Custom file comparators](https://github.com/gliviu/dir-compare#custom-file-content-comparators).
+ */
+ compareFileAsync?: CompareFileAsync
+
+ /**
+ * Entry name comparison handler. See [Custom name comparators](https://github.com/gliviu/dir-compare#custom-name-comparators).
+ */
+ compareNameHandler?: CompareNameHandler
+}
+
+/**
+ * Callback for constructing result. Called for each compared entry pair.
+ *
+ * Updates 'statistics' and 'diffSet'.
+ */
+export type ResultBuilder =
+ /**
+ * @param entry1 Left entry.
+ * @param entry2 Right entry.
+ * @param state See [[DifferenceState]].
+ * @param level Depth level relative to root dir.
+ * @param relativePath Path relative to root dir.
+ * @param statistics Statistics to be updated.
+ * @param diffSet Status per each entry to be appended.
+ * Do not append if [[Options.noDiffSet]] is false.
+ * @param reason See [[Reason]]. Not available if entries are equal.
+ */
+ (
+ entry1: Entry | undefined,
+ entry2: Entry | undefined,
+ state: DifferenceState,
+ level: number,
+ relativePath: string,
+ options: Options,
+ statistics: Statistics,
+ diffSet: Array<Difference> | undefined,
+ reason: Reason | undefined
+ ) => void
+
+export interface Entry {
+ name: string
+ absolutePath: string
+ path: string
+ stat: fs.Stats
+ lstat: fs.Stats
+ symlink: boolean
+}
+
+/**
+ * Comparison result.
+ */
+export interface Result extends Statistics {
+ /**
+ * List of changes (present if [[Options.noDiffSet]] is false).
+ */
+ diffSet?: Array<Difference>
+}
+
+export interface Statistics {
+ /**
+ * Any property is allowed if default result builder is not used.
+ */
+ [key: string]: any
+
+ /**
+ * True if directories are identical.
+ */
+ same: boolean
+
+ /**
+ * Number of distinct entries.
+ */
+ distinct: number
+
+ /**
+ * Number of equal entries.
+ */
+ equal: number
+
+ /**
+ * Number of entries only in path1.
+ */
+ left: number
+
+ /**
+ * Number of entries only in path2.
+ */
+ right: number
+
+ /**
+ * Total number of differences (distinct+left+right).
+ */
+ differences: number
+
+ /**
+ * Total number of entries (differences+equal).
+ */
+ total: number
+
+ /**
+ * Number of distinct files.
+ */
+ distinctFiles: number
+
+ /**
+ * Number of equal files.
+ */
+ equalFiles: number
+
+ /**
+ * Number of files only in path1.
+ */
+ leftFiles: number
+
+ /**
+ * Number of files only in path2
+ */
+ rightFiles: number
+
+ /**
+ * Total number of different files (distinctFiles+leftFiles+rightFiles).
+ */
+ differencesFiles: number
+
+ /**
+ * Total number of files (differencesFiles+equalFiles).
+ */
+ totalFiles: number
+
+ /**
+ * Number of distinct directories.
+ */
+ distinctDirs: number
+
+ /**
+ * Number of equal directories.
+ */
+ equalDirs: number
+
+ /**
+ * Number of directories only in path1.
+ */
+ leftDirs: number
+
+ /**
+ * Number of directories only in path2.
+ */
+ rightDirs: number
+
+ /**
+ * Total number of different directories (distinctDirs+leftDirs+rightDirs).
+ */
+ differencesDirs: number
+
+ /**
+ * Total number of directories (differencesDirs+equalDirs).
+ */
+ totalDirs: number
+
+ /**
+ * Stats about broken links.
+ */
+ brokenLinks: BrokenLinksStatistics
+
+ /**
+ * Statistics available if 'compareSymlink' options is used.
+ */
+ symlinks?: SymlinkStatistics
+}
+
+export interface BrokenLinksStatistics {
+ /**
+ * Number of broken links only in path1
+ */
+ leftBrokenLinks: number
+
+ /**
+ * Number of broken links only in path2
+ */
+ rightBrokenLinks: number
+
+ /**
+ * Number of broken links with same name appearing in both path1 and path2 (leftBrokenLinks+rightBrokenLinks+distinctBrokenLinks)
+ */
+ distinctBrokenLinks: number
+
+ /**
+ * Total number of broken links
+ */
+ totalBrokenLinks: number
+
+}
+
+export interface SymlinkStatistics {
+ /**
+ * Number of distinct links.
+ */
+ distinctSymlinks: number
+
+ /**
+ * Number of equal links.
+ */
+ equalSymlinks: number
+
+ /**
+ * Number of links only in path1.
+ */
+ leftSymlinks: number
+
+ /**
+ * Number of links only in path2
+ */
+ rightSymlinks: number
+
+ /**
+ * Total number of different links (distinctSymlinks+leftSymlinks+rightSymlinks).
+ */
+ differencesSymlinks: number
+
+ /**
+ * Total number of links (differencesSymlinks+equalSymlinks).
+ */
+ totalSymlinks: number
+
+}
+
+/**
+ * State of left/right entries relative to each other.
+ */
+export type DifferenceState = "equal" | "left" | "right" | "distinct"
+
+/**
+ * Type of entry.
+ */
+export type DifferenceType = "missing" | "file" | "directory" | "broken-link"
+
+/**
+ * Provides reason when two identically named entries are distinct.
+ */
+export type Reason = "different-size" | "different-date" | "different-content" | "broken-link" | 'different-symlink'
+
+export interface Difference {
+ /**
+ * Any property is allowed if default result builder is not used.
+ */
+ [key: string]: any
+
+ /**
+ * Path not including file/directory name; can be relative or absolute depending on call to compare().
+ */
+ path1?: string
+
+ /**
+ * Path not including file/directory name; can be relative or absolute depending on call to compare().
+ */
+ path2?: string
+
+ /**
+ * Path relative to root dir.
+ */
+ relativePath: string
+
+ /**
+ * Left file/directory name.
+ */
+ name1?: string
+
+ /**
+ * Right file/directory name.
+ */
+ name2?: string
+
+ /**
+ * See [[DifferenceState]]
+ */
+ state: DifferenceState
+
+ /**
+ * Type of left entry.
+ */
+ type1: DifferenceType
+
+ /**
+ * Type of right entry.
+ */
+ type2: DifferenceType
+
+ /**
+ * Left file size.
+ */
+ size1?: number
+
+ /**
+ * Right file size.
+ */
+ size2?: number
+
+ /**
+ * Left entry modification date (stat.mtime).
+ */
+ date1?: number
+
+ /**
+ * Right entry modification date (stat.mtime).
+ */
+ date2?: number
+
+ /**
+ * Depth level relative to root dir.
+ */
+ level: number
+
+ /**
+ * See [[Reason]].
+ * Not available if entries are equal.
+ */
+ reason?: Reason
+}
+
+/**
+ * Synchronous file content comparison handler.
+ */
+export type CompareFileSync = (
+ path1: string,
+ stat1: fs.Stats,
+ path2: string,
+ stat2: fs.Stats,
+ options: Options
+) => boolean
+
+/**
+ * Asynchronous file content comparison handler.
+ */
+export type CompareFileAsync = (
+ path1: string,
+ stat1: fs.Stats,
+ path2: string,
+ stat2: fs.Stats,
+ options: Options
+) => Promise<boolean>
+
+export interface CompareFileHandler {
+ compareSync: CompareFileSync,
+ compareAsync: CompareFileAsync
+}
+
+/**
+ * Available file content comparison handlers.
+ * These handlers are used when [[Options.compareContent]] is set.
+ */
+export const fileCompareHandlers: {
+ /**
+ * Default file content comparison handlers, used if [[Options.compareFileAsync]] or [[Options.compareFileSync]] are not specified.
+ *
+ * Performs binary comparison.
+ */
+ defaultFileCompare: CompareFileHandler,
+ /**
+ * Compares files line by line.
+ *
+ * Options:
+ * * ignoreLineEnding - tru/false (default: false)
+ * * ignoreWhiteSpaces - tru/false (default: false)
+ */
+ lineBasedFileCompare: CompareFileHandler
+}
+
+/**
+ * Compares the names of two entries.
+ * The comparison should be dependent on received options (ie. case sensitive, ...).
+ * Returns 0 if names are identical, -1 if name1<name2, 1 if name1>name2.
+ */
+export type CompareNameHandler = (
+ name1: string,
+ name2: string,
+ options: Options
+) => 0 | 1 | -1