@privateaim/server-realtime-kit 0.8.16 → 0.8.18

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 (68) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/{services/authup/middleware.d.ts → middlewares/authup/create.d.ts} +1 -1
  7. package/dist/middlewares/authup/create.d.ts.map +1 -0
  8. package/dist/middlewares/authup/create.js +127 -0
  9. package/dist/middlewares/authup/create.js.map +1 -0
  10. package/dist/middlewares/authup/index.d.ts +3 -0
  11. package/dist/middlewares/authup/index.d.ts.map +1 -0
  12. package/dist/{services → middlewares}/authup/index.js +1 -1
  13. package/dist/middlewares/authup/index.js.map +1 -0
  14. package/dist/middlewares/authup/types.d.ts +5 -0
  15. package/dist/middlewares/authup/types.d.ts.map +1 -0
  16. package/dist/middlewares/authup/types.js.map +1 -0
  17. package/dist/middlewares/authup/utils.d.ts.map +1 -0
  18. package/dist/middlewares/authup/utils.js.map +1 -0
  19. package/dist/middlewares/index.d.ts +2 -0
  20. package/dist/middlewares/index.d.ts.map +1 -1
  21. package/dist/middlewares/index.js +2 -0
  22. package/dist/middlewares/index.js.map +1 -1
  23. package/dist/middlewares/logging.d.ts +3 -0
  24. package/dist/middlewares/logging.d.ts.map +1 -0
  25. package/dist/middlewares/logging.js +32 -0
  26. package/dist/middlewares/logging.js.map +1 -0
  27. package/dist/server/index.d.ts +3 -0
  28. package/dist/server/index.d.ts.map +1 -0
  29. package/dist/{services → server}/index.js +3 -2
  30. package/dist/server/index.js.map +1 -0
  31. package/dist/server/module.d.ts +5 -0
  32. package/dist/server/module.d.ts.map +1 -0
  33. package/dist/server/module.js +38 -0
  34. package/dist/server/module.js.map +1 -0
  35. package/dist/server/types.d.ts +4 -0
  36. package/dist/server/types.d.ts.map +1 -0
  37. package/dist/server/types.js +9 -0
  38. package/dist/server/types.js.map +1 -0
  39. package/package.json +5 -3
  40. package/src/index.ts +1 -1
  41. package/src/middlewares/authup/create.ts +148 -0
  42. package/src/{services → middlewares}/authup/index.ts +1 -1
  43. package/src/{services → middlewares}/authup/types.ts +0 -7
  44. package/src/middlewares/index.ts +2 -0
  45. package/src/middlewares/logging.ts +36 -0
  46. package/src/{services → server}/index.ts +3 -2
  47. package/src/server/module.ts +58 -0
  48. package/src/server/types.ts +10 -0
  49. package/tsconfig.json +3 -6
  50. package/dist/services/authup/index.d.ts +0 -3
  51. package/dist/services/authup/index.d.ts.map +0 -1
  52. package/dist/services/authup/index.js.map +0 -1
  53. package/dist/services/authup/middleware.d.ts.map +0 -1
  54. package/dist/services/authup/middleware.js +0 -65
  55. package/dist/services/authup/middleware.js.map +0 -1
  56. package/dist/services/authup/types.d.ts +0 -11
  57. package/dist/services/authup/types.d.ts.map +0 -1
  58. package/dist/services/authup/types.js.map +0 -1
  59. package/dist/services/authup/utils.d.ts.map +0 -1
  60. package/dist/services/authup/utils.js.map +0 -1
  61. package/dist/services/index.d.ts +0 -2
  62. package/dist/services/index.d.ts.map +0 -1
  63. package/dist/services/index.js.map +0 -1
  64. package/src/services/authup/middleware.ts +0 -80
  65. /package/dist/{services → middlewares}/authup/types.js +0 -0
  66. /package/dist/{services → middlewares}/authup/utils.d.ts +0 -0
  67. /package/dist/{services → middlewares}/authup/utils.js +0 -0
  68. /package/src/{services → middlewares}/authup/utils.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.18](https://github.com/PrivateAIM/hub/compare/v0.8.17...v0.8.18) (2025-09-16)
4
+
5
+
6
+ ### Features
7
+
8
+ * use correct env name ([a4dd44d](https://github.com/PrivateAIM/hub/commit/a4dd44d5855788244518345455ba486c71861bae))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @privateaim/kit bumped from ^0.8.17 to ^0.8.18
16
+ * @privateaim/telemetry-kit bumped from ^0.8.17 to ^0.8.18
17
+ * @privateaim/server-kit bumped from ^0.8.17 to ^0.8.18
18
+
19
+ ## [0.8.17](https://github.com/PrivateAIM/hub/compare/v0.8.16...v0.8.17) (2025-09-01)
20
+
21
+
22
+ ### Features
23
+
24
+ * track socket engine errors ([39771e4](https://github.com/PrivateAIM/hub/commit/39771e4c7d1eb2f14d2dad968b293d3bd513397c))
25
+ * unified socket server creation flow ([#1172](https://github.com/PrivateAIM/hub/issues/1172)) ([1ae9835](https://github.com/PrivateAIM/hub/commit/1ae9835fcc45897347ac4bd255cce6cbf077b284))
26
+
27
+
28
+ ### Dependencies
29
+
30
+ * The following workspace dependencies were updated
31
+ * dependencies
32
+ * @privateaim/kit bumped from ^0.8.16 to ^0.8.17
33
+ * @privateaim/telemetry-kit bumped from ^0.8.16 to ^0.8.17
34
+ * @privateaim/server-kit bumped from ^0.8.16 to ^0.8.17
35
+
3
36
  ## [0.8.16](https://github.com/PrivateAIM/hub/compare/v0.8.15...v0.8.16) (2025-08-26)
4
37
 
5
38
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './helpers';
2
2
  export * from './middlewares';
3
- export * from './services';
3
+ export * from './server';
4
4
  export * from './types';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -22,6 +22,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  __exportStar(require("./helpers"), exports);
24
24
  __exportStar(require("./middlewares"), exports);
25
- __exportStar(require("./services"), exports);
25
+ __exportStar(require("./server"), exports);
26
26
  __exportStar(require("./types"), exports);
27
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,gDAA8B;AAC9B,6CAA2B;AAC3B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB"}
@@ -2,4 +2,4 @@ import type { Middleware, Namespace, Server } from '../../types';
2
2
  import type { AuthupMiddlewareRegistrationOptions } from './types';
3
3
  export declare function createAuthupMiddleware(options: AuthupMiddlewareRegistrationOptions): Middleware;
4
4
  export declare function mountAuthupMiddleware(nsp: Namespace | Server, options: AuthupMiddlewareRegistrationOptions): void;
5
- //# sourceMappingURL=middleware.d.ts.map
5
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,127 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/middlewares/authup/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './create';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/middlewares/authup/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -20,6 +20,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./middleware"), exports);
23
+ __exportStar(require("./create"), exports);
24
24
  __exportStar(require("./types"), exports);
25
25
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middlewares/authup/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0CAAwB"}
@@ -0,0 +1,5 @@
1
+ export type AuthupMiddlewareRegistrationOptions = {
2
+ baseURL?: string;
3
+ fakeAbilities?: boolean;
4
+ };
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/middlewares/authup/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mCAAmC,GAAG;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/middlewares/authup/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/middlewares/authup/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,4BAA4B,GAAG,IAAI,CACxC,qBAAqB,EACrB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,KAAK,GACL,UAAU,GACV,UAAU,CACT,CAAC;AAWF,wBAAgB,+BAA+B,IAAI,4BAA4B,CAW9E;AAED,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,4BAA4B,EAClC,aAAa,CAAC,EAAE,OAAO,QAiC1B"}
@@ -0,0 +1 @@
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,2 +1,4 @@
1
+ export * from './authup';
1
2
  export * from './force-logged-in';
3
+ export * from './logging';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -20,5 +20,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./authup"), exports);
23
24
  __exportStar(require("./force-logged-in"), exports);
25
+ __exportStar(require("./logging"), exports);
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,oDAAkC;AAClC,4CAA0B"}
@@ -0,0 +1,3 @@
1
+ import type { Namespace, Server } from '../types';
2
+ export declare function mountLoggingMiddleware(nsp: Namespace | Server): void;
3
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/middlewares/logging.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,SAAS,GAAG,MAAM,QAuB1B"}
@@ -0,0 +1,32 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export * from './module';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024.
3
+ * Copyright (c) 2025.
4
4
  * Author Peter Placzek (tada5hi)
5
5
  * For the full copyright and license information,
6
6
  * view the LICENSE file that was distributed with this source code.
@@ -20,5 +20,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./authup"), exports);
23
+ __exportStar(require("./module"), exports);
24
+ __exportStar(require("./types"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0CAAwB"}
@@ -0,0 +1,5 @@
1
+ import type { Server as HTTPServer } from 'node:http';
2
+ import type { DefaultEventsMap } from 'socket.io';
3
+ import { Server } from 'socket.io';
4
+ export declare function createServer<ListenEvents extends Record<string, any> = DefaultEventsMap, EmitEvents extends Record<string, any> = ListenEvents, ServerSideEvents extends Record<string, any> = DefaultEventsMap, SocketData = any>(httpServer: HTTPServer): Server<ListenEvents, EmitEvents, ServerSideEvents, SocketData>;
5
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/server/module.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,wBAAgB,YAAY,CACxB,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,EAC3D,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,EACrD,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,EAC/D,UAAU,GAAG,GAAG,EAEhB,UAAU,EAAE,UAAU,GACvB,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAkChE"}
@@ -0,0 +1,38 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,4 @@
1
+ export type ServerCreateOptions = {
2
+ authupURL?: string;
3
+ };
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC"}
@@ -0,0 +1,9 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privateaim/server-realtime-kit",
3
- "version": "0.8.16",
3
+ "version": "0.8.18",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": {
@@ -18,8 +18,10 @@
18
18
  "@authup/core-realtime-kit": "^1.0.0-beta.27",
19
19
  "@authup/server-adapter-kit": "^1.0.0-beta.27",
20
20
  "@authup/server-adapter-socket-io": "^1.0.0-beta.27",
21
- "@privateaim/kit": "^0.8.16",
22
- "@privateaim/server-kit": "^0.8.16",
21
+ "@socket.io/redis-adapter": "^8.3.0",
22
+ "@privateaim/kit": "^0.8.18",
23
+ "@privateaim/telemetry-kit": "^0.8.18",
24
+ "@privateaim/server-kit": "^0.8.18",
23
25
  "@ebec/http": "^2.3.0"
24
26
  },
25
27
  "devDependencies": {
package/src/index.ts CHANGED
@@ -7,5 +7,5 @@
7
7
 
8
8
  export * from './helpers';
9
9
  export * from './middlewares';
10
- export * from './services';
10
+ export * from './server';
11
11
  export * from './types';
@@ -0,0 +1,148 @@
1
+ /*
2
+ * Copyright (c) 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 { UnauthorizedError } from '@ebec/http';
9
+ import type { VaultClient } from '@hapic/vault';
10
+ import {
11
+ isRedisClientUsable, isVaultClientUsable, useLogger, useRedisClient, useVaultClient,
12
+ } from '@privateaim/server-kit';
13
+ import { LogChannel, LogFlag } from '@privateaim/telemetry-kit';
14
+ import type { Client as RedisClient } from 'redis-extension';
15
+ import type { TokenCreatorOptions } from '@authup/core-http-kit';
16
+ import type { TokenVerifierRedisCacheOptions } from '@authup/server-adapter-kit';
17
+ import { createMiddleware } from '@authup/server-adapter-socket-io';
18
+ import type {
19
+ Middleware, Namespace, Server, Socket,
20
+ } from '../../types';
21
+ import type { AuthupMiddlewareRegistrationOptions } from './types';
22
+ import { applyTokenVerificationData, createFakeTokenVerificationData } from './utils';
23
+
24
+ export function createAuthupMiddleware(
25
+ options: AuthupMiddlewareRegistrationOptions,
26
+ ) : Middleware {
27
+ let baseURL : string | undefined;
28
+ if (options.baseURL) {
29
+ baseURL = options.baseURL;
30
+ }
31
+
32
+ let redis : RedisClient | undefined;
33
+ if (isRedisClientUsable()) {
34
+ redis = useRedisClient();
35
+ }
36
+
37
+ let vault : VaultClient | undefined;
38
+ if (isVaultClientUsable()) {
39
+ vault = useVaultClient();
40
+ }
41
+
42
+ if (!baseURL) {
43
+ const data = createFakeTokenVerificationData();
44
+
45
+ return (socket, next) => {
46
+ applyTokenVerificationData(socket, data, options.fakeAbilities);
47
+ next();
48
+ };
49
+ }
50
+
51
+ let tokenCreator : TokenCreatorOptions;
52
+ if (vault) {
53
+ tokenCreator = {
54
+ type: 'robotInVault',
55
+ name: 'system',
56
+ vault,
57
+ baseURL,
58
+ };
59
+ } else {
60
+ tokenCreator = {
61
+ type: 'user',
62
+ name: 'admin',
63
+ password: 'start123',
64
+ baseURL,
65
+ };
66
+ }
67
+
68
+ let tokenCache : TokenVerifierRedisCacheOptions | undefined;
69
+ if (redis) {
70
+ tokenCache = {
71
+ type: 'redis',
72
+ client: redis,
73
+ };
74
+ }
75
+
76
+ return createMiddleware({
77
+ tokenVerifier: {
78
+ baseURL,
79
+ creator: tokenCreator,
80
+ cache: tokenCache,
81
+ },
82
+ tokenVerifierHandler: (
83
+ socket: Socket,
84
+ data,
85
+ ) => applyTokenVerificationData(socket, data, options.fakeAbilities),
86
+ });
87
+ }
88
+
89
+ export function mountAuthupMiddleware(
90
+ nsp: Namespace | Server,
91
+ options: AuthupMiddlewareRegistrationOptions,
92
+ ) {
93
+ const middleware = createAuthupMiddleware(options);
94
+ nsp.use(middleware);
95
+
96
+ nsp.use((socket, next) => {
97
+ if (socket.data.userId) {
98
+ useLogger().info(`Socket/${socket.id}: User connected.`, {
99
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
100
+ actor_type: 'user',
101
+ actor_id: socket.data.userId,
102
+ });
103
+ } else if (socket.data.robotId) {
104
+ useLogger().info(`Socket/${socket.id}: Robot connected.`, {
105
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
106
+ actor_type: 'robot',
107
+ actor_id: socket.data.robotId,
108
+ });
109
+ } else if (socket.data.clientId) {
110
+ useLogger().info(`Socket/${socket.id}: Client connected.`, {
111
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
112
+ actor_type: 'client',
113
+ actor_id: socket.data.clientId,
114
+ });
115
+ } else {
116
+ useLogger().warn(`Socket/${socket.id}: Not authenticated.`, {
117
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
118
+ });
119
+
120
+ next(new UnauthorizedError());
121
+ return;
122
+ }
123
+
124
+ socket.on('disconnect', () => {
125
+ if (socket.data.userId) {
126
+ useLogger().info(`Socket/${socket.id}: User disconnected`, {
127
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
128
+ actor_type: 'user',
129
+ actor_id: socket.data.userId,
130
+ });
131
+ } else if (socket.data.robotId) {
132
+ useLogger().info(`Socket/${socket.id}: Robot disconnected`, {
133
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
134
+ actor_type: 'robot',
135
+ actor_id: socket.data.userId,
136
+ });
137
+ } else if (socket.data.clientId) {
138
+ useLogger().info(`Socket/${socket.id}: Client disconnected`, {
139
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
140
+ actor_type: 'client',
141
+ actor_id: socket.data.clientId,
142
+ });
143
+ }
144
+ });
145
+
146
+ next();
147
+ });
148
+ }
@@ -5,5 +5,5 @@
5
5
  * view the LICENSE file that was distributed with this source code.
6
6
  */
7
7
 
8
- export * from './middleware';
8
+ export * from './create';
9
9
  export * from './types';
@@ -5,14 +5,7 @@
5
5
  * view the LICENSE file that was distributed with this source code.
6
6
  */
7
7
 
8
- import type { VaultClient } from '@hapic/vault';
9
- import type { Client as RedisClient } from 'redis-extension';
10
- import type { Client as AuthupClient } from '@authup/core-http-kit';
11
-
12
8
  export type AuthupMiddlewareRegistrationOptions = {
13
9
  baseURL?: string,
14
- client?: AuthupClient,
15
- vault?: VaultClient | string,
16
- redis?: RedisClient | string,
17
10
  fakeAbilities?: boolean
18
11
  };
@@ -5,4 +5,6 @@
5
5
  * view the LICENSE file that was distributed with this source code.
6
6
  */
7
7
 
8
+ export * from './authup';
8
9
  export * from './force-logged-in';
10
+ export * from './logging';
@@ -0,0 +1,36 @@
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 { useLogger } from '@privateaim/server-kit';
9
+ import { LogChannel, LogFlag } from '@privateaim/telemetry-kit';
10
+ import type { Namespace, Server } from '../types';
11
+
12
+ export function mountLoggingMiddleware(
13
+ nsp: Namespace | Server,
14
+ ) {
15
+ nsp.on('error', (err) => {
16
+ useLogger().error(err, {
17
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
18
+ });
19
+ });
20
+
21
+ nsp.use((socket, next) => {
22
+ useLogger().debug(`Socket/${socket.id}: Connected.`, {
23
+ namespace: socket.nsp.name,
24
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
25
+ });
26
+
27
+ socket.on('disconnect', () => {
28
+ useLogger().debug(`Socket/${socket.id}: Disconnected.`, {
29
+ namespace: socket.nsp.name,
30
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
31
+ });
32
+ });
33
+
34
+ next();
35
+ });
36
+ }
@@ -1,8 +1,9 @@
1
1
  /*
2
- * Copyright (c) 2024.
2
+ * Copyright (c) 2025.
3
3
  * Author Peter Placzek (tada5hi)
4
4
  * For the full copyright and license information,
5
5
  * view the LICENSE file that was distributed with this source code.
6
6
  */
7
7
 
8
- export * from './authup';
8
+ export * from './module';
9
+ export * from './types';
@@ -0,0 +1,58 @@
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 {
9
+ isRedisClientUsable, useLogger, useRedisPublishClient, useRedisSubscribeClient,
10
+ } from '@privateaim/server-kit';
11
+ import { LogChannel, LogFlag } from '@privateaim/telemetry-kit';
12
+ import { createAdapter } from '@socket.io/redis-adapter';
13
+ import type { Server as HTTPServer } from 'node:http';
14
+ import type { DefaultEventsMap, ServerOptions } from 'socket.io';
15
+ import { Server } from 'socket.io';
16
+
17
+ export function createServer<
18
+ ListenEvents extends Record<string, any> = DefaultEventsMap,
19
+ EmitEvents extends Record<string, any> = ListenEvents,
20
+ ServerSideEvents extends Record<string, any> = DefaultEventsMap,
21
+ SocketData = any,
22
+ >(
23
+ httpServer: HTTPServer,
24
+ ): Server<ListenEvents, EmitEvents, ServerSideEvents, SocketData> {
25
+ let adapter : ServerOptions['adapter'] | undefined;
26
+ if (isRedisClientUsable()) {
27
+ adapter = createAdapter(
28
+ useRedisPublishClient(),
29
+ useRedisSubscribeClient(),
30
+ );
31
+ }
32
+
33
+ const server = new Server<
34
+ ListenEvents,
35
+ EmitEvents,
36
+ ServerSideEvents,
37
+ SocketData
38
+ >(httpServer, {
39
+ adapter,
40
+ cors: {
41
+ origin(origin, callback) {
42
+ callback(null, true);
43
+ },
44
+ credentials: true,
45
+ },
46
+ transports: ['websocket', 'polling'],
47
+ });
48
+
49
+ server.engine.on('connection_error', (err) => {
50
+ useLogger().error({
51
+ message: err.message,
52
+ code: err.code,
53
+ [LogFlag.CHANNEL]: LogChannel.WEBSOCKET,
54
+ });
55
+ });
56
+
57
+ return server;
58
+ }
@@ -0,0 +1,10 @@
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
+ export type ServerCreateOptions = {
9
+ authupURL?: string
10
+ };
package/tsconfig.json CHANGED
@@ -2,12 +2,9 @@
2
2
  "extends": "../../tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "paths": {
5
- "@privateaim/kit": [
6
- "./packages/kit/src"
7
- ],
8
- "@privateaim/server-kit": [
9
- "./packages/server-kit/src"
10
- ]
5
+ "@privateaim/kit": ["./packages/kit/src"],
6
+ "@privateaim/telemetry-kit": ["./packages/telemetry-kit/src"],
7
+ "@privateaim/server-kit": ["./packages/server-kit/src"],
11
8
  }
12
9
  }
13
10
  }
@@ -1,3 +0,0 @@
1
- export * from './middleware';
2
- export * from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/authup/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/authup/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,+CAA6B;AAC7B,0CAAwB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/services/authup/middleware.ts"],"names":[],"mappings":"AAUA,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,CAqDb;AAED,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,SAAS,GAAG,MAAM,EACvB,OAAO,EAAE,mCAAmC,QAI/C"}
@@ -1,65 +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 server_adapter_socket_io_1 = require("@authup/server-adapter-socket-io");
12
- const utils_1 = require("./utils");
13
- function createAuthupMiddleware(options) {
14
- let baseURL;
15
- if (options.baseURL) {
16
- baseURL = options.baseURL;
17
- }
18
- else if (options.client) {
19
- baseURL = options.client.getBaseURL();
20
- }
21
- if (!baseURL) {
22
- const data = (0, utils_1.createFakeTokenVerificationData)();
23
- return (socket, next) => {
24
- (0, utils_1.applyTokenVerificationData)(socket, data, options.fakeAbilities);
25
- next();
26
- };
27
- }
28
- let tokenCreator;
29
- if (options.vault) {
30
- tokenCreator = {
31
- type: 'robotInVault',
32
- name: 'system',
33
- vault: options.vault,
34
- baseURL,
35
- };
36
- }
37
- else {
38
- tokenCreator = {
39
- type: 'user',
40
- name: 'admin',
41
- password: 'start123',
42
- baseURL,
43
- };
44
- }
45
- let tokenCache;
46
- if (options.redis) {
47
- tokenCache = {
48
- type: 'redis',
49
- client: options.redis,
50
- };
51
- }
52
- return (0, server_adapter_socket_io_1.createMiddleware)({
53
- tokenVerifier: {
54
- baseURL,
55
- creator: tokenCreator,
56
- cache: tokenCache,
57
- },
58
- tokenVerifierHandler: (socket, data) => (0, utils_1.applyTokenVerificationData)(socket, data, options.fakeAbilities),
59
- });
60
- }
61
- function mountAuthupMiddleware(nsp, options) {
62
- const middleware = createAuthupMiddleware(options);
63
- nsp.use(middleware);
64
- }
65
- //# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/services/authup/middleware.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAWH,wDAuDC;AAED,sDAMC;AAtED,+EAAoE;AAKpE,mCAAsF;AAEtF,SAAgB,sBAAsB,CAClC,OAA4C;IAE5C,IAAI,OAA4B,CAAC;IACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,IAAA,uCAA+B,GAAE,CAAC;QAE/C,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACpB,IAAA,kCAA0B,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,EAAE,CAAC;QACX,CAAC,CAAC;IACN,CAAC;IAED,IAAI,YAAkC,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,YAAY,GAAG;YACX,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO;SACV,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,YAAY,GAAG;YACX,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,UAAU;YACpB,OAAO;SACV,CAAC;IACN,CAAC;IAED,IAAI,UAAuD,CAAC;IAC5D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,UAAU,GAAG;YACT,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO,CAAC,KAAK;SACxB,CAAC;IACN,CAAC;IAED,OAAO,IAAA,2CAAgB,EAAC;QACpB,aAAa,EAAE;YACX,OAAO;YACP,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,UAAU;SACpB;QACD,oBAAoB,EAAE,CAClB,MAAc,EACd,IAAI,EACN,EAAE,CAAC,IAAA,kCAA0B,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;KACvE,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,qBAAqB,CACjC,GAAuB,EACvB,OAA4C;IAE5C,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { VaultClient } from '@hapic/vault';
2
- import type { Client as RedisClient } from 'redis-extension';
3
- import type { Client as AuthupClient } from '@authup/core-http-kit';
4
- export type AuthupMiddlewareRegistrationOptions = {
5
- baseURL?: string;
6
- client?: AuthupClient;
7
- vault?: VaultClient | string;
8
- redis?: RedisClient | string;
9
- fakeAbilities?: boolean;
10
- };
11
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/authup/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,MAAM,mCAAmC,GAAG;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/authup/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/services/authup/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,4BAA4B,GAAG,IAAI,CACxC,qBAAqB,EACrB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,KAAK,GACL,UAAU,GACV,UAAU,CACT,CAAC;AAWF,wBAAgB,+BAA+B,IAAI,4BAA4B,CAW9E;AAED,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,4BAA4B,EAClC,aAAa,CAAC,EAAE,OAAO,QAiC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/services/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,2 +0,0 @@
1
- export * from './authup';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB"}
@@ -1,80 +0,0 @@
1
- /*
2
- * Copyright (c) 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 type { TokenCreatorOptions } from '@authup/core-http-kit';
9
- import type { TokenVerifierRedisCacheOptions } from '@authup/server-adapter-kit';
10
- import { createMiddleware } from '@authup/server-adapter-socket-io';
11
- import type {
12
- Middleware, Namespace, Server, Socket,
13
- } from '../../types';
14
- import type { AuthupMiddlewareRegistrationOptions } from './types';
15
- import { applyTokenVerificationData, createFakeTokenVerificationData } from './utils';
16
-
17
- export function createAuthupMiddleware(
18
- options: AuthupMiddlewareRegistrationOptions,
19
- ) : Middleware {
20
- let baseURL : string | undefined;
21
- if (options.baseURL) {
22
- baseURL = options.baseURL;
23
- } else if (options.client) {
24
- baseURL = options.client.getBaseURL();
25
- }
26
-
27
- if (!baseURL) {
28
- const data = createFakeTokenVerificationData();
29
-
30
- return (socket, next) => {
31
- applyTokenVerificationData(socket, data, options.fakeAbilities);
32
- next();
33
- };
34
- }
35
-
36
- let tokenCreator : TokenCreatorOptions;
37
- if (options.vault) {
38
- tokenCreator = {
39
- type: 'robotInVault',
40
- name: 'system',
41
- vault: options.vault,
42
- baseURL,
43
- };
44
- } else {
45
- tokenCreator = {
46
- type: 'user',
47
- name: 'admin',
48
- password: 'start123',
49
- baseURL,
50
- };
51
- }
52
-
53
- let tokenCache : TokenVerifierRedisCacheOptions | undefined;
54
- if (options.redis) {
55
- tokenCache = {
56
- type: 'redis',
57
- client: options.redis,
58
- };
59
- }
60
-
61
- return createMiddleware({
62
- tokenVerifier: {
63
- baseURL,
64
- creator: tokenCreator,
65
- cache: tokenCache,
66
- },
67
- tokenVerifierHandler: (
68
- socket: Socket,
69
- data,
70
- ) => applyTokenVerificationData(socket, data, options.fakeAbilities),
71
- });
72
- }
73
-
74
- export function mountAuthupMiddleware(
75
- nsp: Namespace | Server,
76
- options: AuthupMiddlewareRegistrationOptions,
77
- ) {
78
- const middleware = createAuthupMiddleware(options);
79
- nsp.use(middleware);
80
- }
File without changes
File without changes
File without changes