grafserv 0.0.1-0.21 → 0.0.1-0.22
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/CHANGELOG.md +11 -0
- package/dist/servers/express/v4/index.d.ts +1 -1
- package/dist/servers/express/v4/index.d.ts.map +1 -1
- package/dist/servers/express/v4/index.js +33 -13
- package/dist/servers/express/v4/index.js.map +1 -1
- package/dist/servers/koa/v2/index.d.ts +8 -3
- package/dist/servers/koa/v2/index.d.ts.map +1 -1
- package/dist/servers/koa/v2/index.js +51 -13
- package/dist/servers/koa/v2/index.js.map +1 -1
- package/dist/servers/node/index.d.ts +9 -2
- package/dist/servers/node/index.d.ts.map +1 -1
- package/dist/servers/node/index.js +84 -50
- package/dist/servers/node/index.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -2
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# grafserv
|
|
2
2
|
|
|
3
|
+
## 0.0.1-0.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#226](https://github.com/benjie/postgraphile-private/pull/226)
|
|
8
|
+
[`6a846e009`](https://github.com/benjie/postgraphile-private/commit/6a846e00945ba2dcea0cd89f5e6a8ecc5a32775d)
|
|
9
|
+
Thanks [@benjie](https://github.com/benjie)! - Enable users to use Grafserv
|
|
10
|
+
alongside other websocket-enabled entities in their final server.
|
|
11
|
+
- Updated dependencies [[`aac8732f9`](undefined)]:
|
|
12
|
+
- grafast@0.0.1-0.20
|
|
13
|
+
|
|
3
14
|
## 0.0.1-0.21
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -18,7 +18,7 @@ declare global {
|
|
|
18
18
|
}
|
|
19
19
|
export declare class ExpressGrafserv extends NodeGrafservBase {
|
|
20
20
|
protected getDigest(dynamicOptions: OptionsFromConfig, req: Request, res: Response): RequestDigest;
|
|
21
|
-
addTo(app: Express, server: HTTPServer | HTTPSServer | null): Promise<void>;
|
|
21
|
+
addTo(app: Express, server: HTTPServer | HTTPSServer | null, addExclusiveWebsocketHandler?: boolean): Promise<void>;
|
|
22
22
|
}
|
|
23
23
|
export declare function grafserv(config: GrafservConfig): ExpressGrafserv;
|
|
24
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/servers/express/v4/index.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/servers/express/v4/index.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAmB,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,cAAc;YACtB,SAAS,EAAE;gBACT,GAAG,EAAE,OAAO,CAAC;gBACb,GAAG,EAAE,QAAQ,CAAC;aACf,CAAC;SACH;KACF;CACF;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,SAAS,CAAC,SAAS,CACjB,cAAc,EAAE,iBAAiB,EACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,aAAa;IA+BV,KAAK,CACT,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,EACvC,4BAA4B,UAAO;CA2CtC;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,mBAE9C"}
|
|
@@ -35,21 +35,41 @@ class ExpressGrafserv extends index_js_1.NodeGrafservBase {
|
|
|
35
35
|
},
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
async addTo(app, server) {
|
|
38
|
+
async addTo(app, server, addExclusiveWebsocketHandler = true) {
|
|
39
39
|
app.use(this._createHandler());
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
// Alias this just to make it easier for users to copy/paste the code below
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
42
|
+
const serv = this;
|
|
43
|
+
if (addExclusiveWebsocketHandler) {
|
|
44
|
+
const grafservUpgradeHandler = await serv.getUpgradeHandler();
|
|
45
|
+
if (grafservUpgradeHandler) {
|
|
46
|
+
const upgrade = (req, socket, head) => {
|
|
47
|
+
if (serv.shouldHandleUpgrade(req, socket, head)) {
|
|
48
|
+
grafservUpgradeHandler(req, socket, head);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
socket.destroy();
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const attachWebsocketsToServer = (server) => {
|
|
55
|
+
server.on("upgrade", upgrade);
|
|
56
|
+
serv.onRelease(() => {
|
|
57
|
+
server.off("upgrade", upgrade);
|
|
58
|
+
});
|
|
52
59
|
};
|
|
60
|
+
if (server) {
|
|
61
|
+
// If user explicitly passes server, bind to it:
|
|
62
|
+
attachWebsocketsToServer(server);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// If not, hope they're calling `app.listen()` and intercept that call.
|
|
66
|
+
const oldListen = app.listen;
|
|
67
|
+
app.listen = function (...args) {
|
|
68
|
+
const server = oldListen.apply(this, args);
|
|
69
|
+
attachWebsocketsToServer(server);
|
|
70
|
+
return server;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
53
73
|
}
|
|
54
74
|
}
|
|
55
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/servers/express/v4/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/servers/express/v4/index.ts"],"names":[],"mappings":";;;AAOA,gDAI2B;AAC3B,kDAAuD;AAavD,MAAa,eAAgB,SAAQ,2BAAgB;IACzC,SAAS,CACjB,cAAiC,EACjC,GAAY,EACZ,GAAa;QAEb,OAAO;YACL,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,QAAQ,EAAE,GAAG,CAAC,MAAM;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,IAAA,yBAAc,EAAC,GAAG,CAAC,OAAO,CAAC;YACpC,cAAc;gBACZ,OAAO,GAAG,CAAC,KAA0C,CAAC;YACxD,CAAC;YACD,OAAO;gBACL,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;oBACpB,OAAO,IAAA,mCAAwB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC3C;qBAAM;oBACL,OAAO,IAAA,6BAAkB,EAAC,GAAG,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;iBACjE;YACH,CAAC;YACD,cAAc,EAAE;gBACd,IAAI,EAAE;oBACJ,GAAG;oBACH,GAAG;iBACJ;gBACD,SAAS,EAAE;oBACT,GAAG;oBACH,GAAG;iBACJ;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAY,EACZ,MAAuC,EACvC,4BAA4B,GAAG,IAAI;QAEnC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC/B,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,4BAA4B,EAAE;YAChC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9D,IAAI,sBAAsB,EAAE;gBAC1B,MAAM,OAAO,GAAG,CACd,GAAoB,EACpB,MAAc,EACd,IAAY,EACZ,EAAE;oBACF,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;wBAC/C,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBAC3C;yBAAM;wBACL,MAAM,CAAC,OAAO,EAAE,CAAC;qBAClB;gBACH,CAAC,CAAC;gBAEF,MAAM,wBAAwB,GAAG,CAAC,MAAgC,EAAE,EAAE;oBACpE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;wBAClB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC;gBAEF,IAAI,MAAM,EAAE;oBACV,gDAAgD;oBAChD,wBAAwB,CAAC,MAAM,CAAC,CAAC;iBAClC;qBAAM;oBACL,uEAAuE;oBACvE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;oBAC7B,GAAG,CAAC,MAAM,GAAG,UAAU,GAAG,IAAS;wBACjC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC3C,wBAAwB,CAAC,MAAM,CAAC,CAAC;wBACjC,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAC;iBACH;aACF;SACF;IACH,CAAC;CACF;AAlFD,0CAkFC;AAED,SAAgB,QAAQ,CAAC,MAAsB;IAC7C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAFD,4BAEC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
/// <reference types="koa-bodyparser" />
|
|
2
1
|
/// <reference types="node" />
|
|
3
2
|
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="koa-bodyparser" />
|
|
5
|
+
/// <reference types="node" />
|
|
4
6
|
import type { Context } from "koa";
|
|
5
7
|
import type Koa from "koa";
|
|
6
|
-
import type { Server as HTTPServer } from "node:http";
|
|
8
|
+
import type { IncomingMessage, Server as HTTPServer } from "node:http";
|
|
7
9
|
import type { Server as HTTPSServer } from "node:https";
|
|
10
|
+
import type { Duplex } from "node:stream";
|
|
8
11
|
import { GrafservBase } from "../../../core/base.js";
|
|
9
12
|
import type { GrafservConfig } from "../../../interfaces.js";
|
|
10
13
|
declare global {
|
|
@@ -19,7 +22,9 @@ declare global {
|
|
|
19
22
|
export declare class KoaGrafserv extends GrafservBase {
|
|
20
23
|
constructor(config: GrafservConfig);
|
|
21
24
|
protected _createHandler(): (ctx: Context, next: (err?: Error) => void) => void;
|
|
22
|
-
|
|
25
|
+
getUpgradeHandler(): Promise<((req: IncomingMessage, socket: Duplex, head: Buffer) => void) | null>;
|
|
26
|
+
shouldHandleUpgrade(req: IncomingMessage, _socket: Duplex, _head: Buffer): boolean;
|
|
27
|
+
addTo(app: Koa, server: HTTPServer | HTTPSServer | null, addExclusiveWebsocketHandler?: boolean): Promise<void>;
|
|
23
28
|
}
|
|
24
29
|
export declare function grafserv(config: GrafservConfig): KoaGrafserv;
|
|
25
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/servers/koa/v2/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/servers/koa/v2/index.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AAS5E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,cAAc;YACtB,KAAK,EAAE;gBACL,GAAG,EAAE,OAAO,CAAC;aACd,CAAC;SACH;KACF;CACF;AAsCD,qBAAa,WAAY,SAAQ,YAAY;gBAC/B,MAAM,EAAE,cAAc;IAIlC,SAAS,CAAC,cAAc,IAAI,CAC1B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,KACxB,IAAI;IAwEH,iBAAiB;IAOvB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAWlE,KAAK,CACT,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,EACvC,4BAA4B,UAAO;CA2CtC;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,eAE9C"}
|
|
@@ -110,21 +110,59 @@ class KoaGrafserv extends base_js_1.GrafservBase {
|
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
-
async
|
|
114
|
-
app.use(this._createHandler());
|
|
113
|
+
async getUpgradeHandler() {
|
|
115
114
|
if (this.resolvedPreset.grafserv?.websockets) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
115
|
+
return (0, index_js_1.makeNodeUpgradeHandler)(this);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
shouldHandleUpgrade(req, _socket, _head) {
|
|
122
|
+
const fullUrl = req.url;
|
|
123
|
+
if (!fullUrl) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
const q = fullUrl.indexOf("?");
|
|
127
|
+
const url = q >= 0 ? fullUrl.substring(0, q) : fullUrl;
|
|
128
|
+
const graphqlPath = this.dynamicOptions.graphqlPath;
|
|
129
|
+
return url === graphqlPath;
|
|
130
|
+
}
|
|
131
|
+
async addTo(app, server, addExclusiveWebsocketHandler = true) {
|
|
132
|
+
app.use(this._createHandler());
|
|
133
|
+
// Alias this just to make it easier for users to copy/paste the code below
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
135
|
+
const serv = this;
|
|
136
|
+
if (addExclusiveWebsocketHandler) {
|
|
137
|
+
const grafservUpgradeHandler = await serv.getUpgradeHandler();
|
|
138
|
+
if (grafservUpgradeHandler) {
|
|
139
|
+
const upgrade = (req, socket, head) => {
|
|
140
|
+
if (serv.shouldHandleUpgrade(req, socket, head)) {
|
|
141
|
+
grafservUpgradeHandler(req, socket, head);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
socket.destroy();
|
|
145
|
+
}
|
|
127
146
|
};
|
|
147
|
+
const attachWebsocketsToServer = (server) => {
|
|
148
|
+
server.on("upgrade", upgrade);
|
|
149
|
+
serv.onRelease(() => {
|
|
150
|
+
server.off("upgrade", upgrade);
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
if (server) {
|
|
154
|
+
// If user explicitly passes server, bind to it:
|
|
155
|
+
attachWebsocketsToServer(server);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
// If not, hope they're calling `app.listen()` and intercept that call.
|
|
159
|
+
const oldListen = app.listen;
|
|
160
|
+
app.listen = function (...args) {
|
|
161
|
+
const server = oldListen.apply(this, args);
|
|
162
|
+
attachWebsocketsToServer(server);
|
|
163
|
+
return server;
|
|
164
|
+
};
|
|
165
|
+
}
|
|
128
166
|
}
|
|
129
167
|
}
|
|
130
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/servers/koa/v2/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/servers/koa/v2/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import type { Extra } from "graphql-ws/lib/use/ws";
|
|
3
6
|
import type { IncomingMessage, Server as HTTPServer, ServerResponse } from "node:http";
|
|
4
7
|
import type { Server as HTTPSServer } from "node:https";
|
|
8
|
+
import type { Duplex } from "node:stream";
|
|
5
9
|
import { GrafservBase } from "../../core/base.js";
|
|
6
10
|
import type { GrafservConfig, RequestDigest } from "../../interfaces.js";
|
|
7
11
|
import type { OptionsFromConfig } from "../../options.js";
|
|
@@ -12,6 +16,7 @@ declare global {
|
|
|
12
16
|
req: IncomingMessage;
|
|
13
17
|
res: ServerResponse;
|
|
14
18
|
};
|
|
19
|
+
ws: Extra;
|
|
15
20
|
}
|
|
16
21
|
}
|
|
17
22
|
}
|
|
@@ -23,10 +28,12 @@ export declare class NodeGrafservBase extends GrafservBase {
|
|
|
23
28
|
*/
|
|
24
29
|
createHandler(isHTTPS?: boolean): (req: IncomingMessage, res: ServerResponse, next?: (err?: Error) => void) => void;
|
|
25
30
|
protected _createHandler(isHTTPS?: boolean): (req: IncomingMessage, res: ServerResponse, next?: (err?: Error) => void) => void;
|
|
31
|
+
getUpgradeHandler(): Promise<((req: IncomingMessage, socket: Duplex, head: Buffer) => void) | null>;
|
|
32
|
+
shouldHandleUpgrade(req: IncomingMessage, _socket: Duplex, _head: Buffer): boolean;
|
|
26
33
|
}
|
|
27
34
|
export declare class NodeGrafserv extends NodeGrafservBase {
|
|
28
|
-
addTo(server: HTTPServer | HTTPSServer): Promise<void>;
|
|
35
|
+
addTo(server: HTTPServer | HTTPSServer, addExclusiveWebsocketHandler?: boolean): Promise<void>;
|
|
29
36
|
}
|
|
30
37
|
export declare function grafserv(config: GrafservConfig): NodeGrafserv;
|
|
31
|
-
export declare function
|
|
38
|
+
export declare function makeNodeUpgradeHandler(instance: GrafservBase): Promise<(req: IncomingMessage, socket: Duplex, head: Buffer) => void>;
|
|
32
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/servers/node/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/servers/node/index.ts"],"names":[],"mappings":";;;;AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EACV,eAAe,EACf,MAAM,IAAI,UAAU,EACpB,cAAc,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAO1D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,cAAc;YACtB,IAAI,EAAE;gBACJ,GAAG,EAAE,eAAe,CAAC;gBACrB,GAAG,EAAE,cAAc,CAAC;aACrB,CAAC;YACF,EAAE,EAAE,KAAK,CAAC;SACX;KACF;CACF;AAED,qBAAa,gBAAiB,SAAQ,YAAY;gBACpC,MAAM,EAAE,cAAc;IAIlC,SAAS,CAAC,SAAS,CACjB,cAAc,EAAE,iBAAiB,EACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,GACf,aAAa;IA8BhB;;OAEG;IACI,aAAa,CAClB,OAAO,UAAQ,GACd,CACD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,KACzB,IAAI;IAIT,SAAS,CAAC,cAAc,CACtB,OAAO,UAAQ,GACd,CACD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,KACzB,IAAI;IAwJH,iBAAiB;IAOvB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAiBzE;AAED,qBAAa,YAAa,SAAQ,gBAAgB;IAC1C,KAAK,CACT,MAAM,EAAE,UAAU,GAAG,WAAW,EAChC,4BAA4B,UAAO;CA+BtC;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,gBAE9C;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,iBAMzC,eAAe,UAAU,MAAM,QAAQ,MAAM,WAgDtE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.makeNodeUpgradeHandler = exports.grafserv = exports.NodeGrafserv = exports.NodeGrafservBase = void 0;
|
|
4
4
|
const graphql_ws_1 = require("graphql-ws");
|
|
5
5
|
const node_querystring_1 = require("node:querystring");
|
|
6
6
|
const base_js_1 = require("../../core/base.js");
|
|
@@ -188,17 +188,59 @@ class NodeGrafservBase extends base_js_1.GrafservBase {
|
|
|
188
188
|
}
|
|
189
189
|
};
|
|
190
190
|
}
|
|
191
|
+
async getUpgradeHandler() {
|
|
192
|
+
if (this.resolvedPreset.grafserv?.websockets) {
|
|
193
|
+
return makeNodeUpgradeHandler(this);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
shouldHandleUpgrade(req, _socket, _head) {
|
|
200
|
+
const fullUrl = req.url;
|
|
201
|
+
if (!fullUrl) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
const q = fullUrl.indexOf("?");
|
|
205
|
+
const url = q >= 0 ? fullUrl.substring(0, q) : fullUrl;
|
|
206
|
+
const graphqlPath = this.dynamicOptions.graphqlPath;
|
|
207
|
+
return url === graphqlPath;
|
|
208
|
+
/*
|
|
209
|
+
const protocol = req.headers["sec-websocket-protocol"];
|
|
210
|
+
const protocols = Array.isArray(protocol)
|
|
211
|
+
? protocol
|
|
212
|
+
: protocol?.split(",").map((p) => p.trim()) ?? [];
|
|
213
|
+
if (protocols.includes(GRAPHQL_TRANSPORT_WS_PROTOCOL)) ...
|
|
214
|
+
*/
|
|
215
|
+
}
|
|
191
216
|
}
|
|
192
217
|
exports.NodeGrafservBase = NodeGrafservBase;
|
|
193
218
|
class NodeGrafserv extends NodeGrafservBase {
|
|
194
|
-
async addTo(server) {
|
|
219
|
+
async addTo(server, addExclusiveWebsocketHandler = true) {
|
|
195
220
|
const handler = this._createHandler();
|
|
196
221
|
server.on("request", handler);
|
|
197
222
|
this.onRelease(() => {
|
|
198
223
|
server.off("request", handler);
|
|
199
224
|
});
|
|
200
|
-
|
|
201
|
-
|
|
225
|
+
// Alias this just to make it easier for users to copy/paste the code below
|
|
226
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
227
|
+
const serv = this;
|
|
228
|
+
if (addExclusiveWebsocketHandler) {
|
|
229
|
+
const grafservUpgradeHandler = await serv.getUpgradeHandler();
|
|
230
|
+
if (grafservUpgradeHandler) {
|
|
231
|
+
const upgrade = (req, socket, head) => {
|
|
232
|
+
if (serv.shouldHandleUpgrade(req, socket, head)) {
|
|
233
|
+
grafservUpgradeHandler(req, socket, head);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
socket.destroy();
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
server.on("upgrade", upgrade);
|
|
240
|
+
serv.onRelease(() => {
|
|
241
|
+
server.off("upgrade", upgrade);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
202
244
|
}
|
|
203
245
|
}
|
|
204
246
|
}
|
|
@@ -207,63 +249,55 @@ function grafserv(config) {
|
|
|
207
249
|
return new NodeGrafserv(config);
|
|
208
250
|
}
|
|
209
251
|
exports.grafserv = grafserv;
|
|
210
|
-
async function
|
|
211
|
-
const graphqlPath = instance.dynamicOptions.graphqlPath;
|
|
252
|
+
async function makeNodeUpgradeHandler(instance) {
|
|
212
253
|
const ws = await import("ws");
|
|
213
254
|
const { WebSocketServer } = ws;
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
255
|
+
const graphqlWsServer = (0, graphql_ws_1.makeServer)((0, utils_js_1.makeGraphQLWSConfig)(instance));
|
|
256
|
+
const wsServer = new WebSocketServer({ noServer: true });
|
|
257
|
+
const onUpgrade = (req, socket, head) => {
|
|
258
|
+
wsServer.handleUpgrade(req, socket, head, function done(ws) {
|
|
259
|
+
wsServer.emit("connection", ws, req);
|
|
260
|
+
});
|
|
261
|
+
};
|
|
217
262
|
const onConnection = (socket, request) => {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
263
|
+
// a new socket opened, let graphql-ws take over
|
|
264
|
+
const closed = graphqlWsServer.opened({
|
|
265
|
+
protocol: socket.protocol,
|
|
266
|
+
send: (data) => new Promise((resolve, reject) => {
|
|
267
|
+
socket.send(data, (err) => (err ? reject(err) : resolve()));
|
|
268
|
+
}),
|
|
269
|
+
close: (code, reason) => socket.close(code, reason),
|
|
270
|
+
onMessage: (cb) => socket.on("message", async (event) => {
|
|
271
|
+
try {
|
|
272
|
+
// wait for the the operation to complete
|
|
273
|
+
// - if init message, waits for connect
|
|
274
|
+
// - if query/mutation, waits for result
|
|
275
|
+
// - if subscription, waits for complete
|
|
276
|
+
await cb(event.toString());
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
233
279
|
try {
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
|
|
237
|
-
// - if subscription, waits for complete
|
|
238
|
-
await cb(event.toString());
|
|
280
|
+
// all errors that could be thrown during the
|
|
281
|
+
// execution of operations will be caught here
|
|
282
|
+
socket.close(graphql_ws_1.CloseCode.InternalServerError, err.message);
|
|
239
283
|
}
|
|
240
|
-
catch
|
|
241
|
-
|
|
242
|
-
// all errors that could be thrown during the
|
|
243
|
-
// execution of operations will be caught here
|
|
244
|
-
socket.close(graphql_ws_1.CloseCode.InternalServerError, err.message);
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
/*noop*/
|
|
248
|
-
}
|
|
284
|
+
catch {
|
|
285
|
+
/*noop*/
|
|
249
286
|
}
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
287
|
+
}
|
|
288
|
+
}),
|
|
289
|
+
},
|
|
290
|
+
// pass values to the `extra` field in the context
|
|
291
|
+
{ socket, request });
|
|
292
|
+
// notify server that the socket closed
|
|
293
|
+
socket.once("close", closed);
|
|
257
294
|
};
|
|
258
|
-
const graphqlWsServer = (0, graphql_ws_1.makeServer)((0, utils_js_1.makeGraphQLWSConfig)(instance));
|
|
259
|
-
const wsServer = new WebSocketServer({ noServer: true });
|
|
260
|
-
server.on("upgrade", onUpgrade);
|
|
261
295
|
wsServer.on("connection", onConnection);
|
|
262
296
|
instance.onRelease(() => {
|
|
263
297
|
wsServer.off("connection", onConnection);
|
|
264
|
-
server.off("upgrade", onUpgrade);
|
|
265
298
|
wsServer.close();
|
|
266
299
|
});
|
|
300
|
+
return onUpgrade;
|
|
267
301
|
}
|
|
268
|
-
exports.
|
|
302
|
+
exports.makeNodeUpgradeHandler = makeNodeUpgradeHandler;
|
|
269
303
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/servers/node/index.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/servers/node/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,oBAAoB,EAEpB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,EAEZ,uBAAuB,EACvB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAGzB,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,GAAG,oBAAoB,GAC9C,IAAI,CAaN;AAGD,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAEzE,wBAAgB,cAAc,CAC5B,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAqBpE;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAY5C;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,GAAG,uBAAuB,GAC/C,uBAAuB,CAoBzB;AAED,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAEhC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,oBAAoB,EAEpB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,EAEZ,uBAAuB,EACvB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAGzB,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,GAAG,oBAAoB,GAC9C,IAAI,CAaN;AAGD,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAEzE,wBAAgB,cAAc,CAC5B,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAqBpE;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAY5C;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,GAAG,uBAAuB,GAC/C,uBAAuB,CAoBzB;AAED,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAEhC;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAkCzE"}
|
package/dist/utils.js
CHANGED
|
@@ -122,20 +122,26 @@ function httpError(statusCode, message) {
|
|
|
122
122
|
return Object.assign(new Error(message), { statusCode, safeMessage: true });
|
|
123
123
|
}
|
|
124
124
|
exports.httpError = httpError;
|
|
125
|
+
const $$extra = Symbol("ws-extra");
|
|
125
126
|
function makeGraphQLWSConfig(instance) {
|
|
126
127
|
const { resolvedPreset, dynamicOptions: { maskExecutionResult }, } = instance;
|
|
127
128
|
return {
|
|
129
|
+
context(ctx, msg, args) {
|
|
130
|
+
const context = args.contextValue ?? Object.create(null);
|
|
131
|
+
context[$$extra] = ctx.extra;
|
|
132
|
+
return context;
|
|
133
|
+
},
|
|
128
134
|
schema: async () => instance.getSchema(),
|
|
129
135
|
// PERF: we can remove the async/await and only use when context is async
|
|
130
136
|
execute: async (args) => {
|
|
131
137
|
await (0, grafast_1.hookArgs)(args, {
|
|
132
|
-
|
|
138
|
+
ws: args.contextValue?.[$$extra],
|
|
133
139
|
}, instance.resolvedPreset);
|
|
134
140
|
return maskExecutionResult(await (0, grafast_1.execute)(args, resolvedPreset));
|
|
135
141
|
},
|
|
136
142
|
subscribe: async (args) => {
|
|
137
143
|
await (0, grafast_1.hookArgs)(args, {
|
|
138
|
-
|
|
144
|
+
ws: args.contextValue?.[$$extra],
|
|
139
145
|
}, instance.resolvedPreset);
|
|
140
146
|
return maskExecutionResult(await (0, grafast_1.subscribe)(args, resolvedPreset));
|
|
141
147
|
},
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,qCAAkE;AAMlE,qCAAuC;AAWvC,mDAAsD;AAEtD,SAAgB,YAAY,CAC1B,OAA+C;IAE/C,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;QACxC,OAAO,CAAC,MAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnD,MAAM,GAAG,GACP,CAAC,YAAY,sBAAY;gBACvB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBACZ,CAAC,CAAC,EAAE,OAAO,EAAG,CAAS,CAAC,OAAO,EAAE,GAAI,CAAY,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACxB,OAAO,EAAE,IAAA,mBAAS,EAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,UAAU,EAAE,EAAE,KAAK,EAAE,IAAA,mBAAS,EAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;aAC5D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAfD,oCAeC;AAKD,SAAgB,cAAc,CAC5B,OAA4B;IAE5B,MAAM,YAAY,GAA2B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,SAAS;SACV;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;SACzB;aAAM;YACL,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAhBD,wCAgBC;AAED,SAAgB,kBAAkB,CAChC,GAAa,CAAC,qBAAqB,EACnC,SAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,GAAG,GAAG,SAAS,EAAE;gBACnB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACzB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;aACzC;QACH,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC;AAxBD,gDAwBC;AAED,SAAgB,wBAAwB,CAAC,IAAa;IACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI;SACX,CAAC;KACH;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI;SACb,CAAC;KACH;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;QACnD,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAiB;SACxB,CAAC;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;KACH;AACH,CAAC;AArBD,4DAqBC;AAED,SAAgB,IAAI,CAAI,EAAW;IACjC,IAAI,KAAQ,CAAC;IACb,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,SAAS,QAAQ;QACtB,IAAI,MAAM,EAAE;YACV,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC;AACJ,CAAC;AAZD,oBAYC;AAED,SAAgB,gBAAgB,CAC9B,OAAgD;IAEhD,IAAI,CAAC,OAAO,CAAC,mCAAmB,CAAC,EAAE;QACjC,MAAM,CAAC,GAAG,OAAkC,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE;YAC3B,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAChD;QACD,CAAC,CAAC,mCAAmB,CAAC,GAAG,UAAU,CAAC;QACpC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAE1C,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;YACvB,sEAAsE;YACtE,mDAAmD;YACnD,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;SAClB;KACF;IACD,OAAO,OAAkC,CAAC;AAC5C,CAAC;AAtBD,4CAsBC;AAED,SAAgB,SAAS,CACvB,UAAkB,EAClB,OAAe;IAEf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC;AALD,8BAKC;AAED,SAAgB,mBAAmB,CAAC,QAAsB;IACxD,MAAM,EACJ,cAAc,EACd,cAAc,EAAE,EAAE,mBAAmB,EAAE,GACxC,GAAG,QAAQ,CAAC;IACb,OAAO;QACL,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;QACxC,yEAAyE;QACzE,OAAO,EAAE,KAAK,EAAE,IAAmB,EAAE,EAAE;YACrC,MAAM,IAAA,kBAAQ,EACZ,IAAI,EACJ;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "grafserv",
|
|
3
|
-
"version": "0.0.1-0.
|
|
3
|
+
"version": "0.0.1-0.22",
|
|
4
4
|
"description": "A highly optimized server for GraphQL, powered by Grafast",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"node": ">=16.10"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
|
-
"grafast": "^0.0.1-0.
|
|
65
|
+
"grafast": "^0.0.1-0.20",
|
|
66
66
|
"graphql": "^16.1.0-experimental-stream-defer.6",
|
|
67
67
|
"ws": "^8.12.1"
|
|
68
68
|
},
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@whatwg-node/fetch": "^0.8.1",
|
|
79
79
|
"express": "^4.18.2",
|
|
80
80
|
"fastify": "^4.12.0",
|
|
81
|
-
"grafast": "^0.0.1-0.
|
|
81
|
+
"grafast": "^0.0.1-0.20",
|
|
82
82
|
"graphql-http": "^1.16.0",
|
|
83
83
|
"jest": "^28.1.0",
|
|
84
84
|
"jest-serializer-graphql-schema": "^5.0.0-0.3",
|