This commit is contained in:
rodrigorodriguez 2022-12-14 08:31:27 -03:00
commit e83dc02f77
10 changed files with 374 additions and 920 deletions

View file

@ -23,4 +23,4 @@
"console": "integratedTerminal"
}
]
}
}

View file

@ -12,4 +12,4 @@ ECHO Compiling...
CALL node_modules\.bin\tsc
:ALLSET
node boot.cjs
node boot.mjs

264
package-lock.json generated
View file

@ -9,6 +9,12 @@
"version": "3.0.0",
"license": "AGPL-3.0",
"dependencies": {
"@azure/arm-appservice": "^13.0.3",
"@azure/arm-cognitiveservices": "^7.3.1",
"@azure/arm-resources": "^5.1.0",
"@azure/arm-search": "^3.0.1",
"@azure/arm-sql": "^9.0.1",
"@azure/arm-subscriptions": "^5.1.0",
"@azure/cognitiveservices-computervision": "8.2.0",
"@azure/keyvault-keys": "4.6.0",
"@azure/ms-rest-js": "2.6.2",
@ -169,6 +175,138 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/arm-appservice": {
"version": "13.0.3",
"resolved": "https://registry.npmjs.org/@azure/arm-appservice/-/arm-appservice-13.0.3.tgz",
"integrity": "sha512-Vu011o3/bikQNwtjouwmUJud+Z6Brcjij2D0omPWClRGg8i5gBfOYSpDkFGkHbhGlaky4fgvfkxD0uHGq34uYA==",
"dependencies": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@azure/arm-appservice/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/arm-cognitiveservices": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/@azure/arm-cognitiveservices/-/arm-cognitiveservices-7.3.1.tgz",
"integrity": "sha512-y4rT4x+nqu23Q2K75yp4gVaoRXVXXMsi6LH5LVOVDUnnNnTPE3G4/0eckAmjbbcs6jYscPgUBPmEzSTBcPcB1A==",
"dependencies": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@azure/arm-cognitiveservices/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/arm-resources": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@azure/arm-resources/-/arm-resources-5.1.0.tgz",
"integrity": "sha512-aZOnHfo+bt36KVSYZNbJFJM+F8QWTwRVxDjtyZG1g7su0Ok0Dgg3gyLK1GUZn3jPkNuDKm1KwZ/+E6vhB2HqCQ==",
"dependencies": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@azure/arm-resources/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/arm-search": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@azure/arm-search/-/arm-search-3.0.1.tgz",
"integrity": "sha512-WxT4c6FZb5TUjjJgUgNtdxHZAYzSiopcNz4RgwnugvZ6G+LKpzMZlhk7Mlex77n5U2pmMmqc/0egmRWhUfQm1g==",
"dependencies": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.5.0",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/@azure/arm-search/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/arm-sql": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/@azure/arm-sql/-/arm-sql-9.0.1.tgz",
"integrity": "sha512-0ifcoSBF2l5uT6HyF3ES659dFijbCGScf3+isEt1chyXshC6pznRYeF2hy2H7ryyXPUmtCXLpAsD8gRw6AYRKA==",
"dependencies": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.5.0",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/@azure/arm-sql/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/arm-subscriptions": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@azure/arm-subscriptions/-/arm-subscriptions-5.1.0.tgz",
"integrity": "sha512-6BeOF2eQWNLq22ch7xP9RxYnPjtGev54OUCGggKOWoOvmesK7jUZbIyLk8JeXDT21PEl7iyYnxw78gxJ7zBxQw==",
"dependencies": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@azure/arm-subscriptions/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/@azure/cognitiveservices-computervision": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/@azure/cognitiveservices-computervision/-/cognitiveservices-computervision-8.2.0.tgz",
@ -30898,6 +31036,132 @@
}
}
},
"@azure/arm-appservice": {
"version": "13.0.3",
"resolved": "https://registry.npmjs.org/@azure/arm-appservice/-/arm-appservice-13.0.3.tgz",
"integrity": "sha512-Vu011o3/bikQNwtjouwmUJud+Z6Brcjij2D0omPWClRGg8i5gBfOYSpDkFGkHbhGlaky4fgvfkxD0uHGq34uYA==",
"requires": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"@azure/arm-cognitiveservices": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/@azure/arm-cognitiveservices/-/arm-cognitiveservices-7.3.1.tgz",
"integrity": "sha512-y4rT4x+nqu23Q2K75yp4gVaoRXVXXMsi6LH5LVOVDUnnNnTPE3G4/0eckAmjbbcs6jYscPgUBPmEzSTBcPcB1A==",
"requires": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"@azure/arm-resources": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@azure/arm-resources/-/arm-resources-5.1.0.tgz",
"integrity": "sha512-aZOnHfo+bt36KVSYZNbJFJM+F8QWTwRVxDjtyZG1g7su0Ok0Dgg3gyLK1GUZn3jPkNuDKm1KwZ/+E6vhB2HqCQ==",
"requires": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"@azure/arm-search": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@azure/arm-search/-/arm-search-3.0.1.tgz",
"integrity": "sha512-WxT4c6FZb5TUjjJgUgNtdxHZAYzSiopcNz4RgwnugvZ6G+LKpzMZlhk7Mlex77n5U2pmMmqc/0egmRWhUfQm1g==",
"requires": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.5.0",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"@azure/arm-sql": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/@azure/arm-sql/-/arm-sql-9.0.1.tgz",
"integrity": "sha512-0ifcoSBF2l5uT6HyF3ES659dFijbCGScf3+isEt1chyXshC6pznRYeF2hy2H7ryyXPUmtCXLpAsD8gRw6AYRKA==",
"requires": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.5.0",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"@azure/arm-subscriptions": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@azure/arm-subscriptions/-/arm-subscriptions-5.1.0.tgz",
"integrity": "sha512-6BeOF2eQWNLq22ch7xP9RxYnPjtGev54OUCGggKOWoOvmesK7jUZbIyLk8JeXDT21PEl7iyYnxw78gxJ7zBxQw==",
"requires": {
"@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.3.0",
"@azure/core-client": "^1.6.1",
"@azure/core-lro": "^2.2.0",
"@azure/core-paging": "^1.2.0",
"@azure/core-rest-pipeline": "^1.8.0",
"tslib": "^2.2.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"@azure/cognitiveservices-computervision": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/@azure/cognitiveservices-computervision/-/cognitiveservices-computervision-8.2.0.tgz",

View file

@ -50,6 +50,12 @@
"commit": "git-cz"
},
"dependencies": {
"@azure/arm-appservice": "^13.0.3",
"@azure/arm-cognitiveservices": "^7.3.1",
"@azure/arm-resources": "^5.1.0",
"@azure/arm-search": "^3.0.1",
"@azure/arm-sql": "^9.0.1",
"@azure/arm-subscriptions": "^5.1.0",
"@azure/cognitiveservices-computervision": "8.2.0",
"@azure/keyvault-keys": "4.6.0",
"@azure/ms-rest-js": "2.6.2",

View file

@ -66,45 +66,45 @@ export class GuaribasConversation extends Model<GuaribasConversation> {
@PrimaryKey
@AutoIncrement
@Column(DataType.INTEGER)
conversationId: number;
declare conversationId: number;
@ForeignKey(() => GuaribasInstance)
@Column(DataType.INTEGER)
instanceId: number;
declare instanceId: number;
@ForeignKey(() => GuaribasSubject)
@Column(DataType.INTEGER)
startSubjectId: number;
declare startSubjectId: number;
@BelongsTo(() => GuaribasSubject)
startSubject: GuaribasSubject;
declare startSubject: GuaribasSubject;
@ForeignKey(() => GuaribasChannel)
@Column(DataType.INTEGER)
channelId: string;
declare channelId: string;
@Column(DataType.DATE)
rateDate: Date;
declare rateDate: Date;
@Column(DataType.FLOAT)
rate: number;
declare rate: number;
@Column(DataType.STRING(512))
feedback: string;
declare feedback: string;
@CreatedAt
@Column(DataType.DATE)
declare createdAt: Date;
@Column(DataType.STRING(255))
text: string;
declare text: string;
@ForeignKey(() => GuaribasUser)
@Column(DataType.INTEGER)
startedByUserId: number;
declare startedByUserId: number;
@BelongsTo(() => GuaribasUser)
startedBy: GuaribasUser;
declare startedBy: GuaribasUser;
}
/**
@ -115,14 +115,14 @@ export class GuaribasConversationMessage extends Model<GuaribasConversationMessa
@PrimaryKey
@AutoIncrement
@Column(DataType.INTEGER)
conversationMessageId: number;
declare conversationMessageId: number;
@ForeignKey(() => GuaribasSubject)
@Column(DataType.INTEGER)
subjectId: number;
declare subjectId: number;
@Column(DataType.TEXT)
content: string;
declare content: string;
@Column(DataType.DATE)
@CreatedAt
@ -135,20 +135,20 @@ export class GuaribasConversationMessage extends Model<GuaribasConversationMessa
//tslint:disable-next-line:no-use-before-declare
@ForeignKey(() => GuaribasConversation)
@Column(DataType.INTEGER)
conversationId: number;
declare conversationId: number;
//tslint:disable-next-line:no-use-before-declare
@BelongsTo(() => GuaribasConversation)
conversation: GuaribasConversation;
declare conversation: GuaribasConversation;
@ForeignKey(() => GuaribasInstance)
@Column(DataType.INTEGER)
instanceId: number;
declare instanceId: number;
@ForeignKey(() => GuaribasUser)
@Column(DataType.INTEGER)
userId: number;
declare userId: number;
@BelongsTo(() => GuaribasUser)
user: GuaribasUser;
declare user: GuaribasUser;
}

View file

@ -59,7 +59,7 @@ export class GuaribasInstance extends Model<GuaribasInstance> implements IGBInst
@PrimaryKey
@AutoIncrement
@Column(DataType.INTEGER)
instanceId: number;
declare instanceId: number;
@Column(DataType.STRING(255))
declare botEndpoint: string;

View file

@ -651,7 +651,7 @@ export class GBMinService {
min.sandBoxMap = {};
min['scheduleMap'] = {};
min['conversationWelcomed'] = {};
min['nerEngine'] = new nlp.default.NerManager();
min['nerEngine'] = new nlp.NlpManager(); // TODO: migrate to MerManager.
min.packages = sysPackages;
min.appPackages = appPackages;
@ -712,16 +712,18 @@ export class GBMinService {
await min.whatsAppDirectLine.setup(true);
} else {
const minBoot = GBServer.globals.minBoot as any;
min.whatsAppDirectLine = new WhatsappDirectLine(
min,
min.botId,
min.instance.whatsappBotKey,
minBoot.instance.whatsappServiceKey,
minBoot.instance.whatsappServiceNumber,
minBoot.instance.whatsappServiceUrl,
group
);
await min.whatsAppDirectLine.setup(false);
if(minBoot.whatsappServiceKey){
min.whatsAppDirectLine = new WhatsappDirectLine(
min,
min.botId,
min.instance.whatsappBotKey,
minBoot.instance.whatsappServiceKey,
minBoot.instance.whatsappServiceNumber,
minBoot.instance.whatsappServiceUrl,
group
);
await min.whatsAppDirectLine.setup(false);
}
}
// Setups default BOT Framework dialogs.

File diff suppressed because it is too large Load diff

View file

@ -58,47 +58,47 @@ export class GuaribasUser extends Model<GuaribasUser> {
@PrimaryKey
@AutoIncrement
@Column(DataType.INTEGER)
userId: number;
declare userId: number;
@Column(DataType.STRING(255))
displayName: string;
declare displayName: string;
@Column(DataType.STRING(255))
userSystemId: string;
declare userSystemId: string;
@Column(DataType.STRING(255))
declare userName: string;
@Column(DataType.STRING(255))
userName: string;
declare defaultChannel: string;
@Column(DataType.STRING(255))
defaultChannel: string;
@Column(DataType.STRING(255))
email: string;
declare email: string;
@Column(DataType.STRING(5))
locale: string;
declare locale: string;
@ForeignKey(() => GuaribasInstance)
@Column(DataType.INTEGER)
instanceId: number;
declare instanceId: number;
@BelongsTo(() => GuaribasInstance)
instance: GuaribasInstance;
declare instance: GuaribasInstance;
@Column(DataType.INTEGER)
agentSystemId: string;
declare agentSystemId: string;
@Column(DataType.DATE)
agentContacted: Date;
declare agentContacted: Date;
@Column(DataType.STRING(16))
agentMode: string;
declare agentMode: string;
@Column(DataType.TEXT)
conversationReference: string;
declare conversationReference: string;
@Column(DataType.STRING(64))
hearOnDialog: string;
declare hearOnDialog: string;
}
/**
@ -109,18 +109,18 @@ export class GuaribasGroup extends Model<GuaribasGroup> {
@PrimaryKey
@AutoIncrement
@Column(DataType.INTEGER)
groupId: number;
declare groupId: number;
@Length({ min: 0, max: 512 })
@Column(DataType.STRING(512))
displayName: string;
declare displayName: string;
@ForeignKey(() => GuaribasInstance)
@Column(DataType.INTEGER)
instanceId: number;
declare instanceId: number;
@BelongsTo(() => GuaribasInstance)
instance: GuaribasInstance;
declare instance: GuaribasInstance;
}
/**
@ -130,22 +130,22 @@ export class GuaribasGroup extends Model<GuaribasGroup> {
export class GuaribasUserGroup extends Model<GuaribasUserGroup> {
@ForeignKey(() => GuaribasUser)
@Column(DataType.INTEGER)
userId: number;
declare userId: number;
@ForeignKey(() => GuaribasGroup)
@Column(DataType.INTEGER)
groupId: number;
declare groupId: number;
@ForeignKey(() => GuaribasInstance)
@Column(DataType.INTEGER)
instanceId: number;
declare instanceId: number;
@BelongsTo(() => GuaribasInstance)
instance: GuaribasInstance;
declare instance: GuaribasInstance;
@BelongsTo(() => GuaribasGroup)
group: GuaribasGroup;
declare group: GuaribasGroup;
@BelongsTo(() => GuaribasUser)
user: GuaribasUser;
declare user: GuaribasUser;
}

View file

@ -94,8 +94,15 @@ export class GBServer {
server.use(bodyParser.json());
server.use(bodyParser.urlencoded({ extended: true }));
process.on('unhandledRejection', (err, p) => {
console.log('An unhandledRejection occurred');
console.log(`Rejected Promise: ${p}`);
console.log(`Rejection: ${err}`);
});
// Creates working directory.
process.env.PWD = process.cwd();
const workDir = Path.join(process.env.PWD, 'work');
if (!Fs.existsSync(workDir)) {
mkdirp.sync(workDir);