summaryrefslogtreecommitdiff
path: root/includes/node_modules/fuse.js/dist/fuse.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'includes/node_modules/fuse.js/dist/fuse.d.ts')
-rw-r--r--includes/node_modules/fuse.js/dist/fuse.d.ts368
1 files changed, 368 insertions, 0 deletions
diff --git a/includes/node_modules/fuse.js/dist/fuse.d.ts b/includes/node_modules/fuse.js/dist/fuse.d.ts
new file mode 100644
index 0000000..4abfb90
--- /dev/null
+++ b/includes/node_modules/fuse.js/dist/fuse.d.ts
@@ -0,0 +1,368 @@
+// Type definitions for Fuse.js v7.0.0
+// TypeScript v4.9.5
+declare class Fuse<T> {
+ public constructor(
+ list: ReadonlyArray<T>,
+ options?: IFuseOptions<T>,
+ index?: FuseIndex<T>
+ )
+ /**
+ * Search function for the Fuse instance.
+ *
+ * ```typescript
+ * const list: MyType[] = [myType1, myType2, etc...]
+
+ * const options: Fuse.IFuseOptions<MyType> = {
+ * keys: ['key1', 'key2']
+ * }
+ *
+ * const myFuse = new Fuse(list, options)
+ * let result = myFuse.search('pattern')
+ * ```
+ *
+ * @param pattern The pattern to search
+ * @param options `Fuse.FuseSearchOptions`
+ * @returns An array of search results
+ */
+ public search<R = T>(
+ pattern: string | Expression,
+ options?: FuseSearchOptions
+ ): FuseResult<R>[]
+
+ public setCollection(docs: ReadonlyArray<T>, index?: FuseIndex<T>): void
+
+ /**
+ * Adds a doc to the end the list.
+ */
+ public add(doc: T): void
+
+ /**
+ * Removes all documents from the list which the predicate returns truthy for,
+ * and returns an array of the removed docs.
+ * The predicate is invoked with two arguments: (doc, index).
+ */
+ public remove(predicate: (doc: T, idx: number) => boolean): T[]
+
+ /**
+ * Removes the doc at the specified index.
+ */
+ public removeAt(idx: number): void
+
+ /**
+ * Returns the generated Fuse index
+ */
+ public getIndex(): FuseIndex<T>
+
+ /**
+ * Return the current version.
+ */
+ public static version: string
+
+ /**
+ * Use this method to pre-generate the index from the list, and pass it
+ * directly into the Fuse instance.
+ *
+ * _Note that Fuse will automatically index the table if one isn't provided
+ * during instantiation._
+ *
+ * ```typescript
+ * const list: MyType[] = [myType1, myType2, etc...]
+ *
+ * const index = Fuse.createIndex<MyType>(
+ * keys: ['key1', 'key2']
+ * list: list
+ * )
+ *
+ * const options: Fuse.IFuseOptions<MyType> = {
+ * keys: ['key1', 'key2']
+ * }
+ *
+ * const myFuse = new Fuse(list, options, index)
+ * ```
+ * @param keys The keys to index
+ * @param list The list from which to create an index
+ * @param options?
+ * @returns An indexed list
+ */
+ public static createIndex<U>(
+ keys: Array<FuseOptionKey<U>>,
+ list: ReadonlyArray<U>,
+ options?: FuseIndexOptions<U>
+ ): FuseIndex<U>
+
+ public static parseIndex<U>(
+ index: any,
+ options?: FuseIndexOptions<U>
+ ): FuseIndex<U>
+
+ public static config: Required<IFuseOptions<any>>
+}
+
+declare class FuseIndex<T> {
+ public constructor(options?: FuseIndexOptions<T>)
+ public setSources(docs: ReadonlyArray<T>): void
+ public setKeys(keys: ReadonlyArray<string>): void
+ public setIndexRecords(records: FuseIndexRecords): void
+ public create(): void
+ public add(doc: T): void
+ public toJSON(): {
+ keys: ReadonlyArray<string>
+ records: FuseIndexRecords
+ }
+}
+
+type FuseGetFunction<T> = (
+ obj: T,
+ path: string | string[]
+) => ReadonlyArray<string> | string
+
+type FuseIndexOptions<T> = {
+ getFn: FuseGetFunction<T>
+}
+
+/**
+ * @example
+ * ```ts
+ * {
+ * title: { '$': "Old Man's War" },
+ * 'author.firstName': { '$': 'Codenar' }
+ * }
+ * ```
+ * @example
+ * ```ts
+ * {
+ * tags: [
+ * { $: 'nonfiction', idx: 0 },
+ * { $: 'web development', idx: 1 },
+ * ]
+ * }
+ * ```
+ */
+type FuseSortFunctionItem = {
+ [key: string]: { $: string } | { $: string; idx: number }[]
+}
+
+/**
+ * @example
+ * ```ts
+ * {
+ * score: 0.001,
+ * key: 'author.firstName',
+ * value: 'Codenar',
+ * indices: [ [ 0, 3 ] ]
+ * }
+ * ```
+ */
+type FuseSortFunctionMatch = {
+ score: number
+ key: string
+ value: string
+ indices: ReadonlyArray<number>[]
+}
+
+/**
+ * @example
+ * ```ts
+ * {
+ * score: 0,
+ * key: 'tags',
+ * value: 'nonfiction',
+ * idx: 1,
+ * indices: [ [ 0, 9 ] ]
+ * }
+ * ```
+ */
+type FuseSortFunctionMatchList = FuseSortFunctionMatch & {
+ idx: number
+}
+
+type FuseSortFunctionArg = {
+ idx: number
+ item: FuseSortFunctionItem
+ score: number
+ matches?: (FuseSortFunctionMatch | FuseSortFunctionMatchList)[]
+}
+
+type FuseSortFunction = (
+ a: FuseSortFunctionArg,
+ b: FuseSortFunctionArg
+) => number
+
+/**
+ * @example
+ * ```ts
+ * title: {
+ * '$': "Old Man's War",
+ * 'n': 0.5773502691896258
+ * }
+ * ```
+ */
+type RecordEntryObject = {
+ /** The text value */
+ v: string
+ /** The field-length norm */
+ n: number
+}
+
+/**
+ * @example
+ * ```ts
+ * 'author.tags.name': [{
+ * 'v': 'pizza lover',
+ * 'i': 2,
+ * 'n: 0.7071067811865475
+ * }
+ * ```
+ */
+type RecordEntryArrayItem = ReadonlyArray<
+ RecordEntryObject & { i: number }
+>
+
+// TODO: this makes it difficult to infer the type. Need to think more about this
+type RecordEntry = {
+ [key: string]: RecordEntryObject | RecordEntryArrayItem
+}
+
+/**
+ * @example
+ * ```ts
+ * {
+ * i: 0,
+ * '$': {
+ * '0': { v: "Old Man's War", n: 0.5773502691896258 },
+ * '1': { v: 'Codenar', n: 1 },
+ * '2': [
+ * { v: 'pizza lover', i: 2, n: 0.7071067811865475 },
+ * { v: 'helo wold', i: 1, n: 0.7071067811865475 },
+ * { v: 'hello world', i: 0, n: 0.7071067811865475 }
+ * ]
+ * }
+ * }
+ * ```
+ */
+type FuseIndexObjectRecord = {
+ /** The index of the record in the source list */
+ i: number
+ $: RecordEntry
+}
+
+/**
+ * @example
+ * ```ts
+ * {
+ * keys: null,
+ * list: [
+ * { v: 'one', i: 0, n: 1 },
+ * { v: 'two', i: 1, n: 1 },
+ * { v: 'three', i: 2, n: 1 }
+ * ]
+ * }
+ * ```
+ */
+type FuseIndexStringRecord = {
+ /** The index of the record in the source list */
+ i: number
+ /** The text value */
+ v: string
+ /** The field-length norm */
+ n: number
+}
+
+type FuseIndexRecords =
+ | ReadonlyArray<FuseIndexObjectRecord>
+ | ReadonlyArray<FuseIndexStringRecord>
+
+/**
+ * @example
+ * ```ts
+ * {
+ * name: 'title',
+ * weight: 0.7
+ * }
+ * ```
+ */
+type FuseOptionKeyObject<T> = {
+ name: string | string[]
+ weight?: number
+ getFn?: (obj: T) => ReadonlyArray<string> | string
+}
+
+type FuseOptionKey<T> = FuseOptionKeyObject<T> | string | string[]
+
+interface IFuseOptions<T> {
+ /** Indicates whether comparisons should be case sensitive. */
+ isCaseSensitive?: boolean
+ /** Determines how close the match must be to the fuzzy location (specified by `location`). An exact letter match which is `distance` characters away from the fuzzy location would score as a complete mismatch. A `distance` of `0` requires the match be at the exact `location` specified. A distance of `1000` would require a perfect match to be within `800` characters of the `location` to be found using a `threshold` of `0.8`. */
+ distance?: number
+ /** When true, the matching function will continue to the end of a search pattern even if a perfect match has already been located in the string. */
+ findAllMatches?: boolean
+ /** The function to use to retrieve an object's value at the provided path. The default will also search nested paths. */
+ getFn?: FuseGetFunction<T>
+ /** When `true`, search will ignore `location` and `distance`, so it won't matter where in the string the pattern appears. */
+ ignoreLocation?: boolean
+ /** When `true`, the calculation for the relevance score (used for sorting) will ignore the `field-length norm`. */
+ ignoreFieldNorm?: boolean
+ /** Determines how much the `field-length norm` affects scoring. A value of `0` is equivalent to ignoring the field-length norm. A value of `0.5` will greatly reduce the effect of field-length norm, while a value of `2.0` will greatly increase it. */
+ fieldNormWeight?: number
+ /** Whether the matches should be included in the result set. When `true`, each record in the result set will include the indices of the matched characters. These can consequently be used for highlighting purposes. */
+ includeMatches?: boolean
+ /** Whether the score should be included in the result set. A score of `0`indicates a perfect match, while a score of `1` indicates a complete mismatch. */
+ includeScore?: boolean
+ /** List of keys that will be searched. This supports nested paths, weighted search, searching in arrays of `strings` and `objects`. */
+ keys?: Array<FuseOptionKey<T>>
+ /** Determines approximately where in the text is the pattern expected to be found. */
+ location?: number
+ /** Only the matches whose length exceeds this value will be returned. (For instance, if you want to ignore single character matches in the result, set it to `2`). */
+ minMatchCharLength?: number
+ /** Whether to sort the result list, by score. */
+ shouldSort?: boolean
+ /** The function to use to sort all the results. The default will sort by ascending relevance score, ascending index. */
+ sortFn?: FuseSortFunction
+ /** At what point does the match algorithm give up. A threshold of `0.0` requires a perfect match (of both letters and location), a threshold of `1.0` would match anything. */
+ threshold?: number
+ /** When `true`, it enables the use of unix-like search commands. See [example](/examples.html#extended-search). */
+ useExtendedSearch?: boolean
+}
+
+/**
+ * Denotes the start/end indices of a match
+ *
+ * @example
+ *
+ * ```ts
+ * const startIndex = 0;
+ * const endIndex = 5;
+ *
+ * const range: RangeTuple = [startIndex, endIndex];
+ * ```
+ */
+type RangeTuple = [number, number]
+
+type FuseResultMatch = {
+ indices: ReadonlyArray<RangeTuple>
+ key?: string
+ refIndex?: number
+ value?: string
+}
+
+type FuseSearchOptions = {
+ limit: number
+}
+
+type FuseResult<T> = {
+ item: T
+ refIndex: number
+ score?: number
+ matches?: ReadonlyArray<FuseResultMatch>
+}
+
+type Expression =
+ | { [key: string]: string }
+ | {
+ $path: ReadonlyArray<string>
+ $val: string
+ }
+ | { $and?: Expression[] }
+ | { $or?: Expression[] }
+
+export { Expression, FuseGetFunction, FuseIndex, FuseIndexObjectRecord, FuseIndexOptions, FuseIndexRecords, FuseIndexStringRecord, FuseOptionKey, FuseOptionKeyObject, FuseResult, FuseResultMatch, FuseSearchOptions, FuseSortFunction, FuseSortFunctionArg, FuseSortFunctionItem, FuseSortFunctionMatch, FuseSortFunctionMatchList, IFuseOptions, RangeTuple, RecordEntry, RecordEntryArrayItem, RecordEntryObject, Fuse as default };