namirasoft-core 1.4.14 → 1.4.16
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/dist/BaseMetaDatabase.d.ts +8 -0
- package/dist/BaseMetaDatabase.js +28 -0
- package/dist/BaseMetaDatabase.js.map +1 -0
- package/dist/BaseMetaTable.d.ts +5 -1
- package/dist/BaseMetaTable.js +14 -8
- package/dist/BaseMetaTable.js.map +1 -1
- package/dist/BaseServer.js +7 -3
- package/dist/BaseServer.js.map +1 -1
- package/package.json +25 -25
- package/src/BaseMetaColumn.ts +1 -1
- package/src/BaseMetaDatabase.ts +27 -0
- package/src/BaseMetaTable.ts +19 -10
- package/src/BaseServer.ts +8 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseMetaTable } from "./BaseMetaTable";
|
|
2
|
+
export declare abstract class BaseMetaDatabase {
|
|
3
|
+
tables: {
|
|
4
|
+
[name: string]: BaseMetaTable;
|
|
5
|
+
};
|
|
6
|
+
forEachTable<T, MT extends BaseMetaTable>(handler: (table: MT) => T | null): T | null;
|
|
7
|
+
getTables<MT extends BaseMetaTable>(): MT[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseMetaDatabase = void 0;
|
|
4
|
+
class BaseMetaDatabase {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.tables = {};
|
|
7
|
+
}
|
|
8
|
+
forEachTable(handler) {
|
|
9
|
+
for (const key in this.tables) {
|
|
10
|
+
const element = this.tables[key];
|
|
11
|
+
let ans = handler(element);
|
|
12
|
+
if (ans != null)
|
|
13
|
+
return ans;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
getTables() {
|
|
18
|
+
let ans = [];
|
|
19
|
+
this.forEachTable((table) => {
|
|
20
|
+
ans.push(table);
|
|
21
|
+
return null;
|
|
22
|
+
});
|
|
23
|
+
return ans;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.BaseMetaDatabase = BaseMetaDatabase;
|
|
27
|
+
;
|
|
28
|
+
//# sourceMappingURL=BaseMetaDatabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMetaDatabase.js","sourceRoot":"","sources":["../src/BaseMetaDatabase.ts"],"names":[],"mappings":";;;AAEA,MAAsB,gBAAgB;IAAtC;QAEW,WAAM,GAAsC,EAAE,CAAC;IAsB1D,CAAC;IArBG,YAAY,CAA8B,OAAgC;QAEtE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAC7B,CAAC;YACG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG,GAAG,OAAO,CAAC,OAAa,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,IAAI;gBACX,OAAO,GAAG,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS;QAEL,IAAI,GAAG,GAAS,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YAExB,GAAG,CAAC,IAAI,CAAC,KAAW,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAxBD,4CAwBC;AAAA,CAAC"}
|
package/dist/BaseMetaTable.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ import { BaseMetaColumn } from "./BaseMetaColumn";
|
|
|
2
2
|
export declare class BaseMetaTable {
|
|
3
3
|
name: string;
|
|
4
4
|
text: string;
|
|
5
|
+
columns: {
|
|
6
|
+
[name: string]: BaseMetaColumn;
|
|
7
|
+
};
|
|
5
8
|
constructor(name: string, text: string);
|
|
6
|
-
|
|
9
|
+
forEachColumn<T, MC extends BaseMetaColumn>(handler: (table: MC) => T | null): T | null;
|
|
10
|
+
getColumns<MC extends BaseMetaColumn>(): MC[];
|
|
7
11
|
}
|
package/dist/BaseMetaTable.js
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMetaTable = void 0;
|
|
4
|
-
const BaseMetaColumn_1 = require("./BaseMetaColumn");
|
|
5
4
|
class BaseMetaTable {
|
|
6
5
|
constructor(name, text) {
|
|
6
|
+
this.columns = {};
|
|
7
7
|
this.name = name;
|
|
8
8
|
this.text = text;
|
|
9
9
|
}
|
|
10
|
+
forEachColumn(handler) {
|
|
11
|
+
for (const key in this.columns) {
|
|
12
|
+
const element = this.columns[key];
|
|
13
|
+
let ans = handler(element);
|
|
14
|
+
if (ans != null)
|
|
15
|
+
return ans;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
10
19
|
getColumns() {
|
|
11
20
|
let ans = [];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (object instanceof BaseMetaColumn_1.BaseMetaColumn)
|
|
17
|
-
ans.push(object);
|
|
18
|
-
}
|
|
21
|
+
this.forEachColumn((column) => {
|
|
22
|
+
ans.push(column);
|
|
23
|
+
return null;
|
|
24
|
+
});
|
|
19
25
|
return ans;
|
|
20
26
|
}
|
|
21
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMetaTable.js","sourceRoot":"","sources":["../src/BaseMetaTable.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"BaseMetaTable.js","sourceRoot":"","sources":["../src/BaseMetaTable.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAKtB,YAAY,IAAY,EAAE,IAAY;QAD/B,YAAO,GAAuC,EAAE,CAAC;QAGpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,aAAa,CAA+B,OAAgC;QAExE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAC9B,CAAC;YACG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,GAAG,GAAG,OAAO,CAAC,OAAa,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,IAAI;gBACX,OAAO,GAAG,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,UAAU;QAEN,IAAI,GAAG,GAAS,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE;YAE1B,GAAG,CAAC,IAAI,CAAC,MAAY,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AA/BD,sCA+BC"}
|
package/dist/BaseServer.js
CHANGED
|
@@ -57,8 +57,8 @@ class BaseServer {
|
|
|
57
57
|
}
|
|
58
58
|
catch (error) {
|
|
59
59
|
if (error instanceof Error) {
|
|
60
|
+
let BASESERVER_ERROR_VERBOSE = new EnvService_1.EnvService("BASESERVER_ERROR_VERBOSE", false).getBoolean(false);
|
|
60
61
|
if (this.onError) {
|
|
61
|
-
let BASESERVER_ERROR_VERBOSE = new EnvService_1.EnvService("BASESERVER_ERROR_VERBOSE", false).getBoolean(false);
|
|
62
62
|
if (BASESERVER_ERROR_VERBOSE)
|
|
63
63
|
error.message = `Error calling url '${url}' ` + error.message;
|
|
64
64
|
this.onError(error);
|
|
@@ -69,8 +69,12 @@ class BaseServer {
|
|
|
69
69
|
}
|
|
70
70
|
if (axios_1.default.isAxiosError(error))
|
|
71
71
|
if ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data)
|
|
72
|
-
if (!this.suppressErrors)
|
|
73
|
-
|
|
72
|
+
if (!this.suppressErrors) {
|
|
73
|
+
if (BASESERVER_ERROR_VERBOSE)
|
|
74
|
+
ErrorOperation_1.ErrorOperation.throwHTTP(error.response.status, `Error calling url '${url}' ` + JSON.stringify(error.response.data));
|
|
75
|
+
else
|
|
76
|
+
ErrorOperation_1.ErrorOperation.throwHTTP(error.response.status, JSON.stringify(error.response.data));
|
|
77
|
+
}
|
|
74
78
|
}
|
|
75
79
|
if (!this.suppressErrors)
|
|
76
80
|
throw error;
|
package/dist/BaseServer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseServer.js","sourceRoot":"","sources":["../src/BaseServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAiE;AACjE,mDAAgD;AAChD,iDAA8C;AAC9C,qDAAkD;AAElD,yDAAsD;AACtD,6CAA0C;AAE1C,MAAsB,UAAU;IAI5B,YAAY,QAAgB;QADrB,mBAAc,GAAY,KAAK,CAAC;QAK/B,qBAAgB,GAA2D,EAAE,CAAC;QAC9E,oBAAe,GAAuD,EAAE,CAAC;QAH7E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAMD,kBAAkB,CAAC,eAAmE;QAElF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IACD,iBAAiB,CAAC,cAA8D;QAE5E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IACa,QAAQ,CAA+B,SAA6G,EAAE,GAAW,EAAE,KAA2C,EAAE,IAAc,EAAE,MAAoC,EAAE,WAAoB,EAAE,QAAiB;;;YAEvT,IAAI,GAAG,GAAW,2BAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM;gBACP,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC7B,IAAI,WAAW;gBACX,IAAI,QAAQ;oBACR,IAAI,IAAI;wBACJ,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;4BACf,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,6BAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzF,IACA,CAAC;gBACG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;oBAE5C,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,IAAI,QAAQ,GAA2B,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1E,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oBAE1C,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EACd,CAAC;gBACG,IAAI,KAAK,YAAY,KAAK,EAC1B,CAAC;oBACG,IAAI,
|
|
1
|
+
{"version":3,"file":"BaseServer.js","sourceRoot":"","sources":["../src/BaseServer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "namirasoft-core",
|
|
3
|
-
"title": "Namirasoft Core NPM Package",
|
|
4
|
-
"description": "Namira Software Corporation Core NPM Package",
|
|
5
|
-
"icon": "logo.png",
|
|
6
|
-
"logo": "https://static.namirasoft.com/image/namirasoft/site/logo/base.png",
|
|
7
|
-
"language": "ts",
|
|
8
|
-
"framework": "npm",
|
|
9
|
-
"application": "package",
|
|
10
|
-
"private": false,
|
|
11
|
-
"version": "1.4.
|
|
12
|
-
"author": "Amir Abolhasani",
|
|
13
|
-
"license": "MIT",
|
|
14
|
-
"main": "./dist/index.js",
|
|
15
|
-
"types": "./dist/index.d.ts",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": ""
|
|
18
|
-
},
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"@types/node": "^22.10.2",
|
|
21
|
-
"axios": "^1.7.9",
|
|
22
|
-
"buffer": "^6.0.3",
|
|
23
|
-
"moment": "^2.30.1",
|
|
24
|
-
"phone": "^3.1.
|
|
25
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "namirasoft-core",
|
|
3
|
+
"title": "Namirasoft Core NPM Package",
|
|
4
|
+
"description": "Namira Software Corporation Core NPM Package",
|
|
5
|
+
"icon": "logo.png",
|
|
6
|
+
"logo": "https://static.namirasoft.com/image/namirasoft/site/logo/base.png",
|
|
7
|
+
"language": "ts",
|
|
8
|
+
"framework": "npm",
|
|
9
|
+
"application": "package",
|
|
10
|
+
"private": false,
|
|
11
|
+
"version": "1.4.16",
|
|
12
|
+
"author": "Amir Abolhasani",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": ""
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@types/node": "^22.10.2",
|
|
21
|
+
"axios": "^1.7.9",
|
|
22
|
+
"buffer": "^6.0.3",
|
|
23
|
+
"moment": "^2.30.1",
|
|
24
|
+
"phone": "^3.1.56"
|
|
25
|
+
}
|
|
26
26
|
}
|
package/src/BaseMetaColumn.ts
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
};
|
package/src/BaseMetaTable.ts
CHANGED
|
@@ -4,22 +4,31 @@ export class BaseMetaTable
|
|
|
4
4
|
{
|
|
5
5
|
name: string;
|
|
6
6
|
text: string;
|
|
7
|
+
public columns: { [name: string]: BaseMetaColumn } = {};
|
|
7
8
|
constructor(name: string, text: string)
|
|
8
9
|
{
|
|
9
10
|
this.name = name;
|
|
10
11
|
this.text = text;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
forEachColumn<T, MC extends BaseMetaColumn>(handler: (table: MC) => T | null): T | null
|
|
13
14
|
{
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
for (const key in this.columns)
|
|
16
|
+
{
|
|
17
|
+
const element = this.columns[key];
|
|
18
|
+
let ans = handler(element as MC);
|
|
19
|
+
if (ans != null)
|
|
20
|
+
return ans;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
getColumns<MC extends BaseMetaColumn>(): MC[]
|
|
25
|
+
{
|
|
26
|
+
let ans: MC[] = [];
|
|
27
|
+
this.forEachColumn((column) =>
|
|
28
|
+
{
|
|
29
|
+
ans.push(column as MC);
|
|
30
|
+
return null;
|
|
31
|
+
});
|
|
23
32
|
return ans;
|
|
24
33
|
}
|
|
25
34
|
}
|
package/src/BaseServer.ts
CHANGED
|
@@ -55,9 +55,10 @@ export abstract class BaseServer
|
|
|
55
55
|
{
|
|
56
56
|
if (error instanceof Error)
|
|
57
57
|
{
|
|
58
|
+
let BASESERVER_ERROR_VERBOSE = new EnvService("BASESERVER_ERROR_VERBOSE", false).getBoolean(false);
|
|
59
|
+
|
|
58
60
|
if (this.onError)
|
|
59
61
|
{
|
|
60
|
-
let BASESERVER_ERROR_VERBOSE = new EnvService("BASESERVER_ERROR_VERBOSE", false).getBoolean(false);
|
|
61
62
|
if (BASESERVER_ERROR_VERBOSE)
|
|
62
63
|
error.message = `Error calling url '${url}' ` + error.message;
|
|
63
64
|
this.onError(error);
|
|
@@ -70,7 +71,12 @@ export abstract class BaseServer
|
|
|
70
71
|
if (axios.isAxiosError(error))
|
|
71
72
|
if (error?.response?.data)
|
|
72
73
|
if (!this.suppressErrors)
|
|
73
|
-
|
|
74
|
+
{
|
|
75
|
+
if (BASESERVER_ERROR_VERBOSE)
|
|
76
|
+
ErrorOperation.throwHTTP(error.response.status, `Error calling url '${url}' ` + JSON.stringify(error.response.data));
|
|
77
|
+
else
|
|
78
|
+
ErrorOperation.throwHTTP(error.response.status, JSON.stringify(error.response.data));
|
|
79
|
+
}
|
|
74
80
|
}
|
|
75
81
|
if (!this.suppressErrors)
|
|
76
82
|
throw error;
|