@livequery/nestjs 2.0.148 → 2.0.149

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.
Files changed (42) hide show
  1. package/README.md +144 -0
  2. package/build/src/LivequeryDatasourceInterceptors.d.ts +4 -14
  3. package/build/src/LivequeryDatasourceInterceptors.js +22 -7
  4. package/build/src/LivequeryDatasourceInterceptors.js.map +1 -1
  5. package/build/src/LivequeryRequest.d.ts +1 -1
  6. package/build/src/helpers/createDatasourceMapper.d.ts +16 -10
  7. package/build/src/helpers/createDatasourceMapper.js.map +1 -1
  8. package/build/src/index.d.ts +1 -3
  9. package/build/src/index.js +0 -3
  10. package/build/src/index.js.map +1 -1
  11. package/build/tsconfig.tsbuildinfo +1 -1
  12. package/package.json +2 -3
  13. package/build/src/ApiGateway.d.ts +0 -54
  14. package/build/src/ApiGateway.js +0 -237
  15. package/build/src/ApiGateway.js.map +0 -1
  16. package/build/src/LivequeryWebsocketSync.d.ts +0 -2
  17. package/build/src/LivequeryWebsocketSync.js +0 -9
  18. package/build/src/LivequeryWebsocketSync.js.map +0 -1
  19. package/build/src/RxjsUdp.d.ts +0 -21
  20. package/build/src/RxjsUdp.js +0 -93
  21. package/build/src/RxjsUdp.js.map +0 -1
  22. package/build/src/SimpleApiGateway.d.ts +0 -5
  23. package/build/src/SimpleApiGateway.js +0 -14
  24. package/build/src/SimpleApiGateway.js.map +0 -1
  25. package/build/src/UdpDiscovery.d.ts +0 -35
  26. package/build/src/UdpDiscovery.js +0 -231
  27. package/build/src/UdpDiscovery.js.map +0 -1
  28. package/build/src/WebsocketGateway.d.ts +0 -29
  29. package/build/src/WebsocketGateway.js +0 -257
  30. package/build/src/WebsocketGateway.js.map +0 -1
  31. package/build/src/const.d.ts +0 -7
  32. package/build/src/const.js +0 -9
  33. package/build/src/const.js.map +0 -1
  34. package/build/src/helpers/PathHelper.d.ts +0 -11
  35. package/build/src/helpers/PathHelper.js +0 -41
  36. package/build/src/helpers/PathHelper.js.map +0 -1
  37. package/build/src/helpers/createHook.d.ts +0 -4
  38. package/build/src/helpers/createHook.js +0 -7
  39. package/build/src/helpers/createHook.js.map +0 -1
  40. package/build/src/helpers/hidePrivateFields.d.ts +0 -6
  41. package/build/src/helpers/hidePrivateFields.js +0 -8
  42. package/build/src/helpers/hidePrivateFields.js.map +0 -1
@@ -1,231 +0,0 @@
1
- import { createHmac, randomUUID } from 'crypto';
2
- import { createSocket } from 'dgram';
3
- import { networkInterfaces } from 'os';
4
- import { Subject, Subscription, interval } from 'rxjs';
5
- import { pack, unpack } from 'msgpackr';
6
- import { API_GATEWAY_MULTICAST_ADDRESS, API_GATEWAY_MULTICAST_PORT, API_GATEWAY_WHITELIST_ADDRESS, } from './const.js';
7
- const DEFAULT_PACKET_TTL_MS = 30_000;
8
- const DEFAULT_SEEN_TTL_MS = 60_000;
9
- export class UdpDiscovery {
10
- node;
11
- nodes$;
12
- errors$;
13
- #nodes = new Subject();
14
- #errors = new Subject();
15
- #externalSocket;
16
- #localSocket;
17
- #seen = new Map();
18
- #subscriptions = new Subscription();
19
- #localAddresses = new Set();
20
- #key;
21
- #port;
22
- #localRelayPort;
23
- #multicastAddress;
24
- #packetTtlMs;
25
- #seenTtlMs;
26
- #peers;
27
- #closed = false;
28
- constructor(node, options) {
29
- this.node = node;
30
- this.#key = options.key;
31
- this.#port = options.port ?? API_GATEWAY_MULTICAST_PORT;
32
- this.#localRelayPort = options.localRelayPort ?? this.#port + 1;
33
- this.#multicastAddress = options.multicastAddress ?? API_GATEWAY_MULTICAST_ADDRESS;
34
- this.#packetTtlMs = options.packetTtlMs ?? DEFAULT_PACKET_TTL_MS;
35
- this.#seenTtlMs = options.seenTtlMs ?? DEFAULT_SEEN_TTL_MS;
36
- this.#peers = [
37
- this.#multicastAddress,
38
- ...this.#expandPeers(options.peers ?? this.#envPeers()),
39
- ];
40
- this.nodes$ = this.#nodes.asObservable();
41
- this.errors$ = this.#errors.asObservable();
42
- this.#externalSocket = createSocket({ type: 'udp4', reuseAddr: true });
43
- this.#localSocket = createSocket({ type: 'udp4', reuseAddr: true });
44
- this.#localAddresses = this.#readLocalAddresses();
45
- this.#bindSockets();
46
- if (options.announceIntervalMs && options.announceIntervalMs > 0) {
47
- this.#subscriptions.add(interval(options.announceIntervalMs).subscribe(() => {
48
- this.announce().catch(e => this.#onError(e));
49
- }));
50
- }
51
- }
52
- async announce() {
53
- await this.broadcast(this.#peers);
54
- await this.#sendLocal(this.#createPacket());
55
- }
56
- async broadcastTo(ip) {
57
- await this.broadcast([ip]);
58
- }
59
- async broadcast(ips = this.#peers) {
60
- const packet = this.#createPacket();
61
- const raw = pack(packet);
62
- await Promise.all(ips.map(ip => this.#send(this.#externalSocket, raw, this.#port, ip)));
63
- }
64
- close() {
65
- if (this.#closed)
66
- return;
67
- this.#closed = true;
68
- this.#subscriptions.unsubscribe();
69
- this.#nodes.complete();
70
- this.#errors.complete();
71
- this.#externalSocket.close();
72
- this.#localSocket.close();
73
- }
74
- #bindSockets() {
75
- this.#externalSocket.on('message', (raw, rinfo) => this.#onExternalMessage(raw, rinfo));
76
- this.#externalSocket.on('error', e => this.#onError(e));
77
- this.#externalSocket.bind(this.#port, '0.0.0.0', () => {
78
- this.#configureMulticast(this.#externalSocket);
79
- for (const address of this.#localAddresses) {
80
- try {
81
- this.#externalSocket.addMembership(this.#multicastAddress, address);
82
- }
83
- catch { }
84
- }
85
- });
86
- this.#localSocket.on('message', (raw, rinfo) => this.#onLocalMessage(raw, rinfo));
87
- this.#localSocket.on('error', e => this.#onError(e));
88
- this.#localSocket.bind(this.#localRelayPort, '0.0.0.0', () => {
89
- this.#configureMulticast(this.#localSocket);
90
- for (const address of this.#localAddresses) {
91
- try {
92
- this.#localSocket.addMembership(this.#multicastAddress, address);
93
- }
94
- catch { }
95
- }
96
- });
97
- }
98
- async #onExternalMessage(raw, rinfo) {
99
- const decoded = this.#decode(raw);
100
- if (!decoded)
101
- return;
102
- const isExternal = !this.#localAddresses.has(rinfo.address);
103
- const firstSeen = this.#markSeen(decoded.packet.id);
104
- if (isExternal && firstSeen) {
105
- await this.#relayLocal(raw);
106
- }
107
- this.#consume(decoded, rinfo.address);
108
- }
109
- #onLocalMessage(raw, rinfo) {
110
- const decoded = this.#decode(raw);
111
- if (!decoded)
112
- return;
113
- if (!this.#markSeen(decoded.packet.id))
114
- return;
115
- this.#consume(decoded, rinfo.address);
116
- }
117
- #consume({ packet, unsigned }, host) {
118
- if (packet.sender_id === this.node.node_id)
119
- return;
120
- if (packet.node.node_id === this.node.node_id)
121
- return;
122
- if (packet.node.namespace !== this.node.namespace)
123
- return;
124
- if (Math.abs(Date.now() - packet.timestamp) > this.#packetTtlMs)
125
- return;
126
- if (packet.signature !== this.#sign(unsigned))
127
- return;
128
- this.#nodes.next({
129
- ...packet.node,
130
- host: packet.node.host || host,
131
- });
132
- }
133
- #decode(raw) {
134
- try {
135
- const packet = unpack(raw);
136
- if (packet.version !== 1)
137
- return;
138
- if (!packet.id || !packet.sender_id || !packet.timestamp || !packet.node || !packet.signature)
139
- return;
140
- const { signature: _signature, ...unsigned } = packet;
141
- return { packet, unsigned };
142
- }
143
- catch {
144
- return;
145
- }
146
- }
147
- #createPacket() {
148
- const unsigned = {
149
- version: 1,
150
- id: randomUUID(),
151
- sender_id: this.node.node_id,
152
- timestamp: Date.now(),
153
- node: this.node,
154
- };
155
- return {
156
- ...unsigned,
157
- signature: this.#sign(unsigned),
158
- };
159
- }
160
- #sign(packet) {
161
- return createHmac('sha256', this.#key).update(pack(packet)).digest('hex');
162
- }
163
- #markSeen(id) {
164
- const now = Date.now();
165
- this.#cleanupSeen(now);
166
- if (this.#seen.has(id))
167
- return false;
168
- this.#seen.set(id, now + this.#seenTtlMs);
169
- return true;
170
- }
171
- #cleanupSeen(now = Date.now()) {
172
- for (const [id, expiresAt] of this.#seen) {
173
- if (expiresAt <= now)
174
- this.#seen.delete(id);
175
- }
176
- }
177
- async #relayLocal(raw) {
178
- await this.#send(this.#localSocket, raw, this.#localRelayPort, this.#multicastAddress);
179
- }
180
- async #sendLocal(packet) {
181
- await this.#send(this.#localSocket, pack(packet), this.#localRelayPort, this.#multicastAddress);
182
- }
183
- #send(socket, raw, port, host) {
184
- return new Promise(resolve => {
185
- socket.send(raw, 0, raw.length, port, host, e => {
186
- if (e)
187
- this.#onError(e);
188
- resolve();
189
- });
190
- });
191
- }
192
- #configureMulticast(socket) {
193
- try {
194
- socket.setMulticastTTL(1);
195
- }
196
- catch { }
197
- try {
198
- socket.setMulticastLoopback(true);
199
- }
200
- catch { }
201
- }
202
- #readLocalAddresses() {
203
- const addresses = Object.values(networkInterfaces())
204
- .flatMap(items => items ?? [])
205
- .map(item => item.address)
206
- .filter(Boolean);
207
- return new Set(['127.0.0.1', '0.0.0.0', ...addresses]);
208
- }
209
- #envPeers() {
210
- return API_GATEWAY_WHITELIST_ADDRESS
211
- .split(',')
212
- .map(ip => ip.trim())
213
- .filter(Boolean);
214
- }
215
- #expandPeers(peers) {
216
- return peers.flatMap(peer => {
217
- const parts = peer.trim().split('.');
218
- if (parts.length === 4)
219
- return [peer.trim()];
220
- if (parts.length === 3) {
221
- return Array.from({ length: 256 }, (_, index) => `${peer.trim()}.${index}`);
222
- }
223
- return [];
224
- });
225
- }
226
- #onError(error) {
227
- if (!this.#closed)
228
- this.#errors.next(error);
229
- }
230
- }
231
- //# sourceMappingURL=UdpDiscovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UdpDiscovery.js","sourceRoot":"","sources":["../../src/UdpDiscovery.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import * as http from 'http';
2
- import { Subject, Observable, Subscription } from 'rxjs';
3
- import { UpdatedData, LivequeryBaseEntity } from '@livequery/types';
4
- import { RealtimeSubscription } from './LivequeryInterceptor.js';
5
- type SocketMeta = {
6
- send(data: string): void;
7
- close(): void;
8
- on(event: 'message', h: (raw: string | Buffer) => void): void;
9
- on(event: 'close' | 'error', h: () => void): void;
10
- id: string;
11
- gateway: boolean;
12
- refs: Set<string>;
13
- };
14
- export declare const WEBSOCKET_PATH: string;
15
- export declare class WebsocketGateway extends Subject<UpdatedData> {
16
- #private;
17
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
18
- readonly auth: `${string}-${string}-${string}-${string}-${string}`;
19
- constructor(server: http.Server | number);
20
- listen(events: RealtimeSubscription[]): void;
21
- unsubscribe_client(socket: SocketMeta, body: {
22
- ref?: string;
23
- refs?: string[];
24
- client_id?: string;
25
- }): void;
26
- link<T extends LivequeryBaseEntity>(ref: string, handler: (o?: Observable<UpdatedData<T>>) => Promise<Observable<UpdatedData<T>>> | Observable<UpdatedData<T>> | undefined | void): Promise<void>;
27
- connect(url: string, auth: string, ondisconnect?: () => void): Subscription;
28
- }
29
- export {};
@@ -1,257 +0,0 @@
1
- import { WebSocket, WebSocketServer } from 'ws';
2
- import { Subject, BehaviorSubject, of, fromEvent, merge, EMPTY, timer, } from 'rxjs';
3
- import { tap, map, switchMap, filter, finalize, mergeAll, retry, takeWhile, } from 'rxjs/operators';
4
- import { randomUUID } from 'crypto';
5
- import { NODE_ID } from './const.js';
6
- const isBun = typeof globalThis.Bun !== 'undefined';
7
- const ENDPOINT_RESTARTED = 'ENDPOINT_RESTARTED';
8
- export const WEBSOCKET_PATH = process.env.REALTIME_UPDATE_SOCKET_PATH || '/livequery/realtime-updates';
9
- export class WebsocketGateway extends Subject {
10
- #connections = new Map();
11
- #subscriptions = new Map();
12
- #pipes = new Map();
13
- id = NODE_ID;
14
- auth = randomUUID();
15
- constructor(server) {
16
- super();
17
- if (typeof server === 'number') {
18
- if (!isBun)
19
- throw new Error('Passing a port number requires Bun runtime');
20
- this.#startBun(server);
21
- }
22
- else {
23
- this.#startNode(server);
24
- }
25
- this.subscribe(({ ref, data, type }) => {
26
- const targets = [
27
- ...this.#subscriptions.get(ref) ?? new Map(),
28
- ...this.#subscriptions.get(`${ref}/${data.id}`) ?? new Map(),
29
- ].reduce((acc, [client_id, { gateway_id }]) => {
30
- const conn_id = gateway_id === NODE_ID ? client_id : gateway_id;
31
- const prev = acc.get(conn_id);
32
- const socket = prev?.socket ?? this.#connections.get(conn_id);
33
- if (!socket)
34
- return acc;
35
- acc.set(conn_id, { socket, cids: [...prev?.cids ?? [], client_id] });
36
- return acc;
37
- }, new Map());
38
- for (const [, { socket, cids }] of targets) {
39
- const event = { event: 'sync', cids, data: { changes: [{ ref, data, type }] } };
40
- socket.send(JSON.stringify(event));
41
- }
42
- });
43
- }
44
- #startNode(server) {
45
- const wss = new WebSocketServer({ server, path: WEBSOCKET_PATH });
46
- wss.on('connection', (ws) => {
47
- const socket = Object.assign(ws, {
48
- id: '', gateway: false, refs: new Set()
49
- });
50
- this.#onConnection(socket);
51
- });
52
- }
53
- #startBun(port) {
54
- const self = this;
55
- const Bun = globalThis.Bun;
56
- Bun.serve({
57
- port,
58
- fetch(req, server) {
59
- if (new URL(req.url).pathname === WEBSOCKET_PATH) {
60
- const ok = server.upgrade(req, {
61
- data: {
62
- id: '', gateway: false,
63
- refs: new Set(),
64
- _on: {},
65
- },
66
- });
67
- if (ok)
68
- return;
69
- }
70
- return new Response('Not found', { status: 404 });
71
- },
72
- websocket: {
73
- open(ws) {
74
- const socket = {
75
- send: (d) => ws.send(d),
76
- close: () => ws.close(),
77
- on(event, h) {
78
- if (event === 'message')
79
- ws.data._on.msg = h;
80
- else
81
- ws.data._on.close = h;
82
- },
83
- get id() { return ws.data.id; },
84
- set id(v) { ws.data.id = v; },
85
- get gateway() { return ws.data.gateway; },
86
- set gateway(v) { ws.data.gateway = v; },
87
- get refs() { return ws.data.refs; },
88
- set refs(v) { ws.data.refs = v; },
89
- };
90
- self.#onConnection(socket);
91
- },
92
- message(ws, data) { ws.data._on.msg?.(data); },
93
- close(ws) { ws.data._on.close?.(); },
94
- error(ws) { ws.data._on.close?.(); },
95
- },
96
- });
97
- }
98
- #onConnection(socket) {
99
- socket.on('message', (raw) => {
100
- try {
101
- const msg = JSON.parse(raw.toString());
102
- if (msg.event === 'start')
103
- this.#onStart(socket, msg.data);
104
- if (msg.event === 'unsubscribe')
105
- this.unsubscribe_client(socket, msg.data);
106
- if (msg.event === 'subscribe')
107
- this.listen([msg]);
108
- }
109
- catch { }
110
- });
111
- socket.on('close', () => this.#onDisconnect(socket));
112
- socket.on('error', () => this.#onDisconnect(socket));
113
- }
114
- #onStart(socket, { id, auth }) {
115
- if (socket.id)
116
- return;
117
- if (auth && auth !== this.auth) {
118
- socket.close();
119
- return;
120
- }
121
- if (this.#connections.has(id)) {
122
- socket.close();
123
- return;
124
- }
125
- socket.id = id;
126
- socket.gateway = auth === this.auth;
127
- socket.refs = new Set();
128
- this.#connections.set(id, socket);
129
- const hello = { event: 'hello', gid: NODE_ID };
130
- socket.send(JSON.stringify(hello));
131
- }
132
- #onDisconnect(socket) {
133
- if (!socket.id)
134
- return;
135
- if (socket.gateway) {
136
- for (const [ref, map] of this.#subscriptions) {
137
- for (const [client_id, { gateway_id }] of map) {
138
- if (gateway_id === socket.id)
139
- map.delete(client_id);
140
- }
141
- if (map.size === 0) {
142
- this.#pipes.get(ref)?.s.unsubscribe();
143
- this.#subscriptions.delete(ref);
144
- }
145
- }
146
- }
147
- else {
148
- const refs = [...socket.refs ?? []];
149
- if (refs.length > 0)
150
- this.unsubscribe_client(socket, { refs, client_id: socket.id });
151
- }
152
- this.#connections.delete(socket.id);
153
- }
154
- listen(events) {
155
- for (const { ref, client_id, gateway_id, listener_node_id } of events) {
156
- if (client_id === gateway_id)
157
- continue;
158
- const socket = this.#connections.get(client_id);
159
- if (gateway_id === NODE_ID && (!socket || socket.refs?.has(ref))) {
160
- if (listener_node_id !== NODE_ID) {
161
- const target = this.#connections.get(listener_node_id);
162
- if (target) {
163
- const ev = { event: 'unsubscribe', data: { client_id, ref } };
164
- target.send(JSON.stringify(ev));
165
- }
166
- }
167
- continue;
168
- }
169
- const map = this.#subscriptions.get(ref) ?? new Map();
170
- if (map.has(client_id))
171
- continue;
172
- map.set(client_id, { gateway_id, listener_node_id });
173
- this.#subscriptions.set(ref, map);
174
- socket?.refs?.add(ref);
175
- if (gateway_id !== NODE_ID) {
176
- const target = this.#connections.get(gateway_id);
177
- if (target) {
178
- const ev = { event: 'subscribe', client_id, gateway_id, ref, listener_node_id };
179
- target.send(JSON.stringify(ev));
180
- }
181
- }
182
- }
183
- }
184
- unsubscribe_client(socket, body) {
185
- const client_id = body.client_id ?? socket.id;
186
- const refs = [...body.ref ? [body.ref] : [], ...body.refs ?? []];
187
- for (const ref of refs) {
188
- const map = this.#subscriptions.get(ref);
189
- if (!map)
190
- continue;
191
- const routing = map.get(client_id);
192
- map.delete(client_id);
193
- if (map.size === 0) {
194
- this.#pipes.get(ref)?.s.unsubscribe();
195
- this.#subscriptions.delete(ref);
196
- }
197
- this.#connections.get(client_id)?.refs?.delete(ref);
198
- const listener_node_id = routing?.listener_node_id;
199
- if (listener_node_id && listener_node_id !== NODE_ID) {
200
- const gateway = this.#connections.get(listener_node_id);
201
- if (gateway) {
202
- const ev = { event: 'unsubscribe', data: { ref, client_id } };
203
- gateway.send(JSON.stringify(ev));
204
- }
205
- }
206
- }
207
- }
208
- async link(ref, handler) {
209
- if (!this.#subscriptions.has(ref))
210
- return;
211
- const m = this.#pipes.get(ref);
212
- const merged = handler(m?.o);
213
- const o = merged instanceof Promise ? await merged : merged;
214
- if (!o || o === m?.o)
215
- return;
216
- m?.s.unsubscribe();
217
- this.#pipes.set(ref, {
218
- o,
219
- s: o.pipe(finalize(() => this.#pipes.delete(ref))).subscribe(data => this.next(data))
220
- });
221
- }
222
- connect(url, auth, ondisconnect) {
223
- const gateway$ = new BehaviorSubject({ id: '', stop: false });
224
- return of(0).pipe(takeWhile(() => !gateway$.getValue().stop), map(() => new WebSocket(url)), switchMap((ws) => merge(fromEvent(ws, 'open').pipe(tap(() => {
225
- const ev = { event: 'start', data: { id: NODE_ID, auth } };
226
- ws.send(JSON.stringify(ev));
227
- })), fromEvent(ws, 'close').pipe(map(() => { throw 'CLOSED'; })), fromEvent(ws, 'error').pipe(map(e => { throw e; })), fromEvent(ws, 'message').pipe(map(({ data }) => {
228
- const parsed = JSON.parse(data.toString());
229
- if (parsed.event === 'hello') {
230
- const old_id = gateway$.getValue().id;
231
- if (old_id === '') {
232
- gateway$.next({ id: parsed.gid, stop: false });
233
- }
234
- else if (old_id !== parsed.gid) {
235
- gateway$.next({ id: parsed.gid, stop: true });
236
- throw ENDPOINT_RESTARTED;
237
- }
238
- this.#connections.set(parsed.gid, Object.assign(ws, { id: parsed.gid, gateway: true, refs: new Set() }));
239
- return null;
240
- }
241
- if (parsed.event === 'subscribe') {
242
- this.listen([parsed]);
243
- return null;
244
- }
245
- return parsed;
246
- }), filter(Boolean), map(({ cids, data }) => cids.map(client_id => ({ event: 'sync', data, client_id }))), mergeAll(), tap(({ client_id, ...event }) => {
247
- this.#connections.get(client_id)?.send(JSON.stringify(event));
248
- }))).pipe(finalize(() => {
249
- const id = ws.id;
250
- if (id)
251
- this.#connections.delete(id);
252
- }))), retry({
253
- delay: (e, n) => (n >= 5 || e === ENDPOINT_RESTARTED) ? EMPTY : timer(1000)
254
- }), finalize(() => ondisconnect?.())).subscribe();
255
- }
256
- }
257
- //# sourceMappingURL=WebsocketGateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebsocketGateway.js","sourceRoot":"","sources":["../../src/WebsocketGateway.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export declare const NODE_ID: `${string}-${string}-${string}-${string}-${string}`;
2
- export declare const API_GATEWAY_NAMESPACE: string;
3
- export declare const LIVEQUERY_MAGIC_KEY: string;
4
- export declare const API_GATEWAY_MULTICAST_PORT: number;
5
- export declare const API_GATEWAY_MULTICAST_ADDRESS: string;
6
- export declare const API_GATEWAY_WHITELIST_ADDRESS: string;
7
- export declare const LIVEQUERY_API_GATEWAY_DEBUG: string | boolean;
@@ -1,9 +0,0 @@
1
- import { randomUUID } from "crypto";
2
- export const NODE_ID = randomUUID();
3
- export const API_GATEWAY_NAMESPACE = process.env.API_GATEWAY_NAMESPACE || 'default';
4
- export const LIVEQUERY_MAGIC_KEY = `${process.env.LIVEQUERY_MAGIC_KEY || 'livequery'}/`;
5
- export const API_GATEWAY_MULTICAST_PORT = Number(process.env.UDP_PUBLIC_PORT || 11001);
6
- export const API_GATEWAY_MULTICAST_ADDRESS = process.env.UDP_MULTICAST_ADDRESS || "239.0.1.1";
7
- export const API_GATEWAY_WHITELIST_ADDRESS = process.env.UDP_WHITELIST_ADDRESS || '';
8
- export const LIVEQUERY_API_GATEWAY_DEBUG = process.env.LIVEQUERY_API_GATEWAY_DEBUG || false;
9
- //# sourceMappingURL=const.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS,CAAA;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,WAAW,GAAG,CAAA;AACvF,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC,CAAA;AACtF,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAA;AAC7F,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAA;AACpF,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,CAAA"}
@@ -1,11 +0,0 @@
1
- export declare class PathHelper {
2
- static trimLivequeryHotkey(path: string): string;
3
- static parseHttpRequestPath(path: string): {
4
- ref: string;
5
- schema_ref: string;
6
- is_collection: boolean;
7
- doc_id: string | null | undefined;
8
- collection_ref: string;
9
- };
10
- static join(a: string | string[], b: string | string[]): string[];
11
- }
@@ -1,41 +0,0 @@
1
- import { LIVEQUERY_MAGIC_KEY } from "../const.js";
2
- export class PathHelper {
3
- static trimLivequeryHotkey(path) {
4
- const ref = path
5
- ?.split('~')[0]
6
- ?.replaceAll(':', '')
7
- ?.split(LIVEQUERY_MAGIC_KEY)?.[1]
8
- ?.split('/')
9
- ?.filter(s => s.length > 0)
10
- ?.join('/');
11
- if (!ref)
12
- throw { code: 'LIVEQUERY_MAGIC_KEY_NOT_FOUND' };
13
- return ref;
14
- }
15
- static parseHttpRequestPath(path) {
16
- const refs = path
17
- ?.split('~')[0]
18
- ?.replaceAll(':', '')
19
- ?.split(LIVEQUERY_MAGIC_KEY)?.[1]
20
- ?.split('/')
21
- ?.filter(s => s.length > 0);
22
- if (!refs)
23
- throw { code: 'LIVEQUERY_MAGIC_KEY_NOT_FOUND' };
24
- const is_collection = refs.length % 2 == 1;
25
- const ref = refs.join('/');
26
- const collection_ref = is_collection ? ref : refs.slice(0, refs.length - 1).join('/');
27
- const schema_ref = refs.filter((_, i) => i % 2 == 0).join('/');
28
- const doc_id = is_collection ? null : refs[refs.length - 1];
29
- return { ref, schema_ref, is_collection, doc_id, collection_ref };
30
- }
31
- static join(a, b) {
32
- return [a || '']
33
- .flat(2)
34
- .map(r1 => [b || ''].flat(2).map(r2 => `${r1}/${r2}`))
35
- .flat(2)
36
- .map(r => r.split('/')
37
- .filter(r => r != '')
38
- .join('/'));
39
- }
40
- }
41
- //# sourceMappingURL=PathHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PathHelper.js","sourceRoot":"","sources":["../../../src/helpers/PathHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,MAAM,OAAO,UAAU;IAGnB,MAAM,CAAC,mBAAmB,CAAC,IAAY;QACnC,MAAM,GAAG,GAAG,IAAI;YACZ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;YACrB,EAAE,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,EAAE,KAAK,CAAC,GAAG,CAAC;YACZ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAEf,IAAI,CAAC,GAAG;YAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAA;QAEzD,OAAO,GAAG,CAAA;IACd,CAAC;IAGD,MAAM,CAAC,oBAAoB,CAAC,IAAY;QACpC,MAAM,IAAI,GAAG,IAAI;YACb,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;YACrB,EAAE,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,EAAE,KAAK,CAAC,GAAG,CAAC;YACZ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE/B,IAAI,CAAC,IAAI;YAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAA;QAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE3D,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAErE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAoB,EAAE,CAAoB;QAClD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;aACrD,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACvB,CAAC;CAEJ"}
@@ -1,4 +0,0 @@
1
- import { NestInterceptor } from "@nestjs/common";
2
- export declare const createRequestInterceptorHook: <T>(options: T, interceptor: {
3
- new (): NestInterceptor;
4
- }) => [(options: T) => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void, import("@nestjs/common").Type<any>];
@@ -1,7 +0,0 @@
1
- import { applyDecorators, SetMetadata, UseInterceptors } from "@nestjs/common";
2
- export const createRequestInterceptorHook = (options, interceptor) => {
3
- const decorator = (options) => applyDecorators(UseInterceptors(interceptor), SetMetadata(interceptor, options));
4
- const provider = interceptor;
5
- return [decorator, provider];
6
- };
7
- //# sourceMappingURL=createHook.js.map