@spider-mesh/core 1.0.128 → 1.0.131

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/build/src/Encoder.js +3 -0
  2. package/build/src/Encoder.js.map +1 -1
  3. package/build/src/SpiderMesh.d.ts +5 -3
  4. package/build/src/SpiderMesh.js +24 -22
  5. package/build/src/SpiderMesh.js.map +1 -1
  6. package/build/src/decorators/ListenEvent.d.ts +2 -2
  7. package/build/src/decorators/Microservice.d.ts +0 -30
  8. package/build/src/decorators/Microservice.js +0 -20
  9. package/build/src/decorators/Microservice.js.map +1 -1
  10. package/build/src/decorators/NestJSExposeMicroservice.d.ts +6 -0
  11. package/build/src/decorators/NestJSExposeMicroservice.js +12 -0
  12. package/build/src/decorators/NestJSExposeMicroservice.js.map +1 -0
  13. package/build/src/decorators/NestJSInjectMetadata.d.ts +7 -0
  14. package/build/src/decorators/NestJSInjectMetadata.js +14 -0
  15. package/build/src/decorators/NestJSInjectMetadata.js.map +1 -0
  16. package/build/src/decorators/NestJSLinkEvent.d.ts +20 -0
  17. package/build/src/decorators/NestJSLinkEvent.js +7 -0
  18. package/build/src/decorators/NestJSLinkEvent.js.map +1 -0
  19. package/build/src/decorators/NestJSLinkMicroservice.d.ts +6 -0
  20. package/build/src/decorators/NestJSLinkMicroservice.js +7 -0
  21. package/build/src/decorators/NestJSLinkMicroservice.js.map +1 -0
  22. package/build/src/decorators/OnMicroserviceReady.d.ts +1 -1
  23. package/build/src/index.d.ts +6 -2
  24. package/build/src/index.js +6 -2
  25. package/build/src/index.js.map +1 -1
  26. package/build/src/interfaces/SpiderMeshNode.d.ts +0 -5
  27. package/package.json +1 -1
  28. package/build/src/builtin-transporter/BuiltinTransporter.d.ts +0 -11
  29. package/build/src/builtin-transporter/BuiltinTransporter.js +0 -151
  30. package/build/src/builtin-transporter/BuiltinTransporter.js.map +0 -1
  31. package/build/src/builtin-transporter/RxjsTcpServer.d.ts +0 -6
  32. package/build/src/builtin-transporter/RxjsTcpServer.js +0 -31
  33. package/build/src/builtin-transporter/RxjsTcpServer.js.map +0 -1
  34. package/build/src/builtin-transporter/RxjsTcpSocket.d.ts +0 -19
  35. package/build/src/builtin-transporter/RxjsTcpSocket.js +0 -72
  36. package/build/src/builtin-transporter/RxjsTcpSocket.js.map +0 -1
  37. package/build/src/builtin-transporter/RxjsUdpServer.d.ts +0 -20
  38. package/build/src/builtin-transporter/RxjsUdpServer.js +0 -92
  39. package/build/src/builtin-transporter/RxjsUdpServer.js.map +0 -1
  40. package/build/src/helpers/waitFirstEvent.d.ts +0 -3
  41. package/build/src/helpers/waitFirstEvent.js +0 -5
  42. package/build/src/helpers/waitFirstEvent.js.map +0 -1
@@ -1,3 +1,6 @@
1
+ if (typeof Buffer == 'undefined') {
2
+ Buffer = require('buffer').Buffer;
3
+ }
1
4
  export const Encoder = {
2
5
  encode: (content) => {
3
6
  const buffers = [];
@@ -1 +1 @@
1
- {"version":3,"file":"Encoder.js","sourceRoot":"","sources":["../../src/Encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Encoder.js","sourceRoot":"","sources":["../../src/Encoder.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { SpiderMeshTransporter } from './interfaces/SpiderMeshTransporter.js';
4
4
  import { RPCOptions } from './RPCOptions.js';
5
5
  import { RemoteService } from './interfaces/RemoteService.js';
6
6
  import { EventHub } from './decorators/ListenEvent.js';
7
- import { Observable, Subject } from 'rxjs';
7
+ import { Observable, ReplaySubject, Subject } from 'rxjs';
8
8
  import { Encodable } from './Encoder.js';
9
9
  type SpiderMeshMetadata = {
10
10
  smnid: string;
@@ -44,9 +44,11 @@ export type SpiderMeshBatchPublishPayload<T extends Encodable = Encodable> = {
44
44
  };
45
45
  export declare class SpiderMesh {
46
46
  #private;
47
+ static $transporters: ReplaySubject<SpiderMeshTransporter>;
47
48
  $nodes_monitor: Subject<SpiderMeshNodeMetadata>;
48
- constructor(using_default_transporter?: boolean);
49
- rpc<T = any>(service: string, method: string, args: any, options?: Partial<RPCOptions>): (Observable<T> & Promise<T>) | undefined;
49
+ constructor();
50
+ set_metadata(metadata: any, overwrite?: boolean): void;
51
+ rpc<T = any>(service: string, method: string, args: any, options?: Partial<RPCOptions>): Observable<T> | undefined;
50
52
  $metadata(): Promise<Omit<SpiderMeshNodeMetadata, "local_transporter_id" | "remote_transporter_id">>;
51
53
  $update_isolate_mode(active: boolean): Promise<void>;
52
54
  link_transporter(transporter: SpiderMeshTransporter): Promise<void>;
@@ -1,19 +1,18 @@
1
1
  import { randomUUID } from 'crypto';
2
2
  import { get } from 'http';
3
- import { networkInterfaces } from 'os';
4
3
  import { DeepProxy } from './decorators/DeepProxy.js';
5
4
  import { RPCOptionsList } from './RPCOptions.js';
6
- import os from 'os';
7
5
  import { listEventSubscribers } from './decorators/ListenEvent.js';
8
6
  import { listReadyHookMethods } from './decorators/OnMicroserviceReady.js';
9
- import { BehaviorSubject, Observable, Subject, bufferTime, catchError, debounceTime, filter, firstValueFrom, from, groupBy, map, merge, mergeAll, mergeMap, of, retry, scan, share, tap, timeout } from 'rxjs';
10
- import { readFileSync } from 'fs';
7
+ import { BehaviorSubject, Observable, ReplaySubject, Subject, bufferTime, catchError, debounceTime, filter, firstValueFrom, from, groupBy, map, merge, mergeAll, mergeMap, of, retry, scan, share, tap, timeout } from 'rxjs';
11
8
  import { sleep } from './helpers/sleep.js';
12
9
  import { NAMEPSACE } from './const.js';
13
- import { BuiltinTransporter } from './builtin-transporter/BuiltinTransporter.js';
14
10
  import { $services } from './decorators/Microservice.js';
15
- const PACKAGE_JSON = JSON.parse(readFileSync(`package.json`, 'utf8')) || {};
11
+ if (typeof Buffer == 'undefined') {
12
+ global.Buffer = require('buffer').Buffer;
13
+ }
16
14
  export class SpiderMesh {
15
+ static $transporters = new ReplaySubject();
17
16
  #node_id = randomUUID();
18
17
  #requests = new Map;
19
18
  #local_services = new Map();
@@ -38,11 +37,15 @@ export class SpiderMesh {
38
37
  $nodes_monitor = new Subject();
39
38
  #$isolated = new BehaviorSubject(false);
40
39
  #transporters = new Map();
41
- constructor(using_default_transporter = true) {
42
- if (using_default_transporter) {
43
- const transporter = new BuiltinTransporter();
44
- this.link_transporter(transporter);
45
- }
40
+ #metadata = {};
41
+ constructor() {
42
+ SpiderMesh.$transporters.subscribe(transporter => this.link_transporter(transporter));
43
+ }
44
+ set_metadata(metadata, overwrite = false) {
45
+ this.#metadata = {
46
+ ...overwrite ? {} : this.#metadata,
47
+ ...metadata
48
+ };
46
49
  }
47
50
  #caculate_rpc_node_id(service_name, options = {}) {
48
51
  const current = this.#remote_services.get(service_name);
@@ -56,7 +59,7 @@ export class SpiderMesh {
56
59
  const option_ip = options.$ip;
57
60
  const nodes = option_ip ? (current
58
61
  .nodes
59
- .filter(node => node.public_ip == option_ip || node.ip_addresses.includes(option_ip))) : current.nodes;
62
+ .filter(node => node.public_ip == option_ip)) : current.nodes;
60
63
  if (nodes.length == 0)
61
64
  return;
62
65
  current.last_call_index = (current.last_call_index + 1) % nodes.length;
@@ -65,7 +68,14 @@ export class SpiderMesh {
65
68
  rpc(service, method, args, options = {}) {
66
69
  const rpc_node_id = this.#caculate_rpc_node_id(service, options);
67
70
  if (!rpc_node_id)
68
- throw `SERVICE_NOT_RUNNING:${service}`;
71
+ return new Observable(o => o.error(new Error(`SERVICE_NOT_RUNNING:${service}`, {
72
+ cause: {
73
+ service,
74
+ method,
75
+ args,
76
+ options
77
+ }
78
+ })));
69
79
  if (options.$forgot) {
70
80
  this.publish({
71
81
  topic: rpc_node_id,
@@ -124,10 +134,6 @@ export class SpiderMesh {
124
134
  });
125
135
  }
126
136
  async $metadata() {
127
- const ips = (Object.values(networkInterfaces())
128
- .flat(2)
129
- .filter(a => a && !a.internal && a.address)
130
- .map(a => a?.address));
131
137
  const services = [...this.#local_services.entries()].reduce((p, [service_id, { metadata }]) => ({
132
138
  ...p,
133
139
  [service_id]: metadata
@@ -138,16 +144,12 @@ export class SpiderMesh {
138
144
  .map(node => node.local_transporter_id))
139
145
  ];
140
146
  const metadata = {
147
+ ...this.#metadata,
141
148
  node_id: this.#node_id,
142
- name: PACKAGE_JSON?.name || 'UNKNOWN',
143
- version: PACKAGE_JSON?.version || '1.0.0',
144
149
  path: process.cwd(),
145
150
  uptime: process.uptime(),
146
- hostname: os.hostname(),
147
- plaform: os.platform(),
148
151
  node_version: process.version,
149
152
  public_ip: await this.#public_ip,
150
- ip_addresses: ips,
151
153
  last_online: Date.now(),
152
154
  online: true,
153
155
  services,
@@ -1 +1 @@
1
- {"version":3,"file":"SpiderMesh.js","sourceRoot":"","sources":["../../src/SpiderMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpiderMesh.js","sourceRoot":"","sources":["../../src/SpiderMesh.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { SpiderMeshTransporterEvent } from '../interfaces/SpiderMeshTransporter.js';
3
- import { SpiderMesh } from 'src/SpiderMesh.js';
4
- import { Encodable } from 'src/Encoder.js';
3
+ import { Encodable } from '../Encoder.js';
4
+ import { SpiderMesh } from '../SpiderMesh.js';
5
5
  export type EventMetadata = {
6
6
  method: string;
7
7
  event: string;
@@ -1,38 +1,8 @@
1
1
  import { ReplaySubject } from "rxjs";
2
2
  import { ServiceMetadata } from "../../src/interfaces/SpiderMeshNode.js";
3
- import { SpiderMesh } from "../../src/SpiderMesh.js";
4
3
  export declare const $services: ReplaySubject<{
5
4
  instance: any;
6
5
  namespace: string;
7
6
  metadata: ServiceMetadata;
8
7
  }>;
9
- export declare const NestJSExposeMicroservice: (factory: any, metadata?: ServiceMetadata, namespace?: string) => {
10
- provide: symbol;
11
- inject: any[];
12
- useFactory: (instance: any) => void;
13
- };
14
- export declare const NestJSLinkMicroservice: (factory: any, wait_service_online?: boolean) => {
15
- provide: any;
16
- inject: (typeof SpiderMesh)[];
17
- useFactory: (sm: SpiderMesh) => Promise<import("../index.js").RemoteService<unknown>>;
18
- };
19
- export declare const NestJSLinkEvent: (factory: any, publish_buffer_ms?: number) => {
20
- provide: any;
21
- inject: (typeof SpiderMesh)[];
22
- useFactory: (sm: SpiderMesh) => Promise<{
23
- publish: (data: import("../Encoder.js").Encodable) => Promise<void>;
24
- listen: () => import("rxjs").Observable<{
25
- payload: import("../Encoder.js").Encodable;
26
- node_id: string;
27
- id: string;
28
- topic: string;
29
- created_at: number;
30
- received_at: number;
31
- metadata: {
32
- smnid: string;
33
- };
34
- sti: string;
35
- }>;
36
- }>;
37
- };
38
8
  export declare const Microservice: (namespace?: string, metadata?: ServiceMetadata) => any;
@@ -1,26 +1,6 @@
1
1
  import { ReplaySubject } from "rxjs";
2
2
  import { NAMEPSACE } from "../const.js";
3
- import { SpiderMesh } from "../../src/SpiderMesh.js";
4
3
  export const $services = new ReplaySubject();
5
- export const NestJSExposeMicroservice = (factory, metadata = {}, namespace = NAMEPSACE) => ({
6
- provide: Symbol(),
7
- inject: [factory],
8
- useFactory: (instance) => $services.next({
9
- instance,
10
- namespace,
11
- metadata
12
- })
13
- });
14
- export const NestJSLinkMicroservice = (factory, wait_service_online) => ({
15
- provide: factory,
16
- inject: [SpiderMesh],
17
- useFactory: (sm) => sm.link_remote_service(factory, wait_service_online)
18
- });
19
- export const NestJSLinkEvent = (factory, publish_buffer_ms) => ({
20
- provide: factory,
21
- inject: [SpiderMesh],
22
- useFactory: (sm) => sm.link_event(factory, publish_buffer_ms)
23
- });
24
4
  export const Microservice = (namespace = NAMEPSACE, metadata = {}) => {
25
5
  return ((target) => {
26
6
  class C extends target {
@@ -1 +1 @@
1
- {"version":3,"file":"Microservice.js","sourceRoot":"","sources":["../../../src/decorators/Microservice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,aAAa,EAAmE,CAAA;AAI7G,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAY,EAAE,WAA4B,EAAE,EAAE,YAAoB,SAAS,EAAE,EAAE,CAAC,CAAC;IACtH,OAAO,EAAE,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,QAAa,EAAE,EAAE,CAAE,SAAS,CAAC,IAAI,CAAC;QAC3C,QAAQ;QACR,SAAS;QACT,QAAQ;KACX,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAY,EAAE,mBAA6B,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,UAAU,EAAE,CAAC,EAAc,EAAE,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAY,EAAE,iBAA0B,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,UAAU,EAAE,CAAC,EAAc,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAoB,SAAS,EAAE,WAA4B,EAAE,EAAE,EAAE;IAC1F,OAAO,CACH,CAAC,MAAmC,EAAE,EAAE;QACpC,MAAM,CAAE,SAAQ,MAAM;YAClB,YAAY,GAAG,IAAW;gBACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;gBACd,SAAS,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,IAAI;oBACd,SAAS;oBACT,QAAQ;iBACX,CAAC,CAAA;YACN,CAAC;SACJ;QACD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACxD,OAAO,CAAQ,CAAA;IACnB,CAAC,CAGG,CAAA;AACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"Microservice.js","sourceRoot":"","sources":["../../../src/decorators/Microservice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,aAAa,EAAmE,CAAA;AAI7G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAoB,SAAS,EAAE,WAA4B,EAAE,EAAE,EAAE;IAC1F,OAAO,CACH,CAAC,MAAmC,EAAE,EAAE;QACpC,MAAM,CAAE,SAAQ,MAAM;YAClB,YAAY,GAAG,IAAW;gBACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;gBACd,SAAS,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,IAAI;oBACd,SAAS;oBACT,QAAQ;iBACX,CAAC,CAAA;YACN,CAAC;SACJ;QACD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACxD,OAAO,CAAQ,CAAA;IACnB,CAAC,CAGG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { ServiceMetadata } from "../interfaces/SpiderMeshNode.js";
2
+ export declare const NestJSExposeMicroservice: (factory: any, metadata?: ServiceMetadata, namespace?: string) => {
3
+ provide: symbol;
4
+ inject: any[];
5
+ useFactory: (instance: any) => void;
6
+ };
@@ -0,0 +1,12 @@
1
+ import { NAMEPSACE } from "../const.js";
2
+ import { $services } from "./Microservice.js";
3
+ export const NestJSExposeMicroservice = (factory, metadata = {}, namespace = NAMEPSACE) => ({
4
+ provide: Symbol(),
5
+ inject: [factory],
6
+ useFactory: (instance) => $services.next({
7
+ instance,
8
+ namespace,
9
+ metadata
10
+ })
11
+ });
12
+ //# sourceMappingURL=NestJSExposeMicroservice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestJSExposeMicroservice.js","sourceRoot":"","sources":["../../../src/decorators/NestJSExposeMicroservice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAY,EAAE,WAA4B,EAAE,EAAE,YAAoB,SAAS,EAAE,EAAE,CAAC,CAAC;IACtH,OAAO,EAAE,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,QAAa,EAAE,EAAE,CAAE,SAAS,CAAC,IAAI,CAAC;QAC3C,QAAQ;QACR,SAAS;QACT,QAAQ;KACX,CAAC;CACL,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { ServiceMetadata } from "../interfaces/SpiderMeshNode.js";
2
+ import { SpiderMesh } from "../SpiderMesh.js";
3
+ export declare const NestJSInjectMetadata: (fn: () => Promise<ServiceMetadata>) => {
4
+ provide: symbol;
5
+ inject: (typeof SpiderMesh)[];
6
+ useFactory: (sm: SpiderMesh) => Promise<void>;
7
+ };
@@ -0,0 +1,14 @@
1
+ import { SpiderMesh } from "../SpiderMesh.js";
2
+ export const NestJSInjectMetadata = (fn) => ({
3
+ provide: Symbol.for('NestJSInjectMetadata'),
4
+ inject: [SpiderMesh],
5
+ useFactory: async (sm) => {
6
+ try {
7
+ const m = await fn();
8
+ sm.set_metadata(m, true);
9
+ }
10
+ catch (e) {
11
+ }
12
+ }
13
+ });
14
+ //# sourceMappingURL=NestJSInjectMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestJSInjectMetadata.js","sourceRoot":"","sources":["../../../src/decorators/NestJSInjectMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAkC,EAAE,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC3C,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,UAAU,EAAE,KAAK,EAAE,EAAc,EAAE,EAAE;QACjC,IAAI;YACA,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,CAAA;YACpB,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3B;QAAC,OAAO,CAAC,EAAE;SAEX;IACL,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { SpiderMesh } from "../SpiderMesh.js";
2
+ export declare const NestJSLinkEvent: (factory: any, publish_buffer_ms?: number) => {
3
+ provide: any;
4
+ inject: (typeof SpiderMesh)[];
5
+ useFactory: (sm: SpiderMesh) => Promise<{
6
+ publish: (data: import("../Encoder.js").Encodable) => Promise<void>;
7
+ listen: () => import("rxjs").Observable<{
8
+ payload: import("../Encoder.js").Encodable;
9
+ node_id: string;
10
+ id: string;
11
+ topic: string;
12
+ created_at: number;
13
+ received_at: number;
14
+ metadata: {
15
+ smnid: string;
16
+ };
17
+ sti: string;
18
+ }>;
19
+ }>;
20
+ };
@@ -0,0 +1,7 @@
1
+ import { SpiderMesh } from "../SpiderMesh.js";
2
+ export const NestJSLinkEvent = (factory, publish_buffer_ms) => ({
3
+ provide: factory,
4
+ inject: [SpiderMesh],
5
+ useFactory: (sm) => sm.link_event(factory, publish_buffer_ms)
6
+ });
7
+ //# sourceMappingURL=NestJSLinkEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestJSLinkEvent.js","sourceRoot":"","sources":["../../../src/decorators/NestJSLinkEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAY,EAAE,iBAA0B,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,UAAU,EAAE,CAAC,EAAc,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC;CAC5E,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { SpiderMesh } from "../SpiderMesh.js";
2
+ export declare const NestJSLinkMicroservice: (factory: any, wait_service_online?: boolean) => {
3
+ provide: any;
4
+ inject: (typeof SpiderMesh)[];
5
+ useFactory: (sm: SpiderMesh) => Promise<import("../index.js").RemoteService<unknown>>;
6
+ };
@@ -0,0 +1,7 @@
1
+ import { SpiderMesh } from "../SpiderMesh.js";
2
+ export const NestJSLinkMicroservice = (factory, wait_service_online) => ({
3
+ provide: factory,
4
+ inject: [SpiderMesh],
5
+ useFactory: (sm) => sm.link_remote_service(factory, wait_service_online)
6
+ });
7
+ //# sourceMappingURL=NestJSLinkMicroservice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestJSLinkMicroservice.js","sourceRoot":"","sources":["../../../src/decorators/NestJSLinkMicroservice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAY,EAAE,mBAA6B,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,UAAU,EAAE,CAAC,EAAc,EAAE,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvF,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { SpiderMesh } from "src/SpiderMesh.js";
1
+ import { SpiderMesh } from "../SpiderMesh.js";
2
2
  export declare const key: unique symbol;
3
3
  export type OnMicroserviceReadyMetadata = {
4
4
  method: string;
@@ -1,12 +1,16 @@
1
1
  export * from './const.js';
2
- export { BuiltinTransporter } from './builtin-transporter/BuiltinTransporter.js';
3
2
  export { SpiderMesh } from './SpiderMesh.js';
4
3
  export { SpiderMeshNode, SpiderMeshNodeMetadata } from './interfaces/SpiderMeshNode.js';
5
4
  export { SpiderMeshTransporter, SpiderMeshTransporterFactory } from './interfaces/SpiderMeshTransporter.js';
6
5
  export { RemoteService } from './interfaces/RemoteService.js';
7
6
  export { RPCOptions, RPCOptionsList } from './RPCOptions.js';
8
7
  export { OnMicroserviceReady } from './decorators/OnMicroserviceReady.js';
9
- export { Microservice, NestJSExposeMicroservice, NestJSLinkMicroservice, NestJSLinkEvent } from './decorators/Microservice.js';
8
+ export { Microservice } from './decorators/Microservice.js';
9
+ export { NestJSExposeMicroservice } from './decorators/NestJSExposeMicroservice.js';
10
+ export { NestJSLinkMicroservice } from './decorators/NestJSLinkMicroservice.js';
11
+ export { NestJSLinkEvent } from './decorators/NestJSLinkEvent.js';
12
+ export { NestJSInjectMetadata } from './decorators/NestJSInjectMetadata.js';
13
+ export { Encodable, Encoder } from './Encoder.js';
10
14
  export { ListenEvent, EventDataType, EventHub, createSpiderMeshEvent, E, ListenEventBatch } from './decorators/ListenEvent.js';
11
15
  export * from './interfaces/SpiderMeshTransporter.js';
12
16
  export { LimitConcurrentRunning } from './decorators/LimitConcurrentRunning.js';
@@ -1,9 +1,13 @@
1
1
  export * from './const.js';
2
- export { BuiltinTransporter } from './builtin-transporter/BuiltinTransporter.js';
3
2
  export { SpiderMesh } from './SpiderMesh.js';
4
3
  export { RPCOptionsList } from './RPCOptions.js';
5
4
  export { OnMicroserviceReady } from './decorators/OnMicroserviceReady.js';
6
- export { Microservice, NestJSExposeMicroservice, NestJSLinkMicroservice, NestJSLinkEvent } from './decorators/Microservice.js';
5
+ export { Microservice } from './decorators/Microservice.js';
6
+ export { NestJSExposeMicroservice } from './decorators/NestJSExposeMicroservice.js';
7
+ export { NestJSLinkMicroservice } from './decorators/NestJSLinkMicroservice.js';
8
+ export { NestJSLinkEvent } from './decorators/NestJSLinkEvent.js';
9
+ export { NestJSInjectMetadata } from './decorators/NestJSInjectMetadata.js';
10
+ export { Encoder } from './Encoder.js';
7
11
  export { ListenEvent, createSpiderMeshEvent, ListenEventBatch } from './decorators/ListenEvent.js';
8
12
  export * from './interfaces/SpiderMeshTransporter.js';
9
13
  export { LimitConcurrentRunning } from './decorators/LimitConcurrentRunning.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C,OAAO,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EACH,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EAClB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,WAAW,EAGX,qBAAqB,EAErB,gBAAgB,EACnB,MAAM,6BAA6B,CAAA;AACpC,cAAc,uCAAuC,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C,OAAO,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACH,WAAW,EAGX,qBAAqB,EAErB,gBAAgB,EACnB,MAAM,6BAA6B,CAAA;AACpC,cAAc,uCAAuC,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA"}
@@ -5,16 +5,11 @@ export type SpiderMeshNodeMetadata = {
5
5
  node_id: string;
6
6
  local_transporter_id: string;
7
7
  remote_transporter_id: string;
8
- name: string;
9
- version: string;
10
8
  path: string;
11
9
  uptime: number;
12
- plaform: string;
13
- hostname: string;
14
10
  node_version: string;
15
11
  namespace: string;
16
12
  public_ip: string | null;
17
- ip_addresses: string[];
18
13
  last_online: number;
19
14
  online: boolean;
20
15
  services: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spider-mesh/core",
3
3
  "type": "module",
4
- "version": "1.0.128",
4
+ "version": "1.0.131",
5
5
  "description": "Lightweight microservice framework for typescript, auto discovery, load-balancing, fault-torrent, multiple transporters",
6
6
  "main": "./build/src/index.js",
7
7
  "types": "./build/src/index.d.ts",
@@ -1,11 +0,0 @@
1
- import { PublishMetadata, SpiderMeshTransporter, SpiderMeshTransporterEvent, SpiderMeshTransporterEventMetadata, TcpNodeStatus } from "../interfaces/SpiderMeshTransporter.js";
2
- import { Observable, Subject } from 'rxjs';
3
- import { Encodable } from "../Encoder.js";
4
- export declare class BuiltinTransporter implements SpiderMeshTransporter {
5
- #private;
6
- readonly $nodes_status: Subject<TcpNodeStatus>;
7
- readonly transporter_id: string;
8
- constructor();
9
- listen<T extends Encodable = Encodable, Metadata extends SpiderMeshTransporterEventMetadata = SpiderMeshTransporterEventMetadata>(topic: string): Observable<SpiderMeshTransporterEvent<T, Metadata>>;
10
- publish<T extends Encodable, Metadata extends SpiderMeshTransporterEventMetadata = SpiderMeshTransporterEventMetadata>({ payload, event, metadata, rti }: PublishMetadata<T, Metadata>): Promise<void>;
11
- }
@@ -1,151 +0,0 @@
1
- import { randomUUID } from "crypto";
2
- import { Observable, Subject, filter, finalize, first, map, merge, mergeMap } from 'rxjs';
3
- import { RxjsTcpSocket } from "./RxjsTcpSocket.js";
4
- import { RxjsTcpServer } from "./RxjsTcpServer.js";
5
- import { RxjsUdpServer } from "./RxjsUdpServer.js";
6
- import { UDP_BROADCAST_PORT, UDP_BROADCAST_ADDRESS, NAMEPSACE } from "../const.js";
7
- import { Encoder } from "../Encoder.js";
8
- export class BuiltinTransporter {
9
- $nodes_status = new Subject();
10
- #version = Date.now();
11
- #listeners = new Map;
12
- #nodes_map = new Map;
13
- #events_map = new Map();
14
- #$rebroadcast = new Subject();
15
- transporter_id = randomUUID();
16
- #$tcp = new RxjsTcpServer();
17
- constructor() {
18
- const $udp = new RxjsUdpServer({
19
- $tcp_server_port: this.#$tcp.$port,
20
- namespace: NAMEPSACE,
21
- udp_port: UDP_BROADCAST_PORT,
22
- udp_address: UDP_BROADCAST_ADDRESS,
23
- transporter_id: this.transporter_id
24
- });
25
- merge(this.#$tcp, $udp).pipe(mergeMap(socket => {
26
- const $ = socket.$incoming_data.pipe(map(buf => {
27
- try {
28
- return Encoder.decode(buf);
29
- }
30
- catch (e) { }
31
- }), filter(Boolean), mergeMap(async (msg) => {
32
- if (msg.topic == `#hello`) {
33
- const host = socket.rawSocket.remoteAddress;
34
- host && await this.#sync_node(socket, {
35
- ...msg.payload,
36
- host
37
- });
38
- return;
39
- }
40
- const event = { ...msg, received_at: Date.now() };
41
- this.#listeners.get(msg.topic)?.forEach(cb => cb(event));
42
- }));
43
- !socket.opened_by_remote_side && this.#tcp_hello(socket);
44
- return $;
45
- })).subscribe();
46
- }
47
- async #sync_node(current_socket, metadata) {
48
- const host = metadata.host;
49
- if (!host || !metadata.listening)
50
- return;
51
- for (const event of metadata.listening) {
52
- !this.#events_map.has(event) && this.#events_map.set(event, new Set());
53
- this.#events_map.get(event)?.add(metadata.transporter_id);
54
- }
55
- const cached = this.#nodes_map.get(metadata.transporter_id);
56
- if (cached && cached.version > 0)
57
- return;
58
- const socket = current_socket.opened_by_remote_side ? (await RxjsTcpSocket.connect({
59
- host,
60
- port: metadata.port,
61
- keepAlive: true,
62
- retry_delay_ms: 200,
63
- retry_times: 5
64
- }) || current_socket) : current_socket;
65
- const new_node = {
66
- ...metadata,
67
- host,
68
- socket,
69
- peers: metadata.peers.map(p => ({ ...p, peers: [] }))
70
- };
71
- this.#nodes_map.set(metadata.transporter_id, new_node);
72
- const remote_info = new_node.peers.find(p => p.transporter_id == this.transporter_id);
73
- const peer_updated = remote_info ? remote_info.version == this.#version : false;
74
- !peer_updated && this.#tcp_hello(socket);
75
- this.$nodes_status.next({
76
- online: true,
77
- remote_transporter_id: metadata.transporter_id,
78
- });
79
- socket.$status.pipe(filter(status => status != 'ready'), first(), finalize(() => {
80
- const node = this.#nodes_map.get(metadata.transporter_id);
81
- node && node.listening.map(evt => {
82
- this.#events_map.get(evt)?.delete(metadata.transporter_id);
83
- });
84
- this.#nodes_map.delete(metadata.transporter_id);
85
- this.$nodes_status.next({
86
- remote_transporter_id: metadata.transporter_id,
87
- online: false
88
- });
89
- })).subscribe();
90
- }
91
- async #tcp_hello(tcp_socket) {
92
- const port = this.#$tcp.$port.getValue();
93
- const msg = {
94
- created_at: Date.now(),
95
- id: randomUUID(),
96
- metadata: {
97
- namespace: NAMEPSACE,
98
- },
99
- topic: '#hello',
100
- sti: this.transporter_id,
101
- payload: {
102
- host: '',
103
- transporter_id: this.transporter_id,
104
- port,
105
- listening: ['#hello', ...this.#listeners.keys()],
106
- peers: [...this.#nodes_map.values()].map(({ socket, ...node }) => node),
107
- version: this.#version
108
- },
109
- received_at: 0
110
- };
111
- tcp_socket.write(Encoder.encode(msg));
112
- }
113
- listen(topic) {
114
- return new Observable(o => {
115
- this.#version = Date.now();
116
- !this.#listeners.has(topic) && this.#listeners.set(topic, new Map());
117
- const id = randomUUID();
118
- this.#listeners.get(topic)?.set(id, (data) => o.next(data));
119
- this.#$rebroadcast.next();
120
- return () => {
121
- this.#version = Date.now();
122
- this.#listeners.get(topic)?.delete(id);
123
- this.#listeners.get(topic)?.size == 0 && this.#listeners.delete(topic);
124
- this.#$rebroadcast.next();
125
- };
126
- });
127
- }
128
- async publish({ payload, event, metadata, rti }) {
129
- const msg = {
130
- created_at: Date.now(),
131
- id: randomUUID(),
132
- metadata,
133
- payload,
134
- received_at: 0,
135
- sti: this.transporter_id,
136
- topic: event || rti || '#'
137
- };
138
- const buffer = Encoder.encode(msg);
139
- if (rti) {
140
- await this.#nodes_map.get(rti)?.socket?.write(buffer);
141
- }
142
- else {
143
- for (const node_id of this.#events_map.get(event) || []) {
144
- const node = this.#nodes_map.get(node_id);
145
- await node?.socket?.write(buffer);
146
- }
147
- return;
148
- }
149
- }
150
- }
151
- //# sourceMappingURL=BuiltinTransporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuiltinTransporter.js","sourceRoot":"","sources":["../../../src/builtin-transporter/BuiltinTransporter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { BehaviorSubject, Observable } from "rxjs";
2
- import { RxjsTcpSocket } from "./RxjsTcpSocket.js";
3
- export declare class RxjsTcpServer extends Observable<RxjsTcpSocket> {
4
- $port: BehaviorSubject<number>;
5
- constructor(start_port?: number);
6
- }
@@ -1,31 +0,0 @@
1
- import { createServer } from "net";
2
- import { BehaviorSubject, Observable, firstValueFrom, fromEvent } from "rxjs";
3
- import { RxjsTcpSocket } from "./RxjsTcpSocket.js";
4
- export class RxjsTcpServer extends Observable {
5
- $port = new BehaviorSubject(0);
6
- constructor(start_port = 10001) {
7
- super(o => {
8
- setTimeout(async () => {
9
- for (let tcp_port = start_port; true; tcp_port++) {
10
- const server = createServer();
11
- const success = await new Promise(s => {
12
- server.once('listening', () => s(true));
13
- server.once('error', () => s(false));
14
- server.listen(tcp_port);
15
- });
16
- if (!success)
17
- continue;
18
- this.$port.next(tcp_port);
19
- server.on('connection', async (socket) => {
20
- const stable_socket = await RxjsTcpSocket.join(socket);
21
- o.next(stable_socket);
22
- });
23
- const $error = fromEvent(server, 'error');
24
- await firstValueFrom($error);
25
- server.removeAllListeners();
26
- }
27
- });
28
- });
29
- }
30
- }
31
- //# sourceMappingURL=RxjsTcpServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RxjsTcpServer.js","sourceRoot":"","sources":["../../../src/builtin-transporter/RxjsTcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAW,cAAc,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,MAAM,OAAO,aAAc,SAAQ,UAAyB;IAExD,KAAK,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAA;IAEtC,YAAY,aAAqB,KAAK;QAClC,KAAK,CAAC,CAAC,CAAC,EAAE;YACN,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,KAAK,IAAI,QAAQ,GAAG,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;oBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,CAAC,EAAE;wBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;wBACvC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC3B,CAAC,CAAC,CAAA;oBACF,IAAI,CAAC,OAAO;wBAAE,SAAQ;oBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBACzB,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;wBACnC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBACtD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;oBACzB,CAAC,CAAC,CAAA;oBACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAsB,CAAA;oBAC9D,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;oBAC5B,MAAM,CAAC,kBAAkB,EAAE,CAAA;iBAC9B;YACL,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;CAEJ"}
@@ -1,19 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { TcpNetConnectOpts, Socket } from "net";
4
- import { BehaviorSubject, Subject } from "rxjs";
5
- export declare class RxjsTcpSocket {
6
- #private;
7
- readonly opened_by_remote_side: boolean;
8
- $incoming_data: Subject<Buffer>;
9
- $status: BehaviorSubject<"error" | "connecting" | "ready" | "closed">;
10
- rawSocket: Socket;
11
- private constructor();
12
- static connect({ retry_times, retry_delay_ms, ...options }: TcpNetConnectOpts & {
13
- retry_times?: number;
14
- retry_delay_ms?: number;
15
- }): Promise<RxjsTcpSocket | null>;
16
- static join(socket: Socket): Promise<RxjsTcpSocket>;
17
- write(data: Buffer): void;
18
- close(): void;
19
- }
@@ -1,72 +0,0 @@
1
- import { createConnection } from "net";
2
- import { BehaviorSubject, Subject, finalize, firstValueFrom, fromEvent, map, merge, takeUntil, tap, timer } from "rxjs";
3
- import frame from 'frame-stream';
4
- import { sleep } from "../../src/helpers/sleep.js";
5
- export class RxjsTcpSocket {
6
- opened_by_remote_side;
7
- #$outgoing_data = new Subject();
8
- $incoming_data = new Subject();
9
- $status = new BehaviorSubject('connecting');
10
- rawSocket;
11
- constructor(opened_by_remote_side) {
12
- this.opened_by_remote_side = opened_by_remote_side;
13
- opened_by_remote_side && this.$status.next('ready');
14
- }
15
- static connect({ retry_times = 5, retry_delay_ms = 5000, ...options }) {
16
- const $this = new this(false);
17
- return new Promise(async (s) => {
18
- for (let i = 0; i <= retry_times; i++) {
19
- const socket = createConnection({ ...options, autoSelectFamily: true });
20
- const connected = await firstValueFrom(merge(fromEvent(socket, 'connect').pipe(map(() => true)), fromEvent(socket, 'error').pipe(map(() => false)), timer(1000).pipe(map(() => false))));
21
- if (!connected) {
22
- socket.destroy();
23
- await sleep(retry_delay_ms);
24
- if (i == 0) {
25
- break;
26
- }
27
- else {
28
- continue;
29
- }
30
- }
31
- $this.$status.next('ready');
32
- const $error = $this.#join_util_error(socket);
33
- s($this);
34
- i = 0;
35
- const status = await $error;
36
- if (status == 'closed')
37
- return;
38
- }
39
- s(null);
40
- $this.$status.next('error');
41
- });
42
- }
43
- static async join(socket) {
44
- const $this = new this(true);
45
- $this.#join_util_error(socket);
46
- return $this;
47
- }
48
- async #join_util_error(socket) {
49
- const $error = merge(fromEvent(socket, 'error').pipe(map(() => 'error')), fromEvent(socket, 'close').pipe(map(() => 'closed')), fromEvent(socket, 'timeout').pipe(map(() => 'error')), fromEvent(socket, 'end').pipe(map(() => 'closed'))).pipe(tap(status => this.$status.next(status)));
50
- this.rawSocket = socket;
51
- const encoder = frame.encode();
52
- const decoder = frame.decode();
53
- decoder.on('data', (msg) => {
54
- this.$incoming_data.next(msg);
55
- });
56
- socket.on('data', data => decoder.writable && decoder.write(data));
57
- encoder.on('data', buffer => socket.writable && socket.writable && socket.write(buffer));
58
- this.#$outgoing_data.pipe(takeUntil($error), finalize(() => {
59
- socket.removeAllListeners();
60
- decoder.removeAllListeners();
61
- encoder.removeAllListeners();
62
- }), map(data => encoder.writable && encoder.write(data), 1)).subscribe();
63
- return firstValueFrom($error);
64
- }
65
- write(data) {
66
- this.#$outgoing_data.next(data);
67
- }
68
- close() {
69
- this.rawSocket?.end();
70
- }
71
- }
72
- //# sourceMappingURL=RxjsTcpSocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RxjsTcpSocket.js","sourceRoot":"","sources":["../../../src/builtin-transporter/RxjsTcpSocket.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { BehaviorSubject, Observable } from "rxjs";
2
- import { RxjsTcpSocket } from "./RxjsTcpSocket.js";
3
- export type BroadcastMessage = {
4
- port: number;
5
- transporter_id: string;
6
- namespace: string;
7
- sig: string;
8
- };
9
- export type RxjsUdpBroadcasterConfig = {
10
- namespace: string;
11
- udp_address?: string;
12
- udp_port: number;
13
- transporter_id: string;
14
- $tcp_server_port: BehaviorSubject<number>;
15
- };
16
- export declare class RxjsUdpServer extends Observable<RxjsTcpSocket> {
17
- #private;
18
- private config;
19
- constructor(config: RxjsUdpBroadcasterConfig);
20
- }
@@ -1,92 +0,0 @@
1
- import { createSocket } from "dgram";
2
- import { Observable, combineLatest, filter, first, from, interval, mergeMap, tap } from "rxjs";
3
- import { networkInterfaces } from 'os';
4
- import { createHmac } from "crypto";
5
- import { BROADCAST_INTERVAL, UDP_SECRET_KEY } from "../const.js";
6
- import { RxjsTcpSocket } from "./RxjsTcpSocket.js";
7
- export class RxjsUdpServer extends Observable {
8
- config;
9
- constructor(config) {
10
- super(o => {
11
- const nodes = new Set();
12
- const { udp_port } = config;
13
- const udp = createSocket({
14
- type: 'udp4',
15
- reuseAddr: true
16
- });
17
- udp.bind({
18
- address: '0.0.0.0',
19
- port: udp_port,
20
- }, () => udp.setBroadcast(true));
21
- udp.on('message', async (data, rinfo) => {
22
- try {
23
- const msg = JSON.parse(data.toString('utf-8'));
24
- if (msg.namespace != config.namespace)
25
- return;
26
- if (msg.transporter_id == config.transporter_id)
27
- return;
28
- if (nodes.has(msg.transporter_id))
29
- return;
30
- const sig = createHmac('SHA256', UDP_SECRET_KEY).update(`${msg.namespace}|${msg.transporter_id}|${msg.port}`).digest('base64');
31
- if (msg.sig != sig)
32
- return;
33
- const socket = await RxjsTcpSocket.connect({
34
- ...msg,
35
- host: rinfo.address,
36
- keepAlive: true,
37
- retry_delay_ms: 5000,
38
- retry_times: 5
39
- });
40
- if (socket) {
41
- if (nodes.has(msg.transporter_id)) {
42
- socket.close();
43
- }
44
- else {
45
- nodes.add(msg.transporter_id);
46
- o.next(socket);
47
- socket.$status.pipe(filter(s => s == 'closed' || s == 'error'), tap(s => nodes.delete(msg.transporter_id)), first()).subscribe();
48
- }
49
- }
50
- }
51
- catch (e) {
52
- }
53
- });
54
- config.$tcp_server_port.subscribe(port => this.#broadcast(udp, port));
55
- if (BROADCAST_INTERVAL) {
56
- combineLatest([
57
- config.$tcp_server_port,
58
- interval(BROADCAST_INTERVAL)
59
- ]).subscribe(([port]) => port && this.#broadcast(udp, port));
60
- }
61
- });
62
- this.config = config;
63
- }
64
- #broadcast(udp, port) {
65
- const { namespace, transporter_id, udp_port, udp_address = '' } = this.config;
66
- const broadcast_ips = ['255.255.255.255'];
67
- const network_address = (Object.entries(networkInterfaces())
68
- .filter(([i]) => !i.startsWith('lo'))
69
- .map(e => e[1])
70
- .flat(2)
71
- .filter(d => d && d.family == 'IPv4' && d.address)
72
- .map(d => d.address.split('.').slice(0, 3).join('.') + '.255'));
73
- const env_address = udp_address.split(',').map(a => a.trim()).filter(a => !!a);
74
- for (const address of [...network_address, ...env_address]) {
75
- const splited = address.split('.');
76
- splited.length == 4 && broadcast_ips.push(address);
77
- splited.length == 3 && new Array(256).fill(0).map((_, i) => broadcast_ips.push(`${address}.${i}`));
78
- }
79
- const msg = {
80
- namespace,
81
- transporter_id,
82
- port,
83
- sig: ''
84
- };
85
- const sig = createHmac('SHA256', UDP_SECRET_KEY).update(`${msg.namespace}|${msg.transporter_id}|${msg.port}`).digest('base64');
86
- const json = JSON.stringify({ ...msg, sig });
87
- from(broadcast_ips).pipe(mergeMap(async (host) => {
88
- await udp.send(Buffer.from(json), udp_port, host);
89
- }, 50)).subscribe();
90
- }
91
- }
92
- //# sourceMappingURL=RxjsUdpServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RxjsUdpServer.js","sourceRoot":"","sources":["../../../src/builtin-transporter/RxjsUdpServer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { EventEmitter } from "stream";
3
- export declare function waitFirstEvent(target: EventEmitter, ...events: string[]): Promise<unknown[]>;
@@ -1,5 +0,0 @@
1
- import { firstValueFrom, merge, fromEvent, map } from "rxjs";
2
- export function waitFirstEvent(target, ...events) {
3
- return firstValueFrom(merge(...events.map(e => fromEvent(target, e).pipe(map((...args) => [e, ...args])))));
4
- }
5
- //# sourceMappingURL=waitFirstEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitFirstEvent.js","sourceRoot":"","sources":["../../../src/helpers/waitFirstEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAG7D,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,GAAG,MAAgB;IACpE,OAAO,cAAc,CAAC,KAAK,CACvB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAC/E,CAAC,CAAA;AACN,CAAC"}