@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.
- package/build/const.d.ts +1 -0
- package/build/const.js +2 -0
- package/build/const.js.map +1 -0
- package/build/src/SpiderMesh.d.ts +25 -70
- package/build/src/SpiderMesh.js +308 -420
- package/build/src/SpiderMesh.js.map +1 -1
- package/build/src/decorators/BeforeMicroserviceOnline.d.ts +1 -2
- package/build/src/decorators/BeforeMicroserviceOnline.js +1 -1
- package/build/src/decorators/BeforeMicroserviceOnline.js.map +1 -1
- package/build/src/decorators/LimitConcurrentRunning.d.ts +2 -3
- package/build/src/decorators/LimitConcurrentRunning.js +2 -27
- package/build/src/decorators/LimitConcurrentRunning.js.map +1 -1
- package/build/src/decorators/Microservice.d.ts +10 -7
- package/build/src/decorators/Microservice.js +13 -12
- package/build/src/decorators/Microservice.js.map +1 -1
- package/build/src/decorators/NestJSExposeMicroservice.d.ts +1 -2
- package/build/src/decorators/NestJSExposeMicroservice.js +9 -7
- package/build/src/decorators/NestJSExposeMicroservice.js.map +1 -1
- package/build/src/decorators/NestJSLinkEvent.d.ts +5 -16
- package/build/src/decorators/NestJSLinkEvent.js +2 -2
- package/build/src/decorators/NestJSLinkEvent.js.map +1 -1
- package/build/src/decorators/NestJSLinkMicroservice.d.ts +2 -2
- package/build/src/decorators/NestJSLinkMicroservice.js +2 -2
- package/build/src/decorators/NestJSLinkMicroservice.js.map +1 -1
- package/build/src/helpers/LimitConcurrency.d.ts +3 -0
- package/build/src/helpers/LimitConcurrency.js +34 -0
- package/build/src/helpers/LimitConcurrency.js.map +1 -0
- package/build/src/helpers/MicroserviceException.d.ts +8 -0
- package/build/src/helpers/MicroserviceException.js +9 -0
- package/build/src/helpers/MicroserviceException.js.map +1 -0
- package/build/src/helpers/MicroserviceNotFound copy.d.ts +5 -0
- package/build/src/helpers/MicroserviceNotFound copy.js +8 -0
- package/build/src/helpers/MicroserviceNotFound copy.js.map +1 -0
- package/build/src/helpers/MicroserviceNotFound.d.ts +5 -0
- package/build/src/helpers/MicroserviceNotFound.js +8 -0
- package/build/src/helpers/MicroserviceNotFound.js.map +1 -0
- package/build/src/helpers/MicroserviceOfflineException.d.ts +5 -0
- package/build/src/helpers/MicroserviceOfflineException.js +8 -0
- package/build/src/helpers/MicroserviceOfflineException.js.map +1 -0
- package/build/src/helpers/MicroserviceRpcTimeout.d.ts +5 -0
- package/build/src/helpers/MicroserviceRpcTimeout.js +8 -0
- package/build/src/helpers/MicroserviceRpcTimeout.js.map +1 -0
- package/build/src/helpers/randomUUID.js.map +1 -1
- package/build/src/helpers/sleep.js +1 -1
- package/build/src/helpers/sleep.js.map +1 -1
- package/build/src/index.d.ts +14 -15
- package/build/src/index.js +14 -12
- package/build/src/index.js.map +1 -1
- package/build/src/interfaces/DiscoveryTransporter.d.ts +5 -0
- package/build/src/interfaces/DiscoveryTransporter.js +3 -0
- package/build/src/interfaces/DiscoveryTransporter.js.map +1 -0
- package/build/src/interfaces/PubsubTransporter.d.ts +10 -0
- package/build/src/interfaces/PubsubTransporter.js +3 -0
- package/build/src/interfaces/PubsubTransporter.js.map +1 -0
- package/build/src/interfaces/RemoteService.d.ts +12 -19
- package/build/src/interfaces/RpcTransporter.d.ts +30 -0
- package/build/src/interfaces/RpcTransporter.js +3 -0
- package/build/src/interfaces/RpcTransporter.js.map +1 -0
- package/build/src/interfaces/SpiderMeshNode.d.ts +14 -19
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +7 -8
- package/tsconfig.json +2 -2
- package/build/src/Encoder.d.ts +0 -8
- package/build/src/Encoder.js +0 -76
- package/build/src/Encoder.js.map +0 -1
- package/build/src/RPCOptions.d.ts +0 -11
- package/build/src/RPCOptions.js +0 -11
- package/build/src/RPCOptions.js.map +0 -1
- package/build/src/const.d.ts +0 -6
- package/build/src/const.js +0 -8
- package/build/src/const.js.map +0 -1
- package/build/src/decorators/CustomSpiderMesh.d.ts +0 -6
- package/build/src/decorators/CustomSpiderMesh.js +0 -9
- package/build/src/decorators/CustomSpiderMesh.js.map +0 -1
- package/build/src/decorators/DeepProxy.d.ts +0 -7
- package/build/src/decorators/DeepProxy.js +0 -24
- package/build/src/decorators/DeepProxy.js.map +0 -1
- package/build/src/decorators/ListenEvent.d.ts +0 -19
- package/build/src/decorators/ListenEvent.js +0 -23
- package/build/src/decorators/ListenEvent.js.map +0 -1
- package/build/src/interfaces/SpiderMeshTransporter.d.ts +0 -33
- package/build/src/interfaces/SpiderMeshTransporter.js +0 -2
- package/build/src/interfaces/SpiderMeshTransporter.js.map +0 -1
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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]
|
|
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
|
|
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
|
-
|
|
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 @@
|
|
|
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
|
|
2
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
online
|
|
5
|
+
version: number;
|
|
6
|
+
node_id: string;
|
|
7
|
+
online?: boolean;
|
|
8
|
+
topics: string[];
|
|
13
9
|
services: {
|
|
14
|
-
[
|
|
15
|
-
|
|
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": "
|
|
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": "^
|
|
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
|
-
"
|
|
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
|
|
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.
|
|
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
|
}
|
package/build/src/Encoder.d.ts
DELETED
|
@@ -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
|
-
};
|
package/build/src/Encoder.js
DELETED
|
@@ -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
|
package/build/src/Encoder.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Encoder.js","sourceRoot":"","sources":["../../src/Encoder.ts"],"names":[],"mappings":"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"}
|
package/build/src/RPCOptions.js
DELETED
|
@@ -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"}
|
package/build/src/const.d.ts
DELETED
|
@@ -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;
|
package/build/src/const.js
DELETED
|
@@ -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
|
package/build/src/const.js.map
DELETED
|
@@ -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,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,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpiderMeshTransporter.js","sourceRoot":"","sources":["../../../src/interfaces/SpiderMeshTransporter.ts"],"names":[],"mappings":""}
|