@tblabs/storage 5.5.2 → 5.7.0

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.
@@ -0,0 +1,5 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ import { dir } from "./Types/dir";
3
+ export declare class CreateDatabaseCommand extends Message {
4
+ constructor(Database: dir);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export class CreateDatabaseCommand extends Message {
3
+ constructor(Database) {
4
+ super("CreateDatabase", { Database });
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ import { dir } from "./Types/dir";
3
+ export declare class DeleteDatabaseCommand extends Message {
4
+ constructor(Database: dir);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export class DeleteDatabaseCommand extends Message {
3
+ constructor(Database) {
4
+ super("DeleteDatabase", { Database });
5
+ }
6
+ }
@@ -37,6 +37,10 @@ export interface IStorageUserPrivileges {
37
37
  Search: boolean;
38
38
  ListDatasets: boolean;
39
39
  ListUsers: boolean;
40
+ GetLogs: boolean;
41
+ ListDatabases: boolean;
42
+ CreateDatabase: boolean;
43
+ DeleteDatabase: boolean;
40
44
  GetUser: boolean;
41
45
  UpdateUser: boolean;
42
46
  AddUser: boolean;
@@ -16,4 +16,5 @@ export const USER_PRIVILEGES_NAMES = [
16
16
  "ListDatasets",
17
17
  "ListUsers",
18
18
  "Search",
19
+ "GetLogs",
19
20
  ];
@@ -0,0 +1,4 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export declare class ListDatabasesQuery extends Message {
3
+ constructor();
4
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export class ListDatabasesQuery extends Message {
3
+ constructor() {
4
+ super("ListDatabases", {});
5
+ }
6
+ }
@@ -1,5 +1,8 @@
1
+ export interface MessageBody {
2
+ [key: string]: any;
3
+ }
1
4
  export declare class Message {
2
5
  Name: string;
3
- Body: any;
4
- constructor(Name: string, Body: any);
6
+ Body: MessageBody;
7
+ constructor(Name: string, Body: MessageBody);
5
8
  }
@@ -0,0 +1,5 @@
1
+ import { Message } from '../MessageBus/Message';
2
+ import { dir } from '../Types/dir';
3
+ export declare class GetLogQuery extends Message {
4
+ constructor(Database: dir, Id: string);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from '../MessageBus/Message';
2
+ export class GetLogQuery extends Message {
3
+ constructor(Database, Id) {
4
+ super("GetLog", { Database, Id });
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { Message } from '../MessageBus/Message';
2
+ import { dir } from '../Types/dir';
3
+ export declare class ListLogsIdsQuery extends Message {
4
+ constructor(Database: dir);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from '../MessageBus/Message';
2
+ export class ListLogsIdsQuery extends Message {
3
+ constructor(Database) {
4
+ super("ListLogsIds", { Database });
5
+ }
6
+ }
@@ -52,4 +52,14 @@ export declare class OnlineStorage {
52
52
  DatasetExists(datasetName: string): Promise<boolean>;
53
53
  RemoveDataset(datasetName: string): Promise<void>;
54
54
  Move(fileId: string, sourceDataset: Dataset<any>, targetDataset: Dataset<any>): Promise<void>;
55
+ GetLogsList(): Promise<string[]>;
56
+ GetLog(id: string): Promise<string>;
57
+ ListDatabases(): Promise<DatabaseInfo[]>;
58
+ CreateDatabase(databaseDir: string): Promise<void>;
59
+ DeleteDatabase(databaseDir: string): Promise<void>;
60
+ }
61
+ export interface DatabaseInfo {
62
+ Dir: string;
63
+ DatasetsCount: number;
64
+ UsersCount: number;
55
65
  }
package/OnlineStorage.js CHANGED
@@ -6,12 +6,17 @@ import { Dataset } from "./Dataset";
6
6
  import { MoveFileCommand } from "./Messages/MoveFileCommand";
7
7
  import { LoginUserQuery } from "./Messages/LoginUserQuery";
8
8
  import { ListUsersQuery } from "./Messages/ListUsersQuery";
9
- import { ListDatasetsQuery } from "./Messages/ListDatabasesQuery";
10
9
  import { UpdateUserCommand } from "./Messages/UpdateUserCommand";
11
10
  import { AddUserCommand } from "./Messages/AddUserCommand";
12
11
  import { DeleteUserCommand } from "./Messages/DeleteUserCommand";
13
12
  import { GetUserQuery } from "./Messages/GetUserQuery";
14
13
  import { USER_PRIVILEGES_NAMES } from "./IStorageUserPrivileges";
14
+ import { GetLogQuery } from "./Messages/GetLogQuery";
15
+ import { ListLogsIdsQuery } from "./Messages/GetLogsListQuery";
16
+ import { ListDatabasesQuery } from "./ListDatabasesQuery";
17
+ import { CreateDatabaseCommand } from "./CreateDatabaseCommand";
18
+ import { ListDatasetsQuery } from "./Messages/ListDatabasesQuery";
19
+ import { DeleteDatabaseCommand } from "./DeleteDatabaseCommand";
15
20
  export class OnlineStorage {
16
21
  server;
17
22
  database;
@@ -230,4 +235,59 @@ export class OnlineStorage {
230
235
  }
231
236
  this.Log(`"${fileId}" moved from "${sourceDataset.Name}" to "${targetDataset.Name}".`);
232
237
  }
238
+ async GetLogsList() {
239
+ const result = await this._bus.SendMessage(new ListLogsIdsQuery(this.DatabaseDir));
240
+ if (!result.IsSuccess) {
241
+ throw new Error(`Could not get logs list: ${result.ErrorMessage}`);
242
+ }
243
+ return result.Result;
244
+ }
245
+ async GetLog(id) {
246
+ const result = await this._bus.SendMessage(new GetLogQuery(this.DatabaseDir, id));
247
+ if (!result.IsSuccess) {
248
+ throw new Error(`Could not get log '${id}': ${result.ErrorMessage}`);
249
+ }
250
+ return result.Result;
251
+ }
252
+ /*
253
+ Search() USAGE:
254
+
255
+ datasetId = storage.Search(fileId)
256
+ file = dataset.GetOne(fileId)
257
+
258
+ ;/ to jest bardziej problematyczne niż myślałem.....
259
+ bo gdzieś przecież trzeba konwersji typu dokonać a sam search odbywa się na całej bazie
260
+ */
261
+ // public async Search<T extends object>(fileId: string): Promise<Dataset<T>>
262
+ // {
263
+ // this.Log(`Searching for "${fileId}" in entire database...`);
264
+ // const result = await this._bus.SendMessage(new SearchQuery(this.DatabaseDir, fileId));
265
+ // if (!result.IsSuccess)
266
+ // {
267
+ // throw new Error(`Could not find "${fileId}": ${result.ErrorMessage}`);
268
+ // }
269
+ // const datasetName = result.Result.Dataset;
270
+ // const dataset = this.GetDataset<T>(datasetName, converter); ?????????
271
+ // this.Log(`"${fileId}" found in "${dataset} dataset".`);
272
+ // return result.Result;
273
+ // }
274
+ async ListDatabases() {
275
+ const result = await this._bus.SendMessage(new ListDatabasesQuery());
276
+ if (!result.IsSuccess) {
277
+ throw new Error(`Could not list databases: ${result.ErrorMessage}`);
278
+ }
279
+ return result.Result;
280
+ }
281
+ async CreateDatabase(databaseDir) {
282
+ const result = await this._bus.SendMessage(new CreateDatabaseCommand(databaseDir));
283
+ if (!result.IsSuccess) {
284
+ throw new Error(`Could not create database: ${result.ErrorMessage}`);
285
+ }
286
+ }
287
+ async DeleteDatabase(databaseDir) {
288
+ const result = await this._bus.SendMessage(new DeleteDatabaseCommand(databaseDir));
289
+ if (!result.IsSuccess) {
290
+ throw new Error(`Could not delete database: ${result.ErrorMessage}`);
291
+ }
292
+ }
233
293
  }
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@tblabs/storage",
3
- "version": "5.5.2",
3
+ "version": "5.7.0",
4
4
  "description": "online storage module with auth",
5
5
  "license": "beerware",
6
6
  "main": "index.js",
7
7
  "types": "index.d.ts",
8
8
  "scripts": {
9
+ "test": "jest --runInBand",
9
10
  "pack": "cd ./bin && npm pack",
10
11
  "clean": "rm ./bin -rf && rm *.tgz -rf",
11
12
  "build": "npm run clean && tsc ./src/index.ts --declaration --outDir ./bin && cp ./package.json ./bin/package.json",
Binary file
Binary file