UNPKG

uscc-utils

Version:

Utils about unified social credit code | 统一社会信用代码工具方法

165 lines 4.05 kB
//#region src/types.d.ts /** * {@link parseUSCC} 的返回结果 */ interface ParseResult { /** * 统一社会信用代码的登记管理部门类别 */ category: string; /** * 统一社会信用代码是否有效 */ isValid: boolean; /** * 统一社会信用代码对应的机构类型 */ type: string; } /** * {@link parseUSCC} 的选项 */ interface ParseOptions { /** * 未知类别时的占位文本 */ unknownCategory?: string; /** * 未知类型时的占位文本 */ unknownType?: string; /** * 在解析/校验前标准化输入 * - 去除首尾空白 * - 转为大写 * * @default false */ normalize?: boolean; } /** * 校验相关函数的选项 */ interface ValidateOptions { /** * 在解析/校验前标准化输入 * - 去除首尾空白 * - 转为大写 * * @default false */ normalize?: boolean; } /** * 校验失败原因 */ type USCCValidationErrorCode = 'INVALID_LENGTH' | 'INVALID_PATTERN' | 'INVALID_CHECKSUM'; /** * 详细校验结果 */ interface ValidateUSCCResult { /** * 标准化后的输入代码 */ normalizedCode: string; /** * 统一社会信用代码是否有效 */ isValid: boolean; /** * 无效时的失败原因 */ errorCode?: USCCValidationErrorCode; } /** * 有效统一社会信用代码的结构化字段 */ interface USCCParts { /** * 登记管理部门代码(第1位) */ registrationAuthorityCode: string; /** * 机构类别代码(第2位) */ entityTypeCode: string; /** * 行政区划代码(第3-8位) */ regionCode: string; /** * 主体标识码(第9-17位) */ organizationCode: string; /** * 校验码(第18位) */ checkChar: string; } //#endregion //#region src/parse.d.ts /** * 解析统一社会信用代码 * @param code - 待解析的统一社会信用代码 * @param options - 解析选项 * @returns 解析结果 `ParseResult` * * @example * ``` * import { parseUSCC } from 'uscc-utils' * parseUSCC('91110108551385082Q') // { isValid: true, category: '工商', type: '企业' } * ``` */ declare function parseUSCC(code: string, options?: ParseOptions): ParseResult; //#endregion //#region src/validate.d.ts /** * 标准化统一社会信用代码输入 * @param code - 原始统一社会信用代码 * @returns 标准化后的统一社会信用代码 */ declare function normalizeUSCC(code: string): string; /** * 获取统一社会信用代码的详细校验结果 * @param code - 统一社会信用代码 * @param options - 校验选项 * @returns 详细校验结果 */ declare function explainUSCC(code: string, options?: ValidateOptions): ValidateUSCCResult; /** * 校验统一社会信用代码 * @param code - 统一社会信用代码 * @param options - 校验选项 * @returns 是否有效 * * @example * ``` * import { validateUSCC } from 'uscc-utils' * validateUSCC('91110108551385082Q') // true * ``` */ declare function validateUSCC(code: string, options?: ValidateOptions): boolean; /** * 按标准结构拆分统一社会信用代码 * @param code - 统一社会信用代码 * @param options - 校验选项 * @returns 若代码有效则返回结构化字段,否则返回 `null` */ declare function splitUSCC(code: string, options?: ValidateOptions): USCCParts | null; //#endregion //#region src/constants.d.ts /** * 正则 统一社会信用代码 * @see {@link https://www.wikidata.org/wiki/Property:P6795} * @see {@link https://regexper.com/#%2F%5B1-9ANY%5D%5B1-59%5D%5Cd%7B6%7D%5B%5CdA-Z%5D%7B8%7D%5B%5CdX%5D%5B%5CdA-HJ-NP-RTUW-Y%5D%2F} */ declare const USCC_PATTERN: RegExp; /** * 登记管理部门代码 */ declare const USCC_CATEGORY_MAP: Record<string, { category: string; map: Record<string, string>; }>; //#endregion export { ParseOptions, ParseResult, USCCParts, USCCValidationErrorCode, USCC_CATEGORY_MAP, USCC_PATTERN, ValidateOptions, ValidateUSCCResult, explainUSCC, normalizeUSCC, parseUSCC, splitUSCC, validateUSCC };