@colyseus/monitor 0.15.0-preview.1 → 0.15.0-preview.3
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/api.js +7 -10
- package/build/index.d.ts +1 -1
- package/build/static/build/index.d.ts +1 -1
- package/build/static/bundle.js +7 -7
- package/build/static/bundle.js.map +1 -1
- package/package.json +3 -3
- package/build/api.js.map +0 -1
- package/build/api.mjs +0 -76
- package/build/api.mjs.map +0 -1
- package/build/ext/Room.js.map +0 -1
- package/build/ext/Room.mjs +0 -50
- package/build/ext/Room.mjs.map +0 -1
- package/build/frontend/services.d.ts +0 -3
- package/build/frontend/styles/index.d.ts +0 -8
- package/build/index.js.map +0 -1
- package/build/index.mjs +0 -18
- package/build/index.mjs.map +0 -1
- package/build/static/lib/api.d.ts +0 -2
- package/build/static/lib/ext/Room.d.ts +0 -1
- package/build/static/lib/frontend/App.d.ts +0 -2
- package/build/static/lib/frontend/components/CAppBar.d.ts +0 -8
- package/build/static/lib/frontend/components/RoomInspect.d.ts +0 -30
- package/build/static/lib/frontend/components/RoomList.d.ts +0 -26
- package/build/static/lib/frontend/index.d.ts +0 -1
- package/build/static/lib/frontend/services.d.ts +0 -5
- package/build/static/lib/index.d.ts +0 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@colyseus/monitor",
|
|
3
|
-
"version": "0.15.0-preview.
|
|
3
|
+
"version": "0.15.0-preview.3",
|
|
4
4
|
"description": "Web Monitoring Panel for Colyseus",
|
|
5
5
|
"input": "./src/index.ts",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"typings": "./build/index.d.ts",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"start": "ts-node example/Server",
|
|
11
|
-
"build": "webpack --env.production",
|
|
11
|
+
"build": "tsc && webpack --env.production",
|
|
12
12
|
"prepublishOnly": "tsc && npm run build"
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"node-os-utils": "^1.2.0",
|
|
59
59
|
"superagent": "^3.8.2"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "7872907015e6ea2ec5aa7a0cb4d0a1fb08effd37"
|
|
62
62
|
}
|
package/build/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":["../src/api.ts"],"sourcesContent":["import { matchMaker } from \"colyseus\";\n\nimport express from \"express\";\nimport osUtils from \"node-os-utils\";\n\nimport { MonitorOptions } from \".\";\n\nconst UNAVAILABLE_ROOM_ERROR = \"@colyseus/monitor: room $roomId is not available anymore.\";\n\nconst DEFAULT_COLUMNS = [\n 'roomId',\n 'name',\n 'clients',\n 'maxClients',\n 'locked',\n 'elapsedTime',\n];\n\nexport function getAPI (opts: Partial<MonitorOptions>) {\n const api = express.Router();\n\n api.get(\"/\", async (req: express.Request, res: express.Response) => {\n try {\n const rooms: any[] = await matchMaker.query({});\n\n let connections: number = 0;\n\n res.json({\n columns: opts.columns || DEFAULT_COLUMNS,\n rooms: rooms.map(room => {\n const data = room.toJSON();\n\n connections += room.clients;\n\n // additional data\n data.locked = room.locked || false;\n data.private = room.private;\n\n data.maxClients = `${room.maxClients}`;\n\n data.elapsedTime = Date.now() - new Date(room.createdAt).getTime();\n return data;\n }),\n\n connections,\n cpu: await osUtils.cpu.usage(),\n memory: await osUtils.mem.used()\n });\n } catch (e) {\n const message = e.message;\n console.error(message);\n res.status(500);\n res.json({ message });\n }\n });\n\n api.get(\"/room\", async (req: express.Request, res: express.Response) => {\n const roomId = req.query.roomId as string;\n try {\n const inspectData = await matchMaker.remoteRoomCall(roomId, \"getInspectData\");\n res.json(inspectData);\n } catch (e) {\n const message = UNAVAILABLE_ROOM_ERROR.replace(\"$roomId\", roomId);\n console.error(message);\n res.status(500);\n res.json({ message });\n }\n });\n\n api.get(\"/room/call\", async (req: express.Request, res: express.Response) => {\n const roomId = req.query.roomId as string;\n const method = req.query.method as string;\n const args = JSON.parse(req.query.args as string);\n\n try {\n const data = await matchMaker.remoteRoomCall(roomId, method, args);\n res.json(data);\n } catch (e) {\n const message = UNAVAILABLE_ROOM_ERROR.replace(\"$roomId\", roomId);\n console.error(message);\n res.status(500);\n res.json({ message });\n }\n });\n\n return api;\n}\n"],"names":["express","matchMaker","osUtils"],"mappings":"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"}
|
package/build/api.mjs
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { matchMaker } from 'colyseus';
|
|
2
|
-
import express from 'express';
|
|
3
|
-
import osUtils from 'node-os-utils';
|
|
4
|
-
|
|
5
|
-
const UNAVAILABLE_ROOM_ERROR = "@colyseus/monitor: room $roomId is not available anymore.";
|
|
6
|
-
const DEFAULT_COLUMNS = [
|
|
7
|
-
'roomId',
|
|
8
|
-
'name',
|
|
9
|
-
'clients',
|
|
10
|
-
'maxClients',
|
|
11
|
-
'locked',
|
|
12
|
-
'elapsedTime',
|
|
13
|
-
];
|
|
14
|
-
function getAPI(opts) {
|
|
15
|
-
const api = express.Router();
|
|
16
|
-
api.get("/", async (req, res) => {
|
|
17
|
-
try {
|
|
18
|
-
const rooms = await matchMaker.query({});
|
|
19
|
-
let connections = 0;
|
|
20
|
-
res.json({
|
|
21
|
-
columns: opts.columns || DEFAULT_COLUMNS,
|
|
22
|
-
rooms: rooms.map(room => {
|
|
23
|
-
const data = room.toJSON();
|
|
24
|
-
connections += room.clients;
|
|
25
|
-
// additional data
|
|
26
|
-
data.locked = room.locked || false;
|
|
27
|
-
data.private = room.private;
|
|
28
|
-
data.maxClients = `${room.maxClients}`;
|
|
29
|
-
data.elapsedTime = Date.now() - new Date(room.createdAt).getTime();
|
|
30
|
-
return data;
|
|
31
|
-
}),
|
|
32
|
-
connections,
|
|
33
|
-
cpu: await osUtils.cpu.usage(),
|
|
34
|
-
memory: await osUtils.mem.used()
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
const message = e.message;
|
|
39
|
-
console.error(message);
|
|
40
|
-
res.status(500);
|
|
41
|
-
res.json({ message });
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
api.get("/room", async (req, res) => {
|
|
45
|
-
const roomId = req.query.roomId;
|
|
46
|
-
try {
|
|
47
|
-
const inspectData = await matchMaker.remoteRoomCall(roomId, "getInspectData");
|
|
48
|
-
res.json(inspectData);
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
const message = UNAVAILABLE_ROOM_ERROR.replace("$roomId", roomId);
|
|
52
|
-
console.error(message);
|
|
53
|
-
res.status(500);
|
|
54
|
-
res.json({ message });
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
api.get("/room/call", async (req, res) => {
|
|
58
|
-
const roomId = req.query.roomId;
|
|
59
|
-
const method = req.query.method;
|
|
60
|
-
const args = JSON.parse(req.query.args);
|
|
61
|
-
try {
|
|
62
|
-
const data = await matchMaker.remoteRoomCall(roomId, method, args);
|
|
63
|
-
res.json(data);
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
const message = UNAVAILABLE_ROOM_ERROR.replace("$roomId", roomId);
|
|
67
|
-
console.error(message);
|
|
68
|
-
res.status(500);
|
|
69
|
-
res.json({ message });
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
return api;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export { getAPI };
|
|
76
|
-
//# sourceMappingURL=api.mjs.map
|
package/build/api.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","sources":["../src/api.ts"],"sourcesContent":["import { matchMaker } from \"colyseus\";\n\nimport express from \"express\";\nimport osUtils from \"node-os-utils\";\n\nimport { MonitorOptions } from \".\";\n\nconst UNAVAILABLE_ROOM_ERROR = \"@colyseus/monitor: room $roomId is not available anymore.\";\n\nconst DEFAULT_COLUMNS = [\n 'roomId',\n 'name',\n 'clients',\n 'maxClients',\n 'locked',\n 'elapsedTime',\n];\n\nexport function getAPI (opts: Partial<MonitorOptions>) {\n const api = express.Router();\n\n api.get(\"/\", async (req: express.Request, res: express.Response) => {\n try {\n const rooms: any[] = await matchMaker.query({});\n\n let connections: number = 0;\n\n res.json({\n columns: opts.columns || DEFAULT_COLUMNS,\n rooms: rooms.map(room => {\n const data = room.toJSON();\n\n connections += room.clients;\n\n // additional data\n data.locked = room.locked || false;\n data.private = room.private;\n\n data.maxClients = `${room.maxClients}`;\n\n data.elapsedTime = Date.now() - new Date(room.createdAt).getTime();\n return data;\n }),\n\n connections,\n cpu: await osUtils.cpu.usage(),\n memory: await osUtils.mem.used()\n });\n } catch (e) {\n const message = e.message;\n console.error(message);\n res.status(500);\n res.json({ message });\n }\n });\n\n api.get(\"/room\", async (req: express.Request, res: express.Response) => {\n const roomId = req.query.roomId as string;\n try {\n const inspectData = await matchMaker.remoteRoomCall(roomId, \"getInspectData\");\n res.json(inspectData);\n } catch (e) {\n const message = UNAVAILABLE_ROOM_ERROR.replace(\"$roomId\", roomId);\n console.error(message);\n res.status(500);\n res.json({ message });\n }\n });\n\n api.get(\"/room/call\", async (req: express.Request, res: express.Response) => {\n const roomId = req.query.roomId as string;\n const method = req.query.method as string;\n const args = JSON.parse(req.query.args as string);\n\n try {\n const data = await matchMaker.remoteRoomCall(roomId, method, args);\n res.json(data);\n } catch (e) {\n const message = UNAVAILABLE_ROOM_ERROR.replace(\"$roomId\", roomId);\n console.error(message);\n res.status(500);\n res.json({ message });\n }\n });\n\n return api;\n}\n"],"names":[],"mappings":"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"}
|
package/build/ext/Room.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Room.js","sources":["../../src/ext/Room.ts"],"sourcesContent":["//\n// Monkey-patch Colyseus' default behaviour\n//\nimport { Room, Client } from \"colyseus\";\n\nfunction getStateSize(room) {\n // TODO: `Serializer<T>` should provide a method for this (e.g. `serializer.hasState()`)\n const hasState = (room._serializer.state || room._serializer.previousState);\n const fullState = hasState && room._serializer.getFullState();\n return fullState && (fullState.byteLength || fullState.length) || 0;\n}\n\n(<any>Room.prototype).getAvailableData = function () {\n return {\n clients: this.clients.length,\n maxClients: this.maxClients,\n metadata: this.metadata,\n roomId: this.roomId,\n };\n};\n\n(<any>Room.prototype).getRoomListData = async function () {\n const stateSize = getStateSize(this);\n const elapsedTime = this.clock.elapsedTime;\n const locked = this.locked;\n const data = this.getAvailableData();\n\n return { ...data, locked, elapsedTime, stateSize };\n};\n\n(<any>Room.prototype).getInspectData = async function () {\n const state = this.state;\n const stateSize = getStateSize(this);\n\n const data = this.getAvailableData();\n const clients = this.clients.map((client: Client) => (\n { sessionId: client.sessionId }\n ));\n const locked = this.locked;\n\n return { ...data, locked, clients, state, stateSize };\n};\n\n// Actions\n(<any>Room.prototype)._forceClientDisconnect = async function (sessionId) {\n for (let i = 0; i < this.clients.length; i++) {\n if (this.clients[i].sessionId === sessionId) {\n this.clients[i].terminate();\n break;\n }\n }\n};\n\n(<any>Room.prototype)._sendMessageToClient = async function (sessionId, type, data) {\n for (let i = 0; i < this.clients.length; i++) {\n if (this.clients[i].sessionId === sessionId) {\n this.clients[i].send(type, data);\n break;\n }\n }\n};\n"],"names":["Room"],"mappings":";;;;AAAA;AAKA,SAAS,YAAY,CAAC,IAAI;;IAEtB,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAC9D,OAAO,SAAS,KAAK,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAEKA,aAAI,CAAC,SAAU,CAAC,gBAAgB,GAAG;IACrC,OAAO;QACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QAC5B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC;AACN,CAAC,CAAC;AAEIA,aAAI,CAAC,SAAU,CAAC,eAAe,GAAG;IACpC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAErC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,CAAC;AAEIA,aAAI,CAAC,SAAU,CAAC,cAAc,GAAG;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,MAC5C,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3B,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF;AACMA,aAAI,CAAC,SAAU,CAAC,sBAAsB,GAAG,gBAAgB,SAAS;IACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM;SACT;KACJ;AACL,CAAC,CAAC;AAEIA,aAAI,CAAC,SAAU,CAAC,oBAAoB,GAAG,gBAAgB,SAAS,EAAE,IAAI,EAAE,IAAI;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM;SACT;KACJ;AACL,CAAC;;"}
|
package/build/ext/Room.mjs
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Room } from 'colyseus';
|
|
2
|
-
|
|
3
|
-
//
|
|
4
|
-
function getStateSize(room) {
|
|
5
|
-
// TODO: `Serializer<T>` should provide a method for this (e.g. `serializer.hasState()`)
|
|
6
|
-
const hasState = (room._serializer.state || room._serializer.previousState);
|
|
7
|
-
const fullState = hasState && room._serializer.getFullState();
|
|
8
|
-
return fullState && (fullState.byteLength || fullState.length) || 0;
|
|
9
|
-
}
|
|
10
|
-
Room.prototype.getAvailableData = function () {
|
|
11
|
-
return {
|
|
12
|
-
clients: this.clients.length,
|
|
13
|
-
maxClients: this.maxClients,
|
|
14
|
-
metadata: this.metadata,
|
|
15
|
-
roomId: this.roomId,
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
Room.prototype.getRoomListData = async function () {
|
|
19
|
-
const stateSize = getStateSize(this);
|
|
20
|
-
const elapsedTime = this.clock.elapsedTime;
|
|
21
|
-
const locked = this.locked;
|
|
22
|
-
const data = this.getAvailableData();
|
|
23
|
-
return { ...data, locked, elapsedTime, stateSize };
|
|
24
|
-
};
|
|
25
|
-
Room.prototype.getInspectData = async function () {
|
|
26
|
-
const state = this.state;
|
|
27
|
-
const stateSize = getStateSize(this);
|
|
28
|
-
const data = this.getAvailableData();
|
|
29
|
-
const clients = this.clients.map((client) => ({ sessionId: client.sessionId }));
|
|
30
|
-
const locked = this.locked;
|
|
31
|
-
return { ...data, locked, clients, state, stateSize };
|
|
32
|
-
};
|
|
33
|
-
// Actions
|
|
34
|
-
Room.prototype._forceClientDisconnect = async function (sessionId) {
|
|
35
|
-
for (let i = 0; i < this.clients.length; i++) {
|
|
36
|
-
if (this.clients[i].sessionId === sessionId) {
|
|
37
|
-
this.clients[i].terminate();
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
Room.prototype._sendMessageToClient = async function (sessionId, type, data) {
|
|
43
|
-
for (let i = 0; i < this.clients.length; i++) {
|
|
44
|
-
if (this.clients[i].sessionId === sessionId) {
|
|
45
|
-
this.clients[i].send(type, data);
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=Room.mjs.map
|
package/build/ext/Room.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Room.mjs","sources":["../../src/ext/Room.ts"],"sourcesContent":["//\n// Monkey-patch Colyseus' default behaviour\n//\nimport { Room, Client } from \"colyseus\";\n\nfunction getStateSize(room) {\n // TODO: `Serializer<T>` should provide a method for this (e.g. `serializer.hasState()`)\n const hasState = (room._serializer.state || room._serializer.previousState);\n const fullState = hasState && room._serializer.getFullState();\n return fullState && (fullState.byteLength || fullState.length) || 0;\n}\n\n(<any>Room.prototype).getAvailableData = function () {\n return {\n clients: this.clients.length,\n maxClients: this.maxClients,\n metadata: this.metadata,\n roomId: this.roomId,\n };\n};\n\n(<any>Room.prototype).getRoomListData = async function () {\n const stateSize = getStateSize(this);\n const elapsedTime = this.clock.elapsedTime;\n const locked = this.locked;\n const data = this.getAvailableData();\n\n return { ...data, locked, elapsedTime, stateSize };\n};\n\n(<any>Room.prototype).getInspectData = async function () {\n const state = this.state;\n const stateSize = getStateSize(this);\n\n const data = this.getAvailableData();\n const clients = this.clients.map((client: Client) => (\n { sessionId: client.sessionId }\n ));\n const locked = this.locked;\n\n return { ...data, locked, clients, state, stateSize };\n};\n\n// Actions\n(<any>Room.prototype)._forceClientDisconnect = async function (sessionId) {\n for (let i = 0; i < this.clients.length; i++) {\n if (this.clients[i].sessionId === sessionId) {\n this.clients[i].terminate();\n break;\n }\n }\n};\n\n(<any>Room.prototype)._sendMessageToClient = async function (sessionId, type, data) {\n for (let i = 0; i < this.clients.length; i++) {\n if (this.clients[i].sessionId === sessionId) {\n this.clients[i].send(type, data);\n break;\n }\n }\n};\n"],"names":[],"mappings":";;AAAA;AAKA,SAAS,YAAY,CAAC,IAAI;;IAEtB,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAC9D,OAAO,SAAS,KAAK,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAEK,IAAI,CAAC,SAAU,CAAC,gBAAgB,GAAG;IACrC,OAAO;QACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QAC5B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC;AACN,CAAC,CAAC;AAEI,IAAI,CAAC,SAAU,CAAC,eAAe,GAAG;IACpC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAErC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,CAAC;AAEI,IAAI,CAAC,SAAU,CAAC,cAAc,GAAG;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,MAC5C,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3B,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF;AACM,IAAI,CAAC,SAAU,CAAC,sBAAsB,GAAG,gBAAgB,SAAS;IACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM;SACT;KACJ;AACL,CAAC,CAAC;AAEI,IAAI,CAAC,SAAU,CAAC,oBAAoB,GAAG,gBAAgB,SAAS,EAAE,IAAI,EAAE,IAAI;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM;SACT;KACJ;AACL,CAAC"}
|
package/build/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import express from 'express';\nimport path from \"path\";\n\nimport { getAPI } from './api';\nimport './ext/Room';\n\nconst frontendDirectory = path.resolve(__dirname, \"..\", \"lib\", \"static\");\n\nexport interface MonitorOptions {\n columns: Array<\n 'roomId' |\n 'name' |\n 'clients' |\n 'maxClients' |\n 'locked' |\n 'elapsedTime' |\n { metadata: string }\n >\n}\n\n/**\n * TODO: expose the `router` instead on next major version.\n */\nexport function monitor (opts: Partial<MonitorOptions> = {}): express.Router {\n const router = express.Router();\n router.use('/', express.static(frontendDirectory));\n router.use('/api', getAPI(opts));\n return router;\n}\n"],"names":["path","express","getAPI"],"mappings":";;;;;;;;;;;;;;AAMA,MAAM,iBAAiB,GAAGA,wBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAczE;;;SAGgB,OAAO,CAAE,OAAgC,EAAE;IACvD,MAAM,MAAM,GAAGC,2BAAO,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAEA,2BAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAEC,UAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAClB;;;;"}
|
package/build/index.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import express from 'express';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { getAPI } from './api.mjs';
|
|
4
|
-
import './ext/Room.mjs';
|
|
5
|
-
|
|
6
|
-
const frontendDirectory = path.resolve(__dirname, "..", "lib", "static");
|
|
7
|
-
/**
|
|
8
|
-
* TODO: expose the `router` instead on next major version.
|
|
9
|
-
*/
|
|
10
|
-
function monitor(opts = {}) {
|
|
11
|
-
const router = express.Router();
|
|
12
|
-
router.use('/', express.static(frontendDirectory));
|
|
13
|
-
router.use('/api', getAPI(opts));
|
|
14
|
-
return router;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { monitor };
|
|
18
|
-
//# sourceMappingURL=index.mjs.map
|
package/build/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import express from 'express';\nimport path from \"path\";\n\nimport { getAPI } from './api';\nimport './ext/Room';\n\nconst frontendDirectory = path.resolve(__dirname, \"..\", \"lib\", \"static\");\n\nexport interface MonitorOptions {\n columns: Array<\n 'roomId' |\n 'name' |\n 'clients' |\n 'maxClients' |\n 'locked' |\n 'elapsedTime' |\n { metadata: string }\n >\n}\n\n/**\n * TODO: expose the `router` instead on next major version.\n */\nexport function monitor (opts: Partial<MonitorOptions> = {}): express.Router {\n const router = express.Router();\n router.use('/', express.static(frontendDirectory));\n router.use('/api', getAPI(opts));\n return router;\n}\n"],"names":[],"mappings":";;;;;AAMA,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAczE;;;SAGgB,OAAO,CAAE,OAAgC,EAAE;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAClB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
export declare class RoomInspect extends React.Component {
|
|
3
|
-
state: {
|
|
4
|
-
roomId: any;
|
|
5
|
-
state: {};
|
|
6
|
-
clients: any[];
|
|
7
|
-
maxClients: number;
|
|
8
|
-
stateSize: number;
|
|
9
|
-
locked: boolean;
|
|
10
|
-
sendDialogTitle: string;
|
|
11
|
-
sendDialogOpen: boolean;
|
|
12
|
-
sendToClient: any;
|
|
13
|
-
sendType: string;
|
|
14
|
-
sendData: any;
|
|
15
|
-
};
|
|
16
|
-
updateDataInterval: number;
|
|
17
|
-
componentDidMount(): void;
|
|
18
|
-
fetchRoomData(): void;
|
|
19
|
-
roomCall(method: string, ...args: any[]): Promise<void>;
|
|
20
|
-
componentWillUnmount(): void;
|
|
21
|
-
sendMessage(sessionId?: string): void;
|
|
22
|
-
disconnectClient(sessionId: string): void;
|
|
23
|
-
disposeRoom(): void;
|
|
24
|
-
updateSendType: (e: any) => void;
|
|
25
|
-
updateSendData: (changes: any) => void;
|
|
26
|
-
handleCloseSend: () => void;
|
|
27
|
-
handleSend: () => void;
|
|
28
|
-
goBack(): void;
|
|
29
|
-
render(): JSX.Element;
|
|
30
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
export declare class RoomList extends React.Component {
|
|
3
|
-
state: {
|
|
4
|
-
selected: number[];
|
|
5
|
-
rooms: any[];
|
|
6
|
-
connections: number;
|
|
7
|
-
cpu: number;
|
|
8
|
-
memory: {
|
|
9
|
-
totalMemMb: number;
|
|
10
|
-
usedMemMb: number;
|
|
11
|
-
};
|
|
12
|
-
columns: any[];
|
|
13
|
-
};
|
|
14
|
-
updateRoomListInterval: number;
|
|
15
|
-
isSelected: (index: any) => boolean;
|
|
16
|
-
componentWillMount(): void;
|
|
17
|
-
fetchRoomList(): Promise<void>;
|
|
18
|
-
handleRowSelection: (selectedRows: any) => void;
|
|
19
|
-
inspectRoom(roomId: any): void;
|
|
20
|
-
disposeRoom(roomId: any): Promise<void>;
|
|
21
|
-
getColumnHeader(column: any): any;
|
|
22
|
-
getRoomColumn(room: any, column: any): string;
|
|
23
|
-
millisecondsToStr(milliseconds: any): string;
|
|
24
|
-
bytesToStr(size: number): string;
|
|
25
|
-
render(): JSX.Element;
|
|
26
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./css/index.css";
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
import http from "superagent";
|
|
3
|
-
export declare function fetchRoomList(): http.SuperAgentRequest;
|
|
4
|
-
export declare function fetchRoomData(roomId: string): http.SuperAgentRequest;
|
|
5
|
-
export declare function remoteRoomCall(roomId: string, method: string, ...args: any[]): http.SuperAgentRequest;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import express from 'express';
|
|
2
|
-
import './ext/Room';
|
|
3
|
-
export interface MonitorOptions {
|
|
4
|
-
columns: Array<'roomId' | 'name' | 'clients' | 'maxClients' | 'locked' | 'elapsedTime' | {
|
|
5
|
-
metadata: string;
|
|
6
|
-
}>;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* TODO: expose the `router` instead on next major version.
|
|
10
|
-
*/
|
|
11
|
-
export declare function monitor(opts?: Partial<MonitorOptions>): express.Router;
|