@webda/graphql 4.0.0-beta.5 → 4.0.0-beta.7

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This module is part of Webda Application Framework that allows you to quickly develop applications with all modern prerequisites: Security, Extensibility, GraphQL, REST, CloudNative [https://webda.io](https://webda.io)
4
4
 
5
- <img src="https://webda.io/images/webda.svg" width="128" />
5
+ <img src="https://webda.io/img/webda.svg" width="128" />
6
6
 
7
7
  ![CI](https://github.com/loopingz/webda.io/workflows/CI/badge.svg)
8
8
 
@@ -117,6 +117,7 @@ Set `exposeGraphiQL: true` (the default) to enable the in-browser GraphiQL IDE a
117
117
  - [@webda/core DomainService](../core/README.md) — base class for model-serving services
118
118
 
119
119
  <!-- README_FOOTER -->
120
+
120
121
  ## Sponsors
121
122
 
122
123
  <!--
@@ -125,12 +126,12 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
125
126
 
126
127
  Arize AI is a machine learning observability and model monitoring platform. It helps you visualize, monitor, and explain your machine learning models. [Learn more](https://arize.com)
127
128
 
128
- [<img src="https://arize.com/hubfs/arize/brand/arize-logomark-1.png" width="200">](https://arize.com)
129
+ [<img src="https://webda.io/img/sponsors/arize.svg" width="200">](https://arize.com)
129
130
 
130
131
  Loopingz is a software development company that provides consulting and development services. [Learn more](https://loopingz.com)
131
132
 
132
- [<img src="https://loopingz.com/images/logo.png" width="200">](https://loopingz.com)
133
+ [<img src="https://webda.io/img/sponsors/loopingz.png" width="200">](https://loopingz.com)
133
134
 
134
135
  Tellae is an innovative consulting firm specialized in cities transportation issues. We provide our clients, both public and private, with solutions to support your strategic and operational decisions. [Learn more](https://tellae.fr)
135
136
 
136
- [<img src="https://tellae.fr/" width="200">](https://tellae.fr)
137
+ [<img src="https://webda.io/img/sponsors/tellae.svg" width="200">](https://tellae.fr)
@@ -1,11 +1,11 @@
1
- import { Application, DomainService, DomainServiceParameters, ModelDefinition, WebContext } from "@webda/core";
1
+ import { Application, DomainService, DomainServiceParameters, ModelDefinition, WebContext, useInstanceStorage, type OperationDefinition } from "@webda/core";
2
2
  import type { ModelGraph } from "@webda/compiler";
3
3
  import * as WebdaQL from "@webda/ql";
4
- import { FieldNode, GraphQLFieldConfig, GraphQLObjectType, GraphQLResolveInfo, GraphQLSchema, GraphQLType, ThunkObjMap } from "graphql";
4
+ import { FieldNode, GraphQLFieldConfig, GraphQLFieldConfigArgumentMap, GraphQLObjectType, GraphQLOutputType, GraphQLResolveInfo, GraphQLSchema, GraphQLType, ThunkObjMap } from "graphql";
5
5
  import { Handler } from "graphql-http";
6
6
  import { Server as GraphQLWSServer } from "graphql-ws";
7
7
  import { JSONSchema7 } from "json-schema";
8
- import { WebSocketServer } from "ws";
8
+ import { WebSocketServer, type WebSocket } from "ws";
9
9
  export interface GraphQLContextExtension {
10
10
  /**
11
11
  * Get the current count of operation for this request
@@ -45,6 +45,12 @@ export declare class GraphQLParameters extends DomainServiceParameters {
45
45
  * Expose a aggregation of all available subscriptions
46
46
  */
47
47
  globalSubscription: boolean;
48
+ /**
49
+ * Operations exposed as GraphQL fields next to the model schema, with the operation transports' patterns:
50
+ * `"*"`, `"Service.*"`, an exact id, `"!Id"` to exclude; `[]` exposes no operation
51
+ * @default ["*"]
52
+ */
53
+ exposeOperations: string[];
48
54
  /**
49
55
  * Load parameters with defaults
50
56
  * @param params - raw configuration values
@@ -66,6 +72,13 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
66
72
  modelsMap: {
67
73
  [key: string]: GraphQLObjectType;
68
74
  };
75
+ /**
76
+ * Generated named types, by name: a name is generated once per shape (reset by generateSchema)
77
+ */
78
+ namedTypes: Map<string, {
79
+ type: GraphQLType;
80
+ shape: string;
81
+ }>;
69
82
  app: Application;
70
83
  wss: WebSocketServer;
71
84
  wsHandler: GraphQLWSServer;
@@ -76,6 +89,12 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
76
89
  * @returns initialized GraphQLParameters
77
90
  */
78
91
  loadParameters(params: any): GraphQLParameters;
92
+ /**
93
+ * Parameters with their defaults (the core builds a service configuration through this, not loadParameters)
94
+ * @param params - raw partial configuration
95
+ * @returns initialized GraphQLParameters
96
+ */
97
+ static createConfiguration(params?: any): GraphQLParameters;
79
98
  /**
80
99
  * Resolve a JSON Schema property by following $ref pointers
81
100
  * @param prop - JSON Schema property that may contain $ref
@@ -83,6 +102,22 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
83
102
  * @returns the resolved JSON Schema (or a null type if unresolvable)
84
103
  */
85
104
  getJsonSchemaDefinition(prop: JSONSchema7, definitions?: {}): JSONSchema7;
105
+ /**
106
+ * One GraphQL type per name: reuse the type already generated for this name and shape
107
+ * @param name - type name
108
+ * @param shape - what makes two types of this name the same (kind and field names)
109
+ * @param create - builds the type the first time
110
+ * @returns the type
111
+ * @throws Error when the name was generated for another shape
112
+ */
113
+ namedType<T extends GraphQLType>(name: string, shape: string, create: () => T): T;
114
+ /**
115
+ * Reserve a type name for a type built later (its entry gets the type once built)
116
+ * @param name - type name
117
+ * @param shape - identity of the reserving type
118
+ * @throws Error when the name is already taken by another shape
119
+ */
120
+ reserveName(name: string, shape: string): void;
86
121
  /**
87
122
  * Convert a JSON Schema to a GraphQL type definition
88
123
  * @param schema - JSON Schema to convert
@@ -115,7 +150,8 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
115
150
  * private (`__`) fields
116
151
  * @param filter - the client filter
117
152
  * @returns the validator, undefined without filter
118
- * @throws GraphQLError BAD_USER_INPUT for an invalid filter or one reading private fields
153
+ * @throws GraphQLError BAD_USER_INPUT for an invalid filter, one reading private fields, or a statement (DELETE,
154
+ * UPDATE, SELECT field list): GraphQL selection sets choose the fields
119
155
  */
120
156
  parseFilter(filter?: string): WebdaQL.PartialValidator | undefined;
121
157
  /**
@@ -160,6 +196,50 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
160
196
  * Generate GraphQL schema
161
197
  */
162
198
  generateSchema(): void;
199
+ /**
200
+ * Expose the registered operations, except the model CRUD the model schema already serves: read-only ones as
201
+ * queries, the others as mutations, server-streaming ones as subscriptions
202
+ * @param rootFields - query fields
203
+ * @param mutations - mutation fields
204
+ * @param subscriptions - subscription fields
205
+ * @throws Error when a field name is already defined
206
+ */
207
+ addOperationFields(rootFields: ThunkObjMap<GraphQLFieldConfig<any, any, any>>, mutations: ThunkObjMap<GraphQLFieldConfig<any, any, any>>, subscriptions: ThunkObjMap<GraphQLFieldConfig<any, any, any>>): void;
208
+ /**
209
+ * GraphQL arguments of an operation: one per input schema property, or a single `input` argument
210
+ * @param op - operation
211
+ * @param base - type name prefix
212
+ * @returns the arguments and how to turn them back into the operation input
213
+ */
214
+ operationArgs(op: OperationDefinition, base: string): {
215
+ args: GraphQLFieldConfigArgumentMap;
216
+ toInput: (args: Record<string, unknown>) => unknown;
217
+ };
218
+ /**
219
+ * GraphQL type of an operation result
220
+ * @param op - operation
221
+ * @param base - type name prefix
222
+ * @returns the model type for a model output, Boolean for void, else the converted output schema
223
+ */
224
+ operationOutputType(op: OperationDefinition, base: string): GraphQLOutputType;
225
+ /**
226
+ * Run an operation for a query or mutation field
227
+ * @param id - operation id
228
+ * @param op - operation
229
+ * @param input - operation input
230
+ * @param context - the GraphQL request context
231
+ * @returns the field value
232
+ */
233
+ runOperation(id: string, op: OperationDefinition, input: unknown, context: WebContext): Promise<unknown>;
234
+ /**
235
+ * Start a server-streaming operation for a subscription field
236
+ * @param id - operation id
237
+ * @param op - operation
238
+ * @param input - operation input
239
+ * @param context - the GraphQL request context
240
+ * @returns the chunks; leaving the subscription cancels the operation
241
+ */
242
+ subscribeOperation(id: string, op: OperationDefinition, input: unknown, context: WebContext): Promise<AsyncIterableIterator<unknown>>;
163
243
  /**
164
244
  * Extract the list of event names from the GraphQL selection set (excluding latestEventTime)
165
245
  * @param info - GraphQL resolve info containing field selections
@@ -182,6 +262,27 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
182
262
  results: any[];
183
263
  continuationToken?: string;
184
264
  }>;
265
+ /**
266
+ * Run a root query argument: the DomainService query with the caller permissions
267
+ * @param model - the model class
268
+ * @param query - the client query
269
+ * @param context - the caller context
270
+ * @returns the readable results
271
+ * @throws GraphQLError BAD_USER_INPUT for a statement (DELETE, UPDATE, SELECT field list)
272
+ */
273
+ queryModel(model: any, query: string, context: any): Promise<{
274
+ results: any[];
275
+ continuationToken?: string;
276
+ }>;
277
+ /**
278
+ * Refuse a query argument that is not a filter: DELETE and UPDATE are never run from GraphQL, and a SELECT field
279
+ * list is refused because the selection set already chooses the fields
280
+ *
281
+ * A query that does not parse is left to the query path, which reports it as before.
282
+ * @param query - the client query
283
+ * @throws GraphQLError BAD_USER_INPUT for a DELETE, an UPDATE or a SELECT field list
284
+ */
285
+ assertFilterQuery(query: string): void;
185
286
  /**
186
287
  * Create an async iterator that streams query results, updating when store events occur
187
288
  * @param model - model class to query
@@ -210,6 +311,15 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
210
311
  * @returns async iterator yielding event payloads with latestEventTime
211
312
  */
212
313
  registerAsyncEventIterator(model: ModelDefinition<any>, uuid: string | null, events: string[], context: any, identifier: string): Promise<AsyncIterator<any>>;
314
+ /**
315
+ * Hand a WebSocket message to graphql-ws; a failure is logged and closes the socket without leaking details
316
+ * @param socket - the WebSocket
317
+ * @param cb - the graphql-ws message handler
318
+ * @param data - the message
319
+ * @param storage - the instance storage to re-enter for the resolvers
320
+ * @returns a promise settled once the message is handled
321
+ */
322
+ handleSocketMessage(socket: Pick<WebSocket, "close">, cb: (data: string) => Promise<void>, data: string, storage: ReturnType<typeof useInstanceStorage>): Promise<void>;
213
323
  /**
214
324
  * Assemble the final GraphQLSchema from root query fields, mutations, and subscriptions
215
325
  * @param rootFields - top-level query fields
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.service.d.ts","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql.service.d.ts","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"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"}