@btravstack/graphql-server 0.37.0 → 0.39.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/dist/index.cjs +7 -24
- package/dist/index.d.cts +4 -29
- package/dist/index.d.mts +4 -29
- package/dist/index.mjs +3 -25
- package/package.json +11 -11
package/dist/index.cjs
CHANGED
|
@@ -5,7 +5,6 @@ let _btravstack_core = require("@btravstack/core");
|
|
|
5
5
|
let _btravstack_di = require("@btravstack/di");
|
|
6
6
|
let _btravstack_http_server_internal = require("@btravstack/http-server/internal");
|
|
7
7
|
let unthrown = require("unthrown");
|
|
8
|
-
require("@btravstack/http-server");
|
|
9
8
|
//#region src/field.ts
|
|
10
9
|
/**
|
|
11
10
|
* A resolver's answer from a `Result`, so a modeled failure is never thrown by
|
|
@@ -131,7 +130,7 @@ const graphql = (api, options) => {
|
|
|
131
130
|
}
|
|
132
131
|
let resolved;
|
|
133
132
|
if (requirements !== void 0) {
|
|
134
|
-
const result = await (0, _btravstack_http_server_internal.
|
|
133
|
+
const result = await (0, _btravstack_http_server_internal.resolveRequestScheme)(requirements, authenticators, request).mapErrCases((matcher) => matcher.with(unthrown.P.tag("Unauthenticated"), () => 401).with(unthrown.P.tag("UnderScoped"), () => 403));
|
|
135
134
|
if (result.isDefect()) throw result.cause;
|
|
136
135
|
if (result.isErr()) {
|
|
137
136
|
await yoga.handle(request, response, {
|
|
@@ -165,27 +164,11 @@ const graphql = (api, options) => {
|
|
|
165
164
|
});
|
|
166
165
|
};
|
|
167
166
|
//#endregion
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
});
|
|
175
|
-
const imports = [...options.imports ?? [], starter];
|
|
176
|
-
const provides = [
|
|
177
|
-
options.answerer,
|
|
178
|
-
...options.answerer.authenticators,
|
|
179
|
-
...options.provides ?? []
|
|
180
|
-
];
|
|
181
|
-
return (0, _btravstack_di.Module)(name)({
|
|
182
|
-
imports,
|
|
183
|
-
provides,
|
|
184
|
-
exports: [...(0, _btravstack_http_server_internal.applicationExports)(imports, provides), ...options.exports ?? []],
|
|
185
|
-
needs: options.needs === void 0 ? void 0 : [...options.needs, _btravstack_config.Env]
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
//#endregion
|
|
189
|
-
exports.GraphqlModule = GraphqlModule;
|
|
167
|
+
Object.defineProperty(exports, "GraphqlModule", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
get: function() {
|
|
170
|
+
return _btravstack_http_server_internal.AnswererModule;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
190
173
|
exports.fieldResult = fieldResult;
|
|
191
174
|
exports.graphql = graphql;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { GraphQLError, GraphQLSchema } from "graphql";
|
|
2
2
|
import { AsyncResult, Result } from "unthrown";
|
|
3
3
|
import { IncomingMessage } from "node:http";
|
|
4
|
-
import { ConfigInvalid,
|
|
4
|
+
import { ConfigInvalid, EnvReading } from "@btravstack/config";
|
|
5
5
|
import { OneScheme, Requirements } from "@btravstack/contract";
|
|
6
6
|
import { Observers } from "@btravstack/core";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { AnyPort, Provider, Scope } from "@btravstack/di";
|
|
8
|
+
import { AnswererModule as GraphqlModule, Authenticators, HttpAuth, HttpConfig, HttpHandler, HttpUnit, KindOf, Kinds, Principal, RequiresGate, SchemePortsOf, SchemesFrom, SchemesOf, UnitFor, UnitsNeedsOf, UnitsOf } from "@btravstack/http-server/internal";
|
|
9
9
|
import { Plugin, YogaInitialContext, YogaServerOptions } from "graphql-yoga";
|
|
10
|
-
import { HttpConfig as HttpConfig$1, HttpHandler as HttpHandler$1, HttpOptions, HttpRuntime } from "@btravstack/http-server";
|
|
11
10
|
//#region src/field.d.ts
|
|
12
11
|
/**
|
|
13
12
|
* A resolver's answer from a `Result`, so a modeled failure is never thrown by
|
|
@@ -94,28 +93,4 @@ export declare const graphql: <A extends Authenticators, Units extends UnitsOf<A
|
|
|
94
93
|
units: (Units & { readonly [K in Exclude<keyof Units, Kinds<A>>]: never; }) | undefined;
|
|
95
94
|
};
|
|
96
95
|
//#endregion
|
|
97
|
-
|
|
98
|
-
type AnyAnswerer = Provider<InstanceType<typeof HttpHandler$1>, unknown, unknown> & {
|
|
99
|
-
readonly authenticators: readonly AnyProvider[];
|
|
100
|
-
readonly units: Readonly<Record<string, AnyUnitModule>> | undefined;
|
|
101
|
-
};
|
|
102
|
-
type UnitsOf$1<A> = A extends {
|
|
103
|
-
readonly units: infer U;
|
|
104
|
-
} ? U : never;
|
|
105
|
-
type AuthOf<A> = A extends {
|
|
106
|
-
readonly authenticators: readonly (infer P)[];
|
|
107
|
-
} ? P : never;
|
|
108
|
-
type HttpStarter<Units> = Module<HttpRuntime | HttpConfig$1 | InstanceType<typeof HttpHandler$1> | HttpUnit | CookieSchemes | Observers, ConfigInvalid, HttpServerEnv | UnitsNeedsOf<Units>>;
|
|
109
|
-
type Imports<I extends readonly AnyModule[], A> = readonly [...I, HttpStarter<UnitsOf$1<A>>];
|
|
110
|
-
type Provides<P extends readonly AnyProvider[], A> = readonly (A | AuthOf<A> | P[number])[];
|
|
111
|
-
type EnvAnd<N extends readonly AnyPort[] | undefined> = N extends readonly AnyPort[] ? readonly [...N, typeof Env] : undefined;
|
|
112
|
-
/** Declare a GraphQL HTTP application without repeating runtime or authenticator wiring. */
|
|
113
|
-
export declare const GraphqlModule: <const Name extends string>(name: Name) => <A extends AnyAnswerer, const I extends readonly AnyModule[] = [], const P extends readonly AnyProvider[] = [], const X extends readonly Exportable<Imports<I, A>, Provides<P, A>>[] = [], const N extends readonly AnyPort[] | undefined = undefined>(options: Omit<HttpOptions, "unit" | "cors" | "compression"> & {
|
|
114
|
-
readonly answerer: A;
|
|
115
|
-
readonly imports?: I;
|
|
116
|
-
readonly provides?: P;
|
|
117
|
-
readonly exports?: X;
|
|
118
|
-
readonly needs?: N;
|
|
119
|
-
} & NeedsGate<Imports<I, A>, Provides<P, A>, EnvAnd<N>>) => Module<(Extract<(readonly [typeof HttpRuntime, typeof HttpHandler$1, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> extends (infer T_3) ? T_3 extends Extract<(readonly [typeof HttpRuntime, typeof HttpHandler$1, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> ? T_3 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [typeof HttpRuntime, typeof HttpHandler$1, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number] extends (infer E_1) ? E_1 extends AnyPort ? InstanceType<E_1> : E_1 extends AnyProvider ? InstanceType<E_1["port"]> : never : never), ((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_4) ? T_4 extends P[number] ? T_4 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_5) ? T_5 extends AuthOf<A> ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[1] | ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[1], Exclude<((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_7) ? T_7 extends P[number] ? T_7 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_8) ? T_8 extends AuthOf<A> ? T_8 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[2], ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_9) ? T_9 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_9 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_7) ? T_7 extends P[number] ? T_7 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_8) ? T_8 extends AuthOf<A> ? T_8 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[0]> | Exclude<((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_9) ? T_9 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_9 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[2], ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_9) ? T_9 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_9 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_7) ? T_7 extends P[number] ? T_7 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_8) ? T_8 extends AuthOf<A> ? T_8 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[0]>>;
|
|
120
|
-
//#endregion
|
|
121
|
-
export type { GraphqlContext, GraphqlOptions };
|
|
96
|
+
export { type GraphqlContext, GraphqlModule, type GraphqlOptions };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Plugin, YogaInitialContext, YogaServerOptions } from "graphql-yoga";
|
|
2
|
-
import { ConfigInvalid,
|
|
2
|
+
import { ConfigInvalid, EnvReading } from "@btravstack/config";
|
|
3
3
|
import { Observers } from "@btravstack/core";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { AnyPort, Provider, Scope } from "@btravstack/di";
|
|
5
|
+
import { AnswererModule as GraphqlModule, Authenticators, HttpAuth, HttpConfig, HttpHandler, HttpUnit, KindOf, Kinds, Principal, RequiresGate, SchemePortsOf, SchemesFrom, SchemesOf, UnitFor, UnitsNeedsOf, UnitsOf } from "@btravstack/http-server/internal";
|
|
6
6
|
import { AsyncResult, Result } from "unthrown";
|
|
7
|
-
import { HttpConfig as HttpConfig$1, HttpHandler as HttpHandler$1, HttpOptions, HttpRuntime } from "@btravstack/http-server";
|
|
8
7
|
import { GraphQLError, GraphQLSchema } from "graphql";
|
|
9
8
|
import { IncomingMessage } from "node:http";
|
|
10
9
|
import { OneScheme, Requirements } from "@btravstack/contract";
|
|
@@ -94,28 +93,4 @@ export declare const graphql: <A extends Authenticators, Units extends UnitsOf<A
|
|
|
94
93
|
units: (Units & { readonly [K in Exclude<keyof Units, Kinds<A>>]: never; }) | undefined;
|
|
95
94
|
};
|
|
96
95
|
//#endregion
|
|
97
|
-
|
|
98
|
-
type AnyAnswerer = Provider<InstanceType<typeof HttpHandler$1>, unknown, unknown> & {
|
|
99
|
-
readonly authenticators: readonly AnyProvider[];
|
|
100
|
-
readonly units: Readonly<Record<string, AnyUnitModule>> | undefined;
|
|
101
|
-
};
|
|
102
|
-
type UnitsOf$1<A> = A extends {
|
|
103
|
-
readonly units: infer U;
|
|
104
|
-
} ? U : never;
|
|
105
|
-
type AuthOf<A> = A extends {
|
|
106
|
-
readonly authenticators: readonly (infer P)[];
|
|
107
|
-
} ? P : never;
|
|
108
|
-
type HttpStarter<Units> = Module<HttpRuntime | HttpConfig$1 | InstanceType<typeof HttpHandler$1> | HttpUnit | CookieSchemes | Observers, ConfigInvalid, HttpServerEnv | UnitsNeedsOf<Units>>;
|
|
109
|
-
type Imports<I extends readonly AnyModule[], A> = readonly [...I, HttpStarter<UnitsOf$1<A>>];
|
|
110
|
-
type Provides<P extends readonly AnyProvider[], A> = readonly (A | AuthOf<A> | P[number])[];
|
|
111
|
-
type EnvAnd<N extends readonly AnyPort[] | undefined> = N extends readonly AnyPort[] ? readonly [...N, typeof Env] : undefined;
|
|
112
|
-
/** Declare a GraphQL HTTP application without repeating runtime or authenticator wiring. */
|
|
113
|
-
export declare const GraphqlModule: <const Name extends string>(name: Name) => <A extends AnyAnswerer, const I extends readonly AnyModule[] = [], const P extends readonly AnyProvider[] = [], const X extends readonly Exportable<Imports<I, A>, Provides<P, A>>[] = [], const N extends readonly AnyPort[] | undefined = undefined>(options: Omit<HttpOptions, "unit" | "cors" | "compression"> & {
|
|
114
|
-
readonly answerer: A;
|
|
115
|
-
readonly imports?: I;
|
|
116
|
-
readonly provides?: P;
|
|
117
|
-
readonly exports?: X;
|
|
118
|
-
readonly needs?: N;
|
|
119
|
-
} & NeedsGate<Imports<I, A>, Provides<P, A>, EnvAnd<N>>) => Module<(Extract<(readonly [typeof HttpRuntime, typeof HttpHandler$1, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> extends (infer T_3) ? T_3 extends Extract<(readonly [typeof HttpRuntime, typeof HttpHandler$1, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> ? T_3 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [typeof HttpRuntime, typeof HttpHandler$1, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T) ? T extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | (A extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never) | (P[number] extends (infer T_1) ? T_1 extends P[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) | (AuthOf<A> extends (infer T_2) ? T_2 extends AuthOf<A> ? T_2 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number] extends (infer E_1) ? E_1 extends AnyPort ? InstanceType<E_1> : E_1 extends AnyProvider ? InstanceType<E_1["port"]> : never : never), ((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_4) ? T_4 extends P[number] ? T_4 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_5) ? T_5 extends AuthOf<A> ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[1] | ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[1], Exclude<((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_7) ? T_7 extends P[number] ? T_7 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_8) ? T_8 extends AuthOf<A> ? T_8 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[2], ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_9) ? T_9 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_9 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_7) ? T_7 extends P[number] ? T_7 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_8) ? T_8 extends AuthOf<A> ? T_8 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[0]> | Exclude<((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_9) ? T_9 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_9 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[2], ((readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] extends (infer T_9) ? T_9 extends (readonly [...I, HttpStarter<UnitsOf$1<A>>])[number] ? T_9 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((A extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never) | (P[number] extends (infer T_7) ? T_7 extends P[number] ? T_7 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never) | (AuthOf<A> extends (infer T_8) ? T_8 extends AuthOf<A> ? T_8 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never))[0]>>;
|
|
120
|
-
//#endregion
|
|
121
|
-
export type { GraphqlContext, GraphqlOptions };
|
|
96
|
+
export { type GraphqlContext, GraphqlModule, type GraphqlOptions };
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { createGraphQLError, createYoga, handleStreamOrSingleExecutionResult, maskError } from "graphql-yoga";
|
|
2
2
|
import { Config, Env } from "@btravstack/config";
|
|
3
3
|
import { Observers, observe } from "@btravstack/core";
|
|
4
|
-
import {
|
|
5
|
-
import { HttpConfig, HttpHandler, HttpUnit,
|
|
4
|
+
import { Provider } from "@btravstack/di";
|
|
5
|
+
import { AnswererModule as GraphqlModule, HttpConfig, HttpHandler, HttpUnit, forkUnit, principalOf, resolveRequestScheme, schemeDeps, schemeServices } from "@btravstack/http-server/internal";
|
|
6
6
|
import { P } from "unthrown";
|
|
7
|
-
import "@btravstack/http-server";
|
|
8
7
|
//#region src/field.ts
|
|
9
8
|
/**
|
|
10
9
|
* A resolver's answer from a `Result`, so a modeled failure is never thrown by
|
|
@@ -130,7 +129,7 @@ const graphql = (api, options) => {
|
|
|
130
129
|
}
|
|
131
130
|
let resolved;
|
|
132
131
|
if (requirements !== void 0) {
|
|
133
|
-
const result = await
|
|
132
|
+
const result = await resolveRequestScheme(requirements, authenticators, request).mapErrCases((matcher) => matcher.with(P.tag("Unauthenticated"), () => 401).with(P.tag("UnderScoped"), () => 403));
|
|
134
133
|
if (result.isDefect()) throw result.cause;
|
|
135
134
|
if (result.isErr()) {
|
|
136
135
|
await yoga.handle(request, response, {
|
|
@@ -164,25 +163,4 @@ const graphql = (api, options) => {
|
|
|
164
163
|
});
|
|
165
164
|
};
|
|
166
165
|
//#endregion
|
|
167
|
-
//#region src/graphql-module.ts
|
|
168
|
-
/** Declare a GraphQL HTTP application without repeating runtime or authenticator wiring. */
|
|
169
|
-
const GraphqlModule = (name) => (options) => {
|
|
170
|
-
const starter = httpServer({
|
|
171
|
-
...options,
|
|
172
|
-
unit: options.answerer.units
|
|
173
|
-
});
|
|
174
|
-
const imports = [...options.imports ?? [], starter];
|
|
175
|
-
const provides = [
|
|
176
|
-
options.answerer,
|
|
177
|
-
...options.answerer.authenticators,
|
|
178
|
-
...options.provides ?? []
|
|
179
|
-
];
|
|
180
|
-
return Module(name)({
|
|
181
|
-
imports,
|
|
182
|
-
provides,
|
|
183
|
-
exports: [...applicationExports(imports, provides), ...options.exports ?? []],
|
|
184
|
-
needs: options.needs === void 0 ? void 0 : [...options.needs, Env]
|
|
185
|
-
});
|
|
186
|
-
};
|
|
187
|
-
//#endregion
|
|
188
166
|
export { GraphqlModule, fieldResult, graphql };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@btravstack/graphql-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"description": "The GraphQL Yoga answerer for @btravstack/http-server",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"./package.json": "./package.json"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@btravstack/config": "0.
|
|
45
|
-
"@btravstack/contract": "0.
|
|
46
|
-
"@btravstack/core": "0.
|
|
47
|
-
"@btravstack/di": "0.
|
|
48
|
-
"@btravstack/http-server": "0.
|
|
44
|
+
"@btravstack/config": "0.39.0",
|
|
45
|
+
"@btravstack/contract": "0.39.0",
|
|
46
|
+
"@btravstack/core": "0.39.0",
|
|
47
|
+
"@btravstack/di": "0.39.0",
|
|
48
|
+
"@btravstack/http-server": "0.39.0",
|
|
49
49
|
"@btravstack/tsconfig": "0.4.0",
|
|
50
50
|
"@types/node": "26.6.5",
|
|
51
51
|
"@unthrown/vitest": "5.12.1",
|
|
@@ -59,11 +59,11 @@
|
|
|
59
59
|
"vitest": "5.0.3"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@btravstack/config": "^0.
|
|
63
|
-
"@btravstack/contract": "^0.
|
|
64
|
-
"@btravstack/core": "^0.
|
|
65
|
-
"@btravstack/di": "^0.
|
|
66
|
-
"@btravstack/http-server": "^0.
|
|
62
|
+
"@btravstack/config": "^0.39.0",
|
|
63
|
+
"@btravstack/contract": "^0.39.0",
|
|
64
|
+
"@btravstack/core": "^0.39.0",
|
|
65
|
+
"@btravstack/di": "^0.39.0",
|
|
66
|
+
"@btravstack/http-server": "^0.39.0",
|
|
67
67
|
"graphql": "^16.6.0 || ^17.0.0",
|
|
68
68
|
"graphql-yoga": "^5.24.1",
|
|
69
69
|
"unthrown": "^5.7.0"
|