@boxitworld/commons-backend 1.0.4 โ 1.0.6
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 +6 -0
- package/dist/batch-locker/const.d.ts.map +1 -0
- package/dist/batch-locker/const.js +22 -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/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 +29 -0
- package/dist/batch-locker/index.d.ts.map +1 -0
- package/dist/batch-locker/index.js +269 -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/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;CACjB,CAgBA,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
},
|
|
11
|
+
system: {
|
|
12
|
+
endpoint: MONITORING_API + '/lockers/sync-logs-system',
|
|
13
|
+
batchSize: 1,
|
|
14
|
+
service: 'SystemInfoBatchService'
|
|
15
|
+
},
|
|
16
|
+
platform: {
|
|
17
|
+
endpoint: MONITORING_API + '/lockers/sync-logs-platform',
|
|
18
|
+
batchSize: 100,
|
|
19
|
+
service: 'SyncPlatformRepository'
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# 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,GAItB;IACH,IAAI,EAAE;QACJ,QAAQ,EAAE,cAAc,GAAG,oBAAoB;QAC/C,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,gBAAgB;KAC1B;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;KAClC;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":"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,29 @@
|
|
|
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
|
+
private getService;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch-locker/index.ts"],"names":[],"mappings":"AASA,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;IAsD1B,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;YAOR,UAAU;CASzB"}
|
|
@@ -0,0 +1,269 @@
|
|
|
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 batch_1 = require("../interfaces/shared/batch");
|
|
11
|
+
const tsyringe_1 = require("tsyringe");
|
|
12
|
+
const { IDPLATAFORMA } = process.env;
|
|
13
|
+
const sqlDateFormat = (date, type) => {
|
|
14
|
+
const newDate = new Date(date).toLocaleString("en-US").replace(",", "");
|
|
15
|
+
if (type) {
|
|
16
|
+
const sqlDate = new Date(date);
|
|
17
|
+
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")}`;
|
|
18
|
+
}
|
|
19
|
+
return newDate;
|
|
20
|
+
};
|
|
21
|
+
exports.sqlDateFormat = sqlDateFormat;
|
|
22
|
+
const logs = (log, type) => {
|
|
23
|
+
if (type)
|
|
24
|
+
console.log(log);
|
|
25
|
+
else
|
|
26
|
+
console.log(`${(0, exports.sqlDateFormat)(new Date())} - ${log}`);
|
|
27
|
+
};
|
|
28
|
+
exports.logs = logs;
|
|
29
|
+
class BatchSyncService {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.processingTables = new Set();
|
|
32
|
+
this.systemInfoQueue = null;
|
|
33
|
+
this.maxRetries = 5;
|
|
34
|
+
this.retryInterval = null;
|
|
35
|
+
this.startSystemQueueProcessor();
|
|
36
|
+
}
|
|
37
|
+
static getInstance() {
|
|
38
|
+
if (!BatchSyncService.instance) {
|
|
39
|
+
BatchSyncService.instance = new BatchSyncService();
|
|
40
|
+
}
|
|
41
|
+
return BatchSyncService.instance;
|
|
42
|
+
}
|
|
43
|
+
async getOrCreateBatchRecord(tableName) {
|
|
44
|
+
const [batch] = await models_1.Batch.findOrCreate({
|
|
45
|
+
where: { tableName },
|
|
46
|
+
defaults: {
|
|
47
|
+
tableName: tableName,
|
|
48
|
+
id: 0,
|
|
49
|
+
lastProcessedId: 0,
|
|
50
|
+
status: batch_1.BatchStatus.PENDING
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return batch;
|
|
54
|
+
}
|
|
55
|
+
async isNetworkAvailable() {
|
|
56
|
+
try {
|
|
57
|
+
await axios_1.default.get('http://www.google.com', { timeout: 5000 });
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
startSystemQueueProcessor() {
|
|
65
|
+
this.retryInterval = setInterval(async () => {
|
|
66
|
+
await this.processSystemQueue();
|
|
67
|
+
}, 10000);
|
|
68
|
+
}
|
|
69
|
+
async processSystemQueue() {
|
|
70
|
+
if (!this.systemInfoQueue) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const networkAvailable = await this.isNetworkAvailable();
|
|
74
|
+
if (!networkAvailable) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const systemCfg = const_1.TABLES_TO_SYNC['system'];
|
|
79
|
+
if (!systemCfg) {
|
|
80
|
+
throw new Error('System table not configured');
|
|
81
|
+
}
|
|
82
|
+
await axios_1.default.post(systemCfg.endpoint, this.systemInfoQueue.data);
|
|
83
|
+
this.systemInfoQueue = null;
|
|
84
|
+
(0, exports.logs)(`โ
System info sent successfully from queue`);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
const queue = this.systemInfoQueue;
|
|
88
|
+
if (!queue) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
queue.retryCount++;
|
|
92
|
+
if (queue.retryCount >= this.maxRetries) {
|
|
93
|
+
(0, exports.logs)(`โ Max retries reached for system info, discarding...`);
|
|
94
|
+
this.systemInfoQueue = null;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
(0, exports.logs)(`๐ Retrying system info sync (${queue.retryCount}/${this.maxRetries})`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async processBatch(tableName, batch, lastId, endpoint, batchSize) {
|
|
102
|
+
try {
|
|
103
|
+
const cfgForTable = const_1.TABLES_TO_SYNC[tableName];
|
|
104
|
+
if (!cfgForTable) {
|
|
105
|
+
throw new Error(`Table ${tableName} is not configured for sync`);
|
|
106
|
+
}
|
|
107
|
+
const service = await tsyringe_1.container.resolve(cfgForTable.service);
|
|
108
|
+
const records = await service.getRecords(lastId, batchSize);
|
|
109
|
+
console.log('records', records);
|
|
110
|
+
if (records.length === 0) {
|
|
111
|
+
await batch.update({
|
|
112
|
+
status: batch_1.BatchStatus.COMPLETED
|
|
113
|
+
});
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
await axios_1.default.post(endpoint, { logs: records, userId: 1 });
|
|
117
|
+
const newLastId = records[records.length - 1].IdLogEvento || records[records.length - 1].IdPlataforma || records[records.length - 1].id;
|
|
118
|
+
await batch.update({
|
|
119
|
+
lastProcessedId: newLastId,
|
|
120
|
+
status: batch_1.BatchStatus.COMPLETED
|
|
121
|
+
});
|
|
122
|
+
if (records.length === batchSize) {
|
|
123
|
+
return await this.processBatch(tableName, batch, newLastId, endpoint, batchSize);
|
|
124
|
+
}
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
129
|
+
await batch.update({
|
|
130
|
+
status: batch_1.BatchStatus.FAILED,
|
|
131
|
+
errorMessage
|
|
132
|
+
});
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
isNetworkError(error) {
|
|
137
|
+
return error.code === 'ENOTFOUND' ||
|
|
138
|
+
error.code === 'ECONNREFUSED' ||
|
|
139
|
+
error.code === 'ETIMEDOUT' ||
|
|
140
|
+
error.message?.includes('network') ||
|
|
141
|
+
error.message?.includes('timeout');
|
|
142
|
+
}
|
|
143
|
+
async run(tableName, Uuid) {
|
|
144
|
+
console.log('run', tableName);
|
|
145
|
+
if (!const_1.TABLES_TO_SYNC[tableName]) {
|
|
146
|
+
throw new Error(`Table ${tableName} is not configured for sync`);
|
|
147
|
+
}
|
|
148
|
+
if (this.processingTables.has(tableName)) {
|
|
149
|
+
(0, exports.logs)(`โ ๏ธ Table ${tableName} is already being processed`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
this.processingTables.add(tableName);
|
|
154
|
+
if (tableName === 'system') {
|
|
155
|
+
await this.processSystemInfo(Uuid);
|
|
156
|
+
(0, exports.logs)(`โ
Successfully synced system info`);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const batch = await this.getOrCreateBatchRecord(tableName);
|
|
160
|
+
if (batch.status === batch_1.BatchStatus.PROCESSING) {
|
|
161
|
+
(0, exports.logs)(`โ ๏ธ Table ${tableName} is already being processed`);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
await batch.update({ status: batch_1.BatchStatus.PROCESSING });
|
|
165
|
+
const cfg = const_1.TABLES_TO_SYNC[tableName];
|
|
166
|
+
if (!cfg) {
|
|
167
|
+
throw new Error(`Table ${tableName} is not configured for sync`);
|
|
168
|
+
}
|
|
169
|
+
await this.processBatch(tableName, batch, batch.lastProcessedId, cfg.endpoint, cfg.batchSize);
|
|
170
|
+
(0, exports.logs)(`โ
Successfully synced table ${tableName}`);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
174
|
+
(0, exports.logs)(`โ Error syncing table ${tableName}: ${msg}`);
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
this.processingTables.delete(tableName);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
async processSystemInfo(Uuid) {
|
|
182
|
+
try {
|
|
183
|
+
const service = await this.getService('SystemInfoBatchService');
|
|
184
|
+
let records = await service.getRecords(0, 1);
|
|
185
|
+
if (records.length === 0) {
|
|
186
|
+
(0, exports.logs)(`โ ๏ธ No system info available`);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
records[0].IdPlataforma = IDPLATAFORMA;
|
|
190
|
+
records[0].UuidPlataforma = Uuid;
|
|
191
|
+
const networkAvailable = await this.isNetworkAvailable();
|
|
192
|
+
if (!networkAvailable) {
|
|
193
|
+
this.systemInfoQueue = {
|
|
194
|
+
data: records[0],
|
|
195
|
+
timestamp: Date.now(),
|
|
196
|
+
retryCount: 0
|
|
197
|
+
};
|
|
198
|
+
(0, exports.logs)(`๐ No network - system info saved in memory queue`);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
console.log('records', records);
|
|
202
|
+
const systemCfg = const_1.TABLES_TO_SYNC['system'];
|
|
203
|
+
if (!systemCfg) {
|
|
204
|
+
throw new Error('System table not configured');
|
|
205
|
+
}
|
|
206
|
+
await axios_1.default.post(systemCfg.endpoint, { logs: records, userId: 1 });
|
|
207
|
+
(0, exports.logs)(`โ
System info sent successfully`);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
211
|
+
if (this.isNetworkError(error)) {
|
|
212
|
+
const service = await this.getService('SystemInfoBatchService');
|
|
213
|
+
const records = await service.getRecords(0, 1);
|
|
214
|
+
if (records.length > 0) {
|
|
215
|
+
this.systemInfoQueue = {
|
|
216
|
+
data: records[0],
|
|
217
|
+
timestamp: Date.now(),
|
|
218
|
+
retryCount: 0
|
|
219
|
+
};
|
|
220
|
+
(0, exports.logs)(`๐ Network error - system info saved in memory queue: ${errorMessage}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
(0, exports.logs)(`โ Error processing system info: ${errorMessage}`);
|
|
225
|
+
throw error;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
async runAll(Uuid) {
|
|
230
|
+
const tables = Object.keys(const_1.TABLES_TO_SYNC);
|
|
231
|
+
for (const table of tables) {
|
|
232
|
+
try {
|
|
233
|
+
await this.run(table, Uuid);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
237
|
+
(0, exports.logs)(`โ Error in batch sync for table ${table}: ${msg}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
getSystemQueueStatus() {
|
|
242
|
+
const ts = this.systemInfoQueue?.timestamp;
|
|
243
|
+
return {
|
|
244
|
+
hasQueuedData: this.systemInfoQueue !== null,
|
|
245
|
+
retryCount: this.systemInfoQueue?.retryCount || 0,
|
|
246
|
+
...(ts !== undefined ? { timestamp: ts } : {})
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
clearSystemQueue() {
|
|
250
|
+
this.systemInfoQueue = null;
|
|
251
|
+
(0, exports.logs)('๐งน System queue cleared manually');
|
|
252
|
+
}
|
|
253
|
+
destroy() {
|
|
254
|
+
if (this.retryInterval) {
|
|
255
|
+
clearInterval(this.retryInterval);
|
|
256
|
+
this.retryInterval = null;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
async getService(serviceName) {
|
|
260
|
+
try {
|
|
261
|
+
return tsyringe_1.container.resolve(serviceName);
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
throw new Error(`Service ${serviceName} not found in container`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
exports.BatchSyncService = BatchSyncService;
|
|
269
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch-locker/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,wCAAoC;AACpC,mCAAyC;AACzC,sDAAyD;AACzD,uCAAqC;AAErC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;AAG7B,MAAM,aAAa,GAAG,CAAC,IAAS,EAAE,IAAa,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACvS,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB;AAEM,MAAM,IAAI,GAAG,CAAC,GAAQ,EAAE,IAAa,EAAE,EAAE;IAE9C,IAAI,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;QACtB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAa,EAAC,IAAI,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5D,CAAC,CAAA;AALY,QAAA,IAAI,QAKhB;AAGD,MAAa,gBAAgB;IAO3B;QALQ,qBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1C,oBAAe,GAA2B,IAAI,CAAC;QAC/C,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAA0B,IAAI,CAAC;QAGlD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QACpD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,cAAK,CAAC,YAAY,CAAC;YACvC,KAAK,EAAE,EAAE,SAAS,EAAE;YACpB,QAAQ,EAAE;gBACR,SAAS,EAAE,SAAS;gBACpB,EAAE,EAAE,CAAC;gBACL,eAAe,EAAE,CAAC;gBAClB,MAAM,EAAE,mBAAW,CAAC,OAAO;aAC5B;SACF,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC;YACH,MAAM,eAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,sBAAc,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAGhE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAA,YAAI,EAAC,4CAA4C,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAA,YAAI,EAAC,sDAAsD,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAA,YAAI,EAAC,iCAAiC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,SAAiB,EACjB,KAAY,EACZ,MAAc,EACd,QAAgB,EAChB,SAAiB;QAEjB,IAAI,CAAC;YAEH,MAAM,WAAW,GAAG,sBAAc,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,6BAA6B,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,OAAO,GAAQ,MAAM,oBAAS,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAGlE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAE5D,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC,MAAM,CAAC;oBACjB,MAAM,EAAE,mBAAW,CAAC,SAAS;iBAC9B,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAGD,MAAM,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAGzD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxI,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjB,eAAe,EAAE,SAAS;gBAC1B,MAAM,EAAE,mBAAW,CAAC,SAAS;aAC9B,CAAC,CAAC;YAGH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnF,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAE9E,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,mBAAW,CAAC,MAAM;gBAC1B,YAAY;aACb,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAU;QAC/B,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW;YAC/B,KAAK,CAAC,IAAI,KAAK,cAAc;YAC7B,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;YAClC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,IAAY;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAE9B,IAAI,CAAC,sBAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,6BAA6B,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,IAAA,YAAI,EAAC,YAAY,SAAS,6BAA6B,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAGrC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAA,YAAI,EAAC,mCAAmC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAGD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAG3D,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAW,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAA,YAAI,EAAC,YAAY,SAAS,6BAA6B,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAGD,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,mBAAW,CAAC,UAAU,EAAE,CAAC,CAAC;YAEvD,MAAM,GAAG,GAAG,sBAAc,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,6BAA6B,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,IAAI,CAAC,YAAY,CACrB,SAAS,EACT,KAAK,EACL,KAAK,CAAC,eAAe,EACrB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,SAAS,CACd,CAAC;YAEF,IAAA,YAAI,EAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,IAAA,YAAI,EAAC,yBAAyB,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAChE,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAA,YAAI,EAAC,6BAA6B,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC;YAEjC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAEtB,IAAI,CAAC,eAAe,GAAG;oBACrB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;oBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,UAAU,EAAE,CAAC;iBACd,CAAC;gBAEF,IAAA,YAAI,EAAC,mDAAmD,CAAC,CAAC;gBAC1D,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAGhC,MAAM,SAAS,GAAG,sBAAc,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAEnE,IAAA,YAAI,EAAC,iCAAiC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAG9E,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,eAAe,GAAG;wBACrB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,UAAU,EAAE,CAAC;qBACd,CAAC;oBAEF,IAAA,YAAI,EAAC,yDAAyD,YAAY,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAA,YAAI,EAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;gBACxD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,IAAA,YAAI,EAAC,mCAAmC,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC;YAE3D,CAAC;QACH,CAAC;IACH,CAAC;IAGM,oBAAoB;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;QAC3C,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC5C,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC;YACjD,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAGM,gBAAgB;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAA,YAAI,EAAC,kCAAkC,CAAC,CAAC;IAC3C,CAAC;IAGM,OAAO;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,WAAmB;QAC1C,IAAI,CAAC;YACH,OAAO,oBAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,yBAAyB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CAGF;AAlTD,4CAkTC"}
|
|
@@ -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":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boxitworld/commons-backend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
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",
|