@livequery/nestjs 2.0.20 → 2.0.22
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/build/src/ApiGateway.d.ts +6 -4
- package/build/src/ApiGateway.js +83 -41
- package/build/src/ApiGateway.js.map +1 -1
- package/build/src/ApiGatewayLinker.d.ts +2 -8
- package/build/src/ApiGatewayLinker.js +31 -48
- package/build/src/ApiGatewayLinker.js.map +1 -1
- package/build/src/GatewayLinker.d.ts +8 -0
- package/build/src/GatewayLinker.js +53 -0
- package/build/src/GatewayLinker.js.map +1 -0
- package/build/src/LivequeryInterceptor.d.ts +2 -1
- package/build/src/LivequeryInterceptor.js +9 -17
- package/build/src/LivequeryInterceptor.js.map +1 -1
- package/build/src/LivequeryResponse.d.ts +3 -7
- package/build/src/LivequeryResponse.js +1 -2
- package/build/src/LivequeryResponse.js.map +1 -1
- package/build/src/LivequeryWebsocketSync.d.ts +38 -23
- package/build/src/LivequeryWebsocketSync.js +122 -126
- package/build/src/LivequeryWebsocketSync.js.map +1 -1
- package/build/src/RxjsUdp.d.ts +6 -2
- package/build/src/RxjsUdp.js +9 -3
- package/build/src/RxjsUdp.js.map +1 -1
- package/build/src/const.js +1 -1
- package/build/src/const.js.map +1 -1
- package/build/src/helpers/createDatasourceMapper.d.ts +15 -10
- package/build/src/helpers/createDatasourceMapper.js +13 -14
- package/build/src/helpers/createDatasourceMapper.js.map +1 -1
- package/build/src/index.d.ts +1 -1
- package/build/src/index.js +1 -1
- package/build/src/index.js.map +1 -1
- package/build/tests/gateway.d.ts +2 -0
- package/build/tests/gateway.js +19 -0
- package/build/tests/gateway.js.map +1 -0
- package/build/tests/service.d.ts +13 -0
- package/build/tests/service.js +65 -0
- package/build/tests/service.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +7 -3
|
@@ -18,7 +18,6 @@ export type ServiceApiMetadata = {
|
|
|
18
18
|
id: string;
|
|
19
19
|
namespace: string;
|
|
20
20
|
role: 'service' | 'gateway';
|
|
21
|
-
host: string;
|
|
22
21
|
name: string;
|
|
23
22
|
port: number;
|
|
24
23
|
paths: Array<{
|
|
@@ -26,7 +25,10 @@ export type ServiceApiMetadata = {
|
|
|
26
25
|
path: string;
|
|
27
26
|
}>;
|
|
28
27
|
websocket?: string;
|
|
29
|
-
|
|
28
|
+
auth: string;
|
|
29
|
+
wsauth?: string;
|
|
30
|
+
linked: string[];
|
|
31
|
+
target?: string;
|
|
30
32
|
};
|
|
31
33
|
export type ServiceApiStatus = {
|
|
32
34
|
id: string;
|
|
@@ -44,8 +46,8 @@ export type ApiGatewayClientOptions = {
|
|
|
44
46
|
};
|
|
45
47
|
export declare class ApiGateway {
|
|
46
48
|
#private;
|
|
47
|
-
private
|
|
48
|
-
constructor(
|
|
49
|
+
private lws;
|
|
50
|
+
constructor(lws: LivequeryWebsocketSync);
|
|
49
51
|
private get;
|
|
50
52
|
private post;
|
|
51
53
|
private patch;
|
package/build/src/ApiGateway.js
CHANGED
|
@@ -4,38 +4,68 @@ import * as http from 'http';
|
|
|
4
4
|
import { LivequeryWebsocketSync } from './LivequeryWebsocketSync.js';
|
|
5
5
|
import { API_GATEWAY_NAMESPACE } from './const.js';
|
|
6
6
|
import { RxjsUdp } from './RxjsUdp.js';
|
|
7
|
-
import { mergeMap } from 'rxjs/operators';
|
|
7
|
+
import { mergeMap, filter, debounceTime, groupBy } from 'rxjs/operators';
|
|
8
|
+
import { merge, of } from 'rxjs';
|
|
9
|
+
import { generateKeyPairSync } from 'crypto';
|
|
10
|
+
import jwt from 'jsonwebtoken';
|
|
8
11
|
let ApiGateway = class ApiGateway {
|
|
9
|
-
|
|
12
|
+
lws;
|
|
10
13
|
#services = new Map;
|
|
11
14
|
#routing = {};
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
namespace: API_GATEWAY_NAMESPACE,
|
|
15
|
+
#secret = generateKeyPairSync('ec', {
|
|
16
|
+
namedCurve: 'P-256',
|
|
17
|
+
publicKeyEncoding: { type: 'spki', format: 'pem' },
|
|
18
|
+
privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
|
|
19
|
+
});
|
|
20
|
+
constructor(lws) {
|
|
21
|
+
this.lws = lws;
|
|
22
|
+
const udp = new RxjsUdp();
|
|
23
|
+
merge(udp, of({
|
|
22
24
|
host: '',
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
namespace: API_GATEWAY_NAMESPACE,
|
|
26
|
+
id: udp.id,
|
|
27
|
+
name: 'seeding-gateway',
|
|
25
28
|
paths: [],
|
|
26
29
|
port: 0,
|
|
27
|
-
role: '
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
role: 'service',
|
|
31
|
+
linked: [],
|
|
32
|
+
auth: ''
|
|
33
|
+
})).pipe(filter(m => m.role == 'service'), filter(m => !this.#services.has(m.id)), groupBy(m => m.id), mergeMap($ => $.pipe(debounceTime(500), mergeMap(async ({ host, ...data }) => {
|
|
34
|
+
if (!data.auth) {
|
|
35
|
+
const auth = jwt.sign({}, this.#secret.privateKey, {
|
|
36
|
+
algorithm: 'ES256',
|
|
37
|
+
expiresIn: 3600
|
|
38
|
+
});
|
|
39
|
+
const me = {
|
|
40
|
+
namespace: API_GATEWAY_NAMESPACE,
|
|
41
|
+
id: udp.id,
|
|
42
|
+
name: '',
|
|
43
|
+
paths: [],
|
|
44
|
+
port: 0,
|
|
45
|
+
role: 'gateway',
|
|
46
|
+
auth,
|
|
47
|
+
linked: [...this.#services.keys()]
|
|
48
|
+
};
|
|
49
|
+
udp.broadcast(me, host || undefined);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
jwt.verify(data.auth, this.#secret.publicKey);
|
|
54
|
+
await this.#join(host, data);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
}
|
|
59
|
+
})))).subscribe();
|
|
30
60
|
}
|
|
31
|
-
async #join(metadata) {
|
|
61
|
+
async #join(host, metadata) {
|
|
32
62
|
if (this.#services.has(metadata.id))
|
|
33
63
|
return;
|
|
34
|
-
const hostname = `${
|
|
35
|
-
const subscription = metadata.websocket
|
|
36
|
-
this.#services.set(metadata.id, { metadata, subscription });
|
|
37
|
-
process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service API online: ${metadata.name} at ${
|
|
38
|
-
metadata.websocket && process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service websocket online: ${metadata.name} at ${
|
|
64
|
+
const hostname = `${host}:${metadata.port}`;
|
|
65
|
+
const subscription = metadata.websocket && this.lws?.connect(`ws://${hostname}${metadata.websocket}`, metadata.wsauth, () => this.#disconnect(metadata.id));
|
|
66
|
+
this.#services.set(metadata.id, { metadata, subscription, host });
|
|
67
|
+
process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service API online: ${metadata.name} at ${host}:${metadata.port}`);
|
|
68
|
+
metadata.websocket && process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service websocket online: ${metadata.name} at ${host}:${metadata.port}${metadata.websocket}`);
|
|
39
69
|
for (const { method, path } of metadata.paths) {
|
|
40
70
|
const refs = path.split('/').map(r => {
|
|
41
71
|
if (r.includes(':')) {
|
|
@@ -79,12 +109,12 @@ let ApiGateway = class ApiGateway {
|
|
|
79
109
|
const service = this.#services.get(id);
|
|
80
110
|
if (!service)
|
|
81
111
|
return;
|
|
82
|
-
const { metadata, subscription } = service;
|
|
112
|
+
const { metadata, subscription, host } = service;
|
|
83
113
|
subscription.unsubscribe();
|
|
84
|
-
process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service API OFFLINE: ${metadata.name} at ${
|
|
85
|
-
process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service websocket OFFLINE: ${metadata.name} at ${
|
|
114
|
+
process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service API OFFLINE: ${metadata.name} at ${host}:${metadata.port}`);
|
|
115
|
+
process.env.LIVEQUERY_API_GATEWAY_DEBUG && console.log(`Service websocket OFFLINE: ${metadata.name} at ${host}:${metadata.port}${metadata.websocket}`);
|
|
86
116
|
this.#services.delete(id);
|
|
87
|
-
const hostname = `${
|
|
117
|
+
const hostname = `${host}:${metadata.port}`;
|
|
88
118
|
for (let routes = [this.#routing]; routes.length > 0; routes = routes.map(c => [...Object.values(c)].map(c => c.children).filter(c => !!c)).flat(2)) {
|
|
89
119
|
for (const route of routes) {
|
|
90
120
|
for (const { methods } of Object.values(route || {})) {
|
|
@@ -122,45 +152,57 @@ let ApiGateway = class ApiGateway {
|
|
|
122
152
|
}
|
|
123
153
|
#proxy(req, res) {
|
|
124
154
|
if (Number(req.headers['content-length'] || 0) > 0 && !req.rawBody) {
|
|
125
|
-
return res.json({
|
|
155
|
+
return res.status(500).json({
|
|
126
156
|
error: {
|
|
157
|
+
status: 500,
|
|
127
158
|
code: "MISISNG_API_GATEWAY_RAW_BODY",
|
|
128
|
-
message: `Please enable rawBody = true in NestFactory.create(`
|
|
159
|
+
message: `Please enable rawBody = true in NestFactory.create()`
|
|
129
160
|
}
|
|
130
161
|
});
|
|
131
162
|
}
|
|
132
163
|
const target = this.#resolve(req.url, req.method.toUpperCase());
|
|
133
164
|
if (!target) {
|
|
134
|
-
|
|
165
|
+
const status = target === null ? 500 : 404;
|
|
166
|
+
return res.sendStatus(status).json({
|
|
135
167
|
error: {
|
|
136
|
-
|
|
168
|
+
status,
|
|
169
|
+
code: status == 500 ? 'MICROSERVICE_OFFLINE' : 'API_NOT_FOUND'
|
|
137
170
|
}
|
|
138
171
|
});
|
|
139
172
|
}
|
|
140
173
|
const [host, port] = target.uri.split(':');
|
|
174
|
+
const headers = {
|
|
175
|
+
...req.headers,
|
|
176
|
+
...this.lws ? {
|
|
177
|
+
'x-lcid': req.headers['x-lcid'] || req.headers['socket_id'],
|
|
178
|
+
'x-lgid': req.headers['x-lgid'] || this.lws.id
|
|
179
|
+
} : {}
|
|
180
|
+
};
|
|
141
181
|
const options = {
|
|
142
182
|
host,
|
|
143
183
|
port: Number(port || 80),
|
|
144
184
|
path: req.url,
|
|
145
185
|
method: req.method.toUpperCase(),
|
|
146
|
-
headers
|
|
147
|
-
insecureHTTPParser: true
|
|
186
|
+
headers
|
|
148
187
|
};
|
|
149
|
-
const proxy_request = http.request(options
|
|
150
|
-
res.status(response.statusCode);
|
|
151
|
-
for (const [k, v] of Object.entries(response.headers)) {
|
|
152
|
-
res.setHeader(k, v);
|
|
153
|
-
}
|
|
154
|
-
response.pipe(res);
|
|
155
|
-
});
|
|
188
|
+
const proxy_request = http.request(options);
|
|
156
189
|
proxy_request
|
|
157
190
|
.on('error', (e) => {
|
|
158
191
|
e.code == 'ECONNREFUSED' && this.#disconnect(target.instance_id);
|
|
159
192
|
res.json({ error: { code: "SERVICE_API_OFFLINE" } });
|
|
160
193
|
})
|
|
161
194
|
.on('upgrade', (ireq, socket, head) => {
|
|
195
|
+
})
|
|
196
|
+
.on('response', response => {
|
|
197
|
+
res.status(response.statusCode);
|
|
198
|
+
for (const [k, v] of Object.entries(response.headers)) {
|
|
199
|
+
res.setHeader(k, v);
|
|
200
|
+
}
|
|
201
|
+
response.pipe(res);
|
|
202
|
+
});
|
|
203
|
+
proxy_request.write(req.rawBody || Buffer.alloc(0), e => {
|
|
204
|
+
proxy_request.end();
|
|
162
205
|
});
|
|
163
|
-
proxy_request.write(req.rawBody || Buffer.alloc(0));
|
|
164
206
|
}
|
|
165
207
|
get(req, res) {
|
|
166
208
|
return this.#proxy(req, res);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiGateway.js","sourceRoot":"","sources":["../../src/ApiGateway.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,gBAAgB,CAAA;AACnG,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AA+ClC,IAAM,UAAU,GAAhB,MAAM,UAAU;IAOK;IALxB,SAAS,GAAG,IAAI,GAA0E,CAAA;IAC1F,QAAQ,GAAY,EAAE,CAAA;IACtB,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;IAEpB,YACwB,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAElE,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,MAAM,CAAC,GAAiC,MAAM,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACtH,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,qBAAqB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1F,CAAC,CAAC,CACL,CAAC,SAAS,EAAE,CAAA;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAChB,SAAS,EAAE,qBAAqB;YAChC,IAAI,EAAE,EAAE;YACR,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,EAAE;SACV,CAAC,CAAA;IAEN,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAA4B;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAM;QAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpD,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAC1E,QAAQ,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,EACvC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CACtC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QACnI,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QACpL,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACjC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;gBAChC,CAAC;gBACD,OAAO,CAAC,CAAA;YACZ,CAAC,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,KAAK,EAAE,MAAuB,EAAE,IAAc,EAAE,EAAE;gBAE5D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBAClB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;oBACvB,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;oBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;oBAEnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnB,OAAO,CAAC,MAAM,CAAC,GAAG;4BACd,KAAK,EAAE,EAAE;4BACT,oBAAoB,EAAE,CAAC;yBAC1B,CAAA;oBACL,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;oBACvE,OAAM;gBACV,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;wBACnB,QAAQ,EAAE,EAAE;wBACZ,MAAM,EAAE,EAAE;qBACb,CAAA;gBACL,CAAC;gBACD,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtF,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACxE,CAAC,CAAA;YAED,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;QAC9D,CAAC;IACL,CAAC;IAED,KAAK,CAAE,WAAW,CAAC,EAAU;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;QAC1C,YAAY,CAAC,WAAW,EAAE,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QACpI,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAC/J,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACzB,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAA;QACpD,KACI,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC5B,MAAM,CAAC,MAAM,GAAG,CAAC,EACjB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/F,CAAC;YACC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;oBACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;wBAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAA;oBAC1D,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAID,MAAM,CAAC,OAAwB,EAAE,GAAW;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAA;QACjB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3D,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,MAAc;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACnD,KACI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,EAC1F,GAAG,IAAI,SAAS,IAAI,MAAM,EAC1B,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,CAAC;YACC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;gBACzC,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;wBAAE,OAAO,IAAI,CAAA;oBAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAClF,CAAC;gBACD,OAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAsD,EAAE,GAAa;QAExE,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjE,OAAO,GAAG,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE;oBACH,IAAI,EAAE,8BAA8B;oBACpC,OAAO,EAAE,qDAAqD;iBACjE;aACJ,CAAC,CAAC;QACP,CAAC;QAGD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE;oBACH,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB;iBACvE;aACJ,CAAC,CAAA;QACN,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAwB;YACjC,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,EAAE,GAAG,CAAC,GAAG;YACb,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;YAChC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,kBAAkB,EAAE,IAAI;SAC3B,CAAA;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC/B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC,CAAC,CAAC;QACH,aAAa;aACR,EAAE,CAAC,OAAO,EAAE,CAAC,CAAwB,EAAE,EAAE;YACtC,CAAC,CAAC,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;aACD,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACtC,CAAC,CAAC,CAAA;QAEN,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvD,CAAC;IAIO,GAAG,CAAY,GAA0C,EAAS,GAAa;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IAGO,IAAI,CAAY,GAA0C,EAAS,GAAa;QACpF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IAGO,KAAK,CAAY,GAA0C,EAAS,GAAa;QACrF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IAGO,GAAG,CAAY,GAA0C,EAAS,GAAa;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IAGO,GAAG,CAAY,GAA0C,EAAS,GAAa;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;CAEJ,CAAA;AAxBW;IADP,GAAG,EAAE;IACO,WAAA,OAAO,EAAE,CAAA;IAA8C,WAAA,GAAG,EAAE,CAAA;;;;qCAExE;AAGO;IADP,IAAI,EAAE;IACO,WAAA,OAAO,EAAE,CAAA;IAA8C,WAAA,GAAG,EAAE,CAAA;;;;sCAEzE;AAGO;IADP,KAAK,EAAE;IACO,WAAA,OAAO,EAAE,CAAA;IAA8C,WAAA,GAAG,EAAE,CAAA;;;;uCAE1E;AAGO;IADP,GAAG,EAAE;IACO,WAAA,OAAO,EAAE,CAAA;IAA8C,WAAA,GAAG,EAAE,CAAA;;;;qCAExE;AAGO;IADP,MAAM,EAAE;IACI,WAAA,OAAO,EAAE,CAAA;IAA8C,WAAA,GAAG,EAAE,CAAA;;;;qCAExE;AAvNQ,UAAU;IADtB,UAAU,CAAC,GAAG,CAAC;IAQP,WAAA,QAAQ,EAAE,CAAA;qCAAiC,sBAAsB;GAP7D,UAAU,CAyNtB"}
|
|
1
|
+
{"version":3,"file":"ApiGateway.js","sourceRoot":"","sources":["../../src/ApiGateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { ModulesContainer } from "@nestjs/core";
|
|
2
|
-
import { ServiceApiMetadata } from "./ApiGateway.js";
|
|
3
2
|
import { LivequeryWebsocketSync } from "./LivequeryWebsocketSync.js";
|
|
4
3
|
export declare class ApiGatewayLinker {
|
|
5
|
-
private LivequeryWebsocketSync;
|
|
6
4
|
private readonly modulesContainer;
|
|
7
|
-
private static
|
|
5
|
+
private static $me;
|
|
8
6
|
constructor(LivequeryWebsocketSync: LivequeryWebsocketSync, modulesContainer: ModulesContainer);
|
|
9
|
-
|
|
10
|
-
static broadcast(name: string, local_api_port: number): Promise<void>;
|
|
11
|
-
metadata(): {
|
|
12
|
-
data: ServiceApiMetadata;
|
|
13
|
-
};
|
|
7
|
+
static broadcast(name: string, port: number): Promise<void>;
|
|
14
8
|
}
|
|
@@ -1,66 +1,49 @@
|
|
|
1
|
+
var ApiGatewayLinker_1;
|
|
1
2
|
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
-
import {
|
|
3
|
+
import { Inject, Injectable, Optional } from "@nestjs/common";
|
|
3
4
|
import { ModulesContainer } from "@nestjs/core";
|
|
4
5
|
import { listPaths } from "./helpers/listPaths.js";
|
|
5
6
|
import { LivequeryWebsocketSync, WEBSOCKET_PATH } from "./LivequeryWebsocketSync.js";
|
|
6
|
-
import {
|
|
7
|
-
import { randomUUID, createHash } from "crypto";
|
|
7
|
+
import { merge, Subject, of, mergeMap } from "rxjs";
|
|
8
8
|
import { API_GATEWAY_NAMESPACE } from "./const.js";
|
|
9
|
-
import { filter,
|
|
9
|
+
import { filter, combineLatestWith, debounceTime, groupBy } from 'rxjs/operators';
|
|
10
10
|
import { RxjsUdp } from "./RxjsUdp.js";
|
|
11
|
-
const $METADATA = new BehaviorSubject({
|
|
12
|
-
namespace: API_GATEWAY_NAMESPACE,
|
|
13
|
-
role: 'service',
|
|
14
|
-
host: '',
|
|
15
|
-
id: randomUUID(),
|
|
16
|
-
name: '',
|
|
17
|
-
paths: [],
|
|
18
|
-
port: 0,
|
|
19
|
-
sig: ''
|
|
20
|
-
});
|
|
21
11
|
let ApiGatewayLinker = class ApiGatewayLinker {
|
|
22
|
-
|
|
12
|
+
static { ApiGatewayLinker_1 = this; }
|
|
23
13
|
modulesContainer;
|
|
24
|
-
static
|
|
14
|
+
static $me = new Subject();
|
|
25
15
|
constructor(LivequeryWebsocketSync, modulesContainer) {
|
|
26
|
-
this.LivequeryWebsocketSync = LivequeryWebsocketSync;
|
|
27
16
|
this.modulesContainer = modulesContainer;
|
|
28
17
|
const paths = [...this.modulesContainer.values()].map(m => (listPaths([...m.controllers.keys()].map(c => c)))).flat(2);
|
|
29
|
-
$METADATA.next({
|
|
30
|
-
...$METADATA.getValue(),
|
|
31
|
-
paths,
|
|
32
|
-
websocket: this.LivequeryWebsocketSync ? WEBSOCKET_PATH : undefined
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
onModuleInit() {
|
|
36
|
-
$METADATA.next({
|
|
37
|
-
...$METADATA.getValue(),
|
|
38
|
-
sig: createHash('md5').update(API_GATEWAY_NAMESPACE).digest('base64')
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
static async broadcast(name, local_api_port) {
|
|
42
|
-
$METADATA.next({
|
|
43
|
-
...$METADATA.getValue(),
|
|
44
|
-
name,
|
|
45
|
-
port: local_api_port
|
|
46
|
-
});
|
|
47
18
|
const $udp = new RxjsUdp();
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
19
|
+
const metadata = {
|
|
20
|
+
namespace: API_GATEWAY_NAMESPACE,
|
|
21
|
+
role: 'service',
|
|
22
|
+
id: $udp.id,
|
|
23
|
+
name: 'seeding-service',
|
|
24
|
+
paths,
|
|
25
|
+
port: 0,
|
|
26
|
+
linked: [],
|
|
27
|
+
auth: '',
|
|
28
|
+
wsauth: LivequeryWebsocketSync?.auth,
|
|
29
|
+
websocket: LivequeryWebsocketSync ? WEBSOCKET_PATH : undefined
|
|
53
30
|
};
|
|
31
|
+
merge($udp, of({ ...metadata, role: 'gateway' })).pipe(filter(m => m.role == 'gateway'), filter(r => !r.linked.includes($udp.id)), combineLatestWith(ApiGatewayLinker_1.$me), groupBy(([a, b]) => a.id), mergeMap($ => $.pipe(debounceTime(500), mergeMap(async ([a, { name, port }]) => {
|
|
32
|
+
const me = {
|
|
33
|
+
...metadata,
|
|
34
|
+
name,
|
|
35
|
+
port,
|
|
36
|
+
auth: a.auth
|
|
37
|
+
};
|
|
38
|
+
$udp.broadcast(me);
|
|
39
|
+
})))).subscribe();
|
|
40
|
+
}
|
|
41
|
+
static async broadcast(name, port) {
|
|
42
|
+
this.$me.next({ name, port });
|
|
54
43
|
}
|
|
55
44
|
};
|
|
56
|
-
__decorate([
|
|
57
|
-
|
|
58
|
-
__metadata("design:type", Function),
|
|
59
|
-
__metadata("design:paramtypes", []),
|
|
60
|
-
__metadata("design:returntype", void 0)
|
|
61
|
-
], ApiGatewayLinker.prototype, "metadata", null);
|
|
62
|
-
ApiGatewayLinker = __decorate([
|
|
63
|
-
Controller('/api-gateway'),
|
|
45
|
+
ApiGatewayLinker = ApiGatewayLinker_1 = __decorate([
|
|
46
|
+
Injectable(),
|
|
64
47
|
__param(0, Optional()),
|
|
65
48
|
__param(0, Inject()),
|
|
66
49
|
__metadata("design:paramtypes", [LivequeryWebsocketSync,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiGatewayLinker.js","sourceRoot":"","sources":["../../src/ApiGatewayLinker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApiGatewayLinker.js","sourceRoot":"","sources":["../../src/ApiGatewayLinker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ModulesContainer } from "@nestjs/core";
|
|
2
|
+
import { LivequeryWebsocketSync } from "./LivequeryWebsocketSync.js";
|
|
3
|
+
export declare class GatewayLinker {
|
|
4
|
+
private readonly modulesContainer;
|
|
5
|
+
private static $me;
|
|
6
|
+
constructor(LivequeryWebsocketSync: LivequeryWebsocketSync, modulesContainer: ModulesContainer);
|
|
7
|
+
static broadcast(name: string, port: number): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var GatewayLinker_1;
|
|
2
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
3
|
+
import { Inject, Injectable, Optional } from "@nestjs/common";
|
|
4
|
+
import { ModulesContainer } from "@nestjs/core";
|
|
5
|
+
import { listPaths } from "./helpers/listPaths.js";
|
|
6
|
+
import { LivequeryWebsocketSync, WEBSOCKET_PATH } from "./LivequeryWebsocketSync.js";
|
|
7
|
+
import { merge, Subject, of, mergeMap } from "rxjs";
|
|
8
|
+
import { API_GATEWAY_NAMESPACE } from "./const.js";
|
|
9
|
+
import { filter, combineLatestWith, debounceTime, groupBy } from 'rxjs/operators';
|
|
10
|
+
import { RxjsUdp } from "./RxjsUdp.js";
|
|
11
|
+
let GatewayLinker = class GatewayLinker {
|
|
12
|
+
static { GatewayLinker_1 = this; }
|
|
13
|
+
modulesContainer;
|
|
14
|
+
static $me = new Subject();
|
|
15
|
+
constructor(LivequeryWebsocketSync, modulesContainer) {
|
|
16
|
+
this.modulesContainer = modulesContainer;
|
|
17
|
+
const paths = [...this.modulesContainer.values()].map(m => (listPaths([...m.controllers.keys()].map(c => c)))).flat(2);
|
|
18
|
+
const $udp = new RxjsUdp();
|
|
19
|
+
const metadata = {
|
|
20
|
+
namespace: API_GATEWAY_NAMESPACE,
|
|
21
|
+
role: 'service',
|
|
22
|
+
id: $udp.id,
|
|
23
|
+
name: 'seeding-service',
|
|
24
|
+
paths,
|
|
25
|
+
port: 0,
|
|
26
|
+
linked: [],
|
|
27
|
+
auth: '',
|
|
28
|
+
wsauth: LivequeryWebsocketSync?.auth,
|
|
29
|
+
websocket: LivequeryWebsocketSync ? WEBSOCKET_PATH : undefined
|
|
30
|
+
};
|
|
31
|
+
merge($udp, of({ ...metadata, role: 'gateway' })).pipe(filter(m => m.role == 'gateway'), filter(r => !r.linked.includes($udp.id)), combineLatestWith(GatewayLinker_1.$me), groupBy(([a, b]) => a.id), mergeMap($ => $.pipe(debounceTime(500), mergeMap(async ([a, { name, port }]) => {
|
|
32
|
+
const me = {
|
|
33
|
+
...metadata,
|
|
34
|
+
name,
|
|
35
|
+
port,
|
|
36
|
+
auth: a.auth
|
|
37
|
+
};
|
|
38
|
+
$udp.broadcast(me);
|
|
39
|
+
})))).subscribe();
|
|
40
|
+
}
|
|
41
|
+
static async broadcast(name, port) {
|
|
42
|
+
this.$me.next({ name, port });
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
GatewayLinker = GatewayLinker_1 = __decorate([
|
|
46
|
+
Injectable(),
|
|
47
|
+
__param(0, Optional()),
|
|
48
|
+
__param(0, Inject()),
|
|
49
|
+
__metadata("design:paramtypes", [LivequeryWebsocketSync,
|
|
50
|
+
ModulesContainer])
|
|
51
|
+
], GatewayLinker);
|
|
52
|
+
export { GatewayLinker };
|
|
53
|
+
//# sourceMappingURL=GatewayLinker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatewayLinker.js","sourceRoot":"","sources":["../../src/GatewayLinker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from "@nestjs/common";
|
|
2
2
|
import { LivequeryWebsocketSync } from "./LivequeryWebsocketSync.js";
|
|
3
3
|
export type RealtimeSubscription = {
|
|
4
|
-
|
|
4
|
+
client_id: string;
|
|
5
|
+
gateway_id: string;
|
|
5
6
|
collection_ref: string;
|
|
6
7
|
doc_id: string;
|
|
7
8
|
};
|
|
@@ -4,7 +4,6 @@ import { map } from "rxjs/operators";
|
|
|
4
4
|
import { PathHelper } from "./helpers/PathHelper.js";
|
|
5
5
|
import { LivequeryWebsocketSync } from "./LivequeryWebsocketSync.js";
|
|
6
6
|
import { InjectWebsocketPrivateKey } from "./UseWebsocketShareKeyPair.js";
|
|
7
|
-
import JWT from 'jsonwebtoken';
|
|
8
7
|
import { hidePrivateFields } from "./helpers/hidePrivateFields.js";
|
|
9
8
|
let LivequeryInterceptor = class LivequeryInterceptor {
|
|
10
9
|
LivequeryWebsocketSync;
|
|
@@ -29,32 +28,25 @@ let LivequeryInterceptor = class LivequeryInterceptor {
|
|
|
29
28
|
body: req.body,
|
|
30
29
|
method: req.method.toLowerCase()
|
|
31
30
|
};
|
|
32
|
-
const
|
|
33
|
-
req.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return s(null);
|
|
41
|
-
JWT.sign({ collection_ref, doc_id, session_id }, this.secret_or_private_key, {}, (error, data) => s(error ? null : data));
|
|
42
|
-
});
|
|
31
|
+
const client_id = req.headers['x-lcid'] || req.headers.socket_id;
|
|
32
|
+
const gateway_id = req.headers['x-lgid'] || this.LivequeryWebsocketSync.id;
|
|
33
|
+
req.method == 'GET' && client_id && this.LivequeryWebsocketSync?.listen([{
|
|
34
|
+
collection_ref,
|
|
35
|
+
doc_id,
|
|
36
|
+
client_id,
|
|
37
|
+
gateway_id
|
|
38
|
+
}]);
|
|
43
39
|
return next.handle().pipe(map(data => {
|
|
44
40
|
if (data.item) {
|
|
45
41
|
return {
|
|
46
42
|
data: {
|
|
47
43
|
...data,
|
|
48
44
|
item: hidePrivateFields(data.item.toJSON ? data.item.toJSON() : data.item),
|
|
49
|
-
realtime_token
|
|
50
45
|
}
|
|
51
46
|
};
|
|
52
47
|
}
|
|
53
48
|
return {
|
|
54
|
-
data
|
|
55
|
-
...data,
|
|
56
|
-
realtime_token
|
|
57
|
-
}
|
|
49
|
+
data
|
|
58
50
|
};
|
|
59
51
|
}));
|
|
60
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivequeryInterceptor.js","sourceRoot":"","sources":["../../src/LivequeryInterceptor.ts"],"names":[],"mappings":";AACA,OAAO,EAAiC,MAAM,EAAE,UAAU,EAAmB,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/H,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"LivequeryInterceptor.js","sourceRoot":"","sources":["../../src/LivequeryInterceptor.ts"],"names":[],"mappings":";AACA,OAAO,EAAiC,MAAM,EAAE,UAAU,EAAmB,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/H,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAU5D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAG2B;IACH;IAFrD,YACwD,sBAA8C,EACjD,qBAA6B;QAD1B,2BAAsB,GAAtB,sBAAsB,CAAwB;QACjD,0BAAqB,GAArB,qBAAqB,CAAQ;IAElF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAExD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAA;QAG/C,MAAM,EACF,GAAG,EACH,aAAa,EACb,cAAc,EACd,MAAM,GAET,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAE5D,MAAM,EACF,cAAc,EAAE,qBAAqB,EACrC,GAAG,EAAE,UAAU,EAClB,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAGnD,GAAG,CAAC,SAAS,GAAG;YACZ,GAAG;YACH,UAAU;YACV,cAAc;YACd,qBAAqB;YACrB,aAAa;YACb,MAAM;YACN,OAAO,EAAE,GAAG,CAAC,KAAK;YAClB,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;SACf,CAAA;QAGrB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAA;QAChE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAA;QAC1E,GAAG,CAAC,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;gBACrE,cAAc;gBACd,MAAM;gBACN,SAAS;gBACT,UAAU;aACb,CAAC,CAAC,CAAA;QAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACrB,GAAG,CAAC,IAAI,CAAC,EAAE;YACP,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO;oBACH,IAAI,EAAE;wBACF,GAAG,IAAI;wBACP,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC7E;iBACJ,CAAA;YACL,CAAC;YACD,OAAO;gBACH,IAAI;aACP,CAAA;QACL,CAAC,CAAC,CACL,CAAA;IACL,CAAC;CACJ,CAAA;AAlEY,oBAAoB;IADhC,UAAU,EAAE;IAIJ,WAAA,QAAQ,EAAE,CAAA;IAAE,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;IAC1C,WAAA,QAAQ,EAAE,CAAA;IAAE,WAAA,yBAAyB,EAAE,CAAA;qCADoC,sBAAsB;GAH7F,oBAAoB,CAkEhC;;AAGD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
has_more: boolean;
|
|
5
|
-
};
|
|
6
|
-
};
|
|
7
|
-
export declare const LivequeryResponse: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
1
|
+
import { CollectionResponse, DocumentResponse, LivequeryBaseEntity } from '@livequery/types';
|
|
2
|
+
export { CollectionResponse, DocumentResponse, LivequeryBaseEntity };
|
|
3
|
+
export type LivequeryResponse<T extends LivequeryBaseEntity> = CollectionResponse<T> | DocumentResponse<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivequeryResponse.js","sourceRoot":"","sources":["../../src/LivequeryResponse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LivequeryResponse.js","sourceRoot":"","sources":["../../src/LivequeryResponse.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +1,53 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { RealtimeSubscription } from "./LivequeryInterceptor.js";
|
|
3
2
|
import { UpdatedData, WebsocketSyncPayload, LivequeryBaseEntity } from "@livequery/types";
|
|
4
|
-
import
|
|
3
|
+
import WebSocket from 'ws';
|
|
4
|
+
export type WebSocketHelloEvent = {
|
|
5
|
+
event: 'hello';
|
|
6
|
+
gid: string;
|
|
7
|
+
};
|
|
8
|
+
export type WebSocketUnsubscribeEvent = {
|
|
9
|
+
event: 'unsubscribe';
|
|
10
|
+
data: {
|
|
11
|
+
ref: string;
|
|
12
|
+
client_id: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type WebSocketStartEvent = {
|
|
16
|
+
event: 'start';
|
|
17
|
+
data: {
|
|
18
|
+
id: string;
|
|
19
|
+
auth: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export type WebSocketSubscribeEvent = RealtimeSubscription & {
|
|
23
|
+
event: 'subscribe';
|
|
24
|
+
};
|
|
5
25
|
export type WebSocketSyncEvent = {
|
|
6
|
-
event:
|
|
7
|
-
|
|
26
|
+
event: 'sync';
|
|
27
|
+
cids: string[];
|
|
8
28
|
data?: {
|
|
9
29
|
changes: UpdatedData[];
|
|
10
30
|
};
|
|
11
31
|
};
|
|
32
|
+
export type WebsocketWithMetadata = WebSocket & {
|
|
33
|
+
gateway: boolean;
|
|
34
|
+
id: string;
|
|
35
|
+
refs: Set<string>;
|
|
36
|
+
};
|
|
12
37
|
export declare const WEBSOCKET_PATH: string;
|
|
13
38
|
export declare class LivequeryWebsocketSync {
|
|
14
39
|
#private;
|
|
15
|
-
|
|
40
|
+
readonly id: `${string}-${string}-${string}-${string}-${string}`;
|
|
41
|
+
readonly auth: `${string}-${string}-${string}-${string}-${string}`;
|
|
16
42
|
private readonly changes;
|
|
17
|
-
constructor(
|
|
18
|
-
connect(url: string, ondisconect?: Function): import("rxjs").Subscription;
|
|
19
|
-
private handleDisconnect;
|
|
20
|
-
private handleConnection;
|
|
43
|
+
constructor();
|
|
44
|
+
connect(url: string, auth: string, ondisconect?: Function): import("rxjs").Subscription;
|
|
21
45
|
broadcast<T extends LivequeryBaseEntity = LivequeryBaseEntity>(event: WebsocketSyncPayload<T>): void;
|
|
22
|
-
start(socket:
|
|
23
|
-
|
|
24
|
-
}): void;
|
|
25
|
-
stop(socket: Socket, { id: session_id }: {
|
|
26
|
-
id: string;
|
|
27
|
-
}): void;
|
|
28
|
-
subscribe(socket: Socket & {
|
|
29
|
-
id: string;
|
|
30
|
-
}, { realtime_token }: {
|
|
31
|
-
realtime_token: string;
|
|
32
|
-
}): Promise<void>;
|
|
33
|
-
unsubscribe(socket: Socket, { ref, id }: {
|
|
46
|
+
start(socket: WebsocketWithMetadata, { id, auth }: WebSocketStartEvent['data']): void;
|
|
47
|
+
unsubscribe(socket: WebsocketWithMetadata, { ref, client_id }: {
|
|
34
48
|
ref: string;
|
|
35
|
-
|
|
49
|
+
client_id?: string;
|
|
36
50
|
}): void;
|
|
37
|
-
|
|
51
|
+
private handleDisconnect;
|
|
52
|
+
listen(e: RealtimeSubscription[]): void;
|
|
38
53
|
}
|