grafserv 0.1.1-beta.2 → 0.1.1-beta.21
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 +364 -0
- package/README.md +3 -5
- package/dist/core/base.d.ts +14 -7
- package/dist/core/base.d.ts.map +1 -1
- package/dist/core/base.js +271 -38
- package/dist/core/base.js.map +1 -1
- package/dist/envelop/index.d.ts +19 -0
- package/dist/envelop/index.d.ts.map +1 -0
- package/dist/envelop/index.js +71 -0
- package/dist/envelop/index.js.map +1 -0
- package/dist/hooks.d.ts +6 -2
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +64 -10
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +118 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +38 -100
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/middleware/graphiql.d.ts +3 -1
- package/dist/middleware/graphiql.d.ts.map +1 -1
- package/dist/middleware/graphiql.js +8 -5
- package/dist/middleware/graphiql.js.map +1 -1
- package/dist/middleware/graphql.d.ts +4 -4
- package/dist/middleware/graphql.d.ts.map +1 -1
- package/dist/middleware/graphql.js +43 -69
- package/dist/middleware/graphql.js.map +1 -1
- package/dist/options.d.ts +4 -2
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +7 -4
- package/dist/options.js.map +1 -1
- package/dist/servers/fastify/v4/index.d.ts.map +1 -1
- package/dist/servers/fastify/v4/index.js +33 -27
- package/dist/servers/fastify/v4/index.js.map +1 -1
- package/dist/servers/h3/v1/index.d.ts +2 -10
- package/dist/servers/h3/v1/index.d.ts.map +1 -1
- package/dist/servers/h3/v1/index.js +39 -41
- package/dist/servers/h3/v1/index.js.map +1 -1
- package/dist/servers/node/index.d.ts.map +1 -1
- package/dist/servers/node/index.js +3 -0
- package/dist/servers/node/index.js.map +1 -1
- package/dist/utils.d.ts +7 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +90 -98
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +23 -9
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAExC,qDAA2D;AAE3D,8EAA8E;AAC9E,kDAAkD;AAClD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1C,SAAgB,qBAAqB,CACnC,cAEC;IAED,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE;QAChC,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;KACrC;IACD,IAAI,UAAU,GAAyD,IAAI,CAAC;IAC5E,IAAA,8BAAY,EACV,cAAc,CAAC,OAAO,EACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAC7B,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QACpB,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,IAAI,4BAAU,EAAE,CAAC;QAC/C,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAS,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;IAEF,4CAA4C;IAC5C,IAAA,8BAAY,EACV,cAAc,CAAC,OAAO,EACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EACxB,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QACpB,SAAS,cAAc,CAAC,MAAW,EAAE,IAAyB;YAC5D,IAAI,IAAA,uBAAa,EAAC,MAAM,CAAC,EAAE;gBACzB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM;gBACL,OAAO,IAAI,EAAE,CAAC;aACf;QACH,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,IAAI,4BAAU,EAAE,CAAC;QAC/C,6CAA6C;QAC7C,QAAQ,IAAI,EAAE;YACZ,KAAK,MAAM,CAAC,CAAC;gBACX,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC/C,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;oBACjC,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC7C,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,MAAM;aACP;YACD,KAAK,eAAe,CAAC,CAAC;gBACpB,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACnD,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;oBACrD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE;wBAC/C,OAAO;qBACR,CAAC,CAAC;oBACH,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,MAAM;aACP;YACD,KAAK,2BAA2B,CAAC,CAAC;gBAChC,UAAU,CAAC,QAAQ,CAAC,2BAA2B,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC/D,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;oBACjC,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC7C,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,MAAM;aACP;SACF;IACH,CAAC,CACF,CAAC;IAEF,IAAI;QACF,cAAc,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;KAC3C;IAAC,MAAM;QACN,mCAAmC;KACpC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AArED,sDAqEC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,122 @@
|
|
|
1
|
+
import type { PromiseOrDirect } from "grafast";
|
|
2
|
+
import type { ExecutionArgs, GraphQLError } from "grafast/graphql";
|
|
3
|
+
import type { CallbackOrDescriptor, MiddlewareHandlers } from "graphile-config";
|
|
4
|
+
import type { RuruHTMLParts } from "ruru/server";
|
|
5
|
+
import type { GrafservPluginContext, InitEvent, MaskErrorFn, NormalizedRequestDigest, OnSubscribeEvent, ProcessGraphQLRequestBodyEvent, ProcessRequestEvent, RequestContentType, Result, RuruHTMLPartsEvent } from "./interfaces.js";
|
|
1
6
|
export { convertErrorToErrorResult, convertHandlerResultToResult, GrafservBase, } from "./core/base.js";
|
|
2
|
-
export type { BufferResult, BufferStreamResult, ErrorResult, EventStreamHeandlerResult, GrafservBody, GrafservBodyBuffer, GrafservBodyJSON, GrafservBodyText, GrafservConfig, GraphQLHandlerResult, GraphQLIncrementalHandlerResult, HandlerResult, HTMLHandlerResult, JSONObject, JSONResult, JSONValue, NoContentHandlerResult, NoContentResult, NormalizedRequestDigest, ParsedGraphQLBody, ProcessGraphQLRequestBodyEvent, RequestDigest, Result, TextHandlerResult, ValidatedGraphQLBody, } from "./interfaces.js";
|
|
7
|
+
export type { BufferResult, BufferStreamResult, ErrorResult, EventStreamHeandlerResult, ExecutionConfig, GrafservBody, GrafservBodyBuffer, GrafservBodyJSON, GrafservBodyText, GrafservConfig, GraphQLHandlerResult, GraphQLIncrementalHandlerResult, HandlerResult, HTMLHandlerResult, JSONObject, JSONResult, JSONValue, NoContentHandlerResult, NoContentResult, NormalizedRequestDigest, ParsedGraphQLBody, ProcessGraphQLRequestBodyEvent, RequestDigest, Result, TextHandlerResult, ValidatedGraphQLBody, } from "./interfaces.js";
|
|
3
8
|
export { DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES } from "./middleware/graphql.js";
|
|
9
|
+
export { defaultMaskError } from "./options.js";
|
|
4
10
|
export { getBodyFromFrameworkBody, getBodyFromRequest, handleErrors, httpError, makeGraphQLWSConfig, memo, normalizeRequest, parseGraphQLJSONBody, processHeaders, } from "./utils.js";
|
|
11
|
+
declare global {
|
|
12
|
+
namespace Grafast {
|
|
13
|
+
interface RequestContext {
|
|
14
|
+
http?: NormalizedRequestDigest;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
namespace GraphileConfig {
|
|
18
|
+
interface Preset {
|
|
19
|
+
/**
|
|
20
|
+
* Configuration options for Grafserv
|
|
21
|
+
*/
|
|
22
|
+
grafserv?: GrafservOptions;
|
|
23
|
+
}
|
|
24
|
+
interface Plugin {
|
|
25
|
+
grafserv?: {
|
|
26
|
+
/** @deprecated Please use middleware instead */
|
|
27
|
+
hooks?: {
|
|
28
|
+
[key in keyof GrafservHooks]?: CallbackOrDescriptor<GrafservHooks[key] extends (...args: infer UArgs) => infer UResult ? (info: GrafservPluginContext, ...args: UArgs) => UResult : never>;
|
|
29
|
+
};
|
|
30
|
+
middleware?: MiddlewareHandlers<GrafservMiddleware>;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
interface GrafservOptions {
|
|
34
|
+
/** Port number to listen on */
|
|
35
|
+
port?: number;
|
|
36
|
+
/** Host to listen on */
|
|
37
|
+
host?: string;
|
|
38
|
+
/** The path at which GraphQL will be available; usually /graphql */
|
|
39
|
+
graphqlPath?: string;
|
|
40
|
+
/** The path at which the GraphQL event stream would be made available; usually /graphql/stream */
|
|
41
|
+
eventStreamPath?: string;
|
|
42
|
+
/** If true, allow GraphQL over GET requests. This has security ramifications, exercise caution. */
|
|
43
|
+
graphqlOverGET?: boolean;
|
|
44
|
+
graphiql?: boolean;
|
|
45
|
+
/** If true, then we will render GraphiQL on GET requests to the /graphql endpoint */
|
|
46
|
+
graphiqlOnGraphQLGET?: boolean;
|
|
47
|
+
/** The path at which GraphiQL will be available; usually / */
|
|
48
|
+
graphiqlPath?: string;
|
|
49
|
+
/** Set true to enable watch mode */
|
|
50
|
+
watch?: boolean;
|
|
51
|
+
/** The length, in bytes, for the largest request body that grafserv will accept */
|
|
52
|
+
maxRequestLength?: number;
|
|
53
|
+
/** How long (in milliseconds) should we wait for a schema promise to resolve before sending a failure to the client? */
|
|
54
|
+
schemaWaitTime?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Use grafast 'string' optimization - response will be partially stringified
|
|
57
|
+
* already, use `stringifyPayload` before sending to the user
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
*
|
|
61
|
+
* This is a `grafserv` option rather than a `grafast` option because the
|
|
62
|
+
* server is responsible for stringifying the body before sending it to the
|
|
63
|
+
* user, via `stringifyPayload`. If we were to make this a `grafast` option
|
|
64
|
+
* then everything using grafast would be affected by it, and code expecting
|
|
65
|
+
* objects would break.
|
|
66
|
+
*/
|
|
67
|
+
outputDataAsString?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Temporary hack to allow easy testing with graphql-http.com
|
|
70
|
+
*/
|
|
71
|
+
dangerouslyAllowAllCORSRequests?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Should we enable a websockets transport if available?
|
|
74
|
+
*/
|
|
75
|
+
websockets?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* If you would like to customize the way in which errors are masked, you may
|
|
78
|
+
* pass your own error masking function here. You can also import
|
|
79
|
+
* `defaultMaskError` from `grafserv`.
|
|
80
|
+
*/
|
|
81
|
+
maskError?: MaskErrorFn;
|
|
82
|
+
/**
|
|
83
|
+
* By default `application/json` and `application/graphql` are supported
|
|
84
|
+
* (`DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES`). You may add
|
|
85
|
+
* `application/x-www-form-urlencoded` to the list, but be aware that
|
|
86
|
+
* doing so potentially opens you to CSRF issues even if you're not using
|
|
87
|
+
* CORS since this media type is handled specially by browsers - ensure
|
|
88
|
+
* that you have CSRF protections in place.
|
|
89
|
+
*
|
|
90
|
+
* Note further that if you're using CORS the other media types are not
|
|
91
|
+
* safe, and you should still use CSRF protection.
|
|
92
|
+
*/
|
|
93
|
+
allowedRequestContentTypes?: readonly RequestContentType[];
|
|
94
|
+
/**
|
|
95
|
+
* How many documents should we cache the parse and validate result for?
|
|
96
|
+
*
|
|
97
|
+
* @defaultValue `500`
|
|
98
|
+
*/
|
|
99
|
+
parseAndValidateCacheSize?: number;
|
|
100
|
+
}
|
|
101
|
+
/** @deprecated Please use middleware instead */
|
|
102
|
+
interface GrafservHooks {
|
|
103
|
+
/** @deprecated Please use middleware instead */
|
|
104
|
+
init(event: InitEvent): PromiseOrDirect<void>;
|
|
105
|
+
/** @deprecated Please use middleware instead */
|
|
106
|
+
processGraphQLRequestBody(event: ProcessGraphQLRequestBodyEvent): PromiseOrDirect<void>;
|
|
107
|
+
/** @deprecated Please use middleware instead */
|
|
108
|
+
ruruHTMLParts(parts: RuruHTMLParts, extra: {
|
|
109
|
+
request: NormalizedRequestDigest;
|
|
110
|
+
}): PromiseOrDirect<void>;
|
|
111
|
+
}
|
|
112
|
+
interface GrafservMiddleware {
|
|
113
|
+
setPreset(event: InitEvent): PromiseOrDirect<void>;
|
|
114
|
+
processRequest(event: ProcessRequestEvent): PromiseOrDirect<Result | null>;
|
|
115
|
+
processGraphQLRequestBody(event: ProcessGraphQLRequestBodyEvent): PromiseOrDirect<void>;
|
|
116
|
+
ruruHTMLParts(event: RuruHTMLPartsEvent): PromiseOrDirect<void>;
|
|
117
|
+
onSubscribe(event: OnSubscribeEvent): TruePromiseOrDirect<void | readonly GraphQLError[] | ExecutionArgs>;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export type TruePromiseOrDirect<T> = Promise<T> | T;
|
|
5
122
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,EAC9B,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,IAAI,EACJ,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EACV,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,EAC9B,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,IAAI,EACJ,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,cAAc;YACtB,IAAI,CAAC,EAAE,uBAAuB,CAAC;SAChC;KACF;IAED,UAAU,cAAc,CAAC;QACvB,UAAU,MAAM;YACd;;eAEG;YACH,QAAQ,CAAC,EAAE,eAAe,CAAC;SAC5B;QACD,UAAU,MAAM;YACd,QAAQ,CAAC,EAAE;gBACT,gDAAgD;gBAChD,KAAK,CAAC,EAAE;qBACL,GAAG,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,oBAAoB,CACjD,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,KAAK,MAAM,OAAO,GAC9D,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,GACxD,KAAK,CACV;iBACF,CAAC;gBACF,UAAU,CAAC,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;aACrD,CAAC;SACH;QACD,UAAU,eAAe;YACvB,+BAA+B;YAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,wBAAwB;YACxB,IAAI,CAAC,EAAE,MAAM,CAAC;YAEd,oEAAoE;YACpE,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,kGAAkG;YAClG,eAAe,CAAC,EAAE,MAAM,CAAC;YAEzB,mGAAmG;YACnG,cAAc,CAAC,EAAE,OAAO,CAAC;YAEzB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,qFAAqF;YACrF,oBAAoB,CAAC,EAAE,OAAO,CAAC;YAC/B,8DAA8D;YAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;YAEtB,oCAAoC;YACpC,KAAK,CAAC,EAAE,OAAO,CAAC;YAEhB,mFAAmF;YACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,wHAAwH;YACxH,cAAc,CAAC,EAAE,MAAM,CAAC;YAExB;;;;;;;;;;;eAWG;YACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAE7B;;eAEG;YACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;YAE1C;;eAEG;YACH,UAAU,CAAC,EAAE,OAAO,CAAC;YAErB;;;;eAIG;YACH,SAAS,CAAC,EAAE,WAAW,CAAC;YAExB;;;;;;;;;;eAUG;YACH,0BAA0B,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;YAE3D;;;;eAIG;YACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;SACpC;QAED,gDAAgD;QAChD,UAAU,aAAa;YACrB,gDAAgD;YAChD,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9C,gDAAgD;YAChD,yBAAyB,CACvB,KAAK,EAAE,8BAA8B,GACpC,eAAe,CAAC,IAAI,CAAC,CAAC;YACzB,gDAAgD;YAChD,aAAa,CACX,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE;gBACL,OAAO,EAAE,uBAAuB,CAAC;aAClC,GACA,eAAe,CAAC,IAAI,CAAC,CAAC;SAC1B;QACD,UAAU,kBAAkB;YAC1B,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACnD,cAAc,CACZ,KAAK,EAAE,mBAAmB,GACzB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YAClC,yBAAyB,CACvB,KAAK,EAAE,8BAA8B,GACpC,eAAe,CAAC,IAAI,CAAC,CAAC;YACzB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,WAAW,CACT,KAAK,EAAE,gBAAgB,GACtB,mBAAmB,CAAC,IAAI,GAAG,SAAS,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;SACxE;KACF;CACF;AACD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processHeaders = exports.parseGraphQLJSONBody = exports.normalizeRequest = exports.memo = exports.makeGraphQLWSConfig = exports.httpError = exports.handleErrors = exports.getBodyFromRequest = exports.getBodyFromFrameworkBody = exports.DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES = exports.GrafservBase = exports.convertHandlerResultToResult = exports.convertErrorToErrorResult = void 0;
|
|
3
|
+
exports.processHeaders = exports.parseGraphQLJSONBody = exports.normalizeRequest = exports.memo = exports.makeGraphQLWSConfig = exports.httpError = exports.handleErrors = exports.getBodyFromRequest = exports.getBodyFromFrameworkBody = exports.defaultMaskError = exports.DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES = exports.GrafservBase = exports.convertHandlerResultToResult = exports.convertErrorToErrorResult = void 0;
|
|
4
4
|
var base_js_1 = require("./core/base.js");
|
|
5
5
|
Object.defineProperty(exports, "convertErrorToErrorResult", { enumerable: true, get: function () { return base_js_1.convertErrorToErrorResult; } });
|
|
6
6
|
Object.defineProperty(exports, "convertHandlerResultToResult", { enumerable: true, get: function () { return base_js_1.convertHandlerResultToResult; } });
|
|
7
7
|
Object.defineProperty(exports, "GrafservBase", { enumerable: true, get: function () { return base_js_1.GrafservBase; } });
|
|
8
8
|
var graphql_js_1 = require("./middleware/graphql.js");
|
|
9
9
|
Object.defineProperty(exports, "DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES", { enumerable: true, get: function () { return graphql_js_1.DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES; } });
|
|
10
|
+
var options_js_1 = require("./options.js");
|
|
11
|
+
Object.defineProperty(exports, "defaultMaskError", { enumerable: true, get: function () { return options_js_1.defaultMaskError; } });
|
|
10
12
|
var utils_js_1 = require("./utils.js");
|
|
11
13
|
Object.defineProperty(exports, "getBodyFromFrameworkBody", { enumerable: true, get: function () { return utils_js_1.getBodyFromFrameworkBody; } });
|
|
12
14
|
Object.defineProperty(exports, "getBodyFromRequest", { enumerable: true, get: function () { return utils_js_1.getBodyFromRequest; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAkBA,0CAIwB;AAHtB,oHAAA,yBAAyB,OAAA;AACzB,uHAAA,4BAA4B,OAAA;AAC5B,uGAAA,YAAY,OAAA;AA8Bd,sDAAgF;AAAvE,mIAAA,qCAAqC,OAAA;AAC9C,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,uCAUoB;AATlB,oHAAA,wBAAwB,OAAA;AACxB,8GAAA,kBAAkB,OAAA;AAClB,wGAAA,YAAY,OAAA;AACZ,qGAAA,SAAS,OAAA;AACT,+GAAA,mBAAmB,OAAA;AACnB,gGAAA,IAAI,OAAA;AACJ,4GAAA,gBAAgB,OAAA;AAChB,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA"}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import "graphile-config";
|
|
3
|
-
import type { PromiseOrDirect, SafeError } from "grafast";
|
|
4
|
-
import type { AsyncExecutionResult,
|
|
5
|
-
import type {
|
|
6
|
-
import type { Context } from "graphql-ws";
|
|
3
|
+
import type { execute, PromiseOrDirect, SafeError, subscribe } from "grafast";
|
|
4
|
+
import type { AsyncExecutionResult, FormattedExecutionResult, GraphQLError, GraphQLFormattedError, GraphQLSchema, ValidationRule } from "grafast/graphql";
|
|
5
|
+
import type { Context, SubscribeMessage } from "graphql-ws";
|
|
7
6
|
import type { RuruHTMLParts } from "ruru/server";
|
|
7
|
+
import type { GrafservBase } from ".";
|
|
8
|
+
import type { makeParseAndValidateFunction } from "./middleware/graphql";
|
|
8
9
|
import type { OptionsFromConfig } from "./options";
|
|
9
10
|
export type ContextCallback = (requestContext: Grafast.RequestContext) => Grafast.Context;
|
|
10
11
|
export interface GrafservConfig {
|
|
@@ -38,101 +39,33 @@ export interface ValidatedGraphQLBody {
|
|
|
38
39
|
export interface GrafservPluginContext {
|
|
39
40
|
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
40
41
|
}
|
|
42
|
+
export interface SetPresetEvent {
|
|
43
|
+
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
44
|
+
getExecutionConfig: (this: GrafservBase, ctx: Partial<Grafast.RequestContext>) => PromiseOrDirect<ExecutionConfig>;
|
|
45
|
+
validationRules: ValidationRule[];
|
|
46
|
+
}
|
|
47
|
+
/** @deprecated Use SetPresetEvent instead */
|
|
48
|
+
export type InitEvent = SetPresetEvent;
|
|
41
49
|
export interface ProcessGraphQLRequestBodyEvent {
|
|
50
|
+
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
42
51
|
body: ParsedGraphQLBody;
|
|
43
52
|
request?: NormalizedRequestDigest;
|
|
44
53
|
graphqlWsContext?: Context;
|
|
45
54
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
grafserv?: {
|
|
61
|
-
hooks?: {
|
|
62
|
-
[key in keyof GrafservHooks]?: PluginHook<GrafservHooks[key] extends (...args: infer UArgs) => infer UResult ? (info: GrafservPluginContext, ...args: UArgs) => UResult : never>;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
interface GrafservOptions {
|
|
67
|
-
/** Port number to listen on */
|
|
68
|
-
port?: number;
|
|
69
|
-
/** Host to listen on */
|
|
70
|
-
host?: string;
|
|
71
|
-
/** The path at which GraphQL will be available; usually /graphql */
|
|
72
|
-
graphqlPath?: string;
|
|
73
|
-
/** The path at which the GraphQL event stream would be made available; usually /graphql/stream */
|
|
74
|
-
eventStreamPath?: string;
|
|
75
|
-
/** If true, allow GraphQL over GET requests. This has security ramifications, exercise caution. */
|
|
76
|
-
graphqlOverGET?: boolean;
|
|
77
|
-
graphiql?: boolean;
|
|
78
|
-
/** If true, then we will render GraphiQL on GET requests to the /graphql endpoint */
|
|
79
|
-
graphiqlOnGraphQLGET?: boolean;
|
|
80
|
-
/** The path at which GraphiQL will be available; usually / */
|
|
81
|
-
graphiqlPath?: string;
|
|
82
|
-
/** Set true to enable watch mode */
|
|
83
|
-
watch?: boolean;
|
|
84
|
-
/** The length, in bytes, for the largest request body that grafserv will accept */
|
|
85
|
-
maxRequestLength?: number;
|
|
86
|
-
/** How long (in milliseconds) should we wait for a schema promise to resolve before sending a failure to the client? */
|
|
87
|
-
schemaWaitTime?: number;
|
|
88
|
-
/**
|
|
89
|
-
* Use grafast 'string' optimization - response will be partially stringified
|
|
90
|
-
* already, use `stringifyPayload` before sending to the user
|
|
91
|
-
*
|
|
92
|
-
* @remarks
|
|
93
|
-
*
|
|
94
|
-
* This is a `grafserv` option rather than a `grafast` option because the
|
|
95
|
-
* server is responsible for stringifying the body before sending it to the
|
|
96
|
-
* user, via `stringifyPayload`. If we were to make this a `grafast` option
|
|
97
|
-
* then everything using grafast would be affected by it, and code expecting
|
|
98
|
-
* objects would break.
|
|
99
|
-
*/
|
|
100
|
-
outputDataAsString?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Temporary hack to allow easy testing with graphql-http.com
|
|
103
|
-
*/
|
|
104
|
-
dangerouslyAllowAllCORSRequests?: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Should we enable a websockets transport if available?
|
|
107
|
-
*/
|
|
108
|
-
websockets?: boolean;
|
|
109
|
-
/**
|
|
110
|
-
* If you would like to customize the way in which errors are masked, you may
|
|
111
|
-
* pass your own error masking function here. You can also import
|
|
112
|
-
* `defaultMaskError` from `grafserv`.
|
|
113
|
-
*/
|
|
114
|
-
maskError?: (error: GraphQLError) => GraphQLError;
|
|
115
|
-
/**
|
|
116
|
-
* By default `application/json` and `application/graphql` are supported
|
|
117
|
-
* (`DEFAULT_ALLOWED_REQUEST_CONTENT_TYPES`). You may add
|
|
118
|
-
* `application/x-www-form-urlencoded` to the list, but be aware that
|
|
119
|
-
* doing so potentially opens you to CSRF issues even if you're not using
|
|
120
|
-
* CORS since this media type is handled specially by browsers - ensure
|
|
121
|
-
* that you have CSRF protections in place.
|
|
122
|
-
*
|
|
123
|
-
* Note further that if you're using CORS the other media types are not
|
|
124
|
-
* safe, and you should still use CSRF protection.
|
|
125
|
-
*/
|
|
126
|
-
allowedRequestContentTypes?: readonly RequestContentType[];
|
|
127
|
-
}
|
|
128
|
-
interface GrafservHooks {
|
|
129
|
-
init(event: Record<string, never>): PromiseOrDirect<void>;
|
|
130
|
-
processGraphQLRequestBody(event: ProcessGraphQLRequestBodyEvent): PromiseOrDirect<void>;
|
|
131
|
-
ruruHTMLParts(parts: RuruHTMLParts, extra: {
|
|
132
|
-
request: NormalizedRequestDigest;
|
|
133
|
-
}): PromiseOrDirect<void>;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
55
|
+
export interface ProcessRequestEvent {
|
|
56
|
+
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
57
|
+
requestDigest: RequestDigest;
|
|
58
|
+
instance: GrafservBase;
|
|
59
|
+
}
|
|
60
|
+
export interface RuruHTMLPartsEvent {
|
|
61
|
+
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
62
|
+
htmlParts: RuruHTMLParts;
|
|
63
|
+
request: NormalizedRequestDigest;
|
|
64
|
+
}
|
|
65
|
+
export interface OnSubscribeEvent {
|
|
66
|
+
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
67
|
+
ctx: Context<Record<string, unknown> | undefined, unknown>;
|
|
68
|
+
message: SubscribeMessage;
|
|
136
69
|
}
|
|
137
70
|
export interface GrafservBodyBuffer {
|
|
138
71
|
type: "buffer";
|
|
@@ -172,11 +105,6 @@ export interface RequestDigest {
|
|
|
172
105
|
export interface NormalizedRequestDigest extends RequestDigest {
|
|
173
106
|
method: "GET" | "POST" | string;
|
|
174
107
|
preferJSON: boolean;
|
|
175
|
-
/**
|
|
176
|
-
* As 'headers', but with the keys lowercased
|
|
177
|
-
* @internal
|
|
178
|
-
*/
|
|
179
|
-
[$$normalizedHeaders]: Record<string, string>;
|
|
180
108
|
getHeader(name: string): string | undefined;
|
|
181
109
|
/** @deprecated use getHeader unless the original case is essential. */
|
|
182
110
|
headers: Record<string, string>;
|
|
@@ -198,7 +126,7 @@ export interface TextHandlerResult extends IHandlerResult {
|
|
|
198
126
|
export interface GraphQLHandlerResult extends IHandlerResult {
|
|
199
127
|
type: "graphql";
|
|
200
128
|
contentType: string;
|
|
201
|
-
payload:
|
|
129
|
+
payload: FormattedExecutionResult;
|
|
202
130
|
outputDataAsString?: boolean;
|
|
203
131
|
}
|
|
204
132
|
/** @see {@link https://github.com/glasser/graphql-over-http/blob/dac9638459bb17dd3ade889334fc2fadee9d11e5/rfcs/IncrementalDelivery.md} */
|
|
@@ -264,5 +192,15 @@ export interface NoContentResult {
|
|
|
264
192
|
headers: Record<string, string>;
|
|
265
193
|
}
|
|
266
194
|
export type Result = ErrorResult | BufferResult | JSONResult | BufferStreamResult | NoContentResult;
|
|
195
|
+
export type DynamicOptions = OptionsFromConfig & InitEvent;
|
|
196
|
+
export interface ExecutionConfig {
|
|
197
|
+
schema: GraphQLSchema;
|
|
198
|
+
parseAndValidate: ReturnType<typeof makeParseAndValidateFunction>;
|
|
199
|
+
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
200
|
+
execute: typeof execute;
|
|
201
|
+
subscribe: typeof subscribe;
|
|
202
|
+
contextValue: Record<string, any>;
|
|
203
|
+
}
|
|
204
|
+
export type MaskErrorFn = (error: GraphQLError) => GraphQLError | GraphQLFormattedError;
|
|
267
205
|
export {};
|
|
268
206
|
//# sourceMappingURL=interfaces.d.ts.map
|
package/dist/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAkHZ,QAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { PromiseOrDirect } from "grafast";
|
|
2
|
+
import type { Middleware } from "graphile-config";
|
|
1
3
|
import type { HandlerResult, NormalizedRequestDigest } from "../interfaces.js";
|
|
2
4
|
import type { OptionsFromConfig } from "../options.js";
|
|
3
|
-
export declare function makeGraphiQLHandler(resolvedPreset: GraphileConfig.ResolvedPreset, dynamicOptions: OptionsFromConfig): (request: NormalizedRequestDigest) =>
|
|
5
|
+
export declare function makeGraphiQLHandler(resolvedPreset: GraphileConfig.ResolvedPreset, middleware: Middleware<GraphileConfig.GrafservMiddleware> | null, dynamicOptions: OptionsFromConfig): (request: NormalizedRequestDigest) => PromiseOrDirect<HandlerResult>;
|
|
4
6
|
//# sourceMappingURL=graphiql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphiql.d.ts","sourceRoot":"","sources":["../../src/middleware/graphiql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphiql.d.ts","sourceRoot":"","sources":["../../src/middleware/graphiql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAChE,cAAc,EAAE,iBAAiB,GAChC,CAAC,OAAO,EAAE,uBAAuB,KAAK,eAAe,CAAC,aAAa,CAAC,CAyCtE"}
|
|
@@ -2,22 +2,25 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeGraphiQLHandler = void 0;
|
|
4
4
|
const server_1 = require("ruru/server");
|
|
5
|
-
const
|
|
6
|
-
function makeGraphiQLHandler(resolvedPreset, dynamicOptions) {
|
|
5
|
+
const utils_js_1 = require("../utils.js");
|
|
6
|
+
function makeGraphiQLHandler(resolvedPreset, middleware, dynamicOptions) {
|
|
7
7
|
const { htmlParts: htmlPartsFromConfig } = resolvedPreset?.ruru ?? {};
|
|
8
|
-
const hooks = (0, hooks_js_1.getGrafservHooks)(resolvedPreset);
|
|
9
8
|
const unhookedHTMLParts = {
|
|
10
9
|
...server_1.defaultHTMLParts,
|
|
11
10
|
...htmlPartsFromConfig,
|
|
12
11
|
};
|
|
13
12
|
return async (request) => {
|
|
14
13
|
let htmlParts = unhookedHTMLParts;
|
|
15
|
-
if (
|
|
14
|
+
if (middleware != null && middleware.middleware.ruruHTMLParts != null) {
|
|
16
15
|
htmlParts = {
|
|
17
16
|
...(0, server_1.makeHTMLParts)(),
|
|
18
17
|
...htmlPartsFromConfig,
|
|
19
18
|
};
|
|
20
|
-
await
|
|
19
|
+
await middleware.run("ruruHTMLParts", {
|
|
20
|
+
resolvedPreset,
|
|
21
|
+
htmlParts,
|
|
22
|
+
request,
|
|
23
|
+
}, utils_js_1.noop);
|
|
21
24
|
}
|
|
22
25
|
const config = {
|
|
23
26
|
endpoint: dynamicOptions.graphqlPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphiql.js","sourceRoot":"","sources":["../../src/middleware/graphiql.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"graphiql.js","sourceRoot":"","sources":["../../src/middleware/graphiql.ts"],"names":[],"mappings":";;;AAGA,wCAAwE;AAIxE,0CAAmC;AAEnC,SAAgB,mBAAmB,CACjC,cAA6C,EAC7C,UAAgE,EAChE,cAAiC;IAEjC,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC;IACtE,MAAM,iBAAiB,GAAkB;QACvC,GAAG,yBAAgB;QACnB,GAAG,mBAAmB;KACvB,CAAC;IACF,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,IAAI,SAAS,GAAG,iBAAkB,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,EAAE;YACrE,SAAS,GAAG;gBACV,GAAG,IAAA,sBAAa,GAAE;gBAClB,GAAG,mBAAmB;aACvB,CAAC;YACF,MAAM,UAAU,CAAC,GAAG,CAClB,eAAe,EACf;gBACE,cAAc;gBACd,SAAS;gBACT,OAAO;aACR,EACD,eAAI,CACL,CAAC;SACH;QACD,MAAM,MAAM,GAAqB;YAC/B,QAAQ,EAAE,cAAc,CAAC,WAAW;YACpC,2BAA2B;YAC3B,UAAU,EACR,cAAc,CAAC,OAAO,KAAK,IAAI;gBAC7B,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC;gBACrB,CAAC,CAAC,cAAc,CAAC,OAAO,KAAK,KAAK;oBAClC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAE,cAAc,CAAC,OAAiB;SACxC,CAAC;QACF,OAAO;YACL,UAAU,EAAE,GAAG;YACf,OAAO;YACP,cAAc;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC;SAC1D,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA7CD,kDA6CC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { PromiseOrDirect } from "grafast";
|
|
2
2
|
import type { DocumentNode, GraphQLSchema } from "grafast/graphql";
|
|
3
3
|
import * as graphql from "grafast/graphql";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
4
|
+
import type { GrafservBase } from "../index.js";
|
|
5
|
+
import type { DynamicOptions, HandlerResult, NormalizedRequestDigest, ParsedGraphQLBody, ValidatedGraphQLBody } from "../interfaces.js";
|
|
6
6
|
declare const GraphQLError: typeof graphql.GraphQLError;
|
|
7
|
-
export declare function makeParseAndValidateFunction(schema: GraphQLSchema): (query: string) => {
|
|
7
|
+
export declare function makeParseAndValidateFunction(schema: GraphQLSchema, resolvedPreset: GraphileConfig.ResolvedPreset, dynamicOptions: DynamicOptions): (query: string) => {
|
|
8
8
|
document: DocumentNode;
|
|
9
9
|
errors?: undefined;
|
|
10
10
|
} | {
|
|
@@ -24,6 +24,6 @@ export declare const APPLICATION_JSON = "application/json;charset=utf-8";
|
|
|
24
24
|
export declare const APPLICATION_GRAPHQL_RESPONSE_JSON = "application/graphql-response+json;charset=utf-8";
|
|
25
25
|
export declare const TEXT_HTML = "text/html;charset=utf-8";
|
|
26
26
|
export declare function validateGraphQLBody(parsed: ParsedGraphQLBody): ValidatedGraphQLBody;
|
|
27
|
-
export declare const makeGraphQLHandler: (
|
|
27
|
+
export declare const makeGraphQLHandler: (instance: GrafservBase) => (request: NormalizedRequestDigest, graphiqlHandler?: ((request: NormalizedRequestDigest) => PromiseOrDirect<HandlerResult | null>) | undefined) => PromiseOrDirect<HandlerResult | null>;
|
|
28
28
|
export {};
|
|
29
29
|
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/middleware/graphql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/middleware/graphql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAEjB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAI1B,QAAA,MAAyB,YAAY,6BAAqC,CAAC;AAY3E,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,cAAc,EAAE,cAAc,WAcG,MAAM;cAXvB,YAAY;aAAW,SAAS;;eAC/B,SAAS;YAAU,SAAS,oBAAoB,EAAE;EA4CpE;AA6BD;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC,yDAOR,CAAC;AA6G3C,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AACjE,eAAO,MAAM,iCAAiC,oDACK,CAAC;AACpD,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAiBnD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,GACxB,oBAAoB,CAsBtB;AAoOD,eAAO,MAAM,kBAAkB,aAAc,YAAY,eAI5C,uBAAuB,+BAErB,uBAAuB,KAC7B,gBAAgB,aAAa,GAAG,IAAI,CAAC,kBACzC,gBAAgB,aAAa,GAAG,IAAI,CAIxC,CAAC"}
|