@contello/sdk-client 8.21.2 → 8.22.0
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/dist/index.cjs +96 -29
- package/dist/index.d.cts +11 -12
- package/dist/index.d.ts +11 -12
- package/dist/index.js +86 -29
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/index.ts
|
|
@@ -26,6 +36,62 @@ module.exports = __toCommonJS(index_exports);
|
|
|
26
36
|
|
|
27
37
|
// src/client.ts
|
|
28
38
|
var import_graphql_ws = require("graphql-ws");
|
|
39
|
+
var import_rxjs2 = require("rxjs");
|
|
40
|
+
|
|
41
|
+
// src/diagnostics.ts
|
|
42
|
+
var import_node_diagnostics_channel = __toESM(require("diagnostics_channel"), 1);
|
|
43
|
+
var channels = {
|
|
44
|
+
start: "contello:sdk.start",
|
|
45
|
+
end: "contello:sdk.end",
|
|
46
|
+
error: "contello:sdk.error",
|
|
47
|
+
/** subscribe to decorate outgoing GraphQL WebSocket messages (e.g. inject traceparent) */
|
|
48
|
+
message: "contello:sdk.message"
|
|
49
|
+
};
|
|
50
|
+
var onStart = import_node_diagnostics_channel.default.channel(channels.start);
|
|
51
|
+
var onEnd = import_node_diagnostics_channel.default.channel(channels.end);
|
|
52
|
+
var onError = import_node_diagnostics_channel.default.channel(channels.error);
|
|
53
|
+
var onMessage = import_node_diagnostics_channel.default.channel(channels.message);
|
|
54
|
+
function hasOperationSubscribers() {
|
|
55
|
+
return onStart.hasSubscribers || onEnd.hasSubscribers || onError.hasSubscribers;
|
|
56
|
+
}
|
|
57
|
+
function getWrap() {
|
|
58
|
+
if (!hasOperationSubscribers()) {
|
|
59
|
+
return void 0;
|
|
60
|
+
}
|
|
61
|
+
return (name, fn) => {
|
|
62
|
+
const start = performance.now();
|
|
63
|
+
onStart.publish({ name });
|
|
64
|
+
let result;
|
|
65
|
+
try {
|
|
66
|
+
result = fn();
|
|
67
|
+
} catch (error) {
|
|
68
|
+
onError.publish({ name, error, durationMs: performance.now() - start });
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
if (result instanceof Promise) {
|
|
72
|
+
return result.then(
|
|
73
|
+
(r) => {
|
|
74
|
+
onEnd.publish({ name, durationMs: performance.now() - start });
|
|
75
|
+
return r;
|
|
76
|
+
},
|
|
77
|
+
(error) => {
|
|
78
|
+
onError.publish({ name, error, durationMs: performance.now() - start });
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
onEnd.publish({ name, durationMs: performance.now() - start });
|
|
84
|
+
return result;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function decorateMessage(message) {
|
|
88
|
+
if (!onMessage.hasSubscribers) {
|
|
89
|
+
return message;
|
|
90
|
+
}
|
|
91
|
+
const msg = { message };
|
|
92
|
+
onMessage.publish(msg);
|
|
93
|
+
return msg.message;
|
|
94
|
+
}
|
|
29
95
|
|
|
30
96
|
// src/pool.ts
|
|
31
97
|
var ConnectionPool = class {
|
|
@@ -79,7 +145,7 @@ var ConnectionPool = class {
|
|
|
79
145
|
|
|
80
146
|
// src/sdk.ts
|
|
81
147
|
var import_rxjs = require("rxjs");
|
|
82
|
-
var createSdk = (client,
|
|
148
|
+
var createSdk = (client, getSdk) => {
|
|
83
149
|
return getSdk((doc, vars, options) => {
|
|
84
150
|
if (options) {
|
|
85
151
|
console.warn("options are not supported yet");
|
|
@@ -96,28 +162,16 @@ var createSdk = (client, middlewares, getSdk) => {
|
|
|
96
162
|
throw new Error("No operation definition found");
|
|
97
163
|
}
|
|
98
164
|
const kind = operationDef.operation;
|
|
99
|
-
const
|
|
165
|
+
const execute = () => {
|
|
100
166
|
const wsClient = client();
|
|
101
|
-
|
|
167
|
+
const res = new import_rxjs.Observable((obs) => wsClient.subscribe({ query, variables: vars }, obs));
|
|
168
|
+
return kind !== "subscription" ? (0, import_rxjs.firstValueFrom)(res) : res;
|
|
102
169
|
};
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
};
|
|
109
|
-
const executeWithMiddlewares = (middlewares2, index) => {
|
|
110
|
-
if (index >= middlewares2.length) {
|
|
111
|
-
return executeRequest();
|
|
112
|
-
}
|
|
113
|
-
const middleware = middlewares2[index];
|
|
114
|
-
if (middleware?.onRequest) {
|
|
115
|
-
return middleware.onRequest(request, () => executeWithMiddlewares(middlewares2, index + 1));
|
|
116
|
-
}
|
|
117
|
-
return executeWithMiddlewares(middlewares2, index + 1);
|
|
118
|
-
};
|
|
119
|
-
const res = executeWithMiddlewares(middlewares, 0);
|
|
120
|
-
return kind !== "subscription" ? (0, import_rxjs.firstValueFrom)(res) : res;
|
|
170
|
+
const wrapFn = getWrap();
|
|
171
|
+
if (wrapFn && kind !== "subscription") {
|
|
172
|
+
return wrapFn(`sdk:${operationDef.name?.value ?? ""}`, execute);
|
|
173
|
+
}
|
|
174
|
+
return execute();
|
|
121
175
|
});
|
|
122
176
|
};
|
|
123
177
|
|
|
@@ -140,13 +194,7 @@ var ContelloSdkClient = class {
|
|
|
140
194
|
shouldRetry: () => true,
|
|
141
195
|
jsonMessageReplacer: (key, value) => {
|
|
142
196
|
if (!key) {
|
|
143
|
-
|
|
144
|
-
for (const middleware of params.middlewares ?? []) {
|
|
145
|
-
if (middleware.onOutgoingMessage) {
|
|
146
|
-
message = middleware.onOutgoingMessage(message);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return message;
|
|
197
|
+
return decorateMessage(value);
|
|
150
198
|
}
|
|
151
199
|
return value;
|
|
152
200
|
},
|
|
@@ -165,7 +213,7 @@ var ContelloSdkClient = class {
|
|
|
165
213
|
},
|
|
166
214
|
pooling?.enabled === false ? 1 : pooling?.size ?? 5
|
|
167
215
|
);
|
|
168
|
-
this._sdk = { sdk: createSdk(() => this._pool.get(),
|
|
216
|
+
this._sdk = { sdk: createSdk(() => this._pool.get(), getSdk) };
|
|
169
217
|
}
|
|
170
218
|
get sdk() {
|
|
171
219
|
return this._sdk.sdk;
|
|
@@ -176,6 +224,25 @@ var ContelloSdkClient = class {
|
|
|
176
224
|
async disconnect() {
|
|
177
225
|
await this._pool.disconnect();
|
|
178
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Subscribes to a raw GraphQL operation against the connection pool.
|
|
229
|
+
* Returns an Observable that emits each result's data.
|
|
230
|
+
*/
|
|
231
|
+
subscribe(query, variables) {
|
|
232
|
+
const wsClient = this._pool.get();
|
|
233
|
+
return new import_rxjs2.Observable((obs) => wsClient.subscribe({ query, variables }, obs)).pipe(
|
|
234
|
+
(0, import_rxjs2.map)((r) => r.data)
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Executes a raw GraphQL query/mutation and returns the first result.
|
|
239
|
+
* Convenience wrapper around subscribe + firstValueFrom.
|
|
240
|
+
*/
|
|
241
|
+
execute(query, variables) {
|
|
242
|
+
const fn = () => (0, import_rxjs2.firstValueFrom)(this.subscribe(query, variables));
|
|
243
|
+
const wrap = getWrap();
|
|
244
|
+
return wrap ? wrap("sdk:execute", fn) : fn();
|
|
245
|
+
}
|
|
179
246
|
};
|
|
180
247
|
// Annotate the CommonJS export names for ESM import in node:
|
|
181
248
|
0 && (module.exports = {
|
package/dist/index.d.cts
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { DocumentNode, ExecutionResult } from 'graphql';
|
|
3
3
|
|
|
4
|
-
type ContelloSdkClientMiddleware = {
|
|
5
|
-
onRequest?: (request: {
|
|
6
|
-
kind: 'query' | 'mutation' | 'subscription';
|
|
7
|
-
operationName: string;
|
|
8
|
-
query: string;
|
|
9
|
-
variables: Record<string, any>;
|
|
10
|
-
}, next: () => Observable<any>) => Observable<any>;
|
|
11
|
-
onOutgoingMessage?: (message: any) => any;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
4
|
type Requester<C = any, E = unknown> = <R, V>(doc: DocumentNode, vars?: V, options?: C) => Promise<ExecutionResult<R, E>> | Observable<ExecutionResult<R, E>>;
|
|
15
5
|
|
|
16
6
|
type ClientEventContext = {
|
|
@@ -21,7 +11,6 @@ type ContelloSdkClientParams = {
|
|
|
21
11
|
url: string;
|
|
22
12
|
project: string;
|
|
23
13
|
token: string;
|
|
24
|
-
middlewares?: ContelloSdkClientMiddleware[] | undefined;
|
|
25
14
|
pooling?: {
|
|
26
15
|
enabled?: boolean | undefined;
|
|
27
16
|
size?: number | undefined;
|
|
@@ -45,6 +34,16 @@ declare class ContelloSdkClient<T> {
|
|
|
45
34
|
get sdk(): T;
|
|
46
35
|
connect(): Promise<void>;
|
|
47
36
|
disconnect(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Subscribes to a raw GraphQL operation against the connection pool.
|
|
39
|
+
* Returns an Observable that emits each result's data.
|
|
40
|
+
*/
|
|
41
|
+
subscribe<TData>(query: string, variables?: Record<string, unknown> | undefined): Observable<TData>;
|
|
42
|
+
/**
|
|
43
|
+
* Executes a raw GraphQL query/mutation and returns the first result.
|
|
44
|
+
* Convenience wrapper around subscribe + firstValueFrom.
|
|
45
|
+
*/
|
|
46
|
+
execute<TData>(query: string, variables?: Record<string, unknown> | undefined): Promise<TData>;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
export { ContelloSdkClient, type
|
|
49
|
+
export { ContelloSdkClient, type ContelloSdkClientParams };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { DocumentNode, ExecutionResult } from 'graphql';
|
|
3
3
|
|
|
4
|
-
type ContelloSdkClientMiddleware = {
|
|
5
|
-
onRequest?: (request: {
|
|
6
|
-
kind: 'query' | 'mutation' | 'subscription';
|
|
7
|
-
operationName: string;
|
|
8
|
-
query: string;
|
|
9
|
-
variables: Record<string, any>;
|
|
10
|
-
}, next: () => Observable<any>) => Observable<any>;
|
|
11
|
-
onOutgoingMessage?: (message: any) => any;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
4
|
type Requester<C = any, E = unknown> = <R, V>(doc: DocumentNode, vars?: V, options?: C) => Promise<ExecutionResult<R, E>> | Observable<ExecutionResult<R, E>>;
|
|
15
5
|
|
|
16
6
|
type ClientEventContext = {
|
|
@@ -21,7 +11,6 @@ type ContelloSdkClientParams = {
|
|
|
21
11
|
url: string;
|
|
22
12
|
project: string;
|
|
23
13
|
token: string;
|
|
24
|
-
middlewares?: ContelloSdkClientMiddleware[] | undefined;
|
|
25
14
|
pooling?: {
|
|
26
15
|
enabled?: boolean | undefined;
|
|
27
16
|
size?: number | undefined;
|
|
@@ -45,6 +34,16 @@ declare class ContelloSdkClient<T> {
|
|
|
45
34
|
get sdk(): T;
|
|
46
35
|
connect(): Promise<void>;
|
|
47
36
|
disconnect(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Subscribes to a raw GraphQL operation against the connection pool.
|
|
39
|
+
* Returns an Observable that emits each result's data.
|
|
40
|
+
*/
|
|
41
|
+
subscribe<TData>(query: string, variables?: Record<string, unknown> | undefined): Observable<TData>;
|
|
42
|
+
/**
|
|
43
|
+
* Executes a raw GraphQL query/mutation and returns the first result.
|
|
44
|
+
* Convenience wrapper around subscribe + firstValueFrom.
|
|
45
|
+
*/
|
|
46
|
+
execute<TData>(query: string, variables?: Record<string, unknown> | undefined): Promise<TData>;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
export { ContelloSdkClient, type
|
|
49
|
+
export { ContelloSdkClient, type ContelloSdkClientParams };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
// src/client.ts
|
|
2
2
|
import { createClient } from "graphql-ws";
|
|
3
|
+
import { Observable as Observable2, firstValueFrom as firstValueFrom2, map } from "rxjs";
|
|
4
|
+
|
|
5
|
+
// src/diagnostics.ts
|
|
6
|
+
import dc from "diagnostics_channel";
|
|
7
|
+
var channels = {
|
|
8
|
+
start: "contello:sdk.start",
|
|
9
|
+
end: "contello:sdk.end",
|
|
10
|
+
error: "contello:sdk.error",
|
|
11
|
+
/** subscribe to decorate outgoing GraphQL WebSocket messages (e.g. inject traceparent) */
|
|
12
|
+
message: "contello:sdk.message"
|
|
13
|
+
};
|
|
14
|
+
var onStart = dc.channel(channels.start);
|
|
15
|
+
var onEnd = dc.channel(channels.end);
|
|
16
|
+
var onError = dc.channel(channels.error);
|
|
17
|
+
var onMessage = dc.channel(channels.message);
|
|
18
|
+
function hasOperationSubscribers() {
|
|
19
|
+
return onStart.hasSubscribers || onEnd.hasSubscribers || onError.hasSubscribers;
|
|
20
|
+
}
|
|
21
|
+
function getWrap() {
|
|
22
|
+
if (!hasOperationSubscribers()) {
|
|
23
|
+
return void 0;
|
|
24
|
+
}
|
|
25
|
+
return (name, fn) => {
|
|
26
|
+
const start = performance.now();
|
|
27
|
+
onStart.publish({ name });
|
|
28
|
+
let result;
|
|
29
|
+
try {
|
|
30
|
+
result = fn();
|
|
31
|
+
} catch (error) {
|
|
32
|
+
onError.publish({ name, error, durationMs: performance.now() - start });
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
if (result instanceof Promise) {
|
|
36
|
+
return result.then(
|
|
37
|
+
(r) => {
|
|
38
|
+
onEnd.publish({ name, durationMs: performance.now() - start });
|
|
39
|
+
return r;
|
|
40
|
+
},
|
|
41
|
+
(error) => {
|
|
42
|
+
onError.publish({ name, error, durationMs: performance.now() - start });
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
onEnd.publish({ name, durationMs: performance.now() - start });
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function decorateMessage(message) {
|
|
52
|
+
if (!onMessage.hasSubscribers) {
|
|
53
|
+
return message;
|
|
54
|
+
}
|
|
55
|
+
const msg = { message };
|
|
56
|
+
onMessage.publish(msg);
|
|
57
|
+
return msg.message;
|
|
58
|
+
}
|
|
3
59
|
|
|
4
60
|
// src/pool.ts
|
|
5
61
|
var ConnectionPool = class {
|
|
@@ -53,7 +109,7 @@ var ConnectionPool = class {
|
|
|
53
109
|
|
|
54
110
|
// src/sdk.ts
|
|
55
111
|
import { Observable, firstValueFrom } from "rxjs";
|
|
56
|
-
var createSdk = (client,
|
|
112
|
+
var createSdk = (client, getSdk) => {
|
|
57
113
|
return getSdk((doc, vars, options) => {
|
|
58
114
|
if (options) {
|
|
59
115
|
console.warn("options are not supported yet");
|
|
@@ -70,28 +126,16 @@ var createSdk = (client, middlewares, getSdk) => {
|
|
|
70
126
|
throw new Error("No operation definition found");
|
|
71
127
|
}
|
|
72
128
|
const kind = operationDef.operation;
|
|
73
|
-
const
|
|
129
|
+
const execute = () => {
|
|
74
130
|
const wsClient = client();
|
|
75
|
-
|
|
131
|
+
const res = new Observable((obs) => wsClient.subscribe({ query, variables: vars }, obs));
|
|
132
|
+
return kind !== "subscription" ? firstValueFrom(res) : res;
|
|
76
133
|
};
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
const executeWithMiddlewares = (middlewares2, index) => {
|
|
84
|
-
if (index >= middlewares2.length) {
|
|
85
|
-
return executeRequest();
|
|
86
|
-
}
|
|
87
|
-
const middleware = middlewares2[index];
|
|
88
|
-
if (middleware?.onRequest) {
|
|
89
|
-
return middleware.onRequest(request, () => executeWithMiddlewares(middlewares2, index + 1));
|
|
90
|
-
}
|
|
91
|
-
return executeWithMiddlewares(middlewares2, index + 1);
|
|
92
|
-
};
|
|
93
|
-
const res = executeWithMiddlewares(middlewares, 0);
|
|
94
|
-
return kind !== "subscription" ? firstValueFrom(res) : res;
|
|
134
|
+
const wrapFn = getWrap();
|
|
135
|
+
if (wrapFn && kind !== "subscription") {
|
|
136
|
+
return wrapFn(`sdk:${operationDef.name?.value ?? ""}`, execute);
|
|
137
|
+
}
|
|
138
|
+
return execute();
|
|
95
139
|
});
|
|
96
140
|
};
|
|
97
141
|
|
|
@@ -114,13 +158,7 @@ var ContelloSdkClient = class {
|
|
|
114
158
|
shouldRetry: () => true,
|
|
115
159
|
jsonMessageReplacer: (key, value) => {
|
|
116
160
|
if (!key) {
|
|
117
|
-
|
|
118
|
-
for (const middleware of params.middlewares ?? []) {
|
|
119
|
-
if (middleware.onOutgoingMessage) {
|
|
120
|
-
message = middleware.onOutgoingMessage(message);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return message;
|
|
161
|
+
return decorateMessage(value);
|
|
124
162
|
}
|
|
125
163
|
return value;
|
|
126
164
|
},
|
|
@@ -139,7 +177,7 @@ var ContelloSdkClient = class {
|
|
|
139
177
|
},
|
|
140
178
|
pooling?.enabled === false ? 1 : pooling?.size ?? 5
|
|
141
179
|
);
|
|
142
|
-
this._sdk = { sdk: createSdk(() => this._pool.get(),
|
|
180
|
+
this._sdk = { sdk: createSdk(() => this._pool.get(), getSdk) };
|
|
143
181
|
}
|
|
144
182
|
get sdk() {
|
|
145
183
|
return this._sdk.sdk;
|
|
@@ -150,6 +188,25 @@ var ContelloSdkClient = class {
|
|
|
150
188
|
async disconnect() {
|
|
151
189
|
await this._pool.disconnect();
|
|
152
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Subscribes to a raw GraphQL operation against the connection pool.
|
|
193
|
+
* Returns an Observable that emits each result's data.
|
|
194
|
+
*/
|
|
195
|
+
subscribe(query, variables) {
|
|
196
|
+
const wsClient = this._pool.get();
|
|
197
|
+
return new Observable2((obs) => wsClient.subscribe({ query, variables }, obs)).pipe(
|
|
198
|
+
map((r) => r.data)
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Executes a raw GraphQL query/mutation and returns the first result.
|
|
203
|
+
* Convenience wrapper around subscribe + firstValueFrom.
|
|
204
|
+
*/
|
|
205
|
+
execute(query, variables) {
|
|
206
|
+
const fn = () => firstValueFrom2(this.subscribe(query, variables));
|
|
207
|
+
const wrap = getWrap();
|
|
208
|
+
return wrap ? wrap("sdk:execute", fn) : fn();
|
|
209
|
+
}
|
|
153
210
|
};
|
|
154
211
|
export {
|
|
155
212
|
ContelloSdkClient
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contello/sdk-client",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.22.0",
|
|
4
4
|
"description": "GraphQL SDK client for Contello CMS with WebSocket transport and connection pooling",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"rxjs": "^7.8.2",
|
|
26
|
-
"graphql": "^16.
|
|
27
|
-
"graphql-ws": "^6.0.
|
|
26
|
+
"graphql": "^16.13.1",
|
|
27
|
+
"graphql-ws": "^6.0.7"
|
|
28
28
|
},
|
|
29
29
|
"files": [
|
|
30
30
|
"dist"
|