@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.
Files changed (123) hide show
  1. package/BUILTINS.json +233 -0
  2. package/DESIGN.md +513 -0
  3. package/LICENSE +674 -0
  4. package/README.md +301 -2
  5. package/dist/assert/strict.d.ts +2 -0
  6. package/dist/assert/strict.js +7 -0
  7. package/dist/assert.d.ts +3 -0
  8. package/dist/assert.js +483 -0
  9. package/dist/buffer.d.ts +60 -0
  10. package/dist/buffer.js +524 -0
  11. package/dist/child_process.d.ts +56 -0
  12. package/dist/child_process.js +371 -0
  13. package/dist/constants.d.ts +2 -0
  14. package/dist/constants.js +19 -0
  15. package/dist/crypto.d.ts +76 -0
  16. package/dist/crypto.js +312 -0
  17. package/dist/dns/promises.d.ts +34 -0
  18. package/dist/dns/promises.js +190 -0
  19. package/dist/dns.d.ts +88 -0
  20. package/dist/dns.js +259 -0
  21. package/dist/events.d.ts +40 -0
  22. package/dist/events.js +237 -0
  23. package/dist/fs/promises.d.ts +159 -0
  24. package/dist/fs/promises.js +129 -0
  25. package/dist/fs.d.ts +221 -0
  26. package/dist/fs.js +944 -0
  27. package/dist/http.d.ts +92 -0
  28. package/dist/http.js +319 -0
  29. package/dist/https.d.ts +296 -0
  30. package/dist/https.js +50 -0
  31. package/dist/index.d.ts +2422 -0
  32. package/dist/index.js +57 -0
  33. package/dist/lib/bridge.d.ts +60 -0
  34. package/dist/lib/bridge.js +205 -0
  35. package/dist/lib/bytes.d.ts +20 -0
  36. package/dist/lib/bytes.js +239 -0
  37. package/dist/lib/child-process-types.d.ts +45 -0
  38. package/dist/lib/child-process-types.js +2 -0
  39. package/dist/lib/cwd.d.ts +2 -0
  40. package/dist/lib/cwd.js +32 -0
  41. package/dist/lib/deep-equal.d.ts +3 -0
  42. package/dist/lib/deep-equal.js +223 -0
  43. package/dist/lib/deflate.d.ts +2 -0
  44. package/dist/lib/deflate.js +234 -0
  45. package/dist/lib/dns-driver.d.ts +14 -0
  46. package/dist/lib/dns-driver.js +85 -0
  47. package/dist/lib/dns-types.d.ts +22 -0
  48. package/dist/lib/dns-types.js +2 -0
  49. package/dist/lib/errors.d.ts +48 -0
  50. package/dist/lib/errors.js +424 -0
  51. package/dist/lib/fs-driver.d.ts +70 -0
  52. package/dist/lib/fs-driver.js +364 -0
  53. package/dist/lib/fs-env.d.ts +30 -0
  54. package/dist/lib/fs-env.js +157 -0
  55. package/dist/lib/fs-types.d.ts +19 -0
  56. package/dist/lib/fs-types.js +2 -0
  57. package/dist/lib/hashes.d.ts +27 -0
  58. package/dist/lib/hashes.js +432 -0
  59. package/dist/lib/http-driver.d.ts +30 -0
  60. package/dist/lib/http-driver.js +72 -0
  61. package/dist/lib/http-types.d.ts +18 -0
  62. package/dist/lib/http-types.js +2 -0
  63. package/dist/lib/inflate.d.ts +6 -0
  64. package/dist/lib/inflate.js +284 -0
  65. package/dist/lib/path-types.d.ts +37 -0
  66. package/dist/lib/path-types.js +2 -0
  67. package/dist/lib/paths.d.ts +8 -0
  68. package/dist/lib/paths.js +106 -0
  69. package/dist/lib/perf-hooks-types.d.ts +18 -0
  70. package/dist/lib/perf-hooks-types.js +2 -0
  71. package/dist/lib/process-driver.d.ts +31 -0
  72. package/dist/lib/process-driver.js +102 -0
  73. package/dist/lib/punycode.d.ts +8 -0
  74. package/dist/lib/punycode.js +179 -0
  75. package/dist/lib/stream-types.d.ts +29 -0
  76. package/dist/lib/stream-types.js +2 -0
  77. package/dist/lib/timers-types.d.ts +18 -0
  78. package/dist/lib/timers-types.js +2 -0
  79. package/dist/lib/url-search-params.d.ts +26 -0
  80. package/dist/lib/url-search-params.js +281 -0
  81. package/dist/lib/url-types.d.ts +44 -0
  82. package/dist/lib/url-types.js +2 -0
  83. package/dist/lib/url-whatwg.d.ts +78 -0
  84. package/dist/lib/url-whatwg.js +857 -0
  85. package/dist/lib/zlib-types.d.ts +12 -0
  86. package/dist/lib/zlib-types.js +2 -0
  87. package/dist/module.d.ts +8 -0
  88. package/dist/module.js +72 -0
  89. package/dist/os.d.ts +80 -0
  90. package/dist/os.js +247 -0
  91. package/dist/path/posix.d.ts +2 -0
  92. package/dist/path/posix.js +7 -0
  93. package/dist/path/win32.d.ts +2 -0
  94. package/dist/path/win32.js +10 -0
  95. package/dist/path.d.ts +3 -0
  96. package/dist/path.js +1222 -0
  97. package/dist/perf_hooks.d.ts +36 -0
  98. package/dist/perf_hooks.js +144 -0
  99. package/dist/process.d.ts +69 -0
  100. package/dist/process.js +230 -0
  101. package/dist/querystring.d.ts +15 -0
  102. package/dist/querystring.js +209 -0
  103. package/dist/stream/promises.d.ts +5 -0
  104. package/dist/stream/promises.js +10 -0
  105. package/dist/stream.d.ts +84 -0
  106. package/dist/stream.js +875 -0
  107. package/dist/string_decoder.d.ts +15 -0
  108. package/dist/string_decoder.js +237 -0
  109. package/dist/timers/promises.d.ts +19 -0
  110. package/dist/timers/promises.js +74 -0
  111. package/dist/timers.d.ts +21 -0
  112. package/dist/timers.js +41 -0
  113. package/dist/tty.d.ts +9 -0
  114. package/dist/tty.js +25 -0
  115. package/dist/unsupported.d.ts +12 -0
  116. package/dist/unsupported.js +17 -0
  117. package/dist/url.d.ts +28 -0
  118. package/dist/url.js +486 -0
  119. package/dist/util.d.ts +74 -0
  120. package/dist/util.js +515 -0
  121. package/dist/zlib.d.ts +88 -0
  122. package/dist/zlib.js +371 -0
  123. package/package.json +29 -4
@@ -0,0 +1,296 @@
1
+ import type { RequestOptions } from './lib/http-types';
2
+ declare function request(input: string | RequestOptions, options?: unknown, callback?: unknown): unknown;
3
+ declare function get(input: string | RequestOptions, options?: unknown, callback?: unknown): unknown;
4
+ declare function createServer(): never;
5
+ declare const api: {
6
+ request: typeof request;
7
+ get: typeof get;
8
+ createServer: typeof createServer;
9
+ Agent: {
10
+ new (): {
11
+ maxSockets: number;
12
+ maxFreeSockets: number;
13
+ readonly sockets: Record<string, unknown[]>;
14
+ readonly freeSockets: Record<string, unknown[]>;
15
+ readonly requests: Record<string, unknown[]>;
16
+ readonly options: Record<string, unknown>;
17
+ readonly maxTotalSockets: number;
18
+ totalSocketCount: number;
19
+ destroy(): void;
20
+ };
21
+ };
22
+ globalAgent: {
23
+ maxSockets: number;
24
+ maxFreeSockets: number;
25
+ readonly sockets: Record<string, unknown[]>;
26
+ readonly freeSockets: Record<string, unknown[]>;
27
+ readonly requests: Record<string, unknown[]>;
28
+ readonly options: Record<string, unknown>;
29
+ readonly maxTotalSockets: number;
30
+ totalSocketCount: number;
31
+ destroy(): void;
32
+ };
33
+ METHODS: string[];
34
+ STATUS_CODES: Record<number, string>;
35
+ ClientRequest: {
36
+ new (input: string | RequestOptions, options?: RequestOptions | ((response: {
37
+ get maxListeners(): number;
38
+ set maxListeners(value: number);
39
+ statusCode: number;
40
+ statusMessage: string;
41
+ headers: Record<string, string>;
42
+ rawHeaders: string[];
43
+ httpVersion: string;
44
+ httpVersionMajor: number;
45
+ httpVersionMinor: number;
46
+ complete: boolean;
47
+ url: string;
48
+ method: string | null;
49
+ aborted: boolean;
50
+ _read(size: number): void;
51
+ setMaxListeners(count: number): /*elided*/ any;
52
+ getMaxListeners(): number;
53
+ addListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
54
+ prependListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
55
+ once(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
56
+ prependOnceListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
57
+ addEntry(name: string | symbol, listener: (...args: unknown[]) => void, once: boolean, prepend?: boolean): /*elided*/ any;
58
+ emit(name: string | symbol, ...args: unknown[]): boolean;
59
+ removeListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
60
+ off(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
61
+ removeAllListeners(name?: string | symbol): /*elided*/ any;
62
+ listeners(name: string | symbol): ((...args: unknown[]) => void)[];
63
+ rawListeners(name: string | symbol): ((...args: unknown[]) => void)[];
64
+ listenerCount(name: string | symbol): number;
65
+ eventNames(): (string | symbol)[];
66
+ readable: boolean;
67
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
68
+ push(chunk: unknown, encoding?: string): boolean;
69
+ unshift(chunk: unknown): void;
70
+ read(size?: number): unknown;
71
+ setEncoding(encoding: string): /*elided*/ any;
72
+ pause(): /*elided*/ any;
73
+ resume(): /*elided*/ any;
74
+ isPaused(): boolean;
75
+ pipe<T extends import("./lib/stream-types").WritableLike>(destination: T, options?: {
76
+ end?: boolean;
77
+ }): T;
78
+ unpipe(destination?: import("./lib/stream-types").WritableLike): /*elided*/ any;
79
+ destroy(error?: Error | null): /*elided*/ any;
80
+ on(event: string, listener: (...args: unknown[]) => void): /*elided*/ any;
81
+ [Symbol.asyncIterator](): {
82
+ next(): Promise<{
83
+ value: unknown;
84
+ done: boolean;
85
+ }>;
86
+ };
87
+ }) => void), callback?: (response: {
88
+ get maxListeners(): number;
89
+ set maxListeners(value: number);
90
+ statusCode: number;
91
+ statusMessage: string;
92
+ headers: Record<string, string>;
93
+ rawHeaders: string[];
94
+ httpVersion: string;
95
+ httpVersionMajor: number;
96
+ httpVersionMinor: number;
97
+ complete: boolean;
98
+ url: string;
99
+ method: string | null;
100
+ aborted: boolean;
101
+ _read(size: number): void;
102
+ setMaxListeners(count: number): any;
103
+ getMaxListeners(): number;
104
+ addListener(name: string | symbol, listener: (...args: unknown[]) => void): any;
105
+ prependListener(name: string | symbol, listener: (...args: unknown[]) => void): any;
106
+ once(name: string | symbol, listener: (...args: unknown[]) => void): any;
107
+ prependOnceListener(name: string | symbol, listener: (...args: unknown[]) => void): any;
108
+ addEntry(name: string | symbol, listener: (...args: unknown[]) => void, once: boolean, prepend?: boolean): any;
109
+ emit(name: string | symbol, ...args: unknown[]): boolean;
110
+ removeListener(name: string | symbol, listener: (...args: unknown[]) => void): any;
111
+ off(name: string | symbol, listener: (...args: unknown[]) => void): any;
112
+ removeAllListeners(name?: string | symbol): any;
113
+ listeners(name: string | symbol): ((...args: unknown[]) => void)[];
114
+ rawListeners(name: string | symbol): ((...args: unknown[]) => void)[];
115
+ listenerCount(name: string | symbol): number;
116
+ eventNames(): (string | symbol)[];
117
+ readable: boolean;
118
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
119
+ push(chunk: unknown, encoding?: string): boolean;
120
+ unshift(chunk: unknown): void;
121
+ read(size?: number): unknown;
122
+ setEncoding(encoding: string): any;
123
+ pause(): any;
124
+ resume(): any;
125
+ isPaused(): boolean;
126
+ pipe<T extends import("./lib/stream-types").WritableLike>(destination: T, options?: {
127
+ end?: boolean;
128
+ }): T;
129
+ unpipe(destination?: import("./lib/stream-types").WritableLike): any;
130
+ destroy(error?: Error | null): any;
131
+ on(event: string, listener: (...args: unknown[]) => void): any;
132
+ [Symbol.asyncIterator](): {
133
+ next(): Promise<{
134
+ value: unknown;
135
+ done: boolean;
136
+ }>;
137
+ };
138
+ }) => void): {
139
+ on(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
140
+ addListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
141
+ prependListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
142
+ once(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
143
+ prependOnceListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
144
+ addEntry(name: string | symbol, listener: (...args: unknown[]) => void, once: boolean, prepend?: boolean): /*elided*/ any;
145
+ emit(name: string | symbol, ...args: unknown[]): boolean;
146
+ removeListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
147
+ off(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
148
+ removeAllListeners(name?: string | symbol): /*elided*/ any;
149
+ listeners(name: string | symbol): ((...args: unknown[]) => void)[];
150
+ rawListeners(name: string | symbol): ((...args: unknown[]) => void)[];
151
+ listenerCount(name: string | symbol): number;
152
+ eventNames(): (string | symbol)[];
153
+ method: string;
154
+ path: string;
155
+ protocol: string;
156
+ host: string;
157
+ readonly maxHeadersCount: number | null;
158
+ readonly reusedSocket: false;
159
+ aborted: boolean;
160
+ finished: boolean;
161
+ readonly targetUrl: string;
162
+ readonly headerMap: Record<string, string>;
163
+ bodyChunks: Uint8Array[];
164
+ timer: unknown;
165
+ setHeader(name: unknown, value: unknown): /*elided*/ any;
166
+ getHeader(name: unknown): string | undefined;
167
+ getHeaders(): Record<string, string>;
168
+ getHeaderNames(): string[];
169
+ hasHeader(name: unknown): boolean;
170
+ removeHeader(name: unknown): void;
171
+ _write(chunk: unknown, encoding: string, callback: (error?: Error | null) => void): void;
172
+ _final(callback: (error?: Error | null) => void): void;
173
+ send(): void;
174
+ clearTimer(): void;
175
+ setTimeout(milliseconds: number, callback?: () => void): /*elided*/ any;
176
+ abort(): void;
177
+ destroy(error?: Error): /*elided*/ any;
178
+ get maxListeners(): number;
179
+ set maxListeners(value: number);
180
+ setMaxListeners(count: number): /*elided*/ any;
181
+ getMaxListeners(): number;
182
+ writable: boolean;
183
+ };
184
+ defaultMaxListeners: number;
185
+ errorMonitor: symbol;
186
+ EventEmitter: typeof import("./events");
187
+ listenerCount(emitter: import("./events"), name: string | symbol): number;
188
+ getEventListeners(emitter: import("./events"), name: string | symbol): ((...args: unknown[]) => void)[];
189
+ once(emitter: import("./events"), name: string | symbol): Promise<unknown[]>;
190
+ on(emitter: import("./events"), name: string | symbol): void;
191
+ };
192
+ IncomingMessage: {
193
+ new (response: import("./lib/http-driver").HttpHostResponse): {
194
+ get maxListeners(): number;
195
+ set maxListeners(value: number);
196
+ statusCode: number;
197
+ statusMessage: string;
198
+ headers: Record<string, string>;
199
+ rawHeaders: string[];
200
+ httpVersion: string;
201
+ httpVersionMajor: number;
202
+ httpVersionMinor: number;
203
+ complete: boolean;
204
+ url: string;
205
+ method: string | null;
206
+ aborted: boolean;
207
+ _read(size: number): void;
208
+ setMaxListeners(count: number): /*elided*/ any;
209
+ getMaxListeners(): number;
210
+ addListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
211
+ prependListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
212
+ once(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
213
+ prependOnceListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
214
+ addEntry(name: string | symbol, listener: (...args: unknown[]) => void, once: boolean, prepend?: boolean): /*elided*/ any;
215
+ emit(name: string | symbol, ...args: unknown[]): boolean;
216
+ removeListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
217
+ off(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
218
+ removeAllListeners(name?: string | symbol): /*elided*/ any;
219
+ listeners(name: string | symbol): ((...args: unknown[]) => void)[];
220
+ rawListeners(name: string | symbol): ((...args: unknown[]) => void)[];
221
+ listenerCount(name: string | symbol): number;
222
+ eventNames(): (string | symbol)[];
223
+ readable: boolean;
224
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
225
+ push(chunk: unknown, encoding?: string): boolean;
226
+ unshift(chunk: unknown): void;
227
+ read(size?: number): unknown;
228
+ setEncoding(encoding: string): /*elided*/ any;
229
+ pause(): /*elided*/ any;
230
+ resume(): /*elided*/ any;
231
+ isPaused(): boolean;
232
+ pipe<T extends import("./lib/stream-types").WritableLike>(destination: T, options?: {
233
+ end?: boolean;
234
+ }): T;
235
+ unpipe(destination?: import("./lib/stream-types").WritableLike): /*elided*/ any;
236
+ destroy(error?: Error | null): /*elided*/ any;
237
+ on(event: string, listener: (...args: unknown[]) => void): /*elided*/ any;
238
+ [Symbol.asyncIterator](): {
239
+ next(): Promise<{
240
+ value: unknown;
241
+ done: boolean;
242
+ }>;
243
+ };
244
+ };
245
+ once(emitter: import("./events"), name: string | symbol): Promise<unknown[]>;
246
+ on(emitter: import("./events"), name: string | symbol): void;
247
+ defaultMaxListeners: number;
248
+ errorMonitor: symbol;
249
+ EventEmitter: typeof import("./events");
250
+ listenerCount(emitter: import("./events"), name: string | symbol): number;
251
+ getEventListeners(emitter: import("./events"), name: string | symbol): ((...args: unknown[]) => void)[];
252
+ from(iterable: unknown): {
253
+ addEntry(name: string | symbol, listener: (...args: unknown[]) => void, once: boolean, prepend?: boolean): /*elided*/ any;
254
+ emit(name: string | symbol, ...args: unknown[]): boolean;
255
+ removeListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
256
+ off(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
257
+ removeAllListeners(name?: string | symbol): /*elided*/ any;
258
+ listeners(name: string | symbol): ((...args: unknown[]) => void)[];
259
+ rawListeners(name: string | symbol): ((...args: unknown[]) => void)[];
260
+ listenerCount(name: string | symbol): number;
261
+ eventNames(): (string | symbol)[];
262
+ readable: boolean;
263
+ _read(size: number): void;
264
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
265
+ push(chunk: unknown, encoding?: string): boolean;
266
+ unshift(chunk: unknown): void;
267
+ read(size?: number): unknown;
268
+ setEncoding(encoding: string): /*elided*/ any;
269
+ pause(): /*elided*/ any;
270
+ resume(): /*elided*/ any;
271
+ isPaused(): boolean;
272
+ pipe<T extends import("./lib/stream-types").WritableLike>(destination: T, options?: {
273
+ end?: boolean;
274
+ }): T;
275
+ unpipe(destination?: import("./lib/stream-types").WritableLike): /*elided*/ any;
276
+ destroy(error?: Error | null): /*elided*/ any;
277
+ on(event: string, listener: (...args: unknown[]) => void): /*elided*/ any;
278
+ [Symbol.asyncIterator](): {
279
+ next(): Promise<{
280
+ value: unknown;
281
+ done: boolean;
282
+ }>;
283
+ };
284
+ get maxListeners(): number;
285
+ set maxListeners(value: number);
286
+ setMaxListeners(count: number): /*elided*/ any;
287
+ getMaxListeners(): number;
288
+ addListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
289
+ prependListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
290
+ once(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
291
+ prependOnceListener(name: string | symbol, listener: (...args: unknown[]) => void): /*elided*/ any;
292
+ };
293
+ };
294
+ maxHeaderSize: number;
295
+ };
296
+ export = api;
package/dist/https.js ADDED
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+ /**
3
+ * https 模块。
4
+ *
5
+ * 与 http 是同一套实现:TLS 由宿主那一侧处理(工具走 OkHttp),
6
+ * 沙箱里既没有 socket 也没有证书链可管。这里只把缺省协议改成 https:。
7
+ */
8
+ const httpModule = require("./http");
9
+ const errors_1 = require("./lib/errors");
10
+ /**
11
+ * 只给"options 形式且没写明协议"的输入补上 https:。
12
+ *
13
+ * 字符串输入必须原样返回 —— 早先这里返回了 {} 把 URL 丢掉了,
14
+ * 结果 https.get('https://x/') 变成了 http:///。
15
+ */
16
+ function withHttpsDefault(input) {
17
+ if (typeof input === 'string') {
18
+ return input;
19
+ }
20
+ if (typeof input.href === 'string' && input.href.length > 0) {
21
+ return input;
22
+ }
23
+ if (typeof input.protocol === 'string' && input.protocol.length > 0) {
24
+ return input;
25
+ }
26
+ return Object.assign({ protocol: 'https:' }, input);
27
+ }
28
+ function request(input, options, callback) {
29
+ return httpModule.request(withHttpsDefault(input), options, callback);
30
+ }
31
+ function get(input, options, callback) {
32
+ return httpModule.get(withHttpsDefault(input), options, callback);
33
+ }
34
+ function createServer() {
35
+ throw (0, errors_1.onjError)('ONJ_UNSUPPORTED', 'https.createServer() 需要监听 socket,Operit 的沙箱脚本没有这个能力;' +
36
+ '网络访问请用工具调用(toolCall("http_request") 或内建的 axios)。');
37
+ }
38
+ const api = {
39
+ request: request,
40
+ get: get,
41
+ createServer: createServer,
42
+ Agent: httpModule.Agent,
43
+ globalAgent: httpModule.globalAgent,
44
+ METHODS: httpModule.METHODS,
45
+ STATUS_CODES: httpModule.STATUS_CODES,
46
+ ClientRequest: httpModule.ClientRequest,
47
+ IncomingMessage: httpModule.IncomingMessage,
48
+ maxHeaderSize: httpModule.maxHeaderSize
49
+ };
50
+ module.exports = api;