@webda/graphql 4.0.0-beta.6 → 4.0.0-beta.8

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
@@ -94,6 +129,24 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
94
129
  type: GraphQLType;
95
130
  description?: string;
96
131
  };
132
+ /**
133
+ * GraphQL names of the properties of a type, see {@link graphQLNames}: a JSON key that is not a GraphQL name
134
+ * (`available-balance`) is exposed as `availableBalance`, unless that name is taken (logged, left out)
135
+ * @param keys - the property keys
136
+ * @param type - the type holding them, for the log
137
+ * @returns the GraphQL name of each key exposed
138
+ */
139
+ protected graphQLNames(keys: string[], type: string): Map<string, string>;
140
+ /**
141
+ * A field renamed from its JSON key reads that key (output), and carries it to be put back on inputs
142
+ * ({@link restoreInputKeys})
143
+ * @param config - the field config
144
+ * @param key - the JSON key
145
+ * @param name - the GraphQL name
146
+ * @param input - an input type field
147
+ * @returns the field config
148
+ */
149
+ protected renamedField(config: any, key: string, name: string, input?: boolean): any;
97
150
  /**
98
151
  * Get or create a GraphQL query result wrapper type with results array and continuationToken
99
152
  * @param type - GraphQL object type to wrap in a query result
@@ -161,6 +214,50 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
161
214
  * Generate GraphQL schema
162
215
  */
163
216
  generateSchema(): void;
217
+ /**
218
+ * Expose the registered operations, except the model CRUD the model schema already serves: read-only ones as
219
+ * queries, the others as mutations, server-streaming ones as subscriptions
220
+ * @param rootFields - query fields
221
+ * @param mutations - mutation fields
222
+ * @param subscriptions - subscription fields
223
+ * @throws Error when a field name is already defined
224
+ */
225
+ addOperationFields(rootFields: ThunkObjMap<GraphQLFieldConfig<any, any, any>>, mutations: ThunkObjMap<GraphQLFieldConfig<any, any, any>>, subscriptions: ThunkObjMap<GraphQLFieldConfig<any, any, any>>): void;
226
+ /**
227
+ * GraphQL arguments of an operation: one per input schema property, or a single `input` argument
228
+ * @param op - operation
229
+ * @param base - type name prefix
230
+ * @returns the arguments and how to turn them back into the operation input
231
+ */
232
+ operationArgs(op: OperationDefinition, base: string): {
233
+ args: GraphQLFieldConfigArgumentMap;
234
+ toInput: (args: Record<string, unknown>) => unknown;
235
+ };
236
+ /**
237
+ * GraphQL type of an operation result
238
+ * @param op - operation
239
+ * @param base - type name prefix
240
+ * @returns the model type for a model output, Boolean for void, else the converted output schema
241
+ */
242
+ operationOutputType(op: OperationDefinition, base: string): GraphQLOutputType;
243
+ /**
244
+ * Run an operation for a query or mutation field
245
+ * @param id - operation id
246
+ * @param op - operation
247
+ * @param input - operation input
248
+ * @param context - the GraphQL request context
249
+ * @returns the field value
250
+ */
251
+ runOperation(id: string, op: OperationDefinition, input: unknown, context: WebContext): Promise<unknown>;
252
+ /**
253
+ * Start a server-streaming operation for a subscription field
254
+ * @param id - operation id
255
+ * @param op - operation
256
+ * @param input - operation input
257
+ * @param context - the GraphQL request context
258
+ * @returns the chunks; leaving the subscription cancels the operation
259
+ */
260
+ subscribeOperation(id: string, op: OperationDefinition, input: unknown, context: WebContext): Promise<AsyncIterableIterator<unknown>>;
164
261
  /**
165
262
  * Extract the list of event names from the GraphQL selection set (excluding latestEventTime)
166
263
  * @param info - GraphQL resolve info containing field selections
@@ -232,6 +329,15 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
232
329
  * @returns async iterator yielding event payloads with latestEventTime
233
330
  */
234
331
  registerAsyncEventIterator(model: ModelDefinition<any>, uuid: string | null, events: string[], context: any, identifier: string): Promise<AsyncIterator<any>>;
332
+ /**
333
+ * Hand a WebSocket message to graphql-ws; a failure is logged and closes the socket without leaking details
334
+ * @param socket - the WebSocket
335
+ * @param cb - the graphql-ws message handler
336
+ * @param data - the message
337
+ * @param storage - the instance storage to re-enter for the resolvers
338
+ * @returns a promise settled once the message is handled
339
+ */
340
+ handleSocketMessage(socket: Pick<WebSocket, "close">, cb: (data: string) => Promise<void>, data: string, storage: ReturnType<typeof useInstanceStorage>): Promise<void>;
235
341
  /**
236
342
  * Assemble the final GraphQLSchema from root query fields, mutations, and subscriptions
237
343
  * @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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"}