diff --git a/.vscode/launch.json b/.vscode/launch.json index ffb2007..fcb9d05 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,7 +6,7 @@ "request": "launch", "name": "Launch Chrome", "url": "http://localhost:8000", - "webRoot": "${workspaceFolder}" + "webRoot": "${workspaceFolder}/client" }, { diff --git a/client/lebensmittel.txt b/client/lebensmittel.txt new file mode 100644 index 0000000..9f54739 --- /dev/null +++ b/client/lebensmittel.txt @@ -0,0 +1,1048 @@ +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 +Absacker +Absinth +Alcopops +Ale +Alkoholika +Alkopops +Allasch +Almdudler +Alsterwasser +Alt +Altbier +Angustora +Amaretto +Ananasjuice +Ananassaft +Anis +Anisette +Anisschnaps +Aperitif +Apfelmost +Apfelsaft +Apfelsaftschorle +Apfelschorle +Apfelsinensaft +Apfelwein +Aprikosensaft +Aquavit +Armagnac +Arrak +Ayran +Ajuco +Begrüßungstrunk +Benediktiner +Berliner Weiße +Bier +Birkenwasser +Birnensaft +Bitter Lemon +Bitter +Bitterer +Bitterlemon +Bitterlikör +Blondes +Bloody Mary +Blümchenkaffee +Blütensekt +Bock +Bockbier +Bohnenkaffee +Bourbon +Bowle +Brand +Brandy +Branntwein +Bräu +Brauner +Brause +Brombeersaft +Brombeerscherbett +Brottrunk +Bullenauge +Buttermilch +Caipirinha +Calvados +Campari +Cappuccino +Chai Latte +Champagner +Chardonnay +Chartreuse +Cidre +Cocktail +Cognac +Cola +Cüpli +Curaçao +Darjeeling +Dessertwein +Diätbier +Digestif +Direktsaft +Doppelbier +Doppelbock +Doppelkorn +Dosenbier +Drachenblut +Earl Grey +Eierlikör +Eisgetränk +Eiskaffee +Eisschokolade +Eistee +Eiswein +Energydrink +Enzian +Erdbeerbowle +Erfrischungsgetränk +Espresso +Export +Exportbier +Fassbrause +Fasswein +Federweißer +Fencheltee +Fernet +Feuerwasser +Feuerzangenbowle +Filterkaffee +Firnewein +Fizz +Flaschenbier +Flaschenmilch +Flaschenwein +Fliedertee +Frappé +Frappee +Freibier +Frischmilch +Fruchtnektar +Fruchtsaft +Fruchtsaftgetränk +Fusel +Gamsmilch +Gänsewein +Geist +Gemüsesaft +Genever +Gerstenkaltschale +Gerstensaft +Gespritzter +Getränk +Gilka +Gin Tonic +Gin +Ginfizz +Gin-Fizz +Gingerale +Ginger-Ale +Gingerbeer +Ginger-Beer +Gloria +Glühwein +Grapefruitjuice +Grapefruitsaft +Grappa +Grenadine +Grog +grüner Tee +Grüntee +Gspritzter +Häferlkaffee +Hagebuttentee +Halbe +Hard Drink +Harddrink +Harter +Hauerwein +Hefeweizen +Hefeweizenbier +Heißgetränk +Helles +Heuriger +Himbeergeist +Himbeerkracherl +Himbeerlimonade +Himbeersaft +Holdersaft +Hollersaft +Hollerschnaps +Hollersekt +Holunderbeersaft +Holundersaft +Holundersekt +Honigmilch +Honigwein +Hopfenkaltschale +Hoppelpoppel +Ingwer +Ingwerbier +Ingwerlikör +Instantgetränk +Instantkaffee +Instanttee +Irish Coffee +Isodrink +Jagertee +Jamaikarum +Jerez +Jerezwein +Johannisbeersaft +Juice +Jägermeister +Kabinett +Kabinettwein +Kaffee +Kakao +Kamillentee +Kapuziner +Karamellbier +Karottensaft +Kartäuserlikör +Kefir +Kir +Kir royal +Kirsch +Kirschgeist +Kirschlikör +Kirschsaft +Kirschwasser +Kognak +Korn +Kornbranntwein +Kracherl +Kräuterlikör +Kräuterschnaps +Kräutertee +Kruskovac +Kümmel +Lager +Lagerbier +Landwein +Lapacho +Lapachotee +Lassi +Latte macchiato +Likör +Likörwein +Limettensaft +Limo +Limonade +Limoncello +Lindenblütentee +Long Drink +Longdrink +Madeira +Madeirawein +Magenbitter +Magermilch +Maibowle +Malaga +Malzbier +Malzkaffee +Mangonektar +Mangosaft +Maracujanektar +Maracujasaft +Maraschino +Marillenbrand +Marillengeist +Marillenlikör +Marillenschnaps +Marillenwasser +Märzbier +Märzenbier +Mate +Matetee +Melange +Met +Milch +Milchkaffee +Milchmischgetränk +Milchmixgetränk +Milchshake +Mineral +Mineralwasser +Mirabellengeist +Mixed Drink +Mixgetränk +Mocca +Mocca double +Möhrensaft +Mohrrübensaft +Mojito +Mokka +Molke +Most +Muckefuck +Neger +Nektar +Obstbrand +Obstgeist +Obstler +Obstsaft +Obstsekt +Obstwasser +Obstwein +Orangeade +Orangenjuice +Orangensaft +Orange Pekoe +Ouzo +Pale Ale +Palmenwein +Palmwein +Pampelmusensaft +Pastis +Pekoe +Pepsinwein +Perlwein +Persiko +Pfefferminz +Pfefferminztee +Pfirsichsaft +Pflaumensaft +Pflaumenschnaps +Pflaumenwein +Pflümli +Piccolo +Pikkolo +Pils +Pilsener +Pilsner +Porter +Portwein +Prädikatswein +Prärieauster +Prosecco +Pu-Erh-Tee +Pulque +Pulverkaffee +Punsch +Qualitätswein +Quark +Quetsch +Radler +Raki +Randensaft +Ratafia +Rebensaft +Reisbranntwein +Reisschnaps +Reiswein +Retsina +Ribiselsaft +Ribiselwein +Rohmilch +Roibuschtee +Roosbostee +Rosé +Roséwein +Rotbuschtee +Rotwein +Rotweinschorle +Rum +Rumverschnitt +Saft +Sake +Salbeitee +Salvator +Salvatorbier +Sangria +Sangrita +Sauerkrautsaft +Sauser +Schampus +Schankbier +Schaumwein +Schlehenlikör +Schnaps +Schokolade +Schorle +Schümli +Schümlikaffee +Schwarzer +schwarzer Tee +Schwarztee +Scotch +Sekt +Selter +Selters +Selterwasser +Selterswasser +Shake +Sherry +Sirup +Skiwasser +Slibowitz +Sliwowitz +Soda +Sodawasser +Soft Drink +Softdrink +Spezi +Spirituose +Sprudel +Sprudelwasser +Spumante +Starkbier +Stillwein +Sturm +Stutenmilch +Süßmost +Süßwein +Tafelwasser +Tafelwein +Tausendguldenkrauttee +Tee +Tequila +Tischwein +Tokajer +Tomatenjuice +Tomatensaft +Tonic +Tonic Water +Trank +Traubenmost +Traubensaft +Trester +Tresterbranntwein +Trinkschokolade +Trunk +Türkischer +Uhudler +Verdauungsschnaps +Verlängerter +Vin de Pays +Vogelbeerschnaps +Vollbier +Vollmilch +Vorzugsmilch +Wacholder +Wacholderbranntwein +Wacholderschnaps +Waldmeisterbowle +Wasser +Wein +Weinbrand +Weingeist +Weinschorle +Weißbier +Weiße +Weißwein +Weißweinschorle +Weizen +Weizenbier +Wermut +Wermutwein +Whiskey +Whisky +Williams Christ +Willkommenstrunk +Winzersekt +Wodka +Ziegenmilch +Zitronenlikör +Zitronenlimonade +Zwetschenschnaps +Zwetschenwasser +Zwetschgenschnaps +Zwetschgenwasser +Zwetschkenschnaps +Zwetschkenwasser \ No newline at end of file diff --git a/client/ws-client.js b/client/ws-client.js index c302d30..ffb4e04 100644 --- a/client/ws-client.js +++ b/client/ws-client.js @@ -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() +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; + diagnosticPara = ''; + console.log('global speech end'); +}; +// #endregion - // - testBtn.disabled = true; - testBtn.textContent = 'Test in progress'; - infoPara.textContent = 'wait...'; -} - -function speak (sentence) { - speechsynth.text = sentence; - window.speechSynthesis.speak(speechsynth); -} - -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 = ' + arr.join(' | ') + ' ;'; - var speechRecognitionList = new SpeechGrammarList(); - speechRecognitionList.addFromString(grammar, 1); - recognition.grammars = speechRecognitionList; - } + // // var grammar = '#JSGF V1.0; grammar colors; public = ' + 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); diff --git a/lebensmittel.txt b/lebensmittel.txt deleted file mode 100644 index f58aeef..0000000 --- a/lebensmittel.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/server/package-lock.json b/server/package-lock.json index 19bac62..7b62326 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -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", diff --git a/server/package.json b/server/package.json index 0bcebae..036f1e1 100644 --- a/server/package.json +++ b/server/package.json @@ -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",