@theroyalwhee0/ident
Version:
Unique Identifier Generator
64 lines (63 loc) • 2.5 kB
TypeScript
/**
* @file A Unique Identifier Generator for Node
* @author Adam Mill <hismajesty@theroyalwhee.com>
* @copyright Copyright 2021-2022 Adam Mill
* @license Apache-2.0
*/
/// <reference types="node" />
import { SequenceOptions } from '@theroyalwhee0/snowman';
/**
* Ident options.
*/
export declare type IdentOptions = {
signKey: string;
node?: number;
verifyKey?: string;
idOptions?: SequenceOptions;
getRandomBytes?: (size: number) => Buffer;
};
/**
* identGenerator
* @generator
* @function identGenerator
* @param {object} options Options.
* @param {number} options.node The numeric ID of the node (0-1023).
* @param {string} options.signKey The key to use for signing check.
* @param {string} options.verifyKey The key to use for verify check.
* @param {string} options.getRandomBytes Function to provide random bytes.
* @param {object} options.idOptions Options passed to snowman.
* @yields {string} The created ident.
*/
export declare function identGenerator(options: IdentOptions): Generator<string, void, unknown>;
/**
* Low-level validation factory.
* Use validationVerifyFactory, validationSignFactory, or
* validationBothFactory instead.
* @param {object} options Options.
* @param {string} options.signKey The key to use for signing check.
* @param {string} options.verifyKey The key to use for verify check.
* @returns True if valid, false if not.
*/
export declare function validationFactory(options?: IdentOptions): (value: string) => boolean;
/**
* Validation factory requring a signKey.
* @param {object} options Options.
* @param {string} options.signKey The key to use for signing check.
* @returns {boolean} True if valid, false if not.
*/
export declare function validationSignFactory(options?: IdentOptions): (value: string) => boolean;
/**
* Validation factory requring a verifyKey.
* @param {object} options Options.
* @param {string} options.verifyKey The key to use for verify check.
* @returns {boolean} True if valid, false if not.
*/
export declare function validationVerifyFactory(options?: IdentOptions): (value: string) => boolean;
/**
* Validation factory requring both keys.
* @param {object} options Options.
* @param {string} options.signKey The key to use for signing check.
* @param {string} options.verifyKey The key to use for verify check.
* @returns {boolean} True if valid, false if not.
*/
export declare function validationBothFactory(options?: IdentOptions): (value: string) => boolean;