UNPKG

btuid

Version:

Btuid library provides an interface to generate UIDs (Unique Identifiers) that are safe, cryptographically secure, and unpredictable, ensuring that every UUID is unique. The library also supports B+tree indexing, which makes it ideal for use in database s

72 lines (71 loc) 2.08 kB
export interface DegreeConfig { pageSize: number; keySize: number; TIDSize: number; indexTupleDataSize: number; linePointerSize: number; addingPaddingSize: number; degree: number; } export interface RestConfigData { depth: number; degree: number; chunkLength: bigint; indexInCurrentDepth: bigint; startValue: bigint; usedIdCount: bigint; } export type ConstructorParams = { degreeConfig?: DegreeConfig; startValue?: bigint; displacementRate?: number; restConfigData?: RestConfigData | null; DegreeComplications?: number; path?: string; saveTime?: number; hexLength?: number; randomLength?: number; securityKey: string; nodeNumber?: number; }; export declare class BtuidGenerator { private HEX_LENGTH; private EXTRALENGTH; private saveTime; private degreeConfig; private overhead; private entryOverhead; private degree; private usedIdCount; private depth; private startValue; private length; private chunkLength; private indexInCurrentDepth; private chunkCount; private shiftAmount; private nodeNumber; private restConfigData; data: { depth: number; degree: number; chunkLength: bigint; indexInCurrentDepth: bigint; startValue: bigint; usedIdCount: bigint; }; constructor({ degreeConfig, startValue, displacementRate, restConfigData, DegreeComplications, path, saveTime, hexLength, randomLength, securityKey, nodeNumber }: ConstructorParams); private sumOverhead; getExtraBtuid(): string; shiftHexMonotone(text: string, shiftAmount: number[][]): string; stringToArray16Random(input: string): number[][]; randomInRange(min: number, max: number): number; getBtuid(): string; private getId; private padHex; private bigIntToHex; private getNextInDepthAndIndex; syncSaveObject(path: string, obj: RestConfigData): void; saveObject(path: string, obj: RestConfigData): void; readObject(path: string): any; }