From 10072d0e99ef0973143d0edb6c7d839883b6b5dd Mon Sep 17 00:00:00 2001 From: zzjin Date: Sat, 6 Aug 2022 13:59:13 +0800 Subject: [PATCH] Fix ingress-nginx route rewrite. (#1474) * Fix ingress-nginx route rewrite. Update frontend typos. Signed-off-by: zzjin * Support expose kubernetes-dashboard Support api post method Signed-off-by: zzjin * update frontend location login Signed-off-by: zzjin --- .../ingress-kubernetes-dashboard.yaml | 73 +++ .../manifests/ingress-nginx-with-cert.yaml | 60 +- .../frontend/deploy/manifests/frontend.yaml | 6 +- desktop/frontend/package-lock.json | 556 ++++++++++++------ desktop/frontend/package.json | 10 +- desktop/frontend/src/lib/api.ts | 23 +- .../frontend/src/pages/dashboard/index.tsx | 10 +- desktop/frontend/src/pages/login/callback.tsx | 37 +- desktop/frontend/src/store/session.ts | 29 +- pkg/utils/httpserver/go_restful.go | 8 + service/auth/Dockerfile | 5 +- service/auth/api/api.go | 28 +- service/auth/api/struct.go | 20 + service/auth/deploy/manifests/auth.yaml | 22 +- 14 files changed, 595 insertions(+), 292 deletions(-) create mode 100644 cloud/deploy/manifests/ingress-kubernetes-dashboard.yaml create mode 100644 service/auth/api/struct.go diff --git a/cloud/deploy/manifests/ingress-kubernetes-dashboard.yaml b/cloud/deploy/manifests/ingress-kubernetes-dashboard.yaml new file mode 100644 index 000000000..054f13f83 --- /dev/null +++ b/cloud/deploy/manifests/ingress-kubernetes-dashboard.yaml @@ -0,0 +1,73 @@ +# Copyright © 2022 sealos. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: cluster-issuer-kd + namespace: kubernetes-dashboard +spec: + acme: + server: https://acme-v02.api.letsencrypt.org/directory + email: admin@sealos.io + privateKeySecretRef: + name: letsencrypt-prod + solvers: + - http01: + ingress: + class: nginx + +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: kubernetes-dashboard + namespace: kubernetes-dashboard +spec: + secretName: kubernetes-dashboard-cloud-sealos-io-cert + dnsNames: + - kubernetes-dashboard.cloud.sealos.io + issuerRef: + name: cluster-issuer-kd + kind: ClusterIssuer + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/rewrite-target: / + cert-manager.io/issuer: cluster-issuer-kd + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + name: kubernetes-dashboard + namespace: kubernetes-dashboard + labels: + k8s-app: kubernetes-dashboard +spec: + rules: + - host: kubernetes-dashboard.cloud.sealos.io + http: + paths: + - pathType: Prefix + path: / + backend: + service: + name: kubernetes-dashboard + port: + number: 443 + tls: + - hosts: + - kubernetes-dashboard.cloud.sealos.io + secretName: kubernetes-dashboard-cloud-sealos-io-cert diff --git a/cloud/deploy/manifests/ingress-nginx-with-cert.yaml b/cloud/deploy/manifests/ingress-nginx-with-cert.yaml index 5e4ac286e..290a5bc3d 100644 --- a/cloud/deploy/manifests/ingress-nginx-with-cert.yaml +++ b/cloud/deploy/manifests/ingress-nginx-with-cert.yaml @@ -23,12 +23,11 @@ spec: privateKeySecretRef: name: letsencrypt-prod solvers: - - http01: - ingress: - class: nginx + - http01: + ingress: + class: nginx --- - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: @@ -43,34 +42,36 @@ metadata: nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/backend-protocol: "HTTP" nginx.ingress.kubernetes.io/rewrite-target: /$2 + #@see: https://github.com/nginxinc/kubernetes-ingress/tree/v2.3.0/examples/rewrites + # nginx.org/rewrites: "serviceName=desktop-frontend rewrite=/" name: nginx-default namespace: sealos spec: rules: - - host: cloud.sealos.io - http: - paths: - - pathType: Prefix - path: / - backend: - service: - name: desktop-frontend - port: - number: 3000 - - pathType: Prefix - path: /api(/|$)(.*) - backend: - service: - name: service-auth - port: - number: 8080 + - host: cloud.sealos.io + http: + paths: + - pathType: Prefix + #@see: https://github.com/kubernetes/ingress-nginx/issues/3122#issuecomment-1125881703 + path: /()(.*) + backend: + service: + name: desktop-frontend + port: + number: 3000 + - pathType: Prefix + path: /api(/|$)(.*) + backend: + service: + name: service-auth + port: + number: 8080 tls: # < placing a host in the TLS config will determine what ends up in the cert's subjectAltNames - - hosts: - - cloud.sealos.io - secretName: cloud-sealos-io-cert # < cert-manager will store the created certificate in this secret. + - hosts: + - cloud.sealos.io + secretName: cloud-sealos-io-cert # < cert-manager will store the created certificate in this secret. --- - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: @@ -78,18 +79,17 @@ metadata: kubernetes.io/ingress.class: nginx # add an annotation indicating the issuer to use. cert-manager.io/cluster-issuer: letsencrypt-prod - cert-manager.io/common-name: login.cloud.sealos.io + cert-manager.io/common-name: login.sealos.io cert-manager.io/duration: "2160h" cert-manager.io/renew-before: "360h" kubernetes.io/tls-acme: "true" nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - nginx.ingress.kubernetes.io/rewrite-target: /$2 name: nginx-casdoor namespace: sealos spec: rules: - - host: login.cloud.sealos.io + - host: login.sealos.io http: paths: - pathType: Prefix @@ -101,5 +101,5 @@ spec: number: 8000 tls: # < placing a host in the TLS config will determine what ends up in the cert's subjectAltNames - hosts: - - login.cloud.sealos.io - secretName: login-cloud-sealos-io-cert # < cert-manager will store the created certificate in this secret. \ No newline at end of file + - login.sealos.io + secretName: login-sealos-io-cert # < cert-manager will store the created certificate in this secret. diff --git a/desktop/frontend/deploy/manifests/frontend.yaml b/desktop/frontend/deploy/manifests/frontend.yaml index f5efb2044..cc52ac371 100644 --- a/desktop/frontend/deploy/manifests/frontend.yaml +++ b/desktop/frontend/deploy/manifests/frontend.yaml @@ -54,7 +54,7 @@ metadata: name: desktop-frontend-config namespace: sealos data: - auth.yaml: |- + config.yaml: |- addr: :3000 --- @@ -81,8 +81,8 @@ spec: imagePullPolicy: Always volumeMounts: - name: desktop-frontend-volume - mountPath: /auth.yaml - subPath: auth.yaml + mountPath: /config.yaml + subPath: config.yaml volumes: - name: desktop-frontend-volume configMap: diff --git a/desktop/frontend/package-lock.json b/desktop/frontend/package-lock.json index ad5ca36ea..0d2cb7005 100644 --- a/desktop/frontend/package-lock.json +++ b/desktop/frontend/package-lock.json @@ -9,18 +9,18 @@ "version": "0.1.0", "dependencies": { "@ant-design/icons": "^4.7.0", - "antd": "^4.22.0", - "next": "12.2.3", + "antd": "4.22.3", + "next": "12.2.4", "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { - "@types/node": "^18.6.1", - "@types/react": "^18.0.15", + "@types/node": "18.6.4", + "@types/react": "18.0.15", "@types/react-dom": "18.0.6", - "eslint": "8.20.0", - "eslint-config-next": "12.2.3", - "typescript": "^4.7.4" + "eslint": "8.21.0", + "eslint-config-next": "12.2.4", + "typescript": "4.7.4" } }, "node_modules/@ant-design/colors": { @@ -126,11 +126,10 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -140,22 +139,31 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@next/env": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.3.tgz", - "integrity": "sha512-2lWKP5Xcvnor70NaaROZXBvU8z9mFReePCG8NhZw6NyNGnPvC+8s+Cre/63LAB1LKzWw/e9bZJnQUg0gYFRb2Q==" + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz", + "integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.3.tgz", - "integrity": "sha512-B2e8Yg1MpuLsGxhCx4rU8/Tcnr5wFmCx1O2eyLXBPnaCcsFXfGCo067ujagtDLtWASL3GNgzg78U1SB0dbc38A==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.4.tgz", + "integrity": "sha512-ChDkUIkJeYWKRx+FdF+EhUgvKtK1wF+Xew4Os7ef3iAjMch5GGBiezw2zGXTa/C0E6potz4j11EpX89mngffug==", "dev": true, "dependencies": { "glob": "7.1.7" @@ -182,9 +190,9 @@ } }, "node_modules/@next/swc-android-arm-eabi": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.3.tgz", - "integrity": "sha512-JxmCW9XB5PYnkGE67BdnBTdqW0SW6oMCiPMHLdjeRi4T3U4JJKJGnjQld99+6TPOfPWigtw3W7Cijp5gc+vJ/w==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz", + "integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==", "cpu": [ "arm" ], @@ -197,9 +205,9 @@ } }, "node_modules/@next/swc-android-arm64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.3.tgz", - "integrity": "sha512-3l4zXpWnzy0fqoedsFRxzMy/eGlMMqn6IwPEuBmtEQ4h7srmQFHyT+Bk+eVHb0o1RQ7/TloAa+mu8JX5tz/5tA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz", + "integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==", "cpu": [ "arm64" ], @@ -212,9 +220,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.3.tgz", - "integrity": "sha512-eutDO/RH6pf7+8zHo3i2GKLhF0qaMtxWpY8k3Oa1k+CyrcJ0IxwkfH/x3f75jTMeCrThn6Uu8j3WeZOxvhto1Q==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz", + "integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==", "cpu": [ "arm64" ], @@ -227,9 +235,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.3.tgz", - "integrity": "sha512-lve+lnTiddXbcT3Lh2ujOFywQSEycTYQhuf6j6JrPu9oLQGS01kjIqqSj3/KMmSoppEnXo3BxkgYu+g2+ecHkA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz", + "integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==", "cpu": [ "x64" ], @@ -242,9 +250,9 @@ } }, "node_modules/@next/swc-freebsd-x64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.3.tgz", - "integrity": "sha512-V4bZU1qBFkULTPW53phY8ypioh3EERzHu9YKAasm9RxU4dj+8c/4s60y+kbFkFEEpIUgEU6yNuYZRR4lHHbUGA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz", + "integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==", "cpu": [ "x64" ], @@ -257,9 +265,9 @@ } }, "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.3.tgz", - "integrity": "sha512-MWxS/i+XSEKdQE0ZmdYkPPrWKBi4JwMVaXdOW9J/T/sZJsHsLlSC9ErBcNolKAJEVka+tnw9oPRyRCKOj+q0sw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz", + "integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==", "cpu": [ "arm" ], @@ -272,9 +280,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.3.tgz", - "integrity": "sha512-ikXkqAmvEcWTzIQFDdmrUHLWzdDAF5s2pVsSpQn9rk/gK1i9webH1GRQd2bSM7JLuPBZSaYrNGvDTyHZdSEYlg==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz", + "integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==", "cpu": [ "arm64" ], @@ -287,9 +295,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.3.tgz", - "integrity": "sha512-wE45gGFkeLLLnCoveKaBrdpYkkypl3qwNF2YhnfvfVK7etuu1O679LwClhCWinDVBr+KOkmyHok00Z+0uI1ycg==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz", + "integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==", "cpu": [ "arm64" ], @@ -302,9 +310,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.3.tgz", - "integrity": "sha512-MbFI6413VSXiREzHwYD8YAJLTknBaC+bmjXgdHEEdloeOuBFQGE3NWn3izOCTy8kV+s98VDQO8au7EKKs+bW0g==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz", + "integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==", "cpu": [ "x64" ], @@ -317,9 +325,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.3.tgz", - "integrity": "sha512-jMBD0Va6fInbPih/dNySlNY2RpjkK6MXS+UGVEvuTswl1MZr+iahvurmshwGKpjaRwVU4DSFMD8+gfWxsTFs1Q==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz", + "integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==", "cpu": [ "x64" ], @@ -332,9 +340,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.3.tgz", - "integrity": "sha512-Cq8ToPdc0jQP2C7pjChYctAsEe7+lO/B826ZCK5xFzobuHPiCyJ2Mzx/nEQwCY4SpYkeJQtCbwlCz5iyGW5zGg==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz", + "integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==", "cpu": [ "arm64" ], @@ -347,9 +355,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.3.tgz", - "integrity": "sha512-BtFq4c8IpeB0sDhJMHJFgm86rPkOvmYI8k3De8Y2kgNVWSeLQ0Q929PWf7e+GqcX1015ei/gEB41ZH8Iw49NzA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz", + "integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==", "cpu": [ "ia32" ], @@ -362,9 +370,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.3.tgz", - "integrity": "sha512-huSNb98KSG77Kl96CoPgCwom28aamuUsPpRmn/4s9L0RNbbHVSkp9E6HA4yOAykZCEuWcdNsRLbVVuAbt8rtIw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz", + "integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==", "cpu": [ "x64" ], @@ -437,9 +445,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.1.tgz", - "integrity": "sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==", + "version": "18.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.4.tgz", + "integrity": "sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg==", "dev": true }, "node_modules/@types/prop-types": { @@ -600,11 +608,10 @@ } }, "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -666,9 +673,9 @@ } }, "node_modules/antd": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.22.0.tgz", - "integrity": "sha512-ZKEfRF+wT21PVWrd1NKG7CQNUtiGOt35OV+ZKumazvubLUXHyFnJvueaN7vgcbcBmexFXC6TZvIL+TXWxa0zzg==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/antd/-/antd-4.22.3.tgz", + "integrity": "sha512-Nay1tO+G5Z9szmshK9TinOWclJnxOtSe7cr15EX64NGkZZyRoHX2xXOFQoYtBt4qfVfFvLf97m9on7fwgy1Svg==", "dependencies": { "@ant-design/colors": "^6.0.0", "@ant-design/icons": "^4.7.0", @@ -684,7 +691,7 @@ "rc-checkbox": "~2.3.0", "rc-collapse": "~3.3.0", "rc-dialog": "~8.9.0", - "rc-drawer": "~5.0.0-alpha.7", + "rc-drawer": "~5.1.0-alpha.1", "rc-dropdown": "~4.0.0", "rc-field-form": "~1.27.0", "rc-image": "~5.7.0", @@ -1198,13 +1205,14 @@ } }, "node_modules/eslint": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", - "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1214,14 +1222,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -1250,12 +1261,12 @@ } }, "node_modules/eslint-config-next": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.2.3.tgz", - "integrity": "sha512-xAQqAqwa2bu9ZMRypz58ym4tNCo22Wc6LuoLpbpf3yW5c4ZkVib9934AgGDDvh2zKrP56Z6X0Pp6gNnuuZzcRw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.2.4.tgz", + "integrity": "sha512-r3keSLY1Z+rN+ASN8nmWwZ+AsMl6IrPGRWgbQhKHcop4/fk1hJGxE9Xf/mYMkV07+1Q/catchw25lu525HFy5Q==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "12.2.3", + "@next/eslint-plugin-next": "12.2.4", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", @@ -1554,19 +1565,91 @@ "node": ">=6.0.0" } }, - "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.7.1", + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { @@ -1889,6 +1972,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2483,11 +2572,11 @@ "license": "MIT" }, "node_modules/next": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.3.tgz", - "integrity": "sha512-TA0tmSA6Dk6S6kfvCNbF7CWYW8468gZUxr/3/30z4KvAQbXnl2ASYZElVe7q/hBW/1F1ee0tSBlHa4/sn+ZIBw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.4.tgz", + "integrity": "sha512-b1xlxEozmAWokAXzXsi5vlmU/IfJcFNIJA8dpU5UdkFbyDPio8wwb8mAQ/Y7rGtfTgG/t/u49BiyEA+xAgFvow==", "dependencies": { - "@next/env": "12.2.3", + "@next/env": "12.2.4", "@swc/helpers": "0.4.3", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", @@ -2501,19 +2590,19 @@ "node": ">=12.22.0" }, "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.2.3", - "@next/swc-android-arm64": "12.2.3", - "@next/swc-darwin-arm64": "12.2.3", - "@next/swc-darwin-x64": "12.2.3", - "@next/swc-freebsd-x64": "12.2.3", - "@next/swc-linux-arm-gnueabihf": "12.2.3", - "@next/swc-linux-arm64-gnu": "12.2.3", - "@next/swc-linux-arm64-musl": "12.2.3", - "@next/swc-linux-x64-gnu": "12.2.3", - "@next/swc-linux-x64-musl": "12.2.3", - "@next/swc-win32-arm64-msvc": "12.2.3", - "@next/swc-win32-ia32-msvc": "12.2.3", - "@next/swc-win32-x64-msvc": "12.2.3" + "@next/swc-android-arm-eabi": "12.2.4", + "@next/swc-android-arm64": "12.2.4", + "@next/swc-darwin-arm64": "12.2.4", + "@next/swc-darwin-x64": "12.2.4", + "@next/swc-freebsd-x64": "12.2.4", + "@next/swc-linux-arm-gnueabihf": "12.2.4", + "@next/swc-linux-arm64-gnu": "12.2.4", + "@next/swc-linux-arm64-musl": "12.2.4", + "@next/swc-linux-x64-gnu": "12.2.4", + "@next/swc-linux-x64-musl": "12.2.4", + "@next/swc-win32-arm64-msvc": "12.2.4", + "@next/swc-win32-ia32-msvc": "12.2.4", + "@next/swc-win32-x64-msvc": "12.2.4" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -2945,9 +3034,9 @@ } }, "node_modules/rc-drawer": { - "version": "5.0.0-alpha.8", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-5.0.0-alpha.8.tgz", - "integrity": "sha512-4ZhW8iZ7PDAnTRzprZv3zI8XEW/jQJkf+gvfnXXpx7Ik4TjKqzlf1yg33qEUm7uJgO1BQVITKGzlLUQlTSfrcQ==", + "version": "5.1.0-alpha.3", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-5.1.0-alpha.3.tgz", + "integrity": "sha512-8SR6VD3ms0KhfwGa0KIhCUr/3p8iIuxIqo8cqizZzQKUjSGU0IcB/fteDV3IVRGMqVHhSSQp4hzvYfZsOI+kOA==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -4029,6 +4118,18 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { @@ -4110,9 +4211,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -4120,6 +4221,12 @@ "minimatch": "^3.0.4" } }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -4127,14 +4234,14 @@ "dev": true }, "@next/env": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.3.tgz", - "integrity": "sha512-2lWKP5Xcvnor70NaaROZXBvU8z9mFReePCG8NhZw6NyNGnPvC+8s+Cre/63LAB1LKzWw/e9bZJnQUg0gYFRb2Q==" + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz", + "integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==" }, "@next/eslint-plugin-next": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.3.tgz", - "integrity": "sha512-B2e8Yg1MpuLsGxhCx4rU8/Tcnr5wFmCx1O2eyLXBPnaCcsFXfGCo067ujagtDLtWASL3GNgzg78U1SB0dbc38A==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.4.tgz", + "integrity": "sha512-ChDkUIkJeYWKRx+FdF+EhUgvKtK1wF+Xew4Os7ef3iAjMch5GGBiezw2zGXTa/C0E6potz4j11EpX89mngffug==", "dev": true, "requires": { "glob": "7.1.7" @@ -4157,81 +4264,81 @@ } }, "@next/swc-android-arm-eabi": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.3.tgz", - "integrity": "sha512-JxmCW9XB5PYnkGE67BdnBTdqW0SW6oMCiPMHLdjeRi4T3U4JJKJGnjQld99+6TPOfPWigtw3W7Cijp5gc+vJ/w==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz", + "integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==", "optional": true }, "@next/swc-android-arm64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.3.tgz", - "integrity": "sha512-3l4zXpWnzy0fqoedsFRxzMy/eGlMMqn6IwPEuBmtEQ4h7srmQFHyT+Bk+eVHb0o1RQ7/TloAa+mu8JX5tz/5tA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz", + "integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==", "optional": true }, "@next/swc-darwin-arm64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.3.tgz", - "integrity": "sha512-eutDO/RH6pf7+8zHo3i2GKLhF0qaMtxWpY8k3Oa1k+CyrcJ0IxwkfH/x3f75jTMeCrThn6Uu8j3WeZOxvhto1Q==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz", + "integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==", "optional": true }, "@next/swc-darwin-x64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.3.tgz", - "integrity": "sha512-lve+lnTiddXbcT3Lh2ujOFywQSEycTYQhuf6j6JrPu9oLQGS01kjIqqSj3/KMmSoppEnXo3BxkgYu+g2+ecHkA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz", + "integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==", "optional": true }, "@next/swc-freebsd-x64": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.3.tgz", - "integrity": "sha512-V4bZU1qBFkULTPW53phY8ypioh3EERzHu9YKAasm9RxU4dj+8c/4s60y+kbFkFEEpIUgEU6yNuYZRR4lHHbUGA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz", + "integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==", "optional": true }, "@next/swc-linux-arm-gnueabihf": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.3.tgz", - "integrity": "sha512-MWxS/i+XSEKdQE0ZmdYkPPrWKBi4JwMVaXdOW9J/T/sZJsHsLlSC9ErBcNolKAJEVka+tnw9oPRyRCKOj+q0sw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz", + "integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.3.tgz", - "integrity": "sha512-ikXkqAmvEcWTzIQFDdmrUHLWzdDAF5s2pVsSpQn9rk/gK1i9webH1GRQd2bSM7JLuPBZSaYrNGvDTyHZdSEYlg==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz", + "integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.3.tgz", - "integrity": "sha512-wE45gGFkeLLLnCoveKaBrdpYkkypl3qwNF2YhnfvfVK7etuu1O679LwClhCWinDVBr+KOkmyHok00Z+0uI1ycg==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz", + "integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.3.tgz", - "integrity": "sha512-MbFI6413VSXiREzHwYD8YAJLTknBaC+bmjXgdHEEdloeOuBFQGE3NWn3izOCTy8kV+s98VDQO8au7EKKs+bW0g==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz", + "integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.3.tgz", - "integrity": "sha512-jMBD0Va6fInbPih/dNySlNY2RpjkK6MXS+UGVEvuTswl1MZr+iahvurmshwGKpjaRwVU4DSFMD8+gfWxsTFs1Q==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz", + "integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.3.tgz", - "integrity": "sha512-Cq8ToPdc0jQP2C7pjChYctAsEe7+lO/B826ZCK5xFzobuHPiCyJ2Mzx/nEQwCY4SpYkeJQtCbwlCz5iyGW5zGg==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz", + "integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.3.tgz", - "integrity": "sha512-BtFq4c8IpeB0sDhJMHJFgm86rPkOvmYI8k3De8Y2kgNVWSeLQ0Q929PWf7e+GqcX1015ei/gEB41ZH8Iw49NzA==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz", + "integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.3.tgz", - "integrity": "sha512-huSNb98KSG77Kl96CoPgCwom28aamuUsPpRmn/4s9L0RNbbHVSkp9E6HA4yOAykZCEuWcdNsRLbVVuAbt8rtIw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz", + "integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==", "optional": true }, "@nodelib/fs.scandir": { @@ -4281,9 +4388,9 @@ "dev": true }, "@types/node": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.1.tgz", - "integrity": "sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==", + "version": "18.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.4.tgz", + "integrity": "sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg==", "dev": true }, "@types/prop-types": { @@ -4383,9 +4490,9 @@ } }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-jsx": { @@ -4423,9 +4530,9 @@ } }, "antd": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.22.0.tgz", - "integrity": "sha512-ZKEfRF+wT21PVWrd1NKG7CQNUtiGOt35OV+ZKumazvubLUXHyFnJvueaN7vgcbcBmexFXC6TZvIL+TXWxa0zzg==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/antd/-/antd-4.22.3.tgz", + "integrity": "sha512-Nay1tO+G5Z9szmshK9TinOWclJnxOtSe7cr15EX64NGkZZyRoHX2xXOFQoYtBt4qfVfFvLf97m9on7fwgy1Svg==", "requires": { "@ant-design/colors": "^6.0.0", "@ant-design/icons": "^4.7.0", @@ -4441,7 +4548,7 @@ "rc-checkbox": "~2.3.0", "rc-collapse": "~3.3.0", "rc-dialog": "~8.9.0", - "rc-drawer": "~5.0.0-alpha.7", + "rc-drawer": "~5.1.0-alpha.1", "rc-dropdown": "~4.0.0", "rc-field-form": "~1.27.0", "rc-image": "~5.7.0", @@ -4806,13 +4913,14 @@ "dev": true }, "eslint": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", - "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -4822,14 +4930,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -4856,16 +4967,59 @@ "requires": { "esutils": "^2.0.2" } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true } } }, "eslint-config-next": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.2.3.tgz", - "integrity": "sha512-xAQqAqwa2bu9ZMRypz58ym4tNCo22Wc6LuoLpbpf3yW5c4ZkVib9934AgGDDvh2zKrP56Z6X0Pp6gNnuuZzcRw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.2.4.tgz", + "integrity": "sha512-r3keSLY1Z+rN+ASN8nmWwZ+AsMl6IrPGRWgbQhKHcop4/fk1hJGxE9Xf/mYMkV07+1Q/catchw25lu525HFy5Q==", "dev": true, "requires": { - "@next/eslint-plugin-next": "12.2.3", + "@next/eslint-plugin-next": "12.2.4", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", @@ -5078,12 +5232,12 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } @@ -5315,6 +5469,12 @@ "slash": "^3.0.0" } }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -5715,24 +5875,24 @@ "dev": true }, "next": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.3.tgz", - "integrity": "sha512-TA0tmSA6Dk6S6kfvCNbF7CWYW8468gZUxr/3/30z4KvAQbXnl2ASYZElVe7q/hBW/1F1ee0tSBlHa4/sn+ZIBw==", + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.4.tgz", + "integrity": "sha512-b1xlxEozmAWokAXzXsi5vlmU/IfJcFNIJA8dpU5UdkFbyDPio8wwb8mAQ/Y7rGtfTgG/t/u49BiyEA+xAgFvow==", "requires": { - "@next/env": "12.2.3", - "@next/swc-android-arm-eabi": "12.2.3", - "@next/swc-android-arm64": "12.2.3", - "@next/swc-darwin-arm64": "12.2.3", - "@next/swc-darwin-x64": "12.2.3", - "@next/swc-freebsd-x64": "12.2.3", - "@next/swc-linux-arm-gnueabihf": "12.2.3", - "@next/swc-linux-arm64-gnu": "12.2.3", - "@next/swc-linux-arm64-musl": "12.2.3", - "@next/swc-linux-x64-gnu": "12.2.3", - "@next/swc-linux-x64-musl": "12.2.3", - "@next/swc-win32-arm64-msvc": "12.2.3", - "@next/swc-win32-ia32-msvc": "12.2.3", - "@next/swc-win32-x64-msvc": "12.2.3", + "@next/env": "12.2.4", + "@next/swc-android-arm-eabi": "12.2.4", + "@next/swc-android-arm64": "12.2.4", + "@next/swc-darwin-arm64": "12.2.4", + "@next/swc-darwin-x64": "12.2.4", + "@next/swc-freebsd-x64": "12.2.4", + "@next/swc-linux-arm-gnueabihf": "12.2.4", + "@next/swc-linux-arm64-gnu": "12.2.4", + "@next/swc-linux-arm64-musl": "12.2.4", + "@next/swc-linux-x64-gnu": "12.2.4", + "@next/swc-linux-x64-musl": "12.2.4", + "@next/swc-win32-arm64-msvc": "12.2.4", + "@next/swc-win32-ia32-msvc": "12.2.4", + "@next/swc-win32-x64-msvc": "12.2.4", "@swc/helpers": "0.4.3", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", @@ -6008,9 +6168,9 @@ } }, "rc-drawer": { - "version": "5.0.0-alpha.8", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-5.0.0-alpha.8.tgz", - "integrity": "sha512-4ZhW8iZ7PDAnTRzprZv3zI8XEW/jQJkf+gvfnXXpx7Ik4TjKqzlf1yg33qEUm7uJgO1BQVITKGzlLUQlTSfrcQ==", + "version": "5.1.0-alpha.3", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-5.1.0-alpha.3.tgz", + "integrity": "sha512-8SR6VD3ms0KhfwGa0KIhCUr/3p8iIuxIqo8cqizZzQKUjSGU0IcB/fteDV3IVRGMqVHhSSQp4hzvYfZsOI+kOA==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -6739,6 +6899,12 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/desktop/frontend/package.json b/desktop/frontend/package.json index b1fff1b76..b0d22f224 100644 --- a/desktop/frontend/package.json +++ b/desktop/frontend/package.json @@ -10,17 +10,17 @@ }, "dependencies": { "@ant-design/icons": "^4.7.0", - "antd": "4.22.0", - "next": "12.2.3", + "antd": "4.22.3", + "next": "12.2.4", "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { - "@types/node": "18.6.1", + "@types/node": "18.6.4", "@types/react": "18.0.15", "@types/react-dom": "18.0.6", - "eslint": "8.20.0", - "eslint-config-next": "12.2.3", + "eslint": "8.21.0", + "eslint-config-next": "12.2.4", "typescript": "4.7.4" } } \ No newline at end of file diff --git a/desktop/frontend/src/lib/api.ts b/desktop/frontend/src/lib/api.ts index b2c378e00..81c04940f 100644 --- a/desktop/frontend/src/lib/api.ts +++ b/desktop/frontend/src/lib/api.ts @@ -1,18 +1,17 @@ const api_host = process.env.NEXT_PUBLIC_API_HOST; -export default async function fetchAPI( - query: string = '', - variables?: any, - method: string = 'GET' -) { - const headers = { 'Content-Type': 'application/json' }; +async function fetchAPI(query: string = '', variables?: {}, headers?: {}, method: string = 'GET') { + let req_headers = { 'Content-Type': 'application/json' }; + if (headers) { + req_headers = { ...req_headers, ...headers }; + } if (method === 'GET' && variables !== undefined) { query += '?' + new URLSearchParams(variables).toString(); } const res = await fetch(api_host + query, { - headers, + headers: req_headers, method: method, body: method !== 'GET' && variables ? JSON.stringify(variables) : undefined }); @@ -22,5 +21,13 @@ export default async function fetchAPI( console.error(json.errors); throw new Error('Failed to fetch API'); } - return json.data; + return json; +} + +export async function fetchGet(query: string = '', variables?: {}, headers?: {}) { + return fetchAPI(query, variables, headers, 'GET'); +} + +export async function fetchPost(query: string = '', variables?: {}, headers?: {}) { + return fetchAPI(query, variables, headers, 'POST'); } diff --git a/desktop/frontend/src/pages/dashboard/index.tsx b/desktop/frontend/src/pages/dashboard/index.tsx index f8901051d..1a867dd92 100755 --- a/desktop/frontend/src/pages/dashboard/index.tsx +++ b/desktop/frontend/src/pages/dashboard/index.tsx @@ -4,7 +4,7 @@ import styles from './dashboard.module.css' import { SearchOutlined } from '@ant-design/icons'; import { Tooltip, Button } from 'antd' -const Login: NextPage = () => { +const Dashboard: NextPage = () => { return (
@@ -14,11 +14,11 @@ const Login: NextPage = () => {
-
header menu
+
header menu
-