namirasoft-core 1.5.2 → 1.5.3

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 (57) hide show
  1. package/SKILL.md +223 -223
  2. package/dist/TimeOperation.d.ts +1 -0
  3. package/dist/TimeOperation.js +4 -0
  4. package/dist/TimeOperation.js.map +1 -1
  5. package/package.json +26 -26
  6. package/src/BaseDatabaseRow.ts +6 -6
  7. package/src/BaseLogger.ts +24 -24
  8. package/src/BaseMetaColumn.ts +17 -17
  9. package/src/BaseMetaDatabase.ts +30 -30
  10. package/src/BaseMetaTable.ts +40 -40
  11. package/src/BaseServer.ts +150 -150
  12. package/src/BaseUUID.ts +76 -76
  13. package/src/ByteOperation.ts +57 -57
  14. package/src/CacheService.ts +76 -76
  15. package/src/ColorOperation.ts +153 -153
  16. package/src/ConsoleOperation.ts +68 -68
  17. package/src/ConvertService.ts +123 -123
  18. package/src/CookieService.ts +33 -33
  19. package/src/Countries.ts +486 -486
  20. package/src/Country.ts +21 -21
  21. package/src/CountryOperation.ts +98 -98
  22. package/src/CronOperation.ts +121 -121
  23. package/src/EncodingOperation.ts +46 -46
  24. package/src/EnvService.ts +28 -28
  25. package/src/ErrorOperation.ts +13 -13
  26. package/src/FileOperation.ts +60 -60
  27. package/src/FilterItem.ts +117 -117
  28. package/src/FilterItemColumnType.ts +9 -9
  29. package/src/FilterItemOperator.ts +52 -52
  30. package/src/GeoOperation.ts +18 -18
  31. package/src/HTTPError.ts +8 -8
  32. package/src/HTTPMethod.ts +7 -7
  33. package/src/HashOperation.ts +24 -24
  34. package/src/ILogger.ts +17 -17
  35. package/src/IStorage.ts +5 -5
  36. package/src/IStorageCookie.ts +52 -52
  37. package/src/IStorageJsonFile.ts +45 -45
  38. package/src/IStorageLocal.ts +16 -16
  39. package/src/IStorageMemoryDedicated.ts +17 -17
  40. package/src/IStorageMemoryShared.ts +21 -21
  41. package/src/IStorageSession.ts +16 -16
  42. package/src/LogLevel.ts +11 -11
  43. package/src/NamingConvention.ts +199 -199
  44. package/src/ObjectService.ts +27 -27
  45. package/src/PackageService.ts +76 -76
  46. package/src/PasswordOperation.ts +12 -12
  47. package/src/PhoneOperation.ts +8 -8
  48. package/src/PriceOperation.ts +20 -20
  49. package/src/SearchOperation.ts +31 -31
  50. package/src/SetTimeouService.ts +32 -32
  51. package/src/SortItem.ts +88 -88
  52. package/src/StringOperation.ts +22 -22
  53. package/src/TimeOperation.ts +303 -299
  54. package/src/TimeUnitOperation.ts +82 -82
  55. package/src/URLOperation.ts +66 -66
  56. package/src/VersionOperation.ts +46 -46
  57. package/src/index.ts +52 -52
package/src/BaseLogger.ts CHANGED
@@ -1,25 +1,25 @@
1
- import { ILogger } from "./ILogger";
2
- import { LogLevel } from "./LogLevel";
3
-
4
- export abstract class BaseLogger implements ILogger
5
- {
6
- static main: BaseLogger | null = null;
7
- constructor()
8
- {
9
- if (BaseLogger.main == null)
10
- BaseLogger.main = this;
11
- }
12
- abstract log(level: LogLevel, ...messages: any[]): void;
13
- abstract trace(...messages: any[]): void;
14
- abstract verbose(...messages: any[]): void;
15
- abstract debug(...messages: any[]): void;
16
- abstract info(...messages: any[]): void;
17
- abstract success(...messages: any[]): void;
18
- abstract warning(...messages: any[]): void;
19
- abstract error(...messages: any[]): void;
20
- abstract critical(...messages: any[]): void;
21
- abstract fatal(...messages: any[]): void;
22
- abstract onCatchError(error: Error | unknown): void;
23
- abstract onCatchCritical(error: Error | unknown): void;
24
- abstract onCatchFatal(error: Error | unknown): void;
1
+ import { ILogger } from "./ILogger";
2
+ import { LogLevel } from "./LogLevel";
3
+
4
+ export abstract class BaseLogger implements ILogger
5
+ {
6
+ static main: BaseLogger | null = null;
7
+ constructor()
8
+ {
9
+ if (BaseLogger.main == null)
10
+ BaseLogger.main = this;
11
+ }
12
+ abstract log(level: LogLevel, ...messages: any[]): void;
13
+ abstract trace(...messages: any[]): void;
14
+ abstract verbose(...messages: any[]): void;
15
+ abstract debug(...messages: any[]): void;
16
+ abstract info(...messages: any[]): void;
17
+ abstract success(...messages: any[]): void;
18
+ abstract warning(...messages: any[]): void;
19
+ abstract error(...messages: any[]): void;
20
+ abstract critical(...messages: any[]): void;
21
+ abstract fatal(...messages: any[]): void;
22
+ abstract onCatchError(error: Error | unknown): void;
23
+ abstract onCatchCritical(error: Error | unknown): void;
24
+ abstract onCatchFatal(error: Error | unknown): void;
25
25
  }
@@ -1,18 +1,18 @@
1
- import { BaseMetaTable } from "./BaseMetaTable";
2
-
3
- export class BaseMetaColumn
4
- {
5
- table: BaseMetaTable;
6
- name: string;
7
- text: string;
8
- type: string; // todo
9
- required: boolean;
10
- constructor(table: BaseMetaTable, name: string, text: string, type: string, required: boolean)
11
- {
12
- this.table = table;
13
- this.name = name;
14
- this.text = text;
15
- this.type = type;
16
- this.required = required;
17
- }
1
+ import { BaseMetaTable } from "./BaseMetaTable";
2
+
3
+ export class BaseMetaColumn
4
+ {
5
+ table: BaseMetaTable;
6
+ name: string;
7
+ text: string;
8
+ type: string; // todo
9
+ required: boolean;
10
+ constructor(table: BaseMetaTable, name: string, text: string, type: string, required: boolean)
11
+ {
12
+ this.table = table;
13
+ this.name = name;
14
+ this.text = text;
15
+ this.type = type;
16
+ this.required = required;
17
+ }
18
18
  }
@@ -1,31 +1,31 @@
1
- import { BaseMetaTable } from "./BaseMetaTable";
2
-
3
- export abstract class BaseMetaDatabase
4
- {
5
- public tables: { [name: string]: BaseMetaTable } = {};
6
- forEachTable<T, MT extends BaseMetaTable>(handler: (table: MT) => T | null): T | null
7
- {
8
- for (const key in this.tables)
9
- {
10
- const element = this.tables[key];
11
- let ans = handler(element as MT);
12
- if (ans != null)
13
- return ans;
14
- }
15
- return null;
16
- }
17
- getTables<MT extends BaseMetaTable>(): MT[]
18
- {
19
- let ans: MT[] = [];
20
- this.forEachTable((table) =>
21
- {
22
- ans.push(table as MT);
23
- return null;
24
- });
25
- return ans;
26
- }
27
- hasTable(name: string): boolean
28
- {
29
- return this.tables[name] != null;
30
- }
1
+ import { BaseMetaTable } from "./BaseMetaTable";
2
+
3
+ export abstract class BaseMetaDatabase
4
+ {
5
+ public tables: { [name: string]: BaseMetaTable } = {};
6
+ forEachTable<T, MT extends BaseMetaTable>(handler: (table: MT) => T | null): T | null
7
+ {
8
+ for (const key in this.tables)
9
+ {
10
+ const element = this.tables[key];
11
+ let ans = handler(element as MT);
12
+ if (ans != null)
13
+ return ans;
14
+ }
15
+ return null;
16
+ }
17
+ getTables<MT extends BaseMetaTable>(): MT[]
18
+ {
19
+ let ans: MT[] = [];
20
+ this.forEachTable((table) =>
21
+ {
22
+ ans.push(table as MT);
23
+ return null;
24
+ });
25
+ return ans;
26
+ }
27
+ hasTable(name: string): boolean
28
+ {
29
+ return this.tables[name] != null;
30
+ }
31
31
  };
@@ -1,41 +1,41 @@
1
- import { BaseMetaColumn } from "./BaseMetaColumn";
2
- import { BaseMetaDatabase } from "./BaseMetaDatabase";
3
-
4
- export class BaseMetaTable
5
- {
6
- database: BaseMetaDatabase | null;
7
- name: string;
8
- text: string;
9
- public columns: { [name: string]: BaseMetaColumn } = {};
10
- constructor(database: BaseMetaDatabase | null, name: string, text: string)
11
- {
12
- this.database = database;
13
- this.name = name;
14
- this.text = text;
15
- }
16
- forEachColumn<T, MC extends BaseMetaColumn>(handler: (column: MC) => T | null): T | null
17
- {
18
- for (const key in this.columns)
19
- {
20
- const element = this.columns[key];
21
- let ans = handler(element as MC);
22
- if (ans != null)
23
- return ans;
24
- }
25
- return null;
26
- }
27
- getColumns<MC extends BaseMetaColumn>(): MC[]
28
- {
29
- let ans: MC[] = [];
30
- this.forEachColumn((column) =>
31
- {
32
- ans.push(column as MC);
33
- return null;
34
- });
35
- return ans;
36
- }
37
- hasColumn(name: string): boolean
38
- {
39
- return this.columns[name] != null;
40
- }
1
+ import { BaseMetaColumn } from "./BaseMetaColumn";
2
+ import { BaseMetaDatabase } from "./BaseMetaDatabase";
3
+
4
+ export class BaseMetaTable
5
+ {
6
+ database: BaseMetaDatabase | null;
7
+ name: string;
8
+ text: string;
9
+ public columns: { [name: string]: BaseMetaColumn } = {};
10
+ constructor(database: BaseMetaDatabase | null, name: string, text: string)
11
+ {
12
+ this.database = database;
13
+ this.name = name;
14
+ this.text = text;
15
+ }
16
+ forEachColumn<T, MC extends BaseMetaColumn>(handler: (column: MC) => T | null): T | null
17
+ {
18
+ for (const key in this.columns)
19
+ {
20
+ const element = this.columns[key];
21
+ let ans = handler(element as MC);
22
+ if (ans != null)
23
+ return ans;
24
+ }
25
+ return null;
26
+ }
27
+ getColumns<MC extends BaseMetaColumn>(): MC[]
28
+ {
29
+ let ans: MC[] = [];
30
+ this.forEachColumn((column) =>
31
+ {
32
+ ans.push(column as MC);
33
+ return null;
34
+ });
35
+ return ans;
36
+ }
37
+ hasColumn(name: string): boolean
38
+ {
39
+ return this.columns[name] != null;
40
+ }
41
41
  }
package/src/BaseServer.ts CHANGED
@@ -1,151 +1,151 @@
1
- import axios, { AxiosRequestConfig, AxiosResponse } from "axios";
2
- import { ConsoleOperation } from "./ConsoleOperation";
3
- import { EnvService } from "./EnvService";
4
- import { ErrorOperation } from "./ErrorOperation";
5
- import { HashOperation } from "./HashOperation";
6
- import { HTTPError } from "./HTTPError";
7
- import { ParsedNameValue } from "./ParsedNameValue";
8
- import { URLOperation } from "./URLOperation";
9
-
10
- export interface BaseServerConfig<ReqData> extends AxiosRequestConfig<ReqData>
11
- {
12
- sign?: {
13
- header: string;
14
- key: string;
15
- }
16
- onBeforeRequest?: (url: string, config?: AxiosRequestConfig) => void;
17
- onAfterRequest?: (url: string, res: AxiosResponse) => void;
18
- onError?: (error: Error) => void;
19
- error_suppress?: boolean;
20
- error_verbose?: boolean;
21
- }
22
- export abstract class BaseServer
23
- {
24
- public static isErrorCode(e: any, code: number): boolean
25
- {
26
- if (axios.isAxiosError(e))
27
- if (e.response)
28
- if (e.response?.status === code)
29
- return true;
30
- if (e instanceof HTTPError)
31
- if (e.code === code)
32
- return true;
33
- return false
34
- }
35
-
36
- protected base_url: string;
37
- private onBeforeRequests: ((url: string, config?: AxiosRequestConfig) => void)[] = [];
38
- private onAfterRequests: ((url: string, res: AxiosResponse) => void)[] = [];
39
- protected abstract onError(error: Error): void;
40
- public error_suppress?: boolean = false;
41
- public error_verbose?: boolean = false;
42
-
43
- constructor(base_url: string)
44
- {
45
- this.base_url = base_url;
46
- this.error_verbose = new EnvService("BASESERVER_ERROR_VERBOSE", false).getBoolean(false);
47
- }
48
- public addOnBeforeRequest(onBeforeRequest: (url: string, config?: AxiosRequestConfig) => void)
49
- {
50
- this.onBeforeRequests.push(onBeforeRequest);
51
- }
52
- public addOnAfterRequest(onAfterRequest: (url: string, res: AxiosResponse) => void)
53
- {
54
- this.onAfterRequests.push(onAfterRequest);
55
- }
56
- private async _request<ResData = any, ReqData = any>(onRequest: (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) => Promise<AxiosResponse<ResData>>, sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
57
- {
58
- let url: string = URLOperation.getLink(this.base_url, sub, query);
59
- if (!config)
60
- config = {};
61
- if (!config.headers)
62
- config.headers = {};
63
- if (config.withCredentials == null)
64
- config.withCredentials = true;
65
-
66
- if (config.sign)
67
- if (config.sign?.header)
68
- if (config.sign?.key)
69
- if (data)
70
- config.headers[config.sign.header] = HashOperation.SHA256Secret(config.sign.key, data);
71
- try
72
- {
73
- config.onBeforeRequest?.(url, config);
74
- this.onBeforeRequests.forEach(onBeforeRequest =>
75
- {
76
- onBeforeRequest(url, config);
77
- });
78
- let response: AxiosResponse<ResData> = await onRequest(url, data, config);
79
- this.onAfterRequests.forEach(onAfterRequest =>
80
- {
81
- onAfterRequest(url, response);
82
- });
83
- config.onAfterRequest?.(url, response);
84
- return { response, data: response.data };
85
- } catch (error)
86
- {
87
- let onError = config.onError ?? this.onError;
88
- let error_verbose = config.error_verbose ?? this.error_verbose;
89
- let error_suppress = config.error_suppress ?? this.error_suppress;
90
- if (error instanceof Error)
91
- {
92
- if (error_verbose)
93
- error.message = `Error calling url '${url}' ` + error.message;
94
- if (onError)
95
- onError(error);
96
- else
97
- {
98
- ConsoleOperation.warning("onError function has not been properly set.");
99
- ConsoleOperation.error(error?.message);
100
- }
101
- if (axios.isAxiosError(error))
102
- if (error?.response?.data)
103
- if (!error_suppress)
104
- {
105
- if (error_suppress)
106
- ErrorOperation.throwHTTP(error.response.status, `Error calling url '${url}' ` + JSON.stringify(error.response.data));
107
- else
108
- ErrorOperation.throwHTTP(error.response.status, JSON.stringify(error.response.data));
109
- }
110
- }
111
- if (!error_suppress)
112
- throw error;
113
- }
114
- return {} as any;
115
- }
116
- public async _get<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
117
- {
118
- return await this._request<ResData, ReqData>(async (url: string, _?: any, config?: BaseServerConfig<ReqData>) =>
119
- {
120
- return await axios.get(url, config);
121
- }, sub, query, undefined, config);
122
- }
123
- public async _post<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
124
- {
125
- return await this._request<ResData, ReqData>(async (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) =>
126
- {
127
- return await axios.post(url, data, config);
128
- }, sub, query, data, config);
129
- }
130
- public async _put<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
131
- {
132
- return await this._request<ResData, ReqData>(async (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) =>
133
- {
134
- return await axios.put(url, data, config);
135
- }, sub, query, data, config);
136
- }
137
- public async _patch<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
138
- {
139
- return await this._request<ResData, ReqData>(async (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) =>
140
- {
141
- return await axios.patch(url, data, config);
142
- }, sub, query, data, config);
143
- }
144
- public async _delete<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
145
- {
146
- return await this._request<ResData, ReqData>(async (url: string, _?: any, config?: BaseServerConfig<ReqData>) =>
147
- {
148
- return await axios.delete(url, config);
149
- }, sub, query, undefined, config);
150
- }
1
+ import axios, { AxiosRequestConfig, AxiosResponse } from "axios";
2
+ import { ConsoleOperation } from "./ConsoleOperation";
3
+ import { EnvService } from "./EnvService";
4
+ import { ErrorOperation } from "./ErrorOperation";
5
+ import { HashOperation } from "./HashOperation";
6
+ import { HTTPError } from "./HTTPError";
7
+ import { ParsedNameValue } from "./ParsedNameValue";
8
+ import { URLOperation } from "./URLOperation";
9
+
10
+ export interface BaseServerConfig<ReqData> extends AxiosRequestConfig<ReqData>
11
+ {
12
+ sign?: {
13
+ header: string;
14
+ key: string;
15
+ }
16
+ onBeforeRequest?: (url: string, config?: AxiosRequestConfig) => void;
17
+ onAfterRequest?: (url: string, res: AxiosResponse) => void;
18
+ onError?: (error: Error) => void;
19
+ error_suppress?: boolean;
20
+ error_verbose?: boolean;
21
+ }
22
+ export abstract class BaseServer
23
+ {
24
+ public static isErrorCode(e: any, code: number): boolean
25
+ {
26
+ if (axios.isAxiosError(e))
27
+ if (e.response)
28
+ if (e.response?.status === code)
29
+ return true;
30
+ if (e instanceof HTTPError)
31
+ if (e.code === code)
32
+ return true;
33
+ return false
34
+ }
35
+
36
+ protected base_url: string;
37
+ private onBeforeRequests: ((url: string, config?: AxiosRequestConfig) => void)[] = [];
38
+ private onAfterRequests: ((url: string, res: AxiosResponse) => void)[] = [];
39
+ protected abstract onError(error: Error): void;
40
+ public error_suppress?: boolean = false;
41
+ public error_verbose?: boolean = false;
42
+
43
+ constructor(base_url: string)
44
+ {
45
+ this.base_url = base_url;
46
+ this.error_verbose = new EnvService("BASESERVER_ERROR_VERBOSE", false).getBoolean(false);
47
+ }
48
+ public addOnBeforeRequest(onBeforeRequest: (url: string, config?: AxiosRequestConfig) => void)
49
+ {
50
+ this.onBeforeRequests.push(onBeforeRequest);
51
+ }
52
+ public addOnAfterRequest(onAfterRequest: (url: string, res: AxiosResponse) => void)
53
+ {
54
+ this.onAfterRequests.push(onAfterRequest);
55
+ }
56
+ private async _request<ResData = any, ReqData = any>(onRequest: (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) => Promise<AxiosResponse<ResData>>, sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
57
+ {
58
+ let url: string = URLOperation.getLink(this.base_url, sub, query);
59
+ if (!config)
60
+ config = {};
61
+ if (!config.headers)
62
+ config.headers = {};
63
+ if (config.withCredentials == null)
64
+ config.withCredentials = true;
65
+
66
+ if (config.sign)
67
+ if (config.sign?.header)
68
+ if (config.sign?.key)
69
+ if (data)
70
+ config.headers[config.sign.header] = HashOperation.SHA256Secret(config.sign.key, data);
71
+ try
72
+ {
73
+ config.onBeforeRequest?.(url, config);
74
+ this.onBeforeRequests.forEach(onBeforeRequest =>
75
+ {
76
+ onBeforeRequest(url, config);
77
+ });
78
+ let response: AxiosResponse<ResData> = await onRequest(url, data, config);
79
+ this.onAfterRequests.forEach(onAfterRequest =>
80
+ {
81
+ onAfterRequest(url, response);
82
+ });
83
+ config.onAfterRequest?.(url, response);
84
+ return { response, data: response.data };
85
+ } catch (error)
86
+ {
87
+ let onError = config.onError ?? this.onError;
88
+ let error_verbose = config.error_verbose ?? this.error_verbose;
89
+ let error_suppress = config.error_suppress ?? this.error_suppress;
90
+ if (error instanceof Error)
91
+ {
92
+ if (error_verbose)
93
+ error.message = `Error calling url '${url}' ` + error.message;
94
+ if (onError)
95
+ onError(error);
96
+ else
97
+ {
98
+ ConsoleOperation.warning("onError function has not been properly set.");
99
+ ConsoleOperation.error(error?.message);
100
+ }
101
+ if (axios.isAxiosError(error))
102
+ if (error?.response?.data)
103
+ if (!error_suppress)
104
+ {
105
+ if (error_suppress)
106
+ ErrorOperation.throwHTTP(error.response.status, `Error calling url '${url}' ` + JSON.stringify(error.response.data));
107
+ else
108
+ ErrorOperation.throwHTTP(error.response.status, JSON.stringify(error.response.data));
109
+ }
110
+ }
111
+ if (!error_suppress)
112
+ throw error;
113
+ }
114
+ return {} as any;
115
+ }
116
+ public async _get<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
117
+ {
118
+ return await this._request<ResData, ReqData>(async (url: string, _?: any, config?: BaseServerConfig<ReqData>) =>
119
+ {
120
+ return await axios.get(url, config);
121
+ }, sub, query, undefined, config);
122
+ }
123
+ public async _post<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
124
+ {
125
+ return await this._request<ResData, ReqData>(async (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) =>
126
+ {
127
+ return await axios.post(url, data, config);
128
+ }, sub, query, data, config);
129
+ }
130
+ public async _put<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
131
+ {
132
+ return await this._request<ResData, ReqData>(async (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) =>
133
+ {
134
+ return await axios.put(url, data, config);
135
+ }, sub, query, data, config);
136
+ }
137
+ public async _patch<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, data?: ReqData, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
138
+ {
139
+ return await this._request<ResData, ReqData>(async (url: string, data?: ReqData, config?: BaseServerConfig<ReqData>) =>
140
+ {
141
+ return await axios.patch(url, data, config);
142
+ }, sub, query, data, config);
143
+ }
144
+ public async _delete<ResData = any, ReqData = any>(sub: string, query?: { [name: string]: ParsedNameValue }, config?: BaseServerConfig<ReqData>): Promise<{ response: AxiosResponse<ResData>, data: ResData }>
145
+ {
146
+ return await this._request<ResData, ReqData>(async (url: string, _?: any, config?: BaseServerConfig<ReqData>) =>
147
+ {
148
+ return await axios.delete(url, config);
149
+ }, sub, query, undefined, config);
150
+ }
151
151
  }