diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..137c9c5
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ postgresql
+ true
+ org.postgresql.Driver
+ jdbc:postgresql://localhost:5432/postgres
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..9c69411
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/mariochat.iml b/.idea/mariochat.iml
new file mode 100644
index 0000000..fb29ac7
--- /dev/null
+++ b/.idea/mariochat.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..f9e0b4d
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/prettier.xml b/.idea/prettier.xml
new file mode 100644
index 0000000..b0ab31a
--- /dev/null
+++ b/.idea/prettier.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/knexfile.cjs b/knexfile.cjs
new file mode 100644
index 0000000..5c6733d
--- /dev/null
+++ b/knexfile.cjs
@@ -0,0 +1,58 @@
+// Update with your config settings.
+
+/**
+ * @type { Object. }
+ */
+module.exports = {
+
+ development: {
+ client: 'pg',
+ connection: {
+ host: 'localhost',
+ port: 5432,
+ user: 'postgres',
+ password: 'mariochatpgpw',
+ database: 'postgres',
+ },
+ pool: {
+ min: 2,
+ max: 10,
+ },
+ migrations: {
+ tableName: 'knex_migrations',
+ },
+ },
+
+ staging: {
+ client: 'postgresql',
+ connection: {
+ database: 'my_db',
+ user: 'username',
+ password: 'password'
+ },
+ pool: {
+ min: 2,
+ max: 10
+ },
+ migrations: {
+ tableName: 'knex_migrations'
+ }
+ },
+
+ production: {
+ client: 'postgresql',
+ connection: {
+ database: 'my_db',
+ user: 'username',
+ password: 'password'
+ },
+ pool: {
+ min: 2,
+ max: 10
+ },
+ migrations: {
+ tableName: 'knex_migrations'
+ }
+ }
+
+};
diff --git a/migrations/20230319122110_create_base_tables.cjs b/migrations/20230319122110_create_base_tables.cjs
new file mode 100644
index 0000000..91a1f76
--- /dev/null
+++ b/migrations/20230319122110_create_base_tables.cjs
@@ -0,0 +1,22 @@
+
+exports.up = async (knex) => {
+ await knex.schema.createTable('user', (table) => {
+ table.string('public_key').primary()
+ table.datetime('last_seen').notNullable()
+ table.binary('name').nullable()
+ table.binary('avatar').nullable()
+ })
+ await knex.schema.createTable('room', (table) => {
+ table.integer('id').primary()
+ table.binary('name').notNullable()
+ table.binary('room_key').notNullable()
+ table.binary('avatar').nullable()
+ })
+ await knex.schema.createTable('user_to_room', (table) => {
+ table.string('user_public_key').references('public_key').inTable('user').notNullable()
+ table.integer('room_id').references('id').inTable('room').notNullable()
+ })
+}
+
+
+exports.down = (knex) => knex.schema.dropTable('user')
diff --git a/package.json b/package.json
index 76f89ae..ec1904b 100644
--- a/package.json
+++ b/package.json
@@ -11,34 +11,39 @@
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"test:unit": "vitest",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
- "format": "prettier --plugin-search-dir . --write ."
+ "format": "prettier --plugin-search-dir . --write .",
+ "knex": "knex --esm --knexfile knexfile.cjs"
},
"devDependencies": {
- "@playwright/test": "^1.28.1",
+ "@playwright/test": "^1.31.2",
"@sveltejs/adapter-node": "^1.2.3",
- "@sveltejs/kit": "^1.5.0",
+ "@sveltejs/kit": "^1.12.0",
"@tailwindcss/typography": "^0.5.9",
- "@types/multicast-dns": "^7.2.1",
- "@typescript-eslint/eslint-plugin": "^5.45.0",
- "@typescript-eslint/parser": "^5.45.0",
+ "@types/node": "^18.15.3",
+ "@types/pg": "^8.6.6",
+ "@types/web-push": "^3.3.2",
+ "@typescript-eslint/eslint-plugin": "^5.55.0",
+ "@typescript-eslint/parser": "^5.55.0",
"autoprefixer": "^10.4.14",
"daisyui": "^2.51.4",
- "eslint": "^8.28.0",
- "eslint-config-prettier": "^8.5.0",
+ "eslint": "^8.36.0",
+ "eslint-config-prettier": "^8.7.0",
"eslint-plugin-svelte3": "^4.0.0",
+ "firebase": "^9.18.0",
"idb": "^7.1.1",
- "multicast-dns": "^7.2.5",
"postcss": "^8.4.21",
- "prettier": "^2.8.0",
- "prettier-plugin-svelte": "^2.8.1",
- "svelte": "^3.54.0",
- "svelte-check": "^3.0.1",
+ "prettier": "^2.8.4",
+ "prettier-plugin-svelte": "^2.9.0",
+ "svelte": "^3.57.0",
+ "svelte-check": "^3.1.4",
"tailwindcss": "^3.2.7",
- "tslib": "^2.4.1",
+ "ts-node": "^10.9.1",
+ "tslib": "^2.5.0",
"tweetnacl": "^1.0.3",
- "typescript": "^4.9.3",
- "vite": "^4.0.0",
- "vitest": "^0.25.3"
+ "typescript": "^4.9.5",
+ "vite": "^4.2.0",
+ "vitest": "^0.25.8",
+ "web-push": "^3.5.0"
},
"type": "module",
"dependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 49fd4b6..e047205 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,34 +1,38 @@
lockfileVersion: 5.4
specifiers:
- '@playwright/test': ^1.28.1
+ '@playwright/test': ^1.31.2
'@sveltejs/adapter-node': ^1.2.3
- '@sveltejs/kit': ^1.5.0
+ '@sveltejs/kit': ^1.12.0
'@tailwindcss/typography': ^0.5.9
- '@types/multicast-dns': ^7.2.1
- '@typescript-eslint/eslint-plugin': ^5.45.0
- '@typescript-eslint/parser': ^5.45.0
+ '@types/node': ^18.15.3
+ '@types/pg': ^8.6.6
+ '@types/web-push': ^3.3.2
+ '@typescript-eslint/eslint-plugin': ^5.55.0
+ '@typescript-eslint/parser': ^5.55.0
autoprefixer: ^10.4.14
daisyui: ^2.51.4
- eslint: ^8.28.0
- eslint-config-prettier: ^8.5.0
+ eslint: ^8.36.0
+ eslint-config-prettier: ^8.7.0
eslint-plugin-svelte3: ^4.0.0
+ firebase: ^9.18.0
idb: ^7.1.1
knex: ^2.4.2
- multicast-dns: ^7.2.5
objection: ^3.0.1
pg: ^8.10.0
postcss: ^8.4.21
- prettier: ^2.8.0
- prettier-plugin-svelte: ^2.8.1
- svelte: ^3.54.0
- svelte-check: ^3.0.1
+ prettier: ^2.8.4
+ prettier-plugin-svelte: ^2.9.0
+ svelte: ^3.57.0
+ svelte-check: ^3.1.4
tailwindcss: ^3.2.7
- tslib: ^2.4.1
+ ts-node: ^10.9.1
+ tslib: ^2.5.0
tweetnacl: ^1.0.3
- typescript: ^4.9.3
- vite: ^4.0.0
- vitest: ^0.25.3
+ typescript: ^4.9.5
+ vite: ^4.2.0
+ vitest: ^0.25.8
+ web-push: ^3.5.0
dependencies:
knex: 2.4.2_pg@8.10.0
@@ -37,35 +41,46 @@ dependencies:
devDependencies:
'@playwright/test': 1.31.2
- '@sveltejs/adapter-node': 1.2.3_@sveltejs+kit@1.11.0
- '@sveltejs/kit': 1.11.0_svelte@3.57.0+vite@4.1.4
+ '@sveltejs/adapter-node': 1.2.3_@sveltejs+kit@1.12.0
+ '@sveltejs/kit': 1.12.0_svelte@3.57.0+vite@4.2.0
'@tailwindcss/typography': 0.5.9_tailwindcss@3.2.7
- '@types/multicast-dns': 7.2.1
+ '@types/node': 18.15.3
+ '@types/pg': 8.6.6
+ '@types/web-push': 3.3.2
'@typescript-eslint/eslint-plugin': 5.55.0_342y7v4tc7ytrrysmit6jo4wri
'@typescript-eslint/parser': 5.55.0_vgl77cfdswitgr47lm5swmv43m
autoprefixer: 10.4.14_postcss@8.4.21
- daisyui: 2.51.4_j7yt3jd32cwenjqavrrga47yr4
+ daisyui: 2.51.4_twcojoavfil6ttgiekdipcazme
eslint: 8.36.0
eslint-config-prettier: 8.7.0_eslint@8.36.0
eslint-plugin-svelte3: 4.0.0_wzem237sbvnwe7n34ytc5phasy
+ firebase: 9.18.0
idb: 7.1.1
- multicast-dns: 7.2.5
postcss: 8.4.21
prettier: 2.8.4
prettier-plugin-svelte: 2.9.0_k23gl6auqwrxgr3e6o2bajswou
svelte: 3.57.0
svelte-check: 3.1.4_sd5d5bwhwct4qrvp7ra4wv5wou
- tailwindcss: 3.2.7_postcss@8.4.21
+ tailwindcss: 3.2.7_aesdjsunmf4wiehhujt67my7tu
+ ts-node: 10.9.1_cbfmry4sbbh4vatmdrsmatfg5a
tslib: 2.5.0
tweetnacl: 1.0.3
typescript: 4.9.5
- vite: 4.1.4
+ vite: 4.2.0_@types+node@18.15.3
vitest: 0.25.8
+ web-push: 3.5.0
packages:
- /@esbuild/android-arm/0.16.17:
- resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
+ /@cspotcode/source-map-support/0.8.1:
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+ dev: true
+
+ /@esbuild/android-arm/0.17.12:
+ resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
@@ -73,8 +88,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm64/0.16.17:
- resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==}
+ /@esbuild/android-arm64/0.17.12:
+ resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
@@ -82,8 +97,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-x64/0.16.17:
- resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==}
+ /@esbuild/android-x64/0.17.12:
+ resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
@@ -91,8 +106,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-arm64/0.16.17:
- resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==}
+ /@esbuild/darwin-arm64/0.17.12:
+ resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
@@ -100,8 +115,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-x64/0.16.17:
- resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==}
+ /@esbuild/darwin-x64/0.17.12:
+ resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
@@ -109,8 +124,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-arm64/0.16.17:
- resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==}
+ /@esbuild/freebsd-arm64/0.17.12:
+ resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
@@ -118,8 +133,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-x64/0.16.17:
- resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==}
+ /@esbuild/freebsd-x64/0.17.12:
+ resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
@@ -127,8 +142,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm/0.16.17:
- resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==}
+ /@esbuild/linux-arm/0.17.12:
+ resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
@@ -136,8 +151,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm64/0.16.17:
- resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==}
+ /@esbuild/linux-arm64/0.17.12:
+ resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
@@ -145,8 +160,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ia32/0.16.17:
- resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==}
+ /@esbuild/linux-ia32/0.17.12:
+ resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
@@ -154,8 +169,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64/0.16.17:
- resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
+ /@esbuild/linux-loong64/0.17.12:
+ resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
@@ -163,8 +178,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-mips64el/0.16.17:
- resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==}
+ /@esbuild/linux-mips64el/0.17.12:
+ resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
@@ -172,8 +187,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ppc64/0.16.17:
- resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==}
+ /@esbuild/linux-ppc64/0.17.12:
+ resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
@@ -181,8 +196,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-riscv64/0.16.17:
- resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==}
+ /@esbuild/linux-riscv64/0.17.12:
+ resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
@@ -190,8 +205,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-s390x/0.16.17:
- resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==}
+ /@esbuild/linux-s390x/0.17.12:
+ resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
@@ -199,8 +214,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-x64/0.16.17:
- resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==}
+ /@esbuild/linux-x64/0.17.12:
+ resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
@@ -208,8 +223,8 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64/0.16.17:
- resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==}
+ /@esbuild/netbsd-x64/0.17.12:
+ resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
@@ -217,8 +232,8 @@ packages:
dev: true
optional: true
- /@esbuild/openbsd-x64/0.16.17:
- resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==}
+ /@esbuild/openbsd-x64/0.17.12:
+ resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
@@ -226,8 +241,8 @@ packages:
dev: true
optional: true
- /@esbuild/sunos-x64/0.16.17:
- resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==}
+ /@esbuild/sunos-x64/0.17.12:
+ resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
@@ -235,8 +250,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-arm64/0.16.17:
- resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==}
+ /@esbuild/win32-arm64/0.17.12:
+ resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
@@ -244,8 +259,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-ia32/0.16.17:
- resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==}
+ /@esbuild/win32-ia32/0.17.12:
+ resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
@@ -253,8 +268,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-x64/0.16.17:
- resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==}
+ /@esbuild/win32-x64/0.17.12:
+ resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@@ -262,8 +277,8 @@ packages:
dev: true
optional: true
- /@eslint-community/eslint-utils/4.2.0_eslint@8.36.0:
- resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
+ /@eslint-community/eslint-utils/4.3.0_eslint@8.36.0:
+ resolution: {integrity: sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -299,6 +314,487 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
+ /@firebase/analytics-compat/0.2.4_iyabqhttlorju4ibfbaqz2vm6i:
+ resolution: {integrity: sha512-ZN4K49QwOR8EWIUTV03VBdcVkz8sVsfJmve4g2+FEIj0kyTK0MdoVTWNOwWj9TVi2p/7FvKRKkpWxkydmi9x7g==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/analytics': 0.9.4_@firebase+app@0.9.5
+ '@firebase/analytics-types': 0.8.0
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ dev: true
+
+ /@firebase/analytics-types/0.8.0:
+ resolution: {integrity: sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==}
+ dev: true
+
+ /@firebase/analytics/0.9.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-Mb2UaD0cyJ9DrTk4Okz8wqpjZuVRVXHZOjhbQcmGb8VtibXY1+jm/k3eJ21r7NqUKnjWejYM2EX+hI9+dtXGkQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/installations': 0.6.4_@firebase+app@0.9.5
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/app-check-compat/0.3.4_iyabqhttlorju4ibfbaqz2vm6i:
+ resolution: {integrity: sha512-s6ON0ixPKe99M1DNYMI2eR5aLwQZgy0z8fuW1tnEbzg5p/N/GKFmqiIHSV4gfp8+X7Fw5NLm7qMfh4xrcPgQCw==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-check': 0.6.4_@firebase+app@0.9.5
+ '@firebase/app-check-types': 0.5.0
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ dev: true
+
+ /@firebase/app-check-interop-types/0.2.0:
+ resolution: {integrity: sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==}
+ dev: true
+
+ /@firebase/app-check-types/0.5.0:
+ resolution: {integrity: sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==}
+ dev: true
+
+ /@firebase/app-check/0.6.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-M9qyVTWkEkHXmgwGtObvXQqKcOe9iKAOPqm0pCe74mzgKVTNq157ff39+fxHPb4nFbipToY+GuvtabLUzkHehQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/app-compat/0.2.5:
+ resolution: {integrity: sha512-PSEax7UAc1Qxcksq5GHKb8M9rCsXTJWxWUf6pqhGTWO9UbJnI1tv00ogoCicEHgkXBTkOWMLxCs3318HaGZh4g==}
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/app-types/0.9.0:
+ resolution: {integrity: sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==}
+ dev: true
+
+ /@firebase/app/0.9.5:
+ resolution: {integrity: sha512-mXO9hrygxCohD8Qy0z8p9ZtuQirmjkjSTuQghH05/kLG1UJqP0TQZBlhP5qwzMTKuu2YpIn3kX2PZoSWti8LDA==}
+ dependencies:
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ idb: 7.0.1
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/auth-compat/0.3.5_vvye4fsi3sdhkso275hyw4xk7u:
+ resolution: {integrity: sha512-xEkR4Buuw8NfyJhMVC3HMvyaODfstpMuo55tK03APoP+X9fnZpQE+ASdacq60qBBvpKF78d+gmAhmh0ISTXZ0w==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/auth': 0.21.5_@firebase+app@0.9.5
+ '@firebase/auth-types': 0.12.0_pe7cbgjgh7vzd7cjsjzacprt4m
+ '@firebase/component': 0.6.4
+ '@firebase/util': 1.9.3
+ node-fetch: 2.6.7
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+ - encoding
+ dev: true
+
+ /@firebase/auth-interop-types/0.2.1:
+ resolution: {integrity: sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==}
+ dev: true
+
+ /@firebase/auth-types/0.12.0_pe7cbgjgh7vzd7cjsjzacprt4m:
+ resolution: {integrity: sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ '@firebase/util': 1.x
+ dependencies:
+ '@firebase/app-types': 0.9.0
+ '@firebase/util': 1.9.3
+ dev: true
+
+ /@firebase/auth/0.21.5_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-Pt/S24qbtJeFPxYxcQHDNgYAuEa9oyCK1XJBQ9Kc3FT1rDMb1OaK6wfnDDrCChQfENdHZVI1pGw4QG6/tO3NWw==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ node-fetch: 2.6.7
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@firebase/component/0.6.4:
+ resolution: {integrity: sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==}
+ dependencies:
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/database-compat/0.3.4:
+ resolution: {integrity: sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==}
+ dependencies:
+ '@firebase/component': 0.6.4
+ '@firebase/database': 0.14.4
+ '@firebase/database-types': 0.10.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/database-types/0.10.4:
+ resolution: {integrity: sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==}
+ dependencies:
+ '@firebase/app-types': 0.9.0
+ '@firebase/util': 1.9.3
+ dev: true
+
+ /@firebase/database/0.14.4:
+ resolution: {integrity: sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==}
+ dependencies:
+ '@firebase/auth-interop-types': 0.2.1
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ faye-websocket: 0.11.4
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/firestore-compat/0.3.5_vvye4fsi3sdhkso275hyw4xk7u:
+ resolution: {integrity: sha512-gwBFGOqNIgF2TOJ2mKIS1lTQy6I9DytWsmIfvXGV76is53MaZUZXyUZd7oIC8h2Otq6gP3xtvPRQJTMcnQrbFg==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/firestore': 3.9.0_@firebase+app@0.9.5
+ '@firebase/firestore-types': 2.5.1_pe7cbgjgh7vzd7cjsjzacprt4m
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+ - encoding
+ dev: true
+
+ /@firebase/firestore-types/2.5.1_pe7cbgjgh7vzd7cjsjzacprt4m:
+ resolution: {integrity: sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ '@firebase/util': 1.x
+ dependencies:
+ '@firebase/app-types': 0.9.0
+ '@firebase/util': 1.9.3
+ dev: true
+
+ /@firebase/firestore/3.9.0_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-At8HeTec3y7EfGjtYqvzON/8896igJgE34zjEndYxKPUKyhQ6xtcM+zhfa8C+lUW6W8qQB6lNzTNNXmF4NxdpQ==}
+ engines: {node: '>=10.10.0'}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ '@firebase/webchannel-wrapper': 0.9.0
+ '@grpc/grpc-js': 1.7.3
+ '@grpc/proto-loader': 0.6.13
+ node-fetch: 2.6.7
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@firebase/functions-compat/0.3.4_iyabqhttlorju4ibfbaqz2vm6i:
+ resolution: {integrity: sha512-kxVxTGyLV1MBR3sp3mI+eQ6JBqz0G5bk310F8eX4HzDFk4xjk5xY0KdHktMH+edM2xs1BOg0vwvvsAHczIjB+w==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/functions': 0.9.4_@firebase+app@0.9.5
+ '@firebase/functions-types': 0.6.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - encoding
+ dev: true
+
+ /@firebase/functions-types/0.6.0:
+ resolution: {integrity: sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==}
+ dev: true
+
+ /@firebase/functions/0.9.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-3H2qh6U+q+nepO5Hds+Ddl6J0pS+zisuBLqqQMRBHv9XpWfu0PnDHklNmE8rZ+ccTEXvBj6zjkPfdxt6NisvlQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/app-check-interop-types': 0.2.0
+ '@firebase/auth-interop-types': 0.2.1
+ '@firebase/component': 0.6.4
+ '@firebase/messaging-interop-types': 0.2.0
+ '@firebase/util': 1.9.3
+ node-fetch: 2.6.7
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@firebase/installations-compat/0.2.4_vvye4fsi3sdhkso275hyw4xk7u:
+ resolution: {integrity: sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/installations': 0.6.4_@firebase+app@0.9.5
+ '@firebase/installations-types': 0.5.0_@firebase+app-types@0.9.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+ dev: true
+
+ /@firebase/installations-types/0.5.0_@firebase+app-types@0.9.0:
+ resolution: {integrity: sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ dependencies:
+ '@firebase/app-types': 0.9.0
+ dev: true
+
+ /@firebase/installations/0.6.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/util': 1.9.3
+ idb: 7.0.1
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/logger/0.4.0:
+ resolution: {integrity: sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==}
+ dependencies:
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/messaging-compat/0.2.4_iyabqhttlorju4ibfbaqz2vm6i:
+ resolution: {integrity: sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/messaging': 0.12.4_@firebase+app@0.9.5
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ dev: true
+
+ /@firebase/messaging-interop-types/0.2.0:
+ resolution: {integrity: sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==}
+ dev: true
+
+ /@firebase/messaging/0.12.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/installations': 0.6.4_@firebase+app@0.9.5
+ '@firebase/messaging-interop-types': 0.2.0
+ '@firebase/util': 1.9.3
+ idb: 7.0.1
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/performance-compat/0.2.4_iyabqhttlorju4ibfbaqz2vm6i:
+ resolution: {integrity: sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/performance': 0.6.4_@firebase+app@0.9.5
+ '@firebase/performance-types': 0.2.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ dev: true
+
+ /@firebase/performance-types/0.2.0:
+ resolution: {integrity: sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==}
+ dev: true
+
+ /@firebase/performance/0.6.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/installations': 0.6.4_@firebase+app@0.9.5
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/remote-config-compat/0.2.4_iyabqhttlorju4ibfbaqz2vm6i:
+ resolution: {integrity: sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/logger': 0.4.0
+ '@firebase/remote-config': 0.4.4_@firebase+app@0.9.5
+ '@firebase/remote-config-types': 0.3.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ dev: true
+
+ /@firebase/remote-config-types/0.3.0:
+ resolution: {integrity: sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==}
+ dev: true
+
+ /@firebase/remote-config/0.4.4_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/installations': 0.6.4_@firebase+app@0.9.5
+ '@firebase/logger': 0.4.0
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/storage-compat/0.3.2_vvye4fsi3sdhkso275hyw4xk7u:
+ resolution: {integrity: sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+ dependencies:
+ '@firebase/app-compat': 0.2.5
+ '@firebase/component': 0.6.4
+ '@firebase/storage': 0.11.2_@firebase+app@0.9.5
+ '@firebase/storage-types': 0.8.0_pe7cbgjgh7vzd7cjsjzacprt4m
+ '@firebase/util': 1.9.3
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+ - encoding
+ dev: true
+
+ /@firebase/storage-types/0.8.0_pe7cbgjgh7vzd7cjsjzacprt4m:
+ resolution: {integrity: sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ '@firebase/util': 1.x
+ dependencies:
+ '@firebase/app-types': 0.9.0
+ '@firebase/util': 1.9.3
+ dev: true
+
+ /@firebase/storage/0.11.2_@firebase+app@0.9.5:
+ resolution: {integrity: sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==}
+ peerDependencies:
+ '@firebase/app': 0.x
+ dependencies:
+ '@firebase/app': 0.9.5
+ '@firebase/component': 0.6.4
+ '@firebase/util': 1.9.3
+ node-fetch: 2.6.7
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@firebase/util/1.9.3:
+ resolution: {integrity: sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==}
+ dependencies:
+ tslib: 2.5.0
+ dev: true
+
+ /@firebase/webchannel-wrapper/0.9.0:
+ resolution: {integrity: sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg==}
+ dev: true
+
+ /@grpc/grpc-js/1.7.3:
+ resolution: {integrity: sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==}
+ engines: {node: ^8.13.0 || >=10.10.0}
+ dependencies:
+ '@grpc/proto-loader': 0.7.5
+ '@types/node': 18.15.3
+ dev: true
+
+ /@grpc/proto-loader/0.6.13:
+ resolution: {integrity: sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dependencies:
+ '@types/long': 4.0.2
+ lodash.camelcase: 4.3.0
+ long: 4.0.0
+ protobufjs: 6.11.3
+ yargs: 16.2.0
+ dev: true
+
+ /@grpc/proto-loader/0.7.5:
+ resolution: {integrity: sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dependencies:
+ '@types/long': 4.0.2
+ lodash.camelcase: 4.3.0
+ long: 4.0.0
+ protobufjs: 7.2.2
+ yargs: 16.2.0
+ dev: true
+
/@humanwhocodes/config-array/0.11.8:
resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
engines: {node: '>=10.10.0'}
@@ -335,8 +831,11 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
- /@leichtgewicht/ip-codec/2.0.4:
- resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
+ /@jridgewell/trace-mapping/0.3.9:
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.14
dev: true
/@nodelib/fs.scandir/2.1.5:
@@ -375,6 +874,49 @@ packages:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
dev: true
+ /@protobufjs/aspromise/1.1.2:
+ resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
+ dev: true
+
+ /@protobufjs/base64/1.1.2:
+ resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
+ dev: true
+
+ /@protobufjs/codegen/2.0.4:
+ resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
+ dev: true
+
+ /@protobufjs/eventemitter/1.1.0:
+ resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
+ dev: true
+
+ /@protobufjs/fetch/1.1.0:
+ resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
+ dependencies:
+ '@protobufjs/aspromise': 1.1.2
+ '@protobufjs/inquire': 1.1.0
+ dev: true
+
+ /@protobufjs/float/1.0.2:
+ resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
+ dev: true
+
+ /@protobufjs/inquire/1.1.0:
+ resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
+ dev: true
+
+ /@protobufjs/path/1.1.2:
+ resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
+ dev: true
+
+ /@protobufjs/pool/1.1.0:
+ resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
+ dev: true
+
+ /@protobufjs/utf8/1.1.0:
+ resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
+ dev: true
+
/@rollup/plugin-commonjs/24.0.1_rollup@3.19.1:
resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==}
engines: {node: '>=14.0.0'}
@@ -417,7 +959,7 @@ packages:
dependencies:
'@rollup/pluginutils': 5.0.2_rollup@3.19.1
'@types/resolve': 1.20.2
- deepmerge: 4.3.0
+ deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.1
@@ -439,7 +981,7 @@ packages:
rollup: 3.19.1
dev: true
- /@sveltejs/adapter-node/1.2.3_@sveltejs+kit@1.11.0:
+ /@sveltejs/adapter-node/1.2.3_@sveltejs+kit@1.12.0:
resolution: {integrity: sha512-Fv6NyVpVWYA63KRaV6dDjcU8ytcWFiUr0siJOoHl+oWy5WHNEuRiJOUdiZzYbZo8MmvFaCoxHkTgPrVQhpqaRA==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
@@ -447,12 +989,12 @@ packages:
'@rollup/plugin-commonjs': 24.0.1_rollup@3.19.1
'@rollup/plugin-json': 6.0.0_rollup@3.19.1
'@rollup/plugin-node-resolve': 15.0.1_rollup@3.19.1
- '@sveltejs/kit': 1.11.0_svelte@3.57.0+vite@4.1.4
+ '@sveltejs/kit': 1.12.0_svelte@3.57.0+vite@4.2.0
rollup: 3.19.1
dev: true
- /@sveltejs/kit/1.11.0_svelte@3.57.0+vite@4.1.4:
- resolution: {integrity: sha512-PwViZcMoLgEU/jhLoSyjf5hSrHS67wvSm0ifBo4prP9irpGa5HuPOZeVDTL5tPDSBoKxtdYi1zlGdoiJfO86jA==}
+ /@sveltejs/kit/1.12.0_svelte@3.57.0+vite@4.2.0:
+ resolution: {integrity: sha512-hhOtaL3jS7p4A3O34m8RlM+K5OSyrEyFUIh4iqsv6e8BDvupzNSxGa7J9+Gfjb+Z1yZCxjvxJ8Flb2Cj0g8cLg==}
engines: {node: ^16.14 || >=18}
hasBin: true
requiresBuild: true
@@ -460,7 +1002,7 @@ packages:
svelte: ^3.54.0
vite: ^4.0.0
dependencies:
- '@sveltejs/vite-plugin-svelte': 2.0.3_svelte@3.57.0+vite@4.1.4
+ '@sveltejs/vite-plugin-svelte': 2.0.3_svelte@3.57.0+vite@4.2.0
'@types/cookie': 0.5.1
cookie: 0.5.0
devalue: 4.3.0
@@ -469,17 +1011,17 @@ packages:
magic-string: 0.30.0
mime: 3.0.0
sade: 1.8.1
- set-cookie-parser: 2.5.1
+ set-cookie-parser: 2.6.0
sirv: 2.0.2
svelte: 3.57.0
tiny-glob: 0.2.9
- undici: 5.20.0
- vite: 4.1.4
+ undici: 5.21.0
+ vite: 4.2.0_@types+node@18.15.3
transitivePeerDependencies:
- supports-color
dev: true
- /@sveltejs/vite-plugin-svelte/2.0.3_svelte@3.57.0+vite@4.1.4:
+ /@sveltejs/vite-plugin-svelte/2.0.3_svelte@3.57.0+vite@4.2.0:
resolution: {integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
@@ -487,13 +1029,13 @@ packages:
vite: ^4.0.0
dependencies:
debug: 4.3.4
- deepmerge: 4.3.0
+ deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.29.0
svelte: 3.57.0
svelte-hmr: 0.15.1_svelte@3.57.0
- vite: 4.1.4
- vitefu: 0.2.4_vite@4.1.4
+ vite: 4.2.0_@types+node@18.15.3
+ vitefu: 0.2.4_vite@4.2.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -507,7 +1049,23 @@ packages:
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
- tailwindcss: 3.2.7_postcss@8.4.21
+ tailwindcss: 3.2.7_aesdjsunmf4wiehhujt67my7tu
+ dev: true
+
+ /@tsconfig/node10/1.0.9:
+ resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
+ dev: true
+
+ /@tsconfig/node12/1.0.11:
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+ dev: true
+
+ /@tsconfig/node14/1.0.3:
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+ dev: true
+
+ /@tsconfig/node16/1.0.3:
+ resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
dev: true
/@types/chai-subset/1.3.3:
@@ -524,12 +1082,6 @@ packages:
resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==}
dev: true
- /@types/dns-packet/5.2.4:
- resolution: {integrity: sha512-OAruArypdNxR/tzbmrtoyEuXeNTLaZCpO19BXaNC10T5ACIbvjmvhmV2RDEy2eLc3w8IjK7SY3cvUCcAW+sfoQ==}
- dependencies:
- '@types/node': 18.15.3
- dev: true
-
/@types/estree/1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
dev: true
@@ -538,17 +1090,22 @@ packages:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
dev: true
- /@types/multicast-dns/7.2.1:
- resolution: {integrity: sha512-A2PmB8MRcNVEkw6wzGT5rtBHqyHOVjiRMkJH+zpJKXipSi+GGkHg6JjNFApDiYK9WefJqkVG0taln1VMl4TGfw==}
- dependencies:
- '@types/dns-packet': 5.2.4
- '@types/node': 18.15.3
+ /@types/long/4.0.2:
+ resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
dev: true
/@types/node/18.15.3:
resolution: {integrity: sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==}
dev: true
+ /@types/pg/8.6.6:
+ resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==}
+ dependencies:
+ '@types/node': 18.15.3
+ pg-protocol: 1.6.0
+ pg-types: 2.2.0
+ dev: true
+
/@types/pug/2.0.6:
resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
dev: true
@@ -561,6 +1118,12 @@ packages:
resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
dev: true
+ /@types/web-push/3.3.2:
+ resolution: {integrity: sha512-JxWGVL/m7mWTIg4mRYO+A6s0jPmBkr4iJr39DqJpRJAc+jrPiEe1/asmkwerzRon8ZZDxaZJpsxpv0Z18Wo9gw==}
+ dependencies:
+ '@types/node': 18.15.3
+ dev: true
+
/@typescript-eslint/eslint-plugin/5.55.0_342y7v4tc7ytrrysmit6jo4wri:
resolution: {integrity: sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -669,7 +1232,7 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.2.0_eslint@8.36.0
+ '@eslint-community/eslint-utils': 4.3.0_eslint@8.36.0
'@types/json-schema': 7.0.11
'@types/semver': 7.3.13
'@typescript-eslint/scope-manager': 5.55.0
@@ -729,6 +1292,15 @@ packages:
hasBin: true
dev: true
+ /agent-base/6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -767,6 +1339,10 @@ packages:
picomatch: 2.3.1
dev: true
+ /arg/4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+ dev: true
+
/arg/5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
dev: true
@@ -780,6 +1356,15 @@ packages:
engines: {node: '>=8'}
dev: true
+ /asn1.js/5.4.1:
+ resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
+ dependencies:
+ bn.js: 4.12.0
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ safer-buffer: 2.1.2
+ dev: true
+
/assertion-error/1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
@@ -792,7 +1377,7 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.5
- caniuse-lite: 1.0.30001467
+ caniuse-lite: 1.0.30001468
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
@@ -809,6 +1394,10 @@ packages:
engines: {node: '>=8'}
dev: true
+ /bn.js/4.12.0:
+ resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
+ dev: true
+
/brace-expansion/1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
@@ -834,8 +1423,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001467
- electron-to-chromium: 1.4.332
+ caniuse-lite: 1.0.30001468
+ electron-to-chromium: 1.4.333
node-releases: 2.0.10
update-browserslist-db: 1.0.10_browserslist@4.21.5
dev: true
@@ -844,6 +1433,10 @@ packages:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
dev: true
+ /buffer-equal-constant-time/1.0.1:
+ resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
+ dev: true
+
/buffer-writer/2.0.0:
resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==}
engines: {node: '>=4'}
@@ -871,8 +1464,8 @@ packages:
engines: {node: '>= 6'}
dev: true
- /caniuse-lite/1.0.30001467:
- resolution: {integrity: sha512-cEdN/5e+RPikvl9AHm4uuLXxeCNq8rFsQ+lPHTfe/OtypP3WwnVVbjn+6uBV7PaFL6xUFzTh+sSCOz1rKhcO+Q==}
+ /caniuse-lite/1.0.30001468:
+ resolution: {integrity: sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==}
dev: true
/chai/4.3.7:
@@ -915,6 +1508,14 @@ packages:
fsevents: 2.3.2
dev: true
+ /cliui/7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+ dev: true
+
/color-convert/2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -963,6 +1564,10 @@ packages:
engines: {node: '>= 0.6'}
dev: true
+ /create-require/1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+ dev: true
+
/cross-spawn/7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -985,7 +1590,7 @@ packages:
hasBin: true
dev: true
- /daisyui/2.51.4_j7yt3jd32cwenjqavrrga47yr4:
+ /daisyui/2.51.4_twcojoavfil6ttgiekdipcazme:
resolution: {integrity: sha512-TGYD2BQCduxkKbDALlaWWaUdi33tryUuO/MxxBtAmLJ9zKn04gF6xduMxbrAUesR4AFr6LZW187TqF2H5c1AoA==}
peerDependencies:
autoprefixer: ^10.0.2
@@ -996,7 +1601,7 @@ packages:
css-selector-tokenizer: 0.8.0
postcss: 8.4.21
postcss-js: 4.0.1_postcss@8.4.21
- tailwindcss: 3.2.7_postcss@8.4.21
+ tailwindcss: 3.2.7_aesdjsunmf4wiehhujt67my7tu
transitivePeerDependencies:
- ts-node
dev: true
@@ -1027,8 +1632,8 @@ packages:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
- /deepmerge/4.3.0:
- resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
+ /deepmerge/4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
dev: true
@@ -1059,6 +1664,11 @@ packages:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: true
+ /diff/4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ engines: {node: '>=0.3.1'}
+ dev: true
+
/dir-glob/3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -1070,13 +1680,6 @@ packages:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: true
- /dns-packet/5.4.0:
- resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==}
- engines: {node: '>=6'}
- dependencies:
- '@leichtgewicht/ip-codec': 2.0.4
- dev: true
-
/doctrine/3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
@@ -1084,42 +1687,52 @@ packages:
esutils: 2.0.3
dev: true
- /electron-to-chromium/1.4.332:
- resolution: {integrity: sha512-c1Vbv5tuUlBFp0mb3mCIjw+REEsgthRgNE8BlbEDKmvzb8rxjcVki6OkQP83vLN34s0XCxpSkq7AZNep1a6xhw==}
+ /ecdsa-sig-formatter/1.0.11:
+ resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: true
+
+ /electron-to-chromium/1.4.333:
+ resolution: {integrity: sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==}
+ dev: true
+
+ /emoji-regex/8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
/es6-promise/3.3.1:
resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
dev: true
- /esbuild/0.16.17:
- resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==}
+ /esbuild/0.17.12:
+ resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/android-arm': 0.16.17
- '@esbuild/android-arm64': 0.16.17
- '@esbuild/android-x64': 0.16.17
- '@esbuild/darwin-arm64': 0.16.17
- '@esbuild/darwin-x64': 0.16.17
- '@esbuild/freebsd-arm64': 0.16.17
- '@esbuild/freebsd-x64': 0.16.17
- '@esbuild/linux-arm': 0.16.17
- '@esbuild/linux-arm64': 0.16.17
- '@esbuild/linux-ia32': 0.16.17
- '@esbuild/linux-loong64': 0.16.17
- '@esbuild/linux-mips64el': 0.16.17
- '@esbuild/linux-ppc64': 0.16.17
- '@esbuild/linux-riscv64': 0.16.17
- '@esbuild/linux-s390x': 0.16.17
- '@esbuild/linux-x64': 0.16.17
- '@esbuild/netbsd-x64': 0.16.17
- '@esbuild/openbsd-x64': 0.16.17
- '@esbuild/sunos-x64': 0.16.17
- '@esbuild/win32-arm64': 0.16.17
- '@esbuild/win32-ia32': 0.16.17
- '@esbuild/win32-x64': 0.16.17
+ '@esbuild/android-arm': 0.17.12
+ '@esbuild/android-arm64': 0.17.12
+ '@esbuild/android-x64': 0.17.12
+ '@esbuild/darwin-arm64': 0.17.12
+ '@esbuild/darwin-x64': 0.17.12
+ '@esbuild/freebsd-arm64': 0.17.12
+ '@esbuild/freebsd-x64': 0.17.12
+ '@esbuild/linux-arm': 0.17.12
+ '@esbuild/linux-arm64': 0.17.12
+ '@esbuild/linux-ia32': 0.17.12
+ '@esbuild/linux-loong64': 0.17.12
+ '@esbuild/linux-mips64el': 0.17.12
+ '@esbuild/linux-ppc64': 0.17.12
+ '@esbuild/linux-riscv64': 0.17.12
+ '@esbuild/linux-s390x': 0.17.12
+ '@esbuild/linux-x64': 0.17.12
+ '@esbuild/netbsd-x64': 0.17.12
+ '@esbuild/openbsd-x64': 0.17.12
+ '@esbuild/sunos-x64': 0.17.12
+ '@esbuild/win32-arm64': 0.17.12
+ '@esbuild/win32-ia32': 0.17.12
+ '@esbuild/win32-x64': 0.17.12
dev: true
/escalade/3.1.1:
@@ -1176,7 +1789,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.2.0_eslint@8.36.0
+ '@eslint-community/eslint-utils': 4.3.0_eslint@8.36.0
'@eslint-community/regexpp': 4.4.0
'@eslint/eslintrc': 2.0.1
'@eslint/js': 8.36.0
@@ -1303,6 +1916,13 @@ packages:
reusify: 1.0.4
dev: true
+ /faye-websocket/0.11.4:
+ resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
+ engines: {node: '>=0.8.0'}
+ dependencies:
+ websocket-driver: 0.7.4
+ dev: true
+
/file-entry-cache/6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
@@ -1325,6 +1945,39 @@ packages:
path-exists: 4.0.0
dev: true
+ /firebase/9.18.0:
+ resolution: {integrity: sha512-CTV5S3mTtn9zodeWkdeTqiQFyS7t+iskA50V9hVKPCQ4TPw4tnoyNgtNzWUmemFnYadzzsTnAaxsR7UaBJgiqw==}
+ dependencies:
+ '@firebase/analytics': 0.9.4_@firebase+app@0.9.5
+ '@firebase/analytics-compat': 0.2.4_iyabqhttlorju4ibfbaqz2vm6i
+ '@firebase/app': 0.9.5
+ '@firebase/app-check': 0.6.4_@firebase+app@0.9.5
+ '@firebase/app-check-compat': 0.3.4_iyabqhttlorju4ibfbaqz2vm6i
+ '@firebase/app-compat': 0.2.5
+ '@firebase/app-types': 0.9.0
+ '@firebase/auth': 0.21.5_@firebase+app@0.9.5
+ '@firebase/auth-compat': 0.3.5_vvye4fsi3sdhkso275hyw4xk7u
+ '@firebase/database': 0.14.4
+ '@firebase/database-compat': 0.3.4
+ '@firebase/firestore': 3.9.0_@firebase+app@0.9.5
+ '@firebase/firestore-compat': 0.3.5_vvye4fsi3sdhkso275hyw4xk7u
+ '@firebase/functions': 0.9.4_@firebase+app@0.9.5
+ '@firebase/functions-compat': 0.3.4_iyabqhttlorju4ibfbaqz2vm6i
+ '@firebase/installations': 0.6.4_@firebase+app@0.9.5
+ '@firebase/installations-compat': 0.2.4_vvye4fsi3sdhkso275hyw4xk7u
+ '@firebase/messaging': 0.12.4_@firebase+app@0.9.5
+ '@firebase/messaging-compat': 0.2.4_iyabqhttlorju4ibfbaqz2vm6i
+ '@firebase/performance': 0.6.4_@firebase+app@0.9.5
+ '@firebase/performance-compat': 0.2.4_iyabqhttlorju4ibfbaqz2vm6i
+ '@firebase/remote-config': 0.4.4_@firebase+app@0.9.5
+ '@firebase/remote-config-compat': 0.2.4_iyabqhttlorju4ibfbaqz2vm6i
+ '@firebase/storage': 0.11.2_@firebase+app@0.9.5
+ '@firebase/storage-compat': 0.3.2_vvye4fsi3sdhkso275hyw4xk7u
+ '@firebase/util': 1.9.3
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/flat-cache/3.0.4:
resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
engines: {node: ^10.12.0 || >=12.0.0}
@@ -1356,6 +2009,11 @@ packages:
/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ /get-caller-file/2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: true
+
/get-func-name/2.0.0:
resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
dev: true
@@ -1432,8 +2090,8 @@ packages:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
dev: true
- /graceful-fs/4.2.10:
- resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
+ /graceful-fs/4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
/grapheme-splitter/1.0.4:
@@ -1451,6 +2109,31 @@ packages:
dependencies:
function-bind: 1.1.1
+ /http-parser-js/0.5.8:
+ resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
+ dev: true
+
+ /http_ece/1.1.0:
+ resolution: {integrity: sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA==}
+ engines: {node: '>=4'}
+ dependencies:
+ urlsafe-base64: 1.0.0
+ dev: true
+
+ /https-proxy-agent/5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /idb/7.0.1:
+ resolution: {integrity: sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==}
+ dev: true
+
/idb/7.1.1:
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
dev: true
@@ -1517,6 +2200,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /is-fullwidth-code-point/3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
/is-glob/4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@@ -1571,6 +2259,21 @@ packages:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
+ /jwa/2.0.0:
+ resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==}
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+ dev: true
+
+ /jws/4.0.0:
+ resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==}
+ dependencies:
+ jwa: 2.0.0
+ safe-buffer: 5.2.1
+ dev: true
+
/kleur/4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
@@ -1648,6 +2351,10 @@ packages:
p-locate: 5.0.0
dev: true
+ /lodash.camelcase/4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ dev: true
+
/lodash.castarray/4.4.0:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: true
@@ -1664,6 +2371,14 @@ packages:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: false
+ /long/4.0.0:
+ resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
+ dev: true
+
+ /long/5.2.1:
+ resolution: {integrity: sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==}
+ dev: true
+
/loupe/2.3.6:
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
dependencies:
@@ -1698,6 +2413,10 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
+ /make-error/1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+ dev: true
+
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@@ -1722,6 +2441,10 @@ packages:
engines: {node: '>=4'}
dev: true
+ /minimalistic-assert/1.0.1:
+ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+ dev: true
+
/minimatch/3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -1759,14 +2482,6 @@ packages:
/ms/2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- /multicast-dns/7.2.5:
- resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
- hasBin: true
- dependencies:
- dns-packet: 5.4.0
- thunky: 1.1.0
- dev: true
-
/nanoid/3.3.4:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -1781,6 +2496,18 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
+ /node-fetch/2.6.7:
+ resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: true
+
/node-releases/2.0.10:
resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
dev: true
@@ -1888,7 +2615,6 @@ packages:
/pg-int8/1.0.1:
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
engines: {node: '>=4.0.0'}
- dev: false
/pg-pool/3.6.0_pg@8.10.0:
resolution: {integrity: sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==}
@@ -1900,7 +2626,6 @@ packages:
/pg-protocol/1.6.0:
resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==}
- dev: false
/pg-types/2.2.0:
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
@@ -1911,7 +2636,6 @@ packages:
postgres-bytea: 1.0.0
postgres-date: 1.0.7
postgres-interval: 1.2.0
- dev: false
/pg/8.10.0:
resolution: {integrity: sha512-ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ==}
@@ -1979,7 +2703,7 @@ packages:
postcss: 8.4.21
dev: true
- /postcss-load-config/3.1.4_postcss@8.4.21:
+ /postcss-load-config/3.1.4_aesdjsunmf4wiehhujt67my7tu:
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
peerDependencies:
@@ -1993,6 +2717,7 @@ packages:
dependencies:
lilconfig: 2.1.0
postcss: 8.4.21
+ ts-node: 10.9.1_cbfmry4sbbh4vatmdrsmatfg5a
yaml: 1.10.2
dev: true
@@ -2038,24 +2763,20 @@ packages:
/postgres-array/2.0.0:
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
engines: {node: '>=4'}
- dev: false
/postgres-bytea/1.0.0:
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
engines: {node: '>=0.10.0'}
- dev: false
/postgres-date/1.0.7:
resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
engines: {node: '>=0.10.0'}
- dev: false
/postgres-interval/1.2.0:
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
engines: {node: '>=0.10.0'}
dependencies:
xtend: 4.0.2
- dev: false
/prelude-ls/1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
@@ -2078,6 +2799,45 @@ packages:
hasBin: true
dev: true
+ /protobufjs/6.11.3:
+ resolution: {integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==}
+ hasBin: true
+ requiresBuild: 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.2
+ '@types/node': 18.15.3
+ long: 4.0.0
+ dev: true
+
+ /protobufjs/7.2.2:
+ resolution: {integrity: sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==}
+ engines: {node: '>=12.0.0'}
+ requiresBuild: 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': 18.15.3
+ long: 5.2.1
+ dev: true
+
/punycode/2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
@@ -2111,6 +2871,11 @@ packages:
resolve: 1.22.1
dev: false
+ /require-directory/2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/require-from-string/2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
@@ -2174,11 +2939,19 @@ packages:
mri: 1.2.0
dev: true
+ /safe-buffer/5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
+
+ /safer-buffer/2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ dev: true
+
/sander/0.5.1:
resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
dependencies:
es6-promise: 3.3.1
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
mkdirp: 0.5.6
rimraf: 2.7.1
dev: true
@@ -2191,8 +2964,8 @@ packages:
lru-cache: 6.0.0
dev: true
- /set-cookie-parser/2.5.1:
- resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==}
+ /set-cookie-parser/2.6.0:
+ resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
dev: true
/shebang-command/2.0.0:
@@ -2257,6 +3030,15 @@ packages:
engines: {node: '>=10.0.0'}
dev: true
+ /string-width/4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
/strip-ansi/6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -2306,7 +3088,7 @@ packages:
picocolors: 1.0.0
sade: 1.8.1
svelte: 3.57.0
- svelte-preprocess: 5.0.2_ybrbwhhu54cxvzb5hyvixtn33q
+ svelte-preprocess: 5.0.3_ybrbwhhu54cxvzb5hyvixtn33q
typescript: 4.9.5
transitivePeerDependencies:
- '@babel/core'
@@ -2329,8 +3111,8 @@ packages:
svelte: 3.57.0
dev: true
- /svelte-preprocess/5.0.2_ybrbwhhu54cxvzb5hyvixtn33q:
- resolution: {integrity: sha512-iXpIoa43VdF7fPkBdoodztZd4H+3EP/GYA66tbuLVtQnM3sWCpsOtc7HjfA7BDR+6VTpqlEnpDmPoXk0dgUa0g==}
+ /svelte-preprocess/5.0.3_ybrbwhhu54cxvzb5hyvixtn33q:
+ resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==}
engines: {node: '>= 14.10.0'}
requiresBuild: true
peerDependencies:
@@ -2382,7 +3164,7 @@ packages:
engines: {node: '>= 8'}
dev: true
- /tailwindcss/3.2.7_postcss@8.4.21:
+ /tailwindcss/3.2.7_aesdjsunmf4wiehhujt67my7tu:
resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==}
engines: {node: '>=12.13.0'}
hasBin: true
@@ -2406,7 +3188,7 @@ packages:
postcss: 8.4.21
postcss-import: 14.1.0_postcss@8.4.21
postcss-js: 4.0.1_postcss@8.4.21
- postcss-load-config: 3.1.4_postcss@8.4.21
+ postcss-load-config: 3.1.4_aesdjsunmf4wiehhujt67my7tu
postcss-nested: 6.0.0_postcss@8.4.21
postcss-selector-parser: 6.0.11
postcss-value-parser: 4.2.0
@@ -2425,10 +3207,6 @@ packages:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
- /thunky/1.1.0:
- resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
- dev: true
-
/tildify/2.0.0:
resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==}
engines: {node: '>=8'}
@@ -2467,6 +3245,41 @@ packages:
engines: {node: '>=6'}
dev: true
+ /tr46/0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ dev: true
+
+ /ts-node/10.9.1_cbfmry4sbbh4vatmdrsmatfg5a:
+ resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.9
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.3
+ '@types/node': 18.15.3
+ acorn: 8.8.2
+ acorn-walk: 8.2.0
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 4.9.5
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+ dev: true
+
/tslib/1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
@@ -2512,8 +3325,8 @@ packages:
hasBin: true
dev: true
- /undici/5.20.0:
- resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==}
+ /undici/5.21.0:
+ resolution: {integrity: sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==}
engines: {node: '>=12.18'}
dependencies:
busboy: 1.6.0
@@ -2535,45 +3348,20 @@ packages:
dependencies:
punycode: 2.3.0
+ /urlsafe-base64/1.0.0:
+ resolution: {integrity: sha512-RtuPeMy7c1UrHwproMZN9gN6kiZ0SvJwRaEzwZY0j9MypEkFqyBaKv176jvlPtg58Zh36bOkS0NFABXMHvvGCA==}
+ dev: true
+
/util-deprecate/1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
- /vite/4.1.4:
- resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
- engines: {node: ^14.18.0 || >=16.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': '>= 14'
- less: '*'
- sass: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
- dependencies:
- esbuild: 0.16.17
- postcss: 8.4.21
- resolve: 1.22.1
- rollup: 3.19.1
- optionalDependencies:
- fsevents: 2.3.2
+ /v8-compile-cache-lib/3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
dev: true
- /vite/4.1.4_@types+node@18.15.3:
- resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
+ /vite/4.2.0_@types+node@18.15.3:
+ resolution: {integrity: sha512-AbDTyzzwuKoRtMIRLGNxhLRuv1FpRgdIw+1y6AQG73Q5+vtecmvzKo/yk8X/vrHDpETRTx01ABijqUHIzBXi0g==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -2598,7 +3386,7 @@ packages:
optional: true
dependencies:
'@types/node': 18.15.3
- esbuild: 0.16.17
+ esbuild: 0.17.12
postcss: 8.4.21
resolve: 1.22.1
rollup: 3.19.1
@@ -2606,7 +3394,7 @@ packages:
fsevents: 2.3.2
dev: true
- /vitefu/0.2.4_vite@4.1.4:
+ /vitefu/0.2.4_vite@4.2.0:
resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0
@@ -2614,7 +3402,7 @@ packages:
vite:
optional: true
dependencies:
- vite: 4.1.4
+ vite: 4.2.0_@types+node@18.15.3
dev: true
/vitest/0.25.8:
@@ -2652,7 +3440,7 @@ packages:
tinybench: 2.4.0
tinypool: 0.3.1
tinyspy: 1.1.1
- vite: 4.1.4_@types+node@18.15.3
+ vite: 4.2.0_@types+node@18.15.3
transitivePeerDependencies:
- less
- sass
@@ -2662,6 +3450,46 @@ packages:
- terser
dev: true
+ /web-push/3.5.0:
+ resolution: {integrity: sha512-JC0V9hzKTqlDYJ+LTZUXtW7B175qwwaqzbbMSWDxHWxZvd3xY0C2rcotMGDavub2nAAFw+sXTsqR65/KY2A5AQ==}
+ engines: {node: '>= 6'}
+ hasBin: true
+ dependencies:
+ asn1.js: 5.4.1
+ http_ece: 1.1.0
+ https-proxy-agent: 5.0.1
+ jws: 4.0.0
+ minimist: 1.2.8
+ urlsafe-base64: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /webidl-conversions/3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ dev: true
+
+ /websocket-driver/0.7.4:
+ resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
+ engines: {node: '>=0.8.0'}
+ dependencies:
+ http-parser-js: 0.5.8
+ safe-buffer: 5.2.1
+ websocket-extensions: 0.1.4
+ dev: true
+
+ /websocket-extensions/0.1.4:
+ resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /whatwg-url/5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+ dev: true
+
/which/2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
@@ -2675,6 +3503,15 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /wrap-ansi/7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
/wrappy/1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
@@ -2683,6 +3520,11 @@ packages:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
+ /y18n/5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
+
/yallist/4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
@@ -2692,6 +3534,29 @@ packages:
engines: {node: '>= 6'}
dev: true
+ /yargs-parser/20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yargs/16.2.0:
+ resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
+ engines: {node: '>=10'}
+ dependencies:
+ cliui: 7.0.4
+ escalade: 3.1.1
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 20.2.9
+ dev: true
+
+ /yn/3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+ dev: true
+
/yocto-queue/0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
index 745cce2..06d218a 100644
--- a/src/hooks.server.ts
+++ b/src/hooks.server.ts
@@ -1,19 +1,28 @@
-import makeMdns from 'multicast-dns'
-const mdns = makeMdns()
+import Knex from 'knex'
+import { Model } from 'objection'
+import { setVapidDetails } from 'web-push'
-mdns.on('response', (response) => {
- console.log('got a response packet:', response)
+const knex = Knex({
+ client: 'pg',
+ connection: {
+ host: process.env.DB_URL ?? 'localhost',
+ port: 5432,
+ user: 'postgres',
+ password: 'mariochatpgpw',
+ database: 'postgres',
+ },
})
-mdns.on('query', function (query) {
- console.log('got a query packet:', query)
-})
+Model.knex(knex)
-mdns.query({
- questions: [
- {
- name: 'brunhilde.local',
- type: 'A',
- },
- ],
-})
+const vapidKeys = {
+ publicKey:
+ 'BEovcVTe3AmMJ8fpMahQqjr2shW74zBW6Imvih274_03nJg9m4hhUIAPc2Ur0_2aryAOXCA9eEulplz2y0CLfwY',
+ privateKey: 'DUT4Fn5r293-e5gTvpgiQtpU5yhjgwASulFZZclFaJg',
+}
+
+setVapidDetails(
+ 'mailto:mario.bruestle@pm.me',
+ vapidKeys.publicKey,
+ vapidKeys.privateKey,
+)
diff --git a/src/models.ts b/src/models.ts
new file mode 100644
index 0000000..08a114a
--- /dev/null
+++ b/src/models.ts
@@ -0,0 +1,39 @@
+import { Model } from 'objection'
+
+class BaseModel extends Model {}
+
+export class User extends BaseModel {
+ static tableName = 'user'
+ public_key!: string
+ last_seen!: Date
+ name?: Uint8Array
+ avatar?: Uint8Array
+}
+
+export class Room extends BaseModel {
+ static tableName = 'room'
+ id!: number
+ room_key!: Uint8Array
+ avatar?: Uint8Array
+
+ static relationMappings = {
+ users: {
+ relation: Model.ManyToManyRelation,
+ modelClass: User,
+ join: {
+ from: 'room.id',
+ through: {
+ from: 'user_to_room.room_id',
+ to: 'user_to_room.user_public_key',
+ },
+ to: 'user.public_key',
+ },
+ },
+ }
+}
+
+export class UserToRoom extends BaseModel {
+ static tableName = 'user_to_room'
+ user_public_key!: string
+ room_id!: number
+}
diff --git a/src/service-worker.ts b/src/service-worker.ts
new file mode 100644
index 0000000..ac47567
--- /dev/null
+++ b/src/service-worker.ts
@@ -0,0 +1,154 @@
+///
+///
+///
+///
+import { build, files, version } from '$service-worker'
+
+const sw = self as unknown as ServiceWorkerGlobalScope
+
+// Create a unique cache name for this deployment
+const CACHE = `cache-${version}`
+
+const ASSETS = [
+ ...build, // the app itself
+ ...files, // everything in `static`
+ '/',
+]
+
+function installListener(event: ExtendableEvent) {
+ console.log('installing service worker')
+ // Create a new cache and add all files to it
+ async function addFilesToCache() {
+ const cache = await caches.open(CACHE)
+ await cache.addAll(ASSETS)
+ }
+
+ event.waitUntil(addFilesToCache())
+ sw.skipWaiting()
+}
+
+function activateListener(event: ExtendableEvent) {
+ console.log('activating service worker')
+ // Remove previous cached data from disk
+ async function deleteOldCaches() {
+ let cachesWereDeleted = false
+ for (const key of await caches.keys()) {
+ if (key !== CACHE) {
+ await caches.delete(key)
+ cachesWereDeleted = true
+ }
+ }
+ sw.clients.claim()
+ if (cachesWereDeleted) {
+ sw.clients.matchAll().then((clients) => {
+ clients.forEach((client) => {
+ if ('navigate' in client) {
+ console.log('refreshing on sw update')
+ return (client as { navigate: (url: string) => void }).navigate(
+ client.url,
+ )
+ }
+ })
+ })
+ }
+ }
+
+ event.waitUntil(deleteOldCaches())
+}
+
+function fetchListener(event: FetchEvent) {
+ // ignore POST requests etc
+ if (event.request.method !== 'GET' || event.request.headers.has('range'))
+ return
+
+ async function respond() {
+ const url = new URL(event.request.url)
+ const cache = await caches.open(CACHE)
+
+ // `build`/`files` can always be served from the cache
+ if (ASSETS.includes(url.pathname)) {
+ return (await cache.match(event.request)) ?? Response.error()
+ }
+
+ // for everything else, try the network first, but
+ // fall back to the cache if we're offline
+ try {
+ const response = await fetch(event.request)
+
+ if (response.status === 200) {
+ cache.put(event.request, response.clone())
+ }
+ return response
+ } catch {
+ // prerendering and dynamic routes don't work all that well together
+ // so just redirect to MAD start page if we're offline
+ if (url.pathname !== '/') {
+ return Response.redirect('/', 302)
+ }
+ return (await cache.match(event.request)) || Response.error()
+ }
+ }
+
+ event.respondWith(respond())
+}
+
+function backgroundFetchListener(event: BackgroundFetchEvent) {
+ const bgFetch = event.registration
+ event.waitUntil(
+ (async () => {
+ try {
+ console.log('backgorund fetch called!')
+ } catch (error) {
+ await bgFetch.abort()
+ console.error('Background fetch failed:', error)
+ }
+ })(),
+ )
+}
+
+sw.addEventListener('install', installListener)
+sw.addEventListener('activate', activateListener)
+sw.addEventListener('fetch', fetchListener)
+sw.addEventListener('backgroundfetch', backgroundFetchListener)
+
+async function requestNotificationPermission() {
+ const permission = await Notification.requestPermission()
+ if (permission !== 'granted') {
+ console.error('Notification permission not granted')
+ return false
+ }
+ return true
+}
+
+requestNotificationPermission()
+
+import { initializeApp } from 'firebase/app'
+import firebase from 'firebase/compat'
+
+// Your web app's Firebase configuration
+const firebaseConfig = {
+ apiKey: 'AIzaSyBjO3BntXN4pi_Is8qB-AgFrTsssP8u0Hc',
+ authDomain: 'mariochat-42e86.firebaseapp.com',
+ projectId: 'mariochat-42e86',
+ storageBucket: 'mariochat-42e86.appspot.com',
+ messagingSenderId: '650934549094',
+ appId: '1:650934549094:web:48a55d718de5b3c7a64ba7',
+}
+const app = initializeApp(firebaseConfig)
+const messaging = firebase.messaging()
+
+async function requestNotificationPermissionAndToken(): Promise {
+ const permissionGranted = await requestNotificationPermission()
+ if (!permissionGranted) return null
+
+ try {
+ const token = await messaging.getToken({
+ vapidKey:
+ 'BEovcVTe3AmMJ8fpMahQqjr2shW74zBW6Imvih274_03nJg9m4hhUIAPc2Ur0_2aryAOXCA9eEulplz2y0CLfwY',
+ })
+ return token
+ } catch (error) {
+ console.error('Failed to get the registration token:', error)
+ return null
+ }
+}