From 6e69c50673d9f60be96a24f9e128264fcc960a09 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Wed, 16 Apr 2025 17:08:04 +0530 Subject: [PATCH 1/2] added beta6 test sample. --- Beta6-test-sample/README.md | 64 + Beta6-test-sample/package.json | 29 + Beta6-test-sample/src/app.ts | 1241 +++++++++++++++++ .../src/resources/media_prompts/MainMenu.wav | Bin 0 -> 359646 bytes Beta6-test-sample/src/webpage/index.html | 128 ++ Beta6-test-sample/tsconfig.json | 13 + 6 files changed, 1475 insertions(+) create mode 100644 Beta6-test-sample/README.md create mode 100644 Beta6-test-sample/package.json create mode 100644 Beta6-test-sample/src/app.ts create mode 100644 Beta6-test-sample/src/resources/media_prompts/MainMenu.wav create mode 100644 Beta6-test-sample/src/webpage/index.html create mode 100644 Beta6-test-sample/tsconfig.json diff --git a/Beta6-test-sample/README.md b/Beta6-test-sample/README.md new file mode 100644 index 00000000..7991d1bb --- /dev/null +++ b/Beta6-test-sample/README.md @@ -0,0 +1,64 @@ +|page_type|languages|products +|---|---|---| +|sample|
Typescript
|
azureazure-communication-services
| + +# Call Automation - Quick Start Sample + +In this quickstart, we cover how you can use Call Automation SDK to make an outbound call to a phone number and use the newly announced integration with Azure AI services to play dynamic prompts to participants using Text-to-Speech and recognize user voice input through Speech-to-Text to drive business logic in your application. + +# Design + +![design](./data/OutboundCallDesign.png) + +## Prerequisites + +- Create an Azure account with an active subscription. For details, see [Create an account for free](https://azure.microsoft.com/free/) +- [Visual Studio Code](https://code.visualstudio.com/download) installed +- [Node.js](https://nodejs.org/en/download) installed +- Create an Azure Communication Services resource. For details, see [Create an Azure Communication Resource](https://docs.microsoft.com/azure/communication-services/quickstarts/create-communication-resource). You will need to record your resource **connection string** for this sample. +- Get a phone number for your new Azure Communication Services resource. For details, see [Get a phone number](https://learn.microsoft.com/azure/communication-services/quickstarts/telephony/get-phone-number?tabs=windows&pivots=programming-language-csharp) +- Create Azure AI Multi Service resource. For details, see [Create an Azure AI Multi service](https://learn.microsoft.com/azure/cognitive-services/cognitive-services-apis-create-account). +- (Optional) A Microsoft Teams user with a phone license that is `voice` enabled. Teams phone license is required to add Teams users to the call. Learn more about Teams licenses [here](https://www.microsoft.com/microsoft-teams/compare-microsoft-teams-bundle-options). Learn about enabling phone system with `voice` [here](https://learn.microsoft.com/microsoftteams/setting-up-your-phone-system). You also need to complete the prerequisite step [Authorization for your Azure Communication Services Resource](https://learn.microsoft.com/azure/communication-services/how-tos/call-automation/teams-interop-call-automation?pivots=programming-language-javascript#step-1-authorization-for-your-azure-communication-services-resource-to-enable-calling-to-microsoft-teams-users) to enable calling to Microsoft Teams users. + +## Before running the sample for the first time + +1. Open an instance of PowerShell, Windows Terminal, Command Prompt or equivalent and navigate to the directory that you would like to clone the sample to. +2. git clone `https://github.com/Azure-Samples/communication-services-javascript-quickstarts.git`. +3. cd into the `CallAutomation_OutboundCalling` folder. +4. From the root of the above folder, and with node installed, run `npm install` + +### Setup and host your Azure DevTunnel + +[Azure DevTunnels](https://learn.microsoft.com/en-us/azure/developer/dev-tunnels/get-started?tabs=windows) is an Azure service that enables you to share local web services hosted on the internet. Use the commands below to connect your local development environment to the public internet. This creates a tunnel with a persistent endpoint URL and which allows anonymous access. We will then use this endpoint to notify your application of calling events from the ACS Call Automation service. + +```bash +devtunnel create --allow-anonymous +devtunnel port create -p 8080 +devtunnel host +``` + +### Configuring application + +Open the `.env` file to configure the following settings + +1. `CONNECTION_STRING`: Azure Communication Service resource's connection string. +2. `ACS_RESOURCE_PHONE_NUMBER`: Phone number associated with the Azure Communication Service resource. For e.g. "+1425XXXAAAA" +3. `TARGET_PHONE_NUMBER`: Target phone number to add in the call. For e.g. "+1425XXXAAAA" +4. `CALLBACK_URI`: Base url of the app. (For local development replace the dev tunnel url) +5. `COGNITIVE_SERVICES_ENDPOINT` : Cognitive Service endpoint +6. `TARGET_TEAMS_USER_ID`: (Optional) update field with the Microsoft Teams user Id you would like to add to the call. See [Use Graph API to get Teams user Id](https://learn.microsoft.com/azure/communication-services/how-tos/call-automation/teams-interop-call-automation?pivots=programming-language-javascript#step-2-use-the-graph-api-to-get-microsoft-entra-object-id-for-teams-users-and-optionally-check-their-presence). Uncomment the following code snippet from `app.ts` file: + +```typescript +await acsClient.getCallConnection(callConnectionId).addParticipant({ + targetParticipant: { microsoftTeamsUserId: TARGET_TEAMS_USER_ID }, + sourceDisplayName: "Jack (Contoso Tech Support)" +}); +``` + +### Run app locally + +1. Open a new Powershell window, cd into the `CallAutomation_OutboundCalling` folder and run `npm run dev` +2. Browser should pop up with the below page. If not navigate it to `http://localhost:8080/` +3. To initiate the call, click on the `Place a call!` button or make a Http get request to https:///outboundCall + +![design](./data/Webpage.png) diff --git a/Beta6-test-sample/package.json b/Beta6-test-sample/package.json new file mode 100644 index 00000000..5cad1b64 --- /dev/null +++ b/Beta6-test-sample/package.json @@ -0,0 +1,29 @@ +{ + "name": "beta6-test-sample", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "nodemon ./src/app.ts", + "build": "tsc", + "dev": "nodemon ./src/app.ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@azure/communication-call-automation": "^1.4.0-alpha.20250411.1", + "@azure/communication-common": "^2.2.0", + "@azure/eventgrid": "^4.12.0", + "@types/express": "^4.17.17", + "@types/node": "^20.2.1", + "beta6-test-sample": "file:", + "dotenv": "^16.0.3", + "express": "^4.18.2" + }, + "devDependencies": { + "nodemon": "^2.0.22", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + } +} diff --git a/Beta6-test-sample/src/app.ts b/Beta6-test-sample/src/app.ts new file mode 100644 index 00000000..41cdae8a --- /dev/null +++ b/Beta6-test-sample/src/app.ts @@ -0,0 +1,1241 @@ +import { config } from "dotenv"; +import fs, { accessSync } from "fs"; +import express, { Application } from "express"; +import { + CommunicationIdentifier, + CommunicationUserIdentifier, + isCommunicationUserIdentifier, + PhoneNumberIdentifier, +} from "@azure/communication-common"; +import {} from "@azure/communication-common"; +import { + CallAutomationClient, + CallConnection, + CallMediaRecognizeChoiceOptions, + RecognitionChoice, + TextSource, + CallInvite, + CreateCallOptions, + CallMedia, + DtmfTone, + FileSource, + SsmlSource, + PlayToAllOptions, + PlayOptions, + CallMediaRecognizeSpeechOptions, + CallMediaRecognizeSpeechOrDtmfOptions, + CallMediaRecognizeDtmfOptions, + Tone, + CallLocator, + StartRecordingOptions, + RecordingStorage, + AddParticipantOptions, + TransferCallToParticipantOptions, + MediaStreamingOptions, + TranscriptionOptions, + StartMediaStreamingOptions, + StopMediaStreamingOptions, + StartTranscriptionOptions, + UpdateTranscriptionOptions, + StopTranscriptionOptions, + HoldOptions, + UnholdOptions, +} from "@azure/communication-call-automation"; +import path from "path"; + +config(); + +const PORT = process.env.PORT; +const app: Application = express(); +app.use(express.static("webpage")); +app.use(express.urlencoded({ extended: true })); +app.use(express.json()); + +let callConnectionId: string; +let callConnection: CallConnection; +let serverCallId: string; +let callee: PhoneNumberIdentifier; +let acsClient: CallAutomationClient; +let recordingId: string; +let recordingLocation: string; +let recordingMetadataLocation: string; +let recordingDeleteLocation: string; +let recordingState: string; + +const confirmLabel = `Confirm`; +const cancelLabel = `Cancel`; +const MEDIA_URI = process.env.CALLBACK_URI + "/audioprompt/"; +const isByos = + process.env.IS_BYOS.trim().toLowerCase() === "true" ? true : false; +const bringYourOwnStorageUrl = process.env.BRING_YOUR_OWN_STORAGE_URL; +const isPauseOnStart = + process.env.PAUSE_ON_START.trim().toLowerCase() === "true" ? true : false; +const targetPhoneNumber: PhoneNumberIdentifier = { + phoneNumber: process.env.TARGET_PHONE_NUMBER.trim(), +}; +const participantPhoneNumber: PhoneNumberIdentifier = { + phoneNumber: process.env.TARGET_PHONE_NUMBER.trim(), +}; +const acsPhoneNumber: PhoneNumberIdentifier = { + phoneNumber: process.env.ACS_RESOURCE_PHONE_NUMBER.trim(), +}; +const targetCommuncationUser: CommunicationUserIdentifier = { + communicationUserId: process.env.TARGET_COMMUNICATION_USER.trim(), +}; +const participantCommuncationUser: CommunicationUserIdentifier = { + communicationUserId: process.env.PARTICIPANT_COMMUNICATION_USER.trim(), +}; +const transportUrl = process.env.TRANSPORT_URL.trim(); +async function createAcsClient() { + const connectionString = process.env.CONNECTION_STRING || ""; + acsClient = new CallAutomationClient(connectionString); + console.log("Initialized ACS Client."); +} + +async function createOutboundCall() { + const callInvite: CallInvite = { + targetParticipant: callee, + sourceCallIdNumber: { + phoneNumber: process.env.ACS_RESOURCE_PHONE_NUMBER || "", + }, + }; + + const mediaStreamingOptions: MediaStreamingOptions = { + transportUrl: transportUrl, + transportType: "websocket", + contentType: "audio", + audioChannelType: "unmixed", + startMediaStreaming: false, + }; + + const transcriptionOptions: TranscriptionOptions = { + transportUrl: transportUrl, + transportType: "websocket", + locale: "en-US", + startTranscription: false, + }; + + const options: CreateCallOptions = { + callIntelligenceOptions: { + cognitiveServicesEndpoint: process.env.COGNITIVE_SERVICES_ENDPOINT, + }, + mediaStreamingOptions: mediaStreamingOptions, + transcriptionOptions: transcriptionOptions, + }; + console.log("Placing outbound call..."); + await acsClient.createCall( + callInvite, + process.env.CALLBACK_URI + "/api/callbacks", + options + ); +} + +async function createGroupCall() { + const mediaStreamingOptions: MediaStreamingOptions = { + transportUrl: transportUrl, + transportType: "websocket", + contentType: "audio", + audioChannelType: "unmixed", + startMediaStreaming: false, + }; + + const transcriptionOptions: TranscriptionOptions = { + transportUrl: transportUrl, + transportType: "websocket", + locale: "en-US", + startTranscription: false, + }; + const targets = [targetPhoneNumber, participantPhoneNumber]; + const options: CreateCallOptions = { + callIntelligenceOptions: { + cognitiveServicesEndpoint: process.env.COGNITIVE_SERVICES_ENDPOINT, + }, + operationContext: "groupCallContext", + sourceCallIdNumber: acsPhoneNumber, + mediaStreamingOptions: mediaStreamingOptions, + transcriptionOptions: transcriptionOptions, + }; + console.log("Placing outbound call..."); + await acsClient.createGroupCall( + targets, + process.env.CALLBACK_URI + "/api/callbacks", + options + ); +} + +async function getChoices() { + const choices: RecognitionChoice[] = [ + { + label: confirmLabel, + phrases: ["Confirm", "First", "One"], + tone: DtmfTone.One, + }, + { + label: cancelLabel, + phrases: ["Cancel", "Second", "Two"], + tone: DtmfTone.Two, + }, + ]; + + return choices; +} + +async function hangUpCallAsync() { + await acsClient.getCallConnection(callConnectionId).hangUp(false); +} + +async function terminateCallAsync() { + await acsClient.getCallConnection(callConnectionId).hangUp(true); +} + +async function playMediaToAllWithTextSourceAsync() { + const textSource: TextSource = { + text: "Hi, This is play media with text source", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + const playToAllOptions: PlayToAllOptions = { + operationContext: "playToAllContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .playToAll([textSource], playToAllOptions); +} + +async function playMediaToAllWithFileSourceAsync() { + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + const playToAllOptions: PlayToAllOptions = { + operationContext: "playToAllContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .playToAll([fileSource], playToAllOptions); +} + +async function playMediaToAllWithSSMLSourceAsync() { + const ssmlSource: SsmlSource = { + ssmlText: + 'Hi, this is ssml test played through ssml source thanks. Goodbye!', + kind: "ssmlSource", + }; + const playToAllOptions: PlayToAllOptions = { + operationContext: "playToAllContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .playToAll([ssmlSource], playToAllOptions); +} + +async function playMediaToTargetWithTextSourceAsync() { + const textSource: TextSource = { + text: "Hi, This is play media with text source", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + const target = GetCommunicationTarget(); + const playOptions: PlayOptions = { + operationContext: "playToContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .play([textSource], [target], playOptions); +} + +async function playMediaToTargetWithFileSourceAsync() { + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + const target = GetCommunicationTarget(); + const playOptions: PlayOptions = { + operationContext: "playToContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .play([fileSource], [target], playOptions); +} +async function playMediaToTargetWithSSMLSourceAsync() { + const ssmlSource: SsmlSource = { + ssmlText: + 'Hi, this is ssml test played through ssml source thanks. Goodbye!', + kind: "ssmlSource", + }; + const target = GetCommunicationTarget(); + const playOptions: PlayOptions = { + operationContext: "playToContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .play([ssmlSource], [target], playOptions); +} + +async function playMediaToAllWithMultiplePlaySourcesAsync() { + const textSource: TextSource = { + text: "Hi, This is play media with text source", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + const ssmlSource: SsmlSource = { + ssmlText: + 'Hi, this is ssml test played through ssml source thanks. Goodbye!', + kind: "ssmlSource", + }; + const playSources = [textSource, fileSource, ssmlSource]; + const playToAllOptions: PlayToAllOptions = { + operationContext: "playToAllContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .playToAll(playSources, playToAllOptions); +} + +async function playMediaToTargetWithMultiplePlaySourcesAsync() { + const textSource: TextSource = { + text: "Hi, This is play media with text source", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + const ssmlSource: SsmlSource = { + ssmlText: + 'Hi, this is ssml test played through ssml source thanks. Goodbye!', + kind: "ssmlSource", + }; + const playSources = [textSource, fileSource, ssmlSource]; + const target = GetCommunicationTarget(); + const playOptions: PlayOptions = { + operationContext: "playToContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .play(playSources, [target], playOptions); +} + +async function playMediaToAllWithInvalidPlaySourceAsync() { + const textSource: TextSource = { + text: "Hi, This is play media with text source", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + const fileSource: FileSource = { + url: "https://dummy/crowd-cheering.mp3", + kind: "fileSource", + }; + const ssmlSource: SsmlSource = { + ssmlText: + 'Hi, this is ssml test played through ssml source thanks. Goodbye!', + kind: "ssmlSource", + }; + const playSources = [textSource, fileSource, ssmlSource]; + const playToAllOptions: PlayToAllOptions = { + operationContext: "playToAllContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .playToAll(playSources, playToAllOptions); +} + +async function playMediaToTargetWithInvalidPlaySourceAsync() { + const textSource: TextSource = { + text: "Hi, This is play media with text source", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + const fileSource: FileSource = { + url: "https://dummy/crowd-cheering.mp3", + kind: "fileSource", + }; + const ssmlSource: SsmlSource = { + ssmlText: + 'Hi, this is ssml test played through ssml source thanks. Goodbye!', + kind: "ssmlSource", + }; + const playSources = [textSource, fileSource, ssmlSource]; + const target = GetCommunicationTarget(); + const playOptions: PlayOptions = { + operationContext: "playToContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .play(playSources, [target], playOptions); +} + +async function playRecognizeAsync() { + const textSource: TextSource = { + text: "", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + + const ssmlSource: SsmlSource = { ssmlText: "", kind: "ssmlSource" }; + + const recognizeChoiceOptions: CallMediaRecognizeChoiceOptions = { + choices: await getChoices(), + interruptPrompt: false, + initialSilenceTimeoutInSeconds: 10, + playPrompt: textSource, + operationContext: "choiceContex", + kind: "callMediaRecognizeChoiceOptions", + }; + + const recognizeDtmfOptions: CallMediaRecognizeDtmfOptions = { + playPrompt: textSource, + interToneTimeoutInSeconds: 5, + initialSilenceTimeoutInSeconds: 15, + maxTonesToCollect: 4, + interruptPrompt: false, + operationContext: "dtmfContext", + kind: "callMediaRecognizeDtmfOptions", + }; + + const recognizeSpeechOptions: CallMediaRecognizeSpeechOptions = { + endSilenceTimeoutInSeconds: 1, + playPrompt: textSource, + operationContext: "speechContext", + kind: "callMediaRecognizeSpeechOptions", + }; + + const recongnizeSpeechOrDtmfOptions: CallMediaRecognizeSpeechOrDtmfOptions = { + maxTonesToCollect: 2, + endSilenceTimeoutInSeconds: 1, + playPrompt: textSource, + initialSilenceTimeoutInSeconds: 30, + interruptPrompt: true, + operationContext: "sppechOrDtmfContext", + kind: "callMediaRecognizeSpeechOrDtmfOptions", + }; + + const target = GetCommunicationTarget(); + + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .startRecognizing(target, recognizeChoiceOptions); +} + +async function startContinuousDtmfAsync() { + const target = GetCommunicationTarget(); + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .startContinuousDtmfRecognition(target); + console.log(`Continuous Dtmf recognition started. press one on dialpad.`); +} + +async function stopContinuousDtmfAsync() { + const target = GetCommunicationTarget(); + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .stopContinuousDtmfRecognition(target); + console.log(`Continuous Dtmf recognition stopped.`); +} + +async function startSendingDtmfToneAsync() { + const tones: Tone[] = ["zero", "one"]; + const target = GetCommunicationTarget(); + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .sendDtmfTones(tones, target); + console.log(`Send dtmf tones started.`); +} + +async function startRecordingAsync() { + const callConnectionProperties = await acsClient + .getCallConnection(callConnectionId) + .getCallConnectionProperties(); + const serverCallId = callConnectionProperties.serverCallId; + + console.log(`IS BYOS--> ${isByos}`); + if (isByos) { + console.log(`BYOS URL--> ${bringYourOwnStorageUrl}`); + } + + const callLocator: CallLocator = { + id: serverCallId, + kind: "serverCallLocator", + }; + const recordingStorage: RecordingStorage = { + recordingStorageKind: "azureBlobStorage", + recordingDestinationContainerUrl: bringYourOwnStorageUrl, + }; + const recordingOptions: StartRecordingOptions = { + callLocator: callLocator, + recordingContent: "audio", + recordingChannel: "unmixed", + recordingFormat: "wav", + pauseOnStart: isPauseOnStart, + recordingStorage: isByos === true ? recordingStorage : undefined, + }; + const response = await acsClient.getCallRecording().start(recordingOptions); + recordingId = response.recordingId; + console.log(`Recording Id--> ${recordingId}`); + console.log(`Pause on start--> ${isPauseOnStart}`); +} + +async function pauseRecordingAsync() { + if (recordingId) { + await getRecordingState(recordingId); + if (recordingState === "active") { + await acsClient.getCallRecording().pause(recordingId); + } else { + console.log(`Recording is inactive.`); + } + } else { + console.log(`Recording id is empty.`); + } +} +async function resumeRecordingAsync() { + if (recordingId) { + await getRecordingState(recordingId); + if (recordingState === "inactive") { + await acsClient.getCallRecording().resume(recordingId); + } else { + console.log(`Recording is already active.`); + } + } else { + console.log(`Recording id is empty.`); + } +} + +async function stopRecordingAsync() { + if (recordingId) { + await getRecordingState(recordingId); + if (recordingState === "active") { + await acsClient.getCallRecording().stop(recordingId); + } else { + console.log(`Recording is already inactive.`); + } + } else { + console.log(`Recording id is empty.`); + } +} + +async function getRecordingState(recordingId: string) { + const response = await acsClient.getCallRecording().getState(recordingId); + recordingState = response.recordingState; + console.log(`Recording current state-->${recordingState}`); +} + +async function addParticipantAsync() { + const isCancelAddParticipant = false; + + const callInvite: CallInvite = { + targetParticipant: participantPhoneNumber, + sourceCallIdNumber: acsPhoneNumber, + }; + const options: AddParticipantOptions = { + operationContext: "addPstnUserContext", + invitationTimeoutInSeconds: 30, + }; + + const response = await acsClient + .getCallConnection(callConnectionId) + .addParticipant(callInvite, options); + + if (isCancelAddParticipant) { + await acsClient + .getCallConnection(callConnectionId) + .cancelAddParticipantOperation(response.invitationId); + } +} + +async function removeParticipantAsync() { + await acsClient + .getCallConnection(callConnectionId) + .removeParticipant(participantPhoneNumber); +} + +async function cancelAddParticipantAsync(invitationId: string) { + await acsClient + .getCallConnection(callConnectionId) + .cancelAddParticipantOperation(invitationId); +} + +async function cancelAllMediaOperationAsync() { + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .cancelAllOperations(); +} + +async function transferCallToParticipantAsync() { + const options: TransferCallToParticipantOptions = { + operationContext: "transferCallContext", + transferee: targetPhoneNumber, + }; + await callConnection.transferCallToParticipant( + participantPhoneNumber, + options + ); + console.log(`Transfer call initiated.`); +} + +async function startMediaStreamingAsync() { + const streamingOptions: StartMediaStreamingOptions = { + operationContext: "startMediaStreamingContext", + operationCallbackUrl: process.env.CALLBACK_URI + "/api/callbacks", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .startMediaStreaming(streamingOptions); +} + +async function stopMediaStreamingAsync() { + const streamingOptions: StopMediaStreamingOptions = { + operationContext: "stopMediaStreamingContext", + operationCallbackUrl: process.env.CALLBACK_URI + "/api/callbacks", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .stopMediaStreaming(streamingOptions); +} + +async function startTranscriptionAsync() { + const startTranscriptionOptions: StartTranscriptionOptions = { + locale: "en-us", + operationContext: "startTranscriptionContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .startTranscription(startTranscriptionOptions); +} + +async function updateTranscriptionAsync() { + const options: UpdateTranscriptionOptions = { + operationContext: "updateTranscriptionContext", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .updateTranscription("en-au", options); +} + +async function stopTranscriptionAsync() { + const stopTranscriptionOptions: StopTranscriptionOptions = { + operationContext: "stopTranscriptionOptions", + }; + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .stopTranscription(stopTranscriptionOptions); +} + +async function holdParticipantAsync() { + const textSource: TextSource = { + text: "", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + + const ssmlSource: SsmlSource = { ssmlText: "", kind: "ssmlSource" }; + + const holdOptions: HoldOptions = { + playSource: textSource, + operationContext: "holdUserContext", + operationCallbackUri: process.env.CALLBACK_URI + "/api/callbacks", + }; + const target = GetCommunicationTarget(); + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .hold(target, holdOptions); +} + +async function unholdParticipantAsync() { + const unholdOptions: UnholdOptions = { + operationContext: "unholdUserContext", + }; + + const target = GetCommunicationTarget(); + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .unhold(target, unholdOptions); +} + +async function playWithInterruptMediaFlagAsync() { + const textSource: TextSource = { + text: "", + voiceName: "en-US-NancyNeural", + kind: "textSource", + }; + + const fileSource: FileSource = { + url: MEDIA_URI + "MainMenu.wav", + kind: "fileSource", + }; + + const ssmlSource: SsmlSource = { ssmlText: "", kind: "ssmlSource" }; + + const playSources = [textSource, fileSource, ssmlSource]; + + const interruptOption: PlayToAllOptions = { + loop: true, + interruptCallMediaOperation: true, + operationContext: "interruptOperationContext", + operationCallbackUrl: process.env.CALLBACK_URI + "/api/callbacks", + }; + + await acsClient + .getCallConnection(callConnectionId) + .getCallMedia() + .playToAll(playSources, interruptOption); +} + +function GetCommunicationTarget(): CommunicationIdentifier { + const isPstnParticipant = false; + const isAcsParticipant = false; + + const pstnIdentifier = isPstnParticipant + ? participantPhoneNumber + : targetPhoneNumber; + const target = isAcsParticipant + ? participantCommuncationUser + : pstnIdentifier; + + return target; +} + +async function getCallProperties(connectionId: string) { + const response = await acsClient + .getCallConnection(connectionId) + .getCallConnectionProperties(); + return response; +} + +// POST endpoint to handle ongoing call events +app.post("/api/callbacks", async (req: any, res: any) => { + const event = req.body[0]; + const eventData = event.data; + callConnectionId = eventData.callConnectionId; + serverCallId = eventData.serverCallId; + console.log( + "Call back event received, callConnectionId=%s, serverCallId=%s, eventType=%s", + callConnectionId, + serverCallId, + event.type + ); + callConnection = acsClient.getCallConnection(callConnectionId); + + if (event.type === "Microsoft.Communication.CallConnected") { + console.log("Received CallConnected event"); + callConnectionId = eventData.callConnectionId; + const properties = await getCallProperties(eventData.callConnectionId); + console.log("CORRELATION ID****--> " + properties.correlationId); + console.log("CALL CONNECTION ID****--> " + properties.callConnectionId); + console.log("Answered For:-> " + properties.answeredFor); + + console.log( + "Media Streaming Subscription Id--> " + + properties.mediaStreamingSubscription.id + ); + console.log( + "Media Streaming Subscription State--> " + + properties.mediaStreamingSubscription.state + ); + + console.log( + "Transcription Subscription Id--> " + + properties.transcriptionSubscription.id + ); + console.log( + "Transcription Subscription State--> " + + properties.transcriptionSubscription.state + ); + } else if (event.type === "Microsoft.Communication.RecognizeCompleted") { + console.log("Received RecognizeCompleted event"); + callConnectionId = eventData.callConnectionId; + if (eventData.recognitionType === "choices") { + const labelDetected = eventData.choiceResult.label; + console.log(`Detected label:--> ${labelDetected}`); + } + if (eventData.recognitionType === "dtmf") { + const tones = eventData.dtmfResult.tones; + console.log(`DTMF TONES:-->${tones}`); + console.log(`Current context-->${eventData.operationContext}`); + } + if (eventData.recognitionType === "speech") { + const text = eventData.speechResult.speech; + console.log( + "Recognition completed, text=%s, context=%s", + text, + eventData.operationContext + ); + } + } else if (event.type === "Microsoft.Communication.RecognizeFailed") { + console.log("Received PlayFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.RecognizeCanceled") { + console.log("Received RecognizeCanceled event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.PlayStarted") { + console.log("Received PlayStarted event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.PlayCompleted") { + console.log("Received PlayCompleted event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.PlayFailed") { + console.log("Received PlayFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.PlayCanceled") { + console.log("Received PlayCanceled event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.AddParticipantSucceeded") { + console.log("Received AddParticipantSucceeded event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.AddParticipantFailed") { + console.log("Received AddParticipantFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if ( + event.type === "Microsoft.Communication.RemoveParticipantSucceeded" + ) { + console.log("Received RemoveParticipantSucceeded event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.RemoveParticipantFailed") { + console.log("Received RemoveParticipantFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if ( + event.type === "Microsoft.Communication.CancelAddParticipantSucceeded" + ) { + console.log("Received CancelAddParticipantSucceeded event"); + callConnectionId = eventData.callConnectionId; + } else if ( + event.type === "Microsoft.Communication.CancelAddParticipantFailed" + ) { + console.log("Received CancelAddParticipantFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if ( + event.type === + "Microsoft.Communication.ContinuousDtmfRecognitionToneReceived" + ) { + console.log("Received ContinuousDtmfRecognitionToneReceived event"); + callConnectionId = eventData.callConnectionId; + console.log(`Tone received:--> ${eventData.tone}`); + console.log(`SequenceId:--> ${eventData.sequenceId}`); + } else if ( + event.type === "Microsoft.Communication.ContinuousDtmfRecognitionToneFailed" + ) { + console.log("Received ContinuousDtmfRecognitionToneFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.SendDtmfTonesCompleted") { + console.log("Received SendDtmfTonesCompleted event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.SendDtmfTonesFailed") { + console.log("Received SendDtmfTonesFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.RecordingStateChanged") { + console.log("Received RecordingStateChanged event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.CallTransferAccepted") { + console.log("Received CallTransferAccepted event"); + callConnectionId = eventData.callConnectionId; + } else if (event.type === "Microsoft.Communication.CallTransferFailed") { + console.log("Received CallTransferFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.HoldFailed") { + console.log("Received HoldFailed event"); + callConnectionId = eventData.callConnectionId; + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.MediaStreamingStarted") { + console.log("Received MediaStreamingStarted event"); + callConnectionId = eventData.callConnectionId; + console.log(eventData.operationContext); + console.log(eventData.mediaStreamingUpdate.contentType); + console.log(eventData.mediaStreamingUpdate.mediaStreamingStatus); + console.log(eventData.mediaStreamingUpdate.mediaStreamingStatusDetails); + } else if (event.type === "Microsoft.Communication.MediaStreamingStopped") { + console.log("Received MediaStreamingStopped event"); + callConnectionId = eventData.callConnectionId; + console.log(eventData.operationContext); + console.log(eventData.mediaStreamingUpdate.contentType); + console.log(eventData.mediaStreamingUpdate.mediaStreamingStatus); + console.log(eventData.mediaStreamingUpdate.mediaStreamingStatusDetails); + } else if (event.type === "Microsoft.Communication.MediaStreamingFailed") { + console.log("Received MediaStreamingFailed event"); + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.TranscriptionStarted") { + console.log("Received TranscriptionStarted event"); + callConnectionId = eventData.callConnectionId; + console.log(eventData.operationContext); + console.log(eventData.transcriptionUpdate.transcriptionStatus); + console.log(eventData.transcriptionUpdate.transcriptionStatusDetails); + } else if (event.type === "Microsoft.Communication.TranscriptionStopped") { + console.log("Received TranscriptionStopped event"); + callConnectionId = eventData.callConnectionId; + console.log(eventData.operationContext); + console.log(eventData.transcriptionUpdate.transcriptionStatus); + console.log(eventData.transcriptionUpdate.transcriptionStatusDetails); + } else if (event.type === "Microsoft.Communication.TranscriptionUpdated") { + console.log("Received TranscriptionUpdated event"); + callConnectionId = eventData.callConnectionId; + console.log(eventData.operationContext); + console.log(eventData.transcriptionUpdate.transcriptionStatus); + console.log(eventData.transcriptionUpdate.transcriptionStatusDetails); + } else if (event.type === "Microsoft.Communication.TranscriptionFailed") { + console.log("Received TranscriptionFailed event"); + console.log( + `Code:->${eventData.resultInformation.code}, Subcode:->${eventData.resultInformation.subCode}` + ); + console.log(`Message:->${eventData.resultInformation.message}`); + } else if (event.type === "Microsoft.Communication.CallDisconnected") { + console.log("Received CallDisconnected event"); + } + + res.sendStatus(200); +}); + +// POST endpoint to receive recording events +app.post("/api/recordingFileStatus", async (req, res) => { + const event = req.body[0]; + const eventData = event.data; + console.log(`Received ${event.eventType}`); + if (event.eventType === "Microsoft.EventGrid.SubscriptionValidationEvent") { + res.status(200).json({ + validationResponse: eventData.validationCode, + }); + } else if ( + event.eventType === "Microsoft.Communication.RecordingFileStatusUpdated" + ) { + recordingLocation = + eventData.recordingStorageInfo.recordingChunks[0].contentLocation; + recordingMetadataLocation = + eventData.recordingStorageInfo.recordingChunks[0].metadataLocation; + recordingDeleteLocation = + eventData.recordingStorageInfo.recordingChunks[0].deleteLocation; + console.log(`CONTENT LOCATION:-->${recordingLocation}`); + console.log(`METADATA LOCATION:-->${recordingMetadataLocation}`); + console.log(`DELETE LOCATION:-->${recordingDeleteLocation}`); + res.sendStatus(200); + } +}); +// GET endpoint to download call audio +app.get("/download", async (req, res) => { + if (recordingLocation === null || recordingLocation === undefined) { + console.log("Failed to download, recordingLocation is invalid."); + res.redirect("/"); + } else { + try { + // Set the appropriate response headers for the file download + res.setHeader( + "Content-Disposition", + 'attachment; filename="recording.wav"' + ); + res.setHeader("Content-Type", "audio/wav"); + const recordingStream = await acsClient + .getCallRecording() + .downloadStreaming(recordingLocation); + + // Pipe the recording stream to the response object. + recordingStream.pipe(res); + } catch (ex) { + console.log(ex); + } + } +}); + +app.get("/downloadMetadata", async (req, res) => { + if ( + recordingMetadataLocation === null || + recordingMetadataLocation === undefined + ) { + console.log( + "Failed to download metadata, recordingMetadataLocation is invalid." + ); + res.redirect("/"); + } else { + try { + res.setHeader( + "Content-Disposition", + 'attachment; filename="recordingMetadata.json"' + ); + res.setHeader("Content-Type", "application/json"); + const recordingMetadataStream = await acsClient + .getCallRecording() + .downloadStreaming(recordingMetadataLocation); + + // Pipe the recording metadata stream to the response object. + recordingMetadataStream.pipe(res); + } catch (ex) { + console.log(ex); + } + } +}); + +// GET endpoint to serve the audio file +app.get("/audioprompt/:filename", (req, res) => { + const filename = req.params.filename; + const audioFilePath = path.join(process.env.BASE_MEDIA_PATH || "", filename); + + // Read the audio file + fs.readFile(audioFilePath, (err, data) => { + if (err) { + console.error("Failed to read audio file:", err); + res.status(500).send("Internal Server Error"); + return; + } + + // Set the appropriate response headers + res.set("Content-Type", "audio/wav"); + res.set("Content-Length", data.length.toString()); + res.set("Cache-Control", "no-cache, no-store"); + res.set("Pragma", "no-cache"); + + // Send the audio file as the response + res.send(data); + }); +}); + +// GET endpoint to serve the webpage +app.get("/", (req, res) => { + res.sendFile("index.html", { root: "src/webpage" }); +}); + +// GET endpoint to place phone call +app.get("/outboundCall", async (req, res) => { + callee = { + phoneNumber: process.env.TARGET_PHONE_NUMBER || "", + }; + + await createOutboundCall(); + res.redirect("/"); +}); + +app.get("/groupCall", async (req, res) => { + await createGroupCall(); + res.redirect("/"); +}); + +app.get("/addParticipant", async (req, res) => { + await addParticipantAsync(); + res.redirect("/"); +}); + +app.get("/removeParticipant", async (req, res) => { + await removeParticipantAsync(); + res.redirect("/"); +}); + +app.get("/transferCallToParticipant", async (req, res) => { + await transferCallToParticipantAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToAllWithTextSource", async (req, res) => { + await playMediaToAllWithTextSourceAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToAllWithFileSource", async (req, res) => { + await playMediaToAllWithFileSourceAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToAllWithSSMLSource", async (req, res) => { + await playMediaToAllWithSSMLSourceAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToTargetWithTextSource", async (req, res) => { + await playMediaToTargetWithTextSourceAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToTargetWithFileSource", async (req, res) => { + await playMediaToTargetWithFileSourceAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToTargetWithSSMLSource", async (req, res) => { + await playMediaToTargetWithSSMLSourceAsync(); + res.redirect("/"); +}); + +app.get("/playMediaplayMediaToAllWithMultiplePlaySources", async (req, res) => { + await playMediaToAllWithMultiplePlaySourcesAsync(); + res.redirect("/"); +}); + +app.get( + "/playMediaplayMediaToTargetWithMultiplePlaySources", + async (req, res) => { + await playMediaToTargetWithMultiplePlaySourcesAsync(); + res.redirect("/"); + } +); + +app.get("/playMediaplayMediaToAllWithInvalidPlaySource", async (req, res) => { + await playMediaToAllWithInvalidPlaySourceAsync(); + res.redirect("/"); +}); + +app.get( + "/playMediaplayMediaToTargetWithInvalidPlaySource", + async (req, res) => { + await playMediaToTargetWithInvalidPlaySourceAsync(); + res.redirect("/"); + } +); + +app.get("/recognizeMedia", async (req, res) => { + await playRecognizeAsync(); + res.redirect("/"); +}); + +app.get("/startContinuousDtmf", async (req, res) => { + await startContinuousDtmfAsync(); + res.redirect("/"); +}); + +app.get("/stopContinuousDtmf", async (req, res) => { + await stopContinuousDtmfAsync(); + res.redirect("/"); +}); + +app.get("/sendDtmfTones", async (req, res) => { + await startSendingDtmfToneAsync(); + res.redirect("/"); +}); + +app.get("/startRecording", async (req, res) => { + await startRecordingAsync(); + res.redirect("/"); +}); + +app.get("/pauseRecording", async (req, res) => { + await pauseRecordingAsync(); + res.redirect("/"); +}); + +app.get("/resumeRecording", async (req, res) => { + await resumeRecordingAsync(); + res.redirect("/"); +}); + +app.get("/stopRecording", async (req, res) => { + await stopRecordingAsync(); + res.redirect("/"); +}); + +app.get("/startMediaStreaming", async (req, res) => { + await startMediaStreamingAsync(); + res.redirect("/"); +}); + +app.get("/stopMediaStreaming", async (req, res) => { + await stopMediaStreamingAsync(); + res.redirect("/"); +}); + +app.get("/startTranscription", async (req, res) => { + await startTranscriptionAsync(); + res.redirect("/"); +}); + +app.get("/updateTranscription", async (req, res) => { + await updateTranscriptionAsync(); + res.redirect("/"); +}); + +app.get("/stopTranscription", async (req, res) => { + await stopTranscriptionAsync(); + res.redirect("/"); +}); + +app.get("/holdParticipant", async (req, res) => { + await holdParticipantAsync(); + res.redirect("/"); +}); + +app.get("/unholdParticipant", async (req, res) => { + await unholdParticipantAsync(); + res.redirect("/"); +}); + +app.get("/playWithInterruptMediaFlag", async (req, res) => { + await playWithInterruptMediaFlagAsync(); + res.redirect("/"); +}); + +app.get("/cancelAllMediaOperation", async (req, res) => { + await cancelAllMediaOperationAsync(); + res.redirect("/"); +}); + +// Start the server +app.listen(PORT, async () => { + console.log(`Server is listening on port ${PORT}`); + await createAcsClient(); +}); diff --git a/Beta6-test-sample/src/resources/media_prompts/MainMenu.wav b/Beta6-test-sample/src/resources/media_prompts/MainMenu.wav new file mode 100644 index 0000000000000000000000000000000000000000..dfb6de0133d96bfffb0a11fabe76bd8df391cc9e GIT binary patch literal 359646 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

!0MC<;7dD-iKbpBB?{ZvZ#WFgaH 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

+#prL4Z*gF6vF+G2xX$>gdY_A}!rovg?!#Wf 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

y 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 bDUeBlObTRDAd>=_6v(7NCI$Zgp}_wFxT_!c literal 0 HcmV?d00001 diff --git a/Beta6-test-sample/src/webpage/index.html b/Beta6-test-sample/src/webpage/index.html new file mode 100644 index 00000000..b1f7cf5b --- /dev/null +++ b/Beta6-test-sample/src/webpage/index.html @@ -0,0 +1,128 @@ + + + + + + Azure Communication Services Quickstart + + + +

Azure Communication Services

+

BETA6 TEST SAMPLE

+
+
+

Create Call

+ + +
+
+

Add/Remove Participant

+ + +
+
+

Transfer Call

+ +
+
+

Play Media

+
+ + + +
+
+ + + +
+
+ + +
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + \ No newline at end of file diff --git a/Beta6-test-sample/tsconfig.json b/Beta6-test-sample/tsconfig.json new file mode 100644 index 00000000..c67252ac --- /dev/null +++ b/Beta6-test-sample/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2015", + "module": "commonjs", + "outDir": "./dist", + "rootDir": "./src", + "moduleResolution": "node", + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["./src"] +} \ No newline at end of file From 694cf937fadc07bbf00ada3485cd326ea7f0442b Mon Sep 17 00:00:00 2001 From: Shazil MS Date: Tue, 22 Apr 2025 17:13:33 +0530 Subject: [PATCH 2/2] added signaling scenrios --- Beta6-test-sample/package-lock.json | 1694 +++++++++++++++++++ Beta6-test-sample/package.json | 2 +- Beta6-test-sample/src/app.ts | 166 +- Beta6-test-sample/src/webpage/index.html | 20 +- incoming-call-recording/package-lock.json | 1784 +++++++++++++++++++++ 5 files changed, 3647 insertions(+), 19 deletions(-) create mode 100644 Beta6-test-sample/package-lock.json create mode 100644 incoming-call-recording/package-lock.json diff --git a/Beta6-test-sample/package-lock.json b/Beta6-test-sample/package-lock.json new file mode 100644 index 00000000..e46dea9c --- /dev/null +++ b/Beta6-test-sample/package-lock.json @@ -0,0 +1,1694 @@ +{ + "name": "beta6-test-sample", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "beta6-test-sample", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@azure/communication-call-automation": "file:C:\\shazil_project/azure-sdk-for-js/sdk/communication/communication-call-automation", + "@azure/communication-common": "^2.2.0", + "@azure/eventgrid": "^4.12.0", + "@types/express": "^4.17.17", + "@types/node": "^20.2.1", + "beta6-test-sample": "file:", + "dotenv": "^16.0.3", + "express": "^4.18.2" + }, + "devDependencies": { + "nodemon": "^2.0.22", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + } + }, + "../../azure-sdk-for-js/sdk/communication/communication-call-automation": { + "name": "@azure/communication-call-automation", + "version": "1.4.0-beta.2", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/communication-common": "^2.3.2-beta.2", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-paging": "^1.6.2", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.2.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.1.4", + "events": "^3.0.0", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@azure-tools/test-credential": "^2.0.0", + "@azure-tools/test-recorder": "^4.1.0", + "@azure-tools/test-utils-vitest": "^1.0.0", + "@azure-tools/vite-plugin-browser-test-map": "^1.0.0", + "@azure/communication-identity": "^1.2.0", + "@azure/communication-phone-numbers": "^1.2.0", + "@azure/dev-tool": "^1.0.0", + "@azure/eslint-plugin-azure-sdk": "^3.0.0", + "@azure/identity": "^4.5.0", + "@azure/service-bus": "^7.9.5", + "@types/node": "^18.0.0", + "@vitest/browser": "^3.0.9", + "@vitest/coverage-istanbul": "^3.0.9", + "dotenv": "^16.0.0", + "eslint": "^9.9.0", + "inherits": "^2.0.3", + "playwright": "^1.48.2", + "typescript": "~5.8.2", + "vitest": "^3.0.9" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/communication-call-automation": { + "resolved": "../../azure-sdk-for-js/sdk/communication/communication-call-automation", + "link": true + }, + "node_modules/@azure/communication-common": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@azure/communication-common/-/communication-common-2.3.1.tgz", + "integrity": "sha512-6ZQt20iMZbyckQn4m1TDwiDv3Fzyt1h4lnQ1szBBns2x3VQY9XHbnskPtvUdwK/HT+c/1PoUwof3toy1AIznbQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.2", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "events": "^3.0.0", + "jwt-decode": "^4.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/communication-common/node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz", + "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.3.tgz", + "integrity": "sha512-/wGw8fJ4mdpJ1Cum7s1S+VQyXt1ihwKLzfabS1O/RDADnmzVc01dHn44qD0BvGH6KlZNzOMW95tEpKqhkCChPA==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.19.1.tgz", + "integrity": "sha512-zHeoI3NCs53lLBbWNzQycjnYKsA1CVKlnzSNuSFcUDwBp8HHVObePxrM7HaX+Ha5Ks639H7chNC9HOaIhNS03w==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.8.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.2.0.tgz", + "integrity": "sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.11.0.tgz", + "integrity": "sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/eventgrid": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@azure/eventgrid/-/eventgrid-4.15.0.tgz", + "integrity": "sha512-E0NOeRtOSi57MzVhRWL+HwMdEjeh5SDxn9MPTnQtmukTow2EJ1KxyZuQcrHBowX4z+4l+djKHF6qU7X2e+HjrQ==", + "dependencies": { + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.5.0", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.17.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.30.tgz", + "integrity": "sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/beta6-test-sample": { + "resolved": "", + "link": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "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.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/Beta6-test-sample/package.json b/Beta6-test-sample/package.json index 5cad1b64..fb063872 100644 --- a/Beta6-test-sample/package.json +++ b/Beta6-test-sample/package.json @@ -12,7 +12,7 @@ "author": "", "license": "ISC", "dependencies": { - "@azure/communication-call-automation": "^1.4.0-alpha.20250411.1", + "@azure/communication-call-automation": "file:C:\\shazil_project/azure-sdk-for-js/sdk/communication/communication-call-automation", "@azure/communication-common": "^2.2.0", "@azure/eventgrid": "^4.12.0", "@types/express": "^4.17.17", diff --git a/Beta6-test-sample/src/app.ts b/Beta6-test-sample/src/app.ts index 41cdae8a..dc67671f 100644 --- a/Beta6-test-sample/src/app.ts +++ b/Beta6-test-sample/src/app.ts @@ -1,5 +1,6 @@ import { config } from "dotenv"; import fs, { accessSync } from "fs"; +import { Request, Response } from 'express'; import express, { Application } from "express"; import { CommunicationIdentifier, @@ -74,7 +75,7 @@ const targetPhoneNumber: PhoneNumberIdentifier = { phoneNumber: process.env.TARGET_PHONE_NUMBER.trim(), }; const participantPhoneNumber: PhoneNumberIdentifier = { - phoneNumber: process.env.TARGET_PHONE_NUMBER.trim(), + phoneNumber: process.env.PARTICIPANT_PHONE_NUMBER.trim(), }; const acsPhoneNumber: PhoneNumberIdentifier = { phoneNumber: process.env.ACS_RESOURCE_PHONE_NUMBER.trim(), @@ -100,27 +101,66 @@ async function createOutboundCall() { }, }; - const mediaStreamingOptions: MediaStreamingOptions = { + /*const mediaStreamingOptions: MediaStreamingOptions = { transportUrl: transportUrl, transportType: "websocket", contentType: "audio", audioChannelType: "unmixed", startMediaStreaming: false, - }; + };*/ - const transcriptionOptions: TranscriptionOptions = { + /*const transcriptionOptions: TranscriptionOptions = { transportUrl: transportUrl, transportType: "websocket", locale: "en-US", startTranscription: false, + };*/ + + const options: CreateCallOptions = { + callIntelligenceOptions: { + cognitiveServicesEndpoint: process.env.COGNITIVE_SERVICES_ENDPOINT, + }, + //mediaStreamingOptions: mediaStreamingOptions, + //transcriptionOptions: transcriptionOptions, + }; + console.log("Placing outbound call..."); + await acsClient.createCall( + callInvite, + process.env.CALLBACK_URI + "/api/callbacks", + options + ); +} + +async function createOutboundCallACS() { + const communicationUserId : CommunicationUserIdentifier = { + communicationUserId: "" + } + const callInvite: CallInvite = { + targetParticipant: communicationUserId , + }; + /* const mediaStreamingOptions: MediaStreamingOptions = { + transportUrl: transportUrl, + transportType: "websocket", + contentType: "audio", + audioChannelType: "unmixed", + startMediaStreaming: false, + };*/ + + /*const transcriptionOptions: TranscriptionOptions = { + transportUrl: transportUrl, + transportType: "websocket", + locale: "en-US", + startTranscription: false, + };*/ + const options: CreateCallOptions = { callIntelligenceOptions: { cognitiveServicesEndpoint: process.env.COGNITIVE_SERVICES_ENDPOINT, }, - mediaStreamingOptions: mediaStreamingOptions, - transcriptionOptions: transcriptionOptions, + //mediaStreamingOptions: mediaStreamingOptions, + //transcriptionOptions: transcriptionOptions, }; console.log("Placing outbound call..."); await acsClient.createCall( @@ -130,6 +170,21 @@ async function createOutboundCall() { ); } + + +async function getParticipantListAsync() { + const callConnection = acsClient.getCallConnection(callConnectionId); // Get the call connection using the global callConnectionId + const participants = await callConnection.listParticipants(); // Retrieve the participants + + console.log("----------------------------------------------------------------------"); + participants.values.map((participant) => { + console.log("Participant:-->", participant.identifier); + console.log("Is Participant on hold:-->", participant.isOnHold); + console.log("----------------------------------------------------------------------"); + }); + + } + async function createGroupCall() { const mediaStreamingOptions: MediaStreamingOptions = { transportUrl: transportUrl, @@ -145,15 +200,18 @@ async function createGroupCall() { locale: "en-US", startTranscription: false, }; - const targets = [targetPhoneNumber, participantPhoneNumber]; + const communicationUserId : CommunicationUserIdentifier = { + communicationUserId: "" + } + const targets = [targetPhoneNumber, communicationUserId]; const options: CreateCallOptions = { callIntelligenceOptions: { cognitiveServicesEndpoint: process.env.COGNITIVE_SERVICES_ENDPOINT, }, operationContext: "groupCallContext", sourceCallIdNumber: acsPhoneNumber, - mediaStreamingOptions: mediaStreamingOptions, - transcriptionOptions: transcriptionOptions, + //mediaStreamingOptions: mediaStreamingOptions, + //transcriptionOptions: transcriptionOptions, }; console.log("Placing outbound call..."); await acsClient.createGroupCall( @@ -163,6 +221,7 @@ async function createGroupCall() { ); } + async function getChoices() { const choices: RecognitionChoice[] = [ { @@ -180,6 +239,7 @@ async function getChoices() { return choices; } + async function hangUpCallAsync() { await acsClient.getCallConnection(callConnectionId).hangUp(false); } @@ -543,7 +603,7 @@ async function getRecordingState(recordingId: string) { console.log(`Recording current state-->${recordingState}`); } -async function addParticipantAsync() { +async function addPSTNParticipantAsync() { const isCancelAddParticipant = false; const callInvite: CallInvite = { @@ -565,13 +625,56 @@ async function addParticipantAsync() { .cancelAddParticipantOperation(response.invitationId); } } +async function addACSParticipantAsync() { + const isCancelAddParticipant = false; + + const communicationUserId : CommunicationUserIdentifier = { + communicationUserId: "" + } + const callInvite: CallInvite = { + targetParticipant: communicationUserId , + + }; + const options: AddParticipantOptions = { + operationContext: "addPstnUserContext", + invitationTimeoutInSeconds: 30, + }; + const response = await acsClient + .getCallConnection(callConnectionId) + .addParticipant(callInvite, options); + + if (isCancelAddParticipant) { + await acsClient + .getCallConnection(callConnectionId) + .cancelAddParticipantOperation(response.invitationId); + } +} -async function removeParticipantAsync() { +async function muteACSParticipantAsync() { + const communicationUserId : CommunicationUserIdentifier = { + communicationUserId: "" + } + await acsClient + .getCallConnection(callConnectionId) + .muteParticipant(communicationUserId); + console.log(`Muted ACS participant: ${communicationUserId}`); +} + + +async function removePSTNParticipantAsync() { await acsClient .getCallConnection(callConnectionId) .removeParticipant(participantPhoneNumber); } +async function removeACSParticipantAsync() { + const communicationUserId : CommunicationUserIdentifier = { + communicationUserId: "" + } + await acsClient + .getCallConnection(callConnectionId) + .removeParticipant(communicationUserId); +} async function cancelAddParticipantAsync(invitationId: string) { await acsClient .getCallConnection(callConnectionId) @@ -667,7 +770,7 @@ async function holdParticipantAsync() { const holdOptions: HoldOptions = { playSource: textSource, operationContext: "holdUserContext", - operationCallbackUri: process.env.CALLBACK_URI + "/api/callbacks", + operationCallbackUrl: process.env.CALLBACK_URI + "/api/callbacks", }; const target = GetCommunicationTarget(); await acsClient @@ -688,6 +791,7 @@ async function unholdParticipantAsync() { .unhold(target, unholdOptions); } + async function playWithInterruptMediaFlagAsync() { const textSource: TextSource = { text: "", @@ -1073,18 +1177,39 @@ app.get("/outboundCall", async (req, res) => { res.redirect("/"); }); +app.get("/outboundCallACS", async (req, res) => { + + + await createOutboundCallACS(); + res.redirect("/"); +}); app.get("/groupCall", async (req, res) => { await createGroupCall(); res.redirect("/"); }); -app.get("/addParticipant", async (req, res) => { - await addParticipantAsync(); +app.get("/addPSTNParticipant", async (req, res) => { + await addPSTNParticipantAsync(); + res.redirect("/"); +}); + +app.get("/addACSParticipant", async (req, res) => { + await addACSParticipantAsync(); res.redirect("/"); }); -app.get("/removeParticipant", async (req, res) => { - await removeParticipantAsync(); +app.get("/getParticipantListAsync", async (req, res) => { + await getParticipantListAsync(); + res.redirect("/"); +}); + +app.get("/removePSTNParticipant", async (req, res) => { + await removePSTNParticipantAsync(); + res.redirect("/"); +}); + +app.get("/removeACSParticipant", async (req, res) => { + await removeACSParticipantAsync(); res.redirect("/"); }); @@ -1103,6 +1228,10 @@ app.get("/playMediaplayMediaToAllWithFileSource", async (req, res) => { res.redirect("/"); }); +app.get("/terminateCallAsync", async (req, res) => { + await terminateCallAsync(); + res.redirect("/"); +}); app.get("/playMediaplayMediaToAllWithSSMLSource", async (req, res) => { await playMediaToAllWithSSMLSourceAsync(); res.redirect("/"); @@ -1204,6 +1333,11 @@ app.get("/startTranscription", async (req, res) => { res.redirect("/"); }); +app.get("/muteACSParticipant", async (req, res) => { + await muteACSParticipantAsync(); + res.redirect("/"); +}); + app.get("/updateTranscription", async (req, res) => { await updateTranscriptionAsync(); res.redirect("/"); diff --git a/Beta6-test-sample/src/webpage/index.html b/Beta6-test-sample/src/webpage/index.html index b1f7cf5b..51e52422 100644 --- a/Beta6-test-sample/src/webpage/index.html +++ b/Beta6-test-sample/src/webpage/index.html @@ -21,12 +21,20 @@

BETA6 TEST SAMPLE

Create Call

+

Add/Remove Participant

- - + + + + +
+
+

Mute Participant

+ +

Transfer Call

@@ -122,6 +130,14 @@

Play Media

+
+ +
+
+ +
diff --git a/incoming-call-recording/package-lock.json b/incoming-call-recording/package-lock.json new file mode 100644 index 00000000..8d13a124 --- /dev/null +++ b/incoming-call-recording/package-lock.json @@ -0,0 +1,1784 @@ +{ + "name": "incoming_call_recording", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "incoming_call_recording", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@azure/communication-call-automation": "^1.2.0-alpha.20240424.4", + "@azure/communication-common": "^2.2.0", + "@azure/eventgrid": "^4.12.0", + "@azure/openai": "^1.0.0-beta.7", + "@types/express": "^4.17.17", + "@types/node": "^20.2.1", + "dotenv": "^16.3.1", + "express": "^4.18.2", + "uuid": "^9.0.1" + }, + "devDependencies": { + "nodemon": "^3.0.2", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + } + }, + "node_modules/@azure-rest/core-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-1.4.0.tgz", + "integrity": "sha512-ozTDPBVUDR5eOnMIwhggbnVmOrka4fXCs8n8mvUo4WLLc38kki6bAOByDoVZZPz/pZy2jMt2kwfpvy/UjALj6w==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-rest-pipeline": "^1.5.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure-rest/core-client/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/communication-call-automation": { + "version": "1.2.0-alpha.20240424.4", + "resolved": "https://registry.npmjs.org/@azure/communication-call-automation/-/communication-call-automation-1.2.0-alpha.20240424.4.tgz", + "integrity": "sha512-DjOC2wl2ZxqX3WkAD5fyN+PAcGsOEWeeeG8VSVkkan0LD5AZ0khZ8KkAZf9PTl0yN0rByMH32pspd90Y4bJfPQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/communication-common": "^2.2.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.3.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.3.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", + "@azure/logger": "^1.0.0", + "events": "^3.0.0", + "tslib": "^2.2.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/communication-call-automation/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@azure/communication-common": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@azure/communication-common/-/communication-common-2.3.1.tgz", + "integrity": "sha512-6ZQt20iMZbyckQn4m1TDwiDv3Fzyt1h4lnQ1szBBns2x3VQY9XHbnskPtvUdwK/HT+c/1PoUwof3toy1AIznbQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.2", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "events": "^3.0.0", + "jwt-decode": "^4.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", + "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", + "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-paging": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz", + "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.2.tgz", + "integrity": "sha512-BmWfpjc/QXc2ipHOh6LbUzp3ONCaa6xzIssTU0DwH9bbYNXJlGUL6tujx5TrbVd/QQknmS+vlQJGrCq2oL1gZA==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-sse": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-sse/-/core-sse-2.1.2.tgz", + "integrity": "sha512-yf+pFIu8yCzXu9RbH2+8kp9vITIKJLHgkLgFNA6hxiDHK3fxeP596cHUj4c8Cm8JlooaUnYdHmF84KCZt3jbmw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", + "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", + "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/eventgrid": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@azure/eventgrid/-/eventgrid-4.15.0.tgz", + "integrity": "sha512-E0NOeRtOSi57MzVhRWL+HwMdEjeh5SDxn9MPTnQtmukTow2EJ1KxyZuQcrHBowX4z+4l+djKHF6qU7X2e+HjrQ==", + "dependencies": { + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.5.0", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@azure/eventgrid/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@azure/logger": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", + "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/openai": { + "version": "1.0.0-beta.12", + "resolved": "https://registry.npmjs.org/@azure/openai/-/openai-1.0.0-beta.12.tgz", + "integrity": "sha512-qKblxr6oVa8GsyNzY+/Ub9VmEsPYKhBrUrPaNEQiM+qrxnBPVm9kaeqGFFb/U78Q2zOabmhF9ctYt3xBW0nWnQ==", + "dependencies": { + "@azure-rest/core-client": "^1.1.7", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.13.0", + "@azure/core-sse": "^2.0.0", + "@azure/core-util": "^1.4.0", + "@azure/logger": "^1.0.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "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.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz", + "integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + } +}