@serveryyswys/node.operit 0.0.0-stage → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILTINS.json +233 -0
- package/DESIGN.md +513 -0
- package/LICENSE +674 -0
- package/README.md +301 -2
- package/dist/assert/strict.d.ts +2 -0
- package/dist/assert/strict.js +7 -0
- package/dist/assert.d.ts +3 -0
- package/dist/assert.js +483 -0
- package/dist/buffer.d.ts +60 -0
- package/dist/buffer.js +524 -0
- package/dist/child_process.d.ts +56 -0
- package/dist/child_process.js +371 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +19 -0
- package/dist/crypto.d.ts +76 -0
- package/dist/crypto.js +312 -0
- package/dist/dns/promises.d.ts +34 -0
- package/dist/dns/promises.js +190 -0
- package/dist/dns.d.ts +88 -0
- package/dist/dns.js +259 -0
- package/dist/events.d.ts +40 -0
- package/dist/events.js +237 -0
- package/dist/fs/promises.d.ts +159 -0
- package/dist/fs/promises.js +129 -0
- package/dist/fs.d.ts +221 -0
- package/dist/fs.js +944 -0
- package/dist/http.d.ts +92 -0
- package/dist/http.js +319 -0
- package/dist/https.d.ts +296 -0
- package/dist/https.js +50 -0
- package/dist/index.d.ts +2422 -0
- package/dist/index.js +57 -0
- package/dist/lib/bridge.d.ts +60 -0
- package/dist/lib/bridge.js +205 -0
- package/dist/lib/bytes.d.ts +20 -0
- package/dist/lib/bytes.js +239 -0
- package/dist/lib/child-process-types.d.ts +45 -0
- package/dist/lib/child-process-types.js +2 -0
- package/dist/lib/cwd.d.ts +2 -0
- package/dist/lib/cwd.js +32 -0
- package/dist/lib/deep-equal.d.ts +3 -0
- package/dist/lib/deep-equal.js +223 -0
- package/dist/lib/deflate.d.ts +2 -0
- package/dist/lib/deflate.js +234 -0
- package/dist/lib/dns-driver.d.ts +14 -0
- package/dist/lib/dns-driver.js +85 -0
- package/dist/lib/dns-types.d.ts +22 -0
- package/dist/lib/dns-types.js +2 -0
- package/dist/lib/errors.d.ts +48 -0
- package/dist/lib/errors.js +424 -0
- package/dist/lib/fs-driver.d.ts +70 -0
- package/dist/lib/fs-driver.js +364 -0
- package/dist/lib/fs-env.d.ts +30 -0
- package/dist/lib/fs-env.js +157 -0
- package/dist/lib/fs-types.d.ts +19 -0
- package/dist/lib/fs-types.js +2 -0
- package/dist/lib/hashes.d.ts +27 -0
- package/dist/lib/hashes.js +432 -0
- package/dist/lib/http-driver.d.ts +30 -0
- package/dist/lib/http-driver.js +72 -0
- package/dist/lib/http-types.d.ts +18 -0
- package/dist/lib/http-types.js +2 -0
- package/dist/lib/inflate.d.ts +6 -0
- package/dist/lib/inflate.js +284 -0
- package/dist/lib/path-types.d.ts +37 -0
- package/dist/lib/path-types.js +2 -0
- package/dist/lib/paths.d.ts +8 -0
- package/dist/lib/paths.js +106 -0
- package/dist/lib/perf-hooks-types.d.ts +18 -0
- package/dist/lib/perf-hooks-types.js +2 -0
- package/dist/lib/process-driver.d.ts +31 -0
- package/dist/lib/process-driver.js +102 -0
- package/dist/lib/punycode.d.ts +8 -0
- package/dist/lib/punycode.js +179 -0
- package/dist/lib/stream-types.d.ts +29 -0
- package/dist/lib/stream-types.js +2 -0
- package/dist/lib/timers-types.d.ts +18 -0
- package/dist/lib/timers-types.js +2 -0
- package/dist/lib/url-search-params.d.ts +26 -0
- package/dist/lib/url-search-params.js +281 -0
- package/dist/lib/url-types.d.ts +44 -0
- package/dist/lib/url-types.js +2 -0
- package/dist/lib/url-whatwg.d.ts +78 -0
- package/dist/lib/url-whatwg.js +857 -0
- package/dist/lib/zlib-types.d.ts +12 -0
- package/dist/lib/zlib-types.js +2 -0
- package/dist/module.d.ts +8 -0
- package/dist/module.js +72 -0
- package/dist/os.d.ts +80 -0
- package/dist/os.js +247 -0
- package/dist/path/posix.d.ts +2 -0
- package/dist/path/posix.js +7 -0
- package/dist/path/win32.d.ts +2 -0
- package/dist/path/win32.js +10 -0
- package/dist/path.d.ts +3 -0
- package/dist/path.js +1222 -0
- package/dist/perf_hooks.d.ts +36 -0
- package/dist/perf_hooks.js +144 -0
- package/dist/process.d.ts +69 -0
- package/dist/process.js +230 -0
- package/dist/querystring.d.ts +15 -0
- package/dist/querystring.js +209 -0
- package/dist/stream/promises.d.ts +5 -0
- package/dist/stream/promises.js +10 -0
- package/dist/stream.d.ts +84 -0
- package/dist/stream.js +875 -0
- package/dist/string_decoder.d.ts +15 -0
- package/dist/string_decoder.js +237 -0
- package/dist/timers/promises.d.ts +19 -0
- package/dist/timers/promises.js +74 -0
- package/dist/timers.d.ts +21 -0
- package/dist/timers.js +41 -0
- package/dist/tty.d.ts +9 -0
- package/dist/tty.js +25 -0
- package/dist/unsupported.d.ts +12 -0
- package/dist/unsupported.js +17 -0
- package/dist/url.d.ts +28 -0
- package/dist/url.js +486 -0
- package/dist/util.d.ts +74 -0
- package/dist/util.js +515 -0
- package/dist/zlib.d.ts +88 -0
- package/dist/zlib.js +371 -0
- package/package.json +29 -4
package/dist/zlib.js
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* Node zlib 模块的移植。
|
|
4
|
+
*
|
|
5
|
+
* 覆盖:deflate/inflate(zlib 包装)、deflateRaw/inflateRaw(裸流)、gzip/gunzip、
|
|
6
|
+
* unzip(自动识别),同步与回调两种形式,以及 constants。
|
|
7
|
+
*
|
|
8
|
+
* 不覆盖:createGzip/createDeflate 等流式接口(需要 stream 模块)、Brotli 系列
|
|
9
|
+
* —— 调用即显式抛 ONJ_UNSUPPORTED。
|
|
10
|
+
*
|
|
11
|
+
* 压缩侧用定长 Huffman + LZ77(见 lib/deflate.ts),压缩率不如 zlib,
|
|
12
|
+
* 但输出是任何解压器都能读的合法 DEFLATE 流。
|
|
13
|
+
*/
|
|
14
|
+
const deflate_1 = require("./lib/deflate");
|
|
15
|
+
const inflate_1 = require("./lib/inflate");
|
|
16
|
+
const buffer_1 = require("./buffer");
|
|
17
|
+
const streamModule = require("./stream");
|
|
18
|
+
function toBytes(input, name) {
|
|
19
|
+
if (typeof input === 'string') {
|
|
20
|
+
return buffer_1.Buffer.from(input, 'utf8');
|
|
21
|
+
}
|
|
22
|
+
if (input instanceof Uint8Array) {
|
|
23
|
+
return input;
|
|
24
|
+
}
|
|
25
|
+
if (input instanceof ArrayBuffer) {
|
|
26
|
+
return new Uint8Array(input);
|
|
27
|
+
}
|
|
28
|
+
throw new TypeError('The "' + name + '" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');
|
|
29
|
+
}
|
|
30
|
+
function resolveLevel(options) {
|
|
31
|
+
if (options === undefined || options.level === undefined) {
|
|
32
|
+
return 6;
|
|
33
|
+
}
|
|
34
|
+
const level = Number(options.level);
|
|
35
|
+
if (level === -1) {
|
|
36
|
+
return 6;
|
|
37
|
+
}
|
|
38
|
+
if (!isFinite(level) || level < 0 || level > 9) {
|
|
39
|
+
const error = new RangeError('The value of "options.level" is out of range. It must be >= 0 and <= 9.');
|
|
40
|
+
error.code = 'ERR_OUT_OF_RANGE';
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
return level;
|
|
44
|
+
}
|
|
45
|
+
function writeUint32BE(target, offset, value) {
|
|
46
|
+
target[offset] = (value >>> 24) & 255;
|
|
47
|
+
target[offset + 1] = (value >>> 16) & 255;
|
|
48
|
+
target[offset + 2] = (value >>> 8) & 255;
|
|
49
|
+
target[offset + 3] = value & 255;
|
|
50
|
+
}
|
|
51
|
+
function writeUint32LE(target, offset, value) {
|
|
52
|
+
target[offset] = value & 255;
|
|
53
|
+
target[offset + 1] = (value >>> 8) & 255;
|
|
54
|
+
target[offset + 2] = (value >>> 16) & 255;
|
|
55
|
+
target[offset + 3] = (value >>> 24) & 255;
|
|
56
|
+
}
|
|
57
|
+
function readUint32LE(source, offset) {
|
|
58
|
+
return (source[offset] | (source[offset + 1] << 8) | (source[offset + 2] << 16) | (source[offset + 3] << 24)) >>> 0;
|
|
59
|
+
}
|
|
60
|
+
function concat(parts) {
|
|
61
|
+
let total = 0;
|
|
62
|
+
for (let i = 0; i < parts.length; i += 1) {
|
|
63
|
+
total += parts[i].length;
|
|
64
|
+
}
|
|
65
|
+
const out = new Uint8Array(total);
|
|
66
|
+
let offset = 0;
|
|
67
|
+
for (let i = 0; i < parts.length; i += 1) {
|
|
68
|
+
out.set(parts[i], offset);
|
|
69
|
+
offset += parts[i].length;
|
|
70
|
+
}
|
|
71
|
+
return out;
|
|
72
|
+
}
|
|
73
|
+
/** zlib 包装头的 FLG 由 FLEVEL 决定;CINFO=7 表示 32K 窗口。 */
|
|
74
|
+
function zlibHeader(level) {
|
|
75
|
+
const flevel = level <= 1 ? 0 : (level <= 5 ? 1 : (level === 6 ? 2 : 3));
|
|
76
|
+
const flgTable = [0x01, 0x5e, 0x9c, 0xda];
|
|
77
|
+
return Uint8Array.of(0x78, flgTable[flevel]);
|
|
78
|
+
}
|
|
79
|
+
function deflateWrapped(data, level) {
|
|
80
|
+
const body = (0, deflate_1.deflateRaw)(data, level);
|
|
81
|
+
const trailer = new Uint8Array(4);
|
|
82
|
+
writeUint32BE(trailer, 0, (0, inflate_1.adler32)(data, 0, data.length));
|
|
83
|
+
return concat([zlibHeader(level), body, trailer]);
|
|
84
|
+
}
|
|
85
|
+
function inflateWrapped(data) {
|
|
86
|
+
if (data.length < 6) {
|
|
87
|
+
throw new Error('invalid zlib stream: too short');
|
|
88
|
+
}
|
|
89
|
+
const cmf = data[0];
|
|
90
|
+
const flg = data[1];
|
|
91
|
+
if ((cmf & 0x0f) !== 8) {
|
|
92
|
+
throw new Error('invalid zlib stream: unsupported compression method');
|
|
93
|
+
}
|
|
94
|
+
if ((cmf * 256 + flg) % 31 !== 0) {
|
|
95
|
+
throw new Error('invalid zlib stream: header check failed');
|
|
96
|
+
}
|
|
97
|
+
if ((flg & 0x20) !== 0) {
|
|
98
|
+
throw new Error('invalid zlib stream: preset dictionary is not supported');
|
|
99
|
+
}
|
|
100
|
+
const result = (0, inflate_1.inflateRaw)(data, 2, data.length - 4);
|
|
101
|
+
const expected = (data[data.length - 4] << 24) | (data[data.length - 3] << 16) |
|
|
102
|
+
(data[data.length - 2] << 8) | data[data.length - 1];
|
|
103
|
+
if (((0, inflate_1.adler32)(result, 0, result.length) >>> 0) !== (expected >>> 0)) {
|
|
104
|
+
throw new Error('incorrect data check');
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
function gzipWrapped(data, level) {
|
|
109
|
+
const header = new Uint8Array(10);
|
|
110
|
+
header[0] = 0x1f;
|
|
111
|
+
header[1] = 0x8b;
|
|
112
|
+
header[2] = 8;
|
|
113
|
+
header[3] = 0;
|
|
114
|
+
// MTIME 写 0(Node 默认也不写实际时间)
|
|
115
|
+
header[8] = level >= 9 ? 2 : (level <= 1 ? 4 : 0);
|
|
116
|
+
header[9] = 0xff;
|
|
117
|
+
const body = (0, deflate_1.deflateRaw)(data, level);
|
|
118
|
+
const trailer = new Uint8Array(8);
|
|
119
|
+
writeUint32LE(trailer, 0, (0, inflate_1.crc32)(data, 0, data.length));
|
|
120
|
+
writeUint32LE(trailer, 4, data.length >>> 0);
|
|
121
|
+
return concat([header, body, trailer]);
|
|
122
|
+
}
|
|
123
|
+
function gunzipWrapped(data) {
|
|
124
|
+
if (data.length < 18 || data[0] !== 0x1f || data[1] !== 0x8b) {
|
|
125
|
+
throw new Error('incorrect header check');
|
|
126
|
+
}
|
|
127
|
+
if (data[2] !== 8) {
|
|
128
|
+
throw new Error('unknown compression method');
|
|
129
|
+
}
|
|
130
|
+
const flags = data[3];
|
|
131
|
+
let offset = 10;
|
|
132
|
+
if ((flags & 0x04) !== 0) {
|
|
133
|
+
offset += 2 + (data[offset] | (data[offset + 1] << 8));
|
|
134
|
+
}
|
|
135
|
+
if ((flags & 0x08) !== 0) {
|
|
136
|
+
while (offset < data.length && data[offset] !== 0) {
|
|
137
|
+
offset += 1;
|
|
138
|
+
}
|
|
139
|
+
offset += 1;
|
|
140
|
+
}
|
|
141
|
+
if ((flags & 0x10) !== 0) {
|
|
142
|
+
while (offset < data.length && data[offset] !== 0) {
|
|
143
|
+
offset += 1;
|
|
144
|
+
}
|
|
145
|
+
offset += 1;
|
|
146
|
+
}
|
|
147
|
+
if ((flags & 0x02) !== 0) {
|
|
148
|
+
offset += 2;
|
|
149
|
+
}
|
|
150
|
+
const trailerStart = data.length - 8;
|
|
151
|
+
const result = (0, inflate_1.inflateRaw)(data, offset, trailerStart);
|
|
152
|
+
const expectedCrc = readUint32LE(data, trailerStart);
|
|
153
|
+
if ((0, inflate_1.crc32)(result, 0, result.length) !== expectedCrc) {
|
|
154
|
+
throw new Error('incorrect data check');
|
|
155
|
+
}
|
|
156
|
+
const expectedSize = readUint32LE(data, trailerStart + 4);
|
|
157
|
+
if ((result.length >>> 0) !== expectedSize) {
|
|
158
|
+
throw new Error('incorrect length check');
|
|
159
|
+
}
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
function deflateSync(input, options) {
|
|
163
|
+
return buffer_1.Buffer.from(deflateWrapped(toBytes(input, 'buffer'), resolveLevel(options)));
|
|
164
|
+
}
|
|
165
|
+
function inflateSync(input) {
|
|
166
|
+
return buffer_1.Buffer.from(inflateWrapped(toBytes(input, 'buffer')));
|
|
167
|
+
}
|
|
168
|
+
function deflateRawSync(input, options) {
|
|
169
|
+
return buffer_1.Buffer.from((0, deflate_1.deflateRaw)(toBytes(input, 'buffer'), resolveLevel(options)));
|
|
170
|
+
}
|
|
171
|
+
function inflateRawSync(input) {
|
|
172
|
+
const bytes = toBytes(input, 'buffer');
|
|
173
|
+
return buffer_1.Buffer.from((0, inflate_1.inflateRaw)(bytes, 0, bytes.length));
|
|
174
|
+
}
|
|
175
|
+
function gzipSync(input, options) {
|
|
176
|
+
return buffer_1.Buffer.from(gzipWrapped(toBytes(input, 'buffer'), resolveLevel(options)));
|
|
177
|
+
}
|
|
178
|
+
function gunzipSync(input) {
|
|
179
|
+
return buffer_1.Buffer.from(gunzipWrapped(toBytes(input, 'buffer')));
|
|
180
|
+
}
|
|
181
|
+
/** 自动识别 zlib / gzip 两种包装,对应 Node 的 unzip 系列。 */
|
|
182
|
+
function unzipSync(input) {
|
|
183
|
+
const bytes = toBytes(input, 'buffer');
|
|
184
|
+
if (bytes.length >= 2 && bytes[0] === 0x1f && bytes[1] === 0x8b) {
|
|
185
|
+
return buffer_1.Buffer.from(gunzipWrapped(bytes));
|
|
186
|
+
}
|
|
187
|
+
return buffer_1.Buffer.from(inflateWrapped(bytes));
|
|
188
|
+
}
|
|
189
|
+
function callAsync(operation, callback) {
|
|
190
|
+
if (typeof callback !== 'function') {
|
|
191
|
+
throw new TypeError('The "callback" argument must be of type function.');
|
|
192
|
+
}
|
|
193
|
+
const done = callback;
|
|
194
|
+
queueMicrotask(function () {
|
|
195
|
+
try {
|
|
196
|
+
done(null, operation());
|
|
197
|
+
}
|
|
198
|
+
catch (failure) {
|
|
199
|
+
done(failure);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
function deflate(input, options, callback) {
|
|
204
|
+
if (typeof options === 'function') {
|
|
205
|
+
callAsync(function () { return deflateSync(input); }, options);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
callAsync(function () { return deflateSync(input, options); }, callback);
|
|
209
|
+
}
|
|
210
|
+
function inflate(input, options, callback) {
|
|
211
|
+
if (typeof options === 'function') {
|
|
212
|
+
callAsync(function () { return inflateSync(input); }, options);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
callAsync(function () { return inflateSync(input); }, callback);
|
|
216
|
+
}
|
|
217
|
+
function deflateRawAsync(input, options, callback) {
|
|
218
|
+
if (typeof options === 'function') {
|
|
219
|
+
callAsync(function () { return deflateRawSync(input); }, options);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
callAsync(function () { return deflateRawSync(input, options); }, callback);
|
|
223
|
+
}
|
|
224
|
+
function inflateRawAsync(input, options, callback) {
|
|
225
|
+
if (typeof options === 'function') {
|
|
226
|
+
callAsync(function () { return inflateRawSync(input); }, options);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
callAsync(function () { return inflateRawSync(input); }, callback);
|
|
230
|
+
}
|
|
231
|
+
function gzip(input, options, callback) {
|
|
232
|
+
if (typeof options === 'function') {
|
|
233
|
+
callAsync(function () { return gzipSync(input); }, options);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
callAsync(function () { return gzipSync(input, options); }, callback);
|
|
237
|
+
}
|
|
238
|
+
function gunzip(input, options, callback) {
|
|
239
|
+
if (typeof options === 'function') {
|
|
240
|
+
callAsync(function () { return gunzipSync(input); }, options);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
callAsync(function () { return gunzipSync(input); }, callback);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* 流式接口:用 Transform 包一层。
|
|
247
|
+
*
|
|
248
|
+
* 注意:本实现把输入攒到 _flush 才处理整块数据,所以是"接口是流、内部是一次性",
|
|
249
|
+
* 不提供流式处理才有的低延迟与低内存特性。对插件场景足够,已在 README 写明。
|
|
250
|
+
*/
|
|
251
|
+
function makeZlibStream(kind, direction, options) {
|
|
252
|
+
const level = resolveLevel(options);
|
|
253
|
+
const buffered = [];
|
|
254
|
+
const transform = new streamModule.Transform({
|
|
255
|
+
transform: function (chunk, encoding, callback) {
|
|
256
|
+
void encoding;
|
|
257
|
+
buffered.push(toBytes(chunk, 'buffer'));
|
|
258
|
+
callback(null);
|
|
259
|
+
},
|
|
260
|
+
flush: function (callback) {
|
|
261
|
+
try {
|
|
262
|
+
const input = concat(buffered);
|
|
263
|
+
buffered.length = 0;
|
|
264
|
+
const output = direction === 'compress'
|
|
265
|
+
? compressWith(kind, input, level)
|
|
266
|
+
: decompressWith(kind, input);
|
|
267
|
+
if (output.length > 0) {
|
|
268
|
+
this.push(output);
|
|
269
|
+
}
|
|
270
|
+
callback(null);
|
|
271
|
+
}
|
|
272
|
+
catch (failure) {
|
|
273
|
+
callback(failure);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
return transform;
|
|
278
|
+
}
|
|
279
|
+
function compressWith(kind, input, level) {
|
|
280
|
+
if (kind === 'gzip') {
|
|
281
|
+
return gzipWrapped(input, level);
|
|
282
|
+
}
|
|
283
|
+
if (kind === 'raw') {
|
|
284
|
+
return (0, deflate_1.deflateRaw)(input, level);
|
|
285
|
+
}
|
|
286
|
+
return deflateWrapped(input, level);
|
|
287
|
+
}
|
|
288
|
+
function decompressWith(kind, input) {
|
|
289
|
+
if (kind === 'gzip') {
|
|
290
|
+
return gunzipWrapped(input);
|
|
291
|
+
}
|
|
292
|
+
if (kind === 'raw') {
|
|
293
|
+
return (0, inflate_1.inflateRaw)(input, 0, input.length);
|
|
294
|
+
}
|
|
295
|
+
if (kind === 'auto') {
|
|
296
|
+
return (input.length >= 2 && input[0] === 0x1f && input[1] === 0x8b)
|
|
297
|
+
? gunzipWrapped(input)
|
|
298
|
+
: inflateWrapped(input);
|
|
299
|
+
}
|
|
300
|
+
return inflateWrapped(input);
|
|
301
|
+
}
|
|
302
|
+
const constants = {
|
|
303
|
+
// 方法常量(zlib.h 的 deflateInit2 取值),本模块的 create* 用的就是它们
|
|
304
|
+
DEFLATE: 1,
|
|
305
|
+
INFLATE: 2,
|
|
306
|
+
GZIP: 3,
|
|
307
|
+
GUNZIP: 4,
|
|
308
|
+
DEFLATERAW: 5,
|
|
309
|
+
INFLATERAW: 6,
|
|
310
|
+
UNZIP: 7,
|
|
311
|
+
Z_MIN_CHUNK: 64,
|
|
312
|
+
Z_MAX_CHUNK: -1,
|
|
313
|
+
Z_DEFAULT_CHUNK: 16384,
|
|
314
|
+
Z_MIN_MEMLEVEL: 1,
|
|
315
|
+
Z_MAX_MEMLEVEL: 9,
|
|
316
|
+
Z_DEFAULT_MEMLEVEL: 8,
|
|
317
|
+
Z_MIN_LEVEL: -1,
|
|
318
|
+
Z_MAX_LEVEL: 9,
|
|
319
|
+
Z_DEFAULT_LEVEL: -1,
|
|
320
|
+
Z_NO_FLUSH: 0,
|
|
321
|
+
Z_PARTIAL_FLUSH: 1,
|
|
322
|
+
Z_SYNC_FLUSH: 2,
|
|
323
|
+
Z_FULL_FLUSH: 3,
|
|
324
|
+
Z_FINISH: 4,
|
|
325
|
+
Z_BLOCK: 5,
|
|
326
|
+
Z_OK: 0,
|
|
327
|
+
Z_STREAM_END: 1,
|
|
328
|
+
Z_NEED_DICT: 2,
|
|
329
|
+
Z_ERRNO: -1,
|
|
330
|
+
Z_STREAM_ERROR: -2,
|
|
331
|
+
Z_DATA_ERROR: -3,
|
|
332
|
+
Z_MEM_ERROR: -4,
|
|
333
|
+
Z_BUF_ERROR: -5,
|
|
334
|
+
Z_VERSION_ERROR: -6,
|
|
335
|
+
Z_NO_COMPRESSION: 0,
|
|
336
|
+
Z_BEST_SPEED: 1,
|
|
337
|
+
Z_BEST_COMPRESSION: 9,
|
|
338
|
+
Z_DEFAULT_COMPRESSION: -1,
|
|
339
|
+
Z_DEFAULT_STRATEGY: 0,
|
|
340
|
+
Z_FILTERED: 1,
|
|
341
|
+
Z_HUFFMAN_ONLY: 2,
|
|
342
|
+
Z_RLE: 3,
|
|
343
|
+
Z_FIXED: 4,
|
|
344
|
+
Z_MIN_WINDOWBITS: 8,
|
|
345
|
+
Z_MAX_WINDOWBITS: 15,
|
|
346
|
+
Z_DEFAULT_WINDOWBITS: 15
|
|
347
|
+
};
|
|
348
|
+
const zlib = {
|
|
349
|
+
deflateSync: deflateSync,
|
|
350
|
+
inflateSync: inflateSync,
|
|
351
|
+
deflateRawSync: deflateRawSync,
|
|
352
|
+
inflateRawSync: inflateRawSync,
|
|
353
|
+
gzipSync: gzipSync,
|
|
354
|
+
gunzipSync: gunzipSync,
|
|
355
|
+
unzipSync: unzipSync,
|
|
356
|
+
deflate: deflate,
|
|
357
|
+
inflate: inflate,
|
|
358
|
+
deflateRaw: deflateRawAsync,
|
|
359
|
+
inflateRaw: inflateRawAsync,
|
|
360
|
+
gzip: gzip,
|
|
361
|
+
gunzip: gunzip,
|
|
362
|
+
createDeflate: function (options) { return makeZlibStream('zlib', 'compress', options); },
|
|
363
|
+
createInflate: function () { return makeZlibStream('zlib', 'decompress'); },
|
|
364
|
+
createDeflateRaw: function (options) { return makeZlibStream('raw', 'compress', options); },
|
|
365
|
+
createInflateRaw: function () { return makeZlibStream('raw', 'decompress'); },
|
|
366
|
+
createGzip: function (options) { return makeZlibStream('gzip', 'compress', options); },
|
|
367
|
+
createGunzip: function () { return makeZlibStream('gzip', 'decompress'); },
|
|
368
|
+
createUnzip: function () { return makeZlibStream('auto', 'decompress'); },
|
|
369
|
+
constants: constants
|
|
370
|
+
};
|
|
371
|
+
module.exports = zlib;
|
package/package.json
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serveryyswys/node.operit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "为 Operit 的 CommonJS 运行时补齐 Node 核心能力(fs / path / os / buffer / ...)",
|
|
5
|
+
"license": "GPL-3.0-or-later",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"operit",
|
|
8
|
+
"quickjs",
|
|
9
|
+
"node-compat",
|
|
10
|
+
"commonjs",
|
|
11
|
+
"polyfill",
|
|
12
|
+
"android",
|
|
13
|
+
"shim"
|
|
14
|
+
],
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"types": "dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": "./dist/index.js",
|
|
19
|
+
"./package.json": "./package.json",
|
|
20
|
+
"./BUILTINS.json": "./BUILTINS.json",
|
|
21
|
+
"./dist/*": "./dist/*",
|
|
22
|
+
"./*": "./dist/*.js"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist/",
|
|
26
|
+
"BUILTINS.json",
|
|
27
|
+
"README.md",
|
|
28
|
+
"DESIGN.md",
|
|
29
|
+
"LICENSE*"
|
|
30
|
+
]
|
|
31
|
+
}
|