@spider-mesh/core 2.0.29 → 2.0.35

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 (79) hide show
  1. package/README.md +573 -0
  2. package/build/src/RemoteService.d.ts +1 -1
  3. package/build/src/RemoteService.js.map +1 -1
  4. package/build/src/SpiderMesh.d.ts +2 -2
  5. package/build/src/SpiderMesh.js +267 -120
  6. package/build/src/SpiderMesh.js.map +1 -1
  7. package/build/src/decorators/Microservice.d.ts +1 -1
  8. package/build/src/decorators/Microservice.js.map +1 -1
  9. package/build/src/helpers/GetIps.js +15 -8
  10. package/build/src/helpers/GetIps.js.map +1 -1
  11. package/build/src/helpers/LimitConcurrency.js +5 -2
  12. package/build/src/helpers/LimitConcurrency.js.map +1 -1
  13. package/build/src/helpers/MicroserviceException.d.ts +4 -15
  14. package/build/src/helpers/MicroserviceException.js +1 -25
  15. package/build/src/helpers/MicroserviceException.js.map +1 -1
  16. package/build/src/index.d.ts +1 -0
  17. package/build/src/types.d.ts +102 -0
  18. package/build/src/types.js +2 -0
  19. package/build/src/types.js.map +1 -0
  20. package/build/tsconfig.tsbuildinfo +1 -1
  21. package/package.json +4 -4
  22. package/tsconfig.json +3 -1
  23. package/build/src/abstract/DiscoveryTransporter.d.ts +0 -5
  24. package/build/src/abstract/DiscoveryTransporter.js +0 -3
  25. package/build/src/abstract/DiscoveryTransporter.js.map +0 -1
  26. package/build/src/abstract/PubsubTransporter.d.ts +0 -11
  27. package/build/src/abstract/PubsubTransporter.js +0 -3
  28. package/build/src/abstract/PubsubTransporter.js.map +0 -1
  29. package/build/src/abstract/RemoteService.d.ts +0 -35
  30. package/build/src/abstract/RemoteService.js +0 -107
  31. package/build/src/abstract/RemoteService.js.map +0 -1
  32. package/build/src/abstract/RpcTransporter.d.ts +0 -30
  33. package/build/src/abstract/RpcTransporter.js +0 -3
  34. package/build/src/abstract/RpcTransporter.js.map +0 -1
  35. package/build/src/abstract/SpiderMeshNode.d.ts +0 -18
  36. package/build/src/abstract/SpiderMeshNode.js +0 -2
  37. package/build/src/abstract/SpiderMeshNode.js.map +0 -1
  38. package/build/src/abstracts/DiscoveryTransporter.d.ts +0 -5
  39. package/build/src/abstracts/DiscoveryTransporter.js +0 -3
  40. package/build/src/abstracts/DiscoveryTransporter.js.map +0 -1
  41. package/build/src/abstracts/PubsubTransporter.d.ts +0 -11
  42. package/build/src/abstracts/PubsubTransporter.js +0 -3
  43. package/build/src/abstracts/PubsubTransporter.js.map +0 -1
  44. package/build/src/abstracts/RemoteService.d.ts +0 -38
  45. package/build/src/abstracts/RemoteService.js +0 -105
  46. package/build/src/abstracts/RemoteService.js.map +0 -1
  47. package/build/src/abstracts/RpcTransporter.d.ts +0 -30
  48. package/build/src/abstracts/RpcTransporter.js +0 -3
  49. package/build/src/abstracts/RpcTransporter.js.map +0 -1
  50. package/build/src/abstracts/SpiderMeshNode.d.ts +0 -18
  51. package/build/src/abstracts/SpiderMeshNode.js +0 -2
  52. package/build/src/abstracts/SpiderMeshNode.js.map +0 -1
  53. package/build/src/helpers/MicroserviceNotFound copy.d.ts +0 -5
  54. package/build/src/helpers/MicroserviceNotFound copy.js +0 -8
  55. package/build/src/helpers/MicroserviceNotFound copy.js.map +0 -1
  56. package/build/src/helpers/MicroserviceNotFound.d.ts +0 -5
  57. package/build/src/helpers/MicroserviceNotFound.js +0 -8
  58. package/build/src/helpers/MicroserviceNotFound.js.map +0 -1
  59. package/build/src/helpers/MicroserviceOfflineException.d.ts +0 -5
  60. package/build/src/helpers/MicroserviceOfflineException.js +0 -8
  61. package/build/src/helpers/MicroserviceOfflineException.js.map +0 -1
  62. package/build/src/helpers/MicroserviceRpcTimeout.d.ts +0 -5
  63. package/build/src/helpers/MicroserviceRpcTimeout.js +0 -8
  64. package/build/src/helpers/MicroserviceRpcTimeout.js.map +0 -1
  65. package/build/src/interfaces/DiscoveryTransporter.d.ts +0 -5
  66. package/build/src/interfaces/DiscoveryTransporter.js +0 -3
  67. package/build/src/interfaces/DiscoveryTransporter.js.map +0 -1
  68. package/build/src/interfaces/PubsubTransporter.d.ts +0 -11
  69. package/build/src/interfaces/PubsubTransporter.js +0 -3
  70. package/build/src/interfaces/PubsubTransporter.js.map +0 -1
  71. package/build/src/interfaces/RemoteService.d.ts +0 -35
  72. package/build/src/interfaces/RemoteService.js +0 -107
  73. package/build/src/interfaces/RemoteService.js.map +0 -1
  74. package/build/src/interfaces/RpcTransporter.d.ts +0 -30
  75. package/build/src/interfaces/RpcTransporter.js +0 -3
  76. package/build/src/interfaces/RpcTransporter.js.map +0 -1
  77. package/build/src/interfaces/SpiderMeshNode.d.ts +0 -18
  78. package/build/src/interfaces/SpiderMeshNode.js +0 -2
  79. package/build/src/interfaces/SpiderMeshNode.js.map +0 -1
@@ -1,3 +0,0 @@
1
- export class RpcTransporter {
2
- }
3
- //# sourceMappingURL=RpcTransporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcTransporter.js","sourceRoot":"","sources":["../../../src/abstracts/RpcTransporter.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAgB,cAAc;CASnC"}
@@ -1,18 +0,0 @@
1
- export type SpiderMeshNode = {
2
- ips: string[];
3
- host: string;
4
- namespace: string;
5
- version: number;
6
- node_id: string;
7
- online?: boolean;
8
- topics: string[];
9
- services: {
10
- [name: string]: any;
11
- };
12
- nodes: {
13
- [node_id: string]: number;
14
- };
15
- transporters: {
16
- [name: string]: any;
17
- };
18
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SpiderMeshNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpiderMeshNode.js","sourceRoot":"","sources":["../../../src/abstracts/SpiderMeshNode.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export declare class MicroserviceNotFound extends MicroserviceException {
3
- static readonly code = "MicroserviceNotFound";
4
- constructor();
5
- }
@@ -1,8 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export class MicroserviceNotFound extends MicroserviceException {
3
- static code = 'MicroserviceNotFound';
4
- constructor() {
5
- super({ code: MicroserviceNotFound.code });
6
- }
7
- }
8
- //# sourceMappingURL=MicroserviceNotFound%20copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MicroserviceNotFound copy.js","sourceRoot":"","sources":["../../../src/helpers/MicroserviceNotFound copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IACpD,MAAM,CAAU,IAAI,GAAG,sBAAsB,CAAA;IACpD;QACI,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC"}
@@ -1,5 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export declare class MicroserviceNotFound extends MicroserviceException {
3
- static readonly code = "MicroserviceNotFound";
4
- constructor();
5
- }
@@ -1,8 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export class MicroserviceNotFound extends MicroserviceException {
3
- static code = 'MicroserviceNotFound';
4
- constructor() {
5
- super({ code: MicroserviceNotFound.code });
6
- }
7
- }
8
- //# sourceMappingURL=MicroserviceNotFound.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MicroserviceNotFound.js","sourceRoot":"","sources":["../../../src/helpers/MicroserviceNotFound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IACpD,MAAM,CAAU,IAAI,GAAG,sBAAsB,CAAA;IACpD;QACI,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC"}
@@ -1,5 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export declare class MicroserviceOfflineException extends MicroserviceException {
3
- static readonly code = "Microservice Offline Exception";
4
- constructor();
5
- }
@@ -1,8 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export class MicroserviceOfflineException extends MicroserviceException {
3
- static code = 'Microservice Offline Exception';
4
- constructor() {
5
- super({ code: MicroserviceOfflineException.code });
6
- }
7
- }
8
- //# sourceMappingURL=MicroserviceOfflineException.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MicroserviceOfflineException.js","sourceRoot":"","sources":["../../../src/helpers/MicroserviceOfflineException.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,4BAA6B,SAAQ,qBAAqB;IAC5D,MAAM,CAAU,IAAI,GAAG,gCAAgC,CAAA;IAC9D;QACI,KAAK,CAAC,EAAE,IAAI,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC"}
@@ -1,5 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export declare class MicroserviceRpcTimeout extends MicroserviceException {
3
- static readonly code = "MicroserviceRpcTimeout";
4
- constructor();
5
- }
@@ -1,8 +0,0 @@
1
- import { MicroserviceException } from "./MicroserviceException.js";
2
- export class MicroserviceRpcTimeout extends MicroserviceException {
3
- static code = 'MicroserviceRpcTimeout';
4
- constructor() {
5
- super({ code: MicroserviceRpcTimeout.code });
6
- }
7
- }
8
- //# sourceMappingURL=MicroserviceRpcTimeout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MicroserviceRpcTimeout.js","sourceRoot":"","sources":["../../../src/helpers/MicroserviceRpcTimeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,sBAAuB,SAAQ,qBAAqB;IACtD,MAAM,CAAU,IAAI,GAAG,wBAAwB,CAAA;IACtD;QACI,KAAK,CAAC,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC"}
@@ -1,5 +0,0 @@
1
- import { BehaviorSubject, Observable } from "rxjs";
2
- import { SpiderMeshNode } from "./SpiderMeshNode.js";
3
- export declare abstract class DiscoveryTransporter {
4
- abstract link(metadata$: BehaviorSubject<SpiderMeshNode>): Observable<SpiderMeshNode>;
5
- }
@@ -1,3 +0,0 @@
1
- export class DiscoveryTransporter {
2
- }
3
- //# sourceMappingURL=DiscoveryTransporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DiscoveryTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/DiscoveryTransporter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,oBAAoB;CAEzC"}
@@ -1,11 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { NodesMap } from "src/SpiderMesh.js";
3
- import { SpiderMeshNode } from "./SpiderMeshNode.js";
4
- export type PubsubTransporterEvent = {
5
- metadata: Record<string, string | boolean | number>;
6
- };
7
- export declare abstract class PubsubTransporter {
8
- abstract link(metadata: Observable<SpiderMeshNode>, nodes$: Observable<NodesMap>): Observable<PubsubTransporterEvent>;
9
- abstract publish<T>(topic: string, data: T): Promise<void>;
10
- abstract listen<T>(topic: string): Observable<T>;
11
- }
@@ -1,3 +0,0 @@
1
- export class PubsubTransporter {
2
- }
3
- //# sourceMappingURL=PubsubTransporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PubsubTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/PubsubTransporter.ts"],"names":[],"mappings":"AAUA,MAAM,OAAgB,iBAAiB;CAItC"}
@@ -1,35 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { SpiderMeshNode } from "./SpiderMeshNode.js";
3
- import { RpcOptions } from "./RpcTransporter.js";
4
- import { SpiderMesh } from "src/SpiderMesh.js";
5
- export type ServiceChecker = (nodes: SpiderMeshNode[]) => Promise<boolean> | boolean;
6
- export type RemoteServiceOptions = Partial<RpcOptions<any>> & {
7
- service: string;
8
- };
9
- export declare class RemoteService<Response, Fallback> {
10
- #private;
11
- private sm;
12
- private options;
13
- constructor(sm: SpiderMesh, options: RemoteServiceOptions);
14
- watch$(): Observable<(SpiderMeshNode & {
15
- rpc?: string;
16
- })[]>;
17
- get nodes(): (SpiderMeshNode & {
18
- rpc?: string;
19
- })[];
20
- set(options: Omit<Partial<RpcOptions<Fallback>>, 'service' | 'method' | 'args'>): RemoteService<Response, Fallback> & { [K in keyof Response as Response[K] extends (...args: any) => any ? K : ""]: Response[K] extends (...args: any) => any ? (...args: Parameters<Response[K]>) => ReturnType<Response[K]> extends Observable<any> | Promise<Observable<any>> ? Awaited<Fallback> | Awaited<Observable<any> & ReturnType<Response[K]>> | Awaited<Promise<Observable<any>> & ReturnType<Response[K]>> : Promise<Awaited<Fallback> | Awaited<ReturnType<Response[K]>>> : null; } & { [key in keyof Response as key extends string ? `__batch__${key}` : string]: Response[key] extends (...args: any) => any ? (...args: Parameters<Response[key]>) => Observable<{
21
- node: SpiderMeshNode;
22
- data: Awaited<ReturnType<Response[key]>>;
23
- } | {
24
- node: SpiderMeshNode;
25
- error: Error;
26
- }> : Response[key]; };
27
- wait(check?: ServiceChecker): Promise<true>;
28
- static link<Service, Fallback>(sm: SpiderMesh, options: RemoteServiceOptions): (RemoteService<Service, Fallback> & { [K in keyof Service as (Service[K] extends (...args: any) => any ? K : "")]: Service[K] extends (...args: any) => any ? ((...args: Parameters<Service[K]>) => ReturnType<Service[K]> extends (Observable<any> | Promise<Observable<any>>) ? Awaited<ReturnType<Service[K]> | Fallback> : Promise<Awaited<ReturnType<Service[K]> | Fallback>>) : null; } & { [key in keyof Service as (key extends string ? `__batch__${key}` : string)]: Service[key] extends ((...args: any) => any) ? ((...args: Parameters<Service[key]>) => Observable<{
29
- node: SpiderMeshNode;
30
- data: Awaited<ReturnType<Service[key]>>;
31
- } | {
32
- node: SpiderMeshNode;
33
- error: Error;
34
- }>) : Service[key]; });
35
- }
@@ -1,107 +0,0 @@
1
- import { catchError, filter, firstValueFrom, from, map, mergeMap, of } from "rxjs";
2
- const InvaildMethodList = new Set([
3
- 'caller',
4
- 'callee',
5
- 'arguments',
6
- 'constructor',
7
- '__defineGetter__',
8
- '__defineSetter__',
9
- 'hasOwnProperty',
10
- '__lookupGetter__',
11
- '__lookupSetter__',
12
- 'isPrototypeOf',
13
- 'propertyIsEnumerable',
14
- 'toString',
15
- 'valueOf',
16
- 'toLocaleString',
17
- '__proto__',
18
- 'onModuleInit',
19
- 'onApplicationBootstrap',
20
- 'onModuleDestroy',
21
- 'beforeApplicationShutdown',
22
- 'onApplicationShutdown'
23
- ]);
24
- export class RemoteService {
25
- sm;
26
- options;
27
- constructor(sm, options) {
28
- this.sm = sm;
29
- this.options = options;
30
- }
31
- #listRpcNodes() {
32
- const targets = this.sm.services$.value.services.get(this.options.service);
33
- if (!targets || targets.nodes.length == 0)
34
- return [];
35
- return targets.nodes.map(id => {
36
- const node = this.sm.nodes$.value.nodes.get(id);
37
- if (node && node.rpc)
38
- return node;
39
- }).filter(Boolean).map(node => node);
40
- }
41
- watch$() {
42
- return this.sm.services$.pipe(filter((e, index) => {
43
- if (index == 0)
44
- return true;
45
- if (e.last_updated_services.has(this.options.service))
46
- return true;
47
- return false;
48
- }), map(e => e.services.get(this.options.service)?.nodes || []), map(targets => targets.map(id => this.sm.nodes$.value.nodes.get(id)).filter(Boolean)));
49
- }
50
- get nodes() {
51
- return this.#listRpcNodes();
52
- }
53
- set(options) {
54
- return RemoteService.link(this.sm, {
55
- ...this.options,
56
- ...options
57
- });
58
- }
59
- wait(check = (nodes => nodes.length > 0)) {
60
- const name = this.options.service;
61
- return firstValueFrom(this.sm.services$.pipe(map(() => {
62
- const targets = this.sm.services$.value.services.get(name)?.nodes || [];
63
- const nodes = targets.map(id => this.sm.nodes$.value.nodes.get(id)).filter(Boolean);
64
- return nodes;
65
- }), mergeMap(async (targets) => check(targets)), filter(Boolean)));
66
- }
67
- static link(sm, options) {
68
- const target = new this(sm, options);
69
- const handler = {
70
- get(_, prop, receiver) {
71
- const method = prop.toString();
72
- const fn = target[prop];
73
- if (fn)
74
- return fn;
75
- if (InvaildMethodList.has(method))
76
- return () => null;
77
- if (method.startsWith('__batch__')) {
78
- const real_metod = method.split('__batch__')?.[1];
79
- return (...args) => from(target.#listRpcNodes()).pipe(mergeMap(node => (target.sm.callRemoteService({
80
- ...options,
81
- method: real_metod,
82
- args
83
- }).pipe(map(data => ({ node, data })), catchError(error => of({ node, error }))))));
84
- }
85
- return (...args) => {
86
- const response = target.sm.callRemoteService({
87
- ...options,
88
- method,
89
- args
90
- });
91
- return Object.assign(response, {
92
- then: async (s, r) => {
93
- try {
94
- s(await firstValueFrom(response));
95
- }
96
- catch (e) {
97
- r(e);
98
- }
99
- }
100
- });
101
- };
102
- }
103
- };
104
- return new Proxy(target, handler);
105
- }
106
- }
107
- //# sourceMappingURL=RemoteService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RemoteService.js","sourceRoot":"","sources":["../../../src/interfaces/RemoteService.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { SpiderMeshNode } from "./SpiderMeshNode.js";
3
- export type RpcRoutingOptions = {
4
- [key: string]: string | number | boolean;
5
- };
6
- export type RpcOptions<T = any> = {
7
- service: string;
8
- method: string;
9
- args: any[];
10
- fallback?: T;
11
- timeout?: number;
12
- retry?: number;
13
- node_id?: string;
14
- ip?: string;
15
- };
16
- export type RpcEvent = Partial<{
17
- rpc: RpcOptions<any> & {
18
- callback: (o: any | Promise<any> | Observable<any>) => void;
19
- };
20
- online: string;
21
- offline: string;
22
- metadata: Record<string, string | boolean | number>;
23
- }>;
24
- export declare abstract class RpcTransporter {
25
- abstract link(metadata: Observable<SpiderMeshNode>, nodes$: Observable<{
26
- nodes: Map<string, SpiderMeshNode>;
27
- last_updated_node_id: string;
28
- }>): Observable<RpcEvent>;
29
- abstract rpc<R, T>(r: RpcOptions<T>, node: SpiderMeshNode, force: boolean): Observable<R>;
30
- }
@@ -1,3 +0,0 @@
1
- export class RpcTransporter {
2
- }
3
- //# sourceMappingURL=RpcTransporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/RpcTransporter.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAgB,cAAc;CASnC"}
@@ -1,18 +0,0 @@
1
- export type SpiderMeshNode = {
2
- ips: string[];
3
- host: string;
4
- namespace: string;
5
- version: number;
6
- node_id: string;
7
- online?: boolean;
8
- topics: string[];
9
- services: {
10
- [name: string]: any;
11
- };
12
- nodes: {
13
- [node_id: string]: number;
14
- };
15
- transporters: {
16
- [name: string]: any;
17
- };
18
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SpiderMeshNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpiderMeshNode.js","sourceRoot":"","sources":["../../../src/interfaces/SpiderMeshNode.ts"],"names":[],"mappings":""}