From d3348591dd12df52f1b9373d27033de7a71a7dd7 Mon Sep 17 00:00:00 2001 From: Dimitrios Gkegkas Date: Wed, 8 Dec 2021 11:57:12 +0200 Subject: [PATCH 1/6] Viber User Loader --- packages/framework/lib/index.ts | 4 ++- .../framework/lib/interfaces/trackingData.ts | 6 +--- packages/viber-adapter/lib/adapter.ts | 32 +++++++++++++------ 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/packages/framework/lib/index.ts b/packages/framework/lib/index.ts index 2fcbc3f..b53b50c 100644 --- a/packages/framework/lib/index.ts +++ b/packages/framework/lib/index.ts @@ -12,6 +12,7 @@ import Bot from './bot'; import User from './models/User'; import DatabaseUser, { userLoader as databaseUserLoader } from './models/DatabaseUser'; import InMemoryUser, { userLoader as inMemoryUserLoader } from './models/InMemoryUser'; +import { IUser } from './models/UserSchema'; import GenericAdapter from './adapter'; import TestAdapter from './tests/test-adapter'; export { Module, BotOptions, Scenario } from './interfaces/bot'; @@ -33,5 +34,6 @@ export { databaseUserLoader, InMemoryUser, inMemoryUserLoader, - TestAdapter + TestAdapter, + IUser }; diff --git a/packages/framework/lib/interfaces/trackingData.ts b/packages/framework/lib/interfaces/trackingData.ts index 86910fa..86f58e1 100644 --- a/packages/framework/lib/interfaces/trackingData.ts +++ b/packages/framework/lib/interfaces/trackingData.ts @@ -1,5 +1 @@ -export type TrackingDataPrimitives = null | string | number | boolean; -export type ITrackingData = - | TrackingDataPrimitives - | Array - | { [key: string]: ITrackingData }; +export type ITrackingData = Record | string; diff --git a/packages/viber-adapter/lib/adapter.ts b/packages/viber-adapter/lib/adapter.ts index bb9a221..c0b6e3c 100644 --- a/packages/viber-adapter/lib/adapter.ts +++ b/packages/viber-adapter/lib/adapter.ts @@ -14,13 +14,14 @@ import { import { isPostbackTrackingData } from './interfaces/tracking_data'; import { ITrackingData } from '@ebenos/framework'; -export interface IViberOptions { +export interface IViberOptions { route?: string; authToken: string; welcomeMessage?: Record; + userLoader?: (userData: IUser) => Promise; } -export default class ViberAdapter extends GenericAdapter { +export default class ViberAdapter extends GenericAdapter { public operations = { handover: (): Promise => { console.log('Not implemented!'); @@ -34,22 +35,29 @@ export default class ViberAdapter extends GenericAdapter { private route: string; private authToken: string; public webhook = express(); + private userLoader?: (userData: IUser) => Promise; - constructor(options: IViberOptions) { + constructor(options: IViberOptions) { super(); - const { route = '/viber/webhook', authToken, welcomeMessage } = options; + const { route = '/viber/webhook', authToken, welcomeMessage, userLoader } = options; this.route = route; this.authToken = authToken; this.sender = senderFactory(this.authToken); this.welcomeMessage = welcomeMessage; + this.userLoader = userLoader; } - public initialization(): void { + public async initialization(): Promise { this.webhook.use(bodyParser()); this.webhook.post( this.route, - viberWebhookFactory(this.routers, this.handlers, this.welcomeMessage) + await viberWebhookFactory( + this.routers, + this.handlers, + this.welcomeMessage, + this.userLoader + ) ); } @@ -110,13 +118,17 @@ function handleTextMessage( return; } -function viberWebhookFactory( +async function viberWebhookFactory( routers: IRouters, handlers: EbonyHandlers, - welcomeMessage?: Record + welcomeMessage?: Record, + userLoader?: (userData: IUser) => Promise ) { - function messageWebhook(e: IViberMessageEvent): void { - const user = convertViberSenderToUser(e.sender); + async function messageWebhook(e: IViberMessageEvent): Promise { + const user = userLoader + ? await userLoader(convertViberSenderToUser(e.sender)) + : convertViberSenderToUser(e.sender); + switch (e.message.type) { case 'text': case 'location': From 884bd8a6fae33e90043c85b4ade4672c7ac40a92 Mon Sep 17 00:00:00 2001 From: Dimitrios Gkegkas Date: Tue, 21 Dec 2021 12:28:37 +0200 Subject: [PATCH 2/6] Fixies --- packages/framework/lib/interfaces/nlp.ts | 13 ++++--- packages/framework/lib/modules/index.ts | 2 +- packages/viber-adapter/lib/adapter.ts | 45 +++++++++++++++++++----- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/packages/framework/lib/interfaces/nlp.ts b/packages/framework/lib/interfaces/nlp.ts index 34b8747..c9d4d74 100644 --- a/packages/framework/lib/interfaces/nlp.ts +++ b/packages/framework/lib/interfaces/nlp.ts @@ -1,11 +1,16 @@ export interface WitNLP { - entities: { - intent?: WitEntityNLP[]; - sentiment?: WitEntityNLP[]; - }; + text: string; + intents: WitIntentNLP[]; + entities: any; } export interface WitEntityNLP { value: string; confidence: number; } + +export interface WitIntentNLP { + id: string; + name: string; + confidence: number; +} diff --git a/packages/framework/lib/modules/index.ts b/packages/framework/lib/modules/index.ts index 8ce5da4..78957f5 100644 --- a/packages/framework/lib/modules/index.ts +++ b/packages/framework/lib/modules/index.ts @@ -79,7 +79,7 @@ export function addBaseLocationRule>( export function addTextRule>( module: Module, - action: (user: U, payload?: IPayload, ...args: any[]) => Promise, + action: (user: U, payload: IPayload, ...args: any[]) => Promise, rule: RegExp | RegExp[] ): void { const actionName = module.name + '/' + action.name; diff --git a/packages/viber-adapter/lib/adapter.ts b/packages/viber-adapter/lib/adapter.ts index c0b6e3c..7823e40 100644 --- a/packages/viber-adapter/lib/adapter.ts +++ b/packages/viber-adapter/lib/adapter.ts @@ -2,23 +2,36 @@ import { EbonyHandlers, GenericAdapter, GenericAttachment, IRouters } from '@ebe import express, { Request, Response } from 'express'; import { json as bodyParser } from 'body-parser'; import senderFactory from './sender'; -import { IViberMessageEvent, IViberSender, WebhookIncomingViberEvent } from './interfaces/webhook'; +import { + IViberMessageEvent, + IViberSender, + WebhookIncomingViberEvent, + IViberUnsubscribedEvent, + IViberSubscribedEvent, + IViberConversationStartedEvent +} from './interfaces/webhook'; import { setWebhook } from './api/requests'; import { IViberSetWebhookResult } from './interfaces/api'; -import { IUser } from '@ebenos/framework/lib/models/UserSchema'; import { isMediaMessage, IViberLocationMessage, IViberTextMessage } from './interfaces/message_types'; import { isPostbackTrackingData } from './interfaces/tracking_data'; -import { ITrackingData } from '@ebenos/framework'; +import { ITrackingData, IUser } from '@ebenos/framework'; export interface IViberOptions { route?: string; authToken: string; welcomeMessage?: Record; userLoader?: (userData: IUser) => Promise; + webhookHanlers?: IViberWebhookHandlers; +} + +export interface IViberWebhookHandlers { + unsubscribeWebhook?: (e: IViberUnsubscribedEvent) => Promise; + subscribeWebhook?: (e: IViberSubscribedEvent) => Promise; + conversationStartedWebhook?: (e: IViberConversationStartedEvent) => Promise; } export default class ViberAdapter extends GenericAdapter { @@ -32,6 +45,7 @@ export default class ViberAdapter extends GenericAdapter { public sender; private welcomeMessage?: Record; + private webhookHanlers?: IViberWebhookHandlers; private route: string; private authToken: string; public webhook = express(); @@ -39,13 +53,20 @@ export default class ViberAdapter extends GenericAdapter { constructor(options: IViberOptions) { super(); - const { route = '/viber/webhook', authToken, welcomeMessage, userLoader } = options; + const { + route = '/viber/webhook', + authToken, + welcomeMessage, + userLoader, + webhookHanlers + } = options; this.route = route; this.authToken = authToken; this.sender = senderFactory(this.authToken); this.welcomeMessage = welcomeMessage; this.userLoader = userLoader; + this.webhookHanlers = webhookHanlers; } public async initialization(): Promise { @@ -56,7 +77,8 @@ export default class ViberAdapter extends GenericAdapter { this.routers, this.handlers, this.welcomeMessage, - this.userLoader + this.userLoader, + this.webhookHanlers ) ); } @@ -122,7 +144,12 @@ async function viberWebhookFactory( routers: IRouters, handlers: EbonyHandlers, welcomeMessage?: Record, - userLoader?: (userData: IUser) => Promise + userLoader?: (userData: IUser) => Promise, + webhooks?: { + unsubscribeWebhook?: (e: IViberUnsubscribedEvent) => Promise; + subscribeWebhook?: (e: IViberSubscribedEvent) => Promise; + conversationStartedWebhook?: (e: IViberConversationStartedEvent) => Promise; + } ) { async function messageWebhook(e: IViberMessageEvent): Promise { const user = userLoader @@ -134,7 +161,6 @@ async function viberWebhookFactory( case 'location': handleTextMessage(e.message, user, handlers.text, routers); return; - default: if (isMediaMessage(e.message)) { if (handlers.attachment !== undefined) { @@ -164,6 +190,7 @@ async function viberWebhookFactory( console.log('seen'); return; case 'conversation_started': + if (webhooks?.conversationStartedWebhook) webhooks.conversationStartedWebhook(body); console.log('conversation_started'); if (welcomeMessage !== undefined) { res.json(welcomeMessage); @@ -175,10 +202,12 @@ async function viberWebhookFactory( console.log('delivered'); return; case 'subscribed': + if (webhooks?.subscribeWebhook) webhooks.subscribeWebhook(body); console.log('subscribed'); return; case 'unsubscribed': - console.log('unsubscribed'); + if (webhooks?.unsubscribeWebhook) webhooks.unsubscribeWebhook(body); + else console.log('unsubscribed'); return; case 'failed': console.log(`Failed: ${body.desc}`); From 0514296be600e08235be9b06c90a3fa81e75de3b Mon Sep 17 00:00:00 2001 From: Dimitrios Gkegkas Date: Wed, 29 Dec 2021 14:22:01 +0200 Subject: [PATCH 3/6] v4.0.0-alpha.30 --- packages/framework/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/framework/package.json b/packages/framework/package.json index ce62e35..d4e98b4 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -1,6 +1,6 @@ { - "name": "@ebenos/framework", - "version": "4.0.0-alpha.29", + "name": "@ebonydevcopy/framework", + "version": "4.0.0-alpha.30", "description": "A module-based NodeJS chatbot framework.", "main": "./build/index.js", "types": "./build/index.d.ts", From 613cbf8df3446f6163b0b13576007de9a22b30d3 Mon Sep 17 00:00:00 2001 From: Dimitrios Gkegkas Date: Wed, 29 Dec 2021 14:36:22 +0200 Subject: [PATCH 4/6] v4.0.0-alpha.31 --- packages/viber-adapter/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/viber-adapter/package.json b/packages/viber-adapter/package.json index 2bf035d..ca1c388 100644 --- a/packages/viber-adapter/package.json +++ b/packages/viber-adapter/package.json @@ -1,6 +1,6 @@ { - "name": "@ebenos/viber-adapter", - "version": "4.0.0-alpha.29", + "name": "@ebonydevcopy/viber-adapter", + "version": "4.0.0-alpha.31", "description": "Viber adapter for the Ebony framework.", "main": "./build/index.js", "publishConfig": { @@ -33,7 +33,7 @@ "node-fetch": "^2.6.6" }, "devDependencies": { - "@ebenos/framework": "^4.0.0-alpha.29", + "@ebonydevcopy/framework": "^4.0.0-alpha.29", "@types/body-parser": "^1.19.2", "@types/express": "^4.17.13", "@types/node-fetch": "^2.5.12" From 0823f010b6ca69784ee71463b6273a8d5c9ee456 Mon Sep 17 00:00:00 2001 From: Dimitrios Gkegkas Date: Wed, 29 Dec 2021 14:36:53 +0200 Subject: [PATCH 5/6] v4.0.0-alpha.31 --- packages/viber-elements/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/viber-elements/package.json b/packages/viber-elements/package.json index b1d8dc1..8bf6df1 100644 --- a/packages/viber-elements/package.json +++ b/packages/viber-elements/package.json @@ -1,6 +1,6 @@ { - "name": "@ebenos/viber-elements", - "version": "4.0.0-alpha.29", + "name": "@ebonydevcopy/viber-elements", + "version": "4.0.0-alpha.31", "description": "Elements Library for the Ebony framework.", "main": "./build/index.js", "publishConfig": { @@ -29,10 +29,10 @@ ], "license": "MIT", "peerDependencies": { - "@ebenos/framework": "*" + "@ebonydevcopy/framework": "*" }, "devDependencies": { - "@ebenos/framework": "^4.0.0-alpha.29" + "@ebonydevcopy/framework": "^4.0.0-alpha.29" }, "engines": { "node": ">=14.0.0" From e42ce24e230d98cbe8aeeb8f0368b5c6a9f6ccf5 Mon Sep 17 00:00:00 2001 From: Dimitrios Gkegkas Date: Mon, 28 Feb 2022 12:22:45 +0200 Subject: [PATCH 6/6] Change name of copy ebony package --- package.json | 2 +- packages/viber-adapter/lib/adapter.ts | 9 ++- packages/viber-adapter/lib/sender.ts | 2 +- .../lib/viberAPI/attachments.ts | 2 +- .../viber-elements/lib/viberAPI/carousel.ts | 2 +- .../viber-elements/lib/viberAPI/interfaces.ts | 2 +- .../viber-elements/lib/viberAPI/keyboard.ts | 2 +- .../viber-elements/lib/viberAPI/message.ts | 4 +- yarn.lock | 59 ++++++++++++++++++- 9 files changed, 73 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 5b601fb..6b063e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ebenos/monorepo", - "version": "3.1.0", + "version": "3.1.1", "main": "index.js", "license": "MIT", "private": true, diff --git a/packages/viber-adapter/lib/adapter.ts b/packages/viber-adapter/lib/adapter.ts index 7823e40..8061237 100644 --- a/packages/viber-adapter/lib/adapter.ts +++ b/packages/viber-adapter/lib/adapter.ts @@ -1,4 +1,9 @@ -import { EbonyHandlers, GenericAdapter, GenericAttachment, IRouters } from '@ebenos/framework'; +import { + EbonyHandlers, + GenericAdapter, + GenericAttachment, + IRouters +} from '@ebonydevcopy/framework'; import express, { Request, Response } from 'express'; import { json as bodyParser } from 'body-parser'; import senderFactory from './sender'; @@ -18,7 +23,7 @@ import { IViberTextMessage } from './interfaces/message_types'; import { isPostbackTrackingData } from './interfaces/tracking_data'; -import { ITrackingData, IUser } from '@ebenos/framework'; +import { ITrackingData, IUser } from '@ebonydevcopy/framework'; export interface IViberOptions { route?: string; diff --git a/packages/viber-adapter/lib/sender.ts b/packages/viber-adapter/lib/sender.ts index aaa878c..9895775 100644 --- a/packages/viber-adapter/lib/sender.ts +++ b/packages/viber-adapter/lib/sender.ts @@ -1,4 +1,4 @@ -import { IInteraction } from '@ebenos/framework'; +import { IInteraction } from '@ebonydevcopy/framework'; import { sendMessage } from './api/requests'; export default function senderFactory(viberToken: string) { diff --git a/packages/viber-elements/lib/viberAPI/attachments.ts b/packages/viber-elements/lib/viberAPI/attachments.ts index df1ee2c..2d9ef40 100644 --- a/packages/viber-elements/lib/viberAPI/attachments.ts +++ b/packages/viber-elements/lib/viberAPI/attachments.ts @@ -17,7 +17,7 @@ import { OpenURLMediaType, ISerializedButton } from './interfaces'; -import { ISerializable } from '@ebenos/framework'; +import { ISerializable } from '@ebonydevcopy/framework'; /**Viber RichMedia Button */ export class Button implements ISerializable { diff --git a/packages/viber-elements/lib/viberAPI/carousel.ts b/packages/viber-elements/lib/viberAPI/carousel.ts index b5ef24b..a7da9f7 100644 --- a/packages/viber-elements/lib/viberAPI/carousel.ts +++ b/packages/viber-elements/lib/viberAPI/carousel.ts @@ -1,6 +1,6 @@ import { Button, RichMedia } from './attachments'; import { IFrame, IRichMediaOptions } from './interfaces'; -import { ISerializable } from '@ebenos/framework'; +import { ISerializable } from '@ebonydevcopy/framework'; export interface ICarouselElement { title?: string; diff --git a/packages/viber-elements/lib/viberAPI/interfaces.ts b/packages/viber-elements/lib/viberAPI/interfaces.ts index 127248f..5ca8929 100644 --- a/packages/viber-elements/lib/viberAPI/interfaces.ts +++ b/packages/viber-elements/lib/viberAPI/interfaces.ts @@ -1,7 +1,7 @@ import { RichMedia, Picture, Button } from './attachments'; import { Carousel } from './carousel'; import { Keyboard } from './keyboard'; -import { ITrackingData } from '@ebenos/framework'; +import { ITrackingData } from '@ebonydevcopy/framework'; export type ScaleType = 'crop' | 'fill' | 'fit'; export type ActionType = 'reply' | 'open-url' | 'location-picker' | 'share-phone' | 'none'; diff --git a/packages/viber-elements/lib/viberAPI/keyboard.ts b/packages/viber-elements/lib/viberAPI/keyboard.ts index 3af8f59..e170f61 100644 --- a/packages/viber-elements/lib/viberAPI/keyboard.ts +++ b/packages/viber-elements/lib/viberAPI/keyboard.ts @@ -1,4 +1,4 @@ -import { ISerializable } from '@ebenos/framework'; +import { ISerializable } from '@ebonydevcopy/framework'; import { Button } from './attachments'; import { IKeyboardOptions, InputFieldState, ISerializedKeyboard } from './interfaces'; diff --git a/packages/viber-elements/lib/viberAPI/message.ts b/packages/viber-elements/lib/viberAPI/message.ts index 72b8201..090fe5f 100644 --- a/packages/viber-elements/lib/viberAPI/message.ts +++ b/packages/viber-elements/lib/viberAPI/message.ts @@ -1,4 +1,4 @@ -import { ISerializable } from '@ebenos/framework'; +import { ISerializable } from '@ebonydevcopy/framework'; import { IMessageOptions, ISender, @@ -12,7 +12,7 @@ import { import { Picture, RichMedia } from './attachments'; import { Keyboard } from './keyboard'; import { Carousel } from './carousel'; -import { ITrackingData } from '@ebenos/framework'; +import { ITrackingData } from '@ebonydevcopy/framework'; function isText(options: IMessageOptions): options is ITextOptions { return (options as ITextOptions).text !== undefined; diff --git a/yarn.lock b/yarn.lock index d75c828..3e1caf4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,6 +23,24 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@ebenos/framework@^4.0.0-alpha.29": + version "4.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/@ebenos/framework/-/framework-4.0.0-alpha.29.tgz#966f8535dd7d7abcdb2de5ea4bcad4bac371d6bc" + integrity sha512-P+9RDnP2AZNCGGY0QNY+WMEfTGOWSGuhnjJ0IKNdhGk+Pvp8bDRZ329BHuIYE5KjUajOZbY/pTvnys3smu7Zrw== + dependencies: + lodash "^4.17.21" + mongodb "^4.2.0" + mongoose "^6.0.13" + +"@ebenos/viber-adapter@^4.0.0-alpha.29": + version "4.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/@ebenos/viber-adapter/-/viber-adapter-4.0.0-alpha.29.tgz#b849d77f6604b2156156f12f5de2dc3ab4db9048" + integrity sha512-hhaf3c05kI7txUF5dbWFsN9Om0CobhAs82KFfo1Hsxvwk4QboOX6Bgklv2lzvWj2szV4HGUskeQPp0BINIx8bw== + dependencies: + body-parser "^1.19.0" + express "^4.17.1" + node-fetch "^2.6.6" + "@eslint/eslintrc@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" @@ -1414,7 +1432,7 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -bson@^4.2.2, bson@^4.5.4: +bson@^4.2.2, bson@^4.5.4, bson@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/bson/-/bson-4.6.0.tgz#15c3b39ba3940c3d915a0c44d51459f4b4fbf1b2" integrity sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ== @@ -3328,6 +3346,11 @@ kareem@2.3.2: resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.2.tgz#78c4508894985b8d38a0dc15e1a8e11078f2ca93" integrity sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ== +kareem@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.3.tgz#a4432d7965a5bb06fc2b4eeae71317344c9a756a" + integrity sha512-uESCXM2KdtOQ8LOvKyTUXEeg0MkYp4wGglTIpGcYHvjJcS5sn2Wkfrfit8m4xSbaNDAw2KdI9elgkOxZbrFYbg== + kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -3800,6 +3823,14 @@ mongodb-connection-string-url@^2.1.0, mongodb-connection-string-url@^2.2.0: "@types/whatwg-url" "^8.2.1" whatwg-url "^11.0.0" +mongodb-connection-string-url@^2.3.2: + version "2.4.1" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz#6b3c6c40133a0ad059fe9a0abda64b2a1cb4e8b4" + integrity sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + mongodb@4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.1.4.tgz#ba8062c7c67e7a22db5a059dbac1e3044b48453b" @@ -3811,6 +3842,17 @@ mongodb@4.1.4: optionalDependencies: saslprep "^1.0.3" +mongodb@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.2.2.tgz#cd70568bd96003877e35358ad17a0c5de35c6dfd" + integrity sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug== + dependencies: + bson "^4.6.0" + denque "^2.0.1" + mongodb-connection-string-url "^2.3.2" + optionalDependencies: + saslprep "^1.0.3" + mongodb@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.2.0.tgz#7ef94ab0613a2fd890763260fdac20cd099d0d7f" @@ -3822,6 +3864,21 @@ mongodb@^4.2.0: optionalDependencies: saslprep "^1.0.3" +mongoose@^6.0.13: + version "6.1.4" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.1.4.tgz#a414e64c849fae3ced99348e9de73f986c9f0551" + integrity sha512-RsNiMpGWo7OXFmq5xt0ZWYt2rabHLxNYr0oAiR0xDv23lHKCkXDqyDl71+sXF9rcWEe8BTHG+1IRQykiNBvaKQ== + dependencies: + bson "^4.2.2" + kareem "2.3.3" + mongodb "4.2.2" + mpath "0.8.4" + mquery "4.0.0" + ms "2.1.2" + regexp-clone "1.0.0" + sift "13.5.2" + sliced "1.0.1" + mongoose@^6.0.14: version "6.0.14" resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.0.14.tgz#8f4d45318bb5de08814a8a9b040dd53521246608"