@genex-ai/multiplayer 0.17.1 → 0.17.6
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/PROTOCOL.md +688 -7
- package/README.md +263 -0
- package/dist/authority/fast-udp.d.ts +13 -0
- package/dist/authority/fast-udp.js +52 -0
- package/dist/authority/fast-webtransport.d.ts +45 -0
- package/dist/authority/fast-webtransport.js +124 -0
- package/dist/authority/index.d.ts +2333 -0
- package/dist/authority/index.js +758 -0
- package/dist/authority/module.d.ts +1 -0
- package/dist/authority/module.js +12 -0
- package/dist/bridge-authority.d.ts +100 -0
- package/dist/bridge-authority.global.js +14 -0
- package/dist/bridge-authority.js +286 -0
- package/dist/bridge-core-Dhc73GC8.d.ts +27 -0
- package/dist/bridge.d.ts +26 -20
- package/dist/bridge.global.js +7 -7
- package/dist/bridge.js +17 -48
- package/dist/chunk-4R7C2TLH.js +68 -0
- package/dist/chunk-5JGRFT2N.js +3646 -0
- package/dist/{chunk-3ZUPU3GT.js → chunk-7QVOIHJF.js} +13 -122
- package/dist/chunk-K3SF5VDS.js +27 -0
- package/dist/chunk-UX3F6YTV.js +143 -0
- package/dist/chunk-Y6XHXDIK.js +6617 -0
- package/dist/{chunk-C52XFIB6.js → chunk-ZSWF4VCN.js} +141 -4
- package/dist/fast-client-CZ41v-oB.d.ts +465 -0
- package/dist/index.d.ts +3 -5
- package/dist/index.js +3 -2
- package/dist/join-CGoInvUM.d.ts +6 -0
- package/dist/module-DqtFb5wA.d.ts +1436 -0
- package/dist/physics-predict-49udN3a1.d.ts +1208 -0
- package/dist/protocol.d.ts +137 -2
- package/dist/protocol.js +33 -1
- package/package.json +33 -3
package/dist/bridge.js
CHANGED
|
@@ -1,40 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
drainQueueJson,
|
|
3
|
+
embedIdentity,
|
|
4
|
+
errorCode,
|
|
5
|
+
errorMessage,
|
|
6
|
+
isObject,
|
|
7
|
+
parseJson,
|
|
8
|
+
parseObject,
|
|
9
|
+
push,
|
|
10
|
+
warningEvent
|
|
11
|
+
} from "./chunk-4R7C2TLH.js";
|
|
1
12
|
import {
|
|
2
13
|
connect,
|
|
3
14
|
createPrivate,
|
|
4
15
|
joinPrivate,
|
|
5
16
|
matchmake,
|
|
6
17
|
roomOf
|
|
7
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7QVOIHJF.js";
|
|
19
|
+
import "./chunk-UX3F6YTV.js";
|
|
8
20
|
import {
|
|
9
21
|
Limits,
|
|
10
22
|
RESERVED_SHARED_PREFIX,
|
|
11
23
|
ServerMessage,
|
|
12
24
|
isReservedEventType
|
|
13
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-ZSWF4VCN.js";
|
|
14
26
|
|
|
15
27
|
// src/bridge.ts
|
|
16
|
-
|
|
17
|
-
var version = 1;
|
|
18
|
-
var embedIdentity = {
|
|
19
|
-
ready(gameId) {
|
|
20
|
-
const cfg = globalThis.__GENEX__;
|
|
21
|
-
if (gameId && cfg && typeof cfg.apiUrl === "string" && Array.isArray(cfg.dashboardOrigins)) {
|
|
22
|
-
initEmbed({
|
|
23
|
-
slug: gameId,
|
|
24
|
-
apiUrl: cfg.apiUrl,
|
|
25
|
-
dashboardOrigins: cfg.dashboardOrigins.filter((o) => typeof o === "string")
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return waitForPlayer();
|
|
29
|
-
},
|
|
30
|
-
auth: () => getColyseusAuth(),
|
|
31
|
-
urls: () => getColyseusUrls()
|
|
32
|
-
};
|
|
28
|
+
var version = 2;
|
|
33
29
|
var identity = embedIdentity;
|
|
34
30
|
function setIdentity(next) {
|
|
35
31
|
identity = next ?? embedIdentity;
|
|
36
32
|
}
|
|
37
|
-
var isObject = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
38
33
|
function parseOptions(optsJson) {
|
|
39
34
|
const o = JSON.parse(optsJson);
|
|
40
35
|
if (!isObject(o)) throw new TypeError("genex bridge: options must be a JSON object");
|
|
@@ -60,25 +55,9 @@ function parseOptions(optsJson) {
|
|
|
60
55
|
options: isObject(o.options) ? o.options : void 0
|
|
61
56
|
};
|
|
62
57
|
}
|
|
63
|
-
var MAX_QUEUED_EVENTS = 4096;
|
|
64
58
|
var sessions = /* @__PURE__ */ new Map();
|
|
65
59
|
var nextHandle = 1;
|
|
66
|
-
function push(e, event) {
|
|
67
|
-
if (e.q.length >= MAX_QUEUED_EVENTS) {
|
|
68
|
-
if (e.overflowed) e.q.splice(1, 1);
|
|
69
|
-
else {
|
|
70
|
-
e.overflowed = true;
|
|
71
|
-
e.q.splice(0, 2, { type: "warning", message: "genex bridge: event queue full; drain it every frame (oldest events dropped)" });
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
e.q.push(event);
|
|
75
|
-
}
|
|
76
60
|
var current = (e) => e.closed ? null : e.mm ? e.mm.session : e.session;
|
|
77
|
-
var errorCode = (err) => {
|
|
78
|
-
const c = isObject(err) || err instanceof Error ? err.code : void 0;
|
|
79
|
-
return typeof c === "number" && Number.isFinite(c) ? c : 0;
|
|
80
|
-
};
|
|
81
|
-
var errorMessage = (err) => err instanceof Error ? err.message : typeof err === "string" ? err : "join failed";
|
|
82
61
|
function end(e) {
|
|
83
62
|
e.closed = true;
|
|
84
63
|
e.connected = false;
|
|
@@ -270,15 +249,6 @@ var live = (handle) => {
|
|
|
270
249
|
follow(e);
|
|
271
250
|
return current(e);
|
|
272
251
|
};
|
|
273
|
-
function parseJson(json, what) {
|
|
274
|
-
if (typeof json !== "string") throw new TypeError(`genex bridge: ${what} must be a JSON string`);
|
|
275
|
-
return JSON.parse(json);
|
|
276
|
-
}
|
|
277
|
-
function parseObject(json, what) {
|
|
278
|
-
const v = parseJson(json, what);
|
|
279
|
-
if (!isObject(v)) throw new TypeError(`genex bridge: ${what} must be a JSON object`);
|
|
280
|
-
return v;
|
|
281
|
-
}
|
|
282
252
|
function leave(handle) {
|
|
283
253
|
const e = entry(handle);
|
|
284
254
|
if (!e || e.closed) return;
|
|
@@ -518,11 +488,10 @@ function drainEventsJson(handle) {
|
|
|
518
488
|
}
|
|
519
489
|
}
|
|
520
490
|
e.changed.clear();
|
|
521
|
-
e.overflowed = false;
|
|
522
|
-
return JSON.stringify(e.q.splice(0));
|
|
523
491
|
} catch (err) {
|
|
524
|
-
|
|
492
|
+
push(e, warningEvent(errorMessage(err)));
|
|
525
493
|
}
|
|
494
|
+
return drainQueueJson(e);
|
|
526
495
|
}
|
|
527
496
|
export {
|
|
528
497
|
chatSend,
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// src/bridge-core.ts
|
|
2
|
+
import { getColyseusAuth, getColyseusUrls, initEmbed, waitForPlayer } from "@genex-ai/embed-sdk";
|
|
3
|
+
var embedIdentity = {
|
|
4
|
+
ready(gameId) {
|
|
5
|
+
const cfg = globalThis.__GENEX__;
|
|
6
|
+
if (gameId && cfg && typeof cfg.apiUrl === "string" && Array.isArray(cfg.dashboardOrigins)) {
|
|
7
|
+
initEmbed({
|
|
8
|
+
slug: gameId,
|
|
9
|
+
apiUrl: cfg.apiUrl,
|
|
10
|
+
dashboardOrigins: cfg.dashboardOrigins.filter((o) => typeof o === "string")
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return waitForPlayer();
|
|
14
|
+
},
|
|
15
|
+
auth: () => getColyseusAuth(),
|
|
16
|
+
urls: () => getColyseusUrls()
|
|
17
|
+
};
|
|
18
|
+
var MAX_QUEUED_EVENTS = 4096;
|
|
19
|
+
function push(e, event) {
|
|
20
|
+
if (e.q.length >= MAX_QUEUED_EVENTS) {
|
|
21
|
+
if (e.overflowed) e.q.splice(1, 1);
|
|
22
|
+
else {
|
|
23
|
+
e.overflowed = true;
|
|
24
|
+
e.q.splice(0, 2, { type: "warning", message: "genex bridge: event queue full; drain it every frame (oldest events dropped)" });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
e.q.push(event);
|
|
28
|
+
}
|
|
29
|
+
var warningEvent = (message) => ({ type: "warning", message: `genex bridge: ${message}` });
|
|
30
|
+
function eventJson(event) {
|
|
31
|
+
try {
|
|
32
|
+
return JSON.stringify(event);
|
|
33
|
+
} catch (err) {
|
|
34
|
+
const name = typeof event.kind === "string" ? event.kind : event.type;
|
|
35
|
+
return JSON.stringify(warningEvent(`event ${JSON.stringify(name)} dropped: JSON cannot carry it (${errorMessage(err)})`));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function drainQueueJson(e) {
|
|
39
|
+
e.overflowed = false;
|
|
40
|
+
return `[${e.q.splice(0).map(eventJson).join(",")}]`;
|
|
41
|
+
}
|
|
42
|
+
var isObject = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
43
|
+
var errorCode = (err) => {
|
|
44
|
+
const c = isObject(err) || err instanceof Error ? err.code : void 0;
|
|
45
|
+
return typeof c === "number" && Number.isFinite(c) ? c : 0;
|
|
46
|
+
};
|
|
47
|
+
var errorMessage = (err) => err instanceof Error ? err.message : typeof err === "string" ? err : "join failed";
|
|
48
|
+
function parseJson(json, what) {
|
|
49
|
+
if (typeof json !== "string") throw new TypeError(`genex bridge: ${what} must be a JSON string`);
|
|
50
|
+
return JSON.parse(json);
|
|
51
|
+
}
|
|
52
|
+
function parseObject(json, what) {
|
|
53
|
+
const v = parseJson(json, what);
|
|
54
|
+
if (!isObject(v)) throw new TypeError(`genex bridge: ${what} must be a JSON object`);
|
|
55
|
+
return v;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
embedIdentity,
|
|
60
|
+
push,
|
|
61
|
+
warningEvent,
|
|
62
|
+
drainQueueJson,
|
|
63
|
+
isObject,
|
|
64
|
+
errorCode,
|
|
65
|
+
errorMessage,
|
|
66
|
+
parseJson,
|
|
67
|
+
parseObject
|
|
68
|
+
};
|