@reventlessdev/reventless-local 3.0.0-alpha.153 → 3.0.0-alpha.154
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
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.154 (2026-07-14)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* surface masked GraphQL resolver errors server-side (local + AWS) ([b3bca51](https://github.com/ReventlessDev/reventless-core/commit/b3bca51b539e40c604b3db338d570de6215ea837))
|
|
11
|
+
|
|
12
|
+
|
|
6
13
|
# 3.0.0-alpha.153 (2026-07-14)
|
|
7
14
|
|
|
8
15
|
### Features
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-local",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.154",
|
|
4
4
|
"description": "Local platform for Reventless (in-memory or SQLite backend, for development and testing without AWS)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
"sury": "11.0.0-alpha.4",
|
|
33
33
|
"ws": "^8.18.0",
|
|
34
34
|
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
35
|
+
"@reventlessdev/rescript-graphql-yoga": "1.0.0-alpha.22",
|
|
35
36
|
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
36
37
|
"@reventlessdev/rescript-mcp-sdk": "1.0.0-alpha.18",
|
|
37
38
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
38
|
-
"@reventlessdev/
|
|
39
|
-
"@reventlessdev/reventless-
|
|
40
|
-
"@reventlessdev/reventless-
|
|
39
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.168",
|
|
40
|
+
"@reventlessdev/reventless-graphql-server": "1.0.0-alpha.15",
|
|
41
|
+
"@reventlessdev/reventless-gwt": "1.0.0-alpha.114",
|
|
41
42
|
"@reventlessdev/reventless-infra": "3.0.0-alpha.99",
|
|
42
43
|
"@reventlessdev/reventless-spec": "3.0.0-alpha.76",
|
|
43
|
-
"@reventlessdev/reventless-postgres": "3.0.0-alpha.
|
|
44
|
-
"@reventlessdev/reventless-gwt": "1.0.0-alpha.113"
|
|
44
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.32"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"rescript": "^12.3.0",
|
|
@@ -553,10 +553,20 @@ let start = (~port: int=4000, ~contextFactory as _: option<YG.contextFactory>=?,
|
|
|
553
553
|
lastFullSdl.contents = Some(buildSdl())
|
|
554
554
|
let schema = composeSchema()
|
|
555
555
|
activeSchema.contents = Some(schema)
|
|
556
|
+
// Route yoga's own logging into the framework logger. error/warn ALWAYS surface
|
|
557
|
+
// (so a masked resolver failure — which yoga reports via logger.error with the
|
|
558
|
+
// original Error even when the client response is masked — is never swallowed
|
|
559
|
+
// again), while verbose debug/info stay gated on GRAPHQL_DEBUG.
|
|
560
|
+
let yogaLogging: YG.yogaLogger = {
|
|
561
|
+
debug: a => if debug { log.debug(~comp="GraphQL:Domain", YG.logArgToString(a)) },
|
|
562
|
+
info: a => if debug { log.info(~comp="GraphQL:Domain", YG.logArgToString(a)) },
|
|
563
|
+
warn: a => log.warn(~comp="GraphQL:Domain", YG.logArgToString(a)),
|
|
564
|
+
error: a => log.error(~comp="GraphQL:Domain", YG.logArgToString(a)),
|
|
565
|
+
}
|
|
556
566
|
let yoga = YG.createYogaWithContext({
|
|
557
567
|
"schema": schema,
|
|
558
568
|
"graphiql": true,
|
|
559
|
-
"logging":
|
|
569
|
+
"logging": yogaLogging,
|
|
560
570
|
"maskedErrors": !debug,
|
|
561
571
|
"context": buildAuthContext,
|
|
562
572
|
})
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
import * as S from "sury/src/S.res.mjs";
|
|
4
4
|
import * as Http from "http";
|
|
5
5
|
import * as Graphql from "graphql";
|
|
6
|
+
import * as GraphqlYoga from "@reventlessdev/rescript-graphql-yoga/src/GraphqlYoga.res.mjs";
|
|
6
7
|
import * as Stdlib_Dict from "@rescript/runtime/lib/es6/Stdlib_Dict.js";
|
|
7
8
|
import * as Stdlib_JSON from "@rescript/runtime/lib/es6/Stdlib_JSON.js";
|
|
8
9
|
import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
|
|
9
10
|
import * as Stdlib_JsExn from "@rescript/runtime/lib/es6/Stdlib_JsExn.js";
|
|
10
|
-
import * as GraphqlYoga from "graphql-yoga";
|
|
11
|
+
import * as GraphqlYoga$1 from "graphql-yoga";
|
|
11
12
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
12
13
|
import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js";
|
|
13
14
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
@@ -409,7 +410,7 @@ function composeSchema() {
|
|
|
409
410
|
}
|
|
410
411
|
let doc = buildScopeSdl(b);
|
|
411
412
|
try {
|
|
412
|
-
GraphqlYoga.createSchema({
|
|
413
|
+
GraphqlYoga$1.createSchema({
|
|
413
414
|
typeDefs: doc,
|
|
414
415
|
resolvers: scopeResolverMap(b, false)
|
|
415
416
|
});
|
|
@@ -435,7 +436,7 @@ function composeSchema() {
|
|
|
435
436
|
}
|
|
436
437
|
});
|
|
437
438
|
try {
|
|
438
|
-
return GraphqlYoga.createSchema({
|
|
439
|
+
return GraphqlYoga$1.createSchema({
|
|
439
440
|
typeDefs: docs,
|
|
440
441
|
resolvers: resolverMaps
|
|
441
442
|
});
|
|
@@ -454,10 +455,28 @@ function start(portOpt, param, param$1) {
|
|
|
454
455
|
lastFullSdl.contents = buildSdl();
|
|
455
456
|
let schema = composeSchema();
|
|
456
457
|
activeSchema.contents = Primitive_option.some(schema);
|
|
457
|
-
let
|
|
458
|
+
let yogaLogging_debug = a => {
|
|
459
|
+
if (debug) {
|
|
460
|
+
return log.debug("GraphQL:Domain", undefined, GraphqlYoga.logArgToString(a));
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
let yogaLogging_info = a => {
|
|
464
|
+
if (debug) {
|
|
465
|
+
return log.info("GraphQL:Domain", undefined, GraphqlYoga.logArgToString(a));
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
let yogaLogging_warn = a => log.warn("GraphQL:Domain", undefined, GraphqlYoga.logArgToString(a));
|
|
469
|
+
let yogaLogging_error = a => log.error("GraphQL:Domain", undefined, GraphqlYoga.logArgToString(a));
|
|
470
|
+
let yogaLogging = {
|
|
471
|
+
debug: yogaLogging_debug,
|
|
472
|
+
info: yogaLogging_info,
|
|
473
|
+
warn: yogaLogging_warn,
|
|
474
|
+
error: yogaLogging_error
|
|
475
|
+
};
|
|
476
|
+
let yoga = GraphqlYoga$1.createYoga({
|
|
458
477
|
schema: schema,
|
|
459
478
|
graphiql: true,
|
|
460
|
-
logging:
|
|
479
|
+
logging: yogaLogging,
|
|
461
480
|
maskedErrors: !debug,
|
|
462
481
|
context: Auth_GraphqlContext$ReventlessLocal.buildAuthContext
|
|
463
482
|
});
|