Преглед изворни кода

chore: bump dompurify to 3.4.11 and expand VS Code tasks

- override dompurify to ^3.4.11 (fixes setConfig hook-pollution XSS advisory in the transitive swagger-ui-react dep)
- add frontend tasks (build, dev, gen, lint, test, typecheck, install, ncu) and go tasks (fmt, modernize, modernize -fix)
- add compound tasks: build:full (frontend + go) and check:all
MHSanaei пре 18 часа
родитељ
комит
0537cbfb10
3 измењених фајлова са 223 додато и 7 уклоњено
  1. 219 4
      .vscode/tasks.json
  2. 3 3
      frontend/package-lock.json
  3. 1 0
      frontend/package.json

+ 219 - 4
.vscode/tasks.json

@@ -74,15 +74,230 @@
     {
       "label": "go: fmt",
       "type": "shell",
-      "command": "gofmt",
+      "command": "go",
+      "args": [
+        "fmt",
+        "./..."
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}"
+      },
+      "problemMatcher": [
+        "$go"
+      ]
+    },
+    {
+      "label": "go: modernize",
+      "type": "shell",
+      "command": "modernize",
       "args": [
-        "-l",
-        "-w",
-        "."
+        "./..."
       ],
       "options": {
         "cwd": "${workspaceFolder}"
       },
+      "problemMatcher": [
+        "$go"
+      ]
+    },
+    {
+      "label": "go: modernize -fix",
+      "type": "shell",
+      "command": "modernize",
+      "args": [
+        "-fix",
+        "./..."
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}"
+      },
+      "problemMatcher": [
+        "$go"
+      ]
+    },
+    {
+      "label": "frontend: ncu -u",
+      "type": "shell",
+      "command": "npx",
+      "args": [
+        "npm-check-updates",
+        "-u"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "frontend: install",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "install"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "frontend: dev",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "dev"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "isBackground": true,
+      "problemMatcher": [],
+      "presentation": {
+        "panel": "dedicated",
+        "group": "dev"
+      }
+    },
+    {
+      "label": "frontend: build",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "build"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": [
+        "$tsc"
+      ],
+      "group": "build"
+    },
+    {
+      "label": "frontend: gen",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "gen"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "frontend: lint",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "lint"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": [
+        "$eslint-stylish"
+      ]
+    },
+    {
+      "label": "frontend: test",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "test"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": [],
+      "group": "test"
+    },
+    {
+      "label": "frontend: test:watch",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "test:watch"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "isBackground": true,
+      "problemMatcher": [],
+      "group": "test",
+      "presentation": {
+        "panel": "dedicated",
+        "group": "test"
+      }
+    },
+    {
+      "label": "frontend: typecheck",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "typecheck"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": [
+        "$tsc"
+      ]
+    },
+    {
+      "label": "frontend: gen:zod",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "gen:zod"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "frontend: gen:api",
+      "type": "shell",
+      "command": "npm",
+      "args": [
+        "run",
+        "gen:api"
+      ],
+      "options": {
+        "cwd": "${workspaceFolder}/frontend"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "build: full (frontend + go)",
+      "dependsOrder": "sequence",
+      "dependsOn": [
+        "frontend: build",
+        "go: build"
+      ],
+      "problemMatcher": [],
+      "group": {
+        "kind": "build",
+        "isDefault": false
+      }
+    },
+    {
+      "label": "check: all",
+      "dependsOn": [
+        "go: vet",
+        "go: test",
+        "frontend: lint",
+        "frontend: typecheck",
+        "frontend: test"
+      ],
       "problemMatcher": []
     }
   ]

+ 3 - 3
frontend/package-lock.json

@@ -4388,9 +4388,9 @@
       "license": "MIT"
     },
     "node_modules/dompurify": {
-      "version": "3.4.10",
-      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.10.tgz",
-      "integrity": "sha512-0xzNv0e7oYC6yyuOGZIABPM4qtg3QxLFniDNPP4ZP90wR8Yq3zgwpRbrNiT4N3IKqDbbYFEJLV+JWEs19aZ//w==",
+      "version": "3.4.11",
+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.11.tgz",
+      "integrity": "sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==",
       "license": "(MPL-2.0 OR Apache-2.0)",
       "optionalDependencies": {
         "@types/trusted-types": "^2.0.7"

+ 1 - 0
frontend/package.json

@@ -61,6 +61,7 @@
     "vitest": "^4.1.9"
   },
   "overrides": {
+    "dompurify": "^3.4.11",
     "react-copy-to-clipboard": "^5.1.1",
     "react-inspector": "^9.0.0",
     "react-debounce-input": {