mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-04-05 08:53:55 -04:00
show register form if setup not completed
This commit is contained in:
48
backend/migrations/1678436809_updated_settings_public.go
Normal file
48
backend/migrations/1678436809_updated_settings_public.go
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
package migrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/pocketbase/dbx"
|
||||||
|
"github.com/pocketbase/pocketbase/daos"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
"github.com/pocketbase/pocketbase/models/schema"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(db dbx.Builder) error {
|
||||||
|
dao := daos.New(db);
|
||||||
|
|
||||||
|
collection, err := dao.FindCollectionByNameOrId("t1rajoyzl6691g3")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// add
|
||||||
|
new_setup_completed := &schema.SchemaField{}
|
||||||
|
json.Unmarshal([]byte(`{
|
||||||
|
"system": false,
|
||||||
|
"id": "vrxqcsnv",
|
||||||
|
"name": "setup_completed",
|
||||||
|
"type": "bool",
|
||||||
|
"required": false,
|
||||||
|
"unique": false,
|
||||||
|
"options": {}
|
||||||
|
}`), new_setup_completed)
|
||||||
|
collection.Schema.AddField(new_setup_completed)
|
||||||
|
|
||||||
|
return dao.SaveCollection(collection)
|
||||||
|
}, func(db dbx.Builder) error {
|
||||||
|
dao := daos.New(db);
|
||||||
|
|
||||||
|
collection, err := dao.FindCollectionByNameOrId("t1rajoyzl6691g3")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove
|
||||||
|
collection.Schema.RemoveField("vrxqcsnv")
|
||||||
|
|
||||||
|
return dao.SaveCollection(collection)
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -104,7 +104,26 @@ func StartPocketBase(distDirFS fs.FS) {
|
|||||||
|
|
||||||
// refresh the device list on database events
|
// refresh the device list on database events
|
||||||
App.OnModelAfterCreate().Add(func(e *core.ModelEvent) error {
|
App.OnModelAfterCreate().Add(func(e *core.ModelEvent) error {
|
||||||
refreshDeviceList()
|
if e.Model.TableName() == "_admins" {
|
||||||
|
totalAdmins, err := App.Dao().TotalAdmins()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
settingsPublicRecords, err := App.Dao().FindRecordsByExpr("settings_public")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if totalAdmins > 0 {
|
||||||
|
settingsPublicRecords[0].Set("setup_completed", true)
|
||||||
|
} else {
|
||||||
|
settingsPublicRecords[0].Set("setup_completed", false)
|
||||||
|
}
|
||||||
|
if err := App.Dao().SaveRecord(settingsPublicRecords[0]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
refreshDeviceList()
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
App.OnModelAfterDelete().Add(func(e *core.ModelEvent) error {
|
App.OnModelAfterDelete().Add(func(e *core.ModelEvent) error {
|
||||||
@@ -159,17 +178,30 @@ func importSettings() error {
|
|||||||
interval = os.Getenv("UPSNAP_INTERVAL")
|
interval = os.Getenv("UPSNAP_INTERVAL")
|
||||||
}
|
}
|
||||||
|
|
||||||
// save settings to db
|
// set private settings
|
||||||
settingsPrivate.Set("interval", interval)
|
settingsPrivate.Set("interval", interval)
|
||||||
if scanRange := os.Getenv("UPSNAP_SCAN_RANGE"); scanRange != "" {
|
if scanRange := os.Getenv("UPSNAP_SCAN_RANGE"); scanRange != "" {
|
||||||
settingsPrivate.Set("scan_range", scanRange)
|
settingsPrivate.Set("scan_range", scanRange)
|
||||||
}
|
}
|
||||||
if err := App.Dao().SaveRecord(settingsPrivate); err != nil {
|
|
||||||
return err
|
// set public settings
|
||||||
}
|
|
||||||
if websiteTitle := os.Getenv("UPSNAP_WEBSITE_TITLE"); websiteTitle != "" {
|
if websiteTitle := os.Getenv("UPSNAP_WEBSITE_TITLE"); websiteTitle != "" {
|
||||||
settingsPublic.Set("website_title", websiteTitle)
|
settingsPublic.Set("website_title", websiteTitle)
|
||||||
}
|
}
|
||||||
|
if totalAdmins, err := App.Dao().TotalAdmins(); err != nil {
|
||||||
|
return err
|
||||||
|
} else {
|
||||||
|
if totalAdmins > 0 {
|
||||||
|
settingsPublic.Set("setup_completed", true)
|
||||||
|
} else {
|
||||||
|
settingsPublic.Set("setup_completed", false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// save records
|
||||||
|
if err := App.Dao().SaveRecord(settingsPrivate); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := App.Dao().SaveRecord(settingsPublic); err != nil {
|
if err := App.Dao().SaveRecord(settingsPublic); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
114
frontend/package-lock.json
generated
114
frontend/package-lock.json
generated
@@ -18,17 +18,17 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-static": "^1.0.6",
|
"@sveltejs/adapter-static": "^1.0.6",
|
||||||
"@sveltejs/kit": "^1.10.0",
|
"@sveltejs/kit": "^1.11.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
||||||
"@typescript-eslint/parser": "^5.54.0",
|
"@typescript-eslint/parser": "^5.54.1",
|
||||||
"eslint": "^8.35.0",
|
"eslint": "^8.35.0",
|
||||||
"eslint-config-prettier": "^8.6.0",
|
"eslint-config-prettier": "^8.7.0",
|
||||||
"eslint-plugin-svelte3": "^4.0.0",
|
"eslint-plugin-svelte3": "^4.0.0",
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"lint-staged": "^13.1.2",
|
"lint-staged": "^13.1.2",
|
||||||
"prettier": "^2.8.4",
|
"prettier": "^2.8.4",
|
||||||
"prettier-plugin-svelte": "^2.9.0",
|
"prettier-plugin-svelte": "^2.9.0",
|
||||||
"svelte": "^3.55.1",
|
"svelte": "^3.56.0",
|
||||||
"svelte-preprocess": "^5.0.1",
|
"svelte-preprocess": "^5.0.1",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^4.9.5",
|
||||||
"vite": "^4.1.4"
|
"vite": "^4.1.4"
|
||||||
@@ -538,9 +538,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sveltejs/kit": {
|
"node_modules/@sveltejs/kit": {
|
||||||
"version": "1.10.0",
|
"version": "1.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.11.0.tgz",
|
||||||
"integrity": "sha512-0P35zHrByfbF3Ym3RdQL+RvzgsCDSyO3imSwuZ67XAD5HoCQFF3a8Mhh0V3sObz3rc5aJd4Qn82UpAihJqZ6gQ==",
|
"integrity": "sha512-PwViZcMoLgEU/jhLoSyjf5hSrHS67wvSm0ifBo4prP9irpGa5HuPOZeVDTL5tPDSBoKxtdYi1zlGdoiJfO86jA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -637,14 +637,14 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz",
|
||||||
"integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==",
|
"integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "5.54.0",
|
"@typescript-eslint/scope-manager": "5.54.1",
|
||||||
"@typescript-eslint/type-utils": "5.54.0",
|
"@typescript-eslint/type-utils": "5.54.1",
|
||||||
"@typescript-eslint/utils": "5.54.0",
|
"@typescript-eslint/utils": "5.54.1",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"grapheme-splitter": "^1.0.4",
|
"grapheme-splitter": "^1.0.4",
|
||||||
"ignore": "^5.2.0",
|
"ignore": "^5.2.0",
|
||||||
@@ -671,14 +671,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz",
|
||||||
"integrity": "sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==",
|
"integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "5.54.0",
|
"@typescript-eslint/scope-manager": "5.54.1",
|
||||||
"@typescript-eslint/types": "5.54.0",
|
"@typescript-eslint/types": "5.54.1",
|
||||||
"@typescript-eslint/typescript-estree": "5.54.0",
|
"@typescript-eslint/typescript-estree": "5.54.1",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -698,13 +698,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz",
|
||||||
"integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==",
|
"integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "5.54.0",
|
"@typescript-eslint/types": "5.54.1",
|
||||||
"@typescript-eslint/visitor-keys": "5.54.0"
|
"@typescript-eslint/visitor-keys": "5.54.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
@@ -715,13 +715,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/type-utils": {
|
"node_modules/@typescript-eslint/type-utils": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz",
|
||||||
"integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==",
|
"integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/typescript-estree": "5.54.0",
|
"@typescript-eslint/typescript-estree": "5.54.1",
|
||||||
"@typescript-eslint/utils": "5.54.0",
|
"@typescript-eslint/utils": "5.54.1",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
},
|
},
|
||||||
@@ -742,9 +742,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/types": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz",
|
||||||
"integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==",
|
"integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
@@ -755,13 +755,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz",
|
||||||
"integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==",
|
"integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "5.54.0",
|
"@typescript-eslint/types": "5.54.1",
|
||||||
"@typescript-eslint/visitor-keys": "5.54.0",
|
"@typescript-eslint/visitor-keys": "5.54.1",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"globby": "^11.1.0",
|
"globby": "^11.1.0",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
@@ -782,16 +782,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/utils": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz",
|
||||||
"integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==",
|
"integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/json-schema": "^7.0.9",
|
"@types/json-schema": "^7.0.9",
|
||||||
"@types/semver": "^7.3.12",
|
"@types/semver": "^7.3.12",
|
||||||
"@typescript-eslint/scope-manager": "5.54.0",
|
"@typescript-eslint/scope-manager": "5.54.1",
|
||||||
"@typescript-eslint/types": "5.54.0",
|
"@typescript-eslint/types": "5.54.1",
|
||||||
"@typescript-eslint/typescript-estree": "5.54.0",
|
"@typescript-eslint/typescript-estree": "5.54.1",
|
||||||
"eslint-scope": "^5.1.1",
|
"eslint-scope": "^5.1.1",
|
||||||
"eslint-utils": "^3.0.0",
|
"eslint-utils": "^3.0.0",
|
||||||
"semver": "^7.3.7"
|
"semver": "^7.3.7"
|
||||||
@@ -808,12 +808,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "5.54.0",
|
"version": "5.54.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz",
|
||||||
"integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==",
|
"integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "5.54.0",
|
"@typescript-eslint/types": "5.54.1",
|
||||||
"eslint-visitor-keys": "^3.3.0"
|
"eslint-visitor-keys": "^3.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -1404,9 +1404,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-config-prettier": {
|
"node_modules/eslint-config-prettier": {
|
||||||
"version": "8.6.0",
|
"version": "8.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz",
|
||||||
"integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
|
"integrity": "sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"eslint-config-prettier": "bin/cli.js"
|
"eslint-config-prettier": "bin/cli.js"
|
||||||
@@ -2910,9 +2910,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "3.18.0",
|
"version": "3.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.0.tgz",
|
||||||
"integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==",
|
"integrity": "sha512-xZzJZlH9Ca6cosfdNGPwl2z7Pby8dTi9TrYLPeg6/j7aUoDOhBd706tCUFvbiBj45h/cS7z/a4gS8xd5Yg0jBw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
@@ -3266,9 +3266,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte": {
|
"node_modules/svelte": {
|
||||||
"version": "3.55.1",
|
"version": "3.56.0",
|
||||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.1.tgz",
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.56.0.tgz",
|
||||||
"integrity": "sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==",
|
"integrity": "sha512-LvXiJbjdvJKwB/0CQyYpDX0q+hFqCyWmybzC2G6eK1tJJA/RSRCytTfNmjHv+RHlLuA70vWG7nXp6gbeErYvRA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
|
|||||||
@@ -12,17 +12,17 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-static": "^1.0.6",
|
"@sveltejs/adapter-static": "^1.0.6",
|
||||||
"@sveltejs/kit": "^1.10.0",
|
"@sveltejs/kit": "^1.11.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
||||||
"@typescript-eslint/parser": "^5.54.0",
|
"@typescript-eslint/parser": "^5.54.1",
|
||||||
"eslint": "^8.35.0",
|
"eslint": "^8.35.0",
|
||||||
"eslint-config-prettier": "^8.6.0",
|
"eslint-config-prettier": "^8.7.0",
|
||||||
"eslint-plugin-svelte3": "^4.0.0",
|
"eslint-plugin-svelte3": "^4.0.0",
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"lint-staged": "^13.1.2",
|
"lint-staged": "^13.1.2",
|
||||||
"prettier": "^2.8.4",
|
"prettier": "^2.8.4",
|
||||||
"prettier-plugin-svelte": "^2.9.0",
|
"prettier-plugin-svelte": "^2.9.0",
|
||||||
"svelte": "^3.55.1",
|
"svelte": "^3.56.0",
|
||||||
"svelte-preprocess": "^5.0.1",
|
"svelte-preprocess": "^5.0.1",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^4.9.5",
|
||||||
"vite": "^4.1.4"
|
"vite": "^4.1.4"
|
||||||
|
|||||||
142
frontend/pnpm-lock.yaml
generated
142
frontend/pnpm-lock.yaml
generated
@@ -4,13 +4,13 @@ specifiers:
|
|||||||
'@fortawesome/free-solid-svg-icons': ^6.3.0
|
'@fortawesome/free-solid-svg-icons': ^6.3.0
|
||||||
'@popperjs/core': ^2.11.6
|
'@popperjs/core': ^2.11.6
|
||||||
'@sveltejs/adapter-static': ^1.0.6
|
'@sveltejs/adapter-static': ^1.0.6
|
||||||
'@sveltejs/kit': ^1.10.0
|
'@sveltejs/kit': ^1.11.0
|
||||||
'@typescript-eslint/eslint-plugin': ^5.54.0
|
'@typescript-eslint/eslint-plugin': ^5.54.1
|
||||||
'@typescript-eslint/parser': ^5.54.0
|
'@typescript-eslint/parser': ^5.54.1
|
||||||
bootstrap: 5.3.0-alpha1
|
bootstrap: 5.3.0-alpha1
|
||||||
date-fns: ^2.29.3
|
date-fns: ^2.29.3
|
||||||
eslint: ^8.35.0
|
eslint: ^8.35.0
|
||||||
eslint-config-prettier: ^8.6.0
|
eslint-config-prettier: ^8.7.0
|
||||||
eslint-plugin-svelte3: ^4.0.0
|
eslint-plugin-svelte3: ^4.0.0
|
||||||
husky: ^8.0.3
|
husky: ^8.0.3
|
||||||
lint-staged: ^13.1.2
|
lint-staged: ^13.1.2
|
||||||
@@ -18,7 +18,7 @@ specifiers:
|
|||||||
prettier: ^2.8.4
|
prettier: ^2.8.4
|
||||||
prettier-plugin-svelte: ^2.9.0
|
prettier-plugin-svelte: ^2.9.0
|
||||||
sass: ^1.58.3
|
sass: ^1.58.3
|
||||||
svelte: ^3.55.1
|
svelte: ^3.56.0
|
||||||
svelte-fa: ^3.0.3
|
svelte-fa: ^3.0.3
|
||||||
svelte-preprocess: ^5.0.1
|
svelte-preprocess: ^5.0.1
|
||||||
typescript: ^4.9.5
|
typescript: ^4.9.5
|
||||||
@@ -34,19 +34,19 @@ dependencies:
|
|||||||
svelte-fa: 3.0.3
|
svelte-fa: 3.0.3
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@sveltejs/adapter-static': 1.0.6_@sveltejs+kit@1.10.0
|
'@sveltejs/adapter-static': 1.0.6_@sveltejs+kit@1.11.0
|
||||||
'@sveltejs/kit': 1.10.0_svelte@3.55.1+vite@4.1.4
|
'@sveltejs/kit': 1.11.0_svelte@3.56.0+vite@4.1.4
|
||||||
'@typescript-eslint/eslint-plugin': 5.54.0_6mj2wypvdnknez7kws2nfdgupi
|
'@typescript-eslint/eslint-plugin': 5.54.1_mlk7dnz565t663n4razh6a6v6i
|
||||||
'@typescript-eslint/parser': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu
|
'@typescript-eslint/parser': 5.54.1_ycpbpc6yetojsgtrx3mwntkhsu
|
||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
eslint-config-prettier: 8.6.0_eslint@8.35.0
|
eslint-config-prettier: 8.7.0_eslint@8.35.0
|
||||||
eslint-plugin-svelte3: 4.0.0_n4ieifq2d7jq3sqoe474cgqlim
|
eslint-plugin-svelte3: 4.0.0_edkhwr7m6j5c643qin6znnpg6e
|
||||||
husky: 8.0.3
|
husky: 8.0.3
|
||||||
lint-staged: 13.1.2
|
lint-staged: 13.1.2
|
||||||
prettier: 2.8.4
|
prettier: 2.8.4
|
||||||
prettier-plugin-svelte: 2.9.0_jrsxveqmsx2uadbqiuq74wlc4u
|
prettier-plugin-svelte: 2.9.0_gan2xfhhcbz3kbkivttwsjndea
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
svelte-preprocess: 5.0.1_fsk2356kdqta2rdbnwwjn3abbe
|
svelte-preprocess: 5.0.1_qc2e3katqrp64k42mpevd5vmaq
|
||||||
typescript: 4.9.5
|
typescript: 4.9.5
|
||||||
vite: 4.1.4_sass@1.58.3
|
vite: 4.1.4_sass@1.58.3
|
||||||
|
|
||||||
@@ -443,7 +443,7 @@ packages:
|
|||||||
}
|
}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@sveltejs/adapter-static/1.0.6_@sveltejs+kit@1.10.0:
|
/@sveltejs/adapter-static/1.0.6_@sveltejs+kit@1.11.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-gTus2jW6bEQAZoT1MdmPHWZZmcb6dfLWc0r6dFHnbzSDZ68kifqQ1E+dZDOMF7aXeRV91sgnPuAn2MtpinVdlA==
|
integrity: sha512-gTus2jW6bEQAZoT1MdmPHWZZmcb6dfLWc0r6dFHnbzSDZ68kifqQ1E+dZDOMF7aXeRV91sgnPuAn2MtpinVdlA==
|
||||||
@@ -451,13 +451,13 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@sveltejs/kit': ^1.0.0
|
'@sveltejs/kit': ^1.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 1.10.0_svelte@3.55.1+vite@4.1.4
|
'@sveltejs/kit': 1.11.0_svelte@3.56.0+vite@4.1.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@sveltejs/kit/1.10.0_svelte@3.55.1+vite@4.1.4:
|
/@sveltejs/kit/1.11.0_svelte@3.56.0+vite@4.1.4:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-0P35zHrByfbF3Ym3RdQL+RvzgsCDSyO3imSwuZ67XAD5HoCQFF3a8Mhh0V3sObz3rc5aJd4Qn82UpAihJqZ6gQ==
|
integrity: sha512-PwViZcMoLgEU/jhLoSyjf5hSrHS67wvSm0ifBo4prP9irpGa5HuPOZeVDTL5tPDSBoKxtdYi1zlGdoiJfO86jA==
|
||||||
}
|
}
|
||||||
engines: { node: ^16.14 || >=18 }
|
engines: { node: ^16.14 || >=18 }
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -466,7 +466,7 @@ packages:
|
|||||||
svelte: ^3.54.0
|
svelte: ^3.54.0
|
||||||
vite: ^4.0.0
|
vite: ^4.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte': 2.0.3_svelte@3.55.1+vite@4.1.4
|
'@sveltejs/vite-plugin-svelte': 2.0.3_svelte@3.56.0+vite@4.1.4
|
||||||
'@types/cookie': 0.5.1
|
'@types/cookie': 0.5.1
|
||||||
cookie: 0.5.0
|
cookie: 0.5.0
|
||||||
devalue: 4.3.0
|
devalue: 4.3.0
|
||||||
@@ -477,7 +477,7 @@ packages:
|
|||||||
sade: 1.8.1
|
sade: 1.8.1
|
||||||
set-cookie-parser: 2.5.1
|
set-cookie-parser: 2.5.1
|
||||||
sirv: 2.0.2
|
sirv: 2.0.2
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
tiny-glob: 0.2.9
|
tiny-glob: 0.2.9
|
||||||
undici: 5.20.0
|
undici: 5.20.0
|
||||||
vite: 4.1.4_sass@1.58.3
|
vite: 4.1.4_sass@1.58.3
|
||||||
@@ -485,7 +485,7 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@sveltejs/vite-plugin-svelte/2.0.3_svelte@3.55.1+vite@4.1.4:
|
/@sveltejs/vite-plugin-svelte/2.0.3_svelte@3.56.0+vite@4.1.4:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==
|
integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==
|
||||||
@@ -499,8 +499,8 @@ packages:
|
|||||||
deepmerge: 4.3.0
|
deepmerge: 4.3.0
|
||||||
kleur: 4.1.5
|
kleur: 4.1.5
|
||||||
magic-string: 0.29.0
|
magic-string: 0.29.0
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
svelte-hmr: 0.15.1_svelte@3.55.1
|
svelte-hmr: 0.15.1_svelte@3.56.0
|
||||||
vite: 4.1.4_sass@1.58.3
|
vite: 4.1.4_sass@1.58.3
|
||||||
vitefu: 0.2.4_vite@4.1.4
|
vitefu: 0.2.4_vite@4.1.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -545,10 +545,10 @@ packages:
|
|||||||
}
|
}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/eslint-plugin/5.54.0_6mj2wypvdnknez7kws2nfdgupi:
|
/@typescript-eslint/eslint-plugin/5.54.1_mlk7dnz565t663n4razh6a6v6i:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==
|
integrity: sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -559,10 +559,10 @@ packages:
|
|||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/parser': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu
|
'@typescript-eslint/parser': 5.54.1_ycpbpc6yetojsgtrx3mwntkhsu
|
||||||
'@typescript-eslint/scope-manager': 5.54.0
|
'@typescript-eslint/scope-manager': 5.54.1
|
||||||
'@typescript-eslint/type-utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu
|
'@typescript-eslint/type-utils': 5.54.1_ycpbpc6yetojsgtrx3mwntkhsu
|
||||||
'@typescript-eslint/utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu
|
'@typescript-eslint/utils': 5.54.1_ycpbpc6yetojsgtrx3mwntkhsu
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
grapheme-splitter: 1.0.4
|
grapheme-splitter: 1.0.4
|
||||||
@@ -576,10 +576,10 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/parser/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu:
|
/@typescript-eslint/parser/5.54.1_ycpbpc6yetojsgtrx3mwntkhsu:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==
|
integrity: sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -589,9 +589,9 @@ packages:
|
|||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 5.54.0
|
'@typescript-eslint/scope-manager': 5.54.1
|
||||||
'@typescript-eslint/types': 5.54.0
|
'@typescript-eslint/types': 5.54.1
|
||||||
'@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5
|
'@typescript-eslint/typescript-estree': 5.54.1_typescript@4.9.5
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
typescript: 4.9.5
|
typescript: 4.9.5
|
||||||
@@ -599,21 +599,21 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/scope-manager/5.54.0:
|
/@typescript-eslint/scope-manager/5.54.1:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==
|
integrity: sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 5.54.0
|
'@typescript-eslint/types': 5.54.1
|
||||||
'@typescript-eslint/visitor-keys': 5.54.0
|
'@typescript-eslint/visitor-keys': 5.54.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/type-utils/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu:
|
/@typescript-eslint/type-utils/5.54.1_ycpbpc6yetojsgtrx3mwntkhsu:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==
|
integrity: sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -623,8 +623,8 @@ packages:
|
|||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5
|
'@typescript-eslint/typescript-estree': 5.54.1_typescript@4.9.5
|
||||||
'@typescript-eslint/utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu
|
'@typescript-eslint/utils': 5.54.1_ycpbpc6yetojsgtrx3mwntkhsu
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
tsutils: 3.21.0_typescript@4.9.5
|
tsutils: 3.21.0_typescript@4.9.5
|
||||||
@@ -633,18 +633,18 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/types/5.54.0:
|
/@typescript-eslint/types/5.54.1:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==
|
integrity: sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/typescript-estree/5.54.0_typescript@4.9.5:
|
/@typescript-eslint/typescript-estree/5.54.1_typescript@4.9.5:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==
|
integrity: sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -653,8 +653,8 @@ packages:
|
|||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 5.54.0
|
'@typescript-eslint/types': 5.54.1
|
||||||
'@typescript-eslint/visitor-keys': 5.54.0
|
'@typescript-eslint/visitor-keys': 5.54.1
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
@@ -665,10 +665,10 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/utils/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu:
|
/@typescript-eslint/utils/5.54.1_ycpbpc6yetojsgtrx3mwntkhsu:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==
|
integrity: sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -676,9 +676,9 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/json-schema': 7.0.11
|
'@types/json-schema': 7.0.11
|
||||||
'@types/semver': 7.3.13
|
'@types/semver': 7.3.13
|
||||||
'@typescript-eslint/scope-manager': 5.54.0
|
'@typescript-eslint/scope-manager': 5.54.1
|
||||||
'@typescript-eslint/types': 5.54.0
|
'@typescript-eslint/types': 5.54.1
|
||||||
'@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5
|
'@typescript-eslint/typescript-estree': 5.54.1_typescript@4.9.5
|
||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
eslint-scope: 5.1.1
|
eslint-scope: 5.1.1
|
||||||
eslint-utils: 3.0.0_eslint@8.35.0
|
eslint-utils: 3.0.0_eslint@8.35.0
|
||||||
@@ -688,14 +688,14 @@ packages:
|
|||||||
- typescript
|
- typescript
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/visitor-keys/5.54.0:
|
/@typescript-eslint/visitor-keys/5.54.1:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==
|
integrity: sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==
|
||||||
}
|
}
|
||||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 5.54.0
|
'@typescript-eslint/types': 5.54.1
|
||||||
eslint-visitor-keys: 3.3.0
|
eslint-visitor-keys: 3.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
@@ -1157,10 +1157,10 @@ packages:
|
|||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-config-prettier/8.6.0_eslint@8.35.0:
|
/eslint-config-prettier/8.7.0_eslint@8.35.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
|
integrity: sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA==
|
||||||
}
|
}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -1169,7 +1169,7 @@ packages:
|
|||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-svelte3/4.0.0_n4ieifq2d7jq3sqoe474cgqlim:
|
/eslint-plugin-svelte3/4.0.0_edkhwr7m6j5c643qin6znnpg6e:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==
|
integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==
|
||||||
@@ -1179,7 +1179,7 @@ packages:
|
|||||||
svelte: ^3.2.0
|
svelte: ^3.2.0
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.35.0
|
eslint: 8.35.0
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-scope/5.1.1:
|
/eslint-scope/5.1.1:
|
||||||
@@ -2261,7 +2261,7 @@ packages:
|
|||||||
engines: { node: '>= 0.8.0' }
|
engines: { node: '>= 0.8.0' }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/prettier-plugin-svelte/2.9.0_jrsxveqmsx2uadbqiuq74wlc4u:
|
/prettier-plugin-svelte/2.9.0_gan2xfhhcbz3kbkivttwsjndea:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==
|
integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==
|
||||||
@@ -2271,7 +2271,7 @@ packages:
|
|||||||
svelte: ^3.2.0
|
svelte: ^3.2.0
|
||||||
dependencies:
|
dependencies:
|
||||||
prettier: 2.8.4
|
prettier: 2.8.4
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/prettier/2.8.4:
|
/prettier/2.8.4:
|
||||||
@@ -2381,10 +2381,10 @@ packages:
|
|||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/rollup/3.18.0:
|
/rollup/3.19.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==
|
integrity: sha512-xZzJZlH9Ca6cosfdNGPwl2z7Pby8dTi9TrYLPeg6/j7aUoDOhBd706tCUFvbiBj45h/cS7z/a4gS8xd5Yg0jBw==
|
||||||
}
|
}
|
||||||
engines: { node: '>=14.18.0', npm: '>=8.0.0' }
|
engines: { node: '>=14.18.0', npm: '>=8.0.0' }
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -2673,7 +2673,7 @@ packages:
|
|||||||
}
|
}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/svelte-hmr/0.15.1_svelte@3.55.1:
|
/svelte-hmr/0.15.1_svelte@3.56.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==
|
integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==
|
||||||
@@ -2682,10 +2682,10 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
svelte: '>=3.19.0'
|
svelte: '>=3.19.0'
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/svelte-preprocess/5.0.1_fsk2356kdqta2rdbnwwjn3abbe:
|
/svelte-preprocess/5.0.1_qc2e3katqrp64k42mpevd5vmaq:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==
|
integrity: sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==
|
||||||
@@ -2733,14 +2733,14 @@ packages:
|
|||||||
sass: 1.58.3
|
sass: 1.58.3
|
||||||
sorcery: 0.11.0
|
sorcery: 0.11.0
|
||||||
strip-indent: 3.0.0
|
strip-indent: 3.0.0
|
||||||
svelte: 3.55.1
|
svelte: 3.56.0
|
||||||
typescript: 4.9.5
|
typescript: 4.9.5
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/svelte/3.55.1:
|
/svelte/3.56.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==
|
integrity: sha512-LvXiJbjdvJKwB/0CQyYpDX0q+hFqCyWmybzC2G6eK1tJJA/RSRCytTfNmjHv+RHlLuA70vWG7nXp6gbeErYvRA==
|
||||||
}
|
}
|
||||||
engines: { node: '>= 8' }
|
engines: { node: '>= 8' }
|
||||||
dev: true
|
dev: true
|
||||||
@@ -2898,7 +2898,7 @@ packages:
|
|||||||
esbuild: 0.16.17
|
esbuild: 0.16.17
|
||||||
postcss: 8.4.21
|
postcss: 8.4.21
|
||||||
resolve: 1.22.1
|
resolve: 1.22.1
|
||||||
rollup: 3.18.0
|
rollup: 3.19.0
|
||||||
sass: 1.58.3
|
sass: 1.58.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.2
|
fsevents: 2.3.2
|
||||||
|
|||||||
@@ -3,13 +3,22 @@
|
|||||||
|
|
||||||
let username;
|
let username;
|
||||||
let password;
|
let password;
|
||||||
|
let passwordConfirm;
|
||||||
let isAdmin;
|
let isAdmin;
|
||||||
let error = {
|
let callout = {
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
level: 'danger',
|
||||||
title: '',
|
title: '',
|
||||||
msg: ''
|
msg: ''
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$: if ($settings_public.setup_completed === false) {
|
||||||
|
callout.title = '';
|
||||||
|
callout.msg = 'No admin account has been set up. Please create one.';
|
||||||
|
callout.level = 'info';
|
||||||
|
callout.hidden = false;
|
||||||
|
}
|
||||||
|
|
||||||
async function login() {
|
async function login() {
|
||||||
if (isAdmin) {
|
if (isAdmin) {
|
||||||
$pocketbase.admins
|
$pocketbase.admins
|
||||||
@@ -19,9 +28,10 @@
|
|||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
authorizedStore.set(false);
|
authorizedStore.set(false);
|
||||||
error.title = err.status;
|
callout.level = 'danger';
|
||||||
error.msg = err.message;
|
callout.title = err.status;
|
||||||
error.hidden = false;
|
callout.msg = err.message;
|
||||||
|
callout.hidden = false;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$pocketbase
|
$pocketbase
|
||||||
@@ -32,12 +42,48 @@
|
|||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
authorizedStore.set(false);
|
authorizedStore.set(false);
|
||||||
error.title = err.status;
|
callout.level = 'danger';
|
||||||
error.msg = err.message;
|
callout.title = err.status;
|
||||||
error.hidden = false;
|
callout.msg = err.message;
|
||||||
|
callout.hidden = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function register() {
|
||||||
|
if (password !== passwordConfirm) {
|
||||||
|
callout.level = 'danger';
|
||||||
|
callout.title = "Passwords don't match";
|
||||||
|
callout.msg = 'Please try again';
|
||||||
|
callout.hidden = false;
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
callout.hidden = true;
|
||||||
|
}
|
||||||
|
$pocketbase.admins
|
||||||
|
.create({
|
||||||
|
email: username,
|
||||||
|
password: password,
|
||||||
|
passwordConfirm: passwordConfirm
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
$pocketbase.admins
|
||||||
|
.authWithPassword(username, password)
|
||||||
|
.then(() => {
|
||||||
|
authorizedStore.set(true);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
return err;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
authorizedStore.set(false);
|
||||||
|
callout.level = 'danger';
|
||||||
|
callout.title = err.status;
|
||||||
|
callout.msg = err.message;
|
||||||
|
callout.hidden = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="container text-dark-emphasis">
|
<div class="container text-dark-emphasis">
|
||||||
@@ -50,54 +96,105 @@
|
|||||||
alt={$settings_public.website_title ? $settings_public.website_title : 'UpSnap'}
|
alt={$settings_public.website_title ? $settings_public.website_title : 'UpSnap'}
|
||||||
class="logo pe-none user-select-none"
|
class="logo pe-none user-select-none"
|
||||||
/>
|
/>
|
||||||
<h2 class="text-dark-emphasis fw-bold text-center mt-3">Login</h2>
|
<h2 class="text-dark-emphasis fw-bold text-center mt-3">
|
||||||
|
{$settings_public.setup_completed === true ? 'Login' : 'Register'}
|
||||||
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row justify-content-center align-items-center p-2">
|
<div class="row justify-content-center align-items-center p-2">
|
||||||
<div class="col-md-6 col-lg-5 p-4 login rounded-5 shadow-sm">
|
<div class="col-md-6 col-lg-5 p-4 login rounded-5 shadow-sm">
|
||||||
<form class="w-100" on:submit|preventDefault={login}>
|
<div class="callout callout-{callout.level} mt-0" class:d-none={callout.hidden}>
|
||||||
<div class="mb-3">
|
{#if callout.title !== ''}
|
||||||
<label for="username" class="form-label">Username or email address</label>
|
<h5>{callout.title}</h5>
|
||||||
<input
|
{/if}
|
||||||
type="text"
|
{#if callout.msg !== ''}
|
||||||
class="form-control"
|
<p class="m-0">{callout.msg}</p>
|
||||||
id="username"
|
{/if}
|
||||||
placeholder="user@example.com"
|
</div>
|
||||||
bind:value={username}
|
{#if $settings_public.setup_completed === true}
|
||||||
required
|
<form class="w-100" on:submit|preventDefault={login}>
|
||||||
/>
|
<div class="mb-3">
|
||||||
</div>
|
<label for="username" class="form-label">Username or email</label>
|
||||||
<div class="mb-3">
|
<input
|
||||||
<label for="password" class="form-label">Password</label>
|
type="text"
|
||||||
<input
|
class="form-control"
|
||||||
type="password"
|
id="username"
|
||||||
class="form-control"
|
placeholder="user@example.com"
|
||||||
id="password"
|
bind:value={username}
|
||||||
placeholder="secret-password"
|
required
|
||||||
bind:value={password}
|
/>
|
||||||
required
|
</div>
|
||||||
/>
|
<div class="mb-3">
|
||||||
</div>
|
<label for="password" class="form-label">Password</label>
|
||||||
<div class="form-check form-switch mb-3">
|
<input
|
||||||
<input
|
type="password"
|
||||||
class="form-check-input"
|
class="form-control"
|
||||||
type="checkbox"
|
id="password"
|
||||||
role="switch"
|
placeholder="secret-password"
|
||||||
id="flexSwitchCheckChecked"
|
bind:value={password}
|
||||||
bind:checked={isAdmin}
|
required
|
||||||
/>
|
/>
|
||||||
<label class="form-check-label" for="flexSwitchCheckChecked">Admin login</label>
|
</div>
|
||||||
</div>
|
<div class="form-check form-switch mb-3">
|
||||||
<div class="callout callout-danger" class:d-none={error.hidden}>
|
<input
|
||||||
<h5>Error {error.title}</h5>
|
class="form-check-input"
|
||||||
<p class="m-0">{error.msg}</p>
|
type="checkbox"
|
||||||
</div>
|
role="switch"
|
||||||
<button class="btn btn-secondary w-100" type="submit">Login</button>
|
id="flexSwitchCheckChecked"
|
||||||
</form>
|
bind:checked={isAdmin}
|
||||||
<p class="text-center m-0 mt-3">
|
/>
|
||||||
<!-- hacky way of linking a non existing route in svelte -->
|
<label class="form-check-label" for="flexSwitchCheckChecked"
|
||||||
<a href="/_/" rel="external" class="text-muted cursor-pointer">Manage users</a>
|
>Admin login</label
|
||||||
</p>
|
>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-secondary w-100" type="submit">Login</button>
|
||||||
|
</form>
|
||||||
|
<p class="text-center m-0 mt-3">
|
||||||
|
<!-- hacky way of linking a non existing route in svelte -->
|
||||||
|
<a href="/_/" rel="external" class="text-muted cursor-pointer">Manage users</a>
|
||||||
|
</p>
|
||||||
|
{:else}
|
||||||
|
<form class="w-100" on:submit|preventDefault={register}>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="username" class="form-label">Email</label>
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
class="form-control"
|
||||||
|
id="username"
|
||||||
|
placeholder="user@example.com"
|
||||||
|
bind:value={username}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="password" class="form-label"
|
||||||
|
>Password (min. 10 characters)</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
class="form-control"
|
||||||
|
id="password"
|
||||||
|
placeholder="secret-password"
|
||||||
|
minlength="10"
|
||||||
|
bind:value={password}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="passwordConfirm" class="form-label">Password confirm</label>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
class="form-control"
|
||||||
|
id="passwordConfirm"
|
||||||
|
placeholder="secret-password"
|
||||||
|
minlength="10"
|
||||||
|
bind:value={passwordConfirm}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-secondary w-100" type="submit">Create and login</button>
|
||||||
|
</form>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user