From 36f7be148dc21fb19256a75b2d0098d670f67593 Mon Sep 17 00:00:00 2001 From: Corina Gum <> Date: Wed, 21 Feb 2024 14:47:21 -0800 Subject: [PATCH] Remove eslint security plugin and add express for integration tests --- js/.eslintrc | 1 - js/package.json | 2 +- js/packages/teams-ai/src/AI.ts | 1 - js/packages/teams-ai/src/AdaptiveCards.ts | 2 - js/packages/teams-ai/src/Application.ts | 10 - js/packages/teams-ai/src/TaskModules.ts | 14 +- js/packages/teams-ai/src/TeamsAdapter.spec.ts | 2 +- js/packages/teams-ai/src/TurnStateProperty.ts | 1 - .../src/authentication/Authentication.ts | 1 - .../BotAuthenticationBase.spec.ts | 1 - .../authentication/BotAuthenticationBase.ts | 1 - .../OAuthBotAuthentication.spec.ts | 1 - .../moderators/AzureContentSafetyModerator.ts | 3 - .../src/moderators/OpenAIModerator.ts | 1 - js/samples/01.messaging.a.echoBot/.eslintrc | 2 - .../.eslintrc | 2 - .../03.adaptiveCards.a.typeAheadBot/.eslintrc | 2 - .../src/index.ts | 1 - js/samples/04.ai.a.teamsChefBot/.eslintrc | 2 - .../61ca821a-da4f-4879-9085-543f00557900.txt | 1 - .../04.ai.b.messageExtensions.AI-ME/.eslintrc | 2 - .../04.ai.c.actionMapping.lightBot/.eslintrc | 2 - .../src/responses.ts | 1 - .../04.ai.d.chainedActions.listBot/.eslintrc | 2 - .../src/index.ts | 1 - .../src/responses.ts | 1 - .../.eslintrc | 2 - .../src/responses.ts | 1 - js/samples/04.ai.f.vision.cardGazer/.eslintrc | 2 - js/samples/04.e.twentyQuestions/.eslintrc | 2 - .../04.e.twentyQuestions/src/responses.ts | 1 - js/samples/05.chatModeration/.eslintrc | 2 - js/samples/05.chatModeration/src/bot.ts | 1 - js/samples/06.assistants.a.mathBot/.eslintrc | 2 - js/samples/06.assistants.b.orderBot/.eslintrc | 2 - .../06.auth.oauth.adaptiveCard/.eslintrc | 2 - js/samples/06.auth.oauth.bot/.eslintrc | 2 - .../06.auth.oauth.messageExtension/.eslintrc | 2 - js/samples/06.auth.teamsSSO.bot/.eslintrc | 2 - .../.eslintrc | 2 - js/samples/07.whoBot/.eslintrc | 2 - js/yarn.lock | 309 ++++++++++++++++-- 42 files changed, 288 insertions(+), 108 deletions(-) diff --git a/js/.eslintrc b/js/.eslintrc index b38e6f31c..c2b35159f 100644 --- a/js/.eslintrc +++ b/js/.eslintrc @@ -14,7 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": ["@typescript-eslint", "jsdoc", "mocha", "only-warn", "prettier"], diff --git a/js/package.json b/js/package.json index df09c5617..4c07dec16 100644 --- a/js/package.json +++ b/js/package.json @@ -41,8 +41,8 @@ "eslint-plugin-mocha": "^10.2.0", "eslint-plugin-only-warn": "^1.1.0", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-security": "^1.7.1", "exorcist": "^2.0.0", + "express": "^4.18.2", "mocha": "^10.3.0", "mocha-junit-reporter": "^2.0.0", "ms-rest-azure": "^3.0.2", diff --git a/js/packages/teams-ai/src/AI.ts b/js/packages/teams-ai/src/AI.ts index 938730784..39be9c42e 100644 --- a/js/packages/teams-ai/src/AI.ts +++ b/js/packages/teams-ai/src/AI.ts @@ -499,7 +499,6 @@ export class AI { break; } - // eslint-disable-next-line security/detect-object-injection let output: string; const cmd = plan.commands[i]; switch (cmd.type) { diff --git a/js/packages/teams-ai/src/AdaptiveCards.ts b/js/packages/teams-ai/src/AdaptiveCards.ts index 3bd4dc689..42e0c15a1 100644 --- a/js/packages/teams-ai/src/AdaptiveCards.ts +++ b/js/packages/teams-ai/src/AdaptiveCards.ts @@ -5,8 +5,6 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ -// TODO: -/* eslint-disable security/detect-object-injection */ import { TurnContext, ActivityTypes, diff --git a/js/packages/teams-ai/src/Application.ts b/js/packages/teams-ai/src/Application.ts index 40f7ae039..e901bf0d2 100644 --- a/js/packages/teams-ai/src/Application.ts +++ b/js/packages/teams-ai/src/Application.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ /** * @module teams-ai */ @@ -707,8 +706,6 @@ export class Application { // Invoke Activities from Teams need to be responded to in less than 5 seconds. if (context.activity.type === ActivityTypes.Invoke) { for (let i = 0; i < this._invokeRoutes.length; i++) { - // TODO: fix security/detect-object-injection - // eslint-disable-next-line security/detect-object-injection const route = this._invokeRoutes[i]; if (await route.selector(context)) { // Execute route handler @@ -728,8 +725,6 @@ export class Application { // All other ActivityTypes and any unhandled Invokes are run through the remaining routes. for (let i = 0; i < this._routes.length; i++) { - // TODO: - // eslint-disable-next-line security/detect-object-injection const route = this._routes[i]; if (await route.selector(context)) { // Execute route handler @@ -835,8 +830,6 @@ export class Application { // Listen for any messages to be sent from the bot if (timerRunning) { for (let i = 0; i < activities.length; i++) { - // TODO: - // eslint-disable-next-line security/detect-object-injection if (activities[i].type == ActivityTypes.Message) { // Stop the timer this.stopTypingTimer(); @@ -957,8 +950,6 @@ export class Application { handlers: ApplicationEventHandler[] ): Promise { for (let i = 0; i < handlers.length; i++) { - // TODO: - // eslint-disable-next-line security/detect-object-injection const continueExecution = await handlers[i](context, state); if (!continueExecution) { return false; @@ -991,7 +982,6 @@ export class Application { try { // Copy original activity to new context for (const key in context.activity) { - // eslint-disable-next-line security/detect-object-injection (ctx.activity as any)[key] = (context.activity as any)[key]; } diff --git a/js/packages/teams-ai/src/TaskModules.ts b/js/packages/teams-ai/src/TaskModules.ts index 31e35dbf5..45aec2bcf 100644 --- a/js/packages/teams-ai/src/TaskModules.ts +++ b/js/packages/teams-ai/src/TaskModules.ts @@ -337,14 +337,7 @@ function createTaskSelector( const isTeams = context.activity.channelId == Channels.Msteams; const isInvoke = context?.activity?.type == ActivityTypes.Invoke && context?.activity?.name == invokeName; const data = context?.activity?.value?.data; - if ( - isInvoke && - isTeams && - typeof data == 'object' && - // eslint-disable-next-line security/detect-object-injection - typeof data[filterField] == 'string' - ) { - // eslint-disable-next-line security/detect-object-injection + if (isInvoke && isTeams && typeof data == 'object' && typeof data[filterField] == 'string') { return Promise.resolve(verb.test(data[filterField])); } else { return Promise.resolve(false); @@ -355,10 +348,7 @@ function createTaskSelector( return (context: TurnContext) => { const isInvoke = context?.activity?.type == ActivityTypes.Invoke && context?.activity?.name == invokeName; const data = context?.activity?.value?.data; - return Promise.resolve( - // eslint-disable-next-line security/detect-object-injection - isInvoke && typeof data == 'object' && data[filterField] == verb - ); + return Promise.resolve(isInvoke && typeof data == 'object' && data[filterField] == verb); }; } } diff --git a/js/packages/teams-ai/src/TeamsAdapter.spec.ts b/js/packages/teams-ai/src/TeamsAdapter.spec.ts index 0e2af1e3c..3a57e1547 100644 --- a/js/packages/teams-ai/src/TeamsAdapter.spec.ts +++ b/js/packages/teams-ai/src/TeamsAdapter.spec.ts @@ -16,7 +16,7 @@ describe('TeamsAdapter', () => { sandbox = sinon.createSandbox(); adapter = new TeamsAdapter(); - app.post('/api/messages', async (req, res) => { + app.post('/api/messages', async (req: any, res: any) => { await adapter.process(req, res, async () => {}); }); diff --git a/js/packages/teams-ai/src/TurnStateProperty.ts b/js/packages/teams-ai/src/TurnStateProperty.ts index 1a210f602..44a6cef59 100644 --- a/js/packages/teams-ai/src/TurnStateProperty.ts +++ b/js/packages/teams-ai/src/TurnStateProperty.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ /** * @module teams-ai */ diff --git a/js/packages/teams-ai/src/authentication/Authentication.ts b/js/packages/teams-ai/src/authentication/Authentication.ts index edc20739a..462cc612f 100644 --- a/js/packages/teams-ai/src/authentication/Authentication.ts +++ b/js/packages/teams-ai/src/authentication/Authentication.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ /** * @module teams-ai */ diff --git a/js/packages/teams-ai/src/authentication/BotAuthenticationBase.spec.ts b/js/packages/teams-ai/src/authentication/BotAuthenticationBase.spec.ts index 9a75edf6b..c5097e597 100644 --- a/js/packages/teams-ai/src/authentication/BotAuthenticationBase.spec.ts +++ b/js/packages/teams-ai/src/authentication/BotAuthenticationBase.spec.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ import assert from 'assert'; import { TurnState } from '../TurnState'; import { diff --git a/js/packages/teams-ai/src/authentication/BotAuthenticationBase.ts b/js/packages/teams-ai/src/authentication/BotAuthenticationBase.ts index b888c3ad4..f3ff3c52e 100644 --- a/js/packages/teams-ai/src/authentication/BotAuthenticationBase.ts +++ b/js/packages/teams-ai/src/authentication/BotAuthenticationBase.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ import { DialogState, DialogTurnResult, DialogTurnStatus } from 'botbuilder-dialogs'; import { TurnState } from '../TurnState'; import { Application } from '../Application'; diff --git a/js/packages/teams-ai/src/authentication/OAuthBotAuthentication.spec.ts b/js/packages/teams-ai/src/authentication/OAuthBotAuthentication.spec.ts index c1068e384..1dc8641c8 100644 --- a/js/packages/teams-ai/src/authentication/OAuthBotAuthentication.spec.ts +++ b/js/packages/teams-ai/src/authentication/OAuthBotAuthentication.spec.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ import { Activity, MemoryStorage, TestAdapter, TurnContext } from 'botbuilder'; import { Application, RouteSelector } from '../Application'; import { DialogSet, DialogState, DialogTurnResult, DialogTurnStatus, OAuthPrompt } from 'botbuilder-dialogs'; diff --git a/js/packages/teams-ai/src/moderators/AzureContentSafetyModerator.ts b/js/packages/teams-ai/src/moderators/AzureContentSafetyModerator.ts index 25309e68e..15d4a7d65 100644 --- a/js/packages/teams-ai/src/moderators/AzureContentSafetyModerator.ts +++ b/js/packages/teams-ai/src/moderators/AzureContentSafetyModerator.ts @@ -1,6 +1,3 @@ -// TODO: Remove these lines once the linting issues are resolved: -/* eslint-disable jsdoc/require-returns */ -/* eslint-disable security/detect-object-injection */ /** * @module teams-ai */ diff --git a/js/packages/teams-ai/src/moderators/OpenAIModerator.ts b/js/packages/teams-ai/src/moderators/OpenAIModerator.ts index b0d3e8a20..303dc8e29 100644 --- a/js/packages/teams-ai/src/moderators/OpenAIModerator.ts +++ b/js/packages/teams-ai/src/moderators/OpenAIModerator.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ /** * @module teams-ai */ diff --git a/js/samples/01.messaging.a.echoBot/.eslintrc b/js/samples/01.messaging.a.echoBot/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/01.messaging.a.echoBot/.eslintrc +++ b/js/samples/01.messaging.a.echoBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/02.messageExtensions.a.searchCommand/.eslintrc b/js/samples/02.messageExtensions.a.searchCommand/.eslintrc index 15b28b7ac..b3bbe08c6 100644 --- a/js/samples/02.messageExtensions.a.searchCommand/.eslintrc +++ b/js/samples/02.messageExtensions.a.searchCommand/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/03.adaptiveCards.a.typeAheadBot/.eslintrc b/js/samples/03.adaptiveCards.a.typeAheadBot/.eslintrc index 2edc97a09..86aac2757 100644 --- a/js/samples/03.adaptiveCards.a.typeAheadBot/.eslintrc +++ b/js/samples/03.adaptiveCards.a.typeAheadBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/03.adaptiveCards.a.typeAheadBot/src/index.ts b/js/samples/03.adaptiveCards.a.typeAheadBot/src/index.ts index 5c210b7f3..4052e86e1 100644 --- a/js/samples/03.adaptiveCards.a.typeAheadBot/src/index.ts +++ b/js/samples/03.adaptiveCards.a.typeAheadBot/src/index.ts @@ -75,7 +75,6 @@ app.conversationUpdate('membersAdded', async (context, _state) => { const membersAdded = context.activity.membersAdded || []; for (let member = 0; member < membersAdded.length; member++) { // Ignore the bot joining the conversation - // eslint-disable-next-line security/detect-object-injection if (membersAdded[member].id !== context.activity.recipient.id) { await context.sendActivity( `Hello and welcome! With this sample you can see the functionality of static and dynamic search in adaptive card` diff --git a/js/samples/04.ai.a.teamsChefBot/.eslintrc b/js/samples/04.ai.a.teamsChefBot/.eslintrc index 5b21c65b2..725c42414 100644 --- a/js/samples/04.ai.a.teamsChefBot/.eslintrc +++ b/js/samples/04.ai.a.teamsChefBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.ai.a.teamsChefBot/index/teams-ai/61ca821a-da4f-4879-9085-543f00557900.txt b/js/samples/04.ai.a.teamsChefBot/index/teams-ai/61ca821a-da4f-4879-9085-543f00557900.txt index 790029838..ec454e5b9 100644 --- a/js/samples/04.ai.a.teamsChefBot/index/teams-ai/61ca821a-da4f-4879-9085-543f00557900.txt +++ b/js/samples/04.ai.a.teamsChefBot/index/teams-ai/61ca821a-da4f-4879-9085-543f00557900.txt @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ /** * @module teams-ai */ diff --git a/js/samples/04.ai.b.messageExtensions.AI-ME/.eslintrc b/js/samples/04.ai.b.messageExtensions.AI-ME/.eslintrc index 64e7b63b0..1ac86a5e7 100644 --- a/js/samples/04.ai.b.messageExtensions.AI-ME/.eslintrc +++ b/js/samples/04.ai.b.messageExtensions.AI-ME/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.ai.c.actionMapping.lightBot/.eslintrc b/js/samples/04.ai.c.actionMapping.lightBot/.eslintrc index 0199b2807..002539d4b 100644 --- a/js/samples/04.ai.c.actionMapping.lightBot/.eslintrc +++ b/js/samples/04.ai.c.actionMapping.lightBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.ai.c.actionMapping.lightBot/src/responses.ts b/js/samples/04.ai.c.actionMapping.lightBot/src/responses.ts index 27b5ac9e2..91e342e64 100644 --- a/js/samples/04.ai.c.actionMapping.lightBot/src/responses.ts +++ b/js/samples/04.ai.c.actionMapping.lightBot/src/responses.ts @@ -80,6 +80,5 @@ export function offTopic(): string { */ function getRandomResponse(responses: string[]): string { const i = Math.floor(Math.random() * (responses.length - 1)); - // eslint-disable-next-line security/detect-object-injection return responses[i]; } diff --git a/js/samples/04.ai.d.chainedActions.listBot/.eslintrc b/js/samples/04.ai.d.chainedActions.listBot/.eslintrc index 6f8ca0438..9268deb27 100644 --- a/js/samples/04.ai.d.chainedActions.listBot/.eslintrc +++ b/js/samples/04.ai.d.chainedActions.listBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.ai.d.chainedActions.listBot/src/index.ts b/js/samples/04.ai.d.chainedActions.listBot/src/index.ts index f9f60c71a..7b28d1dcc 100644 --- a/js/samples/04.ai.d.chainedActions.listBot/src/index.ts +++ b/js/samples/04.ai.d.chainedActions.listBot/src/index.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. diff --git a/js/samples/04.ai.d.chainedActions.listBot/src/responses.ts b/js/samples/04.ai.d.chainedActions.listBot/src/responses.ts index 449bb8025..20c971076 100644 --- a/js/samples/04.ai.d.chainedActions.listBot/src/responses.ts +++ b/js/samples/04.ai.d.chainedActions.listBot/src/responses.ts @@ -53,6 +53,5 @@ export function reset(): string { */ function getRandomResponse(responses: string[]): string { const i = Math.floor(Math.random() * (responses.length - 1)); - // eslint-disable-next-line security/detect-object-injection return responses[i]; } diff --git a/js/samples/04.ai.e.chainedActions.devOpsBot/.eslintrc b/js/samples/04.ai.e.chainedActions.devOpsBot/.eslintrc index 6f8ca0438..9268deb27 100644 --- a/js/samples/04.ai.e.chainedActions.devOpsBot/.eslintrc +++ b/js/samples/04.ai.e.chainedActions.devOpsBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.ai.e.chainedActions.devOpsBot/src/responses.ts b/js/samples/04.ai.e.chainedActions.devOpsBot/src/responses.ts index a286d313e..ba8c3537e 100644 --- a/js/samples/04.ai.e.chainedActions.devOpsBot/src/responses.ts +++ b/js/samples/04.ai.e.chainedActions.devOpsBot/src/responses.ts @@ -143,6 +143,5 @@ export function offTopic(): string { */ function getRandomResponse(responses: string[]): string { const i = Math.floor(Math.random() * (responses.length - 1)); - // eslint-disable-next-line security/detect-object-injection return responses[i]; } diff --git a/js/samples/04.ai.f.vision.cardGazer/.eslintrc b/js/samples/04.ai.f.vision.cardGazer/.eslintrc index 1e5143079..42656a61a 100644 --- a/js/samples/04.ai.f.vision.cardGazer/.eslintrc +++ b/js/samples/04.ai.f.vision.cardGazer/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.e.twentyQuestions/.eslintrc b/js/samples/04.e.twentyQuestions/.eslintrc index 0199b2807..002539d4b 100644 --- a/js/samples/04.e.twentyQuestions/.eslintrc +++ b/js/samples/04.e.twentyQuestions/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/04.e.twentyQuestions/src/responses.ts b/js/samples/04.e.twentyQuestions/src/responses.ts index f01010c3a..8393e3960 100644 --- a/js/samples/04.e.twentyQuestions/src/responses.ts +++ b/js/samples/04.e.twentyQuestions/src/responses.ts @@ -366,6 +366,5 @@ export function youLose(secretWord: string): string { */ function getRandomResponse(responses: string[]): string { const i = Math.floor(Math.random() * (responses.length - 1)); - // eslint-disable-next-line security/detect-object-injection return responses[i]; } diff --git a/js/samples/05.chatModeration/.eslintrc b/js/samples/05.chatModeration/.eslintrc index c5c593fae..333796c9f 100644 --- a/js/samples/05.chatModeration/.eslintrc +++ b/js/samples/05.chatModeration/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/05.chatModeration/src/bot.ts b/js/samples/05.chatModeration/src/bot.ts index f1f799024..76fcf3869 100644 --- a/js/samples/05.chatModeration/src/bot.ts +++ b/js/samples/05.chatModeration/src/bot.ts @@ -102,7 +102,6 @@ app.conversationUpdate('membersAdded', async (context, state) => { const membersAdded = context.activity.membersAdded || []; for (let member = 0; member < membersAdded.length; member++) { // Ignore the bot joining the conversation - // eslint-disable-next-line security/detect-object-injection if (membersAdded[member].id !== context.activity.recipient.id) { await context.sendActivity( `Hello and welcome! With this sample you can see the functionality of the Content Safety Moderator of Azure Open AI services.` diff --git a/js/samples/06.assistants.a.mathBot/.eslintrc b/js/samples/06.assistants.a.mathBot/.eslintrc index c5c593fae..333796c9f 100644 --- a/js/samples/06.assistants.a.mathBot/.eslintrc +++ b/js/samples/06.assistants.a.mathBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/06.assistants.b.orderBot/.eslintrc b/js/samples/06.assistants.b.orderBot/.eslintrc index c5c593fae..333796c9f 100644 --- a/js/samples/06.assistants.b.orderBot/.eslintrc +++ b/js/samples/06.assistants.b.orderBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/06.auth.oauth.adaptiveCard/.eslintrc b/js/samples/06.auth.oauth.adaptiveCard/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/06.auth.oauth.adaptiveCard/.eslintrc +++ b/js/samples/06.auth.oauth.adaptiveCard/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/06.auth.oauth.bot/.eslintrc b/js/samples/06.auth.oauth.bot/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/06.auth.oauth.bot/.eslintrc +++ b/js/samples/06.auth.oauth.bot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/06.auth.oauth.messageExtension/.eslintrc b/js/samples/06.auth.oauth.messageExtension/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/06.auth.oauth.messageExtension/.eslintrc +++ b/js/samples/06.auth.oauth.messageExtension/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/06.auth.teamsSSO.bot/.eslintrc b/js/samples/06.auth.teamsSSO.bot/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/06.auth.teamsSSO.bot/.eslintrc +++ b/js/samples/06.auth.teamsSSO.bot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/06.auth.teamsSSO.messageExtension/.eslintrc b/js/samples/06.auth.teamsSSO.messageExtension/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/06.auth.teamsSSO.messageExtension/.eslintrc +++ b/js/samples/06.auth.teamsSSO.messageExtension/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/samples/07.whoBot/.eslintrc b/js/samples/07.whoBot/.eslintrc index d4c5fff09..ef556c921 100644 --- a/js/samples/07.whoBot/.eslintrc +++ b/js/samples/07.whoBot/.eslintrc @@ -14,8 +14,6 @@ "plugin:import/typescript", "plugin:import/recommended", "plugin:jsdoc/recommended", - - "plugin:security/recommended", "plugin:prettier/recommended" // Recommended to be last ], "plugins": [ diff --git a/js/yarn.lock b/js/yarn.lock index 5e40373be..515f111c4 100644 --- a/js/yarn.lock +++ b/js/yarn.lock @@ -1103,6 +1103,14 @@ resolved "https://registry.yarnpkg.com/@types/atob-lite/-/atob-lite-2.0.0.tgz#bd44ca72e65a58477e81309a66e401524f187053" integrity sha512-7bjymPR7Ffa1/L3HskkaxMgTQDtwFObbISzHm9g3T12VyD89IiHS3BBVojlQHyZRiIilzdh0WT1gwwgyyBtLGQ== +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + "@types/btoa-lite@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/btoa-lite/-/btoa-lite-1.0.0.tgz#e190a5a548e0b348adb0df9ac7fa5f1151c7cca4" @@ -1115,6 +1123,13 @@ dependencies: "@types/node" "*" +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + "@types/dotenv@6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-6.1.1.tgz#f7ce1cc4fe34f0a4373ba99fefa437b0bec54b46" @@ -1136,6 +1151,26 @@ dependencies: "@types/node" "*" +"@types/express-serve-static-core@^4.17.33": + version "4.17.43" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" + integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@^4.17.21": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/formidable@^1": version "1.2.5" resolved "https://registry.yarnpkg.com/@types/formidable/-/formidable-1.2.5.tgz#561d026e5f09179e5c8ef7b31e8f4652e11abe4c" @@ -1143,6 +1178,11 @@ dependencies: "@types/node" "*" +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + "@types/isomorphic-fetch@^0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.39.tgz#889573a72ca637bc1a665910a41ff1cb3b52011f" @@ -1209,6 +1249,16 @@ resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== +"@types/mime@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + "@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" @@ -1251,6 +1301,16 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/qs@*": + version "6.9.11" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" + integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + "@types/restify@8.5.12": version "8.5.12" resolved "https://registry.yarnpkg.com/@types/restify/-/restify-8.5.12.tgz#c2a4ed30010ced2c2454d2d0a9d106cbc8e83657" @@ -1266,6 +1326,23 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== + dependencies: + "@types/http-errors" "*" + "@types/mime" "*" + "@types/node" "*" + "@types/shimmer@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.0.2.tgz#93eb2c243c351f3f17d5c580c7467ae5d686b65f" @@ -1500,6 +1577,14 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" @@ -1819,6 +1904,11 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + array-from@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" @@ -2135,6 +2225,24 @@ bn.js@^5.0.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -2550,6 +2658,11 @@ bundle-collapser@^1.3.0: minimist "^1.1.1" through2 "^2.0.0" +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -2984,6 +3097,18 @@ constants-browserify@~1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + continuation-local-storage@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#11f613f74e914fe9b34c92ad2d28fe6ae1db7ffb" @@ -3002,6 +3127,16 @@ convert-source-map@~1.1.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -3572,6 +3707,11 @@ dotenv@*, dotenv@^16.4.2: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.2.tgz#7ca798f89ae2011846bbdbf6470785307754120d" integrity sha512-rZSSFxke7d9nYQ5NeMIwp5PP+f8wXgKNljpOb7KtH6SKW1cEqcXAz9VSJYVLKe7Jhup/gUYOkaeSVyK8GJ+nBg== +dotenv@^16.4.1: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + dotenv@^8.2.0: version "8.6.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" @@ -4044,13 +4184,6 @@ eslint-plugin-prettier@^5.1.3: prettier-linter-helpers "^1.0.0" synckit "^0.8.6" -eslint-plugin-security@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz#0e9c4a471f6e4d3ca16413c7a4a51f3966ba16e4" - integrity sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ== - dependencies: - safe-regex "^2.1.1" - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -4297,6 +4430,43 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" +express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + ext@^1.1.2: version "1.7.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" @@ -4474,6 +4644,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + find-cache-dir@^3.2.0: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" @@ -4626,6 +4809,11 @@ formidable@^1.2.1: resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -5243,7 +5431,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@^0.4.17: +iconv-lite@0.4.24, iconv-lite@^0.4.17: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5370,6 +5558,11 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -6385,12 +6578,17 @@ mdurl@^1.0.1: resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -merge-descriptors@~1.0.0: +merge-descriptors@1.0.1, merge-descriptors@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== @@ -6407,6 +6605,11 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -6447,7 +6650,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6768,7 +6971,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@^0.6.2: +negotiator@0.6.3, negotiator@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -7262,6 +7465,11 @@ parse5@^7.0.0: dependencies: entities "^4.4.0" +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -7325,6 +7533,11 @@ path-scurry@^1.10.1: lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + path-to-regexp@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" @@ -7506,6 +7719,14 @@ process@^0.11.10, process@~0.11.0: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -7572,6 +7793,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + qs@^6.11.0, qs@^6.7.0: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" @@ -7629,6 +7857,16 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.0.1, rc@^1.1.6: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -7765,11 +8003,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@~0.1.1: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - regexp.prototype.flags@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" @@ -8042,7 +8275,7 @@ safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -8080,13 +8313,6 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - safe-stable-stringify@^2.3.1: version "2.4.3" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" @@ -8149,7 +8375,7 @@ semver@^7.3.8, semver@^7.5.1, semver@^7.5.3, semver@^7.5.4, semver@~7.5.4: dependencies: lru-cache "^6.0.0" -send@^0.18.0: +send@0.18.0, send@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== @@ -8175,6 +8401,16 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -9243,6 +9479,14 @@ type-fest@^0.8.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -9396,6 +9640,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -9493,6 +9742,11 @@ util@~0.12.0: is-typed-array "^1.1.3" which-typed-array "^1.1.2" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + uuid@^3.1.0, uuid@^3.2.1, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -9526,6 +9780,11 @@ validator@^13.7.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + vasync@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.1.tgz#d881379ff3685e4affa8e775cf0fd369262a201b"