@modularizer/plat 0.9.0 → 0.11.0

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 (71) hide show
  1. package/dist/client/css-transport-plugin.d.ts +2 -1
  2. package/dist/client/css-transport-plugin.d.ts.map +1 -1
  3. package/dist/client/css-transport-plugin.js +2 -2
  4. package/dist/client/css-transport-plugin.js.map +1 -1
  5. package/dist/client-entry.d.ts +2 -0
  6. package/dist/client-entry.d.ts.map +1 -1
  7. package/dist/client-entry.js +2 -0
  8. package/dist/client-entry.js.map +1 -1
  9. package/dist/client-server-entry.d.ts +1 -0
  10. package/dist/client-server-entry.d.ts.map +1 -1
  11. package/dist/client-server-entry.js +1 -0
  12. package/dist/client-server-entry.js.map +1 -1
  13. package/dist/client-side-python/runtime.d.ts.map +1 -1
  14. package/dist/client-side-python/runtime.js +8 -0
  15. package/dist/client-side-python/runtime.js.map +1 -1
  16. package/dist/client-side-server/channel.d.ts.map +1 -1
  17. package/dist/client-side-server/channel.js +93 -29
  18. package/dist/client-side-server/channel.js.map +1 -1
  19. package/dist/client-side-server/identity.d.ts +80 -17
  20. package/dist/client-side-server/identity.d.ts.map +1 -1
  21. package/dist/client-side-server/identity.js +212 -31
  22. package/dist/client-side-server/identity.js.map +1 -1
  23. package/dist/client-side-server/mqtt-webrtc.d.ts +43 -6
  24. package/dist/client-side-server/mqtt-webrtc.d.ts.map +1 -1
  25. package/dist/client-side-server/mqtt-webrtc.js +853 -68
  26. package/dist/client-side-server/mqtt-webrtc.js.map +1 -1
  27. package/dist/client-side-server/plat-fetch.d.ts.map +1 -1
  28. package/dist/client-side-server/plat-fetch.js +10 -0
  29. package/dist/client-side-server/plat-fetch.js.map +1 -1
  30. package/dist/client-side-server/plat-service-worker.js +1 -36
  31. package/dist/client-side-server/plat-service-worker.js.map +1 -1
  32. package/dist/client-side-server/protocol.d.ts +68 -3
  33. package/dist/client-side-server/protocol.d.ts.map +1 -1
  34. package/dist/client-side-server/protocol.js +110 -0
  35. package/dist/client-side-server/protocol.js.map +1 -1
  36. package/dist/client-side-server/runtime.d.ts.map +1 -1
  37. package/dist/client-side-server/runtime.js +7 -0
  38. package/dist/client-side-server/runtime.js.map +1 -1
  39. package/dist/client-side-server/secure-crypto.d.ts +35 -0
  40. package/dist/client-side-server/secure-crypto.d.ts.map +1 -0
  41. package/dist/client-side-server/secure-crypto.js +171 -0
  42. package/dist/client-side-server/secure-crypto.js.map +1 -0
  43. package/dist/client-side-server/server.d.ts.map +1 -1
  44. package/dist/client-side-server/server.js +57 -5
  45. package/dist/client-side-server/server.js.map +1 -1
  46. package/dist/client-side-server/signaling.d.ts +5 -0
  47. package/dist/client-side-server/signaling.d.ts.map +1 -1
  48. package/dist/client-side-server/signaling.js +12 -0
  49. package/dist/client-side-server/signaling.js.map +1 -1
  50. package/dist/server/auth/jwt.d.ts.map +1 -1
  51. package/dist/server/auth/jwt.js +1 -2
  52. package/dist/server/auth/jwt.js.map +1 -1
  53. package/dist/server/authority-server.d.ts +4 -4
  54. package/dist/server/authority-server.d.ts.map +1 -1
  55. package/dist/server/authority-server.js +23 -21
  56. package/dist/server/authority-server.js.map +1 -1
  57. package/dist/server/index.d.ts +1 -0
  58. package/dist/server/index.d.ts.map +1 -1
  59. package/dist/server/index.js +1 -0
  60. package/dist/server/index.js.map +1 -1
  61. package/dist/server/rpc-protocol-plugin.d.ts.map +1 -1
  62. package/dist/server/rpc-protocol-plugin.js +11 -1
  63. package/dist/server/rpc-protocol-plugin.js.map +1 -1
  64. package/dist/server/server.d.ts.map +1 -1
  65. package/dist/server/server.js +4 -2
  66. package/dist/server/server.js.map +1 -1
  67. package/dist/server/websocket-plugin.d.ts +14 -0
  68. package/dist/server/websocket-plugin.d.ts.map +1 -0
  69. package/dist/server/websocket-plugin.js +93 -0
  70. package/dist/server/websocket-plugin.js.map +1 -0
  71. package/package.json +1 -1
@@ -0,0 +1,93 @@
1
+ import { WebSocketServer, WebSocket } from 'ws';
2
+ const websocketControllerMeta = new WeakMap();
3
+ export function WebSocketController(path) {
4
+ return function (constructor) {
5
+ const existing = websocketControllerMeta.get(constructor);
6
+ websocketControllerMeta.set(constructor, {
7
+ path,
8
+ handlers: existing?.handlers ?? [],
9
+ });
10
+ };
11
+ }
12
+ export function WebSocketMessage(type) {
13
+ return function (target, propertyKey) {
14
+ const constructor = target.constructor;
15
+ const existing = websocketControllerMeta.get(constructor);
16
+ const meta = existing ?? { path: '/', handlers: [] };
17
+ meta.handlers.push({
18
+ messageType: type ?? String(propertyKey),
19
+ methodName: propertyKey,
20
+ });
21
+ websocketControllerMeta.set(constructor, meta);
22
+ };
23
+ }
24
+ export function createWebSocketProtocolPlugin(controllers) {
25
+ return {
26
+ name: 'websocket-protocol-plugin',
27
+ attach(_runtime, host) {
28
+ const httpServer = host.server;
29
+ if (!httpServer)
30
+ return;
31
+ const routeMap = new Map();
32
+ for (const ControllerCtor of controllers) {
33
+ const meta = websocketControllerMeta.get(ControllerCtor);
34
+ if (!meta)
35
+ continue;
36
+ const instance = new ControllerCtor();
37
+ const handlers = new Map(meta.handlers.map((h) => [h.messageType, h.methodName]));
38
+ routeMap.set(meta.path, { instance, handlers });
39
+ }
40
+ const wss = new WebSocketServer({ noServer: true });
41
+ httpServer.on('upgrade', (req, socket, head) => {
42
+ const path = (req.url ?? '/').split('?')[0] || '/';
43
+ const route = routeMap.get(path);
44
+ if (!route) {
45
+ socket.destroy();
46
+ return;
47
+ }
48
+ wss.handleUpgrade(req, socket, head, (ws) => {
49
+ const session = {
50
+ ws,
51
+ path,
52
+ headers: req.headers,
53
+ send(message) {
54
+ ws.send(JSON.stringify(message));
55
+ },
56
+ close(code, reason) {
57
+ ws.close(code, reason);
58
+ },
59
+ isOpen() {
60
+ return ws.readyState === WebSocket.OPEN;
61
+ },
62
+ };
63
+ ws.on('message', async (data) => {
64
+ try {
65
+ const message = JSON.parse(String(data));
66
+ const messageType = typeof message.type === 'string' ? message.type : '';
67
+ const methodName = route.handlers.get(messageType);
68
+ if (!methodName) {
69
+ session.send({ error: 'unknown_type', type: messageType });
70
+ return;
71
+ }
72
+ const method = route.instance[methodName];
73
+ if (typeof method !== 'function') {
74
+ session.send({ error: 'missing_handler', type: messageType });
75
+ return;
76
+ }
77
+ await method.call(route.instance, message, session);
78
+ }
79
+ catch (error) {
80
+ session.send({ error: 'invalid_message', message: error?.message ?? 'Invalid message' });
81
+ }
82
+ });
83
+ ws.on('close', async () => {
84
+ if (typeof route.instance.onClose === 'function') {
85
+ await route.instance.onClose(session);
86
+ }
87
+ });
88
+ });
89
+ });
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=websocket-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-plugin.js","sourceRoot":"","sources":["../../src/server/websocket-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modularizer/plat",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "description": "Protocol and Language Agnostic Tooling Yielding Universal Semantics",
5
5
  "type": "module",
6
6
  "author": {