@vworlds/vecs-client 1.0.22 → 1.0.24
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/{vecs-client/src/client_world.d.ts → client_world.d.ts} +1 -7
- package/{vecs-client/src/client_world.js → client_world.js} +4 -15
- package/client_world.js.map +1 -0
- package/diff_buffer.js.map +1 -0
- package/{vecs-client/src/index.d.ts → index.d.ts} +1 -1
- package/index.js.map +1 -0
- package/package.json +8 -11
- package/node_modules/@vworlds/vecs-protocol/package.json +0 -14
- package/node_modules/@vworlds/vecs-protocol/src/cid.d.ts +0 -15
- package/node_modules/@vworlds/vecs-protocol/src/cid.js +0 -56
- package/node_modules/@vworlds/vecs-protocol/src/cid.js.map +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/index.d.ts +0 -6
- package/node_modules/@vworlds/vecs-protocol/src/index.js +0 -6
- package/node_modules/@vworlds/vecs-protocol/src/index.js.map +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/messages.d.ts +0 -43
- package/node_modules/@vworlds/vecs-protocol/src/messages.js +0 -149
- package/node_modules/@vworlds/vecs-protocol/src/messages.js.map +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/network_world.d.ts +0 -18
- package/node_modules/@vworlds/vecs-protocol/src/network_world.js +0 -93
- package/node_modules/@vworlds/vecs-protocol/src/network_world.js.map +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/rpc.d.ts +0 -36
- package/node_modules/@vworlds/vecs-protocol/src/rpc.js +0 -140
- package/node_modules/@vworlds/vecs-protocol/src/rpc.js.map +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/transport.d.ts +0 -21
- package/node_modules/@vworlds/vecs-protocol/src/transport.js +0 -2
- package/node_modules/@vworlds/vecs-protocol/src/transport.js.map +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/world_path.d.ts +0 -1
- package/node_modules/@vworlds/vecs-protocol/src/world_path.js +0 -4
- package/node_modules/@vworlds/vecs-protocol/src/world_path.js.map +0 -1
- package/vecs-client/src/client_world.js.map +0 -1
- package/vecs-client/src/diff_buffer.js.map +0 -1
- package/vecs-client/src/index.js.map +0 -1
- package/vecs-protocol/src/cid.d.ts +0 -15
- package/vecs-protocol/src/cid.js +0 -56
- package/vecs-protocol/src/cid.js.map +0 -1
- package/vecs-protocol/src/index.d.ts +0 -6
- package/vecs-protocol/src/index.js +0 -6
- package/vecs-protocol/src/index.js.map +0 -1
- package/vecs-protocol/src/messages.d.ts +0 -43
- package/vecs-protocol/src/messages.js +0 -149
- package/vecs-protocol/src/messages.js.map +0 -1
- package/vecs-protocol/src/network_world.d.ts +0 -18
- package/vecs-protocol/src/network_world.js +0 -93
- package/vecs-protocol/src/network_world.js.map +0 -1
- package/vecs-protocol/src/rpc.d.ts +0 -36
- package/vecs-protocol/src/rpc.js +0 -140
- package/vecs-protocol/src/rpc.js.map +0 -1
- package/vecs-protocol/src/transport.d.ts +0 -21
- package/vecs-protocol/src/transport.js +0 -2
- package/vecs-protocol/src/transport.js.map +0 -1
- package/vecs-protocol/src/world_path.d.ts +0 -1
- package/vecs-protocol/src/world_path.js +0 -4
- package/vecs-protocol/src/world_path.js.map +0 -1
- /package/{vecs-client/src/diff_buffer.d.ts → diff_buffer.d.ts} +0 -0
- /package/{vecs-client/src/diff_buffer.js → diff_buffer.js} +0 -0
- /package/{vecs-client/src/index.js → index.js} +0 -0
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { World, } from "@vworlds/vecs";
|
|
2
|
-
import { cid_pack, setLocalComponentMin } from "./cid.js";
|
|
3
|
-
const DEFAULT_ENTITY_ID_START = 1000;
|
|
4
|
-
const MODULE_ID_RANGE_SIZE = 100;
|
|
5
|
-
let configuredLocalComponentMin;
|
|
6
|
-
export class NetworkWorld extends World {
|
|
7
|
-
constructor(options = {}) {
|
|
8
|
-
const networkComponents = options.networkComponents ?? [];
|
|
9
|
-
const localComponentMin = getLocalComponentMinFor(networkComponents.length);
|
|
10
|
-
configureLocalComponentMin(localComponentMin);
|
|
11
|
-
super({
|
|
12
|
-
idPools: buildNetworkIdPools(localComponentMin, options),
|
|
13
|
-
});
|
|
14
|
-
this._networkComponentsByType = new Map();
|
|
15
|
-
this.localComponentMin = localComponentMin;
|
|
16
|
-
this.networkComponents = networkComponents.map((Class, index) => {
|
|
17
|
-
const type = index + 1;
|
|
18
|
-
cid_pack(0, type);
|
|
19
|
-
this.component(Class, type);
|
|
20
|
-
const registered = { Class, type };
|
|
21
|
-
this._networkComponentsByType.set(type, registered);
|
|
22
|
-
return registered;
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
getNetworkComponent(type) {
|
|
26
|
-
return this._networkComponentsByType.get(type);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function configureLocalComponentMin(localComponentMin) {
|
|
30
|
-
if (configuredLocalComponentMin === undefined) {
|
|
31
|
-
configuredLocalComponentMin = localComponentMin;
|
|
32
|
-
setLocalComponentMin(localComponentMin);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (configuredLocalComponentMin !== localComponentMin) {
|
|
36
|
-
throw new Error(`NetworkWorld localComponentMin ${localComponentMin} does not match existing value ${configuredLocalComponentMin}`);
|
|
37
|
-
}
|
|
38
|
-
setLocalComponentMin(localComponentMin);
|
|
39
|
-
}
|
|
40
|
-
function buildNetworkIdPools(localComponentMin, options) {
|
|
41
|
-
const entityIdStart = options.entityIdStart ?? DEFAULT_ENTITY_ID_START;
|
|
42
|
-
validateEntityStart("entityIdStart", entityIdStart);
|
|
43
|
-
if (entityIdStart <= localComponentMin) {
|
|
44
|
-
throw new Error("entityIdStart must leave room for local component ids");
|
|
45
|
-
}
|
|
46
|
-
const moduleIdStart = entityIdStart - MODULE_ID_RANGE_SIZE;
|
|
47
|
-
if (moduleIdStart <= localComponentMin) {
|
|
48
|
-
throw new Error("entityIdStart must leave room for local component and module ids");
|
|
49
|
-
}
|
|
50
|
-
const pools = [
|
|
51
|
-
{ name: "network", min: 1, max: localComponentMin - 1 },
|
|
52
|
-
{ name: "component", min: localComponentMin, max: moduleIdStart - 1 },
|
|
53
|
-
{ name: "module", min: moduleIdStart, max: entityIdStart - 1 },
|
|
54
|
-
];
|
|
55
|
-
if (options.localEntityIdStart === undefined) {
|
|
56
|
-
pools.push({ name: "entity", min: entityIdStart });
|
|
57
|
-
return pools;
|
|
58
|
-
}
|
|
59
|
-
const localEntityIdStart = options.localEntityIdStart;
|
|
60
|
-
validateEntityStart("localEntityIdStart", localEntityIdStart);
|
|
61
|
-
if (localEntityIdStart <= entityIdStart) {
|
|
62
|
-
throw new Error("localEntityIdStart must be greater than entityIdStart");
|
|
63
|
-
}
|
|
64
|
-
const networkEntityPool = {
|
|
65
|
-
name: "network_entity",
|
|
66
|
-
min: entityIdStart,
|
|
67
|
-
max: localEntityIdStart - 1,
|
|
68
|
-
};
|
|
69
|
-
if (options.networkEntityReuseWaitFrames !== undefined) {
|
|
70
|
-
networkEntityPool.reuseWaitFrames = options.networkEntityReuseWaitFrames;
|
|
71
|
-
}
|
|
72
|
-
pools.push(networkEntityPool, { name: "entity", min: localEntityIdStart });
|
|
73
|
-
return pools;
|
|
74
|
-
}
|
|
75
|
-
function getLocalComponentMinFor(networkComponentCount) {
|
|
76
|
-
return nextPowerOfTwo(Math.max(2, networkComponentCount + 1));
|
|
77
|
-
}
|
|
78
|
-
function nextPowerOfTwo(value) {
|
|
79
|
-
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
80
|
-
throw new Error("Network component count must be a positive safe integer");
|
|
81
|
-
}
|
|
82
|
-
let power = 1;
|
|
83
|
-
while (power < value) {
|
|
84
|
-
power *= 2;
|
|
85
|
-
}
|
|
86
|
-
return power;
|
|
87
|
-
}
|
|
88
|
-
function validateEntityStart(name, value) {
|
|
89
|
-
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
90
|
-
throw new Error(`${name} must be a positive safe integer`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=network_world.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Decoder, Encoder, type IEncodable } from "@vworlds/vecs-wire";
|
|
2
|
-
export declare const RPC_RESPONSE_ID = 0;
|
|
3
|
-
export declare const FIRST_USER_RPC_ID = 101;
|
|
4
|
-
export declare class RPC implements IEncodable {
|
|
5
|
-
rpcId: number;
|
|
6
|
-
callId: number;
|
|
7
|
-
params: unknown[];
|
|
8
|
-
error: number;
|
|
9
|
-
message: string;
|
|
10
|
-
constructor(values?: Partial<RPC>);
|
|
11
|
-
wireEncode(encoder: Encoder): void;
|
|
12
|
-
static wireDecode(decoder: Decoder): RPC;
|
|
13
|
-
}
|
|
14
|
-
export type RPCHandler = (params: unknown[], request: RPC) => Promise<unknown[] | unknown> | unknown[] | unknown;
|
|
15
|
-
export declare const RPC_TIMEOUT_ERROR: {
|
|
16
|
-
error: number;
|
|
17
|
-
message: string;
|
|
18
|
-
};
|
|
19
|
-
export declare class SessionRPC {
|
|
20
|
-
private readonly _defaultTTL;
|
|
21
|
-
private _nextCallId;
|
|
22
|
-
private readonly _pending;
|
|
23
|
-
private readonly _outbox;
|
|
24
|
-
private readonly _cachedReplies;
|
|
25
|
-
private readonly _handlers;
|
|
26
|
-
constructor(_defaultTTL?: number);
|
|
27
|
-
listen(rpcId: number, handler: RPCHandler): void;
|
|
28
|
-
invoke(rpcId: number, params?: unknown[], ttl?: number): Promise<RPC>;
|
|
29
|
-
process(messages: RPC[]): void;
|
|
30
|
-
private _processResponse;
|
|
31
|
-
private _processRequest;
|
|
32
|
-
private _queueResponse;
|
|
33
|
-
timeoutTick(elapsed: number): void;
|
|
34
|
-
get pendingTotal(): number;
|
|
35
|
-
getOutgoing(): RPC[];
|
|
36
|
-
}
|
package/vecs-protocol/src/rpc.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
export const RPC_RESPONSE_ID = 0;
|
|
2
|
-
export const FIRST_USER_RPC_ID = 101;
|
|
3
|
-
export class RPC {
|
|
4
|
-
constructor(values) {
|
|
5
|
-
this.rpcId = 0;
|
|
6
|
-
this.callId = 0;
|
|
7
|
-
this.params = [];
|
|
8
|
-
this.error = 0;
|
|
9
|
-
this.message = "";
|
|
10
|
-
if (values) {
|
|
11
|
-
Object.assign(this, values);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
wireEncode(encoder) {
|
|
15
|
-
encoder.write_u32(this.rpcId);
|
|
16
|
-
encoder.write_u32(this.callId);
|
|
17
|
-
encoder.write_u32(this.error);
|
|
18
|
-
encoder.write_string(this.message);
|
|
19
|
-
encoder.write_u32(this.params.length);
|
|
20
|
-
this.params.forEach((param) => encoder.write_any(param));
|
|
21
|
-
}
|
|
22
|
-
static wireDecode(decoder) {
|
|
23
|
-
const rpc = new RPC({
|
|
24
|
-
rpcId: decoder.read_u32(),
|
|
25
|
-
callId: decoder.read_u32(),
|
|
26
|
-
error: decoder.read_u32(),
|
|
27
|
-
message: decoder.read_string(),
|
|
28
|
-
});
|
|
29
|
-
const count = decoder.read_u32();
|
|
30
|
-
for (let i = 0; i < count; i++) {
|
|
31
|
-
rpc.params.push(decoder.read_any());
|
|
32
|
-
}
|
|
33
|
-
return rpc;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export const RPC_TIMEOUT_ERROR = { error: -1, message: "Timeout" };
|
|
37
|
-
export class SessionRPC {
|
|
38
|
-
constructor(_defaultTTL = 5000) {
|
|
39
|
-
this._defaultTTL = _defaultTTL;
|
|
40
|
-
this._nextCallId = 0;
|
|
41
|
-
this._pending = new Map();
|
|
42
|
-
this._outbox = new Map();
|
|
43
|
-
this._cachedReplies = new Map();
|
|
44
|
-
this._handlers = new Map();
|
|
45
|
-
}
|
|
46
|
-
listen(rpcId, handler) {
|
|
47
|
-
if (rpcId <= RPC_RESPONSE_ID) {
|
|
48
|
-
throw new Error("RPC handler ids must be positive request ids");
|
|
49
|
-
}
|
|
50
|
-
this._handlers.set(rpcId, handler);
|
|
51
|
-
}
|
|
52
|
-
invoke(rpcId, params = [], ttl = this._defaultTTL) {
|
|
53
|
-
if (rpcId < FIRST_USER_RPC_ID) {
|
|
54
|
-
throw new Error(`RPC ids 0-${FIRST_USER_RPC_ID - 1} are reserved`);
|
|
55
|
-
}
|
|
56
|
-
const callId = this._nextCallId++;
|
|
57
|
-
const request = new RPC({ rpcId, callId, params });
|
|
58
|
-
return new Promise((resolve, reject) => {
|
|
59
|
-
this._pending.set(callId, { request, resolve, reject, ttl });
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
process(messages) {
|
|
63
|
-
messages.forEach((message) => {
|
|
64
|
-
if (message.rpcId === RPC_RESPONSE_ID) {
|
|
65
|
-
this._processResponse(message);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
void this._processRequest(message);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
_processResponse(message) {
|
|
73
|
-
const pending = this._pending.get(message.callId);
|
|
74
|
-
if (!pending) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this._pending.delete(message.callId);
|
|
78
|
-
if (message.error) {
|
|
79
|
-
pending.reject({ error: message.error, message: message.message });
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
pending.resolve(message);
|
|
83
|
-
}
|
|
84
|
-
async _processRequest(message) {
|
|
85
|
-
const cached = this._cachedReplies.get(message.callId);
|
|
86
|
-
if (cached) {
|
|
87
|
-
this._outbox.set(message.callId, cached.response);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const response = new RPC({ rpcId: RPC_RESPONSE_ID, callId: message.callId });
|
|
91
|
-
const handler = this._handlers.get(message.rpcId);
|
|
92
|
-
if (!handler) {
|
|
93
|
-
response.error = 1;
|
|
94
|
-
response.message = `Unknown RPC id ${message.rpcId}`;
|
|
95
|
-
this._queueResponse(response);
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
try {
|
|
99
|
-
const result = await handler(message.params, message);
|
|
100
|
-
response.params = Array.isArray(result) ? result : result === undefined ? [] : [result];
|
|
101
|
-
}
|
|
102
|
-
catch (err) {
|
|
103
|
-
response.error =
|
|
104
|
-
typeof err?.error === "number"
|
|
105
|
-
? err.error
|
|
106
|
-
: 1;
|
|
107
|
-
response.message = err instanceof Error ? err.message : String(err);
|
|
108
|
-
}
|
|
109
|
-
this._queueResponse(response);
|
|
110
|
-
}
|
|
111
|
-
_queueResponse(response) {
|
|
112
|
-
this._cachedReplies.set(response.callId, { response, ttl: this._defaultTTL });
|
|
113
|
-
this._outbox.set(response.callId, response);
|
|
114
|
-
}
|
|
115
|
-
timeoutTick(elapsed) {
|
|
116
|
-
this._pending.forEach((pending, callId) => {
|
|
117
|
-
pending.ttl -= elapsed;
|
|
118
|
-
if (pending.ttl <= 0) {
|
|
119
|
-
this._pending.delete(callId);
|
|
120
|
-
pending.reject(RPC_TIMEOUT_ERROR);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
this._cachedReplies.forEach((reply, callId) => {
|
|
124
|
-
reply.ttl -= elapsed;
|
|
125
|
-
if (reply.ttl <= 0) {
|
|
126
|
-
this._cachedReplies.delete(callId);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
get pendingTotal() {
|
|
131
|
-
return this._pending.size + this._outbox.size;
|
|
132
|
-
}
|
|
133
|
-
getOutgoing() {
|
|
134
|
-
const outgoing = [...this._pending.values()].map((pending) => pending.request);
|
|
135
|
-
outgoing.push(...this._outbox.values());
|
|
136
|
-
this._outbox.clear();
|
|
137
|
-
return outgoing;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=rpc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export interface ConnectionError extends Error {
|
|
2
|
-
status: number;
|
|
3
|
-
statusText: string;
|
|
4
|
-
}
|
|
5
|
-
export interface VecsSocketEvents {
|
|
6
|
-
receive: (data: Uint8Array) => void;
|
|
7
|
-
disconnect: () => void;
|
|
8
|
-
connect: (err?: ConnectionError) => void;
|
|
9
|
-
}
|
|
10
|
-
export interface VecsSocket {
|
|
11
|
-
readonly id: string;
|
|
12
|
-
on<K extends keyof VecsSocketEvents>(event: K, handler: VecsSocketEvents[K]): unknown;
|
|
13
|
-
send(data: Uint8Array): void;
|
|
14
|
-
close(): void;
|
|
15
|
-
}
|
|
16
|
-
export interface VecsSocketListenerEvents {
|
|
17
|
-
new: (socket: VecsSocket) => void;
|
|
18
|
-
}
|
|
19
|
-
export interface VecsSocketListener {
|
|
20
|
-
on<K extends keyof VecsSocketListenerEvents>(event: K, handler: VecsSocketListenerEvents[K]): unknown;
|
|
21
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/transport.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function worldPath(basePath: string | undefined, worldName: string): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"world_path.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/world_path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,QAAQ,GAAG,eAAe,EAAE,SAAiB;IACrE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3E,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|