axiodb 6.33.229 → 7.33.230

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 (65) hide show
  1. package/README.md +83 -0
  2. package/lib/Services/Indexation.operation.d.ts +2 -1
  3. package/lib/Services/Indexation.operation.js +8 -1
  4. package/lib/Services/Indexation.operation.js.map +1 -1
  5. package/lib/client/AggregationProxy.d.ts +16 -0
  6. package/lib/client/AggregationProxy.js +38 -0
  7. package/lib/client/AggregationProxy.js.map +1 -0
  8. package/lib/client/AxioDBCloud.client.d.ts +74 -0
  9. package/lib/client/AxioDBCloud.client.js +306 -0
  10. package/lib/client/AxioDBCloud.client.js.map +1 -0
  11. package/lib/client/CollectionProxy.d.ts +55 -0
  12. package/lib/client/CollectionProxy.js +121 -0
  13. package/lib/client/CollectionProxy.js.map +1 -0
  14. package/lib/client/DatabaseProxy.d.ts +31 -0
  15. package/lib/client/DatabaseProxy.js +81 -0
  16. package/lib/client/DatabaseProxy.js.map +1 -0
  17. package/lib/client/DeleteOperationProxy.d.ts +20 -0
  18. package/lib/client/DeleteOperationProxy.js +52 -0
  19. package/lib/client/DeleteOperationProxy.js.map +1 -0
  20. package/lib/client/ReaderProxy.d.ts +36 -0
  21. package/lib/client/ReaderProxy.js +80 -0
  22. package/lib/client/ReaderProxy.js.map +1 -0
  23. package/lib/client/UpdateOperationProxy.d.ts +20 -0
  24. package/lib/client/UpdateOperationProxy.js +54 -0
  25. package/lib/client/UpdateOperationProxy.js.map +1 -0
  26. package/lib/client/types/client.types.d.ts +29 -0
  27. package/lib/client/types/client.types.js +18 -0
  28. package/lib/client/types/client.types.js.map +1 -0
  29. package/lib/config/DB.d.ts +3 -1
  30. package/lib/config/DB.js +4 -1
  31. package/lib/config/DB.js.map +1 -1
  32. package/lib/tcp/config/keys.d.ts +59 -0
  33. package/lib/tcp/config/keys.js +74 -0
  34. package/lib/tcp/config/keys.js.map +1 -0
  35. package/lib/tcp/config/protocol.d.ts +56 -0
  36. package/lib/tcp/config/protocol.js +220 -0
  37. package/lib/tcp/config/protocol.js.map +1 -0
  38. package/lib/tcp/config/server.d.ts +12 -0
  39. package/lib/tcp/config/server.js +156 -0
  40. package/lib/tcp/config/server.js.map +1 -0
  41. package/lib/tcp/connection/ConnectionManager.d.ts +63 -0
  42. package/lib/tcp/connection/ConnectionManager.js +171 -0
  43. package/lib/tcp/connection/ConnectionManager.js.map +1 -0
  44. package/lib/tcp/connection/RequestContext.d.ts +33 -0
  45. package/lib/tcp/connection/RequestContext.js +52 -0
  46. package/lib/tcp/connection/RequestContext.js.map +1 -0
  47. package/lib/tcp/handler/CommandHandler.d.ts +34 -0
  48. package/lib/tcp/handler/CommandHandler.js +159 -0
  49. package/lib/tcp/handler/CommandHandler.js.map +1 -0
  50. package/lib/tcp/handler/handlers/Collection.handler.d.ts +28 -0
  51. package/lib/tcp/handler/handlers/Collection.handler.js +120 -0
  52. package/lib/tcp/handler/handlers/Collection.handler.js.map +1 -0
  53. package/lib/tcp/handler/handlers/DB.handler.d.ts +28 -0
  54. package/lib/tcp/handler/handlers/DB.handler.js +113 -0
  55. package/lib/tcp/handler/handlers/DB.handler.js.map +1 -0
  56. package/lib/tcp/handler/handlers/Operation.handler.d.ts +59 -0
  57. package/lib/tcp/handler/handlers/Operation.handler.js +310 -0
  58. package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -0
  59. package/lib/tcp/types/command.types.d.ts +35 -0
  60. package/lib/tcp/types/command.types.js +72 -0
  61. package/lib/tcp/types/command.types.js.map +1 -0
  62. package/lib/tcp/types/protocol.types.d.ts +71 -0
  63. package/lib/tcp/types/protocol.types.js +15 -0
  64. package/lib/tcp/types/protocol.types.js.map +1 -0
  65. package/package.json +1 -1
package/README.md CHANGED
@@ -33,6 +33,7 @@ SQLite is great, but it requires native bindings that break in Electron and cros
33
33
  - ✅ Built-in InMemoryCache with automatic invalidation
34
34
  - ✅ Multi-core parallelism with Worker Threads
35
35
  - ✅ Built-in web GUI at `localhost:27018`
36
+ - ✅ **NEW:** AxioDBCloud - TCP remote access for Docker/Cloud deployments
36
37
 
37
38
  ---
38
39
 
@@ -51,6 +52,7 @@ SQLite is great, but it requires native bindings that break in Electron and cros
51
52
  - **Transaction Support:** ACID-compliant transactions with savepoints, rollback, and Write-Ahead Logging (WAL)
52
53
  - **Single Instance Architecture:** Unified management for unlimited databases, collections, and documents
53
54
  - **Web-Based GUI Dashboard:** Visual database administration, query execution, and real-time monitoring at `localhost:27018`
55
+ - **AxioDBCloud Remote Access:** TCP-based client for connecting to AxioDB from anywhere—Docker, Cloud, or local network
54
56
  - **Zero-Configuration Setup:** Serverless architecture—install and start building instantly
55
57
  - **Custom Database Path:** Flexible storage locations for better project organization
56
58
 
@@ -89,6 +91,87 @@ await session.withTransaction(async (tx) => {
89
91
 
90
92
  ---
91
93
 
94
+ ## ☁️ AxioDBCloud - Remote Database Access (NEW!)
95
+
96
+ **Host AxioDB in Docker, connect from anywhere!** AxioDBCloud provides TCP-based remote access to your AxioDB instance with the exact same API as local embedded mode.
97
+
98
+ ### 🌟 Why AxioDBCloud?
99
+
100
+ - **🚀 Deploy Once, Connect Everywhere:** Host AxioDB in Docker/Cloud, connect from multiple clients
101
+ - **🔄 Zero Code Changes:** Same API as embedded AxioDB - just change the client class!
102
+ - **⚡ TCP Protocol:** Fast binary protocol with automatic reconnection
103
+ - **🔐 Production Ready:** Connection pooling, heartbeat monitoring, error recovery
104
+ - **📦 Docker Support:** One-command deployment with included Dockerfile
105
+
106
+ ### Quick Start - Server (Docker)
107
+
108
+ ```bash
109
+ # Pull and run the AxioDB Docker container
110
+ docker run -d \
111
+ --name axiodb-server \
112
+ -p 27018:27018 \
113
+ -p 27019:27019 \
114
+ -v axiodb-data:/app \
115
+ theankansaha/axiodb
116
+
117
+ # Ports:
118
+ # 27018 - HTTP GUI Dashboard
119
+ # 27019 - TCP Remote Access (AxioDBCloud)
120
+ # Volume: /app is the main data directory
121
+ ```
122
+
123
+ **Or run locally with Node.js:**
124
+
125
+ ```javascript
126
+ const { AxioDB } = require('axiodb');
127
+ const db = new AxioDB(false, 'MyDB', '.', true); // Enable TCP on port 27019
128
+ ```
129
+
130
+ ### Quick Start - Client
131
+
132
+ ```javascript
133
+ const { AxioDBCloud } = require('axiodb');
134
+
135
+ // Connect to remote AxioDB (same API as embedded!)
136
+ const client = new AxioDBCloud("axiodb://localhost:27019");
137
+ await client.connect();
138
+
139
+ // Use exactly like embedded AxioDB
140
+ const db = await client.createDB("ProductionDB");
141
+ const users = await db.createCollection("Users");
142
+
143
+ // All operations work identically
144
+ await users.insert({ name: "Alice", role: "admin" });
145
+ const results = await users.query({ role: "admin" })
146
+ .Limit(10)
147
+ .Sort({ createdAt: -1 })
148
+ .exec();
149
+
150
+ await client.disconnect();
151
+ ```
152
+
153
+ ### Features
154
+
155
+ ✅ **35+ Commands** - Full CRUD, aggregation, indexing
156
+ ✅ **Auto-Reconnect** - Exponential backoff with up to 10 retry attempts
157
+ ✅ **Heartbeat Monitoring** - PING/PONG every 30 seconds
158
+ ✅ **Request Correlation** - UUID-based request/response matching
159
+ ✅ **Connection Pooling** - Supports 1000+ concurrent connections
160
+ ✅ **TypeScript Support** - Full type definitions included
161
+ ✅ **Zero Breaking Changes** - Existing AxioDB code works unchanged
162
+
163
+ ### Use Cases
164
+
165
+ - **Microservices:** Share one AxioDB instance across multiple services
166
+ - **Desktop Apps:** Electron apps connecting to local/remote database
167
+ - **Development:** Team members sharing a development database
168
+ - **Docker Deployments:** Container-based production deployments
169
+ - **Cloud Hosting:** Deploy to AWS, Azure, Google Cloud, DigitalOcean
170
+
171
+ 👉 **[Full AxioDBCloud Documentation](https://axiodb.in/cloud)** - Setup guides, API reference, Docker examples
172
+
173
+ ---
174
+
92
175
  ## 🏆 Performance Comparison
93
176
 
94
177
  ### AxioDB vs SQLite
@@ -15,7 +15,8 @@ export declare class AxioDB {
15
15
  private static _instance;
16
16
  private DatabaseMap;
17
17
  private GUI;
18
- constructor(GUI?: boolean, RootName?: string, CustomPath?: string);
18
+ private TCP;
19
+ constructor(GUI?: boolean, RootName?: string, CustomPath?: string, TCP?: boolean);
19
20
  /**
20
21
  * Initializes the root directory for the AxioDB.
21
22
  *
@@ -26,14 +26,16 @@ const Converter_helper_1 = __importDefault(require("../Helper/Converter.helper")
26
26
  const outers_1 = require("outers");
27
27
  const response_helper_1 = __importDefault(require("../Helper/response.helper"));
28
28
  const server_1 = __importDefault(require("../server/config/server"));
29
+ const server_2 = __importDefault(require("../tcp/config/server"));
29
30
  /**
30
31
  * Class representing the AxioDB database.
31
32
  * @param {string} RootName - The name of the root folder.
32
33
  * @returns {AxioDB} - Returns the instance of AxioDB.
33
34
  */
34
35
  class AxioDB {
35
- constructor(GUI, RootName, CustomPath) {
36
+ constructor(GUI, RootName, CustomPath, TCP) {
36
37
  this.GUI = Keys_1.General.DBMS_GUI_Enable;
38
+ this.TCP = false;
37
39
  if (AxioDB._instance) {
38
40
  throw new Error("Only one instance of AxioDB is allowed.");
39
41
  }
@@ -47,6 +49,7 @@ class AxioDB {
47
49
  this.initializeRoot(); // Ensure root initialization
48
50
  this.DatabaseMap = new Map(); // Initialize the DatabaseMap
49
51
  this.GUI = GUI !== undefined ? GUI : Keys_1.General.DBMS_GUI_Enable; // Set GUI option
52
+ this.TCP = TCP !== undefined ? TCP : false; // Set TCP option
50
53
  }
51
54
  /**
52
55
  * Initializes the root directory for the AxioDB.
@@ -75,6 +78,10 @@ class AxioDB {
75
78
  outers_1.Console.green("Starting AxioDB Control Server...");
76
79
  (0, server_1.default)(this); // Start the web Control Server with the AxioDB instance
77
80
  }
81
+ if (this.TCP) {
82
+ outers_1.Console.green("Starting AxioDB TCP Server...");
83
+ (0, server_2.default)(this); // Start the TCP Server with the AxioDB instance
84
+ }
78
85
  });
79
86
  }
80
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AxioDBCloud } from './AxioDBCloud.client';
2
+ /**
3
+ * Aggregation Proxy - Aggregation builder for remote aggregations
4
+ * Mirrors the Aggregation class API
5
+ */
6
+ export default class AggregationProxy {
7
+ private client;
8
+ private dbName;
9
+ private collectionName;
10
+ private pipeline;
11
+ constructor(client: AxioDBCloud, dbName: string, collectionName: string, pipeline: object[]);
12
+ /**
13
+ * Execute the aggregation pipeline
14
+ */
15
+ exec(): Promise<any>;
16
+ }
@@ -0,0 +1,38 @@
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 command_types_1 = require("../tcp/types/command.types");
13
+ /**
14
+ * Aggregation Proxy - Aggregation builder for remote aggregations
15
+ * Mirrors the Aggregation class API
16
+ */
17
+ class AggregationProxy {
18
+ constructor(client, dbName, collectionName, pipeline) {
19
+ this.client = client;
20
+ this.dbName = dbName;
21
+ this.collectionName = collectionName;
22
+ this.pipeline = pipeline;
23
+ }
24
+ /**
25
+ * Execute the aggregation pipeline
26
+ */
27
+ exec() {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ return yield this.client.sendCommand(command_types_1.CommandType.AGGREGATE, {
30
+ dbName: this.dbName,
31
+ collectionName: this.collectionName,
32
+ pipeline: this.pipeline,
33
+ });
34
+ });
35
+ }
36
+ }
37
+ exports.default = AggregationProxy;
38
+ //# sourceMappingURL=AggregationProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregationProxy.js","sourceRoot":"","sources":["../../source/client/AggregationProxy.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,8DAAyD;AAEzD;;;GAGG;AACH,MAAqB,gBAAgB;IAMnC,YAAY,MAAmB,EAAE,MAAc,EAAE,cAAsB,EAAE,QAAkB;QACzF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACG,IAAI;;YACR,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,2BAAW,CAAC,SAAS,EAAE;gBAC1D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAvBD,mCAuBC"}
@@ -0,0 +1,74 @@
1
+ import { EventEmitter } from 'events';
2
+ import { CommandType } from '../tcp/types/command.types';
3
+ import { AxioDBCloudOptions, ConnectionState } from './types/client.types';
4
+ import DatabaseProxy from './DatabaseProxy';
5
+ /**
6
+ * AxioDBCloud - TCP Client for remote AxioDB access
7
+ */
8
+ export declare class AxioDBCloud extends EventEmitter {
9
+ private host;
10
+ private port;
11
+ private socket;
12
+ private messageBuffer;
13
+ private pendingRequests;
14
+ private connectionState;
15
+ private options;
16
+ private reconnectAttempt;
17
+ private heartbeatInterval;
18
+ constructor(connectionString: string, options?: AxioDBCloudOptions);
19
+ /**
20
+ * Parse connection string: axiodb://host:port
21
+ */
22
+ private parseConnectionString;
23
+ /**
24
+ * Connect to AxioDB TCP server
25
+ */
26
+ connect(): Promise<void>;
27
+ /**
28
+ * Setup socket event handlers
29
+ */
30
+ private setupSocketHandlers;
31
+ /**
32
+ * Handle server response
33
+ */
34
+ private handleResponse;
35
+ /**
36
+ * Handle disconnection
37
+ */
38
+ private handleDisconnection;
39
+ /**
40
+ * Attempt to reconnect
41
+ */
42
+ private attemptReconnect;
43
+ /**
44
+ * Start heartbeat
45
+ */
46
+ private startHeartbeat;
47
+ /**
48
+ * Stop heartbeat
49
+ */
50
+ private stopHeartbeat;
51
+ /**
52
+ * Send command to server
53
+ */
54
+ sendCommand(command: CommandType, params: any): Promise<any>;
55
+ /**
56
+ * Disconnect from server
57
+ */
58
+ disconnect(): Promise<void>;
59
+ /**
60
+ * Database API - mirrors AxioDB
61
+ */
62
+ createDB(name: string): Promise<DatabaseProxy>;
63
+ deleteDatabase(name: string): Promise<void>;
64
+ isDatabaseExists(name: string): Promise<boolean>;
65
+ getInstanceInfo(): Promise<any>;
66
+ /**
67
+ * Get current connection state
68
+ */
69
+ get state(): ConnectionState;
70
+ /**
71
+ * Check if connected
72
+ */
73
+ get isConnected(): boolean;
74
+ }
@@ -0,0 +1,306 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AxioDBCloud = void 0;
16
+ const net_1 = require("net");
17
+ const crypto_1 = require("crypto");
18
+ const events_1 = require("events");
19
+ const protocol_1 = require("../tcp/config/protocol");
20
+ const command_types_1 = require("../tcp/types/command.types");
21
+ const client_types_1 = require("./types/client.types");
22
+ const DatabaseProxy_1 = __importDefault(require("./DatabaseProxy"));
23
+ /**
24
+ * AxioDBCloud - TCP Client for remote AxioDB access
25
+ */
26
+ class AxioDBCloud extends events_1.EventEmitter {
27
+ constructor(connectionString, options) {
28
+ super();
29
+ this.socket = null;
30
+ this.messageBuffer = new protocol_1.MessageBuffer();
31
+ this.pendingRequests = new Map();
32
+ this.connectionState = client_types_1.ConnectionState.DISCONNECTED;
33
+ this.reconnectAttempt = 0;
34
+ this.heartbeatInterval = null;
35
+ // Parse connection string
36
+ const parsed = this.parseConnectionString(connectionString);
37
+ this.host = parsed.host;
38
+ this.port = parsed.port;
39
+ // Set options with defaults
40
+ this.options = {
41
+ timeout: (options === null || options === void 0 ? void 0 : options.timeout) || 30000,
42
+ reconnectAttempts: (options === null || options === void 0 ? void 0 : options.reconnectAttempts) || 10,
43
+ reconnectDelay: (options === null || options === void 0 ? void 0 : options.reconnectDelay) || 1000,
44
+ heartbeatInterval: (options === null || options === void 0 ? void 0 : options.heartbeatInterval) || 30000,
45
+ };
46
+ }
47
+ /**
48
+ * Parse connection string: axiodb://host:port
49
+ */
50
+ parseConnectionString(connectionString) {
51
+ const match = connectionString.match(/^axiodb:\/\/([^:]+):(\d+)$/);
52
+ if (!match) {
53
+ throw new Error('Invalid connection string. Format: axiodb://host:port');
54
+ }
55
+ return {
56
+ host: match[1],
57
+ port: parseInt(match[2], 10),
58
+ };
59
+ }
60
+ /**
61
+ * Connect to AxioDB TCP server
62
+ */
63
+ connect() {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ return new Promise((resolve, reject) => {
66
+ if (this.connectionState === client_types_1.ConnectionState.CONNECTED) {
67
+ return resolve();
68
+ }
69
+ this.connectionState = client_types_1.ConnectionState.CONNECTING;
70
+ this.socket = new net_1.Socket();
71
+ // Setup socket event handlers
72
+ this.setupSocketHandlers();
73
+ // Connection timeout
74
+ const connectionTimeout = setTimeout(() => {
75
+ var _a;
76
+ (_a = this.socket) === null || _a === void 0 ? void 0 : _a.destroy();
77
+ this.connectionState = client_types_1.ConnectionState.FAILED;
78
+ reject(new Error('Connection timeout'));
79
+ }, this.options.timeout);
80
+ // Connect to server
81
+ this.socket.connect(this.port, this.host, () => {
82
+ clearTimeout(connectionTimeout);
83
+ this.connectionState = client_types_1.ConnectionState.CONNECTED;
84
+ this.reconnectAttempt = 0;
85
+ this.startHeartbeat();
86
+ this.emit('connected');
87
+ resolve();
88
+ });
89
+ // Handle connection errors
90
+ this.socket.once('error', (error) => {
91
+ clearTimeout(connectionTimeout);
92
+ this.connectionState = client_types_1.ConnectionState.FAILED;
93
+ reject(error);
94
+ });
95
+ });
96
+ });
97
+ }
98
+ /**
99
+ * Setup socket event handlers
100
+ */
101
+ setupSocketHandlers() {
102
+ if (!this.socket)
103
+ return;
104
+ this.socket.on('data', (chunk) => {
105
+ try {
106
+ const messages = this.messageBuffer.addChunk(chunk);
107
+ for (const message of messages) {
108
+ this.handleResponse(message);
109
+ }
110
+ }
111
+ catch (error) {
112
+ this.emit('error', error);
113
+ }
114
+ });
115
+ this.socket.on('error', (error) => {
116
+ this.emit('error', error);
117
+ this.handleDisconnection();
118
+ });
119
+ this.socket.on('close', (hadError) => {
120
+ this.emit('disconnected', hadError);
121
+ this.handleDisconnection();
122
+ });
123
+ this.socket.on('end', () => {
124
+ this.handleDisconnection();
125
+ });
126
+ }
127
+ /**
128
+ * Handle server response
129
+ */
130
+ handleResponse(response) {
131
+ const pending = this.pendingRequests.get(response.id);
132
+ if (pending) {
133
+ clearTimeout(pending.timeout);
134
+ this.pendingRequests.delete(response.id);
135
+ if (response.statusCode >= 200 && response.statusCode < 300) {
136
+ pending.resolve(response.data);
137
+ }
138
+ else {
139
+ pending.reject(new Error(response.error || response.message));
140
+ }
141
+ }
142
+ else {
143
+ console.warn(`[AxioDBCloud] Received response for unknown request: ${response.id}`);
144
+ }
145
+ }
146
+ /**
147
+ * Handle disconnection
148
+ */
149
+ handleDisconnection() {
150
+ this.connectionState = client_types_1.ConnectionState.DISCONNECTED;
151
+ this.stopHeartbeat();
152
+ // Reject all pending requests
153
+ for (const [id, pending] of this.pendingRequests.entries()) {
154
+ clearTimeout(pending.timeout);
155
+ pending.reject(new Error('Connection lost'));
156
+ this.pendingRequests.delete(id);
157
+ }
158
+ // Attempt reconnection
159
+ if (this.reconnectAttempt < this.options.reconnectAttempts) {
160
+ this.attemptReconnect();
161
+ }
162
+ else {
163
+ this.emit('failed', new Error('Max reconnection attempts reached'));
164
+ }
165
+ }
166
+ /**
167
+ * Attempt to reconnect
168
+ */
169
+ attemptReconnect() {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ this.reconnectAttempt++;
172
+ const delay = Math.min(this.options.reconnectDelay * Math.pow(2, this.reconnectAttempt - 1), 30000);
173
+ this.emit('reconnecting', this.reconnectAttempt);
174
+ this.connectionState = client_types_1.ConnectionState.RECONNECTING;
175
+ setTimeout(() => __awaiter(this, void 0, void 0, function* () {
176
+ try {
177
+ yield this.connect();
178
+ this.emit('reconnected');
179
+ }
180
+ catch (error) {
181
+ // Reconnection will be attempted again in handleDisconnection
182
+ }
183
+ }), delay);
184
+ });
185
+ }
186
+ /**
187
+ * Start heartbeat
188
+ */
189
+ startHeartbeat() {
190
+ this.heartbeatInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
191
+ try {
192
+ yield this.sendCommand(command_types_1.CommandType.PING, {});
193
+ }
194
+ catch (error) {
195
+ console.warn('[AxioDBCloud] Heartbeat failed:', error);
196
+ }
197
+ }), this.options.heartbeatInterval);
198
+ }
199
+ /**
200
+ * Stop heartbeat
201
+ */
202
+ stopHeartbeat() {
203
+ if (this.heartbeatInterval) {
204
+ clearInterval(this.heartbeatInterval);
205
+ this.heartbeatInterval = null;
206
+ }
207
+ }
208
+ /**
209
+ * Send command to server
210
+ */
211
+ sendCommand(command, params) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ if (this.connectionState !== client_types_1.ConnectionState.CONNECTED) {
214
+ throw new Error('Not connected to server');
215
+ }
216
+ if (!this.socket) {
217
+ throw new Error('Socket not initialized');
218
+ }
219
+ const id = (0, crypto_1.randomUUID)();
220
+ const request = {
221
+ id,
222
+ command,
223
+ params,
224
+ };
225
+ return new Promise((resolve, reject) => {
226
+ const timeout = setTimeout(() => {
227
+ this.pendingRequests.delete(id);
228
+ reject(new Error('Request timeout'));
229
+ }, this.options.timeout);
230
+ this.pendingRequests.set(id, {
231
+ resolve,
232
+ reject,
233
+ timeout,
234
+ timestamp: Date.now(),
235
+ });
236
+ try {
237
+ const buffer = protocol_1.MessageFramer.encode(request);
238
+ this.socket.write(buffer);
239
+ }
240
+ catch (error) {
241
+ clearTimeout(timeout);
242
+ this.pendingRequests.delete(id);
243
+ reject(error);
244
+ }
245
+ });
246
+ });
247
+ }
248
+ /**
249
+ * Disconnect from server
250
+ */
251
+ disconnect() {
252
+ return __awaiter(this, void 0, void 0, function* () {
253
+ this.stopHeartbeat();
254
+ if (this.socket && !this.socket.destroyed) {
255
+ try {
256
+ yield this.sendCommand(command_types_1.CommandType.DISCONNECT, {});
257
+ }
258
+ catch (error) {
259
+ // Ignore disconnect errors
260
+ }
261
+ this.socket.end();
262
+ this.socket = null;
263
+ }
264
+ this.connectionState = client_types_1.ConnectionState.DISCONNECTED;
265
+ });
266
+ }
267
+ /**
268
+ * Database API - mirrors AxioDB
269
+ */
270
+ createDB(name) {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ yield this.sendCommand(command_types_1.CommandType.CREATE_DB, { dbName: name });
273
+ return new DatabaseProxy_1.default(this, name);
274
+ });
275
+ }
276
+ deleteDatabase(name) {
277
+ return __awaiter(this, void 0, void 0, function* () {
278
+ yield this.sendCommand(command_types_1.CommandType.DELETE_DB, { dbName: name });
279
+ });
280
+ }
281
+ isDatabaseExists(name) {
282
+ return __awaiter(this, void 0, void 0, function* () {
283
+ const result = yield this.sendCommand(command_types_1.CommandType.DB_EXISTS, { dbName: name });
284
+ return result.exists;
285
+ });
286
+ }
287
+ getInstanceInfo() {
288
+ return __awaiter(this, void 0, void 0, function* () {
289
+ return yield this.sendCommand(command_types_1.CommandType.GET_INSTANCE_INFO, {});
290
+ });
291
+ }
292
+ /**
293
+ * Get current connection state
294
+ */
295
+ get state() {
296
+ return this.connectionState;
297
+ }
298
+ /**
299
+ * Check if connected
300
+ */
301
+ get isConnected() {
302
+ return this.connectionState === client_types_1.ConnectionState.CONNECTED;
303
+ }
304
+ }
305
+ exports.AxioDBCloud = AxioDBCloud;
306
+ //# sourceMappingURL=AxioDBCloud.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxioDBCloud.client.js","sourceRoot":"","sources":["../../source/client/AxioDBCloud.client.ts"],"names":[],"mappings":"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"}