hono 4.6.5 → 4.6.7
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/dist/adapter/bun/websocket.js +23 -26
- package/dist/adapter/cloudflare-workers/websocket.js +40 -39
- package/dist/adapter/deno/serve-static.js +4 -2
- package/dist/adapter/deno/websocket.js +7 -8
- package/dist/adapter/vercel/handler.js +2 -2
- package/dist/cjs/adapter/bun/websocket.js +24 -26
- package/dist/cjs/adapter/cloudflare-workers/websocket.js +40 -39
- package/dist/cjs/adapter/deno/serve-static.js +4 -2
- package/dist/cjs/adapter/deno/websocket.js +7 -8
- package/dist/cjs/adapter/vercel/handler.js +2 -2
- package/dist/cjs/client/client.js +10 -16
- package/dist/cjs/client/utils.js +18 -0
- package/dist/cjs/helper/websocket/index.js +43 -2
- package/dist/cjs/middleware/secure-headers/secure-headers.js +6 -5
- package/dist/cjs/router/linear-router/router.js +75 -77
- package/dist/cjs/router/pattern-router/router.js +3 -2
- package/dist/cjs/router/smart-router/router.js +3 -3
- package/dist/cjs/router/trie-router/node.js +9 -12
- package/dist/cjs/router/trie-router/router.js +2 -2
- package/dist/cjs/utils/jwt/jws.js +4 -2
- package/dist/client/client.js +11 -16
- package/dist/client/utils.js +17 -0
- package/dist/helper/websocket/index.js +40 -1
- package/dist/middleware/secure-headers/secure-headers.js +6 -5
- package/dist/router/linear-router/router.js +75 -77
- package/dist/router/pattern-router/router.js +3 -2
- package/dist/router/smart-router/router.js +3 -3
- package/dist/router/trie-router/node.js +9 -12
- package/dist/router/trie-router/router.js +2 -2
- package/dist/types/adapter/bun/websocket.d.ts +9 -1
- package/dist/types/adapter/vercel/handler.d.ts +1 -2
- package/dist/types/client/types.d.ts +9 -0
- package/dist/types/client/utils.d.ts +1 -0
- package/dist/types/helper/websocket/index.d.ts +35 -6
- package/dist/types/middleware/powered-by/index.d.ts +19 -0
- package/dist/types/router/trie-router/node.d.ts +0 -2
- package/dist/utils/jwt/jws.js +4 -2
- package/package.json +1 -1
|
@@ -1,44 +1,40 @@
|
|
|
1
1
|
// src/adapter/bun/websocket.ts
|
|
2
|
-
import { createWSMessageEvent } from "../../helper/websocket/index.js";
|
|
2
|
+
import { createWSMessageEvent, defineWebSocketHelper, WSContext } from "../../helper/websocket/index.js";
|
|
3
3
|
import { getBunServer } from "./server.js";
|
|
4
4
|
var createWSContext = (ws) => {
|
|
5
|
-
return {
|
|
5
|
+
return new WSContext({
|
|
6
6
|
send: (source, options) => {
|
|
7
|
-
|
|
8
|
-
ws.send(sendingData, options?.compress);
|
|
7
|
+
ws.send(source, options?.compress);
|
|
9
8
|
},
|
|
10
9
|
raw: ws,
|
|
11
|
-
binaryType: "arraybuffer",
|
|
12
10
|
readyState: ws.readyState,
|
|
13
11
|
url: ws.data.url,
|
|
14
12
|
protocol: ws.data.protocol,
|
|
15
13
|
close(code, reason) {
|
|
16
14
|
ws.close(code, reason);
|
|
17
15
|
}
|
|
18
|
-
};
|
|
16
|
+
});
|
|
19
17
|
};
|
|
20
18
|
var createBunWebSocket = () => {
|
|
21
19
|
const websocketConns = [];
|
|
22
|
-
const upgradeWebSocket = (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
protocol: c.req.url
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
if (upgradeResult) {
|
|
37
|
-
return new Response(null);
|
|
20
|
+
const upgradeWebSocket = defineWebSocketHelper((c, events) => {
|
|
21
|
+
const server = getBunServer(c);
|
|
22
|
+
if (!server) {
|
|
23
|
+
throw new TypeError("env has to include the 2nd argument of fetch.");
|
|
24
|
+
}
|
|
25
|
+
const connId = websocketConns.push(events) - 1;
|
|
26
|
+
const upgradeResult = server.upgrade(c.req.raw, {
|
|
27
|
+
data: {
|
|
28
|
+
connId,
|
|
29
|
+
url: new URL(c.req.url),
|
|
30
|
+
protocol: c.req.url
|
|
38
31
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
});
|
|
33
|
+
if (upgradeResult) {
|
|
34
|
+
return new Response(null);
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
});
|
|
42
38
|
const websocket = {
|
|
43
39
|
open(ws) {
|
|
44
40
|
const websocketListeners = websocketConns[ws.data.connId];
|
|
@@ -75,5 +71,6 @@ var createBunWebSocket = () => {
|
|
|
75
71
|
};
|
|
76
72
|
};
|
|
77
73
|
export {
|
|
78
|
-
createBunWebSocket
|
|
74
|
+
createBunWebSocket,
|
|
75
|
+
createWSContext
|
|
79
76
|
};
|
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
// src/adapter/cloudflare-workers/websocket.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { WSContext, defineWebSocketHelper } from "../../helper/websocket/index.js";
|
|
3
|
+
var upgradeWebSocket = defineWebSocketHelper(
|
|
4
|
+
async (c, events) => {
|
|
5
|
+
const upgradeHeader = c.req.header("Upgrade");
|
|
6
|
+
if (upgradeHeader !== "websocket") {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const webSocketPair = new WebSocketPair();
|
|
10
|
+
const client = webSocketPair[0];
|
|
11
|
+
const server = webSocketPair[1];
|
|
12
|
+
const wsContext = new WSContext({
|
|
13
|
+
close: (code, reason) => server.close(code, reason),
|
|
14
|
+
get protocol() {
|
|
15
|
+
return server.protocol;
|
|
16
|
+
},
|
|
17
|
+
raw: server,
|
|
18
|
+
get readyState() {
|
|
19
|
+
return server.readyState;
|
|
20
|
+
},
|
|
21
|
+
url: server.url ? new URL(server.url) : null,
|
|
22
|
+
send: (source) => server.send(source)
|
|
23
|
+
});
|
|
24
|
+
if (events.onOpen) {
|
|
25
|
+
server.addEventListener("open", (evt) => events.onOpen?.(evt, wsContext));
|
|
26
|
+
}
|
|
27
|
+
if (events.onClose) {
|
|
28
|
+
server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
|
|
29
|
+
}
|
|
30
|
+
if (events.onMessage) {
|
|
31
|
+
server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
|
|
32
|
+
}
|
|
33
|
+
if (events.onError) {
|
|
34
|
+
server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
|
|
35
|
+
}
|
|
36
|
+
server.accept?.();
|
|
37
|
+
return new Response(null, {
|
|
38
|
+
status: 101,
|
|
39
|
+
webSocket: client
|
|
40
|
+
});
|
|
7
41
|
}
|
|
8
|
-
|
|
9
|
-
const client = webSocketPair[0];
|
|
10
|
-
const server = webSocketPair[1];
|
|
11
|
-
const wsContext = {
|
|
12
|
-
binaryType: "arraybuffer",
|
|
13
|
-
close: (code, reason) => server.close(code, reason),
|
|
14
|
-
get protocol() {
|
|
15
|
-
return server.protocol;
|
|
16
|
-
},
|
|
17
|
-
raw: server,
|
|
18
|
-
get readyState() {
|
|
19
|
-
return server.readyState;
|
|
20
|
-
},
|
|
21
|
-
url: server.url ? new URL(server.url) : null,
|
|
22
|
-
send: (source) => server.send(source)
|
|
23
|
-
};
|
|
24
|
-
if (events.onOpen) {
|
|
25
|
-
server.addEventListener("open", (evt) => events.onOpen?.(evt, wsContext));
|
|
26
|
-
}
|
|
27
|
-
if (events.onClose) {
|
|
28
|
-
server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
|
|
29
|
-
}
|
|
30
|
-
if (events.onMessage) {
|
|
31
|
-
server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
|
|
32
|
-
}
|
|
33
|
-
if (events.onError) {
|
|
34
|
-
server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
|
|
35
|
-
}
|
|
36
|
-
server.accept?.();
|
|
37
|
-
return new Response(null, {
|
|
38
|
-
status: 101,
|
|
39
|
-
webSocket: client
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
+
);
|
|
42
43
|
export {
|
|
43
44
|
upgradeWebSocket
|
|
44
45
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/adapter/deno/serve-static.ts
|
|
2
2
|
import { serveStatic as baseServeStatic } from "../../middleware/serve-static/index.js";
|
|
3
|
-
var { open, lstatSync } = Deno;
|
|
3
|
+
var { open, lstatSync, errors } = Deno;
|
|
4
4
|
var serveStatic = (options) => {
|
|
5
5
|
return async function serveStatic2(c, next) {
|
|
6
6
|
const getContent = async (path) => {
|
|
@@ -8,7 +8,9 @@ var serveStatic = (options) => {
|
|
|
8
8
|
const file = await open(path);
|
|
9
9
|
return file ? file.readable : null;
|
|
10
10
|
} catch (e) {
|
|
11
|
-
|
|
11
|
+
if (!(e instanceof errors.NotFound)) {
|
|
12
|
+
console.warn(`${e}`);
|
|
13
|
+
}
|
|
12
14
|
}
|
|
13
15
|
};
|
|
14
16
|
const pathResolve = (path) => {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// src/adapter/deno/websocket.ts
|
|
2
|
-
|
|
2
|
+
import { WSContext, defineWebSocketHelper } from "../../helper/websocket/index.js";
|
|
3
|
+
var upgradeWebSocket = defineWebSocketHelper(async (c, events, options) => {
|
|
3
4
|
if (c.req.header("upgrade") !== "websocket") {
|
|
4
|
-
return
|
|
5
|
+
return;
|
|
5
6
|
}
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const wsContext = {
|
|
9
|
-
binaryType: "arraybuffer",
|
|
7
|
+
const { response, socket } = Deno.upgradeWebSocket(c.req.raw, options ?? {});
|
|
8
|
+
const wsContext = new WSContext({
|
|
10
9
|
close: (code, reason) => socket.close(code, reason),
|
|
11
10
|
get protocol() {
|
|
12
11
|
return socket.protocol;
|
|
@@ -17,13 +16,13 @@ var upgradeWebSocket = (createEvents, options) => async (c, next) => {
|
|
|
17
16
|
},
|
|
18
17
|
url: socket.url ? new URL(socket.url) : null,
|
|
19
18
|
send: (source) => socket.send(source)
|
|
20
|
-
};
|
|
19
|
+
});
|
|
21
20
|
socket.onopen = (evt) => events.onOpen?.(evt, wsContext);
|
|
22
21
|
socket.onmessage = (evt) => events.onMessage?.(evt, wsContext);
|
|
23
22
|
socket.onclose = (evt) => events.onClose?.(evt, wsContext);
|
|
24
23
|
socket.onerror = (evt) => events.onError?.(evt, wsContext);
|
|
25
24
|
return response;
|
|
26
|
-
};
|
|
25
|
+
});
|
|
27
26
|
export {
|
|
28
27
|
upgradeWebSocket
|
|
29
28
|
};
|
|
@@ -18,49 +18,46 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var websocket_exports = {};
|
|
20
20
|
__export(websocket_exports, {
|
|
21
|
-
createBunWebSocket: () => createBunWebSocket
|
|
21
|
+
createBunWebSocket: () => createBunWebSocket,
|
|
22
|
+
createWSContext: () => createWSContext
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(websocket_exports);
|
|
24
25
|
var import_websocket = require("../../helper/websocket");
|
|
25
26
|
var import_server = require("./server");
|
|
26
27
|
const createWSContext = (ws) => {
|
|
27
|
-
return {
|
|
28
|
+
return new import_websocket.WSContext({
|
|
28
29
|
send: (source, options) => {
|
|
29
|
-
|
|
30
|
-
ws.send(sendingData, options?.compress);
|
|
30
|
+
ws.send(source, options?.compress);
|
|
31
31
|
},
|
|
32
32
|
raw: ws,
|
|
33
|
-
binaryType: "arraybuffer",
|
|
34
33
|
readyState: ws.readyState,
|
|
35
34
|
url: ws.data.url,
|
|
36
35
|
protocol: ws.data.protocol,
|
|
37
36
|
close(code, reason) {
|
|
38
37
|
ws.close(code, reason);
|
|
39
38
|
}
|
|
40
|
-
};
|
|
39
|
+
});
|
|
41
40
|
};
|
|
42
41
|
const createBunWebSocket = () => {
|
|
43
42
|
const websocketConns = [];
|
|
44
|
-
const upgradeWebSocket = (
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
protocol: c.req.url
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
if (upgradeResult) {
|
|
59
|
-
return new Response(null);
|
|
43
|
+
const upgradeWebSocket = (0, import_websocket.defineWebSocketHelper)((c, events) => {
|
|
44
|
+
const server = (0, import_server.getBunServer)(c);
|
|
45
|
+
if (!server) {
|
|
46
|
+
throw new TypeError("env has to include the 2nd argument of fetch.");
|
|
47
|
+
}
|
|
48
|
+
const connId = websocketConns.push(events) - 1;
|
|
49
|
+
const upgradeResult = server.upgrade(c.req.raw, {
|
|
50
|
+
data: {
|
|
51
|
+
connId,
|
|
52
|
+
url: new URL(c.req.url),
|
|
53
|
+
protocol: c.req.url
|
|
60
54
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
});
|
|
56
|
+
if (upgradeResult) {
|
|
57
|
+
return new Response(null);
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
});
|
|
64
61
|
const websocket = {
|
|
65
62
|
open(ws) {
|
|
66
63
|
const websocketListeners = websocketConns[ws.data.connId];
|
|
@@ -98,5 +95,6 @@ const createBunWebSocket = () => {
|
|
|
98
95
|
};
|
|
99
96
|
// Annotate the CommonJS export names for ESM import in node:
|
|
100
97
|
0 && (module.exports = {
|
|
101
|
-
createBunWebSocket
|
|
98
|
+
createBunWebSocket,
|
|
99
|
+
createWSContext
|
|
102
100
|
});
|
|
@@ -21,46 +21,47 @@ __export(websocket_exports, {
|
|
|
21
21
|
upgradeWebSocket: () => upgradeWebSocket
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(websocket_exports);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
var import_websocket = require("../../helper/websocket");
|
|
25
|
+
const upgradeWebSocket = (0, import_websocket.defineWebSocketHelper)(
|
|
26
|
+
async (c, events) => {
|
|
27
|
+
const upgradeHeader = c.req.header("Upgrade");
|
|
28
|
+
if (upgradeHeader !== "websocket") {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const webSocketPair = new WebSocketPair();
|
|
32
|
+
const client = webSocketPair[0];
|
|
33
|
+
const server = webSocketPair[1];
|
|
34
|
+
const wsContext = new import_websocket.WSContext({
|
|
35
|
+
close: (code, reason) => server.close(code, reason),
|
|
36
|
+
get protocol() {
|
|
37
|
+
return server.protocol;
|
|
38
|
+
},
|
|
39
|
+
raw: server,
|
|
40
|
+
get readyState() {
|
|
41
|
+
return server.readyState;
|
|
42
|
+
},
|
|
43
|
+
url: server.url ? new URL(server.url) : null,
|
|
44
|
+
send: (source) => server.send(source)
|
|
45
|
+
});
|
|
46
|
+
if (events.onOpen) {
|
|
47
|
+
server.addEventListener("open", (evt) => events.onOpen?.(evt, wsContext));
|
|
48
|
+
}
|
|
49
|
+
if (events.onClose) {
|
|
50
|
+
server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
|
|
51
|
+
}
|
|
52
|
+
if (events.onMessage) {
|
|
53
|
+
server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
|
|
54
|
+
}
|
|
55
|
+
if (events.onError) {
|
|
56
|
+
server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
|
|
57
|
+
}
|
|
58
|
+
server.accept?.();
|
|
59
|
+
return new Response(null, {
|
|
60
|
+
status: 101,
|
|
61
|
+
webSocket: client
|
|
62
|
+
});
|
|
29
63
|
}
|
|
30
|
-
|
|
31
|
-
const client = webSocketPair[0];
|
|
32
|
-
const server = webSocketPair[1];
|
|
33
|
-
const wsContext = {
|
|
34
|
-
binaryType: "arraybuffer",
|
|
35
|
-
close: (code, reason) => server.close(code, reason),
|
|
36
|
-
get protocol() {
|
|
37
|
-
return server.protocol;
|
|
38
|
-
},
|
|
39
|
-
raw: server,
|
|
40
|
-
get readyState() {
|
|
41
|
-
return server.readyState;
|
|
42
|
-
},
|
|
43
|
-
url: server.url ? new URL(server.url) : null,
|
|
44
|
-
send: (source) => server.send(source)
|
|
45
|
-
};
|
|
46
|
-
if (events.onOpen) {
|
|
47
|
-
server.addEventListener("open", (evt) => events.onOpen?.(evt, wsContext));
|
|
48
|
-
}
|
|
49
|
-
if (events.onClose) {
|
|
50
|
-
server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
|
|
51
|
-
}
|
|
52
|
-
if (events.onMessage) {
|
|
53
|
-
server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
|
|
54
|
-
}
|
|
55
|
-
if (events.onError) {
|
|
56
|
-
server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
|
|
57
|
-
}
|
|
58
|
-
server.accept?.();
|
|
59
|
-
return new Response(null, {
|
|
60
|
-
status: 101,
|
|
61
|
-
webSocket: client
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
+
);
|
|
64
65
|
// Annotate the CommonJS export names for ESM import in node:
|
|
65
66
|
0 && (module.exports = {
|
|
66
67
|
upgradeWebSocket
|
|
@@ -22,7 +22,7 @@ __export(serve_static_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(serve_static_exports);
|
|
24
24
|
var import_serve_static = require("../../middleware/serve-static");
|
|
25
|
-
const { open, lstatSync } = Deno;
|
|
25
|
+
const { open, lstatSync, errors } = Deno;
|
|
26
26
|
const serveStatic = (options) => {
|
|
27
27
|
return async function serveStatic2(c, next) {
|
|
28
28
|
const getContent = async (path) => {
|
|
@@ -30,7 +30,9 @@ const serveStatic = (options) => {
|
|
|
30
30
|
const file = await open(path);
|
|
31
31
|
return file ? file.readable : null;
|
|
32
32
|
} catch (e) {
|
|
33
|
-
|
|
33
|
+
if (!(e instanceof errors.NotFound)) {
|
|
34
|
+
console.warn(`${e}`);
|
|
35
|
+
}
|
|
34
36
|
}
|
|
35
37
|
};
|
|
36
38
|
const pathResolve = (path) => {
|
|
@@ -21,14 +21,13 @@ __export(websocket_exports, {
|
|
|
21
21
|
upgradeWebSocket: () => upgradeWebSocket
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(websocket_exports);
|
|
24
|
-
|
|
24
|
+
var import_websocket = require("../../helper/websocket");
|
|
25
|
+
const upgradeWebSocket = (0, import_websocket.defineWebSocketHelper)(async (c, events, options) => {
|
|
25
26
|
if (c.req.header("upgrade") !== "websocket") {
|
|
26
|
-
return
|
|
27
|
+
return;
|
|
27
28
|
}
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const wsContext = {
|
|
31
|
-
binaryType: "arraybuffer",
|
|
29
|
+
const { response, socket } = Deno.upgradeWebSocket(c.req.raw, options ?? {});
|
|
30
|
+
const wsContext = new import_websocket.WSContext({
|
|
32
31
|
close: (code, reason) => socket.close(code, reason),
|
|
33
32
|
get protocol() {
|
|
34
33
|
return socket.protocol;
|
|
@@ -39,13 +38,13 @@ const upgradeWebSocket = (createEvents, options) => async (c, next) => {
|
|
|
39
38
|
},
|
|
40
39
|
url: socket.url ? new URL(socket.url) : null,
|
|
41
40
|
send: (source) => socket.send(source)
|
|
42
|
-
};
|
|
41
|
+
});
|
|
43
42
|
socket.onopen = (evt) => events.onOpen?.(evt, wsContext);
|
|
44
43
|
socket.onmessage = (evt) => events.onMessage?.(evt, wsContext);
|
|
45
44
|
socket.onclose = (evt) => events.onClose?.(evt, wsContext);
|
|
46
45
|
socket.onerror = (evt) => events.onError?.(evt, wsContext);
|
|
47
46
|
return response;
|
|
48
|
-
};
|
|
47
|
+
});
|
|
49
48
|
// Annotate the CommonJS export names for ESM import in node:
|
|
50
49
|
0 && (module.exports = {
|
|
51
50
|
upgradeWebSocket
|
|
@@ -21,8 +21,8 @@ __export(handler_exports, {
|
|
|
21
21
|
handle: () => handle
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(handler_exports);
|
|
24
|
-
const handle = (app) => (req
|
|
25
|
-
return app.fetch(req
|
|
24
|
+
const handle = (app) => (req) => {
|
|
25
|
+
return app.fetch(req);
|
|
26
26
|
};
|
|
27
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
28
|
0 && (module.exports = {
|
|
@@ -55,19 +55,7 @@ class ClientRequestImpl {
|
|
|
55
55
|
fetch = async (args, opt) => {
|
|
56
56
|
if (args) {
|
|
57
57
|
if (args.query) {
|
|
58
|
-
|
|
59
|
-
if (v === void 0) {
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
this.queryParams ||= new URLSearchParams();
|
|
63
|
-
if (Array.isArray(v)) {
|
|
64
|
-
for (const v2 of v) {
|
|
65
|
-
this.queryParams.append(k, v2);
|
|
66
|
-
}
|
|
67
|
-
} else {
|
|
68
|
-
this.queryParams.set(k, v);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
58
|
+
this.queryParams = (0, import_utils.buildSearchParams)(args.query);
|
|
71
59
|
}
|
|
72
60
|
if (args.form) {
|
|
73
61
|
const form = new FormData();
|
|
@@ -146,10 +134,16 @@ const hc = (baseUrl, options) => createProxy(function proxyCallback(opts) {
|
|
|
146
134
|
const path = parts.join("/");
|
|
147
135
|
const url = (0, import_utils.mergePath)(baseUrl, path);
|
|
148
136
|
if (method === "url") {
|
|
149
|
-
|
|
150
|
-
|
|
137
|
+
let result = url;
|
|
138
|
+
if (opts.args[0]) {
|
|
139
|
+
if (opts.args[0].param) {
|
|
140
|
+
result = (0, import_utils.replaceUrlParam)(url, opts.args[0].param);
|
|
141
|
+
}
|
|
142
|
+
if (opts.args[0].query) {
|
|
143
|
+
result = result + "?" + (0, import_utils.buildSearchParams)(opts.args[0].query).toString();
|
|
144
|
+
}
|
|
151
145
|
}
|
|
152
|
-
return new URL(
|
|
146
|
+
return new URL(result);
|
|
153
147
|
}
|
|
154
148
|
if (method === "ws") {
|
|
155
149
|
const webSocketUrl = (0, import_utils.replaceUrlProtocol)(
|
package/dist/cjs/client/utils.js
CHANGED
|
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var utils_exports = {};
|
|
20
20
|
__export(utils_exports, {
|
|
21
|
+
buildSearchParams: () => buildSearchParams,
|
|
21
22
|
deepMerge: () => deepMerge,
|
|
22
23
|
mergePath: () => mergePath,
|
|
23
24
|
removeIndexString: () => removeIndexString,
|
|
@@ -38,6 +39,22 @@ const replaceUrlParam = (urlString, params) => {
|
|
|
38
39
|
}
|
|
39
40
|
return urlString;
|
|
40
41
|
};
|
|
42
|
+
const buildSearchParams = (query) => {
|
|
43
|
+
const searchParams = new URLSearchParams();
|
|
44
|
+
for (const [k, v] of Object.entries(query)) {
|
|
45
|
+
if (v === void 0) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (Array.isArray(v)) {
|
|
49
|
+
for (const v2 of v) {
|
|
50
|
+
searchParams.append(k, v2);
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
searchParams.set(k, v);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return searchParams;
|
|
57
|
+
};
|
|
41
58
|
const replaceUrlProtocol = (urlString, protocol) => {
|
|
42
59
|
switch (protocol) {
|
|
43
60
|
case "ws":
|
|
@@ -72,6 +89,7 @@ function deepMerge(target, source) {
|
|
|
72
89
|
}
|
|
73
90
|
// Annotate the CommonJS export names for ESM import in node:
|
|
74
91
|
0 && (module.exports = {
|
|
92
|
+
buildSearchParams,
|
|
75
93
|
deepMerge,
|
|
76
94
|
mergePath,
|
|
77
95
|
removeIndexString,
|
|
@@ -18,15 +18,56 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var websocket_exports = {};
|
|
20
20
|
__export(websocket_exports, {
|
|
21
|
-
|
|
21
|
+
WSContext: () => WSContext,
|
|
22
|
+
createWSMessageEvent: () => createWSMessageEvent,
|
|
23
|
+
defineWebSocketHelper: () => defineWebSocketHelper
|
|
22
24
|
});
|
|
23
25
|
module.exports = __toCommonJS(websocket_exports);
|
|
26
|
+
class WSContext {
|
|
27
|
+
#init;
|
|
28
|
+
constructor(init) {
|
|
29
|
+
this.#init = init;
|
|
30
|
+
this.raw = init.raw;
|
|
31
|
+
this.url = init.url ? new URL(init.url) : null;
|
|
32
|
+
this.protocol = init.protocol ?? null;
|
|
33
|
+
}
|
|
34
|
+
send(source, options) {
|
|
35
|
+
this.#init.send(
|
|
36
|
+
typeof source === "string" ? source : source instanceof Uint8Array ? source.buffer : source,
|
|
37
|
+
options ?? {}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
raw;
|
|
41
|
+
binaryType = "arraybuffer";
|
|
42
|
+
get readyState() {
|
|
43
|
+
return this.#init.readyState;
|
|
44
|
+
}
|
|
45
|
+
url;
|
|
46
|
+
protocol;
|
|
47
|
+
close(code, reason) {
|
|
48
|
+
this.#init.close(code, reason);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
24
51
|
const createWSMessageEvent = (source) => {
|
|
25
52
|
return new MessageEvent("message", {
|
|
26
53
|
data: source
|
|
27
54
|
});
|
|
28
55
|
};
|
|
56
|
+
const defineWebSocketHelper = (handler) => {
|
|
57
|
+
return (createEvents, options) => {
|
|
58
|
+
return async function UpgradeWebSocket(c, next) {
|
|
59
|
+
const events = await createEvents(c);
|
|
60
|
+
const result = await handler(c, events, options);
|
|
61
|
+
if (result) {
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
await next();
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
};
|
|
29
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
69
|
0 && (module.exports = {
|
|
31
|
-
|
|
70
|
+
WSContext,
|
|
71
|
+
createWSMessageEvent,
|
|
72
|
+
defineWebSocketHelper
|
|
32
73
|
});
|
|
@@ -59,11 +59,12 @@ const generateNonce = () => {
|
|
|
59
59
|
return (0, import_encode.encodeBase64)(buffer);
|
|
60
60
|
};
|
|
61
61
|
const NONCE = (ctx) => {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
const key = "secureHeadersNonce";
|
|
63
|
+
const init = ctx.get(key);
|
|
64
|
+
const nonce = init || generateNonce();
|
|
65
|
+
if (init == null) {
|
|
66
|
+
ctx.set(key, nonce);
|
|
67
|
+
}
|
|
67
68
|
return `'nonce-${nonce}'`;
|
|
68
69
|
};
|
|
69
70
|
const secureHeaders = (customOptions) => {
|