diff --git a/package-lock.json b/package-lock.json index 5f5886e1..0e15d8d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "botserver", - "version": "2.0.176", + "version": "2.0.178", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -8361,6 +8361,34 @@ "restore-cursor": "^3.1.0" } }, + "cli-progress": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", + "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "requires": { + "string-width": "^4.2.3" + }, + "dependencies": { + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "cli-spinner": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz", diff --git a/package.json b/package.json index adfc3b92..ad2dc5d8 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "botframework-connector": "4.11.0", "botlib": "1.10.9", "c3-chart-maker": "^0.2.8", + "cli-progress": "^3.11.2", "cli-spinner": "0.2.10", "core-js": "3.14.0", "data-forge": "^1.9.5", diff --git a/packages/basic.gblib/services/ScheduleServices.ts b/packages/basic.gblib/services/ScheduleServices.ts index 4436cfa1..185aa030 100644 --- a/packages/basic.gblib/services/ScheduleServices.ts +++ b/packages/basic.gblib/services/ScheduleServices.ts @@ -112,7 +112,7 @@ export class ScheduleServices extends GBService { try { const options = { where: { instanceId: min.instance.instanceId } }; schedules = await GuaribasSchedule.findAll(options); - GBLog.info(`Loading schedules for ${min.instance.botId}...`); + GBLog.verbose(`Loading schedules for ${min.instance.botId}...`); await CollectionUtil.asyncForEach(schedules, async item => { this.ScheduleItem(item, min); }); diff --git a/packages/core.gbapp/services/GBDeployer.ts b/packages/core.gbapp/services/GBDeployer.ts index 9cdc7d78..6ff22114 100644 --- a/packages/core.gbapp/services/GBDeployer.ts +++ b/packages/core.gbapp/services/GBDeployer.ts @@ -647,7 +647,7 @@ export class GBDeployer implements IGBDeployer { const packageName = Path.basename(localPath); GBServer.globals.server.use(`/themes/${packageName}`, express.static(localPath)); - GBLog.info(`Theme (.gbtheme) assets accessible at: /themes/${packageName}.`); + GBLog.verbose(`Theme (.gbtheme) assets accessible at: /themes/${packageName}.`); break; @@ -848,7 +848,7 @@ export class GBDeployer implements IGBDeployer { - GBLog.info(`KB (.gbkb) assets accessible at: /kb/${botId}.gbai/${packageName}.`); + GBLog.verbose(`KB (.gbkb) assets accessible at: /kb/${botId}.gbai/${packageName}.`); } /** diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 43dad8b4..fbf190ce 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -35,6 +35,7 @@ */ 'use strict'; +const cliProgress = require('cli-progress'); const { DialogSet, TextPrompt } = require('botbuilder-dialogs'); const express = require('express'); const Fs = require('fs'); @@ -169,21 +170,24 @@ export class GBMinService { // Calls mountBot event to all bots. - + + const bar1 = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic); + let i = 0; + bar1.start(100, i); + await CollectionUtil.asyncForEach(instances, async instance => { try { + bar1.update(i); + await this.mountBot(instance); + GBDeployer.mountGBKBAssets(`${instance.botId}.gbkb`, + instance.botId, `${instance.botId}.gbkb`); } catch (error) { GBLog.error(`Error mounting bot ${instance.botId}: ${error.message}\n${error.stack}`); } }); + bar1.stop(); - // Then all remaining general packages are loaded. - - await CollectionUtil.asyncForEach(instances, async instance => { - GBDeployer.mountGBKBAssets(`${instance.botId}.gbkb`, - instance.botId, `${instance.botId}.gbkb`); - }); GBLog.info(`Package deployment done.`); } @@ -310,9 +314,9 @@ export class GBMinService { domain, express.static(urlJoin(GBDeployer.deployFolder, GBMinService.uiPackage, 'build')) ); - GBLog.info(`Bot UI ${GBMinService.uiPackage} accessible at custom domain: ${domain}.`); + GBLog.verbose(`Bot UI ${GBMinService.uiPackage} accessible at custom domain: ${domain}.`); } - GBLog.info(`Bot UI ${GBMinService.uiPackage} accessible at: ${uiUrl} and ${uiUrlAlt}.`); + GBLog.verbose(`Bot UI ${GBMinService.uiPackage} accessible at: ${uiUrl} and ${uiUrlAlt}.`); } // Clients get redirected here in order to create an OAuth authorize url and redirect them to AAD.