diff --git a/client/package-lock.json b/client/package-lock.json index 6a973207..4e0499d0 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -23,754 +23,12 @@ "@types/gtag.js": "^0.0.12", "browserify": "^17.0.0", "concurrently": "^7.6.0", - "firebase": "^9.17.1", "nodemon": "^2.0.20", "tsify": "^5.0.4", "typescript": "^4.9.4", "watchify": "^4.0.0" } }, - "node_modules/@firebase/analytics": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.3.tgz", - "integrity": "sha512-XdYHBi6RvHYVAHGyLxXX0uRPwZmGeqw1JuWS1rMEeRF/jvbxnrL81kcFAHZVRkEvG9bXAJgL2fX9wmDo3e622w==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/analytics-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.3.tgz", - "integrity": "sha512-HmvbB4GMgh8AUlIDIo/OuFENLCGRXxMvtOueK+m8+DcfqBvG+mkii0Mi9ovo0TnMM62cy3oBYG7PHdjIQNLSLA==", - "dev": true, - "dependencies": { - "@firebase/analytics": "0.9.3", - "@firebase/analytics-types": "0.8.0", - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/analytics-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz", - "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==", - "dev": true - }, - "node_modules/@firebase/app": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.3.tgz", - "integrity": "sha512-G79JUceVDaHRZ4WkA11GyVldVXhdyRJRwWVQFFvAAVfQJLvy2TA6lQjeUn28F6FmeUWxDGwPC30bxCRWq7Op8Q==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/app-check": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.3.tgz", - "integrity": "sha512-T9f9ceFLs7x4D2T6whu5a6j7B3qPuYHiZHZxW6DkMh/FoMmRA4/q/HVyu01i9+LyJJx2Xdo6eCcj6ofs9YZjqA==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/app-check-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.3.tgz", - "integrity": "sha512-25AQ4W7WUL8OWas40GsABuNU622Dm1ojbfeZ03uKtLj5Af7FerJ25u7zkgm+11pc6rpr5v8E5oxEG9vmNRndEA==", - "dev": true, - "dependencies": { - "@firebase/app-check": "0.6.3", - "@firebase/app-check-types": "0.5.0", - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/app-check-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz", - "integrity": "sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==", - "dev": true - }, - "node_modules/@firebase/app-check-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz", - "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==", - "dev": true - }, - "node_modules/@firebase/app-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.3.tgz", - "integrity": "sha512-sX6rD1KFX6K2CuCnQvc9jZLOgAFZ+sv2jKKahIl4SbTM561D682B8n4Jtx/SgDrvcTVTdb05g4NhZOws9hxYxA==", - "dev": true, - "dependencies": { - "@firebase/app": "0.9.3", - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/app-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", - "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==", - "dev": true - }, - "node_modules/@firebase/auth": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.3.tgz", - "integrity": "sha512-HPbcwgArLBVTowFcn4qaQr6LCx7BidI9yrQ5MRbQNv4PsgK/3UGpzCYaNPPbvgr9fe+0jNdJO+uC0+dk4xIzCQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/auth-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.3.tgz", - "integrity": "sha512-9asUuGtkzUVELH3LYXdiom1nVVV9bqEPqzHohanoofHL/oVTNcHZ4AQ5CXjNATfb6c1WH32U+nEuPiYg26UUIw==", - "dev": true, - "dependencies": { - "@firebase/auth": "0.21.3", - "@firebase/auth-types": "0.12.0", - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", - "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==", - "dev": true - }, - "node_modules/@firebase/auth-types": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz", - "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==", - "dev": true, - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/component": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.3.tgz", - "integrity": "sha512-rnhq5SOsB5nuJphZF50iwqnBiuuyg9kdnlUn1rBrKfu7/cUVJZF5IG1cWrL0rXXyiZW1WBI/J2pmTvVO8dStGQ==", - "dev": true, - "dependencies": { - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.3.tgz", - "integrity": "sha512-J76W6N7JiVkLaAtPyjaGRkrsIu9pi6iZikuGGtGjqvV19vkn7oiL4Hbo5uTYCMd4waTUWoL9iI08eX184W+5GQ==", - "dev": true, - "dependencies": { - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.3.tgz", - "integrity": "sha512-r+L9jTbvsnb7sD+xz6UKU39DgBWqB2pyjzPNdBeriGC9Ssa2MAZe0bIqjCQg51RRXYc/aa/zK1Q2/4uesZeVgQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/database": "0.14.3", - "@firebase/database-types": "0.10.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-types": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.3.tgz", - "integrity": "sha512-Hu34CDhHYZsd2eielr0jeaWrTJk8Hz0nd7WsnYDnXtQX4i49ppgPesUzPdXVBdIBLJmT0ZZRvT7qWHknkOT+zg==", - "dev": true, - "dependencies": { - "@firebase/app-types": "0.9.0", - "@firebase/util": "1.9.2" - } - }, - "node_modules/@firebase/firestore": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.3.tgz", - "integrity": "sha512-4xR3Mqj95bxHg3hZnz0O+LQrHkjq+siT2y+B9da6u68qJ8bzzT42JaFgd1vifhbBpVbBzpFaS2RuCq2E+kGv9g==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "@firebase/webchannel-wrapper": "0.9.0", - "@grpc/grpc-js": "~1.7.0", - "@grpc/proto-loader": "^0.6.13", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10.10.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/firestore-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.3.tgz", - "integrity": "sha512-fMTsSC0s2cF5w2+JoB0dWD/o4kXtLrUCPGnZPuz4S0bqTN2t0vHr3gdAsQLtnadgwB78ACtinYmf4Udwx7TzDg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/firestore": "3.8.3", - "@firebase/firestore-types": "2.5.1", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/firestore-types": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz", - "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==", - "dev": true, - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/functions": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.3.tgz", - "integrity": "sha512-tPJgYY2ROQSYuzvgxZRoHeDj+Ic07/bWHwaftgTriawtupmFOkt5iikuhJSJUhaOpFh9TB335OvCXJw1N+BIlQ==", - "dev": true, - "dependencies": { - "@firebase/app-check-interop-types": "0.2.0", - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.3", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/functions-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.3.tgz", - "integrity": "sha512-UIAJ2gzNq0p/61cXqkpi9DnlQt0hdlGqgmL5an7KuJth2Iv5uGpKg/+OapAZxPuiUNZgTEyZDB7kNBHvnxWq5w==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/functions": "0.9.3", - "@firebase/functions-types": "0.6.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/functions-types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz", - "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==", - "dev": true - }, - "node_modules/@firebase/installations": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.3.tgz", - "integrity": "sha512-20JFWm+tweNoRjRbz8/Y4I7O5pUJGZsFKCkLl1qNxfNYECSfrZUuozIDJDZC/MeVn5+kB9CwjThDlgQEPrfLdg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "idb": "7.0.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/installations-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.3.tgz", - "integrity": "sha512-K9rKM/ym06lkpaKz7bMLxzHK/HEk65XfLJBV+dJkIuWeO0EqqC9VFGrpWAo0QmgC4BqbU58T6VBbzoJjb0gaFw==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/installations-types": "0.5.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/installations-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz", - "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==", - "dev": true, - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/logger": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", - "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/messaging": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.3.tgz", - "integrity": "sha512-a3ZKcGDiV2sKmQDB56PpgL1yjFxXCtff2+v1grnAZZ4GnfNQ74t2EHCbmgY7xRX7ThzMqug54oxhuk4ur0MIoA==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.2", - "idb": "7.0.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/messaging-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.3.tgz", - "integrity": "sha512-MmuuohXV2YRzIoJmDngI5qqO/cF2q7SdAaw7k4r61W3ReJy7x4/rtqrIvwNVhM6X/X8NFGBbsYKsCfRHWjFdkg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/messaging": "0.12.3", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/messaging-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz", - "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==", - "dev": true - }, - "node_modules/@firebase/performance": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.3.tgz", - "integrity": "sha512-NQmQN6Ete7i9jz1mzULJZEGvsOmwwdUy6vpqnhUxSFMYPnlBKjX+yypCUUJDDN5zff5+kfwSD1qCyUAaS0xWUA==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/performance-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.3.tgz", - "integrity": "sha512-I3rqZsIhauXn4iApfj1ttKQdlti/r8OZBG4YK10vxKSdhAzTIDWDKEsdoCXvvKLwplcMv36sM3WPAPGQLqY5MQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/performance": "0.6.3", - "@firebase/performance-types": "0.2.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/performance-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz", - "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==", - "dev": true - }, - "node_modules/@firebase/remote-config": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.3.tgz", - "integrity": "sha512-Q6d4jBWZoNt6SYq87bjtDGUHFkKwAmGnNjWyRjl14AZqE1ilgd9NZHmutharlYJ3LvxMsid80HdK5SgGEpIPfg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/remote-config-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.3.tgz", - "integrity": "sha512-w/ZL03YgYaXq03xIRyJ5oPhXZi6iDsY/v0J9Y7I7SqxCYytEnHVrL9nvBqd9R94y5LRAVNPCLokJeeizaUz4VQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/remote-config": "0.4.3", - "@firebase/remote-config-types": "0.3.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/remote-config-types": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz", - "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==", - "dev": true - }, - "node_modules/@firebase/storage": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.1.tgz", - "integrity": "sha512-Xv8EG2j52ugF2xayBz26U9J0VBXHXPMVxSN+ph3R3BSoHxvMLaPu+qUYKHavSt+zbcgPH2GyBhrCdJK6SaDFPA==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/storage-compat": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.1.tgz", - "integrity": "sha512-6HaTvWsT5Yy3j4UpCZpMcFUYEkJ2XYWukdyTl02u6VjSBRLvkhOXPzEfMvgVWqhnF/rYVfPdjrZ904wk5OxtmQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.6.3", - "@firebase/storage": "0.11.1", - "@firebase/storage-types": "0.8.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/storage-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz", - "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==", - "dev": true, - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/util": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.2.tgz", - "integrity": "sha512-9l0uMGPGw3GsoD5khjMmYCCcMq/OR/OOSViiWMN+s2Q0pxM+fYzrii1H+r8qC/uoMjSVXomjLZt0vZIyryCqtQ==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/webchannel-wrapper": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz", - "integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg==", - "dev": true - }, - "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dev": true, - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.5.tgz", - "integrity": "sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==", - "dev": true, - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@grpc/grpc-js/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", - "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==", - "dev": true - }, - "node_modules/@grpc/grpc-js/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grpc/grpc-js/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "dev": true, - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@grpc/proto-loader/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/@grpc/proto-loader/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grpc/proto-loader/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true - }, "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", @@ -790,18 +48,6 @@ "@types/geojson": "*" } }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz", - "integrity": "sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==", - "dev": true - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1909,18 +1155,6 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -1977,40 +1211,6 @@ "node": ">= 0.8" } }, - "node_modules/firebase": { - "version": "9.17.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.17.1.tgz", - "integrity": "sha512-MSZaTRaaRLgDFLqoEnoPYK8zkLwQNvYeLZ3YSKdcQxG8hDifNO22ywS1cSA1ZCGHlQeOsDtfDwBejKcANf/RQw==", - "dev": true, - "dependencies": { - "@firebase/analytics": "0.9.3", - "@firebase/analytics-compat": "0.2.3", - "@firebase/app": "0.9.3", - "@firebase/app-check": "0.6.3", - "@firebase/app-check-compat": "0.3.3", - "@firebase/app-compat": "0.2.3", - "@firebase/app-types": "0.9.0", - "@firebase/auth": "0.21.3", - "@firebase/auth-compat": "0.3.3", - "@firebase/database": "0.14.3", - "@firebase/database-compat": "0.3.3", - "@firebase/firestore": "3.8.3", - "@firebase/firestore-compat": "0.3.3", - "@firebase/functions": "0.9.3", - "@firebase/functions-compat": "0.3.3", - "@firebase/installations": "0.6.3", - "@firebase/installations-compat": "0.2.3", - "@firebase/messaging": "0.12.3", - "@firebase/messaging-compat": "0.2.3", - "@firebase/performance": "0.6.3", - "@firebase/performance-compat": "0.2.3", - "@firebase/remote-config": "0.4.3", - "@firebase/remote-config-compat": "0.2.3", - "@firebase/storage": "0.11.1", - "@firebase/storage-compat": "0.3.1", - "@firebase/util": "1.9.2" - } - }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -2285,12 +1485,6 @@ "node": ">= 0.6" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -2308,12 +1502,6 @@ "node": ">=0.10.0" } }, - "node_modules/idb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz", - "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==", - "dev": true - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -2610,24 +1798,12 @@ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==" }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, "node_modules/map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", @@ -2816,26 +1992,6 @@ "node": ">= 0.6" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/nodemon": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", @@ -3119,32 +2275,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -3784,12 +2914,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -4015,45 +3139,6 @@ "readable-stream": "3" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -4144,648 +3229,6 @@ } }, "dependencies": { - "@firebase/analytics": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.3.tgz", - "integrity": "sha512-XdYHBi6RvHYVAHGyLxXX0uRPwZmGeqw1JuWS1rMEeRF/jvbxnrL81kcFAHZVRkEvG9bXAJgL2fX9wmDo3e622w==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/analytics-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.3.tgz", - "integrity": "sha512-HmvbB4GMgh8AUlIDIo/OuFENLCGRXxMvtOueK+m8+DcfqBvG+mkii0Mi9ovo0TnMM62cy3oBYG7PHdjIQNLSLA==", - "dev": true, - "requires": { - "@firebase/analytics": "0.9.3", - "@firebase/analytics-types": "0.8.0", - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/analytics-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz", - "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==", - "dev": true - }, - "@firebase/app": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.3.tgz", - "integrity": "sha512-G79JUceVDaHRZ4WkA11GyVldVXhdyRJRwWVQFFvAAVfQJLvy2TA6lQjeUn28F6FmeUWxDGwPC30bxCRWq7Op8Q==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "@firebase/app-check": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.3.tgz", - "integrity": "sha512-T9f9ceFLs7x4D2T6whu5a6j7B3qPuYHiZHZxW6DkMh/FoMmRA4/q/HVyu01i9+LyJJx2Xdo6eCcj6ofs9YZjqA==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/app-check-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.3.tgz", - "integrity": "sha512-25AQ4W7WUL8OWas40GsABuNU622Dm1ojbfeZ03uKtLj5Af7FerJ25u7zkgm+11pc6rpr5v8E5oxEG9vmNRndEA==", - "dev": true, - "requires": { - "@firebase/app-check": "0.6.3", - "@firebase/app-check-types": "0.5.0", - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/app-check-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz", - "integrity": "sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==", - "dev": true - }, - "@firebase/app-check-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz", - "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==", - "dev": true - }, - "@firebase/app-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.3.tgz", - "integrity": "sha512-sX6rD1KFX6K2CuCnQvc9jZLOgAFZ+sv2jKKahIl4SbTM561D682B8n4Jtx/SgDrvcTVTdb05g4NhZOws9hxYxA==", - "dev": true, - "requires": { - "@firebase/app": "0.9.3", - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/app-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", - "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==", - "dev": true - }, - "@firebase/auth": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.3.tgz", - "integrity": "sha512-HPbcwgArLBVTowFcn4qaQr6LCx7BidI9yrQ5MRbQNv4PsgK/3UGpzCYaNPPbvgr9fe+0jNdJO+uC0+dk4xIzCQ==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - } - }, - "@firebase/auth-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.3.tgz", - "integrity": "sha512-9asUuGtkzUVELH3LYXdiom1nVVV9bqEPqzHohanoofHL/oVTNcHZ4AQ5CXjNATfb6c1WH32U+nEuPiYg26UUIw==", - "dev": true, - "requires": { - "@firebase/auth": "0.21.3", - "@firebase/auth-types": "0.12.0", - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - } - }, - "@firebase/auth-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", - "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==", - "dev": true - }, - "@firebase/auth-types": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz", - "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==", - "dev": true, - "requires": {} - }, - "@firebase/component": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.3.tgz", - "integrity": "sha512-rnhq5SOsB5nuJphZF50iwqnBiuuyg9kdnlUn1rBrKfu7/cUVJZF5IG1cWrL0rXXyiZW1WBI/J2pmTvVO8dStGQ==", - "dev": true, - "requires": { - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/database": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.3.tgz", - "integrity": "sha512-J76W6N7JiVkLaAtPyjaGRkrsIu9pi6iZikuGGtGjqvV19vkn7oiL4Hbo5uTYCMd4waTUWoL9iI08eX184W+5GQ==", - "dev": true, - "requires": { - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" - } - }, - "@firebase/database-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.3.tgz", - "integrity": "sha512-r+L9jTbvsnb7sD+xz6UKU39DgBWqB2pyjzPNdBeriGC9Ssa2MAZe0bIqjCQg51RRXYc/aa/zK1Q2/4uesZeVgQ==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/database": "0.14.3", - "@firebase/database-types": "0.10.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/database-types": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.3.tgz", - "integrity": "sha512-Hu34CDhHYZsd2eielr0jeaWrTJk8Hz0nd7WsnYDnXtQX4i49ppgPesUzPdXVBdIBLJmT0ZZRvT7qWHknkOT+zg==", - "dev": true, - "requires": { - "@firebase/app-types": "0.9.0", - "@firebase/util": "1.9.2" - } - }, - "@firebase/firestore": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.3.tgz", - "integrity": "sha512-4xR3Mqj95bxHg3hZnz0O+LQrHkjq+siT2y+B9da6u68qJ8bzzT42JaFgd1vifhbBpVbBzpFaS2RuCq2E+kGv9g==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "@firebase/webchannel-wrapper": "0.9.0", - "@grpc/grpc-js": "~1.7.0", - "@grpc/proto-loader": "^0.6.13", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - } - }, - "@firebase/firestore-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.3.tgz", - "integrity": "sha512-fMTsSC0s2cF5w2+JoB0dWD/o4kXtLrUCPGnZPuz4S0bqTN2t0vHr3gdAsQLtnadgwB78ACtinYmf4Udwx7TzDg==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/firestore": "3.8.3", - "@firebase/firestore-types": "2.5.1", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/firestore-types": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz", - "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==", - "dev": true, - "requires": {} - }, - "@firebase/functions": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.3.tgz", - "integrity": "sha512-tPJgYY2ROQSYuzvgxZRoHeDj+Ic07/bWHwaftgTriawtupmFOkt5iikuhJSJUhaOpFh9TB335OvCXJw1N+BIlQ==", - "dev": true, - "requires": { - "@firebase/app-check-interop-types": "0.2.0", - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.3", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - } - }, - "@firebase/functions-compat": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.3.tgz", - "integrity": "sha512-UIAJ2gzNq0p/61cXqkpi9DnlQt0hdlGqgmL5an7KuJth2Iv5uGpKg/+OapAZxPuiUNZgTEyZDB7kNBHvnxWq5w==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/functions": "0.9.3", - "@firebase/functions-types": "0.6.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/functions-types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz", - "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==", - "dev": true - }, - "@firebase/installations": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.3.tgz", - "integrity": "sha512-20JFWm+tweNoRjRbz8/Y4I7O5pUJGZsFKCkLl1qNxfNYECSfrZUuozIDJDZC/MeVn5+kB9CwjThDlgQEPrfLdg==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "@firebase/installations-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.3.tgz", - "integrity": "sha512-K9rKM/ym06lkpaKz7bMLxzHK/HEk65XfLJBV+dJkIuWeO0EqqC9VFGrpWAo0QmgC4BqbU58T6VBbzoJjb0gaFw==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/installations-types": "0.5.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/installations-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz", - "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==", - "dev": true, - "requires": {} - }, - "@firebase/logger": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", - "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "@firebase/messaging": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.3.tgz", - "integrity": "sha512-a3ZKcGDiV2sKmQDB56PpgL1yjFxXCtff2+v1grnAZZ4GnfNQ74t2EHCbmgY7xRX7ThzMqug54oxhuk4ur0MIoA==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.2", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "@firebase/messaging-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.3.tgz", - "integrity": "sha512-MmuuohXV2YRzIoJmDngI5qqO/cF2q7SdAaw7k4r61W3ReJy7x4/rtqrIvwNVhM6X/X8NFGBbsYKsCfRHWjFdkg==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/messaging": "0.12.3", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/messaging-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz", - "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==", - "dev": true - }, - "@firebase/performance": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.3.tgz", - "integrity": "sha512-NQmQN6Ete7i9jz1mzULJZEGvsOmwwdUy6vpqnhUxSFMYPnlBKjX+yypCUUJDDN5zff5+kfwSD1qCyUAaS0xWUA==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/performance-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.3.tgz", - "integrity": "sha512-I3rqZsIhauXn4iApfj1ttKQdlti/r8OZBG4YK10vxKSdhAzTIDWDKEsdoCXvvKLwplcMv36sM3WPAPGQLqY5MQ==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/performance": "0.6.3", - "@firebase/performance-types": "0.2.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/performance-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz", - "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==", - "dev": true - }, - "@firebase/remote-config": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.3.tgz", - "integrity": "sha512-Q6d4jBWZoNt6SYq87bjtDGUHFkKwAmGnNjWyRjl14AZqE1ilgd9NZHmutharlYJ3LvxMsid80HdK5SgGEpIPfg==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/installations": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/remote-config-compat": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.3.tgz", - "integrity": "sha512-w/ZL03YgYaXq03xIRyJ5oPhXZi6iDsY/v0J9Y7I7SqxCYytEnHVrL9nvBqd9R94y5LRAVNPCLokJeeizaUz4VQ==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/logger": "0.4.0", - "@firebase/remote-config": "0.4.3", - "@firebase/remote-config-types": "0.3.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/remote-config-types": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz", - "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==", - "dev": true - }, - "@firebase/storage": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.1.tgz", - "integrity": "sha512-Xv8EG2j52ugF2xayBz26U9J0VBXHXPMVxSN+ph3R3BSoHxvMLaPu+qUYKHavSt+zbcgPH2GyBhrCdJK6SaDFPA==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/util": "1.9.2", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - } - }, - "@firebase/storage-compat": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.1.tgz", - "integrity": "sha512-6HaTvWsT5Yy3j4UpCZpMcFUYEkJ2XYWukdyTl02u6VjSBRLvkhOXPzEfMvgVWqhnF/rYVfPdjrZ904wk5OxtmQ==", - "dev": true, - "requires": { - "@firebase/component": "0.6.3", - "@firebase/storage": "0.11.1", - "@firebase/storage-types": "0.8.0", - "@firebase/util": "1.9.2", - "tslib": "^2.1.0" - } - }, - "@firebase/storage-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz", - "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==", - "dev": true, - "requires": {} - }, - "@firebase/util": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.2.tgz", - "integrity": "sha512-9l0uMGPGw3GsoD5khjMmYCCcMq/OR/OOSViiWMN+s2Q0pxM+fYzrii1H+r8qC/uoMjSVXomjLZt0vZIyryCqtQ==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "@firebase/webchannel-wrapper": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz", - "integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg==", - "dev": true - }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dev": true, - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "dependencies": { - "@grpc/proto-loader": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.5.tgz", - "integrity": "sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==", - "dev": true, - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "protobufjs": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", - "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==", - "dev": true - } - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "dev": true, - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true - }, "@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", @@ -4805,18 +3248,6 @@ "@types/geojson": "*" } }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "@types/node": { - "version": "18.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz", - "integrity": "sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==", - "dev": true - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -5745,15 +4176,6 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, "filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -5803,40 +4225,6 @@ "unpipe": "~1.0.0" } }, - "firebase": { - "version": "9.17.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.17.1.tgz", - "integrity": "sha512-MSZaTRaaRLgDFLqoEnoPYK8zkLwQNvYeLZ3YSKdcQxG8hDifNO22ywS1cSA1ZCGHlQeOsDtfDwBejKcANf/RQw==", - "dev": true, - "requires": { - "@firebase/analytics": "0.9.3", - "@firebase/analytics-compat": "0.2.3", - "@firebase/app": "0.9.3", - "@firebase/app-check": "0.6.3", - "@firebase/app-check-compat": "0.3.3", - "@firebase/app-compat": "0.2.3", - "@firebase/app-types": "0.9.0", - "@firebase/auth": "0.21.3", - "@firebase/auth-compat": "0.3.3", - "@firebase/database": "0.14.3", - "@firebase/database-compat": "0.3.3", - "@firebase/firestore": "3.8.3", - "@firebase/firestore-compat": "0.3.3", - "@firebase/functions": "0.9.3", - "@firebase/functions-compat": "0.3.3", - "@firebase/installations": "0.6.3", - "@firebase/installations-compat": "0.2.3", - "@firebase/messaging": "0.12.3", - "@firebase/messaging-compat": "0.2.3", - "@firebase/performance": "0.6.3", - "@firebase/performance-compat": "0.2.3", - "@firebase/remote-config": "0.4.3", - "@firebase/remote-config-compat": "0.2.3", - "@firebase/storage": "0.11.1", - "@firebase/storage-compat": "0.3.1", - "@firebase/util": "1.9.2" - } - }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -6038,12 +4426,6 @@ "statuses": ">= 1.4.0 < 2" } }, - "http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -6058,12 +4440,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "idb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz", - "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==", - "dev": true - }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -6283,24 +4659,12 @@ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==" }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", @@ -6455,15 +4819,6 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, "nodemon": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", @@ -6688,27 +5043,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -7235,12 +5569,6 @@ "nopt": "~1.0.10" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -7426,39 +5754,6 @@ } } }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", diff --git a/client/package.json b/client/package.json index e17f19f9..80775352 100644 --- a/client/package.json +++ b/client/package.json @@ -25,7 +25,6 @@ "@types/gtag.js": "^0.0.12", "browserify": "^17.0.0", "concurrently": "^7.6.0", - "firebase": "^9.17.1", "nodemon": "^2.0.20", "tsify": "^5.0.4", "typescript": "^4.9.4", diff --git a/client/public/stylesheets/aic.css b/client/public/stylesheets/aic.css new file mode 100644 index 00000000..16022448 --- /dev/null +++ b/client/public/stylesheets/aic.css @@ -0,0 +1,194 @@ +/**************************************/ + +.olympus-dialog { + align-self: center; + background:white; + border-radius: 10px; + display: flex; + flex-direction: column; + justify-self: center; + padding:10px; + position:absolute; + width:fit-content; + z-index: 9999; +} + +.olympus-dialog-close { + cursor:pointer; + position:absolute; + right:10px; + top:5px; +} + +.olympus-dialog-header { + font-weight:bold; +} + + +/**************************************/ + + +/***** AIC *****/ + +.aic-panel { + z-index: 9999; +} + +#aic-control-panel { + bottom:30px; + position: absolute; + left:30px; +} + + +#aic-control-panel .olympus-button img { + max-width: 32px; +} + + +#aic-toolbox, #aic-callsign-panel { + align-items: flex-start; + align-self: center; + flex-direction: column; + row-gap: 10px; + display:none; + position:absolute; +} + +.aic-panel { + background:#eaeaea; + border-bottom-right-radius: 10px; + border-top-right-radius: 10px; + justify-self: left; + padding:5px 10px; +} + +.aic-enabled #aic-toolbox, .aic-enabled #aic-callsign-panel { + display:flex; +} + +.aic-enabled #aic-callsign-panel { + align-self: auto; + top: 100px; +} + +.aic-panel h2 { + font-size:90%; + margin:0; + padding:0; + text-align: center; +} + +#aic-callsign-display { + text-align: center; +} + +#aic-formation-list { + display:flex; + flex-direction: column; + justify-content: center; +} + +#aic-formation-list > div { + align-items: center; + cursor: pointer; + display:flex; + flex-direction: column; + justify-content: center; + margin-top:10px; + position:relative; +} + +#aic-formation-list .aic-formation-image img { + border: 1px solid #ccc; + border-radius: 10px; + max-width: 50px; +} + +#aic-formation-list .aic-formation-name { + font-size:90%; +} + +#aic-formation-list .aic-formation-descriptor { + background:white; + border-radius: 10px; + left:100px; + padding:5px; + position:absolute; + width: max-content; +} + +#aic-teleprompt { + background-color: white; + border:2px solid black; + border-radius: 10px; + bottom: 50px; + color: black; + display: none; + justify-content: center; + justify-self: center; + padding: 10px; + position: absolute; + width: fit-content; + z-index: 1000; +} + +.aic-enabled #aic-teleprompt { + display:flex; +} + +#aic-descriptor { + display:flex; + flex-direction: row; +} + +#aic-descriptor .aic-descriptor-section { + display:flex; + flex-direction: column; + margin:0 10px; +} + +#aic-descriptor .aic-descriptor-section-label { + background-color:#eaeaea; + border-top-left-radius: 10px; + border-top-right-radius: 10px; + padding:.25em; + text-align: center; +} + +#aic-descriptor .aic-descriptor-phrase { + border-bottom: 1px solid #ccc; + display:flex; + flex-direction: row; + margin-bottom:5px; + padding-bottom:2px; +} + +#aic-descriptor .aic-descriptor-phrase:last-of-type { + margin-bottom: 0; +} + +#aic-descriptor .aic-descriptor-components .aic-descriptor-component { + margin:0 5px; + text-align: center; +} + +#aic-descriptor .aic-descriptor-component-label { + display:none; +} + +#aic-descriptor .aic-descriptor-component-value:after { + content:","; + margin-right:5px; +} + +#aic-descriptor .aic-descriptor-component:last-of-type .aic-descriptor-component-value:after { + content:"; "; +} + +#aic-descriptor .aic-descriptor-section:last-of-type .aic-descriptor-component:last-of-type .aic-descriptor-component-value:after { + content:"."; +} + + +/**************************************/ \ No newline at end of file diff --git a/client/public/stylesheets/layout.css b/client/public/stylesheets/layout.css index 2184f6f5..6ed5313d 100644 --- a/client/public/stylesheets/layout.css +++ b/client/public/stylesheets/layout.css @@ -1,7 +1,7 @@ /* Page style */ body { - display: grid; + display:grid; margin: 0; padding: 0; } @@ -42,37 +42,7 @@ body { width: 200px; } - -/**************************************/ - -.olympus-dialog { - align-self: center; - background:white; - border-radius: 10px; - display: flex; - flex-direction: column; - justify-self: center; - padding:10px; - position:absolute; - width:fit-content; - z-index: 9999; -} - -.olympus-dialog-close { - cursor:pointer; - position:absolute; - right:10px; - top:5px; -} - -.olympus-dialog-header { - font-weight:bold; -} - - -/**************************************/ - -.control-panel { +#visibility-control-panel { position: absolute; left: 230px; height: 30px; @@ -80,182 +50,12 @@ body { top: 10px; z-index: 1000; display: flex; - align-items: center; -} - -.control-panel-top { - height: 30px; justify-content: space-between; - top: 10px; + align-items: center; padding-left: 10px; padding-right: 10px; } -#visibility-control-panel { - left: 430px; - width: 110; -} - - -/***** AIC *****/ - -#aic-control-panel { - left: 550px; -} - -#aic-control-panel .olympus-button { - filter:invert(100%); -} - - -#aic-toolbox, #aic-callsign-panel { - align-items: flex-start; - align-self: center; - flex-direction: column; - row-gap: 10px; - display:none; - position:absolute; -} - -.aic-panel { - background:#eaeaea; - border-bottom-right-radius: 10px; - border-top-right-radius: 10px; - justify-self: left; - padding:5px 10px; -} - -.aic-enabled #aic-toolbox, .aic-enabled #aic-callsign-panel { - display:flex; -} - -.aic-enabled #aic-callsign-panel { - align-self: auto; - top: 100px; -} - -.aic-panel h2 { - font-size:90%; - margin:0; - padding:0; - text-align: center; -} - -#aic-callsign-display { - text-align: center; -} - -#aic-formation-list { - display:flex; - flex-direction: column; - justify-content: center; -} - -#aic-formation-list > div { - align-items: center; - cursor: pointer; - display:flex; - flex-direction: column; - justify-content: center; - margin-top:10px; - position:relative; -} - -#aic-formation-list .aic-formation-image img { - border: 1px solid #ccc; - border-radius: 10px; - max-width: 50px; -} - -#aic-formation-list .aic-formation-name { - font-size:90%; -} - -#aic-formation-list .aic-formation-descriptor { - background:white; - border-radius: 10px; - left:100px; - padding:5px; - position:absolute; - width: max-content; -} - -#aic-teleprompt { - background-color: white; - border:2px solid black; - border-radius: 10px; - bottom: 50px; - color: black; - display: none; - justify-content: center; - justify-self: center; - padding: 10px; - position: absolute; - width: fit-content; - z-index: 1000; -} - -.aic-enabled #aic-teleprompt { - display:flex; -} - -#aic-descriptor { - display:flex; - flex-direction: row; -} - -#aic-descriptor .aic-descriptor-section { - display:flex; - flex-direction: column; - margin:0 10px; -} - -#aic-descriptor .aic-descriptor-section-label { - background-color:#eaeaea; - border-top-left-radius: 10px; - border-top-right-radius: 10px; - padding:.25em; - text-align: center; -} - -#aic-descriptor .aic-descriptor-phrase { - border-bottom: 1px solid #ccc; - display:flex; - flex-direction: row; - margin-bottom:5px; - padding-bottom:2px; -} - -#aic-descriptor .aic-descriptor-phrase:last-of-type { - margin-bottom: 0; -} - -#aic-descriptor .aic-descriptor-components .aic-descriptor-component { - margin:0 5px; - text-align: center; -} - -#aic-descriptor .aic-descriptor-component-label { - display:none; -} - -#aic-descriptor .aic-descriptor-component-value:after { - content:","; - margin-right:5px; -} - -#aic-descriptor .aic-descriptor-component:last-of-type .aic-descriptor-component-value:after { - content:"; "; -} - -#aic-descriptor .aic-descriptor-section:last-of-type .aic-descriptor-component:last-of-type .aic-descriptor-component-value:after { - content:"."; -} - - -/**************************************/ - - #unit-control-buttons { position: fixed; top: 10px; @@ -305,7 +105,6 @@ body { - .hide { display:none !important; } \ No newline at end of file diff --git a/client/public/stylesheets/style.css b/client/public/stylesheets/style.css index d4c01fcc..c71b28cc 100644 --- a/client/public/stylesheets/style.css +++ b/client/public/stylesheets/style.css @@ -15,6 +15,8 @@ @import url("unitinfopanel.css"); @import url("mouseinfopanel.css"); +@import url( "aic.css" ); + @import url("layout.css"); diff --git a/client/src/atc/ATCAPI.ts b/client/src/atc/ATCAPI.ts index 38f1ce5c..22aaa3eb 100644 --- a/client/src/atc/ATCAPI.ts +++ b/client/src/atc/ATCAPI.ts @@ -1,4 +1,3 @@ -import { firestore } from "../firebase"; export interface ATCAPIInterface { get: CallableFunction @@ -6,10 +5,10 @@ export interface ATCAPIInterface { export abstract class ATCAPI { - firestore; + constructor() { - this.firestore = firestore; + } } \ No newline at end of file diff --git a/client/src/atc/FlightBoard.ts b/client/src/atc/FlightBoard.ts deleted file mode 100644 index 7f7470f1..00000000 --- a/client/src/atc/FlightBoard.ts +++ /dev/null @@ -1 +0,0 @@ -export class ATCFlightBoard {} \ No newline at end of file diff --git a/client/src/atc/api/Flights.ts b/client/src/atc/api/Flights.ts deleted file mode 100644 index 96090257..00000000 --- a/client/src/atc/api/Flights.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ATCAPI, ATCAPIInterface } from "../ATCAPI"; -import { collection, getDocs } from "firebase/firestore"; -import { firebase } from "../../firebase"; - -export class ATCAPI_Flights extends ATCAPI implements ATCAPIInterface { - - constructor() { - super(); - } - - get() { - - async () => { - const snapshot = await getDocs( collection( this.firestore, "flights" ) ); - - snapshot.forEach( doc => { - console.log( doc.data() ); - }); - - } - - } - -} \ No newline at end of file diff --git a/client/src/firebase.ts b/client/src/firebase.ts deleted file mode 100644 index 9082bbd3..00000000 --- a/client/src/firebase.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Import the functions you need from the SDKs you need -import { initializeApp } from "firebase/app"; -import { getAnalytics } from "firebase/analytics"; -import { getFirestore } from "firebase/firestore"; - -// TODO: Add SDKs for Firebase products that you want to use -// https://firebase.google.com/docs/web/setup#available-libraries - -// Your web app's Firebase configuration -// For Firebase JS SDK v7.20.0 and later, measurementId is optional -const firebaseConfig = { - apiKey: "AIzaSyArFxFtLvZqV6RKMxZR-zCH-TT3LV43aVg", - authDomain: "dcs-olympus.firebaseapp.com", - projectId: "dcs-olympus", - storageBucket: "dcs-olympus.appspot.com", - messagingSenderId: "393187308632", - appId: "1:393187308632:web:545dc9551716a84d3c462d", - measurementId: "G-10E10S2WBN" -}; - -// Initialize Firebase -const firebase = initializeApp( firebaseConfig ); - -const analytics = getAnalytics( firebase ); -const firestore = getFirestore( firebase ); - - -export { firebase, analytics, firestore }; \ No newline at end of file diff --git a/client/src/index.ts b/client/src/index.ts index b3448dd8..a04de9e5 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -102,9 +102,6 @@ function setup() { } - - - }); /* Default values */ diff --git a/client/tsconfig.json b/client/tsconfig.json index f7606274..74c81cdf 100644 --- a/client/tsconfig.json +++ b/client/tsconfig.json @@ -33,8 +33,7 @@ ], /* Specify multiple folders that act like './node_modules/@types'. */ "types": [ "leaflet", - "geojson", - "@types/gtag.js" + "geojson" ], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ diff --git a/client/views/aiccontrolpanel.ejs b/client/views/aiccontrolpanel.ejs index e4f11833..5a52381d 100644 --- a/client/views/aiccontrolpanel.ejs +++ b/client/views/aiccontrolpanel.ejs @@ -1,4 +1,4 @@ -
+
diff --git a/client/views/aicformationpanel.ejs b/client/views/aicformationpanel.ejs index 5d6f2d5b..81f4c39e 100644 --- a/client/views/aicformationpanel.ejs +++ b/client/views/aicformationpanel.ejs @@ -1,4 +1,4 @@ -
+

My callsign

@@ -8,9 +8,9 @@
-
+
-
+

Control

@@ -22,7 +22,7 @@
-
+

Formations

diff --git a/client/views/index.ejs b/client/views/index.ejs index 0b5b8691..96bb259f 100644 --- a/client/views/index.ejs +++ b/client/views/index.ejs @@ -31,6 +31,9 @@ <%- include('visibilitycontrolpanel.ejs') %> <%- include('connectionstatuspanel.ejs') %> <%- include('mouseinfopanel.ejs') %> + <%- include('aiccontrolpanel.ejs') %> + <%- include('aicformationpanel.ejs') %> +