postgraphile 5.0.0-beta.4 → 5.0.0-beta.40
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 +1548 -0
- package/README.md +6 -9
- package/dist/cli.d.ts +2 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -15
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -5
- package/dist/index.js.map +1 -1
- package/dist/plugins/PgV4BehaviorPlugin.d.ts +3 -0
- package/dist/plugins/PgV4BehaviorPlugin.d.ts.map +1 -1
- package/dist/plugins/PgV4BehaviorPlugin.js +36 -51
- package/dist/plugins/PgV4BehaviorPlugin.js.map +1 -1
- package/dist/plugins/PgV4InflectionPlugin.d.ts +3 -0
- package/dist/plugins/PgV4InflectionPlugin.d.ts.map +1 -1
- package/dist/plugins/PgV4InflectionPlugin.js +17 -4
- package/dist/plugins/PgV4InflectionPlugin.js.map +1 -1
- package/dist/plugins/PgV4SimpleSubscriptionsPlugin.d.ts +2 -0
- package/dist/plugins/PgV4SimpleSubscriptionsPlugin.d.ts.map +1 -0
- package/dist/plugins/PgV4SimpleSubscriptionsPlugin.js +76 -0
- package/dist/plugins/PgV4SimpleSubscriptionsPlugin.js.map +1 -0
- package/dist/plugins/PgV4SmartTagsPlugin.d.ts +6 -0
- package/dist/plugins/PgV4SmartTagsPlugin.d.ts.map +1 -1
- package/dist/plugins/PgV4SmartTagsPlugin.js +34 -15
- package/dist/plugins/PgV4SmartTagsPlugin.js.map +1 -1
- package/dist/presets/lazy-jwt.d.ts +7 -0
- package/dist/presets/lazy-jwt.d.ts.map +1 -1
- package/dist/presets/lazy-jwt.js +17 -10
- package/dist/presets/lazy-jwt.js.map +1 -1
- package/dist/presets/relay.d.ts +7 -0
- package/dist/presets/relay.d.ts.map +1 -1
- package/dist/presets/relay.js +99 -91
- package/dist/presets/relay.js.map +1 -1
- package/dist/presets/v4.d.ts +28 -4
- package/dist/presets/v4.d.ts.map +1 -1
- package/dist/presets/v4.js +165 -37
- package/dist/presets/v4.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/fwd/grafast/mermaid/index.d.ts +1 -0
- package/fwd/grafast/mermaid/index.js +1 -0
- package/fwd/grafserv/envelop/index.d.ts +1 -0
- package/fwd/grafserv/envelop/index.js +1 -0
- package/fwd/grafserv/h3/v1/index.d.ts +1 -0
- package/fwd/grafserv/h3/v1/index.js +1 -0
- package/fwd/grafserv/lambda/v1/index.d.ts +1 -0
- package/fwd/grafserv/lambda/v1/index.js +1 -0
- package/package.json +68 -42
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PgV4SmartTagsPlugin = void 0;
|
|
4
4
|
require("graphile-config");
|
|
5
5
|
const graphile_build_1 = require("graphile-build");
|
|
6
|
-
const graphile_build_pg_1 = require("graphile-build-pg");
|
|
7
6
|
const util_1 = require("util");
|
|
8
7
|
const EMPTY_OBJECT = Object.freeze({});
|
|
9
8
|
exports.PgV4SmartTagsPlugin = {
|
|
@@ -48,7 +47,7 @@ exports.PgV4SmartTagsPlugin = {
|
|
|
48
47
|
const arr = Array.isArray(attrOmit) ? attrOmit : [attrOmit];
|
|
49
48
|
const omitRead = arr.some((omit) => omit === true || expandOmit(omit).includes("read"));
|
|
50
49
|
if (omitRead) {
|
|
51
|
-
|
|
50
|
+
addBehaviorToTags(pgConstraint.getTags(), "-select", true);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
}
|
|
@@ -71,24 +70,24 @@ exports.default = exports.PgV4SmartTagsPlugin;
|
|
|
71
70
|
function processTags(tags) {
|
|
72
71
|
processUniqueKey(tags);
|
|
73
72
|
processOmit(tags);
|
|
74
|
-
convertBoolean(tags, "sortable", "orderBy order");
|
|
73
|
+
convertBoolean(tags, "sortable", "orderBy order resource:connection:backwards");
|
|
75
74
|
convertBoolean(tags, "filterable", "filter filterBy");
|
|
76
|
-
convertBoolean(tags, "enum", "enum");
|
|
75
|
+
// convertBoolean(tags, "enum", "enum");
|
|
77
76
|
processSimpleCollections(tags);
|
|
78
77
|
}
|
|
79
78
|
function processSimpleCollections(tags) {
|
|
80
79
|
if (tags?.simpleCollections) {
|
|
81
80
|
switch (tags.simpleCollections) {
|
|
82
81
|
case "omit": {
|
|
83
|
-
|
|
82
|
+
addBehaviorToTags(tags, "-list +connection", true);
|
|
84
83
|
break;
|
|
85
84
|
}
|
|
86
85
|
case "both": {
|
|
87
|
-
|
|
86
|
+
addBehaviorToTags(tags, "+list +connection", true);
|
|
88
87
|
break;
|
|
89
88
|
}
|
|
90
89
|
case "only": {
|
|
91
|
-
|
|
90
|
+
addBehaviorToTags(tags, "+list -connection", true);
|
|
92
91
|
break;
|
|
93
92
|
}
|
|
94
93
|
default: {
|
|
@@ -99,7 +98,7 @@ function processSimpleCollections(tags) {
|
|
|
99
98
|
}
|
|
100
99
|
function convertBoolean(tags, key, behavior) {
|
|
101
100
|
if (tags && tags[key]) {
|
|
102
|
-
|
|
101
|
+
addBehaviorToTags(tags, behavior, true);
|
|
103
102
|
}
|
|
104
103
|
}
|
|
105
104
|
function processUniqueKey(tags) {
|
|
@@ -155,11 +154,10 @@ function processOmit(tags) {
|
|
|
155
154
|
return;
|
|
156
155
|
}
|
|
157
156
|
const behavior = [];
|
|
158
|
-
const processOmit = (
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
157
|
+
const processOmit = (rawOmit) => {
|
|
158
|
+
const omit = rawOmit === true || rawOmit === "*"
|
|
159
|
+
? "create,read,update,delete,execute,filter,order,all,many,manyToMany"
|
|
160
|
+
: rawOmit;
|
|
163
161
|
if (typeof omit !== "string") {
|
|
164
162
|
throw new Error(`Issue in smart tags; expected omit to be true/string/string[], but found something unexpected: ${(0, util_1.inspect)(omit)}`);
|
|
165
163
|
}
|
|
@@ -171,7 +169,7 @@ function processOmit(tags) {
|
|
|
171
169
|
break;
|
|
172
170
|
}
|
|
173
171
|
case "read": {
|
|
174
|
-
behavior.push("-select -node");
|
|
172
|
+
behavior.push("-select -node -connection -list -array -single");
|
|
175
173
|
break;
|
|
176
174
|
}
|
|
177
175
|
case "update": {
|
|
@@ -228,6 +226,27 @@ function processOmit(tags) {
|
|
|
228
226
|
else {
|
|
229
227
|
processOmit(omit);
|
|
230
228
|
}
|
|
231
|
-
|
|
229
|
+
addBehaviorToTags(tags, behavior.join(" "), true);
|
|
230
|
+
}
|
|
231
|
+
function addBehaviorToTags(tags, behavior, prepend = false) {
|
|
232
|
+
if (Array.isArray(tags.behavior)) {
|
|
233
|
+
if (prepend) {
|
|
234
|
+
tags.behavior = [behavior, ...tags.behavior];
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
tags.behavior = [...tags.behavior, behavior];
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else if (typeof tags.behavior === "string") {
|
|
241
|
+
tags.behavior = prepend
|
|
242
|
+
? [behavior, tags.behavior]
|
|
243
|
+
: [tags.behavior, behavior];
|
|
244
|
+
}
|
|
245
|
+
else if (!tags.behavior) {
|
|
246
|
+
tags.behavior = [behavior];
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
throw new Error(`Did not understand tags.behavior - it wasn't an array or a string`);
|
|
250
|
+
}
|
|
232
251
|
}
|
|
233
252
|
//# sourceMappingURL=PgV4SmartTagsPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgV4SmartTagsPlugin.js","sourceRoot":"","sources":["../../src/plugins/PgV4SmartTagsPlugin.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEzB,mDAA8C;
|
|
1
|
+
{"version":3,"file":"PgV4SmartTagsPlugin.js","sourceRoot":"","sources":["../../src/plugins/PgV4SmartTagsPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,13 @@ declare global {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
+
declare global {
|
|
12
|
+
namespace GraphileConfig {
|
|
13
|
+
interface Plugins {
|
|
14
|
+
GrafservPgJWTPlugin: true;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
11
18
|
/**
|
|
12
19
|
* You really ought to handle JWTs yourself in the `preset.grafast.context`
|
|
13
20
|
* function; this allows you to control the settings for validation, to ensure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-jwt.d.ts","sourceRoot":"","sources":["../../src/presets/lazy-jwt.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EACV,oBAAoB,EAEpB,MAAM,EACN,aAAa,EACd,MAAM,cAAc,CAAC;AAKtB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,eAAe;YACvB,WAAW,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;YAC5C,kBAAkB,CAAC,EAAE,aAAa,CAAC;SACpC;KACF;CACF;
|
|
1
|
+
{"version":3,"file":"lazy-jwt.d.ts","sourceRoot":"","sources":["../../src/presets/lazy-jwt.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EACV,oBAAoB,EAEpB,MAAM,EACN,aAAa,EACd,MAAM,cAAc,CAAC;AAKtB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,eAAe;YACvB,WAAW,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;YAC5C,kBAAkB,CAAC,EAAE,aAAa,CAAC;SACpC;KACF;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,OAAO;YACf,mBAAmB,EAAE,IAAI,CAAC;SAC3B;KACF;CACF;AA4ED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,MAE5C,CAAC"}
|
package/dist/presets/lazy-jwt.js
CHANGED
|
@@ -9,18 +9,20 @@ const GrafservPgJWTPlugin = {
|
|
|
9
9
|
name: "GrafservPgJWTPlugin",
|
|
10
10
|
version: version_js_1.version,
|
|
11
11
|
grafast: {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const { args
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
middleware: {
|
|
13
|
+
prepareArgs(next, event) {
|
|
14
|
+
const { args } = event;
|
|
15
|
+
const { resolvedPreset, requestContext: ctx } = args;
|
|
16
|
+
const secret = resolvedPreset?.grafserv?.pgJwtSecret ??
|
|
17
|
+
resolvedPreset?.schema?.pgJwtSecret;
|
|
18
|
+
const pgJwtVerifyOptions = resolvedPreset?.grafserv?.pgJwtVerifyOptions;
|
|
18
19
|
if (secret) {
|
|
19
|
-
const authorization = ctx
|
|
20
|
+
const authorization = ctx?.node?.req?.headers?.authorization;
|
|
20
21
|
if (typeof authorization === "string") {
|
|
21
22
|
const [bearer, token] = authorization.split(" ");
|
|
22
23
|
if (bearer.toLowerCase() === "bearer") {
|
|
23
|
-
return Promise.resolve()
|
|
24
|
+
return Promise.resolve()
|
|
25
|
+
.then(async () => {
|
|
24
26
|
const claims = await new Promise((resolve, reject) => (0, jsonwebtoken_1.verify)(token, secret, {
|
|
25
27
|
algorithms: ["HS256", "HS384"],
|
|
26
28
|
audience: "postgraphile",
|
|
@@ -28,10 +30,13 @@ const GrafservPgJWTPlugin = {
|
|
|
28
30
|
complete: false,
|
|
29
31
|
}, (err, claims) => {
|
|
30
32
|
if (err) {
|
|
33
|
+
err.statusCode = 401;
|
|
31
34
|
reject(err);
|
|
32
35
|
}
|
|
33
36
|
else if (!claims || typeof claims === "string") {
|
|
34
|
-
reject(new Error("Invalid JWT payload")
|
|
37
|
+
reject(Object.assign(new Error("Invalid JWT payload"), {
|
|
38
|
+
statusCode: 401,
|
|
39
|
+
}));
|
|
35
40
|
}
|
|
36
41
|
else {
|
|
37
42
|
resolve(claims);
|
|
@@ -51,10 +56,12 @@ const GrafservPgJWTPlugin = {
|
|
|
51
56
|
pgSettings[`jwt.claims.${key}`] = String(value);
|
|
52
57
|
}
|
|
53
58
|
}
|
|
54
|
-
})
|
|
59
|
+
})
|
|
60
|
+
.then(next);
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
63
|
}
|
|
64
|
+
return next();
|
|
58
65
|
},
|
|
59
66
|
},
|
|
60
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-jwt.js","sourceRoot":"","sources":["../../src/presets/lazy-jwt.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAGzB,yDAAgD;AAOhD,+CAAmD;AAEnD,8CAAwC;
|
|
1
|
+
{"version":3,"file":"lazy-jwt.js","sourceRoot":"","sources":["../../src/presets/lazy-jwt.ts"],"names":[],"mappings":"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"}
|
package/dist/presets/relay.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import "graphile-config";
|
|
2
2
|
import "graphile-build-pg";
|
|
3
|
+
declare global {
|
|
4
|
+
namespace GraphileConfig {
|
|
5
|
+
interface Plugins {
|
|
6
|
+
PgRelayPlugin: true;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
}
|
|
3
10
|
/** @experimental */
|
|
4
11
|
export declare const PgRelayPlugin: GraphileConfig.Plugin;
|
|
5
12
|
/** @experimental */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/presets/relay.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAc3B,oBAAoB;AACpB,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/presets/relay.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAc3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,OAAO;YACf,aAAa,EAAE,IAAI,CAAC;SACrB;KACF;CACF;AAED,oBAAoB;AACpB,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,MAkI1C,CAAC;AAEF,oBAAoB;AACpB,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC,MAMpD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,aAAa,uBAA0B,CAAC"}
|
package/dist/presets/relay.js
CHANGED
|
@@ -22,107 +22,115 @@ exports.PgRelayPlugin = {
|
|
|
22
22
|
nodeIdFieldName() {
|
|
23
23
|
return "id";
|
|
24
24
|
},
|
|
25
|
-
|
|
26
|
-
const name = previous
|
|
27
|
-
if (name === "id")
|
|
28
|
-
return "
|
|
25
|
+
_attributeName(previous, options, details) {
|
|
26
|
+
const name = previous(details);
|
|
27
|
+
if (!details.skipRowId && name === "id")
|
|
28
|
+
return "row_id";
|
|
29
29
|
return name;
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
ignoreReplaceIfNotExists: ["attribute"],
|
|
33
33
|
},
|
|
34
34
|
schema: {
|
|
35
|
-
globalBehavior:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
globalBehavior: [
|
|
36
|
+
"node",
|
|
37
|
+
"connection",
|
|
38
|
+
"-list",
|
|
39
|
+
"-query:resource:single",
|
|
40
|
+
"nodeId:filterBy",
|
|
41
|
+
"nodeId:resource:update",
|
|
42
|
+
"-constraint:resource:update",
|
|
43
|
+
"nodeId:resource:delete",
|
|
44
|
+
"-constraint:resource:delete",
|
|
45
|
+
"nodeId:insert",
|
|
46
|
+
"nodeId:update",
|
|
47
|
+
"nodeId:base",
|
|
48
|
+
],
|
|
46
49
|
entityBehavior: {
|
|
47
|
-
pgCodecAttribute
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
// If the column is available via a singular relation, don't include the column itself
|
|
91
|
-
const relationsMap = build.input.pgRegistry.pgRelations[codec.name];
|
|
92
|
-
const relations = relationsMap
|
|
93
|
-
? Object.values(build.input.pgRegistry.pgRelations[codec.name] ?? {})
|
|
94
|
-
: [];
|
|
95
|
-
const singularRelationsUsingThisColumn = relations.filter((r) => {
|
|
96
|
-
// NOTE: We do this even if the end table is not visible, because
|
|
97
|
-
// otherwise making the end table visible would be a breaking schema
|
|
98
|
-
// change. Users should make sure these columns are hidden from the
|
|
99
|
-
// schema if they are also hiding the target table.
|
|
100
|
-
if (!r.isUnique)
|
|
101
|
-
return false;
|
|
102
|
-
if (r.isReferencee)
|
|
103
|
-
return false;
|
|
104
|
-
if (!r.localAttributes.includes(attributeName))
|
|
105
|
-
return false;
|
|
106
|
-
return true;
|
|
107
|
-
});
|
|
108
|
-
if (singularRelationsUsingThisColumn.length > 0) {
|
|
50
|
+
pgCodecAttribute: {
|
|
51
|
+
inferred(behavior, [codec, attributeName], build) {
|
|
52
|
+
const newBehavior = [behavior];
|
|
53
|
+
const attr = codec.attributes[attributeName];
|
|
54
|
+
const resource = codec.polymorphism?.mode === "union"
|
|
55
|
+
? Object.values(build.input.pgRegistry.pgResources).find((r) => {
|
|
56
|
+
if (r.parameters)
|
|
57
|
+
return false;
|
|
58
|
+
if (r.isVirtual)
|
|
59
|
+
return false;
|
|
60
|
+
if (r.isUnique)
|
|
61
|
+
return false;
|
|
62
|
+
if (r.uniques.length === 0)
|
|
63
|
+
return false;
|
|
64
|
+
const name = codec.extensions?.tags?.name ?? codec.name;
|
|
65
|
+
const impl = r.codec.extensions?.tags?.implements;
|
|
66
|
+
const implArr = impl
|
|
67
|
+
? Array.isArray(impl)
|
|
68
|
+
? impl
|
|
69
|
+
: [impl]
|
|
70
|
+
: [];
|
|
71
|
+
if (!implArr.includes(name))
|
|
72
|
+
return false;
|
|
73
|
+
return true;
|
|
74
|
+
})
|
|
75
|
+
: Object.values(build.input.pgRegistry.pgResources).find((r) => {
|
|
76
|
+
if (r.codec !== codec)
|
|
77
|
+
return false;
|
|
78
|
+
if (r.parameters)
|
|
79
|
+
return false;
|
|
80
|
+
if (r.isVirtual)
|
|
81
|
+
return false;
|
|
82
|
+
if (r.isUnique)
|
|
83
|
+
return false;
|
|
84
|
+
if (r.uniques.length === 0)
|
|
85
|
+
return false;
|
|
86
|
+
return true;
|
|
87
|
+
});
|
|
88
|
+
const pk = resource?.uniques.find((u) => u.isPrimary);
|
|
89
|
+
// If the column is a primary key, don't include it (since it will be in the NodeID instead)
|
|
90
|
+
if (pk?.attributes.includes(attributeName)) {
|
|
109
91
|
// Do not include this column in the schema (other than for create)
|
|
110
92
|
newBehavior.push(...RELAY_HIDDEN_COLUMN_BEHAVIORS);
|
|
111
93
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
94
|
+
else {
|
|
95
|
+
// If the column is available via a singular relation, don't include the column itself
|
|
96
|
+
const relationsMap = build.input.pgRegistry.pgRelations[codec.name];
|
|
97
|
+
const relations = relationsMap
|
|
98
|
+
? Object.values(build.input.pgRegistry.pgRelations[codec.name] ?? {})
|
|
99
|
+
: [];
|
|
100
|
+
const singularRelationsUsingThisColumn = relations.filter((r) => {
|
|
101
|
+
// NOTE: We do this even if the end table is not visible, because
|
|
102
|
+
// otherwise making the end table visible would be a breaking schema
|
|
103
|
+
// change. Users should make sure these columns are hidden from the
|
|
104
|
+
// schema if they are also hiding the target table.
|
|
105
|
+
if (!r.isUnique)
|
|
106
|
+
return false;
|
|
107
|
+
if (r.isReferencee)
|
|
108
|
+
return false;
|
|
109
|
+
if (!r.localAttributes.includes(attributeName))
|
|
110
|
+
return false;
|
|
111
|
+
return true;
|
|
112
|
+
});
|
|
113
|
+
if (singularRelationsUsingThisColumn.length > 0 &&
|
|
114
|
+
!attr.codec.extensions?.isEnumTableEnum) {
|
|
115
|
+
// Do not include this column in the schema (other than for create)
|
|
116
|
+
newBehavior.push(...RELAY_HIDDEN_COLUMN_BEHAVIORS);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const relations = Object.values(build.input.pgRegistry.pgRelations[codec.name] ?? {}).filter((r) => !r.isReferencee && r.isUnique);
|
|
120
|
+
const isPartOfRelation = !attr.codec.extensions?.isEnumTableEnum &&
|
|
121
|
+
relations.some((r) => r.localAttributes.includes(attributeName));
|
|
122
|
+
if (isPartOfRelation) {
|
|
123
|
+
// `nodeId:filterBy` handles this
|
|
124
|
+
newBehavior.push(`-attribute:filterBy`);
|
|
125
|
+
// `nodeId:insert` handles this
|
|
126
|
+
newBehavior.push(`-attribute:insert`);
|
|
127
|
+
// `nodeId:update` handles this
|
|
128
|
+
newBehavior.push(`-attribute:update`);
|
|
129
|
+
// `nodeId:base` handles this
|
|
130
|
+
newBehavior.push(`-attribute:base`);
|
|
131
|
+
}
|
|
132
|
+
return newBehavior;
|
|
133
|
+
},
|
|
126
134
|
},
|
|
127
135
|
},
|
|
128
136
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/presets/relay.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AACzB,6BAA2B;AAI3B,8CAAwC;AAExC,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/presets/relay.ts"],"names":[],"mappings":"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"}
|
package/dist/presets/v4.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import "graphile-config";
|
|
3
2
|
import type { GraphQLError } from "grafast/graphql";
|
|
4
3
|
import type { IncomingMessage, ServerResponse } from "http";
|
|
5
4
|
import { PgV4BehaviorPlugin } from "../plugins/PgV4BehaviorPlugin.js";
|
|
6
5
|
import { PgV4InflectionPlugin } from "../plugins/PgV4InflectionPlugin.js";
|
|
6
|
+
import { PgV4SimpleSubscriptionsPlugin } from "../plugins/PgV4SimpleSubscriptionsPlugin.js";
|
|
7
7
|
import { PgV4SmartTagsPlugin } from "../plugins/PgV4SmartTagsPlugin.js";
|
|
8
|
-
export { PgV4BehaviorPlugin, PgV4InflectionPlugin, PgV4SmartTagsPlugin };
|
|
8
|
+
export { PgV4BehaviorPlugin, PgV4InflectionPlugin, PgV4SimpleSubscriptionsPlugin, PgV4SmartTagsPlugin, };
|
|
9
9
|
type PromiseOrDirect<T> = T | Promise<T>;
|
|
10
10
|
type DirectOrCallback<Request, T> = T | ((req: Request) => PromiseOrDirect<T>);
|
|
11
11
|
export interface V4GraphileBuildOptions {
|
|
@@ -13,7 +13,12 @@ export interface V4GraphileBuildOptions {
|
|
|
13
13
|
pgStrictFunctions?: boolean;
|
|
14
14
|
orderByNullsLast?: boolean;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
16
|
+
export interface V4ErrorOutputOptions {
|
|
17
|
+
handleErrors?: (error: readonly GraphQLError[]) => readonly GraphQLError[];
|
|
18
|
+
extendedErrors?: string[];
|
|
19
|
+
showErrorStack?: boolean | "json";
|
|
20
|
+
}
|
|
21
|
+
export interface V4Options<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse> extends GraphileBuild.SchemaOptions, V4ErrorOutputOptions {
|
|
17
22
|
/**
|
|
18
23
|
* - 'only': connections will be avoided, preferring lists
|
|
19
24
|
* - 'omit': lists will be avoided, preferring connections
|
|
@@ -43,10 +48,14 @@ export interface V4Options<Request extends IncomingMessage = IncomingMessage, Re
|
|
|
43
48
|
graphiqlRoute?: string;
|
|
44
49
|
eventStreamRoute?: string;
|
|
45
50
|
graphiql?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* preset.grafserv.maxRequestLength: the length, in bytes, for the largest
|
|
53
|
+
* request body that grafserv will accept. String values no longer supported.
|
|
54
|
+
*/
|
|
55
|
+
bodySizeLimit?: number;
|
|
46
56
|
/** Always ignored, ruru is always enhanced. */
|
|
47
57
|
enhanceGraphiql?: boolean;
|
|
48
58
|
allowExplain?: boolean;
|
|
49
|
-
handleErrors?: (error: readonly GraphQLError[]) => readonly GraphQLError[];
|
|
50
59
|
/**
|
|
51
60
|
* As of PostGraphile v5, query batching is no longer supported. Query batching
|
|
52
61
|
* has not been standardized as part of the GraphQL-over-HTTP specification
|
|
@@ -64,7 +73,22 @@ export interface V4Options<Request extends IncomingMessage = IncomingMessage, Re
|
|
|
64
73
|
watchPg?: boolean;
|
|
65
74
|
/** @deprecated Use 'preset.grafast.context' callback instead */
|
|
66
75
|
defaultRole?: never;
|
|
76
|
+
simpleSubscriptions?: boolean;
|
|
67
77
|
}
|
|
78
|
+
export type GraphQLErrorExtended = GraphQLError & {
|
|
79
|
+
extensions: {
|
|
80
|
+
exception: {
|
|
81
|
+
hint?: string;
|
|
82
|
+
detail?: string;
|
|
83
|
+
code: string;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
export declare function makeV4ErrorOutputPreset(options: V4ErrorOutputOptions): {
|
|
88
|
+
grafserv: {
|
|
89
|
+
maskError?: GraphileConfig.GrafservOptions["maskError"];
|
|
90
|
+
};
|
|
91
|
+
};
|
|
68
92
|
export declare const makeV4Preset: (options?: V4Options) => GraphileConfig.Preset;
|
|
69
93
|
export declare const V4Preset: GraphileConfig.Preset;
|
|
70
94
|
export default V4Preset;
|
package/dist/presets/v4.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v4.d.ts","sourceRoot":"","sources":["../../src/presets/v4.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"v4.d.ts","sourceRoot":"","sources":["../../src/presets/v4.ts"],"names":[],"mappings":"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"}
|