@spider-mesh/core 1.0.152 → 2.0.1

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 (83) hide show
  1. package/build/const.d.ts +1 -0
  2. package/build/const.js +2 -0
  3. package/build/const.js.map +1 -0
  4. package/build/src/SpiderMesh.d.ts +25 -70
  5. package/build/src/SpiderMesh.js +308 -420
  6. package/build/src/SpiderMesh.js.map +1 -1
  7. package/build/src/decorators/BeforeMicroserviceOnline.d.ts +1 -2
  8. package/build/src/decorators/BeforeMicroserviceOnline.js +1 -1
  9. package/build/src/decorators/BeforeMicroserviceOnline.js.map +1 -1
  10. package/build/src/decorators/LimitConcurrentRunning.d.ts +2 -3
  11. package/build/src/decorators/LimitConcurrentRunning.js +2 -27
  12. package/build/src/decorators/LimitConcurrentRunning.js.map +1 -1
  13. package/build/src/decorators/Microservice.d.ts +10 -7
  14. package/build/src/decorators/Microservice.js +13 -12
  15. package/build/src/decorators/Microservice.js.map +1 -1
  16. package/build/src/decorators/NestJSExposeMicroservice.d.ts +1 -2
  17. package/build/src/decorators/NestJSExposeMicroservice.js +9 -7
  18. package/build/src/decorators/NestJSExposeMicroservice.js.map +1 -1
  19. package/build/src/decorators/NestJSLinkEvent.d.ts +5 -16
  20. package/build/src/decorators/NestJSLinkEvent.js +2 -2
  21. package/build/src/decorators/NestJSLinkEvent.js.map +1 -1
  22. package/build/src/decorators/NestJSLinkMicroservice.d.ts +2 -2
  23. package/build/src/decorators/NestJSLinkMicroservice.js +2 -2
  24. package/build/src/decorators/NestJSLinkMicroservice.js.map +1 -1
  25. package/build/src/helpers/LimitConcurrency.d.ts +3 -0
  26. package/build/src/helpers/LimitConcurrency.js +34 -0
  27. package/build/src/helpers/LimitConcurrency.js.map +1 -0
  28. package/build/src/helpers/MicroserviceException.d.ts +8 -0
  29. package/build/src/helpers/MicroserviceException.js +9 -0
  30. package/build/src/helpers/MicroserviceException.js.map +1 -0
  31. package/build/src/helpers/MicroserviceNotFound copy.d.ts +5 -0
  32. package/build/src/helpers/MicroserviceNotFound copy.js +8 -0
  33. package/build/src/helpers/MicroserviceNotFound copy.js.map +1 -0
  34. package/build/src/helpers/MicroserviceNotFound.d.ts +5 -0
  35. package/build/src/helpers/MicroserviceNotFound.js +8 -0
  36. package/build/src/helpers/MicroserviceNotFound.js.map +1 -0
  37. package/build/src/helpers/MicroserviceOfflineException.d.ts +5 -0
  38. package/build/src/helpers/MicroserviceOfflineException.js +8 -0
  39. package/build/src/helpers/MicroserviceOfflineException.js.map +1 -0
  40. package/build/src/helpers/MicroserviceRpcTimeout.d.ts +5 -0
  41. package/build/src/helpers/MicroserviceRpcTimeout.js +8 -0
  42. package/build/src/helpers/MicroserviceRpcTimeout.js.map +1 -0
  43. package/build/src/helpers/randomUUID.js.map +1 -1
  44. package/build/src/helpers/sleep.js +1 -1
  45. package/build/src/helpers/sleep.js.map +1 -1
  46. package/build/src/index.d.ts +14 -15
  47. package/build/src/index.js +14 -12
  48. package/build/src/index.js.map +1 -1
  49. package/build/src/interfaces/DiscoveryTransporter.d.ts +5 -0
  50. package/build/src/interfaces/DiscoveryTransporter.js +3 -0
  51. package/build/src/interfaces/DiscoveryTransporter.js.map +1 -0
  52. package/build/src/interfaces/PubsubTransporter.d.ts +10 -0
  53. package/build/src/interfaces/PubsubTransporter.js +3 -0
  54. package/build/src/interfaces/PubsubTransporter.js.map +1 -0
  55. package/build/src/interfaces/RemoteService.d.ts +12 -19
  56. package/build/src/interfaces/RpcTransporter.d.ts +30 -0
  57. package/build/src/interfaces/RpcTransporter.js +3 -0
  58. package/build/src/interfaces/RpcTransporter.js.map +1 -0
  59. package/build/src/interfaces/SpiderMeshNode.d.ts +14 -19
  60. package/build/tsconfig.tsbuildinfo +1 -0
  61. package/package.json +7 -8
  62. package/tsconfig.json +2 -2
  63. package/build/src/Encoder.d.ts +0 -8
  64. package/build/src/Encoder.js +0 -76
  65. package/build/src/Encoder.js.map +0 -1
  66. package/build/src/RPCOptions.d.ts +0 -11
  67. package/build/src/RPCOptions.js +0 -11
  68. package/build/src/RPCOptions.js.map +0 -1
  69. package/build/src/const.d.ts +0 -6
  70. package/build/src/const.js +0 -8
  71. package/build/src/const.js.map +0 -1
  72. package/build/src/decorators/CustomSpiderMesh.d.ts +0 -6
  73. package/build/src/decorators/CustomSpiderMesh.js +0 -9
  74. package/build/src/decorators/CustomSpiderMesh.js.map +0 -1
  75. package/build/src/decorators/DeepProxy.d.ts +0 -7
  76. package/build/src/decorators/DeepProxy.js +0 -24
  77. package/build/src/decorators/DeepProxy.js.map +0 -1
  78. package/build/src/decorators/ListenEvent.d.ts +0 -19
  79. package/build/src/decorators/ListenEvent.js +0 -23
  80. package/build/src/decorators/ListenEvent.js.map +0 -1
  81. package/build/src/interfaces/SpiderMeshTransporter.d.ts +0 -33
  82. package/build/src/interfaces/SpiderMeshTransporter.js +0 -2
  83. package/build/src/interfaces/SpiderMeshTransporter.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ export class PubsubTransporter {
2
+ }
3
+ //# sourceMappingURL=PubsubTransporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PubsubTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/PubsubTransporter.ts"],"names":[],"mappings":"AAUA,MAAM,OAAgB,iBAAiB;CAItC"}
@@ -1,28 +1,21 @@
1
- import { Observable } from "rxjs";
2
- import { RPCOptions } from "../RPCOptions.js";
1
+ import { Observable, Subject } from "rxjs";
3
2
  import { SpiderMeshNode } from "./SpiderMeshNode.js";
3
+ import { RpcOptions } from "./RpcTransporter.js";
4
4
  export type RemoteService<T = {
5
5
  [key: string]: any;
6
- }> = ({
7
- $wait_service_online: (fn?: (nodes: SpiderMeshNode[]) => boolean | Promise<boolean>) => Promise<void>;
8
- $safe_mode: () => {
9
- [K in keyof T as (T[K] extends (...args: any) => any ? K : '')]: T[K] extends (...args: any) => any ? ((...args: Parameters<T[K]>) => [
10
- Error | null,
11
- Awaited<ReturnType<T[K]>> | null
12
- ]) : null;
13
- };
6
+ }, Fallback = null> = ({
7
+ wait$: (fn?: (nodes: SpiderMeshNode[]) => boolean | Promise<boolean>) => Promise<void>;
8
+ set: <F>(options: Partial<RpcOptions<F>>) => RemoteService<T, F>;
9
+ nodes: SpiderMeshNode[];
10
+ watch$: () => Subject<void>;
14
11
  } & {
15
- [K in keyof T as (T[K] extends (...args: any) => any ? K : '')]: T[K] extends (...args: any) => any ? ((...args: Parameters<T[K]>) => ReturnType<T[K]> extends (Observable<any> | Promise<Observable<any>>) ? Awaited<ReturnType<T[K]>> : Promise<Awaited<ReturnType<T[K]>>>) : null;
12
+ [K in keyof T as (T[K] extends (...args: any) => any ? K : '')]: T[K] extends (...args: any) => any ? ((...args: Parameters<T[K]>) => ReturnType<T[K]> extends (Observable<any> | Promise<Observable<any>>) ? Awaited<ReturnType<T[K]> | Fallback> : Promise<Awaited<ReturnType<T[K]> | Fallback>>) : null;
16
13
  } & {
17
- [key in keyof RPCOptions as `${key}`]: (value: RPCOptions[key]) => RemoteService<T>;
18
- } & {
19
- $list_nodes: () => SpiderMeshNode[];
20
- } & {
21
- [key in keyof T as (key extends string ? `$batch_${key}` : string)]: T[key] extends ((...args: any) => any) ? ((...args: Parameters<T[key]>) => Observable<{
14
+ [key in keyof T as (key extends string ? `__batch__${key}` : string)]: T[key] extends ((...args: any) => any) ? ((...args: Parameters<T[key]>) => Observable<{
22
15
  node: SpiderMeshNode;
23
16
  data: Awaited<ReturnType<T[key]>>;
24
- error: any;
17
+ } | {
18
+ node: SpiderMeshNode;
19
+ error: Error;
25
20
  }>) : T[key];
26
- } & {
27
- $watch: () => Observable<SpiderMeshNode>;
28
21
  });
@@ -0,0 +1,30 @@
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(nodes$: Observable<{
26
+ nodes: Map<string, SpiderMeshNode>;
27
+ last_updated_node_id: string;
28
+ }>): Observable<RpcEvent>;
29
+ abstract rpc<T>(r: RpcOptions<T>, node: SpiderMeshNode, force: boolean): Observable<T>;
30
+ }
@@ -0,0 +1,3 @@
1
+ export class RpcTransporter {
2
+ }
3
+ //# sourceMappingURL=RpcTransporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RpcTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/RpcTransporter.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAgB,cAAc;CAMnC"}
@@ -1,23 +1,18 @@
1
- export type ServiceMetadata = {
2
- [key: string]: string | number | boolean;
3
- };
4
- export type SpiderMeshNodeMetadata = {
5
- node_id: string;
6
- local_transporter_id: string;
7
- remote_transporter_id: string;
8
- node_version: string;
1
+ export type SpiderMeshNode = {
2
+ ips: string[];
3
+ host: string;
9
4
  namespace: string;
10
- public_ip?: string;
11
- last_online: number;
12
- online: boolean;
5
+ version: number;
6
+ node_id: string;
7
+ online?: boolean;
8
+ topics: string[];
13
9
  services: {
14
- [service_id: string]: {
15
- metadata: any;
16
- };
10
+ [name: string]: any;
11
+ };
12
+ nodes: {
13
+ [node_id: string]: number;
14
+ };
15
+ transporters: {
16
+ [name: string]: any;
17
17
  };
18
- linked: string[];
19
- isolated_nodes: string[];
20
- isolated: boolean;
21
- metadata: ServiceMetadata;
22
18
  };
23
- export type SpiderMeshNode = SpiderMeshNodeMetadata;
@@ -0,0 +1 @@
1
+ {"root":["../const.ts","../env.d.ts","../src/spidermesh.ts","../src/index.ts","../src/decorators/beforemicroserviceonline.ts","../src/decorators/limitconcurrentrunning.ts","../src/decorators/microservice.ts","../src/decorators/nestjsexposemicroservice.ts","../src/decorators/nestjslinkevent.ts","../src/decorators/nestjslinkmicroservice.ts","../src/helpers/limitconcurrency.ts","../src/helpers/microserviceexception.ts","../src/helpers/microservicenotfound.ts","../src/helpers/microserviceofflineexception.ts","../src/helpers/microservicerpctimeout.ts","../src/helpers/randomuuid.ts","../src/helpers/sleep.ts","../src/interfaces/discoverytransporter.ts","../src/interfaces/pubsubtransporter.ts","../src/interfaces/remoteservice.ts","../src/interfaces/rpctransporter.ts","../src/interfaces/spidermeshnode.ts"],"version":"5.8.2"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spider-mesh/core",
3
3
  "type": "module",
4
- "version": "1.0.152",
4
+ "version": "2.0.1",
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",
@@ -14,11 +14,12 @@
14
14
  "yarn.lock"
15
15
  ],
16
16
  "devDependencies": {
17
- "@types/node": "^18.16.0",
17
+ "@types/node": "^22.10.3",
18
18
  "@types/reflect-metadata": "^0.1.0",
19
19
  "@types/uuid": "^10.0.0",
20
20
  "ts-node": "^10.9.1",
21
- "typescript": "^5.0.4"
21
+ "tsx": "^4.19.2",
22
+ "typescript": "^5.7.2"
22
23
  },
23
24
  "exports": {
24
25
  ".": {
@@ -30,19 +31,17 @@
30
31
  },
31
32
  "scripts": {
32
33
  "dev": "clear; node --no-warnings --es-module-specifier-resolution=node --experimental-specifier-resolution=node --loader ts-node/esm ",
33
- "build": "tsc -v; rm -rf build && tsc -b tsconfig.json"
34
+ "build": "tsc -v && tsc -b tsconfig.json"
34
35
  },
35
36
  "author": "Duong Van Ba",
36
37
  "license": "ISC",
37
38
  "dependencies": {
38
- "axios": "^1.7.5",
39
39
  "buffer": "^6.0.3",
40
- "frame-stream": "^4.0.0",
41
40
  "react-native-uuid": "^2.0.2",
42
- "rxjs": "^7.8.1",
41
+ "rxjs": "^7.8.2",
43
42
  "uuid": "^10.0.0"
44
43
  },
45
44
  "browser": {
46
45
  "crypto": false
47
46
  }
48
- }
47
+ }
package/tsconfig.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "baseUrl": ".",
13
13
  "moduleResolution": "NodeNext",
14
14
  "strictPropertyInitialization": false ,
15
+ "allowImportingTsExtensions": false,
15
16
  "outDir": "./build",
16
17
  "incremental": false,
17
18
  "useDefineForClassFields": true,
@@ -32,7 +33,6 @@
32
33
  "out",
33
34
  "src/schema.ts",
34
35
  "bin",
35
- "./build/**/*",
36
- "tests"
36
+ "./build/**/*"
37
37
  ]
38
38
  }
@@ -1,8 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- export type Encodable = string | number | boolean | undefined | null | Buffer | Encodable[] | {
3
- [key: string]: Encodable;
4
- };
5
- export declare const Encoder: {
6
- encode: <T extends Encodable>(content: T) => Buffer;
7
- decode: <T_1>(raw: Buffer) => T_1 | undefined;
8
- };
@@ -1,76 +0,0 @@
1
- if (typeof Buffer == 'undefined') {
2
- Buffer = require('buffer').Buffer;
3
- }
4
- export const Encoder = {
5
- encode: (content) => {
6
- const buffers = [];
7
- if (content == undefined) {
8
- const buffer = Buffer.alloc(4);
9
- buffer.writeInt32LE(-1);
10
- return buffer;
11
- }
12
- function replacer(key, value) {
13
- const originalObject = this[key];
14
- if (originalObject instanceof Map)
15
- return {
16
- __$$__dataType: 'Map',
17
- __$$__value: Array.from(originalObject.entries()),
18
- };
19
- if (originalObject instanceof Set)
20
- return {
21
- __$$__dataType: 'Set',
22
- __$$__value: Array.from(originalObject.values()),
23
- };
24
- if (originalObject instanceof Buffer) {
25
- buffers.push(originalObject);
26
- return {
27
- __$$__dataType: 'Buffer',
28
- __index: buffers.length - 1
29
- };
30
- }
31
- return value;
32
- }
33
- const metadata = JSON.stringify(content, replacer);
34
- const buffers_count = Buffer.alloc(4);
35
- buffers_count.writeUInt32LE(buffers.length, 0);
36
- const buffers_list = buffers.map(b => {
37
- const length = Buffer.alloc(4);
38
- length.writeUInt32LE(b.length);
39
- return [length, b];
40
- }).flat(2);
41
- const data = Buffer.from(metadata, 'utf-8');
42
- const buffer = Buffer.concat([buffers_count, ...buffers_list, data]);
43
- return buffer;
44
- },
45
- decode: (raw) => {
46
- const buffers = [];
47
- const length = raw.readUInt32LE(0);
48
- if (length > raw.length || length < 0)
49
- return;
50
- let index = 4;
51
- for (let i = 0; i < length; i++) {
52
- const blength = raw.readUint32LE(index);
53
- index += 4;
54
- const buff = raw.slice(index, index + blength);
55
- buffers.push(buff);
56
- index += blength;
57
- }
58
- const metadata = raw.toString('utf-8', index);
59
- function receiver(key, value) {
60
- if (typeof value === 'object' && value !== null) {
61
- if (value.__$$__dataType === 'Map') {
62
- return new Map(value.__$$__value);
63
- }
64
- if (value.__$$__dataType === 'Set') {
65
- return new Set(value.__$$__value);
66
- }
67
- if (value.__$$__dataType == 'Buffer') {
68
- return buffers[value.__index];
69
- }
70
- }
71
- return value;
72
- }
73
- return JSON.parse(metadata, receiver);
74
- }
75
- };
76
- //# sourceMappingURL=Encoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Encoder.js","sourceRoot":"","sources":["../../src/Encoder.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export type RPCOptions<T = any> = {
2
- $node_id: string;
3
- $timeout: number;
4
- $forgot: boolean;
5
- $fallback: T;
6
- $retry: number;
7
- $retry_delay: number;
8
- $safe_mode: boolean;
9
- $ip: string;
10
- };
11
- export declare const RPCOptionsList: Set<string>;
@@ -1,11 +0,0 @@
1
- export const RPCOptionsList = new Set([
2
- '$node_id',
3
- '$timeout',
4
- '$forgot',
5
- '$fallback',
6
- '$retry',
7
- '$retry_delay',
8
- '$safe_mode',
9
- '$ip'
10
- ]);
11
- //# sourceMappingURL=RPCOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RPCOptions.js","sourceRoot":"","sources":["../../src/RPCOptions.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAClC,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,QAAQ;IACR,cAAc;IACd,YAAY;IACZ,KAAK;CACR,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- export declare const NAMEPSACE: string;
2
- export declare const NODE_ID: any;
3
- export declare const UDP_BROADCAST_ADDRESS: string;
4
- export declare const UDP_BROADCAST_PORT: number;
5
- export declare const UDP_SECRET_KEY: string;
6
- export declare const BROADCAST_INTERVAL: number;
@@ -1,8 +0,0 @@
1
- import { randomUUID } from "./helpers/randomUUID.js";
2
- export const NAMEPSACE = process.env.SPIDERMESH_NAMESPACE || 'default';
3
- export const NODE_ID = process.env.SPIDERMESH_NODE_ID || randomUUID();
4
- export const UDP_BROADCAST_ADDRESS = process.env.SPIDERMESH_UDP_BROADCAST_ADDRESS || '';
5
- export const UDP_BROADCAST_PORT = Number(process.env.SPIDERMESH_UDP_BROADCAST_PORT || 10000);
6
- export const UDP_SECRET_KEY = process.env.SPIDERMESH_UDP_BROADCAST_PORT || 'default-spider-mesh-secret-key';
7
- export const BROADCAST_INTERVAL = Number(process.env.SPIDERMESH_BROADCAST_INTERVAL || 0);
8
- //# 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,yBAAyB,CAAA;AAGpD,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAA;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,EAAE,CAAA;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE,CAAA;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,KAAK,CAAC,CAAA;AAC5F,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,gCAAgC,CAAA;AAC3G,MAAM,CAAC,MAAM,kBAAkB,GAAE,MAAM,CAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- import { ServiceMetadata } from "../interfaces/SpiderMeshNode.js";
2
- import { SpiderMesh } from "../SpiderMesh.js";
3
- export declare const CustomSpiderMesh: (fn: () => Promise<ServiceMetadata>) => {
4
- provide: symbol;
5
- useFactory: () => Promise<SpiderMesh>;
6
- };
@@ -1,9 +0,0 @@
1
- import { SpiderMesh } from "../SpiderMesh.js";
2
- export const CustomSpiderMesh = (fn) => ({
3
- provide: Symbol.for('NestJSInjectMetadata'),
4
- useFactory: async () => {
5
- const m = await fn();
6
- return new SpiderMesh(m);
7
- }
8
- });
9
- //# sourceMappingURL=CustomSpiderMesh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomSpiderMesh.js","sourceRoot":"","sources":["../../../src/decorators/CustomSpiderMesh.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAkC,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC3C,UAAU,EAAE,KAAK,IAAI,EAAE;QACnB,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,CAAA;QACpB,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;CACJ,CAAC,CAAA"}
@@ -1,7 +0,0 @@
1
- export declare class DeepProxy {
2
- #private;
3
- private option_parser;
4
- private handler;
5
- constructor(option_parser: (method: string) => boolean, handler: (method: string, options: any) => any);
6
- nest(): this;
7
- }
@@ -1,24 +0,0 @@
1
- export class DeepProxy {
2
- option_parser;
3
- handler;
4
- #options = {};
5
- constructor(option_parser, handler) {
6
- this.option_parser = option_parser;
7
- this.handler = handler;
8
- }
9
- nest() {
10
- return new Proxy(this, {
11
- get: (_, method) => {
12
- if (method == 'then')
13
- return null;
14
- if (this.option_parser(method))
15
- return (value = true) => {
16
- this.#options[method] = value;
17
- return this.nest();
18
- };
19
- return this.handler(method, this.#options);
20
- }
21
- });
22
- }
23
- }
24
- //# sourceMappingURL=DeepProxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeepProxy.js","sourceRoot":"","sources":["../../../src/decorators/DeepProxy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,SAAS;IAKN;IACA;IAJZ,QAAQ,GAA2B,EAAE,CAAA;IAErC,YACY,aAA0C,EAC1C,OAA8C;QAD9C,kBAAa,GAAb,aAAa,CAA6B;QAC1C,YAAO,GAAP,OAAO,CAAuC;IACtD,CAAC;IAGL,IAAI;QACA,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACnB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAc,EAAE,EAAE;gBAEvB,IAAI,MAAM,IAAI,MAAM;oBAAE,OAAO,IAAI,CAAA;gBAEjC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBAAE,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,EAAE;wBACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACtB,CAAC,CAAA;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9C,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -1,19 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { SpiderMeshTransporterEvent } from '../interfaces/SpiderMeshTransporter.js';
3
- import { Encodable } from '../Encoder.js';
4
- import { SpiderMesh } from '../SpiderMesh.js';
5
- export type EventMetadata = {
6
- method: string;
7
- event: string;
8
- buffer_ms?: number;
9
- };
10
- export type EventHub<T extends Encodable = Encodable> = {
11
- publish: (data: T) => void;
12
- listen: () => Observable<SpiderMeshTransporterEvent<T>>;
13
- };
14
- export declare const ListenEvent: <T extends Encodable = Encodable>(factory: new () => EventHub<T>) => (target: Object, method: string, descriptor: TypedPropertyDescriptor<(event: SpiderMeshTransporterEvent<T>, sm?: SpiderMesh) => any>) => void;
15
- export declare const ListenEventBatch: <T extends Encodable = Encodable>(factory: new () => EventHub<T>, buffer_ms: number) => (target: Object, method: string, descriptor: TypedPropertyDescriptor<(event: SpiderMeshTransporterEvent<T>[], sm?: SpiderMesh) => any>) => void;
16
- export declare const listEventSubscribers: (target: any) => EventMetadata[];
17
- export declare function createSpiderMeshEvent<T extends Encodable = Encodable>(): new () => EventHub<T>;
18
- export type EventDataType<T extends EventHub<any>> = Parameters<T['publish']>[0];
19
- export type E<T extends EventHub<any>> = SpiderMeshTransporterEvent<EventDataType<T>>;
@@ -1,23 +0,0 @@
1
- const key = Symbol.for('SubscribeEvent');
2
- export const ListenEvent = (factory) => (target, method, descriptor) => {
3
- const event = factory.name;
4
- Object.defineProperty(descriptor.value, key, { value: { method, event } });
5
- };
6
- export const ListenEventBatch = (factory, buffer_ms) => (target, method, descriptor) => {
7
- const event = factory.name;
8
- Object.defineProperty(descriptor.value, key, { value: { method, event, buffer_ms } });
9
- };
10
- export const listEventSubscribers = (target) => {
11
- const methods = [];
12
- for (let f = target; f != null; f = Object.getPrototypeOf(f)) {
13
- for (const method of Object.getOwnPropertyNames(f)) {
14
- f[method]?.[key] && methods.push(f[method]?.[key]);
15
- }
16
- }
17
- return methods;
18
- };
19
- export function createSpiderMeshEvent() {
20
- return class {
21
- };
22
- }
23
- //# sourceMappingURL=ListenEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListenEvent.js","sourceRoot":"","sources":["../../../src/decorators/ListenEvent.ts"],"names":[],"mappings":"AAMA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAcxC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAkC,OAA+B,EAAE,EAAE,CAAC,CAC7F,MAAc,EACd,MAAa,EACb,UAAmG,EACrG,EAAE;IACA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;IAC1B,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAmB,EAAE,CAAC,CAAA;AAC/F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAkC,OAA+B,EAAE,SAAiB,EAAE,EAAE,CAAC,CACrH,MAAc,EACd,MAAa,EACb,UAA0G,EAC5G,EAAE;IACA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;IAC1B,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAmB,EAAE,CAAC,CAAA;AAC1G,CAAC,CAAA;AAMD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAW,EAAE,EAAE;IAChD,MAAM,OAAO,GAAG,EAAqB,CAAA;IACrC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QAC1D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;YAChD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;SACrD;KACJ;IACD,OAAO,OAAO,CAAA;AAClB,CAAC,CAAA;AAKD,MAAM,UAAU,qBAAqB;IACjC,OAAO;KAEN,CAAA;AACL,CAAC"}
@@ -1,33 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { Encodable } from "../Encoder.js";
3
- export type SpiderMeshTransporterEventMetadata = {
4
- [key: string]: Encodable;
5
- };
6
- export type SpiderMeshTransporterEvent<T extends Encodable = Encodable, Metadata = SpiderMeshTransporterEventMetadata> = {
7
- id: string;
8
- topic: string;
9
- created_at: number;
10
- received_at: number;
11
- payload: T;
12
- metadata: Metadata;
13
- sti: string;
14
- };
15
- export type PublishMetadata<T extends Encodable = Encodable, Metadata = SpiderMeshTransporterEventMetadata> = {
16
- event: string;
17
- payload: T;
18
- metadata: Metadata;
19
- rti?: string;
20
- };
21
- export type TcpNodeStatus = {
22
- remote_transporter_id: string;
23
- online: boolean;
24
- };
25
- export type SpiderMeshTransporter = {
26
- readonly transporter_id: string;
27
- $nodes_status: Observable<TcpNodeStatus>;
28
- listen: <T extends Encodable, Metadata extends SpiderMeshTransporterEventMetadata>(topic: string) => Observable<SpiderMeshTransporterEvent<T, Metadata>>;
29
- publish<T extends Encodable, Metadata extends SpiderMeshTransporterEventMetadata>(config: PublishMetadata<T, Metadata>): Promise<void>;
30
- };
31
- export type SpiderMeshTransporterFactory = {
32
- new (...args: any[]): SpiderMeshTransporter;
33
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SpiderMeshTransporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpiderMeshTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/SpiderMeshTransporter.ts"],"names":[],"mappings":""}