@boxitworld/commons-backend 1.0.4 → 1.0.7
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/batch-locker/const.d.ts +8 -0
- package/dist/batch-locker/const.d.ts.map +1 -0
- package/dist/batch-locker/const.js +26 -0
- package/dist/batch-locker/const.js.map +1 -0
- package/dist/batch-locker/db/database.d.ts +3 -0
- package/dist/batch-locker/db/database.d.ts.map +1 -0
- package/dist/batch-locker/db/database.js +31 -0
- package/dist/batch-locker/db/database.js.map +1 -0
- package/dist/batch-locker/db/models/batch.model.d.ts +22 -0
- package/dist/batch-locker/db/models/batch.model.d.ts.map +1 -0
- package/dist/batch-locker/db/models/batch.model.js +41 -0
- package/dist/batch-locker/db/models/batch.model.js.map +1 -0
- package/dist/batch-locker/db/models/index.d.ts +4 -0
- package/dist/batch-locker/db/models/index.d.ts.map +1 -0
- package/dist/batch-locker/db/models/index.js +20 -0
- package/dist/batch-locker/db/models/index.js.map +1 -0
- package/dist/batch-locker/db/queries.d.ts +2 -0
- package/dist/batch-locker/db/queries.d.ts.map +1 -0
- package/dist/batch-locker/db/queries.js +18 -0
- package/dist/batch-locker/db/queries.js.map +1 -0
- package/dist/batch-locker/db/sequelize.d.ts +3 -0
- package/dist/batch-locker/db/sequelize.d.ts.map +1 -0
- package/dist/batch-locker/db/sequelize.js +19 -0
- package/dist/batch-locker/db/sequelize.js.map +1 -0
- package/dist/batch-locker/index.d.ts +28 -0
- package/dist/batch-locker/index.d.ts.map +1 -0
- package/dist/batch-locker/index.js +272 -0
- package/dist/batch-locker/index.js.map +1 -0
- package/dist/batch-locker/interfaces.d.ts +6 -0
- package/dist/batch-locker/interfaces.d.ts.map +1 -0
- package/dist/batch-locker/interfaces.js +2 -0
- package/dist/batch-locker/interfaces.js.map +1 -0
- package/dist/batch-locker/system/systemInfoService.d.ts +14 -0
- package/dist/batch-locker/system/systemInfoService.d.ts.map +1 -0
- package/dist/batch-locker/system/systemInfoService.js +242 -0
- package/dist/batch-locker/system/systemInfoService.js.map +1 -0
- package/dist/batch-locker/system/systemInfobatchService.d.ts +5 -0
- package/dist/batch-locker/system/systemInfobatchService.d.ts.map +1 -0
- package/dist/batch-locker/system/systemInfobatchService.js +23 -0
- package/dist/batch-locker/system/systemInfobatchService.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/batch-locker/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAoBA,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TABLES_TO_SYNC = void 0;
|
|
4
|
+
let { MONITORING_API } = process.env;
|
|
5
|
+
exports.TABLES_TO_SYNC = {
|
|
6
|
+
logs: {
|
|
7
|
+
endpoint: MONITORING_API + '/lockers/sync-logs',
|
|
8
|
+
batchSize: 500,
|
|
9
|
+
service: 'ActionsService',
|
|
10
|
+
table: 'ServPlataformasLog',
|
|
11
|
+
idField: 'IdLogEvento'
|
|
12
|
+
},
|
|
13
|
+
system: {
|
|
14
|
+
endpoint: MONITORING_API + '/lockers/sync-logs-system',
|
|
15
|
+
batchSize: 1,
|
|
16
|
+
service: 'SystemInfoBatchService'
|
|
17
|
+
},
|
|
18
|
+
platform: {
|
|
19
|
+
endpoint: MONITORING_API + '/lockers/sync-logs-platform',
|
|
20
|
+
batchSize: 100,
|
|
21
|
+
service: 'SyncPlatformRepository',
|
|
22
|
+
table: 'ServPlataformas',
|
|
23
|
+
idField: 'IdPlataforma'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/batch-locker/const.ts"],"names":[],"mappings":";;;AAAA,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAExB,QAAA,cAAc,GAMtB;IACH,IAAI,EAAE;QACJ,QAAQ,EAAE,cAAc,GAAG,oBAAoB;QAC/C,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,aAAa;KACvB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,cAAc,GAAG,2BAA2B;QACtD,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,wBAAwB;KAClC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,cAAc,GAAG,6BAA6B;QACxD,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,cAAc;KACxB;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/batch-locker/db/database.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,SAAS,GAAU,MAAM,GAAG,KAAG,OAAO,CAAC,OAAO,CAE1D,CAAC;AAEF,eAAO,MAAM,aAAa,qCAAkB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConnection = exports.connectDB = void 0;
|
|
4
|
+
const sequelize_1 = require("./sequelize");
|
|
5
|
+
const models_1 = require("./models");
|
|
6
|
+
let isConnected = false;
|
|
7
|
+
const connectSQL = async (logs) => {
|
|
8
|
+
try {
|
|
9
|
+
if (isConnected) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
await sequelize_1.sequelize.authenticate();
|
|
13
|
+
await (0, models_1.initializeModels)();
|
|
14
|
+
logs(`🎉 SQL Server db connected`);
|
|
15
|
+
isConnected = true;
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
let errorMsg = (error instanceof Error) ? error.message : String(error);
|
|
20
|
+
logs(`❌ SQL db connection error: ${errorMsg}`);
|
|
21
|
+
console.error('Full error:', error);
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const connectDB = async (logs) => {
|
|
26
|
+
return await connectSQL(logs);
|
|
27
|
+
};
|
|
28
|
+
exports.connectDB = connectDB;
|
|
29
|
+
const getConnection = () => sequelize_1.sequelize;
|
|
30
|
+
exports.getConnection = getConnection;
|
|
31
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/batch-locker/db/database.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,qCAA4C;AAE5C,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAS,EAAoB,EAAE;IACrD,IAAI,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,qBAAS,CAAC,YAAY,EAAE,CAAC;QAG/B,MAAM,IAAA,yBAAgB,GAAE,CAAC;QAEzB,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACnC,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,QAAQ,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,SAAS,GAAG,KAAK,EAAE,IAAS,EAAoB,EAAE;IAC3D,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,qBAAS,CAAC;AAAhC,QAAA,aAAa,iBAAmB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Model } from 'sequelize';
|
|
2
|
+
import { BatchStatus } from '../../../interfaces/shared/batch';
|
|
3
|
+
export interface BatchAttributes {
|
|
4
|
+
id: number;
|
|
5
|
+
tableName: string;
|
|
6
|
+
lastProcessedId: number;
|
|
7
|
+
status: BatchStatus;
|
|
8
|
+
errorMessage?: string;
|
|
9
|
+
createdAt?: Date;
|
|
10
|
+
updatedAt?: Date;
|
|
11
|
+
}
|
|
12
|
+
export declare class Batch extends Model<BatchAttributes> implements BatchAttributes {
|
|
13
|
+
id: number;
|
|
14
|
+
tableName: string;
|
|
15
|
+
lastProcessedId: number;
|
|
16
|
+
status: BatchStatus;
|
|
17
|
+
errorMessage?: string;
|
|
18
|
+
readonly createdAt: Date;
|
|
19
|
+
readonly updatedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
export default Batch;
|
|
22
|
+
//# sourceMappingURL=batch.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.model.d.ts","sourceRoot":"","sources":["../../../../src/batch-locker/db/models/batch.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,KAAM,SAAQ,KAAK,CAAC,eAAe,CAAE,YAAW,eAAe;IACnE,EAAE,EAAG,MAAM,CAAC;IACZ,SAAS,EAAG,MAAM,CAAC;IACnB,eAAe,EAAG,MAAM,CAAC;IACzB,MAAM,EAAG,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAgB,SAAS,EAAG,IAAI,CAAC;IACjC,SAAgB,SAAS,EAAG,IAAI,CAAC;CAClC;AAoCD,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Batch = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const sequelize_2 = require("../sequelize");
|
|
6
|
+
const batch_1 = require("../../../interfaces/shared/batch");
|
|
7
|
+
class Batch extends sequelize_1.Model {
|
|
8
|
+
}
|
|
9
|
+
exports.Batch = Batch;
|
|
10
|
+
Batch.init({
|
|
11
|
+
id: {
|
|
12
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
13
|
+
autoIncrement: true,
|
|
14
|
+
primaryKey: true,
|
|
15
|
+
},
|
|
16
|
+
tableName: {
|
|
17
|
+
type: sequelize_1.DataTypes.STRING,
|
|
18
|
+
allowNull: false,
|
|
19
|
+
unique: true,
|
|
20
|
+
},
|
|
21
|
+
lastProcessedId: {
|
|
22
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
23
|
+
allowNull: false,
|
|
24
|
+
defaultValue: 0,
|
|
25
|
+
},
|
|
26
|
+
status: {
|
|
27
|
+
type: sequelize_1.DataTypes.ENUM(...Object.values(batch_1.BatchStatus)),
|
|
28
|
+
allowNull: false,
|
|
29
|
+
defaultValue: batch_1.BatchStatus.PENDING,
|
|
30
|
+
},
|
|
31
|
+
errorMessage: {
|
|
32
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
33
|
+
allowNull: true,
|
|
34
|
+
},
|
|
35
|
+
}, {
|
|
36
|
+
sequelize: sequelize_2.sequelize,
|
|
37
|
+
tableName: 'batches',
|
|
38
|
+
timestamps: true,
|
|
39
|
+
});
|
|
40
|
+
exports.default = Batch;
|
|
41
|
+
//# sourceMappingURL=batch.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.model.js","sourceRoot":"","sources":["../../../../src/batch-locker/db/models/batch.model.ts"],"names":[],"mappings":";;;AAAA,yCAA6C;AAC7C,4CAAyC;AACzC,4DAA+D;AAa/D,MAAa,KAAM,SAAQ,iBAAsB;CAQhD;AARD,sBAQC;AAED,KAAK,CAAC,IAAI,CACR;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;KACb;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,CAAC;KAChB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC;QACnD,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,mBAAW,CAAC,OAAO;KAClC;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB;CACF,EACD;IACE,SAAS,EAAT,qBAAS;IACT,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,IAAI;CACjB,CACF,CAAC;AAEF,kBAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/batch-locker/db/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,eAAO,MAAM,gBAAgB,qBAS1B,CAAC;AAGF,OAAO,EACL,KAAK,EACN,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Batch = exports.initializeModels = void 0;
|
|
7
|
+
const batch_model_1 = __importDefault(require("./batch.model"));
|
|
8
|
+
exports.Batch = batch_model_1.default;
|
|
9
|
+
const initializeModels = async () => {
|
|
10
|
+
try {
|
|
11
|
+
await batch_model_1.default.sync();
|
|
12
|
+
console.log('✅ All models synchronized successfully');
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error('❌ Error synchronizing models:', error);
|
|
16
|
+
throw error;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.initializeModels = initializeModels;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/batch-locker/db/models/index.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAe9B,gBAfG,qBAAK,CAeH;AAbF,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACvC,IAAI,CAAC;QAEH,MAAM,qBAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AATS,QAAA,gBAAgB,oBASzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/batch-locker/db/queries.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAY/F"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchByIdAsc = fetchByIdAsc;
|
|
4
|
+
const sequelize_1 = require("./sequelize");
|
|
5
|
+
async function fetchByIdAsc(table, idField, lastId, limit) {
|
|
6
|
+
const sql = `
|
|
7
|
+
SELECT TOP (:limit) *
|
|
8
|
+
FROM ${table}
|
|
9
|
+
WHERE ${idField} > :lastId
|
|
10
|
+
ORDER BY ${idField} ASC
|
|
11
|
+
`;
|
|
12
|
+
const [rows] = await sequelize_1.sequelize.query(sql, {
|
|
13
|
+
replacements: { limit, lastId },
|
|
14
|
+
plain: false
|
|
15
|
+
});
|
|
16
|
+
return rows;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/batch-locker/db/queries.ts"],"names":[],"mappings":";;AAEA,oCAYC;AAdD,2CAAwC;AAEjC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,OAAe,EAAE,MAAc,EAAE,KAAa;IAC9F,MAAM,GAAG,GAAG;;WAEH,KAAK;YACJ,OAAO;eACJ,OAAO;GACnB,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAS,CAAC,KAAK,CAAC,GAAG,EAAE;QACxC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC/B,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,OAAO,IAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../../src/batch-locker/db/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,eAAO,MAAM,SAAS,WAiBrB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sequelize = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const { DB_NAME, DB_USER, DB_PASS, DB_HOST, DB_PORT } = process.env;
|
|
6
|
+
exports.sequelize = new sequelize_1.Sequelize(DB_NAME, DB_USER, DB_PASS, {
|
|
7
|
+
host: DB_HOST || 'localhost',
|
|
8
|
+
port: Number(DB_PORT) || 1433,
|
|
9
|
+
dialect: 'mssql',
|
|
10
|
+
dialectModule: require('tedious'),
|
|
11
|
+
logging: false,
|
|
12
|
+
dialectOptions: {
|
|
13
|
+
options: {
|
|
14
|
+
trustServerCertificate: true,
|
|
15
|
+
encrypt: false,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=sequelize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequelize.js","sourceRoot":"","sources":["../../../src/batch-locker/db/sequelize.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAEtC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAEvD,QAAA,SAAS,GAAG,IAAI,qBAAS,CACpC,OAAQ,EACR,OAAQ,EACR,OAAQ,EACR;IACE,IAAI,EAAE,OAAO,IAAI,WAAW;IAC5B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAC7B,OAAO,EAAE,OAAO;IAChB,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC;IACjC,OAAO,EAAE,KAAK;IACd,cAAc,EAAE;QACd,OAAO,EAAE;YACP,sBAAsB,EAAE,IAAI;YAC5B,OAAO,EAAE,KAAK;SACf;KACF;CACF,CACF,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const sqlDateFormat: (date: any, type?: number) => string;
|
|
2
|
+
export declare const logs: (log: any, type?: number) => void;
|
|
3
|
+
export declare class BatchSyncService {
|
|
4
|
+
private static instance;
|
|
5
|
+
private processingTables;
|
|
6
|
+
private systemInfoQueue;
|
|
7
|
+
private maxRetries;
|
|
8
|
+
private retryInterval;
|
|
9
|
+
private constructor();
|
|
10
|
+
static getInstance(): BatchSyncService;
|
|
11
|
+
private getOrCreateBatchRecord;
|
|
12
|
+
private isNetworkAvailable;
|
|
13
|
+
private startSystemQueueProcessor;
|
|
14
|
+
private processSystemQueue;
|
|
15
|
+
private processBatch;
|
|
16
|
+
private isNetworkError;
|
|
17
|
+
run(tableName: string, Uuid: string): Promise<void>;
|
|
18
|
+
private processSystemInfo;
|
|
19
|
+
runAll(Uuid: string): Promise<void>;
|
|
20
|
+
getSystemQueueStatus(): {
|
|
21
|
+
hasQueuedData: boolean;
|
|
22
|
+
retryCount: number;
|
|
23
|
+
timestamp?: number;
|
|
24
|
+
};
|
|
25
|
+
clearSystemQueue(): void;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch-locker/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,EAAE,OAAO,MAAM,WAQrD,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,KAAK,GAAG,EAAE,OAAO,MAAM,SAK3C,CAAA;AAGD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAA+B;IAEpD,OAAO;WAIO,WAAW,IAAI,gBAAgB;YAO/B,sBAAsB;YAatB,kBAAkB;IAShC,OAAO,CAAC,yBAAyB;YAMnB,kBAAkB;YAmClB,YAAY;IA4D1B,OAAO,CAAC,cAAc;IAQT,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAyDlD,iBAAiB;IA4DlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAczC,oBAAoB,IAAI;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAU1F,gBAAgB,IAAI,IAAI;IAMxB,OAAO,IAAI,IAAI;CAWvB"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BatchSyncService = exports.logs = exports.sqlDateFormat = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const models_1 = require("./db/models");
|
|
9
|
+
const const_1 = require("./const");
|
|
10
|
+
const queries_1 = require("./db/queries");
|
|
11
|
+
const batch_1 = require("../interfaces/shared/batch");
|
|
12
|
+
const systemInfobatchService_1 = __importDefault(require("./system/systemInfobatchService"));
|
|
13
|
+
const { IDPLATAFORMA } = process.env;
|
|
14
|
+
const sqlDateFormat = (date, type) => {
|
|
15
|
+
const newDate = new Date(date).toLocaleString("en-US").replace(",", "");
|
|
16
|
+
if (type) {
|
|
17
|
+
const sqlDate = new Date(date);
|
|
18
|
+
return `${sqlDate.getFullYear()}-${(sqlDate.getMonth() + 1).toString().padStart(2, "0")}-${sqlDate.getDate().toString().padStart(2, "0")} ${sqlDate.getHours().toString().padStart(2, "0")}:${sqlDate.getMinutes().toString().padStart(2, "0")}:${sqlDate.getSeconds().toString().padStart(2, "0")}`;
|
|
19
|
+
}
|
|
20
|
+
return newDate;
|
|
21
|
+
};
|
|
22
|
+
exports.sqlDateFormat = sqlDateFormat;
|
|
23
|
+
const logs = (log, type) => {
|
|
24
|
+
if (type)
|
|
25
|
+
console.log(log);
|
|
26
|
+
else
|
|
27
|
+
console.log(`${(0, exports.sqlDateFormat)(new Date())} - ${log}`);
|
|
28
|
+
};
|
|
29
|
+
exports.logs = logs;
|
|
30
|
+
class BatchSyncService {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.processingTables = new Set();
|
|
33
|
+
this.systemInfoQueue = null;
|
|
34
|
+
this.maxRetries = 5;
|
|
35
|
+
this.retryInterval = null;
|
|
36
|
+
this.startSystemQueueProcessor();
|
|
37
|
+
}
|
|
38
|
+
static getInstance() {
|
|
39
|
+
if (!BatchSyncService.instance) {
|
|
40
|
+
BatchSyncService.instance = new BatchSyncService();
|
|
41
|
+
}
|
|
42
|
+
return BatchSyncService.instance;
|
|
43
|
+
}
|
|
44
|
+
async getOrCreateBatchRecord(tableName) {
|
|
45
|
+
const [batch] = await models_1.Batch.findOrCreate({
|
|
46
|
+
where: { tableName },
|
|
47
|
+
defaults: {
|
|
48
|
+
tableName: tableName,
|
|
49
|
+
id: 0,
|
|
50
|
+
lastProcessedId: 0,
|
|
51
|
+
status: batch_1.BatchStatus.PENDING
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return batch;
|
|
55
|
+
}
|
|
56
|
+
async isNetworkAvailable() {
|
|
57
|
+
try {
|
|
58
|
+
await axios_1.default.get('http://www.google.com', { timeout: 5000 });
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
startSystemQueueProcessor() {
|
|
66
|
+
this.retryInterval = setInterval(async () => {
|
|
67
|
+
await this.processSystemQueue();
|
|
68
|
+
}, 10000);
|
|
69
|
+
}
|
|
70
|
+
async processSystemQueue() {
|
|
71
|
+
if (!this.systemInfoQueue) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const networkAvailable = await this.isNetworkAvailable();
|
|
75
|
+
if (!networkAvailable) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const systemCfg = const_1.TABLES_TO_SYNC['system'];
|
|
80
|
+
if (!systemCfg) {
|
|
81
|
+
throw new Error('System table not configured');
|
|
82
|
+
}
|
|
83
|
+
await axios_1.default.post(systemCfg.endpoint, this.systemInfoQueue.data);
|
|
84
|
+
this.systemInfoQueue = null;
|
|
85
|
+
(0, exports.logs)(`✅ System info sent successfully from queue`);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const queue = this.systemInfoQueue;
|
|
89
|
+
if (!queue) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
queue.retryCount++;
|
|
93
|
+
if (queue.retryCount >= this.maxRetries) {
|
|
94
|
+
(0, exports.logs)(`❌ Max retries reached for system info, discarding...`);
|
|
95
|
+
this.systemInfoQueue = null;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
(0, exports.logs)(`🔄 Retrying system info sync (${queue.retryCount}/${this.maxRetries})`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async processBatch(tableName, batch, lastId, endpoint, batchSize) {
|
|
103
|
+
try {
|
|
104
|
+
const cfgForTable = const_1.TABLES_TO_SYNC[tableName];
|
|
105
|
+
if (!cfgForTable) {
|
|
106
|
+
throw new Error(`Table ${tableName} is not configured for sync`);
|
|
107
|
+
}
|
|
108
|
+
let records = [];
|
|
109
|
+
if (tableName === 'system') {
|
|
110
|
+
const service = new systemInfobatchService_1.default();
|
|
111
|
+
records = await service.getRecords();
|
|
112
|
+
}
|
|
113
|
+
else if (cfgForTable.table && cfgForTable.idField) {
|
|
114
|
+
records = await (0, queries_1.fetchByIdAsc)(cfgForTable.table, cfgForTable.idField, lastId, batchSize);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
throw new Error(`No local service implemented for table ${tableName}. Provide table/idField in TABLES_TO_SYNC or implement a local service.`);
|
|
118
|
+
}
|
|
119
|
+
console.log('records', records);
|
|
120
|
+
if (records.length === 0) {
|
|
121
|
+
await batch.update({
|
|
122
|
+
status: batch_1.BatchStatus.COMPLETED
|
|
123
|
+
});
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
await axios_1.default.post(endpoint, { logs: records, userId: 1 });
|
|
127
|
+
const idField = cfgForTable.idField || 'id';
|
|
128
|
+
const newLastId = records[records.length - 1][idField] || records[records.length - 1].IdLogEvento || records[records.length - 1].IdPlataforma || records[records.length - 1].id;
|
|
129
|
+
await batch.update({
|
|
130
|
+
lastProcessedId: newLastId,
|
|
131
|
+
status: batch_1.BatchStatus.COMPLETED
|
|
132
|
+
});
|
|
133
|
+
if (records.length === batchSize) {
|
|
134
|
+
return await this.processBatch(tableName, batch, newLastId, endpoint, batchSize);
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
140
|
+
await batch.update({
|
|
141
|
+
status: batch_1.BatchStatus.FAILED,
|
|
142
|
+
errorMessage
|
|
143
|
+
});
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
isNetworkError(error) {
|
|
148
|
+
return error.code === 'ENOTFOUND' ||
|
|
149
|
+
error.code === 'ECONNREFUSED' ||
|
|
150
|
+
error.code === 'ETIMEDOUT' ||
|
|
151
|
+
error.message?.includes('network') ||
|
|
152
|
+
error.message?.includes('timeout');
|
|
153
|
+
}
|
|
154
|
+
async run(tableName, Uuid) {
|
|
155
|
+
console.log('run', tableName);
|
|
156
|
+
if (!const_1.TABLES_TO_SYNC[tableName]) {
|
|
157
|
+
throw new Error(`Table ${tableName} is not configured for sync`);
|
|
158
|
+
}
|
|
159
|
+
if (this.processingTables.has(tableName)) {
|
|
160
|
+
(0, exports.logs)(`⚠️ Table ${tableName} is already being processed`);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
this.processingTables.add(tableName);
|
|
165
|
+
if (tableName === 'system') {
|
|
166
|
+
await this.processSystemInfo(Uuid);
|
|
167
|
+
(0, exports.logs)(`✅ Successfully synced system info`);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const batch = await this.getOrCreateBatchRecord(tableName);
|
|
171
|
+
if (batch.status === batch_1.BatchStatus.PROCESSING) {
|
|
172
|
+
(0, exports.logs)(`⚠️ Table ${tableName} is already being processed`);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
await batch.update({ status: batch_1.BatchStatus.PROCESSING });
|
|
176
|
+
const cfg = const_1.TABLES_TO_SYNC[tableName];
|
|
177
|
+
if (!cfg) {
|
|
178
|
+
throw new Error(`Table ${tableName} is not configured for sync`);
|
|
179
|
+
}
|
|
180
|
+
await this.processBatch(tableName, batch, batch.lastProcessedId, cfg.endpoint, cfg.batchSize);
|
|
181
|
+
(0, exports.logs)(`✅ Successfully synced table ${tableName}`);
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
185
|
+
(0, exports.logs)(`❌ Error syncing table ${tableName}: ${msg}`);
|
|
186
|
+
throw error;
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
this.processingTables.delete(tableName);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
async processSystemInfo(Uuid) {
|
|
193
|
+
try {
|
|
194
|
+
const service = new systemInfobatchService_1.default();
|
|
195
|
+
let records = await service.getRecords();
|
|
196
|
+
if (records.length === 0) {
|
|
197
|
+
(0, exports.logs)(`⚠️ No system info available`);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
records[0].IdPlataforma = IDPLATAFORMA;
|
|
201
|
+
records[0].UuidPlataforma = Uuid;
|
|
202
|
+
const networkAvailable = await this.isNetworkAvailable();
|
|
203
|
+
if (!networkAvailable) {
|
|
204
|
+
this.systemInfoQueue = {
|
|
205
|
+
data: records[0],
|
|
206
|
+
timestamp: Date.now(),
|
|
207
|
+
retryCount: 0
|
|
208
|
+
};
|
|
209
|
+
(0, exports.logs)(`🔄 No network - system info saved in memory queue`);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
console.log('records', records);
|
|
213
|
+
const systemCfg = const_1.TABLES_TO_SYNC['system'];
|
|
214
|
+
if (!systemCfg) {
|
|
215
|
+
throw new Error('System table not configured');
|
|
216
|
+
}
|
|
217
|
+
await axios_1.default.post(systemCfg.endpoint, { logs: records, userId: 1 });
|
|
218
|
+
(0, exports.logs)(`✅ System info sent successfully`);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
222
|
+
if (this.isNetworkError(error)) {
|
|
223
|
+
const service = new systemInfobatchService_1.default();
|
|
224
|
+
const records = await service.getRecords();
|
|
225
|
+
if (records.length > 0) {
|
|
226
|
+
this.systemInfoQueue = {
|
|
227
|
+
data: records[0],
|
|
228
|
+
timestamp: Date.now(),
|
|
229
|
+
retryCount: 0
|
|
230
|
+
};
|
|
231
|
+
(0, exports.logs)(`🔄 Network error - system info saved in memory queue: ${errorMessage}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
(0, exports.logs)(`❌ Error processing system info: ${errorMessage}`);
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
async runAll(Uuid) {
|
|
241
|
+
const tables = Object.keys(const_1.TABLES_TO_SYNC);
|
|
242
|
+
for (const table of tables) {
|
|
243
|
+
try {
|
|
244
|
+
await this.run(table, Uuid);
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
248
|
+
(0, exports.logs)(`❌ Error in batch sync for table ${table}: ${msg}`);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
getSystemQueueStatus() {
|
|
253
|
+
const ts = this.systemInfoQueue?.timestamp;
|
|
254
|
+
return {
|
|
255
|
+
hasQueuedData: this.systemInfoQueue !== null,
|
|
256
|
+
retryCount: this.systemInfoQueue?.retryCount || 0,
|
|
257
|
+
...(ts !== undefined ? { timestamp: ts } : {})
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
clearSystemQueue() {
|
|
261
|
+
this.systemInfoQueue = null;
|
|
262
|
+
(0, exports.logs)('🧹 System queue cleared manually');
|
|
263
|
+
}
|
|
264
|
+
destroy() {
|
|
265
|
+
if (this.retryInterval) {
|
|
266
|
+
clearInterval(this.retryInterval);
|
|
267
|
+
this.retryInterval = null;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
exports.BatchSyncService = BatchSyncService;
|
|
272
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch-locker/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/batch-locker/interfaces.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/batch-locker/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SystemInfo } from '../../interfaces/shared/system';
|
|
2
|
+
export declare class SystemInfoService {
|
|
3
|
+
static getSystemInfo(): Promise<SystemInfo>;
|
|
4
|
+
private static getMemoryInfo;
|
|
5
|
+
private static getCpuInfo;
|
|
6
|
+
private static getDiskInfo;
|
|
7
|
+
private static getDiskInfoWindows;
|
|
8
|
+
private static getDiskInfoUnix;
|
|
9
|
+
private static getBatteryInfo;
|
|
10
|
+
private static getBatteryInfoWindows;
|
|
11
|
+
private static getBatteryInfoMac;
|
|
12
|
+
private static getBatteryInfoLinux;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=systemInfoService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemInfoService.d.ts","sourceRoot":"","sources":["../../../src/batch-locker/system/systemInfoService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAK5D,qBAAa,iBAAiB;WACR,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;mBAuBnC,aAAa;mBAcb,UAAU;mBAyBV,WAAW;mBAkBX,kBAAkB;mBAkClB,eAAe;mBA0Bf,cAAc;mBAed,qBAAqB;mBAsBrB,iBAAiB;mBAoBjB,mBAAmB;CAiBzC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SystemInfoService = void 0;
|
|
37
|
+
const os = __importStar(require("os"));
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const util_1 = require("util");
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
42
|
+
class SystemInfoService {
|
|
43
|
+
static async getSystemInfo() {
|
|
44
|
+
const [memory, cpu, disk, battery] = await Promise.all([
|
|
45
|
+
this.getMemoryInfo(),
|
|
46
|
+
this.getCpuInfo(),
|
|
47
|
+
this.getDiskInfo(),
|
|
48
|
+
this.getBatteryInfo()
|
|
49
|
+
]);
|
|
50
|
+
const base = {
|
|
51
|
+
memory,
|
|
52
|
+
cpu,
|
|
53
|
+
disk,
|
|
54
|
+
system: {
|
|
55
|
+
platform: os.platform(),
|
|
56
|
+
version: os.version(),
|
|
57
|
+
hostname: os.hostname(),
|
|
58
|
+
uptime: os.uptime()
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return battery !== undefined ? { ...base, battery } : base;
|
|
62
|
+
}
|
|
63
|
+
static async getMemoryInfo() {
|
|
64
|
+
const total = os.totalmem();
|
|
65
|
+
const free = os.freemem();
|
|
66
|
+
const used = total - free;
|
|
67
|
+
const usagePercent = (used / total) * 100;
|
|
68
|
+
return {
|
|
69
|
+
total,
|
|
70
|
+
free,
|
|
71
|
+
used,
|
|
72
|
+
usagePercent: Math.round(usagePercent * 100) / 100
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
static async getCpuInfo() {
|
|
76
|
+
const cpus = os.cpus();
|
|
77
|
+
const loadAverage = os.loadavg();
|
|
78
|
+
let totalIdle = 0;
|
|
79
|
+
let totalTick = 0;
|
|
80
|
+
cpus.forEach(cpu => {
|
|
81
|
+
for (const type in cpu.times) {
|
|
82
|
+
totalTick += cpu.times[type];
|
|
83
|
+
}
|
|
84
|
+
totalIdle += cpu.times.idle;
|
|
85
|
+
});
|
|
86
|
+
const usage = 100 - ~~(100 * totalIdle / totalTick);
|
|
87
|
+
return {
|
|
88
|
+
model: cpus[0]?.model ?? 'Unknown',
|
|
89
|
+
cores: cpus.length,
|
|
90
|
+
usage,
|
|
91
|
+
loadAverage
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
static async getDiskInfo() {
|
|
95
|
+
try {
|
|
96
|
+
if (os.platform() === 'win32') {
|
|
97
|
+
return await this.getDiskInfoWindows();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return await this.getDiskInfoUnix();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error('Error getting disk info:', error);
|
|
105
|
+
return {
|
|
106
|
+
total: 0,
|
|
107
|
+
free: 0,
|
|
108
|
+
used: 0,
|
|
109
|
+
usagePercent: 0
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
static async getDiskInfoWindows() {
|
|
114
|
+
try {
|
|
115
|
+
const { stdout } = await execAsync('wmic logicaldisk get size,freespace,caption');
|
|
116
|
+
const lines = stdout.trim().split('\n');
|
|
117
|
+
let totalSize = 0;
|
|
118
|
+
let totalFree = 0;
|
|
119
|
+
for (let i = 1; i < lines.length; i++) {
|
|
120
|
+
const line = (lines[i] ?? '').trim();
|
|
121
|
+
if (line) {
|
|
122
|
+
const parts = line.split(/\s+/);
|
|
123
|
+
if (parts.length >= 3) {
|
|
124
|
+
const free = parseInt(parts[1] ?? '0') || 0;
|
|
125
|
+
const size = parseInt(parts[2] ?? '0') || 0;
|
|
126
|
+
totalFree += free;
|
|
127
|
+
totalSize += size;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const used = totalSize - totalFree;
|
|
132
|
+
const usagePercent = totalSize > 0 ? (used / totalSize) * 100 : 0;
|
|
133
|
+
return {
|
|
134
|
+
total: totalSize,
|
|
135
|
+
free: totalFree,
|
|
136
|
+
used,
|
|
137
|
+
usagePercent: Math.round(usagePercent * 100) / 100
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
return { total: 0, free: 0, used: 0, usagePercent: 0 };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
static async getDiskInfoUnix() {
|
|
145
|
+
try {
|
|
146
|
+
const { stdout } = await execAsync('df -k /');
|
|
147
|
+
const lines = stdout.trim().split('\n');
|
|
148
|
+
const dataLine = (lines[1] ?? '').trim();
|
|
149
|
+
if (!dataLine) {
|
|
150
|
+
return { total: 0, free: 0, used: 0, usagePercent: 0 };
|
|
151
|
+
}
|
|
152
|
+
const data = dataLine.split(/\s+/);
|
|
153
|
+
const total = (parseInt(data[1] ?? '0') || 0) * 1024;
|
|
154
|
+
const used = (parseInt(data[2] ?? '0') || 0) * 1024;
|
|
155
|
+
const free = (parseInt(data[3] ?? '0') || 0) * 1024;
|
|
156
|
+
const usagePercent = total > 0 ? (used / total) * 100 : 0;
|
|
157
|
+
return {
|
|
158
|
+
total,
|
|
159
|
+
free,
|
|
160
|
+
used,
|
|
161
|
+
usagePercent: Math.round(usagePercent * 100) / 100
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
return { total: 0, free: 0, used: 0, usagePercent: 0 };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
static async getBatteryInfo() {
|
|
169
|
+
try {
|
|
170
|
+
if (os.platform() === 'win32') {
|
|
171
|
+
return await this.getBatteryInfoWindows();
|
|
172
|
+
}
|
|
173
|
+
else if (os.platform() === 'darwin') {
|
|
174
|
+
return await this.getBatteryInfoMac();
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
return await this.getBatteryInfoLinux();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
console.error('Error getting battery info:', error);
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
static async getBatteryInfoWindows() {
|
|
186
|
+
try {
|
|
187
|
+
const { stdout } = await execAsync('wmic path Win32_Battery get BatteryStatus,EstimatedChargeRemaining');
|
|
188
|
+
const lines = stdout.trim().split('\n');
|
|
189
|
+
if (lines.length > 1) {
|
|
190
|
+
const data = (lines[1] ?? '').trim().split(/\s+/);
|
|
191
|
+
const status = parseInt(data[0] ?? '0');
|
|
192
|
+
const level = parseInt(data[1] ?? '0');
|
|
193
|
+
return {
|
|
194
|
+
level,
|
|
195
|
+
charging: status === 2,
|
|
196
|
+
timeRemaining: undefined
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
static async getBatteryInfoMac() {
|
|
206
|
+
try {
|
|
207
|
+
const { stdout } = await execAsync('pmset -g batt');
|
|
208
|
+
const match = stdout.match(/(\d+)%.*?(\w+)/);
|
|
209
|
+
if (match) {
|
|
210
|
+
const level = parseInt(match[1] ?? '0');
|
|
211
|
+
const charging = (match[2] ?? '').includes('charging');
|
|
212
|
+
return {
|
|
213
|
+
level,
|
|
214
|
+
charging
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
static async getBatteryInfoLinux() {
|
|
224
|
+
try {
|
|
225
|
+
const batteryPath = '/sys/class/power_supply/BAT0';
|
|
226
|
+
if (fs.existsSync(batteryPath)) {
|
|
227
|
+
const capacity = fs.readFileSync(`${batteryPath}/capacity`, 'utf8').trim();
|
|
228
|
+
const status = fs.readFileSync(`${batteryPath}/status`, 'utf8').trim();
|
|
229
|
+
return {
|
|
230
|
+
level: parseInt(capacity),
|
|
231
|
+
charging: status === 'Charging'
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.SystemInfoService = SystemInfoService;
|
|
242
|
+
//# sourceMappingURL=systemInfoService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemInfoService.js","sourceRoot":"","sources":["../../../src/batch-locker/system/systemInfoService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemInfobatchService.d.ts","sourceRoot":"","sources":["../../../src/batch-locker/system/systemInfobatchService.ts"],"names":[],"mappings":"AAGA,qBAAa,sBAAsB;IACpB,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;CAgB1C;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemInfoBatchService = void 0;
|
|
4
|
+
const systemInfoService_1 = require("./systemInfoService");
|
|
5
|
+
class SystemInfoBatchService {
|
|
6
|
+
async getRecords() {
|
|
7
|
+
try {
|
|
8
|
+
const systemInfo = await systemInfoService_1.SystemInfoService.getSystemInfo();
|
|
9
|
+
return [{
|
|
10
|
+
id: Date.now(),
|
|
11
|
+
timestamp: new Date().toISOString(),
|
|
12
|
+
...systemInfo
|
|
13
|
+
}];
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error('Error getting system info:', error);
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.SystemInfoBatchService = SystemInfoBatchService;
|
|
22
|
+
exports.default = SystemInfoBatchService;
|
|
23
|
+
//# sourceMappingURL=systemInfobatchService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemInfobatchService.js","sourceRoot":"","sources":["../../../src/batch-locker/system/systemInfobatchService.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAGxD,MAAa,sBAAsB;IAC1B,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC;YAGH,MAAM,UAAU,GAAG,MAAM,qCAAiB,CAAC,aAAa,EAAE,CAAC;YAE3D,OAAO,CAAC;oBACN,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,GAAG,UAAU;iBACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAjBD,wDAiBC;AAED,kBAAe,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boxitworld/commons-backend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Common interfaces and functions for BoxitWorld backend applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -44,9 +44,12 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@boxitworld/commons": "^1.0.3",
|
|
47
|
+
"axios": "^1.6.8",
|
|
47
48
|
"dotenv": "^16.5.0",
|
|
48
49
|
"jsonwebtoken": "^8.5.1",
|
|
49
|
-
"kafkajs": "^2.2.4"
|
|
50
|
+
"kafkajs": "^2.2.4",
|
|
51
|
+
"sequelize": "^6.37.7",
|
|
52
|
+
"tsyringe": "^4.10.0"
|
|
50
53
|
},
|
|
51
54
|
"repository": {
|
|
52
55
|
"type": "git",
|