4/5 questions rdy
This commit is contained in:
parent
e959a4e94b
commit
1daaff0290
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@ -6,7 +6,7 @@
|
||||
"request": "launch",
|
||||
"name": "Launch Chrome",
|
||||
"url": "http://localhost:8000",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
"webRoot": "${workspaceFolder}/client"
|
||||
},
|
||||
|
||||
{
|
||||
|
1048
client/lebensmittel.txt
Normal file
1048
client/lebensmittel.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,23 +1,26 @@
|
||||
// web speech recognition api
|
||||
// #region web speech recognition api
|
||||
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition;
|
||||
var SpeechGrammarList = SpeechGrammarList || webkitSpeechGrammarList;
|
||||
var SpeechRecognitionEvent = SpeechRecognitionEvent || webkitSpeechRecognitionEvent;
|
||||
// #endregion
|
||||
|
||||
// state management
|
||||
// #region state management
|
||||
var state = '';
|
||||
var question = 0;
|
||||
var rePrompt = false;
|
||||
var partTwo = false;
|
||||
var count = 0;
|
||||
var questionThreeCount = 0;
|
||||
var strike = 0;
|
||||
// #endregion
|
||||
|
||||
// Questions
|
||||
// #region questions
|
||||
const QUESTION_ONE = 'Ich werde Ihnen jetzt langsam eine Liste mit Worten vorlesen. Danach wiederholen Sie bitte möglichst viele dieser Worte. Auf die Reihenfolge kommt es nicht an.';
|
||||
const QUESTION_ONE_PT2 = 'Vielen Dank. Nun nenne ich Ihnen die gleichen 10 Worte ein zweites mal. Auch danach sollen Sie wieder möglichst viele Worte wiederholen';
|
||||
const QUESTION_TWO = 'Nennen Sie mir bitte so viel Dinge wie möglich, die man im Supermarkt kaufen kann. Sie haben dafür eine Minute Zeit.';
|
||||
const QUESTION_TWO = 'Nennen Sie mir bitte so viel Dinge wie möglich, die man im Supermarkt kaufen kann. Sie haben dafür eine Minute Zeit. Und Los';
|
||||
const QUESTION_THREE = 'Ich werde Ihnen jetzt eine Zahlenreihe nennen, die Sie mir dann bitte in umgekehrter Reihenfolge wiederholen sollen. Wenn ich beispielsweise, vier - fünf sage, dann sagen Sie bitte, fünf - vier.';
|
||||
// #endregion
|
||||
|
||||
// intents
|
||||
// #region intents
|
||||
const WELCOME_INTENT = 'Default Welcome Intent';
|
||||
const WELCOME_FOLLOWUP_YES = 'Default Welcome Intent - yes';
|
||||
const WELCOME_FOLLOWUP_NO = 'Default Welcome Intent - no';
|
||||
@ -29,24 +32,48 @@ const FALLBACK_INTENT = 'Default Fallback Intent';
|
||||
const HELP_INTENT = 'Help Intent';
|
||||
const CHOOSE_QUESTION = 'Frage_Starten';
|
||||
const NEXT_QUESTION = 'Nächste Frage';
|
||||
// #endregion
|
||||
|
||||
// question one results
|
||||
const QUESTION_ONE_ANSWERS = ['teller', 'hund', 'lampe', 'brief', 'apfel', 'apfelwiese', 'apfelwiese', 'apfelbaum', 'apfelbaum', 'und', 'hose', 'tisch', 'wiese', 'glas', 'baum'];
|
||||
// #region questions and expected results
|
||||
const QUESTION_ONE_ANSWERS = { 'teller': 1, 'hund': 1, 'lampe': 1, 'brief': 1, 'apfel': 1, 'apfelwiese': 2, 'apfelbaum': 2, 'und': 1, 'hose': 1, 'tisch': 1, 'wiese': 1, 'glas': 1, 'baum': 1 };
|
||||
const QUESTION_ONE_QUESTIONS = ['teller', 'hund', 'lampe', 'brief', 'apfel', 'hose', 'tisch', 'wiese', 'glas', 'baum'];
|
||||
const QUESTION_TWO_ANSWERS = [''];
|
||||
const QUESTION_TWO_QUESTIONS = [''];
|
||||
const QUESTION_TWO_ANSWERS = {};
|
||||
var QUESTION_TWO_QUESTIONS = [''];
|
||||
const QUESTION_THREE_QUESTIONS_PT1 = ['7, 2', '4, 7, 9', '5, 4, 9, 6', '2, 7, 5, 3, 6', '8, 1, 3, 5, 4, 2'];
|
||||
const QUESTION_THREE_QUESTIONS_PT2 = ['8, 6', '3, 1, 5', '1, 9, 7, 4', '1, 3, 5, 4, 8', '4, 1, 2, 7, 9, 5'];
|
||||
const QUESTION_THREE_ANSWERS_PT1 = ['27', '974', '6945', '63572', '245318'];
|
||||
const QUESTION_THREE_ANSWERS_PT2 = ['68', '513', '4791', '84531', '597214'];
|
||||
LoadQuestionTwo();
|
||||
function LoadQuestionTwo () {
|
||||
var xmlhttp;
|
||||
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
} else { // code for IE6, IE5
|
||||
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
|
||||
}
|
||||
xmlhttp.onreadystatechange = function () {
|
||||
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
|
||||
var text = xmlhttp.responseText.toLowerCase();
|
||||
// Now convert it into array using regex
|
||||
QUESTION_TWO_QUESTIONS = text.split('\r\n');
|
||||
for (let word of QUESTION_TWO_QUESTIONS) {
|
||||
QUESTION_TWO_ANSWERS[word] = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
xmlhttp.open('GET', 'lebensmittel.txt', true);
|
||||
xmlhttp.send();
|
||||
}
|
||||
// #endregion
|
||||
|
||||
// points
|
||||
// #region points
|
||||
var questionOnePoints = 0;
|
||||
var questionTwoPoints = 0;
|
||||
var questionThreePoints = 0;
|
||||
var questionFourPoints = 0;
|
||||
var questionFivePoints = 0;
|
||||
var questionSixPoints = 0;
|
||||
// #endregion
|
||||
|
||||
// tokenization
|
||||
const separators = [' ', '\\\+', '-', '\\\(', '\\\)', '\\*', '/', ':', '\\\?'];
|
||||
@ -54,20 +81,19 @@ const separators = [' ', '\\\+', '-', '\\\(', '\\\)', '\\*', '/', ':', '\\\?'];
|
||||
// Timers
|
||||
var timerId;
|
||||
|
||||
// html elements
|
||||
// #region html elements
|
||||
var serverPara = document.querySelector('.server');
|
||||
var diagnosticPara = document.querySelector('.output');
|
||||
var testBtn = document.querySelector('button');
|
||||
var testBtn2 = document.getElementById('speechBtn');
|
||||
var infoPara = document.getElementById('info');
|
||||
var userPrompt = document.getElementById('query');
|
||||
|
||||
console.log(window.location.host + window.location.pathname);
|
||||
// #endregion
|
||||
|
||||
// websocket to communicate with the server
|
||||
var ws = new WebSocket('ws://localhost:8000/ws');
|
||||
var ws = new WebSocket('ws://' + window.location.host + window.location.pathname + 'ws');
|
||||
|
||||
// speech recognition
|
||||
// #region speech recognition initialization
|
||||
var recognition = new SpeechRecognition();
|
||||
recognition.lang = 'de-DE';
|
||||
// recognition.interimResults = false;
|
||||
@ -75,12 +101,15 @@ recognition.maxAlternatives = 1;
|
||||
recognition.continuous = true;
|
||||
var answerQuery = '';
|
||||
var skipRecording = false;
|
||||
// #endregion
|
||||
|
||||
// speech synthesis
|
||||
// #region speech synthesis initialization
|
||||
var speechsynth = new SpeechSynthesisUtterance();
|
||||
var listSpeechsynth = new SpeechSynthesisUtterance();
|
||||
var voices;
|
||||
// #endregion
|
||||
|
||||
// #region speech events
|
||||
window.speechSynthesis.onvoiceschanged = function () {
|
||||
voices = window.speechSynthesis.getVoices();
|
||||
voices.forEach(element => {
|
||||
@ -93,46 +122,29 @@ window.speechSynthesis.onvoiceschanged = function () {
|
||||
listSpeechsynth.rate = 0.7;
|
||||
};
|
||||
|
||||
function startDemenzScreening () {
|
||||
console.log('button clicked');
|
||||
ws.send('starte demenz test');
|
||||
//
|
||||
// state = 'answer'
|
||||
// recognizeSpeech()
|
||||
|
||||
//
|
||||
testBtn.disabled = true;
|
||||
testBtn.textContent = 'Test in progress';
|
||||
infoPara.textContent = 'wait...';
|
||||
speechsynth.onend = function (event) {
|
||||
switch (question) {
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
|
||||
function speak (sentence) {
|
||||
speechsynth.text = sentence;
|
||||
window.speechSynthesis.speak(speechsynth);
|
||||
if (!skipRecording) {
|
||||
recognizeSpeech();
|
||||
}
|
||||
skipRecording = false;
|
||||
diagnosticPara = '';
|
||||
console.log('global speech end');
|
||||
};
|
||||
// #endregion
|
||||
|
||||
function testSpeechOut () {
|
||||
console.log('click');
|
||||
// skipRecording = true
|
||||
// let utterance = new SpeechSynthesisUtterance()
|
||||
// utterance.voice = voices[2]
|
||||
// // utterance.rate = 0.75
|
||||
// utterance.text = QUESTION_THREE
|
||||
// window.speechSynthesis.speak(utterance)
|
||||
//
|
||||
// question = 3;
|
||||
// startQuestion(question);
|
||||
// state = 'answer';
|
||||
speechsynth.text = 'test 123';
|
||||
speechsynth.volume = 1;
|
||||
speechsynth.rate = 1;
|
||||
console.log(speechsynth);
|
||||
window.speechSynthesis.speak(speechsynth);
|
||||
console.log(window.speechSynthesis);
|
||||
// speak('Niko ist der größte hurn eu west');
|
||||
}
|
||||
|
||||
// websocket events
|
||||
// #region websocket events
|
||||
ws.onopen = function () {
|
||||
serverPara.style.background = 'green';
|
||||
serverPara.innerHTML = 'Server online';
|
||||
@ -143,22 +155,26 @@ ws.onmessage = function (payload) {
|
||||
checkIntent(dialogflowResult);
|
||||
document.querySelector('h1').innerHTML = dialogflowResult.intent.displayName;
|
||||
};
|
||||
// #endregion
|
||||
|
||||
// INTENT HANDLING
|
||||
function checkIntent (result) {
|
||||
switch (result.intent.displayName) {
|
||||
case QUIT_INTENT:
|
||||
state = 'quit';
|
||||
if (timerId !== undefined) {
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
skipRecording = true;
|
||||
speak('Okay, Danke fürs Benutzen.');
|
||||
speak('Beende die Durchführung.');
|
||||
break;
|
||||
case WELCOME_INTENT:
|
||||
state = 'detect';
|
||||
// speak(result.fulfillmentText)
|
||||
speak('go?');
|
||||
speak('go');
|
||||
break;
|
||||
case WELCOME_FOLLOWUP_YES:
|
||||
startQuestion(1);
|
||||
startQuestion(2);
|
||||
break;
|
||||
case WELCOME_FOLLOWUP_NO:
|
||||
skipRecording = true;
|
||||
@ -195,25 +211,25 @@ function checkIntent (result) {
|
||||
}
|
||||
}
|
||||
|
||||
// #region question handling
|
||||
function startQuestion (number) {
|
||||
question = number;
|
||||
state = 'answer';
|
||||
handleQuestion();
|
||||
}
|
||||
|
||||
// QUESTION HANDLING
|
||||
function handleQuestion () {
|
||||
switch (question) {
|
||||
case 1:
|
||||
readQuestionOne(QUESTION_ONE);
|
||||
skipRecording = true;
|
||||
speak(QUESTION_ONE);
|
||||
readQuestionOne();
|
||||
break;
|
||||
case 2:
|
||||
readQuestionTwo(QUESTION_TWO);
|
||||
readQuestionTwo();
|
||||
break;
|
||||
case 3:
|
||||
// skipRecording = true;
|
||||
// speak(QUESTION_THREE);
|
||||
speak(QUESTION_THREE_QUESTIONS_PT1[0]);
|
||||
readQuestionThree();
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
@ -222,6 +238,52 @@ function handleQuestion () {
|
||||
}
|
||||
}
|
||||
|
||||
function readQuestionOne () {
|
||||
for (let i = 0; i < QUESTION_ONE_QUESTIONS.length; i++) {
|
||||
let utterance = new SpeechSynthesisUtterance();
|
||||
utterance.voice = voices[2];
|
||||
utterance.rate = 0.75;
|
||||
utterance.text = QUESTION_ONE_QUESTIONS[i];
|
||||
window.speechSynthesis.speak(utterance);
|
||||
if (i === 9) {
|
||||
utterance.onend = function (event) {
|
||||
recognizeSpeech();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function readQuestionTwo () {
|
||||
let utterance = new SpeechSynthesisUtterance();
|
||||
utterance.voice = voices[2];
|
||||
utterance.text = QUESTION_TWO;
|
||||
window.speechSynthesis.speak(utterance);
|
||||
utterance.onend = function (event) {
|
||||
window.setTimeout(
|
||||
function () {
|
||||
recognition.stop();
|
||||
handleAnswer(answerQuery);
|
||||
}, 6000);
|
||||
recognizeSpeech();
|
||||
};
|
||||
}
|
||||
|
||||
function readQuestionThree () {
|
||||
recognition = false;
|
||||
speak('Dankeschön. Weiter geht es mit der nächsten Frage. ');
|
||||
let utterance = new SpeechSynthesisUtterance();
|
||||
utterance.voice = voices[2];
|
||||
utterance.text = QUESTION_THREE;
|
||||
window.speechSynthesis.speak(utterance);
|
||||
utterance.onend = function (event) {
|
||||
console.log('speach end');
|
||||
speak(QUESTION_THREE_QUESTIONS_PT1[questionThreeCount]);
|
||||
};
|
||||
utterance.onerror = function (event) {
|
||||
console.log('An error has occurred with the speech synthesis: ' + event.error);
|
||||
};
|
||||
}
|
||||
|
||||
function handleAnswer (query) {
|
||||
switch (question) {
|
||||
case 1:
|
||||
@ -242,14 +304,18 @@ function handleAnswer (query) {
|
||||
|
||||
function handleAnswerToFirstQuestion (answer) {
|
||||
var tokens = answer.split(new RegExp(separators.join('|'), 'g'));
|
||||
questionOnePoints = calculatePoints(tokens, QUESTION_ONE_ANSWERS);
|
||||
questionOnePoints += calculatePoints(tokens, QUESTION_ONE_ANSWERS);
|
||||
if (partTwo) {
|
||||
partTwo = false;
|
||||
skipRecording = true;
|
||||
speak('Vielen Dank, nun geht es weiter mit der nächsten Frage');
|
||||
startQuestion(2);
|
||||
// state = 'detect'
|
||||
} else {
|
||||
rePrompt = false;
|
||||
skipRecording = true;
|
||||
speak(QUESTION_ONE_PT2);
|
||||
readQuestionOne(QUESTION_ONE);
|
||||
partTwo = true;
|
||||
}
|
||||
}
|
||||
@ -257,8 +323,6 @@ function handleAnswerToFirstQuestion (answer) {
|
||||
function handleAnswerToSecondQuestion (answer) {
|
||||
var tokens = answer.split(new RegExp(separators.join('|'), 'g'));
|
||||
questionTwoPoints = calculatePoints(tokens, QUESTION_TWO_ANSWERS);
|
||||
skipRecording = true;
|
||||
speak('Sie haben ' + questionOnePoints + 'Punkte');
|
||||
startQuestion(3);
|
||||
// state = 'detect'
|
||||
}
|
||||
@ -274,11 +338,11 @@ function handleAnswerToThirdQuestion (query) {
|
||||
} else {
|
||||
answerArray = QUESTION_THREE_ANSWERS_PT2;
|
||||
}
|
||||
if (query === answerArray[count]) {
|
||||
if (query === answerArray[questionThreeCount]) {
|
||||
strike = 0;
|
||||
partTwo = false;
|
||||
count++;
|
||||
questionThreePoints = count + 1;
|
||||
questionThreeCount++;
|
||||
questionThreePoints = questionThreeCount + 1;
|
||||
questionArray = QUESTION_THREE_QUESTIONS_PT1;
|
||||
} else {
|
||||
strike++;
|
||||
@ -286,7 +350,7 @@ function handleAnswerToThirdQuestion (query) {
|
||||
questionArray = QUESTION_THREE_QUESTIONS_PT2;
|
||||
}
|
||||
|
||||
if (strike === 2 || count === 5) {
|
||||
if (strike === 2 || questionThreeCount === 5) {
|
||||
speechsynth.rate = 1;
|
||||
skipRecording = true;
|
||||
speak('weiter geht es mit der Nächsten Frage');
|
||||
@ -294,104 +358,63 @@ function handleAnswerToThirdQuestion (query) {
|
||||
return;
|
||||
}
|
||||
|
||||
speak(questionArray[count]);
|
||||
speak(questionArray[questionThreeCount]);
|
||||
|
||||
console.log('count: ' + count + ', strike: ' + strike + ', points: ' + questionThreePoints);
|
||||
console.log('count: ' + questionThreeCount + ', strike: ' + strike + ', points: ' + questionThreePoints);
|
||||
}
|
||||
// #endregion
|
||||
|
||||
// #region global functions
|
||||
function startDemenzScreening () {
|
||||
// ws.send('starte demenz test');
|
||||
startQuestion(3);
|
||||
testBtn.disabled = true;
|
||||
testBtn.textContent = 'Test in progress';
|
||||
infoPara.textContent = 'wait...';
|
||||
diagnosticPara.textContent = 'detecting...';
|
||||
}
|
||||
|
||||
// Question specific functions
|
||||
function readQuestionOne (text) {
|
||||
skipRecording = true;
|
||||
speak(text);
|
||||
for (let i = 0; i < QUESTION_ONE_QUESTIONS.length; i++) {
|
||||
let utterance = new SpeechSynthesisUtterance();
|
||||
utterance.voice = voices[2];
|
||||
utterance.rate = 0.75;
|
||||
utterance.text = QUESTION_ONE_QUESTIONS[i];
|
||||
window.speechSynthesis.speak(utterance);
|
||||
if (i === 9) {
|
||||
utterance.onend = function (event) {
|
||||
console.log('end of aufzählung' + i);
|
||||
recognizeSpeech();
|
||||
};
|
||||
}
|
||||
}
|
||||
function speak (sentence) {
|
||||
speechsynth.text = sentence;
|
||||
window.speechSynthesis.speak(speechsynth);
|
||||
}
|
||||
|
||||
function readQuestionTwo (text) {
|
||||
let utterance = new SpeechSynthesisUtterance();
|
||||
utterance.voice = voices[2];
|
||||
utterance.text = text;
|
||||
window.speechSynthesis.speak(utterance);
|
||||
console.log('q 2 started');
|
||||
utterance.onend = function (event) {
|
||||
window.setTimeout(
|
||||
function () {
|
||||
recognition.stop();
|
||||
handleAnswer(answerQuery);
|
||||
}, 60000);
|
||||
console.log('q 2 recognition started');
|
||||
recognizeSpeech();
|
||||
};
|
||||
function testSpeechOut () {
|
||||
console.log('click');
|
||||
speechsynth.text = 'test 123';
|
||||
speechsynth.volume = 1;
|
||||
speechsynth.rate = 1;
|
||||
console.log(speechsynth);
|
||||
window.speechSynthesis.speak(speechsynth);
|
||||
console.log(window.speechSynthesis);
|
||||
}
|
||||
|
||||
function calculatePoints (tokens, array) {
|
||||
let points = 0;
|
||||
for (let i of array) {
|
||||
for (let j of tokens) {
|
||||
if (i === j) {
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return points;
|
||||
}
|
||||
|
||||
speechsynth.onend = function (event) {
|
||||
switch (question) {
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
if (!skipRecording) {
|
||||
recognizeSpeech();
|
||||
}
|
||||
skipRecording = false;
|
||||
console.log('global speech end');
|
||||
};
|
||||
|
||||
function recognizeSpeech () {
|
||||
if (state === 'answer') {
|
||||
var arr;
|
||||
switch (question) {
|
||||
case 1:
|
||||
arr = QUESTION_ONE_QUESTIONS;
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
case 3:
|
||||
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
// if (state === 'answer') {
|
||||
// var arr;
|
||||
// switch (question) {
|
||||
// case 1:
|
||||
// arr = QUESTION_ONE_QUESTIONS;
|
||||
// break;
|
||||
// case 2:
|
||||
// // arr = QUESTION_TWO_QUESTIONS;
|
||||
// break;
|
||||
// case 3:
|
||||
// arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
// break;
|
||||
// case 4:
|
||||
// break;
|
||||
// case 5:
|
||||
// break;
|
||||
// }
|
||||
|
||||
var grammar = '#JSGF V1.0; grammar colors; public <color> = ' + arr.join(' | ') + ' ;';
|
||||
var speechRecognitionList = new SpeechGrammarList();
|
||||
speechRecognitionList.addFromString(grammar, 1);
|
||||
recognition.grammars = speechRecognitionList;
|
||||
}
|
||||
// // var grammar = '#JSGF V1.0; grammar colors; public <color> = ' + arr.join(' | ') + ' ;';
|
||||
// // var speechRecognitionList = new SpeechGrammarList();
|
||||
// // speechRecognitionList.addFromString(grammar, 1);
|
||||
// // recognition.grammars = speechRecognitionList;
|
||||
// }
|
||||
recognition.start();
|
||||
console.log('reocgnition started');
|
||||
console.log('reocgnition started. Question: ' + question);
|
||||
|
||||
recognition.onresult = function (event) {
|
||||
var last = event.results.length - 1;
|
||||
@ -400,7 +423,7 @@ function recognizeSpeech () {
|
||||
diagnosticPara.textContent += speechResult + ' ';
|
||||
|
||||
// console.log('Confidence: ' + event.results[0][0].confidence)
|
||||
|
||||
console.log('process: ' + speechResult);
|
||||
processSpeech(speechResult);
|
||||
// testBtn.disabled = false
|
||||
// testBtn.textContent = 'record...'
|
||||
@ -427,6 +450,7 @@ function recognizeSpeech () {
|
||||
case 4:
|
||||
break;
|
||||
case 5:
|
||||
timeOut = 6500;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -505,5 +529,16 @@ function recognizeSpeech () {
|
||||
};
|
||||
}
|
||||
|
||||
function calculatePoints (tokens, dict) {
|
||||
let points = 0;
|
||||
for (let word of tokens) {
|
||||
if (dict[word] !== undefined) {
|
||||
points += dict[word];
|
||||
}
|
||||
}
|
||||
return points;
|
||||
}
|
||||
// #endregion
|
||||
|
||||
testBtn.addEventListener('click', startDemenzScreening);
|
||||
testBtn2.addEventListener('click', testSpeechOut);
|
||||
|
596
lebensmittel.txt
596
lebensmittel.txt
@ -1,596 +0,0 @@
|
||||
Aalsuppe
|
||||
Agavendicksaft
|
||||
Ahornsirup
|
||||
Ajvar
|
||||
Ananas
|
||||
Anis
|
||||
Anona
|
||||
Apfel
|
||||
Apfelkompott
|
||||
Apfelkraut
|
||||
Apfelsine
|
||||
Aprikose
|
||||
Artischocke
|
||||
Artischockenherz
|
||||
Aubergine
|
||||
Auflauf
|
||||
Austernpilz
|
||||
Avocado
|
||||
Backaroma
|
||||
Backfett
|
||||
Backware
|
||||
Backwerk
|
||||
Baiser
|
||||
Balsamessig
|
||||
Balsamico
|
||||
Banane
|
||||
Basilikum
|
||||
Bauernbrot
|
||||
Bergkäse
|
||||
Bienenstich
|
||||
Birne
|
||||
Biskuitteig
|
||||
Bitterschokolade
|
||||
Blattsalat
|
||||
Blattspinat
|
||||
Blaubeere
|
||||
Blaukohl
|
||||
Blaukraut
|
||||
Blauschimmelkäse
|
||||
Blätterteig
|
||||
Blumenkohl
|
||||
Blutorange
|
||||
Blutwurst
|
||||
Blütenhonig
|
||||
Bockwurst
|
||||
Bohne
|
||||
Bohnenkraut
|
||||
Bohnensuppe
|
||||
Borschtsch
|
||||
Boskop
|
||||
Bouillon
|
||||
Bouillonwürfel
|
||||
Bratapfel
|
||||
Bratwurst
|
||||
Broccoli
|
||||
Brokkoli
|
||||
Brombeere
|
||||
Brot
|
||||
Brotaufstrich
|
||||
Brotsuppe
|
||||
Brotteig
|
||||
Brunnenkresse
|
||||
Brühwürfel
|
||||
Buchweizen
|
||||
Butter
|
||||
Buttercreme
|
||||
Buttergebäck
|
||||
Butterkäse
|
||||
Butterkeks
|
||||
Butterpilz
|
||||
Büchsenmilch
|
||||
Béchamelsauce
|
||||
Béchamelsoße
|
||||
Calzone
|
||||
Camembert
|
||||
Cannelloni
|
||||
Cashew
|
||||
Cashewnuss
|
||||
Cayennepfeffer
|
||||
Champignon
|
||||
Cheddarkäse
|
||||
Chester
|
||||
Chesterkäse
|
||||
Chicorée
|
||||
Chili
|
||||
Chilisauce
|
||||
Chilisoße
|
||||
Chinakohl
|
||||
Chorizo
|
||||
Christstollen
|
||||
Ciabatta
|
||||
Citrusfrucht
|
||||
Clementine
|
||||
Consommé
|
||||
Cookie
|
||||
Corned beef
|
||||
Cornflakes
|
||||
Couscous
|
||||
Cranberry
|
||||
Croissant
|
||||
Crème fraîche
|
||||
Curry
|
||||
Currypulver
|
||||
Currysauce
|
||||
Currysoße
|
||||
Currywurst
|
||||
Dattel
|
||||
Dattelpflaume
|
||||
Datteltraube
|
||||
Dauerwurst
|
||||
Delikatesse
|
||||
Delikatessgurke
|
||||
Delikatesssenf
|
||||
Dessert
|
||||
Diätzucker
|
||||
Dickmilch
|
||||
Dill
|
||||
Dinkel
|
||||
Dinkelmehl
|
||||
Distelöl
|
||||
Dominostein
|
||||
Dosenfleisch
|
||||
Dosenmilch
|
||||
Dosensuppe
|
||||
Dosenwurst
|
||||
Döner
|
||||
Dörrfleisch
|
||||
Dörrgemüse
|
||||
Dörrobst
|
||||
Dörrpflaume
|
||||
Dressing
|
||||
Drops
|
||||
Edamer
|
||||
Edamer Käse
|
||||
Edelpilzkäse
|
||||
Ei
|
||||
Eierkuchen
|
||||
Eigelb
|
||||
Einbrennsuppe
|
||||
Eingemachtes
|
||||
Eingetropftes
|
||||
Eintopf
|
||||
Eisbergsalat
|
||||
Emmentaler
|
||||
Ente
|
||||
Entenklein
|
||||
Erbse
|
||||
Erbsensuppe
|
||||
Erdbeere
|
||||
Erdnuss
|
||||
Erdnussbutter
|
||||
Erdnussflip
|
||||
Erdnussmus
|
||||
Erdnussöl
|
||||
Esrom
|
||||
Essen
|
||||
Essig
|
||||
Essiggurke
|
||||
Esskastanie
|
||||
Esswaren
|
||||
Estragon
|
||||
Feige
|
||||
Feinbackwaren
|
||||
Feingebäck
|
||||
Feinkost
|
||||
Felchen
|
||||
Feldbohne
|
||||
Feldfrucht
|
||||
Feldsalat
|
||||
Fenchel
|
||||
Feta
|
||||
Fett
|
||||
Fettuccine
|
||||
Filet
|
||||
Fisch
|
||||
Fischfilet
|
||||
Fischkonserve
|
||||
Fischrogen
|
||||
Fischstäbchen
|
||||
Fischsuppe
|
||||
Fladenbrot
|
||||
Flammkuchen
|
||||
Flädlesuppe
|
||||
Flädlisuppe
|
||||
Fleckerlsuppe
|
||||
Fleischbrühe
|
||||
Fleischkonserve
|
||||
Fleischsuppe
|
||||
Fliederbeere
|
||||
Fliederbeersuppe
|
||||
Florentiner
|
||||
Foie gras
|
||||
Frankfurter
|
||||
Frischkäse
|
||||
Frittatensuppe
|
||||
Frozen Yoghurt
|
||||
Frucht
|
||||
Fruchtbonbon
|
||||
Fruchteis
|
||||
Fruchtjoghurt
|
||||
Fruchtjogurt
|
||||
Früchtebrot
|
||||
Früchtequark
|
||||
Frühlingsrolle
|
||||
Frühlingssuppe
|
||||
Frühlingszwiebel
|
||||
Frühstücksbrot
|
||||
Fufu
|
||||
Garnele
|
||||
Gebäck
|
||||
Gehacktes
|
||||
Gelee
|
||||
Gemüsesuppe
|
||||
Gemüsezwiebel
|
||||
Gerste
|
||||
Gerstensuppe
|
||||
Gerstlsuppe
|
||||
Getreide
|
||||
Gewürz
|
||||
Gewürzgurke
|
||||
Gorgonzola
|
||||
Gouda
|
||||
Graupe
|
||||
Graupensuppe
|
||||
Greyerzer
|
||||
Grieß
|
||||
Grießbrei
|
||||
Grießkloß
|
||||
Grießklößchen
|
||||
Grießknödel
|
||||
Grießmehl
|
||||
Grießnockerl
|
||||
Grießpudding
|
||||
Grießschmarren
|
||||
Grießsuppe
|
||||
Grünkohl
|
||||
Gulasch
|
||||
Gulaschsuppe
|
||||
Gurke
|
||||
Gyros
|
||||
Hackepeter
|
||||
Hackfleisch
|
||||
Hafer
|
||||
Haferflocken
|
||||
Hagebutte
|
||||
Haifischflossensuppe
|
||||
Hartkäse
|
||||
Harzer
|
||||
Haselnuss
|
||||
Hefe
|
||||
Hefezopf
|
||||
Heidelbeere
|
||||
Hering
|
||||
Heringssalat
|
||||
Hibiskustee
|
||||
Himbeere
|
||||
Himbeereis
|
||||
Hirse
|
||||
Holunderblütensirup
|
||||
Honig
|
||||
Honigkuchen
|
||||
Honigmelone
|
||||
Hummer
|
||||
Hummersuppe
|
||||
Hummus
|
||||
Hühnerfleisch
|
||||
Igel
|
||||
Ingwer
|
||||
Instantsuppe
|
||||
Jagdwurst
|
||||
Jasmintee
|
||||
Jägersuppe
|
||||
Joghurt
|
||||
Johannisbeere
|
||||
Johannisbrot
|
||||
Julienne
|
||||
Juliennesuppe
|
||||
Kakaopulver
|
||||
Kaki
|
||||
Kaltschale
|
||||
Kandis
|
||||
Kandiszucker
|
||||
Karamell
|
||||
Karamellbonbon
|
||||
Kardamom
|
||||
Karotte
|
||||
Kartoffel
|
||||
Kartoffelchip
|
||||
Kartoffeln
|
||||
Kartoffelsuppe
|
||||
Käse
|
||||
Käsebrötchen
|
||||
Käsekuchen
|
||||
Keks
|
||||
Kirsche
|
||||
Kiwi
|
||||
Knoblauch
|
||||
Knoblauchbutter
|
||||
Knoblauchöl
|
||||
Knoblauchpulver
|
||||
Knoblauchsalz
|
||||
Knoblauchsoße
|
||||
Knoblauchwurst
|
||||
Kohl
|
||||
Kohlroulade
|
||||
Koriander
|
||||
Krakauer
|
||||
Krankensuppe
|
||||
Krapfen
|
||||
Kraut
|
||||
Kräuterbutter
|
||||
Kräuterkäse
|
||||
Krebsfleisch
|
||||
Krebssuppe
|
||||
Kreplach
|
||||
Kreuzkümmel
|
||||
Kuchen
|
||||
Kurkuma
|
||||
Kümmel
|
||||
Kürbis
|
||||
Kürbiskern
|
||||
Kürbiskernbrot
|
||||
Kürbissuppe
|
||||
Labskaus
|
||||
Lachs
|
||||
Lammfleisch
|
||||
Languste
|
||||
Lauch
|
||||
Lauchzwiebel
|
||||
Lebensmittel
|
||||
Leberwurst
|
||||
Lebkuchen
|
||||
Lebkuchengewürz
|
||||
Limburger
|
||||
Limette
|
||||
Linguine
|
||||
Linse
|
||||
Linsensuppe
|
||||
Lorbeerblatt
|
||||
Magermilchpulver
|
||||
Mais
|
||||
Maisgrieß
|
||||
Maiskolben
|
||||
Maismehl
|
||||
Majoran
|
||||
Mandarine
|
||||
Mandel
|
||||
Mandelkern
|
||||
Mango
|
||||
Maniok
|
||||
Maracuja
|
||||
Margarine
|
||||
Marmelade
|
||||
Marmorkuchen
|
||||
Marzipan
|
||||
Mascarpone
|
||||
Matcha
|
||||
Meerrettich
|
||||
Mehl
|
||||
Melone
|
||||
Mett
|
||||
Mettwurst
|
||||
Milchpulver
|
||||
Milchsuppe
|
||||
Mohn
|
||||
Mohnbrötchen
|
||||
Mozzarella
|
||||
Möhre
|
||||
Mus
|
||||
Müsli
|
||||
Nektarinen
|
||||
Nockerl
|
||||
Nockerlsuppe
|
||||
Noisette
|
||||
Noisetteschokolade
|
||||
Nudeln
|
||||
Nugat
|
||||
Nuss
|
||||
Nusskuchen
|
||||
Nussschinken
|
||||
Nussschokolade
|
||||
Obst
|
||||
Obstkuchen
|
||||
Okroschka
|
||||
Olive
|
||||
Olivenöl
|
||||
Omelett
|
||||
Orange
|
||||
Orangeat
|
||||
Oregano
|
||||
Pampelmuse
|
||||
Panadelsuppe
|
||||
Paprika
|
||||
Paranuss
|
||||
Parmesankäse
|
||||
Pasta
|
||||
Pastete
|
||||
Pastinake
|
||||
Pecannuss
|
||||
Pekannuss
|
||||
Peperoni
|
||||
Persillade
|
||||
Pesto
|
||||
Petersilie
|
||||
Pfannkuchen
|
||||
Pfeffer
|
||||
Pfefferkuchen
|
||||
Pferdefleisch
|
||||
Pfifferling
|
||||
Pfirsich
|
||||
Pflaume
|
||||
Pilz
|
||||
Pilzsuppe
|
||||
Piment
|
||||
Pinienkerne
|
||||
Pistazie
|
||||
Pita
|
||||
Pitabrot
|
||||
Pizza
|
||||
Plätzchen
|
||||
Polenta
|
||||
Pommes frites
|
||||
Porridge
|
||||
Posaunensuppe
|
||||
Potage
|
||||
Preiselbeere
|
||||
Puderzucker
|
||||
Puffreis
|
||||
Pumpernickel
|
||||
Putenfleisch
|
||||
Quark
|
||||
Quarkbällchen
|
||||
Quarktasche
|
||||
Quiche
|
||||
Quitte
|
||||
Radicchio
|
||||
Radieschen
|
||||
Rahm
|
||||
Rahmsuppe
|
||||
Ramen
|
||||
Ravioli
|
||||
Räucherlachs
|
||||
Reis
|
||||
Reissuppe
|
||||
Remoulade
|
||||
Rettich
|
||||
Rhabarber
|
||||
Ricotta
|
||||
Rindfleisch
|
||||
Rindfleischsuppe
|
||||
Roggen
|
||||
Roggenbrot
|
||||
Rohkost
|
||||
Rohrzucker
|
||||
Rollmops
|
||||
Romadur
|
||||
Rosenkohl
|
||||
Rosine
|
||||
Rosinenkuchen
|
||||
Rosinenschnecke
|
||||
Rosmarin
|
||||
Rote Beete
|
||||
Rotkohl
|
||||
Rotkraut
|
||||
Rotschimmelkäse
|
||||
Rucola
|
||||
Rumfordsuppe
|
||||
Rumkugel
|
||||
Rübe
|
||||
Rübenkraut
|
||||
Rübenzucker
|
||||
Salami
|
||||
Salatgurke
|
||||
Salbei
|
||||
Salz
|
||||
Salzbrezel
|
||||
Salzgurke
|
||||
Salzstange
|
||||
Sauerkraut
|
||||
Sauermilch
|
||||
Sauermilchquark
|
||||
Sauerrahm
|
||||
Schafskäse
|
||||
Schalotte
|
||||
Schildkrötensuppe
|
||||
Schinken
|
||||
Schleimsuppe
|
||||
Schmorbraten
|
||||
Schnittlauch
|
||||
Schokolade
|
||||
Schwalbennestersuppe
|
||||
Schwarzbrot
|
||||
Schwarzkümmel
|
||||
Schwarzwurzel
|
||||
Schweinefleisch
|
||||
Seitan
|
||||
Sellerie
|
||||
Senf
|
||||
Senfgurke
|
||||
Sesam
|
||||
Sesambrötchen
|
||||
Sesamsauce
|
||||
Soja
|
||||
Sojasprossen
|
||||
Soljanka
|
||||
Sonnenblumenkern
|
||||
Spaghetti
|
||||
Spargel
|
||||
Spargelsuppe
|
||||
Spätzle
|
||||
Spekulatius
|
||||
Spinat
|
||||
Spreewaldgurke
|
||||
Spritzgebäck
|
||||
Steinpilz
|
||||
Sternanis
|
||||
Stollen
|
||||
Stracciatella
|
||||
Stutenmilch
|
||||
Suppenextrakt
|
||||
Suppenfleisch
|
||||
Suppengrün
|
||||
Suppenhuhn
|
||||
Suppenknochen
|
||||
Suppenspargel
|
||||
Suppenwürfel
|
||||
Sushi
|
||||
Süßkartoffel
|
||||
Süßrahm
|
||||
Süßrahmbutter
|
||||
Tagessuppe
|
||||
Tagliatelle
|
||||
Tahin
|
||||
Tamarinde
|
||||
Tapioka
|
||||
Teewurst
|
||||
Tellerfleisch
|
||||
Tempeh
|
||||
Terrine
|
||||
Tiefkühlkost
|
||||
Tiefkühlpizza
|
||||
Tilsiter
|
||||
Tiramisu
|
||||
Toast
|
||||
Tofu
|
||||
Tomate
|
||||
Tomatenmark
|
||||
Tomatensoße
|
||||
Tomatensuppe
|
||||
Topinambur
|
||||
Tortellini
|
||||
Traube
|
||||
Traubenkernöl
|
||||
Urbrot
|
||||
Vanille
|
||||
Vanillerostbraten
|
||||
Vanillezucker
|
||||
Vanillinzucker
|
||||
Vollkornbrot
|
||||
Vollkornmehl
|
||||
Vollmilchpulver
|
||||
Vollmilchschokolade
|
||||
Vollrohrzucker
|
||||
Walnuss
|
||||
Wasabi
|
||||
Wassersuppe
|
||||
Weichkäse
|
||||
Weihnachtsgebäck
|
||||
Weintraube
|
||||
Weißbrot
|
||||
Weißkohl
|
||||
Weißkraut
|
||||
Weizen
|
||||
Weizengrieß
|
||||
Weizenmehl
|
||||
Wirsing
|
||||
Wurst
|
||||
Wurstbrühe
|
||||
Wurstsuppe
|
||||
Zaziki
|
||||
Ziegenkäse
|
||||
Ziegenmilch
|
||||
Zimt
|
||||
Zimtstange
|
||||
Zitronat
|
||||
Zitrone
|
||||
Zitronensaft
|
||||
Zucker
|
||||
Zuckerguss
|
||||
Zuckerrübensirup
|
||||
Zwiebel
|
||||
Zwiebelkuchen
|
||||
Zwiebelring
|
||||
Zwiebelsuppe
|
||||
Äpfel
|
||||
Öl
|
58
server/package-lock.json
generated
58
server/package-lock.json
generated
@ -13,9 +13,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz",
|
||||
"integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ=="
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
|
||||
"integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -630,9 +630,9 @@
|
||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||
},
|
||||
"dialogflow": {
|
||||
"version": "0.10.1",
|
||||
"resolved": "https://registry.npmjs.org/dialogflow/-/dialogflow-0.10.1.tgz",
|
||||
"integrity": "sha512-aULzboCRdREOBvSlMQH3XWkBAW2EPnLyjztup/K61UYY+L0KzjC1jzDOUPZD42yMlB1p1SX0X296LF8rYvsDIA==",
|
||||
"version": "0.10.2",
|
||||
"resolved": "https://registry.npmjs.org/dialogflow/-/dialogflow-0.10.2.tgz",
|
||||
"integrity": "sha512-5E3+/TkAj5KlowsvhmaXxR26O+hC0LA0fj7pfhcwGDJbRWzEetWTnxNgV6pOpYd1NaI+GBVS6m34mJrL1L7biA==",
|
||||
"requires": {
|
||||
"google-gax": "^1.0.0",
|
||||
"protobufjs": "^6.8.0"
|
||||
@ -1260,9 +1260,9 @@
|
||||
}
|
||||
},
|
||||
"gcp-metadata": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-2.0.0.tgz",
|
||||
"integrity": "sha512-BN6KUUWo6WLkDRst+Y7bqpXq1PYMrKUecNLRdZESp7oYtMjWcZdAM0UYvcip8wb0GXNO/j8Z8HTccK4iYtMvyQ==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-2.0.1.tgz",
|
||||
"integrity": "sha512-nrbLj5O1MurvpLC/doFwzdTfKnmYGDYXlY/v7eQ4tJNVIvQXbOK672J9UFbradbtmuTkyHzjpzD8HD0Djz0LWw==",
|
||||
"requires": {
|
||||
"gaxios": "^2.0.0",
|
||||
"json-bigint": "^0.3.0"
|
||||
@ -1303,9 +1303,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"google-auth-library": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-4.2.2.tgz",
|
||||
"integrity": "sha512-PI8uGQMNIUgWL2upwsuDOjvJO1i9ON9MkvbZO44j7sIHeNmuUpwpP8YxKSGkmUh34L5V3xD9nS/0kgH0YY9qrQ==",
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-4.2.5.tgz",
|
||||
"integrity": "sha512-Vfsr82M1KTdT0H0wjawwp0LHsT6mPKSolRp21ZpJ7Ydq63zRe8DbGKjRCCrhsRZHg+p17DuuSCMEznwk3CJRdw==",
|
||||
"requires": {
|
||||
"arrify": "^2.0.0",
|
||||
"base64-js": "^1.3.0",
|
||||
@ -1314,21 +1314,13 @@
|
||||
"gcp-metadata": "^2.0.0",
|
||||
"gtoken": "^3.0.0",
|
||||
"jws": "^3.1.5",
|
||||
"lru-cache": "^5.0.0",
|
||||
"semver": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz",
|
||||
"integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ=="
|
||||
}
|
||||
"lru-cache": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"google-gax": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.1.2.tgz",
|
||||
"integrity": "sha512-kl/7U5x0Db9TwY4qYKomyBjKAgy3ztb1iqpx/wC84CtUVMNa1JNyPVlVdjgJS2JgOUF0yxMp9z6amfvss6tSIA==",
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.1.3.tgz",
|
||||
"integrity": "sha512-IBfapyt7+yh2RsisL5EOLfJz2fiqnp9GF8lZdfgSfmIjEE3eoMdCaGGpM7EgHA1OqwTvT4ePqLqIFGOhUF2Zmw==",
|
||||
"requires": {
|
||||
"@grpc/grpc-js": "^0.4.0",
|
||||
"@grpc/proto-loader": "^0.5.1",
|
||||
@ -1344,16 +1336,16 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz",
|
||||
"integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ=="
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
|
||||
"integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"google-p12-pem": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.0.tgz",
|
||||
"integrity": "sha512-n8eGSKzWOb9/EmSBIh81sPvsQM939QlpHMXahTZDzuRIpCu09x3Oaqz+mXGjL4TeCvSbcnOC0YZRvjkJ9s9lnA==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.1.tgz",
|
||||
"integrity": "sha512-6h6x+eBX3k+IDSe/c8dVYmn8Mzr1mUcmKC9MdUSwaBkFAXlqBEnwFWmSFgGC+tcqtsLn73BDP/vUNWEehf1Rww==",
|
||||
"requires": {
|
||||
"node-forge": "^0.8.0"
|
||||
}
|
||||
@ -1364,9 +1356,9 @@
|
||||
"integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
|
||||
},
|
||||
"gtoken": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-3.0.1.tgz",
|
||||
"integrity": "sha512-/bOZFfO6c+BC2IoOrvV+NKfEWQ1CCycrWG55Ix8ZfO/tTM0iGg9ojoQUWPbH5QS+vf+JoQYeTJ0zS+EDCP5M9w==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-3.0.2.tgz",
|
||||
"integrity": "sha512-BOBi6Zz31JfxhSHRZBIDdbwIbOPyux10WxJHdx8wz/FMP1zyN1xFrsAWsgcLe5ww5v/OZu/MePUEZAjgJXSauA==",
|
||||
"requires": {
|
||||
"gaxios": "^2.0.0",
|
||||
"google-p12-pem": "^2.0.0",
|
||||
|
@ -11,7 +11,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"dialogflow": "^0.10.0",
|
||||
"dialogflow": "^0.10.2",
|
||||
"express": "^4.17.1",
|
||||
"ngrok": "^3.1.1",
|
||||
"path": "^0.12.7",
|
||||
|
Loading…
x
Reference in New Issue
Block a user