undici 6.20.0 → 7.0.0-alpha.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/README.md +6 -10
- package/docs/docs/api/Agent.md +0 -3
- package/docs/docs/api/Client.md +1 -3
- package/docs/docs/api/Debug.md +1 -1
- package/docs/docs/api/Dispatcher.md +60 -8
- package/docs/docs/api/EnvHttpProxyAgent.md +0 -1
- package/docs/docs/api/Fetch.md +1 -0
- package/docs/docs/api/MockAgent.md +2 -0
- package/docs/docs/api/MockPool.md +2 -1
- package/docs/docs/api/Pool.md +0 -1
- package/docs/docs/api/RetryAgent.md +1 -1
- package/docs/docs/api/RetryHandler.md +1 -1
- package/docs/docs/api/WebSocket.md +45 -3
- package/index.js +6 -6
- package/lib/api/abort-signal.js +2 -0
- package/lib/api/api-connect.js +3 -1
- package/lib/api/api-pipeline.js +7 -6
- package/lib/api/api-request.js +32 -47
- package/lib/api/api-stream.js +39 -50
- package/lib/api/api-upgrade.js +5 -3
- package/lib/api/readable.js +261 -64
- package/lib/api/util.js +2 -0
- package/lib/core/constants.js +11 -9
- package/lib/core/diagnostics.js +122 -128
- package/lib/core/errors.js +4 -4
- package/lib/core/request.js +11 -9
- package/lib/core/symbols.js +2 -1
- package/lib/core/tree.js +9 -1
- package/lib/core/util.js +219 -48
- package/lib/dispatcher/agent.js +3 -17
- package/lib/dispatcher/balanced-pool.js +5 -8
- package/lib/dispatcher/client-h1.js +278 -54
- package/lib/dispatcher/client-h2.js +1 -1
- package/lib/dispatcher/client.js +23 -34
- package/lib/dispatcher/dispatcher-base.js +2 -34
- package/lib/dispatcher/dispatcher.js +3 -24
- package/lib/dispatcher/fixed-queue.js +91 -49
- package/lib/dispatcher/pool-stats.js +2 -0
- package/lib/dispatcher/pool.js +3 -6
- package/lib/dispatcher/proxy-agent.js +6 -7
- package/lib/handler/decorator-handler.js +24 -0
- package/lib/handler/redirect-handler.js +11 -2
- package/lib/handler/retry-handler.js +12 -3
- package/lib/interceptor/dns.js +346 -0
- package/lib/interceptor/dump.js +2 -2
- package/lib/interceptor/redirect.js +11 -14
- package/lib/interceptor/response-error.js +4 -1
- package/lib/llhttp/constants.d.ts +97 -0
- package/lib/llhttp/constants.js +412 -192
- package/lib/llhttp/constants.js.map +1 -0
- package/lib/llhttp/llhttp-wasm.js +11 -1
- package/lib/llhttp/llhttp_simd-wasm.js +11 -1
- package/lib/llhttp/utils.d.ts +2 -0
- package/lib/llhttp/utils.js +9 -9
- package/lib/llhttp/utils.js.map +1 -0
- package/lib/mock/mock-agent.js +5 -8
- package/lib/mock/mock-client.js +9 -4
- package/lib/mock/mock-errors.js +3 -1
- package/lib/mock/mock-interceptor.js +8 -6
- package/lib/mock/mock-pool.js +9 -4
- package/lib/mock/mock-symbols.js +3 -1
- package/lib/mock/mock-utils.js +29 -5
- package/lib/web/cache/cache.js +24 -21
- package/lib/web/cache/cachestorage.js +1 -1
- package/lib/web/cookies/index.js +17 -13
- package/lib/web/cookies/parse.js +2 -2
- package/lib/web/eventsource/eventsource-stream.js +9 -8
- package/lib/web/eventsource/eventsource.js +10 -6
- package/lib/web/fetch/body.js +42 -36
- package/lib/web/fetch/constants.js +35 -26
- package/lib/web/fetch/data-url.js +1 -1
- package/lib/web/fetch/formdata-parser.js +2 -2
- package/lib/web/fetch/formdata.js +65 -54
- package/lib/web/fetch/headers.js +117 -85
- package/lib/web/fetch/index.js +55 -62
- package/lib/web/fetch/request.js +135 -77
- package/lib/web/fetch/response.js +86 -56
- package/lib/web/fetch/util.js +90 -64
- package/lib/web/fetch/webidl.js +99 -64
- package/lib/web/websocket/connection.js +76 -147
- package/lib/web/websocket/constants.js +3 -4
- package/lib/web/websocket/events.js +4 -2
- package/lib/web/websocket/frame.js +45 -3
- package/lib/web/websocket/receiver.js +29 -33
- package/lib/web/websocket/sender.js +18 -13
- package/lib/web/websocket/stream/websocketerror.js +83 -0
- package/lib/web/websocket/stream/websocketstream.js +485 -0
- package/lib/web/websocket/util.js +128 -77
- package/lib/web/websocket/websocket.js +234 -135
- package/package.json +20 -33
- package/scripts/strip-comments.js +3 -1
- package/types/agent.d.ts +7 -7
- package/types/api.d.ts +24 -24
- package/types/balanced-pool.d.ts +11 -11
- package/types/client.d.ts +11 -12
- package/types/diagnostics-channel.d.ts +10 -10
- package/types/dispatcher.d.ts +96 -97
- package/types/env-http-proxy-agent.d.ts +2 -2
- package/types/errors.d.ts +53 -47
- package/types/fetch.d.ts +8 -8
- package/types/formdata.d.ts +7 -7
- package/types/global-dispatcher.d.ts +4 -4
- package/types/global-origin.d.ts +5 -5
- package/types/handlers.d.ts +4 -4
- package/types/header.d.ts +157 -1
- package/types/index.d.ts +42 -46
- package/types/interceptors.d.ts +22 -8
- package/types/mock-agent.d.ts +21 -18
- package/types/mock-client.d.ts +4 -4
- package/types/mock-errors.d.ts +3 -3
- package/types/mock-interceptor.d.ts +19 -19
- package/types/mock-pool.d.ts +4 -4
- package/types/patch.d.ts +0 -4
- package/types/pool-stats.d.ts +8 -8
- package/types/pool.d.ts +12 -12
- package/types/proxy-agent.d.ts +4 -4
- package/types/readable.d.ts +22 -14
- package/types/retry-agent.d.ts +1 -1
- package/types/retry-handler.d.ts +8 -8
- package/types/util.d.ts +3 -3
- package/types/utility.d.ts +7 -0
- package/types/webidl.d.ts +44 -6
- package/types/websocket.d.ts +34 -1
- package/docs/docs/api/DispatchInterceptor.md +0 -60
- package/lib/interceptor/redirect-interceptor.js +0 -21
- package/lib/mock/pluralizer.js +0 -29
- package/lib/web/cache/symbols.js +0 -5
- package/lib/web/fetch/file.js +0 -126
- package/lib/web/fetch/symbols.js +0 -9
- package/lib/web/fileapi/encoding.js +0 -290
- package/lib/web/fileapi/filereader.js +0 -344
- package/lib/web/fileapi/progressevent.js +0 -78
- package/lib/web/fileapi/symbols.js +0 -10
- package/lib/web/fileapi/util.js +0 -391
- package/lib/web/websocket/symbols.js +0 -12
- package/types/file.d.ts +0 -39
- package/types/filereader.d.ts +0 -54
package/types/websocket.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ interface WebSocketEventMap {
|
|
|
22
22
|
|
|
23
23
|
interface WebSocket extends EventTarget {
|
|
24
24
|
binaryType: BinaryType
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
readonly bufferedAmount: number
|
|
27
27
|
readonly extensions: string
|
|
28
28
|
|
|
@@ -148,3 +148,36 @@ interface WebSocketInit {
|
|
|
148
148
|
dispatcher?: Dispatcher,
|
|
149
149
|
headers?: HeadersInit
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
interface WebSocketStreamOptions {
|
|
153
|
+
protocols?: string | string[]
|
|
154
|
+
signal?: AbortSignal
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
interface WebSocketCloseInfo {
|
|
158
|
+
closeCode: number
|
|
159
|
+
reason: string
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
interface WebSocketStream {
|
|
163
|
+
closed: Promise<WebSocketCloseInfo>
|
|
164
|
+
opened: Promise<{
|
|
165
|
+
extensions: string
|
|
166
|
+
protocol: string
|
|
167
|
+
readable: ReadableStream
|
|
168
|
+
writable: WritableStream
|
|
169
|
+
}>
|
|
170
|
+
url: string
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export declare const WebSocketStream: {
|
|
174
|
+
prototype: WebSocketStream
|
|
175
|
+
new (url: string | URL, options?: WebSocketStreamOptions): WebSocketStream
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
interface WebSocketError extends Event, WebSocketCloseInfo {}
|
|
179
|
+
|
|
180
|
+
export declare const WebSocketError: {
|
|
181
|
+
prototype: WebSocketError
|
|
182
|
+
new (type: string, init?: WebSocketCloseInfo): WebSocketError
|
|
183
|
+
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Interface: DispatchInterceptor
|
|
2
|
-
|
|
3
|
-
Extends: `Function`
|
|
4
|
-
|
|
5
|
-
A function that can be applied to the `Dispatcher.Dispatch` function before it is invoked with a dispatch request.
|
|
6
|
-
|
|
7
|
-
This allows one to write logic to intercept both the outgoing request, and the incoming response.
|
|
8
|
-
|
|
9
|
-
### Parameter: `Dispatcher.Dispatch`
|
|
10
|
-
|
|
11
|
-
The base dispatch function you are decorating.
|
|
12
|
-
|
|
13
|
-
### ReturnType: `Dispatcher.Dispatch`
|
|
14
|
-
|
|
15
|
-
A dispatch function that has been altered to provide additional logic
|
|
16
|
-
|
|
17
|
-
### Basic Example
|
|
18
|
-
|
|
19
|
-
Here is an example of an interceptor being used to provide a JWT bearer token
|
|
20
|
-
|
|
21
|
-
```js
|
|
22
|
-
'use strict'
|
|
23
|
-
|
|
24
|
-
const insertHeaderInterceptor = dispatch => {
|
|
25
|
-
return function InterceptedDispatch(opts, handler){
|
|
26
|
-
opts.headers.push('Authorization', 'Bearer [Some token]')
|
|
27
|
-
return dispatch(opts, handler)
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const client = new Client('https://localhost:3000', {
|
|
32
|
-
interceptors: { Client: [insertHeaderInterceptor] }
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Basic Example 2
|
|
38
|
-
|
|
39
|
-
Here is a contrived example of an interceptor stripping the headers from a response.
|
|
40
|
-
|
|
41
|
-
```js
|
|
42
|
-
'use strict'
|
|
43
|
-
|
|
44
|
-
const clearHeadersInterceptor = dispatch => {
|
|
45
|
-
const { DecoratorHandler } = require('undici')
|
|
46
|
-
class ResultInterceptor extends DecoratorHandler {
|
|
47
|
-
onHeaders (statusCode, headers, resume) {
|
|
48
|
-
return super.onHeaders(statusCode, [], resume)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return function InterceptedDispatch(opts, handler){
|
|
52
|
-
return dispatch(opts, new ResultInterceptor(handler))
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const client = new Client('https://localhost:3000', {
|
|
57
|
-
interceptors: { Client: [clearHeadersInterceptor] }
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
```
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const RedirectHandler = require('../handler/redirect-handler')
|
|
4
|
-
|
|
5
|
-
function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {
|
|
6
|
-
return (dispatch) => {
|
|
7
|
-
return function Intercept (opts, handler) {
|
|
8
|
-
const { maxRedirections = defaultMaxRedirections } = opts
|
|
9
|
-
|
|
10
|
-
if (!maxRedirections) {
|
|
11
|
-
return dispatch(opts, handler)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)
|
|
15
|
-
opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.
|
|
16
|
-
return dispatch(opts, redirectHandler)
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
module.exports = createRedirectInterceptor
|
package/lib/mock/pluralizer.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const singulars = {
|
|
4
|
-
pronoun: 'it',
|
|
5
|
-
is: 'is',
|
|
6
|
-
was: 'was',
|
|
7
|
-
this: 'this'
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const plurals = {
|
|
11
|
-
pronoun: 'they',
|
|
12
|
-
is: 'are',
|
|
13
|
-
was: 'were',
|
|
14
|
-
this: 'these'
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
module.exports = class Pluralizer {
|
|
18
|
-
constructor (singular, plural) {
|
|
19
|
-
this.singular = singular
|
|
20
|
-
this.plural = plural
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
pluralize (count) {
|
|
24
|
-
const one = count === 1
|
|
25
|
-
const keys = one ? singulars : plurals
|
|
26
|
-
const noun = one ? this.singular : this.plural
|
|
27
|
-
return { ...keys, count, noun }
|
|
28
|
-
}
|
|
29
|
-
}
|
package/lib/web/cache/symbols.js
DELETED
package/lib/web/fetch/file.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { Blob, File } = require('node:buffer')
|
|
4
|
-
const { kState } = require('./symbols')
|
|
5
|
-
const { webidl } = require('./webidl')
|
|
6
|
-
|
|
7
|
-
// TODO(@KhafraDev): remove
|
|
8
|
-
class FileLike {
|
|
9
|
-
constructor (blobLike, fileName, options = {}) {
|
|
10
|
-
// TODO: argument idl type check
|
|
11
|
-
|
|
12
|
-
// The File constructor is invoked with two or three parameters, depending
|
|
13
|
-
// on whether the optional dictionary parameter is used. When the File()
|
|
14
|
-
// constructor is invoked, user agents must run the following steps:
|
|
15
|
-
|
|
16
|
-
// 1. Let bytes be the result of processing blob parts given fileBits and
|
|
17
|
-
// options.
|
|
18
|
-
|
|
19
|
-
// 2. Let n be the fileName argument to the constructor.
|
|
20
|
-
const n = fileName
|
|
21
|
-
|
|
22
|
-
// 3. Process FilePropertyBag dictionary argument by running the following
|
|
23
|
-
// substeps:
|
|
24
|
-
|
|
25
|
-
// 1. If the type member is provided and is not the empty string, let t
|
|
26
|
-
// be set to the type dictionary member. If t contains any characters
|
|
27
|
-
// outside the range U+0020 to U+007E, then set t to the empty string
|
|
28
|
-
// and return from these substeps.
|
|
29
|
-
// TODO
|
|
30
|
-
const t = options.type
|
|
31
|
-
|
|
32
|
-
// 2. Convert every character in t to ASCII lowercase.
|
|
33
|
-
// TODO
|
|
34
|
-
|
|
35
|
-
// 3. If the lastModified member is provided, let d be set to the
|
|
36
|
-
// lastModified dictionary member. If it is not provided, set d to the
|
|
37
|
-
// current date and time represented as the number of milliseconds since
|
|
38
|
-
// the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).
|
|
39
|
-
const d = options.lastModified ?? Date.now()
|
|
40
|
-
|
|
41
|
-
// 4. Return a new File object F such that:
|
|
42
|
-
// F refers to the bytes byte sequence.
|
|
43
|
-
// F.size is set to the number of total bytes in bytes.
|
|
44
|
-
// F.name is set to n.
|
|
45
|
-
// F.type is set to t.
|
|
46
|
-
// F.lastModified is set to d.
|
|
47
|
-
|
|
48
|
-
this[kState] = {
|
|
49
|
-
blobLike,
|
|
50
|
-
name: n,
|
|
51
|
-
type: t,
|
|
52
|
-
lastModified: d
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
stream (...args) {
|
|
57
|
-
webidl.brandCheck(this, FileLike)
|
|
58
|
-
|
|
59
|
-
return this[kState].blobLike.stream(...args)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
arrayBuffer (...args) {
|
|
63
|
-
webidl.brandCheck(this, FileLike)
|
|
64
|
-
|
|
65
|
-
return this[kState].blobLike.arrayBuffer(...args)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
slice (...args) {
|
|
69
|
-
webidl.brandCheck(this, FileLike)
|
|
70
|
-
|
|
71
|
-
return this[kState].blobLike.slice(...args)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
text (...args) {
|
|
75
|
-
webidl.brandCheck(this, FileLike)
|
|
76
|
-
|
|
77
|
-
return this[kState].blobLike.text(...args)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
get size () {
|
|
81
|
-
webidl.brandCheck(this, FileLike)
|
|
82
|
-
|
|
83
|
-
return this[kState].blobLike.size
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
get type () {
|
|
87
|
-
webidl.brandCheck(this, FileLike)
|
|
88
|
-
|
|
89
|
-
return this[kState].blobLike.type
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
get name () {
|
|
93
|
-
webidl.brandCheck(this, FileLike)
|
|
94
|
-
|
|
95
|
-
return this[kState].name
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
get lastModified () {
|
|
99
|
-
webidl.brandCheck(this, FileLike)
|
|
100
|
-
|
|
101
|
-
return this[kState].lastModified
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
get [Symbol.toStringTag] () {
|
|
105
|
-
return 'File'
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
webidl.converters.Blob = webidl.interfaceConverter(Blob)
|
|
110
|
-
|
|
111
|
-
// If this function is moved to ./util.js, some tools (such as
|
|
112
|
-
// rollup) will warn about circular dependencies. See:
|
|
113
|
-
// https://github.com/nodejs/undici/issues/1629
|
|
114
|
-
function isFileLike (object) {
|
|
115
|
-
return (
|
|
116
|
-
(object instanceof File) ||
|
|
117
|
-
(
|
|
118
|
-
object &&
|
|
119
|
-
(typeof object.stream === 'function' ||
|
|
120
|
-
typeof object.arrayBuffer === 'function') &&
|
|
121
|
-
object[Symbol.toStringTag] === 'File'
|
|
122
|
-
)
|
|
123
|
-
)
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
module.exports = { FileLike, isFileLike }
|
package/lib/web/fetch/symbols.js
DELETED
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @see https://encoding.spec.whatwg.org/#concept-encoding-get
|
|
5
|
-
* @param {string|undefined} label
|
|
6
|
-
*/
|
|
7
|
-
function getEncoding (label) {
|
|
8
|
-
if (!label) {
|
|
9
|
-
return 'failure'
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// 1. Remove any leading and trailing ASCII whitespace from label.
|
|
13
|
-
// 2. If label is an ASCII case-insensitive match for any of the
|
|
14
|
-
// labels listed in the table below, then return the
|
|
15
|
-
// corresponding encoding; otherwise return failure.
|
|
16
|
-
switch (label.trim().toLowerCase()) {
|
|
17
|
-
case 'unicode-1-1-utf-8':
|
|
18
|
-
case 'unicode11utf8':
|
|
19
|
-
case 'unicode20utf8':
|
|
20
|
-
case 'utf-8':
|
|
21
|
-
case 'utf8':
|
|
22
|
-
case 'x-unicode20utf8':
|
|
23
|
-
return 'UTF-8'
|
|
24
|
-
case '866':
|
|
25
|
-
case 'cp866':
|
|
26
|
-
case 'csibm866':
|
|
27
|
-
case 'ibm866':
|
|
28
|
-
return 'IBM866'
|
|
29
|
-
case 'csisolatin2':
|
|
30
|
-
case 'iso-8859-2':
|
|
31
|
-
case 'iso-ir-101':
|
|
32
|
-
case 'iso8859-2':
|
|
33
|
-
case 'iso88592':
|
|
34
|
-
case 'iso_8859-2':
|
|
35
|
-
case 'iso_8859-2:1987':
|
|
36
|
-
case 'l2':
|
|
37
|
-
case 'latin2':
|
|
38
|
-
return 'ISO-8859-2'
|
|
39
|
-
case 'csisolatin3':
|
|
40
|
-
case 'iso-8859-3':
|
|
41
|
-
case 'iso-ir-109':
|
|
42
|
-
case 'iso8859-3':
|
|
43
|
-
case 'iso88593':
|
|
44
|
-
case 'iso_8859-3':
|
|
45
|
-
case 'iso_8859-3:1988':
|
|
46
|
-
case 'l3':
|
|
47
|
-
case 'latin3':
|
|
48
|
-
return 'ISO-8859-3'
|
|
49
|
-
case 'csisolatin4':
|
|
50
|
-
case 'iso-8859-4':
|
|
51
|
-
case 'iso-ir-110':
|
|
52
|
-
case 'iso8859-4':
|
|
53
|
-
case 'iso88594':
|
|
54
|
-
case 'iso_8859-4':
|
|
55
|
-
case 'iso_8859-4:1988':
|
|
56
|
-
case 'l4':
|
|
57
|
-
case 'latin4':
|
|
58
|
-
return 'ISO-8859-4'
|
|
59
|
-
case 'csisolatincyrillic':
|
|
60
|
-
case 'cyrillic':
|
|
61
|
-
case 'iso-8859-5':
|
|
62
|
-
case 'iso-ir-144':
|
|
63
|
-
case 'iso8859-5':
|
|
64
|
-
case 'iso88595':
|
|
65
|
-
case 'iso_8859-5':
|
|
66
|
-
case 'iso_8859-5:1988':
|
|
67
|
-
return 'ISO-8859-5'
|
|
68
|
-
case 'arabic':
|
|
69
|
-
case 'asmo-708':
|
|
70
|
-
case 'csiso88596e':
|
|
71
|
-
case 'csiso88596i':
|
|
72
|
-
case 'csisolatinarabic':
|
|
73
|
-
case 'ecma-114':
|
|
74
|
-
case 'iso-8859-6':
|
|
75
|
-
case 'iso-8859-6-e':
|
|
76
|
-
case 'iso-8859-6-i':
|
|
77
|
-
case 'iso-ir-127':
|
|
78
|
-
case 'iso8859-6':
|
|
79
|
-
case 'iso88596':
|
|
80
|
-
case 'iso_8859-6':
|
|
81
|
-
case 'iso_8859-6:1987':
|
|
82
|
-
return 'ISO-8859-6'
|
|
83
|
-
case 'csisolatingreek':
|
|
84
|
-
case 'ecma-118':
|
|
85
|
-
case 'elot_928':
|
|
86
|
-
case 'greek':
|
|
87
|
-
case 'greek8':
|
|
88
|
-
case 'iso-8859-7':
|
|
89
|
-
case 'iso-ir-126':
|
|
90
|
-
case 'iso8859-7':
|
|
91
|
-
case 'iso88597':
|
|
92
|
-
case 'iso_8859-7':
|
|
93
|
-
case 'iso_8859-7:1987':
|
|
94
|
-
case 'sun_eu_greek':
|
|
95
|
-
return 'ISO-8859-7'
|
|
96
|
-
case 'csiso88598e':
|
|
97
|
-
case 'csisolatinhebrew':
|
|
98
|
-
case 'hebrew':
|
|
99
|
-
case 'iso-8859-8':
|
|
100
|
-
case 'iso-8859-8-e':
|
|
101
|
-
case 'iso-ir-138':
|
|
102
|
-
case 'iso8859-8':
|
|
103
|
-
case 'iso88598':
|
|
104
|
-
case 'iso_8859-8':
|
|
105
|
-
case 'iso_8859-8:1988':
|
|
106
|
-
case 'visual':
|
|
107
|
-
return 'ISO-8859-8'
|
|
108
|
-
case 'csiso88598i':
|
|
109
|
-
case 'iso-8859-8-i':
|
|
110
|
-
case 'logical':
|
|
111
|
-
return 'ISO-8859-8-I'
|
|
112
|
-
case 'csisolatin6':
|
|
113
|
-
case 'iso-8859-10':
|
|
114
|
-
case 'iso-ir-157':
|
|
115
|
-
case 'iso8859-10':
|
|
116
|
-
case 'iso885910':
|
|
117
|
-
case 'l6':
|
|
118
|
-
case 'latin6':
|
|
119
|
-
return 'ISO-8859-10'
|
|
120
|
-
case 'iso-8859-13':
|
|
121
|
-
case 'iso8859-13':
|
|
122
|
-
case 'iso885913':
|
|
123
|
-
return 'ISO-8859-13'
|
|
124
|
-
case 'iso-8859-14':
|
|
125
|
-
case 'iso8859-14':
|
|
126
|
-
case 'iso885914':
|
|
127
|
-
return 'ISO-8859-14'
|
|
128
|
-
case 'csisolatin9':
|
|
129
|
-
case 'iso-8859-15':
|
|
130
|
-
case 'iso8859-15':
|
|
131
|
-
case 'iso885915':
|
|
132
|
-
case 'iso_8859-15':
|
|
133
|
-
case 'l9':
|
|
134
|
-
return 'ISO-8859-15'
|
|
135
|
-
case 'iso-8859-16':
|
|
136
|
-
return 'ISO-8859-16'
|
|
137
|
-
case 'cskoi8r':
|
|
138
|
-
case 'koi':
|
|
139
|
-
case 'koi8':
|
|
140
|
-
case 'koi8-r':
|
|
141
|
-
case 'koi8_r':
|
|
142
|
-
return 'KOI8-R'
|
|
143
|
-
case 'koi8-ru':
|
|
144
|
-
case 'koi8-u':
|
|
145
|
-
return 'KOI8-U'
|
|
146
|
-
case 'csmacintosh':
|
|
147
|
-
case 'mac':
|
|
148
|
-
case 'macintosh':
|
|
149
|
-
case 'x-mac-roman':
|
|
150
|
-
return 'macintosh'
|
|
151
|
-
case 'iso-8859-11':
|
|
152
|
-
case 'iso8859-11':
|
|
153
|
-
case 'iso885911':
|
|
154
|
-
case 'tis-620':
|
|
155
|
-
case 'windows-874':
|
|
156
|
-
return 'windows-874'
|
|
157
|
-
case 'cp1250':
|
|
158
|
-
case 'windows-1250':
|
|
159
|
-
case 'x-cp1250':
|
|
160
|
-
return 'windows-1250'
|
|
161
|
-
case 'cp1251':
|
|
162
|
-
case 'windows-1251':
|
|
163
|
-
case 'x-cp1251':
|
|
164
|
-
return 'windows-1251'
|
|
165
|
-
case 'ansi_x3.4-1968':
|
|
166
|
-
case 'ascii':
|
|
167
|
-
case 'cp1252':
|
|
168
|
-
case 'cp819':
|
|
169
|
-
case 'csisolatin1':
|
|
170
|
-
case 'ibm819':
|
|
171
|
-
case 'iso-8859-1':
|
|
172
|
-
case 'iso-ir-100':
|
|
173
|
-
case 'iso8859-1':
|
|
174
|
-
case 'iso88591':
|
|
175
|
-
case 'iso_8859-1':
|
|
176
|
-
case 'iso_8859-1:1987':
|
|
177
|
-
case 'l1':
|
|
178
|
-
case 'latin1':
|
|
179
|
-
case 'us-ascii':
|
|
180
|
-
case 'windows-1252':
|
|
181
|
-
case 'x-cp1252':
|
|
182
|
-
return 'windows-1252'
|
|
183
|
-
case 'cp1253':
|
|
184
|
-
case 'windows-1253':
|
|
185
|
-
case 'x-cp1253':
|
|
186
|
-
return 'windows-1253'
|
|
187
|
-
case 'cp1254':
|
|
188
|
-
case 'csisolatin5':
|
|
189
|
-
case 'iso-8859-9':
|
|
190
|
-
case 'iso-ir-148':
|
|
191
|
-
case 'iso8859-9':
|
|
192
|
-
case 'iso88599':
|
|
193
|
-
case 'iso_8859-9':
|
|
194
|
-
case 'iso_8859-9:1989':
|
|
195
|
-
case 'l5':
|
|
196
|
-
case 'latin5':
|
|
197
|
-
case 'windows-1254':
|
|
198
|
-
case 'x-cp1254':
|
|
199
|
-
return 'windows-1254'
|
|
200
|
-
case 'cp1255':
|
|
201
|
-
case 'windows-1255':
|
|
202
|
-
case 'x-cp1255':
|
|
203
|
-
return 'windows-1255'
|
|
204
|
-
case 'cp1256':
|
|
205
|
-
case 'windows-1256':
|
|
206
|
-
case 'x-cp1256':
|
|
207
|
-
return 'windows-1256'
|
|
208
|
-
case 'cp1257':
|
|
209
|
-
case 'windows-1257':
|
|
210
|
-
case 'x-cp1257':
|
|
211
|
-
return 'windows-1257'
|
|
212
|
-
case 'cp1258':
|
|
213
|
-
case 'windows-1258':
|
|
214
|
-
case 'x-cp1258':
|
|
215
|
-
return 'windows-1258'
|
|
216
|
-
case 'x-mac-cyrillic':
|
|
217
|
-
case 'x-mac-ukrainian':
|
|
218
|
-
return 'x-mac-cyrillic'
|
|
219
|
-
case 'chinese':
|
|
220
|
-
case 'csgb2312':
|
|
221
|
-
case 'csiso58gb231280':
|
|
222
|
-
case 'gb2312':
|
|
223
|
-
case 'gb_2312':
|
|
224
|
-
case 'gb_2312-80':
|
|
225
|
-
case 'gbk':
|
|
226
|
-
case 'iso-ir-58':
|
|
227
|
-
case 'x-gbk':
|
|
228
|
-
return 'GBK'
|
|
229
|
-
case 'gb18030':
|
|
230
|
-
return 'gb18030'
|
|
231
|
-
case 'big5':
|
|
232
|
-
case 'big5-hkscs':
|
|
233
|
-
case 'cn-big5':
|
|
234
|
-
case 'csbig5':
|
|
235
|
-
case 'x-x-big5':
|
|
236
|
-
return 'Big5'
|
|
237
|
-
case 'cseucpkdfmtjapanese':
|
|
238
|
-
case 'euc-jp':
|
|
239
|
-
case 'x-euc-jp':
|
|
240
|
-
return 'EUC-JP'
|
|
241
|
-
case 'csiso2022jp':
|
|
242
|
-
case 'iso-2022-jp':
|
|
243
|
-
return 'ISO-2022-JP'
|
|
244
|
-
case 'csshiftjis':
|
|
245
|
-
case 'ms932':
|
|
246
|
-
case 'ms_kanji':
|
|
247
|
-
case 'shift-jis':
|
|
248
|
-
case 'shift_jis':
|
|
249
|
-
case 'sjis':
|
|
250
|
-
case 'windows-31j':
|
|
251
|
-
case 'x-sjis':
|
|
252
|
-
return 'Shift_JIS'
|
|
253
|
-
case 'cseuckr':
|
|
254
|
-
case 'csksc56011987':
|
|
255
|
-
case 'euc-kr':
|
|
256
|
-
case 'iso-ir-149':
|
|
257
|
-
case 'korean':
|
|
258
|
-
case 'ks_c_5601-1987':
|
|
259
|
-
case 'ks_c_5601-1989':
|
|
260
|
-
case 'ksc5601':
|
|
261
|
-
case 'ksc_5601':
|
|
262
|
-
case 'windows-949':
|
|
263
|
-
return 'EUC-KR'
|
|
264
|
-
case 'csiso2022kr':
|
|
265
|
-
case 'hz-gb-2312':
|
|
266
|
-
case 'iso-2022-cn':
|
|
267
|
-
case 'iso-2022-cn-ext':
|
|
268
|
-
case 'iso-2022-kr':
|
|
269
|
-
case 'replacement':
|
|
270
|
-
return 'replacement'
|
|
271
|
-
case 'unicodefffe':
|
|
272
|
-
case 'utf-16be':
|
|
273
|
-
return 'UTF-16BE'
|
|
274
|
-
case 'csunicode':
|
|
275
|
-
case 'iso-10646-ucs-2':
|
|
276
|
-
case 'ucs-2':
|
|
277
|
-
case 'unicode':
|
|
278
|
-
case 'unicodefeff':
|
|
279
|
-
case 'utf-16':
|
|
280
|
-
case 'utf-16le':
|
|
281
|
-
return 'UTF-16LE'
|
|
282
|
-
case 'x-user-defined':
|
|
283
|
-
return 'x-user-defined'
|
|
284
|
-
default: return 'failure'
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
module.exports = {
|
|
289
|
-
getEncoding
|
|
290
|
-
}
|