@ultimabase/graphql 0.1.2 → 0.3.0-canary.20261031104207
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 +31 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +3 -1
- package/dist/sockets.d.ts.map +1 -1
- package/dist/sockets.js +7 -0
- package/package.json +8 -8
- package/src/schema.ts +3 -1
- package/src/sockets.ts +17 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @ultimabase/graphql
|
|
2
2
|
|
|
3
|
+
## 0.3.0-canary.20261031104207
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2eb7b9d: `httpPlugin({ upgrade })` refuses WebSocket upgrades with a response, as
|
|
8
|
+
during maintenance, and `closeUpgrades({ code, reason })` closes the sockets
|
|
9
|
+
open: GraphQL's with that code, those of a plugin without `close` cut (D-166).
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 8fdf30a: The error for a schema with no query tells an application without models, a plugin's own being never exposed, apart from one whose models all have `.with({ graphql: false })`.
|
|
14
|
+
- Updated dependencies [41cfff6]
|
|
15
|
+
- Updated dependencies [6e8ebf6]
|
|
16
|
+
- Updated dependencies [9cd2dd4]
|
|
17
|
+
- Updated dependencies [353c2bf]
|
|
18
|
+
- Updated dependencies [2eb7b9d]
|
|
19
|
+
- ultimabase@0.3.0-canary.20261031104207
|
|
20
|
+
- @ultimabase/http@0.3.0-canary.20261031104207
|
|
21
|
+
- @ultimabase/realtime@0.3.0-canary.20261031104207
|
|
22
|
+
|
|
23
|
+
## 0.2.0
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- Updated dependencies [2c3bf4e]
|
|
28
|
+
- Updated dependencies [fd1263e]
|
|
29
|
+
- Updated dependencies [c0c5a21]
|
|
30
|
+
- ultimabase@0.2.0
|
|
31
|
+
- @ultimabase/realtime@0.2.0
|
|
32
|
+
- @ultimabase/http@0.2.0
|
|
33
|
+
|
|
3
34
|
## 0.1.2
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAIN,aAAa,EACb,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAS,QAAQ,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,KAAK,MAAM,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;CAAE,CAAA;AAwF7E,+DAA+D;AAC/D,wBAAgB,QAAQ,CACvB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAA;IAC9D,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B,GACC,aAAa,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAIN,aAAa,EACb,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAS,QAAQ,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,KAAK,MAAM,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;CAAE,CAAA;AAwF7E,+DAA+D;AAC/D,wBAAgB,QAAQ,CACvB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAA;IAC9D,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B,GACC,aAAa,CAwEf"}
|
package/dist/schema.js
CHANGED
|
@@ -113,7 +113,9 @@ export function schemaOf(registry, called) {
|
|
|
113
113
|
add(into, owners, owner, 'name', { [name]: field });
|
|
114
114
|
}
|
|
115
115
|
if (Object.keys(fields).length === 0) {
|
|
116
|
-
throw new Refused(
|
|
116
|
+
throw new Refused(registry.entries.size === 0
|
|
117
|
+
? "graphqlPlugin: no query to expose; the application lists no model, a plugin's own models are never exposed, and no function is a query."
|
|
118
|
+
: 'graphqlPlugin: no query to expose; each model has .with({ graphql: false }) and no function is a query.');
|
|
117
119
|
}
|
|
118
120
|
return new GraphQLSchema({
|
|
119
121
|
query: new GraphQLObjectType({ name: 'Query', fields }),
|
package/dist/sockets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sockets.d.ts","sourceRoot":"","sources":["../src/sockets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAU,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,MAAM,EACN,cAAc,EACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAGN,YAAY,EAGZ,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,YAAY,CAAA;IACzD,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,cAAc,EAAE,CAAA;IAC9D,QAAQ,CAAC,QAAQ,EAAE,CAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,KAC7B,SAAS,YAAY,EAAE,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACnE,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB,CAAA;AAqFD;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,UAAU,GACpB,MAAM,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sockets.d.ts","sourceRoot":"","sources":["../src/sockets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAU,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,MAAM,EACN,cAAc,EACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAGN,YAAY,EAGZ,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,YAAY,CAAA;IACzD,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,cAAc,EAAE,CAAA;IAC9D,QAAQ,CAAC,QAAQ,EAAE,CAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,KAC7B,SAAS,YAAY,EAAE,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACnE,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB,CAAA;AAqFD;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,UAAU,GACpB,MAAM,OAAO,CAAC,IAAI,CAAC,CAiKrB"}
|
package/dist/sockets.js
CHANGED
|
@@ -222,6 +222,13 @@ export function serveSockets(http, path, realtime, operations) {
|
|
|
222
222
|
beating.unref();
|
|
223
223
|
http.upgrade(path, (upgrade) => {
|
|
224
224
|
sockets.handleUpgrade(upgrade.incoming, upgrade.socket, upgrade.head, (socket) => opened(socket, upgrade));
|
|
225
|
+
},
|
|
226
|
+
// As `closeUpgrades` asks, as during maintenance (D-166).
|
|
227
|
+
{
|
|
228
|
+
close: (code, reason) => {
|
|
229
|
+
for (const socket of sockets.clients)
|
|
230
|
+
socket.close(code, reason);
|
|
231
|
+
},
|
|
225
232
|
});
|
|
226
233
|
return async () => {
|
|
227
234
|
clearInterval(beating);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultimabase/graphql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-canary.20261031104207",
|
|
4
4
|
"description": "GraphQL for UltimaBase: a Relay schema generated from the models, served by the HTTP plugin.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -36,20 +36,20 @@
|
|
|
36
36
|
"ws": "8.22.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@ultimabase/http": "
|
|
40
|
-
"@ultimabase/realtime": "
|
|
39
|
+
"@ultimabase/http": "0.3.0-canary.20261031104207",
|
|
40
|
+
"@ultimabase/realtime": "0.3.0-canary.20261031104207",
|
|
41
41
|
"graphql": "^17.0.2",
|
|
42
|
-
"ultimabase": "
|
|
42
|
+
"ultimabase": "0.3.0-canary.20261031104207"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/pg": "8.23.1",
|
|
46
46
|
"@types/ws": "8.18.2",
|
|
47
|
-
"@ultimabase/http": "0.
|
|
48
|
-
"@ultimabase/postgres": "0.
|
|
49
|
-
"@ultimabase/realtime": "0.
|
|
47
|
+
"@ultimabase/http": "0.3.0-canary.20261031104207",
|
|
48
|
+
"@ultimabase/postgres": "0.3.0-canary.20261031104207",
|
|
49
|
+
"@ultimabase/realtime": "0.3.0-canary.20261031104207",
|
|
50
50
|
"graphql": "17.0.2",
|
|
51
51
|
"pg": "8.23.1",
|
|
52
|
-
"ultimabase": "0.
|
|
52
|
+
"ultimabase": "0.3.0-canary.20261031104207",
|
|
53
53
|
"vite": "8.3.4",
|
|
54
54
|
"vitest": "5.0.5"
|
|
55
55
|
}
|
package/src/schema.ts
CHANGED
|
@@ -169,7 +169,9 @@ export function schemaOf(
|
|
|
169
169
|
}
|
|
170
170
|
if (Object.keys(fields).length === 0) {
|
|
171
171
|
throw new Refused(
|
|
172
|
-
|
|
172
|
+
registry.entries.size === 0
|
|
173
|
+
? "graphqlPlugin: no query to expose; the application lists no model, a plugin's own models are never exposed, and no function is a query."
|
|
174
|
+
: 'graphqlPlugin: no query to expose; each model has .with({ graphql: false }) and no function is a query.',
|
|
173
175
|
)
|
|
174
176
|
}
|
|
175
177
|
return new GraphQLSchema({
|
package/src/sockets.ts
CHANGED
|
@@ -273,14 +273,23 @@ export function serveSockets(
|
|
|
273
273
|
for (const socket of sockets.clients) beats.get(socket)?.()
|
|
274
274
|
}, keepAlive)
|
|
275
275
|
beating.unref()
|
|
276
|
-
http.upgrade(
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
276
|
+
http.upgrade(
|
|
277
|
+
path,
|
|
278
|
+
(upgrade) => {
|
|
279
|
+
sockets.handleUpgrade(
|
|
280
|
+
upgrade.incoming,
|
|
281
|
+
upgrade.socket,
|
|
282
|
+
upgrade.head,
|
|
283
|
+
(socket) => opened(socket, upgrade),
|
|
284
|
+
)
|
|
285
|
+
},
|
|
286
|
+
// As `closeUpgrades` asks, as during maintenance (D-166).
|
|
287
|
+
{
|
|
288
|
+
close: (code, reason) => {
|
|
289
|
+
for (const socket of sockets.clients) socket.close(code, reason)
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
)
|
|
284
293
|
return async () => {
|
|
285
294
|
clearInterval(beating)
|
|
286
295
|
for (const socket of sockets.clients) socket.close(1001, 'Going away')
|