@privateaim/server-realtime-kit 0.8.21 → 0.8.23

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 (41) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/helpers/authenticated.d.ts +3 -0
  3. package/dist/helpers/authenticated.d.ts.map +1 -0
  4. package/dist/helpers/index.d.ts +1 -0
  5. package/dist/helpers/index.d.ts.map +1 -1
  6. package/dist/index.mjs +270 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/middlewares/authup/create.d.ts.map +1 -1
  9. package/package.json +27 -17
  10. package/rollup.config.mjs +14 -0
  11. package/src/helpers/authenticated.ts +14 -0
  12. package/src/helpers/index.ts +1 -0
  13. package/src/middlewares/authup/create.ts +9 -9
  14. package/dist/helpers/index.js +0 -24
  15. package/dist/helpers/index.js.map +0 -1
  16. package/dist/helpers/room-subscriptions.js +0 -37
  17. package/dist/helpers/room-subscriptions.js.map +0 -1
  18. package/dist/index.js +0 -27
  19. package/dist/index.js.map +0 -1
  20. package/dist/middlewares/authup/create.js +0 -127
  21. package/dist/middlewares/authup/create.js.map +0 -1
  22. package/dist/middlewares/authup/index.js +0 -25
  23. package/dist/middlewares/authup/index.js.map +0 -1
  24. package/dist/middlewares/authup/types.js +0 -9
  25. package/dist/middlewares/authup/types.js.map +0 -1
  26. package/dist/middlewares/authup/utils.js +0 -64
  27. package/dist/middlewares/authup/utils.js.map +0 -1
  28. package/dist/middlewares/force-logged-in.js +0 -20
  29. package/dist/middlewares/force-logged-in.js.map +0 -1
  30. package/dist/middlewares/index.js +0 -26
  31. package/dist/middlewares/index.js.map +0 -1
  32. package/dist/middlewares/logging.js +0 -32
  33. package/dist/middlewares/logging.js.map +0 -1
  34. package/dist/server/index.js +0 -25
  35. package/dist/server/index.js.map +0 -1
  36. package/dist/server/module.js +0 -38
  37. package/dist/server/module.js.map +0 -1
  38. package/dist/server/types.js +0 -9
  39. package/dist/server/types.js.map +0 -1
  40. package/dist/types.js +0 -9
  41. package/dist/types.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.23](https://github.com/PrivateAIM/hub/compare/v0.8.22...v0.8.23) (2026-02-02)
4
+
5
+
6
+ ### Dependencies
7
+
8
+ * The following workspace dependencies were updated
9
+ * dependencies
10
+ * @privateaim/kit bumped from ^0.8.22 to ^0.8.23
11
+ * @privateaim/telemetry-kit bumped from ^0.8.22 to ^0.8.23
12
+ * @privateaim/server-kit bumped from ^0.8.22 to ^0.8.23
13
+
14
+ ## [0.8.22](https://github.com/PrivateAIM/hub/compare/v0.8.21...v0.8.22) (2026-01-27)
15
+
16
+
17
+ ### Features
18
+
19
+ * create socket handlers for master-image(-group) ([#1321](https://github.com/PrivateAIM/hub/issues/1321)) ([f266417](https://github.com/PrivateAIM/hub/commit/f2664177c6db6ee334ab6a06ed905b6fb71e90a8))
20
+ * migrate to esm & replace jest with vitest ([#1368](https://github.com/PrivateAIM/hub/issues/1368)) ([5a4d9d1](https://github.com/PrivateAIM/hub/commit/5a4d9d1ce118f65740aa49caf948208eac299032))
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **deps:** bump the minorandpatch group across 1 directory with 12 updates ([#1343](https://github.com/PrivateAIM/hub/issues/1343)) ([015daa8](https://github.com/PrivateAIM/hub/commit/015daa8d7403b906eeb175d7ab83dd9df665dc6a))
26
+ * **deps:** bump the minorandpatch group across 1 directory with 16 updates ([#1329](https://github.com/PrivateAIM/hub/issues/1329)) ([7b394da](https://github.com/PrivateAIM/hub/commit/7b394da159d8e52cc37fe489832307a234f3ddb0))
27
+
28
+
29
+ ### Dependencies
30
+
31
+ * The following workspace dependencies were updated
32
+ * dependencies
33
+ * @privateaim/kit bumped from ^0.8.21 to ^0.8.22
34
+ * @privateaim/telemetry-kit bumped from ^0.8.21 to ^0.8.22
35
+ * @privateaim/server-kit bumped from ^0.8.21 to ^0.8.22
36
+
3
37
  ## [0.8.21](https://github.com/PrivateAIM/hub/compare/v0.8.20...v0.8.21) (2025-11-04)
4
38
 
5
39
 
@@ -0,0 +1,3 @@
1
+ import type { Socket } from '../types';
2
+ export declare function isSocketAuthenticated(socket: Socket): boolean;
3
+ //# sourceMappingURL=authenticated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticated.d.ts","sourceRoot":"","sources":["../../src/helpers/authenticated.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAI,OAAO,CAI9D"}
@@ -1,2 +1,3 @@
1
+ export * from './authenticated';
1
2
  export * from './room-subscriptions';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAOA,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAOA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
package/dist/index.mjs ADDED
@@ -0,0 +1,270 @@
1
+ import { UnauthorizedError } from '@ebec/http';
2
+ import { isRedisClientUsable, useRedisClient, isVaultClientUsable, useVaultClient, useLogger, useRedisPublishClient, useRedisSubscribeClient } from '@privateaim/server-kit';
3
+ import { LogChannel, LogFlag } from '@privateaim/telemetry-kit';
4
+ import { RedisTokenVerifierCache, MemoryTokenVerifierCache, TokenVerifier } from '@authup/server-adapter-kit';
5
+ import { createMiddleware } from '@authup/server-adapter-socket-io';
6
+ import { REALM_MASTER_NAME, PermissionName } from '@authup/core-kit';
7
+ import { OAuth2SubKind } from '@authup/specs';
8
+ import { PermissionChecker, PermissionMemoryProvider } from '@authup/access';
9
+ import { PermissionName as PermissionName$1 } from '@privateaim/kit';
10
+ import { createAdapter } from '@socket.io/redis-adapter';
11
+ import { Server } from 'socket.io';
12
+
13
+ /*
14
+ * Copyright (c) 2025.
15
+ * Author Peter Placzek (tada5hi)
16
+ * For the full copyright and license information,
17
+ * view the LICENSE file that was distributed with this source code.
18
+ */ function isSocketAuthenticated(socket) {
19
+ return !!socket.data.userId || !!socket.data.clientId || !!socket.data.robotId;
20
+ }
21
+
22
+ /*
23
+ * Copyright (c) 2024.
24
+ * Author Peter Placzek (tada5hi)
25
+ * For the full copyright and license information,
26
+ * view the LICENSE file that was distributed with this source code.
27
+ */ function subscribeSocketRoom(socket, roomName) {
28
+ if (!socket.data.roomSubscriptions) {
29
+ socket.data.roomSubscriptions = {};
30
+ }
31
+ if (!socket.data.roomSubscriptions[roomName]) {
32
+ socket.data.roomSubscriptions[roomName] = 0;
33
+ }
34
+ socket.data.roomSubscriptions[roomName]++;
35
+ socket.join(roomName);
36
+ }
37
+ function unsubscribeSocketRoom(socket, roomName) {
38
+ if (!socket.data.roomSubscriptions) {
39
+ return;
40
+ }
41
+ if (socket.data.roomSubscriptions[roomName]) {
42
+ if (socket.data.roomSubscriptions[roomName] > 1) {
43
+ socket.data.roomSubscriptions[roomName]--;
44
+ } else {
45
+ delete socket.data.roomSubscriptions[roomName];
46
+ }
47
+ }
48
+ if (!socket.data.roomSubscriptions[roomName]) {
49
+ socket.leave(roomName);
50
+ }
51
+ }
52
+
53
+ function generateAbilities() {
54
+ return Object.values({
55
+ ...PermissionName$1,
56
+ ...PermissionName
57
+ }).map((name)=>({
58
+ name
59
+ }));
60
+ }
61
+ function createFakeTokenVerificationData() {
62
+ return {
63
+ realm_id: 'd94b2f28-29e3-4ced-b8f1-6923a01dc1ee',
64
+ realm_name: REALM_MASTER_NAME,
65
+ sub_kind: 'user',
66
+ sub: 'd94b2f28-29e3-4ced-b8f1-6923a01dc1ee',
67
+ sub_name: 'admin',
68
+ permissions: generateAbilities()
69
+ };
70
+ }
71
+ function applyTokenVerificationData(socket, data, fakeAbilities) {
72
+ let abilities;
73
+ if (fakeAbilities) {
74
+ abilities = generateAbilities();
75
+ } else {
76
+ abilities = data.permissions;
77
+ }
78
+ socket.data.realmId = data.realm_id;
79
+ socket.data.realmName = data.realm_name;
80
+ socket.data.permissionChecker = new PermissionChecker({
81
+ provider: new PermissionMemoryProvider(abilities)
82
+ });
83
+ switch(data.sub_kind){
84
+ case OAuth2SubKind.USER:
85
+ {
86
+ socket.data.userId = data.sub;
87
+ socket.data.userName = data.sub_name;
88
+ break;
89
+ }
90
+ case OAuth2SubKind.ROBOT:
91
+ {
92
+ socket.data.robotId = data.sub;
93
+ socket.data.robotName = data.sub_name;
94
+ break;
95
+ }
96
+ case OAuth2SubKind.CLIENT:
97
+ {
98
+ socket.data.clientId = data.sub;
99
+ socket.data.clientName = data.sub_name;
100
+ break;
101
+ }
102
+ }
103
+ }
104
+
105
+ function createAuthupMiddleware(options) {
106
+ let baseURL;
107
+ if (options.baseURL) {
108
+ baseURL = options.baseURL;
109
+ }
110
+ let redis;
111
+ if (isRedisClientUsable()) {
112
+ redis = useRedisClient();
113
+ }
114
+ let vault;
115
+ if (isVaultClientUsable()) {
116
+ vault = useVaultClient();
117
+ }
118
+ if (!baseURL) {
119
+ const data = createFakeTokenVerificationData();
120
+ return (socket, next)=>{
121
+ applyTokenVerificationData(socket, data, options.fakeAbilities);
122
+ next();
123
+ };
124
+ }
125
+ let tokenCreator;
126
+ if (vault) {
127
+ tokenCreator = {
128
+ type: 'robotInVault',
129
+ name: 'system',
130
+ vault,
131
+ baseURL
132
+ };
133
+ } else {
134
+ tokenCreator = {
135
+ type: 'user',
136
+ name: 'admin',
137
+ password: 'start123',
138
+ baseURL
139
+ };
140
+ }
141
+ let cache;
142
+ if (redis) {
143
+ cache = new RedisTokenVerifierCache(redis);
144
+ } else {
145
+ cache = new MemoryTokenVerifierCache();
146
+ }
147
+ return createMiddleware({
148
+ tokenVerifier: new TokenVerifier({
149
+ baseURL,
150
+ creator: tokenCreator,
151
+ cache
152
+ }),
153
+ tokenVerifierHandler: (socket, data)=>applyTokenVerificationData(socket, data, options.fakeAbilities)
154
+ });
155
+ }
156
+ function mountAuthupMiddleware(nsp, options) {
157
+ const middleware = createAuthupMiddleware(options);
158
+ nsp.use(middleware);
159
+ nsp.use((socket, next)=>{
160
+ if (socket.data.userId) {
161
+ useLogger().info(`Socket/${socket.id}: User connected.`, {
162
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
163
+ actor_type: 'user',
164
+ actor_id: socket.data.userId
165
+ });
166
+ } else if (socket.data.robotId) {
167
+ useLogger().info(`Socket/${socket.id}: Robot connected.`, {
168
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
169
+ actor_type: 'robot',
170
+ actor_id: socket.data.robotId
171
+ });
172
+ } else if (socket.data.clientId) {
173
+ useLogger().info(`Socket/${socket.id}: Client connected.`, {
174
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
175
+ actor_type: 'client',
176
+ actor_id: socket.data.clientId
177
+ });
178
+ } else {
179
+ useLogger().warn(`Socket/${socket.id}: Not authenticated.`, {
180
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET
181
+ });
182
+ next(new UnauthorizedError());
183
+ return;
184
+ }
185
+ socket.on('disconnect', ()=>{
186
+ if (socket.data.userId) {
187
+ useLogger().info(`Socket/${socket.id}: User disconnected`, {
188
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
189
+ actor_type: 'user',
190
+ actor_id: socket.data.userId
191
+ });
192
+ } else if (socket.data.robotId) {
193
+ useLogger().info(`Socket/${socket.id}: Robot disconnected`, {
194
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
195
+ actor_type: 'robot',
196
+ actor_id: socket.data.userId
197
+ });
198
+ } else if (socket.data.clientId) {
199
+ useLogger().info(`Socket/${socket.id}: Client disconnected`, {
200
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
201
+ actor_type: 'client',
202
+ actor_id: socket.data.clientId
203
+ });
204
+ }
205
+ });
206
+ next();
207
+ });
208
+ }
209
+
210
+ function mountForceLoggedInMiddleware(input) {
211
+ input.use((socket, next)=>{
212
+ if (socket.data.userId || socket.data.robotId) {
213
+ next();
214
+ return;
215
+ }
216
+ next(new UnauthorizedError());
217
+ });
218
+ }
219
+
220
+ function mountLoggingMiddleware(nsp) {
221
+ nsp.on('error', (err)=>{
222
+ useLogger().error(err, {
223
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET
224
+ });
225
+ });
226
+ nsp.use((socket, next)=>{
227
+ useLogger().debug(`Socket/${socket.id}: Connected.`, {
228
+ namespace: socket.nsp.name,
229
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET
230
+ });
231
+ socket.on('disconnect', ()=>{
232
+ useLogger().debug(`Socket/${socket.id}: Disconnected.`, {
233
+ namespace: socket.nsp.name,
234
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET
235
+ });
236
+ });
237
+ next();
238
+ });
239
+ }
240
+
241
+ function createServer(httpServer) {
242
+ let adapter;
243
+ if (isRedisClientUsable()) {
244
+ adapter = createAdapter(useRedisPublishClient(), useRedisSubscribeClient());
245
+ }
246
+ const server = new Server(httpServer, {
247
+ adapter,
248
+ cors: {
249
+ origin (origin, callback) {
250
+ callback(null, true);
251
+ },
252
+ credentials: true
253
+ },
254
+ transports: [
255
+ 'websocket',
256
+ 'polling'
257
+ ]
258
+ });
259
+ server.engine.on('connection_error', (err)=>{
260
+ useLogger().error({
261
+ message: err.message,
262
+ code: err.code,
263
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET
264
+ });
265
+ });
266
+ return server;
267
+ }
268
+
269
+ export { createAuthupMiddleware, createServer, isSocketAuthenticated, mountAuthupMiddleware, mountForceLoggedInMiddleware, mountLoggingMiddleware, subscribeSocketRoom, unsubscribeSocketRoom };
270
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/helpers/authenticated.ts","../src/helpers/room-subscriptions.ts","../src/middlewares/authup/utils.ts","../src/middlewares/authup/create.ts","../src/middlewares/force-logged-in.ts","../src/middlewares/logging.ts","../src/server/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Socket } from '../types';\n\nexport function isSocketAuthenticated(socket: Socket) : boolean {\n return !!socket.data.userId ||\n !!socket.data.clientId ||\n !!socket.data.robotId;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Socket } from '../types';\n\nexport function subscribeSocketRoom(\n socket: Socket,\n roomName: string,\n) {\n if (!socket.data.roomSubscriptions) {\n socket.data.roomSubscriptions = {};\n }\n\n if (!socket.data.roomSubscriptions[roomName]) {\n socket.data.roomSubscriptions[roomName] = 0;\n }\n\n socket.data.roomSubscriptions[roomName]++;\n\n socket.join(roomName);\n}\n\nexport function unsubscribeSocketRoom(\n socket: Socket,\n roomName: string,\n) {\n if (!socket.data.roomSubscriptions) {\n return;\n }\n\n if (socket.data.roomSubscriptions[roomName]) {\n if (socket.data.roomSubscriptions[roomName] > 1) {\n socket.data.roomSubscriptions[roomName]--;\n } else {\n delete socket.data.roomSubscriptions[roomName];\n }\n }\n\n if (!socket.data.roomSubscriptions[roomName]) {\n socket.leave(roomName);\n }\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { PermissionName as AuthupPermissionName, REALM_MASTER_NAME } from '@authup/core-kit';\nimport type { PermissionItem } from '@authup/access';\nimport { OAuth2SubKind } from '@authup/specs';\nimport { PermissionChecker, PermissionMemoryProvider } from '@authup/access';\nimport type { TokenVerificationData } from '@authup/server-adapter-kit';\nimport { PermissionName } from '@privateaim/kit';\nimport type { Socket } from '../../types';\n\ntype TokenVerificationDataMinimal = Pick<\nTokenVerificationData,\n'permissions' |\n'realm_id' |\n'realm_name' |\n'sub' |\n'sub_kind' |\n'sub_name'\n>;\n\nfunction generateAbilities(): PermissionItem[] {\n return Object.values({\n ...PermissionName,\n ...AuthupPermissionName,\n }).map((name) => ({\n name,\n } satisfies PermissionItem));\n}\n\nexport function createFakeTokenVerificationData(): TokenVerificationDataMinimal {\n return {\n realm_id: 'd94b2f28-29e3-4ced-b8f1-6923a01dc1ee',\n realm_name: REALM_MASTER_NAME,\n\n sub_kind: 'user',\n sub: 'd94b2f28-29e3-4ced-b8f1-6923a01dc1ee',\n sub_name: 'admin',\n\n permissions: generateAbilities(),\n };\n}\n\nexport function applyTokenVerificationData(\n socket: Socket,\n data: TokenVerificationDataMinimal,\n fakeAbilities?: boolean,\n) {\n let abilities: PermissionItem[];\n if (fakeAbilities) {\n abilities = generateAbilities();\n } else {\n abilities = data.permissions;\n }\n\n socket.data.realmId = data.realm_id;\n socket.data.realmName = data.realm_name;\n\n socket.data.permissionChecker = new PermissionChecker({\n provider: new PermissionMemoryProvider(abilities),\n });\n\n switch (data.sub_kind) {\n case OAuth2SubKind.USER: {\n socket.data.userId = data.sub;\n socket.data.userName = data.sub_name;\n break;\n }\n case OAuth2SubKind.ROBOT: {\n socket.data.robotId = data.sub;\n socket.data.robotName = data.sub_name;\n break;\n }\n case OAuth2SubKind.CLIENT: {\n socket.data.clientId = data.sub;\n socket.data.clientName = data.sub_name;\n break;\n }\n }\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { UnauthorizedError } from '@ebec/http';\nimport type { VaultClient } from '@hapic/vault';\nimport {\n isRedisClientUsable, isVaultClientUsable, useLogger, useRedisClient, useVaultClient,\n} from '@privateaim/server-kit';\nimport { LogChannel, LogFlag } from '@privateaim/telemetry-kit';\nimport type { Client as RedisClient } from 'redis-extension';\nimport type { TokenCreatorOptions } from '@authup/core-http-kit';\nimport type { ITokenVerifierCache } from '@authup/server-adapter-kit';\nimport { MemoryTokenVerifierCache, RedisTokenVerifierCache, TokenVerifier } from '@authup/server-adapter-kit';\nimport { createMiddleware } from '@authup/server-adapter-socket-io';\nimport type {\n Middleware, Namespace, Server, Socket,\n} from '../../types';\nimport type { AuthupMiddlewareRegistrationOptions } from './types';\nimport { applyTokenVerificationData, createFakeTokenVerificationData } from './utils';\n\nexport function createAuthupMiddleware(\n options: AuthupMiddlewareRegistrationOptions,\n) : Middleware {\n let baseURL : string | undefined;\n if (options.baseURL) {\n baseURL = options.baseURL;\n }\n\n let redis : RedisClient | undefined;\n if (isRedisClientUsable()) {\n redis = useRedisClient();\n }\n\n let vault : VaultClient | undefined;\n if (isVaultClientUsable()) {\n vault = useVaultClient();\n }\n\n if (!baseURL) {\n const data = createFakeTokenVerificationData();\n\n return (socket, next) => {\n applyTokenVerificationData(socket, data, options.fakeAbilities);\n next();\n };\n }\n\n let tokenCreator : TokenCreatorOptions;\n if (vault) {\n tokenCreator = {\n type: 'robotInVault',\n name: 'system',\n vault,\n baseURL,\n };\n } else {\n tokenCreator = {\n type: 'user',\n name: 'admin',\n password: 'start123',\n baseURL,\n };\n }\n\n let cache : ITokenVerifierCache;\n if (redis) {\n cache = new RedisTokenVerifierCache(redis);\n } else {\n cache = new MemoryTokenVerifierCache();\n }\n\n return createMiddleware({\n tokenVerifier: new TokenVerifier({\n baseURL,\n creator: tokenCreator,\n cache,\n }),\n tokenVerifierHandler: (\n socket: Socket,\n data,\n ) => applyTokenVerificationData(socket, data, options.fakeAbilities),\n });\n}\n\nexport function mountAuthupMiddleware(\n nsp: Namespace | Server,\n options: AuthupMiddlewareRegistrationOptions,\n) {\n const middleware = createAuthupMiddleware(options);\n nsp.use(middleware);\n\n nsp.use((socket, next) => {\n if (socket.data.userId) {\n useLogger().info(`Socket/${socket.id}: User connected.`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n actor_type: 'user',\n actor_id: socket.data.userId,\n });\n } else if (socket.data.robotId) {\n useLogger().info(`Socket/${socket.id}: Robot connected.`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n actor_type: 'robot',\n actor_id: socket.data.robotId,\n });\n } else if (socket.data.clientId) {\n useLogger().info(`Socket/${socket.id}: Client connected.`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n actor_type: 'client',\n actor_id: socket.data.clientId,\n });\n } else {\n useLogger().warn(`Socket/${socket.id}: Not authenticated.`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n });\n\n next(new UnauthorizedError());\n return;\n }\n\n socket.on('disconnect', () => {\n if (socket.data.userId) {\n useLogger().info(`Socket/${socket.id}: User disconnected`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n actor_type: 'user',\n actor_id: socket.data.userId,\n });\n } else if (socket.data.robotId) {\n useLogger().info(`Socket/${socket.id}: Robot disconnected`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n actor_type: 'robot',\n actor_id: socket.data.userId,\n });\n } else if (socket.data.clientId) {\n useLogger().info(`Socket/${socket.id}: Client disconnected`, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n actor_type: 'client',\n actor_id: socket.data.clientId,\n });\n }\n });\n\n next();\n });\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { UnauthorizedError } from '@ebec/http';\nimport type { Namespace, Server } from '../types';\n\nexport function mountForceLoggedInMiddleware(input: Namespace | Server) {\n input.use((socket, next) => {\n if (socket.data.userId || socket.data.robotId) {\n next();\n return;\n }\n\n next(new UnauthorizedError());\n });\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { useLogger } from '@privateaim/server-kit';\nimport { LogChannel, LogFlag } from '@privateaim/telemetry-kit';\nimport type { Namespace, Server } from '../types';\n\nexport function mountLoggingMiddleware(\n nsp: Namespace | Server,\n) {\n nsp.on('error', (err) => {\n useLogger().error(err, {\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n });\n });\n\n nsp.use((socket, next) => {\n useLogger().debug(`Socket/${socket.id}: Connected.`, {\n namespace: socket.nsp.name,\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n });\n\n socket.on('disconnect', () => {\n useLogger().debug(`Socket/${socket.id}: Disconnected.`, {\n namespace: socket.nsp.name,\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n });\n });\n\n next();\n });\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n isRedisClientUsable, useLogger, useRedisPublishClient, useRedisSubscribeClient,\n} from '@privateaim/server-kit';\nimport { LogChannel, LogFlag } from '@privateaim/telemetry-kit';\nimport { createAdapter } from '@socket.io/redis-adapter';\nimport type { Server as HTTPServer } from 'node:http';\nimport type { DefaultEventsMap, ServerOptions } from 'socket.io';\nimport { Server } from 'socket.io';\n\nexport function createServer<\n ListenEvents extends Record<string, any> = DefaultEventsMap,\n EmitEvents extends Record<string, any> = ListenEvents,\n ServerSideEvents extends Record<string, any> = DefaultEventsMap,\n SocketData = any,\n>(\n httpServer: HTTPServer,\n): Server<ListenEvents, EmitEvents, ServerSideEvents, SocketData> {\n let adapter : ServerOptions['adapter'] | undefined;\n if (isRedisClientUsable()) {\n adapter = createAdapter(\n useRedisPublishClient(),\n useRedisSubscribeClient(),\n );\n }\n\n const server = new Server<\n ListenEvents,\n EmitEvents,\n ServerSideEvents,\n SocketData\n >(httpServer, {\n adapter,\n cors: {\n origin(origin, callback) {\n callback(null, true);\n },\n credentials: true,\n },\n transports: ['websocket', 'polling'],\n });\n\n server.engine.on('connection_error', (err) => {\n useLogger().error({\n message: err.message,\n code: err.code,\n [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,\n });\n });\n\n return server;\n}\n"],"names":["isSocketAuthenticated","socket","data","userId","clientId","robotId","subscribeSocketRoom","roomName","roomSubscriptions","join","unsubscribeSocketRoom","leave","generateAbilities","Object","values","PermissionName","AuthupPermissionName","map","name","createFakeTokenVerificationData","realm_id","realm_name","REALM_MASTER_NAME","sub_kind","sub","sub_name","permissions","applyTokenVerificationData","fakeAbilities","abilities","realmId","realmName","permissionChecker","PermissionChecker","provider","PermissionMemoryProvider","OAuth2SubKind","USER","userName","ROBOT","robotName","CLIENT","clientName","createAuthupMiddleware","options","baseURL","redis","isRedisClientUsable","useRedisClient","vault","isVaultClientUsable","useVaultClient","next","tokenCreator","type","password","cache","RedisTokenVerifierCache","MemoryTokenVerifierCache","createMiddleware","tokenVerifier","TokenVerifier","creator","tokenVerifierHandler","mountAuthupMiddleware","nsp","middleware","use","useLogger","info","id","LogFlag","CHANNEL","LogChannel","WEBSOCKET","actor_type","actor_id","warn","UnauthorizedError","on","mountForceLoggedInMiddleware","input","mountLoggingMiddleware","err","error","debug","namespace","createServer","httpServer","adapter","createAdapter","useRedisPublishClient","useRedisSubscribeClient","server","Server","cors","origin","callback","credentials","transports","engine","message","code"],"mappings":";;;;;;;;;;;;AAAA;;;;;IASO,SAASA,qBAAAA,CAAsBC,MAAc,EAAA;AAChD,IAAA,OAAO,CAAC,CAACA,MAAAA,CAAOC,IAAI,CAACC,MAAM,IACvB,CAAC,CAACF,OAAOC,IAAI,CAACE,QAAQ,IACtB,CAAC,CAACH,MAAAA,CAAOC,IAAI,CAACG,OAAO;AAC7B;;ACbA;;;;;AAKC,IAIM,SAASC,mBAAAA,CACZL,MAAc,EACdM,QAAgB,EAAA;AAEhB,IAAA,IAAI,CAACN,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,EAAE;AAChCP,QAAAA,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,GAAG,EAAC;AACrC,IAAA;AAEA,IAAA,IAAI,CAACP,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,CAACD,SAAS,EAAE;AAC1CN,QAAAA,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,CAACD,SAAS,GAAG,CAAA;AAC9C,IAAA;AAEAN,IAAAA,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,CAACD,QAAAA,CAAS,EAAA;AAEvCN,IAAAA,MAAAA,CAAOQ,IAAI,CAACF,QAAAA,CAAAA;AAChB;AAEO,SAASG,qBAAAA,CACZT,MAAc,EACdM,QAAgB,EAAA;AAEhB,IAAA,IAAI,CAACN,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,EAAE;AAChC,QAAA;AACJ,IAAA;AAEA,IAAA,IAAIP,OAAOC,IAAI,CAACM,iBAAiB,CAACD,SAAS,EAAE;AACzC,QAAA,IAAIN,OAAOC,IAAI,CAACM,iBAAiB,CAACD,QAAAA,CAAS,GAAG,CAAA,EAAG;AAC7CN,YAAAA,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,CAACD,QAAAA,CAAS,EAAA;QAC3C,CAAA,MAAO;AACH,YAAA,OAAON,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,CAACD,QAAAA,CAAS;AAClD,QAAA;AACJ,IAAA;AAEA,IAAA,IAAI,CAACN,MAAAA,CAAOC,IAAI,CAACM,iBAAiB,CAACD,SAAS,EAAE;AAC1CN,QAAAA,MAAAA,CAAOU,KAAK,CAACJ,QAAAA,CAAAA;AACjB,IAAA;AACJ;;ACpBA,SAASK,iBAAAA,GAAAA;IACL,OAAOC,MAAAA,CAAOC,MAAM,CAAC;AACjB,QAAA,GAAGC,gBAAc;AACjB,QAAA,GAAGC;AACP,KAAA,CAAA,CAAGC,GAAG,CAAC,CAACC,IAAAA,IAAU;AACdA,YAAAA;SACJ,CAAA,CAAA;AACJ;AAEO,SAASC,+BAAAA,GAAAA;IACZ,OAAO;QACHC,QAAAA,EAAU,sCAAA;QACVC,UAAAA,EAAYC,iBAAAA;QAEZC,QAAAA,EAAU,MAAA;QACVC,GAAAA,EAAK,sCAAA;QACLC,QAAAA,EAAU,OAAA;QAEVC,WAAAA,EAAad,iBAAAA;AACjB,KAAA;AACJ;AAEO,SAASe,0BAAAA,CACZ1B,MAAc,EACdC,IAAkC,EAClC0B,aAAuB,EAAA;IAEvB,IAAIC,SAAAA;AACJ,IAAA,IAAID,aAAAA,EAAe;QACfC,SAAAA,GAAYjB,iBAAAA,EAAAA;IAChB,CAAA,MAAO;AACHiB,QAAAA,SAAAA,GAAY3B,KAAKwB,WAAW;AAChC,IAAA;AAEAzB,IAAAA,MAAAA,CAAOC,IAAI,CAAC4B,OAAO,GAAG5B,KAAKkB,QAAQ;AACnCnB,IAAAA,MAAAA,CAAOC,IAAI,CAAC6B,SAAS,GAAG7B,KAAKmB,UAAU;AAEvCpB,IAAAA,MAAAA,CAAOC,IAAI,CAAC8B,iBAAiB,GAAG,IAAIC,iBAAAA,CAAkB;AAClDC,QAAAA,QAAAA,EAAU,IAAIC,wBAAAA,CAAyBN,SAAAA;AAC3C,KAAA,CAAA;AAEA,IAAA,OAAQ3B,KAAKqB,QAAQ;AACjB,QAAA,KAAKa,cAAcC,IAAI;AAAE,YAAA;AACrBpC,gBAAAA,MAAAA,CAAOC,IAAI,CAACC,MAAM,GAAGD,KAAKsB,GAAG;AAC7BvB,gBAAAA,MAAAA,CAAOC,IAAI,CAACoC,QAAQ,GAAGpC,KAAKuB,QAAQ;AACpC,gBAAA;AACJ,YAAA;AACA,QAAA,KAAKW,cAAcG,KAAK;AAAE,YAAA;AACtBtC,gBAAAA,MAAAA,CAAOC,IAAI,CAACG,OAAO,GAAGH,KAAKsB,GAAG;AAC9BvB,gBAAAA,MAAAA,CAAOC,IAAI,CAACsC,SAAS,GAAGtC,KAAKuB,QAAQ;AACrC,gBAAA;AACJ,YAAA;AACA,QAAA,KAAKW,cAAcK,MAAM;AAAE,YAAA;AACvBxC,gBAAAA,MAAAA,CAAOC,IAAI,CAACE,QAAQ,GAAGF,KAAKsB,GAAG;AAC/BvB,gBAAAA,MAAAA,CAAOC,IAAI,CAACwC,UAAU,GAAGxC,KAAKuB,QAAQ;AACtC,gBAAA;AACJ,YAAA;AACJ;AACJ;;AC3DO,SAASkB,uBACZC,OAA4C,EAAA;IAE5C,IAAIC,OAAAA;IACJ,IAAID,OAAAA,CAAQC,OAAO,EAAE;AACjBA,QAAAA,OAAAA,GAAUD,QAAQC,OAAO;AAC7B,IAAA;IAEA,IAAIC,KAAAA;AACJ,IAAA,IAAIC,mBAAAA,EAAAA,EAAuB;QACvBD,KAAAA,GAAQE,cAAAA,EAAAA;AACZ,IAAA;IAEA,IAAIC,KAAAA;AACJ,IAAA,IAAIC,mBAAAA,EAAAA,EAAuB;QACvBD,KAAAA,GAAQE,cAAAA,EAAAA;AACZ,IAAA;AAEA,IAAA,IAAI,CAACN,OAAAA,EAAS;AACV,QAAA,MAAM3C,IAAAA,GAAOiB,+BAAAA,EAAAA;AAEb,QAAA,OAAO,CAAClB,MAAAA,EAAQmD,IAAAA,GAAAA;YACZzB,0BAAAA,CAA2B1B,MAAAA,EAAQC,IAAAA,EAAM0C,OAAAA,CAAQhB,aAAa,CAAA;AAC9DwB,YAAAA,IAAAA,EAAAA;AACJ,QAAA,CAAA;AACJ,IAAA;IAEA,IAAIC,YAAAA;AACJ,IAAA,IAAIJ,KAAAA,EAAO;QACPI,YAAAA,GAAe;YACXC,IAAAA,EAAM,cAAA;YACNpC,IAAAA,EAAM,QAAA;AACN+B,YAAAA,KAAAA;AACAJ,YAAAA;AACJ,SAAA;IACJ,CAAA,MAAO;QACHQ,YAAAA,GAAe;YACXC,IAAAA,EAAM,MAAA;YACNpC,IAAAA,EAAM,OAAA;YACNqC,QAAAA,EAAU,UAAA;AACVV,YAAAA;AACJ,SAAA;AACJ,IAAA;IAEA,IAAIW,KAAAA;AACJ,IAAA,IAAIV,KAAAA,EAAO;AACPU,QAAAA,KAAAA,GAAQ,IAAIC,uBAAAA,CAAwBX,KAAAA,CAAAA;IACxC,CAAA,MAAO;AACHU,QAAAA,KAAAA,GAAQ,IAAIE,wBAAAA,EAAAA;AAChB,IAAA;AAEA,IAAA,OAAOC,gBAAAA,CAAiB;AACpBC,QAAAA,aAAAA,EAAe,IAAIC,aAAAA,CAAc;AAC7BhB,YAAAA,OAAAA;YACAiB,OAAAA,EAAST,YAAAA;AACTG,YAAAA;AACJ,SAAA,CAAA;AACAO,QAAAA,oBAAAA,EAAsB,CAClB9D,MAAAA,EACAC,IAAAA,GACCyB,2BAA2B1B,MAAAA,EAAQC,IAAAA,EAAM0C,QAAQhB,aAAa;AACvE,KAAA,CAAA;AACJ;AAEO,SAASoC,qBAAAA,CACZC,GAAuB,EACvBrB,OAA4C,EAAA;AAE5C,IAAA,MAAMsB,aAAavB,sBAAAA,CAAuBC,OAAAA,CAAAA;AAC1CqB,IAAAA,GAAAA,CAAIE,GAAG,CAACD,UAAAA,CAAAA;IAERD,GAAAA,CAAIE,GAAG,CAAC,CAAClE,MAAAA,EAAQmD,IAAAA,GAAAA;AACb,QAAA,IAAInD,MAAAA,CAAOC,IAAI,CAACC,MAAM,EAAE;YACpBiE,SAAAA,EAAAA,CAAYC,IAAI,CAAC,CAAC,OAAO,EAAEpE,OAAOqE,EAAE,CAAC,iBAAiB,CAAC,EAAE;AACrD,gBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC,SAAS;gBACvCC,UAAAA,EAAY,MAAA;gBACZC,QAAAA,EAAU3E,MAAAA,CAAOC,IAAI,CAACC;AAC1B,aAAA,CAAA;AACJ,QAAA,CAAA,MAAO,IAAIF,MAAAA,CAAOC,IAAI,CAACG,OAAO,EAAE;YAC5B+D,SAAAA,EAAAA,CAAYC,IAAI,CAAC,CAAC,OAAO,EAAEpE,OAAOqE,EAAE,CAAC,kBAAkB,CAAC,EAAE;AACtD,gBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC,SAAS;gBACvCC,UAAAA,EAAY,OAAA;gBACZC,QAAAA,EAAU3E,MAAAA,CAAOC,IAAI,CAACG;AAC1B,aAAA,CAAA;AACJ,QAAA,CAAA,MAAO,IAAIJ,MAAAA,CAAOC,IAAI,CAACE,QAAQ,EAAE;YAC7BgE,SAAAA,EAAAA,CAAYC,IAAI,CAAC,CAAC,OAAO,EAAEpE,OAAOqE,EAAE,CAAC,mBAAmB,CAAC,EAAE;AACvD,gBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC,SAAS;gBACvCC,UAAAA,EAAY,QAAA;gBACZC,QAAAA,EAAU3E,MAAAA,CAAOC,IAAI,CAACE;AAC1B,aAAA,CAAA;QACJ,CAAA,MAAO;YACHgE,SAAAA,EAAAA,CAAYS,IAAI,CAAC,CAAC,OAAO,EAAE5E,OAAOqE,EAAE,CAAC,oBAAoB,CAAC,EAAE;AACxD,gBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC;AAClC,aAAA,CAAA;AAEAtB,YAAAA,IAAAA,CAAK,IAAI0B,iBAAAA,EAAAA,CAAAA;AACT,YAAA;AACJ,QAAA;QAEA7E,MAAAA,CAAO8E,EAAE,CAAC,YAAA,EAAc,IAAA;AACpB,YAAA,IAAI9E,MAAAA,CAAOC,IAAI,CAACC,MAAM,EAAE;gBACpBiE,SAAAA,EAAAA,CAAYC,IAAI,CAAC,CAAC,OAAO,EAAEpE,OAAOqE,EAAE,CAAC,mBAAmB,CAAC,EAAE;AACvD,oBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC,SAAS;oBACvCC,UAAAA,EAAY,MAAA;oBACZC,QAAAA,EAAU3E,MAAAA,CAAOC,IAAI,CAACC;AAC1B,iBAAA,CAAA;AACJ,YAAA,CAAA,MAAO,IAAIF,MAAAA,CAAOC,IAAI,CAACG,OAAO,EAAE;gBAC5B+D,SAAAA,EAAAA,CAAYC,IAAI,CAAC,CAAC,OAAO,EAAEpE,OAAOqE,EAAE,CAAC,oBAAoB,CAAC,EAAE;AACxD,oBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC,SAAS;oBACvCC,UAAAA,EAAY,OAAA;oBACZC,QAAAA,EAAU3E,MAAAA,CAAOC,IAAI,CAACC;AAC1B,iBAAA,CAAA;AACJ,YAAA,CAAA,MAAO,IAAIF,MAAAA,CAAOC,IAAI,CAACE,QAAQ,EAAE;gBAC7BgE,SAAAA,EAAAA,CAAYC,IAAI,CAAC,CAAC,OAAO,EAAEpE,OAAOqE,EAAE,CAAC,qBAAqB,CAAC,EAAE;AACzD,oBAAA,CAACC,OAAAA,CAAQC,OAAO,GAAGC,WAAWC,SAAS;oBACvCC,UAAAA,EAAY,QAAA;oBACZC,QAAAA,EAAU3E,MAAAA,CAAOC,IAAI,CAACE;AAC1B,iBAAA,CAAA;AACJ,YAAA;AACJ,QAAA,CAAA,CAAA;AAEAgD,QAAAA,IAAAA,EAAAA;AACJ,IAAA,CAAA,CAAA;AACJ;;ACzIO,SAAS4B,6BAA6BC,KAAyB,EAAA;IAClEA,KAAAA,CAAMd,GAAG,CAAC,CAAClE,MAAAA,EAAQmD,IAAAA,GAAAA;QACf,IAAInD,MAAAA,CAAOC,IAAI,CAACC,MAAM,IAAIF,MAAAA,CAAOC,IAAI,CAACG,OAAO,EAAE;AAC3C+C,YAAAA,IAAAA,EAAAA;AACA,YAAA;AACJ,QAAA;AAEAA,QAAAA,IAAAA,CAAK,IAAI0B,iBAAAA,EAAAA,CAAAA;AACb,IAAA,CAAA,CAAA;AACJ;;ACRO,SAASI,uBACZjB,GAAuB,EAAA;IAEvBA,GAAAA,CAAIc,EAAE,CAAC,OAAA,EAAS,CAACI,GAAAA,GAAAA;QACbf,SAAAA,EAAAA,CAAYgB,KAAK,CAACD,GAAAA,EAAK;AACnB,YAAA,CAACZ,OAAAA,CAAQC,OAAO,GAAGC,WAAWC;AAClC,SAAA,CAAA;AACJ,IAAA,CAAA,CAAA;IAEAT,GAAAA,CAAIE,GAAG,CAAC,CAAClE,MAAAA,EAAQmD,IAAAA,GAAAA;QACbgB,SAAAA,EAAAA,CAAYiB,KAAK,CAAC,CAAC,OAAO,EAAEpF,OAAOqE,EAAE,CAAC,YAAY,CAAC,EAAE;YACjDgB,SAAAA,EAAWrF,MAAAA,CAAOgE,GAAG,CAAC/C,IAAI;AAC1B,YAAA,CAACqD,OAAAA,CAAQC,OAAO,GAAGC,WAAWC;AAClC,SAAA,CAAA;QAEAzE,MAAAA,CAAO8E,EAAE,CAAC,YAAA,EAAc,IAAA;YACpBX,SAAAA,EAAAA,CAAYiB,KAAK,CAAC,CAAC,OAAO,EAAEpF,OAAOqE,EAAE,CAAC,eAAe,CAAC,EAAE;gBACpDgB,SAAAA,EAAWrF,MAAAA,CAAOgE,GAAG,CAAC/C,IAAI;AAC1B,gBAAA,CAACqD,OAAAA,CAAQC,OAAO,GAAGC,WAAWC;AAClC,aAAA,CAAA;AACJ,QAAA,CAAA,CAAA;AAEAtB,QAAAA,IAAAA,EAAAA;AACJ,IAAA,CAAA,CAAA;AACJ;;ACnBO,SAASmC,aAMZC,UAAsB,EAAA;IAEtB,IAAIC,OAAAA;AACJ,IAAA,IAAI1C,mBAAAA,EAAAA,EAAuB;AACvB0C,QAAAA,OAAAA,GAAUC,cACNC,qBAAAA,EAAAA,EACAC,uBAAAA,EAAAA,CAAAA;AAER,IAAA;IAEA,MAAMC,MAAAA,GAAS,IAAIC,MAAAA,CAKjBN,UAAAA,EAAY;AACVC,QAAAA,OAAAA;QACAM,IAAAA,EAAM;YACFC,MAAAA,CAAAA,CAAOA,MAAM,EAAEC,QAAQ,EAAA;AACnBA,gBAAAA,QAAAA,CAAS,IAAA,EAAM,IAAA,CAAA;AACnB,YAAA,CAAA;YACAC,WAAAA,EAAa;AACjB,SAAA;QACAC,UAAAA,EAAY;AAAC,YAAA,WAAA;AAAa,YAAA;AAAU;AACxC,KAAA,CAAA;AAEAN,IAAAA,MAAAA,CAAOO,MAAM,CAACrB,EAAE,CAAC,oBAAoB,CAACI,GAAAA,GAAAA;AAClCf,QAAAA,SAAAA,EAAAA,CAAYgB,KAAK,CAAC;AACdiB,YAAAA,OAAAA,EAASlB,IAAIkB,OAAO;AACpBC,YAAAA,IAAAA,EAAMnB,IAAImB,IAAI;AACd,YAAA,CAAC/B,OAAAA,CAAQC,OAAO,GAAGC,WAAWC;AAClC,SAAA,CAAA;AACJ,IAAA,CAAA,CAAA;IAEA,OAAOmB,MAAAA;AACX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/middlewares/authup/create.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACR,UAAU,EAAE,SAAS,EAAE,MAAM,EAChC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,SAAS,CAAC;AAGnE,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,mCAAmC,GAC5C,UAAU,CA6Db;AAED,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,SAAS,GAAG,MAAM,EACvB,OAAO,EAAE,mCAAmC,QAyD/C"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/middlewares/authup/create.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,UAAU,EAAE,SAAS,EAAE,MAAM,EAChC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,SAAS,CAAC;AAGnE,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,mCAAmC,GAC5C,UAAU,CA4Db;AAED,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,SAAS,GAAG,MAAM,EACvB,OAAO,EAAE,mCAAmC,QAyD/C"}
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "@privateaim/server-realtime-kit",
3
- "version": "0.8.21",
4
- "main": "dist/index.js",
3
+ "type": "module",
4
+ "version": "0.8.23",
5
+ "module": "dist/index.mjs",
5
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ "./package.json": "./package.json",
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs"
12
+ }
13
+ },
6
14
  "author": {
7
15
  "name": "Peter Placzek",
8
16
  "email": "contact@tada5hi.net",
@@ -11,30 +19,32 @@
11
19
  "license": "Apache-2.0",
12
20
  "description": "This package contains the realtime application which connects the API with socket based clients.",
13
21
  "dependencies": {
14
- "@authup/access": "^1.0.0-beta.27",
15
- "@authup/specs": "^1.0.0-beta.27",
16
- "@authup/kit": "^1.0.0-beta.27",
17
- "@authup/core-kit": "^1.0.0-beta.27",
18
- "@authup/core-realtime-kit": "^1.0.0-beta.27",
19
- "@authup/server-adapter-kit": "^1.0.0-beta.27",
20
- "@authup/server-adapter-socket-io": "^1.0.0-beta.27",
22
+ "@authup/access": "^1.0.0-beta.28",
23
+ "@authup/specs": "^1.0.0-beta.28",
24
+ "@authup/kit": "^1.0.0-beta.28",
25
+ "@authup/core-kit": "^1.0.0-beta.28",
26
+ "@authup/core-realtime-kit": "^1.0.0-beta.28",
27
+ "@authup/server-adapter-kit": "^1.0.0-beta.28",
28
+ "@authup/server-adapter-socket-io": "^1.0.0-beta.28",
21
29
  "@socket.io/redis-adapter": "^8.3.0",
22
- "@privateaim/kit": "^0.8.21",
23
- "@privateaim/telemetry-kit": "^0.8.21",
24
- "@privateaim/server-kit": "^0.8.21",
30
+ "@privateaim/kit": "^0.8.23",
31
+ "@privateaim/telemetry-kit": "^0.8.23",
32
+ "@privateaim/server-kit": "^0.8.23",
25
33
  "@ebec/http": "^2.3.0"
26
34
  },
27
35
  "devDependencies": {
28
- "redis-extension": "^2.0.2",
29
- "socket.io": "^4.8.1"
36
+ "redis-extension": "^2.0.4",
37
+ "socket.io": "^4.8.2"
30
38
  },
31
39
  "peerDependencies": {
32
- "redis-extension": "^2.0.2",
33
- "socket.io": "^4.8.1"
40
+ "redis-extension": "^2.0.4",
41
+ "socket.io": "^4.8.2"
34
42
  },
35
43
  "scripts": {
36
44
  "dev": "ts-node src/index.ts",
37
- "build": "rimraf dist && tsc -p tsconfig.build.json",
45
+ "build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
46
+ "build:js": "rollup -c",
47
+ "build": "rimraf ./dist && cross-env NODE_ENV=production npm run build:js && npm run build:types",
38
48
  "start": "node dist/index.js"
39
49
  }
40
50
  }
@@ -0,0 +1,14 @@
1
+ /*
2
+ * Copyright (c) 2022-2024.
3
+ * Author Peter Placzek (tada5hi)
4
+ * For the full copyright and license information,
5
+ * view the LICENSE file that was distributed with this source code.
6
+ */
7
+
8
+ import fs from 'node:fs';
9
+
10
+ import { createConfig } from '../../rollup.config.mjs';
11
+
12
+ export default createConfig({
13
+ pkg: JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), { encoding: 'utf-8' })),
14
+ });
@@ -0,0 +1,14 @@
1
+ /*
2
+ * Copyright (c) 2025.
3
+ * Author Peter Placzek (tada5hi)
4
+ * For the full copyright and license information,
5
+ * view the LICENSE file that was distributed with this source code.
6
+ */
7
+
8
+ import type { Socket } from '../types';
9
+
10
+ export function isSocketAuthenticated(socket: Socket) : boolean {
11
+ return !!socket.data.userId ||
12
+ !!socket.data.clientId ||
13
+ !!socket.data.robotId;
14
+ }
@@ -5,4 +5,5 @@
5
5
  * view the LICENSE file that was distributed with this source code.
6
6
  */
7
7
 
8
+ export * from './authenticated';
8
9
  export * from './room-subscriptions';
@@ -13,7 +13,8 @@ import {
13
13
  import { LogChannel, LogFlag } from '@privateaim/telemetry-kit';
14
14
  import type { Client as RedisClient } from 'redis-extension';
15
15
  import type { TokenCreatorOptions } from '@authup/core-http-kit';
16
- import type { TokenVerifierRedisCacheOptions } from '@authup/server-adapter-kit';
16
+ import type { ITokenVerifierCache } from '@authup/server-adapter-kit';
17
+ import { MemoryTokenVerifierCache, RedisTokenVerifierCache, TokenVerifier } from '@authup/server-adapter-kit';
17
18
  import { createMiddleware } from '@authup/server-adapter-socket-io';
18
19
  import type {
19
20
  Middleware, Namespace, Server, Socket,
@@ -65,20 +66,19 @@ export function createAuthupMiddleware(
65
66
  };
66
67
  }
67
68
 
68
- let tokenCache : TokenVerifierRedisCacheOptions | undefined;
69
+ let cache : ITokenVerifierCache;
69
70
  if (redis) {
70
- tokenCache = {
71
- type: 'redis',
72
- client: redis,
73
- };
71
+ cache = new RedisTokenVerifierCache(redis);
72
+ } else {
73
+ cache = new MemoryTokenVerifierCache();
74
74
  }
75
75
 
76
76
  return createMiddleware({
77
- tokenVerifier: {
77
+ tokenVerifier: new TokenVerifier({
78
78
  baseURL,
79
79
  creator: tokenCreator,
80
- cache: tokenCache,
81
- },
80
+ cache,
81
+ }),
82
82
  tokenVerifierHandler: (
83
83
  socket: Socket,
84
84
  data,
@@ -1,24 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./room-subscriptions"), exports);
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,uDAAqC"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.subscribeSocketRoom = subscribeSocketRoom;
10
- exports.unsubscribeSocketRoom = unsubscribeSocketRoom;
11
- function subscribeSocketRoom(socket, roomName) {
12
- if (!socket.data.roomSubscriptions) {
13
- socket.data.roomSubscriptions = {};
14
- }
15
- if (!socket.data.roomSubscriptions[roomName]) {
16
- socket.data.roomSubscriptions[roomName] = 0;
17
- }
18
- socket.data.roomSubscriptions[roomName]++;
19
- socket.join(roomName);
20
- }
21
- function unsubscribeSocketRoom(socket, roomName) {
22
- if (!socket.data.roomSubscriptions) {
23
- return;
24
- }
25
- if (socket.data.roomSubscriptions[roomName]) {
26
- if (socket.data.roomSubscriptions[roomName] > 1) {
27
- socket.data.roomSubscriptions[roomName]--;
28
- }
29
- else {
30
- delete socket.data.roomSubscriptions[roomName];
31
- }
32
- }
33
- if (!socket.data.roomSubscriptions[roomName]) {
34
- socket.leave(roomName);
35
- }
36
- }
37
- //# sourceMappingURL=room-subscriptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"room-subscriptions.js","sourceRoot":"","sources":["../../src/helpers/room-subscriptions.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAIH,kDAeC;AAED,sDAmBC;AApCD,SAAgB,mBAAmB,CAC/B,MAAc,EACd,QAAgB;IAEhB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,qBAAqB,CACjC,MAAc,EACd,QAAgB;IAEhB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,OAAO;IACX,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;AACL,CAAC"}
package/dist/index.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./helpers"), exports);
24
- __exportStar(require("./middlewares"), exports);
25
- __exportStar(require("./server"), exports);
26
- __exportStar(require("./types"), exports);
27
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createAuthupMiddleware = createAuthupMiddleware;
10
- exports.mountAuthupMiddleware = mountAuthupMiddleware;
11
- const http_1 = require("@ebec/http");
12
- const server_kit_1 = require("@privateaim/server-kit");
13
- const telemetry_kit_1 = require("@privateaim/telemetry-kit");
14
- const server_adapter_socket_io_1 = require("@authup/server-adapter-socket-io");
15
- const utils_1 = require("./utils");
16
- function createAuthupMiddleware(options) {
17
- let baseURL;
18
- if (options.baseURL) {
19
- baseURL = options.baseURL;
20
- }
21
- let redis;
22
- if ((0, server_kit_1.isRedisClientUsable)()) {
23
- redis = (0, server_kit_1.useRedisClient)();
24
- }
25
- let vault;
26
- if ((0, server_kit_1.isVaultClientUsable)()) {
27
- vault = (0, server_kit_1.useVaultClient)();
28
- }
29
- if (!baseURL) {
30
- const data = (0, utils_1.createFakeTokenVerificationData)();
31
- return (socket, next) => {
32
- (0, utils_1.applyTokenVerificationData)(socket, data, options.fakeAbilities);
33
- next();
34
- };
35
- }
36
- let tokenCreator;
37
- if (vault) {
38
- tokenCreator = {
39
- type: 'robotInVault',
40
- name: 'system',
41
- vault,
42
- baseURL,
43
- };
44
- }
45
- else {
46
- tokenCreator = {
47
- type: 'user',
48
- name: 'admin',
49
- password: 'start123',
50
- baseURL,
51
- };
52
- }
53
- let tokenCache;
54
- if (redis) {
55
- tokenCache = {
56
- type: 'redis',
57
- client: redis,
58
- };
59
- }
60
- return (0, server_adapter_socket_io_1.createMiddleware)({
61
- tokenVerifier: {
62
- baseURL,
63
- creator: tokenCreator,
64
- cache: tokenCache,
65
- },
66
- tokenVerifierHandler: (socket, data) => (0, utils_1.applyTokenVerificationData)(socket, data, options.fakeAbilities),
67
- });
68
- }
69
- function mountAuthupMiddleware(nsp, options) {
70
- const middleware = createAuthupMiddleware(options);
71
- nsp.use(middleware);
72
- nsp.use((socket, next) => {
73
- if (socket.data.userId) {
74
- (0, server_kit_1.useLogger)().info(`Socket/${socket.id}: User connected.`, {
75
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
76
- actor_type: 'user',
77
- actor_id: socket.data.userId,
78
- });
79
- }
80
- else if (socket.data.robotId) {
81
- (0, server_kit_1.useLogger)().info(`Socket/${socket.id}: Robot connected.`, {
82
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
83
- actor_type: 'robot',
84
- actor_id: socket.data.robotId,
85
- });
86
- }
87
- else if (socket.data.clientId) {
88
- (0, server_kit_1.useLogger)().info(`Socket/${socket.id}: Client connected.`, {
89
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
90
- actor_type: 'client',
91
- actor_id: socket.data.clientId,
92
- });
93
- }
94
- else {
95
- (0, server_kit_1.useLogger)().warn(`Socket/${socket.id}: Not authenticated.`, {
96
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
97
- });
98
- next(new http_1.UnauthorizedError());
99
- return;
100
- }
101
- socket.on('disconnect', () => {
102
- if (socket.data.userId) {
103
- (0, server_kit_1.useLogger)().info(`Socket/${socket.id}: User disconnected`, {
104
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
105
- actor_type: 'user',
106
- actor_id: socket.data.userId,
107
- });
108
- }
109
- else if (socket.data.robotId) {
110
- (0, server_kit_1.useLogger)().info(`Socket/${socket.id}: Robot disconnected`, {
111
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
112
- actor_type: 'robot',
113
- actor_id: socket.data.userId,
114
- });
115
- }
116
- else if (socket.data.clientId) {
117
- (0, server_kit_1.useLogger)().info(`Socket/${socket.id}: Client disconnected`, {
118
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
119
- actor_type: 'client',
120
- actor_id: socket.data.clientId,
121
- });
122
- }
123
- });
124
- next();
125
- });
126
- }
127
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/middlewares/authup/create.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./create"), exports);
24
- __exportStar(require("./types"), exports);
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middlewares/authup/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0CAAwB"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/middlewares/authup/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createFakeTokenVerificationData = createFakeTokenVerificationData;
10
- exports.applyTokenVerificationData = applyTokenVerificationData;
11
- const core_kit_1 = require("@authup/core-kit");
12
- const specs_1 = require("@authup/specs");
13
- const access_1 = require("@authup/access");
14
- const kit_1 = require("@privateaim/kit");
15
- function generateAbilities() {
16
- return Object.values({
17
- ...kit_1.PermissionName,
18
- ...core_kit_1.PermissionName,
19
- }).map((name) => ({
20
- name,
21
- }));
22
- }
23
- function createFakeTokenVerificationData() {
24
- return {
25
- realm_id: 'd94b2f28-29e3-4ced-b8f1-6923a01dc1ee',
26
- realm_name: core_kit_1.REALM_MASTER_NAME,
27
- sub_kind: 'user',
28
- sub: 'd94b2f28-29e3-4ced-b8f1-6923a01dc1ee',
29
- sub_name: 'admin',
30
- permissions: generateAbilities(),
31
- };
32
- }
33
- function applyTokenVerificationData(socket, data, fakeAbilities) {
34
- let abilities;
35
- if (fakeAbilities) {
36
- abilities = generateAbilities();
37
- }
38
- else {
39
- abilities = data.permissions;
40
- }
41
- socket.data.realmId = data.realm_id;
42
- socket.data.realmName = data.realm_name;
43
- socket.data.permissionChecker = new access_1.PermissionChecker({
44
- provider: new access_1.PermissionMemoryProvider(abilities),
45
- });
46
- switch (data.sub_kind) {
47
- case specs_1.OAuth2SubKind.USER: {
48
- socket.data.userId = data.sub;
49
- socket.data.userName = data.sub_name;
50
- break;
51
- }
52
- case specs_1.OAuth2SubKind.ROBOT: {
53
- socket.data.robotId = data.sub;
54
- socket.data.robotName = data.sub_name;
55
- break;
56
- }
57
- case specs_1.OAuth2SubKind.CLIENT: {
58
- socket.data.clientId = data.sub;
59
- socket.data.clientName = data.sub_name;
60
- break;
61
- }
62
- }
63
- }
64
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/middlewares/authup/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA6BH,0EAWC;AAED,gEAoCC;AA5ED,+CAA6F;AAE7F,yCAA8C;AAC9C,2CAA6E;AAE7E,yCAAiD;AAajD,SAAS,iBAAiB;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,oBAAc;QACjB,GAAG,yBAAoB;KAC1B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI;KACmB,CAAA,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,+BAA+B;IAC3C,OAAO;QACH,QAAQ,EAAE,sCAAsC;QAChD,UAAU,EAAE,4BAAiB;QAE7B,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,sCAAsC;QAC3C,QAAQ,EAAE,OAAO;QAEjB,WAAW,EAAE,iBAAiB,EAAE;KACnC,CAAC;AACN,CAAC;AAED,SAAgB,0BAA0B,CACtC,MAAc,EACd,IAAkC,EAClC,aAAuB;IAEvB,IAAI,SAA2B,CAAC;IAChC,IAAI,aAAa,EAAE,CAAC;QAChB,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACpC,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAExC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,0BAAiB,CAAC;QAClD,QAAQ,EAAE,IAAI,iCAAwB,CAAC,SAAS,CAAC;KACpD,CAAC,CAAC;IAEH,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,qBAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,MAAM;QACV,CAAC;QACD,KAAK,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,MAAM;QACV,CAAC;QACD,KAAK,qBAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,MAAM;QACV,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2021-2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.mountForceLoggedInMiddleware = mountForceLoggedInMiddleware;
10
- const http_1 = require("@ebec/http");
11
- function mountForceLoggedInMiddleware(input) {
12
- input.use((socket, next) => {
13
- if (socket.data.userId || socket.data.robotId) {
14
- next();
15
- return;
16
- }
17
- next(new http_1.UnauthorizedError());
18
- });
19
- }
20
- //# sourceMappingURL=force-logged-in.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"force-logged-in.js","sourceRoot":"","sources":["../../src/middlewares/force-logged-in.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAKH,oEASC;AAZD,qCAA+C;AAG/C,SAAgB,4BAA4B,CAAC,KAAyB;IAClE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,EAAE,CAAC;YACP,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,wBAAiB,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022-2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./authup"), exports);
24
- __exportStar(require("./force-logged-in"), exports);
25
- __exportStar(require("./logging"), exports);
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,oDAAkC;AAClC,4CAA0B"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2025.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.mountLoggingMiddleware = mountLoggingMiddleware;
10
- const server_kit_1 = require("@privateaim/server-kit");
11
- const telemetry_kit_1 = require("@privateaim/telemetry-kit");
12
- function mountLoggingMiddleware(nsp) {
13
- nsp.on('error', (err) => {
14
- (0, server_kit_1.useLogger)().error(err, {
15
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
16
- });
17
- });
18
- nsp.use((socket, next) => {
19
- (0, server_kit_1.useLogger)().debug(`Socket/${socket.id}: Connected.`, {
20
- namespace: socket.nsp.name,
21
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
22
- });
23
- socket.on('disconnect', () => {
24
- (0, server_kit_1.useLogger)().debug(`Socket/${socket.id}: Disconnected.`, {
25
- namespace: socket.nsp.name,
26
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
27
- });
28
- });
29
- next();
30
- });
31
- }
32
- //# sourceMappingURL=logging.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/middlewares/logging.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,wDAwBC;AA5BD,uDAAmD;AACnD,6DAAgE;AAGhE,SAAgB,sBAAsB,CAClC,GAAuB;IAEvB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,IAAA,sBAAS,GAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACnB,CAAC,uBAAO,CAAC,OAAO,CAAC,EAAE,0BAAU,CAAC,SAAS;SAC1C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACrB,IAAA,sBAAS,GAAE,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,cAAc,EAAE;YACjD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YAC1B,CAAC,uBAAO,CAAC,OAAO,CAAC,EAAE,0BAAU,CAAC,SAAS;SAC1C,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACzB,IAAA,sBAAS,GAAE,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,iBAAiB,EAAE;gBACpD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;gBAC1B,CAAC,uBAAO,CAAC,OAAO,CAAC,EAAE,0BAAU,CAAC,SAAS;aAC1C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2025.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./module"), exports);
24
- __exportStar(require("./types"), exports);
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0CAAwB"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2025.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createServer = createServer;
10
- const server_kit_1 = require("@privateaim/server-kit");
11
- const telemetry_kit_1 = require("@privateaim/telemetry-kit");
12
- const redis_adapter_1 = require("@socket.io/redis-adapter");
13
- const socket_io_1 = require("socket.io");
14
- function createServer(httpServer) {
15
- let adapter;
16
- if ((0, server_kit_1.isRedisClientUsable)()) {
17
- adapter = (0, redis_adapter_1.createAdapter)((0, server_kit_1.useRedisPublishClient)(), (0, server_kit_1.useRedisSubscribeClient)());
18
- }
19
- const server = new socket_io_1.Server(httpServer, {
20
- adapter,
21
- cors: {
22
- origin(origin, callback) {
23
- callback(null, true);
24
- },
25
- credentials: true,
26
- },
27
- transports: ['websocket', 'polling'],
28
- });
29
- server.engine.on('connection_error', (err) => {
30
- (0, server_kit_1.useLogger)().error({
31
- message: err.message,
32
- code: err.code,
33
- [telemetry_kit_1.LogFlag.CHANNEL]: telemetry_kit_1.LogChannel.WEBSOCKET,
34
- });
35
- });
36
- return server;
37
- }
38
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAWH,oCAyCC;AAlDD,uDAEgC;AAChC,6DAAgE;AAChE,4DAAyD;AAGzD,yCAAmC;AAEnC,SAAgB,YAAY,CAMxB,UAAsB;IAEtB,IAAI,OAA8C,CAAC;IACnD,IAAI,IAAA,gCAAmB,GAAE,EAAE,CAAC;QACxB,OAAO,GAAG,IAAA,6BAAa,EACnB,IAAA,kCAAqB,GAAE,EACvB,IAAA,oCAAuB,GAAE,CAC5B,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kBAAM,CAKvB,UAAU,EAAE;QACV,OAAO;QACP,IAAI,EAAE;YACF,MAAM,CAAC,MAAM,EAAE,QAAQ;gBACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,WAAW,EAAE,IAAI;SACpB;QACD,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;QACzC,IAAA,sBAAS,GAAE,CAAC,KAAK,CAAC;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,CAAC,uBAAO,CAAC,OAAO,CAAC,EAAE,0BAAU,CAAC,SAAS;SAC1C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2025.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
package/dist/types.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2024.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}