@leaven-graphql/nestjs 0.2.0 → 0.2.2
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/README.md +2 -0
- package/dist/driver.d.ts +11 -1
- package/dist/driver.d.ts.map +1 -1
- package/dist/graphql-driver.d.ts +6 -0
- package/dist/graphql-driver.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -61
- package/dist/subscriptions.d.ts +4 -1
- package/dist/subscriptions.d.ts.map +1 -1
- package/dist/types.d.ts +14 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -596,6 +596,7 @@ export class SchemaService {
|
|
|
596
596
|
| `cache` | `DocumentCacheConfig \| boolean` | - | Document cache configuration |
|
|
597
597
|
| `maxComplexity` | `number` | - | Maximum query complexity. Enforced by the executor before any resolver runs — an over-budget document is rejected with a `ComplexityError` |
|
|
598
598
|
| `maxDepth` | `number` | - | Maximum query depth. **Only recorded on the context** (as `_queryDepth`) for `DepthGuard`, so it is not enforced on `LeavenModule`'s HTTP path — see the caveat under [Features](#features). The `LeavenGraphQLDriver` path enforces it in the executor |
|
|
599
|
+
| `parseOptions` | `ParseOptions` | `{ maxTokens: 10000 }` | Parser limits (core executor shape). Applied by the executor, the guard query analysis and the subscription transport's operation-type detection, so an oversized document is never parsed in full; over the limit it is rejected through the executor's normal error response. Set `maxTokens: Infinity` to opt out |
|
|
599
600
|
| `metrics` | `boolean` | `false` | Enable execution metrics |
|
|
600
601
|
| `context` | `ContextFactory` | - | Custom context factory |
|
|
601
602
|
| `formatError` | `FormatErrorFn` | - | Error formatting function |
|
|
@@ -704,6 +705,7 @@ constructs a `LeavenExecutor` over it and serves `POST <path>` (plus
|
|
|
704
705
|
| `metrics` | `boolean` | Collect per-operation metrics and expose them under `extensions.metrics` |
|
|
705
706
|
| `maxComplexity` | `number` | Rejected by the executor before any resolver runs |
|
|
706
707
|
| `maxDepth` | `number` | Rejected by the executor at parse time |
|
|
708
|
+
| `parseOptions` | `ParseOptions` | Parser limits for the executor. `maxTokens` defaults to `10000`; `Infinity` opts out |
|
|
707
709
|
| `playground` | `boolean` | Serve GraphiQL on `GET <path>` |
|
|
708
710
|
| `subscriptionEndpoint` | `string` | WebSocket endpoint advertised to GraphiQL |
|
|
709
711
|
| `formatError` | `(error) => error` | Final transformation applied to every response error |
|
package/dist/driver.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type OnModuleInit, type OnModuleDestroy } from '@nestjs/common';
|
|
8
8
|
import { type GraphQLSchema, type DocumentNode } from 'graphql';
|
|
9
|
-
import { LeavenExecutor } from '@leaven-graphql/core';
|
|
9
|
+
import { LeavenExecutor, type ParseOptions } from '@leaven-graphql/core';
|
|
10
10
|
import type { LeavenModuleOptions, GqlContext, GraphQLFormattedError } from './types';
|
|
11
11
|
/**
|
|
12
12
|
* Request handler result
|
|
@@ -22,6 +22,11 @@ export interface HandlerResult<TData = Record<string, unknown>> {
|
|
|
22
22
|
* This driver integrates Leaven's high-performance GraphQL execution
|
|
23
23
|
* with NestJS's dependency injection and module system.
|
|
24
24
|
*/
|
|
25
|
+
/**
|
|
26
|
+
* Default `parseOptions.maxTokens`: generous for real documents, but bounds
|
|
27
|
+
* the lexing, parsing and validation work one request can demand.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_MAX_TOKENS = 10000;
|
|
25
30
|
export declare class LeavenDriver implements OnModuleInit, OnModuleDestroy {
|
|
26
31
|
private executor;
|
|
27
32
|
private schema;
|
|
@@ -55,6 +60,11 @@ export declare class LeavenDriver implements OnModuleInit, OnModuleDestroy {
|
|
|
55
60
|
* Get the current schema
|
|
56
61
|
*/
|
|
57
62
|
getSchema(): GraphQLSchema | null;
|
|
63
|
+
/**
|
|
64
|
+
* Effective parser options: the configured `parseOptions` with `maxTokens`
|
|
65
|
+
* defaulted to {@link DEFAULT_MAX_TOKENS}.
|
|
66
|
+
*/
|
|
67
|
+
getParseOptions(): ParseOptions;
|
|
58
68
|
/**
|
|
59
69
|
* Get the executor instance
|
|
60
70
|
*/
|
package/dist/driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/graphql-driver.d.ts
CHANGED
|
@@ -28,6 +28,12 @@ export interface LeavenDriverConfig extends GqlModuleOptions {
|
|
|
28
28
|
maxComplexity?: number;
|
|
29
29
|
/** Maximum allowed query depth. Enforced by the executor at parse time. */
|
|
30
30
|
maxDepth?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Parser limits passed to the executor, in the core executor's
|
|
33
|
+
* `parseOptions` shape. `maxTokens` defaults to 10000; set it to
|
|
34
|
+
* `Infinity` to opt out.
|
|
35
|
+
*/
|
|
36
|
+
parseOptions?: ExecutorConfig['parseOptions'];
|
|
31
37
|
/** Serve GraphiQL on `GET <path>`. Defaults to `false`. */
|
|
32
38
|
playground?: boolean;
|
|
33
39
|
/** WebSocket endpoint advertised to GraphiQL, when subscriptions are served. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-driver.d.ts","sourceRoot":"","sources":["../src/graphql-driver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAgB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql-driver.d.ts","sourceRoot":"","sources":["../src/graphql-driver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAgB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgD3E;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,sEAAsE;IACtE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC9C,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,qBAAqB,CAAC;IACtE;;;OAGG;IACH,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,mBAAoB,SAAQ,qBAAqB,CAAC,kBAAkB,CAAC;IAChF,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAmC;IAElD;;;;;;OAMG;IACU,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC9D;;;;;;;OAOG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC;;;OAGG;IACI,WAAW,IAAI,cAAc,GAAG,IAAI;IAI3C;;OAEG;YACW,eAAe;IAsE7B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;OAMG;YACW,YAAY;IAqB1B;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO;IAiCf;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;OAMG;mBACkB,QAAQ;IAmB7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAoBpC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* Licensed under the Apache License, Version 2.0
|
|
26
26
|
*/
|
|
27
27
|
export { LeavenModule, LEAVEN_MODULE_OPTIONS, LEAVEN_DRIVER, LEAVEN_PUBSUB } from './module';
|
|
28
|
-
export { LeavenDriver, type HandlerResult } from './driver';
|
|
28
|
+
export { LeavenDriver, DEFAULT_MAX_TOKENS, type HandlerResult } from './driver';
|
|
29
29
|
export { LeavenGraphQLDriver, type LeavenDriverConfig } from './graphql-driver';
|
|
30
30
|
export type { LeavenModuleOptions, LeavenModuleAsyncOptions, LeavenModuleFactoryAsyncOptions, LeavenModuleClassAsyncOptions, LeavenModuleExistingAsyncOptions, LeavenOptionsFactory, BuildSchemaOptions, DirectiveDefinition, ContextFactory, FormatErrorFn, GraphQLFormattedError,
|
|
31
31
|
/** @deprecated Has no effect; removal target 0.3.0. */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAIhF,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGhF,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,6BAA6B,EAC7B,gCAAgC,EAChC,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,qBAAqB;AACrB,uDAAuD;AACvD,YAAY;AACZ,uDAAuD;AACvD,aAAa,EACb,WAAW,EACX,UAAU,EACV,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,MAAM,EACN,KAAK,EACL,WAAW,EACX,aAAa,EACb,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -394,6 +394,8 @@ import {
|
|
|
394
394
|
compileQuery
|
|
395
395
|
} from "@leaven-graphql/core";
|
|
396
396
|
import { ValidationError, formatError, isLeavenError } from "@leaven-graphql/errors";
|
|
397
|
+
var DEFAULT_MAX_TOKENS = 1e4;
|
|
398
|
+
|
|
397
399
|
class LeavenDriver {
|
|
398
400
|
executor = null;
|
|
399
401
|
schema = null;
|
|
@@ -423,6 +425,12 @@ class LeavenDriver {
|
|
|
423
425
|
getSchema() {
|
|
424
426
|
return this.schema;
|
|
425
427
|
}
|
|
428
|
+
getParseOptions() {
|
|
429
|
+
return {
|
|
430
|
+
...this.options.parseOptions,
|
|
431
|
+
maxTokens: this.options.parseOptions?.maxTokens ?? DEFAULT_MAX_TOKENS
|
|
432
|
+
};
|
|
433
|
+
}
|
|
426
434
|
getExecutor() {
|
|
427
435
|
return this.executor;
|
|
428
436
|
}
|
|
@@ -436,6 +444,7 @@ class LeavenDriver {
|
|
|
436
444
|
metrics: this.options.metrics,
|
|
437
445
|
maxComplexity: this.options.maxComplexity,
|
|
438
446
|
maxDepth: this.options.maxDepth,
|
|
447
|
+
parseOptions: this.getParseOptions(),
|
|
439
448
|
introspection: this.isIntrospectionEnabled()
|
|
440
449
|
};
|
|
441
450
|
this.analysisCache.clear();
|
|
@@ -526,11 +535,11 @@ class LeavenDriver {
|
|
|
526
535
|
};
|
|
527
536
|
}
|
|
528
537
|
if (contentType.includes("application/graphql")) {
|
|
529
|
-
const
|
|
530
|
-
if (!
|
|
538
|
+
const query = await request.text();
|
|
539
|
+
if (!query) {
|
|
531
540
|
throw new ValidationError("Query is required");
|
|
532
541
|
}
|
|
533
|
-
return { query
|
|
542
|
+
return { query };
|
|
534
543
|
}
|
|
535
544
|
throw new ValidationError(`Unsupported content type "${contentType || "(none)"}": use application/json or application/graphql`);
|
|
536
545
|
}
|
|
@@ -582,7 +591,8 @@ class LeavenDriver {
|
|
|
582
591
|
}
|
|
583
592
|
let document;
|
|
584
593
|
try {
|
|
585
|
-
|
|
594
|
+
const { graphqlOptions, maxTokens } = this.getParseOptions();
|
|
595
|
+
document = typeof query === "string" ? parse(query, { ...graphqlOptions, maxTokens }) : query;
|
|
586
596
|
} catch (error) {
|
|
587
597
|
if (error instanceof GraphQLError) {
|
|
588
598
|
return;
|
|
@@ -1174,6 +1184,7 @@ class SubscriptionManager {
|
|
|
1174
1184
|
request,
|
|
1175
1185
|
subscriptions: new Map,
|
|
1176
1186
|
initialized: false,
|
|
1187
|
+
initializing: false,
|
|
1177
1188
|
connectionParams: undefined,
|
|
1178
1189
|
context: undefined,
|
|
1179
1190
|
keepAliveInterval: undefined,
|
|
@@ -1237,10 +1248,11 @@ class SubscriptionManager {
|
|
|
1237
1248
|
}
|
|
1238
1249
|
}
|
|
1239
1250
|
async handleConnectionInit(socket, state, message) {
|
|
1240
|
-
if (state.initialized) {
|
|
1251
|
+
if (state.initialized || state.initializing) {
|
|
1241
1252
|
socket.close(4429, "Too many initialization requests");
|
|
1242
1253
|
return;
|
|
1243
1254
|
}
|
|
1255
|
+
state.initializing = true;
|
|
1244
1256
|
state.connectionParams = message.payload ?? {};
|
|
1245
1257
|
const ctx = {
|
|
1246
1258
|
socket,
|
|
@@ -1249,6 +1261,9 @@ class SubscriptionManager {
|
|
|
1249
1261
|
};
|
|
1250
1262
|
if (this.config.onConnect) {
|
|
1251
1263
|
const allowed = await this.config.onConnect(ctx);
|
|
1264
|
+
if (this.connections.get(socket) !== state) {
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1252
1267
|
if (!allowed) {
|
|
1253
1268
|
socket.close(4401, "Unauthorized");
|
|
1254
1269
|
return;
|
|
@@ -1262,6 +1277,9 @@ class SubscriptionManager {
|
|
|
1262
1277
|
}
|
|
1263
1278
|
this.send(socket, { type: "connection_ack" });
|
|
1264
1279
|
if (this.config.keepAlive) {
|
|
1280
|
+
if (state.keepAliveInterval) {
|
|
1281
|
+
clearInterval(state.keepAliveInterval);
|
|
1282
|
+
}
|
|
1265
1283
|
state.keepAliveInterval = setInterval(() => {
|
|
1266
1284
|
this.send(socket, { type: "ping" });
|
|
1267
1285
|
}, this.config.keepAlive);
|
|
@@ -1405,7 +1423,8 @@ class SubscriptionManager {
|
|
|
1405
1423
|
}
|
|
1406
1424
|
isSubscriptionOperation(query, operationName) {
|
|
1407
1425
|
try {
|
|
1408
|
-
const
|
|
1426
|
+
const { graphqlOptions, maxTokens } = this.driver.getParseOptions();
|
|
1427
|
+
const document = parse3(query, { ...graphqlOptions, maxTokens });
|
|
1409
1428
|
return getOperationAST(document, operationName)?.operation === "subscription";
|
|
1410
1429
|
} catch {
|
|
1411
1430
|
return false;
|
|
@@ -1704,6 +1723,10 @@ class LeavenGraphQLDriver extends AbstractGraphQLDriver {
|
|
|
1704
1723
|
metrics: options.metrics,
|
|
1705
1724
|
maxComplexity: options.maxComplexity,
|
|
1706
1725
|
maxDepth: options.maxDepth,
|
|
1726
|
+
parseOptions: {
|
|
1727
|
+
...options.parseOptions,
|
|
1728
|
+
maxTokens: options.parseOptions?.maxTokens ?? DEFAULT_MAX_TOKENS
|
|
1729
|
+
},
|
|
1707
1730
|
introspection: options.introspection ?? true,
|
|
1708
1731
|
formatExecutionError: LeavenGraphQLDriver.formatExecutionError
|
|
1709
1732
|
});
|
|
@@ -2047,60 +2070,61 @@ MetricsInterceptor = __legacyDecorateClassTS([
|
|
|
2047
2070
|
Injectable6()
|
|
2048
2071
|
], MetricsInterceptor);
|
|
2049
2072
|
export {
|
|
2050
|
-
|
|
2051
|
-
getResolverMetadata,
|
|
2052
|
-
getGqlRoot,
|
|
2053
|
-
getGqlInfo,
|
|
2054
|
-
getGqlContext,
|
|
2055
|
-
getGqlArgs,
|
|
2056
|
-
generateSchemaFile,
|
|
2057
|
-
createGraphQLMiddleware,
|
|
2058
|
-
createContextDecorator,
|
|
2059
|
-
clearResolverMetadata,
|
|
2060
|
-
SubscriptionManager,
|
|
2061
|
-
SubscriptionFilter,
|
|
2062
|
-
Subscription,
|
|
2063
|
-
SchemaBuilderService,
|
|
2064
|
-
SUBSCRIPTION_FILTER_KEY,
|
|
2065
|
-
Root,
|
|
2066
|
-
RolesGuard,
|
|
2067
|
-
Roles,
|
|
2068
|
-
ROLES_KEY,
|
|
2069
|
-
Public,
|
|
2070
|
-
PermissionsGuard,
|
|
2071
|
-
Permissions,
|
|
2072
|
-
Parent,
|
|
2073
|
-
PERMISSIONS_KEY,
|
|
2074
|
-
MetricsInterceptor,
|
|
2075
|
-
LoggingInterceptor,
|
|
2076
|
-
LeavenModule,
|
|
2077
|
-
LeavenGraphQLDriver,
|
|
2078
|
-
LeavenDriver,
|
|
2079
|
-
LEAVEN_PUBSUB,
|
|
2080
|
-
LEAVEN_MODULE_OPTIONS,
|
|
2081
|
-
LEAVEN_MAX_DEPTH,
|
|
2082
|
-
LEAVEN_MAX_COMPLEXITY,
|
|
2083
|
-
LEAVEN_DRIVER,
|
|
2084
|
-
InjectPubSub,
|
|
2085
|
-
Info,
|
|
2086
|
-
IS_PUBLIC_KEY,
|
|
2087
|
-
GraphQLMiddleware,
|
|
2088
|
-
GqlExecutionContext,
|
|
2089
|
-
ErrorFormattingInterceptor,
|
|
2090
|
-
Description,
|
|
2091
|
-
DepthGuard,
|
|
2092
|
-
Deprecated,
|
|
2093
|
-
Decorators,
|
|
2094
|
-
DESCRIPTION_KEY,
|
|
2095
|
-
DEPRECATED_KEY,
|
|
2096
|
-
Context,
|
|
2097
|
-
ComplexityInterceptor,
|
|
2098
|
-
ComplexityGuard,
|
|
2099
|
-
Complexity,
|
|
2100
|
-
CachingInterceptor,
|
|
2101
|
-
CacheHint,
|
|
2102
|
-
COMPLEXITY_KEY,
|
|
2103
|
-
CACHE_KEY,
|
|
2073
|
+
Args,
|
|
2104
2074
|
AuthGuard,
|
|
2105
|
-
|
|
2075
|
+
CACHE_KEY,
|
|
2076
|
+
COMPLEXITY_KEY,
|
|
2077
|
+
CacheHint,
|
|
2078
|
+
CachingInterceptor,
|
|
2079
|
+
Complexity,
|
|
2080
|
+
ComplexityGuard,
|
|
2081
|
+
ComplexityInterceptor,
|
|
2082
|
+
Context,
|
|
2083
|
+
DEFAULT_MAX_TOKENS,
|
|
2084
|
+
DEPRECATED_KEY,
|
|
2085
|
+
DESCRIPTION_KEY,
|
|
2086
|
+
Decorators,
|
|
2087
|
+
Deprecated,
|
|
2088
|
+
DepthGuard,
|
|
2089
|
+
Description,
|
|
2090
|
+
ErrorFormattingInterceptor,
|
|
2091
|
+
GqlExecutionContext,
|
|
2092
|
+
GraphQLMiddleware,
|
|
2093
|
+
IS_PUBLIC_KEY,
|
|
2094
|
+
Info,
|
|
2095
|
+
InjectPubSub,
|
|
2096
|
+
LEAVEN_DRIVER,
|
|
2097
|
+
LEAVEN_MAX_COMPLEXITY,
|
|
2098
|
+
LEAVEN_MAX_DEPTH,
|
|
2099
|
+
LEAVEN_MODULE_OPTIONS,
|
|
2100
|
+
LEAVEN_PUBSUB,
|
|
2101
|
+
LeavenDriver,
|
|
2102
|
+
LeavenGraphQLDriver,
|
|
2103
|
+
LeavenModule,
|
|
2104
|
+
LoggingInterceptor,
|
|
2105
|
+
MetricsInterceptor,
|
|
2106
|
+
PERMISSIONS_KEY,
|
|
2107
|
+
Parent,
|
|
2108
|
+
Permissions,
|
|
2109
|
+
PermissionsGuard,
|
|
2110
|
+
Public,
|
|
2111
|
+
ROLES_KEY,
|
|
2112
|
+
Roles,
|
|
2113
|
+
RolesGuard,
|
|
2114
|
+
Root,
|
|
2115
|
+
SUBSCRIPTION_FILTER_KEY,
|
|
2116
|
+
SchemaBuilderService,
|
|
2117
|
+
Subscription,
|
|
2118
|
+
SubscriptionFilter,
|
|
2119
|
+
SubscriptionManager,
|
|
2120
|
+
clearResolverMetadata,
|
|
2121
|
+
createContextDecorator,
|
|
2122
|
+
createGraphQLMiddleware,
|
|
2123
|
+
generateSchemaFile,
|
|
2124
|
+
getGqlArgs,
|
|
2125
|
+
getGqlContext,
|
|
2126
|
+
getGqlInfo,
|
|
2127
|
+
getGqlRoot,
|
|
2128
|
+
getResolverMetadata,
|
|
2129
|
+
registerResolverMetadata
|
|
2106
2130
|
};
|
package/dist/subscriptions.d.ts
CHANGED
|
@@ -375,7 +375,10 @@ export declare class SubscriptionManager implements OnModuleInit, OnModuleDestro
|
|
|
375
375
|
* Determine whether a query string is a streaming `subscription` operation.
|
|
376
376
|
*
|
|
377
377
|
* Parse failures return `false` so that syntax errors surface through the
|
|
378
|
-
* normal execution/error path instead of being masked here.
|
|
378
|
+
* normal execution/error path instead of being masked here. That includes
|
|
379
|
+
* an exceeded `parseOptions.maxTokens`: the parse here applies the same
|
|
380
|
+
* token budget as the executor (default 10000), so an oversized document is
|
|
381
|
+
* never lexed in full, and the executor then reports the limit.
|
|
379
382
|
*/
|
|
380
383
|
private isSubscriptionOperation;
|
|
381
384
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { Type } from '@nestjs/common';
|
|
8
8
|
import type { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
9
9
|
import type { GraphQLSchema, DocumentNode } from 'graphql';
|
|
10
|
-
import type { DocumentCacheConfig } from '@leaven-graphql/core';
|
|
10
|
+
import type { DocumentCacheConfig, ParseOptions } from '@leaven-graphql/core';
|
|
11
11
|
import type { PubSub } from '@leaven-graphql/ws';
|
|
12
12
|
import type { SubscriptionConfig } from './subscriptions';
|
|
13
13
|
/**
|
|
@@ -111,6 +111,19 @@ export interface LeavenModuleOptions {
|
|
|
111
111
|
* Maximum query depth allowed
|
|
112
112
|
*/
|
|
113
113
|
maxDepth?: number;
|
|
114
|
+
/**
|
|
115
|
+
* Parser limits, in the same shape as the core executor's `parseOptions`.
|
|
116
|
+
*
|
|
117
|
+
* Applied everywhere the module parses a document: the executor (HTTP and
|
|
118
|
+
* subscription transports alike), query analysis for the complexity/depth
|
|
119
|
+
* guards, and the subscription transport's synchronous operation-type
|
|
120
|
+
* detection. A document over a limit is rejected through the executor's
|
|
121
|
+
* normal error response.
|
|
122
|
+
*
|
|
123
|
+
* `maxTokens` defaults to 10000; set it to `Infinity` to opt out.
|
|
124
|
+
* `maxDepth` here is overridden by the top-level `maxDepth` when both are set.
|
|
125
|
+
*/
|
|
126
|
+
parseOptions?: ParseOptions;
|
|
114
127
|
/**
|
|
115
128
|
* Enable execution metrics
|
|
116
129
|
* @default false
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leaven-graphql/nestjs",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "NestJS integration for Leaven GraphQL",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@graphql-tools/schema": "^10.
|
|
23
|
-
"@leaven-graphql/context": "0.2.
|
|
24
|
-
"@leaven-graphql/
|
|
25
|
-
"@leaven-graphql/
|
|
26
|
-
"@leaven-graphql/
|
|
27
|
-
"@leaven-graphql/
|
|
22
|
+
"@graphql-tools/schema": "^10.1.0",
|
|
23
|
+
"@leaven-graphql/context": "0.2.1",
|
|
24
|
+
"@leaven-graphql/playground": "0.2.2",
|
|
25
|
+
"@leaven-graphql/core": "0.2.2",
|
|
26
|
+
"@leaven-graphql/ws": "0.2.2",
|
|
27
|
+
"@leaven-graphql/errors": "0.2.1"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"@nestjs/common": ">=10.0.0",
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@lexmata/nestjs-platform-bun": "^0.4.0",
|
|
37
|
-
"@nestjs/common": "^11.
|
|
38
|
-
"@nestjs/core": "^11.
|
|
39
|
-
"@nestjs/graphql": "^13.
|
|
40
|
-
"@nestjs/testing": "^11.
|
|
37
|
+
"@nestjs/common": "^11.2.0",
|
|
38
|
+
"@nestjs/core": "^11.2.0",
|
|
39
|
+
"@nestjs/graphql": "^13.4.4",
|
|
40
|
+
"@nestjs/testing": "^11.2.0",
|
|
41
41
|
"graphql": "^16.12.0",
|
|
42
42
|
"reflect-metadata": "^0.2.2",
|
|
43
43
|
"rxjs": "^7.8.2",
|
|
44
|
-
"typescript": "^
|
|
44
|
+
"typescript": "^6.0.0"
|
|
45
45
|
},
|
|
46
46
|
"keywords": [
|
|
47
47
|
"nestjs",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"directory": "packages/nestjs"
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
|
-
"build": "bun build ./src/index.ts --outdir ./dist --target bun --
|
|
61
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun --packages external && tsc -p tsconfig.build.json",
|
|
62
62
|
"clean": "rm -rf dist",
|
|
63
63
|
"test": "bun test",
|
|
64
64
|
"typecheck": "tsc --noEmit"
|