axiodb 10.8.11 → 11.9.13
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.
- package/README.md +447 -315
- package/lib/Services/Auth/AuthEvents.service.d.ts +15 -0
- package/lib/Services/Auth/AuthEvents.service.js +17 -0
- package/lib/Services/Auth/AuthEvents.service.js.map +1 -0
- package/lib/Services/Auth/AuthService.service.js +4 -0
- package/lib/Services/Auth/AuthService.service.js.map +1 -1
- package/lib/Services/Auth/LoginRateLimiter.service.d.ts +35 -0
- package/lib/Services/Auth/LoginRateLimiter.service.js +89 -0
- package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -0
- package/lib/Services/Collection/collection.operation.d.ts +6 -0
- package/lib/Services/Collection/collection.operation.js +10 -0
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Index/Index.service.d.ts +20 -0
- package/lib/Services/Index/Index.service.js +25 -1
- package/lib/Services/Index/Index.service.js.map +1 -1
- package/lib/Services/Indexation.operation.d.ts +4 -0
- package/lib/Services/Indexation.operation.js +13 -4
- package/lib/Services/Indexation.operation.js.map +1 -1
- package/lib/client/AxioDBCloud.client.d.ts +20 -1
- package/lib/client/AxioDBCloud.client.js +54 -3
- package/lib/client/AxioDBCloud.client.js.map +1 -1
- package/lib/client/CollectionProxy.d.ts +4 -0
- package/lib/client/CollectionProxy.js +11 -0
- package/lib/client/CollectionProxy.js.map +1 -1
- package/lib/client/types/client.types.d.ts +8 -0
- package/lib/client/types/client.types.js.map +1 -1
- package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
- package/lib/config/Keys/Permissions.d.ts +13 -0
- package/lib/config/Keys/Permissions.js +21 -1
- package/lib/config/Keys/Permissions.js.map +1 -1
- package/lib/server/config/keys.js +26 -0
- package/lib/server/config/keys.js.map +1 -1
- package/lib/server/controller/Auth/Auth.controller.js +9 -0
- package/lib/server/controller/Auth/Auth.controller.js.map +1 -1
- package/lib/server/controller/Index/Index.controller.d.ts +35 -0
- package/lib/server/controller/Index/Index.controller.js +148 -0
- package/lib/server/controller/Index/Index.controller.js.map +1 -0
- package/lib/server/router/Router.js +6 -0
- package/lib/server/router/Router.js.map +1 -1
- package/lib/server/router/Routers/Index.routes.d.ts +7 -0
- package/lib/server/router/Routers/Index.routes.js +38 -0
- package/lib/server/router/Routers/Index.routes.js.map +1 -0
- package/lib/tcp/config/keys.d.ts +8 -0
- package/lib/tcp/config/keys.js +8 -0
- package/lib/tcp/config/keys.js.map +1 -1
- package/lib/tcp/config/permissions.d.ts +16 -0
- package/lib/tcp/config/permissions.js +46 -0
- package/lib/tcp/config/permissions.js.map +1 -0
- package/lib/tcp/config/protocol.js +13 -0
- package/lib/tcp/config/protocol.js.map +1 -1
- package/lib/tcp/config/server.d.ts +1 -1
- package/lib/tcp/config/server.js +28 -6
- package/lib/tcp/config/server.js.map +1 -1
- package/lib/tcp/connection/ConnectionManager.d.ts +19 -0
- package/lib/tcp/connection/ConnectionManager.js +31 -0
- package/lib/tcp/connection/ConnectionManager.js.map +1 -1
- package/lib/tcp/connection/RequestContext.d.ts +4 -1
- package/lib/tcp/connection/RequestContext.js +4 -1
- package/lib/tcp/connection/RequestContext.js.map +1 -1
- package/lib/tcp/handler/CommandHandler.d.ts +5 -1
- package/lib/tcp/handler/CommandHandler.js +34 -4
- package/lib/tcp/handler/CommandHandler.js.map +1 -1
- package/lib/tcp/handler/handlers/Auth.handler.d.ts +16 -0
- package/lib/tcp/handler/handlers/Auth.handler.js +91 -0
- package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -0
- package/lib/tcp/handler/handlers/Operation.handler.d.ts +4 -0
- package/lib/tcp/handler/handlers/Operation.handler.js +27 -0
- package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
- package/lib/tcp/types/command.types.d.ts +2 -0
- package/lib/tcp/types/command.types.js +5 -0
- package/lib/tcp/types/command.types.js.map +1 -1
- package/lib/tcp/types/protocol.types.d.ts +2 -0
- package/lib/tcp/types/protocol.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -47,6 +47,9 @@ class AxioDBCloud extends events_1.EventEmitter {
|
|
|
47
47
|
reconnectDelay: (options === null || options === void 0 ? void 0 : options.reconnectDelay) || 1000,
|
|
48
48
|
heartbeatInterval: (options === null || options === void 0 ? void 0 : options.heartbeatInterval) || 30000,
|
|
49
49
|
};
|
|
50
|
+
if ((options === null || options === void 0 ? void 0 : options.username) && (options === null || options === void 0 ? void 0 : options.password)) {
|
|
51
|
+
this.credentials = { username: options.username, password: options.password };
|
|
52
|
+
}
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Parse connection string: axiodb://host:port
|
|
@@ -90,14 +93,31 @@ class AxioDBCloud extends events_1.EventEmitter {
|
|
|
90
93
|
reject(new Error('Connection timeout'));
|
|
91
94
|
}, this.options.timeout);
|
|
92
95
|
// Connect to server
|
|
93
|
-
this.socket.connect(this.port, this.host, () => {
|
|
96
|
+
this.socket.connect(this.port, this.host, () => __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
var _a;
|
|
94
98
|
clearTimeout(connectionTimeout);
|
|
95
99
|
this.connectionState = client_types_1.ConnectionState.CONNECTED;
|
|
96
100
|
this.reconnectAttempt = 0;
|
|
97
101
|
this.startHeartbeat();
|
|
98
102
|
this.emit('connected');
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
if (!this.credentials) {
|
|
104
|
+
resolve();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
yield this.performAuthenticate(this.credentials.username, this.credentials.password);
|
|
109
|
+
resolve();
|
|
110
|
+
}
|
|
111
|
+
catch (authError) {
|
|
112
|
+
// Mirror disconnect()'s guard: prevent handleDisconnection's auto-reconnect
|
|
113
|
+
// from retrying the same bad credentials up to `reconnectAttempts` times.
|
|
114
|
+
this.reconnectAttempt = this.options.reconnectAttempts;
|
|
115
|
+
this.connectionState = client_types_1.ConnectionState.FAILED;
|
|
116
|
+
this.stopHeartbeat();
|
|
117
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
118
|
+
reject(authError);
|
|
119
|
+
}
|
|
120
|
+
}));
|
|
101
121
|
// Handle connection errors
|
|
102
122
|
this.socket.once('error', (error) => {
|
|
103
123
|
clearTimeout(connectionTimeout);
|
|
@@ -107,6 +127,37 @@ class AxioDBCloud extends events_1.EventEmitter {
|
|
|
107
127
|
});
|
|
108
128
|
});
|
|
109
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Authenticate with username/password (same RBAC users as the GUI Control Server).
|
|
132
|
+
* Only required when the server was started with `TCPAuth: true`.
|
|
133
|
+
*
|
|
134
|
+
* Stashes the credentials so a later automatic reconnect replays login - otherwise a
|
|
135
|
+
* network blip after a runtime `login()` call would silently leave the reconnected
|
|
136
|
+
* socket unauthenticated.
|
|
137
|
+
*/
|
|
138
|
+
login(username, password) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const authUser = yield this.performAuthenticate(username, password);
|
|
141
|
+
this.credentials = { username, password };
|
|
142
|
+
return authUser;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Sends the AUTHENTICATE command and stores the resulting identity.
|
|
147
|
+
*/
|
|
148
|
+
performAuthenticate(username, password) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
const result = yield this.sendCommand(command_types_1.CommandType.AUTHENTICATE, { username, password });
|
|
151
|
+
this.authUser = result;
|
|
152
|
+
return this.authUser;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The currently authenticated identity, if `login()` (or constructor credentials) succeeded.
|
|
157
|
+
*/
|
|
158
|
+
get authenticatedUser() {
|
|
159
|
+
return this.authUser;
|
|
160
|
+
}
|
|
110
161
|
/**
|
|
111
162
|
* Setup socket event handlers
|
|
112
163
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxioDBCloud.client.js","sourceRoot":"","sources":["../../source/client/AxioDBCloud.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,6BAA6B;AAC7B,mCAAoC;AACpC,mCAAsC;AACtC,qDAAsE;AAEtE,8DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"AxioDBCloud.client.js","sourceRoot":"","sources":["../../source/client/AxioDBCloud.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,6BAA6B;AAC7B,mCAAoC;AACpC,mCAAsC;AACtC,qDAAsE;AAEtE,8DAAyD;AACzD,uDAAsH;AACtH,oEAA4C;AAE5C;;GAEG;AACH,iBAAyB,SAAQ,qBAAY;IAe3C,YAAY,gBAAwB,EAAE,OAA4B;QAChE,KAAK,EAAE,CAAC;QAbF,WAAM,GAAkB,IAAI,CAAC;QAC7B,kBAAa,GAAkB,IAAI,wBAAa,EAAE,CAAC;QACnD,oBAAe,GAAgC,IAAI,GAAG,EAAE,CAAC;QACzD,oBAAe,GAAoB,8BAAe,CAAC,YAAY,CAAC;QAEhE,qBAAgB,GAAW,CAAC,CAAC;QAC7B,sBAAiB,GAA0B,IAAI,CAAC;QAStD,oDAAoD;QACpD,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAEzB,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAExB,4BAA4B;QAC5B,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,KAAK;YAClC,iBAAiB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,KAAI,EAAE;YACnD,cAAc,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,KAAI,IAAI;YAC/C,iBAAiB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,KAAI,KAAK;SACvD,CAAC;QAEF,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,gBAAwB;QACpD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACG,OAAO;;YACX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,eAAe,KAAK,8BAAe,CAAC,SAAS,EAAE,CAAC;oBACvD,OAAO,OAAO,EAAE,CAAC;gBACnB,CAAC;gBAED,mCAAmC;gBACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,UAAU,CAAC;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,YAAM,EAAE,CAAC;gBAE3B,8BAA8B;gBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAE3B,qBAAqB;gBACrB,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;;oBACxC,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,EAAE,CAAC;oBACvB,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,MAAM,CAAC;oBAC9C,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC1C,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAEzB,oBAAoB;gBACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAS,EAAE;;oBACnD,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,SAAS,CAAC;oBACjD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAEvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;wBACtB,OAAO,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBACrF,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,OAAO,SAAS,EAAE,CAAC;wBACnB,4EAA4E;wBAC5E,0EAA0E;wBAC1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;wBACvD,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,MAAM,CAAC;wBAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,EAAE,CAAC;wBACvB,MAAM,CAAC,SAAS,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC,CAAA,CAAC,CAAC;gBAEH,2BAA2B;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClC,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,MAAM,CAAC;oBAC9C,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,QAAgB,EAAE,QAAgB;;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAED;;OAEG;IACW,mBAAmB,CAAC,QAAgB,EAAE,QAAgB;;YAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,MAA2B,CAAC;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;KAAA;IAED;;OAEG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;;YACvC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAEpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC,cAAc,CAAC,OAAsB,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,8DAA8D;gBAC9D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBAE3B,0EAA0E;gBAC1E,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;oBACrF,MAAM,aAAa,GAAG,IAAI,KAAK,CAC7B,wFAAwF;wBACxF,oEAAoE,CACrE,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBAClC,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,EAAE,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAiB,EAAE,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAqB;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEzC,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;gBAC5D,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,wDAAwD,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,YAAY,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,4BAA4B;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC;QAED,8BAA8B;QAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACW,gBAAgB;;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACpE,KAAK,CACN,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjD,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,YAAY,CAAC;YAEpD,UAAU,CAAC,GAAS,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,8DAA8D;gBAChE,CAAC;YACH,CAAC,CAAA,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;KAAA;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAS,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAA,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACG,WAAW,CAAC,OAAoB,EAAE,MAAW;;YACjD,IAAI,IAAI,CAAC,eAAe,KAAK,8BAAe,CAAC,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,EAAE,GAAG,IAAA,mBAAU,GAAE,CAAC;YACxB,MAAM,OAAO,GAAe;gBAC1B,EAAE;gBACF,OAAO;gBACP,MAAM;aACP,CAAC;YAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACvC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAEzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;oBAC3B,OAAO;oBACP,MAAM;oBACN,OAAO;oBACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC7C,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAChC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACG,UAAU;;YACd,gCAAgC;YAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACvD,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,2BAA2B;gBAC7B,CAAC;gBAED,gCAAgC;gBAChC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,8BAAe,CAAC,YAAY,CAAC;QACtD,CAAC;KAAA;IAED;;OAEG;IACG,QAAQ,CAAC,IAAY;;YACzB,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;KAAA;IAEK,cAAc,CAAC,IAAY;;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;KAAA;IAEK,gBAAgB,CAAC,IAAY;;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;KAAA;IAEK,eAAe;;YACnB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,2BAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;KAAA;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,KAAK,8BAAe,CAAC,SAAS,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -110,6 +110,17 @@ class CollectionProxy {
|
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* List all indexes registered on this collection
|
|
115
|
+
*/
|
|
116
|
+
listIndexes() {
|
|
117
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
118
|
+
return yield this.client.sendCommand(command_types_1.CommandType.LIST_INDEXES, {
|
|
119
|
+
dbName: this.dbName,
|
|
120
|
+
collectionName: this.collectionName,
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
}
|
|
113
124
|
/**
|
|
114
125
|
* Get collection name
|
|
115
126
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionProxy.js","sourceRoot":"","sources":["../../source/client/CollectionProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,8DAAyD;AACzD,gEAAwC;AACxC,kFAA0D;AAC1D,kFAA0D;AAC1D,0EAAkD;AAElD;;;GAGG;AACH;IAKE,YAAY,MAAmB,EAAE,MAAc,EAAE,cAAsB;QACrE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;OAEG;IACG,MAAM,CAAC,IAAY;;YACvB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,2BAAW,CAAC,eAAe,EAAE;gBAChE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,IAAI;aACL,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACG,UAAU,CAAC,SAAmB;;YAClC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,2BAAW,CAAC,qBAAqB,EAAE;gBACtE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACjB,OAAO,IAAI,qBAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,8BAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,8BAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAkB;QAC1B,OAAO,IAAI,0BAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACG,cAAc;;YAClB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,2BAAW,CAAC,eAAe,EAAE;gBAChE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACG,QAAQ,CAAC,GAAG,UAAoB;;YACpC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,2BAAW,CAAC,YAAY,EAAE;gBAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,UAAU;aACX,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACG,SAAS,CAAC,SAAiB;;YAC/B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,2BAAW,CAAC,UAAU,EAAE;gBAC3D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"CollectionProxy.js","sourceRoot":"","sources":["../../source/client/CollectionProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,14 @@ export interface AxioDBCloudOptions {
|
|
|
9
9
|
reconnectAttempts?: number;
|
|
10
10
|
reconnectDelay?: number;
|
|
11
11
|
heartbeatInterval?: number;
|
|
12
|
+
username?: string;
|
|
13
|
+
password?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Public shape returned by a successful AUTHENTICATE command. */
|
|
16
|
+
export interface AuthenticatedUser {
|
|
17
|
+
username: string;
|
|
18
|
+
role: string;
|
|
19
|
+
mustChangePassword: boolean;
|
|
12
20
|
}
|
|
13
21
|
/**
|
|
14
22
|
* Connection state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../../source/client/types/client.types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../../source/client/types/client.types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqBH;;GAEG;AACH,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,gDAA6B,CAAA;IAC7B,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EANW,eAAe,aAAf,eAAe,GAAf,eAAe,QAM1B"}
|
|
@@ -4,6 +4,8 @@ export interface AxioDBOptions {
|
|
|
4
4
|
RootName?: string;
|
|
5
5
|
CustomPath?: string;
|
|
6
6
|
TCP?: boolean;
|
|
7
|
+
/** Require username/password authentication (same RBAC users as the GUI) for TCP connections. Defaults to false. */
|
|
8
|
+
TCPAuth?: boolean;
|
|
7
9
|
}
|
|
8
10
|
export interface FinalDatabaseInfo {
|
|
9
11
|
CurrentPath: string;
|
|
@@ -21,6 +21,9 @@ export declare const PERMISSIONS: {
|
|
|
21
21
|
readonly USER_DELETE: "user:delete";
|
|
22
22
|
readonly ROLE_VIEW: "role:view";
|
|
23
23
|
readonly ROLE_CREATE: "role:create";
|
|
24
|
+
readonly INDEX_VIEW: "index:view";
|
|
25
|
+
readonly INDEX_CREATE: "index:create";
|
|
26
|
+
readonly INDEX_DELETE: "index:delete";
|
|
24
27
|
};
|
|
25
28
|
export type PermissionKey = (typeof PERMISSIONS)[keyof typeof PERMISSIONS];
|
|
26
29
|
interface PermissionCatalogueEntry {
|
|
@@ -48,4 +51,14 @@ export declare const DEFAULT_ADMIN_PASSWORD = "admin";
|
|
|
48
51
|
export declare const SESSION_COOKIE_NAME = "axiodb_session";
|
|
49
52
|
export declare const SESSION_TTL_MS: number;
|
|
50
53
|
export declare const SESSION_SWEEP_INTERVAL_MS: number;
|
|
54
|
+
/**
|
|
55
|
+
* Login rate limiting - shared by the GUI's /auth/login route and the TCP AUTHENTICATE
|
|
56
|
+
* command (see LoginRateLimiter.service.ts). Tracked per client IP: after
|
|
57
|
+
* LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures within LOGIN_RATE_LIMIT_WINDOW_MS, that IP is
|
|
58
|
+
* locked out for LOGIN_RATE_LIMIT_COOLDOWN_MS.
|
|
59
|
+
*/
|
|
60
|
+
export declare const LOGIN_RATE_LIMIT_MAX_ATTEMPTS = 5;
|
|
61
|
+
export declare const LOGIN_RATE_LIMIT_WINDOW_MS: number;
|
|
62
|
+
export declare const LOGIN_RATE_LIMIT_COOLDOWN_MS: number;
|
|
63
|
+
export declare const LOGIN_RATE_LIMIT_SWEEP_INTERVAL_MS: number;
|
|
51
64
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Predefined permission catalogue and role matrix for the Control Server's RBAC system.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SESSION_SWEEP_INTERVAL_MS = exports.SESSION_TTL_MS = exports.SESSION_COOKIE_NAME = exports.DEFAULT_ADMIN_PASSWORD = exports.DEFAULT_ADMIN_USERNAME = exports.CONFIG_PERMISSIONS_COLLECTION = exports.CONFIG_ROLES_COLLECTION = exports.CONFIG_USERS_COLLECTION = exports.RESERVED_DB_NAME = exports.PREDEFINED_ROLES = exports.VIEW_ROLE = exports.ADMIN_ROLE = exports.SUPER_ADMIN_ROLE = exports.ALL_PERMISSION_KEYS = exports.PERMISSION_CATALOGUE = exports.PERMISSIONS = void 0;
|
|
4
|
+
exports.LOGIN_RATE_LIMIT_SWEEP_INTERVAL_MS = exports.LOGIN_RATE_LIMIT_COOLDOWN_MS = exports.LOGIN_RATE_LIMIT_WINDOW_MS = exports.LOGIN_RATE_LIMIT_MAX_ATTEMPTS = exports.SESSION_SWEEP_INTERVAL_MS = exports.SESSION_TTL_MS = exports.SESSION_COOKIE_NAME = exports.DEFAULT_ADMIN_PASSWORD = exports.DEFAULT_ADMIN_USERNAME = exports.CONFIG_PERMISSIONS_COLLECTION = exports.CONFIG_ROLES_COLLECTION = exports.CONFIG_USERS_COLLECTION = exports.RESERVED_DB_NAME = exports.PREDEFINED_ROLES = exports.VIEW_ROLE = exports.ADMIN_ROLE = exports.SUPER_ADMIN_ROLE = exports.ALL_PERMISSION_KEYS = exports.PERMISSION_CATALOGUE = exports.PERMISSIONS = void 0;
|
|
5
5
|
exports.isReservedDatabaseName = isReservedDatabaseName;
|
|
6
6
|
exports.PERMISSIONS = {
|
|
7
7
|
DB_VIEW: "db:view",
|
|
@@ -26,6 +26,9 @@ exports.PERMISSIONS = {
|
|
|
26
26
|
USER_DELETE: "user:delete",
|
|
27
27
|
ROLE_VIEW: "role:view",
|
|
28
28
|
ROLE_CREATE: "role:create",
|
|
29
|
+
INDEX_VIEW: "index:view",
|
|
30
|
+
INDEX_CREATE: "index:create",
|
|
31
|
+
INDEX_DELETE: "index:delete",
|
|
29
32
|
};
|
|
30
33
|
exports.PERMISSION_CATALOGUE = [
|
|
31
34
|
{ key: exports.PERMISSIONS.DB_VIEW, group: "Database", description: "View the list of databases and dashboard database counts" },
|
|
@@ -50,6 +53,9 @@ exports.PERMISSION_CATALOGUE = [
|
|
|
50
53
|
{ key: exports.PERMISSIONS.USER_DELETE, group: "User Management", description: "Delete a user" },
|
|
51
54
|
{ key: exports.PERMISSIONS.ROLE_VIEW, group: "Role Management", description: "View the list of roles and the permission catalogue" },
|
|
52
55
|
{ key: exports.PERMISSIONS.ROLE_CREATE, group: "Role Management", description: "Create new roles from the predefined permission catalogue" },
|
|
56
|
+
{ key: exports.PERMISSIONS.INDEX_VIEW, group: "Index", description: "View the list of indexes on a collection" },
|
|
57
|
+
{ key: exports.PERMISSIONS.INDEX_CREATE, group: "Index", description: "Create new indexes on a collection" },
|
|
58
|
+
{ key: exports.PERMISSIONS.INDEX_DELETE, group: "Index", description: "Delete an index from a collection" },
|
|
53
59
|
];
|
|
54
60
|
exports.ALL_PERMISSION_KEYS = exports.PERMISSION_CATALOGUE.map((entry) => entry.key);
|
|
55
61
|
const DATA_PLANE_PERMISSIONS = [
|
|
@@ -68,6 +74,9 @@ const DATA_PLANE_PERMISSIONS = [
|
|
|
68
74
|
exports.PERMISSIONS.DOCUMENT_DELETE,
|
|
69
75
|
exports.PERMISSIONS.DOCUMENT_AGGREGATE,
|
|
70
76
|
exports.PERMISSIONS.DASHBOARD_VIEW,
|
|
77
|
+
exports.PERMISSIONS.INDEX_VIEW,
|
|
78
|
+
exports.PERMISSIONS.INDEX_CREATE,
|
|
79
|
+
exports.PERMISSIONS.INDEX_DELETE,
|
|
71
80
|
];
|
|
72
81
|
const VIEW_ONLY_PERMISSIONS = [
|
|
73
82
|
exports.PERMISSIONS.DB_VIEW,
|
|
@@ -76,6 +85,7 @@ const VIEW_ONLY_PERMISSIONS = [
|
|
|
76
85
|
exports.PERMISSIONS.DOCUMENT_QUERY,
|
|
77
86
|
exports.PERMISSIONS.DOCUMENT_AGGREGATE,
|
|
78
87
|
exports.PERMISSIONS.DASHBOARD_VIEW,
|
|
88
|
+
exports.PERMISSIONS.INDEX_VIEW,
|
|
79
89
|
];
|
|
80
90
|
exports.SUPER_ADMIN_ROLE = "Super Admin";
|
|
81
91
|
exports.ADMIN_ROLE = "Admin";
|
|
@@ -98,4 +108,14 @@ exports.DEFAULT_ADMIN_PASSWORD = "admin";
|
|
|
98
108
|
exports.SESSION_COOKIE_NAME = "axiodb_session";
|
|
99
109
|
exports.SESSION_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
100
110
|
exports.SESSION_SWEEP_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
|
|
111
|
+
/**
|
|
112
|
+
* Login rate limiting - shared by the GUI's /auth/login route and the TCP AUTHENTICATE
|
|
113
|
+
* command (see LoginRateLimiter.service.ts). Tracked per client IP: after
|
|
114
|
+
* LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures within LOGIN_RATE_LIMIT_WINDOW_MS, that IP is
|
|
115
|
+
* locked out for LOGIN_RATE_LIMIT_COOLDOWN_MS.
|
|
116
|
+
*/
|
|
117
|
+
exports.LOGIN_RATE_LIMIT_MAX_ATTEMPTS = 5;
|
|
118
|
+
exports.LOGIN_RATE_LIMIT_WINDOW_MS = 15 * 60 * 1000; // 15 minutes
|
|
119
|
+
exports.LOGIN_RATE_LIMIT_COOLDOWN_MS = 15 * 60 * 1000; // 15 minutes
|
|
120
|
+
exports.LOGIN_RATE_LIMIT_SWEEP_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
|
|
101
121
|
//# sourceMappingURL=Permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../../source/config/Keys/Permissions.ts"],"names":[],"mappings":";AAAA,wFAAwF;;;;AAE3E,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IAEtC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,cAAc,EAAE,gBAAgB;IAEhC,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;IAE1B,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../../source/config/Keys/Permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,32 @@ exports.AvailableRoutes = [
|
|
|
121
121
|
},
|
|
122
122
|
],
|
|
123
123
|
},
|
|
124
|
+
{
|
|
125
|
+
groupName: "Index",
|
|
126
|
+
description: "Index Management Endpoints",
|
|
127
|
+
Paths: [
|
|
128
|
+
{
|
|
129
|
+
method: "GET",
|
|
130
|
+
path: "/api/index/list/?dbName&collectionName",
|
|
131
|
+
description: "List all indexes registered on a collection",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
method: "POST",
|
|
135
|
+
path: "/api/index/create/",
|
|
136
|
+
description: "Create one or more indexes on a collection",
|
|
137
|
+
payload: {
|
|
138
|
+
dbName: "string",
|
|
139
|
+
collectionName: "string",
|
|
140
|
+
fieldNames: "array",
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
method: "DELETE",
|
|
145
|
+
path: "/api/index/delete/?dbName&collectionName&indexName",
|
|
146
|
+
description: "Delete an index from a collection",
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
},
|
|
124
150
|
{
|
|
125
151
|
groupName: "CRUD Operations",
|
|
126
152
|
description: "CRUD Operations Endpoints",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/server/config/keys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/server/config/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,8 @@ const AuthService_service_1 = __importDefault(require("../../../Services/Auth/Au
|
|
|
51
51
|
const SessionStore_service_1 = __importDefault(require("../../../Services/Auth/SessionStore.service"));
|
|
52
52
|
const CookieCodec_helper_1 = __importDefault(require("../../../Services/Auth/CookieCodec.helper"));
|
|
53
53
|
const PermissionChecker_helper_1 = __importDefault(require("../../../Services/Auth/PermissionChecker.helper"));
|
|
54
|
+
const AuthEvents_service_1 = __importDefault(require("../../../Services/Auth/AuthEvents.service"));
|
|
55
|
+
const LoginRateLimiter_service_1 = __importDefault(require("../../../Services/Auth/LoginRateLimiter.service"));
|
|
54
56
|
const Permissions_1 = require("../../../config/Keys/Permissions");
|
|
55
57
|
const MIN_PASSWORD_LENGTH = 4;
|
|
56
58
|
class AuthController {
|
|
@@ -66,10 +68,16 @@ class AuthController {
|
|
|
66
68
|
if (!password || typeof password !== "string") {
|
|
67
69
|
return (0, responseBuilder_helper_1.sendResponse)(reply, (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Password is required"));
|
|
68
70
|
}
|
|
71
|
+
const cooldownRemaining = LoginRateLimiter_service_1.default.getCooldownRemaining(request.ip);
|
|
72
|
+
if (cooldownRemaining > 0) {
|
|
73
|
+
return (0, responseBuilder_helper_1.sendResponse)(reply, (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.TOO_MANY_REQUESTS, `Too many failed login attempts. Try again in ${Math.ceil(cooldownRemaining / 1000)}s.`));
|
|
74
|
+
}
|
|
69
75
|
const result = yield this.authService.login(username, password);
|
|
70
76
|
if (!result.success || !result.user) {
|
|
77
|
+
LoginRateLimiter_service_1.default.recordFailure(request.ip);
|
|
71
78
|
return (0, responseBuilder_helper_1.sendResponse)(reply, (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.UNAUTHORIZED, result.message));
|
|
72
79
|
}
|
|
80
|
+
LoginRateLimiter_service_1.default.recordSuccess(request.ip);
|
|
73
81
|
const session = SessionStore_service_1.default.createSession(result.user.username, result.user.role, result.user.mustChangePassword);
|
|
74
82
|
this.setSessionCookie(reply, session.sid);
|
|
75
83
|
return (0, responseBuilder_helper_1.sendResponse)(reply, (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.OK, "Login successful", {
|
|
@@ -123,6 +131,7 @@ class AuthController {
|
|
|
123
131
|
}
|
|
124
132
|
// Rotate the session so a still-live cookie can't keep referencing the old password state.
|
|
125
133
|
SessionStore_service_1.default.revokeSessionsForUser(authUser.username);
|
|
134
|
+
AuthEvents_service_1.default.emit("user-revoked", authUser.username);
|
|
126
135
|
const session = SessionStore_service_1.default.createSession(authUser.username, authUser.role, false);
|
|
127
136
|
this.setSessionCookie(reply, session.sid);
|
|
128
137
|
return (0, responseBuilder_helper_1.sendResponse)(reply, (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.OK, "Password changed successfully", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Auth/Auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gEAA8D;AAC9D,8FAAmG;AACnG,qGAAqE;AACrE,uGAAuE;AACvE,mGAAoE;AACpE,+GAAgF;AAChF,kEAAuF;AAMvF,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;IAGE;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,6BAAW,EAAE,CAAC;IACvC,CAAC;IAEY,KAAK,CAAC,OAAuB,EAAE,KAAmB;;YAC7D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAwB,CAAC;YAEhE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO,IAAA,qCAAY,EAAC,KAAK,EAAE,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO,IAAA,qCAAY,EAAC,KAAK,EAAE,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAC7F,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,IAAA,qCAAY,EAAC,KAAK,EAAE,IAAA,gCAAa,EAAC,wBAAW,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,CAAC;
|
|
1
|
+
{"version":3,"file":"Auth.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Auth/Auth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AxioDB } from "../../../Services/Indexation.operation";
|
|
2
|
+
import { ResponseBuilder } from "../../helper/responseBuilder.helper";
|
|
3
|
+
import { FastifyRequest } from "fastify";
|
|
4
|
+
/**
|
|
5
|
+
* Controller class for managing indexes on a collection in AxioDB.
|
|
6
|
+
*
|
|
7
|
+
* This class provides methods for listing, creating, and deleting indexes on a
|
|
8
|
+
* collection within the AxioDB instance. It acts as an interface between the API
|
|
9
|
+
* routes and the AxioDB instance.
|
|
10
|
+
*/
|
|
11
|
+
export default class IndexController {
|
|
12
|
+
private AxioDBInstance;
|
|
13
|
+
constructor(AxioDBInstance: AxioDB);
|
|
14
|
+
/**
|
|
15
|
+
* Lists all indexes registered on the specified collection.
|
|
16
|
+
*
|
|
17
|
+
* @param request - The Fastify request object containing `dbName`/`collectionName` query parameters
|
|
18
|
+
* @returns A ResponseBuilder object containing the list of index metadata entries
|
|
19
|
+
*/
|
|
20
|
+
getIndexes(request: FastifyRequest): Promise<ResponseBuilder>;
|
|
21
|
+
/**
|
|
22
|
+
* Creates one or more indexes on the specified collection.
|
|
23
|
+
*
|
|
24
|
+
* @param request - The Fastify request object containing `dbName`/`collectionName`/`fieldNames` in the body
|
|
25
|
+
* @returns A ResponseBuilder object with appropriate status code and message
|
|
26
|
+
*/
|
|
27
|
+
createIndex(request: FastifyRequest): Promise<ResponseBuilder>;
|
|
28
|
+
/**
|
|
29
|
+
* Deletes an index from the specified collection.
|
|
30
|
+
*
|
|
31
|
+
* @param request - The Fastify request object containing `dbName`/`collectionName`/`indexName` query parameters
|
|
32
|
+
* @returns A ResponseBuilder object with appropriate status code and message
|
|
33
|
+
*/
|
|
34
|
+
deleteIndex(request: FastifyRequest): Promise<ResponseBuilder>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
+
const StatusCode_1 = require("../../../config/Keys/StatusCode");
|
|
16
|
+
const responseBuilder_helper_1 = __importDefault(require("../../helper/responseBuilder.helper"));
|
|
17
|
+
const Permissions_1 = require("../../../config/Keys/Permissions");
|
|
18
|
+
/**
|
|
19
|
+
* Controller class for managing indexes on a collection in AxioDB.
|
|
20
|
+
*
|
|
21
|
+
* This class provides methods for listing, creating, and deleting indexes on a
|
|
22
|
+
* collection within the AxioDB instance. It acts as an interface between the API
|
|
23
|
+
* routes and the AxioDB instance.
|
|
24
|
+
*/
|
|
25
|
+
class IndexController {
|
|
26
|
+
constructor(AxioDBInstance) {
|
|
27
|
+
this.AxioDBInstance = AxioDBInstance;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Lists all indexes registered on the specified collection.
|
|
31
|
+
*
|
|
32
|
+
* @param request - The Fastify request object containing `dbName`/`collectionName` query parameters
|
|
33
|
+
* @returns A ResponseBuilder object containing the list of index metadata entries
|
|
34
|
+
*/
|
|
35
|
+
getIndexes(request) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const { dbName, collectionName } = request.query;
|
|
38
|
+
if (!dbName || typeof dbName !== "string") {
|
|
39
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
40
|
+
}
|
|
41
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
42
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
43
|
+
}
|
|
44
|
+
if ((0, Permissions_1.isReservedDatabaseName)(dbName)) {
|
|
45
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.FORBIDDEN, "This is a reserved system database");
|
|
46
|
+
}
|
|
47
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
48
|
+
const isCollectionExists = yield databaseInstance.isCollectionExists(collectionName);
|
|
49
|
+
if (!isCollectionExists) {
|
|
50
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.NOT_FOUND, "Collection not found");
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const collection = yield databaseInstance.createCollection(collectionName);
|
|
54
|
+
const result = yield collection.getIndexes();
|
|
55
|
+
if ("message" in result && result.message) {
|
|
56
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.INTERNAL_SERVER_ERROR, result.message);
|
|
57
|
+
}
|
|
58
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.OK, "Indexes retrieved successfully", result.data);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error("Error retrieving indexes:", error);
|
|
62
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.INTERNAL_SERVER_ERROR, "Failed to retrieve indexes");
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Creates one or more indexes on the specified collection.
|
|
68
|
+
*
|
|
69
|
+
* @param request - The Fastify request object containing `dbName`/`collectionName`/`fieldNames` in the body
|
|
70
|
+
* @returns A ResponseBuilder object with appropriate status code and message
|
|
71
|
+
*/
|
|
72
|
+
createIndex(request) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const { dbName, collectionName, fieldNames } = request.body;
|
|
75
|
+
if (!dbName || typeof dbName !== "string") {
|
|
76
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
77
|
+
}
|
|
78
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
79
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
80
|
+
}
|
|
81
|
+
if (!Array.isArray(fieldNames) || fieldNames.length === 0) {
|
|
82
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "fieldNames must be a non-empty array");
|
|
83
|
+
}
|
|
84
|
+
if ((0, Permissions_1.isReservedDatabaseName)(dbName)) {
|
|
85
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.FORBIDDEN, "This is a reserved system database");
|
|
86
|
+
}
|
|
87
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
88
|
+
const isCollectionExists = yield databaseInstance.isCollectionExists(collectionName);
|
|
89
|
+
if (!isCollectionExists) {
|
|
90
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.NOT_FOUND, "Collection not found");
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const collection = yield databaseInstance.createCollection(collectionName);
|
|
94
|
+
const result = yield collection.newIndex(...fieldNames);
|
|
95
|
+
const message = result && "message" in result && result.message
|
|
96
|
+
? result.message
|
|
97
|
+
: "Index created successfully";
|
|
98
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.CREATED, message, result === null || result === void 0 ? void 0 : result.data);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error("Error creating index:", error);
|
|
102
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.INTERNAL_SERVER_ERROR, "Failed to create index");
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Deletes an index from the specified collection.
|
|
108
|
+
*
|
|
109
|
+
* @param request - The Fastify request object containing `dbName`/`collectionName`/`indexName` query parameters
|
|
110
|
+
* @returns A ResponseBuilder object with appropriate status code and message
|
|
111
|
+
*/
|
|
112
|
+
deleteIndex(request) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
const { dbName, collectionName, indexName } = request.query;
|
|
115
|
+
if (!dbName || typeof dbName !== "string") {
|
|
116
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
117
|
+
}
|
|
118
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
119
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
120
|
+
}
|
|
121
|
+
if (!indexName || typeof indexName !== "string") {
|
|
122
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.BAD_REQUEST, "Invalid index name");
|
|
123
|
+
}
|
|
124
|
+
if ((0, Permissions_1.isReservedDatabaseName)(dbName)) {
|
|
125
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.FORBIDDEN, "This is a reserved system database");
|
|
126
|
+
}
|
|
127
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
128
|
+
const isCollectionExists = yield databaseInstance.isCollectionExists(collectionName);
|
|
129
|
+
if (!isCollectionExists) {
|
|
130
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.NOT_FOUND, "Collection not found");
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const collection = yield databaseInstance.createCollection(collectionName);
|
|
134
|
+
const result = yield collection.dropIndex(indexName);
|
|
135
|
+
if ("message" in result && result.message) {
|
|
136
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.NOT_FOUND, result.message);
|
|
137
|
+
}
|
|
138
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.OK, "Index deleted successfully", result.data);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.error("Error deleting index:", error);
|
|
142
|
+
return (0, responseBuilder_helper_1.default)(StatusCode_1.StatusCodes.INTERNAL_SERVER_ERROR, "Failed to delete index");
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.default = IndexController;
|
|
148
|
+
//# sourceMappingURL=Index.controller.js.map
|