@thumbmarkjs/thumbmarkjs
Version:
   • 4.17 kB
TypeScript
interface optionsInterface {
exclude?: string[];
include?: string[];
permissions_to_check?: PermissionName[];
timeout?: number;
logging?: boolean;
api_key?: string;
cache_api_call?: boolean;
performance?: boolean;
stabilize?: string[];
}
/**
*
* @param key @deprecated this function will be removed
* @param value
*/
declare function setOption<K extends keyof optionsInterface>(key: K, value: optionsInterface[K]): void;
/**
* This file is used to create the includeComponent function as well as the interfaces each of the
* fingerprint components must implement.
*
*/
interface componentInterface {
[key: string]: string | string[] | number | boolean | componentInterface;
}
interface componentFunctionInterface {
(options?: optionsInterface): Promise<componentInterface | null>;
}
/**
* includeComponent is the function each custom component function needs to call in order for the component to be included
* in the fingerprint.
* @param {string} name - the name identifier of the component
* @param {componentFunctionInterface} creationFunction - the function that implements the component
* @returns nothing
*/
declare const includeComponent: (name: string, creationFunction: componentFunctionInterface, options?: optionsInterface) => void;
/**
* This file is here to support legacy implementations.
* Eventually, these functions will be removed to keep the library small.
*/
/**
*
* @deprecated
*/
declare function getFingerprintData(): Promise<componentInterface>;
/**
*
* @param includeData boolean
* @deprecated this function is going to be removed. use getThumbmark or Thumbmark class instead.
*/
declare function getFingerprint(includeData?: false): Promise<string>;
declare function getFingerprint(includeData: true): Promise<{
hash: string;
data: componentInterface;
}>;
/**
*
* @deprecated use Thumbmark or getThumbmark instead with options
*/
declare function getFingerprintPerformance(): Promise<{
elapsed: Record<string, number>;
}>;
/**
* ThumbmarkJS: Main fingerprinting and API logic
*
* This module handles component collection, API calls, uniqueness scoring, and data filtering
* for the ThumbmarkJS browser fingerprinting library.
*
* Exports:
* - getThumbmark
* - getThumbmarkDataFromPromiseMap
* - resolveClientComponents
* - filterThumbmarkData
*
* Internal helpers and types are also defined here.
*/
/**
* Final thumbmark response structure
*/
interface thumbmarkResponse {
components: componentInterface;
info: {
[key: string]: any;
};
version: string;
thumbmark: string;
/**
* Only present if options.performance is true.
*/
elapsed?: any;
}
/**
* Main entry point: collects all components, optionally calls API, and returns thumbmark data.
*
* @param options - Options for fingerprinting and API
* @returns thumbmarkResponse (elapsed is present only if options.performance is true)
*/
declare function getThumbmark(options?: optionsInterface): Promise<thumbmarkResponse>;
/**
* Returns the current package version
*/
declare function getVersion(): string;
/**
* A client for generating thumbmarks with a persistent configuration.
*/
declare class Thumbmark {
private options;
/**
* Creates a new Thumbmarker client instance.
* @param options - Default configuration options for this instance.
*/
constructor(options?: optionsInterface);
/**
* Generates a thumbmark using the instance's configuration.
* @param overrideOptions - Options to override for this specific call.
* @returns The thumbmark result.
*/
get(overrideOptions?: optionsInterface): Promise<any>;
getVersion(): string;
/**
* Register a custom component to be included in the fingerprint.
* @param key - The component name
* @param fn - The component function
*/
includeComponent(key: string, fn: (options?: optionsInterface) => Promise<componentInterface | null>): void;
}
export { Thumbmark, getFingerprint, getFingerprintData, getFingerprintPerformance, getThumbmark, getVersion, includeComponent, setOption };