iosignal 5.1.3 → 5.2.0
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/.vscode/settings.json +3 -0
- package/dist/{io.d.ts → browser/esm/io.d.ts} +2 -3
- package/dist/browser/esm/io.js +23 -0
- package/dist/browser/esm/io.js.map +1 -0
- package/dist/browser/iife/io.js +23 -0
- package/dist/browser/iife/io.js.map +1 -0
- package/dist/{iosignal.cjs → node/iosignal.cjs} +206 -3153
- package/dist/{iosignal.js → node/iosignal.js} +205 -3152
- package/dist/types/client/IOCore.d.ts +1 -2
- package/dist/types/client/browser/IOWebSocket.d.ts +1 -1
- package/dist/types/common/payload.d.ts +1 -1
- package/package.json +17 -18
- package/rollup.config.js +6 -6
- package/tsconfig.json +7 -6
- package/LICENSE +0 -21
- package/README.md +0 -78
- package/dist/io.js +0 -16
- package/dist/io.js.map +0 -1
- package/dist/io.min.js +0 -16
- package/dist/io.min.js.map +0 -1
- package/test/attach-services/RedisService.js +0 -46
- package/test/attach-services/replyService.js +0 -46
- package/test/auth_server_client/auth_server_client.js +0 -45
- package/test/pubsub-counter/pubsub-counter.js +0 -61
- package/test/subscribe-signal/cid-a-b.js +0 -94
- package/test/subscribe-signal/cs-signal-test.js +0 -47
- package/test/subscribe-signal/meta.js +0 -61
- package/test/subscribe-signal/self-listen.cjs +0 -50
- package/test/subscribe-signal/self-listen.js +0 -40
- package/test/subscribe-signal/self-subscribe.cjs +0 -35
- package/test/subscribe-signal/self-subscribe.js +0 -35
- package/test/subscribe-signal/signal-MBA.js +0 -15
- package/test/subscribe-signal/signalPack.js +0 -34
- package/test/subscribe-signal/signaling.js +0 -61
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Core class for handling WebSocket communication.
|
|
3
3
|
* @augments {EventEmitter}
|
|
4
4
|
*/
|
|
5
|
-
export class IOCore
|
|
5
|
+
export class IOCore {
|
|
6
6
|
/**
|
|
7
7
|
* @param {string} url - The WebSocket URL to connect to.
|
|
8
8
|
*/
|
|
@@ -410,4 +410,3 @@ export type STATE = import("../common/constants.js").STATE;
|
|
|
410
410
|
export type quotaTable = any;
|
|
411
411
|
export type Boho = import("boho").Boho;
|
|
412
412
|
export type Buffer = import("boho").Buffer;
|
|
413
|
-
import EventEmitter from "eventemitter3";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function getSignalPack(tag: any, ...args: any[]): Buffer<ArrayBufferLike>;
|
|
2
2
|
export function parsePayload(args: any): {
|
|
3
3
|
type: number;
|
|
4
|
-
buffer: Uint8Array<ArrayBuffer> | Buffer<ArrayBufferLike
|
|
4
|
+
buffer: Uint8Array<ArrayBuffer> | Buffer<ArrayBufferLike> | null | undefined;
|
|
5
5
|
};
|
|
6
6
|
export function getPayloadFromSignalPack(signalPack: any): any;
|
package/package.json
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iosignal",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "iosignal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
|
-
"import": "./dist/iosignal.js",
|
|
9
|
-
"require": "./dist/iosignal.cjs"
|
|
8
|
+
"import": "./dist/node/iosignal.js",
|
|
9
|
+
"require": "./dist/node/iosignal.cjs"
|
|
10
10
|
},
|
|
11
|
-
"./io": "./dist/io.js",
|
|
12
|
-
"./io.js": "./dist/io.js",
|
|
13
|
-
"./browser": "./dist/
|
|
11
|
+
"./io": "./dist/browser/esm/io.js",
|
|
12
|
+
"./io.js": "./dist/browser/esm/io.js",
|
|
13
|
+
"./browser/*": "./dist/browser/*"
|
|
14
14
|
},
|
|
15
|
-
"types": "./dist/types/
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"unpkg": "./dist/io.min.js",
|
|
15
|
+
"types": "./dist/types/client/browser/IOWebSocket.d.ts",
|
|
16
|
+
"jsdelivr": "./dist/browser/iife/io.js",
|
|
17
|
+
"unpkg": "./dist/browser/iife/io.js",
|
|
19
18
|
"scripts": {
|
|
20
19
|
"build": "rollup -c && npm run build:types",
|
|
21
20
|
"build:types": "tsc --project tsconfig.json"
|
|
@@ -26,21 +25,21 @@
|
|
|
26
25
|
},
|
|
27
26
|
"license": "MIT",
|
|
28
27
|
"devDependencies": {
|
|
29
|
-
"@rollup/plugin-commonjs": "^
|
|
28
|
+
"@rollup/plugin-commonjs": "^29.0.3",
|
|
30
29
|
"@rollup/plugin-json": "^6.1.0",
|
|
31
|
-
"@rollup/plugin-node-resolve": "^
|
|
30
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
32
31
|
"@rollup/plugin-replace": "^6.0.1",
|
|
33
32
|
"@rollup/plugin-terser": "^1.0.0",
|
|
34
33
|
"@types/node": "^24.1.0",
|
|
35
|
-
"rollup": "^4.
|
|
34
|
+
"rollup": "^4.62.4",
|
|
36
35
|
"rollup-plugin-dts": "^6.2.1",
|
|
37
|
-
"typescript": "^
|
|
36
|
+
"typescript": "^6.0.3"
|
|
38
37
|
},
|
|
39
38
|
"dependencies": {
|
|
40
|
-
"boho": "^2.1.
|
|
41
|
-
"eventemitter3": "^5.0.
|
|
42
|
-
"meta-buffer-pack": "^2.1.
|
|
43
|
-
"ws": "^8.
|
|
39
|
+
"boho": "^2.1.3",
|
|
40
|
+
"eventemitter3": "^5.0.4",
|
|
41
|
+
"meta-buffer-pack": "^2.1.3",
|
|
42
|
+
"ws": "^8.21.3"
|
|
44
43
|
},
|
|
45
44
|
"optionalDependencies": {
|
|
46
45
|
"bufferutil": "^4.0.9",
|
package/rollup.config.js
CHANGED
|
@@ -9,13 +9,13 @@ export default [
|
|
|
9
9
|
input: './src/client/browser/IOWebSocket.js',
|
|
10
10
|
output: [
|
|
11
11
|
{
|
|
12
|
-
file: './dist/io.js',
|
|
12
|
+
file: './dist/browser/esm/io.js',
|
|
13
13
|
format: 'es',
|
|
14
14
|
sourcemap: true,
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
file: './dist/io.
|
|
18
|
-
format: '
|
|
17
|
+
file: './dist/browser/iife/io.js',
|
|
18
|
+
format: 'iife',
|
|
19
19
|
name: 'IO',
|
|
20
20
|
sourcemap: true,
|
|
21
21
|
}
|
|
@@ -31,7 +31,7 @@ export default [
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
input: './src/client/browser/IOWebSocket.js',
|
|
34
|
-
output: { file: './dist/io.d.ts', format: 'es' },
|
|
34
|
+
output: { file: './dist/browser/esm/io.d.ts', format: 'es' },
|
|
35
35
|
plugins: [dts()]
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -39,11 +39,11 @@ export default [
|
|
|
39
39
|
input: './index.js',
|
|
40
40
|
output: [
|
|
41
41
|
{
|
|
42
|
-
file: './dist/iosignal.js',
|
|
42
|
+
file: './dist/node/iosignal.js',
|
|
43
43
|
format: 'es'
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
file: "./dist/iosignal.cjs",
|
|
46
|
+
file: "./dist/node/iosignal.cjs",
|
|
47
47
|
format: 'cjs'
|
|
48
48
|
}
|
|
49
49
|
],
|
package/tsconfig.json
CHANGED
|
@@ -2,23 +2,24 @@
|
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"declaration": true,
|
|
4
4
|
"emitDeclarationOnly": true,
|
|
5
|
+
"rootDir": "./src",
|
|
5
6
|
"outDir": "./dist/types",
|
|
6
7
|
"allowJs": true,
|
|
7
|
-
"
|
|
8
|
+
"module": "nodenext",
|
|
9
|
+
"moduleResolution": "nodenext",
|
|
8
10
|
"target": "es2020",
|
|
9
11
|
"lib": ["es2020", "dom"],
|
|
10
|
-
"baseUrl": ".",
|
|
11
12
|
"paths": {
|
|
12
|
-
"@src/*": ["src/*"]
|
|
13
|
+
"@src/*": ["./src/*"]
|
|
13
14
|
}
|
|
14
15
|
},
|
|
15
16
|
"include": [
|
|
16
17
|
"src/client/browser/IOWebSocket.js",
|
|
17
18
|
"src/client/IOCore.js",
|
|
18
|
-
"src/common/constants.js"
|
|
19
|
-
"package.json"
|
|
19
|
+
"src/common/constants.js"
|
|
20
20
|
],
|
|
21
21
|
"exclude": [
|
|
22
|
-
"node_modules"
|
|
22
|
+
"node_modules",
|
|
23
|
+
"dist"
|
|
23
24
|
]
|
|
24
25
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Taeo Lee <sixgen@gmail.com>
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/README.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# IOSignal
|
|
3
|
-
|
|
4
|
-
IOSignal은 웹 브라우저, Node.js, 아두이노 간의 실시간 통신을 지원합니다. 또한 안전한 인증 및 암호화된 통신을 제공합니다. 시그널링 프로토콜이 내장되어 있어 프로그래밍 없이 서버를 사용할 수 있습니다.
|
|
5
|
-
|
|
6
|
-
## JS examples
|
|
7
|
-
|
|
8
|
-
JS iosignal-examples 저장소 [[github](https://github.com/remocons/iosignal-examples)]
|
|
9
|
-
|
|
10
|
-
### react-chat
|
|
11
|
-
|
|
12
|
-
- vite react & iosignal server
|
|
13
|
-
- react client app
|
|
14
|
-
|
|
15
|
-
[](https://stackblitz.com/github/remocons/iosignal-examples/tree/main/iosignal_react-chat)
|
|
16
|
-
|
|
17
|
-
### svelte5-chat
|
|
18
|
-
- vite svelte & iosignal server
|
|
19
|
-
- svelte5 client app
|
|
20
|
-
|
|
21
|
-
[](https://stackblitz.com/github/remocons/iosignal-examples/tree/main/iosignal_svelte-chat)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
### vanilla-chat
|
|
25
|
-
- vite & iosignal server
|
|
26
|
-
- vanilla js client app
|
|
27
|
-
|
|
28
|
-
[](https://stackblitz.com/github/remocons/iosignal-examples/tree/main/iosignal_vanilla-chat)
|
|
29
|
-
|
|
30
|
-
## 기능
|
|
31
|
-
|
|
32
|
-
### 내장 메시지 전송 프로토콜
|
|
33
|
-
- 채널 이름을 통한 pub/sub 멀티캐스트.
|
|
34
|
-
- 유니캐스트: CID를 통한 일대일 메시징.
|
|
35
|
-
- `CID`는 통신 ID입니다.
|
|
36
|
-
- CID 구독: CID를 사용하여 하나의 피어 구독.
|
|
37
|
-
- HomeChannel: IP 주소별 그룹화.
|
|
38
|
-
|
|
39
|
-
### 내장 보안
|
|
40
|
-
- 인증
|
|
41
|
-
- 암호화 (대칭키)
|
|
42
|
-
- E2EE (대칭키)
|
|
43
|
-
- `Boho` [ [github](https://github.com/remocons/boho) ]
|
|
44
|
-
|
|
45
|
-
## 연결
|
|
46
|
-
- 웹 브라우저는 WebSocket을 사용합니다.
|
|
47
|
-
- Node.js는 WebSocket 또는 CongSocket을 사용합니다.
|
|
48
|
-
- 아두이노는 CongSocket을 사용합니다.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
## IOSignal 저장소
|
|
52
|
-
|
|
53
|
-
- JS: `iosignal-examples` 저장소 [[github](https://github.com/remocons/iosignal-examples)]
|
|
54
|
-
|
|
55
|
-
- JS: `iosignal` [ [github](https://github.com/remocons/iosignal/tree/main/packages/iosignal) | [npm](https://www.npmjs.com/package/iosignal) ]
|
|
56
|
-
- Node.js 서버 (WebSocket, CongSocket)
|
|
57
|
-
- Node.js 클라이언트 (WebSocket, CongSocket)
|
|
58
|
-
- 웹 브라우저 클라이언트 (WebSocket)
|
|
59
|
-
|
|
60
|
-
- CLI 프로그램
|
|
61
|
-
- `iosignal-cli` [ [github](https://github.com/remocons/iosignal/tree/main/packages/iosignal-cli) | [npm](https://www.npmjs.com/package/iosignal-cli) ]
|
|
62
|
-
- 설치: `npm i -g iosignal-cli` 또는 `sudo npm i -g iosignal-cli`
|
|
63
|
-
- Mac, Linux, Windows 지원.
|
|
64
|
-
- 서버 및 클라이언트
|
|
65
|
-
|
|
66
|
-
- 아두이노 iosignal 라이브러리 및 예시:
|
|
67
|
-
- 아두이노 라이브러리 관리자 사용: `iosignal`
|
|
68
|
-
- 또는 `iosignal-arduino` [ [github](https://github.com/remocons/iosignal-arduino) ]
|
|
69
|
-
- 웹 앱 : http://test.iosignal.net
|
|
70
|
-
|
|
71
|
-
- 아두이노 remocon 라이브러리 및 예시:
|
|
72
|
-
- 아두이노 라이브러리 관리자 사용: `remocon`
|
|
73
|
-
- 또는 `remocon-arduino` [ [github](https://github.com/remocons/remocon-arduino) ]
|
|
74
|
-
- 웹 앱 : https://remocon.kr
|
|
75
|
-
|
|
76
|
-
## 라이선스
|
|
77
|
-
|
|
78
|
-
이 코드는 MIT 라이선스에 따라 배포됩니다.
|
package/dist/io.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e,r={},n={};var i,o,s={};
|
|
2
|
-
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */function f(){return i||(i=1,s.read=function(t,e,r,n,i){var o,s,f=8*i-n-1,u=(1<<f)-1,h=u>>1,a=-7,c=r?i-1:0,l=r?-1:1,p=t[e+c];for(c+=l,o=p&(1<<-a)-1,p>>=-a,a+=f;a>0;o=256*o+t[e+c],c+=l,a-=8);for(s=o&(1<<-a)-1,o>>=-a,a+=n;a>0;s=256*s+t[e+c],c+=l,a-=8);if(0===o)o=1-h;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=h}return(p?-1:1)*s*Math.pow(2,o-n)},s.write=function(t,e,r,n,i,o){var s,f,u,h=8*o-i-1,a=(1<<h)-1,c=a>>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,y=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(f=isNaN(e)?1:0,s=a):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+c>=1?l/u:l*Math.pow(2,1-c))*u>=2&&(s++,u/=2),s+c>=a?(f=0,s=a):s+c>=1?(f=(e*u-1)*Math.pow(2,i),s+=c):(f=e*Math.pow(2,c-1)*Math.pow(2,i),s=0));i>=8;t[r+p]=255&f,p+=y,f/=256,i-=8);for(s=s<<i|f,h+=i;h>0;t[r+p]=255&s,p+=y,s/=256,h-=8);t[r+p-y]|=128*g}),s}
|
|
3
|
-
/*!
|
|
4
|
-
* The buffer module from node.js, for the browser.
|
|
5
|
-
*
|
|
6
|
-
* @author Feross Aboukhadijeh <https://feross.org>
|
|
7
|
-
* @license MIT
|
|
8
|
-
*/var u=(o||(o=1,function(t){const r=function(){if(e)return n;e=1,n.byteLength=function(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},n.toByteArray=function(t){var e,n,o=f(t),s=o[0],u=o[1],h=new i(function(t,e,r){return 3*(e+r)/4-r}(0,s,u)),a=0,c=u>0?s-4:s;for(n=0;n<c;n+=4)e=r[t.charCodeAt(n)]<<18|r[t.charCodeAt(n+1)]<<12|r[t.charCodeAt(n+2)]<<6|r[t.charCodeAt(n+3)],h[a++]=e>>16&255,h[a++]=e>>8&255,h[a++]=255&e;return 2===u&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,h[a++]=255&e),1===u&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,h[a++]=e>>8&255,h[a++]=255&e),h},n.fromByteArray=function(e){for(var r,n=e.length,i=n%3,o=[],s=16383,f=0,u=n-i;f<u;f+=s)o.push(h(e,f,f+s>u?u:f+s));return 1===i?(r=e[n-1],o.push(t[r>>2]+t[r<<4&63]+"==")):2===i&&(r=(e[n-2]<<8)+e[n-1],o.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+"=")),o.join("")};for(var t=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)t[s]=o[s],r[o.charCodeAt(s)]=s;function f(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(e){return t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[63&e]}function h(t,e,r){for(var n,i=[],o=e;o<r;o+=3)n=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(255&t[o+2]),i.push(u(n));return i.join("")}return r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63,n}(),i=f(),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=h,t.SlowBuffer=function(t){return+t!=t&&(t=0),h.alloc(+t)},t.INSPECT_MAX_BYTES=50;const s=2147483647;function u(t){if(t>s)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,h.prototype),e}function h(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return a(t,e,r)}function a(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!h.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|d(t,e);let n=u(r);const i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(W(t,Uint8Array)){const e=new Uint8Array(t);return y(e.buffer,e.byteOffset,e.byteLength)}return p(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(W(t,ArrayBuffer)||t&&W(t.buffer,ArrayBuffer))return y(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(W(t,SharedArrayBuffer)||t&&W(t.buffer,SharedArrayBuffer)))return y(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return h.from(n,e,r);const i=function(t){if(h.isBuffer(t)){const e=0|g(t.length),r=u(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||K(t.length)?u(0):p(t):"Buffer"===t.type&&Array.isArray(t.data)?p(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return h.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function c(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function l(t){return c(t),u(t<0?0:0|g(t))}function p(t){const e=t.length<0?0:0|g(t.length),r=u(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function y(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,h.prototype),n}function g(t){if(t>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function d(t,e){if(h.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||W(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return q(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return J(t).length;default:if(i)return n?-1:q(t).length;e=(""+e).toLowerCase(),i=!0}}function b(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return R(this,e,r);case"utf8":case"utf-8":return T(this,e,r);case"ascii":return U(this,e,r);case"latin1":case"binary":return M(this,e,r);case"base64":return v(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function E(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function B(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),K(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=h.from(e,n)),h.isBuffer(e))return 0===e.length?-1:w(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):w(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function w(t,e,r,n,i){let o,s=1,f=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,f/=2,u/=2,r/=2}function h(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let n=-1;for(o=r;o<f;o++)if(h(t,o)===h(e,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===u)return n*s}else-1!==n&&(o-=o-n),n=-1}else for(r+u>f&&(r=f-u),o=r;o>=0;o--){let r=!0;for(let n=0;n<u;n++)if(h(t,o+n)!==h(e,n)){r=!1;break}if(r)return o}return-1}function m(t,e,r,n){r=Number(r)||0;const i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;const o=e.length;let s;for(n>o/2&&(n=o/2),s=0;s<n;++s){const n=parseInt(e.substr(2*s,2),16);if(K(n))return s;t[r+s]=n}return s}function _(t,e,r,n){return Q(q(e,t.length-r),t,r,n)}function A(t,e,r,n){return Q(function(t){const e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function L(t,e,r,n){return Q(J(e),t,r,n)}function I(t,e,r,n){return Q(function(t,e){let r,n,i;const o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)r=t.charCodeAt(s),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function v(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function T(t,e,r){r=Math.min(t.length,r);const n=[];let i=e;for(;i<r;){const e=t[i];let o=null,s=e>239?4:e>223?3:e>191?2:1;if(i+s<=r){let r,n,f,u;switch(s){case 1:e<128&&(o=e);break;case 2:r=t[i+1],128==(192&r)&&(u=(31&e)<<6|63&r,u>127&&(o=u));break;case 3:r=t[i+1],n=t[i+2],128==(192&r)&&128==(192&n)&&(u=(15&e)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:r=t[i+1],n=t[i+2],f=t[i+3],128==(192&r)&&128==(192&n)&&128==(192&f)&&(u=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&f,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){const e=t.length;if(e<=S)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=S));return r}(n)}t.kMaxLength=s,h.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),h.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}}),h.poolSize=8192,h.from=function(t,e,r){return a(t,e,r)},Object.setPrototypeOf(h.prototype,Uint8Array.prototype),Object.setPrototypeOf(h,Uint8Array),h.alloc=function(t,e,r){return function(t,e,r){return c(t),t<=0?u(t):void 0!==e?"string"==typeof r?u(t).fill(e,r):u(t).fill(e):u(t)}(t,e,r)},h.allocUnsafe=function(t){return l(t)},h.allocUnsafeSlow=function(t){return l(t)},h.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==h.prototype},h.compare=function(t,e){if(W(t,Uint8Array)&&(t=h.from(t,t.offset,t.byteLength)),W(e,Uint8Array)&&(e=h.from(e,e.offset,e.byteLength)),!h.isBuffer(t)||!h.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},h.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},h.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return h.alloc(0);let r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;const n=h.allocUnsafe(e);let i=0;for(r=0;r<t.length;++r){let e=t[r];if(W(e,Uint8Array))i+e.length>n.length?(h.isBuffer(e)||(e=h.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else{if(!h.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(n,i)}i+=e.length}return n},h.byteLength=d,h.prototype._isBuffer=!0,h.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)E(this,e,e+1);return this},h.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)E(this,e,e+3),E(this,e+1,e+2);return this},h.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)E(this,e,e+7),E(this,e+1,e+6),E(this,e+2,e+5),E(this,e+3,e+4);return this},h.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?T(this,0,t):b.apply(this,arguments)},h.prototype.toLocaleString=h.prototype.toString,h.prototype.equals=function(t){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===h.compare(this,t)},h.prototype.inspect=function(){let e="";const r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),"<Buffer "+e+">"},o&&(h.prototype[o]=h.prototype.inspect),h.prototype.compare=function(t,e,r,n,i){if(W(t,Uint8Array)&&(t=h.from(t,t.offset,t.byteLength)),!h.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;let o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0);const f=Math.min(o,s),u=this.slice(n,i),a=t.slice(e,r);for(let t=0;t<f;++t)if(u[t]!==a[t]){o=u[t],s=a[t];break}return o<s?-1:s<o?1:0},h.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},h.prototype.indexOf=function(t,e,r){return B(this,t,e,r,!0)},h.prototype.lastIndexOf=function(t,e,r){return B(this,t,e,r,!1)},h.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return _(this,t,e,r);case"ascii":case"latin1":case"binary":return A(this,t,e,r);case"base64":return L(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const S=4096;function U(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function M(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function R(t,e,r){const n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let i="";for(let n=e;n<r;++n)i+=X[t[n]];return i}function O(t,e,r){const n=t.slice(e,r);let i="";for(let t=0;t<n.length-1;t+=2)i+=String.fromCharCode(n[t]+256*n[t+1]);return i}function C(t,e,r){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function N(t,e,r,n,i,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function k(t,e,r,n,i){H(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,r}function x(t,e,r,n,i){H(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s>>=8,t[r+2]=s,s>>=8,t[r+1]=s,s>>=8,t[r]=s,r+8}function P(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function D(t,e,r,n,o){return e=+e,r>>>=0,o||P(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function z(t,e,r,n,o){return e=+e,r>>>=0,o||P(t,0,r,8),i.write(t,e,r,n,52,8),r+8}h.prototype.slice=function(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);const n=this.subarray(t,e);return Object.setPrototypeOf(n,h.prototype),n},h.prototype.readUintLE=h.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n},h.prototype.readUintBE=h.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},h.prototype.readUint8=h.prototype.readUInt8=function(t,e){return t>>>=0,e||C(t,1,this.length),this[t]},h.prototype.readUint16LE=h.prototype.readUInt16LE=function(t,e){return t>>>=0,e||C(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUint16BE=h.prototype.readUInt16BE=function(t,e){return t>>>=0,e||C(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUint32LE=h.prototype.readUInt32LE=function(t,e){return t>>>=0,e||C(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUint32BE=h.prototype.readUInt32BE=function(t,e){return t>>>=0,e||C(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readBigUInt64LE=Z(function(t){G(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(i)<<BigInt(32))}),h.prototype.readBigUInt64BE=Z(function(t){G(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)}),h.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*e)),n},h.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},h.prototype.readInt8=function(t,e){return t>>>=0,e||C(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,e){t>>>=0,e||C(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt16BE=function(t,e){t>>>=0,e||C(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt32LE=function(t,e){return t>>>=0,e||C(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,e){return t>>>=0,e||C(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readBigInt64LE=Z(function(t){G(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)}),h.prototype.readBigInt64BE=Z(function(t){G(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+r)}),h.prototype.readFloatLE=function(t,e){return t>>>=0,e||C(t,4,this.length),i.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,e){return t>>>=0,e||C(t,4,this.length),i.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,e){return t>>>=0,e||C(t,8,this.length),i.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,e){return t>>>=0,e||C(t,8,this.length),i.read(this,t,!1,52,8)},h.prototype.writeUintLE=h.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||N(this,t,e,r,Math.pow(2,8*r)-1,0);let i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},h.prototype.writeUintBE=h.prototype.writeUIntBE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||N(this,t,e,r,Math.pow(2,8*r)-1,0);let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},h.prototype.writeUint8=h.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,1,255,0),this[e]=255&t,e+1},h.prototype.writeUint16LE=h.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},h.prototype.writeUint16BE=h.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},h.prototype.writeUint32LE=h.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},h.prototype.writeUint32BE=h.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},h.prototype.writeBigUInt64LE=Z(function(t,e=0){return k(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeBigUInt64BE=Z(function(t,e=0){return x(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);N(this,t,e,r,n-1,-n)}let i=0,o=1,s=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+r},h.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);N(this,t,e,r,n-1,-n)}let i=r-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+r},h.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},h.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},h.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},h.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},h.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},h.prototype.writeBigInt64LE=Z(function(t,e=0){return k(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),h.prototype.writeBigInt64BE=Z(function(t,e=0){return x(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),h.prototype.writeFloatLE=function(t,e,r){return D(this,t,e,!0,r)},h.prototype.writeFloatBE=function(t,e,r){return D(this,t,e,!1,r)},h.prototype.writeDoubleLE=function(t,e,r){return z(this,t,e,!0,r)},h.prototype.writeDoubleBE=function(t,e,r){return z(this,t,e,!1,r)},h.prototype.copy=function(t,e,r,n){if(!h.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);const i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},h.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!h.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){const e=t.charCodeAt(0);("utf8"===n&&e<128||"latin1"===n)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;let i;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i<r;++i)this[i]=t;else{const o=h.isBuffer(t)?t:h.from(t,n),s=o.length;if(0===s)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<r-e;++i)this[i+e]=o[i%s]}return this};const $={};function j(t,e,r){$[t]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function F(t){let e="",r=t.length;const n="-"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function H(t,e,r,n,i,o){if(t>r||t<e){const r="bigint"==typeof e?"n":"";let n;throw n=0===e||e===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`,new $.ERR_OUT_OF_RANGE("value",n,t)}!function(t,e,r){G(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||V(e,t.length-(r+1))}(n,i,o)}function G(t,e){if("number"!=typeof t)throw new $.ERR_INVALID_ARG_TYPE(e,"number",t)}function V(t,e,r){if(Math.floor(t)!==t)throw G(t,r),new $.ERR_OUT_OF_RANGE("offset","an integer",t);if(e<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${e}`,t)}j("ERR_BUFFER_OUT_OF_BOUNDS",function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),j("ERR_INVALID_ARG_TYPE",function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`},TypeError),j("ERR_OUT_OF_RANGE",function(t,e,r){let n=`The value of "${t}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=F(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=F(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n},RangeError);const Y=/[^+/0-9A-Za-z-_]/g;function q(t,e){let r;e=e||1/0;const n=t.length;let i=null;const o=[];for(let s=0;s<n;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function J(t){return r.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Q(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function W(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function K(t){return t!=t}const X=function(){const t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function Z(t){return"undefined"==typeof BigInt?tt:t}function tt(){throw new Error("BigInt not supported")}}(r)),r);const h=new TextEncoder,a=new TextDecoder,c=l;function l(t,e=0){let r;if(void 0===t||"string"!=typeof t||"number"!=typeof e)throw TypeError("invlaid init variablie type name. ");return(t=t.toUpperCase()).includes("8")?(r=u.Buffer.alloc(1),t.includes("I")?r.writeInt8(e):r.writeUint8(e)):t.includes("16")?(r=u.Buffer.alloc(2),t.includes("I")?t.includes("L")?r.writeInt16LE(e):r.writeInt16BE(e):t.includes("L")?r.writeUint16LE(e):r.writeUint16BE(e)):t.includes("32")?(r=u.Buffer.alloc(4),t.includes("I")?t.includes("L")?r.writeInt32LE(e):r.writeInt32BE(e):t.includes("L")?r.writeUint32LE(e):r.writeUint32BE(e)):t.includes("F")?(r=u.Buffer.alloc(4),t.includes("L")?r.writeFloatLE(e):r.writeFloatBE(e)):t.includes("N")?r=u.Buffer.from(String(e)):console.log(`invalid type: ${t} or initvalue: ${e}`),r}const p=y;function y(t,e,r){let n,i="B";if("number"==typeof e)"number"==typeof r?(n=u.Buffer.alloc(e),0!==r&&n.fill(r),i="B"):(n=u.Buffer.from(String(e)),i="N");else if("string"==typeof e&&"number"==typeof r)i=e.toUpperCase(),n=l(e,r);else if("string"==typeof e&&void 0===r)n=u.Buffer.from(e),i="S";else if(e instanceof Uint8Array&&void 0===r)n=e instanceof u.Buffer?e:u.Buffer.from(e);else if(e instanceof ArrayBuffer&&void 0===r)n=u.Buffer.from(e);else if(ArrayBuffer.isView(e))n=u.Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if("object"==typeof e&&void 0===r)n=u.Buffer.from(JSON.stringify(e)),i="O";else{if("boolean"!=typeof e||void 0!==r)throw TypeError("invalid meta buffer type");{const t=e?1:0;n=u.Buffer.from([t]),i="!"}}return"string"==typeof t&&t.includes("#")&&(t=""),[t,i,n]}const g=d;function d(...t){let e=0;return t.map(t=>{const r=e++;return"number"==typeof t?p(r,"N",t):p(r,t)})}function b(t){if((t=t.toUpperCase()).includes("8"))return t.includes("I")?"int8":"uint8";if(t.includes("16"))return t.includes("I")?t.includes("L")?"int16_le":"int16_be":t.includes("L")?"uint16_le":"uint16_be";if(t.includes("32"))return t.includes("I")?t.includes("L")?"int32_le":"int32_be":t.includes("L")?"uint32_le":"uint32_be";if(t.includes("F"))return t.includes("L")?"float_le":"float_be";if("B"===t)return"buffer";if("S"===t)return"string";if("N"===t)return"number";if("O"===t)return"object";if("!"===t)return"boolean";throw TypeError("invalid data type")}function E(t,e,r,n){try{const i=b(t);if("int8"==i)return e.readInt8(r);if("uint8"===i)return e.readUint8(r);if("int16_le"===i)return e.readInt16LE(r);if("int16_be"===i)return e.readInt16BE(r);if("uint16_le"===i)return e.readUint16LE(r);if("uint16_be"===i)return e.readUint16BE(r);if("int32_le"===i)return e.readInt32LE(r);if("int32_be"===i)return e.readInt32BE(r);if("uint32_le"===i)return e.readUint32LE(r);if("uint32_be"===i)return e.readUint32BE(r);if("float_le"===i)return e.readFloatLE(r);if("float_be"===i)return e.readFloatBE(r);if("buffer"===i)return e.subarray(r,r+n);if("string"===i){const t=e.subarray(r,r+n);return a.decode(t)}if("number"===i){const t=e.subarray(r,r+n);return Number(a.decode(t))}if("object"===i){const t=e.subarray(r,r+n);return JSON.parse(a.decode(t))}if("boolean"===i){return 1===e.readInt8(r)}return}catch(t){}}function B(...t){const e=function(t){let e=[];return t.filter(t=>{if(!Array.isArray(t[0]))return t;e=e.concat(t)}).concat(e)}(t);let r=0;const n=[];let i,o,s=0;if(e.forEach(t=>{const[e,i,o]=t;r+=o.byteLength,("number"==typeof e||e.length>0)&&n.push([e,i,s,o.byteLength]),s=r}),n.length>0){let t=JSON.stringify(n);i=h.encode(t),o=i.byteLength,r=r+o+2}const f=u.Buffer.alloc(r);if(s=0,e.forEach(t=>{const e=t[2];f.set(e,s),s+=e.byteLength}),n.length>0){f.set(i,s);const t=c("16",o);return f.set(t,s+o),f}return f}const w=m;function m(t,e=!1){if(void 0===t)throw TypeError("Invalid data type: Undefined");if("string"==typeof t)return h.encode(t);if("number"==typeof t)return Uint8Array.from([t]);if(t instanceof ArrayBuffer){if(e)return new Uint8Array(t);{const e=new Uint8Array(t),r=new Uint8Array(t.byteLength);return r.set(e),r}}if(ArrayBuffer.isView(t)){if(e)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);{const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=new Uint8Array(t.byteLength);return r.set(e),r}}return h.encode(JSON.stringify(t))}const _=A;function A(t,e=!1){const r=m(t,e);return e?u.Buffer.from(r.buffer,r.byteOffset,r.byteLength):u.Buffer.from(r)}const L=I;function I(...t){const e=t.map(t=>A(t));return u.Buffer.concat(e)}const v=T;function T(...t){try{let e=0,r=0;const n=t.map(t=>m(t));n.forEach(t=>{e+=t.byteLength});const i=new Uint8Array(e);return n.forEach(t=>{i.set(t,r),r+=t.byteLength}),i}catch(t){console.log(t)}}function S(t){return 0===O(t)?t.byteLength:t.byteLength-O(t)-M}function U(t,e){try{const r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-e-2,i=r.subarray(n,r.byteLength-2),o=a.decode(i),s=JSON.parse(o);if(!Array.isArray(s)||!Array.isArray(s[0]))return;let f=s[0];if(!f)return;if(f.length<3)return;const[u,h,c]=f;if("string"!=typeof h||"number"!=typeof c)return;return s}catch(t){}}const M=2;function R(t){if(t instanceof ArrayBuffer&&(t=u.Buffer.from(t)),t instanceof Uint8Array){if(t.byteLength<=M)return 0;return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(t.byteLength-M)}return 0}function O(t){if(t instanceof ArrayBuffer&&(t=u.Buffer.from(t)),t instanceof Uint8Array){const e=t.byteLength;if(e<=M)return 0;const r=R(t);if(0===r||r>e)return 0;return U(t,r)?r:0}return 0}function C(t){const e=S(t);return t.subarray(0,e)}function N(t,e=!1){t instanceof ArrayBuffer&&(t=u.Buffer.from(t));const r=R(t);if(0===r)return;let n=U(t,r);return n?e?(n.forEach(t=>{null==t[3]&&(t[1].includes("8")?t[3]=1:t[1].includes("16")?t[3]=2:t[1].includes("32")||t[1].includes("F")?t[3]=4:t[1].includes("!")&&(t[3]=1)),t[4]=b(t[1])}),n):n:void 0}var k,x=Object.freeze({__proto__:null,B8:_,B8pack:L,Buffer:u.Buffer,MB:p,MBA:g,NB:c,TAIL_LEN:M,U8:w,U8pack:v,equal:function(t,e){if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},getBuffer:C,getBufferSize:S,getMeta:N,getMetaDetail:function(t){return N(t,!0)},getMetaSize:O,hex:function(t){return Array.prototype.map.call(new Uint8Array(t),t=>("00"+t.toString(16)).slice(-2)).join("")},meta:function(...t){return N(B(...t))},metaBuffer:y,metaBufferArguments:d,metaDetail:function(...t){return N(B(...t),!0)},numberBuffer:l,pack:B,parseBuffer:A,parseBufferThenConcat:I,parseMetaInfo:U,parseTypeName:b,parseUint8Array:m,parseUint8ThenConcat:T,rawPack:function(...t){return C(B(...t))},readTail:R,readTypedBuffer:E,unpack:function(t,e){const r=e||N(t);if(!r)return;const n=u.Buffer.from(t),i={};let o=0;if(r.forEach(t=>{const[e,r,s,f]=t;let u=E(r,n,s,f);null!=u&&(i[e]=u,f&&(o+=f))}),e&&n.byteLength!==o){let t=n.byteLength-o,e=E("b",n,o,t);if(null==e)return;i.$OTHERS=e}let s=0,f=[];for(;i[s];)f.push(i[s++]);return f.length>0&&(i.args=f,i.$=i.args),i}}),P={exports:{}};var D=(k||(k=1,function(t){var e=Object.prototype.hasOwnProperty,r="~";function n(){}function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function o(t,e,n,o,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var f=new i(n,o||t,s),u=r?r+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],f]:t._events[u].push(f):(t._events[u]=f,t._eventsCount++),t}function s(t,e){0===--t._eventsCount?t._events=new n:delete t._events[e]}function f(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),f.prototype.eventNames=function(){var t,n,i=[];if(0===this._eventsCount)return i;for(n in t=this._events)e.call(t,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},f.prototype.listeners=function(t){var e=r?r+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s},f.prototype.listenerCount=function(t){var e=r?r+t:t,n=this._events[e];return n?n.fn?1:n.length:0},f.prototype.emit=function(t,e,n,i,o,s){var f=r?r+t:t;if(!this._events[f])return!1;var u,h,a=this._events[f],c=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),c){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,n),!0;case 4:return a.fn.call(a.context,e,n,i),!0;case 5:return a.fn.call(a.context,e,n,i,o),!0;case 6:return a.fn.call(a.context,e,n,i,o,s),!0}for(h=1,u=new Array(c-1);h<c;h++)u[h-1]=arguments[h];a.fn.apply(a.context,u)}else{var l,p=a.length;for(h=0;h<p;h++)switch(a[h].once&&this.removeListener(t,a[h].fn,void 0,!0),c){case 1:a[h].fn.call(a[h].context);break;case 2:a[h].fn.call(a[h].context,e);break;case 3:a[h].fn.call(a[h].context,e,n);break;case 4:a[h].fn.call(a[h].context,e,n,i);break;default:if(!u)for(l=1,u=new Array(c-1);l<c;l++)u[l-1]=arguments[l];a[h].fn.apply(a[h].context,u)}}return!0},f.prototype.on=function(t,e,r){return o(this,t,e,r,!1)},f.prototype.once=function(t,e,r){return o(this,t,e,r,!0)},f.prototype.removeListener=function(t,e,n,i){var o=r?r+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var f=this._events[o];if(f.fn)f.fn!==e||i&&!f.once||n&&f.context!==n||s(this,o);else{for(var u=0,h=[],a=f.length;u<a;u++)(f[u].fn!==e||i&&!f[u].once||n&&f[u].context!==n)&&h.push(f[u]);h.length?this._events[o]=1===h.length?h[0]:h:s(this,o)}return this},f.prototype.removeAllListeners=function(t){var e;return t?(e=r?r+t:t,this._events[e]&&s(this,e)):(this._events=new n,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=r,f.EventEmitter=f,t.exports=f}(P)),P.exports),z=t(D);const $={CONNECTING:0,OPEN:1,SERVER_READY:10,AUTH_REQ:11,AUTH_RES:12,AUTH_FAIL:13,AUTH_CLEAR:14,CID_REQ:17,CID_RES:18,READY:19,CLOSING:2,CLOSED:3,STOP:4,REDIRECTING:5};for(let t in $)$[$[t]]=t;let j={NO:0,YES:1,AUTO:2};for(let t in j)j[j[t]]=t;const F={TAG_LEN1:255,TAG_LEN2:65535,CONNECTION_CHECKER_PERIOD:3e3,CLIENT_PING_PERIOD:4e4,PROMISE_TIMEOUT:5e3,DID:8,CID:12};let H={EMPTY:0,TEXT:1,BINARY:2,OBJECT:3,MJSON:4,MBA:5};for(let t in H)H[H[t]]=t;let G={SERVER_READY:192,CID_REQ:193,CID_RES:194,QUOTA_LEVEL:195,AUTH_CLEAR:196,SERVER_REDIRECT:197,LOOP:203,ECHO:204,PING:205,PONG:206,CLOSE:207,SIGNAL:208,SIGNAL_REQ:209,SIGNAL_E2E:210,SUBSCRIBE:211,SUBSCRIBE_REQ:212,UNSUBSCRIBE:213,SERVER_SIGNAL:214,IAM:217,IAM_RES:218,SET:219,RESPONSE_MBP:221,CALL:222,FLOW_MODE:240,WAIT:241,RESUME:242,TIME_OUT:253,OVER_SIZE:254,OVER_FLOW:255};for(let t in G)G[G[t]]=t;var V=Object.freeze({__proto__:null,ENC_MODE:j,IOMsg:G,PAYLOAD_TYPE:H,SIZE_LIMIT:F,STATE:$,STATUS:{OK:0,ERROR:255}});let Y={0:{signalSize:1500,publishCounter:10,trafficRate:1e4},1:{signalSize:255,publishCounter:10,trafficRate:1e5},2:{signalSize:65535,publishCounter:10,trafficRate:1048576},3:{signalSize:1048576,publishCounter:10,trafficRate:20971520},10:{signalSize:1500,publishCounter:5,trafficRate:20971520},11:{signalSize:65535,publishCounter:10,trafficRate:20971520},12:{signalSize:1048576,publishCounter:100,trafficRate:20971520},200:{signalSize:20971520,publishCounter:1e4,trafficRate:104857600},255:{signalSize:20971520,publishCounter:1e4,trafficRate:104857600}};const q=new TextEncoder;function J(t,...e){if("string"!=typeof t)throw TypeError("tag should be string.");let r,n=q.encode(t),i=function(t){let e,r;if(0==t.length)e=H.EMPTY,r=null;else if(1==t.length)if("string"==typeof t[0]||"number"==typeof t[0])e=H.TEXT,r=q.encode(t[0]+"."),r[r.byteLength-1]=0;else if(ArrayBuffer.isView(t[0])||t[0]instanceof ArrayBuffer)e=H.BINARY,r=x.B8(t[0]);else{if("object"!=typeof t[0])throw new Error("unknown payload arguments");e=H.OBJECT,r=q.encode(JSON.stringify(t[0]))}else{let n=!1;t.forEach(t=>{(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)&&(n=!0)}),n?e=H.MBA:(e=H.MJSON,r=q.encode(JSON.stringify(t)))}return{type:e,buffer:r}}(e);if(i.type==H.EMPTY)r=x.pack(x.MB("#MsgType","8",G.SIGNAL),x.MB("#tagLen","8",n.byteLength),x.MB("#tag",n),x.MB("#payloadType","8",i.type));else if(i.type==H.MBA){let t=x.pack(x.MBA(...e));r=x.pack(x.MB("#MsgType","8",G.SIGNAL),x.MB("#tagLen","8",n.byteLength),x.MB("#tag",n),x.MB("#payloadType","8",i.type),x.MB("#mbaBuffer",t))}else r=x.pack(x.MB("#MsgType","8",G.SIGNAL),x.MB("#tagLen","8",n.byteLength),x.MB("#tag",n),x.MB("#payloadType","8",i.type),x.MB("#payload",i.buffer));return r}const Q=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function W(t,e,r,n,i){let o,s,f,u,h,a,c,l,p,y,g,d,b;for(;i>=64;){for(o=e[0],s=e[1],f=e[2],u=e[3],h=e[4],a=e[5],c=e[6],l=e[7],y=0;y<16;y++)g=n+4*y,t[y]=(255&r[g])<<24|(255&r[g+1])<<16|(255&r[g+2])<<8|255&r[g+3];for(y=16;y<64;y++)p=t[y-2],d=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=t[y-15],b=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[y]=(d+t[y-7]|0)+(b+t[y-16]|0);for(y=0;y<64;y++)d=(((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(h&a^~h&c)|0)+(l+(Q[y]+t[y]|0)|0)|0,b=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&s^o&f^s&f)|0,l=c,c=a,a=h,h=u+d|0,u=f,f=s,s=o,o=d+b|0;e[0]+=o,e[1]+=s,e[2]+=f,e[3]+=u,e[4]+=h,e[5]+=a,e[6]+=c,e[7]+=l,n+=64,i-=64}return n}const K=function(){function t(){this.digestLength=32,this.blockSize=64,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return t.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},t.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},t.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");let r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(W(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=W(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},t.prototype.finish=function(t){if(!this.finished){const t=this.bytesHashed,r=this.bufferLength,n=t/536870912|0,i=t<<3,o=t%64<56?64:128;this.buffer[r]=128;for(var e=r+1;e<o-8;e++)this.buffer[e]=0;this.buffer[o-8]=n>>>24&255,this.buffer[o-7]=n>>>16&255,this.buffer[o-6]=n>>>8&255,this.buffer[o-5]=n>>>0&255,this.buffer[o-4]=i>>>24&255,this.buffer[o-3]=i>>>16&255,this.buffer[o-2]=i>>>8&255,this.buffer[o-1]=i>>>0&255,W(this.temp,this.state,this.buffer,0,o),this.finished=!0}for(e=0;e<8;e++)t[4*e+0]=this.state[e]>>>24&255,t[4*e+1]=this.state[e]>>>16&255,t[4*e+2]=this.state[e]>>>8&255,t[4*e+3]=this.state[e]>>>0&255;return this},t.prototype.digest=function(){const t=new Uint8Array(this.digestLength);return this.finish(t),t},t.prototype._saveState=function(t){for(let e=0;e<this.state.length;e++)t[e]=this.state[e]},t.prototype._restoreState=function(t,e){for(let e=0;e<this.state.length;e++)this.state[e]=t[e];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},t}(),X=function(){function t(t){this.inner=new K,this.outer=new K,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;const e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new K).update(t).finish(e).clean();else for(var r=0;r<t.length;r++)e[r]=t[r];for(r=0;r<e.length;r++)e[r]^=54;for(this.inner.update(e),r=0;r<e.length;r++)e[r]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),r=0;r<e.length;r++)e[r]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(let t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){const t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function Z(t){const e=(new K).update(t),r=e.digest();return e.clean(),r}var tt,et,rt,nt={},it={},ot={};
|
|
9
|
-
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */function st(){return et||(et=1,ot.read=function(t,e,r,n,i){var o,s,f=8*i-n-1,u=(1<<f)-1,h=u>>1,a=-7,c=r?i-1:0,l=r?-1:1,p=t[e+c];for(c+=l,o=p&(1<<-a)-1,p>>=-a,a+=f;a>0;o=256*o+t[e+c],c+=l,a-=8);for(s=o&(1<<-a)-1,o>>=-a,a+=n;a>0;s=256*s+t[e+c],c+=l,a-=8);if(0===o)o=1-h;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=h}return(p?-1:1)*s*Math.pow(2,o-n)},ot.write=function(t,e,r,n,i,o){var s,f,u,h=8*o-i-1,a=(1<<h)-1,c=a>>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,y=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(f=isNaN(e)?1:0,s=a):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+c>=1?l/u:l*Math.pow(2,1-c))*u>=2&&(s++,u/=2),s+c>=a?(f=0,s=a):s+c>=1?(f=(e*u-1)*Math.pow(2,i),s+=c):(f=e*Math.pow(2,c-1)*Math.pow(2,i),s=0));i>=8;t[r+p]=255&f,p+=y,f/=256,i-=8);for(s=s<<i|f,h+=i;h>0;t[r+p]=255&s,p+=y,s/=256,h-=8);t[r+p-y]|=128*g}),ot}
|
|
10
|
-
/*!
|
|
11
|
-
* The buffer module from node.js, for the browser.
|
|
12
|
-
*
|
|
13
|
-
* @author Feross Aboukhadijeh <https://feross.org>
|
|
14
|
-
* @license MIT
|
|
15
|
-
*/var ft=(rt||(rt=1,function(t){const e=function(){if(tt)return it;tt=1,it.byteLength=function(t){var e=o(t),r=e[0],n=e[1];return 3*(r+n)/4-n},it.toByteArray=function(t){var n,i,s=o(t),f=s[0],u=s[1],h=new r(function(t,e,r){return 3*(e+r)/4-r}(0,f,u)),a=0,c=u>0?f-4:f;for(i=0;i<c;i+=4)n=e[t.charCodeAt(i)]<<18|e[t.charCodeAt(i+1)]<<12|e[t.charCodeAt(i+2)]<<6|e[t.charCodeAt(i+3)],h[a++]=n>>16&255,h[a++]=n>>8&255,h[a++]=255&n;return 2===u&&(n=e[t.charCodeAt(i)]<<2|e[t.charCodeAt(i+1)]>>4,h[a++]=255&n),1===u&&(n=e[t.charCodeAt(i)]<<10|e[t.charCodeAt(i+1)]<<4|e[t.charCodeAt(i+2)]>>2,h[a++]=n>>8&255,h[a++]=255&n),h},it.fromByteArray=function(e){for(var r,n=e.length,i=n%3,o=[],s=16383,u=0,h=n-i;u<h;u+=s)o.push(f(e,u,u+s>h?h:u+s));return 1===i?(r=e[n-1],o.push(t[r>>2]+t[r<<4&63]+"==")):2===i&&(r=(e[n-2]<<8)+e[n-1],o.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+"=")),o.join("")};for(var t=[],e=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0;i<64;++i)t[i]=n[i],e[n.charCodeAt(i)]=i;function o(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function s(e){return t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[63&e]}function f(t,e,r){for(var n,i=[],o=e;o<r;o+=3)n=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(255&t[o+2]),i.push(s(n));return i.join("")}return e["-".charCodeAt(0)]=62,e["_".charCodeAt(0)]=63,it}(),r=st(),n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.SlowBuffer=function(t){return+t!=t&&(t=0),s.alloc(+t)},t.INSPECT_MAX_BYTES=50;const i=2147483647;function o(t){if(t>i)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,s.prototype),e}function s(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return h(t)}return f(t,e,r)}function f(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!s.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|p(t,e);let n=o(r);const i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(q(t,Uint8Array)){const e=new Uint8Array(t);return c(e.buffer,e.byteOffset,e.byteLength)}return a(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(q(t,ArrayBuffer)||t&&q(t.buffer,ArrayBuffer))return c(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(q(t,SharedArrayBuffer)||t&&q(t.buffer,SharedArrayBuffer)))return c(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return s.from(n,e,r);const i=function(t){if(s.isBuffer(t)){const e=0|l(t.length),r=o(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||J(t.length)?o(0):a(t):"Buffer"===t.type&&Array.isArray(t.data)?a(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return s.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function u(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function h(t){return u(t),o(t<0?0:0|l(t))}function a(t){const e=t.length<0?0:0|l(t.length),r=o(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function c(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,s.prototype),n}function l(t){if(t>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|t}function p(t,e){if(s.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||q(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(t).length;default:if(i)return n?-1:G(t).length;e=(""+e).toLowerCase(),i=!0}}function y(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return S(this,e,r);case"utf8":case"utf-8":return L(this,e,r);case"ascii":return v(this,e,r);case"latin1":case"binary":return T(this,e,r);case"base64":return A(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function g(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),J(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=s.from(e,n)),s.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function b(t,e,r,n,i){let o,s=1,f=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,f/=2,u/=2,r/=2}function h(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let n=-1;for(o=r;o<f;o++)if(h(t,o)===h(e,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===u)return n*s}else-1!==n&&(o-=o-n),n=-1}else for(r+u>f&&(r=f-u),o=r;o>=0;o--){let r=!0;for(let n=0;n<u;n++)if(h(t,o+n)!==h(e,n)){r=!1;break}if(r)return o}return-1}function E(t,e,r,n){r=Number(r)||0;const i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;const o=e.length;let s;for(n>o/2&&(n=o/2),s=0;s<n;++s){const n=parseInt(e.substr(2*s,2),16);if(J(n))return s;t[r+s]=n}return s}function B(t,e,r,n){return Y(G(e,t.length-r),t,r,n)}function w(t,e,r,n){return Y(function(t){const e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function m(t,e,r,n){return Y(V(e),t,r,n)}function _(t,e,r,n){return Y(function(t,e){let r,n,i;const o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)r=t.charCodeAt(s),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function A(t,r,n){return 0===r&&n===t.length?e.fromByteArray(t):e.fromByteArray(t.slice(r,n))}function L(t,e,r){r=Math.min(t.length,r);const n=[];let i=e;for(;i<r;){const e=t[i];let o=null,s=e>239?4:e>223?3:e>191?2:1;if(i+s<=r){let r,n,f,u;switch(s){case 1:e<128&&(o=e);break;case 2:r=t[i+1],128==(192&r)&&(u=(31&e)<<6|63&r,u>127&&(o=u));break;case 3:r=t[i+1],n=t[i+2],128==(192&r)&&128==(192&n)&&(u=(15&e)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:r=t[i+1],n=t[i+2],f=t[i+3],128==(192&r)&&128==(192&n)&&128==(192&f)&&(u=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&f,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){const e=t.length;if(e<=I)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=I));return r}(n)}t.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),s.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),s.poolSize=8192,s.from=function(t,e,r){return f(t,e,r)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array),s.alloc=function(t,e,r){return function(t,e,r){return u(t),t<=0?o(t):void 0!==e?"string"==typeof r?o(t).fill(e,r):o(t).fill(e):o(t)}(t,e,r)},s.allocUnsafe=function(t){return h(t)},s.allocUnsafeSlow=function(t){return h(t)},s.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==s.prototype},s.compare=function(t,e){if(q(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),q(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(t)||!s.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return s.alloc(0);let r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;const n=s.allocUnsafe(e);let i=0;for(r=0;r<t.length;++r){let e=t[r];if(q(e,Uint8Array))i+e.length>n.length?(s.isBuffer(e)||(e=s.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else{if(!s.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(n,i)}i+=e.length}return n},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)g(this,e,e+1);return this},s.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)g(this,e,e+3),g(this,e+1,e+2);return this},s.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)g(this,e,e+7),g(this,e+1,e+6),g(this,e+2,e+5),g(this,e+3,e+4);return this},s.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?L(this,0,t):y.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(t){if(!s.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===s.compare(this,t)},s.prototype.inspect=function(){let e="";const r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),"<Buffer "+e+">"},n&&(s.prototype[n]=s.prototype.inspect),s.prototype.compare=function(t,e,r,n,i){if(q(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;let o=(i>>>=0)-(n>>>=0),f=(r>>>=0)-(e>>>=0);const u=Math.min(o,f),h=this.slice(n,i),a=t.slice(e,r);for(let t=0;t<u;++t)if(h[t]!==a[t]){o=h[t],f=a[t];break}return o<f?-1:f<o?1:0},s.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},s.prototype.indexOf=function(t,e,r){return d(this,t,e,r,!0)},s.prototype.lastIndexOf=function(t,e,r){return d(this,t,e,r,!1)},s.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return E(this,t,e,r);case"utf8":case"utf-8":return B(this,t,e,r);case"ascii":case"latin1":case"binary":return w(this,t,e,r);case"base64":return m(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const I=4096;function v(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function T(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function S(t,e,r){const n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let i="";for(let n=e;n<r;++n)i+=Q[t[n]];return i}function U(t,e,r){const n=t.slice(e,r);let i="";for(let t=0;t<n.length-1;t+=2)i+=String.fromCharCode(n[t]+256*n[t+1]);return i}function M(t,e,r){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,r,n,i,o){if(!s.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function O(t,e,r,n,i){$(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,r}function C(t,e,r,n,i){$(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s>>=8,t[r+2]=s,s>>=8,t[r+1]=s,s>>=8,t[r]=s,r+8}function N(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function k(t,e,n,i,o){return e=+e,n>>>=0,o||N(t,0,n,4),r.write(t,e,n,i,23,4),n+4}function x(t,e,n,i,o){return e=+e,n>>>=0,o||N(t,0,n,8),r.write(t,e,n,i,52,8),n+8}s.prototype.slice=function(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);const n=this.subarray(t,e);return Object.setPrototypeOf(n,s.prototype),n},s.prototype.readUintLE=s.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n},s.prototype.readUintBE=s.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},s.prototype.readUint8=s.prototype.readUInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),this[t]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]|this[t+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]<<8|this[t+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},s.prototype.readBigUInt64LE=W(function(t){j(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||F(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(i)<<BigInt(32))}),s.prototype.readBigUInt64BE=W(function(t){j(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||F(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)}),s.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*e)),n},s.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},s.prototype.readInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},s.prototype.readInt16LE=function(t,e){t>>>=0,e||M(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(t,e){t>>>=0,e||M(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},s.prototype.readInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},s.prototype.readBigInt64LE=W(function(t){j(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||F(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)}),s.prototype.readBigInt64BE=W(function(t){j(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||F(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+r)}),s.prototype.readFloatLE=function(t,e){return t>>>=0,e||M(t,4,this.length),r.read(this,t,!0,23,4)},s.prototype.readFloatBE=function(t,e){return t>>>=0,e||M(t,4,this.length),r.read(this,t,!1,23,4)},s.prototype.readDoubleLE=function(t,e){return t>>>=0,e||M(t,8,this.length),r.read(this,t,!0,52,8)},s.prototype.readDoubleBE=function(t,e){return t>>>=0,e||M(t,8,this.length),r.read(this,t,!1,52,8)},s.prototype.writeUintLE=s.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||R(this,t,e,r,Math.pow(2,8*r)-1,0);let i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||R(this,t,e,r,Math.pow(2,8*r)-1,0);let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},s.prototype.writeUint8=s.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,1,255,0),this[e]=255&t,e+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeBigUInt64LE=W(function(t,e=0){return O(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=W(function(t,e=0){return C(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);R(this,t,e,r,n-1,-n)}let i=0,o=1,s=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+r},s.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);R(this,t,e,r,n-1,-n)}let i=r-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+r},s.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},s.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},s.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeBigInt64LE=W(function(t,e=0){return O(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=W(function(t,e=0){return C(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeFloatLE=function(t,e,r){return k(this,t,e,!0,r)},s.prototype.writeFloatBE=function(t,e,r){return k(this,t,e,!1,r)},s.prototype.writeDoubleLE=function(t,e,r){return x(this,t,e,!0,r)},s.prototype.writeDoubleBE=function(t,e,r){return x(this,t,e,!1,r)},s.prototype.copy=function(t,e,r,n){if(!s.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);const i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},s.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){const e=t.charCodeAt(0);("utf8"===n&&e<128||"latin1"===n)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;let i;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i<r;++i)this[i]=t;else{const o=s.isBuffer(t)?t:s.from(t,n),f=o.length;if(0===f)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<r-e;++i)this[i+e]=o[i%f]}return this};const P={};function D(t,e,r){P[t]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function z(t){let e="",r=t.length;const n="-"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function $(t,e,r,n,i,o){if(t>r||t<e){const r="bigint"==typeof e?"n":"";let n;throw n=0===e||e===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`,new P.ERR_OUT_OF_RANGE("value",n,t)}!function(t,e,r){j(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||F(e,t.length-(r+1))}(n,i,o)}function j(t,e){if("number"!=typeof t)throw new P.ERR_INVALID_ARG_TYPE(e,"number",t)}function F(t,e,r){if(Math.floor(t)!==t)throw j(t,r),new P.ERR_OUT_OF_RANGE("offset","an integer",t);if(e<0)throw new P.ERR_BUFFER_OUT_OF_BOUNDS;throw new P.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${e}`,t)}D("ERR_BUFFER_OUT_OF_BOUNDS",function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),D("ERR_INVALID_ARG_TYPE",function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`},TypeError),D("ERR_OUT_OF_RANGE",function(t,e,r){let n=`The value of "${t}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=z(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=z(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n},RangeError);const H=/[^+/0-9A-Za-z-_]/g;function G(t,e){let r;e=e||1/0;const n=t.length;let i=null;const o=[];for(let s=0;s<n;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function V(t){return e.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(H,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Y(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function q(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function J(t){return t!=t}const Q=function(){const t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function W(t){return"undefined"==typeof BigInt?K:t}function K(){throw new Error("BigInt not supported")}}(nt)),nt);const ut=new TextEncoder,ht=new TextDecoder,at=ct;function ct(t,e=0){let r;if(void 0===t||"string"!=typeof t||"number"!=typeof e)throw TypeError("invlaid init variablie type name. ");return(t=t.toUpperCase()).includes("8")?(r=ft.Buffer.alloc(1),t.includes("I")?r.writeInt8(e):r.writeUint8(e)):t.includes("16")?(r=ft.Buffer.alloc(2),t.includes("I")?t.includes("L")?r.writeInt16LE(e):r.writeInt16BE(e):t.includes("L")?r.writeUint16LE(e):r.writeUint16BE(e)):t.includes("32")?(r=ft.Buffer.alloc(4),t.includes("I")?t.includes("L")?r.writeInt32LE(e):r.writeInt32BE(e):t.includes("L")?r.writeUint32LE(e):r.writeUint32BE(e)):t.includes("F")?(r=ft.Buffer.alloc(4),t.includes("L")?r.writeFloatLE(e):r.writeFloatBE(e)):t.includes("N")?r=ft.Buffer.from(String(e)):console.log(`invalid type: ${t} or initvalue: ${e}`),r}const lt=pt;function pt(t,e,r){let n,i="B";if("number"==typeof e)"number"==typeof r?(n=ft.Buffer.alloc(e),0!==r&&n.fill(r),i="B"):(n=ft.Buffer.from(String(e)),i="N");else if("string"==typeof e&&"number"==typeof r)i=e.toUpperCase(),n=ct(e,r);else if("string"==typeof e&&void 0===r)n=ft.Buffer.from(e),i="S";else if(e instanceof Uint8Array&&void 0===r)n=e instanceof ft.Buffer?e:ft.Buffer.from(e);else if(e instanceof ArrayBuffer&&void 0===r)n=ft.Buffer.from(e);else if(ArrayBuffer.isView(e))n=ft.Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if("object"==typeof e&&void 0===r)n=ft.Buffer.from(JSON.stringify(e)),i="O";else{if("boolean"!=typeof e||void 0!==r)throw TypeError("invalid meta buffer type");{const t=e?1:0;n=ft.Buffer.from([t]),i="!"}}return"string"==typeof t&&t.includes("#")&&(t=""),[t,i,n]}const yt=gt;function gt(...t){let e=0;return t.map(t=>{const r=e++;return"number"==typeof t?lt(r,"N",t):lt(r,t)})}function dt(t){if((t=t.toUpperCase()).includes("8"))return t.includes("I")?"int8":"uint8";if(t.includes("16"))return t.includes("I")?t.includes("L")?"int16_le":"int16_be":t.includes("L")?"uint16_le":"uint16_be";if(t.includes("32"))return t.includes("I")?t.includes("L")?"int32_le":"int32_be":t.includes("L")?"uint32_le":"uint32_be";if(t.includes("F"))return t.includes("L")?"float_le":"float_be";if("B"===t)return"buffer";if("S"===t)return"string";if("N"===t)return"number";if("O"===t)return"object";if("!"===t)return"boolean";throw TypeError("invalid data type")}function bt(t,e,r,n){try{const i=dt(t);if("int8"==i)return e.readInt8(r);if("uint8"===i)return e.readUint8(r);if("int16_le"===i)return e.readInt16LE(r);if("int16_be"===i)return e.readInt16BE(r);if("uint16_le"===i)return e.readUint16LE(r);if("uint16_be"===i)return e.readUint16BE(r);if("int32_le"===i)return e.readInt32LE(r);if("int32_be"===i)return e.readInt32BE(r);if("uint32_le"===i)return e.readUint32LE(r);if("uint32_be"===i)return e.readUint32BE(r);if("float_le"===i)return e.readFloatLE(r);if("float_be"===i)return e.readFloatBE(r);if("buffer"===i)return e.subarray(r,r+n);if("string"===i){const t=e.subarray(r,r+n);return ht.decode(t)}if("number"===i){const t=e.subarray(r,r+n);return Number(ht.decode(t))}if("object"===i){const t=e.subarray(r,r+n);return JSON.parse(ht.decode(t))}return"boolean"===i?1===e.readInt8(r):void 0}catch(t){}}function Et(...t){const e=function(t){let e=[];return t.filter(t=>{if(!Array.isArray(t[0]))return t;e=e.concat(t)}).concat(e)}(t);let r=0;const n=[];let i,o,s=0;if(e.forEach(t=>{const[e,i,o]=t;r+=o.byteLength,("number"==typeof e||e.length>0)&&n.push([e,i,s,o.byteLength]),s=r}),n.length>0){let t=JSON.stringify(n);i=ut.encode(t),o=i.byteLength,r=r+o+2}const f=ft.Buffer.alloc(r);if(s=0,e.forEach(t=>{const e=t[2];f.set(e,s),s+=e.byteLength}),n.length>0){f.set(i,s);const t=at("16",o);return f.set(t,s+o),f}return f}const Bt=wt;function wt(t,e=!1){if(void 0===t)throw TypeError("Invalid data type: Undefined");if("string"==typeof t)return ut.encode(t);if("number"==typeof t)return Uint8Array.from([t]);if(t instanceof ArrayBuffer){if(e)return new Uint8Array(t);{const e=new Uint8Array(t),r=new Uint8Array(t.byteLength);return r.set(e),r}}if(ArrayBuffer.isView(t)){if(e)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);{const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=new Uint8Array(t.byteLength);return r.set(e),r}}return ut.encode(JSON.stringify(t))}const mt=_t;function _t(t,e=!1){const r=wt(t,e);return e?ft.Buffer.from(r.buffer,r.byteOffset,r.byteLength):ft.Buffer.from(r)}const At=Lt;function Lt(...t){const e=t.map(t=>_t(t));return ft.Buffer.concat(e)}const It=vt;function vt(...t){try{let e=0,r=0;const n=t.map(t=>wt(t));n.forEach(t=>{e+=t.byteLength});const i=new Uint8Array(e);return n.forEach(t=>{i.set(t,r),r+=t.byteLength}),i}catch(t){console.log(t)}}function Tt(t){return 0===Rt(t)?t.byteLength:t.byteLength-Rt(t)-Ut}function St(t,e){try{const r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-e-2,i=r.subarray(n,r.byteLength-2),o=ht.decode(i),s=JSON.parse(o);if(!Array.isArray(s)||!Array.isArray(s[0]))return;let f=s[0];if(!f)return;if(f.length<3)return;const[u,h,a]=f;if("string"!=typeof h||"number"!=typeof a)return;return s}catch(t){}}const Ut=2;function Mt(t){return t instanceof ArrayBuffer&&(t=ft.Buffer.from(t)),t instanceof Uint8Array?t.byteLength<=Ut?0:new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(t.byteLength-Ut):0}function Rt(t){if(t instanceof ArrayBuffer&&(t=ft.Buffer.from(t)),t instanceof Uint8Array){const e=t.byteLength;if(e<=Ut)return 0;const r=Mt(t);return 0===r||r>e?0:St(t,r)?r:0}return 0}function Ot(t){const e=Tt(t);return t.subarray(0,e)}function Ct(t,e=!1){t instanceof ArrayBuffer&&(t=ft.Buffer.from(t));const r=Mt(t);if(0===r)return;let n=St(t,r);return n?e?(n.forEach(t=>{null==t[3]&&(t[1].includes("8")?t[3]=1:t[1].includes("16")?t[3]=2:t[1].includes("32")||t[1].includes("F")?t[3]=4:t[1].includes("!")&&(t[3]=1)),t[4]=dt(t[1])}),n):n:void 0}var Nt=Object.freeze({__proto__:null,B8:mt,B8pack:At,Buffer:ft.Buffer,MB:lt,MBA:yt,NB:at,TAIL_LEN:Ut,U8:Bt,U8pack:It,equal:function(t,e){if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},getBuffer:Ot,getBufferSize:Tt,getMeta:Ct,getMetaDetail:function(t){return Ct(t,!0)},getMetaSize:Rt,hex:function(t){return Array.prototype.map.call(new Uint8Array(t),t=>("00"+t.toString(16)).slice(-2)).join("")},meta:function(...t){return Ct(Et(...t))},metaBuffer:pt,metaBufferArguments:gt,metaDetail:function(...t){return Ct(Et(...t),!0)},numberBuffer:ct,pack:Et,parseBuffer:_t,parseBufferThenConcat:Lt,parseMetaInfo:St,parseTypeName:dt,parseUint8Array:wt,parseUint8ThenConcat:vt,rawPack:function(...t){return Ot(Et(...t))},readTail:Mt,readTypedBuffer:bt,unpack:function(t,e){const r=e||Ct(t);if(!r)return;const n=ft.Buffer.from(t),i={};let o=0;if(r.forEach(t=>{const[e,r,s,f]=t;let u=bt(r,n,s,f);null!=u&&(i[e]=u,f&&(o+=f))}),e&&n.byteLength!==o){let t=n.byteLength-o,e=bt("b",n,o,t);if(null==e)return;i.$OTHERS=e}let s=0,f=[];for(;i[s];)f.push(i[s++]);return f.length>0&&(i.args=f,i.$=i.args),i}});const kt={hash:function(t){return Z(Nt.U8(t))},hex:function(t){return Nt.B8(Z(Nt.U8(t))).toString("hex")},base64:function(t){return Nt.B8(Z(Nt.U8(t))).toString("base64")},hmac:function(t,e){return function(t,e){const r=new X(t).update(e),n=r.digest();return r.clean(),n}(Nt.U8(t),Nt.U8(e))}};let xt={SERVER_TIME_NONCE:176,AUTH_REQ:177,AUTH_RES:178,AUTH_FAIL:179,ENC_PACK:182,ENC_E2E:183,ENC_488:184};for(let t in xt)xt[xt[t]]=t;const Pt={SERVER_TIME_NONCE:Nt.meta(Nt.MB("header","8",0),Nt.MB("unixTime","32L",0),Nt.MB("milTime","16L",0),Nt.MB("counter","16L",0),Nt.MB("nonce",ft.Buffer.alloc(4))),AUTH_REQ:Nt.meta(Nt.MB("header","8",0),Nt.MB("id8",ft.Buffer.alloc(8)),Nt.MB("nonce",ft.Buffer.alloc(4)),Nt.MB("hmac32",ft.Buffer.alloc(32))),AUTH_RES:Nt.meta(Nt.MB("header","8",0),Nt.MB("hmac32",ft.Buffer.alloc(32))),ENC_PACK:Nt.meta(Nt.MB("type","8",0),Nt.MB("len","32L",0),Nt.MB("salt12",ft.Buffer.alloc(12)),Nt.MB("hmac",8,0)),ENC_488:Nt.meta(Nt.MB("type","8",0),Nt.MB("len","32L",0),Nt.MB("otpSrc8",ft.Buffer.alloc(8)),Nt.MB("hmac8",ft.Buffer.alloc(8)))};function Dt(t){let e=t[t.length-1];return e[2]+e[3]}const zt={SERVER_TIME_NONCE:Dt(Pt.SERVER_TIME_NONCE),AUTH_REQ:Dt(Pt.AUTH_REQ),AUTH_RES:Dt(Pt.AUTH_RES),ENC_PACK:Dt(Pt.ENC_PACK),ENC_488:Dt(Pt.ENC_488)};function $t(t){return globalThis.crypto.getRandomValues(ft.Buffer.alloc(t))}class jt{constructor(){this._id8=ft.Buffer.alloc(8),this._otpSrc44=ft.Buffer.alloc(44),this._otp36=ft.Buffer.alloc(36),this._hmac=ft.Buffer.alloc(32),this.auth_salt12=ft.Buffer.alloc(12),this.localNonce=ft.Buffer.alloc(4),this.remoteNonce=ft.Buffer.alloc(4),this.isAuthorized=!1,this.counter=0}clearAuth(){this._id8.fill(0),this._otpSrc44.fill(0),this._otp36.fill(0),this._hmac.fill(0),this.auth_salt12.fill(0),this.localNonce.fill(0),this.remoteNonce.fill(0),this.isAuthorized=!1,this.counter=0}set_hash_id8(t){Nt.B8(kt.hash(t)).copy(this._id8,0,0,8)}set_id8(t){let e=Nt.B8(t);this._id8.fill(0),e.copy(this._id8,0,0,8)}set_key(t){Nt.B8(kt.hash(t)).copy(this._otpSrc44,0,0,32)}set_id_key(t){let e=t.indexOf(".");if(-1==e)return;let r=t.substring(0,e),n=t.substring(e+1);this.set_id8(r),this.set_key(n)}copy_id8(t){t.copy(this._id8,0,0,8)}copy_key(t){t.copy(this._otpSrc44,0,0,32)}sha256_n(t,e){let r=kt.hash(t);for(let t=0;t<e;t++)r=kt.hash(r);return r}set_clock_rand(){const t=Date.now(),e=parseInt(t/1e3),r=t%1e3;++this.counter>65535&&(this.counter=0),ft.Buffer.concat([Nt.NB("32L",e),Nt.NB("16L",r),Nt.NB("16L",this.counter),$t(4)]).copy(this._otpSrc44,32)}set_clock_nonce(t){const e=Date.now(),r=parseInt(e/1e3),n=e%1e3;++this.counter>65535&&(this.counter=0),ft.Buffer.concat([Nt.NB("32L",r),Nt.NB("16L",n),Nt.NB("16L",this.counter),t]).copy(this._otpSrc44,32)}set_salt12(t,e){if(12!=t.byteLength)throw TypeError("set_salt12: Invalid salt12 byteLength.");t.copy(this._otpSrc44,32)}resetOTP(){Nt.B8(kt.hash(this._otpSrc44)).copy(this._otp36,0,0,32)}getIndexOTP(t){return this._otp36.writeUInt32LE(t,32),kt.hash(this._otp36)}generateHMAC(t){let e=ft.Buffer.concat([this._otpSrc44,t]);this._hmac=Nt.B8(kt.hash(e))}getHMAC8(t){let e=ft.Buffer.concat([this._otpSrc44,t]);return this._hmac=Nt.B8(kt.hash(e)),this._hmac.subarray(0,8)}xotp(t,e=0,r=!1){let n=(t=Nt.B8(t,r)).byteLength,i=e,o=0,s=0;for(;n>0;){s=n<32?n:32;let e=this.getIndexOTP(++i);for(let r=0;r<s;r++)t[o++]^=e[r];n-=32}return t}server_time_nonce(){const t=Date.now(),e=Math.floor(t/1e3),r=t%1e3;return this.localNonce=$t(4),this.auth_salt12=ft.Buffer.concat([Nt.NB("32L",e),Nt.NB("16L",r),$t(2),this.localNonce]),ft.Buffer.concat([Nt.NB("8",xt.SERVER_TIME_NONCE),this.auth_salt12])}auth_req(t){let e=Nt.unpack(t,Pt.SERVER_TIME_NONCE);if(e){let t=ft.Buffer.concat([Nt.NB("32L",e.unixTime),Nt.NB("16L",e.milTime),Nt.NB("16L",e.counter),e.nonce]);return this.set_salt12(t,"auth_req"),this.localNonce=$t(4),this.generateHMAC(this.localNonce),this.remoteNonce=e.nonce,Nt.pack(Nt.MB("#header","8",xt.AUTH_REQ),Nt.MB("#id8",this._id8),Nt.MB("#nonce",this.localNonce),Nt.MB("#hmac32",this._hmac))}return!1}verify_auth_req(t){let e;if(t instanceof Uint8Array){if(e=Nt.unpack(t,Pt.AUTH_REQ),!e)return}else e=t;this.set_salt12(this.auth_salt12,"verify_auth_req 1/2"),this.generateHMAC(e.nonce);let r=this._hmac;if(Nt.equal(e.hmac32,r)){this.remoteNonce=e.nonce;let t=ft.Buffer.concat([this.localNonce,this.remoteNonce,this.localNonce]);this.set_salt12(t,"verify_auth_req 2/2"),this.generateHMAC(e.nonce);let r=this._hmac,n=Nt.rawPack(Nt.MB("header","8",xt.AUTH_RES),Nt.MB("hmac32",r));return this.isAuthorized=!0,n}return!1}verify_auth_res(t){let e=Nt.unpack(t,Pt.AUTH_RES);if(e){let t=ft.Buffer.concat([this.remoteNonce,this.localNonce,this.remoteNonce]);this.set_salt12(t,"verify_auth_res"),this.generateHMAC(this.localNonce);let r=this._hmac;if(Nt.equal(r,e.hmac32))return this.isAuthorized=!0,!0}}encrypt_488(t){if(!this.isAuthorized)return;t=Nt.B8(t),this.set_clock_nonce(this.remoteNonce),this.resetOTP();let e=this.getHMAC8(t),r=this.xotp(t);return Nt.pack(Nt.MB("#type","8",xt.ENC_488),Nt.MB("#len","32L",t.byteLength),Nt.MB("#otpSrc8",this._otpSrc44.subarray(32,40)),Nt.MB("#hmac8",e),Nt.MB("#xdata",r))}decrypt_488(t){t=Nt.B8(t);let e=Nt.unpack(t,Pt.ENC_488);if(e){let t=ft.Buffer.concat([e.otpSrc8,this.localNonce]);this.set_salt12(t,"decrypt_488"),this.resetOTP();let r=e.$OTHERS.subarray(0,e.len),n=this.xotp(r),i=this.getHMAC8(n);if(Nt.equal(i,e.hmac8))return n}}encryptPack(t){t=Nt.B8(t),this.set_clock_rand(),this.resetOTP();let e=this.getHMAC8(t),r=this.xotp(t);return Nt.pack(Nt.MB("#type","8",xt.ENC_PACK),Nt.MB("#len","32L",t.byteLength),Nt.MB("#salt12",this._otpSrc44.subarray(32)),Nt.MB("#hmac8",e),Nt.MB("#xdata",r))}decryptPack(t){if(t[0]===xt.ENC_PACK&&t.readUint32LE(1)==t.byteLength-zt.ENC_PACK)try{let e=Nt.unpack(t,Pt.ENC_PACK);if(!e)return;this.set_salt12(e.salt12,"decryptPack"),this.resetOTP();let r=e.$OTHERS,n=this.xotp(r),i=this.getHMAC8(n);if(Nt.equal(e.hmac,i))return e.data=n,e}catch(t){}}encrypt_e2e(t,e){let r=ft.Buffer.alloc(32);r.set(this._otpSrc44.subarray(0,32)),this.set_key(e);let n=this.encryptPack(t);return this._otpSrc44.set(r),n}decrypt_e2e(t,e){let r=ft.Buffer.alloc(32);r.set(this._otpSrc44.subarray(0,32)),this.set_key(e);let n=this.decryptPack(t);return this._otpSrc44.set(r),n}}jt.RAND=$t,jt.BohoMsg=xt,jt.Meta=Pt,jt.MetaSize=zt,jt.sha256=kt,jt.MBP=Nt,jt.Buffer=ft.Buffer;const Ft=x.Buffer,Ht=new TextEncoder,Gt=new TextDecoder;class Vt extends z{constructor(t){super(),this.cid="",this.ip="",this.socket=null,this.url=t,this.state=$.CLOSED,this.stateName=this.getStateName(),this.txCounter=0,this.rxCounter=0,this.txBytes=0,this.rxBytes=0,this.lastTxRxTime=Date.now(),this.connectionCheckerPeriod=F.CONNECTION_CHECKER_PERIOD,this.connectionCheckerIntervalID=null,this.boho=new jt,this.serverTimeNonce=Ft.alloc(jt.MetaSize.SERVER_TIME_NONCE),this.TLS=!1,this.encMode=j.AUTO,this.useAuth=!1,this.nick="",this.channels=new Set,this.promiseMap=new Map,this.promiseTimeOut=F.PROMISE_TIMEOUT,this.mid=0,this.level=3,this.quota=Y[this.level],this.serverSet={},this.linkMap=new Map,this.autoReconnect=!0,this._closed=!1,this.on("open",this.onOpen.bind(this)),this.on("close",this.onClose.bind(this)),this.on("socket_data",this.onData.bind(this))}close(){if(!this._closed){if(this._closed=!0,!1===this.autoReconnect&&(clearInterval(this.connectionCheckerIntervalID),this.connectionCheckerIntervalID=null),this.socket){if(0===this.socket.readyState){const t=this.socket;t.onopen=()=>{t&&t.close()},t.onmessage=null,t.onerror=null,t.onclose=null}else try{this.socket.close?.()}catch{}this.socket=null}this.promiseMap.clear(),this.emit("closed"),this.stateChange("closed")}}stop(){this.autoReconnect=!1,this.close(),this.cid="",this.stateChange("stop","stop")}destroy(){this.stop(),this.removeAllListeners(),this.channels.clear(),this.linkMap.clear(),this.boho=null}keepAlive(){this.keepConnection(),Date.now()-this.lastTxRxTime>F.CLIENT_PING_PERIOD&&this.ping()}redirect(t){this.stateChange("redirecting","redirecting"),this.close(),this.createConnection(t)}open(t){this.socket&&this.close(),t&&(this.url=t),this.url?(this.createConnection(this.url),this.connectionCheckerIntervalID||(this.connectionCheckerIntervalID=setInterval(this.keepAlive.bind(this),this.connectionCheckerPeriod))):this.emit("error",new Error("URL is not set."))}onOpen(){this._closed=!1,this.url.includes("wss://")?this.TLS=!0:this.TLS=!1,this.stateChange("open")}onClose(){this.boho.isAuthorized=!1,this.cid="",this.stateChange("closed")}login(t,e){if(this.serverTimeNonce){console.log("iosignal.login serverTimeNonce",this.serverTimeNonce),this.auth(t,e),this.useAuth=!0;let r=this.boho.auth_req(this.serverTimeNonce);this.send(r)}return this}auth(t,e){return t||e||this.emit("error",new Error("auth failed. no id and key.")),!e&&t.includes(".")?this.boho.set_id_key(t):t&&e?(this.boho.set_id8(t),this.boho.set_key(e)):this.emit("error",new Error("auth failed. no id or key.")),this.useAuth=!0,this}onData(t){let e,r=t[0];if(r===jt.BohoMsg.ENC_488)e=this.boho.decrypt_488(t),e&&(r=e[0],t=e);else if(r===jt.BohoMsg.ENC_E2E)try{if(e=this.boho.decrypt_488(t),!e)return;r=e[0],t.set(e,jt.MetaSize.ENC_488),t=t.subarray(jt.MetaSize.ENC_488)}catch(t){return}let n=G[r];switch(n||(n=jt.BohoMsg[r]),r){case G.OVER_SIZE:console.log("## server sent: over_size event."),this.emit("over_size","over_size");break;case G.PING:this.pong();break;case G.PONG:break;case G.ECHO:try{let e=Gt.decode(t.subarray(1));this.emit("echo",e)}catch(t){this.emit("error",new Error("ECHO data error"))}break;case G.IAM_RES:try{let e=Gt.decode(t.subarray(1)),r=JSON.parse(e);r.ip&&(this.ip=r.ip),r.nick&&(this.nick=r.nick),r.did&&(this.did=r.did),r.uid&&(this.uid=r.uid),this.emit("iam_res",e)}catch(t){this.emit("error",new Error("IAM_RES data error"))}break;case G.CID_RES:let r=Gt.decode(t.subarray(1));this.cid=r,this.stateChange("ready","cid_ready"),this.subscribe_channels();break;case G.QUOTA_LEVEL:let n=t[1];this.level=n,this.quota=Y[n];break;case G.AUTH_CLEAR:this.useAuth=!1,this.boho.clearAuth(),this.stateChange("auth_clear","server request auth_clear."),this.stop();break;case G.SERVER_REDIRECT:let i,o,s;7==t.byteLength?(i=function(t){if(6!=t.byteLength)return;return t[0].toString()+"."+t[1].toString()+"."+t[2].toString()+"."+t[3].toString()+":"+((t[4]<<8)+t[5]).toString()}(t.subarray(1)),s="cong://"):(i=Gt.decode(t.subarray(1)),s=""),o=s+i,this.redirect(o);break;case jt.BohoMsg.SERVER_TIME_NONCE:this.stateChange("server_ready","server_ready"),this.useAuth?(this.send(this.boho.auth_req(t)),this.stateChange("auth_req","auth_req")):(t.copy(this.serverTimeNonce),this.send(Ft.from([G.CID_REQ])));break;case G.SERVER_SIGNAL:try{let e=Gt.decode(t.subarray(1)),r=JSON.parse(e);r.event&&r.data&&(this.serverSet=r.data,this.emit(r.event,r.data))}catch(t){this.emit("error",new Error("SERVER_SIGNAL parsing error"))}break;case G.SET:try{let e=x.unpack(t);e&&this.emit(e.topic,...e.args)}catch(t){this.emit("error",new Error("SET parsing error"))}break;case G.SIGNAL_E2E:case G.SIGNAL:try{let e=t.readUint8(1),r=t.subarray(2,2+e),n=Gt.decode(r),i=t.readUint8(2+e),o=t.subarray(3+e);switch(i){case H.EMPTY:0===n.indexOf("@")?this.emit("@",n,null):(this.emit(n,n,null),this.emit("message",n,null));break;case H.TEXT:let t=o;0===o[o.byteLength-1]&&(t=o.subarray(0,o.byteLength-1));let e=Gt.decode(t);0===n.indexOf("@")?this.emit("@",n,e):(this.emit(n,n,e),this.emit("message",n,e));break;case H.BINARY:0===n.indexOf("@")?this.emit("@",n,o):(this.emit(n,n,o),this.emit("message",n,o));break;case H.OBJECT:let r=Gt.decode(o),i=JSON.parse(r);0===n.indexOf("@")?this.emit("@",n,i):(this.emit(n,n,i),this.emit("message",n,i));break;case H.MJSON:let s=Gt.decode(o),f=JSON.parse(s);0===n.indexOf("@")?this.emit("@",n,...f):(this.emit(n,n,...f),this.emit("message",n,...f));break;case H.MBA:let u=x.unpack(o);0===n.indexOf("@")?this.emit("@",n,...u.args):(this.emit(n,n,...u.args),this.emit("message",n,...u.args))}}catch(t){console.log("IOCore IOMsg.SIGNAL parser err",t)}break;case G.RESPONSE_MBP:this.testPromise(t);break;case jt.BohoMsg.AUTH_FAIL:this.stateChange("auth_fail","auth_fail from server.");break;case jt.BohoMsg.AUTH_RES:this.boho.verify_auth_res(t)?(this.stateChange("auth_res","server sent auth_res"),this.send(Ft.from([G.CID_REQ]))):this.stateChange("auth_fail","verify_auth_res() invalid server_hmac");break;default:try{e=Gt.decode(t),this.emit("text_message",e)}catch(t){}}}iam(t){t?this.send_enc_mode(x.pack(x.MB("#MsgType","8",G.IAM),x.MB("#",t))):this.send_enc_mode(x.pack(x.MB("#MsgType","8",G.IAM)))}ping(){this.send(Ft.from([G.PING]))}pong(){this.send(Ft.from([G.PONG]))}echo(t){t?this.send_enc_mode(x.pack(x.MB("#MsgType","8",G.ECHO),x.MB("#msg",t))):this.send(Ft.from([G.ECHO]))}bin(...t){this.send(x.U8pack(...t))}send(t){if(t.byteLength>this.quota.signalSize)return this.emit("over_size"),console.log("## QUOTA LIMIT OVER!! \nsignal message.byteLength: ",t.byteLength),void console.log("## your maximum signalSize(bytes) is:",this.quota.signalSize);this.socket_send(t)}getEncryptionMode(){return!(this.encMode!==j.YES&&(this.encMode!==j.AUTO||this.TLS||!this.boho.isAuthorized))}send_enc_mode(t,e){if(void 0===e&&(e=this.getEncryptionMode()),t[0]==G.SIGNAL_E2E&&e){let e=t[1],r=this.boho.encrypt_488(t.subarray(0,3+e));r[0]=jt.BohoMsg.ENC_E2E,this.send(Ft.concat([r,t.subarray(3+e)]))}else if(e){let e=this.boho.encrypt_488(t);this.send(e)}else this.send(t)}setMsgPromise(t){return new Promise((e,r)=>{const n=setTimeout(e=>{this.promiseMap.has(t)&&(r("timeout"),this.promiseMap.delete(t))},this.promiseTimeOut);this.promiseMap.set(t,[e,r,n])})}testPromise(t){let e=x.unpack(t);if(e)if(this.promiseMap.has(e.mid)){let[t,r,n]=this.promiseMap.get(e.mid);clearTimeout(n),this.promiseMap.delete(e.mid),e.status<128?(e.ok=!0,t(e)):(e.ok=!1,r(e))}else console.log("no promise id")}publish(t,...e){this.signal(t,...e)}signal(t,...e){if("string"!=typeof t)throw TypeError("tag should be string.");let r=J(t,...e);this.send_enc_mode(r)}decrypt_e2e(t,e){return this.boho.decrypt_e2e(t,e)}signal_e2e(t,e,r){if(!this.boho.isAuthorized)return;if("string"!=typeof t)throw TypeError("tag should be string.");let n=Ht.encode(t),i=x.B8(e),o=this.boho.encrypt_e2e(i,r),s=x.pack(x.MB("#MsgType","8",G.SIGNAL_E2E),x.MB("#tagLen","8",n.byteLength),x.MB("#tag",n),x.MB("#payloadType","8",H.BINARY),x.MB("#payload",o));this.send_enc_mode(s)}set(t,...e){return t&&0!=e.length?this.call("store","set",t,...e):Promise.reject(new Error("set need storeName and value)"))}async get(t){if(!t)return Promise.reject(new Error("store get need storeName)"));let e=await this.call("store","get",t),{$:r}=x.unpack(e.body);return r}call(t,e,...r){if(!t||!e)return Promise.reject(new Error("request need target and topic)"));let n;return n=r.length>0?x.pack(x.MB("#MsgType","8",G.CALL),x.MB("mid","16",++this.mid),x.MB("target",t),x.MB("topic",e),x.MBA(...r)):x.pack(x.MB("#MsgType","8",G.CALL),x.MB("mid","16",++this.mid),x.MB("target",t),x.MB("topic",e)),this.send_enc_mode(n),this.setMsgPromise(this.mid)}subscribe(t){if("string"!=typeof t)throw TypeError("tag should be string.");if(t.length>F.TAG_LEN1)throw TypeError("please check tag string length limit:"+F.TAG_LEN1);try{let e=Ht.encode(t);this.send_enc_mode(Ft.concat([x.NB("8",G.SUBSCRIBE),x.NB("8",e.byteLength),e]))}catch(t){}}subscribe_channels(){if(this.state!==$.READY)return;if(0==this.channels.size)return;let t=Array.from(this.channels).join(",");try{let e=Ht.encode(t);this.send_enc_mode(Ft.concat([x.NB("8",G.SUBSCRIBE),x.NB("8",e.byteLength),e]))}catch(t){}}unsubscribe(t=""){if("string"!=typeof t)throw TypeError("tag should be string.");if(""==t)this.channels.clear();else{t.split(",").forEach(t=>{this.channels.delete(t)})}let e=Ht.encode(t);if(e.byteLength>F.TAG_LEN1)throw TypeError("please use tag string bytelength below:"+F.TAG_LEN1);this.send_enc_mode(Ft.concat([x.NB("8",G.UNSUBSCRIBE),x.NB("8",e.byteLength),e]))}listen(t,e){if("string"!=typeof t)throw TypeError("tag should be string.");if(t.length>255||0==t.length)throw TypeError("tag string length range: 1~255");if("function"!=typeof e)throw TypeError("handler is not a function.");0!==t.indexOf("@")&&this.channels.add(t),this.on(t,e)}link(t,e,r){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if("string"!=typeof e)throw TypeError("tag is not a string.");if(e.length>255||0==e.length)throw TypeError("tag string length range: 1~255");if("function"!=typeof r)throw TypeError("handler is not a function.");let n;0!==e.indexOf("@")&&this.channels.add(e),n=this.linkMap.has(t)?this.linkMap.get(t):new Set,n.add(e),this.linkMap.set(t,n),this.on(e,r),this.subscribe(e)}unlink(t,e){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if("string"!=typeof e)throw TypeError("tag is not a string.");if(e.length>255||0==e.length)throw TypeError("tag string length range: 1~255");const r=this.linkMap.get(t);r&&r.has(e)&&(this.unsubscribe(e),this.removeAllListeners(e),r.delete(e),0===r.size&&this.linkMap.delete(t))}unlinkAll(t){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");const e=this.linkMap.get(t);if(e){for(const t of e)this.unsubscribe(t),this.removeAllListeners(t);this.linkMap.delete(t)}}getMetric(){return{tx:this.txCounter,rx:this.rxCounter,txb:this.txBytes,rxb:this.rxBytes,last:(Date.now()-this.lastTxRxTime)/1e3}}getState(){return this.state}getStateName(){return $[this.state].toLowerCase()}getSecurity(){return{useAuth:this.useAuth,isTLS:this.TLS,isAuthorized:this.boho.isAuthorized,encMode:this.encMode,usingEncryption:this.getEncryptionMode()}}stateChange(t,e){let r=t.toLowerCase();this.state=$[t.toUpperCase()],e&&this.emit(r,e),this.stateName!==r&&(this.stateName=r,this.emit("change",r))}}const Yt=jt.Buffer;class qt extends Vt{static version="5.1.3";static binaryType="arraybuffer";static Boho=jt;static MBP=jt.MBP;static Buffer=jt.Buffer;static constants=V;static instanceCount=0;static webSocketCount=0;constructor(t){super(t),qt.instanceCount++,this.boundBrowserVisiblePing=this.browserVisiblePing.bind(this),document.addEventListener("visibilitychange",this.boundBrowserVisiblePing),t&&this.open()}browserVisiblePing(){"visible"===document.visibilityState&&this.ping()}stop(){super.stop()}destroy(){document.removeEventListener("visibilitychange",this.boundBrowserVisiblePing),super.destroy()}keepConnection(){this.autoReconnect&&(this.socket&&this.socket.readyState!==WebSocket.CLOSED||this.open())}createConnection(t){qt.webSocketCount++,this.socket=new WebSocket(t),this.socket.binaryType=qt.binaryType,this.stateChange("connecting","connecting"),this.socket.onopen=()=>{this.socket&&("arraybuffer"==this.socket.binaryType?this.socket.onmessage=this.onWebSocketMessage.bind(this):this.socket.onmessage=this.onWebSocketMessageBlob.bind(this),this.emit("open"))},this.socket.onerror=t=>{this.emit("error",t)},this.socket.onclose=()=>{this.emit("close")}}onWebSocketMessage(t){this.rxCounter++,this.lastTxRxTime=Date.now();let e=Yt.from(t.data);this.rxBytes+=e.byteLength,this.emit("socket_data",e)}async onWebSocketMessageBlob(t){let e;if(this.rxCounter++,this.lastTxRxTime=Date.now(),t.data instanceof Blob){let r=await t.data.arrayBuffer();e=Yt.from(r)}else e=Yt.from(t.data);this.rxBytes+=e.byteLength,this.emit("socket_data",e)}socket_send(t){1===this.socket?.readyState?(this.socket.send(t),this.txCounter++,this.txBytes+=t.byteLength,this.lastTxRxTime=Date.now()):console.log(".")}}export{qt as default};
|
|
16
|
-
//# sourceMappingURL=io.js.map
|