From 9f8ab5c7a15a918f7bd05423f0a43f22a33d9228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Tue, 27 Sep 2022 22:13:54 +0000 Subject: [PATCH] feat: dashboard ui tests --- .../src/main/assets/capacitor.plugins.json | 2 +- .../search/types/academic-event/event-1.json | 30 +- .../types/canteen/canteen-search-result.json | 400 ++++++++ .../types/date-series/date-series-1.json | 4 +- .../date-series/date-series-for-event-1.json | 56 +- .../fixtures/search/types/dish/dish-2.json | 418 +++++++++ .../search/types/message/message-1.json | 6 + .../search/types/message/single-message.json | 1 + cypress/integration/dashboard.spec.ts | 191 ++++ cypress/integration/favorites.spec.ts | 8 +- cypress/integration/ical.spec.ts | 4 +- cypress/integration/schedule.spec.ts | 14 +- cypress/support/index.ts | 36 + package-lock.json | 855 ++++++++++-------- package.json | 8 +- .../modules/dashboard/dashboard-collapse.ts | 57 +- .../modules/dashboard/dashboard.component.ts | 16 +- 17 files changed, 1629 insertions(+), 477 deletions(-) create mode 100644 cypress/fixtures/search/types/canteen/canteen-search-result.json create mode 100644 cypress/fixtures/search/types/dish/dish-2.json create mode 100644 cypress/integration/dashboard.spec.ts diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index fcbe05b4..d634b234 100644 --- a/android/app/src/main/assets/capacitor.plugins.json +++ b/android/app/src/main/assets/capacitor.plugins.json @@ -69,6 +69,6 @@ }, { "pkg": "capacitor-secure-storage-plugin", - "classpath": "com.whitestein.securestorage.SecureStoragePluginPlugin" + "classpath": "com.whitestein.securestorage.SecureStoragePlugin" } ] diff --git a/cypress/fixtures/search/types/academic-event/event-1.json b/cypress/fixtures/search/types/academic-event/event-1.json index 0dd7dcba..00f880ab 100644 --- a/cypress/fixtures/search/types/academic-event/event-1.json +++ b/cypress/fixtures/search/types/academic-event/event-1.json @@ -20,7 +20,7 @@ } ], "origin": { - "indexed": "2022-06-03T10:10:13.841Z", + "indexed": "2059-06-03T10:10:13.841Z", "name": "Goethe-Uni QIS / LSF", "type": "remote" }, @@ -48,12 +48,12 @@ "type": "academic event", "academicTerms": [ { - "acronym": "WiSe 2021/22", + "acronym": "WiSe 2058/59", "alternateNames": [ - "Winter 2021/22" + "Winter 2058/59" ], - "endDate": "2022-03-31T21:59:59.999Z", - "eventsEndDate": "2022-02-18T22:59:59.999Z", + "endDate": "2059-03-31T21:59:59.999Z", + "eventsEndDate": "2059-02-18T22:59:59.999Z", "eventsStartDate": "2021-10-17T22:00:00.000Z", "name": "Wintersemester 2021/22", "startDate": "2021-09-30T22:00:00.000Z", @@ -106,7 +106,7 @@ } ], "origin": { - "indexed": "2022-06-03T10:08:49.850Z", + "indexed": "2059-06-03T10:08:49.850Z", "name": "Goethe-Uni QIS / LSF", "type": "remote" }, @@ -135,15 +135,15 @@ "type": "academic event", "academicTerms": [ { - "acronym": "SoSe 2022", + "acronym": "SoSe 2059", "alternateNames": [ - "Sommer 2022" + "Sommer 2059" ], - "endDate": "2022-09-30T21:59:59.999Z", - "eventsEndDate": "2022-07-15T21:59:59.999Z", - "eventsStartDate": "2022-04-10T22:00:00.000Z", - "name": "Sommersemester 2022", - "startDate": "2022-03-31T22:00:00.000Z", + "endDate": "2059-09-30T21:59:59.999Z", + "eventsEndDate": "2059-07-15T21:59:59.999Z", + "eventsStartDate": "2059-04-10T22:00:00.000Z", + "name": "Sommersemester 2059", + "startDate": "2059-03-31T22:00:00.000Z", "type": "semester", "uid": "4b2766cb-e16d-5698-b5b3-e650613d497a" } @@ -164,11 +164,11 @@ "buckets": [ { "count": 1, - "key": "WiSe 2021/22" + "key": "WiSe 2058/59" }, { "count": 1, - "key": "SoSe 2022" + "key": "SoSe 2059" } ], "field": "academicTerms.acronym", diff --git a/cypress/fixtures/search/types/canteen/canteen-search-result.json b/cypress/fixtures/search/types/canteen/canteen-search-result.json new file mode 100644 index 00000000..6289df09 --- /dev/null +++ b/cypress/fixtures/search/types/canteen/canteen-search-result.json @@ -0,0 +1,400 @@ +{ + "data": [ + { + "geo": { + "point": { + "coordinates": [ + 8.666987121105194, + 50.12725203226799 + ], + "type": "Point" + } + }, + "uid": "86464b64-da1e-5578-a5c4-eec23457f596", + "alternateNames": [ + "Alfredo Anbau Casino" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "Kaffeebar Alfredo/Cocktailbar Theodor-W.-Adorno-Platz 2" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.173Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Alfredo Anbau Casino", + "openingHours": "Mo-Fr 08:30-22:00; Sa-Su off; 2022 Feb 21 - 2022 Apr 08 Mo-Fr 10:00-21:00; 2022 Feb 21 - 2022 Apr 08 Sa-Su off", + "categories": [ + "cafe" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.6441518, + 50.131335 + ], + "type": "Point" + } + }, + "uid": "c77576af-1633-5465-ba12-6089d1d8919d", + "alternateNames": [ + "Cafe Hochform" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60487", + "streetAddress": "Institut für Sportwissenschaften Ginnheimer Landstrasse 39" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.173Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Cafe Hochform", + "openingHours": "Mo-Fr 09:00-16:00; Sa-Su off; 2022 Feb 21 - 2022 Apr 08 Mo-Fr 09:00-15:30; 2022 Feb 21 - 2022 Apr 08 Sa-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.651551008224486, + 50.11935877057829 + ], + "type": "Point" + } + }, + "uid": "7a3270e5-6af1-58cd-b2d9-6bce2bf8fffb", + "alternateNames": [ + "Cafeteria Bockenheim" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60325", + "streetAddress": "Sozialzentrum Bockenheimer Landstrasse 133" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.168Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Cafeteria Bockenheim", + "openingHours": "Mo-Fr 08:00-16:00; Sa-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.6266007, + 50.172658 + ], + "type": "Point" + } + }, + "uid": "9d7596b1-102b-5003-91d8-aa0b411cc0e8", + "alternateNames": [ + "Cafeteria Darwins" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60438", + "streetAddress": "Biologicum Max-von-Laue-Str. 13" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.174Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Cafeteria Darwins", + "openingHours": "Mo-Fr 08:30-17:00; Sa-Su off; 2021 Oct 15 - 2022 Apr 08 Mo-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.6285375, + 50.1743717 + ], + "type": "Point" + } + }, + "uid": "2da7eb88-768f-5881-9e84-8dc0d767c8b7", + "alternateNames": [ + "Cafeteria LEVEL" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60438", + "streetAddress": "Otto-Stern-Zentrum Ruth-Moufang-Straße 2" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.174Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Cafeteria LEVEL", + "openingHours": "Mo-Fr 09:00-16:00; Sa-Su off; 2021 Dec 20 - 2022 Jan 07 Mo-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.666908666491508, + 50.12685997940193 + ], + "type": "Point" + } + }, + "uid": "01d3e4fb-779a-5ee5-8067-d77a44a33e1a", + "alternateNames": [ + "Casino Cafeteria" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "Cafeteria Casino Theodor-W.-Adorno-Platz 2" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.174Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Casino Cafeteria", + "openingHours": "Mo-Th 11:00-17:00; Fr 11:00-14:30; Sa-Su off; 2020 May 18 - 2022 Oct 14 Mo-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.668776154518127, + 50.12844708588227 + ], + "type": "Point" + } + }, + "uid": "74e6a230-56fe-5c0e-b529-1c126df98595", + "alternateNames": [ + "DASEIN" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "PEG Theodor-W.-Adorno-Platz 6" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.174Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "DASEIN", + "openingHours": "Mo-Fr 07:30-17:00; Sa-Su off; 2022 Feb 21 - 2022 Apr 08 Mo-Fr 08:00-16:00; 2022 Feb 21 - 2022 Apr 08 Sa-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.666871786117554, + 50.127181531770134 + ], + "type": "Point" + } + }, + "uid": "41f2bac9-ea46-5643-a354-49b1d5539a09", + "alternateNames": [ + "Mensa Anbau Casino" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "Anbau Casino Theodor-W.-Adorno-Platz 2" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.173Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Mensa Anbau Casino", + "openingHours": "Mo-Fr 11:00-15:30; Sa-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.667021989822388, + 50.12683762541366 + ], + "type": "Point" + } + }, + "uid": "254b10c1-8a79-53ad-98dc-3e0e30d92a88", + "alternateNames": [ + "Mensa Casino" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "Casinogebäude Theodor-W.-Adorno-Platz 2a" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.173Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Mensa Casino", + "openingHours": "Mo-Fr 12:00-15:00; Sa-Su off; 2022 Mar 24 - 2022 Apr 14 Mo-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.6300707, + 50.17189 + ], + "type": "Point" + } + }, + "uid": "a307c74a-40c1-57bb-a065-15bb9c505b9d", + "alternateNames": [ + "Mensa Pi x Gaumen" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60438", + "streetAddress": "Max-von-Laue-Str. 9" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.174Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Mensa Pi x Gaumen", + "openingHours": "Mo-Fr 11:00-15:00; Sa-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + }, + { + "geo": { + "point": { + "coordinates": [ + 8.666126132011412, + 50.1266751288006 + ], + "type": "Point" + } + }, + "uid": "be3f4727-5ed2-5470-aa45-6bf7eb7e30d4", + "alternateNames": [ + "Sommergarten Westend" + ], + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "Sommergarten Theodor-W.-Adorno-Platz 2a" + }, + "origin": { + "indexed": "2022-07-07T08:15:04.173Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Sommergarten Westend", + "openingHours": "Mo-Fr 15:30-22:00; Sa-Su off; 2021 Sep 27 - 2022 Apr 14 Mo-Su off", + "categories": [ + "restaurant" + ], + "type": "room" + } + ], + "facets": [ + { + "buckets": [ + { + "count": 11, + "key": "room" + } + ], + "field": "type" + }, + { + "buckets": [ + { + "count": 10, + "key": "restaurant" + }, + { + "count": 1, + "key": "cafe" + } + ], + "field": "categories", + "onlyOnType": "room" + } + ], + "pagination": { + "count": 11, + "offset": 0, + "total": 11 + }, + "stats": { + "time": 4 + } +} diff --git a/cypress/fixtures/search/types/date-series/date-series-1.json b/cypress/fixtures/search/types/date-series/date-series-1.json index c88e4f64..7045de4c 100644 --- a/cypress/fixtures/search/types/date-series/date-series-1.json +++ b/cypress/fixtures/search/types/date-series/date-series-1.json @@ -7,13 +7,13 @@ "LSF": "779352" }, "origin": { - "indexed": "2022-06-03T10:10:13.842Z", + "indexed": "2059-06-03T10:10:13.842Z", "name": "Goethe-Uni QIS / LSF", "type": "remote" }, "name": "Übung", "dates": [ - "2022-01-19T14:00:00+01:00" + "2059-01-19T14:00:00+01:00" ], "event": { "categories": [ diff --git a/cypress/fixtures/search/types/date-series/date-series-for-event-1.json b/cypress/fixtures/search/types/date-series/date-series-for-event-1.json index 70781b9b..03997e64 100644 --- a/cypress/fixtures/search/types/date-series/date-series-for-event-1.json +++ b/cypress/fixtures/search/types/date-series/date-series-for-event-1.json @@ -9,24 +9,24 @@ "LSF": "797371" }, "origin": { - "indexed": "2022-06-03T10:08:50.850Z", + "indexed": "2059-06-03T10:08:50.850Z", "name": "Goethe-Uni QIS / LSF", "type": "remote" }, "name": "Seminar", "dates": [ - "2022-04-14T12:00:00+02:00", - "2022-04-21T12:00:00+02:00", - "2022-04-28T12:00:00+02:00", - "2022-05-05T12:00:00+02:00", - "2022-05-12T12:00:00+02:00", - "2022-05-19T12:00:00+02:00", - "2022-06-02T12:00:00+02:00", - "2022-06-09T12:00:00+02:00", - "2022-06-23T12:00:00+02:00", - "2022-06-30T12:00:00+02:00", - "2022-07-07T12:00:00+02:00", - "2022-07-14T12:00:00+02:00" + "2059-04-14T12:00:00+02:00", + "2059-04-21T12:00:00+02:00", + "2059-04-28T12:00:00+02:00", + "2059-05-05T12:00:00+02:00", + "2059-05-12T12:00:00+02:00", + "2059-05-19T12:00:00+02:00", + "2059-06-02T12:00:00+02:00", + "2059-06-09T12:00:00+02:00", + "2059-06-23T12:00:00+02:00", + "2059-06-30T12:00:00+02:00", + "2059-07-07T12:00:00+02:00", + "2059-07-14T12:00:00+02:00" ], "event": { "categories": [ @@ -101,24 +101,24 @@ "LSF": "770743" }, "origin": { - "indexed": "2022-06-03T10:08:50.848Z", + "indexed": "2059-06-03T10:08:50.848Z", "name": "Goethe-Uni QIS / LSF", "type": "remote" }, "name": "Seminar", "dates": [ - "2022-04-14T12:00:00+02:00", - "2022-04-21T12:00:00+02:00", - "2022-04-28T12:00:00+02:00", - "2022-05-05T12:00:00+02:00", - "2022-05-12T12:00:00+02:00", - "2022-05-19T12:00:00+02:00", - "2022-06-02T12:00:00+02:00", - "2022-06-09T12:00:00+02:00", - "2022-06-23T12:00:00+02:00", - "2022-06-30T12:00:00+02:00", - "2022-07-07T12:00:00+02:00", - "2022-07-14T12:00:00+02:00" + "2059-04-14T12:00:00+02:00", + "2059-04-21T12:00:00+02:00", + "2059-04-28T12:00:00+02:00", + "2059-05-05T12:00:00+02:00", + "2059-05-12T12:00:00+02:00", + "2059-05-19T12:00:00+02:00", + "2059-06-02T12:00:00+02:00", + "2059-06-09T12:00:00+02:00", + "2059-06-23T12:00:00+02:00", + "2059-06-30T12:00:00+02:00", + "2059-07-07T12:00:00+02:00", + "2059-07-14T12:00:00+02:00" ], "event": { "categories": [ @@ -251,13 +251,13 @@ "LSF": "779352" }, "origin": { - "indexed": "2022-06-03T10:10:13.842Z", + "indexed": "2059-06-03T10:10:13.842Z", "name": "Goethe-Uni QIS / LSF", "type": "remote" }, "name": "Übung", "dates": [ - "2022-01-19T14:00:00+01:00" + "2059-01-19T14:00:00+01:00" ], "event": { "categories": [ diff --git a/cypress/fixtures/search/types/dish/dish-2.json b/cypress/fixtures/search/types/dish/dish-2.json new file mode 100644 index 00000000..908fba6b --- /dev/null +++ b/cypress/fixtures/search/types/dish/dish-2.json @@ -0,0 +1,418 @@ +{ + "2022-06-08T18:56:17.052Z": { + "data": [ + { + "offers": [ + { + "availability": "in stock", + "availabilityRange": { + "gte": "2022-06-08T06:30:00.000Z", + "lte": "2022-06-08T20:00:00.000Z" + }, + "inPlace": { + "address": { + "addressCountry": "Deutschland", + "addressLocality": "Frankfurt am Main", + "addressRegion": "Hessen", + "postalCode": "60323", + "streetAddress": "Kaffeebar Alfredo/Cocktailbar Theodor-W.-Adorno-Platz 2" + }, + "alternateNames": [ + "Alfredo Anbau Casino" + ], + "categories": [ + "cafe" + ], + "geo": { + "point": { + "coordinates": [ + 8.666987121105194, + 50.12725203226799 + ], + "type": "Point" + } + }, + "name": "Alfredo Anbau Casino", + "openingHours": "Mo-Fr 08:30-22:00; Sa-Su off; 2022 Feb 21 - 2022 Apr 08 Mo-Fr 10:00-21:00; 2022 Feb 21 - 2022 Apr 08 Sa-Su off", + "type": "room", + "uid": "86464b64-da1e-5578-a5c4-eec23457f596" + }, + "prices": { + "default": 4.4, + "employee": 1.1, + "guest": 2.2, + "student": 3.3 + }, + "provider": { + "name": "Studentenwerk Frankfurt am Main", + "type": "organization", + "uid": "b7b50ecd-2c33-5a62-adb0-2a7c6c0ab04c" + } + } + ], + "uid": "d8a0b68b-4bfc-5780-9d33-a29b2ac0fae2", + "nutrition": { + "calories": 863, + "carbohydrateContent": 103.5, + "fatContent": 39, + "proteinContent": 33.1, + "saltContent": 4.1, + "saturatedFatContent": 3.1, + "sugarContent": 11.8 + }, + "additives": [ + "preserved (2)", + "with antioxidants (3)", + "gluten (A)", + "milk (G)", + "celery (I)", + "sulphur dioxide / sulphite (L)" + ], + "translations": { + "de": { + "additives": [ + "konserviert (2)", + "mit Antioxidationsmittel (3)", + "Glutenhaltige Getreide (A)", + "Milch u. Milcherzeugnisse (G)", + "Sellerie u. Sellerieerzeugnisse (I)", + "Schwefeldioxid / Sulfit (L)" + ], + "description": "Pizza Antipasti (2,3,A,G,I,L,A1)", + "name": "Pizza Antipasti" + } + }, + "origin": { + "indexed": "2022-06-08T18:45:04.736Z", + "name": "Studentenwerk Frankfurt am Main", + "type": "remote" + }, + "name": "Antipasti pizza", + "description": "Antipasti pizza (2,3,A,G,I,L,A1)", + "categories": [ + "main dish" + ], + "type": "dish" + }, + { + "type": "dish", + "name": "Pizza mit Geflügelsalami und Champignons", + "categories": [ + "main dish" + ], + "characteristics": [], + "additives": [ + "konserviert", + "Antioxidationsmittel", + "Farbstoff", + "Weizen", + "Milch(Laktose; Milcheiweiß)", + "Nitritpökelsalz", + "Hefe" + ], + "offers": [ + { + "availability": "in stock", + "availabilityRange": { + "gte": "2017-01-30T00:00:00.000Z", + "lte": "2017-01-30T23:59:59.999Z" + }, + "prices": { + "default": 4.85, + "student": 2.85, + "employee": 3.85, + "guest": 4.85 + }, + "provider": { + "name": "Studentenwerk", + "type": "organization", + "uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634" + }, + "inPlace": { + "geo": { + "point": { + "type": "Point", + "coordinates": [ + 13.32612, + 52.50978 + ] + } + }, + "type": "building", + "categories": [ + "restaurant" + ], + "openingHours": "Mo-Fr 11:00-14:30", + "name": "TU-Mensa", + "alternateNames": [ + "MensaHardenberg" + ], + "uid": "72fbc8a3-ebd1-58f9-9526-ad65cba2e402", + "address": { + "addressCountry": "Germany", + "addressLocality": "Berlin", + "addressRegion": "Berlin", + "postalCode": "10623", + "streetAddress": "Hardenbergstraße 34" + } + } + } + ], + "uid": "c9f32915-8ed5-5960-b850-3f7375a89922", + "origin": { + "indexed": "2018-09-11T12:30:00Z", + "name": "Dummy", + "type": "remote" + } + }, + { + "type": "dish", + "name": "Sahne-Bärlauchsauce", + "description": "Nudelauswahl", + "categories": [ + "main dish" + ], + "offers": [ + { + "prices": { + "default": 3.45, + "student": 2.45, + "employee": 3.45 + }, + "provider": { + "name": "Studentenwerk", + "type": "organization", + "uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634" + }, + "availability": "in stock", + "availabilityRange": { + "gte": "2017-01-30T00:00:00.000Z", + "lte": "2017-01-30T23:59:59.999Z" + }, + "inPlace": { + "geo": { + "point": { + "type": "Point", + "coordinates": [ + 13.32612, + 52.50978 + ] + } + }, + "type": "building", + "categories": [ + "restaurant" + ], + "openingHours": "Mo-Fr 11:00-14:30", + "name": "TU-Mensa", + "alternateNames": [ + "MensaHardenberg" + ], + "uid": "072db1e5-e479-5040-88e0-4a98d731e443", + "address": { + "addressCountry": "Germany", + "addressLocality": "Berlin", + "addressRegion": "Berlin", + "postalCode": "10623", + "streetAddress": "Hardenbergstraße 34" + } + } + } + ], + "characteristics": [ + { + "name": "bad" + }, + { + "name": "vegetarian", + "image": "https://backend/res/img/characteristic_small_vegetarian.png" + } + ], + "additives": [ + "Weizen", + "Milch(Laktose; Milcheiweiß)" + ], + "uid": "3222631f-82b3-5faf-a8e8-9c10719cc95b", + "origin": { + "indexed": "2018-09-11T12:30:00Z", + "name": "Dummy", + "type": "remote" + } + }, + { + "additives": [ + "1 = mit Farbstoff", + "2 = konserviert", + "3 = mit Antioxidationsmittel", + "9 = mit Süßungsmittel", + "A = Glutenhaltige Getreide", + "G = Milch u. Milcherzeugnisse" + ], + "offers": [ + { + "availability": "in stock", + "availabilityRange": { + "gte": "2017-03-27T00:00:00.000Z", + "lte": "2017-03-27T23:59:59.000Z" + }, + "inPlace": { + "type": "room", + "name": "Cafeteria LEVEL", + "categories": [ + "cafe" + ], + "uid": "e5492c9c-064e-547c-8633-c8fc8955cfcf", + "alternateNames": [ + "Cafeteria LEVEL" + ], + "openingHours": "Mo-Fr 08:30-17:00", + "geo": { + "point": { + "type": "Point", + "coordinates": [ + 8.6285375, + 50.1743717 + ] + } + } + }, + "prices": { + "default": 6.5, + "student": 4.9, + "employee": 6.5 + }, + "provider": { + "name": "Studentenwerk", + "type": "organization", + "uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634" + } + } + ], + "categories": [ + "main dish" + ], + "characteristics": [ + { + "name": "Rind", + "image": "https://backend/res/img/characteristic_small_rind.png" + } + ], + "description": "Salsa Burger (1,2,3,9,A,G)", + "name": "Salsa Burger", + "dishAddOns": [ + { + "characteristics": [ + { + "name": "Vegan", + "image": "https://backend/res/img/characteristic_small_vegan.png" + } + ], + "description": "Pommes frites", + "type": "dish", + "uid": "db0caac1-062c-5333-9fcb-cfaf0ff7d799", + "nutrition": { + "calories": 106, + "fatContent": 5.4, + "saturatedFatContent": 1.8, + "carbohydrateContent": 6.8, + "sugarContent": 6.1, + "proteinContent": 6.9, + "saltContent": 3.7 + }, + "additives": [ + "3 = mit Antioxidationsmittel", + "5 = geschwefelt" + ], + "name": "Pommes frites", + "categories": [ + "side dish" + ] + }, + { + "characteristics": [ + { + "name": "Vegan", + "image": "https://backend/res/img/characteristic_small_vegan.png" + } + ], + "description": "Glasierte Karotten", + "type": "dish", + "uid": "f702fd43-1551-53b2-b35a-b5916e1cf9a1", + "nutrition": { + "calories": 106, + "fatContent": 5.4, + "saturatedFatContent": 1.8, + "carbohydrateContent": 6.8, + "sugarContent": 6.1, + "proteinContent": 6.9, + "saltContent": 3.7 + }, + "additives": [ + "F = Soja u. Sojaerzeugnisse" + ], + "name": "Glasierte Karotten", + "categories": [ + "side dish", + "salad" + ] + } + ], + "type": "dish", + "uid": "1c99689c-c6ec-551f-8ad8-f13c5fa812c2", + "nutrition": { + "calories": 600, + "fatContent": 30.5, + "saturatedFatContent": 9.9, + "carbohydrateContent": 42.2, + "sugarContent": 5.7, + "proteinContent": 38.6, + "saltContent": 3.5 + }, + "origin": { + "indexed": "2018-09-11T12:30:00Z", + "name": "Dummy", + "type": "remote" + } + } + ], + "facets": [ + { + "buckets": [ + { + "count": 10, + "key": "dish" + } + ], + "field": "type" + }, + { + "buckets": [ + { + "count": 10, + "key": "main dish" + } + ], + "field": "categories", + "onlyOnType": "dish" + }, + { + "buckets": [ + { + "count": 10, + "key": "cafe" + } + ], + "field": "offers.inPlace.categories", + "onlyOnType": "dish" + } + ], + "pagination": { + "count": 1, + "offset": 0, + "total": 1 + }, + "stats": { + "time": 8 + } + } +} diff --git a/cypress/fixtures/search/types/message/message-1.json b/cypress/fixtures/search/types/message/message-1.json index 55684f84..1b189d73 100644 --- a/cypress/fixtures/search/types/message/message-1.json +++ b/cypress/fixtures/search/types/message/message-1.json @@ -11,6 +11,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "DE for Students and Employees", + "image": "https://robohash.org/de_for_students_and_employees?size=264x183&set=set4&bgset=bg1", "audiences": [ "students", "employees" @@ -33,6 +34,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "DE for Students", + "image": "https://robohash.org/de_for_students?size=264x183&set=set4&bgset=bg1", "audiences": [ "students" ], @@ -54,6 +56,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "DE for Employees", + "image": "https://robohash.org/de_for_employees?size=264x183&set=set4&bgset=bg1", "audiences": [ "employees" ], @@ -75,6 +78,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "EN for Students and Employees", + "image": "https://robohash.org/en_for_students_and_employees?size=264x183&set=set4&bgset=bg1", "audiences": [ "students", "employees" @@ -97,6 +101,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "EN for Students", + "image": "https://robohash.org/en_for_students?size=264x183&set=set4&bgset=bg1", "audiences": [ "students" ], @@ -118,6 +123,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "EN for Employees", + "image": "https://robohash.org/en_for_employees?size=264x183&set=set4&bgset=bg1", "audiences": [ "employees" ], diff --git a/cypress/fixtures/search/types/message/single-message.json b/cypress/fixtures/search/types/message/single-message.json index 4ed97362..2a1df7f9 100644 --- a/cypress/fixtures/search/types/message/single-message.json +++ b/cypress/fixtures/search/types/message/single-message.json @@ -11,6 +11,7 @@ "url": "https://aktuelles.uni-frankfurt.de/feed" }, "name": "DE for Students and Employees", + "image": "https://robohash.org/de_for_students_and_employees?size=264x183&set=set4&bgset=bg1", "audiences": [ "students", "employees" diff --git a/cypress/integration/dashboard.spec.ts b/cypress/integration/dashboard.spec.ts new file mode 100644 index 00000000..3461681f --- /dev/null +++ b/cypress/integration/dashboard.spec.ts @@ -0,0 +1,191 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +/* eslint-disable @typescript-eslint/no-explicit-any */ +import {ScheduleProvider} from '../../src/app/modules/calendar/schedule.provider'; + +describe('dashboard', async function () { + describe('schedule section', function () { + it('should lead to the schedule', function () { + cy.visit('/dashboard'); + cy.get('.schedule').contains('a', 'Stundenplan').click(); + cy.url().should('include', '/schedule/recurring'); + + cy.visit('/dashboard'); + cy.get('.schedule').contains('a', 'Kein Eintrag gefunden').click(); + cy.url().should('include', '/schedule/recurring'); + }); + + it('should display the next unit', function () { + let angular: any; + cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', { + fixture: 'search/types/date-series/date-series-1.json', + }).as('search'); + cy.visit('/dashboard'); + cy.get('.schedule-item-button').should('exist'); + cy.window() + .then(win => (angular = (win as any).ng)) + .then(() => + cy.get('app-dashboard').then($dashboard => { + const appComponent = angular.getComponent($dashboard[0]); + const scheduleProvider = + appComponent.scheduleProvider as ScheduleProvider; + + scheduleProvider.restore(['abc']); + }), + ); + cy.wait('@search'); + cy.get('.schedule-item-button').should('contain', 'UNIcert (Test)'); + }); + }); + + describe('mensa section', function () { + it('should have info when nothing is added', function () { + cy.visit('/dashboard'); + + cy.get('stapps-mensa-section').within(() => { + cy.get('.card').should('have.length', 1); + cy.get('.card > ion-label > a').should( + 'have.text', + 'Übersicht der Mensen', + ); + }); + }); + + it('should add a mensa', function () { + cy.visit('/dashboard'); + cy.get('stapps-mensa-section').find('.card > ion-label > a').click(); + cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', { + fixture: 'search/types/canteen/canteen-search-result.json', + }); + cy.get('stapps-favorite-button').first().click(); + cy.intercept( + 'POST', + 'https://mobile.server.uni-frankfurt.de/search/multi', + { + fixture: 'search/types/dish/dish-2.json', + }, + ); + cy.get('ion-back-button').click(); + cy.get('stapps-mensa-section') + .find('.card') + .should('have.length.greaterThan', 1); + }); + }); + + describe('news section', function () { + beforeEach(function () { + cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', { + fixture: 'search/types/message/message-1.json', + }).as('search'); + }); + + it('should have desktop navigation buttons', function () { + cy.visit('/dashboard'); + + cy.get('stapps-news-section').within(function () { + cy.get('.swiper-button-prev').should('exist'); + cy.get('.swiper-button-next').should('exist'); + }); + }); + + it('should have working desktop navigation', function () { + cy.visit('/dashboard'); + + cy.get('stapps-news-section').within(function () { + cy.get('.swiper-slide-active').should( + 'have.text', + 'DE for Students and Employees', + ); + + cy.get('.swiper-button-next').click({scrollBehavior: false}); + + cy.get('.swiper-slide-active').should('have.text', 'DE for Students'); + }); + }); + + it('should have a link to the news page', function () { + cy.visit('/dashboard'); + cy.wait('@search'); + cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', { + fixture: 'search/types/message/single-message.json', + }).as('search'); + + cy.get('stapps-news-section').contains('a', 'Mehr Nachrichten').click(); + cy.url().should('include', '/news'); + }); + }); + + describe('navigation section', function () { + it('should have editable dashboard sections', function () { + cy.visit('/dashboard'); + + const section = 'Vorlesungsv.'; + + cy.get('stapps-navigation-section').within(() => { + cy.get('.card').should('contain.text', section); + + cy.get('ion-icon[name=edit_square]').click(); + }); + + cy.get('stapps-dashboard-edit-modal').within(() => { + cy.contains('ion-item', section).find('ion-toggle').click(); + + cy.contains('ion-button', 'Bestätigen').click(); + }); + + cy.get('stapps-navigation-section').within(() => { + cy.get('.card').should('not.contain.text', section); + + cy.get('ion-icon[name=edit_square]').click({scrollBehavior: false}); + }); + + cy.get('stapps-dashboard-edit-modal').within(() => { + cy.contains('ion-item', section).find('ion-toggle').click(); + + cy.contains('ion-button', 'Bestätigen').click(); + }); + + cy.get('stapps-navigation-section') + .find('.card') + .should('contain.text', section); + }); + }); + + describe('search section', function () { + it('should lead to the search when hitting enter', function () { + cy.visit('/dashboard'); + + cy.get('stapps-search-section') + .find('.searchbar') + .type('test', {scrollBehavior: false}) + .type('{enter}', {scrollBehavior: false}); + cy.url().should('eq', Cypress.config().baseUrl + '/search/test'); + cy.get('ion-searchbar').should('have.value', 'test'); + + cy.get('stapps-data-list-item').should('have.length.greaterThan', 0); + }); + + it('should go to search when clicking the icon', function () { + cy.visit('/dashboard'); + + cy.get('stapps-search-section').find('ion-icon[name=search]').click(); + cy.url().should('eq', Cypress.config().baseUrl + '/search/'); + cy.get('ion-searchbar').should('not.have.value'); + + cy.get('stapps-data-list-item').should('have.length', 0); + }); + }); +}); diff --git a/cypress/integration/favorites.spec.ts b/cypress/integration/favorites.spec.ts index addb9521..baead3c9 100644 --- a/cypress/integration/favorites.spec.ts +++ b/cypress/integration/favorites.spec.ts @@ -31,12 +31,18 @@ describe('favorites', function () { text = it; }); cy.get('stapps-favorite-button').click(); + cy.get('stapps-favorite-button > ion-button > ion-icon') + .invoke('attr', 'ng-reflect-fill') + .should('eq', 'true'); }); cy.visit('/favorites'); cy.get('stapps-data-list-item').within(() => { cy.get('.title').should('contain', text); cy.get('stapps-favorite-button').click(); }); - cy.get('stapps-data-list').contains('Keine Ergebnisse'); + cy.get('cdk-virtual-scroll-viewport').should('be.not.visible'); + cy.get('stapps-data-list') + .contains('Keine Ergebnisse') + .should('be.visible'); }); }); diff --git a/cypress/integration/ical.spec.ts b/cypress/integration/ical.spec.ts index b48426f4..9caa54f9 100644 --- a/cypress/integration/ical.spec.ts +++ b/cypress/integration/ical.spec.ts @@ -39,7 +39,7 @@ describe('ical', function () { 'have.attr', 'disabled', ); - cy.contains('ion-item', /eine Stunde um 19. Jan. 2022, \d+:00/).click(); + cy.contains('ion-item', /eine Stunde um 19. Jan. 2059, \d+:00/).click(); cy.get('ion-footer > ion-toolbar > ion-button').should( 'not.have.attr', 'disabled', @@ -49,7 +49,7 @@ describe('ical', function () { cy.get('add-event-review-modal').within(() => { cy.get('ion-item-group').should('contain', 'UNIcert (Test)'); - cy.contains('ion-item-group', /19. Jan. 2022, \d+:00/); + cy.contains('ion-item-group', /19. Jan. 2059, \d+:00/); }); }); }); diff --git a/cypress/integration/schedule.spec.ts b/cypress/integration/schedule.spec.ts index 09d71077..c9def380 100644 --- a/cypress/integration/schedule.spec.ts +++ b/cypress/integration/schedule.spec.ts @@ -57,7 +57,7 @@ describe('schedule', function () { ]) { const slideMultiplier = 3; it(`should have ${count} slides for ${width}px`, function () { - cy.visit('/schedule/calendar/2022-01-19'); + cy.visit('/schedule/calendar/2022-01-59'); cy.viewport(width, 550); cy.get('.schedule-wrapper > .infinite-swiper-wrapper') .find('.swiper-slide') @@ -69,18 +69,18 @@ describe('schedule', function () { } it('should navigate to a specific date', function () { - cy.visit('/schedule/calendar/2022-01-19'); - cy.contains('#date-select-button0', '19.01.22').click(); + cy.visit('/schedule/calendar/2059-01-19'); + cy.contains('#date-select-button0', '19.01.59').click(); cy.wait(2000); - cy.get('button[data-day=1][data-month=1][data-year=2022]', { + cy.get('button[data-day=1][data-month=1][data-year=2059]', { includeShadowDom: true, }).click(); cy.wait(2000); - cy.contains('#date-select-button0', '01.01.22').click(); + cy.contains('#date-select-button0', '01.01.59').click(); }); it('should add events', function () { - cy.visit('/schedule/calendar/2022-01-19'); + cy.visit('/schedule/calendar/2059-01-19'); cy.get('stapps-schedule-card').should('not.exist'); cy.get('ion-fab-button').click(); @@ -98,7 +98,7 @@ describe('schedule', function () { }); cy.get('ion-app > ion-modal').within(() => { - cy.contains('ion-item', /eine Stunde um 19. Jan. 2022, \d+:00/).click(); + cy.contains('ion-item', /eine Stunde um 19. Jan. 2059, \d+:00/).click(); cy.wait(2000); cy.contains('ion-button', 'Bestätigen').click(); cy.wait(2000); diff --git a/cypress/support/index.ts b/cypress/support/index.ts index 950eb177..8ebedebb 100644 --- a/cypress/support/index.ts +++ b/cypress/support/index.ts @@ -1,3 +1,18 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + // *********************************************************** // This example support/index.js is processed and // loaded automatically before your test files. @@ -15,6 +30,27 @@ // When a command from ./commands is ready to use, import with `import './commands'` syntax // import './commands'; + +beforeEach(async function () { + let databases: string[]; + if (window.indexedDB.databases) { + databases = (await window.indexedDB.databases()).map(it => it.name); + console.log('Trying to clear all databases'); + } else { + console.log( + "Browser doesn't support database enumeration, deleting just ionic storage", + ); + databases = ['_ionicstorage']; + } + for (const database of databases) { + if (database) { + console.log(`Deleting database ${database}`); + window.indexedDB.deleteDatabase(database); + console.log(`Deleted database ${database}`); + } + } +}); + Cypress.on('window:before:load', window => { // Fake that user is using its browser in german language Object.defineProperty(window.navigator, 'language', {value: 'de-DE'}); diff --git a/package-lock.json b/package-lock.json index d8a75ed7..ea706632 100644 --- a/package-lock.json +++ b/package-lock.json @@ -562,21 +562,21 @@ }, "dependencies": { "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", + "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.1", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -593,12 +593,12 @@ } }, "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "requires": { - "@babel/types": "^7.18.13", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -626,9 +626,9 @@ } }, "magic-string": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "version": "0.26.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.4.tgz", + "integrity": "sha512-e5uXtVJ22aEpK9u1+eQf0fSxHeqwyV19K+uGnlROCxUhzwRip9tBsaMViK/0vC3viyPd5Gtucp3UmEp/Q2cPTQ==", "dev": true, "requires": { "sourcemap-codec": "^1.4.8" @@ -729,9 +729,9 @@ } }, "@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", + "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", "dev": true }, "@babel/core": { @@ -810,14 +810,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", + "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.19.1", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "dependencies": { @@ -830,14 +830,14 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", - "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.18.9", @@ -856,9 +856,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -877,9 +877,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.17.7", @@ -914,13 +914,13 @@ } }, "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "dependencies": { "@babel/template": { @@ -964,9 +964,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -974,9 +974,9 @@ "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "dependencies": { "@babel/template": { @@ -1002,9 +1002,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -1031,16 +1031,16 @@ } }, "@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" } }, "@babel/helper-simple-access": { @@ -1077,9 +1077,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" }, "@babel/helper-validator-option": { "version": "7.18.6", @@ -1088,15 +1088,15 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "dependencies": { "@babel/template": { @@ -1113,14 +1113,14 @@ } }, "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "dependencies": { "@babel/template": { @@ -1193,9 +1193,9 @@ } }, "@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -1552,16 +1552,17 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" @@ -1693,14 +1694,14 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", + "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } @@ -1716,13 +1717,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-new-target": { @@ -1813,12 +1814,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, @@ -1972,20 +1973,20 @@ } }, "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", - "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", + "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", "dev": true, "requires": { - "core-js-pure": "^3.20.2", + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" } }, @@ -2001,30 +2002,30 @@ } }, "@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", + "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", + "@babel/generator": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/parser": "^7.19.1", + "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "requires": { - "@babel/types": "^7.18.13", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -2049,9 +2050,9 @@ } }, "@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.18.10", @@ -2071,14 +2072,14 @@ }, "dependencies": { "@capacitor/android": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.7.0.tgz", - "integrity": "sha512-SF06sqvEKvRnev+T+k4jjfDIdsqcDiGnzGld7oTtJipiO16xVkKPG0kEbFZEWkrMvhqRn6jNyl+ZHn5/9JR7nA==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.8.0.tgz", + "integrity": "sha512-FwHCiWOkPmqI/K4rnIBSyRUy39zqDmgK62yR3DSfEMVgXVvUkzRgYQfDxCn+lq8vPiT/CbnI/iEoudBorJFQkw==" }, "@capacitor/core": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.7.0.tgz", - "integrity": "sha512-Y6Wrt1Im246fIfAIAsOElqPkBgzV1w9jG/NnBtxCb5kJ6IGtszl9fOvJ3WdGAfh9UOnEBr4m3iaz2L7ZGkQzWg==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.8.0.tgz", + "integrity": "sha512-Z7iHM+1CBbuIK+74bS4ZjpPUOdcKb7Gf7j8xK9WegcrUeHZQl4O6hAAn6nT60kDoeAyutsr3PP25542Ur0wLBg==", "requires": { "tslib": "^2.1.0" } @@ -2089,9 +2090,9 @@ "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==" }, "@capacitor/ios": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.7.0.tgz", - "integrity": "sha512-4zqwRdxCdBFRqJf08+V8eyed69in4xLQh9fX6Me6g9Sl+uYhhmR1KSOLxtlgT2GJgBdszXx9xUk62SRjlQfEQA==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.8.0.tgz", + "integrity": "sha512-a2/inoVG+4L1diOxTK8oXOMliT5tXwJSg5KelJh8YuouYjH8duVRx560qoKQPE9rUbo9VG3pqOK0w3gROSk2yQ==" } } }, @@ -2155,9 +2156,9 @@ "integrity": "sha512-mHcTU+z2SiGL0azdr4Pn9Qzq+AHKBIoDzAOUVAco+OyFsASdMu/+d/DB2MipA4VvO2QNnbcvvtSFwDnCoyg+aw==" }, "@capacitor/filesystem": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-4.1.0.tgz", - "integrity": "sha512-isUL8kyH+GzcWToNu1uGyn83pwrnOC6wevefN6kGsq0jluBfryJme6WG1VTq0gi3cw604t8j8XtVoTKz8V7gfQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-4.1.1.tgz", + "integrity": "sha512-qpXIR4kxW2age91EiDFOh5KpZ5SUFs1rgWmNrO60wo+AT3Ok0Dzfol2aLSqvNAenDGUilA44ThJPeE+ArRPVzg==" }, "@capacitor/geolocation": { "version": "4.0.1", @@ -2266,21 +2267,21 @@ }, "dependencies": { "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", + "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.1", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -2297,12 +2298,12 @@ } }, "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "requires": { - "@babel/types": "^7.18.13", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -2668,9 +2669,9 @@ } }, "@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2780,9 +2781,9 @@ "integrity": "sha512-hebf0ixGPugiZfH6g7HS/hrDzkKmNdJV/pV2jUz5lfoZXFMjE+7aeAr1AqwW6EGNej65WcEP8VUL5YUc3wSCjw==" }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz", + "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==", "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -2932,6 +2933,15 @@ "is-docker": "^2.0.0", "is-wsl": "^2.1.1" } + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + } } } }, @@ -3005,12 +3015,12 @@ } }, "@ionic/core": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.2.4.tgz", - "integrity": "sha512-LDRIwG5plwTHELxQ/j3uEfLJ7YkzJzR1V4QGE+X59aE/l7XoXZyLb1NWFjY7glBbFHGQgSuPFWNhXFkyRBxRFQ==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.2.8.tgz", + "integrity": "sha512-tUUdvCPo9Z4RQXjvxNXBXQsVTFDAH2ju/HAhzZiAvdfwpHfpA39DWkXwAQeoV9gfFFblaOmCmeSq/8JP/FRn4A==", "requires": { "@stencil/core": "^2.17.4", - "ionicons": "^6.0.2", + "ionicons": "^6.0.3", "tslib": "^2.1.0" } }, @@ -3605,21 +3615,30 @@ } }, "@nrwl/cli": { - "version": "14.5.10", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.5.10.tgz", - "integrity": "sha512-GpnnKGO3+HwlMmZSStbq1MOyoDJg2I0HN4nBqM3ltaQkfxGZv3erwRMOAT+8mba2MWbJJ2QQgASAYvTscNYjOQ==", + "version": "14.7.17", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.7.17.tgz", + "integrity": "sha512-ovzGpWnTrmFXX5TEV2VzBUz8oPLoPkqtGKpdvlHvnd0UADQUpmNxoSY7mzHclDLRMyb6MWnVKqlJiypTG/p9iw==", "dev": true, "requires": { - "nx": "14.5.10" + "nx": "14.7.17" }, "dependencies": { "@nrwl/tao": { - "version": "14.5.10", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.5.10.tgz", - "integrity": "sha512-eWORRba0HlTNmOQFUxHqki0Z5yiRIq1Hl0taprmZpz2lgDXuzPIjGfAi5/ETy5+G5gkEyxFnCq7+SiMilPokwA==", + "version": "14.7.17", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.7.17.tgz", + "integrity": "sha512-35IPDtv4hdkmDvLuQ/Q5AaDACgsznpmj3+/SitL1U/vYpFUcAPUrPznL3QK4TuvL3IeCLwYaYO0NCZotDEQi4g==", "dev": true, "requires": { - "nx": "14.5.10" + "nx": "14.7.17" + } + }, + "@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "requires": { + "argparse": "^2.0.1" } }, "chalk": { @@ -3665,12 +3684,6 @@ "path-is-absolute": "^1.0.0" } }, - "jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3690,14 +3703,17 @@ } }, "nx": { - "version": "14.5.10", - "resolved": "https://registry.npmjs.org/nx/-/nx-14.5.10.tgz", - "integrity": "sha512-dqiV+zY32k98mfKFTgiQyYd9HYZmB1zoJj6gYniEuqzs6CKp8ZSpeRDaVQRxR6wEMvW9MSTA9kBg8sJ78W/NZg==", + "version": "14.7.17", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.7.17.tgz", + "integrity": "sha512-LLXdz4xeR54Lqw9t3XtOJsBtlwtSexrlIwhWc42GKlv4MHrBOnTp99jTQ/hdP9TpGCU7tvShRQ4ildZJapgRSg==", "dev": true, "requires": { - "@nrwl/cli": "14.5.10", - "@nrwl/tao": "14.5.10", + "@nrwl/cli": "14.7.17", + "@nrwl/tao": "14.7.17", "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^3.0.0-rc.18", + "@zkochan/js-yaml": "0.0.6", "chalk": "4.1.0", "chokidar": "^3.5.1", "cli-cursor": "3.1.0", @@ -3712,12 +3728,13 @@ "glob": "7.1.4", "ignore": "^5.0.4", "js-yaml": "4.1.0", - "jsonc-parser": "3.0.0", + "jsonc-parser": "3.2.0", "minimatch": "3.0.5", "npm-run-path": "^4.0.1", "open": "^8.4.0", "semver": "7.3.4", "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tsconfig-paths": "^3.9.0", @@ -4137,10 +4154,16 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, "@stencil/core": { - "version": "2.17.4", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.17.4.tgz", - "integrity": "sha512-SGRlHpjV1RyFvzw6jFMVKpLNox9Eds3VvpbpD2SW9CuxdLonHDSFtQks5zmT4zs1Rse9I6kFc2mFK/dHNTalkg==" + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.18.0.tgz", + "integrity": "sha512-NLEY8Jq59smyiivBAxHKipsp9YkkW/K/Vm90zAyXQqukb12i2SFucWHJ1Ik7ropVlhmMVvigyxXgRfQ9quIqtg==" }, "@swc/helpers": { "version": "0.4.11", @@ -4243,12 +4266,6 @@ "@types/node": "*" } }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true - }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -4322,9 +4339,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.30", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", - "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -4401,11 +4418,6 @@ "@types/sizzle": "*" } }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, "@types/json-patch": { "version": "0.0.30", "resolved": "https://registry.npmjs.org/@types/json-patch/-/json-patch-0.0.30.tgz", @@ -4455,9 +4467,9 @@ } }, "@types/marked": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.0.6.tgz", - "integrity": "sha512-ITAVUzsnVbhy5afxhs4PPPbrv2hKVEDH5BhhaQNQlVG0UNu+9A18XSdYr53nBdHZ0ADEQLl+ciOjXbs7eHdiQQ==" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.0.7.tgz", + "integrity": "sha512-eEAhnz21CwvKVW+YvRvcTuFKNU9CV1qH+opcgVK3pIMI6YZzDm6gc8o2vHjldFk6MGKt5pueSB7IOpvpx5Qekw==" }, "@types/mime": { "version": "3.0.1", @@ -4465,9 +4477,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "@types/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-0RJHq5FqDWo17kdHe+SMDJLfxmLaqHbWnqZ6gNKzDvStUlrmx/eKIY17+ifLS1yybo7X86aUshQMlittDOVNnw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, "@types/minimist": { @@ -5114,6 +5126,37 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "@yarnpkg/parsers": { + "version": "3.0.0-rc.21", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.21.tgz", + "integrity": "sha512-aM82UlEU12+grklXCyGnMXMqChrW8BDI6DZuw2JjijLyErEqZ/9MjEyYhcn+oz8bKSvudEAe8ygRzkt1cVMOtQ==", + "dev": true, + "requires": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -5353,18 +5396,18 @@ } }, "apache-crypt": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.5.tgz", - "integrity": "sha512-ICnYQH+DFVmw+S4Q0QY2XRXD8Ne8ewh8HgbuFH4K7022zCxgHM0Hz1xkRnUlEfAXNbwp1Cnhbedu60USIfDxvg==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz", + "integrity": "sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==", "dev": true, "requires": { "unix-crypt-td-js": "^1.1.4" } }, "apache-md5": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.7.tgz", - "integrity": "sha512-JtHjzZmJxtzfTSjsCyHgPR155HBe5WGyUyHTaEkfy46qhwCFKx1Epm6nAxgUG3WfUZP1dWhGqj9Z2NOBeZ+uBw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz", + "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==", "dev": true }, "aproba": { @@ -5565,13 +5608,13 @@ "dev": true }, "autoprefixer": { - "version": "10.4.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", - "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==", + "version": "10.4.12", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", + "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", "dev": true, "requires": { - "browserslist": "^4.21.3", - "caniuse-lite": "^1.0.30001373", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001407", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -5652,13 +5695,13 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "requires": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "dependencies": { @@ -6005,15 +6048,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" } }, "browserstack": { @@ -6202,9 +6245,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001384", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001384.tgz", - "integrity": "sha512-BBWt57kqWbc0GYZXb47wTXpmAgqr5LSibPzNjk/AWMdmJMQhLqOl3c/Kd4OAU/tu4NLfYkMx8Tlq3RVBkOBolQ==", + "version": "1.0.30001412", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", + "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", "dev": true }, "capacitor-secure-storage-plugin": { @@ -6305,18 +6348,18 @@ } }, "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true }, "parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", "dev": true, "requires": { - "entities": "^4.3.0" + "entities": "^4.4.0" } }, "parse5-htmlparser2-tree-adapter": { @@ -6390,9 +6433,9 @@ } }, "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true } } @@ -6425,9 +6468,9 @@ "dev": true }, "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", "dev": true }, "circular-dependency-plugin": { @@ -6474,9 +6517,9 @@ "dev": true }, "cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, "requires": { "@colors/colors": "1.5.0", @@ -6651,15 +6694,6 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } - }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -7037,6 +7071,17 @@ "meow": "^8.0.0", "split2": "^3.0.0", "through2": "^4.0.0" + }, + "dependencies": { + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + } + } } }, "convert-source-map": { @@ -7184,27 +7229,18 @@ "dev": true }, "core-js-compat": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", - "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", + "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", "dev": true, "requires": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz", - "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==", + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.3.tgz", + "integrity": "sha512-T/7qvgv70MEvRkZ8p6BasLZmOVYKzOaWNBEHAU8FmveCJkl4nko2quqPQOmy6AJIp5MBanhz9no3A94NoRb0XA==", "dev": true }, "core-util-is": { @@ -7376,9 +7412,9 @@ "dev": true }, "cypress": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.6.0.tgz", - "integrity": "sha512-6sOpHjostp8gcLO34p6r/Ci342lBs8S5z9/eb3ZCQ22w2cIhMWGUoGKkosabPBfKcvRS9BE4UxybBtlIs8gTQA==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.9.0.tgz", + "integrity": "sha512-MjIWrRpc+bQM9U4kSSdATZWZ2hUqHGFEQTF7dfeZRa4MnalMtc88FIE49USWP2ZVtfy5WPBcgfBX+YorFqGElA==", "dev": true, "requires": { "@cypress/request": "^2.88.10", @@ -7400,7 +7436,7 @@ "dayjs": "^1.10.4", "debug": "^4.3.2", "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", + "eventemitter2": "6.4.7", "execa": "4.1.0", "executable": "^4.1.1", "extract-zip": "2.0.1", @@ -7530,9 +7566,9 @@ "dev": true }, "date-format": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.13.tgz", - "integrity": "sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true }, "dateformat": { @@ -8005,9 +8041,9 @@ } }, "electron-to-chromium": { - "version": "1.4.233", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.233.tgz", - "integrity": "sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw==", + "version": "1.4.264", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", + "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==", "dev": true }, "elementtree": { @@ -8475,13 +8511,13 @@ } }, "eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", + "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", @@ -8499,7 +8535,6 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", "globby": "^11.1.0", @@ -8508,6 +8543,7 @@ "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -8962,12 +8998,12 @@ } }, "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, "requires": { - "type": "^2.5.0" + "type": "^2.7.2" }, "dependencies": { "type": { @@ -9045,9 +9081,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -9234,9 +9270,9 @@ "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==" }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "fontkit": { "version": "2.0.2", @@ -9491,9 +9527,9 @@ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -9674,6 +9710,17 @@ "meow": "^8.0.0", "split2": "^3.0.0", "through2": "^4.0.0" + }, + "dependencies": { + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + } + } } }, "git-remote-origin-url": { @@ -10115,9 +10162,9 @@ } }, "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true } } @@ -10135,9 +10182,9 @@ } }, "http-auth-connect": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/http-auth-connect/-/http-auth-connect-1.0.5.tgz", - "integrity": "sha512-zykAOKpVAXyzhOLm6+xyB/RtRcfN3uDfH4Al73DIfeSb6B7nr0WToLI6UyyM6ohtcLmbBPksWXzVbEDStz8ObQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/http-auth-connect/-/http-auth-connect-1.0.6.tgz", + "integrity": "sha512-yaO0QSCPqGCjPrl3qEEHjJP+lwZ6gMpXLuCBE06eWwcXomkI5TARtu0kxf9teFuBj6iaV3Ybr15jaWUvbzNzHw==", "dev": true }, "http-cache-semantics": { @@ -10267,9 +10314,9 @@ } }, "i18next": { - "version": "21.9.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.9.1.tgz", - "integrity": "sha512-ITbDrAjbRR73spZAiu6+ex5WNlHRr1mY+acDi2ioTHuUiviJqSz269Le1xHAf0QaQ6GgIHResUhQNcxGwa/PhA==", + "version": "21.9.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.9.2.tgz", + "integrity": "sha512-00fVrLQOwy45nm3OtC9l1WiLK3nJlIYSljgCt0qzTaAy65aciMdRy9GsuW+a2AtKtdg9/njUGfRH30LRupV7ZQ==", "requires": { "@babel/runtime": "^7.17.2" } @@ -10401,9 +10448,9 @@ }, "dependencies": { "rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -10449,9 +10496,9 @@ "optional": true }, "@capacitor/core": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.7.0.tgz", - "integrity": "sha512-Y6Wrt1Im246fIfAIAsOElqPkBgzV1w9jG/NnBtxCb5kJ6IGtszl9fOvJ3WdGAfh9UOnEBr4m3iaz2L7ZGkQzWg==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.8.0.tgz", + "integrity": "sha512-Z7iHM+1CBbuIK+74bS4ZjpPUOdcKb7Gf7j8xK9WegcrUeHZQl4O6hAAn6nT60kDoeAyutsr3PP25542Ur0wLBg==", "optional": true, "requires": { "tslib": "^2.1.0" @@ -10969,9 +11016,9 @@ "dev": true }, "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.6.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz", + "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -10980,6 +11027,12 @@ "@sideway/pinpoint": "^2.0.0" } }, + "js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11060,9 +11113,9 @@ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, "jsonc-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", - "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" }, "jsonfile": { "version": "6.1.0", @@ -11413,11 +11466,10 @@ } }, "keyv": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.4.1.tgz", - "integrity": "sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", + "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", "requires": { - "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -11695,9 +11747,9 @@ }, "dependencies": { "rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -12033,9 +12085,9 @@ "dev": true }, "marked": { - "version": "4.0.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.19.tgz", - "integrity": "sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", + "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==" }, "material-symbols": { "version": "0.2.8", @@ -12535,28 +12587,28 @@ "dev": true }, "native-run": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.6.0.tgz", - "integrity": "sha512-28bz2tnNSLg0ldeB2Qn/B3r1AowGNY8XdQ23akJbRPIYi69VduIj0DDyoptiIBtFFif2C32hQtSPW3v1hPcrjA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.7.1.tgz", + "integrity": "sha512-70ZneVVcOL1ifqw7SG5O2AJYIHEBSX5C25ShwwKCcdMcgbZ+MzvAc2fjHzfekcPYtInHqcJQOki6NXj9f6LgOg==", "dev": true, "requires": { - "@ionic/utils-fs": "^3.1.5", - "@ionic/utils-terminal": "^2.3.1", - "bplist-parser": "^0.3.0", - "debug": "^4.3.2", + "@ionic/utils-fs": "^3.1.6", + "@ionic/utils-terminal": "^2.3.3", + "bplist-parser": "^0.3.2", + "debug": "^4.3.4", "elementtree": "^0.1.7", - "ini": "^1.3.5", - "plist": "^3.0.4", - "split2": "^3.2.2", + "ini": "^3.0.1", + "plist": "^3.0.6", + "split2": "^4.1.0", "through2": "^4.0.2", - "tslib": "^2.3.1", + "tslib": "^2.4.0", "yauzl": "^2.10.0" }, "dependencies": { "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", "dev": true } } @@ -12671,9 +12723,9 @@ } }, "node-abi": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", - "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.25.0.tgz", + "integrity": "sha512-p+0xx5ruIQ+8X57CRIMxbTZRT7tU0Tjn2C/aAK68AEMrbGsCo6IjnDdPNhEyyjWCT4bRtzomXchYd3sSgk3BJQ==", "dev": true, "requires": { "semver": "^7.3.5" @@ -13741,9 +13793,9 @@ } }, "postcss-custom-properties": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz", - "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==", + "version": "12.1.9", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.9.tgz", + "integrity": "sha512-/E7PRvK8DAVljBbeWrcEQJPG72jaImxF3vvCNFwv9cC8CzigVoNIpeyfnJzphnN3Fd8/auBf5wvkw6W9MfmTyg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" @@ -13911,9 +13963,9 @@ } }, "postcss-nesting": { - "version": "10.1.10", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.10.tgz", - "integrity": "sha512-lqd7LXCq0gWc0wKXtoKDru5wEUNjm3OryLVNRZ8OnW8km6fSNUuFrjEhU3nklxXE2jvd4qrox566acgh+xQt8w==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", "dev": true, "requires": { "@csstools/selector-specificity": "^2.0.0", @@ -15002,9 +15054,9 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "requires": { "regenerate": "^1.4.2" @@ -15053,29 +15105,29 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" }, "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", "dev": true, "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } }, "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", "dev": true }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -15368,9 +15420,9 @@ } }, "safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz", + "integrity": "sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA==" }, "safer-buffer": { "version": "2.1.2", @@ -15542,9 +15594,9 @@ } }, "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "requires": { "node-forge": "^1" @@ -15859,9 +15911,9 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socket.io": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", - "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.2.tgz", + "integrity": "sha512-6fCnk4ARMPZN448+SQcnn1u8OHUC72puJcNtSgg2xS34Cu7br1gQ09YKkO1PFfDn/wyUE9ZgMAwosJed003+NQ==", "dev": true, "requires": { "accepts": "~1.3.4", @@ -15869,7 +15921,7 @@ "debug": "~4.3.2", "engine.io": "~6.2.0", "socket.io-adapter": "~2.4.0", - "socket.io-parser": "~4.0.4" + "socket.io-parser": "~4.2.0" } }, "socket.io-adapter": { @@ -15879,13 +15931,12 @@ "dev": true }, "socket.io-parser": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", - "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "dev": true, "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" } }, @@ -16073,13 +16124,10 @@ } }, "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "dev": true }, "sprintf-js": { "version": "1.0.3", @@ -16263,12 +16311,12 @@ } }, "streamroller": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.2.tgz", - "integrity": "sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz", + "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==", "dev": true, "requires": { - "date-format": "^4.0.13", + "date-format": "^4.0.14", "debug": "^4.3.4", "fs-extra": "^8.1.0" }, @@ -16353,6 +16401,17 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } + }, "stylus": { "version": "0.56.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", @@ -16832,9 +16891,9 @@ } }, "terser-webpack-plugin": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", - "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.14", @@ -17229,9 +17288,9 @@ "dev": true }, "uglify-js": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz", - "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.2.tgz", + "integrity": "sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg==", "dev": true, "optional": true }, @@ -17268,9 +17327,9 @@ } }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "unicode-trie": { @@ -17330,9 +17389,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -17461,9 +17520,9 @@ }, "dependencies": { "rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "requires": { "tslib": "^2.1.0" } @@ -17885,9 +17944,9 @@ } }, "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "dev": true }, "xml2js": { diff --git a/package.json b/package.json index cc3ede64..2390e1a5 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@capacitor/core": "4.1.0", "@capacitor/device": "4.0.1", "@capacitor/dialog": "4.0.1", - "@capacitor/filesystem": "4.1.0", + "@capacitor/filesystem": "4.1.1", "@capacitor/geolocation": "4.0.1", "@capacitor/haptics": "4.0.1", "@capacitor/keyboard": "4.0.1", @@ -79,6 +79,7 @@ "@capacitor/share": "4.0.1", "@capacitor/splash-screen": "4.0.1", "@capacitor/status-bar": "4.0.1", + "@hugotomazi/capacitor-navigation-bar": "2.0.0", "@ionic-native/core": "5.36.0", "@ionic-native/file-opener": "5.36.0", "@ionic/angular": "6.2.4", @@ -88,7 +89,6 @@ "@openstapps/api": "0.43.0", "@openstapps/configuration": "0.33.0", "@openstapps/core": "0.70.0", - "@hugotomazi/capacitor-navigation-bar": "2.0.0", "@transistorsoft/capacitor-background-fetch": "1.0.0", "capacitor-secure-storage-plugin": "0.8.0", "cordova-plugin-calendar": "5.1.6", @@ -144,8 +144,8 @@ "@typescript-eslint/parser": "5.35.1", "conventional-changelog-cli": "2.2.2", "cordova-res": "0.15.4", - "cypress": "10.6.0", - "eslint": "8.23.0", + "cypress": "10.9.0", + "eslint": "8.24.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-jsdoc": "39.3.6", "eslint-plugin-prettier": "4.2.1", diff --git a/src/app/modules/dashboard/dashboard-collapse.ts b/src/app/modules/dashboard/dashboard-collapse.ts index c8ec4e3b..63edeaa2 100644 --- a/src/app/modules/dashboard/dashboard-collapse.ts +++ b/src/app/modules/dashboard/dashboard-collapse.ts @@ -21,10 +21,25 @@ export class DashboardCollapse { nextFrame: number; + setReady: () => void; + + // eslint-disable-next-line unicorn/consistent-function-scoping + ready = new Promise(resolve => (this.setReady = resolve)); + + set active(value: boolean) { + this.zone.runOutsideAngular(() => { + if (value) { + this.start(); + } else { + this.stop(); + } + }); + } + constructor( private animationControl: AnimationController, private zone: NgZone, - scrollContainer: HTMLElement, + private scrollContainer: HTMLElement, toolbar: HTMLElement, schedule: HTMLElement, ) { @@ -55,23 +70,37 @@ export class DashboardCollapse { .addElement(schedule.querySelectorAll(':scope > a > *')) .fromTo('transform', 'scaleY(1)', `scaleY(${1 / 0.8})`), ]); - this.collapseAnimation.progressStart(true, 0); - - const element = scrollContainer; - let pos = element.scrollTop; - const animate = () => { - if (pos !== element.scrollTop) { - pos = element.scrollTop; - this.collapseAnimation.progressStep(element.scrollTop / 172); - } - this.nextFrame = requestAnimationFrame(animate); - }; - this.nextFrame = requestAnimationFrame(animate); + this.start(); + this.setReady(); }) .then(); } - destroy() { + private start() { + this.collapseAnimation.progressStart( + true, + this.scrollContainer.scrollTop / 172, + ); + let pos = this.scrollContainer.scrollTop; + const animate = () => { + if (pos !== this.scrollContainer.scrollTop) { + pos = this.scrollContainer.scrollTop; + this.collapseAnimation.progressStep( + this.scrollContainer.scrollTop / 172, + ); + } + this.nextFrame = requestAnimationFrame(animate); + }; + this.nextFrame = requestAnimationFrame(animate); + } + + private stop() { cancelAnimationFrame(this.nextFrame); + this.collapseAnimation.progressEnd(0, 0, 0); + } + + destroy() { + this.stop(); + this.collapseAnimation.destroy(); } } diff --git a/src/app/modules/dashboard/dashboard.component.ts b/src/app/modules/dashboard/dashboard.component.ts index 2cb81577..940506fa 100644 --- a/src/app/modules/dashboard/dashboard.component.ts +++ b/src/app/modules/dashboard/dashboard.component.ts @@ -31,6 +31,7 @@ import {DataRoutingService} from '../data/data-routing.service'; import {ScheduleProvider} from '../calendar/schedule.provider'; import {AnimationController, IonContent} from '@ionic/angular'; import {DashboardCollapse} from './dashboard-collapse'; +import {BreakpointObserver} from '@angular/cdk/layout'; // const scrollTimeline = new ScrollTimeline(); @@ -68,11 +69,6 @@ export class DashboardComponent implements OnInit, OnDestroy { */ private uuids: SCUuid[]; - /** - * Enable header animation - */ - isHeaderAnimated = true; - /** * Next event in calendar */ @@ -101,6 +97,7 @@ export class DashboardComponent implements OnInit, OnDestroy { protected router: Router, public location: Location, private animationControl: AnimationController, + private breakpointObserver: BreakpointObserver, private zone: NgZone, ) { this.subscriptions.push( @@ -126,6 +123,15 @@ export class DashboardComponent implements OnInit, OnDestroy { this.toolbarRef.nativeElement, this.scheduleRef.nativeElement, ); + + this.subscriptions.push( + this.breakpointObserver + .observe(['(min-width: 768px)']) + .subscribe(async state => { + await this.collapseAnimation.ready; + this.collapseAnimation.active = !state.matches; + }), + ); } ionViewDidEnter() {