@webda/graphql 4.0.0-beta.6 → 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
@@ -161,6 +196,50 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
161
196
  * Generate GraphQL schema
162
197
  */
163
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>>;
164
243
  /**
165
244
  * Extract the list of event names from the GraphQL selection set (excluding latestEventTime)
166
245
  * @param info - GraphQL resolve info containing field selections
@@ -232,6 +311,15 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
232
311
  * @returns async iterator yielding event payloads with latestEventTime
233
312
  */
234
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>;
235
323
  /**
236
324
  * Assemble the final GraphQLSchema from root query fields, mutations, and subscriptions
237
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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"}