axiodb 9.7.9 → 11.9.12

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 (144) hide show
  1. package/README.md +67 -2
  2. package/lib/Services/Auth/AuthEvents.service.d.ts +15 -0
  3. package/lib/Services/Auth/AuthEvents.service.js +17 -0
  4. package/lib/Services/Auth/AuthEvents.service.js.map +1 -0
  5. package/lib/Services/Auth/AuthSeeder.service.d.ts +16 -0
  6. package/lib/Services/Auth/AuthSeeder.service.js +99 -0
  7. package/lib/Services/Auth/AuthSeeder.service.js.map +1 -0
  8. package/lib/Services/Auth/AuthService.service.d.ts +53 -0
  9. package/lib/Services/Auth/AuthService.service.js +221 -0
  10. package/lib/Services/Auth/AuthService.service.js.map +1 -0
  11. package/lib/Services/Auth/ConfigDatabase.service.d.ts +22 -0
  12. package/lib/Services/Auth/ConfigDatabase.service.js +47 -0
  13. package/lib/Services/Auth/ConfigDatabase.service.js.map +1 -0
  14. package/lib/Services/Auth/CookieCodec.helper.d.ts +10 -0
  15. package/lib/Services/Auth/CookieCodec.helper.js +30 -0
  16. package/lib/Services/Auth/CookieCodec.helper.js.map +1 -0
  17. package/lib/Services/Auth/LoginRateLimiter.service.d.ts +35 -0
  18. package/lib/Services/Auth/LoginRateLimiter.service.js +89 -0
  19. package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -0
  20. package/lib/Services/Auth/PasswordHasher.helper.d.ts +9 -0
  21. package/lib/Services/Auth/PasswordHasher.helper.js +54 -0
  22. package/lib/Services/Auth/PasswordHasher.helper.js.map +1 -0
  23. package/lib/Services/Auth/PermissionChecker.helper.d.ts +21 -0
  24. package/lib/Services/Auth/PermissionChecker.helper.js +41 -0
  25. package/lib/Services/Auth/PermissionChecker.helper.js.map +1 -0
  26. package/lib/Services/Auth/SessionStore.service.d.ts +23 -0
  27. package/lib/Services/Auth/SessionStore.service.js +96 -0
  28. package/lib/Services/Auth/SessionStore.service.js.map +1 -0
  29. package/lib/Services/Collection/collection.operation.d.ts +6 -0
  30. package/lib/Services/Collection/collection.operation.js +10 -0
  31. package/lib/Services/Collection/collection.operation.js.map +1 -1
  32. package/lib/Services/Index/Index.service.d.ts +20 -0
  33. package/lib/Services/Index/Index.service.js +25 -1
  34. package/lib/Services/Index/Index.service.js.map +1 -1
  35. package/lib/Services/Indexation.operation.d.ts +4 -0
  36. package/lib/Services/Indexation.operation.js +20 -6
  37. package/lib/Services/Indexation.operation.js.map +1 -1
  38. package/lib/client/AxioDBCloud.client.d.ts +20 -1
  39. package/lib/client/AxioDBCloud.client.js +54 -3
  40. package/lib/client/AxioDBCloud.client.js.map +1 -1
  41. package/lib/client/CollectionProxy.d.ts +4 -0
  42. package/lib/client/CollectionProxy.js +11 -0
  43. package/lib/client/CollectionProxy.js.map +1 -1
  44. package/lib/client/types/client.types.d.ts +8 -0
  45. package/lib/client/types/client.types.js.map +1 -1
  46. package/lib/config/Interfaces/Auth/auth.interface.d.ts +70 -0
  47. package/lib/config/Interfaces/Auth/auth.interface.js +4 -0
  48. package/lib/config/Interfaces/Auth/auth.interface.js.map +1 -0
  49. package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
  50. package/lib/config/Keys/Permissions.d.ts +64 -0
  51. package/lib/config/Keys/Permissions.js +121 -0
  52. package/lib/config/Keys/Permissions.js.map +1 -0
  53. package/lib/server/config/keys.d.ts +2 -2
  54. package/lib/server/config/keys.js +109 -1
  55. package/lib/server/config/keys.js.map +1 -1
  56. package/lib/server/config/server.js +6 -0
  57. package/lib/server/config/server.js.map +1 -1
  58. package/lib/server/controller/Auth/Auth.controller.d.ts +12 -0
  59. package/lib/server/controller/Auth/Auth.controller.js +162 -0
  60. package/lib/server/controller/Auth/Auth.controller.js.map +1 -0
  61. package/lib/server/controller/Auth/RoleManagement.controller.d.ts +9 -0
  62. package/lib/server/controller/Auth/RoleManagement.controller.js +89 -0
  63. package/lib/server/controller/Auth/RoleManagement.controller.js.map +1 -0
  64. package/lib/server/controller/Auth/UserManagement.controller.d.ts +11 -0
  65. package/lib/server/controller/Auth/UserManagement.controller.js +122 -0
  66. package/lib/server/controller/Auth/UserManagement.controller.js.map +1 -0
  67. package/lib/server/controller/Collections/Collection.controller.js +10 -0
  68. package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
  69. package/lib/server/controller/Database/Databse.controller.js +17 -0
  70. package/lib/server/controller/Database/Databse.controller.js.map +1 -1
  71. package/lib/server/controller/Index/Index.controller.d.ts +35 -0
  72. package/lib/server/controller/Index/Index.controller.js +148 -0
  73. package/lib/server/controller/Index/Index.controller.js.map +1 -0
  74. package/lib/server/controller/Operation/CRUD.controller.js +31 -0
  75. package/lib/server/controller/Operation/CRUD.controller.js.map +1 -1
  76. package/lib/server/helper/responseBuilder.helper.d.ts +8 -0
  77. package/lib/server/helper/responseBuilder.helper.js +11 -1
  78. package/lib/server/helper/responseBuilder.helper.js.map +1 -1
  79. package/lib/server/middleware/auth.middleware.d.ts +14 -0
  80. package/lib/server/middleware/auth.middleware.js +64 -0
  81. package/lib/server/middleware/auth.middleware.js.map +1 -0
  82. package/lib/server/middleware/permission.middleware.d.ts +6 -0
  83. package/lib/server/middleware/permission.middleware.js +36 -0
  84. package/lib/server/middleware/permission.middleware.js.map +1 -0
  85. package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
  86. package/lib/server/public/AxioControl/.vite/ssr-manifest.json +10 -0
  87. package/lib/server/public/AxioControl/assets/index-D3V1EZ2f.css +1 -0
  88. package/lib/server/public/AxioControl/assets/index-DyJg6FRw.js +75 -0
  89. package/lib/server/public/AxioControl/index.html +2 -2
  90. package/lib/server/public/AxioControl/sw.js +1 -1
  91. package/lib/server/router/Router.js +18 -1
  92. package/lib/server/router/Router.js.map +1 -1
  93. package/lib/server/router/Routers/Auth.routes.d.ts +2 -0
  94. package/lib/server/router/Routers/Auth.routes.js +27 -0
  95. package/lib/server/router/Routers/Auth.routes.js.map +1 -0
  96. package/lib/server/router/Routers/Collection.routes.js +20 -3
  97. package/lib/server/router/Routers/Collection.routes.js.map +1 -1
  98. package/lib/server/router/Routers/DB.routes.js +8 -5
  99. package/lib/server/router/Routers/DB.routes.js.map +1 -1
  100. package/lib/server/router/Routers/Index.routes.d.ts +7 -0
  101. package/lib/server/router/Routers/Index.routes.js +38 -0
  102. package/lib/server/router/Routers/Index.routes.js.map +1 -0
  103. package/lib/server/router/Routers/Operation.routes.js +31 -10
  104. package/lib/server/router/Routers/Operation.routes.js.map +1 -1
  105. package/lib/server/router/Routers/RoleManagement.routes.d.ts +2 -0
  106. package/lib/server/router/Routers/RoleManagement.routes.js +28 -0
  107. package/lib/server/router/Routers/RoleManagement.routes.js.map +1 -0
  108. package/lib/server/router/Routers/UserManagement.routes.d.ts +2 -0
  109. package/lib/server/router/Routers/UserManagement.routes.js +38 -0
  110. package/lib/server/router/Routers/UserManagement.routes.js.map +1 -0
  111. package/lib/tcp/config/keys.d.ts +8 -0
  112. package/lib/tcp/config/keys.js +8 -0
  113. package/lib/tcp/config/keys.js.map +1 -1
  114. package/lib/tcp/config/permissions.d.ts +16 -0
  115. package/lib/tcp/config/permissions.js +46 -0
  116. package/lib/tcp/config/permissions.js.map +1 -0
  117. package/lib/tcp/config/protocol.js +13 -0
  118. package/lib/tcp/config/protocol.js.map +1 -1
  119. package/lib/tcp/config/server.d.ts +1 -1
  120. package/lib/tcp/config/server.js +28 -6
  121. package/lib/tcp/config/server.js.map +1 -1
  122. package/lib/tcp/connection/ConnectionManager.d.ts +19 -0
  123. package/lib/tcp/connection/ConnectionManager.js +31 -0
  124. package/lib/tcp/connection/ConnectionManager.js.map +1 -1
  125. package/lib/tcp/connection/RequestContext.d.ts +4 -1
  126. package/lib/tcp/connection/RequestContext.js +4 -1
  127. package/lib/tcp/connection/RequestContext.js.map +1 -1
  128. package/lib/tcp/handler/CommandHandler.d.ts +5 -1
  129. package/lib/tcp/handler/CommandHandler.js +34 -4
  130. package/lib/tcp/handler/CommandHandler.js.map +1 -1
  131. package/lib/tcp/handler/handlers/Auth.handler.d.ts +16 -0
  132. package/lib/tcp/handler/handlers/Auth.handler.js +91 -0
  133. package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -0
  134. package/lib/tcp/handler/handlers/Operation.handler.d.ts +4 -0
  135. package/lib/tcp/handler/handlers/Operation.handler.js +27 -0
  136. package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
  137. package/lib/tcp/types/command.types.d.ts +2 -0
  138. package/lib/tcp/types/command.types.js +5 -0
  139. package/lib/tcp/types/command.types.js.map +1 -1
  140. package/lib/tcp/types/protocol.types.d.ts +2 -0
  141. package/lib/tcp/types/protocol.types.js.map +1 -1
  142. package/package.json +2 -1
  143. package/lib/server/public/AxioControl/assets/index-BRkVgnlw.js +0 -75
  144. package/lib/server/public/AxioControl/assets/index-C8TNGVxT.css +0 -1
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Encodes/decodes the session cookie value. The cookie is intentionally not the
5
+ * security boundary by itself - it only carries a random `sid` used to look up the
6
+ * real session record in SessionStore's in-memory map. See SessionStore.service.ts.
7
+ */
8
+ class CookieCodec {
9
+ static encode(payload) {
10
+ return Buffer.from(JSON.stringify(payload), "utf-8").toString("base64url");
11
+ }
12
+ static decode(rawCookieValue) {
13
+ try {
14
+ const json = Buffer.from(rawCookieValue, "base64url").toString("utf-8");
15
+ const parsed = JSON.parse(json);
16
+ if (typeof parsed === "object" &&
17
+ parsed !== null &&
18
+ typeof parsed.sid === "string" &&
19
+ typeof parsed.iat === "number") {
20
+ return parsed;
21
+ }
22
+ return null;
23
+ }
24
+ catch (_a) {
25
+ return null;
26
+ }
27
+ }
28
+ }
29
+ exports.default = CookieCodec;
30
+ //# sourceMappingURL=CookieCodec.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieCodec.helper.js","sourceRoot":"","sources":["../../../source/Services/Auth/CookieCodec.helper.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;AACH;IACS,MAAM,CAAC,MAAM,CAAC,OAAsB;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7E,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,cAAsB;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IACE,OAAO,MAAM,KAAK,QAAQ;gBAC1B,MAAM,KAAK,IAAI;gBACf,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;gBAC9B,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAC9B,CAAC;gBACD,OAAO,MAAuB,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;mBAAO,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * In-memory, per-IP login rate limiter shared by the GUI's /auth/login route and the
3
+ * TCP AUTHENTICATE command - one failure counter per client IP regardless of which
4
+ * transport the attempt came in on. Never persisted to disk, reset on process restart,
5
+ * same lifecycle as SessionStore.
6
+ *
7
+ * True sliding window (not fixed): each failure is timestamped, and a lockout triggers
8
+ * once LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures fall within the trailing
9
+ * LOGIN_RATE_LIMIT_WINDOW_MS from "now" - not a fixed bucket that resets wholesale once
10
+ * its start time expires. E.g. 4 failures at minute 0 and a 5th at minute 14 still locks
11
+ * (all 5 are within the trailing 15-minute window), whereas a fixed window anchored at
12
+ * minute 0 would have already rolled over and missed it.
13
+ *
14
+ * Deliberately IP-only (not IP+username): simpler to reason about, at the cost of
15
+ * clients behind a shared/NAT IP being able to lock each other out. Acceptable for the
16
+ * trusted-network deployment model this whole RBAC system targets.
17
+ */
18
+ declare class LoginRateLimiter {
19
+ private static instance;
20
+ private readonly attempts;
21
+ private sweepIntervalHandle;
22
+ static getInstance(): LoginRateLimiter;
23
+ /** Milliseconds remaining before this IP may attempt login again, or 0 if it's clear. */
24
+ getCooldownRemaining(ip: string): number;
25
+ /** Records a failed login attempt, locking the IP out once the threshold is crossed. */
26
+ recordFailure(ip: string): void;
27
+ /** Clears the failure counter for an IP following a successful login. */
28
+ recordSuccess(ip: string): void;
29
+ /** Clears every tracked IP's failure counter and any active lockouts. */
30
+ clearAll(): void;
31
+ startCleanupSweep(): void;
32
+ stopCleanupSweep(): void;
33
+ }
34
+ declare const _default: LoginRateLimiter;
35
+ export default _default;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Permissions_1 = require("../../config/Keys/Permissions");
4
+ /**
5
+ * In-memory, per-IP login rate limiter shared by the GUI's /auth/login route and the
6
+ * TCP AUTHENTICATE command - one failure counter per client IP regardless of which
7
+ * transport the attempt came in on. Never persisted to disk, reset on process restart,
8
+ * same lifecycle as SessionStore.
9
+ *
10
+ * True sliding window (not fixed): each failure is timestamped, and a lockout triggers
11
+ * once LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures fall within the trailing
12
+ * LOGIN_RATE_LIMIT_WINDOW_MS from "now" - not a fixed bucket that resets wholesale once
13
+ * its start time expires. E.g. 4 failures at minute 0 and a 5th at minute 14 still locks
14
+ * (all 5 are within the trailing 15-minute window), whereas a fixed window anchored at
15
+ * minute 0 would have already rolled over and missed it.
16
+ *
17
+ * Deliberately IP-only (not IP+username): simpler to reason about, at the cost of
18
+ * clients behind a shared/NAT IP being able to lock each other out. Acceptable for the
19
+ * trusted-network deployment model this whole RBAC system targets.
20
+ */
21
+ class LoginRateLimiter {
22
+ constructor() {
23
+ this.attempts = new Map();
24
+ }
25
+ static getInstance() {
26
+ if (!LoginRateLimiter.instance) {
27
+ LoginRateLimiter.instance = new LoginRateLimiter();
28
+ }
29
+ return LoginRateLimiter.instance;
30
+ }
31
+ /** Milliseconds remaining before this IP may attempt login again, or 0 if it's clear. */
32
+ getCooldownRemaining(ip) {
33
+ const record = this.attempts.get(ip);
34
+ if (!(record === null || record === void 0 ? void 0 : record.lockedUntil)) {
35
+ return 0;
36
+ }
37
+ const remaining = record.lockedUntil - Date.now();
38
+ if (remaining <= 0) {
39
+ this.attempts.delete(ip);
40
+ return 0;
41
+ }
42
+ return remaining;
43
+ }
44
+ /** Records a failed login attempt, locking the IP out once the threshold is crossed. */
45
+ recordFailure(ip) {
46
+ var _a;
47
+ const now = Date.now();
48
+ const record = (_a = this.attempts.get(ip)) !== null && _a !== void 0 ? _a : { failureTimestamps: [] };
49
+ // Slide the window: drop failures older than the trailing window before counting.
50
+ record.failureTimestamps = record.failureTimestamps.filter((t) => now - t <= Permissions_1.LOGIN_RATE_LIMIT_WINDOW_MS);
51
+ record.failureTimestamps.push(now);
52
+ if (record.failureTimestamps.length >= Permissions_1.LOGIN_RATE_LIMIT_MAX_ATTEMPTS) {
53
+ record.lockedUntil = now + Permissions_1.LOGIN_RATE_LIMIT_COOLDOWN_MS;
54
+ }
55
+ this.attempts.set(ip, record);
56
+ }
57
+ /** Clears the failure counter for an IP following a successful login. */
58
+ recordSuccess(ip) {
59
+ this.attempts.delete(ip);
60
+ }
61
+ /** Clears every tracked IP's failure counter and any active lockouts. */
62
+ clearAll() {
63
+ this.attempts.clear();
64
+ }
65
+ startCleanupSweep() {
66
+ if (this.sweepIntervalHandle) {
67
+ return;
68
+ }
69
+ this.sweepIntervalHandle = setInterval(() => {
70
+ const now = Date.now();
71
+ for (const [ip, record] of this.attempts) {
72
+ record.failureTimestamps = record.failureTimestamps.filter((t) => now - t <= Permissions_1.LOGIN_RATE_LIMIT_WINDOW_MS);
73
+ const unlocked = !record.lockedUntil || record.lockedUntil <= now;
74
+ if (record.failureTimestamps.length === 0 && unlocked) {
75
+ this.attempts.delete(ip);
76
+ }
77
+ }
78
+ }, Permissions_1.LOGIN_RATE_LIMIT_SWEEP_INTERVAL_MS);
79
+ this.sweepIntervalHandle.unref();
80
+ }
81
+ stopCleanupSweep() {
82
+ if (this.sweepIntervalHandle) {
83
+ clearInterval(this.sweepIntervalHandle);
84
+ this.sweepIntervalHandle = undefined;
85
+ }
86
+ }
87
+ }
88
+ exports.default = LoginRateLimiter.getInstance();
89
+ //# sourceMappingURL=LoginRateLimiter.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoginRateLimiter.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/LoginRateLimiter.service.ts"],"names":[],"mappings":";;AAAA,+DAKuC;AAQvC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,gBAAgB;IAAtB;QAEmB,aAAQ,GAA+B,IAAI,GAAG,EAAE,CAAC;IA4EpE,CAAC;IAzEQ,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,yFAAyF;IAClF,oBAAoB,CAAC,EAAU;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wFAAwF;IACjF,aAAa,CAAC,EAAU;;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,SAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,mCAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;QAElE,kFAAkF;QAClF,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,wCAA0B,CAC7C,CAAC;QACF,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,2CAA6B,EAAE,CAAC;YACrE,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,0CAA4B,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IAClE,aAAa,CAAC,EAAU;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,yEAAyE;IAClE,QAAQ;QACb,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEM,iBAAiB;QACtB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzC,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,wCAA0B,CAC7C,CAAC;gBACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;gBAClE,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,gDAAkC,CAAC,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAEM,gBAAgB;QACrB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACvC,CAAC;IACH,CAAC;CACF;kBAEc,gBAAgB,CAAC,WAAW,EAAE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Hashes and verifies passwords using Node's built-in scrypt KDF.
3
+ * Stored format is `${saltHex}:${hashHex}` - no external dependency required.
4
+ */
5
+ export default class PasswordHasher {
6
+ static hashPassword(plainPassword: string): Promise<string>;
7
+ static verifyPassword(plainPassword: string, storedHash: string): Promise<boolean>;
8
+ private static deriveKey;
9
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const crypto_1 = require("crypto");
13
+ const KEY_LENGTH = 64;
14
+ const SALT_LENGTH = 16;
15
+ /**
16
+ * Hashes and verifies passwords using Node's built-in scrypt KDF.
17
+ * Stored format is `${saltHex}:${hashHex}` - no external dependency required.
18
+ */
19
+ class PasswordHasher {
20
+ static hashPassword(plainPassword) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const salt = (0, crypto_1.randomBytes)(SALT_LENGTH).toString("hex");
23
+ const derivedKey = yield PasswordHasher.deriveKey(plainPassword, salt);
24
+ return `${salt}:${derivedKey.toString("hex")}`;
25
+ });
26
+ }
27
+ static verifyPassword(plainPassword, storedHash) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const [salt, hashHex] = storedHash.split(":");
30
+ if (!salt || !hashHex) {
31
+ return false;
32
+ }
33
+ const derivedKey = yield PasswordHasher.deriveKey(plainPassword, salt);
34
+ const storedKey = Buffer.from(hashHex, "hex");
35
+ if (derivedKey.length !== storedKey.length) {
36
+ return false;
37
+ }
38
+ return (0, crypto_1.timingSafeEqual)(derivedKey, storedKey);
39
+ });
40
+ }
41
+ static deriveKey(plainPassword, salt) {
42
+ return new Promise((resolve, reject) => {
43
+ (0, crypto_1.scrypt)(plainPassword, salt, KEY_LENGTH, (error, derivedKey) => {
44
+ if (error) {
45
+ reject(error);
46
+ return;
47
+ }
48
+ resolve(derivedKey);
49
+ });
50
+ });
51
+ }
52
+ }
53
+ exports.default = PasswordHasher;
54
+ //# sourceMappingURL=PasswordHasher.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordHasher.helper.js","sourceRoot":"","sources":["../../../source/Services/Auth/PasswordHasher.helper.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAA8D;AAE9D,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;GAGG;AACH;IACS,MAAM,CAAO,YAAY,CAAC,aAAqB;;YACpD,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACvE,OAAO,GAAG,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,CAAC;KAAA;IAEM,MAAM,CAAO,cAAc,CAChC,aAAqB,EACrB,UAAkB;;YAElB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAA,wBAAe,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;KAAA;IAEO,MAAM,CAAC,SAAS,CAAC,aAAqB,EAAE,IAAY;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,eAAM,EAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC5D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * In-process cache of roleName -> permission keys, avoiding a disk read on every
3
+ * single request. Hydrated once at server bootstrap (AuthSeeder) and kept in sync
4
+ * whenever a new role is created (AuthService.createRole).
5
+ */
6
+ declare class PermissionChecker {
7
+ private static instance;
8
+ private readonly rolePermissions;
9
+ static getInstance(): PermissionChecker;
10
+ setRolePermissions(roleName: string, permissions: string[]): void;
11
+ hydrate(roles: {
12
+ roleName: string;
13
+ permissions: string[];
14
+ }[]): void;
15
+ getPermissionsForRole(roleName: string): string[];
16
+ roleHasPermission(roleName: string, permissionKey: string): boolean;
17
+ roleExists(roleName: string): boolean;
18
+ listRoleNames(): string[];
19
+ }
20
+ declare const _default: PermissionChecker;
21
+ export default _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * In-process cache of roleName -> permission keys, avoiding a disk read on every
5
+ * single request. Hydrated once at server bootstrap (AuthSeeder) and kept in sync
6
+ * whenever a new role is created (AuthService.createRole).
7
+ */
8
+ class PermissionChecker {
9
+ constructor() {
10
+ this.rolePermissions = new Map();
11
+ }
12
+ static getInstance() {
13
+ if (!PermissionChecker.instance) {
14
+ PermissionChecker.instance = new PermissionChecker();
15
+ }
16
+ return PermissionChecker.instance;
17
+ }
18
+ setRolePermissions(roleName, permissions) {
19
+ this.rolePermissions.set(roleName, permissions);
20
+ }
21
+ hydrate(roles) {
22
+ for (const role of roles) {
23
+ this.rolePermissions.set(role.roleName, role.permissions);
24
+ }
25
+ }
26
+ getPermissionsForRole(roleName) {
27
+ var _a;
28
+ return (_a = this.rolePermissions.get(roleName)) !== null && _a !== void 0 ? _a : [];
29
+ }
30
+ roleHasPermission(roleName, permissionKey) {
31
+ return this.getPermissionsForRole(roleName).includes(permissionKey);
32
+ }
33
+ roleExists(roleName) {
34
+ return this.rolePermissions.has(roleName);
35
+ }
36
+ listRoleNames() {
37
+ return Array.from(this.rolePermissions.keys());
38
+ }
39
+ }
40
+ exports.default = PermissionChecker.getInstance();
41
+ //# sourceMappingURL=PermissionChecker.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionChecker.helper.js","sourceRoot":"","sources":["../../../source/Services/Auth/PermissionChecker.helper.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,MAAM,iBAAiB;IAAvB;QAEmB,oBAAe,GAA0B,IAAI,GAAG,EAAE,CAAC;IAkCtE,CAAC;IAhCQ,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAEM,kBAAkB,CAAC,QAAgB,EAAE,WAAqB;QAC/D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAEM,OAAO,CAAC,KAAoD;QACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEM,qBAAqB,CAAC,QAAgB;;QAC3C,aAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;IAClD,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,aAAqB;QAC9D,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAEM,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,aAAa;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;kBAEc,iBAAiB,CAAC,WAAW,EAAE"}
@@ -0,0 +1,23 @@
1
+ import { SessionRecord } from "../../config/Interfaces/Auth/auth.interface";
2
+ /**
3
+ * In-memory-only session store for the Control Server. Sessions never touch disk
4
+ * and are lost on process restart by design - this is the literal "store the
5
+ * session on server in memory only" requirement.
6
+ */
7
+ declare class SessionStore {
8
+ private static instance;
9
+ private readonly sessions;
10
+ private sweepIntervalHandle;
11
+ static getInstance(): SessionStore;
12
+ createSession(username: string, role: string, mustChangePassword: boolean): SessionRecord;
13
+ getSession(sid: string): SessionRecord | null;
14
+ touchSession(sid: string): void;
15
+ updateSessionMustChangePassword(sid: string, mustChangePassword: boolean): void;
16
+ revokeSession(sid: string): void;
17
+ revokeSessionsForUser(username: string): void;
18
+ countActiveSessions(): number;
19
+ startCleanupSweep(): void;
20
+ stopCleanupSweep(): void;
21
+ }
22
+ declare const _default: SessionStore;
23
+ export default _default;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crypto_1 = require("crypto");
4
+ const Permissions_1 = require("../../config/Keys/Permissions");
5
+ /**
6
+ * In-memory-only session store for the Control Server. Sessions never touch disk
7
+ * and are lost on process restart by design - this is the literal "store the
8
+ * session on server in memory only" requirement.
9
+ */
10
+ class SessionStore {
11
+ constructor() {
12
+ this.sessions = new Map();
13
+ }
14
+ static getInstance() {
15
+ if (!SessionStore.instance) {
16
+ SessionStore.instance = new SessionStore();
17
+ }
18
+ return SessionStore.instance;
19
+ }
20
+ createSession(username, role, mustChangePassword) {
21
+ const sid = (0, crypto_1.randomBytes)(32).toString("hex");
22
+ const now = Date.now();
23
+ const record = {
24
+ sid,
25
+ username,
26
+ role,
27
+ mustChangePassword,
28
+ createdAt: now,
29
+ lastSeenAt: now,
30
+ expiresAt: now + Permissions_1.SESSION_TTL_MS,
31
+ };
32
+ this.sessions.set(sid, record);
33
+ return record;
34
+ }
35
+ getSession(sid) {
36
+ const record = this.sessions.get(sid);
37
+ if (!record) {
38
+ return null;
39
+ }
40
+ if (record.expiresAt <= Date.now()) {
41
+ this.sessions.delete(sid);
42
+ return null;
43
+ }
44
+ return record;
45
+ }
46
+ touchSession(sid) {
47
+ const record = this.sessions.get(sid);
48
+ if (!record) {
49
+ return;
50
+ }
51
+ const now = Date.now();
52
+ record.lastSeenAt = now;
53
+ record.expiresAt = now + Permissions_1.SESSION_TTL_MS;
54
+ }
55
+ updateSessionMustChangePassword(sid, mustChangePassword) {
56
+ const record = this.sessions.get(sid);
57
+ if (record) {
58
+ record.mustChangePassword = mustChangePassword;
59
+ }
60
+ }
61
+ revokeSession(sid) {
62
+ this.sessions.delete(sid);
63
+ }
64
+ revokeSessionsForUser(username) {
65
+ for (const [sid, record] of this.sessions) {
66
+ if (record.username === username) {
67
+ this.sessions.delete(sid);
68
+ }
69
+ }
70
+ }
71
+ countActiveSessions() {
72
+ return this.sessions.size;
73
+ }
74
+ startCleanupSweep() {
75
+ if (this.sweepIntervalHandle) {
76
+ return;
77
+ }
78
+ this.sweepIntervalHandle = setInterval(() => {
79
+ const now = Date.now();
80
+ for (const [sid, record] of this.sessions) {
81
+ if (record.expiresAt <= now) {
82
+ this.sessions.delete(sid);
83
+ }
84
+ }
85
+ }, Permissions_1.SESSION_SWEEP_INTERVAL_MS);
86
+ this.sweepIntervalHandle.unref();
87
+ }
88
+ stopCleanupSweep() {
89
+ if (this.sweepIntervalHandle) {
90
+ clearInterval(this.sweepIntervalHandle);
91
+ this.sweepIntervalHandle = undefined;
92
+ }
93
+ }
94
+ }
95
+ exports.default = SessionStore.getInstance();
96
+ //# sourceMappingURL=SessionStore.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStore.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/SessionStore.service.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,12 @@ export default class Collection {
49
49
  * or if the caller lacks necessary permissions).
50
50
  */
51
51
  dropIndex(indexName: string): Promise<ErrorInterface | SuccessInterface>;
52
+ /**
53
+ * Lists all indexes currently registered for this collection.
54
+ *
55
+ * @returns A promise that resolves with the result returned by IndexManager.listIndexes.
56
+ */
57
+ getIndexes(): Promise<ErrorInterface | SuccessInterface>;
52
58
  /**
53
59
  * Inserts a document into the collection.
54
60
  * @param {object} data - The data to be inserted.
@@ -141,6 +141,16 @@ class Collection {
141
141
  return yield this.IndexManager.dropIndex(indexName);
142
142
  });
143
143
  }
144
+ /**
145
+ * Lists all indexes currently registered for this collection.
146
+ *
147
+ * @returns A promise that resolves with the result returned by IndexManager.listIndexes.
148
+ */
149
+ getIndexes() {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ return yield this.IndexManager.listIndexes();
152
+ });
153
+ }
144
154
  /**
145
155
  * Inserts a document into the collection.
146
156
  * @param {object} data - The data to be inserted.
@@ -1 +1 @@
1
- {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,11 @@ import FileManager from "../../engine/Filesystem/FileManager";
3
3
  import FolderManager from "../../engine/Filesystem/FolderManager";
4
4
  import Converter from "../../Helper/Converter.helper";
5
5
  import ResponseHelper from "../../Helper/response.helper";
6
+ export interface IndexMetaEntry {
7
+ indexFieldName: string;
8
+ fileName: string;
9
+ path: string;
10
+ }
6
11
  export declare class IndexManager {
7
12
  readonly path: string;
8
13
  readonly indexFolderPath: string;
@@ -76,6 +81,21 @@ export declare class IndexManager {
76
81
  * @throws {Error} May propagate errors from underlying file operations if those utilities throw.
77
82
  */
78
83
  dropIndex(indexName: string): Promise<SuccessInterface | ErrorInterface>;
84
+ /**
85
+ * Lists all indexes currently registered for this collection.
86
+ *
87
+ * Reads the index metadata file (`index.meta.json`) and returns its parsed entries as-is —
88
+ * this is a pure read of the same metadata `createIndex`/`dropIndex` already maintain, no new
89
+ * storage format is introduced.
90
+ *
91
+ * @returns A promise that resolves to a SuccessInterface containing the list of index metadata
92
+ * entries (`{ indexFieldName, fileName, path }`), or an ErrorInterface if the metadata
93
+ * file could not be read.
94
+ *
95
+ * @example
96
+ * const result = await service.listIndexes();
97
+ */
98
+ listIndexes(): Promise<SuccessInterface | ErrorInterface>;
79
99
  /**
80
100
  * Ensures the index folder and the index metadata file exist, creating them if necessary.
81
101
  *
@@ -96,7 +96,6 @@ class IndexManager {
96
96
  });
97
97
  yield this.fileManager.WriteFile(this.indexMetaPath, this.converter.ToString(indexMeta));
98
98
  EffectedIndexes.push(indexName);
99
- return this.ResponseHelper.Success(`Indexes: ${EffectedIndexes.join(", ")} created Indexes: ${FailedIndexes.join(", ")}`);
100
99
  }
101
100
  else {
102
101
  FailedIndexes.push(indexName);
@@ -104,6 +103,7 @@ class IndexManager {
104
103
  }
105
104
  }
106
105
  }
106
+ return this.ResponseHelper.Success(`Indexes: ${EffectedIndexes.join(", ")} created Indexes: ${FailedIndexes.join(", ")}`);
107
107
  });
108
108
  }
109
109
  /**
@@ -151,6 +151,30 @@ class IndexManager {
151
151
  }
152
152
  });
153
153
  }
154
+ /**
155
+ * Lists all indexes currently registered for this collection.
156
+ *
157
+ * Reads the index metadata file (`index.meta.json`) and returns its parsed entries as-is —
158
+ * this is a pure read of the same metadata `createIndex`/`dropIndex` already maintain, no new
159
+ * storage format is introduced.
160
+ *
161
+ * @returns A promise that resolves to a SuccessInterface containing the list of index metadata
162
+ * entries (`{ indexFieldName, fileName, path }`), or an ErrorInterface if the metadata
163
+ * file could not be read.
164
+ *
165
+ * @example
166
+ * const result = await service.listIndexes();
167
+ */
168
+ listIndexes() {
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ const indexMetaContent = yield this.fileManager.ReadFile(this.indexMetaPath);
171
+ if (indexMetaContent.status) {
172
+ const indexMeta = this.converter.ToObject(indexMetaContent.data);
173
+ return this.ResponseHelper.Success(indexMeta);
174
+ }
175
+ return this.ResponseHelper.Error("Failed to read index metadata");
176
+ });
177
+ }
154
178
  /**
155
179
  * Ensures the index folder and the index metadata file exist, creating them if necessary.
156
180
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Index.service.js","sourceRoot":"","sources":["../../../source/Services/Index/Index.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.service.js","sourceRoot":"","sources":["../../../source/Services/Index/Index.service.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,12 @@ import { AxioDBOptions } from "../config/Interfaces/Operation/Indexation.operati
8
8
  * @param {string} options.RootName - Custom name for the database root folder. Defaults to "AxioDB".
9
9
  * @param {string} options.CustomPath - Custom path for database storage. Defaults to current directory.
10
10
  * @param {boolean} options.TCP - Enable/disable TCP server (port 27019). Defaults to false.
11
+ * @param {boolean} options.TCPAuth - Require username/password authentication (same RBAC users as the GUI) for TCP connections. Defaults to false.
11
12
  * @returns {AxioDB} - Returns the instance of AxioDB.
12
13
  * @example
13
14
  * const db = new AxioDB({ GUI: true, RootName: "MyDB", CustomPath: "./data" });
15
+ * @example
16
+ * const db = new AxioDB({ TCP: true, TCPAuth: true, RootName: "MyDB", CustomPath: "./data" });
14
17
  */
15
18
  export declare class AxioDB {
16
19
  private readonly RootName;
@@ -23,6 +26,7 @@ export declare class AxioDB {
23
26
  private DatabaseMap;
24
27
  private GUI;
25
28
  private TCP;
29
+ private TCPAuth;
26
30
  constructor(options?: AxioDBOptions);
27
31
  /**
28
32
  * Initializes the root directory for the AxioDB.