|
|
// Update with any zlib constants that are added or changed in the future.
|
|
|
// Node v6 didn't export this, so we just hard code the version and rely
|
|
|
// on all the other hard-coded values from zlib v4736. When node v6
|
|
|
// support drops, we can just export the realZlibConstants object.
|
|
|
// 尝试获取 'zlib' 模块中的 'constants' 属性,如果获取失败(例如 'zlib' 模块不存在或没有 'constants' 属性),
|
|
|
// 则使用一个包含 'ZLIB_VERNUM: 4736' 的对象作为替代(这里使用了 istanbul ignore next 注释,可能是用于在测试覆盖时忽略该行,
|
|
|
// 表示该行在测试中不需要特别关注其执行情况)
|
|
|
const realZlibConstants = require('zlib').constants ||
|
|
|
/* istanbul ignore next */ { ZLIB_VERNUM: 4736 };
|
|
|
|
|
|
// 使用 Object.freeze 冻结对象,防止其被修改,通过 Object.assign 将多个对象合并为一个新对象,并将其作为模块的导出内容。
|
|
|
// 首先创建一个继承自 null 的空对象(Object.create(null))作为基础对象,然后将一系列属性添加到这个基础对象上。
|
|
|
module.exports = Object.freeze(Object.assign(Object.create(null), {
|
|
|
// 以下是定义的一系列常量及其对应的值,这些常量大概率与 zlib 相关的压缩、解压操作及配置等方面有关。
|
|
|
|
|
|
// 表示不进行刷新操作的常量,常用于 zlib 相关的流操作等场景,值为 0
|
|
|
Z_NO_FLUSH: 0,
|
|
|
// 表示部分刷新的常量,在某些特定的流数据处理中间阶段可能会用到,值为 1
|
|
|
Z_PARTIAL_FLUSH: 1,
|
|
|
// 表示同步刷新的常量,用于强制将缓冲数据立即刷新处理,值为 2
|
|
|
Z_SYNC_FLUSH: 2,
|
|
|
// 表示完全刷新的常量,可能涉及更彻底的数据处理和刷新,值为 3
|
|
|
Z_FULL_FLUSH: 3,
|
|
|
// 用于标记压缩或解压操作完成的常量,值为 4
|
|
|
Z_FINISH: 4,
|
|
|
// 可能与数据块相关的一个标识常量,具体含义需结合 zlib 具体使用场景,值为 5
|
|
|
Z_BLOCK: 5,
|
|
|
// 表示操作成功的常量,通常用于判断 zlib 相关函数调用的返回结果,值为 0
|
|
|
Z_OK: 0,
|
|
|
// 表示流已经到达结束状态的常量,比如在解压完成等情况时使用,值为 1
|
|
|
Z_STREAM_END: 1,
|
|
|
// 表示需要字典(可能用于特定的压缩算法辅助解压等情况)的常量,值为 2
|
|
|
Z_NEED_DICT: 2,
|
|
|
// 表示出现了系统错误(errno 相关,通常关联底层系统调用错误情况)的常量,值为 -1
|
|
|
Z_ERRNO: -1,
|
|
|
// 表示流出现错误的常量,比如流的初始化、配置等方面出现问题,值为 -2
|
|
|
Z_STREAM_ERROR: -2,
|
|
|
// 表示数据出现错误的常量,可能是传入的数据格式不符合要求等情况,值为 -3
|
|
|
Z_DATA_ERROR: -3,
|
|
|
// 表示内存相关错误的常量,比如内存分配不足等情况,值为 -4
|
|
|
Z_MEM_ERROR: -4,
|
|
|
// 表示缓冲区相关错误的常量,例如缓冲区溢出、不足等问题,值为 -5
|
|
|
Z_BUF_ERROR: -5,
|
|
|
// 表示版本相关错误的常量,可能是使用的 zlib 版本与期望不符等情况,值为 -6
|
|
|
Z_VERSION_ERROR: -6,
|
|
|
// 表示不进行压缩的配置常量,对应压缩等级等相关设置,值为 0
|
|
|
Z_NO_COMPRESSION: 0,
|
|
|
// 表示以最快速度进行压缩的配置常量,牺牲一定的压缩率来换取速度,值为 1
|
|
|
Z_BEST_SPEED: 1,
|
|
|
// 表示以最佳压缩效果进行压缩的配置常量,可能会消耗更多时间和资源来获得最高的压缩率,值为 9
|
|
|
Z_BEST_COMPRESSION: 9,
|
|
|
// 表示使用默认压缩配置的常量,具体的默认压缩程度由 zlib 内部定义,值为 -1
|
|
|
Z_DEFAULT_COMPRESSION: -1,
|
|
|
// 可能是一种压缩策略相关的常量,具体含义取决于 zlib 具体实现中的压缩算法逻辑,值为 1
|
|
|
Z_FILTERED: 1,
|
|
|
// 可能表示仅使用哈夫曼编码(一种数据编码方式常用于压缩)的常量,值为 2
|
|
|
Z_HUFFMAN_ONLY: 2,
|
|
|
// 可能是与行程长度编码(一种简单的数据压缩编码方式)相关的常量,值为 3
|
|
|
Z_RLE: 3,
|
|
|
// 可能是一种固定模式(具体针对压缩算法中的某些固定配置情况)的常量,值为 4
|
|
|
Z_FIXED: 4,
|
|
|
// 表示默认压缩策略的常量,对应压缩算法中的策略选择,值为 0
|
|
|
Z_DEFAULT_STRATEGY: 0,
|
|
|
// 表示使用 deflate 压缩算法的标识常量,常用于指定具体的压缩方法,值为 1
|
|
|
DEFLATE: 1,
|
|
|
// 表示使用 inflate 解压算法的标识常量,用于指定解压操作,值为 2
|
|
|
INFLATE: 2,
|
|
|
// 表示使用 gzip 格式进行压缩或解压相关操作的标识常量,gzip 是一种常见的压缩文件格式,值为 3
|
|
|
GZIP: 3,
|
|
|
// 表示对 gzip 格式文件进行解压操作的标识常量,与 GZIP 相对应,值为 4
|
|
|
GUNZIP: 4,
|
|
|
// 表示使用原始 deflate 算法(可能不包含 gzip 等格式的额外头部等信息)进行压缩的标识常量,值为 5
|
|
|
DEFLATERAW: 5,
|
|
|
// 表示使用原始 inflate 算法(对应 DEFLATERAW 进行解压操作)的标识常量,值为 6
|
|
|
INFLATERAW: 6,
|
|
|
// 可能是一个通用的解压相关的标识常量,具体含义取决于具体使用场景,值为 7
|
|
|
UNZIP: 7,
|
|
|
// 表示使用 Brotli 算法进行解码操作的标识常量,Brotli 是一种新的压缩算法,值为 8
|
|
|
BROTLI_DECODE: 8,
|
|
|
// 表示使用 Brotli 算法进行编码(压缩)操作的标识常量,值为 9
|
|
|
BROTLI_ENCODE: 9,
|
|
|
// 表示 Brotli 算法中最小窗口位数的常量,窗口位数与压缩算法中的数据处理范围等相关,值为 8
|
|
|
Z_MIN_WINDOWBITS: 8,
|
|
|
// 表示 Brotli 算法中最大窗口位数的常量,限定了窗口位数的上限,值为 15
|
|
|
Z_MAX_WINDOWBITS: 15,
|
|
|
// 表示 Brotli 算法中默认窗口位数的常量,通常在未指定时使用的窗口位数设置,值为 15
|
|
|
Z_DEFAULT_WINDOWBITS: 15,
|
|
|
// 表示 Brotli 算法中最小数据块大小的常量,在处理数据块时的下限,值为 64
|
|
|
Z_MIN_CHUNK: 64,
|
|
|
// 表示 Brotli 算法中最大数据块大小的常量,理论上可以处理的最大数据块尺寸(这里设置为无穷大),值为 Infinity
|
|
|
Z_MAX_CHUNK: Infinity,
|
|
|
// 表示 Brotli 算法中默认数据块大小的常量,通常处理数据块时的默认尺寸,值为 16384
|
|
|
Z_DEFAULT_CHUNK: 16384,
|
|
|
// 表示 Brotli 算法中最小内存级别(可能与内存使用、分配策略相关)的常量,值为 1
|
|
|
Z_MIN_MEMLEVEL: 1,
|
|
|
// 表示 Brotli 算法中最大内存级别(限定内存使用相关策略的上限)的常量,值为 9
|
|
|
Z_MAX_MEMLEVEL: 9,
|
|
|
// 表示 Brotli 算法中默认内存级别(未指定时使用的内存级别设置)的常量,值为 8
|
|
|
Z_DEFAULT_MEMLEVEL: 8,
|
|
|
// 表示 Brotli 算法中最小压缩级别(类似压缩程度的设置,负数可能有特殊含义)的常量,值为 -1
|
|
|
Z_MIN_LEVEL: -1,
|
|
|
// 表示 Brotli 算法中最大压缩级别(限定压缩程度上限)的常量,值为 9
|
|
|
Z_MAX_LEVEL: 9,
|
|
|
// 表示 Brotli 算法中默认压缩级别(未指定时使用的压缩级别设置)的常量,值为 -1
|
|
|
Z_DEFAULT_LEVEL: -1,
|
|
|
// 表示 Brotli 算法中处理操作类型为常规处理的常量,对应具体操作阶段的标识,值为 0
|
|
|
BROTLI_OPERATION_PROCESS: 0,
|
|
|
// 表示 Brotli 算法中处理操作类型为刷新操作的常量,可能用于及时刷新缓冲数据等情况,值为 1
|
|
|
BROTLI_OPERATION_FLUSH: 1,
|
|
|
// 表示 Brotli 算法中处理操作类型为完成操作(类似结束整个压缩或解压流程)的常量,值为 2
|
|
|
BROTLI_OPERATION_FINISH: 2,
|
|
|
// 表示 Brotli 算法中处理操作类型为发出元数据(可能在特定场景下向外提供相关数据信息)的常量,值为 3
|
|
|
BROTLI_OPERATION_EMIT_METADATA: 3,
|
|
|
// 表示 Brotli 算法中通用模式(可能适用于多种类型数据的一种默认模式)的常量,值为 0
|
|
|
BROTLI_MODE_GENERIC: 0,
|
|
|
// 表示 Brotli 算法中文本模式(针对文本数据进行优化处理的模式)的常量,值为 1
|
|
|
BROTLI_MODE_TEXT: 1,
|
|
|
// 表示 Brotli 算法中字体模式(可能针对字体文件等特定数据类型优化)的常量,值为 2
|
|
|
BROTLI_MODE_FONT: 2,
|
|
|
// 表示 Brotli 算法中默认模式(未指定具体模式时使用的模式设置)的常量,值为 0
|
|
|
BROTLI_DEFAULT_MODE: 0,
|
|
|
// 表示 Brotli 算法中最小质量(可能与压缩后数据质量、还原效果等相关)的常量,值为 0
|
|
|
BROTLI_MIN_QUALITY: 0,
|
|
|
// 表示 Brotli 算法中最大质量(限定质量相关指标上限)的常量,值为 11
|
|
|
BROTLI_MAX_QUALITY: 11,
|
|
|
// 表示 Brotli 算法中默认质量(未指定质量时使用的质量设置)的常量,值为 11
|
|
|
BROTLI_DEFAULT_QUALITY: 11,
|
|
|
// 表示 Brotli 算法中最小窗口位数(与前面类似,可能在不同场景下的窗口位数限制)的常量,值为 10
|
|
|
BROTLI_MIN_WINDOW_BITS: 10,
|
|
|
// 表示 Brotli 算法中最大窗口位数(限定窗口位数范围上限)的常量,值为 24
|
|
|
BROTLI_MAX_WINDOW_BITS: 24,
|
|
|
// 表示 Brotli 算法中较大的最大窗口位数(可能用于特殊情况或更高要求场景下的窗口位数设置)的常量,值为 30
|
|
|
BROTLI_LARGE_MAX_WINDOW_BITS: 30,
|
|
|
// 表示 Brotli 算法中默认窗口(可能是综合考虑各种因素后的常用窗口设置)的常量,值为 22
|
|
|
BROTLI_DEFAULT_WINDOW: 22,
|
|
|
// 表示 Brotli 算法中最小输入块位数(与输入数据块大小、处理方式相关的设置)的常量,值为 16
|
|
|
BROTLI_MIN_INPUT_BLOCK_BITS: 16,
|
|
|
// 表示 Brotli 算法中最大输入块位数(限定输入块位数上限)的常量,值为 24
|
|
|
BROTLI_MAX_INPUT_BLOCK_BITS: 24,
|
|
|
// 表示 Brotli 算法中参数类型为模式相关(用于设置算法模式相关参数)的常量,值为 0
|
|
|
BROTLI_PARAM_MODE: 0,
|
|
|
// 表示 Brotli 算法中参数类型为质量相关(用于调整压缩质量相关参数)的常量,值为 1
|
|
|
BROTLI_PARAM_QUALITY: 1,
|
|
|
// 表示 Brotli 算法中参数类型为窗口大小相关(用于设置窗口位数等相关参数)的常量,值为 2
|
|
|
BROTLI_PARAM_LGWIN: 2,
|
|
|
// 表示 Brotli 算法中参数类型为块大小相关(用于设置数据块相关参数)的常量,值为 3
|
|
|
BROTLI_PARAM_LGBLOCK: 3,
|
|
|
// 表示 Brotli 算法中参数类型为禁用字面量上下文建模(可能是一种高级的压缩算法特性控制参数)的常量,值为 4
|
|
|
BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4,
|
|
|
// 表示 Brotli 算法中参数类型为大小提示(可能用于提前告知算法期望的数据大小等情况)的常量,值为 5
|
|
|
BROTLI_PARAM_SIZE_HINT: 5,
|
|
|
// 表示 Brotli 算法中参数类型为大窗口(与前面大窗口相关设置关联)的常量,值为 6
|
|
|
BROTLI_PARAM_LARGE_WINDOW: 6,
|
|
|
// 表示 Brotli 算法中参数类型为后缀数量(可能在特定数据处理中有相关意义)的常量,值为 7
|
|
|
BROTLI_PARAM_NPOSTFIX: 7,
|
|
|
// 表示 Brotli 算法中参数类型为直接数量(具体含义取决于算法内部逻辑)的常量,值为 8
|
|
|
BROTLI_PARAM_NDIRECT: 8,
|
|
|
// 表示 Brotli 解码器出现错误结果的常量,用于判断解码结果是否为错误情况,值为 0
|
|
|
BROTLI_DECODER_RESULT_ERROR: 0,
|
|
|
// 表示 Brotli 解码器成功的常量,用于判断解码操作是否成功完成,值为 1
|
|
|
BROTLI_DECODER_RESULT_SUCCESS: 1,
|
|
|
// 表示 Brotli 解码器需要更多输入数据才能继续解码的常量,用于反馈解码状态,值为 2
|
|
|
BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2,
|
|
|
// 表示 Brotli 解码器需要更多输出空间(可能是缓冲区等已满,需要更多空间来存放解码后的数据)才能继续解码的常量,值为 3
|
|
|
BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3,
|
|
|
// 表示 Brotli 解码器参数类型为禁用环形缓冲区重新分配(可能涉及内存管理、缓冲区优化相关设置)的常量,值为 0
|
|
|
BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0,
|
|
|
// 表示 Brotli 解码器参数类型为大窗口(与前面大窗口相关设置关联)的常量,值为 1
|
|
|
BROTLI_DECODER_PARAM_LARGE_WINDOW: 1,
|
|
|
// 表示 Brotli 解码器没有错误的常量,用于判断解码器当前状态是否无错,值为 0
|
|
|
BROTLI_DECODER_NO_ERROR: 0,
|
|
|
// 表示 Brotli 解码器成功的常量,用于判断解码器操作是否成功,值为 1
|
|
|
BROTLI_DECODER_SUCCESS: 1,
|
|
|
// 表示 Brotli 解码器需要更多输入数据才能继续操作的常量,用于反馈解码器的状态需求,值为 2
|
|
|
BROTLI_DECODER_NEEDS_MORE_INPUT: 2,
|
|
|
// 表示 Brotli 解码器需要更多输出空间(类似前面需要更多输出情况)才能继续操作的常量,值为 3
|
|
|
BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3,
|
|
|
// 表示 Brotli 解码器出现格式错误(具体是过度的半字节相关问题,可能涉及数据格式解析异常)的常量,值为 -1
|
|
|
BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1,
|
|
|
// 表示 Brotli 解码器出现格式错误(涉及保留字段相关问题,可能是数据格式不符合规范)的常量,值为 -2
|
|
|
BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2,
|
|
|
// 表示 Brotli 解码器出现格式错误(过度的元数据半字节相关问题,可能在处理元数据时格式异常)的常量,值为 -3
|
|
|
BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3,
|
|
|
// 表示 Brotli 解码器出现格式错误(简单哈夫曼字母表相关问题,可能是哈夫曼编码相关数据格式不符合要求)的常量,值为 -4
|
|
|
BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4,
|
|
|
// 表示 Brotli 解码器出现格式错误(简单哈夫曼相同相关问题,可能是哈夫曼编码重复等格式异常情况)的常量,值为 -5
|
|
|
BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5,
|
|
|
// 表示 Brotli 解码器出现格式错误(上下文映射空间相关问题,可能是数据结构中上下文映射部分格式不符合要求)的常量,值为 -6
|
|
|
BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6,
|
|
|
// 表示 Brotli 解码器出现格式错误(哈夫曼空间相关问题,可能是哈夫曼编码相关数据结构格式不符合要求)的常量,值为 -7
|
|
|
BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7,
|
|
|
// 表示 Brot
|
|
|
// 表示Brotli解码器出现格式错误(具体是上下文映射重复相关问题,可能是在处理数据时上下文映射部分出现不符合规范的重复情况)的常量,值为 -8
|
|
|
BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8,
|
|
|
// 表示Brotli解码器出现格式错误(与数据块长度相关的第一种错误情况,具体错误原因需结合Brotli解码器对块长度的格式要求来确定)的常量,值为 -9
|
|
|
BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9,
|
|
|
// 表示Brotli解码器出现格式错误(与数据块长度相关的第二种错误情况,同样需依据具体的块长度格式规范来判断错误缘由)的常量,值为 -10
|
|
|
BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10,
|
|
|
// 表示Brotli解码器出现格式错误(与转换相关的问题,可能是在对数据进行某种转换操作时,数据格式不符合要求等情况)的常量,值为 -11
|
|
|
BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11,
|
|
|
// 表示Brotli解码器出现格式错误(与字典相关的问题,比如字典数据格式不符合要求或者字典使用方面出现异常等情况)的常量,值为 -12
|
|
|
BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12,
|
|
|
// 表示Brotli解码器出现格式错误(与窗口位数相关的问题,可能是传入的窗口位数参数不符合要求或者数据中体现的窗口位数信息有错误等情况)的常量,值为 -13
|
|
|
BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13,
|
|
|
// 表示Brotli解码器出现格式错误(与填充相关的第一种错误情况,具体的填充格式不符合Brotli解码器的要求等情况)的常量,值为 -14
|
|
|
BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14,
|
|
|
// 表示Brotli解码器出现格式错误(与填充相关的第二种错误情况,类似第一种填充错误,只是具体错误细节有所不同)的常量,值为 -15
|
|
|
BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15,
|
|
|
// 表示Brotli解码器出现格式错误(与距离相关的问题,比如在数据处理中涉及到的距离参数、指针距离等不符合格式要求等情况)的常量,值为 -16
|
|
|
BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16,
|
|
|
// 表示Brotli解码器出现字典未设置的错误(可能在需要字典辅助解码但却没有正确设置字典的情况下出现该错误)的常量,值为 -19
|
|
|
BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19,
|
|
|
// 表示Brotli解码器出现参数无效的错误(即传入的参数不符合解码器对参数的合法性要求,比如参数类型、范围等不正确)的常量,值为 -20
|
|
|
BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20,
|
|
|
// 表示Brotli解码器出现分配上下文模式相关内存失败的错误(可能是在为上下文模式相关的数据结构分配内存时出现内存不足等问题)的常量,值为 -21
|
|
|
BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21,
|
|
|
// 表示Brotli解码器出现分配树组相关内存失败的错误(在为树组相关的数据结构分配内存时遇到内存相关的问题,导致无法正常分配)的常量,值为 -22
|
|
|
BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22,
|
|
|
// 表示Brotli解码器出现分配上下文映射相关内存失败的错误(涉及到上下文映射的数据结构在内存分配环节出现问题,无法成功分配内存)的常量,值为 -25
|
|
|
BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25,
|
|
|
// 表示Brotli解码器出现分配环形缓冲区相关内存失败的第一种错误情况(可能是第一次尝试分配环形缓冲区内存时遇到问题,比如内存不足等原因)的常量,值为 -26
|
|
|
BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26,
|
|
|
// 表示Brotli解码器出现分配环形缓冲区相关内存失败的第二种错误情况(与第一种类似,但可能是后续再次分配或者另一种相关的内存分配问题导致的错误)的常量,值为 -27
|
|
|
BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27,
|
|
|
// 表示Brotli解码器出现分配块类型树相关内存失败的错误(在为块类型树相关的数据结构分配内存时出现了内存方面的异常情况)的常量,值为 -30
|
|
|
BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30,
|
|
|
// 表示Brotli解码器出现不可达(可能是代码执行流程进入到了本不应到达的逻辑部分,意味着程序出现了逻辑错误或者异常情况)的错误的常量,值为 -31
|
|
|
BROTLI_DECODER_ERROR_UNREACHABLE: -31,
|
|
|
}, realZlibConstants))
|