From 68495b64300e7172c3650a7f7935e403773f5146 Mon Sep 17 00:00:00 2001 From: Florian Sylvain Date: Fri, 14 Oct 2022 09:14:45 +0200 Subject: [PATCH] Cleaned, refactored, added db init script --- cmd/main.go | 44 ++--- docker-compose.yml | 3 + internal/addArticle.go | 24 ++- internal/database.go | 39 ++++ internal/error.go | 15 ++ mongo-init.js | 25 +++ web/admin-gui/package-lock.json | 323 +++++++++++++++++--------------- web/admin-gui/package.json | 2 +- 8 files changed, 285 insertions(+), 190 deletions(-) create mode 100644 internal/database.go create mode 100644 internal/error.go create mode 100644 mongo-init.js diff --git a/cmd/main.go b/cmd/main.go index 87ae4f5..c15c641 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -1,52 +1,30 @@ package main import ( + "os" + "github.com/gin-gonic/gin" "github.com/gotest/internal" "github.com/joho/godotenv" ) -func main() { - err := godotenv.Load("./.env") - if err != nil { +func initEnvVariables() { + if godotenv.Load() != nil { panic("Error loading .env file.") } +} +func initGin() { r := gin.Default() r.SetTrustedProxies([]string{"localhost"}) r.GET("/ping", internal.Ping) r.POST("/add-article", internal.AddArticle) - r.Run() + r.Run(":" + os.Getenv("API_PORT")) } -// type album struct { -// ID primitive.ObjectID `json:"id"` -// Pouet int32 `json:"number"` -// } - -// func pouet(c *gin.Context) { -// const uri = "mongodb://db:27017/" -// client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) -// if err != nil { -// panic(err) -// } -// defer client.Disconnect(context.TODO()) - -// coll := client.Database("gohcms").Collection("posts") -// found, _ := coll.Find(context.TODO(), bson.D{}) - -// for found.Next(context.TODO()) { -// // fmt.Println(found.Current.String()) -// var pouet album -// err := found.Decode(&pouet) -// if err != nil { -// panic(err) -// } -// fmt.Println(pouet) -// fmt.Println(bson.Marshal(pouet)) -// } - -// c.JSON(http.StatusOK, gin.H{}) -// } +func main() { + initEnvVariables() + initGin() +} diff --git a/docker-compose.yml b/docker-compose.yml index 4c18a0f..bb54476 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,8 +15,11 @@ services: image: mongo:6.0.2 # ports: # - "27017:27017" + environment: + - MONGO_INITDB_DATABASE=gohcms volumes: - ./mongodbdata:/data/db + - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js networks: - back-net diff --git a/internal/addArticle.go b/internal/addArticle.go index d083166..6e83e89 100644 --- a/internal/addArticle.go +++ b/internal/addArticle.go @@ -1,7 +1,29 @@ package internal -import "github.com/gin-gonic/gin" +import ( + "github.com/gin-gonic/gin" + "go.mongodb.org/mongo-driver/bson" +) + +type Article struct { + Id_name string `json:"id_name" bson:"id_name"` + Date int64 `json:"date" bson:"date"` + Content interface{} `json:"content" bson:"content"` +} func AddArticle(c *gin.Context) { + var article Article + if c.BindJSON(&article) != nil { + SendErrorMessageToClient(c, "Could not correctly parse the article.") + } + document, err := bson.Marshal(article) + if err != nil { + SendErrorMessageToClient(c, "Could not correctly marshal the article.") + } + + err = pushDocument(Location{Database: "gohcms", Collection: "articles"}, document) + if err != nil { + SendErrorMessageToClient(c, "Could not insert document into DB.") + } } diff --git a/internal/database.go b/internal/database.go new file mode 100644 index 0000000..d8bf30d --- /dev/null +++ b/internal/database.go @@ -0,0 +1,39 @@ +package internal + +import ( + "context" + + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" +) + +type Location struct { + Database string + Collection string +} + +func getNewClient() *mongo.Client { + client, err := mongo.Connect( + context.TODO(), + options.Client().ApplyURI("mongodb://db:27017/")) + if err != nil { + panic(err) + } + return client +} + +func pushDocument(location Location, document interface{}) error { + client := getNewClient() + defer client.Disconnect(context.TODO()) + + coll := client.Database(location.Database).Collection(location.Collection) + _, err := coll.InsertOne(context.TODO(), document) + if err != nil { + return err + } + + return nil +} + +// func getDocument(database string, collection string) { +// } diff --git a/internal/error.go b/internal/error.go new file mode 100644 index 0000000..fee897d --- /dev/null +++ b/internal/error.go @@ -0,0 +1,15 @@ +package internal + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +type errorMessage struct { + Message string `json:"message"` +} + +func SendErrorMessageToClient(c *gin.Context, message string) { + c.JSON(http.StatusBadRequest, errorMessage{Message: message}) +} diff --git a/mongo-init.js b/mongo-init.js new file mode 100644 index 0000000..2474808 --- /dev/null +++ b/mongo-init.js @@ -0,0 +1,25 @@ +conn = new Mongo() +db = conn.getDB("gohcms") + +db.createCollection('articles', { + validator: { + $jsonSchema: { + required: ['content', 'date', 'id_name'], + properties: { + _id: { + bsonType: 'objectId' + }, + content: { + bsonType: 'object' + }, + date: { + bsonType: 'number' + }, + id_name: { + bsonType: 'string', + pattern: '^.+$' + } + } + } + } +}) diff --git a/web/admin-gui/package-lock.json b/web/admin-gui/package-lock.json index 842b575..1651422 100644 --- a/web/admin-gui/package-lock.json +++ b/web/admin-gui/package-lock.json @@ -20,7 +20,7 @@ "npm-run-all": "^4.1.5", "typescript": "~4.7.4", "vite": "^3.0.9", - "vue-tsc": "^0.40.7" + "vue-tsc": "^1.0.5" } }, "node_modules/@babel/parser": { @@ -95,87 +95,80 @@ "vue": "^3.2.25" } }, - "node_modules/@volar/code-gen": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.13.tgz", - "integrity": "sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==", + "node_modules/@volar/language-core": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.5.tgz", + "integrity": "sha512-RaCbW0juAgj+INcxIqvg1KCLCPSCzXcEnaCKWY2bOrFybcNGhKsV1SRxT3ph0KvX33AecBRPcTA3uOPUKmcrJw==", "dev": true, "dependencies": { - "@volar/source-map": "0.40.13" + "@volar/source-map": "1.0.5", + "@vue/reactivity": "^3.2.38", + "muggle-string": "^0.1.0" } }, "node_modules/@volar/source-map": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.13.tgz", - "integrity": "sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.5.tgz", + "integrity": "sha512-3UQmpsh94P3PoJBFUfZO5otIKW+uDoTvwT0yc1ESO9PK3NQvFaEB2djqtlmXXM4DpeICZrKJyykvj/+D5m4CZw==", "dev": true, "dependencies": { - "@vue/reactivity": "3.2.38" + "muggle-string": "^0.1.0" } }, - "node_modules/@volar/source-map/node_modules/@vue/reactivity": { - "version": "3.2.38", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz", - "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", + "node_modules/@volar/typescript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.5.tgz", + "integrity": "sha512-P+nDr/KUtWi/HHqIO+cTmjgQVuDn8LNhvBYUph7ae+8LhePWvoweVibkO9Dp/lkIo2L26BAa/1XmtHv666GnJg==", "dev": true, "dependencies": { - "@vue/shared": "3.2.38" + "@volar/language-core": "1.0.5" } }, - "node_modules/@volar/source-map/node_modules/@vue/shared": { - "version": "3.2.38", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz", - "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==", - "dev": true - }, - "node_modules/@volar/typescript-faster": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz", - "integrity": "sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==", + "node_modules/@volar/vue-language-core": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.5.tgz", + "integrity": "sha512-SW1TJi3evt2Jigi74wh7l/bTYj3+0+iD/F6BN97NdGHr04ELoh6YNIQl4O6Nk2BbZUqn3WQosfGxKR5BVqfCjg==", "dev": true, "dependencies": { - "semver": "^7.3.7" + "@volar/language-core": "1.0.5", + "@volar/source-map": "1.0.5", + "@vue/compiler-dom": "^3.2.38", + "@vue/compiler-sfc": "^3.2.38", + "@vue/reactivity": "^3.2.38", + "@vue/shared": "^3.2.38", + "minimatch": "^5.1.0", + "vue-template-compiler": "^2.7.10" } }, - "node_modules/@volar/typescript-faster/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/@volar/vue-language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@volar/vue-language-core/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/@volar/vue-language-core": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz", - "integrity": "sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==", - "dev": true, - "dependencies": { - "@volar/code-gen": "0.40.13", - "@volar/source-map": "0.40.13", - "@vue/compiler-core": "^3.2.38", - "@vue/compiler-dom": "^3.2.38", - "@vue/compiler-sfc": "^3.2.38", - "@vue/reactivity": "^3.2.38", - "@vue/shared": "^3.2.38" - } - }, "node_modules/@volar/vue-typescript": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz", - "integrity": "sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.5.tgz", + "integrity": "sha512-jAfL8+cXTjf+0d5SCBX0MrcEh1JYIvD8b8mA9O74ysfpArINJZ/57iWC5ZNUw3qrqzfDkEqebsZcs5aZn1tbUw==", "dev": true, "dependencies": { - "@volar/code-gen": "0.40.13", - "@volar/typescript-faster": "0.40.13", - "@volar/vue-language-core": "0.40.13" + "@volar/typescript": "1.0.5", + "@volar/vue-language-core": "1.0.5" } }, "node_modules/@vue/compiler-core": { @@ -406,6 +399,12 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, "node_modules/define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -1009,6 +1008,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -1226,18 +1234,6 @@ "node": ">=4" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -1267,6 +1263,12 @@ "node": "*" } }, + "node_modules/muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, "node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -1911,14 +1913,24 @@ "vue": "^3.2.0" } }, - "node_modules/vue-tsc": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.13.tgz", - "integrity": "sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==", + "node_modules/vue-template-compiler": { + "version": "2.7.11", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.11.tgz", + "integrity": "sha512-17QnXkFiBLOH3gGCA3nWAWpmdlTjOWLyP/2eg5ptgY1OvDBuIDGOW9FZ7ZSKmF1UFyf56mLR3/E1SlCTml1LWQ==", "dev": true, "dependencies": { - "@volar/vue-language-core": "0.40.13", - "@volar/vue-typescript": "0.40.13" + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.5.tgz", + "integrity": "sha512-eXbix2kN28DXlemZo2oN9sP1ePW8FEguyOfTZ1tXs1zWN5ejm5hvmnYqfk3tL+aYnxdmoQwELDfjQ0hOzhQcbg==", + "dev": true, + "dependencies": { + "@volar/vue-language-core": "1.0.5", + "@volar/vue-typescript": "1.0.5" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1954,12 +1966,6 @@ "funding": { "url": "https://github.com/sponsors/ljharb" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } }, "dependencies": { @@ -2005,85 +2011,79 @@ "dev": true, "requires": {} }, - "@volar/code-gen": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.13.tgz", - "integrity": "sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==", + "@volar/language-core": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.5.tgz", + "integrity": "sha512-RaCbW0juAgj+INcxIqvg1KCLCPSCzXcEnaCKWY2bOrFybcNGhKsV1SRxT3ph0KvX33AecBRPcTA3uOPUKmcrJw==", "dev": true, "requires": { - "@volar/source-map": "0.40.13" + "@volar/source-map": "1.0.5", + "@vue/reactivity": "^3.2.38", + "muggle-string": "^0.1.0" } }, "@volar/source-map": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.13.tgz", - "integrity": "sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.5.tgz", + "integrity": "sha512-3UQmpsh94P3PoJBFUfZO5otIKW+uDoTvwT0yc1ESO9PK3NQvFaEB2djqtlmXXM4DpeICZrKJyykvj/+D5m4CZw==", "dev": true, "requires": { - "@vue/reactivity": "3.2.38" - }, - "dependencies": { - "@vue/reactivity": { - "version": "3.2.38", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz", - "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", - "dev": true, - "requires": { - "@vue/shared": "3.2.38" - } - }, - "@vue/shared": { - "version": "3.2.38", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz", - "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==", - "dev": true - } + "muggle-string": "^0.1.0" } }, - "@volar/typescript-faster": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz", - "integrity": "sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==", + "@volar/typescript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.5.tgz", + "integrity": "sha512-P+nDr/KUtWi/HHqIO+cTmjgQVuDn8LNhvBYUph7ae+8LhePWvoweVibkO9Dp/lkIo2L26BAa/1XmtHv666GnJg==", "dev": true, "requires": { - "semver": "^7.3.7" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "@volar/language-core": "1.0.5" } }, "@volar/vue-language-core": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz", - "integrity": "sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.5.tgz", + "integrity": "sha512-SW1TJi3evt2Jigi74wh7l/bTYj3+0+iD/F6BN97NdGHr04ELoh6YNIQl4O6Nk2BbZUqn3WQosfGxKR5BVqfCjg==", "dev": true, "requires": { - "@volar/code-gen": "0.40.13", - "@volar/source-map": "0.40.13", - "@vue/compiler-core": "^3.2.38", + "@volar/language-core": "1.0.5", + "@volar/source-map": "1.0.5", "@vue/compiler-dom": "^3.2.38", "@vue/compiler-sfc": "^3.2.38", "@vue/reactivity": "^3.2.38", - "@vue/shared": "^3.2.38" + "@vue/shared": "^3.2.38", + "minimatch": "^5.1.0", + "vue-template-compiler": "^2.7.10" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "@volar/vue-typescript": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz", - "integrity": "sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.5.tgz", + "integrity": "sha512-jAfL8+cXTjf+0d5SCBX0MrcEh1JYIvD8b8mA9O74ysfpArINJZ/57iWC5ZNUw3qrqzfDkEqebsZcs5aZn1tbUw==", "dev": true, "requires": { - "@volar/code-gen": "0.40.13", - "@volar/typescript-faster": "0.40.13", - "@volar/vue-language-core": "0.40.13" + "@volar/typescript": "1.0.5", + "@volar/vue-language-core": "1.0.5" } }, "@vue/compiler-core": { @@ -2292,6 +2292,12 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, "define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -2638,6 +2644,12 @@ "has-symbols": "^1.0.2" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -2789,15 +2801,6 @@ "strip-bom": "^3.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -2821,6 +2824,12 @@ "brace-expansion": "^1.1.7" } }, + "muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -3264,14 +3273,24 @@ "@vue/devtools-api": "^6.1.4" } }, - "vue-tsc": { - "version": "0.40.13", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.13.tgz", - "integrity": "sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==", + "vue-template-compiler": { + "version": "2.7.11", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.11.tgz", + "integrity": "sha512-17QnXkFiBLOH3gGCA3nWAWpmdlTjOWLyP/2eg5ptgY1OvDBuIDGOW9FZ7ZSKmF1UFyf56mLR3/E1SlCTml1LWQ==", "dev": true, "requires": { - "@volar/vue-language-core": "0.40.13", - "@volar/vue-typescript": "0.40.13" + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.5.tgz", + "integrity": "sha512-eXbix2kN28DXlemZo2oN9sP1ePW8FEguyOfTZ1tXs1zWN5ejm5hvmnYqfk3tL+aYnxdmoQwELDfjQ0hOzhQcbg==", + "dev": true, + "requires": { + "@volar/vue-language-core": "1.0.5", + "@volar/vue-typescript": "1.0.5" } }, "which": { @@ -3295,12 +3314,6 @@ "is-string": "^1.0.5", "is-symbol": "^1.0.3" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } } diff --git a/web/admin-gui/package.json b/web/admin-gui/package.json index bdc1620..589bd10 100644 --- a/web/admin-gui/package.json +++ b/web/admin-gui/package.json @@ -21,6 +21,6 @@ "npm-run-all": "^4.1.5", "typescript": "~4.7.4", "vite": "^3.0.9", - "vue-tsc": "^0.40.7" + "vue-tsc": "^1.0.5" } }