@leaven-graphql/nestjs 0.2.2 → 0.2.3
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/driver.d.ts +16 -2
- package/dist/driver.d.ts.map +1 -1
- package/dist/index.js +33 -10
- package/dist/subscriptions.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/driver.d.ts
CHANGED
|
@@ -33,11 +33,20 @@ export declare class LeavenDriver implements OnModuleInit, OnModuleDestroy {
|
|
|
33
33
|
private readonly options;
|
|
34
34
|
/** Maximum number of memoized query analyses retained */
|
|
35
35
|
private static readonly MAX_ANALYSIS_ENTRIES;
|
|
36
|
+
/**
|
|
37
|
+
* Estimated memory budget of the analysis memo: 8 MiB. An entry's cost is
|
|
38
|
+
* its key, which holds the whole query text (estimated at 2 bytes per
|
|
39
|
+
* UTF-16 code unit plus a fixed 64 for the map slot and result), and an
|
|
40
|
+
* entry above a tenth of the budget is never memoized.
|
|
41
|
+
*/
|
|
42
|
+
static readonly MAX_ANALYSIS_BYTES: number;
|
|
36
43
|
/**
|
|
37
44
|
* LRU of {@link QueryAnalysis} keyed by query string and operation name.
|
|
38
45
|
* Cleared whenever the schema changes, since complexity is schema-dependent.
|
|
39
46
|
*/
|
|
40
47
|
private readonly analysisCache;
|
|
48
|
+
/** Estimated bytes held by {@link analysisCache} */
|
|
49
|
+
private analysisBytes;
|
|
41
50
|
constructor(options: LeavenModuleOptions);
|
|
42
51
|
/**
|
|
43
52
|
* Initialize the driver with a schema
|
|
@@ -160,10 +169,15 @@ export declare class LeavenDriver implements OnModuleInit, OnModuleDestroy {
|
|
|
160
169
|
*/
|
|
161
170
|
private attachQueryAnalysis;
|
|
162
171
|
/**
|
|
163
|
-
* Store an analysis result, evicting
|
|
164
|
-
*
|
|
172
|
+
* Store an analysis result, evicting least recently used entries until
|
|
173
|
+
* both {@link MAX_ANALYSIS_ENTRIES} and {@link MAX_ANALYSIS_BYTES} hold.
|
|
174
|
+
* A key above a tenth of the byte budget is not memoized at all.
|
|
165
175
|
*/
|
|
166
176
|
private memoizeAnalysis;
|
|
177
|
+
/** Estimated bytes one memo entry retains. See {@link MAX_ANALYSIS_BYTES}. */
|
|
178
|
+
private static analysisEntryBytes;
|
|
179
|
+
/** Empty the analysis memo, keeping its byte count in step */
|
|
180
|
+
private clearAnalysisCache;
|
|
167
181
|
/**
|
|
168
182
|
* Record a fail-closed sentinel for both analysis fields and log the cause.
|
|
169
183
|
*
|
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":"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,EAKd,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAaD;;;;;GAKG;AACH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,qBACa,YAAa,YAAW,YAAY,EAAE,eAAe;IAChE,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,yDAAyD;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAEpD;;;;;OAKG;IACH,gBAAuB,kBAAkB,SAAmB;IAE5D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAElE,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAK;gBAEd,OAAO,EAAE,mBAAmB;IAIxC;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1C;;;;;;;OAOG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ7C;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAK7C;;OAEG;IACI,SAAS,IAAI,aAAa,GAAG,IAAI;IAIxC;;;OAGG;IACI,eAAe,IAAI,YAAY;IAOtC;;OAEG;IACI,WAAW,IAAI,cAAc,GAAG,IAAI;IAI3C;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;;;;;OAQG;IACU,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClD,KAAK,EAAE,MAAM,GAAG,YAAY,EAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE,UAAU,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC;IAiDzB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;;;;;;;;;OAaG;IACU,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,KAAK,EAAE,MAAM,GAAG,YAAY,EAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE,UAAU,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAoC9E;;OAEG;IACU,aAAa,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC;IAYzB;;;;;;;OAOG;YACW,gBAAgB;IA2D9B;;OAEG;YACW,aAAa;IAiB3B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,mBAAmB;IA2D3B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoBvB,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,8DAA8D;IAC9D,OAAO,CAAC,kBAAkB;IAK1B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACI,mBAAmB,IAAI,OAAO;IAOrC;;;;;;OAMG;IACI,sBAAsB,IAAI,OAAO;IAOxC;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,aAAa,IAAI,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI;IAI1E;;;;;;OAMG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAI1C"}
|
package/dist/index.js
CHANGED
|
@@ -391,7 +391,8 @@ import {
|
|
|
391
391
|
import {
|
|
392
392
|
LeavenExecutor,
|
|
393
393
|
calculateQueryDepth,
|
|
394
|
-
compileQuery
|
|
394
|
+
compileQuery,
|
|
395
|
+
escapeLog
|
|
395
396
|
} from "@leaven-graphql/core";
|
|
396
397
|
import { ValidationError, formatError, isLeavenError } from "@leaven-graphql/errors";
|
|
397
398
|
var DEFAULT_MAX_TOKENS = 1e4;
|
|
@@ -401,7 +402,9 @@ class LeavenDriver {
|
|
|
401
402
|
schema = null;
|
|
402
403
|
options;
|
|
403
404
|
static MAX_ANALYSIS_ENTRIES = 1000;
|
|
405
|
+
static MAX_ANALYSIS_BYTES = 8 * 1024 * 1024;
|
|
404
406
|
analysisCache = new Map;
|
|
407
|
+
analysisBytes = 0;
|
|
405
408
|
constructor(options) {
|
|
406
409
|
this.options = options;
|
|
407
410
|
}
|
|
@@ -416,7 +419,7 @@ class LeavenDriver {
|
|
|
416
419
|
await this.executor.clearCaches();
|
|
417
420
|
this.executor = null;
|
|
418
421
|
}
|
|
419
|
-
this.
|
|
422
|
+
this.clearAnalysisCache();
|
|
420
423
|
}
|
|
421
424
|
setSchema(schema) {
|
|
422
425
|
this.schema = schema;
|
|
@@ -447,7 +450,7 @@ class LeavenDriver {
|
|
|
447
450
|
parseOptions: this.getParseOptions(),
|
|
448
451
|
introspection: this.isIntrospectionEnabled()
|
|
449
452
|
};
|
|
450
|
-
this.
|
|
453
|
+
this.clearAnalysisCache();
|
|
451
454
|
this.executor = new LeavenExecutor(config);
|
|
452
455
|
}
|
|
453
456
|
async execute(query, variables, context, operationName) {
|
|
@@ -541,7 +544,7 @@ class LeavenDriver {
|
|
|
541
544
|
}
|
|
542
545
|
return { query };
|
|
543
546
|
}
|
|
544
|
-
throw new ValidationError(`Unsupported content type "${contentType
|
|
547
|
+
throw new ValidationError(`Unsupported content type "${contentType ? escapeLog(contentType, 64) : "(none)"}": ` + "use application/json or application/graphql");
|
|
545
548
|
}
|
|
546
549
|
const url = new URL(request.url);
|
|
547
550
|
const query = url.searchParams.get("query");
|
|
@@ -616,13 +619,26 @@ class LeavenDriver {
|
|
|
616
619
|
}
|
|
617
620
|
}
|
|
618
621
|
memoizeAnalysis(key, analysis) {
|
|
619
|
-
|
|
622
|
+
const bytes = LeavenDriver.analysisEntryBytes(key);
|
|
623
|
+
if (bytes > LeavenDriver.MAX_ANALYSIS_BYTES / 10)
|
|
624
|
+
return;
|
|
625
|
+
if (this.analysisCache.delete(key)) {
|
|
626
|
+
this.analysisBytes -= bytes;
|
|
627
|
+
}
|
|
628
|
+
while (this.analysisCache.size > 0 && (this.analysisCache.size >= LeavenDriver.MAX_ANALYSIS_ENTRIES || this.analysisBytes + bytes > LeavenDriver.MAX_ANALYSIS_BYTES)) {
|
|
620
629
|
const oldest = this.analysisCache.keys().next().value;
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
}
|
|
630
|
+
this.analysisCache.delete(oldest);
|
|
631
|
+
this.analysisBytes -= LeavenDriver.analysisEntryBytes(oldest);
|
|
624
632
|
}
|
|
625
633
|
this.analysisCache.set(key, analysis);
|
|
634
|
+
this.analysisBytes += bytes;
|
|
635
|
+
}
|
|
636
|
+
static analysisEntryBytes(key) {
|
|
637
|
+
return key.length * 2 + 64;
|
|
638
|
+
}
|
|
639
|
+
clearAnalysisCache() {
|
|
640
|
+
this.analysisCache.clear();
|
|
641
|
+
this.analysisBytes = 0;
|
|
626
642
|
}
|
|
627
643
|
recordAnalysisFailure(target, error) {
|
|
628
644
|
console.error("[Leaven] Query analysis failed; failing closed:", error);
|
|
@@ -648,7 +664,7 @@ class LeavenDriver {
|
|
|
648
664
|
return this.executor?.getCacheStats() ?? null;
|
|
649
665
|
}
|
|
650
666
|
async clearCaches() {
|
|
651
|
-
this.
|
|
667
|
+
this.clearAnalysisCache();
|
|
652
668
|
await this.executor?.clearCaches();
|
|
653
669
|
}
|
|
654
670
|
}
|
|
@@ -1115,6 +1131,8 @@ import {
|
|
|
1115
1131
|
SetMetadata as SetMetadata3
|
|
1116
1132
|
} from "@nestjs/common";
|
|
1117
1133
|
import { parse as parse3, getOperationAST } from "graphql";
|
|
1134
|
+
import { escapeLog as escapeLog2 } from "@leaven-graphql/core";
|
|
1135
|
+
import { isValidOperationId } from "@leaven-graphql/ws";
|
|
1118
1136
|
var SOCKET_OPEN = 1;
|
|
1119
1137
|
var ITERATOR_TEARDOWN_TIMEOUT_MS = 1000;
|
|
1120
1138
|
|
|
@@ -1210,6 +1228,11 @@ class SubscriptionManager {
|
|
|
1210
1228
|
socket.close(4400, "Bad Request");
|
|
1211
1229
|
return;
|
|
1212
1230
|
}
|
|
1231
|
+
const { type, id } = parsed;
|
|
1232
|
+
if ((type === "subscribe" || type === "complete") && !isValidOperationId(id)) {
|
|
1233
|
+
socket.close(4400, "Invalid message");
|
|
1234
|
+
return;
|
|
1235
|
+
}
|
|
1213
1236
|
message = parsed;
|
|
1214
1237
|
} catch (error) {
|
|
1215
1238
|
console.error("Error parsing WebSocket message:", error);
|
|
@@ -1374,7 +1397,7 @@ class SubscriptionManager {
|
|
|
1374
1397
|
}
|
|
1375
1398
|
registration.iterator = iterator;
|
|
1376
1399
|
this.pumpStream(socket, state, id, registration, iterator).catch((error) => {
|
|
1377
|
-
console.error(`Subscription pump failed for operation ${id}:`, error);
|
|
1400
|
+
console.error(`Subscription pump failed for operation ${escapeLog2(id)}:`, error);
|
|
1378
1401
|
state.subscriptions.delete(id);
|
|
1379
1402
|
});
|
|
1380
1403
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.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.3",
|
|
4
4
|
"description": "NestJS integration for Leaven GraphQL",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@graphql-tools/schema": "^10.1.0",
|
|
23
23
|
"@leaven-graphql/context": "0.2.1",
|
|
24
|
+
"@leaven-graphql/core": "0.2.3",
|
|
25
|
+
"@leaven-graphql/errors": "0.2.1",
|
|
24
26
|
"@leaven-graphql/playground": "0.2.2",
|
|
25
|
-
"@leaven-graphql/
|
|
26
|
-
"@leaven-graphql/ws": "0.2.2",
|
|
27
|
-
"@leaven-graphql/errors": "0.2.1"
|
|
27
|
+
"@leaven-graphql/ws": "0.2.3"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"@nestjs/common": ">=10.0.0",
|